@agent-spaces/server 0.3.62 → 0.3.63

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 (315) 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/codex-runtime.js +2 -2
  4. package/dist/adapters/langchain-runtime.js +2 -2
  5. package/dist/adapters/open-agent-sdk-runtime.js +2 -2
  6. package/dist/agents/commit-agent.js +1 -0
  7. package/dist/agents/issue-agent-progress.js +4 -2
  8. package/dist/agents/issue-agent-runner.js +5 -5
  9. package/dist/agents/issue-task-controller.js +95 -14
  10. package/dist/app.js +74 -5
  11. package/dist/package.json +1 -1
  12. package/dist/routes/agent-sse.js +4 -2
  13. package/dist/routes/hooks.js +88 -0
  14. package/dist/routes/issue.js +59 -1
  15. package/dist/routes/output-style.js +48 -0
  16. package/dist/routes/prompt-template.js +2 -2
  17. package/dist/routes/skill.js +86 -15
  18. package/dist/routes/task.js +13 -1
  19. package/dist/services/hook-engine.js +118 -0
  20. package/dist/services/issue.js +6 -0
  21. package/dist/services/notification-hub/bot-agent.js +1 -0
  22. package/dist/services/output-style.js +134 -0
  23. package/dist/services/prompt-template.js +2 -2
  24. package/dist/services/skill.js +148 -35
  25. package/dist/storage/hook-store.js +55 -0
  26. package/dist/web/404.html +1 -1
  27. package/dist/web/__next.__PAGE__.txt +4 -4
  28. package/dist/web/__next._full.txt +25 -24
  29. package/dist/web/__next._head.txt +4 -4
  30. package/dist/web/__next._index.txt +13 -13
  31. package/dist/web/__next._tree.txt +2 -2
  32. package/dist/web/_next/static/chunks/0-1bfvfwifh-m.js +1 -0
  33. package/dist/web/_next/static/chunks/0-f~0xmwl__u5.js +1 -0
  34. package/dist/web/_next/static/chunks/0.n~yfwf4~6w-.js +1 -0
  35. package/dist/web/_next/static/chunks/002_j970b9gdx.js +1 -0
  36. package/dist/web/_next/static/chunks/014x2qbuiszni.js +3 -0
  37. package/dist/web/_next/static/chunks/01iqv28_snwus.js +1 -0
  38. package/dist/web/_next/static/chunks/02c22g~xd-y30.js +19 -0
  39. package/dist/web/_next/static/chunks/02mf61htij8g0.js +31 -0
  40. package/dist/web/_next/static/chunks/03scq1-0ykve3.js +1 -0
  41. package/dist/web/_next/static/chunks/046me66nilkff.js +1 -0
  42. package/dist/web/_next/static/chunks/04v-pqqs-2lvp.css +1 -0
  43. package/dist/web/_next/static/chunks/{0zd1o3u04~qvo.js → 05psi2gtx~bev.js} +7 -7
  44. package/dist/web/_next/static/chunks/{12odetnu-lyrr.js → 06whz1~s_7pva.js} +12 -12
  45. package/dist/web/_next/static/chunks/06w~.izyfylap.js +1 -0
  46. package/dist/web/_next/static/chunks/09t62a89~jesc.js +3 -0
  47. package/dist/web/_next/static/chunks/09y_3krccdd~u.js +1 -0
  48. package/dist/web/_next/static/chunks/{0njy89g5coeyi.js → 0_8dm7bxp18xo.js} +6 -6
  49. package/dist/web/_next/static/chunks/0_e~hmntdfop9.js +1 -0
  50. package/dist/web/_next/static/chunks/0_udc.6.tueey.js +1 -0
  51. package/dist/web/_next/static/chunks/0_vi1a~g4wx46.js +3 -0
  52. package/dist/web/_next/static/chunks/{0rke_patcovgr.js → 0aa6bcdmtpekn.js} +1 -1
  53. package/dist/web/_next/static/chunks/{0tvd~rxgf0oh_.js → 0bbmx45w_h5np.js} +1 -1
  54. package/dist/web/_next/static/chunks/0cke33d38fnby.js +90 -0
  55. package/dist/web/_next/static/chunks/{07a0rktf_nr5h.js → 0ctg5qmw7uu.1.js} +2 -2
  56. package/dist/web/_next/static/chunks/0cyq~8xb~r5fc.js +1 -0
  57. package/dist/web/_next/static/chunks/0ewceguykiut5.js +1 -0
  58. package/dist/web/_next/static/chunks/0fxa1edqr7dve.js +1 -0
  59. package/dist/web/_next/static/chunks/{0202ia13sijwb.js → 0h18ej5yf974e.js} +1 -1
  60. package/dist/web/_next/static/chunks/0hra80eyuu37u.js +1 -0
  61. package/dist/web/_next/static/chunks/0i39jifmxla7q.js +1 -0
  62. package/dist/web/_next/static/chunks/0ie7y4k2ncvnn.js +1 -0
  63. package/dist/web/_next/static/chunks/0igc~uli58ncw.js +2 -0
  64. package/dist/web/_next/static/chunks/0kof5qdg8c2-k.js +71 -0
  65. package/dist/web/_next/static/chunks/{08o-zmr-40r5g.js → 0m11vvph7q94-.js} +1 -1
  66. package/dist/web/_next/static/chunks/0msb2mi3hiu5_.js +67 -0
  67. package/dist/web/_next/static/chunks/0np.d~hc1-pmh.js +4 -0
  68. package/dist/web/_next/static/chunks/{0qpq0~_58fe9a.js → 0oaq67r7ix.vg.js} +1 -1
  69. package/dist/web/_next/static/chunks/0ogpc3f3keopc.js +3 -0
  70. package/dist/web/_next/static/chunks/{0d_dp_4ofz0l3.css → 0ojcao3hdm36s.css} +0 -1
  71. package/dist/web/_next/static/chunks/0p1n8bvfnpl41.js +1 -0
  72. package/dist/web/_next/static/chunks/{0gig.k.rq8d0x.js → 0ppr271hz0xoq.js} +1 -1
  73. package/dist/web/_next/static/chunks/0s_dva~eh2yhi.js +3 -0
  74. package/dist/web/_next/static/chunks/0typj55ox8d5i.js +1 -0
  75. package/dist/web/_next/static/chunks/0w2p4ldi2aymp.js +1 -0
  76. package/dist/web/_next/static/chunks/{0..g0jl-8qup7.js → 0xoo17yef_b8g.js} +1 -1
  77. package/dist/web/_next/static/chunks/0xt-8wk21gs7g.js +1 -0
  78. package/dist/web/_next/static/chunks/0y09i51u6ixq5.js +1 -0
  79. package/dist/web/_next/static/chunks/0za1r07-6az6w.js +1 -0
  80. package/dist/web/_next/static/chunks/0zc0xgp5ourcn.js +1 -0
  81. package/dist/web/_next/static/chunks/0zmhdridea1s5.js +90 -0
  82. package/dist/web/_next/static/chunks/0~u.5r3-t7179.js +1 -0
  83. package/dist/web/_next/static/chunks/10.alq.6stmld.js +1 -0
  84. package/dist/web/_next/static/chunks/11-czmcci_55y.js +1 -0
  85. package/dist/web/_next/static/chunks/11b3zgk1etlkw.js +7 -0
  86. package/dist/web/_next/static/chunks/11k-.49r~1mfm.js +1 -0
  87. package/dist/web/_next/static/chunks/11qp8r5dotf7d.js +1 -0
  88. package/dist/web/_next/static/chunks/{0k.8qdk7oi_os.js → 128ugqd34tr_-.js} +1 -1
  89. package/dist/web/_next/static/chunks/12mxlicp247c8.js +1 -0
  90. package/dist/web/_next/static/chunks/135w27dd8c19s.js +5 -0
  91. package/dist/web/_next/static/chunks/13~y-b.b9rrw4.js +1 -0
  92. package/dist/web/_next/static/chunks/{0jokpgh485~28.js → 14hqmid8q4apf.js} +11 -11
  93. package/dist/web/_next/static/chunks/16sg-lflc8csx.js +1 -0
  94. package/dist/web/_next/static/chunks/176dc-dtokxxi.js +16 -0
  95. package/dist/web/_next/static/chunks/17g-0pqre.anw.js +1 -0
  96. package/dist/web/_next/static/chunks/17oc2l.ekcs8b.css +1 -0
  97. package/dist/web/_next/static/chunks/{turbopack-0lrdxynxb9-1t.js → turbopack-0ndm2zc_pdptk.js} +1 -1
  98. package/dist/web/_not-found/__next._full.txt +29 -30
  99. package/dist/web/_not-found/__next._head.txt +4 -4
  100. package/dist/web/_not-found/__next._index.txt +13 -13
  101. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  102. package/dist/web/_not-found/__next._not-found.txt +3 -3
  103. package/dist/web/_not-found/__next._tree.txt +2 -2
  104. package/dist/web/_not-found.html +1 -1
  105. package/dist/web/_not-found.txt +29 -30
  106. package/dist/web/index.html +1 -1
  107. package/dist/web/index.txt +25 -24
  108. package/dist/web/login/__next._full.txt +29 -29
  109. package/dist/web/login/__next._head.txt +4 -4
  110. package/dist/web/login/__next._index.txt +13 -13
  111. package/dist/web/login/__next._tree.txt +2 -2
  112. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  113. package/dist/web/login/__next.login.txt +3 -3
  114. package/dist/web/login.html +1 -1
  115. package/dist/web/login.txt +29 -29
  116. package/dist/web/settings/__next._full.txt +28 -28
  117. package/dist/web/settings/__next._head.txt +4 -4
  118. package/dist/web/settings/__next._index.txt +13 -13
  119. package/dist/web/settings/__next._tree.txt +2 -2
  120. package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
  121. package/dist/web/settings/__next.settings.txt +5 -5
  122. package/dist/web/settings/agents/__next._full.txt +24 -24
  123. package/dist/web/settings/agents/__next._head.txt +4 -4
  124. package/dist/web/settings/agents/__next._index.txt +13 -13
  125. package/dist/web/settings/agents/__next._tree.txt +2 -2
  126. package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
  127. package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
  128. package/dist/web/settings/agents/__next.settings.txt +5 -5
  129. package/dist/web/settings/agents.html +1 -1
  130. package/dist/web/settings/agents.txt +24 -24
  131. package/dist/web/settings/mcps/__next._full.txt +24 -24
  132. package/dist/web/settings/mcps/__next._head.txt +4 -4
  133. package/dist/web/settings/mcps/__next._index.txt +13 -13
  134. package/dist/web/settings/mcps/__next._tree.txt +2 -2
  135. package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
  136. package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
  137. package/dist/web/settings/mcps/__next.settings.txt +5 -5
  138. package/dist/web/settings/mcps.html +1 -1
  139. package/dist/web/settings/mcps.txt +24 -24
  140. package/dist/web/settings/models/__next._full.txt +24 -24
  141. package/dist/web/settings/models/__next._head.txt +4 -4
  142. package/dist/web/settings/models/__next._index.txt +13 -13
  143. package/dist/web/settings/models/__next._tree.txt +2 -2
  144. package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
  145. package/dist/web/settings/models/__next.settings.models.txt +3 -3
  146. package/dist/web/settings/models/__next.settings.txt +5 -5
  147. package/dist/web/settings/models.html +1 -1
  148. package/dist/web/settings/models.txt +24 -24
  149. package/dist/web/settings/output-styles/__next._full.txt +43 -0
  150. package/dist/web/settings/output-styles/__next._head.txt +6 -0
  151. package/dist/web/settings/output-styles/__next._index.txt +15 -0
  152. package/dist/web/settings/output-styles/__next._tree.txt +8 -0
  153. package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +9 -0
  154. package/dist/web/settings/output-styles/__next.settings.output-styles.txt +5 -0
  155. package/dist/web/settings/output-styles/__next.settings.txt +7 -0
  156. package/dist/web/settings/output-styles.html +1 -0
  157. package/dist/web/settings/output-styles.txt +43 -0
  158. package/dist/web/settings/prompts/__next._full.txt +24 -24
  159. package/dist/web/settings/prompts/__next._head.txt +4 -4
  160. package/dist/web/settings/prompts/__next._index.txt +13 -13
  161. package/dist/web/settings/prompts/__next._tree.txt +2 -2
  162. package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
  163. package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
  164. package/dist/web/settings/prompts/__next.settings.txt +5 -5
  165. package/dist/web/settings/prompts.html +1 -1
  166. package/dist/web/settings/prompts.txt +24 -24
  167. package/dist/web/settings/providers/__next._full.txt +24 -24
  168. package/dist/web/settings/providers/__next._head.txt +4 -4
  169. package/dist/web/settings/providers/__next._index.txt +13 -13
  170. package/dist/web/settings/providers/__next._tree.txt +2 -2
  171. package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
  172. package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
  173. package/dist/web/settings/providers/__next.settings.txt +5 -5
  174. package/dist/web/settings/providers.html +1 -1
  175. package/dist/web/settings/providers.txt +24 -24
  176. package/dist/web/settings/skills/__next._full.txt +24 -24
  177. package/dist/web/settings/skills/__next._head.txt +4 -4
  178. package/dist/web/settings/skills/__next._index.txt +13 -13
  179. package/dist/web/settings/skills/__next._tree.txt +2 -2
  180. package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
  181. package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
  182. package/dist/web/settings/skills/__next.settings.txt +5 -5
  183. package/dist/web/settings/skills.html +1 -1
  184. package/dist/web/settings/skills.txt +24 -24
  185. package/dist/web/settings.html +1 -1
  186. package/dist/web/settings.txt +28 -28
  187. package/dist/web/workflows/__next._full.txt +32 -31
  188. package/dist/web/workflows/__next._head.txt +4 -4
  189. package/dist/web/workflows/__next._index.txt +13 -13
  190. package/dist/web/workflows/__next._tree.txt +2 -2
  191. package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
  192. package/dist/web/workflows/__next.workflows.txt +3 -3
  193. package/dist/web/workflows.html +1 -1
  194. package/dist/web/workflows.txt +32 -31
  195. package/dist/web/workspace/_/__next._full.txt +30 -71
  196. package/dist/web/workspace/_/__next._head.txt +4 -4
  197. package/dist/web/workspace/_/__next._index.txt +13 -13
  198. package/dist/web/workspace/_/__next._tree.txt +2 -17
  199. package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -18
  200. package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
  201. package/dist/web/workspace/_/__next.workspace.txt +3 -3
  202. package/dist/web/workspace/_.html +1 -1
  203. package/dist/web/workspace/_.txt +30 -71
  204. package/dist/web/workspaces/__next._full.txt +31 -32
  205. package/dist/web/workspaces/__next._head.txt +4 -4
  206. package/dist/web/workspaces/__next._index.txt +13 -13
  207. package/dist/web/workspaces/__next._tree.txt +2 -2
  208. package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
  209. package/dist/web/workspaces/__next.workspaces.txt +3 -3
  210. package/dist/web/workspaces.html +1 -1
  211. package/dist/web/workspaces.txt +31 -32
  212. package/dist/ws/agent-runner.js +4 -2
  213. package/package.json +1 -1
  214. package/public/output-styles/carmack-mode.md +381 -0
  215. package/public/output-styles/codex-rigor-mode.md +114 -0
  216. package/public/output-styles/dhh-mode.md +265 -0
  217. package/public/output-styles/evan-you-mode.md +539 -0
  218. package/public/output-styles/index.json +37 -0
  219. package/public/output-styles/jobs-mode.md +369 -0
  220. package/public/output-styles/linus-mode.md +135 -0
  221. package/public/output-styles/uncle-bob-mode.md +221 -0
  222. package/public/prompt/andrej-karpathy-skills.md +65 -0
  223. package/public/prompt/claude-token-efficient-coding.md +35 -0
  224. package/public/prompt/index.json +12 -0
  225. package/public/skills/index.json +92 -0
  226. package/public/skills/planning-with-files/planning-with-files-zh/SKILL.md +243 -0
  227. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.ps1 +44 -0
  228. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.sh +46 -0
  229. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.ps1 +124 -0
  230. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.sh +124 -0
  231. package/public/skills/planning-with-files/planning-with-files-zh/scripts/session-catchup.py +438 -0
  232. package/public/skills/planning-with-files/planning-with-files-zh/templates/findings.md +29 -0
  233. package/public/skills/planning-with-files/planning-with-files-zh/templates/progress.md +40 -0
  234. package/public/skills/planning-with-files/planning-with-files-zh/templates/task_plan.md +58 -0
  235. package/public/skills/superpowers/brainstorming/SKILL.md +164 -0
  236. package/public/skills/superpowers/brainstorming/scripts/frame-template.html +214 -0
  237. package/public/skills/superpowers/brainstorming/scripts/helper.js +88 -0
  238. package/public/skills/superpowers/brainstorming/scripts/server.cjs +354 -0
  239. package/public/skills/superpowers/brainstorming/scripts/start-server.sh +148 -0
  240. package/public/skills/superpowers/brainstorming/scripts/stop-server.sh +56 -0
  241. package/public/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
  242. package/public/skills/superpowers/brainstorming/visual-companion.md +287 -0
  243. package/public/skills/superpowers/dispatching-parallel-agents/SKILL.md +182 -0
  244. package/public/skills/superpowers/executing-plans/SKILL.md +70 -0
  245. package/public/skills/superpowers/finishing-a-development-branch/SKILL.md +251 -0
  246. package/public/skills/superpowers/receiving-code-review/SKILL.md +213 -0
  247. package/public/skills/superpowers/requesting-code-review/SKILL.md +103 -0
  248. package/public/skills/superpowers/requesting-code-review/code-reviewer.md +168 -0
  249. package/public/skills/superpowers/subagent-driven-development/SKILL.md +279 -0
  250. package/public/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +25 -0
  251. package/public/skills/superpowers/subagent-driven-development/implementer-prompt.md +113 -0
  252. package/public/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  253. package/public/skills/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
  254. package/public/skills/superpowers/systematic-debugging/SKILL.md +296 -0
  255. package/public/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
  256. package/public/skills/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
  257. package/public/skills/superpowers/systematic-debugging/defense-in-depth.md +122 -0
  258. package/public/skills/superpowers/systematic-debugging/find-polluter.sh +63 -0
  259. package/public/skills/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
  260. package/public/skills/superpowers/systematic-debugging/test-academic.md +14 -0
  261. package/public/skills/superpowers/systematic-debugging/test-pressure-1.md +58 -0
  262. package/public/skills/superpowers/systematic-debugging/test-pressure-2.md +68 -0
  263. package/public/skills/superpowers/systematic-debugging/test-pressure-3.md +69 -0
  264. package/public/skills/superpowers/test-driven-development/SKILL.md +371 -0
  265. package/public/skills/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
  266. package/public/skills/superpowers/using-git-worktrees/SKILL.md +215 -0
  267. package/public/skills/superpowers/using-superpowers/SKILL.md +117 -0
  268. package/public/skills/superpowers/using-superpowers/references/codex-tools.md +59 -0
  269. package/public/skills/superpowers/using-superpowers/references/copilot-tools.md +42 -0
  270. package/public/skills/superpowers/using-superpowers/references/gemini-tools.md +51 -0
  271. package/public/skills/superpowers/verification-before-completion/SKILL.md +139 -0
  272. package/public/skills/superpowers/writing-plans/SKILL.md +152 -0
  273. package/public/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
  274. package/public/skills/superpowers/writing-skills/SKILL.md +655 -0
  275. package/public/skills/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
  276. package/public/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  277. package/public/skills/superpowers/writing-skills/graphviz-conventions.dot +172 -0
  278. package/public/skills/superpowers/writing-skills/persuasion-principles.md +187 -0
  279. package/public/skills/superpowers/writing-skills/render-graphs.js +168 -0
  280. package/public/skills/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
  281. package/dist/web/_next/static/chunks/0-81wi7xr2nd-.js +0 -270
  282. package/dist/web/_next/static/chunks/00lca9lsasdm7.js +0 -1
  283. package/dist/web/_next/static/chunks/01gi~q0c6ez6..js +0 -1
  284. package/dist/web/_next/static/chunks/02shswpmybici.js +0 -1
  285. package/dist/web/_next/static/chunks/05tx6hzdtkgi9.js +0 -2
  286. package/dist/web/_next/static/chunks/07nbyndvzftr1.js +0 -3
  287. package/dist/web/_next/static/chunks/0bn~onkv~9xza.js +0 -1
  288. package/dist/web/_next/static/chunks/0g-0n6glz_z6w.js +0 -1
  289. package/dist/web/_next/static/chunks/0gyede80jpy3n.js +0 -4
  290. package/dist/web/_next/static/chunks/0hrbuvzuxrjfl.js +0 -1
  291. package/dist/web/_next/static/chunks/0i51q.5s_-.vh.css +0 -1
  292. package/dist/web/_next/static/chunks/0qf163pbrwy4z.js +0 -1
  293. package/dist/web/_next/static/chunks/0rnt-f3pjxb-d.js +0 -5
  294. package/dist/web/_next/static/chunks/0tgbcgsca9mrg.js +0 -1
  295. package/dist/web/_next/static/chunks/0tyhv6.y7~yxd.js +0 -1
  296. package/dist/web/_next/static/chunks/0u7_qd9hzqwac.js +0 -1
  297. package/dist/web/_next/static/chunks/0vuvql8rloda5.js +0 -1
  298. package/dist/web/_next/static/chunks/0wv0h27jafag4.js +0 -1
  299. package/dist/web/_next/static/chunks/0wwvc4zc2q6bn.js +0 -1
  300. package/dist/web/_next/static/chunks/0xmmk3vebw8xs.js +0 -1
  301. package/dist/web/_next/static/chunks/0xwqf.llmm_u2.js +0 -31
  302. package/dist/web/_next/static/chunks/0yo22_w53mo~5.js +0 -1
  303. package/dist/web/_next/static/chunks/12c0jp0qvlr1t.js +0 -1
  304. package/dist/web/_next/static/chunks/12pg1nn3v~~5k.js +0 -1
  305. package/dist/web/_next/static/chunks/16cyr8ilpx1nn.js +0 -1
  306. package/public/avatars/1777813826407-bea0ja-minimax.svg +0 -1
  307. package/public/avatars/1777813967088-3xlvd0-minimax.svg +0 -1
  308. package/public/avatars/1777814041714-yp0qeq-minimax.svg +0 -1
  309. package/public/avatars/1777904986095-rg26je-icon.png +0 -0
  310. package/public/avatars/1778953228323-5je54x-user.jpg +0 -0
  311. package/public/avatars/1778954057880-g01q6y-user.jpg +0 -0
  312. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → OoXAsPtrUWjC1l898FSvI}/_buildManifest.js +0 -0
  313. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → OoXAsPtrUWjC1l898FSvI}/_clientMiddlewareManifest.js +0 -0
  314. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → OoXAsPtrUWjC1l898FSvI}/_ssgManifest.js +0 -0
  315. /package/public/avatars/{1777815865622-08wp9m-user.jpg → user.jpg} +0 -0
@@ -0,0 +1,71 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,340642,(e,t,i)=>{{let e=navigator.clipboard,t=e?.writeText?.bind(e),i=e?.write?.bind(e);Object.defineProperty(navigator,"clipboard",{value:{...e,writeText:e=>(t?.(e)??Promise.resolve()).catch(()=>void 0),write:async e=>{try{if(i)return void await i(e)}catch{}let r=e[0]?.getType("text/plain");if(!r)return;let n=await r.then(e=>e.text());await (t?.(n)??Promise.resolve()).catch(()=>void 0)}},writable:!0,configurable:!0})}},750718,(e,t,i)=>{"use strict";function r(e){return"string"==typeof e||e instanceof String}function n(e){return Array.isArray(e)}Object.defineProperty(i,"__esModule",{value:!0}),i.stringArray=i.array=i.func=i.error=i.number=i.string=i.boolean=void 0,i.boolean=function(e){return!0===e||!1===e},i.string=r,i.number=function(e){return"number"==typeof e||e instanceof Number},i.error=function(e){return e instanceof Error},i.func=function(e){return"function"==typeof e},i.array=n,i.stringArray=function(e){return n(e)&&e.every(e=>r(e))}},849471,(e,t,i)=>{"use strict";var r,n,o,s;Object.defineProperty(i,"__esModule",{value:!0}),i.Message=i.NotificationType9=i.NotificationType8=i.NotificationType7=i.NotificationType6=i.NotificationType5=i.NotificationType4=i.NotificationType3=i.NotificationType2=i.NotificationType1=i.NotificationType0=i.NotificationType=i.RequestType9=i.RequestType8=i.RequestType7=i.RequestType6=i.RequestType5=i.RequestType4=i.RequestType3=i.RequestType2=i.RequestType1=i.RequestType=i.RequestType0=i.AbstractMessageSignature=i.ParameterStructures=i.ResponseError=i.ErrorCodes=void 0;let a=e.r(750718);(o=r||(i.ErrorCodes=r={})).ParseError=-32700,o.InvalidRequest=-32600,o.MethodNotFound=-32601,o.InvalidParams=-32602,o.InternalError=-32603,o.jsonrpcReservedErrorRangeStart=-32099,o.serverErrorStart=-32099,o.MessageWriteError=-32099,o.MessageReadError=-32098,o.PendingResponseRejected=-32097,o.ConnectionInactive=-32096,o.ServerNotInitialized=-32002,o.UnknownErrorCode=-32001,o.jsonrpcReservedErrorRangeEnd=-32e3,o.serverErrorEnd=-32e3;class l extends Error{constructor(e,t,i){super(t),this.code=a.number(e)?e:r.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,l.prototype)}toJson(){let e={code:this.code,message:this.message};return void 0!==this.data&&(e.data=this.data),e}}i.ResponseError=l;class c{constructor(e){this.kind=e}static is(e){return e===c.auto||e===c.byName||e===c.byPosition}toString(){return this.kind}}i.ParameterStructures=c,c.auto=new c("auto"),c.byPosition=new c("byPosition"),c.byName=new c("byName");class d{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return c.auto}}i.AbstractMessageSignature=d,i.RequestType0=class extends d{constructor(e){super(e,0)}},i.RequestType=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.RequestType1=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.RequestType2=class extends d{constructor(e){super(e,2)}},i.RequestType3=class extends d{constructor(e){super(e,3)}},i.RequestType4=class extends d{constructor(e){super(e,4)}},i.RequestType5=class extends d{constructor(e){super(e,5)}},i.RequestType6=class extends d{constructor(e){super(e,6)}},i.RequestType7=class extends d{constructor(e){super(e,7)}},i.RequestType8=class extends d{constructor(e){super(e,8)}},i.RequestType9=class extends d{constructor(e){super(e,9)}},i.NotificationType=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.NotificationType0=class extends d{constructor(e){super(e,0)}},i.NotificationType1=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.NotificationType2=class extends d{constructor(e){super(e,2)}},i.NotificationType3=class extends d{constructor(e){super(e,3)}},i.NotificationType4=class extends d{constructor(e){super(e,4)}},i.NotificationType5=class extends d{constructor(e){super(e,5)}},i.NotificationType6=class extends d{constructor(e){super(e,6)}},i.NotificationType7=class extends d{constructor(e){super(e,7)}},i.NotificationType8=class extends d{constructor(e){super(e,8)}},i.NotificationType9=class extends d{constructor(e){super(e,9)}},(s=n||(i.Message=n={})).isRequest=function(e){return e&&a.string(e.method)&&(a.string(e.id)||a.number(e.id))},s.isNotification=function(e){return e&&a.string(e.method)&&void 0===e.id},s.isResponse=function(e){return e&&(void 0!==e.result||!!e.error)&&(a.string(e.id)||a.number(e.id)||null===e.id)}},208832,(e,t,i)=>{"use strict";var r,n,o;Object.defineProperty(i,"__esModule",{value:!0}),i.LRUCache=i.LinkedMap=i.Touch=void 0,(o=n||(i.Touch=n={})).None=0,o.First=1,o.AsOld=o.First,o.Last=2,o.AsNew=o.Last;class s{constructor(){this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=n.None){let i=this._map.get(e);if(i)return t!==n.None&&this.touch(i,t),i.value}set(e,t,i=n.None){let r=this._map.get(e);if(r)r.value=t,i!==n.None&&this.touch(r,i);else{switch(r={key:e,value:t,next:void 0,previous:void 0},i){case n.None:this.addItemLast(r);break;case n.First:this.addItemFirst(r);break;case n.Last:default:this.addItemLast(r)}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let i=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==i)throw Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.key,done:!1};return t=t.next,e}}};return i}values(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.value,done:!1};return t=t.next,e}}};return i}entries(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:[t.key,t.value],done:!1};return t=t.next,e}}};return i}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(0===e)return void this.clear();let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(this._head||this._tail)if(this._head)e.next=this._head,this._head.previous=e;else throw Error("Invalid list");else this._tail=e;this._head=e,this._state++}addItemLast(e){if(this._head||this._tail)if(this._tail)e.previous=this._tail,this._tail.next=e;else throw Error("Invalid list");else this._head=e;this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,i=e.previous;if(!t||!i)throw Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw Error("Invalid list");if(t===n.First||t===n.Last){if(t===n.First){if(e===this._head)return;let t=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(t.previous=i,i.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===n.Last){if(e===this._tail)return;let t=e.next,i=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=i,i.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){for(let[t,i]of(this.clear(),e))this.set(t,i)}}i.LinkedMap=s,i.LRUCache=class extends s{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=n.AsNew){return super.get(e,t)}peek(e){return super.get(e,n.None)}set(e,t){return super.set(e,t,n.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}},690428,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.Disposable=void 0,(r||(i.Disposable=r={})).create=function(e){return{dispose:e}}},427883,(e,t,i)=>{"use strict";let r;function n(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(i,"__esModule",{value:!0}),(n||(n={})).install=function(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e},i.default=n},127146,(e,t,i)=>{"use strict";var r,n;let o;Object.defineProperty(i,"__esModule",{value:!0}),i.Emitter=i.Event=void 0;let s=e.r(427883);n=r||(i.Event=r={}),o={dispose(){}},n.None=function(){return o};class a{add(e,t=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let i=!1;for(let r=0,n=this._callbacks.length;r<n;r++)if(this._callbacks[r]===e)if(this._contexts[r]===t){this._callbacks.splice(r,1),this._contexts.splice(r,1);return}else i=!0;if(i)throw Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],i=this._callbacks.slice(0),r=this._contexts.slice(0);for(let n=0,o=i.length;n<o;n++)try{t.push(i[n].apply(r[n],e))}catch(e){(0,s.default)().console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}class l{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,i)=>{this._callbacks||(this._callbacks=new a),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let r={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),r.dispose=l._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(r),r}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}i.Emitter=l,l._noop=function(){}},280822,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.CancellationTokenSource=i.CancellationToken=void 0;let o=e.r(427883),s=e.r(750718),a=e.r(127146);(n=r||(i.CancellationToken=r={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.Event.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:a.Event.None}),n.is=function(e){return e&&(e===n.None||e===n.Cancelled||s.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)};let l=Object.freeze(function(e,t){let i=(0,o.default)().timer.setTimeout(e.bind(t),0);return{dispose(){i.dispose()}}});class c{constructor(){this._isCancelled=!1}cancel(){!this._isCancelled&&(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?l:(this._emitter||(this._emitter=new a.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}i.CancellationTokenSource=class{get token(){return this._token||(this._token=new c),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof c&&this._token.dispose():this._token=r.None}}},44473,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.SharedArrayReceiverStrategy=i.SharedArraySenderStrategy=void 0;let o=e.r(280822);(n=r||(r={})).Continue=0,n.Cancelled=1,i.SharedArraySenderStrategy=class{constructor(){this.buffers=new Map}enableCancellation(e){if(null===e.id)return;let t=new SharedArrayBuffer(4);new Int32Array(t,0,1)[0]=r.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let i=this.buffers.get(t);if(void 0===i)return;let n=new Int32Array(i,0,1);Atomics.store(n,0,r.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};class s{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===r.Cancelled}get onCancellationRequested(){throw Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class a{constructor(e){this.token=new s(e)}cancel(){}dispose(){}}i.SharedArrayReceiverStrategy=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let t=e.$cancellationData;return void 0===t?new o.CancellationTokenSource:new a(t)}}},869333,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.Semaphore=void 0;let r=e.r(427883);i.Semaphore=class{constructor(e=1){if(e<=0)throw Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,i)=>{this._waiting.push({thunk:e,resolve:t,reject:i}),this.runNext()})}get active(){return this._active}runNext(){0!==this._waiting.length&&this._active!==this._capacity&&(0,r.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(0===this._waiting.length||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(t=>{this._active--,e.resolve(t),this.runNext()},t=>{this._active--,e.reject(t),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}}},903253,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.ReadableStreamMessageReader=i.AbstractMessageReader=i.MessageReader=void 0;let o=e.r(427883),s=e.r(750718),a=e.r(127146),l=e.r(869333);(r||(i.MessageReader=r={})).is=function(e){return e&&s.func(e.listen)&&s.func(e.dispose)&&s.func(e.onError)&&s.func(e.onClose)&&s.func(e.onPartialMessage)};class c{constructor(){this.errorEmitter=new a.Emitter,this.closeEmitter=new a.Emitter,this.partialMessageEmitter=new a.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:Error(`Reader received error. Reason: ${s.string(e.message)?e.message:"unknown"}`)}}i.AbstractMessageReader=c,(n||(n={})).fromOptions=function(e){let t,i,r,n=new Map,s=new Map;if(void 0===e||"string"==typeof e)t=e??"utf-8";else{if(t=e.charset??"utf-8",void 0!==e.contentDecoder&&(i=e.contentDecoder,n.set(i.name,i)),void 0!==e.contentDecoders)for(let t of e.contentDecoders)n.set(t.name,t);if(void 0!==e.contentTypeDecoder&&(r=e.contentTypeDecoder,s.set(r.name,r)),void 0!==e.contentTypeDecoders)for(let t of e.contentTypeDecoders)s.set(t.name,t)}return void 0===r&&(r=(0,o.default)().applicationJson.decoder,s.set(r.name,r)),{charset:t,contentDecoder:i,contentDecoders:n,contentTypeDecoder:r,contentTypeDecoders:s}},i.ReadableStreamMessageReader=class extends c{constructor(e,t){super(),this.readable=e,this.options=n.fromOptions(t),this.buffer=(0,o.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new l.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(e=>{this.onData(e)});return this.readable.onError(e=>this.fireError(e)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(-1===this.nextMessageLength){let e=this.buffer.tryReadHeaders(!0);if(!e)return;let t=e.get("content-length");if(!t)return void this.fireError(Error(`Header must provide a Content-Length property.
2
+ ${JSON.stringify(Object.fromEntries(e))}`));let i=parseInt(t);if(isNaN(i))return void this.fireError(Error(`Content-Length value must be a number. Got ${t}`));this.nextMessageLength=i}let e=this.buffer.tryReadBody(this.nextMessageLength);if(void 0===e)return void this.setPartialMessageTimer();this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let t=void 0!==this.options.contentDecoder?await this.options.contentDecoder.decode(e):e,i=await this.options.contentTypeDecoder.decode(t,this.options);this.callback(i)}).catch(e=>{this.fireError(e)})}}catch(e){this.fireError(e)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),this._partialMessageTimeout<=0||(this.partialMessageTimer=(0,o.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}},87839,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.WriteableStreamMessageWriter=i.AbstractMessageWriter=i.MessageWriter=void 0;let o=e.r(427883),s=e.r(750718),a=e.r(869333),l=e.r(127146);(r||(i.MessageWriter=r={})).is=function(e){return e&&s.func(e.dispose)&&s.func(e.onClose)&&s.func(e.onError)&&s.func(e.write)};class c{constructor(){this.errorEmitter=new l.Emitter,this.closeEmitter=new l.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,i){this.errorEmitter.fire([this.asError(e),t,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:Error(`Writer received error. Reason: ${s.string(e.message)?e.message:"unknown"}`)}}i.AbstractMessageWriter=c,(n||(n={})).fromOptions=function(e){return void 0===e||"string"==typeof e?{charset:e??"utf-8",contentTypeEncoder:(0,o.default)().applicationJson.encoder}:{charset:e.charset??"utf-8",contentEncoder:e.contentEncoder,contentTypeEncoder:e.contentTypeEncoder??(0,o.default)().applicationJson.encoder}},i.WriteableStreamMessageWriter=class extends c{constructor(e,t){super(),this.writable=e,this.options=n.fromOptions(t),this.errorCount=0,this.writeSemaphore=new a.Semaphore(1),this.writable.onError(e=>this.fireError(e)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(e=>void 0!==this.options.contentEncoder?this.options.contentEncoder.encode(e):e).then(t=>{let i=[];return i.push("Content-Length: ",t.byteLength.toString(),"\r\n"),i.push("\r\n"),this.doWrite(e,i,t)},e=>{throw this.fireError(e),e}))}async doWrite(e,t,i){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(i)}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}}},934441,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.AbstractMessageBuffer=void 0,i.AbstractMessageBuffer=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t="string"==typeof e?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(e=!1){if(0===this._chunks.length)return;let t=0,i=0,r=0,n=0;e:for(;i<this._chunks.length;){let e=this._chunks[i];for(r=0;r<e.length;){switch(e[r]){case 13:switch(t){case 0:t=1;break;case 2:t=3;break;default:t=0}break;case 10:switch(t){case 1:t=2;break;case 3:t=4,r++;break e;default:t=0}break;default:t=0}r++}n+=e.byteLength,i++}if(4!==t)return;let o=this._read(n+r),s=new Map,a=this.toString(o,"ascii").split("\r\n");if(a.length<2)return s;for(let t=0;t<a.length-2;t++){let i=a[t],r=i.indexOf(":");if(-1===r)throw Error(`Message header must separate key and value using ':'
3
+ ${i}`);let n=i.substr(0,r),o=i.substr(r+1).trim();s.set(e?n.toLowerCase():n,o)}return s}tryReadBody(e){if(!(this._totalLength<e))return this._read(e)}get numberOfBytes(){return this._totalLength}_read(e){if(0===e)return this.emptyBuffer();if(e>this._totalLength)throw Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let t=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(t)}if(this._chunks[0].byteLength>e){let t=this._chunks[0],i=this.asNative(t,e);return this._chunks[0]=t.slice(e),this._totalLength-=e,i}let t=this.allocNative(e),i=0;for(;e>0;){let r=this._chunks[0];if(r.byteLength>e){let n=r.slice(0,e);t.set(n,i),i+=e,this._chunks[0]=r.slice(e),this._totalLength-=e,e-=e}else t.set(r,i),i+=r.byteLength,this._chunks.shift(),this._totalLength-=r.byteLength,e-=r.byteLength}return t}}},792181,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h,g,p,m,f,_,y,C,S,b,w,x,D,E,k,T,R,P,I,A;Object.defineProperty(i,"__esModule",{value:!0}),i.createMessageConnection=i.ConnectionOptions=i.MessageStrategy=i.CancellationStrategy=i.CancellationSenderStrategy=i.CancellationReceiverStrategy=i.RequestCancellationReceiverStrategy=i.IdCancellationReceiverStrategy=i.ConnectionStrategy=i.ConnectionError=i.ConnectionErrors=i.LogTraceNotification=i.SetTraceNotification=i.TraceFormat=i.TraceValues=i.Trace=i.NullLogger=i.ProgressType=i.ProgressToken=void 0;let M=e.r(427883),L=e.r(750718),F=e.r(849471),O=e.r(208832),N=e.r(127146),$=e.r(280822);(r||(r={})).type=new F.NotificationType("$/cancelRequest"),(n||(i.ProgressToken=n={})).is=function(e){return"string"==typeof e||"number"==typeof e},(o||(o={})).type=new F.NotificationType("$/progress"),i.ProgressType=class{},(s||(s={})).is=function(e){return L.func(e)},i.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}}),(w=a||(i.Trace=a={}))[w.Off=0]="Off",w[w.Messages=1]="Messages",w[w.Compact=2]="Compact",w[w.Verbose=3]="Verbose",(x=l||(i.TraceValues=l={})).Off="off",x.Messages="messages",x.Compact="compact",x.Verbose="verbose",(D=a||(i.Trace=a={})).fromString=function(e){if(!L.string(e))return D.Off;switch(e=e.toLowerCase()){case"off":default:return D.Off;case"messages":return D.Messages;case"compact":return D.Compact;case"verbose":return D.Verbose}},D.toString=function(e){switch(e){case D.Off:return"off";case D.Messages:return"messages";case D.Compact:return"compact";case D.Verbose:return"verbose";default:return"off"}},(E=c||(i.TraceFormat=c={})).Text="text",E.JSON="json",(k=c||(i.TraceFormat=c={})).fromString=function(e){return L.string(e)&&"json"===(e=e.toLowerCase())?k.JSON:k.Text},(d||(i.SetTraceNotification=d={})).type=new F.NotificationType("$/setTrace"),(u||(i.LogTraceNotification=u={})).type=new F.NotificationType("$/logTrace"),(T=h||(i.ConnectionErrors=h={}))[T.Closed=1]="Closed",T[T.Disposed=2]="Disposed",T[T.AlreadyListening=3]="AlreadyListening";class H extends Error{constructor(e,t){super(t),this.code=e,Object.setPrototypeOf(this,H.prototype)}}i.ConnectionError=H,(g||(i.ConnectionStrategy=g={})).is=function(e){return e&&L.func(e.cancelUndispatched)},(p||(i.IdCancellationReceiverStrategy=p={})).is=function(e){return e&&(void 0===e.kind||"id"===e.kind)&&L.func(e.createCancellationTokenSource)&&(void 0===e.dispose||L.func(e.dispose))},(m||(i.RequestCancellationReceiverStrategy=m={})).is=function(e){return e&&"request"===e.kind&&L.func(e.createCancellationTokenSource)&&(void 0===e.dispose||L.func(e.dispose))},(R=f||(i.CancellationReceiverStrategy=f={})).Message=Object.freeze({createCancellationTokenSource:e=>new $.CancellationTokenSource}),R.is=function(e){return p.is(e)||m.is(e)},(P=_||(i.CancellationSenderStrategy=_={})).Message=Object.freeze({sendCancellation:(e,t)=>e.sendNotification(r.type,{id:t}),cleanup(e){}}),P.is=function(e){return e&&L.func(e.sendCancellation)&&L.func(e.cleanup)},(I=y||(i.CancellationStrategy=y={})).Message=Object.freeze({receiver:f.Message,sender:_.Message}),I.is=function(e){return e&&f.is(e.receiver)&&_.is(e.sender)},(C||(i.MessageStrategy=C={})).is=function(e){return e&&L.func(e.handleMessage)},(S||(i.ConnectionOptions=S={})).is=function(e){return e&&(y.is(e.cancellationStrategy)||g.is(e.connectionStrategy)||C.is(e.messageStrategy))},(A=b||(b={}))[A.New=1]="New",A[A.Listening=2]="Listening",A[A.Closed=3]="Closed",A[A.Disposed=4]="Disposed",i.createMessageConnection=function(e,t,l,g){let m,f,_,S,w=void 0!==l?l:i.NullLogger,x=0,D=0,E=0,k=new Map,T=new Map,R=new Map,P=new O.LinkedMap,I=new Map,A=new Set,U=new Map,W=a.Off,q=c.Text,j=b.New,z=new N.Emitter,K=new N.Emitter,V=new N.Emitter,B=new N.Emitter,G=new N.Emitter,Q=g&&g.cancellationStrategy?g.cancellationStrategy:y.Message;function J(e){if(null===e)throw Error("Can't send requests with id null since the response can't be correlated.");return"req-"+e.toString()}function Y(e){}function X(){return j===b.Listening}function Z(){return j===b.Closed}function ee(){return j===b.Disposed}function et(){(j===b.New||j===b.Listening)&&(j=b.Closed,K.fire(void 0))}function ei(e){F.Message.isRequest(e)?function(e){let i,r;if(ee())return;function n(i,r,n){let o={jsonrpc:"2.0",id:e.id};i instanceof F.ResponseError?o.error=i.toJson():o.result=void 0===i?null:i,eo(o,r,n),t.write(o).catch(()=>w.error("Sending response failed."))}function o(i,r,n){let o={jsonrpc:"2.0",id:e.id,error:i.toJson()};eo(o,r,n),t.write(o).catch(()=>w.error("Sending response failed."))}var s,l,d=e;if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&d.params&&(e=`Params: ${en(d.params)}
4
+
5
+ `),f.log(`Received request '${d.method} - (${d.id})'.`,e)}else ea("receive-request",d);let u=k.get(e.method);u&&(i=u.type,r=u.handler);let h=Date.now();if(r||_){let a=e.id??String(Date.now()),c=p.is(Q.receiver)?Q.receiver.createCancellationTokenSource(a):Q.receiver.createCancellationTokenSource(e);null!==e.id&&A.has(e.id)&&c.cancel(),null!==e.id&&U.set(a,c);try{let d;if(r)if(void 0===e.params){if(void 0!==i&&0!==i.numberOfParams)return void o(new F.ResponseError(F.ErrorCodes.InvalidParams,`Request ${e.method} defines ${i.numberOfParams} params but received none.`),e.method,h);d=r(c.token)}else if(Array.isArray(e.params)){if(void 0!==i&&i.parameterStructures===F.ParameterStructures.byName)return void o(new F.ResponseError(F.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by name but received parameters by position`),e.method,h);d=r(...e.params,c.token)}else{if(void 0!==i&&i.parameterStructures===F.ParameterStructures.byPosition)return void o(new F.ResponseError(F.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by position but received parameters by name`),e.method,h);d=r(e.params,c.token)}else _&&(d=_(e.method,e.params,c.token));let u=d;if(d)u.then?u.then(t=>{U.delete(a),n(t,e.method,h)},t=>{U.delete(a),t instanceof F.ResponseError?o(t,e.method,h):t&&L.string(t.message)?o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}):(U.delete(a),n(d,e.method,h));else{let i;U.delete(a),s=d,l=e.method,void 0===s&&(s=null),i={jsonrpc:"2.0",id:e.id,result:s},eo(i,l,h),t.write(i).catch(()=>w.error("Sending response failed."))}}catch(t){U.delete(a),t instanceof F.ResponseError?n(t,e.method,h):t&&L.string(t.message)?o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}}else o(new F.ResponseError(F.ErrorCodes.MethodNotFound,`Unhandled method ${e.method}`),e.method,h)}(e):F.Message.isNotification(e)?function(e){let t,i;if(!ee()){if(e.method===r.type.method){let t=e.params.id;A.delete(t),es(e);return}{let r=T.get(e.method);r&&(t=r.handler,i=r.type)}if(t||S)try{if(es(e),t)if(void 0===e.params)void 0!==i&&0!==i.numberOfParams&&i.parameterStructures!==F.ParameterStructures.byName&&w.error(`Notification ${e.method} defines ${i.numberOfParams} params but received none.`),t();else if(Array.isArray(e.params)){let r=e.params;e.method===o.type.method&&2===r.length&&n.is(r[0])?t({token:r[0],value:r[1]}):(void 0!==i&&(i.parameterStructures===F.ParameterStructures.byName&&w.error(`Notification ${e.method} defines parameters by name but received parameters by position`),i.numberOfParams!==e.params.length&&w.error(`Notification ${e.method} defines ${i.numberOfParams} params but received ${r.length} arguments`)),t(...r))}else void 0!==i&&i.parameterStructures===F.ParameterStructures.byPosition&&w.error(`Notification ${e.method} defines parameters by position but received parameters by name`),t(e.params);else S&&S(e.method,e.params)}catch(t){t.message?w.error(`Notification handler '${e.method}' failed with message: ${t.message}`):w.error(`Notification handler '${e.method}' failed unexpectedly.`)}else V.fire(e)}}(e):F.Message.isResponse(e)?function(e){if(!ee())if(null===e.id)e.error?w.error(`Received response message without id: Error is:
6
+ ${JSON.stringify(e.error,void 0,4)}`):w.error("Received response message without id. No further error information provided.");else{let t=e.id,i=I.get(t);if(function(e,t){if(W!==a.Off&&f)if(q===c.Text){let i;if((W===a.Verbose||W===a.Compact)&&(e.error&&e.error.data?i=`Error data: ${en(e.error.data)}
7
+
8
+ `:e.result?i=`Result: ${en(e.result)}
9
+
10
+ `:void 0===e.error&&(i="No result returned.\n\n")),t){let r=e.error?` Request failed: ${e.error.message} (${e.error.code}).`:"";f.log(`Received response '${t.method} - (${e.id})' in ${Date.now()-t.timerStart}ms.${r}`,i)}else f.log(`Received response ${e.id} without active response promise.`,i)}else ea("receive-response",e)}(e,i),void 0!==i){I.delete(t);try{if(e.error){let t=e.error;i.reject(new F.ResponseError(t.code,t.message,t.data))}else if(void 0!==e.result)i.resolve(e.result);else throw Error("Should never happen.")}catch(e){e.message?w.error(`Response handler '${i.method}' failed with message: ${e.message}`):w.error(`Response handler '${i.method}' failed unexpectedly.`)}}}}(e):function(e){if(!e)return w.error("Received empty message.");if(w.error(`Received message which is neither a response nor a notification message:
11
+ ${JSON.stringify(e,null,4)}`),L.string(e.id)||L.number(e.id)){let t=e.id,i=I.get(t);i&&i.reject(Error("The received response has neither a result nor an error property."))}}(e)}e.onClose(et),e.onError(function(e){z.fire([e,void 0,void 0])}),t.onClose(et),t.onError(function(e){z.fire(e)});let er=e=>{try{if(F.Message.isNotification(e)&&e.method===r.type.method){let i=e.params.id,r=J(i),n=P.get(r);if(F.Message.isRequest(n)){let o=g?.connectionStrategy,s=o&&o.cancelUndispatched?o.cancelUndispatched(n,Y):Y(n);if(s&&(void 0!==s.error||void 0!==s.result)){P.delete(r),U.delete(i),s.id=n.id,eo(s,e.method,Date.now()),t.write(s).catch(()=>w.error("Sending response for canceled message failed."));return}}let o=U.get(i);if(void 0!==o){o.cancel(),es(e);return}A.add(i)}var i,n=P;F.Message.isRequest(e)?n.set(J(e.id),e):F.Message.isResponse(e)?n.set(null===(i=e.id)?"res-unknown-"+(++E).toString():"res-"+i.toString(),e):n.set("not-"+(++D).toString(),e)}finally{!function e(){m||0===P.size||(m=(0,M.default)().timer.setImmediate(()=>{m=void 0,function(){if(0===P.size)return;let t=P.shift();try{let e=g?.messageStrategy;C.is(e)?e.handleMessage(t,ei):ei(t)}finally{e()}}()}))}()}};function en(e){if(null!=e)switch(W){case a.Verbose:return JSON.stringify(e,null,4);case a.Compact:return JSON.stringify(e);default:return}}function eo(e,t,i){if(W!==a.Off&&f)if(q===c.Text){let r;(W===a.Verbose||W===a.Compact)&&(e.error&&e.error.data?r=`Error data: ${en(e.error.data)}
12
+
13
+ `:e.result?r=`Result: ${en(e.result)}
14
+
15
+ `:void 0===e.error&&(r="No result returned.\n\n")),f.log(`Sending response '${t} - (${e.id})'. Processing request took ${Date.now()-i}ms`,r)}else ea("send-response",e)}function es(e){if(W!==a.Off&&f&&e.method!==u.type.method)if(q===c.Text){let t;(W===a.Verbose||W===a.Compact)&&(t=e.params?`Params: ${en(e.params)}
16
+
17
+ `:"No parameters provided.\n\n"),f.log(`Received notification '${e.method}'.`,t)}else ea("receive-notification",e)}function ea(e,t){if(!f||W===a.Off)return;let i={isLSPMessage:!0,type:e,message:t,timestamp:Date.now()};f.log(i)}function el(){if(Z())throw new H(h.Closed,"Connection is closed.");if(ee())throw new H(h.Disposed,"Connection is disposed.")}function ec(e){return void 0===e?null:e}function ed(e){if(null!==e)return e}function eu(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}function eh(e,t){switch(e){case F.ParameterStructures.auto:if(eu(t))return ed(t);return[ec(t)];case F.ParameterStructures.byName:if(!eu(t))throw Error("Received parameters by name but param is not an object literal.");return ed(t);case F.ParameterStructures.byPosition:return[ec(t)];default:throw Error(`Unknown parameter structure ${e.toString()}`)}}function eg(e,t){let i,r=e.numberOfParams;switch(r){case 0:i=void 0;break;case 1:i=eh(e.parameterStructures,t[0]);break;default:i=[];for(let e=0;e<t.length&&e<r;e++)i.push(ec(t[e]));if(t.length<r)for(let e=t.length;e<r;e++)i.push(null)}return i}let ep={sendNotification:(e,...i)=>{let r,n;if(el(),L.string(e)){r=e;let t=i[0],o=0,s=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(o=1,s=t);let a=i.length,l=a-o;switch(l){case 0:n=void 0;break;case 1:n=eh(s,i[o]);break;default:if(s===F.ParameterStructures.byName)throw Error(`Received ${l} parameters for 'by Name' notification parameter structure.`);n=i.slice(o,a).map(e=>ec(e))}}else r=e.method,n=eg(e,i);let o={jsonrpc:"2.0",method:r,params:n};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&(e=o.params?`Params: ${en(o.params)}
18
+
19
+ `:"No parameters provided.\n\n"),f.log(`Sending notification '${o.method}'.`,e)}else ea("send-notification",o);return t.write(o).catch(e=>{throw w.error("Sending notification failed."),e})},onNotification:(e,t)=>{let i;return el(),L.func(e)?S=e:t&&(L.string(e)?(i=e,T.set(e,{type:void 0,handler:t})):(i=e.method,T.set(e.method,{type:e,handler:t}))),{dispose:()=>{void 0!==i?T.delete(i):S=void 0}}},onProgress:(e,t,i)=>{if(R.has(t))throw Error(`Progress handler for token ${t} already registered`);return R.set(t,i),{dispose:()=>{R.delete(t)}}},sendProgress:(e,t,i)=>ep.sendNotification(o.type,{token:t,value:i}),onUnhandledProgress:B.event,sendRequest:(e,...i)=>{let r,n,o,s;if(el(),!X())throw Error("Call listen() first.");if(L.string(e)){r=e;let t=i[0],o=i[i.length-1],a=0,l=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(a=1,l=t);let c=i.length;$.CancellationToken.is(o)&&(c-=1,s=o);let d=c-a;switch(d){case 0:n=void 0;break;case 1:n=eh(l,i[a]);break;default:if(l===F.ParameterStructures.byName)throw Error(`Received ${d} parameters for 'by Name' request parameter structure.`);n=i.slice(a,c).map(e=>ec(e))}}else{r=e.method,n=eg(e,i);let t=e.numberOfParams;s=$.CancellationToken.is(i[t])?i[t]:void 0}let l=x++;s&&(o=s.onCancellationRequested(()=>{let e=Q.sender.sendCancellation(ep,l);return void 0===e?(w.log(`Received no promise from cancellation strategy when cancelling id ${l}`),Promise.resolve()):e.catch(()=>{w.log(`Sending cancellation messages for id ${l} failed`)})}));let d={jsonrpc:"2.0",id:l,method:r,params:n};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&d.params&&(e=`Params: ${en(d.params)}
20
+
21
+ `),f.log(`Sending request '${d.method} - (${d.id})'.`,e)}else ea("send-request",d);return"function"==typeof Q.sender.enableCancellation&&Q.sender.enableCancellation(d),new Promise(async(e,i)=>{let n={method:r,timerStart:Date.now(),resolve:t=>{e(t),Q.sender.cleanup(l),o?.dispose()},reject:e=>{i(e),Q.sender.cleanup(l),o?.dispose()}};try{await t.write(d),I.set(l,n)}catch(e){throw w.error("Sending request failed."),n.reject(new F.ResponseError(F.ErrorCodes.MessageWriteError,e.message?e.message:"Unknown reason")),e}})},onRequest:(e,t)=>{el();let i=null;return s.is(e)?(i=void 0,_=e):L.string(e)?(i=null,void 0!==t&&(i=e,k.set(e,{handler:t,type:void 0}))):void 0!==t&&(i=e.method,k.set(e.method,{type:e,handler:t})),{dispose:()=>{null!==i&&(void 0!==i?k.delete(i):_=void 0)}}},hasPendingResponse:()=>I.size>0,trace:async(e,t,i)=>{let r=!1,n=c.Text;void 0!==i&&(L.boolean(i)?r=i:(r=i.sendNotification||!1,n=i.traceFormat||c.Text)),W=e,q=n,f=W===a.Off?void 0:t,!r||Z()||ee()||await ep.sendNotification(d.type,{value:a.toString(e)})},onError:z.event,onClose:K.event,onUnhandledNotification:V.event,onDispose:G.event,end:()=>{t.end()},dispose:()=>{if(ee())return;j=b.Disposed,G.fire(void 0);let i=new F.ResponseError(F.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let e of I.values())e.reject(i);I=new Map,U=new Map,A=new Set,P=new O.LinkedMap,L.func(t.dispose)&&t.dispose(),L.func(e.dispose)&&e.dispose()},listen:()=>{if(el(),X())throw new H(h.AlreadyListening,"Connection is already listening");j=b.Listening,e.listen(er)},inspect:()=>{(0,M.default)().console.log("inspect")}};return ep.onNotification(u.type,e=>{if(W===a.Off||!f)return;let t=W===a.Verbose||W===a.Compact;f.log(e.message,t?e.verbose:void 0)}),ep.onNotification(o.type,e=>{let t=R.get(e.token);t?t(e.value):B.fire(e)}),ep}},443903,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ProgressType=i.ProgressToken=i.createMessageConnection=i.NullLogger=i.ConnectionOptions=i.ConnectionStrategy=i.AbstractMessageBuffer=i.WriteableStreamMessageWriter=i.AbstractMessageWriter=i.MessageWriter=i.ReadableStreamMessageReader=i.AbstractMessageReader=i.MessageReader=i.SharedArrayReceiverStrategy=i.SharedArraySenderStrategy=i.CancellationToken=i.CancellationTokenSource=i.Emitter=i.Event=i.Disposable=i.LRUCache=i.Touch=i.LinkedMap=i.ParameterStructures=i.NotificationType9=i.NotificationType8=i.NotificationType7=i.NotificationType6=i.NotificationType5=i.NotificationType4=i.NotificationType3=i.NotificationType2=i.NotificationType1=i.NotificationType0=i.NotificationType=i.ErrorCodes=i.ResponseError=i.RequestType9=i.RequestType8=i.RequestType7=i.RequestType6=i.RequestType5=i.RequestType4=i.RequestType3=i.RequestType2=i.RequestType1=i.RequestType0=i.RequestType=i.Message=i.RAL=void 0,i.MessageStrategy=i.CancellationStrategy=i.CancellationSenderStrategy=i.CancellationReceiverStrategy=i.ConnectionError=i.ConnectionErrors=i.LogTraceNotification=i.SetTraceNotification=i.TraceFormat=i.TraceValues=i.Trace=void 0;let r=e.r(849471);Object.defineProperty(i,"Message",{enumerable:!0,get:function(){return r.Message}}),Object.defineProperty(i,"RequestType",{enumerable:!0,get:function(){return r.RequestType}}),Object.defineProperty(i,"RequestType0",{enumerable:!0,get:function(){return r.RequestType0}}),Object.defineProperty(i,"RequestType1",{enumerable:!0,get:function(){return r.RequestType1}}),Object.defineProperty(i,"RequestType2",{enumerable:!0,get:function(){return r.RequestType2}}),Object.defineProperty(i,"RequestType3",{enumerable:!0,get:function(){return r.RequestType3}}),Object.defineProperty(i,"RequestType4",{enumerable:!0,get:function(){return r.RequestType4}}),Object.defineProperty(i,"RequestType5",{enumerable:!0,get:function(){return r.RequestType5}}),Object.defineProperty(i,"RequestType6",{enumerable:!0,get:function(){return r.RequestType6}}),Object.defineProperty(i,"RequestType7",{enumerable:!0,get:function(){return r.RequestType7}}),Object.defineProperty(i,"RequestType8",{enumerable:!0,get:function(){return r.RequestType8}}),Object.defineProperty(i,"RequestType9",{enumerable:!0,get:function(){return r.RequestType9}}),Object.defineProperty(i,"ResponseError",{enumerable:!0,get:function(){return r.ResponseError}}),Object.defineProperty(i,"ErrorCodes",{enumerable:!0,get:function(){return r.ErrorCodes}}),Object.defineProperty(i,"NotificationType",{enumerable:!0,get:function(){return r.NotificationType}}),Object.defineProperty(i,"NotificationType0",{enumerable:!0,get:function(){return r.NotificationType0}}),Object.defineProperty(i,"NotificationType1",{enumerable:!0,get:function(){return r.NotificationType1}}),Object.defineProperty(i,"NotificationType2",{enumerable:!0,get:function(){return r.NotificationType2}}),Object.defineProperty(i,"NotificationType3",{enumerable:!0,get:function(){return r.NotificationType3}}),Object.defineProperty(i,"NotificationType4",{enumerable:!0,get:function(){return r.NotificationType4}}),Object.defineProperty(i,"NotificationType5",{enumerable:!0,get:function(){return r.NotificationType5}}),Object.defineProperty(i,"NotificationType6",{enumerable:!0,get:function(){return r.NotificationType6}}),Object.defineProperty(i,"NotificationType7",{enumerable:!0,get:function(){return r.NotificationType7}}),Object.defineProperty(i,"NotificationType8",{enumerable:!0,get:function(){return r.NotificationType8}}),Object.defineProperty(i,"NotificationType9",{enumerable:!0,get:function(){return r.NotificationType9}}),Object.defineProperty(i,"ParameterStructures",{enumerable:!0,get:function(){return r.ParameterStructures}});let n=e.r(208832);Object.defineProperty(i,"LinkedMap",{enumerable:!0,get:function(){return n.LinkedMap}}),Object.defineProperty(i,"LRUCache",{enumerable:!0,get:function(){return n.LRUCache}}),Object.defineProperty(i,"Touch",{enumerable:!0,get:function(){return n.Touch}});let o=e.r(690428);Object.defineProperty(i,"Disposable",{enumerable:!0,get:function(){return o.Disposable}});let s=e.r(127146);Object.defineProperty(i,"Event",{enumerable:!0,get:function(){return s.Event}}),Object.defineProperty(i,"Emitter",{enumerable:!0,get:function(){return s.Emitter}});let a=e.r(280822);Object.defineProperty(i,"CancellationTokenSource",{enumerable:!0,get:function(){return a.CancellationTokenSource}}),Object.defineProperty(i,"CancellationToken",{enumerable:!0,get:function(){return a.CancellationToken}});let l=e.r(44473);Object.defineProperty(i,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return l.SharedArraySenderStrategy}}),Object.defineProperty(i,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return l.SharedArrayReceiverStrategy}});let c=e.r(903253);Object.defineProperty(i,"MessageReader",{enumerable:!0,get:function(){return c.MessageReader}}),Object.defineProperty(i,"AbstractMessageReader",{enumerable:!0,get:function(){return c.AbstractMessageReader}}),Object.defineProperty(i,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return c.ReadableStreamMessageReader}});let d=e.r(87839);Object.defineProperty(i,"MessageWriter",{enumerable:!0,get:function(){return d.MessageWriter}}),Object.defineProperty(i,"AbstractMessageWriter",{enumerable:!0,get:function(){return d.AbstractMessageWriter}}),Object.defineProperty(i,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return d.WriteableStreamMessageWriter}});let u=e.r(934441);Object.defineProperty(i,"AbstractMessageBuffer",{enumerable:!0,get:function(){return u.AbstractMessageBuffer}});let h=e.r(792181);Object.defineProperty(i,"ConnectionStrategy",{enumerable:!0,get:function(){return h.ConnectionStrategy}}),Object.defineProperty(i,"ConnectionOptions",{enumerable:!0,get:function(){return h.ConnectionOptions}}),Object.defineProperty(i,"NullLogger",{enumerable:!0,get:function(){return h.NullLogger}}),Object.defineProperty(i,"createMessageConnection",{enumerable:!0,get:function(){return h.createMessageConnection}}),Object.defineProperty(i,"ProgressToken",{enumerable:!0,get:function(){return h.ProgressToken}}),Object.defineProperty(i,"ProgressType",{enumerable:!0,get:function(){return h.ProgressType}}),Object.defineProperty(i,"Trace",{enumerable:!0,get:function(){return h.Trace}}),Object.defineProperty(i,"TraceValues",{enumerable:!0,get:function(){return h.TraceValues}}),Object.defineProperty(i,"TraceFormat",{enumerable:!0,get:function(){return h.TraceFormat}}),Object.defineProperty(i,"SetTraceNotification",{enumerable:!0,get:function(){return h.SetTraceNotification}}),Object.defineProperty(i,"LogTraceNotification",{enumerable:!0,get:function(){return h.LogTraceNotification}}),Object.defineProperty(i,"ConnectionErrors",{enumerable:!0,get:function(){return h.ConnectionErrors}}),Object.defineProperty(i,"ConnectionError",{enumerable:!0,get:function(){return h.ConnectionError}}),Object.defineProperty(i,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return h.CancellationReceiverStrategy}}),Object.defineProperty(i,"CancellationSenderStrategy",{enumerable:!0,get:function(){return h.CancellationSenderStrategy}}),Object.defineProperty(i,"CancellationStrategy",{enumerable:!0,get:function(){return h.CancellationStrategy}}),Object.defineProperty(i,"MessageStrategy",{enumerable:!0,get:function(){return h.MessageStrategy}}),i.RAL=e.r(427883).default},99093,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(443903);class n extends r.AbstractMessageBuffer{constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return n.emptyBuffer}fromString(e,t){return new TextEncoder().encode(e)}toString(e,t){return"ascii"===t?this.asciiDecoder.decode(e):new TextDecoder(t).decode(e)}asNative(e,t){return void 0===t?e:e.slice(0,t)}allocNative(e){return new Uint8Array(e)}}n.emptyBuffer=new Uint8Array(0);class o{constructor(e){this.socket=e,this._onData=new r.Emitter,this._messageListener=e=>{e.data.arrayBuffer().then(e=>{this._onData.fire(new Uint8Array(e))},()=>{(0,r.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(e){return this.socket.addEventListener("close",e),r.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),r.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),r.Disposable.create(()=>this.socket.removeEventListener("end",e))}onData(e){return this._onData.event(e)}}class s{constructor(e){this.socket=e}onClose(e){return this.socket.addEventListener("close",e),r.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),r.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),r.Disposable.create(()=>this.socket.removeEventListener("end",e))}write(e,t){if("string"==typeof e){if(void 0!==t&&"utf-8"!==t)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t}`);this.socket.send(e)}else this.socket.send(e);return Promise.resolve()}end(){this.socket.close()}}let a=new TextEncoder,l=Object.freeze({messageBuffer:Object.freeze({create:e=>new n(e)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(e,t)=>{if("utf-8"!==t.charset)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t.charset}`);return Promise.resolve(a.encode(JSON.stringify(e,void 0,0)))}}),decoder:Object.freeze({name:"application/json",decode:(e,t)=>{if(!(e instanceof Uint8Array))throw Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(t.charset).decode(e)))}})}),stream:Object.freeze({asReadableStream:e=>new o(e),asWritableStream:e=>new s(e)}),console:console,timer:Object.freeze({setTimeout(e,t,...i){let r=setTimeout(e,t,...i);return{dispose:()=>clearTimeout(r)}},setImmediate(e,...t){let i=setTimeout(e,0,...t);return{dispose:()=>clearTimeout(i)}},setInterval(e,t,...i){let r=setInterval(e,t,...i);return{dispose:()=>clearInterval(r)}}})});function c(){return l}(c||(c={})).install=function(){r.RAL.install(l)},i.default=c},304877,(e,t,i)=>{"use strict";var r=e.e&&e.e.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=e.e&&e.e.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(i,"__esModule",{value:!0}),i.createMessageConnection=i.BrowserMessageWriter=i.BrowserMessageReader=void 0,e.r(99093).default.install();let o=e.r(443903);n(e.r(443903),i);class s extends o.AbstractMessageReader{constructor(e){super(),this._onData=new o.Emitter,this._messageListener=e=>{this._onData.fire(e.data)},e.addEventListener("error",e=>this.fireError(e)),e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}}i.BrowserMessageReader=s;class a extends o.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.addEventListener("error",e=>this.fireError(e))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}}i.BrowserMessageWriter=a,i.createMessageConnection=function(e,t,i,r){return void 0===i&&(i=o.NullLogger),o.ConnectionStrategy.is(r)&&(r={connectionStrategy:r}),(0,o.createMessageConnection)(e,t,i,r)}},564099,(e,t,i)=>{"use strict";t.exports=e.r(304877)},801971,e=>{"use strict";var t,i,r,n,o,s,a,l,c,d,u,h,g,p,m,f,_,y,C,S,b,w,x,D,E,k,T,R,P,I,A,M,L,F,O,N,$,H,U,W,q,j,z,K,V,B,G,Q,J,Y,X,Z,ee,et,ei,er,en,eo,es,ea,el,ec,ed,eu,eh,eg,ep,em,ef,ev,e_,ey,eC,eS,eb,ew,ex,eD,eE,ek,eT,eR,eP,eI,eA,eM,eL,eF,eO,eN,e$,eH,eU,eW,eq,ej,ez,eK,eV,eB,eG,eQ,eJ,eY,eX,eZ,e0,e1,e2,e6,e3,e4,e5,e8,e7,e9,te,tt,ti,tr,tn,to,ts,ta,tl,tc,td,tu,th,tg,tp,tm,tf,tv,t_,ty;let tC;(t||(t={})).is=function(e){return"string"==typeof e},(i||(i={})).is=function(e){return"string"==typeof e},(eT=r||(r={})).MIN_VALUE=-0x80000000,eT.MAX_VALUE=0x7fffffff,eT.is=function(e){return"number"==typeof e&&eT.MIN_VALUE<=e&&e<=eT.MAX_VALUE},(eR=n||(n={})).MIN_VALUE=0,eR.MAX_VALUE=0x7fffffff,eR.is=function(e){return"number"==typeof e&&eR.MIN_VALUE<=e&&e<=eR.MAX_VALUE},(eP=o||(o={})).create=function(e,t){return e===Number.MAX_VALUE&&(e=n.MAX_VALUE),t===Number.MAX_VALUE&&(t=n.MAX_VALUE),{line:e,character:t}},eP.is=function(e){return ek.objectLiteral(e)&&ek.uinteger(e.line)&&ek.uinteger(e.character)},(eI=s||(s={})).create=function(e,t,i,r){if(ek.uinteger(e)&&ek.uinteger(t)&&ek.uinteger(i)&&ek.uinteger(r))return{start:o.create(e,t),end:o.create(i,r)};if(o.is(e)&&o.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${i}, ${r}]`)},eI.is=function(e){return ek.objectLiteral(e)&&o.is(e.start)&&o.is(e.end)},(eA=a||(a={})).create=function(e,t){return{uri:e,range:t}},eA.is=function(e){return ek.objectLiteral(e)&&s.is(e.range)&&(ek.string(e.uri)||ek.undefined(e.uri))},(eM=l||(l={})).create=function(e,t,i,r){return{targetUri:e,targetRange:t,targetSelectionRange:i,originSelectionRange:r}},eM.is=function(e){return ek.objectLiteral(e)&&s.is(e.targetRange)&&ek.string(e.targetUri)&&s.is(e.targetSelectionRange)&&(s.is(e.originSelectionRange)||ek.undefined(e.originSelectionRange))},(eL=c||(c={})).create=function(e,t,i,r){return{red:e,green:t,blue:i,alpha:r}},eL.is=function(e){return ek.objectLiteral(e)&&ek.numberRange(e.red,0,1)&&ek.numberRange(e.green,0,1)&&ek.numberRange(e.blue,0,1)&&ek.numberRange(e.alpha,0,1)},(eF=d||(d={})).create=function(e,t){return{range:e,color:t}},eF.is=function(e){return ek.objectLiteral(e)&&s.is(e.range)&&c.is(e.color)},(eO=u||(u={})).create=function(e,t,i){return{label:e,textEdit:t,additionalTextEdits:i}},eO.is=function(e){return ek.objectLiteral(e)&&ek.string(e.label)&&(ek.undefined(e.textEdit)||S.is(e))&&(ek.undefined(e.additionalTextEdits)||ek.typedArray(e.additionalTextEdits,S.is))},(eN=h||(h={})).Comment="comment",eN.Imports="imports",eN.Region="region",(e$=g||(g={})).create=function(e,t,i,r,n,o){let s={startLine:e,endLine:t};return ek.defined(i)&&(s.startCharacter=i),ek.defined(r)&&(s.endCharacter=r),ek.defined(n)&&(s.kind=n),ek.defined(o)&&(s.collapsedText=o),s},e$.is=function(e){return ek.objectLiteral(e)&&ek.uinteger(e.startLine)&&ek.uinteger(e.startLine)&&(ek.undefined(e.startCharacter)||ek.uinteger(e.startCharacter))&&(ek.undefined(e.endCharacter)||ek.uinteger(e.endCharacter))&&(ek.undefined(e.kind)||ek.string(e.kind))},(eH=p||(p={})).create=function(e,t){return{location:e,message:t}},eH.is=function(e){return ek.defined(e)&&a.is(e.location)&&ek.string(e.message)},(eU=m||(m={})).Error=1,eU.Warning=2,eU.Information=3,eU.Hint=4,(eW=f||(f={})).Unnecessary=1,eW.Deprecated=2,(_||(_={})).is=function(e){return ek.objectLiteral(e)&&ek.string(e.href)},(eq=y||(y={})).create=function(e,t,i,r,n,o){let s={range:e,message:t};return ek.defined(i)&&(s.severity=i),ek.defined(r)&&(s.code=r),ek.defined(n)&&(s.source=n),ek.defined(o)&&(s.relatedInformation=o),s},eq.is=function(e){var t;return ek.defined(e)&&s.is(e.range)&&ek.string(e.message)&&(ek.number(e.severity)||ek.undefined(e.severity))&&(ek.integer(e.code)||ek.string(e.code)||ek.undefined(e.code))&&(ek.undefined(e.codeDescription)||ek.string(null==(t=e.codeDescription)?void 0:t.href))&&(ek.string(e.source)||ek.undefined(e.source))&&(ek.undefined(e.relatedInformation)||ek.typedArray(e.relatedInformation,p.is))},(ej=C||(C={})).create=function(e,t,...i){let r={title:e,command:t};return ek.defined(i)&&i.length>0&&(r.arguments=i),r},ej.is=function(e){return ek.defined(e)&&ek.string(e.title)&&ek.string(e.command)},(ez=S||(S={})).replace=function(e,t){return{range:e,newText:t}},ez.insert=function(e,t){return{range:{start:e,end:e},newText:t}},ez.del=function(e){return{range:e,newText:""}},ez.is=function(e){return ek.objectLiteral(e)&&ek.string(e.newText)&&s.is(e.range)},(eK=b||(b={})).create=function(e,t,i){let r={label:e};return void 0!==t&&(r.needsConfirmation=t),void 0!==i&&(r.description=i),r},eK.is=function(e){return ek.objectLiteral(e)&&ek.string(e.label)&&(ek.boolean(e.needsConfirmation)||void 0===e.needsConfirmation)&&(ek.string(e.description)||void 0===e.description)},(w||(w={})).is=function(e){return ek.string(e)},(eV=x||(x={})).replace=function(e,t,i){return{range:e,newText:t,annotationId:i}},eV.insert=function(e,t,i){return{range:{start:e,end:e},newText:t,annotationId:i}},eV.del=function(e,t){return{range:e,newText:"",annotationId:t}},eV.is=function(e){return S.is(e)&&(b.is(e.annotationId)||w.is(e.annotationId))},(eB=D||(D={})).create=function(e,t){return{textDocument:e,edits:t}},eB.is=function(e){return ek.defined(e)&&A.is(e.textDocument)&&Array.isArray(e.edits)},(eG=E||(E={})).create=function(e,t,i){let r={kind:"create",uri:e};return void 0!==t&&(void 0!==t.overwrite||void 0!==t.ignoreIfExists)&&(r.options=t),void 0!==i&&(r.annotationId=i),r},eG.is=function(e){return e&&"create"===e.kind&&ek.string(e.uri)&&(void 0===e.options||(void 0===e.options.overwrite||ek.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||ek.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||w.is(e.annotationId))},(eQ=k||(k={})).create=function(e,t,i,r){let n={kind:"rename",oldUri:e,newUri:t};return void 0!==i&&(void 0!==i.overwrite||void 0!==i.ignoreIfExists)&&(n.options=i),void 0!==r&&(n.annotationId=r),n},eQ.is=function(e){return e&&"rename"===e.kind&&ek.string(e.oldUri)&&ek.string(e.newUri)&&(void 0===e.options||(void 0===e.options.overwrite||ek.boolean(e.options.overwrite))&&(void 0===e.options.ignoreIfExists||ek.boolean(e.options.ignoreIfExists)))&&(void 0===e.annotationId||w.is(e.annotationId))},(eJ=T||(T={})).create=function(e,t,i){let r={kind:"delete",uri:e};return void 0!==t&&(void 0!==t.recursive||void 0!==t.ignoreIfNotExists)&&(r.options=t),void 0!==i&&(r.annotationId=i),r},eJ.is=function(e){return e&&"delete"===e.kind&&ek.string(e.uri)&&(void 0===e.options||(void 0===e.options.recursive||ek.boolean(e.options.recursive))&&(void 0===e.options.ignoreIfNotExists||ek.boolean(e.options.ignoreIfNotExists)))&&(void 0===e.annotationId||w.is(e.annotationId))},(R||(R={})).is=function(e){return e&&(void 0!==e.changes||void 0!==e.documentChanges)&&(void 0===e.documentChanges||e.documentChanges.every(e=>ek.string(e.kind)?E.is(e)||k.is(e)||T.is(e):D.is(e)))};class tS{constructor(e,t){this.edits=e,this.changeAnnotations=t}insert(e,t,i){let r,n;if(void 0===i?r=S.insert(e,t):w.is(i)?(n=i,r=x.insert(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(i),r=x.insert(e,t,n)),this.edits.push(r),void 0!==n)return n}replace(e,t,i){let r,n;if(void 0===i?r=S.replace(e,t):w.is(i)?(n=i,r=x.replace(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(i),r=x.replace(e,t,n)),this.edits.push(r),void 0!==n)return n}delete(e,t){let i,r;if(void 0===t?i=S.del(e):w.is(t)?(r=t,i=x.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),i=x.del(e,r)),this.edits.push(i),void 0!==r)return r}add(e){this.edits.push(e)}all(){return this.edits}clear(){this.edits.splice(0,this.edits.length)}assertChangeAnnotations(e){if(void 0===e)throw Error("Text edit change is not configured to manage change annotations.")}}class tb{constructor(e){this._annotations=void 0===e?Object.create(null):e,this._counter=0,this._size=0}all(){return this._annotations}get size(){return this._size}manage(e,t){let i;if(w.is(e)?i=e:(i=this.nextId(),t=e),void 0!==this._annotations[i])throw Error(`Id ${i} is already in use.`);if(void 0===t)throw Error(`No annotation provided for id ${i}`);return this._annotations[i]=t,this._size++,i}nextId(){return this._counter++,this._counter.toString()}}(eY=P||(P={})).create=function(e){return{uri:e}},eY.is=function(e){return ek.defined(e)&&ek.string(e.uri)},(eX=I||(I={})).create=function(e,t){return{uri:e,version:t}},eX.is=function(e){return ek.defined(e)&&ek.string(e.uri)&&ek.integer(e.version)},(eZ=A||(A={})).create=function(e,t){return{uri:e,version:t}},eZ.is=function(e){return ek.defined(e)&&ek.string(e.uri)&&(null===e.version||ek.integer(e.version))},(e0=M||(M={})).create=function(e,t,i,r){return{uri:e,languageId:t,version:i,text:r}},e0.is=function(e){return ek.defined(e)&&ek.string(e.uri)&&ek.string(e.languageId)&&ek.integer(e.version)&&ek.string(e.text)},(e1=L||(L={})).PlainText="plaintext",e1.Markdown="markdown",e1.is=function(e){return e===e1.PlainText||e===e1.Markdown},(F||(F={})).is=function(e){return ek.objectLiteral(e)&&L.is(e.kind)&&ek.string(e.value)},(e2=O||(O={})).Text=1,e2.Method=2,e2.Function=3,e2.Constructor=4,e2.Field=5,e2.Variable=6,e2.Class=7,e2.Interface=8,e2.Module=9,e2.Property=10,e2.Unit=11,e2.Value=12,e2.Enum=13,e2.Keyword=14,e2.Snippet=15,e2.Color=16,e2.File=17,e2.Reference=18,e2.Folder=19,e2.EnumMember=20,e2.Constant=21,e2.Struct=22,e2.Event=23,e2.Operator=24,e2.TypeParameter=25,(e6=N||(N={})).PlainText=1,e6.Snippet=2,($||($={})).Deprecated=1,(e3=H||(H={})).create=function(e,t,i){return{newText:e,insert:t,replace:i}},e3.is=function(e){return e&&ek.string(e.newText)&&s.is(e.insert)&&s.is(e.replace)},(e4=U||(U={})).asIs=1,e4.adjustIndentation=2,(W||(W={})).is=function(e){return e&&(ek.string(e.detail)||void 0===e.detail)&&(ek.string(e.description)||void 0===e.description)},(q||(q={})).create=function(e){return{label:e}},(j||(j={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(e5=z||(z={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e5.is=function(e){return ek.string(e)||ek.objectLiteral(e)&&ek.string(e.language)&&ek.string(e.value)},(K||(K={})).is=function(e){return!!e&&ek.objectLiteral(e)&&(F.is(e.contents)||z.is(e.contents)||ek.typedArray(e.contents,z.is))&&(void 0===e.range||s.is(e.range))},(V||(V={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(B||(B={})).create=function(e,t,...i){let r={label:e};return ek.defined(t)&&(r.documentation=t),ek.defined(i)?r.parameters=i:r.parameters=[],r},(e8=G||(G={})).Text=1,e8.Read=2,e8.Write=3,(Q||(Q={})).create=function(e,t){let i={range:e};return ek.number(t)&&(i.kind=t),i},(e7=J||(J={})).File=1,e7.Module=2,e7.Namespace=3,e7.Package=4,e7.Class=5,e7.Method=6,e7.Property=7,e7.Field=8,e7.Constructor=9,e7.Enum=10,e7.Interface=11,e7.Function=12,e7.Variable=13,e7.Constant=14,e7.String=15,e7.Number=16,e7.Boolean=17,e7.Array=18,e7.Object=19,e7.Key=20,e7.Null=21,e7.EnumMember=22,e7.Struct=23,e7.Event=24,e7.Operator=25,e7.TypeParameter=26,(Y||(Y={})).Deprecated=1,(X||(X={})).create=function(e,t,i,r,n){let o={name:e,kind:t,location:{uri:r,range:i}};return n&&(o.containerName=n),o},(Z||(Z={})).create=function(e,t,i,r){return void 0!==r?{name:e,kind:t,location:{uri:i,range:r}}:{name:e,kind:t,location:{uri:i}}},(e9=ee||(ee={})).create=function(e,t,i,r,n,o){let s={name:e,detail:t,kind:i,range:r,selectionRange:n};return void 0!==o&&(s.children=o),s},e9.is=function(e){return e&&ek.string(e.name)&&ek.number(e.kind)&&s.is(e.range)&&s.is(e.selectionRange)&&(void 0===e.detail||ek.string(e.detail))&&(void 0===e.deprecated||ek.boolean(e.deprecated))&&(void 0===e.children||Array.isArray(e.children))&&(void 0===e.tags||Array.isArray(e.tags))},(te=et||(et={})).Empty="",te.QuickFix="quickfix",te.Refactor="refactor",te.RefactorExtract="refactor.extract",te.RefactorInline="refactor.inline",te.RefactorRewrite="refactor.rewrite",te.Source="source",te.SourceOrganizeImports="source.organizeImports",te.SourceFixAll="source.fixAll",(tt=ei||(ei={})).Invoked=1,tt.Automatic=2,(ti=er||(er={})).create=function(e,t,i){let r={diagnostics:e};return null!=t&&(r.only=t),null!=i&&(r.triggerKind=i),r},ti.is=function(e){return ek.defined(e)&&ek.typedArray(e.diagnostics,y.is)&&(void 0===e.only||ek.typedArray(e.only,ek.string))&&(void 0===e.triggerKind||e.triggerKind===ei.Invoked||e.triggerKind===ei.Automatic)},(tr=en||(en={})).create=function(e,t,i){let r={title:e},n=!0;return"string"==typeof t?(n=!1,r.kind=t):C.is(t)?r.command=t:r.edit=t,n&&void 0!==i&&(r.kind=i),r},tr.is=function(e){return e&&ek.string(e.title)&&(void 0===e.diagnostics||ek.typedArray(e.diagnostics,y.is))&&(void 0===e.kind||ek.string(e.kind))&&(void 0!==e.edit||void 0!==e.command)&&(void 0===e.command||C.is(e.command))&&(void 0===e.isPreferred||ek.boolean(e.isPreferred))&&(void 0===e.edit||R.is(e.edit))},(tn=eo||(eo={})).create=function(e,t){let i={range:e};return ek.defined(t)&&(i.data=t),i},tn.is=function(e){return ek.defined(e)&&s.is(e.range)&&(ek.undefined(e.command)||C.is(e.command))},(to=es||(es={})).create=function(e,t){return{tabSize:e,insertSpaces:t}},to.is=function(e){return ek.defined(e)&&ek.uinteger(e.tabSize)&&ek.boolean(e.insertSpaces)},(ts=ea||(ea={})).create=function(e,t,i){return{range:e,target:t,data:i}},ts.is=function(e){return ek.defined(e)&&s.is(e.range)&&(ek.undefined(e.target)||ek.string(e.target))},(ta=el||(el={})).create=function(e,t){return{range:e,parent:t}},ta.is=function(e){return ek.objectLiteral(e)&&s.is(e.range)&&(void 0===e.parent||ta.is(e.parent))},(tl=ec||(ec={})).namespace="namespace",tl.type="type",tl.class="class",tl.enum="enum",tl.interface="interface",tl.struct="struct",tl.typeParameter="typeParameter",tl.parameter="parameter",tl.variable="variable",tl.property="property",tl.enumMember="enumMember",tl.event="event",tl.function="function",tl.method="method",tl.macro="macro",tl.keyword="keyword",tl.modifier="modifier",tl.comment="comment",tl.string="string",tl.number="number",tl.regexp="regexp",tl.operator="operator",tl.decorator="decorator",(tc=ed||(ed={})).declaration="declaration",tc.definition="definition",tc.readonly="readonly",tc.static="static",tc.deprecated="deprecated",tc.abstract="abstract",tc.async="async",tc.modification="modification",tc.documentation="documentation",tc.defaultLibrary="defaultLibrary",(eu||(eu={})).is=function(e){return ek.objectLiteral(e)&&(void 0===e.resultId||"string"==typeof e.resultId)&&Array.isArray(e.data)&&(0===e.data.length||"number"==typeof e.data[0])},(td=eh||(eh={})).create=function(e,t){return{range:e,text:t}},td.is=function(e){return null!=e&&s.is(e.range)&&ek.string(e.text)},(tu=eg||(eg={})).create=function(e,t,i){return{range:e,variableName:t,caseSensitiveLookup:i}},tu.is=function(e){return null!=e&&s.is(e.range)&&ek.boolean(e.caseSensitiveLookup)&&(ek.string(e.variableName)||void 0===e.variableName)},(th=ep||(ep={})).create=function(e,t){return{range:e,expression:t}},th.is=function(e){return null!=e&&s.is(e.range)&&(ek.string(e.expression)||void 0===e.expression)},(tg=em||(em={})).create=function(e,t){return{frameId:e,stoppedLocation:t}},tg.is=function(e){return ek.defined(e)&&s.is(e.stoppedLocation)},(tp=ef||(ef={})).Type=1,tp.Parameter=2,tp.is=function(e){return 1===e||2===e},(tm=ev||(ev={})).create=function(e){return{value:e}},tm.is=function(e){return ek.objectLiteral(e)&&(void 0===e.tooltip||ek.string(e.tooltip)||F.is(e.tooltip))&&(void 0===e.location||a.is(e.location))&&(void 0===e.command||C.is(e.command))},(tf=e_||(e_={})).create=function(e,t,i){let r={position:e,label:t};return void 0!==i&&(r.kind=i),r},tf.is=function(e){return ek.objectLiteral(e)&&o.is(e.position)&&(ek.string(e.label)||ek.typedArray(e.label,ev.is))&&(void 0===e.kind||ef.is(e.kind))&&void 0===e.textEdits||ek.typedArray(e.textEdits,S.is)&&(void 0===e.tooltip||ek.string(e.tooltip)||F.is(e.tooltip))&&(void 0===e.paddingLeft||ek.boolean(e.paddingLeft))&&(void 0===e.paddingRight||ek.boolean(e.paddingRight))},(ey||(ey={})).createSnippet=function(e){return{kind:"snippet",value:e}},(eC||(eC={})).create=function(e,t,i,r){return{insertText:e,filterText:t,range:i,command:r}},(eS||(eS={})).create=function(e){return{items:e}},(tv=eb||(eb={})).Invoked=0,tv.Automatic=1,(ew||(ew={})).create=function(e,t){return{range:e,text:t}},(ex||(ex={})).create=function(e,t){return{triggerKind:e,selectedCompletionInfo:t}},(eD||(eD={})).is=function(e){return ek.objectLiteral(e)&&i.is(e.uri)&&ek.string(e.name)},(t_=eE||(eE={})).create=function(e,t,i,r){return new tw(e,t,i,r)},t_.is=function(e){return!!(ek.defined(e)&&ek.string(e.uri)&&(ek.undefined(e.languageId)||ek.string(e.languageId))&&ek.uinteger(e.lineCount)&&ek.func(e.getText)&&ek.func(e.positionAt)&&ek.func(e.offsetAt))},t_.applyEdits=function(e,t){let i=e.getText(),r=function e(t,i){if(t.length<=1)return t;let r=t.length/2|0,n=t.slice(0,r),o=t.slice(r);e(n,i),e(o,i);let s=0,a=0,l=0;for(;s<n.length&&a<o.length;)0>=i(n[s],o[a])?t[l++]=n[s++]:t[l++]=o[a++];for(;s<n.length;)t[l++]=n[s++];for(;a<o.length;)t[l++]=o[a++];return t}(t,(e,t)=>{let i=e.range.start.line-t.range.start.line;return 0===i?e.range.start.character-t.range.start.character:i}),n=i.length;for(let t=r.length-1;t>=0;t--){let o=r[t],s=e.offsetAt(o.range.start),a=e.offsetAt(o.range.end);if(a<=n)i=i.substring(0,s)+o.newText+i.substring(a,i.length);else throw Error("Overlapping edit");n=s}return i};class tw{constructor(e,t,i,r){this._uri=e,this._languageId=t,this._version=i,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(t,i)}return this._content}update(e,t){this._content=e.text,this._version=t,this._lineOffsets=void 0}getLineOffsets(){if(void 0===this._lineOffsets){let e=[],t=this._content,i=!0;for(let r=0;r<t.length;r++){i&&(e.push(r),i=!1);let n=t.charAt(r);i="\r"===n||"\n"===n,"\r"===n&&r+1<t.length&&"\n"===t.charAt(r+1)&&r++}i&&t.length>0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),i=0,r=t.length;if(0===r)return o.create(0,e);for(;i<r;){let n=Math.floor((i+r)/2);t[n]>e?r=n:i=n+1}let n=i-1;return o.create(n,e-t[n])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let i=t[e.line],r=e.line+1<t.length?t[e.line+1]:this._content.length;return Math.max(Math.min(i+e.character,r),i)}get lineCount(){return this.getLineOffsets().length}}ty=ek||(ek={}),tC=Object.prototype.toString,ty.defined=function(e){return void 0!==e},ty.undefined=function(e){return void 0===e},ty.boolean=function(e){return!0===e||!1===e},ty.string=function(e){return"[object String]"===tC.call(e)},ty.number=function(e){return"[object Number]"===tC.call(e)},ty.numberRange=function(e,t,i){return"[object Number]"===tC.call(e)&&t<=e&&e<=i},ty.integer=function(e){return"[object Number]"===tC.call(e)&&-0x80000000<=e&&e<=0x7fffffff},ty.uinteger=function(e){return"[object Number]"===tC.call(e)&&0<=e&&e<=0x7fffffff},ty.func=function(e){return"[object Function]"===tC.call(e)},ty.objectLiteral=function(e){return null!==e&&"object"==typeof e},ty.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)},e.s(["AnnotatedTextEdit",0,x,"ChangeAnnotation",0,b,"ChangeAnnotationIdentifier",0,w,"CodeAction",0,en,"CodeActionContext",0,er,"CodeActionKind",0,et,"CodeActionTriggerKind",0,ei,"CodeDescription",0,_,"CodeLens",0,eo,"Color",0,c,"ColorInformation",0,d,"ColorPresentation",0,u,"Command",0,C,"CompletionItem",0,q,"CompletionItemKind",0,O,"CompletionItemLabelDetails",0,W,"CompletionItemTag",0,$,"CompletionList",0,j,"CreateFile",0,E,"DeleteFile",0,T,"Diagnostic",0,y,"DiagnosticRelatedInformation",0,p,"DiagnosticSeverity",0,m,"DiagnosticTag",0,f,"DocumentHighlight",0,Q,"DocumentHighlightKind",0,G,"DocumentLink",0,ea,"DocumentSymbol",0,ee,"DocumentUri",0,t,"EOL",0,["\n","\r\n","\r"],"FoldingRange",0,g,"FoldingRangeKind",0,h,"FormattingOptions",0,es,"Hover",0,K,"InlayHint",0,e_,"InlayHintKind",0,ef,"InlayHintLabelPart",0,ev,"InlineCompletionContext",0,ex,"InlineCompletionItem",0,eC,"InlineCompletionList",0,eS,"InlineCompletionTriggerKind",0,eb,"InlineValueContext",0,em,"InlineValueEvaluatableExpression",0,ep,"InlineValueText",0,eh,"InlineValueVariableLookup",0,eg,"InsertReplaceEdit",0,H,"InsertTextFormat",0,N,"InsertTextMode",0,U,"Location",0,a,"LocationLink",0,l,"MarkedString",0,z,"MarkupContent",0,F,"MarkupKind",0,L,"OptionalVersionedTextDocumentIdentifier",0,A,"ParameterInformation",0,V,"Position",0,o,"Range",0,s,"RenameFile",0,k,"SelectedCompletionInfo",0,ew,"SelectionRange",0,el,"SemanticTokenModifiers",0,ed,"SemanticTokenTypes",0,ec,"SemanticTokens",0,eu,"SignatureInformation",0,B,"StringValue",0,ey,"SymbolInformation",0,X,"SymbolKind",0,J,"SymbolTag",0,Y,"TextDocument",0,eE,"TextDocumentEdit",0,D,"TextDocumentIdentifier",0,P,"TextDocumentItem",0,M,"TextEdit",0,S,"URI",0,i,"VersionedTextDocumentIdentifier",0,I,"WorkspaceChange",0,class{constructor(e){this._textEditChanges=Object.create(null),void 0!==e?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new tb(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(e=>{if(D.is(e)){let t=new tS(e.edits,this._changeAnnotations);this._textEditChanges[e.textDocument.uri]=t}})):e.changes&&Object.keys(e.changes).forEach(t=>{let i=new tS(e.changes[t]);this._textEditChanges[t]=i})):this._workspaceEdit={}}get edit(){return this.initDocumentChanges(),void 0!==this._changeAnnotations&&(0===this._changeAnnotations.size?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit}getTextEditChange(e){if(A.is(e)){if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");let t={uri:e.uri,version:e.version},i=this._textEditChanges[t.uri];if(!i){let e=[];this._workspaceEdit.documentChanges.push({textDocument:t,edits:e}),i=new tS(e,this._changeAnnotations),this._textEditChanges[t.uri]=i}return i}{if(this.initChanges(),void 0===this._workspaceEdit.changes)throw Error("Workspace edit is not configured for normal text edit changes.");let t=this._textEditChanges[e];if(!t){let i=[];this._workspaceEdit.changes[e]=i,t=new tS(i),this._textEditChanges[e]=t}return t}}initDocumentChanges(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._changeAnnotations=new tb,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())}initChanges(){void 0===this._workspaceEdit.documentChanges&&void 0===this._workspaceEdit.changes&&(this._workspaceEdit.changes=Object.create(null))}createFile(e,t,i){let r,n,o;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(b.is(t)||w.is(t)?r=t:i=t,void 0===r?n=E.create(e,i):(o=w.is(r)?r:this._changeAnnotations.manage(r),n=E.create(e,i,o)),this._workspaceEdit.documentChanges.push(n),void 0!==o)return o}renameFile(e,t,i,r){let n,o,s;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(b.is(i)||w.is(i)?n=i:r=i,void 0===n?o=k.create(e,t,r):(s=w.is(n)?n:this._changeAnnotations.manage(n),o=k.create(e,t,r,s)),this._workspaceEdit.documentChanges.push(o),void 0!==s)return s}deleteFile(e,t,i){let r,n,o;if(this.initDocumentChanges(),void 0===this._workspaceEdit.documentChanges)throw Error("Workspace edit is not configured for document changes.");if(b.is(t)||w.is(t)?r=t:i=t,void 0===r?n=T.create(e,i):(o=w.is(r)?r:this._changeAnnotations.manage(r),n=T.create(e,i,o)),this._workspaceEdit.documentChanges.push(n),void 0!==o)return o}},"WorkspaceEdit",0,R,"WorkspaceFolder",0,eD,"WorkspaceSymbol",0,Z,"integer",0,r,"uinteger",0,n])},506659,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.ProtocolNotificationType=i.ProtocolNotificationType0=i.ProtocolRequestType=i.ProtocolRequestType0=i.RegistrationType=i.MessageDirection=void 0;let o=e.r(304877);(n=r||(i.MessageDirection=r={})).clientToServer="clientToServer",n.serverToClient="serverToClient",n.both="both",i.RegistrationType=class{constructor(e){this.method=e}};class s extends o.RequestType0{constructor(e){super(e)}}i.ProtocolRequestType0=s;class a extends o.RequestType{constructor(e){super(e,o.ParameterStructures.byName)}}i.ProtocolRequestType=a;class l extends o.NotificationType0{constructor(e){super(e)}}i.ProtocolNotificationType0=l;class c extends o.NotificationType{constructor(e){super(e,o.ParameterStructures.byName)}}i.ProtocolNotificationType=c},600082,(e,t,i)=>{"use strict";function r(e){return"string"==typeof e||e instanceof String}function n(e){return Array.isArray(e)}Object.defineProperty(i,"__esModule",{value:!0}),i.objectLiteral=i.typedArray=i.stringArray=i.array=i.func=i.error=i.number=i.string=i.boolean=void 0,i.boolean=function(e){return!0===e||!1===e},i.string=r,i.number=function(e){return"number"==typeof e||e instanceof Number},i.error=function(e){return e instanceof Error},i.func=function(e){return"function"==typeof e},i.array=n,i.stringArray=function(e){return n(e)&&e.every(e=>r(e))},i.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)},i.objectLiteral=function(e){return null!==e&&"object"==typeof e}},621568,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.ImplementationRequest=void 0;let o=e.r(506659);(n=r||(i.ImplementationRequest=r={})).method="textDocument/implementation",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)},444062,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.TypeDefinitionRequest=void 0;let o=e.r(506659);(n=r||(i.TypeDefinitionRequest=r={})).method="textDocument/typeDefinition",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)},292254,(e,t,i)=>{"use strict";var r,n,o,s;Object.defineProperty(i,"__esModule",{value:!0}),i.DidChangeWorkspaceFoldersNotification=i.WorkspaceFoldersRequest=void 0;let a=e.r(506659);(o=r||(i.WorkspaceFoldersRequest=r={})).method="workspace/workspaceFolders",o.messageDirection=a.MessageDirection.serverToClient,o.type=new a.ProtocolRequestType0(o.method),(s=n||(i.DidChangeWorkspaceFoldersNotification=n={})).method="workspace/didChangeWorkspaceFolders",s.messageDirection=a.MessageDirection.clientToServer,s.type=new a.ProtocolNotificationType(s.method)},656642,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.ConfigurationRequest=void 0;let o=e.r(506659);(n=r||(i.ConfigurationRequest=r={})).method="workspace/configuration",n.messageDirection=o.MessageDirection.serverToClient,n.type=new o.ProtocolRequestType(n.method)},818145,(e,t,i)=>{"use strict";var r,n,o,s;Object.defineProperty(i,"__esModule",{value:!0}),i.ColorPresentationRequest=i.DocumentColorRequest=void 0;let a=e.r(506659);(o=r||(i.DocumentColorRequest=r={})).method="textDocument/documentColor",o.messageDirection=a.MessageDirection.clientToServer,o.type=new a.ProtocolRequestType(o.method),(s=n||(i.ColorPresentationRequest=n={})).method="textDocument/colorPresentation",s.messageDirection=a.MessageDirection.clientToServer,s.type=new a.ProtocolRequestType(s.method)},647203,(e,t,i)=>{"use strict";var r,n,o,s;Object.defineProperty(i,"__esModule",{value:!0}),i.FoldingRangeRefreshRequest=i.FoldingRangeRequest=void 0;let a=e.r(506659);(o=r||(i.FoldingRangeRequest=r={})).method="textDocument/foldingRange",o.messageDirection=a.MessageDirection.clientToServer,o.type=new a.ProtocolRequestType(o.method),(s=n||(i.FoldingRangeRefreshRequest=n={})).method="workspace/foldingRange/refresh",s.messageDirection=a.MessageDirection.serverToClient,s.type=new a.ProtocolRequestType0(s.method)},261435,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.DeclarationRequest=void 0;let o=e.r(506659);(n=r||(i.DeclarationRequest=r={})).method="textDocument/declaration",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)},547439,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.SelectionRangeRequest=void 0;let o=e.r(506659);(n=r||(i.SelectionRangeRequest=r={})).method="textDocument/selectionRange",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)},583147,(e,t,i)=>{"use strict";var r,n,o,s,a,l;Object.defineProperty(i,"__esModule",{value:!0}),i.WorkDoneProgressCancelNotification=i.WorkDoneProgressCreateRequest=i.WorkDoneProgress=void 0;let c=e.r(304877),d=e.r(506659);(s=r||(i.WorkDoneProgress=r={})).type=new c.ProgressType,s.is=function(e){return e===s.type},(a=n||(i.WorkDoneProgressCreateRequest=n={})).method="window/workDoneProgress/create",a.messageDirection=d.MessageDirection.serverToClient,a.type=new d.ProtocolRequestType(a.method),(l=o||(i.WorkDoneProgressCancelNotification=o={})).method="window/workDoneProgress/cancel",l.messageDirection=d.MessageDirection.clientToServer,l.type=new d.ProtocolNotificationType(l.method)},181305,(e,t,i)=>{"use strict";var r,n,o,s,a,l;Object.defineProperty(i,"__esModule",{value:!0}),i.CallHierarchyOutgoingCallsRequest=i.CallHierarchyIncomingCallsRequest=i.CallHierarchyPrepareRequest=void 0;let c=e.r(506659);(s=r||(i.CallHierarchyPrepareRequest=r={})).method="textDocument/prepareCallHierarchy",s.messageDirection=c.MessageDirection.clientToServer,s.type=new c.ProtocolRequestType(s.method),(a=n||(i.CallHierarchyIncomingCallsRequest=n={})).method="callHierarchy/incomingCalls",a.messageDirection=c.MessageDirection.clientToServer,a.type=new c.ProtocolRequestType(a.method),(l=o||(i.CallHierarchyOutgoingCallsRequest=o={})).method="callHierarchy/outgoingCalls",l.messageDirection=c.MessageDirection.clientToServer,l.type=new c.ProtocolRequestType(l.method)},582717,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h,g;Object.defineProperty(i,"__esModule",{value:!0}),i.SemanticTokensRefreshRequest=i.SemanticTokensRangeRequest=i.SemanticTokensDeltaRequest=i.SemanticTokensRequest=i.SemanticTokensRegistrationType=i.TokenFormat=void 0;let p=e.r(506659);(r||(i.TokenFormat=r={})).Relative="relative",(c=n||(i.SemanticTokensRegistrationType=n={})).method="textDocument/semanticTokens",c.type=new p.RegistrationType(c.method),(d=o||(i.SemanticTokensRequest=o={})).method="textDocument/semanticTokens/full",d.messageDirection=p.MessageDirection.clientToServer,d.type=new p.ProtocolRequestType(d.method),d.registrationMethod=n.method,(u=s||(i.SemanticTokensDeltaRequest=s={})).method="textDocument/semanticTokens/full/delta",u.messageDirection=p.MessageDirection.clientToServer,u.type=new p.ProtocolRequestType(u.method),u.registrationMethod=n.method,(h=a||(i.SemanticTokensRangeRequest=a={})).method="textDocument/semanticTokens/range",h.messageDirection=p.MessageDirection.clientToServer,h.type=new p.ProtocolRequestType(h.method),h.registrationMethod=n.method,(g=l||(i.SemanticTokensRefreshRequest=l={})).method="workspace/semanticTokens/refresh",g.messageDirection=p.MessageDirection.serverToClient,g.type=new p.ProtocolRequestType0(g.method)},608803,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.ShowDocumentRequest=void 0;let o=e.r(506659);(n=r||(i.ShowDocumentRequest=r={})).method="window/showDocument",n.messageDirection=o.MessageDirection.serverToClient,n.type=new o.ProtocolRequestType(n.method)},475767,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.LinkedEditingRangeRequest=void 0;let o=e.r(506659);(n=r||(i.LinkedEditingRangeRequest=r={})).method="textDocument/linkedEditingRange",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)},565285,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h,g,p,m,f;Object.defineProperty(i,"__esModule",{value:!0}),i.WillDeleteFilesRequest=i.DidDeleteFilesNotification=i.DidRenameFilesNotification=i.WillRenameFilesRequest=i.DidCreateFilesNotification=i.WillCreateFilesRequest=i.FileOperationPatternKind=void 0;let _=e.r(506659);(d=r||(i.FileOperationPatternKind=r={})).file="file",d.folder="folder",(u=n||(i.WillCreateFilesRequest=n={})).method="workspace/willCreateFiles",u.messageDirection=_.MessageDirection.clientToServer,u.type=new _.ProtocolRequestType(u.method),(h=o||(i.DidCreateFilesNotification=o={})).method="workspace/didCreateFiles",h.messageDirection=_.MessageDirection.clientToServer,h.type=new _.ProtocolNotificationType(h.method),(g=s||(i.WillRenameFilesRequest=s={})).method="workspace/willRenameFiles",g.messageDirection=_.MessageDirection.clientToServer,g.type=new _.ProtocolRequestType(g.method),(p=a||(i.DidRenameFilesNotification=a={})).method="workspace/didRenameFiles",p.messageDirection=_.MessageDirection.clientToServer,p.type=new _.ProtocolNotificationType(p.method),(m=l||(i.DidDeleteFilesNotification=l={})).method="workspace/didDeleteFiles",m.messageDirection=_.MessageDirection.clientToServer,m.type=new _.ProtocolNotificationType(m.method),(f=c||(i.WillDeleteFilesRequest=c={})).method="workspace/willDeleteFiles",f.messageDirection=_.MessageDirection.clientToServer,f.type=new _.ProtocolRequestType(f.method)},674779,(e,t,i)=>{"use strict";var r,n,o,s,a,l;Object.defineProperty(i,"__esModule",{value:!0}),i.MonikerRequest=i.MonikerKind=i.UniquenessLevel=void 0;let c=e.r(506659);(s=r||(i.UniquenessLevel=r={})).document="document",s.project="project",s.group="group",s.scheme="scheme",s.global="global",(a=n||(i.MonikerKind=n={})).$import="import",a.$export="export",a.local="local",(l=o||(i.MonikerRequest=o={})).method="textDocument/moniker",l.messageDirection=c.MessageDirection.clientToServer,l.type=new c.ProtocolRequestType(l.method)},509523,(e,t,i)=>{"use strict";var r,n,o,s,a,l;Object.defineProperty(i,"__esModule",{value:!0}),i.TypeHierarchySubtypesRequest=i.TypeHierarchySupertypesRequest=i.TypeHierarchyPrepareRequest=void 0;let c=e.r(506659);(s=r||(i.TypeHierarchyPrepareRequest=r={})).method="textDocument/prepareTypeHierarchy",s.messageDirection=c.MessageDirection.clientToServer,s.type=new c.ProtocolRequestType(s.method),(a=n||(i.TypeHierarchySupertypesRequest=n={})).method="typeHierarchy/supertypes",a.messageDirection=c.MessageDirection.clientToServer,a.type=new c.ProtocolRequestType(a.method),(l=o||(i.TypeHierarchySubtypesRequest=o={})).method="typeHierarchy/subtypes",l.messageDirection=c.MessageDirection.clientToServer,l.type=new c.ProtocolRequestType(l.method)},639406,(e,t,i)=>{"use strict";var r,n,o,s;Object.defineProperty(i,"__esModule",{value:!0}),i.InlineValueRefreshRequest=i.InlineValueRequest=void 0;let a=e.r(506659);(o=r||(i.InlineValueRequest=r={})).method="textDocument/inlineValue",o.messageDirection=a.MessageDirection.clientToServer,o.type=new a.ProtocolRequestType(o.method),(s=n||(i.InlineValueRefreshRequest=n={})).method="workspace/inlineValue/refresh",s.messageDirection=a.MessageDirection.serverToClient,s.type=new a.ProtocolRequestType0(s.method)},172779,(e,t,i)=>{"use strict";var r,n,o,s,a,l;Object.defineProperty(i,"__esModule",{value:!0}),i.InlayHintRefreshRequest=i.InlayHintResolveRequest=i.InlayHintRequest=void 0;let c=e.r(506659);(s=r||(i.InlayHintRequest=r={})).method="textDocument/inlayHint",s.messageDirection=c.MessageDirection.clientToServer,s.type=new c.ProtocolRequestType(s.method),(a=n||(i.InlayHintResolveRequest=n={})).method="inlayHint/resolve",a.messageDirection=c.MessageDirection.clientToServer,a.type=new c.ProtocolRequestType(a.method),(l=o||(i.InlayHintRefreshRequest=o={})).method="workspace/inlayHint/refresh",l.messageDirection=c.MessageDirection.serverToClient,l.type=new c.ProtocolRequestType0(l.method)},116681,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u;Object.defineProperty(i,"__esModule",{value:!0}),i.DiagnosticRefreshRequest=i.WorkspaceDiagnosticRequest=i.DocumentDiagnosticRequest=i.DocumentDiagnosticReportKind=i.DiagnosticServerCancellationData=void 0;let h=e.r(304877),g=e.r(600082),p=e.r(506659);(r||(i.DiagnosticServerCancellationData=r={})).is=function(e){return e&&g.boolean(e.retriggerRequest)},(l=n||(i.DocumentDiagnosticReportKind=n={})).Full="full",l.Unchanged="unchanged",(c=o||(i.DocumentDiagnosticRequest=o={})).method="textDocument/diagnostic",c.messageDirection=p.MessageDirection.clientToServer,c.type=new p.ProtocolRequestType(c.method),c.partialResult=new h.ProgressType,(d=s||(i.WorkspaceDiagnosticRequest=s={})).method="workspace/diagnostic",d.messageDirection=p.MessageDirection.clientToServer,d.type=new p.ProtocolRequestType(d.method),d.partialResult=new h.ProgressType,(u=a||(i.DiagnosticRefreshRequest=a={})).method="workspace/diagnostic/refresh",u.messageDirection=p.MessageDirection.serverToClient,u.type=new p.ProtocolRequestType0(u.method)},313847,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h,g,p,m,f,_,y,C,S,b,w;Object.defineProperty(i,"__esModule",{value:!0}),i.DidCloseNotebookDocumentNotification=i.DidSaveNotebookDocumentNotification=i.DidChangeNotebookDocumentNotification=i.NotebookCellArrayChange=i.DidOpenNotebookDocumentNotification=i.NotebookDocumentSyncRegistrationType=i.NotebookDocument=i.NotebookCell=i.ExecutionSummary=i.NotebookCellKind=void 0;let x=e.r(801971),D=e.r(600082),E=e.r(506659);(g=r||(i.NotebookCellKind=r={})).Markup=1,g.Code=2,g.is=function(e){return 1===e||2===e},(p=n||(i.ExecutionSummary=n={})).create=function(e,t){let i={executionOrder:e};return(!0===t||!1===t)&&(i.success=t),i},p.is=function(e){return D.objectLiteral(e)&&x.uinteger.is(e.executionOrder)&&(void 0===e.success||D.boolean(e.success))},p.equals=function(e,t){return e===t||null!=e&&null!=t&&e.executionOrder===t.executionOrder&&e.success===t.success},(m=o||(i.NotebookCell=o={})).create=function(e,t){return{kind:e,document:t}},m.is=function(e){return D.objectLiteral(e)&&r.is(e.kind)&&x.DocumentUri.is(e.document)&&(void 0===e.metadata||D.objectLiteral(e.metadata))},m.diff=function(e,t){let i=new Set;return e.document!==t.document&&i.add("document"),e.kind!==t.kind&&i.add("kind"),e.executionSummary!==t.executionSummary&&i.add("executionSummary"),(void 0!==e.metadata||void 0!==t.metadata)&&!function e(t,i){if(t===i)return!0;if(null==t||null==i||typeof t!=typeof i||"object"!=typeof t)return!1;let r=Array.isArray(t),n=Array.isArray(i);if(r!==n)return!1;if(r&&n){if(t.length!==i.length)return!1;for(let r=0;r<t.length;r++)if(!e(t[r],i[r]))return!1}if(D.objectLiteral(t)&&D.objectLiteral(i)){let r=Object.keys(t),n=Object.keys(i);if(r.length!==n.length||(r.sort(),n.sort(),!e(r,n)))return!1;for(let n=0;n<r.length;n++){let o=r[n];if(!e(t[o],i[o]))return!1}}return!0}(e.metadata,t.metadata)&&i.add("metadata"),void 0===e.executionSummary&&void 0===t.executionSummary||n.equals(e.executionSummary,t.executionSummary)||i.add("executionSummary"),i},(f=s||(i.NotebookDocument=s={})).create=function(e,t,i,r){return{uri:e,notebookType:t,version:i,cells:r}},f.is=function(e){return D.objectLiteral(e)&&D.string(e.uri)&&x.integer.is(e.version)&&D.typedArray(e.cells,o.is)},(_=a||(i.NotebookDocumentSyncRegistrationType=a={})).method="notebookDocument/sync",_.messageDirection=E.MessageDirection.clientToServer,_.type=new E.RegistrationType(_.method),(y=l||(i.DidOpenNotebookDocumentNotification=l={})).method="notebookDocument/didOpen",y.messageDirection=E.MessageDirection.clientToServer,y.type=new E.ProtocolNotificationType(y.method),y.registrationMethod=a.method,(C=c||(i.NotebookCellArrayChange=c={})).is=function(e){return D.objectLiteral(e)&&x.uinteger.is(e.start)&&x.uinteger.is(e.deleteCount)&&(void 0===e.cells||D.typedArray(e.cells,o.is))},C.create=function(e,t,i){let r={start:e,deleteCount:t};return void 0!==i&&(r.cells=i),r},(S=d||(i.DidChangeNotebookDocumentNotification=d={})).method="notebookDocument/didChange",S.messageDirection=E.MessageDirection.clientToServer,S.type=new E.ProtocolNotificationType(S.method),S.registrationMethod=a.method,(b=u||(i.DidSaveNotebookDocumentNotification=u={})).method="notebookDocument/didSave",b.messageDirection=E.MessageDirection.clientToServer,b.type=new E.ProtocolNotificationType(b.method),b.registrationMethod=a.method,(w=h||(i.DidCloseNotebookDocumentNotification=h={})).method="notebookDocument/didClose",w.messageDirection=E.MessageDirection.clientToServer,w.type=new E.ProtocolNotificationType(w.method),w.registrationMethod=a.method},591594,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.InlineCompletionRequest=void 0;let o=e.r(506659);(n=r||(i.InlineCompletionRequest=r={})).method="textDocument/inlineCompletion",n.messageDirection=o.MessageDirection.clientToServer,n.type=new o.ProtocolRequestType(n.method)},466754,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h,g,p,m,f,_,y,C,S,b,w,x,D,E,k,T,R,P,I,A,M,L,F,O,N,$,H,U,W,q,j,z,K,V,B,G,Q,J,Y,X,Z,ee,et,ei,er,en,eo,es,ea,el,ec,ed,eu,eh,eg,ep,em,ef,ev,e_,ey,eC,eS,eb,ew,ex,eD,eE,ek,eT,eR,eP,eI,eA,eM,eL,eF,eO,eN,e$,eH,eU,eW,eq,ej,ez,eK,eV,eB,eG,eQ,eJ,eY,eX,eZ,e0,e1,e2,e6,e3,e4,e5,e8,e7,e9,te,tt,ti,tr,tn,to,ts;Object.defineProperty(i,"__esModule",{value:!0}),i.WorkspaceSymbolRequest=i.CodeActionResolveRequest=i.CodeActionRequest=i.DocumentSymbolRequest=i.DocumentHighlightRequest=i.ReferencesRequest=i.DefinitionRequest=i.SignatureHelpRequest=i.SignatureHelpTriggerKind=i.HoverRequest=i.CompletionResolveRequest=i.CompletionRequest=i.CompletionTriggerKind=i.PublishDiagnosticsNotification=i.WatchKind=i.RelativePattern=i.FileChangeType=i.DidChangeWatchedFilesNotification=i.WillSaveTextDocumentWaitUntilRequest=i.WillSaveTextDocumentNotification=i.TextDocumentSaveReason=i.DidSaveTextDocumentNotification=i.DidCloseTextDocumentNotification=i.DidChangeTextDocumentNotification=i.TextDocumentContentChangeEvent=i.DidOpenTextDocumentNotification=i.TextDocumentSyncKind=i.TelemetryEventNotification=i.LogMessageNotification=i.ShowMessageRequest=i.ShowMessageNotification=i.MessageType=i.DidChangeConfigurationNotification=i.ExitNotification=i.ShutdownRequest=i.InitializedNotification=i.InitializeErrorCodes=i.InitializeRequest=i.WorkDoneProgressOptions=i.TextDocumentRegistrationOptions=i.StaticRegistrationOptions=i.PositionEncodingKind=i.FailureHandlingKind=i.ResourceOperationKind=i.UnregistrationRequest=i.RegistrationRequest=i.DocumentSelector=i.NotebookCellTextDocumentFilter=i.NotebookDocumentFilter=i.TextDocumentFilter=void 0,i.MonikerRequest=i.MonikerKind=i.UniquenessLevel=i.WillDeleteFilesRequest=i.DidDeleteFilesNotification=i.WillRenameFilesRequest=i.DidRenameFilesNotification=i.WillCreateFilesRequest=i.DidCreateFilesNotification=i.FileOperationPatternKind=i.LinkedEditingRangeRequest=i.ShowDocumentRequest=i.SemanticTokensRegistrationType=i.SemanticTokensRefreshRequest=i.SemanticTokensRangeRequest=i.SemanticTokensDeltaRequest=i.SemanticTokensRequest=i.TokenFormat=i.CallHierarchyPrepareRequest=i.CallHierarchyOutgoingCallsRequest=i.CallHierarchyIncomingCallsRequest=i.WorkDoneProgressCancelNotification=i.WorkDoneProgressCreateRequest=i.WorkDoneProgress=i.SelectionRangeRequest=i.DeclarationRequest=i.FoldingRangeRefreshRequest=i.FoldingRangeRequest=i.ColorPresentationRequest=i.DocumentColorRequest=i.ConfigurationRequest=i.DidChangeWorkspaceFoldersNotification=i.WorkspaceFoldersRequest=i.TypeDefinitionRequest=i.ImplementationRequest=i.ApplyWorkspaceEditRequest=i.ExecuteCommandRequest=i.PrepareRenameRequest=i.RenameRequest=i.PrepareSupportDefaultBehavior=i.DocumentOnTypeFormattingRequest=i.DocumentRangesFormattingRequest=i.DocumentRangeFormattingRequest=i.DocumentFormattingRequest=i.DocumentLinkResolveRequest=i.DocumentLinkRequest=i.CodeLensRefreshRequest=i.CodeLensResolveRequest=i.CodeLensRequest=i.WorkspaceSymbolResolveRequest=void 0,i.InlineCompletionRequest=i.DidCloseNotebookDocumentNotification=i.DidSaveNotebookDocumentNotification=i.DidChangeNotebookDocumentNotification=i.NotebookCellArrayChange=i.DidOpenNotebookDocumentNotification=i.NotebookDocumentSyncRegistrationType=i.NotebookDocument=i.NotebookCell=i.ExecutionSummary=i.NotebookCellKind=i.DiagnosticRefreshRequest=i.WorkspaceDiagnosticRequest=i.DocumentDiagnosticRequest=i.DocumentDiagnosticReportKind=i.DiagnosticServerCancellationData=i.InlayHintRefreshRequest=i.InlayHintResolveRequest=i.InlayHintRequest=i.InlineValueRefreshRequest=i.InlineValueRequest=i.TypeHierarchySupertypesRequest=i.TypeHierarchySubtypesRequest=i.TypeHierarchyPrepareRequest=void 0;let ta=e.r(506659),tl=e.r(801971),tc=e.r(600082),td=e.r(621568);Object.defineProperty(i,"ImplementationRequest",{enumerable:!0,get:function(){return td.ImplementationRequest}});let tu=e.r(444062);Object.defineProperty(i,"TypeDefinitionRequest",{enumerable:!0,get:function(){return tu.TypeDefinitionRequest}});let th=e.r(292254);Object.defineProperty(i,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return th.WorkspaceFoldersRequest}}),Object.defineProperty(i,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return th.DidChangeWorkspaceFoldersNotification}});let tg=e.r(656642);Object.defineProperty(i,"ConfigurationRequest",{enumerable:!0,get:function(){return tg.ConfigurationRequest}});let tp=e.r(818145);Object.defineProperty(i,"DocumentColorRequest",{enumerable:!0,get:function(){return tp.DocumentColorRequest}}),Object.defineProperty(i,"ColorPresentationRequest",{enumerable:!0,get:function(){return tp.ColorPresentationRequest}});let tm=e.r(647203);Object.defineProperty(i,"FoldingRangeRequest",{enumerable:!0,get:function(){return tm.FoldingRangeRequest}}),Object.defineProperty(i,"FoldingRangeRefreshRequest",{enumerable:!0,get:function(){return tm.FoldingRangeRefreshRequest}});let tf=e.r(261435);Object.defineProperty(i,"DeclarationRequest",{enumerable:!0,get:function(){return tf.DeclarationRequest}});let tv=e.r(547439);Object.defineProperty(i,"SelectionRangeRequest",{enumerable:!0,get:function(){return tv.SelectionRangeRequest}});let t_=e.r(583147);Object.defineProperty(i,"WorkDoneProgress",{enumerable:!0,get:function(){return t_.WorkDoneProgress}}),Object.defineProperty(i,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return t_.WorkDoneProgressCreateRequest}}),Object.defineProperty(i,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return t_.WorkDoneProgressCancelNotification}});let ty=e.r(181305);Object.defineProperty(i,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return ty.CallHierarchyIncomingCallsRequest}}),Object.defineProperty(i,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return ty.CallHierarchyOutgoingCallsRequest}}),Object.defineProperty(i,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return ty.CallHierarchyPrepareRequest}});let tC=e.r(582717);Object.defineProperty(i,"TokenFormat",{enumerable:!0,get:function(){return tC.TokenFormat}}),Object.defineProperty(i,"SemanticTokensRequest",{enumerable:!0,get:function(){return tC.SemanticTokensRequest}}),Object.defineProperty(i,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return tC.SemanticTokensDeltaRequest}}),Object.defineProperty(i,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return tC.SemanticTokensRangeRequest}}),Object.defineProperty(i,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return tC.SemanticTokensRefreshRequest}}),Object.defineProperty(i,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return tC.SemanticTokensRegistrationType}});let tS=e.r(608803);Object.defineProperty(i,"ShowDocumentRequest",{enumerable:!0,get:function(){return tS.ShowDocumentRequest}});let tb=e.r(475767);Object.defineProperty(i,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return tb.LinkedEditingRangeRequest}});let tw=e.r(565285);Object.defineProperty(i,"FileOperationPatternKind",{enumerable:!0,get:function(){return tw.FileOperationPatternKind}}),Object.defineProperty(i,"DidCreateFilesNotification",{enumerable:!0,get:function(){return tw.DidCreateFilesNotification}}),Object.defineProperty(i,"WillCreateFilesRequest",{enumerable:!0,get:function(){return tw.WillCreateFilesRequest}}),Object.defineProperty(i,"DidRenameFilesNotification",{enumerable:!0,get:function(){return tw.DidRenameFilesNotification}}),Object.defineProperty(i,"WillRenameFilesRequest",{enumerable:!0,get:function(){return tw.WillRenameFilesRequest}}),Object.defineProperty(i,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return tw.DidDeleteFilesNotification}}),Object.defineProperty(i,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return tw.WillDeleteFilesRequest}});let tx=e.r(674779);Object.defineProperty(i,"UniquenessLevel",{enumerable:!0,get:function(){return tx.UniquenessLevel}}),Object.defineProperty(i,"MonikerKind",{enumerable:!0,get:function(){return tx.MonikerKind}}),Object.defineProperty(i,"MonikerRequest",{enumerable:!0,get:function(){return tx.MonikerRequest}});let tD=e.r(509523);Object.defineProperty(i,"TypeHierarchyPrepareRequest",{enumerable:!0,get:function(){return tD.TypeHierarchyPrepareRequest}}),Object.defineProperty(i,"TypeHierarchySubtypesRequest",{enumerable:!0,get:function(){return tD.TypeHierarchySubtypesRequest}}),Object.defineProperty(i,"TypeHierarchySupertypesRequest",{enumerable:!0,get:function(){return tD.TypeHierarchySupertypesRequest}});let tE=e.r(639406);Object.defineProperty(i,"InlineValueRequest",{enumerable:!0,get:function(){return tE.InlineValueRequest}}),Object.defineProperty(i,"InlineValueRefreshRequest",{enumerable:!0,get:function(){return tE.InlineValueRefreshRequest}});let tk=e.r(172779);Object.defineProperty(i,"InlayHintRequest",{enumerable:!0,get:function(){return tk.InlayHintRequest}}),Object.defineProperty(i,"InlayHintResolveRequest",{enumerable:!0,get:function(){return tk.InlayHintResolveRequest}}),Object.defineProperty(i,"InlayHintRefreshRequest",{enumerable:!0,get:function(){return tk.InlayHintRefreshRequest}});let tT=e.r(116681);Object.defineProperty(i,"DiagnosticServerCancellationData",{enumerable:!0,get:function(){return tT.DiagnosticServerCancellationData}}),Object.defineProperty(i,"DocumentDiagnosticReportKind",{enumerable:!0,get:function(){return tT.DocumentDiagnosticReportKind}}),Object.defineProperty(i,"DocumentDiagnosticRequest",{enumerable:!0,get:function(){return tT.DocumentDiagnosticRequest}}),Object.defineProperty(i,"WorkspaceDiagnosticRequest",{enumerable:!0,get:function(){return tT.WorkspaceDiagnosticRequest}}),Object.defineProperty(i,"DiagnosticRefreshRequest",{enumerable:!0,get:function(){return tT.DiagnosticRefreshRequest}});let tR=e.r(313847);Object.defineProperty(i,"NotebookCellKind",{enumerable:!0,get:function(){return tR.NotebookCellKind}}),Object.defineProperty(i,"ExecutionSummary",{enumerable:!0,get:function(){return tR.ExecutionSummary}}),Object.defineProperty(i,"NotebookCell",{enumerable:!0,get:function(){return tR.NotebookCell}}),Object.defineProperty(i,"NotebookDocument",{enumerable:!0,get:function(){return tR.NotebookDocument}}),Object.defineProperty(i,"NotebookDocumentSyncRegistrationType",{enumerable:!0,get:function(){return tR.NotebookDocumentSyncRegistrationType}}),Object.defineProperty(i,"DidOpenNotebookDocumentNotification",{enumerable:!0,get:function(){return tR.DidOpenNotebookDocumentNotification}}),Object.defineProperty(i,"NotebookCellArrayChange",{enumerable:!0,get:function(){return tR.NotebookCellArrayChange}}),Object.defineProperty(i,"DidChangeNotebookDocumentNotification",{enumerable:!0,get:function(){return tR.DidChangeNotebookDocumentNotification}}),Object.defineProperty(i,"DidSaveNotebookDocumentNotification",{enumerable:!0,get:function(){return tR.DidSaveNotebookDocumentNotification}}),Object.defineProperty(i,"DidCloseNotebookDocumentNotification",{enumerable:!0,get:function(){return tR.DidCloseNotebookDocumentNotification}});let tP=e.r(591594);Object.defineProperty(i,"InlineCompletionRequest",{enumerable:!0,get:function(){return tP.InlineCompletionRequest}}),(r||(i.TextDocumentFilter=r={})).is=function(e){return tc.string(e)||tc.string(e.language)||tc.string(e.scheme)||tc.string(e.pattern)},(n||(i.NotebookDocumentFilter=n={})).is=function(e){return tc.objectLiteral(e)&&(tc.string(e.notebookType)||tc.string(e.scheme)||tc.string(e.pattern))},(o||(i.NotebookCellTextDocumentFilter=o={})).is=function(e){return tc.objectLiteral(e)&&(tc.string(e.notebook)||n.is(e.notebook))&&(void 0===e.language||tc.string(e.language))},(s||(i.DocumentSelector=s={})).is=function(e){if(!Array.isArray(e))return!1;for(let t of e)if(!tc.string(t)&&!r.is(t)&&!o.is(t))return!1;return!0},(em=a||(i.RegistrationRequest=a={})).method="client/registerCapability",em.messageDirection=ta.MessageDirection.serverToClient,em.type=new ta.ProtocolRequestType(em.method),(ef=l||(i.UnregistrationRequest=l={})).method="client/unregisterCapability",ef.messageDirection=ta.MessageDirection.serverToClient,ef.type=new ta.ProtocolRequestType(ef.method),(ev=c||(i.ResourceOperationKind=c={})).Create="create",ev.Rename="rename",ev.Delete="delete",(e_=d||(i.FailureHandlingKind=d={})).Abort="abort",e_.Transactional="transactional",e_.TextOnlyTransactional="textOnlyTransactional",e_.Undo="undo",(ey=u||(i.PositionEncodingKind=u={})).UTF8="utf-8",ey.UTF16="utf-16",ey.UTF32="utf-32",(h||(i.StaticRegistrationOptions=h={})).hasId=function(e){return e&&tc.string(e.id)&&e.id.length>0},(g||(i.TextDocumentRegistrationOptions=g={})).is=function(e){return e&&(null===e.documentSelector||s.is(e.documentSelector))},(eC=p||(i.WorkDoneProgressOptions=p={})).is=function(e){return tc.objectLiteral(e)&&(void 0===e.workDoneProgress||tc.boolean(e.workDoneProgress))},eC.hasWorkDoneProgress=function(e){return e&&tc.boolean(e.workDoneProgress)},(eS=m||(i.InitializeRequest=m={})).method="initialize",eS.messageDirection=ta.MessageDirection.clientToServer,eS.type=new ta.ProtocolRequestType(eS.method),(f||(i.InitializeErrorCodes=f={})).unknownProtocolVersion=1,(eb=_||(i.InitializedNotification=_={})).method="initialized",eb.messageDirection=ta.MessageDirection.clientToServer,eb.type=new ta.ProtocolNotificationType(eb.method),(ew=y||(i.ShutdownRequest=y={})).method="shutdown",ew.messageDirection=ta.MessageDirection.clientToServer,ew.type=new ta.ProtocolRequestType0(ew.method),(ex=C||(i.ExitNotification=C={})).method="exit",ex.messageDirection=ta.MessageDirection.clientToServer,ex.type=new ta.ProtocolNotificationType0(ex.method),(eD=S||(i.DidChangeConfigurationNotification=S={})).method="workspace/didChangeConfiguration",eD.messageDirection=ta.MessageDirection.clientToServer,eD.type=new ta.ProtocolNotificationType(eD.method),(eE=b||(i.MessageType=b={})).Error=1,eE.Warning=2,eE.Info=3,eE.Log=4,eE.Debug=5,(ek=w||(i.ShowMessageNotification=w={})).method="window/showMessage",ek.messageDirection=ta.MessageDirection.serverToClient,ek.type=new ta.ProtocolNotificationType(ek.method),(eT=x||(i.ShowMessageRequest=x={})).method="window/showMessageRequest",eT.messageDirection=ta.MessageDirection.serverToClient,eT.type=new ta.ProtocolRequestType(eT.method),(eR=D||(i.LogMessageNotification=D={})).method="window/logMessage",eR.messageDirection=ta.MessageDirection.serverToClient,eR.type=new ta.ProtocolNotificationType(eR.method),(eP=E||(i.TelemetryEventNotification=E={})).method="telemetry/event",eP.messageDirection=ta.MessageDirection.serverToClient,eP.type=new ta.ProtocolNotificationType(eP.method),(eI=k||(i.TextDocumentSyncKind=k={})).None=0,eI.Full=1,eI.Incremental=2,(eA=T||(i.DidOpenTextDocumentNotification=T={})).method="textDocument/didOpen",eA.messageDirection=ta.MessageDirection.clientToServer,eA.type=new ta.ProtocolNotificationType(eA.method),(eM=R||(i.TextDocumentContentChangeEvent=R={})).isIncremental=function(e){return null!=e&&"string"==typeof e.text&&void 0!==e.range&&(void 0===e.rangeLength||"number"==typeof e.rangeLength)},eM.isFull=function(e){return null!=e&&"string"==typeof e.text&&void 0===e.range&&void 0===e.rangeLength},(eL=P||(i.DidChangeTextDocumentNotification=P={})).method="textDocument/didChange",eL.messageDirection=ta.MessageDirection.clientToServer,eL.type=new ta.ProtocolNotificationType(eL.method),(eF=I||(i.DidCloseTextDocumentNotification=I={})).method="textDocument/didClose",eF.messageDirection=ta.MessageDirection.clientToServer,eF.type=new ta.ProtocolNotificationType(eF.method),(eO=A||(i.DidSaveTextDocumentNotification=A={})).method="textDocument/didSave",eO.messageDirection=ta.MessageDirection.clientToServer,eO.type=new ta.ProtocolNotificationType(eO.method),(eN=M||(i.TextDocumentSaveReason=M={})).Manual=1,eN.AfterDelay=2,eN.FocusOut=3,(e$=L||(i.WillSaveTextDocumentNotification=L={})).method="textDocument/willSave",e$.messageDirection=ta.MessageDirection.clientToServer,e$.type=new ta.ProtocolNotificationType(e$.method),(eH=F||(i.WillSaveTextDocumentWaitUntilRequest=F={})).method="textDocument/willSaveWaitUntil",eH.messageDirection=ta.MessageDirection.clientToServer,eH.type=new ta.ProtocolRequestType(eH.method),(eU=O||(i.DidChangeWatchedFilesNotification=O={})).method="workspace/didChangeWatchedFiles",eU.messageDirection=ta.MessageDirection.clientToServer,eU.type=new ta.ProtocolNotificationType(eU.method),(eW=N||(i.FileChangeType=N={})).Created=1,eW.Changed=2,eW.Deleted=3,($||(i.RelativePattern=$={})).is=function(e){return tc.objectLiteral(e)&&(tl.URI.is(e.baseUri)||tl.WorkspaceFolder.is(e.baseUri))&&tc.string(e.pattern)},(eq=H||(i.WatchKind=H={})).Create=1,eq.Change=2,eq.Delete=4,(ej=U||(i.PublishDiagnosticsNotification=U={})).method="textDocument/publishDiagnostics",ej.messageDirection=ta.MessageDirection.serverToClient,ej.type=new ta.ProtocolNotificationType(ej.method),(ez=W||(i.CompletionTriggerKind=W={})).Invoked=1,ez.TriggerCharacter=2,ez.TriggerForIncompleteCompletions=3,(eK=q||(i.CompletionRequest=q={})).method="textDocument/completion",eK.messageDirection=ta.MessageDirection.clientToServer,eK.type=new ta.ProtocolRequestType(eK.method),(eV=j||(i.CompletionResolveRequest=j={})).method="completionItem/resolve",eV.messageDirection=ta.MessageDirection.clientToServer,eV.type=new ta.ProtocolRequestType(eV.method),(eB=z||(i.HoverRequest=z={})).method="textDocument/hover",eB.messageDirection=ta.MessageDirection.clientToServer,eB.type=new ta.ProtocolRequestType(eB.method),(eG=K||(i.SignatureHelpTriggerKind=K={})).Invoked=1,eG.TriggerCharacter=2,eG.ContentChange=3,(eQ=V||(i.SignatureHelpRequest=V={})).method="textDocument/signatureHelp",eQ.messageDirection=ta.MessageDirection.clientToServer,eQ.type=new ta.ProtocolRequestType(eQ.method),(eJ=B||(i.DefinitionRequest=B={})).method="textDocument/definition",eJ.messageDirection=ta.MessageDirection.clientToServer,eJ.type=new ta.ProtocolRequestType(eJ.method),(eY=G||(i.ReferencesRequest=G={})).method="textDocument/references",eY.messageDirection=ta.MessageDirection.clientToServer,eY.type=new ta.ProtocolRequestType(eY.method),(eX=Q||(i.DocumentHighlightRequest=Q={})).method="textDocument/documentHighlight",eX.messageDirection=ta.MessageDirection.clientToServer,eX.type=new ta.ProtocolRequestType(eX.method),(eZ=J||(i.DocumentSymbolRequest=J={})).method="textDocument/documentSymbol",eZ.messageDirection=ta.MessageDirection.clientToServer,eZ.type=new ta.ProtocolRequestType(eZ.method),(e0=Y||(i.CodeActionRequest=Y={})).method="textDocument/codeAction",e0.messageDirection=ta.MessageDirection.clientToServer,e0.type=new ta.ProtocolRequestType(e0.method),(e1=X||(i.CodeActionResolveRequest=X={})).method="codeAction/resolve",e1.messageDirection=ta.MessageDirection.clientToServer,e1.type=new ta.ProtocolRequestType(e1.method),(e2=Z||(i.WorkspaceSymbolRequest=Z={})).method="workspace/symbol",e2.messageDirection=ta.MessageDirection.clientToServer,e2.type=new ta.ProtocolRequestType(e2.method),(e6=ee||(i.WorkspaceSymbolResolveRequest=ee={})).method="workspaceSymbol/resolve",e6.messageDirection=ta.MessageDirection.clientToServer,e6.type=new ta.ProtocolRequestType(e6.method),(e3=et||(i.CodeLensRequest=et={})).method="textDocument/codeLens",e3.messageDirection=ta.MessageDirection.clientToServer,e3.type=new ta.ProtocolRequestType(e3.method),(e4=ei||(i.CodeLensResolveRequest=ei={})).method="codeLens/resolve",e4.messageDirection=ta.MessageDirection.clientToServer,e4.type=new ta.ProtocolRequestType(e4.method),(e5=er||(i.CodeLensRefreshRequest=er={})).method="workspace/codeLens/refresh",e5.messageDirection=ta.MessageDirection.serverToClient,e5.type=new ta.ProtocolRequestType0(e5.method),(e8=en||(i.DocumentLinkRequest=en={})).method="textDocument/documentLink",e8.messageDirection=ta.MessageDirection.clientToServer,e8.type=new ta.ProtocolRequestType(e8.method),(e7=eo||(i.DocumentLinkResolveRequest=eo={})).method="documentLink/resolve",e7.messageDirection=ta.MessageDirection.clientToServer,e7.type=new ta.ProtocolRequestType(e7.method),(e9=es||(i.DocumentFormattingRequest=es={})).method="textDocument/formatting",e9.messageDirection=ta.MessageDirection.clientToServer,e9.type=new ta.ProtocolRequestType(e9.method),(te=ea||(i.DocumentRangeFormattingRequest=ea={})).method="textDocument/rangeFormatting",te.messageDirection=ta.MessageDirection.clientToServer,te.type=new ta.ProtocolRequestType(te.method),(tt=el||(i.DocumentRangesFormattingRequest=el={})).method="textDocument/rangesFormatting",tt.messageDirection=ta.MessageDirection.clientToServer,tt.type=new ta.ProtocolRequestType(tt.method),(ti=ec||(i.DocumentOnTypeFormattingRequest=ec={})).method="textDocument/onTypeFormatting",ti.messageDirection=ta.MessageDirection.clientToServer,ti.type=new ta.ProtocolRequestType(ti.method),(ed||(i.PrepareSupportDefaultBehavior=ed={})).Identifier=1,(tr=eu||(i.RenameRequest=eu={})).method="textDocument/rename",tr.messageDirection=ta.MessageDirection.clientToServer,tr.type=new ta.ProtocolRequestType(tr.method),(tn=eh||(i.PrepareRenameRequest=eh={})).method="textDocument/prepareRename",tn.messageDirection=ta.MessageDirection.clientToServer,tn.type=new ta.ProtocolRequestType(tn.method),(to=eg||(i.ExecuteCommandRequest=eg={})).method="workspace/executeCommand",to.messageDirection=ta.MessageDirection.clientToServer,to.type=new ta.ProtocolRequestType(to.method),(ts=ep||(i.ApplyWorkspaceEditRequest=ep={})).method="workspace/applyEdit",ts.messageDirection=ta.MessageDirection.serverToClient,ts.type=new ta.ProtocolRequestType("workspace/applyEdit")},357886,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.createProtocolConnection=void 0;let r=e.r(304877);i.createProtocolConnection=function(e,t,i,n){return r.ConnectionStrategy.is(n)&&(n={connectionStrategy:n}),(0,r.createMessageConnection)(e,t,i,n)}},350435,(e,t,i)=>{"use strict";var r,n,o=e.e&&e.e.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),s=e.e&&e.e.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(i,"__esModule",{value:!0}),i.LSPErrorCodes=i.createProtocolConnection=void 0,s(e.r(304877),i),s(e.r(801971),i),s(e.r(506659),i),s(e.r(466754),i);var a=e.r(357886);Object.defineProperty(i,"createProtocolConnection",{enumerable:!0,get:function(){return a.createProtocolConnection}}),(r=n||(i.LSPErrorCodes=n={})).lspReservedErrorRangeStart=-32899,r.RequestFailed=-32803,r.ServerCancelled=-32802,r.ContentModified=-32801,r.RequestCancelled=-32800,r.lspReservedErrorRangeEnd=-32800},441296,(e,t,i)=>{"use strict";var r=e.e&&e.e.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=e.e&&e.e.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(i,"__esModule",{value:!0}),i.createProtocolConnection=void 0;let o=e.r(564099);n(e.r(564099),i),n(e.r(350435),i),i.createProtocolConnection=function(e,t,i,r){return(0,o.createMessageConnection)(e,t,i,r)}},663544,108462,545341,610504,e=>{"use strict";let t;var i,r,n,o,s,a,l,c,d,u,h,g,p,m,f,_,y,C,S,b,w,x,D,E,k,T,R,P,I,A,M,L,F,O,N,$,H,U,W,q,j,z,K,V,B,G,Q,J,Y,X,Z,ee,et,ei,er,en,eo,es,ea,el,ec,ed,eu,eh=e.i(263789),eg=e.i(619122),ep=e.i(652731),em=e.i(13853),ef=e.i(704994),ev=e.i(608191),e_=e.i(423962),ey=e.i(781808),eC=e.i(98342),eS=e.i(379283),eb=e.i(642540),ew=e.i(290231);(i=T||(T={}))[i.Complete=100]="Complete",i[i.Partial=50]="Partial",i[i.None=0]="None";var ex=e.i(69150),eD=e.i(802136),eE=e.i(620943),ek=e.i(281482);e.i(54630);var eT=e.i(157255),eR=e.i(488259),eP=e.i(751088),eI=e.i(608326),eA=ew,eM=e.i(853457),eL=e.i(558493),eF=e.i(107043),eO=e.i(702320),eN=e.i(693162);let e$=(0,eR.createDecorator)("IExtHostFileSystemInfo");var eH=e.i(611130),eU=e.i(590746);let eW=R=class{constructor(e,t){this._fileSystemProvider=new Map,this._writeQueue=new eU.ResourceQueue,this._proxy=e.getProxy(ev.MainContext.MainThreadFileSystem);const i=this;this.value=Object.freeze({async stat(e){try{let t,r=i._fileSystemProvider.get(e.scheme);return r?(await i._proxy.$ensureActivation(e.scheme),t=await r.impl.stat(e)):t=await i._proxy.$stat(e),{type:t.type,ctime:t.ctime,mtime:t.mtime,size:t.size,permissions:t.permissions===ep.FilePermission.Readonly?1:void 0}}catch(e){R._handleError(e)}},async readDirectory(e){try{let t=i._fileSystemProvider.get(e.scheme);if(t)return await i._proxy.$ensureActivation(e.scheme),(await t.impl.readDirectory(e)).slice();return await i._proxy.$readdir(e)}catch(e){return R._handleError(e)}},async createDirectory(e){try{let t=i._fileSystemProvider.get(e.scheme);if(t&&!t.isReadonly)return await i._proxy.$ensureActivation(e.scheme),await i.mkdirp(t.impl,t.extUri,e);return await i._proxy.$mkdir(e)}catch(e){return R._handleError(e)}},async readFile(e){try{let t=i._fileSystemProvider.get(e.scheme);if(t)return await i._proxy.$ensureActivation(e.scheme),(await t.impl.readFile(e)).slice();return(await i._proxy.$readFile(e)).buffer}catch(e){return R._handleError(e)}},async writeFile(e,t){try{let r=i._fileSystemProvider.get(e.scheme);if(r&&!r.isReadonly)return await i._proxy.$ensureActivation(e.scheme),await i.mkdirp(r.impl,r.extUri,r.extUri.dirname(e)),await i._writeQueue.queueFor(e,()=>Promise.resolve(r.impl.writeFile(e,t,{create:!0,overwrite:!0})));return await i._proxy.$writeFile(e,eF.VSBuffer.wrap(t))}catch(e){return R._handleError(e)}},async delete(e,t){try{let r=i._fileSystemProvider.get(e.scheme);if(r&&!r.isReadonly&&!t?.useTrash)return await i._proxy.$ensureActivation(e.scheme),await r.impl.delete(e,{recursive:!1,...t});return await i._proxy.$delete(e,{recursive:!1,useTrash:!1,atomic:!1,...t})}catch(e){return R._handleError(e)}},async rename(e,t,r){try{return await i._proxy.$rename(e,t,{overwrite:!1,...r})}catch(e){return R._handleError(e)}},async copy(e,t,r){try{return await i._proxy.$copy(e,t,{overwrite:!1,...r})}catch(e){return R._handleError(e)}},isWritableFileSystem(e){let i=t.getCapabilities(e);if("number"==typeof i)return!(i&ep.FileSystemProviderCapabilities.Readonly)}})}async mkdirp(e,t,i){let r=[];for(;!t.isEqual(i,t.dirname(i));)try{if(((await e.stat(i)).type&ep.FileType.Directory)==0)throw eh.FileSystemError.FileExists(`Unable to create folder '${i.scheme===eO.Schemas.file?i.fsPath:i.toString(!0)}' that already exists but is not a directory`);break}catch(e){if((0,ep.toFileSystemProviderErrorCode)(e)!==ep.FileSystemProviderErrorCode.FileNotFound)throw e;r.push(t.basename(i)),i=t.dirname(i)}for(let n=r.length-1;n>=0;n--){i=t.joinPath(i,r[n]);try{await e.createDirectory(i)}catch(e){if((0,ep.toFileSystemProviderErrorCode)(e)!==ep.FileSystemProviderErrorCode.FileExists)throw e}}}static _handleError(e){if(e instanceof eh.FileSystemError)throw e;if(e instanceof ep.FileSystemProviderError)switch(e.code){case ep.FileSystemProviderErrorCode.FileExists:throw eh.FileSystemError.FileExists(e.message);case ep.FileSystemProviderErrorCode.FileNotFound:throw eh.FileSystemError.FileNotFound(e.message);case ep.FileSystemProviderErrorCode.FileNotADirectory:throw eh.FileSystemError.FileNotADirectory(e.message);case ep.FileSystemProviderErrorCode.FileIsADirectory:throw eh.FileSystemError.FileIsADirectory(e.message);case ep.FileSystemProviderErrorCode.NoPermissions:throw eh.FileSystemError.NoPermissions(e.message);case ep.FileSystemProviderErrorCode.Unavailable:throw eh.FileSystemError.Unavailable(e.message);default:throw new eh.FileSystemError(e.message,e.name)}if(!(e instanceof Error))throw new eh.FileSystemError(String(e));if("ENOPRO"===e.name||e.message.includes("ENOPRO"))throw eh.FileSystemError.Unavailable(e.message);switch(e.name){case ep.FileSystemProviderErrorCode.FileExists:throw eh.FileSystemError.FileExists(e.message);case ep.FileSystemProviderErrorCode.FileNotFound:throw eh.FileSystemError.FileNotFound(e.message);case ep.FileSystemProviderErrorCode.FileNotADirectory:throw eh.FileSystemError.FileNotADirectory(e.message);case ep.FileSystemProviderErrorCode.FileIsADirectory:throw eh.FileSystemError.FileIsADirectory(e.message);case ep.FileSystemProviderErrorCode.NoPermissions:throw eh.FileSystemError.NoPermissions(e.message);case ep.FileSystemProviderErrorCode.Unavailable:throw eh.FileSystemError.Unavailable(e.message);default:throw new eh.FileSystemError(e.message,e.name)}}addFileSystemProvider(e,t,i){return this._fileSystemProvider.set(e,{impl:t,extUri:i?.isCaseSensitive?eN.extUri:eN.extUriIgnorePathCase,isReadonly:!!i?.isReadonly}),(0,eH.toDisposable)(()=>this._fileSystemProvider.delete(e))}getFileSystemProviderExtUri(e){return this._fileSystemProvider.get(e)?.extUri??eN.extUri}};eW=R=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,e$)],eW);let eq=(0,eR.createDecorator)("IExtHostConsumerFileSystem");var ej=e.i(971377),ez=e.i(643116),eK=e.i(535567),eV=e.i(802186);class eB extends eA.AbstractMessageLogger{constructor(e,t,i,r,n){super(),this.id=e,this.name=t,this.logger=i,this.proxy=r,this.extension=n,this.offset=0,this.visible=!1,this.setLevel(i.getLevel()),this._register(i.onDidChangeLogLevel(e=>this.setLevel(e))),this._register((0,eH.toDisposable)(()=>this.proxy.$dispose(this.id)))}get logLevel(){return this.getLevel()}appendLine(e){this.append(e+"\n")}append(e){this.info(e)}clear(){let e=this.offset;this.logger.flush(),this.proxy.$update(this.id,eL.OutputChannelUpdateMode.Clear,e)}replace(e){let t=this.offset;this.info(e),this.proxy.$update(this.id,eL.OutputChannelUpdateMode.Replace,t),this.visible&&this.logger.flush()}show(e,t){this.logger.flush(),this.proxy.$reveal(this.id,!!("boolean"==typeof e?e:t))}hide(){this.proxy.$close(this.id)}log(e,t){this.offset+=eF.VSBuffer.fromString(t).byteLength,(0,eA.log)(this.logger,e,t),this.visible&&(this.logger.flush(),this.proxy.$update(this.id,eL.OutputChannelUpdateMode.Append))}}class eG extends eB{appendLine(e){this.append(e)}}let eQ=class{constructor(e,t,i,r,n,o){this.initData=t,this.extHostFileSystem=i,this.extHostFileSystemInfo=r,this.loggerService=n,this.logService=o,this.extensionLogDirectoryCreationPromise=new eV.ResourceMap,this.logOutputChannels=new eV.ResourceMap,this.namePool=1,this.channels=new Map,this.visibleChannelId=null,this.proxy=e.getProxy(ev.MainContext.MainThreadOutputService),this.outputsLocation=this.extHostFileSystemInfo.extUri.joinPath(t.logsLocation,`output_logging_${(0,ez.toLocalISOString)(new Date).replace(/-|:|\.\d+Z$/g,"")}`)}$setVisibleChannel(e){for(let[t,i]of(this.visibleChannelId=e,this.channels))i.visible=t===this.visibleChannelId}createOutputChannel(e,t,i){let r,n;if(!(e=e.trim()))throw Error("illegal argument `name`. must not be falsy");let o="object"==typeof t&&t.log,s=(0,eK.isString)(t)?t:void 0;if((0,eK.isString)(s)&&!s.trim())throw Error("illegal argument `languageId`. must not be empty");let a=new eH.DisposableStore,l=this.initData.environment.extensionLogLevel?.find(([e])=>eI.ExtensionIdentifier.equals(i.identifier,e))?.[1];if(o){let t=this.extHostFileSystemInfo.extUri.joinPath(this.initData.logsLocation,i.identifier.value);n=this.extHostFileSystemInfo.extUri.joinPath(t,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`);let o=this.logOutputChannels.get(n);if(o)return o;l=this.loggerService.getLogLevel(n)??l,r=this.doCreateLogOutputChannel(e,n,l,i,a)}else r=this.doCreateOutputChannel(e,s,i,a);if(r.then(e=>{this.channels.set(e.id,e),e.visible=e.id===this.visibleChannelId,a.add((0,eH.toDisposable)(()=>{this.channels.delete(e.id),n&&this.logOutputChannels.delete(n)}))}),n){let t=this.createExtHostLogOutputChannel(e,l??this.logService.getLevel(),r,a);return this.logOutputChannels.set(n,t),t}return this.createExtHostOutputChannel(e,r,a)}async doCreateOutputChannel(e,t,i,r){this.outputDirectoryPromise||(this.outputDirectoryPromise=this.extHostFileSystem.value.createDirectory(this.outputsLocation).then(()=>this.outputsLocation));let n=await this.outputDirectoryPromise,o=this.extHostFileSystemInfo.extUri.joinPath(n,`${this.namePool++}-${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`),s=r.add(this.loggerService.createLogger(o,{logLevel:"always",donotRotate:!0,donotUseFormatters:!0,hidden:!0})),a=await this.proxy.$register(e,o,t,i.identifier.value);return r.add((0,eH.toDisposable)(()=>this.loggerService.deregisterLogger(o))),new eB(a,e,s,this.proxy,i)}async doCreateLogOutputChannel(e,t,i,r,n){await this.createExtensionLogDirectory(t);let o=`${r.identifier.value}.${this.extHostFileSystemInfo.extUri.basename(t)}`,s=n.add(this.loggerService.createLogger(t,{id:o,name:e,logLevel:i,extensionId:r.identifier.value}));return n.add((0,eH.toDisposable)(()=>this.loggerService.deregisterLogger(t))),new eG(o,e,s,this.proxy,r)}createExtensionLogDirectory(e){let t=this.extHostFileSystemInfo.extUri.dirname(e),i=this.extensionLogDirectoryCreationPromise.get(t);return i||this.extensionLogDirectoryCreationPromise.set(t,i=(async()=>{try{await this.extHostFileSystem.value.createDirectory(t)}catch(e){if((0,ep.toFileSystemProviderErrorCode)(e)!==ep.FileSystemProviderErrorCode.FileExists)throw e}})()),i}createExtHostOutputChannel(e,t,i){let r=()=>{if(i.isDisposed)throw Error("Channel has been closed")};return t.then(e=>i.add(e)),{get name(){return e},append(e){r(),t.then(t=>t.append(e))},appendLine(e){r(),t.then(t=>t.appendLine(e))},clear(){r(),t.then(e=>e.clear())},replace(e){r(),t.then(t=>t.replace(e))},show(e,i){r(),t.then(t=>t.show(e,i))},hide(){r(),t.then(e=>e.hide())},dispose(){i.dispose()}}}createExtHostLogOutputChannel(e,t,i,r){let n=()=>{if(r.isDisposed)throw Error("Channel has been closed")},o=r.add(new ey.Emitter);function s(e){t=e,o.fire(e)}return i.then(e=>{e.logLevel!==t&&s(e.logLevel),r.add(e.onDidChangeLogLevel(e=>s(e)))}),{...this.createExtHostOutputChannel(e,i,r),get logLevel(){return t},onDidChangeLogLevel:o.event,trace(e,...t){n(),i.then(i=>i.trace(e,...t))},debug(e,...t){n(),i.then(i=>i.debug(e,...t))},info(e,...t){n(),i.then(i=>i.info(e,...t))},warn(e,...t){n(),i.then(i=>i.warn(e,...t))},error(e,...t){n(),i.then(i=>i.error(e,...t))}}}};eQ=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService),(0,ek.__param)(2,eq),(0,ek.__param)(3,e$),(0,ek.__param)(4,eM.ILoggerService),(0,ek.__param)(5,eM.ILogService)],eQ);let eJ=(0,eR.createDecorator)("IExtHostOutputService");var eY=e.i(454514),eX=e.i(226870),eZ=e.i(57660),e0=e.i(693205),e1=e.i(650289);e.i(216822);var e2=e.i(578953),e6=e.i(357365);let e3=(0,eR.createDecorator)("IURITransformerService");class e4{constructor(e){e?(this.transformIncoming=e.transformIncoming.bind(e),this.transformOutgoing=e.transformOutgoing.bind(e),this.transformOutgoingURI=e.transformOutgoingURI.bind(e),this.transformOutgoingScheme=e.transformOutgoingScheme.bind(e)):(this.transformIncoming=e=>e,this.transformOutgoing=e=>e,this.transformOutgoingURI=e=>e,this.transformOutgoingScheme=e=>e)}}var e5=e.i(341738),e8=e.i(960948),e7=e.i(647576),e9=e.i(824357),te=e.i(445152),tt=e.i(770326),ti=e.i(45521);function tr(e,t,i){return new eN.ExtUri(e=>ta(e,i)).isEqual(e,t)}function tn(e,t,i){return tr(e.uri,t.uri,i)?0:(0,e0.compare)(e.uri.toString(),t.uri.toString())}function to(e,t,i){return e.index!==t.index?e.index<t.index?-1:1:tr(e.uri,t.uri,i)?(0,e0.compare)(e.name,t.name):(0,e0.compare)(e.uri.toString(),t.uri.toString())}function ts(e,t,i,r){let n=e.slice(0).sort((e,t)=>i(e,t,r)),o=t.slice(0).sort((e,t)=>i(e,t,r));return(0,eY.delta)(n,o,(e,t)=>i(e,t,r))}function ta(e,t){let i=t.getCapabilities(e.scheme);return!(i&&i&ep.FileSystemProviderCapabilities.PathCaseSensitive)}class tl extends e2.Workspace{static toExtHostWorkspace(e,t,i,r){if(!e)return{workspace:null,added:[],removed:[]};let{id:n,name:o,folders:s,configuration:a,transient:l,isUntitled:c}=e,d=[];t?s.forEach((e,n)=>{let o=eD.URI.revive(e.uri),s=tl._findFolder(i||t,o,r);s?(s.name=e.name,s.index=e.index,d.push(s)):d.push({uri:o,name:e.name,index:n})}):d.push(...s.map(({uri:e,name:t,index:i})=>({uri:eD.URI.revive(e),name:t,index:i}))),d.sort((e,t)=>e.index<t.index?-1:1);let u=new tl(n,o,d,!!l,a?eD.URI.revive(a):null,!!c,e=>ta(e,r)),{added:h,removed:g}=ts(t?t.workspaceFolders:[],u.workspaceFolders,tn,r);return{workspace:u,added:h,removed:g}}static _findFolder(e,t,i){for(let r=0;r<e.folders.length;r++){let n=e.workspaceFolders[r];if(tr(n.uri,t,i))return n}}constructor(e,t,i,r,n,o,s){super(e,i.map(e=>new e2.WorkspaceFolder(e)),r,n,s),this._name=t,this._isUntitled=o,this._workspaceFolders=[],this._structure=eX.TernarySearchTree.forUris(s,()=>!0),i.forEach(e=>{this._workspaceFolders.push(e),this._structure.set(e.uri,e)})}get name(){return this._name}get isUntitled(){return this._isUntitled}get workspaceFolders(){return this._workspaceFolders.slice(0)}getWorkspaceFolder(e,t){return t&&this._structure.get(e)&&(e=(0,eN.dirname)(e)),this._structure.findSubstr(e)}resolveWorkspaceFolder(e){return this._structure.get(e)}}let tc=class{constructor(e,t,i,r,n){this._onDidChangeWorkspace=new ey.Emitter,this.onDidChangeWorkspace=this._onDidChangeWorkspace.event,this._onDidGrantWorkspaceTrust=new ey.Emitter,this.onDidGrantWorkspaceTrust=this._onDidGrantWorkspaceTrust.event,this._activeSearchCallbacks=[],this._trusted=!1,this._editSessionIdentityProviders=new Map,this._providerHandlePool=0,this._onWillCreateEditSessionIdentityEvent=new ey.AsyncEmitter,this._canonicalUriProviders=new Map,this._logService=r,this._extHostFileSystemInfo=i,this._uriTransformerService=n,this._requestIdProvider=new eZ.Counter,this._barrier=new eU.Barrier,this._proxy=e.getProxy(ev.MainContext.MainThreadWorkspace),this._messageService=e.getProxy(ev.MainContext.MainThreadMessageService);const o=t.workspace;this._confirmedWorkspace=o?new tl(o.id,o.name,[],!!o.transient,o.configuration?eD.URI.revive(o.configuration):null,!!o.isUntitled,e=>ta(e,i)):void 0}$initializeWorkspace(e,t){this._trusted=t,this.$acceptWorkspaceData(e),this._barrier.open()}waitForInitializeCall(){return this._barrier.wait()}get workspace(){return this._actualWorkspace}get name(){return this._actualWorkspace?this._actualWorkspace.name:void 0}get workspaceFile(){if(this._actualWorkspace&&this._actualWorkspace.configuration)return this._actualWorkspace.isUntitled?eD.URI.from({scheme:eO.Schemas.untitled,path:(0,eN.basename)((0,eN.dirname)(this._actualWorkspace.configuration))}):this._actualWorkspace.configuration}get _actualWorkspace(){return this._unconfirmedWorkspace||this._confirmedWorkspace}getWorkspaceFolders(){if(this._actualWorkspace)return this._actualWorkspace.workspaceFolders.slice(0)}async getWorkspaceFolders2(){if(await this._barrier.wait(),this._actualWorkspace)return this._actualWorkspace.workspaceFolders.slice(0)}updateWorkspaceFolders(e,t,i,...r){let n=[];if(Array.isArray(r)&&r.forEach(e=>{eD.URI.isUri(e.uri)&&!n.some(t=>tr(t.uri,e.uri,this._extHostFileSystemInfo))&&n.push({uri:e.uri,name:e.name||(0,eN.basenameOrAuthority)(e.uri)})}),this._unconfirmedWorkspace||[t,i].some(e=>"number"!=typeof e||e<0)||0===i&&0===n.length)return!1;let o=this._actualWorkspace?this._actualWorkspace.workspaceFolders:[];if(t+i>o.length)return!1;let s=o.slice(0);s.splice(t,i,...n.map(e=>({uri:e.uri,name:e.name||(0,eN.basenameOrAuthority)(e.uri),index:void 0})));for(let e=0;e<s.length;e++){let t=s[e];if(s.some((i,r)=>r!==e&&tr(t.uri,i.uri,this._extHostFileSystemInfo)))return!1}s.forEach((e,t)=>e.index=t);let{added:a,removed:l}=ts(o,s,to,this._extHostFileSystemInfo);if(0===a.length&&0===l.length)return!1;if(this._proxy){let r=e.displayName||e.name;this._proxy.$updateWorkspaceFolders(r,t,i,n).then(void 0,t=>{this._unconfirmedWorkspace=void 0;let i={source:{identifier:e.identifier,label:e.displayName||e.name}};this._messageService.$showMessage(tt.default.Error,(0,e1.localize)(2707,"Extension '{0}' failed to update workspace folders: {1}",r,t.toString()),i,[])})}return this.trySetWorkspaceFolders(s),!0}getWorkspaceFolder(e,t){if(this._actualWorkspace)return this._actualWorkspace.getWorkspaceFolder(e,t)}async getWorkspaceFolder2(e,t){if(await this._barrier.wait(),this._actualWorkspace)return this._actualWorkspace.getWorkspaceFolder(e,t)}async resolveWorkspaceFolder(e){if(await this._barrier.wait(),this._actualWorkspace)return this._actualWorkspace.resolveWorkspaceFolder(e)}getPath(){if(!this._actualWorkspace)return;let{folders:e}=this._actualWorkspace;if(0!==e.length)return e[0].uri.fsPath}getRelativePath(e,t){let i,r="";if("string"==typeof e?(i=eD.URI.file(e),r=e):void 0!==e&&(i=e,r=e.fsPath),!i)return r;let n=this.getWorkspaceFolder(i,!0);if(!n)return r;void 0===t&&this._actualWorkspace&&(t=this._actualWorkspace.folders.length>1);let o=(0,eN.relativePath)(n.uri,i);return t&&n.name&&(o=`${n.name}/${o}`),o}trySetWorkspaceFolders(e){this._actualWorkspace&&(this._unconfirmedWorkspace=tl.toExtHostWorkspace({id:this._actualWorkspace.id,name:this._actualWorkspace.name,configuration:this._actualWorkspace.configuration,folders:e,isUntitled:this._actualWorkspace.isUntitled},this._actualWorkspace,void 0,this._extHostFileSystemInfo).workspace||void 0)}$acceptWorkspaceData(e){let{workspace:t,added:i,removed:r}=tl.toExtHostWorkspace(e,this._confirmedWorkspace,this._unconfirmedWorkspace,this._extHostFileSystemInfo);this._confirmedWorkspace=t||void 0,this._unconfirmedWorkspace=void 0,this._onDidChangeWorkspace.fire(Object.freeze({added:i,removed:r}))}findFiles(e,t,i,r,n=ef.CancellationToken.None){this._logService.trace(`extHostWorkspace#findFiles: fileSearch, extension: ${r.value}, entryPoint: findFiles`);let o="",s=!0;return null===t?s=!1:void 0!==t&&(o="string"==typeof t?t:t.pattern),this._findFilesImpl({type:"include",value:e},{exclude:[o],maxResults:i,useExcludeSettings:s?eb.ExcludeSettingOptions.FilesExclude:eb.ExcludeSettingOptions.None,useIgnoreFiles:{local:!1}},n)}findFiles2(e,t={},i,r=ef.CancellationToken.None){return this._logService.trace(`extHostWorkspace#findFiles2New: fileSearch, extension: ${i.value}, entryPoint: findFiles2New`),this._findFilesImpl({type:"filePatterns",value:e},t,r)}async _findFilesImpl(e,t,i){if(i.isCancellationRequested)return Promise.resolve([]);let r="include"===e.type?[e.value]:e.value??[];if(!Array.isArray(r))throw console.error("Invalid file pattern provided",r),Error(`Invalid file pattern provided ${JSON.stringify(r)}`);let n=r.map(i=>{let r=th(t.exclude),n={ignoreSymlinks:"boolean"==typeof t.followSymlinks?!t.followSymlinks:void 0,disregardIgnoreFiles:"boolean"==typeof t.useIgnoreFiles?.local?!t.useIgnoreFiles.local:void 0,disregardGlobalIgnoreFiles:"boolean"==typeof t.useIgnoreFiles?.global?!t.useIgnoreFiles.global:void 0,disregardParentIgnoreFiles:"boolean"==typeof t.useIgnoreFiles?.parent?!t.useIgnoreFiles.parent:void 0,disregardExcludeSettings:void 0!==t.useExcludeSettings&&t.useExcludeSettings===eb.ExcludeSettingOptions.None,disregardSearchExcludeSettings:void 0!==t.useExcludeSettings&&t.useExcludeSettings!==eb.ExcludeSettingOptions.SearchAndFilesExclude,maxResults:t.maxResults,excludePattern:r.length>0?r:void 0,_reason:"startFileSearch",shouldGlobSearch:"include"!==e.type||void 0},o=tu(e6.GlobPattern.from(i)),s=o?.folder;return"include"===e.type?n.includePattern=o?.pattern:n.filePattern=o?.pattern,{folder:s,options:n}});return this._findFilesBase(n,i)}async _findFilesBase(e,t){let i=(await Promise.all(e?.map(e=>this._proxy.$startFileSearch(e.folder??null,e.options,t).then(e=>Array.isArray(e)?e.map(e=>eD.URI.revive(e)):[]))??[])).flat(),r=new eN.ExtUri(e=>ta(e,this._extHostFileSystemInfo)),n=new Map;for(let e of i){let t=r.getComparisonKey(e);n.has(t)||n.set(t,e)}return Array.from(n.values())}findTextInFiles2(e,t,i,r=ef.CancellationToken.None){this._logService.trace(`extHostWorkspace#findTextInFiles2: textSearch, extension: ${i.value}, entryPoint: findTextInFiles2`);let n=e=>{if(!t)return{folder:void 0,options:{}};let i=e?tu(e6.GlobPattern.from(e)):void 0,r=t.exclude?th(t.exclude):void 0;return{options:{ignoreSymlinks:"boolean"==typeof t.followSymlinks?!t.followSymlinks:void 0,disregardIgnoreFiles:"boolean"==typeof t.useIgnoreFiles?.local?!t.useIgnoreFiles?.local:void 0,disregardGlobalIgnoreFiles:"boolean"==typeof t.useIgnoreFiles?.global?!t.useIgnoreFiles?.global:void 0,disregardParentIgnoreFiles:"boolean"==typeof t.useIgnoreFiles?.parent?!t.useIgnoreFiles?.parent:void 0,disregardExcludeSettings:void 0!==t.useExcludeSettings&&t.useExcludeSettings===eb.ExcludeSettingOptions.None,disregardSearchExcludeSettings:void 0!==t.useExcludeSettings&&t.useExcludeSettings!==eb.ExcludeSettingOptions.SearchAndFilesExclude,fileEncoding:t.encoding,maxResults:t.maxResults,previewOptions:t.previewOptions?{matchLines:t.previewOptions?.numMatchLines??100,charsPerLine:t.previewOptions?.charsPerLine??1e4}:void 0,surroundingContext:t.surroundingContext,includePattern:i?.pattern,excludePattern:r},folder:i?.folder}},o=(t?.include?.map(e=>n(e))??[n(void 0)]).filter(e=>!!e),s=new eH.DisposableStore,a=s.add(new ey.Emitter),l=this.findTextInFilesBase(e,o,(e,t)=>a.fire({result:e,uri:t}),r);return{results:new eU.AsyncIterableProducer(async e=>{s.add(a.event(t=>{let i=t.result,r=t.uri;(0,e5.resultIsMatch)(i)?e.emitOne(new eb.TextSearchMatch2(r,i.rangeLocations.map(e=>({previewRange:new ti.Range(e.preview.startLineNumber,e.preview.startColumn,e.preview.endLineNumber,e.preview.endColumn),sourceRange:new ti.Range(e.source.startLineNumber,e.source.startColumn,e.source.endLineNumber,e.source.endColumn)})),i.previewText)):e.emitOne(new eb.TextSearchContext2(r,i.text,i.lineNumber))})),await l}),complete:l.then(e=>(s.dispose(),{limitHit:e?.limitHit??!1}))}}async findTextInFilesBase(e,t,i,r=ef.CancellationToken.None){let n=this._requestIdProvider.getNext(),o=!1;if(r.onCancellationRequested(e=>{o=!0}),this._activeSearchCallbacks[n]=e=>{if(o)return;let t=eD.URI.revive(e.resource);e.results.forEach(e=>{i((0,e8.revive)(e),t)})},r.isCancellationRequested)return{};try{let i=await Promise.all(t?.map(t=>this._proxy.$startTextSearch(e,t.folder??null,t.options,n,r)||{})??[]);return delete this._activeSearchCallbacks[n],i.reduce((e,t)=>({limitHit:e?.limitHit||(t?.limitHit??!1),message:[e?.message??[],t?.message??[]].flat()}),{})??{limitHit:!1}}catch(e){throw delete this._activeSearchCallbacks[n],e}}async findTextInFiles(e,t,i,r,n=ef.CancellationToken.None){this._logService.trace(`extHostWorkspace#findTextInFiles: textSearch, extension: ${r.value}, entryPoint: findTextInFiles`);let o=void 0===t.previewOptions?{matchLines:100,charsPerLine:1e4}:t.previewOptions,s=tu(e6.GlobPattern.from(t.include)),a="string"==typeof t.exclude?t.exclude:t.exclude?t.exclude.pattern:void 0,l={ignoreSymlinks:"boolean"==typeof t.followSymlinks?!t.followSymlinks:void 0,disregardIgnoreFiles:"boolean"==typeof t.useIgnoreFiles?!t.useIgnoreFiles:void 0,disregardGlobalIgnoreFiles:"boolean"==typeof t.useGlobalIgnoreFiles?!t.useGlobalIgnoreFiles:void 0,disregardParentIgnoreFiles:"boolean"==typeof t.useParentIgnoreFiles?!t.useParentIgnoreFiles:void 0,disregardExcludeSettings:"boolean"!=typeof t.useDefaultExcludes||!t.useDefaultExcludes,disregardSearchExcludeSettings:"boolean"!=typeof t.useSearchExclude||!t.useSearchExclude,fileEncoding:t.encoding,maxResults:t.maxResults,previewOptions:o,surroundingContext:t.afterContext,includePattern:s?.pattern,excludePattern:a?[{pattern:a}]:void 0};return this.findTextInFilesBase(e,[{options:l,folder:s?.folder}],(e,t)=>{(0,e5.resultIsMatch)(e)?i({uri:t,preview:{text:e.previewText,matches:(0,eY.mapArrayOrNot)(e.rangeLocations,e=>new ti.Range(e.preview.startLineNumber,e.preview.startColumn,e.preview.endLineNumber,e.preview.endColumn))},ranges:(0,eY.mapArrayOrNot)(e.rangeLocations,e=>new ti.Range(e.source.startLineNumber,e.source.startColumn,e.source.endLineNumber,e.source.endColumn))}):i({uri:t,text:e.text,lineNumber:e.lineNumber})},n)}$handleTextSearchResult(e,t){this._activeSearchCallbacks[t]?.(e)}async save(e){let t=await this._proxy.$save(e,{saveAs:!1});return eD.URI.revive(t)}async saveAs(e){let t=await this._proxy.$save(e,{saveAs:!0});return eD.URI.revive(t)}saveAll(e){return this._proxy.$saveAll(e)}resolveProxy(e){return this._proxy.$resolveProxy(e)}lookupAuthorization(e){return this._proxy.$lookupAuthorization(e)}lookupKerberosAuthorization(e){return this._proxy.$lookupKerberosAuthorization(e)}loadCertificates(){return this._proxy.$loadCertificates()}get trusted(){return this._trusted}requestWorkspaceTrust(e){return this._proxy.$requestWorkspaceTrust(e)}$onDidGrantWorkspaceTrust(){this._trusted||(this._trusted=!0,this._onDidGrantWorkspaceTrust.fire())}registerEditSessionIdentityProvider(e,t){if(this._editSessionIdentityProviders.has(e))throw Error(`A provider has already been registered for scheme ${e}`);this._editSessionIdentityProviders.set(e,t);let i=this._uriTransformerService.transformOutgoingScheme(e),r=this._providerHandlePool++;return this._proxy.$registerEditSessionIdentityProvider(r,i),(0,eH.toDisposable)(()=>{this._editSessionIdentityProviders.delete(e),this._proxy.$unregisterEditSessionIdentityProvider(r)})}async $getEditSessionIdentifier(e,t){this._logService.info("Getting edit session identifier for workspaceFolder",e);let i=await this.resolveWorkspaceFolder(eD.URI.revive(e));if(!i)return void this._logService.warn("Unable to resolve workspace folder");this._logService.info("Invoking #provideEditSessionIdentity for workspaceFolder",i);let r=this._editSessionIdentityProviders.get(i.uri.scheme);if(this._logService.info(`Provider for scheme ${i.uri.scheme} is defined: `,!!r),!r)return;let n=await r.provideEditSessionIdentity(i,t);if(this._logService.info("Provider returned edit session identifier: ",n),n)return n}async $provideEditSessionIdentityMatch(e,t,i,r){this._logService.info("Getting edit session identifier for workspaceFolder",e);let n=await this.resolveWorkspaceFolder(eD.URI.revive(e));if(!n)return void this._logService.warn("Unable to resolve workspace folder");this._logService.info("Invoking #provideEditSessionIdentity for workspaceFolder",n);let o=this._editSessionIdentityProviders.get(n.uri.scheme);if(this._logService.info(`Provider for scheme ${n.uri.scheme} is defined: `,!!o),!o)return;let s=await o.provideEditSessionIdentityMatch?.(t,i,r);if(this._logService.info("Provider returned edit session identifier match result: ",s),s)return s}getOnWillCreateEditSessionIdentityEvent(e){return(t,i,r)=>{let n=function(e){t.call(i,e)};return n.extension=e,this._onWillCreateEditSessionIdentityEvent.event(n,void 0,r)}}async $onWillCreateEditSessionIdentity(e,t,i){let r=await this.resolveWorkspaceFolder(eD.URI.revive(e));if(void 0===r)throw Error("Unable to resolve workspace folder");if(await this._onWillCreateEditSessionIdentityEvent.fireAsync({workspaceFolder:r},t,async(e,t)=>{let r=Date.now();await Promise.resolve(e),Date.now()-r>i&&this._logService.warn("SLOW edit session create-participant",t.extension.identifier)}),t.isCancellationRequested)return}registerCanonicalUriProvider(e,t){if(this._canonicalUriProviders.has(e))throw Error(`A provider has already been registered for scheme ${e}`);this._canonicalUriProviders.set(e,t);let i=this._uriTransformerService.transformOutgoingScheme(e),r=this._providerHandlePool++;return this._proxy.$registerCanonicalUriProvider(r,i),(0,eH.toDisposable)(()=>{this._canonicalUriProviders.delete(e),this._proxy.$unregisterCanonicalUriProvider(r)})}async provideCanonicalUri(e,t,i){let r=this._canonicalUriProviders.get(e.scheme);if(!r)return;let n=await r.provideCanonicalUri?.(eD.URI.revive(e),t,i);if(n)return n}async $provideCanonicalUri(e,t,i){return this.provideCanonicalUri(eD.URI.revive(e),{targetScheme:t},i)}async decode(e,t){let[i,r]=this.toEncodeDecodeParameters(t),n=await this._proxy.$resolveDecoding(i,r),o=(await (0,e7.toDecodeStream)((0,eF.bufferToStream)(eF.VSBuffer.wrap(e)),{...n,acceptTextOnly:!0,overwriteEncoding:e=>null===e||e===n.preferredEncoding?Promise.resolve(n.preferredEncoding):this._proxy.$validateDetectedEncoding(i,e,r)})).stream;return(0,e9.consumeStream)(o,e=>e.join(""))}async encode(e,t){let[i,r]=this.toEncodeDecodeParameters(t),{encoding:n,addBOM:o}=await this._proxy.$resolveEncoding(i,r);if(n===e7.UTF8&&!o)return eF.VSBuffer.fromString(e).buffer;let s=await (0,e7.toEncodeReadable)((0,te.stringToSnapshot)(e),n,{addBOM:o});return(0,eF.readableToBuffer)(s).buffer}toEncodeDecodeParameters(e){let t=(0,eD.isUriComponents)(e?.uri)?e.uri:void 0,i="string"==typeof e?.encoding?e.encoding:void 0;return[t,i?{encoding:i}:void 0]}};tc=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService),(0,ek.__param)(2,e$),(0,ek.__param)(3,eM.ILogService),(0,ek.__param)(4,e3)],tc);let td=(0,eR.createDecorator)("IExtHostWorkspace");function tu(e){let t,i;if(e)return"string"==typeof e?t=e:(t=e.pattern,i=eD.URI.revive(e.baseUri)),{pattern:t,folder:i}}function th(e){return(e?.map(e=>{if("string"==typeof e){if(""!==e)return{pattern:e,uri:void 0}}else{let t=tu(e);if(!t)return;return{pattern:t.pattern,uri:t.folder}}})??[]).filter(e=>!!e)}var tg=e.i(771275),tp=e.i(774260);let tm=class{static{P=this}static{this._handlePool=0}static{this._maxEventSize=250}constructor(e,t){this._logService=t,this._provider=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadDecorations)}registerFileDecorationProvider(e,t){let i=P._handlePool++;this._provider.set(i,{provider:e,extensionDescription:t}),this._proxy.$registerDecorationProvider(i,t.identifier.value);let r=e.onDidChangeFileDecorations&&e.onDidChangeFileDecorations(e=>{if(!e)return void this._proxy.$onDidChange(i,null);let r=(0,eY.asArray)(e);if(r.length<=P._maxEventSize)return void this._proxy.$onDidChange(i,r);this._logService.warn("[Decorations] CAPPING events from decorations provider",t.identifier.value,r.length);let n=r.map(e=>({uri:e,rank:(0,e0.count)(e.path,"/")})),o=(0,eY.groupBy)(n,(e,t)=>e.rank-t.rank||(0,e0.compare)(e.uri.path,t.uri.path)),s=[];t:for(let e of o){let t;for(let i of e){let e=(0,tg.dirname)(i.uri.path);if(t!==e&&(t=e,s.push(i.uri)>=P._maxEventSize))break t}}this._proxy.$onDidChange(i,s)});return new eh.Disposable(()=>{r?.dispose(),this._proxy.$unregisterDecorationProvider(i),this._provider.delete(i)})}async $provideDecorations(e,t,i){if(!this._provider.has(e))return Object.create(null);let r=Object.create(null),{provider:n,extensionDescription:o}=this._provider.get(e);return await Promise.all(t.map(async e=>{try{let{uri:t,id:s}=e,a=await Promise.resolve(n.provideFileDecoration(eD.URI.revive(t),i));if(!a)return;try{eh.FileDecoration.validate(a),a.badge&&"string"!=typeof a.badge&&(0,tp.checkProposedApiEnabled)(o,"codiconDecoration"),r[s]=[a.propagate,a.tooltip,a.badge,a.color]}catch(e){this._logService.warn(`INVALID decoration from extension '${o.identifier.value}': ${e}`)}}catch(e){this._logService.error(e)}})),r}};tm=P=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,eM.ILogService)],tm);let tf=(0,eR.createDecorator)("IExtHostDecorations");var tv=e.i(107700),t_=e.i(13306),ty=e.i(737917),tC=e.i(2267);function tS(e,t){if(t){let i=t.split("."),r=e;for(let e=0;r&&e<i.length;e++)r=r[i[e]];return r}}function tb(e){return e instanceof eD.URI?{resource:e}:(0,eK.isObject)(e)&&e.uri instanceof eD.URI&&e.languageId&&"string"==typeof e.languageId?{resource:e.uri,overrideIdentifier:e.languageId}:(0,eK.isObject)(e)&&!e.uri&&e.languageId&&"string"==typeof e.languageId?{overrideIdentifier:e.languageId}:(0,eK.isObject)(e)&&e.uri instanceof eD.URI&&(!e.name||"string"==typeof e.name)&&(!e.index||"number"==typeof e.index)?{resource:e.uri}:null===e?{resource:null}:void 0}let tw=class{constructor(e,t,i){this._proxy=e.getProxy(ev.MainContext.MainThreadConfiguration),this._extHostWorkspace=t,this._logService=i,this._barrier=new eU.Barrier,this._actual=null}getConfigProvider(){return this._barrier.wait().then(e=>this._actual)}$initializeConfiguration(e){this._actual=new tx(this._proxy,this._extHostWorkspace,e,this._logService),this._barrier.open()}$acceptConfigurationChanged(e,t){this.getConfigProvider().then(i=>i.$acceptConfigurationChanged(e,t))}};tw=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,td),(0,ek.__param)(2,eM.ILogService)],tw);class tx{constructor(e,t,i,r){this._onDidChangeConfiguration=new ey.Emitter,this._proxy=e,this._logService=r,this._extHostWorkspace=t,this._configuration=ty.Configuration.parse(i,r),this._configurationScopes=this._toMap(i.configurationScopes)}get onDidChangeConfiguration(){return this._onDidChangeConfiguration&&this._onDidChangeConfiguration.event}$acceptConfigurationChanged(e,t){let i={data:this._configuration.toData(),workspace:this._extHostWorkspace.workspace};this._configuration=ty.Configuration.parse(e,this._logService),this._configurationScopes=this._toMap(e.configurationScopes),this._onDidChangeConfiguration.fire(this._toConfigurationChangeEvent(t,i))}getConfiguration(e,t,i){let r=tb(t)||{},n=this._toReadonlyValue(this._configuration.getValue(e,r,this._extHostWorkspace.workspace));e&&this._validateConfigurationAccess(e,r,i?.identifier);let o={has:e=>void 0!==tS(n,e),get:(t,o)=>{this._validateConfigurationAccess(e?`${e}.${t}`:t,r,i?.identifier);let s=tS(n,t);if(void 0===s)s=o;else{let e,i=(t,r)=>{if((0,eK.isObject)(t)){let o,s=()=>{e=e||(0,tv.deepClone)(n),o=o||tS(e,r)};return new Proxy(t,{get:(t,n)=>{if("string"==typeof n&&"tojson"===n.toLowerCase())return s(),()=>o;if(e)return(o=o||tS(e,r))[n];let a=t[n];return"string"==typeof n?i(a,`${r}.${n}`):a},set:(e,t,i)=>(s(),o&&(o[t]=i),!0),deleteProperty:(e,t)=>(s(),o&&delete o[t],!0),defineProperty:(e,t,i)=>(s(),o&&Object.defineProperty(o,t,i),!0)})}return Array.isArray(t)?(0,tv.deepClone)(t):t};s=i(s,t)}return s},update:(t,i,n,o)=>{t=e?`${e}.${t}`:t;let s=function(e){if(null==e)return null;if("boolean"==typeof e)return e?t_.ConfigurationTarget.USER:t_.ConfigurationTarget.WORKSPACE;switch(e){case eh.ConfigurationTarget.Global:return t_.ConfigurationTarget.USER;case eh.ConfigurationTarget.Workspace:return t_.ConfigurationTarget.WORKSPACE;case eh.ConfigurationTarget.WorkspaceFolder:return t_.ConfigurationTarget.WORKSPACE_FOLDER}}(n);return void 0!==i?this._proxy.$updateConfigurationOption(s,t,i,r,o):this._proxy.$removeConfigurationOption(s,t,r,o)},inspect:t=>{t=e?`${e}.${t}`:t;let i=this._configuration.inspect(t,r,this._extHostWorkspace.workspace);if(i)return{key:t,defaultValue:(0,tv.deepClone)(i.policy?.value??i.default?.value),globalLocalValue:(0,tv.deepClone)(i.userLocal?.value),globalRemoteValue:(0,tv.deepClone)(i.userRemote?.value),globalValue:(0,tv.deepClone)(i.user?.value??i.application?.value),workspaceValue:(0,tv.deepClone)(i.workspace?.value),workspaceFolderValue:(0,tv.deepClone)(i.workspaceFolder?.value),defaultLanguageValue:(0,tv.deepClone)(i.default?.override),globalLocalLanguageValue:(0,tv.deepClone)(i.userLocal?.override),globalRemoteLanguageValue:(0,tv.deepClone)(i.userRemote?.override),globalLanguageValue:(0,tv.deepClone)(i.user?.override??i.application?.override),workspaceLanguageValue:(0,tv.deepClone)(i.workspace?.override),workspaceFolderLanguageValue:(0,tv.deepClone)(i.workspaceFolder?.override),languageIds:(0,tv.deepClone)(i.overrideIdentifiers)}}};return"object"==typeof n&&(0,tv.mixin)(o,n,!1),Object.freeze(o)}_toReadonlyValue(e){let t=e=>(0,eK.isObject)(e)?new Proxy(e,{get:(e,i)=>t(e[i]),set:(e,t,i)=>{throw Error(`TypeError: Cannot assign to read only property '${String(t)}' of object`)},deleteProperty:(e,t)=>{throw Error(`TypeError: Cannot delete read only property '${String(t)}' of object`)},defineProperty:(e,t)=>{throw Error(`TypeError: Cannot define property '${String(t)}' for a readonly object`)},setPrototypeOf:e=>{throw Error("TypeError: Cannot set prototype for a readonly object")},isExtensible:()=>!1,preventExtensions:()=>!0}):e;return t(e)}_validateConfigurationAccess(e,t,i){let r=tC.OVERRIDE_PROPERTY_REGEX.test(e)?tC.ConfigurationScope.RESOURCE:this._configurationScopes.get(e),n=i?`[${i.value}] `:"";if(tC.ConfigurationScope.RESOURCE===r){void 0===t?.resource&&this._logService.warn(`${n}Accessing a resource scoped configuration without providing a resource is not expected. To get the effective value for '${e}', provide the URI of a resource or 'null' for any resource.`);return}if(tC.ConfigurationScope.WINDOW===r){t?.resource&&this._logService.warn(`${n}Accessing a window scoped configuration for a resource is not expected. To associate '${e}' to a resource, define its scope to 'resource' in configuration contributions in 'package.json'.`);return}}_toConfigurationChangeEvent(e,t){let i=new ty.ConfigurationChangeEvent(e,t,this._configuration,this._extHostWorkspace.workspace,this._logService);return Object.freeze({affectsConfiguration:(e,t)=>i.affectsConfiguration(e,tb(t))})}_toMap(e){return e.reduce((e,t)=>(e.set(t[0],t[1]),e),new Map)}}let tD=(0,eR.createDecorator)("IExtHostConfiguration");var tE=e.i(166969),tk=e.i(819593),tT=e.i(462938),tR=e.i(190),tP=e.i(315942),tI=e.i(573026);let tA=(e,t,i,r)=>{let n=t;return{enumerable:!0,configurable:!1,get:()=>n,set(t){if(!i(n,t)){let i=n;n=t,e.listener?.(r(t,i))}}}},tM=(e,t)=>e===t,tL=(e,t)=>!(e.length!==t.length||e.some(e=>!t.find(t=>e.id===t.id))),tF=e=>t=>({op:tR.TestItemEventOp.SetProp,update:e(t)}),tO=e=>{let t=tT.TestId.fromString(e.extId),i=new t$(t.controllerId,t.localId,e.label,eD.URI.revive(e.uri)||void 0);return i.range=e6.Range.to(e.range||void 0),i.description=e.description||void 0,i.sortText=e.sortText||void 0,i.tags=e.tags.map(e=>e6.TestTag.to({id:(0,tP.denamespaceTestTag)(e).tagId})),i},tN=e=>{let t;for(let i of e.tests){let e=tO(i.item);(0,tI.getPrivateApiFor)(e).parent=t,t=e}return t};class t${constructor(e,t,i,r){if(t.includes(tT.TestIdPathParts.Delimiter))throw Error(`Test IDs may not include the ${JSON.stringify(t)} symbol`);const n=(0,tI.createPrivateApiFor)(this,e);Object.defineProperties(this,{id:{value:t,enumerable:!0,writable:!1},uri:{value:r,enumerable:!0,writable:!1},parent:{enumerable:!1,get:()=>n.parent instanceof tH?void 0:n.parent},children:{value:(0,tR.createTestItemChildren)(n,tI.getPrivateApiFor,t$),enumerable:!0,writable:!1},...((e,t)=>{let i,r;return{range:(r=tF(e=>({range:tE.Range.lift(e6.Range.from(e))})),{enumerable:!0,configurable:!1,get:()=>i,set(t){let n,o;e.listener?.({op:tR.TestItemEventOp.DocumentSynced}),(n=i)===(o=t)||n&&o&&n.isEqual(o)||(i=t,e.listener?.(r(t)))}}),label:tA(e,t,tM,tF(e=>({label:e}))),description:tA(e,void 0,tM,tF(e=>({description:e}))),sortText:tA(e,void 0,tM,tF(e=>({sortText:e}))),canResolveChildren:tA(e,!1,tM,e=>({op:tR.TestItemEventOp.UpdateCanResolveChildren,state:e})),busy:tA(e,!1,tM,tF(e=>({busy:e}))),error:tA(e,void 0,tM,tF(e=>({error:e6.MarkdownString.fromStrict(e)||null}))),tags:tA(e,[],tL,(e,t)=>({op:tR.TestItemEventOp.SetTags,new:e.map(e6.TestTag.from),old:t.map(e6.TestTag.from)}))}})(n,i)})}}class tH extends t${constructor(e,t){super(e,e,t,void 0),this._isRoot=!0}}class tU extends tR.TestItemCollection{constructor(e,t,i){super({controllerId:e,getDocumentVersion:e=>e&&i.getDocument(e)?.version,getApiFor:tI.getPrivateApiFor,getChildren:e=>e.children,root:new tH(e,t),toITestItem:e6.TestItem.from})}}var tW=e.i(785962),tq=e.i(431110),tj=e.i(85280),tz=e.i(768804),tK=eH;let tV=class extends tK.Disposable{constructor(e,t,i){super(),this.initData=t,this._onDidChangeTelemetryEnabled=this._register(new ey.Emitter),this.onDidChangeTelemetryEnabled=this._onDidChangeTelemetryEnabled.event,this._onDidChangeTelemetryConfiguration=this._register(new ey.Emitter),this.onDidChangeTelemetryConfiguration=this._onDidChangeTelemetryConfiguration.event,this._productConfig={usage:!0,error:!0},this._level=tz.TelemetryLevel.NONE,this._inLoggingOnlyMode=!1,this._telemetryLoggers=new Map,this._inLoggingOnlyMode=this.initData.environment.isExtensionTelemetryLoggingOnly;const r=t.remote.isRemote?"remoteExtHostTelemetry":e?"workerExtHostTelemetry":"extHostTelemetry";this._outputLogger=this._register(i.createLogger(r,{name:(0,e1.localize)(2702,"Extension Telemetry{0}",this._inLoggingOnlyMode?" (Not Sent)":""),hidden:!0,group:eE.TelemetryLogGroup}))}getTelemetryConfiguration(){return this._level===tz.TelemetryLevel.USAGE}getTelemetryDetails(){return{isCrashEnabled:this._level>=tz.TelemetryLevel.CRASH,isErrorsEnabled:!!this._productConfig.error&&this._level>=tz.TelemetryLevel.ERROR,isUsageEnabled:!!this._productConfig.usage&&this._level>=tz.TelemetryLevel.USAGE}}instantiateLogger(e,t,i){let r=this.getTelemetryDetails(),n=new tB(t,i,e,this._outputLogger,this._inLoggingOnlyMode,this.getBuiltInCommonProperties(e),{isUsageEnabled:r.isUsageEnabled,isErrorsEnabled:r.isErrorsEnabled}),o=this._telemetryLoggers.get(e.identifier.value)??[];return this._telemetryLoggers.set(e.identifier.value,[...o,n]),n.apiTelemetryLogger}$initializeTelemetryLevel(e,t,i){this._level=e,this._productConfig=i??{usage:!0,error:!0}}getBuiltInCommonProperties(e){let t=Object.create(null);switch(t["common.extname"]=`${e.publisher}.${e.name}`,t["common.extversion"]=e.version,t["common.vscodemachineid"]=this.initData.telemetryInfo.machineId,t["common.vscodesessionid"]=this.initData.telemetryInfo.sessionId,t["common.vscodecommithash"]=this.initData.commit,t["common.sqmid"]=this.initData.telemetryInfo.sqmId,t["common.devDeviceId"]=this.initData.telemetryInfo.devDeviceId??this.initData.telemetryInfo.machineId,t["common.vscodeversion"]=this.initData.version,t["common.vscodereleasedate"]=this.initData.date,t["common.isnewappinstall"]=tG(this.initData.telemetryInfo.firstSessionDate),t["common.product"]=this.initData.environment.appHost,this.initData.uiKind){case eS.UIKind.Web:t["common.uikind"]="web";break;case eS.UIKind.Desktop:t["common.uikind"]="desktop";break;default:t["common.uikind"]="unknown"}return t["common.remotename"]=(0,eE.cleanRemoteAuthority)(this.initData.remote.authority,this.initData),t}$onDidChangeTelemetryLevel(e){this._oldTelemetryEnablement=this.getTelemetryConfiguration(),this._level=e;let t=this.getTelemetryDetails();this._telemetryLoggers.forEach((e,t)=>{let i=e.filter(e=>!e.isDisposed);0===i.length?this._telemetryLoggers.delete(t):this._telemetryLoggers.set(t,i)}),this._telemetryLoggers.forEach(e=>{for(let i of e)i.updateTelemetryEnablements(t.isUsageEnabled,t.isErrorsEnabled)}),this._oldTelemetryEnablement!==this.getTelemetryConfiguration()&&this._onDidChangeTelemetryEnabled.fire(this.getTelemetryConfiguration()),this._onDidChangeTelemetryConfiguration.fire(this.getTelemetryDetails())}onExtensionError(e,t){let i=this._telemetryLoggers.get(e.value),r=i?.filter(e=>!e.isDisposed);if(!r)return this._telemetryLoggers.delete(e.value),!1;let n=!1;for(let e of r)e.ignoreUnhandledExtHostErrors||(e.logError(t),n=!0);return n}};tV=(0,ek.__decorate)([(0,ek.__param)(1,ej.IExtHostInitDataService),(0,ek.__param)(2,eM.ILoggerService)],tV);class tB{static validateSender(e){if("object"!=typeof e)throw TypeError("TelemetrySender argument is invalid");if("function"!=typeof e.sendEventData)throw TypeError("TelemetrySender.sendEventData must be a function");if("function"!=typeof e.sendErrorData)throw TypeError("TelemetrySender.sendErrorData must be a function");if(void 0!==e.flush&&"function"!=typeof e.flush)throw TypeError("TelemetrySender.flush must be a function or undefined")}constructor(e,t,i,r,n,o,s){this._extension=i,this._logger=r,this._inLoggingOnlyMode=n,this._commonProperties=o,this._onDidChangeEnableStates=new ey.Emitter,this.ignoreUnhandledExtHostErrors=t?.ignoreUnhandledErrors??!1,this._ignoreBuiltinCommonProperties=t?.ignoreBuiltInCommonProperties??!1,this._additionalCommonProperties=t?.additionalCommonProperties,this._sender=e,this._telemetryEnablements={isUsageEnabled:s.isUsageEnabled,isErrorsEnabled:s.isErrorsEnabled}}updateTelemetryEnablements(e,t){this._apiObject&&(this._telemetryEnablements={isUsageEnabled:e,isErrorsEnabled:t},this._onDidChangeEnableStates.fire(this._apiObject))}mixInCommonPropsAndCleanData(e){let t=e.properties?e.properties??{}:e;return t=(0,eE.cleanData)(t,[]),this._additionalCommonProperties&&(t=(0,tv.mixin)(t,this._additionalCommonProperties)),this._ignoreBuiltinCommonProperties||(t=(0,tv.mixin)(t,this._commonProperties)),e.properties?e.properties=t:e=t,e}logEvent(e,t){this._sender&&(e="vscode"===this._extension.publisher?this._extension.name+"/"+e:this._extension.identifier.value+"/"+e,t=this.mixInCommonPropsAndCleanData(t||{}),this._inLoggingOnlyMode||this._sender?.sendEventData(e,t),this._logger.trace(e,t))}logUsage(e,t){this._telemetryEnablements.isUsageEnabled&&this.logEvent(e,t)}logError(e,t){if(this._telemetryEnablements.isErrorsEnabled&&this._sender)if("string"==typeof e)this.logEvent(e,t);else{let i={name:e.name,message:e.message,stack:e.stack,cause:e.cause},r=(0,eE.cleanData)(i,[]),n=Error("string"==typeof r.message?r.message:void 0,{cause:r.cause});n.stack="string"==typeof r.stack?r.stack:void 0,n.name="string"==typeof r.name?r.name:"unknown",t=this.mixInCommonPropsAndCleanData(t||{}),this._inLoggingOnlyMode||this._sender.sendErrorData(n,t),this._logger.trace("exception",t)}}get apiTelemetryLogger(){if(!this._apiObject){let e=this,t={logUsage:e.logUsage.bind(e),get isUsageEnabled(){return e._telemetryEnablements.isUsageEnabled},get isErrorsEnabled(){return e._telemetryEnablements.isErrorsEnabled},logError:e.logError.bind(e),dispose:e.dispose.bind(e),onDidChangeEnableStates:e._onDidChangeEnableStates.event.bind(e)};this._apiObject=Object.freeze(t)}return this._apiObject}get isDisposed(){return!this._sender}dispose(){if(this._sender?.flush){let e=this._sender;this._sender=void 0,Promise.resolve(e.flush()).then(e=void 0),this._apiObject=void 0}else this._sender=void 0}}function tG(e){let t=Date.now()-new Date(e).getTime();return!isNaN(t)&&t<864e5}let tQ=(0,eR.createDecorator)("IExtHostTelemetry");var tJ=e.i(193409),tY=e.i(639451),tX=e.i(814704),tZ=e.i(246605),t0=e.i(926112);let t1=class{#e;#t;#i;constructor(e,t,i){this._commands=new Map,this._apiCommands=new Map,this.#e=e.getProxy(ev.MainContext.MainThreadCommands),this._logService=t,this.#i=i,this.#t=e.getProxy(ev.MainContext.MainThreadTelemetry),this.converter=new t6(this,e=>{let t=this._apiCommands.get(e);return t?.result===t4.Void?t:void 0},t),this._argumentProcessors=[{processArgument:e=>(0,e8.revive)(e)},{processArgument:e=>(0,tv.cloneAndChange)(e,function(e){return tE.Range.isIRange(e)?e6.Range.to(e):tk.Position.isIPosition(e)?e6.Position.to(e):tE.Range.isIRange(e.range)&&eD.URI.isUri(e.uri)?e6.location.to(e):e instanceof eF.VSBuffer?e.buffer.buffer:Array.isArray(e)?void 0:e})}]}registerArgumentProcessor(e){this._argumentProcessors.push(e)}registerApiCommand(e){let t=this.registerCommand(!1,e.id,async(...t)=>{let i=e.args.map((i,r)=>{if(!i.validate(t[r]))throw Error(`Invalid argument '${i.name}' when running '${e.id}', received: ${"object"==typeof t[r]?JSON.stringify(t[r],null," "):t[r]} `);return i.convert(t[r])}),r=await this.executeCommand(e.internalId,...i);return e.result.convert(r,t,this.converter)},void 0,{description:e.description,args:e.args,returns:e.result.description});return this._apiCommands.set(e.id,e),new eh.Disposable(()=>{t.dispose(),this._apiCommands.delete(e.id)})}registerCommand(e,t,i,r,n,o){if(this._logService.trace("ExtHostCommands#registerCommand",t),!t.trim().length)throw Error("invalid id");if(this._commands.has(t))throw Error(`command '${t}' already exists`);return this._commands.set(t,{callback:i,thisArg:r,metadata:n,extension:o}),e&&this.#e.$registerCommand(t),new eh.Disposable(()=>{this._commands.delete(t)&&e&&this.#e.$unregisterCommand(t)})}executeCommand(e,...t){return this._logService.trace("ExtHostCommands#executeCommand",e),this._doExecuteCommand(e,t,!0)}async _doExecuteCommand(e,t,i){if(this._commands.has(e))return this.#e.$fireCommandActivationEvent(e),this._executeContributedCommand(e,t,!1);{let r=!1,n=(0,tv.cloneAndChange)(t,function(e){if(e instanceof tY.Position)return e6.Position.from(e);if(e instanceof ti.Range)return e6.Range.from(e);if(e instanceof tZ.Location)return e6.location.from(e);if(t0.NotebookRange.isNotebookRange(e))return e6.NotebookRange.from(e);if(e instanceof ArrayBuffer)return r=!0,eF.VSBuffer.wrap(new Uint8Array(e));else if(e instanceof Uint8Array)return r=!0,eF.VSBuffer.wrap(e);else if(e instanceof eF.VSBuffer)return r=!0,e;if(!Array.isArray(e))return e});try{let t=await this.#e.$executeCommand(e,r?new tW.SerializableObjectWithBuffers(n):n,i);return(0,e8.revive)(t)}catch(i){if(i instanceof Error&&"$executeCommand:retry"===i.message)return this._doExecuteCommand(e,t,!1);throw i}}}async _executeContributedCommand(e,t,i){let r=this._commands.get(e);if(!r)throw Error("Unknown command");let{callback:n,thisArg:o,metadata:s}=r;if(s?.args)for(let i=0;i<s.args.length;i++)try{(0,eK.validateConstraint)(t[i],s.args[i].constraint)}catch(t){throw Error(`Running the contributed command: '${e}' failed. Illegal argument '${s.args[i].name}' - ${s.args[i].description}`)}let a=tj.StopWatch.create();try{return await n.apply(o,t)}catch(n){if(e===this.converter.delegatingCommandId){let i=this.converter.getActualCommand(...t);i&&(e=i.command)}if((0,eg.isCancellationError)(n)||this._logService.error(n,e,r.extension?.identifier),!i)throw n;if(r.extension?.identifier){let e=this.#i.onExtensionError(r.extension.identifier,n);this._logService.trace("forwarded error to extension?",e,r.extension?.identifier)}throw new class extends Error{constructor(){super((0,tq.toErrorMessage)(n)),this.id=e,this.source=r.extension?.displayName??r.extension?.name}}}finally{this._reportTelemetry(r,e,a.elapsed())}}_reportTelemetry(e,t,i){!e.extension||t.startsWith("code.copilot.logStructured")||this.#t.$publicLog2("Extension:ActionExecuted",{extensionId:e.extension.identifier.value,id:new eE.TelemetryTrustedValue(t),duration:i})}$executeContributedCommand(e,...t){this._logService.trace("ExtHostCommands#$executeContributedCommand",e);let i=this._commands.get(e);return i?(t=t.map(e=>this._argumentProcessors.reduce((e,t)=>t.processArgument(e,i.extension),e)),this._executeContributedCommand(e,t,!0)):Promise.reject(Error(`Contributed command '${e}' does not exist.`))}getCommands(e=!1){return this._logService.trace("ExtHostCommands#getCommands",e),this.#e.$getCommands().then(t=>(e&&(t=t.filter(e=>"_"!==e[0])),t))}$getContributedCommandMetadata(){let e=Object.create(null);for(let[t,i]of this._commands){let{metadata:r}=i;r&&(e[t]=r)}return Promise.resolve(e)}};t1=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,eM.ILogService),(0,ek.__param)(2,tQ)],t1);let t2=(0,eR.createDecorator)("IExtHostCommands");class t6{constructor(e,t,i){this._commands=e,this._lookupApiCommand=t,this._logService=i,this.delegatingCommandId=`__vsc${(0,tJ.generateUuid)()}`,this._cache=new Map,this._cachIdPool=0,this._commands.registerCommand(!0,this.delegatingCommandId,this._executeConvertedCommand,this)}toInternal(e,t){if(!e)return;let i={$ident:void 0,id:e.command,title:e.title,tooltip:e.tooltip};if(!e.command)return i;let r=this._lookupApiCommand(e.command);if(r)i.id=r.internalId,i.arguments=r.args.map((t,i)=>t.convert(e.arguments&&e.arguments[i]));else if((0,eY.isNonEmptyArray)(e.arguments)){let r=`${e.command} /${++this._cachIdPool}`;this._cache.set(r,e),t.add((0,eH.toDisposable)(()=>{this._cache.delete(r),this._logService.trace("CommandsConverter#DISPOSE",r)})),i.$ident=r,i.id=this.delegatingCommandId,i.arguments=[r],this._logService.trace("CommandsConverter#CREATE",e.command,r)}return i}fromInternal(e){return"string"==typeof e.$ident?this._cache.get(e.$ident):{command:e.id,title:e.title,arguments:e.arguments}}getActualCommand(...e){return this._cache.get(e[0])}_executeConvertedCommand(...e){let t=this.getActualCommand(...e);return(this._logService.trace("CommandsConverter#EXECUTE",e[0],t?t.command:"MISSING"),t)?this._commands.executeCommand(t.command,...t.arguments||[]):Promise.reject(`Actual command not found, wanted to execute ${e[0]}`)}}class t3{static{this.Uri=new t3("uri","Uri of a text document",e=>eD.URI.isUri(e),e=>e)}static{this.Position=new t3("position","A position in a text document",e=>tY.Position.isPosition(e),e6.Position.from)}static{this.Range=new t3("range","A range in a text document",e=>ti.Range.isRange(e),e6.Range.from)}static{this.Selection=new t3("selection","A selection in a text document",e=>tX.Selection.isSelection(e),e6.Selection.from)}static{this.Number=new t3("number","",e=>"number"==typeof e,e=>e)}static{this.String=new t3("string","",e=>"string"==typeof e,e=>e)}static Arr(e){return new t3(`${e.name}_array`,`Array of ${e.name}, ${e.description}`,t=>Array.isArray(t)&&t.every(t=>e.validate(t)),t=>t.map(t=>e.convert(t)))}static{this.CallHierarchyItem=new t3("item","A call hierarchy item",e=>e instanceof eh.CallHierarchyItem,e6.CallHierarchyItem.from)}static{this.TypeHierarchyItem=new t3("item","A type hierarchy item",e=>e instanceof eh.TypeHierarchyItem,e6.TypeHierarchyItem.from)}static{this.TestItem=new t3("testItem","A VS Code TestItem",e=>e instanceof t$,e6.TestItem.from)}static{this.TestProfile=new t3("testProfile","A VS Code test profile",e=>e instanceof eh.TestRunProfileBase,e6.TestRunProfile.from)}constructor(e,t,i,r){this.name=e,this.description=t,this.validate=i,this.convert=r}optional(){return new t3(this.name,`(optional) ${this.description}`,e=>null==e||this.validate(e),e=>void 0===e?void 0:null===e?null:this.convert(e))}with(e,t){return new t3(e??this.name,t??this.description,this.validate,this.convert)}}class t4{static{this.Void=new t4("no result",e=>e)}constructor(e,t){this.description=e,this.convert=t}}class t5{constructor(e,t,i,r,n){this.id=e,this.internalId=t,this.description=i,this.args=r,this.result=n}}var t8=e.i(957235),t7=e.i(644497),t9=e.i(316321),ie=e.i(581803);let it=new Map;class ii extends t7.MirrorTextModel{constructor(e,t,i,r,n,o,s,a,l=!0){super(t,i,r,n),this._proxy=e,this._languageId=o,this._isDirty=s,this._encoding=a,this._strictInstanceofChecks=l,this._isDisposed=!1}dispose(){(0,t8.ok)(!this._isDisposed),this._isDisposed=!0,this._isDirty=!1}equalLines(e){return(0,eY.equals)(this._lines,e)}get document(){if(!this._document){let e=this;this._document={get uri(){return e._uri},get fileName(){return e._uri.fsPath},get isUntitled(){return e._uri.scheme===eO.Schemas.untitled},get languageId(){return e._languageId},get version(){return e._versionId},get isClosed(){return e._isDisposed},get isDirty(){return e._isDirty},get encoding(){return e._encoding},save:()=>e._save(),getText:t=>t?e._getTextInRange(t):e.getText(),get eol(){return"\n"===e._eol?ie.EndOfLine.LF:ie.EndOfLine.CRLF},get lineCount(){return e._lines.length},lineAt:t=>e._lineAt(t),offsetAt:t=>e._offsetAt(t),positionAt:t=>e._positionAt(t),validateRange:t=>e._validateRange(t),validatePosition:t=>e._validatePosition(t),getWordRangeAtPosition:(t,i)=>e._getWordRangeAtPosition(t,i),[Symbol.for("debug.description")]:()=>`TextDocument(${e._uri.toString()})`}}return Object.freeze(this._document)}_acceptLanguageId(e){(0,t8.ok)(!this._isDisposed),this._languageId=e}_acceptIsDirty(e){(0,t8.ok)(!this._isDisposed),this._isDirty=e}_acceptEncoding(e){(0,t8.ok)(!this._isDisposed),this._encoding=e}_save(){return this._isDisposed?Promise.reject(Error("Document has been closed")):this._proxy.$trySaveDocument(this._uri)}_getTextInRange(e){let t=this._validateRange(e);if(t.isEmpty)return"";if(t.isSingleLine)return this._lines[t.start.line].substring(t.start.character,t.end.character);let i=this._eol,r=t.start.line,n=t.end.line,o=[];o.push(this._lines[r].substring(t.start.character));for(let e=r+1;e<n;e++)o.push(this._lines[e]);return o.push(this._lines[n].substring(0,t.end.character)),o.join(i)}_lineAt(e){let t;if(e instanceof tY.Position?t=e.line:"number"==typeof e?t=e:!this._strictInstanceofChecks&&tY.Position.isPosition(e)&&(t=e.line),"number"!=typeof t||t<0||t>=this._lines.length||Math.floor(t)!==t)throw Error("Illegal value for `line`");return new ir(t,this._lines[t],t===this._lines.length-1)}_offsetAt(e){return e=this._validatePosition(e),this._ensureLineStarts(),this._lineStarts.getPrefixSum(e.line-1)+e.character}_positionAt(e){e=Math.max(0,e=Math.floor(e)),this._ensureLineStarts();let t=this._lineStarts.getIndexOf(e),i=this._lines[t.index].length;return new tY.Position(t.index,Math.min(t.remainder,i))}_validateRange(e){if(this._strictInstanceofChecks){if(!(e instanceof ti.Range))throw Error("Invalid argument")}else if(!ti.Range.isRange(e))throw Error("Invalid argument");let t=this._validatePosition(e.start),i=this._validatePosition(e.end);return t===e.start&&i===e.end?e:new ti.Range(t.line,t.character,i.line,i.character)}_validatePosition(e){if(this._strictInstanceofChecks){if(!(e instanceof tY.Position))throw Error("Invalid argument")}else if(!tY.Position.isPosition(e))throw Error("Invalid argument");if(0===this._lines.length)return e.with(0,0);let{line:t,character:i}=e,r=!1;if(t<0)t=0,i=0,r=!0;else if(t>=this._lines.length)t=this._lines.length-1,i=this._lines[t].length,r=!0;else{let e=this._lines[t].length;i<0?(i=0,r=!0):i>e&&(i=e,r=!0)}return r?new tY.Position(t,i):e}_getWordRangeAtPosition(e,t){let i=this._validatePosition(e);if(t){if((0,e0.regExpLeadsToEndlessLoop)(t))throw Error(`[getWordRangeAtPosition]: ignoring custom regexp '${t.source}' because it matches the empty string.`)}else{var r;r=this._languageId,t=it.get(r)}let n=(0,t9.getWordAtText)(i.character+1,(0,t9.ensureValidWordDefinition)(t),this._lines[i.line],0);if(n)return new ti.Range(i.line,n.startColumn-1,i.line,n.endColumn-1)}}class ir{constructor(e,t,i){this._line=e,this._text=t,this._isLastLine=i}get lineNumber(){return this._line}get text(){return this._text}get range(){return new ti.Range(this._line,0,this._line,this._text.length)}get rangeIncludingLineBreak(){return this._isLastLine?this.range:new ti.Range(this._line,0,this._line+1,0)}get firstNonWhitespaceCharacterIndex(){return/^(\s*)/.exec(this._text)[1].length}get isEmptyOrWhitespace(){return this.firstNonWhitespaceCharacterIndex===this._text.length}}var io=e.i(773507);class is{static{this._Keys=new io.IdGenerator("TextEditorDecorationType")}constructor(e,t,i){const r=is._Keys.nextId();e.$registerTextEditorDecorationType(t.identifier,r,e6.DecorationRenderOptions.from(i)),this.value=Object.freeze({key:r,dispose(){e.$removeTextEditorDecorationType(r)}})}}class ia{constructor(e,t){this._collectedEdits=[],this._setEndOfLine=void 0,this._finalized=!1,this._document=e,this._documentVersionId=e.version,this._undoStopBefore=t.undoStopBefore,this._undoStopAfter=t.undoStopAfter}finalize(){return this._finalized=!0,{documentVersionId:this._documentVersionId,edits:this._collectedEdits,setEndOfLine:this._setEndOfLine,undoStopBefore:this._undoStopBefore,undoStopAfter:this._undoStopAfter}}_throwIfFinalized(){if(this._finalized)throw Error("Edit is only valid while callback runs")}replace(e,t){this._throwIfFinalized();let i=null;if(e instanceof tY.Position)i=new ti.Range(e,e);else if(e instanceof ti.Range)i=e;else throw Error("Unrecognized location");this._pushEdit(i,t,!1)}insert(e,t){this._throwIfFinalized(),this._pushEdit(new ti.Range(e,e),t,!0)}delete(e){this._throwIfFinalized();let t=null;if(e instanceof ti.Range)t=e;else throw Error("Unrecognized location");this._pushEdit(t,null,!0)}_pushEdit(e,t,i){let r=this._document.validateRange(e);this._collectedEdits.push({range:r,text:t,forceMoveMarkers:i})}setEndOfLine(e){if(this._throwIfFinalized(),e!==ie.EndOfLine.LF&&e!==ie.EndOfLine.CRLF)throw(0,eg.illegalArgument)("endOfLine");this._setEndOfLine=e}}class il{constructor(e,t,i,r){this._proxy=e,this._id=t,this._accept(i),this._logService=r;const n=this;this.value={get tabSize(){return n._tabSize},set tabSize(value){n._setTabSize(value)},get indentSize(){return n._indentSize},set indentSize(value){n._setIndentSize(value)},get insertSpaces(){return n._insertSpaces},set insertSpaces(value){n._setInsertSpaces(value)},get cursorStyle(){return n._cursorStyle},set cursorStyle(value){n._setCursorStyle(value)},get lineNumbers(){return n._lineNumbers},set lineNumbers(value){n._setLineNumbers(value)}}}_accept(e){this._tabSize=e.tabSize,this._indentSize=e.indentSize,this._originalIndentSize=e.originalIndentSize,this._insertSpaces=e.insertSpaces,this._cursorStyle=e.cursorStyle,this._lineNumbers=e6.TextEditorLineNumbersStyle.to(e.lineNumbers)}_validateTabSize(e){if("auto"===e)return"auto";if("number"==typeof e){let t=Math.floor(e);return t>0?t:null}if("string"==typeof e){let t=parseInt(e,10);return isNaN(t)?null:t>0?t:null}return null}_setTabSize(e){let t=this._validateTabSize(e);if(null!==t){if("number"==typeof t){if(this._tabSize===t)return;this._tabSize=t}this._warnOnError("setTabSize",this._proxy.$trySetOptions(this._id,{tabSize:t}))}}_validateIndentSize(e){if("tabSize"===e)return"tabSize";if("number"==typeof e){let t=Math.floor(e);return t>0?t:null}if("string"==typeof e){let t=parseInt(e,10);return isNaN(t)?null:t>0?t:null}return null}_setIndentSize(e){let t=this._validateIndentSize(e);if(null!==t){if("number"==typeof t){if(this._originalIndentSize===t)return;this._indentSize=t,this._originalIndentSize=t}this._warnOnError("setIndentSize",this._proxy.$trySetOptions(this._id,{indentSize:t}))}}_validateInsertSpaces(e){return"auto"===e?"auto":"false"!==e&&!!e}_setInsertSpaces(e){let t=this._validateInsertSpaces(e);if("boolean"==typeof t){if(this._insertSpaces===t)return;this._insertSpaces=t}this._warnOnError("setInsertSpaces",this._proxy.$trySetOptions(this._id,{insertSpaces:t}))}_setCursorStyle(e){this._cursorStyle!==e&&(this._cursorStyle=e,this._warnOnError("setCursorStyle",this._proxy.$trySetOptions(this._id,{cursorStyle:e})))}_setLineNumbers(e){this._lineNumbers!==e&&(this._lineNumbers=e,this._warnOnError("setLineNumbers",this._proxy.$trySetOptions(this._id,{lineNumbers:e6.TextEditorLineNumbersStyle.from(e)})))}assign(e){let t={},i=!1;if(void 0!==e.tabSize){let r=this._validateTabSize(e.tabSize);"auto"===r?(i=!0,t.tabSize=r):"number"==typeof r&&this._tabSize!==r&&(this._tabSize=r,i=!0,t.tabSize=r)}if(void 0!==e.indentSize){let r=this._validateIndentSize(e.indentSize);"tabSize"===r?(i=!0,t.indentSize=r):"number"==typeof r&&this._originalIndentSize!==r&&(this._indentSize=r,this._originalIndentSize=r,i=!0,t.indentSize=r)}if(void 0!==e.insertSpaces){let r=this._validateInsertSpaces(e.insertSpaces);"auto"===r?(i=!0,t.insertSpaces=r):this._insertSpaces!==r&&(this._insertSpaces=r,i=!0,t.insertSpaces=r)}void 0!==e.cursorStyle&&this._cursorStyle!==e.cursorStyle&&(this._cursorStyle=e.cursorStyle,i=!0,t.cursorStyle=e.cursorStyle),void 0!==e.lineNumbers&&this._lineNumbers!==e.lineNumbers&&(this._lineNumbers=e.lineNumbers,i=!0,t.lineNumbers=e6.TextEditorLineNumbersStyle.from(e.lineNumbers)),i&&this._warnOnError("setOptions",this._proxy.$trySetOptions(this._id,t))}_warnOnError(e,t){t.catch(t=>{this._logService.warn(`ExtHostTextEditorOptions '${e}' failed:'`),this._logService.warn(t)})}}class ic{constructor(e,t,i,r,n,o,s,a){this.id=e,this._proxy=t,this._logService=i,this._disposed=!1,this._hasDecorationsForKey=new Set,this._selections=n,this._options=new il(this._proxy,this.id,o,i),this._visibleRanges=s,this._viewColumn=a;const l=this;this.value=Object.freeze({get document(){return r.value},set document(_value){throw new eg.ReadonlyError("document")},get selection(){return l._selections&&l._selections[0]},set selection(value){if(!(value instanceof tX.Selection))throw(0,eg.illegalArgument)("selection");l._selections=[value],l._trySetSelection()},get selections(){return l._selections},set selections(value){if(!Array.isArray(value)||value.some(e=>!(e instanceof tX.Selection)))throw(0,eg.illegalArgument)("selections");0===value.length&&(value=[new tX.Selection(0,0,0,0)]),l._selections=value,l._trySetSelection()},get visibleRanges(){return l._visibleRanges},set visibleRanges(_value){throw new eg.ReadonlyError("visibleRanges")},get diffInformation(){return l._diffInformation},get options(){return l._options.value},set options(value){l._disposed||l._options.assign(value)},get viewColumn(){return l._viewColumn},set viewColumn(_value){throw new eg.ReadonlyError("viewColumn")},edit(e,t={undoStopBefore:!0,undoStopAfter:!0}){if(l._disposed)return Promise.reject(Error("TextEditor#edit not possible on closed editors"));let i=new ia(r.value,t);return e(i),l._applyEdit(i)},insertSnippet(i,n,o={undoStopBefore:!0,undoStopAfter:!0}){let s;if(l._disposed)return Promise.reject(Error("TextEditor#insertSnippet not possible on closed editors"));if(!n||Array.isArray(n)&&0===n.length)s=l._selections.map(e=>e6.Range.from(e));else if(n instanceof tY.Position){let{lineNumber:e,column:t}=e6.Position.from(n);s=[{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}]}else if(n instanceof ti.Range)s=[e6.Range.from(n)];else for(let e of(s=[],n))if(e instanceof ti.Range)s.push(e6.Range.from(e));else{let{lineNumber:t,column:i}=e6.Position.from(e);s.push({startLineNumber:t,startColumn:i,endLineNumber:t,endColumn:i})}return void 0===o.keepWhitespace&&(o.keepWhitespace=!1),t.$tryInsertSnippet(e,r.value.version,i.value,s,o)},setDecorations(i,r){let n=0===r.length;(!n||l._hasDecorationsForKey.has(i.key))&&(n?l._hasDecorationsForKey.delete(i.key):l._hasDecorationsForKey.add(i.key),l._runOnProxy(()=>{if((0,e6.isDecorationOptionsArr)(r))return t.$trySetDecorations(e,i.key,(0,e6.fromRangeOrRangeWithMessage)(r));{let n=Array(4*r.length);for(let e=0,t=r.length;e<t;e++){let t=r[e];n[4*e]=t.start.line+1,n[4*e+1]=t.start.character+1,n[4*e+2]=t.end.line+1,n[4*e+3]=t.end.character+1}return t.$trySetDecorationsFast(e,i.key,n)}}))},revealRange(i,r){l._runOnProxy(()=>t.$tryRevealRange(e,e6.Range.from(i),r||eh.TextEditorRevealType.Default))},show(i){t.$tryShowEditor(e,e6.ViewColumn.from(i))},hide(){t.$tryHideEditor(e)},[Symbol.for("debug.description")](){return`TextEditor(${this.document.uri.toString()})`}})}dispose(){(0,t8.ok)(!this._disposed),this._disposed=!0}_acceptOptions(e){(0,t8.ok)(!this._disposed),this._options._accept(e)}_acceptVisibleRanges(e){(0,t8.ok)(!this._disposed),this._visibleRanges=e}_acceptViewColumn(e){(0,t8.ok)(!this._disposed),this._viewColumn=e}_acceptSelections(e){(0,t8.ok)(!this._disposed),this._selections=e}_acceptDiffInformation(e){(0,t8.ok)(!this._disposed),this._diffInformation=e}async _trySetSelection(){let e=this._selections.map(e6.Selection.from);return await this._runOnProxy(()=>this._proxy.$trySetSelections(this.id,e)),this.value}_applyEdit(e){let t=e.finalize();if(0===t.edits.length&&!t.setEndOfLine)return Promise.resolve(!0);let i=t.edits.map(e=>e.range);i.sort((e,t)=>{if(e.end.line===t.end.line)return e.end.character===t.end.character?e.start.line===t.start.line?e.start.character-t.start.character:e.start.line-t.start.line:e.end.character-t.end.character;return e.end.line-t.end.line});for(let e=0,t=i.length-1;e<t;e++){let t=i[e].end;if(i[e+1].start.isBefore(t))return Promise.reject(Error("Overlapping ranges are not allowed!"))}let r=t.edits.map(e=>({range:e6.Range.from(e.range),text:e.text,forceMoveMarkers:e.forceMoveMarkers}));return this._proxy.$tryApplyEdits(this.id,t.documentVersionId,r,{setEndOfLine:"number"==typeof t.setEndOfLine?e6.EndOfLine.from(t.setEndOfLine):void 0,undoStopBefore:t.undoStopBefore,undoStopAfter:t.undoStopAfter})}_runOnProxy(e){return this._disposed?(this._logService.warn("TextEditor is closed/disposed"),Promise.resolve(void 0)):e().then(()=>this,e=>(e instanceof Error&&"DISPOSED"===e.name||this._logService.warn(e),null))}}var id=e.i(751753),iu=e.i(682807);class ih{constructor(e){this.value=e,this._count=0}ref(){this._count++}unref(){return 0==--this._count}}let ig=class{constructor(e,t){this._extHostRpc=e,this._logService=t,this._activeEditorId=null,this._editors=new Map,this._documents=new eV.ResourceMap,this._onDidAddDocuments=new ey.Emitter,this._onDidRemoveDocuments=new ey.Emitter,this._onDidChangeVisibleTextEditors=new ey.Emitter,this._onDidChangeActiveTextEditor=new ey.Emitter,this.onDidAddDocuments=this._onDidAddDocuments.event,this.onDidRemoveDocuments=this._onDidRemoveDocuments.event,this.onDidChangeVisibleTextEditors=this._onDidChangeVisibleTextEditors.event,this.onDidChangeActiveTextEditor=this._onDidChangeActiveTextEditor.event}$acceptDocumentsAndEditorsDelta(e){this.acceptDocumentsAndEditorsDelta(e)}acceptDocumentsAndEditorsDelta(e){let t=[],i=[],r=[];if(e.removedDocuments)for(let i of e.removedDocuments){let e=eD.URI.revive(i),r=this._documents.get(e);r?.unref()&&(this._documents.delete(e),t.push(r.value))}if(e.addedDocuments)for(let t of e.addedDocuments){let e=eD.URI.revive(t.uri),r=this._documents.get(e);if(r&&e.scheme!==eO.Schemas.vscodeNotebookCell&&e.scheme!==eO.Schemas.vscodeInteractiveInput)throw Error(`document '${e} already exists!'`);r||(r=new ih(new ii(this._extHostRpc.getProxy(ev.MainContext.MainThreadDocuments),e,t.lines,t.EOL,t.versionId,t.languageId,t.isDirty,t.encoding)),this._documents.set(e,r),i.push(r.value)),r.ref()}if(e.removedEditors)for(let t of e.removedEditors){let e=this._editors.get(t);this._editors.delete(t),e&&r.push(e)}if(e.addedEditors)for(let t of e.addedEditors){let e=eD.URI.revive(t.documentUri);(0,t8.ok)(this._documents.has(e),`document '${e}' does not exist`),(0,t8.ok)(!this._editors.has(t.id),`editor '${t.id}' already exists!`);let i=this._documents.get(e).value,r=new ic(t.id,this._extHostRpc.getProxy(ev.MainContext.MainThreadTextEditors),this._logService,new iu.Lazy(()=>i.document),t.selections.map(e6.Selection.to),t.options,t.visibleRanges.map(e=>e6.Range.to(e)),"number"==typeof t.editorPosition?e6.ViewColumn.to(t.editorPosition):void 0);this._editors.set(t.id,r)}void 0!==e.newActiveEditor&&((0,t8.ok)(null===e.newActiveEditor||this._editors.has(e.newActiveEditor),`active editor '${e.newActiveEditor}' does not exist`),this._activeEditorId=e.newActiveEditor),(0,eH.dispose)(t),(0,eH.dispose)(r),e.removedDocuments&&this._onDidRemoveDocuments.fire(t),e.addedDocuments&&this._onDidAddDocuments.fire(i),(e.removedEditors||e.addedEditors)&&this._onDidChangeVisibleTextEditors.fire(this.allEditors().map(e=>e.value)),void 0!==e.newActiveEditor&&this._onDidChangeActiveTextEditor.fire(this.activeEditor())}getDocument(e){return this._documents.get(e)?.value}allDocuments(){return id.Iterable.map(this._documents.values(),e=>e.value)}getEditor(e){return this._editors.get(e)}activeEditor(e){if(!this._activeEditorId)return;let t=this._editors.get(this._activeEditorId);return e?t:t?.value}allEditors(){return[...this._editors.values()]}};ig=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,eM.ILogService)],ig);let ip=(0,eR.createDecorator)("IExtHostDocumentsAndEditors");var im=eH,iv=e.i(761825),i_=e.i(596950),iy=e.i(339095),iC=e.i(536367),iS=e.i(168221),ib=e.i(354244);let iw=(0,eR.createDecorator)("IExtHostTerminalService");class ix extends im.Disposable{constructor(e,t,i,r){super(),this._proxy=e,this._id=t,this._creationOptions=i,this._name=r,this._disposed=!1,this._state={isInteractedWith:!1,shell:void 0},this.isOpen=!1,this._onWillDispose=this._register(new ey.Emitter),this.onWillDispose=this._onWillDispose.event,this._creationOptions=Object.freeze(this._creationOptions),this._pidPromise=new Promise(e=>this._pidPromiseComplete=e);const n=this;this.value={get name(){return n._name||""},get processId(){return n._pidPromise},get creationOptions(){return n._creationOptions},get exitStatus(){return n._exitStatus},get state(){return n._state},get selection(){return n._selection},get shellIntegration(){return n.shellIntegration},sendText(e,t=!0){n._checkDisposed(),n._proxy.$sendText(n._id,e,t)},show(e){n._checkDisposed(),n._proxy.$show(n._id,e)},hide(){n._checkDisposed(),n._proxy.$hide(n._id)},dispose(){n._disposed||(n._disposed=!0,n._proxy.$dispose(n._id))},get dimensions(){if(void 0===n._cols||void 0===n._rows)return;return{columns:n._cols,rows:n._rows}}}}dispose(){this._onWillDispose.fire(),super.dispose()}async create(e,t){if("string"!=typeof this._id)throw Error("Terminal has already been created");await this._proxy.$createTerminal(this._id,{name:e.name,shellPath:e.shellPath??void 0,shellArgs:e.shellArgs??void 0,cwd:e.cwd??t?.cwd??void 0,env:e.env??void 0,icon:iI(e.iconPath)??void 0,color:iC.ThemeColor.isThemeColor(e.color)?e.color.id:void 0,initialText:e.message??void 0,strictEnv:e.strictEnv??void 0,hideFromUser:e.hideFromUser??void 0,forceShellIntegration:t?.forceShellIntegration??void 0,isFeatureTerminal:t?.isFeatureTerminal??void 0,isExtensionOwnedTerminal:!0,useShellEnvironment:t?.useShellEnvironment??void 0,location:t?.location||this._serializeParentTerminal(e.location,t?.resolvedExtHostIdentifier),isTransient:e.isTransient??void 0,shellIntegrationNonce:e.shellIntegrationNonce??void 0})}async createExtensionTerminal(e,t,i,r,n,o){if("string"!=typeof this._id)throw Error("Terminal has already been created");if(await this._proxy.$createTerminal(this._id,{name:this._name,isExtensionCustomPtyTerminal:!0,icon:r,color:iC.ThemeColor.isThemeColor(n)?n.id:void 0,location:t?.location||this._serializeParentTerminal(e,i),isTransient:!0,shellIntegrationNonce:o??void 0}),"string"==typeof this._id)throw Error("Terminal creation failed");return this._id}_serializeParentTerminal(e,t){return"object"==typeof e?(0,eK.hasKey)(e,{parentTerminal:!0})&&e.parentTerminal&&t?{parentTerminal:t}:(0,eK.hasKey)(e,{viewColumn:!0})?{viewColumn:e6.ViewColumn.from(e.viewColumn),preserveFocus:e.preserveFocus}:void 0:e}_checkDisposed(){if(this._disposed)throw Error("Terminal has already been disposed")}set name(e){this._name=e}setExitStatus(e,t){this._exitStatus=Object.freeze({code:e,reason:t})}setDimensions(e,t){return(e!==this._cols||t!==this._rows)&&0!==e&&0!==t&&(this._cols=e,this._rows=t,!0)}setInteractedWith(){return!this._state.isInteractedWith&&(this._state={...this._state,isInteractedWith:!0},!0)}setShellType(e){return this._state.shell!==e&&(this._state={...this._state,shell:e},!0)}setSelection(e){this._selection=e}_setProcessId(e){this._pidPromiseComplete?(this._pidPromiseComplete(e),this._pidPromiseComplete=void 0):this._pidPromise.then(t=>{t!==e&&(this._pidPromise=Promise.resolve(e))})}}class iD{get onProcessReady(){return this._onProcessReady.event}constructor(e){this._pty=e,this.id=0,this.shouldPersist=!1,this._onProcessData=new ey.Emitter,this.onProcessData=this._onProcessData.event,this._onProcessReady=new ey.Emitter,this._onDidChangeProperty=new ey.Emitter,this.onDidChangeProperty=this._onDidChangeProperty.event,this._onProcessExit=new ey.Emitter,this.onProcessExit=this._onProcessExit.event}refreshProperty(e){throw Error(`refreshProperty is not suppported in extension owned terminals. property: ${e}`)}updateProperty(e,t){throw Error(`updateProperty is not suppported in extension owned terminals. property: ${e}, value: ${t}`)}async start(){}shutdown(){this._pty.close()}input(e){this._pty.handleInput?.(e)}sendSignal(e){}resize(e,t){this._pty.setDimensions?.({columns:e,rows:t})}clearBuffer(){}async processBinary(e){}acknowledgeDataEvent(e){}async setUnicodeVersion(e){}getInitialCwd(){return Promise.resolve("")}getCwd(){return Promise.resolve("")}startSendingEvents(e){this._pty.onDidWrite(e=>this._onProcessData.fire(e)),this._pty.onDidClose?.(e=>{this._onProcessExit.fire(void 0===e?void 0:e)}),this._pty.onDidOverrideDimensions?.(e=>{e&&this._onDidChangeProperty.fire({type:i_.ProcessPropertyType.OverrideDimensions,value:{cols:e.columns,rows:e.rows}})}),this._pty.onDidChangeName?.(e=>{this._onDidChangeProperty.fire({type:i_.ProcessPropertyType.Title,value:e})}),this._pty.open(e||void 0),e&&this._pty.setDimensions?.(e),this._onProcessReady.fire({pid:-1,cwd:"",windowsPty:void 0})}}let iE=1,ik=class extends im.Disposable{get activeTerminal(){return this._activeTerminal?.value}get terminals(){return this._terminals.map(e=>e.value)}constructor(e,t,i){super(),this._extHostCommands=t,this._terminals=[],this._terminalProcesses=new Map,this._terminalProcessDisposables={},this._extensionTerminalAwaitingStart={},this._getTerminalPromises={},this._environmentVariableCollections=new Map,this._lastQuickFixCommands=this._register(new im.MutableDisposable),this._linkProviders=new Set,this._completionProviders=new Map,this._profileProviders=new Map,this._quickFixProviders=new Map,this._terminalLinkCache=new Map,this._terminalLinkCancellationSource=new Map,this._onDidCloseTerminal=new ey.Emitter,this.onDidCloseTerminal=this._onDidCloseTerminal.event,this._onDidOpenTerminal=new ey.Emitter,this.onDidOpenTerminal=this._onDidOpenTerminal.event,this._onDidChangeActiveTerminal=new ey.Emitter,this.onDidChangeActiveTerminal=this._onDidChangeActiveTerminal.event,this._onDidChangeTerminalDimensions=new ey.Emitter,this.onDidChangeTerminalDimensions=this._onDidChangeTerminalDimensions.event,this._onDidChangeTerminalState=new ey.Emitter,this.onDidChangeTerminalState=this._onDidChangeTerminalState.event,this._onDidChangeShell=new ey.Emitter,this.onDidChangeShell=this._onDidChangeShell.event,this._onDidWriteTerminalData=new ey.Emitter({onWillAddFirstListener:()=>this._proxy.$startSendingDataEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingDataEvents()}),this.onDidWriteTerminalData=this._onDidWriteTerminalData.event,this._onDidExecuteCommand=new ey.Emitter({onWillAddFirstListener:()=>this._proxy.$startSendingCommandEvents(),onDidRemoveLastListener:()=>this._proxy.$stopSendingCommandEvents()}),this.onDidExecuteTerminalCommand=this._onDidExecuteCommand.event,this._proxy=i.getProxy(ev.MainContext.MainThreadTerminalService),this._bufferer=new iy.TerminalDataBufferer(this._proxy.$sendProcessData),this._proxy.$registerProcessSupport(e),this._extHostCommands.registerArgumentProcessor({processArgument:e=>{let t=e=>this.getTerminalById(e.instanceId)?.value;if(e?.$mid===iS.MarshalledId.TerminalContext)return t(e);if(Array.isArray(e))for(let i=0;i<e.length;i++)if(e[i].$mid===iS.MarshalledId.TerminalContext)e[i]=t(e[i]);else break;return e}}),this._register({dispose:()=>{for(let[e,t]of this._terminalProcesses)t.shutdown(!0)}})}getDefaultShell(e){let t=e?this._defaultAutomationProfile:this._defaultProfile;return t?.path||""}getDefaultShellArgs(e){let t=e?this._defaultAutomationProfile:this._defaultProfile;return t?.args||[]}createExtensionTerminal(e,t){var i;let r=new ix(this._proxy,(0,tJ.generateUuid)(),e,e.name),n=new iD(e.pty);return r.createExtensionTerminal(e.location,t,this._serializeParentTerminal(e,t).resolvedExtHostIdentifier,iI(e.iconPath),(i=e.color,iC.ThemeColor.isThemeColor(i)?i:void 0),e.shellIntegrationNonce).then(e=>{let t=this._setupExtHostProcessListeners(e,n);this._terminalProcessDisposables[e]=t}),this._terminals.push(r),r.value}_serializeParentTerminal(e,t){if(t=t||{},e.location&&"object"==typeof e.location&&(0,eK.hasKey)(e.location,{parentTerminal:!0})){let i=e.location.parentTerminal;if(i){let e=this._terminals.find(e=>e.value===i);e&&(t.resolvedExtHostIdentifier=e._id)}}else e.location&&"object"!=typeof e.location?t.location=e.location:t.location&&"object"==typeof t.location&&(0,eK.hasKey)(t.location,{splitActiveTerminal:!0})&&(t.location={splitActiveTerminal:!0});return t}attachPtyToTerminal(e,t){if(!this.getTerminalById(e))throw Error(`Cannot resolve terminal with id ${e} for virtual process`);let i=new iD(t),r=this._setupExtHostProcessListeners(e,i);this._terminalProcessDisposables[e]=r}async $acceptActiveTerminalChanged(e){let t=this._activeTerminal;if(null===e){this._activeTerminal=void 0,t!==this._activeTerminal&&this._onDidChangeActiveTerminal.fire(this._activeTerminal);return}let i=this.getTerminalById(e);i&&(this._activeTerminal=i,t!==this._activeTerminal&&this._onDidChangeActiveTerminal.fire(this._activeTerminal.value))}async $acceptTerminalProcessData(e,t){let i=this.getTerminalById(e);i&&this._onDidWriteTerminalData.fire({terminal:i.value,data:t})}async $acceptTerminalDimensions(e,t,i){let r=this.getTerminalById(e);r&&r.setDimensions(t,i)&&this._onDidChangeTerminalDimensions.fire({terminal:r.value,dimensions:r.value.dimensions})}async $acceptDidExecuteCommand(e,t){let i=this.getTerminalById(e);i&&this._onDidExecuteCommand.fire({terminal:i.value,...t})}async $acceptTerminalMaximumDimensions(e,t,i){this._terminalProcesses.get(e)?.resize(t,i)}async $acceptTerminalTitleChange(e,t){let i=this.getTerminalById(e);i&&(i.name=t)}async $acceptTerminalClosed(e,t,i){let r=this._getTerminalObjectIndexById(this._terminals,e);if(null!==r){let e=this._terminals.splice(r,1)[0];e.setExitStatus(t,i),this._onDidCloseTerminal.fire(e.value)}}$acceptTerminalOpened(e,t,i,r){if(t){let i=this._getTerminalObjectIndexById(this._terminals,t);if(null!==i){this._terminals[i]._id=e,this._onDidOpenTerminal.fire(this.terminals[i]),this._terminals[i].isOpen=!0;return}}let n={name:r.name,shellPath:r.executable,shellArgs:r.args,cwd:"string"==typeof r.cwd?r.cwd:eD.URI.revive(r.cwd),env:r.env,hideFromUser:r.hideFromUser},o=new ix(this._proxy,e,n,i);this._terminals.push(o),this._onDidOpenTerminal.fire(o.value),o.isOpen=!0}async $acceptTerminalProcessId(e,t){let i=this.getTerminalById(e);i?._setProcessId(t)}async $startExtensionTerminal(e,t){let i=this.getTerminalById(e);if(!i)return{message:(0,e1.localize)(2703,"Could not find the terminal with id {0} on the extension host",e)};i.isOpen||await new Promise(e=>{let t=this.onDidOpenTerminal(async r=>{r===i.value&&(t.dispose(),e())})});let r=this._terminalProcesses.get(e);r?r.startSendingEvents(t):this._extensionTerminalAwaitingStart[e]={initialDimensions:t}}_setupExtHostProcessListeners(e,t){let i=new im.DisposableStore;i.add(t.onProcessReady(t=>this._proxy.$sendProcessReady(e,t.pid,t.cwd,t.windowsPty))),i.add(t.onDidChangeProperty(t=>this._proxy.$sendProcessProperty(e,t))),this._bufferer.startBuffering(e,t.onProcessData),i.add(t.onProcessExit(t=>this._onProcessExit(e,t))),this._terminalProcesses.set(e,t);let r=this._extensionTerminalAwaitingStart[e];return r&&t instanceof iD&&(t.startSendingEvents(r.initialDimensions),delete this._extensionTerminalAwaitingStart[e]),i}$acceptProcessAckDataEvent(e,t){this._terminalProcesses.get(e)?.acknowledgeDataEvent(t)}$acceptProcessInput(e,t){this._terminalProcesses.get(e)?.input(t)}$acceptTerminalInteraction(e){let t=this.getTerminalById(e);t?.setInteractedWith()&&this._onDidChangeTerminalState.fire(t.value)}$acceptTerminalSelection(e,t){this.getTerminalById(e)?.setSelection(t)}$acceptProcessResize(e,t,i){try{this._terminalProcesses.get(e)?.resize(t,i)}catch(e){if("EPIPE"!==e.code&&"ERR_IPC_CHANNEL_CLOSED"!==e.code)throw e}}$acceptProcessShutdown(e,t){this._terminalProcesses.get(e)?.shutdown(t)}$acceptProcessRequestInitialCwd(e){this._terminalProcesses.get(e)?.getInitialCwd().then(t=>this._proxy.$sendProcessProperty(e,{type:i_.ProcessPropertyType.InitialCwd,value:t}))}$acceptProcessRequestCwd(e){this._terminalProcesses.get(e)?.getCwd().then(t=>this._proxy.$sendProcessProperty(e,{type:i_.ProcessPropertyType.Cwd,value:t}))}$acceptProcessRequestLatency(e){return Promise.resolve(e)}registerProfileProvider(e,t,i){if(this._profileProviders.has(t))throw Error(`Terminal profile provider "${t}" already registered`);return this._profileProviders.set(t,i),this._proxy.$registerProfileProvider(t,e.identifier.value),new eh.Disposable(()=>{this._profileProviders.delete(t),this._proxy.$unregisterProfileProvider(t)})}registerTerminalCompletionProvider(e,t,...i){if(this._completionProviders.has(e.identifier.value))throw Error(`Terminal completion provider "${e.identifier.value}" already registered`);return this._completionProviders.set(e.identifier.value,t),this._proxy.$registerCompletionProvider(e.identifier.value,e.identifier.value,...i),new eh.Disposable(()=>{this._completionProviders.delete(e.identifier.value),this._proxy.$unregisterCompletionProvider(e.identifier.value)})}async $provideTerminalCompletions(e,t){let i=new ef.CancellationTokenSource().token;if(i.isCancellationRequested||!this.activeTerminal)return;let r=this._completionProviders.get(e);if(!r)return;let n=await r.provideTerminalCompletions(this.activeTerminal,t,i);if(null==n)return;let o=ib.isWindows&&this.activeTerminal.state?.shell!==i_.WindowsShellType.GitBash?"\\":"/";return e6.TerminalCompletionList.from(n,o)}$acceptTerminalShellType(e,t){let i=this.getTerminalById(e);i?.setShellType(t)&&this._onDidChangeTerminalState.fire(i.value)}registerTerminalQuickFixProvider(e,t,i){if(this._quickFixProviders.has(e))throw Error(`Terminal quick fix provider "${e}" is already registered`);return this._quickFixProviders.set(e,i),this._proxy.$registerQuickFixProvider(e,t),new eh.Disposable(()=>{this._quickFixProviders.delete(e),this._proxy.$unregisterQuickFixProvider(e)})}async $provideTerminalQuickFixes(e,t){let i=new ef.CancellationTokenSource().token;if(i.isCancellationRequested)return;let r=this._quickFixProviders.get(e);if(!r)return;let n=await r.provideTerminalQuickFixes(t,i);if(null===n||Array.isArray(n)&&0===n.length)return;let o=new im.DisposableStore;if(this._lastQuickFixCommands.value=o,!Array.isArray(n))return n?e6.TerminalQuickFix.from(n,this._extHostCommands.converter,o):void 0;let s=[];for(let e of n){let t=e6.TerminalQuickFix.from(e,this._extHostCommands.converter,o);t&&s.push(t)}return s}async $createContributedProfileTerminal(e,t){let i=new ef.CancellationTokenSource().token,r=await this._profileProviders.get(e)?.provideTerminalProfile(i);if(!i.isCancellationRequested){if(r&&!(0,eK.hasKey)(r,{options:!0})&&(r={options:r}),!r||!(0,eK.hasKey)(r,{options:!0}))throw Error(`No terminal profile options provided for id "${e}"`);if((0,eK.hasKey)(r.options,{pty:!0}))return void this.createExtensionTerminal(r.options,t);this.createTerminalFromOptions(r.options,t)}}registerLinkProvider(e){return this._linkProviders.add(e),1===this._linkProviders.size&&this._proxy.$startLinkProvider(),new eh.Disposable(()=>{this._linkProviders.delete(e),0===this._linkProviders.size&&this._proxy.$stopLinkProvider()})}async $provideLinks(e,t){let i=this.getTerminalById(e);if(!i)return[];this._terminalLinkCache.delete(e);let r=this._terminalLinkCancellationSource.get(e);r?.dispose(!0);let n=new ef.CancellationTokenSource;this._terminalLinkCancellationSource.set(e,n);let o=[],s={terminal:i.value,line:t},a=[];for(let e of this._linkProviders)a.push(eU.Promises.withAsyncBody(async t=>{n.token.onCancellationRequested(()=>t({provider:e,links:[]}));let i=await e.provideTerminalLinks(s,n.token)||[];n.token.isCancellationRequested||t({provider:e,links:i})}));let l=await Promise.all(a);if(n.token.isCancellationRequested)return[];let c=new Map;for(let e of l)e&&e.links.length>0&&o.push(...e.links.map(t=>{let i={id:iE++,startIndex:t.startIndex,length:t.length,label:t.tooltip};return c.set(i.id,{provider:e.provider,link:t}),i}));return this._terminalLinkCache.set(e,c),o}$activateLink(e,t){let i=this._terminalLinkCache.get(e)?.get(t);i&&i.provider.handleTerminalLink(i.link)}_onProcessExit(e,t){this._bufferer.stopBuffering(e),this._terminalProcesses.delete(e),delete this._extensionTerminalAwaitingStart[e];let i=this._terminalProcessDisposables[e];i&&(i.dispose(),delete this._terminalProcessDisposables[e]),this._proxy.$sendProcessExit(e,t)}getTerminalById(e){return this._getTerminalObjectById(this._terminals,e)}getTerminalIdByApiObject(e){let t=this._terminals.findIndex(t=>t.value===e);return t>=0?t:null}_getTerminalObjectById(e,t){let i=this._getTerminalObjectIndexById(e,t);return null!==i?e[i]:null}_getTerminalObjectIndexById(e,t){let i=e.findIndex(e=>e._id===t);return i>=0?i:null}getEnvironmentVariableCollection(e){let t=this._environmentVariableCollections.get(e.identifier.value);return t||(t=this._register(new iT),this._setEnvironmentVariableCollection(e.identifier.value,t)),t.getScopedEnvironmentVariableCollection(void 0)}_syncEnvironmentVariableCollection(e,t){let i=(0,iv.serializeEnvironmentVariableCollection)(t.map),r=(0,iv.serializeEnvironmentDescriptionMap)(t.descriptionMap);this._proxy.$setEnvironmentVariableCollection(e,t.persistent,0===i.length?void 0:i,r)}$initEnvironmentVariableCollections(e){e.forEach(e=>{let t=e[0],i=this._register(new iT(e[1]));this._setEnvironmentVariableCollection(t,i)})}$acceptDefaultProfile(e,t){let i=this._defaultProfile;this._defaultProfile=e,this._defaultAutomationProfile=t,i?.path!==e.path&&this._onDidChangeShell.fire(e.path)}_setEnvironmentVariableCollection(e,t){this._environmentVariableCollections.set(e,t),this._register(t.onDidChangeCollection(()=>{this._syncEnvironmentVariableCollection(e,t)}))}};ik=(0,ek.__decorate)([(0,ek.__param)(1,t2),(0,ek.__param)(2,eP.IExtHostRpcService)],ik);class iT extends im.Disposable{get persistent(){return this._persistent}set persistent(e){this._persistent=e,this._onDidChangeCollection.fire()}get onDidChangeCollection(){return this._onDidChangeCollection&&this._onDidChangeCollection.event}constructor(e){super(),this.map=new Map,this.scopedCollections=new Map,this.descriptionMap=new Map,this._persistent=!0,this._onDidChangeCollection=new ey.Emitter,this.map=new Map(e)}getScopedEnvironmentVariableCollection(e){let t=this.getScopeKey(e),i=this.scopedCollections.get(t);return i||(i=new iR(this,e),this.scopedCollections.set(t,i),this._register(i.onDidChangeCollection(()=>this._onDidChangeCollection.fire()))),i}replace(e,t,i,r){this._setIfDiffers(e,{value:t,type:eh.EnvironmentVariableMutatorType.Replace,options:i??{applyAtProcessCreation:!0},scope:r})}append(e,t,i,r){this._setIfDiffers(e,{value:t,type:eh.EnvironmentVariableMutatorType.Append,options:i??{applyAtProcessCreation:!0},scope:r})}prepend(e,t,i,r){this._setIfDiffers(e,{value:t,type:eh.EnvironmentVariableMutatorType.Prepend,options:i??{applyAtProcessCreation:!0},scope:r})}_setIfDiffers(e,t){if(t.options&&!1===t.options.applyAtProcessCreation&&!t.options.applyAtShellIntegration)throw Error("EnvironmentVariableMutatorOptions must apply at either process creation or shell integration");let i=this.getKey(e,t.scope),r=this.map.get(i),n=t.options?{applyAtProcessCreation:t.options.applyAtProcessCreation??!1,applyAtShellIntegration:t.options.applyAtShellIntegration??!1}:{applyAtProcessCreation:!0};if(!r||r.value!==t.value||r.type!==t.type||r.options?.applyAtProcessCreation!==n.applyAtProcessCreation||r.options?.applyAtShellIntegration!==n.applyAtShellIntegration||r.scope?.workspaceFolder?.index!==t.scope?.workspaceFolder?.index){let i=this.getKey(e,t.scope),r={variable:e,...t,options:n};this.map.set(i,r),this._onDidChangeCollection.fire()}}get(e,t){let i=this.getKey(e,t),r=this.map.get(i);return r?iA(r):void 0}getKey(e,t){let i=this.getScopeKey(t);return i.length?`${e}:::${i}`:e}getScopeKey(e){return this.getWorkspaceKey(e?.workspaceFolder)??""}getWorkspaceKey(e){return e?e.uri.toString():void 0}getVariableMap(e){let t=new Map;for(let[i,r]of this.map)this.getScopeKey(r.scope)===this.getScopeKey(e)&&t.set(r.variable,iA(r));return t}delete(e,t){let i=this.getKey(e,t);this.map.delete(i),this._onDidChangeCollection.fire()}clear(e){if(e?.workspaceFolder){for(let[t,i]of this.map)i.scope?.workspaceFolder?.index===e.workspaceFolder.index&&this.map.delete(t);this.clearDescription(e)}else this.map.clear(),this.descriptionMap.clear();this._onDidChangeCollection.fire()}setDescription(e,t){let i=this.getScopeKey(t),r=this.descriptionMap.get(i);if(!r||r.description!==e){let r={description:"string"==typeof e?e:e?.value.split("\n\n")[0],scope:t};this.descriptionMap.set(i,r),this._onDidChangeCollection.fire()}}getDescription(e){let t=this.getScopeKey(e);return this.descriptionMap.get(t)?.description}clearDescription(e){let t=this.getScopeKey(e);this.descriptionMap.delete(t)}}class iR{get persistent(){return this.collection.persistent}set persistent(e){this.collection.persistent=e}get onDidChangeCollection(){return this._onDidChangeCollection&&this._onDidChangeCollection.event}constructor(e,t){this.collection=e,this.scope=t,this._onDidChangeCollection=new ey.Emitter}getScoped(e){return this.collection.getScopedEnvironmentVariableCollection(e)}replace(e,t,i){this.collection.replace(e,t,i,this.scope)}append(e,t,i){this.collection.append(e,t,i,this.scope)}prepend(e,t,i){this.collection.prepend(e,t,i,this.scope)}get(e){return this.collection.get(e,this.scope)}forEach(e,t){this.collection.getVariableMap(this.scope).forEach((i,r)=>e.call(t,r,i,this),this.scope)}[Symbol.iterator](){return this.collection.getVariableMap(this.scope).entries()}delete(e){this.collection.delete(e,this.scope),this._onDidChangeCollection.fire(void 0)}clear(){this.collection.clear(this.scope)}set description(e){this.collection.setDescription(e,this.scope)}get description(){return this.collection.getDescription(this.scope)}}let iP=class extends ik{constructor(e,t){super(!1,e,t)}createTerminal(e,t,i){throw new eg.NotSupportedError}createTerminalFromOptions(e,t){throw new eg.NotSupportedError}};function iI(e){if(e&&"string"!=typeof e)return(0,eK.hasKey)(e,{id:!0})?{id:e.id,color:e.color}:e}function iA(e){let t={...e};return delete t.scope,t.options=t.options??void 0,t}iP=(0,ek.__decorate)([(0,ek.__param)(0,t2),(0,ek.__param)(1,eP.IExtHostRpcService)],iP);let iM=(0,eR.createDecorator)("IExtHostApiDeprecationService"),iL=class{constructor(e,t){this._extHostLogService=t,this._reportedUsages=new Set,this._telemetryShape=e.getProxy(ev.MainContext.MainThreadTelemetry)}report(e,t,i){let r=this.getUsageKey(e,t);this._reportedUsages.has(r)||(this._reportedUsages.add(r),t.isUnderDevelopment&&this._extHostLogService.warn(`[Deprecation Warning] '${e}' is deprecated. ${i}`),this._telemetryShape.$publicLog2("extHostDeprecatedApiUsage",{extensionId:t.identifier.value,apiId:e}))}getUsageKey(e,t){return`${e}-${t.identifier.value}`}};iL=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,eM.ILogService)],iL);var iF=e.i(517724);(r=I||(I={})).from=function(e){if(null!=e)return e},r.to=function(e){if(null!=e)return e},(n=A||(A={})).from=function(e){if(null!=e)return e},n.to=function(e){if(null!=e)return e},(o=M||(M={})).from=function(e){if(null!=e)return e},o.to=function(e){if(null!=e)return e},(s=L||(L={})).is=function(e){return!!e&&e&&!!e.process},s.from=function(e){if(null==e)return;let t={process:e.process,args:e.args};return e.options&&(t.options=M.from(e.options)),t},s.to=function(e){if(null!=e)return new eh.ProcessExecution(e.process,e.args,e.options)},(a=F||(F={})).from=function(e){if(null!=e)return e},a.to=function(e){if(null!=e)return e},(l=O||(O={})).is=function(e){return!!e&&e&&(!!e.commandLine||!!e.command)},l.from=function(e){if(null==e)return;let t={};return void 0!==e.commandLine?t.commandLine=e.commandLine:(t.command=e.command,t.args=e.args),e.options&&(t.options=F.from(e.options)),t},l.to=function(e){if(null!=e&&(void 0!==e.command||void 0!==e.commandLine))if(e.commandLine)return new eh.ShellExecution(e.commandLine,e.options);else return new eh.ShellExecution(e.command,e.args?e.args:[],e.options)},(c=N||(N={})).is=function(e){return!!e&&e&&"customExecution"===e.customExecution},c.from=function(e){return{customExecution:"customExecution"}},c.to=function(e,t){return t.get(e)},($||($={})).from=function(e,t){let i;return void 0!==e.scope&&"number"!=typeof e.scope?i=e.scope.uri:void 0!==e.scope&&"number"==typeof e.scope&&(i=e.scope===eh.TaskScope.Workspace&&t&&t.workspaceFile?t.workspaceFile:iF.USER_TASKS_GROUP_KEY),{id:e._id,workspaceFolder:i}},(H||(H={})).from=function(e){if(null!=e)return{_id:e.id,isDefault:e.isDefault}};var iO=U||(U={});function iN(e,t){let i,r;if(null==e)return;e.execution instanceof eh.ProcessExecution?i=L.from(e.execution):e.execution instanceof eh.ShellExecution?i=O.from(e.execution):e.execution&&e.execution instanceof eh.CustomExecution&&(i=N.from(e.execution));let n=I.from(e.definition);if(r=e.scope?"number"==typeof e.scope?e.scope:e.scope.uri:eh.TaskScope.Workspace,n&&r)return{_id:e._id,definition:n,name:e.name,source:{extensionId:t.identifier.value,label:e.source,scope:r},execution:i,isBackground:e.isBackground,group:H.from(e.group),presentationOptions:A.from(e.presentationOptions),problemMatchers:(0,eY.asArray)(e.problemMatchers),hasDefinedMatchers:e.hasDefinedMatchers,runOptions:e.runOptions?e.runOptions:{reevaluateOnRerun:!0},detail:e.detail}}iO.fromMany=function(e,t){if(null==e)return[];let i=[];for(let r of e){let e=iN(r,t);e&&i.push(e)}return i},iO.from=iN,iO.to=async function(e,t,i){let r,n;if(null==e)return;L.is(e.execution)?r=L.to(e.execution):O.is(e.execution)?r=O.to(e.execution):N.is(e.execution)&&(r=N.to(e._id,i));let o=I.to(e.definition);if(e.source&&(n=void 0!==e.source.scope?"number"==typeof e.source.scope?e.source.scope:await t.resolveWorkspaceFolder(eD.URI.revive(e.source.scope)):eh.TaskScope.Workspace),!o||!n)return;let s=new eh.Task(o,n,e.name,e.source.label,r,e.problemMatchers);return void 0!==e.isBackground&&(s.isBackground=e.isBackground),void 0!==e.group&&(s.group=eh.TaskGroup.from(e.group._id),s.group&&e.group.isDefault&&(s.group=new eh.TaskGroup(s.group.id,s.group.label),!0===e.group.isDefault&&(s.group.isDefault=e.group.isDefault))),e.presentationOptions&&(s.presentationOptions=A.to(e.presentationOptions)),e._id&&(s._id=e._id),e.detail&&(s.detail=e.detail),s},(d=W||(W={})).from=function(e){return e},d.to=function(e){if(e)return Object.assign(Object.create(null),e)};class i${#r;constructor(e,t,i){this._id=t,this._task=i,this.#r=e}get task(){return this._task}terminate(){this.#r.terminateTask(this)}fireDidStartProcess(e){}fireDidEndProcess(e){}get terminal(){return this._terminal}set terminal(e){this._terminal=e}}let iH=class{constructor(e,t,i,r,n,o,s,a){this._onDidExecuteTask=new ey.Emitter,this._onDidTerminateTask=new ey.Emitter,this._onDidTaskProcessStarted=new ey.Emitter,this._onDidTaskProcessEnded=new ey.Emitter,this._onDidStartTaskProblemMatchers=new ey.Emitter,this._onDidEndTaskProblemMatchers=new ey.Emitter,this._proxy=e.getProxy(ev.MainContext.MainThreadTask),this._workspaceProvider=i,this._editorService=r,this._configurationService=n,this._terminalService=o,this._handleCounter=0,this._handlers=new Map,this._taskExecutions=new Map,this._taskExecutionPromises=new Map,this._providedCustomExecutions2=new Map,this._notProvidedCustomExecutions=new Set,this._activeCustomExecutions2=new Map,this._logService=s,this._deprecationService=a,this._proxy.$registerSupportedExecutions(!0)}registerTaskProvider(e,t,i){if(!i)return new eh.Disposable(()=>{});let r=this.nextHandle();return this._handlers.set(r,{type:t,provider:i,extension:e}),this._proxy.$registerTaskProvider(r,t),new eh.Disposable(()=>{this._handlers.delete(r),this._proxy.$unregisterTaskProvider(r)})}registerTaskSystem(e,t){this._proxy.$registerTaskSystem(e,t)}fetchTasks(e){return this._proxy.$fetchTasks(W.from(e)).then(async e=>{let t=[];for(let i of e){let e=await U.to(i,this._workspaceProvider,this._providedCustomExecutions2);e&&t.push(e)}return t})}get taskExecutions(){let e=[];return this._taskExecutions.forEach(t=>e.push(t)),e}terminateTask(e){if(!(e instanceof i$))throw Error("No valid task execution provided");return this._proxy.$terminateTask(e._id)}get onDidStartTask(){return this._onDidExecuteTask.event}async $onDidStartTask(e,t,i){let r=this._providedCustomExecutions2.get(e.id);r&&(this._activeCustomExecutions2.set(e.id,r),this._terminalService.attachPtyToTerminal(t,await r.callback(i))),this._lastStartedTask=e.id;let n=await this.getTaskExecution(e),o=this._terminalService.getTerminalById(t)?.value;n&&(n.terminal=o),this._onDidExecuteTask.fire({execution:n})}get onDidEndTask(){return this._onDidTerminateTask.event}async $OnDidEndTask(e){if(!this._taskExecutionPromises.has(e.id))return;let t=await this.getTaskExecution(e);this._taskExecutionPromises.delete(e.id),this._taskExecutions.delete(e.id),this.customExecutionComplete(e),this._onDidTerminateTask.fire({execution:t})}get onDidStartTaskProcess(){return this._onDidTaskProcessStarted.event}async $onDidStartTaskProcess(e){let t=await this.getTaskExecution(e.id);this._onDidTaskProcessStarted.fire({execution:t,processId:e.processId})}get onDidEndTaskProcess(){return this._onDidTaskProcessEnded.event}async $onDidEndTaskProcess(e){let t=await this.getTaskExecution(e.id);this._onDidTaskProcessEnded.fire({execution:t,exitCode:e.exitCode})}get onDidStartTaskProblemMatchers(){return this._onDidStartTaskProblemMatchers.event}async $onDidStartTaskProblemMatchers(e){let t;try{t=await this.getTaskExecution(e.execution.id)}catch(e){return}this._onDidStartTaskProblemMatchers.fire({execution:t})}get onDidEndTaskProblemMatchers(){return this._onDidEndTaskProblemMatchers.event}async $onDidEndTaskProblemMatchers(e){let t;try{t=await this.getTaskExecution(e.execution.id)}catch(e){return}this._onDidEndTaskProblemMatchers.fire({execution:t,hasErrors:e.hasErrors})}$provideTasks(e,t){let i=this._handlers.get(e);if(!i)return Promise.reject(Error("no handler found"));let r=[],n=(0,eU.asPromise)(()=>i.provider.provideTasks(ef.CancellationToken.None)).then(e=>this.provideTasksInternal(t,r,i,e));return new Promise(e=>{n.then(t=>{Promise.all(r).then(()=>{e(t)})})})}async $resolveTask(e,t){let i=this._handlers.get(e);if(!i)return Promise.reject(Error("no handler found"));if(t.definition.type!==i.type)throw Error(`Unexpected: Task of type [${t.definition.type}] cannot be resolved by provider of type [${i.type}].`);let r=await U.to(t,this._workspaceProvider,this._providedCustomExecutions2);if(!r)throw Error("Unexpected: Task cannot be resolved.");let n=await i.provider.resolveTask(r,ef.CancellationToken.None);if(!n)return;this.checkDeprecation(n,i);let o=U.from(n,i.extension);if(!o)throw Error("Unexpected: Task cannot be resolved.");if(n.definition!==r.definition)throw Error("Unexpected: The resolved task definition must be the same object as the original task definition. The task definition cannot be changed.");return N.is(o.execution)&&await this.addCustomExecution(o,n,!0),await this.resolveTaskInternal(o)}nextHandle(){return this._handleCounter++}async addCustomExecution(e,t,i){let r=await this._proxy.$createTaskId(e);i||this._providedCustomExecutions2.has(r)||(this._notProvidedCustomExecutions.add(r),this._activeCustomExecutions2.set(r,t.execution)),this._providedCustomExecutions2.set(r,t.execution)}async getTaskExecution(e,t){let i;if("string"==typeof e){let t=this._taskExecutionPromises.get(e);if(!t)throw new eg.ErrorNoTelemetry("Unexpected: The specified task is missing an execution");return t}let r=this._taskExecutionPromises.get(e.id);return r||(i=t?Promise.resolve(new i$(this,e.id,t)):U.to(e.task,this._workspaceProvider,this._providedCustomExecutions2).then(t=>{if(!t)throw new eg.ErrorNoTelemetry("Unexpected: Task does not exist.");return new i$(this,e.id,t)}),this._taskExecutionPromises.set(e.id,i),i.then(t=>(this._taskExecutions.set(e.id,t),t)))}checkDeprecation(e,t){e._deprecated&&this._deprecationService.report("Task.constructor",t.extension,"Use the Task constructor that takes a `scope` instead.")}customExecutionComplete(e){this._activeCustomExecutions2.get(e.id)&&this._activeCustomExecutions2.delete(e.id),this._notProvidedCustomExecutions.has(e.id)&&this._lastStartedTask!==e.id&&(this._providedCustomExecutions2.delete(e.id),this._notProvidedCustomExecutions.delete(e.id));let t=this._notProvidedCustomExecutions.values(),i=t.next();for(;!i.done;)this._activeCustomExecutions2.has(i.value)||this._lastStartedTask===i.value||(this._providedCustomExecutions2.delete(i.value),this._notProvidedCustomExecutions.delete(i.value)),i=t.next()}};iH=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService),(0,ek.__param)(2,td),(0,ek.__param)(3,ip),(0,ek.__param)(4,tD),(0,ek.__param)(5,iw),(0,ek.__param)(6,eM.ILogService),(0,ek.__param)(7,iM)],iH);let iU=class extends iH{constructor(e,t,i,r,n,o,s,a){super(e,t,i,r,n,o,s,a),this.registerTaskSystem(eO.Schemas.vscodeRemote,{scheme:eO.Schemas.vscodeRemote,authority:"",platform:(0,ib.PlatformToString)(ib.Platform.Web)})}async executeTask(e,t){if(!t.execution)throw Error("Tasks to execute must include an execution");let i=U.from(t,e);if(void 0===i)throw Error("Task is not valid");if(N.is(i.execution))await this.addCustomExecution(i,t,!1);else throw new eg.NotSupportedError;let r=await this.getTaskExecution(await this._proxy.$getTaskExecution(i),t);return this._proxy.$executeTask(i).catch(e=>{throw Error(e)}),r}provideTasksInternal(e,t,i,r){let n=[];if(r)for(let o of r){if(this.checkDeprecation(o,i),!o.definition||!e[o.definition.type]){let e=o.source?o.source:"No task source";this._logService.warn(`The task [${e}, ${o.name}] uses an undefined task type. The task will be ignored in the future.`)}let r=U.from(o,i.extension);r&&N.is(r.execution)?(n.push(r),t.push(this.addCustomExecution(r,o,!0))):this._logService.warn("Only custom execution tasks supported.")}return{tasks:n,extension:i.extension}}async resolveTaskInternal(e){if(N.is(e.execution))return e;this._logService.warn("Only custom execution tasks supported.")}async $resolveVariables(e,t){return{process:void 0,variables:Object.create(null)}}async $jsonTasksSupported(){return!1}async $findExecutable(e,t,i){}};iU=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService),(0,ek.__param)(2,td),(0,ek.__param)(3,ip),(0,ek.__param)(4,tD),(0,ek.__param)(5,iw),(0,ek.__param)(6,eM.ILogService),(0,ek.__param)(7,iM)],iU);let iW=(0,eR.createDecorator)("IExtHostTask");var iq=eH,ij=e.i(184234),iz=e.i(257675),iK=e.i(248200);let iV=(0,eR.createDecorator)("IExtHostEditorTabs");class iB{constructor(e,t,i){this._activeTabIdGetter=i,this._parentGroup=t,this.acceptDtoUpdate(e)}get apiObject(){if(!this._apiObject){let e=this;this._apiObject=Object.freeze({get isActive(){return e._dto.id===e._activeTabIdGetter()},get label(){return e._dto.label},get input(){return e._input},get isDirty(){return e._dto.isDirty},get isPinned(){return e._dto.isPinned},get isPreview(){return e._dto.isPreview},get group(){return e._parentGroup.apiObject}})}return this._apiObject}get tabId(){return this._dto.id}acceptDtoUpdate(e){this._dto=e,this._input=this._initInput()}_initInput(){switch(this._dto.input.kind){case ev.TabInputKind.TextInput:return new eh.TextTabInput(eD.URI.revive(this._dto.input.uri));case ev.TabInputKind.TextDiffInput:return new eh.TextDiffTabInput(eD.URI.revive(this._dto.input.original),eD.URI.revive(this._dto.input.modified));case ev.TabInputKind.TextMergeInput:return new eh.TextMergeTabInput(eD.URI.revive(this._dto.input.base),eD.URI.revive(this._dto.input.input1),eD.URI.revive(this._dto.input.input2),eD.URI.revive(this._dto.input.result));case ev.TabInputKind.CustomEditorInput:return new eh.CustomEditorTabInput(eD.URI.revive(this._dto.input.uri),this._dto.input.viewType);case ev.TabInputKind.WebviewEditorInput:return new eh.WebviewEditorTabInput(this._dto.input.viewType);case ev.TabInputKind.NotebookInput:return new eh.NotebookEditorTabInput(eD.URI.revive(this._dto.input.uri),this._dto.input.notebookType);case ev.TabInputKind.NotebookDiffInput:return new eh.NotebookDiffEditorTabInput(eD.URI.revive(this._dto.input.original),eD.URI.revive(this._dto.input.modified),this._dto.input.notebookType);case ev.TabInputKind.TerminalEditorInput:return new eh.TerminalEditorTabInput;case ev.TabInputKind.InteractiveEditorInput:return new eh.InteractiveWindowInput(eD.URI.revive(this._dto.input.uri),eD.URI.revive(this._dto.input.inputBoxUri));case ev.TabInputKind.ChatEditorInput:return new eh.ChatEditorTabInput;case ev.TabInputKind.MultiDiffEditorInput:return new eh.TextMultiDiffTabInput(this._dto.input.diffEditors.map(e=>new eh.TextDiffTabInput(eD.URI.revive(e.original),eD.URI.revive(e.modified))));default:return}}}class iG{constructor(e,t){for(const i of(this._tabs=[],this._activeTabId="",this._dto=e,this._activeGroupIdGetter=t,e.tabs))i.isActive&&(this._activeTabId=i.id),this._tabs.push(new iB(i,this,()=>this.activeTabId()))}get apiObject(){if(!this._apiObject){let e=this;this._apiObject=Object.freeze({get isActive(){return e._dto.groupId===e._activeGroupIdGetter()},get viewColumn(){return e6.ViewColumn.to(e._dto.viewColumn)},get activeTab(){return e._tabs.find(t=>t.tabId===e._activeTabId)?.apiObject},get tabs(){return Object.freeze(e._tabs.map(e=>e.apiObject))}})}return this._apiObject}get groupId(){return this._dto.groupId}get tabs(){return this._tabs}acceptGroupDtoUpdate(e){this._dto=e}acceptTabOperation(e){if(e.kind===ev.TabModelOperationKind.TAB_OPEN){let t=new iB(e.tabDto,this,()=>this.activeTabId());return this._tabs.splice(e.index,0,t),e.tabDto.isActive&&(this._activeTabId=t.tabId),t}if(e.kind===ev.TabModelOperationKind.TAB_CLOSE){let t=this._tabs.splice(e.index,1)[0];if(!t)throw Error(`Tab close updated received for index ${e.index} which does not exist`);return t.tabId===this._activeTabId&&(this._activeTabId=""),t}if(e.kind===ev.TabModelOperationKind.TAB_MOVE){if(void 0===e.oldIndex)throw Error("Invalid old index on move IPC");let t=this._tabs.splice(e.oldIndex,1)[0];if(!t)throw Error(`Tab move updated received for index ${e.oldIndex} which does not exist`);return this._tabs.splice(e.index,0,t),t}let t=this._tabs.find(t=>t.tabId===e.tabDto.id);if(!t)throw Error("INVALID tab");return e.tabDto.isActive?this._activeTabId=e.tabDto.id:this._activeTabId!==e.tabDto.id||e.tabDto.isActive||(this._activeTabId=""),t.acceptDtoUpdate(e.tabDto),t}activeTabId(){return this._activeTabId}}let iQ=class{constructor(e){this._onDidChangeTabs=new ey.Emitter,this._onDidChangeTabGroups=new ey.Emitter,this._extHostTabGroups=[],this._proxy=e.getProxy(ev.MainContext.MainThreadEditorTabs)}get tabGroups(){if(!this._apiObject){let e=this,t={onDidChangeTabGroups:e._onDidChangeTabGroups.event,onDidChangeTabs:e._onDidChangeTabs.event,get all(){return Object.freeze(e._extHostTabGroups.map(e=>e.apiObject))},get activeTabGroup(){let t=e._activeGroupId;return(0,eK.assertReturnsDefined)(e._extHostTabGroups.find(e=>e.groupId===t)?.apiObject)},close:async(e,t)=>{let i=Array.isArray(e)?e:[e];return!i.length||(void 0!==i[0].tabs?this._closeGroups(i,t):this._closeTabs(i,t))}};this._apiObject=Object.freeze(t)}return this._apiObject}$acceptEditorTabModel(e){let t=new Set(this._extHostTabGroups.map(e=>e.groupId)),i=new Set(e.map(e=>e.groupId)),r=(0,iK.diffSets)(t,i),n=this._extHostTabGroups.filter(e=>r.removed.includes(e.groupId)).map(e=>e.apiObject),o=[],s=[];this._extHostTabGroups=e.map(e=>{let t=new iG(e,()=>this._activeGroupId);return r.added.includes(t.groupId)?o.push(t.apiObject):s.push(t.apiObject),t});let a=(0,eK.assertReturnsDefined)(e.find(e=>!0===e.isActive)?.groupId);void 0!==a&&this._activeGroupId!==a&&(this._activeGroupId=a),this._onDidChangeTabGroups.fire(Object.freeze({opened:o,closed:n,changed:s}))}$acceptTabGroupUpdate(e){let t=this._extHostTabGroups.find(t=>t.groupId===e.groupId);if(!t)throw Error("Update Group IPC call received before group creation.");t.acceptGroupDtoUpdate(e),e.isActive&&(this._activeGroupId=e.groupId),this._onDidChangeTabGroups.fire(Object.freeze({changed:[t.apiObject],opened:[],closed:[]}))}$acceptTabOperation(e){let t=this._extHostTabGroups.find(t=>t.groupId===e.groupId);if(!t)throw Error("Update Tabs IPC call received before group creation.");let i=t.acceptTabOperation(e);switch(e.kind){case ev.TabModelOperationKind.TAB_OPEN:this._onDidChangeTabs.fire(Object.freeze({opened:[i.apiObject],closed:[],changed:[]}));return;case ev.TabModelOperationKind.TAB_CLOSE:this._onDidChangeTabs.fire(Object.freeze({opened:[],closed:[i.apiObject],changed:[]}));return;case ev.TabModelOperationKind.TAB_MOVE:case ev.TabModelOperationKind.TAB_UPDATE:this._onDidChangeTabs.fire(Object.freeze({opened:[],closed:[],changed:[i.apiObject]}));return}}_findExtHostTabFromApi(e){for(let t of this._extHostTabGroups)for(let i of t.tabs)if(i.apiObject===e)return i}_findExtHostTabGroupFromApi(e){return this._extHostTabGroups.find(t=>t.apiObject===e)}async _closeTabs(e,t){let i=[];for(let t of e){let e=this._findExtHostTabFromApi(t);if(!e)throw Error("Tab close: Invalid tab not found!");i.push(e.tabId)}return this._proxy.$closeTab(i,t)}async _closeGroups(e,t){let i=[];for(let t of e){let e=this._findExtHostTabGroupFromApi(t);if(!e)throw Error("Group close: Invalid group not found!");i.push(e.groupId)}return this._proxy.$closeGroup(i,t)}};iQ=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],iQ);var iJ=e.i(40577),iY=eH,iX=e.i(599600);class iZ{static{this.NONE=new iZ(!1,-1,-1,-1)}constructor(e,t,i,r){this.startup=e,this.codeLoadingTime=t,this.activateCallTime=i,this.activateResolvedTime=r}}class i0{constructor(e){this._startup=e,this._codeLoadingStart=-1,this._codeLoadingStop=-1,this._activateCallStart=-1,this._activateCallStop=-1,this._activateResolveStart=-1,this._activateResolveStop=-1}_delta(e,t){return -1===e||-1===t?-1:t-e}build(){return new iZ(this._startup,this._delta(this._codeLoadingStart,this._codeLoadingStop),this._delta(this._activateCallStart,this._activateCallStop),this._delta(this._activateResolveStart,this._activateResolveStop))}codeLoadingStart(){this._codeLoadingStart=Date.now()}codeLoadingStop(){this._codeLoadingStop=Date.now()}activateCallStart(){this._activateCallStart=Date.now()}activateCallStop(){this._activateCallStop=Date.now()}activateResolveStart(){this._activateResolveStart=Date.now()}activateResolveStop(){this._activateResolveStop=Date.now()}}class i1{constructor(e,t,i,r,n,o){this.activationFailed=e,this.activationFailedError=t,this.activationTimes=i,this.module=r,this.exports=n,this.disposable=o}}class i2 extends i1{constructor(e){super(!1,null,e,{activate:void 0,deactivate:void 0},void 0,eH.Disposable.None)}}class i6 extends i1{constructor(){super(!1,null,iZ.NONE,{activate:void 0,deactivate:void 0},void 0,eH.Disposable.None)}}class i3 extends i1{constructor(e){super(!0,e,iZ.NONE,{activate:void 0,deactivate:void 0},void 0,eH.Disposable.None)}}let i4=class{constructor(e,t,i,r){this._logService=r,this._registry=e,this._globalRegistry=t,this._host=i,this._operations=new eI.ExtensionIdentifierMap,this._alreadyActivatedEvents=Object.create(null)}dispose(){for(let[e,t]of this._operations)t.dispose()}async waitForActivatingExtensions(){let e=[];for(let[t,i]of this._operations)e.push(i.wait());await Promise.all(e)}isActivated(e){let t=this._operations.get(e);return!!(t&&t.value)}getActivatedExtension(e){let t=this._operations.get(e);if(!t||!t.value)throw Error(`Extension '${e.value}' is not known or not activated`);return t.value}async activateByEvent(e,t){if(this._alreadyActivatedEvents[e])return;let i=this._registry.getExtensionDescriptionsForActivationEvent(e);await this._activateExtensions(i.map(i=>({id:i.identifier,reason:{startup:t,extensionId:i.identifier,activationEvent:e}}))),this._alreadyActivatedEvents[e]=!0}activateById(e,t){let i=this._registry.getExtensionDescription(e);if(!i)throw Error(`Extension '${e.value}' is not known`);return this._activateExtensions([{id:i.identifier,reason:t}])}async _activateExtensions(e){let t=e.filter(e=>!this.isActivated(e.id)).map(e=>this._handleActivationRequest(e));await Promise.all(t.map(e=>e.wait()))}_handleActivationRequest(e){if(this._operations.has(e.id))return this._operations.get(e.id);if(this._isHostExtension(e.id))return this._createAndSaveOperation(e,null,[],null);let t=this._registry.getExtensionDescription(e.id);if(!t){let t=Error(`Cannot activate unknown extension '${e.id.value}'`),i=this._createAndSaveOperation(e,null,[],new i3(t));return this._host.onExtensionActivationError(e.id,t,new tp.MissingExtensionDependency(e.id.value)),i}let i=[];for(let r of void 0===t.extensionDependencies?[]:t.extensionDependencies){if(this._isResolvedExtension(r))continue;let n=this._operations.get(r);if(n){i.push(n);continue}if(this._isHostExtension(r)){i.push(this._handleActivationRequest({id:this._globalRegistry.getExtensionDescription(r).identifier,reason:e.reason}));continue}let o=this._registry.getExtensionDescription(r);if(o){if(!o.main&&!o.browser)continue;i.push(this._handleActivationRequest({id:o.identifier,reason:e.reason}));continue}let s=t.displayName||t.identifier.value,a=Error(`Cannot activate the '${s}' extension because it depends on unknown extension '${r}'`),l=this._createAndSaveOperation(e,t.displayName,[],new i3(a));return this._host.onExtensionActivationError(t.identifier,a,new tp.MissingExtensionDependency(r)),l}return this._createAndSaveOperation(e,t.displayName,i,null)}_createAndSaveOperation(e,t,i,r){let n=new i5(e.id,t,e.reason,i,r,this._host,this._logService);return this._operations.set(e.id,n),n}_isHostExtension(e){return iX.ExtensionDescriptionRegistry.isHostExtension(e,this._registry,this._globalRegistry)}_isResolvedExtension(e){let t=this._globalRegistry.getExtensionDescription(e);return!!t&&!t.main&&!t.browser}};i4=(0,ek.__decorate)([(0,ek.__param)(3,eM.ILogService)],i4);let i5=class{get value(){return this._value}get friendlyName(){return this._displayName||this._id.value}constructor(e,t,i,r,n,o,s){this._id=e,this._displayName=t,this._reason=i,this._deps=r,this._value=n,this._host=o,this._logService=s,this._barrier=new eU.Barrier,this._isDisposed=!1,this._initialize()}dispose(){this._isDisposed=!0}wait(){return this._barrier.wait()}async _initialize(){await this._waitForDepsThenActivate(),this._barrier.open()}async _waitForDepsThenActivate(){if(!this._value){for(;this._deps.length>0;){for(let e=0;e<this._deps.length;e++){let t=this._deps[e];if(t.value&&!t.value.activationFailed){this._deps.splice(e,1),e--;continue}if(t.value&&t.value.activationFailed){let e=Error(`Cannot activate the '${this.friendlyName}' extension because its dependency '${t.friendlyName}' failed to activate`);e.detail=t.value.activationFailedError,this._value=new i3(e),this._host.onExtensionActivationError(this._id,e,null);return}}this._deps.length>0&&await Promise.race(this._deps.map(e=>e.wait()))}await this._activate()}}async _activate(){try{this._value=await this._host.actualActivateExtension(this._id,this._reason)}catch(t){let e=Error();if(t&&t.name&&(e.name=t.name),t&&t.message?e.message=`Activating extension '${this._id.value}' failed: ${t.message}.`:e.message=`Activating extension '${this._id.value}' failed: ${t}.`,t&&t.stack&&(e.stack=t.stack),this._value=new i3(e),this._isDisposed&&(0,eg.isCancellationError)(t))return;this._host.onExtensionActivationError(this._id,e,null),this._logService.error(`Activating extension ${this._id.value} failed due to an error:`),this._logService.error(t)}}};i5=(0,ek.__decorate)([(0,ek.__param)(6,eM.ILogService)],i5);class i8{constructor(e,t){this._logService=t,this._onDidChangeStorage=new ey.Emitter,this.onDidChangeStorage=this._onDidChangeStorage.event,this._proxy=e.getProxy(ev.MainContext.MainThreadStorage)}registerExtensionStorageKeysToSync(e,t){this._proxy.$registerExtensionStorageKeysToSync(e,t)}async initializeExtensionStorage(e,t,i){let r,n=await this._proxy.$initializeExtensionStorage(e,t);return n&&(r=this.safeParseValue(e,t,n)),r||i}setValue(e,t,i){return this._proxy.$setValue(e,t,i)}$acceptValue(e,t,i){let r=this.safeParseValue(e,t,i);r&&this._onDidChangeStorage.fire({shared:e,key:t,value:r})}safeParseValue(e,t,i){try{return JSON.parse(i)}catch(i){this._logService.error(`[extHostStorage] unexpected error parsing storage contents (extensionId: ${t}, global: ${e}): ${i}`)}}}let i7=(0,eR.createDecorator)("IExtHostStorage");class i9{constructor(e,t,i){this._deferredPromises=new Map,this._id=e,this._shared=t,this._storage=i,this._init=this._storage.initializeExtensionStorage(this._shared,this._id,Object.create(null)).then(e=>(this._value=e,this)),this._storageListener=this._storage.onDidChangeStorage(e=>{e.shared===this._shared&&e.key===this._id&&(this._value=e.value)}),this._scheduler=new eU.RunOnceScheduler(()=>{let e=this._deferredPromises;this._deferredPromises=new Map,(async()=>{try{for(let t of(await this._storage.setValue(this._shared,this._id,this._value),e.values()))t.complete()}catch(t){for(let i of e.values())i.error(t)}})()},0)}keys(){return Object.entries(this._value??{}).filter(([,e])=>void 0!==e).map(([e])=>e)}get whenReady(){return this._init}get(e,t){let i=this._value[e];return void 0===i&&(i=t),i}update(e,t){null!==t&&"object"==typeof t?this._value[e]=JSON.parse(JSON.stringify(t)):this._value[e]=t;let i=this._deferredPromises.get(e);if(void 0!==i)return i.p;let r=new eU.DeferredPromise;return this._deferredPromises.set(e,r),this._scheduler.isScheduled()||this._scheduler.schedule(),r.p}dispose(){this._storageListener.dispose()}}class re extends i9{setKeysForSync(e){this._storage.registerExtensionStorageKeysToSync({id:this._id,version:this._extension.version},e)}constructor(e,t){super(e.identifier.value,!0,t),this._extension=e}}var rt=e.i(459785);let ri=(0,eR.createDecorator)("IExtensionStoragePaths"),rr=class{constructor(e,t,i){this._logService=t,this._extHostFileSystem=i,this._workspace=e.workspace??void 0,this._environment=e.environment,this.whenReady=this._getOrCreateWorkspaceStoragePath().then(e=>this._value=e)}async _getWorkspaceStorageURI(e){return eD.URI.joinPath(this._environment.workspaceStorageHome,e)}async _getOrCreateWorkspaceStoragePath(){if(!this._workspace)return Promise.resolve(void 0);let e=this._workspace.id,t=await this._getWorkspaceStorageURI(e);try{return await this._extHostFileSystem.value.stat(t),this._logService.trace("[ExtHostStorage] storage dir already exists",t),t}catch{}try{return this._logService.trace("[ExtHostStorage] creating dir and metadata-file",t),await this._extHostFileSystem.value.createDirectory(t),await this._extHostFileSystem.value.writeFile(eD.URI.joinPath(t,"meta.json"),new TextEncoder().encode(JSON.stringify({id:this._workspace.id,configuration:eD.URI.revive(this._workspace.configuration)?.toString(),name:this._workspace.name},void 0,2))),t}catch(e){this._logService.error("[ExtHostStorage]",e);return}}workspaceValue(e){if(this._value)return eD.URI.joinPath(this._value,e.identifier.value)}globalValue(e){return eD.URI.joinPath(this._environment.globalStorageHome,e.identifier.value.toLowerCase())}onWillDeactivateAll(){}};rr=(0,ek.__decorate)([(0,ek.__param)(0,ej.IExtHostInitDataService),(0,ek.__param)(1,eM.ILogService),(0,ek.__param)(2,eq)],rr);var rn=e.i(299051),ro=e.i(700147),rs=e.i(34487);let ra={label:(0,e1.localize)(6128,"Other Models"),order:Number.MAX_SAFE_INTEGER};var rl=e.i(380456),rc=e.i(329323);let rd=class{static{q=this}static{this.InitialState={focused:!0,active:!0}}getState(){let e=this._state;return{get focused(){return e.focused},get active(){return e.active}}}constructor(e,t){this._onDidChangeWindowState=new ey.Emitter,this.onDidChangeWindowState=this._onDidChangeWindowState.event,this._state=q.InitialState,e.handle&&(this._nativeHandle=(0,eF.decodeBase64)(e.handle).buffer),this._proxy=t.getProxy(ev.MainContext.MainThreadWindow),this._proxy.$getInitialState().then(({isFocused:e,isActive:t})=>{this.onDidChangeWindowProperty("focused",e),this.onDidChangeWindowProperty("active",t)})}get nativeHandle(){return this._nativeHandle}$onDidChangeActiveNativeWindowHandle(e){this._nativeHandle=e?(0,eF.decodeBase64)(e).buffer:void 0}$onDidChangeWindowFocus(e){this.onDidChangeWindowProperty("focused",e)}$onDidChangeWindowActive(e){this.onDidChangeWindowProperty("active",e)}onDidChangeWindowProperty(e,t){t!==this._state[e]&&(this._state={...this._state,[e]:t},this._onDidChangeWindowState.fire(this._state))}openUri(e,t){let i;if("string"==typeof e){i=e;try{e=eD.URI.parse(e)}catch(t){return Promise.reject(`Invalid uri - '${e}'`)}}return(0,e0.isFalsyOrWhitespace)(e.scheme)?Promise.reject("Invalid scheme - cannot be empty"):e.scheme===eO.Schemas.command?Promise.reject(`Invalid scheme '${e.scheme}'`):this._proxy.$openUri(e,i,t)}async asExternalUri(e,t){if((0,e0.isFalsyOrWhitespace)(e.scheme))return Promise.reject("Invalid scheme - cannot be empty");let i=await this._proxy.$asExternalUri(e,t);return eD.URI.from(i)}};rd=q=(0,ek.__decorate)([(0,ek.__param)(0,ej.IExtHostInitDataService),(0,ek.__param)(1,eP.IExtHostRpcService)],rd);let ru=(0,eR.createDecorator)("IExtHostWindow");e.i(71224);var rh=e.i(182504);let rg=class{static{j=this}static{this.HandlePool=0}constructor(e){this.handles=new eI.ExtensionIdentifierSet,this.handlers=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadUrls)}registerUriHandler(e,t){let i=e.identifier;if(this.handles.has(i))throw Error(`Protocol handler already registered for extension ${i}`);let r=j.HandlePool++;return this.handles.add(i),this.handlers.set(r,t),this._proxy.$registerUriHandler(r,i,e.displayName||e.name),(0,eH.toDisposable)(()=>{this.handles.delete(i),this.handlers.delete(r),this._proxy.$unregisterUriHandler(r)})}$handleExternalUri(e,t){let i=this.handlers.get(e);if(!i)return Promise.resolve(void 0);try{i.handleUri(eD.URI.revive(t))}catch(e){(0,eg.onUnexpectedError)(e)}return Promise.resolve(void 0)}async createAppUri(e){return eD.URI.revive(await this._proxy.$createAppUri(e))}};rg=j=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],rg);let rp=(0,eR.createDecorator)("IExtHostUrlsService");var rm=rs,rf=e.i(255338);let rv=(0,eR.createDecorator)("IExtHostProgress"),r_=class{constructor(e){this._handles=0,this._mapHandleToCancellationSource=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadProgress)}async withProgress(e,t,i){let r=this._handles++,{title:n,location:o,cancellable:s}=t,a={label:e.displayName||e.name,id:e.identifier.value};return this._proxy.$startProgress(r,{location:e6.ProgressLocation.from(o),title:n,source:a,cancellable:s},!e.isUnderDevelopment?e.identifier.value:void 0).catch(eg.onUnexpectedExternalError),this._withProgress(r,i,!!s)}async withProgressFromSource(e,t,i){let r=this._handles++,{title:n,location:o,cancellable:s}=t;return this._proxy.$startProgress(r,{location:e6.ProgressLocation.from(o),title:n,source:e,cancellable:s},void 0).catch(eg.onUnexpectedExternalError),this._withProgress(r,i,!!s)}_withProgress(e,t,i){let r,n;i&&(r=new ef.CancellationTokenSource,this._mapHandleToCancellationSource.set(e,r));let o=e=>{this._proxy.$progressEnd(e),this._mapHandleToCancellationSource.delete(e),r?.dispose()};try{n=t(new ry(this._proxy,e),i&&r?r.token:ef.CancellationToken.None)}catch(t){throw o(e),t}return n.then(t=>o(e),t=>o(e)),n}$acceptProgressCanceled(e){let t=this._mapHandleToCancellationSource.get(e);t&&(t.cancel(),this._mapHandleToCancellationSource.delete(e))}};r_=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],r_);class ry extends rm.Progress{constructor(e,t){super(e=>this.throttledReport(e)),this._proxy=e,this._handle=t}throttledReport(e){this._proxy.$progressReport(this._handle,e)}}ry.__decorator=(0,ek.__decorate)([(0,rf.throttle)(100,(e,t)=>(e.message=t.message,"number"==typeof t.increment&&("number"==typeof e.increment?e.increment+=t.increment:e.increment=t.increment),e),()=>Object.create(null))],ry.prototype,"throttledReport",null);var rC=e.i(532816),rS=e.i(314122),rb=e.i(896344);let rw=(0,eR.createDecorator)("IExtHostAuthentication"),rx=class{constructor(e,t,i,r,n,o,s){this._initData=t,this._extHostWindow=i,this._extHostUrls=r,this._extHostProgress=n,this._extHostLoggerService=o,this._logService=s,this._dynamicAuthProviderCtor=rE,this._authenticationProviders=new Map,this._providerOperations=new eU.SequencerByKey,this._onDidChangeSessions=new ey.Emitter,this._getSessionTaskSingler=new rD,this._onDidDynamicAuthProviderTokensChange=new ey.Emitter,this._proxy=e.getProxy(ev.MainContext.MainThreadAuthentication)}getExtensionScopedSessionsEvent(e){let t=e.toLowerCase();return ey.Event.chain(this._onDidChangeSessions.event,e=>e.filter(e=>!e.extensionIdFilter||e.extensionIdFilter.includes(t)).map(e=>({provider:e.provider})))}async getSession(e,t,i,r={}){let n,o=eI.ExtensionIdentifier.toKey(e.identifier),s=Object.keys(r).map(e=>{switch(e){case"account":return`${e}:${r.account?.id}`;case"createIfNone":case"forceNewSession":{let t="boolean"==typeof r[e]?`${r[e]}`:`'${r[e]?.detail}/${r[e]?.learnMore?.toString()}'`;return`${e}:${t}`}case"authorizationServer":return`${e}:${r.authorizationServer?.toString(!0)}`;default:return`${e}:${!!r[e]}`}}).sort().join(", ");if((0,rl.isAuthenticationWwwAuthenticateRequest)(i)){let e=i.wwwAuthenticate,r=i.fallbackScopes?[...i.fallbackScopes].sort().join(" "):"";n=`${o} ${t} challenge:${e} ${r} ${s}`}else{let e=[...i].sort().join(" ");n=`${o} ${t} ${e} ${s}`}return await this._getSessionTaskSingler.getOrCreate(n,async()=>{await this._proxy.$ensureProvider(t);let n=e.displayName||e.name;return this._proxy.$getSession(t,i,o,n,r)})}async getAccounts(e){return await this._proxy.$ensureProvider(e),await this._proxy.$getAccounts(e)}registerAuthenticationProvider(e,t,i,r){return this._providerOperations.queue(e,async()=>{if(this._authenticationProviders.get(e))return void this._logService.error(`An authentication provider with id '${e}' is already registered. The existing provider will not be replaced.`);let n=i.onDidChangeSessions(t=>this._proxy.$sendDidChangeSessions(e,t));this._authenticationProviders.set(e,{label:t,provider:i,disposable:n,options:r??{supportsMultipleAccounts:!1}}),await this._proxy.$registerAuthenticationProvider({id:e,label:t,supportsMultipleAccounts:r?.supportsMultipleAccounts??!1,supportedAuthorizationServers:r?.supportedAuthorizationServers,supportsChallenges:r?.supportsChallenges})}),new eh.Disposable(()=>{this._providerOperations.queue(e,async()=>{let t=this._authenticationProviders.get(e);t&&(t.disposable?.dispose(),this._authenticationProviders.delete(e),await this._proxy.$unregisterAuthenticationProvider(e))})})}$createSession(e,t,i){return this._providerOperations.queue(e,async()=>{let r=this._authenticationProviders.get(e);if(r)return i.authorizationServer=eD.URI.revive(i.authorizationServer),await r.provider.createSession(t,i);throw Error(`Unable to find authentication provider with handle: ${e}`)})}$removeSession(e,t){return this._providerOperations.queue(e,async()=>{let i=this._authenticationProviders.get(e);if(i)return await i.provider.removeSession(t);throw Error(`Unable to find authentication provider with handle: ${e}`)})}$getSessions(e,t,i){return this._providerOperations.queue(e,async()=>{let r=this._authenticationProviders.get(e);if(r)return i.authorizationServer=eD.URI.revive(i.authorizationServer),await r.provider.getSessions(t,i);throw Error(`Unable to find authentication provider with handle: ${e}`)})}$getSessionsFromChallenges(e,t,i){return this._providerOperations.queue(e,async()=>{let r=this._authenticationProviders.get(e);if(r){let n=r.provider;if("function"==typeof n.getSessionsFromChallenges)return i.authorizationServer=eD.URI.revive(i.authorizationServer),await n.getSessionsFromChallenges(t,i);throw Error(`Authentication provider with handle: ${e} does not support getSessionsFromChallenges`)}throw Error(`Unable to find authentication provider with handle: ${e}`)})}$createSessionFromChallenges(e,t,i){return this._providerOperations.queue(e,async()=>{let r=this._authenticationProviders.get(e);if(r){let n=r.provider;if("function"==typeof n.createSessionFromChallenges)return i.authorizationServer=eD.URI.revive(i.authorizationServer),await n.createSessionFromChallenges(t,i);throw Error(`Authentication provider with handle: ${e} does not support createSessionFromChallenges`)}throw Error(`Unable to find authentication provider with handle: ${e}`)})}$onDidChangeAuthenticationSessions(e,t,i){return e.startsWith(rl.INTERNAL_AUTH_PROVIDER_PREFIX)||this._onDidChangeSessions.fire({provider:{id:e,label:t},extensionIdFilter:i}),Promise.resolve()}$onDidUnregisterAuthenticationProvider(e){return this._providerOperations.queue(e,async()=>{let t=this._authenticationProviders.get(e);t&&(t.disposable?.dispose(),this._authenticationProviders.delete(e))})}async $registerDynamicAuthProvider(e,t,i,r,n,o){if(!r){let o=eD.URI.revive(e);if(t.registration_endpoint)try{let e=await (0,rc.fetchDynamicRegistration)(t,this._initData.environment.appName,i?.scopes_supported);r=e.client_id,n=e.client_secret}catch(e){this._logService.warn(`Dynamic registration failed for ${o.toString()}: ${e.message}. Prompting user for client ID and client secret...`)}if(!r){this._logService.info(`Prompting user for client registration details for ${o.toString()}`);let e=await this._proxy.$promptForClientRegistration(o.toString());if(!e)throw Error("User did not provide client details");r=e.clientId,n=e.clientSecret,this._logService.info(`User provided client registration for ${o.toString()}`),n?this._logService.trace(`User provided client secret for ${o.toString()}`):this._logService.trace(`User did not provide client secret for ${o.toString()}`)}}let s=new this._dynamicAuthProviderCtor(this._extHostWindow,this._extHostUrls,this._initData,this._extHostProgress,this._extHostLoggerService,this._proxy,eD.URI.revive(e),t,i,r,n,this._onDidDynamicAuthProviderTokensChange,o||[]);return await this._providerOperations.queue(s.id,async()=>{this._authenticationProviders.set(s.id,{label:s.label,provider:s,disposable:eh.Disposable.from(s,s.onDidChangeSessions(e=>this._proxy.$sendDidChangeSessions(s.id,e)),s.onDidChangeClientId(()=>this._proxy.$sendDidChangeDynamicProviderInfo({providerId:s.id,clientId:s.clientId,clientSecret:s.clientSecret}))),options:{supportsMultipleAccounts:!0}}),await this._proxy.$registerDynamicAuthenticationProvider({id:s.id,label:s.label,supportsMultipleAccounts:!0,authorizationServer:e,resourceServer:i?eD.URI.parse(i.resource):void 0,clientId:s.clientId,clientSecret:s.clientSecret})}),s.id}async $onDidChangeDynamicAuthProviderTokens(e,t,i){this._onDidDynamicAuthProviderTokensChange.fire({authProviderId:e,clientId:t,tokens:i})}};rx=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService),(0,ek.__param)(2,ru),(0,ek.__param)(3,rp),(0,ek.__param)(4,rv),(0,ek.__param)(5,eM.ILoggerService),(0,ek.__param)(6,eM.ILogService)],rx);class rD{constructor(){this._inFlightPromises=new Map}getOrCreate(e,t){let i=this._inFlightPromises.get(e);if(i)return i;let r=t().finally(()=>this._inFlightPromises.delete(e));return this._inFlightPromises.set(e,r),r}}let rE=class{constructor(e,t,i,r,n,o,s,a,l,c,d,u,h){this._extHostWindow=e,this._extHostUrls=t,this._initData=i,this._extHostProgress=r,this._proxy=o,this.authorizationServer=s,this._serverMetadata=a,this._resourceMetadata=l,this._clientId=c,this._clientSecret=d,this._onDidChangeSessions=new ey.Emitter,this.onDidChangeSessions=this._onDidChangeSessions.event,this._onDidChangeClientId=new ey.Emitter,this.onDidChangeClientId=this._onDidChangeClientId.event;const g=s.toString(!0);this.id=l?.resource?g+" "+l?.resource:g,this.label=l?.resource_name??this.authorizationServer.authority,this._logger=n.createLogger(this.id,{name:`Auth: ${this.label}`}),this._disposable=new eH.DisposableStore,this._disposable.add(this._onDidChangeSessions);const p=ey.Event.chain(u.event,e=>e.filter(e=>e.authProviderId===this.id&&e.clientId===c).map(e=>e.tokens));this._tokenStore=this._disposable.add(new rk({onDidChange:p,set:e=>o.$setSessionsForDynamicAuthProvider(this.id,this.clientId,e)},h,this._logger)),this._disposable.add(this._tokenStore.onDidChangeSessions(e=>this._onDidChangeSessions.fire(e))),this._createFlows=[],a.authorization_endpoint&&this._createFlows.push({label:(0,e1.localize)(2684,"URL Handler"),handler:(e,t,i)=>this._createWithUrlHandler(e,t,i)})}get clientId(){return this._clientId}get clientSecret(){return this._clientSecret}async getSessions(e,t){if(this._logger.info(`Getting sessions for scopes: ${e?.join(" ")??"all"}`),!e)return this._tokenStore.sessions;let i=[...e].sort(),r=e.join(" "),n=this._tokenStore.sessions.filter(e=>(0,eY.equals)([...e.scopes].sort(),i));if(this._logger.info(`Found ${n.length} sessions for scopes: ${r}`),n.length){let e=[],t=[],o=new Map(this._tokenStore.tokens.map(e=>[e.access_token,e]));for(let i of n){let n=o.get(i.accessToken);if(n&&n.expires_in){let o=Date.now(),s=1e3*n.expires_in;if(o>n.created_at+s-3e5){if(this._logger.info(`Token for session ${i.id} is about to expire, refreshing...`),t.push(n),!n.refresh_token){this._logger.warn(`No refresh token available for scopes ${i.scopes.join(" ")}. Throwing away token.`);continue}try{let t=await this.exchangeRefreshTokenForToken(n.refresh_token);t.scope!==r&&(this._logger.warn(`Token scopes '${t.scope}' do not match requested scopes '${r}'. Overwriting token with what was requested...`),t.scope=r),this._logger.info(`Successfully created a new token for scopes ${i.scopes.join(" ")}.`),e.push(t)}catch(e){this._logger.error(`Failed to refresh token: ${e}`)}}}}return(e.length||t.length)&&(this._tokenStore.update({added:e,removed:t}),n=this._tokenStore.sessions.filter(e=>(0,eY.equals)([...e.scopes].sort(),i))),this._logger.info(`Found ${n.length} sessions for scopes: ${r}`),n}return[]}async createSession(e,t){let i;this._logger.info(`Creating session for scopes: ${e.join(" ")}`);for(let t=0;t<this._createFlows.length;t++){let{handler:r}=this._createFlows[t];try{if(i=await this._extHostProgress.withProgressFromSource({label:this.label,id:this.id},{location:eh.ProgressLocation.Notification,title:(0,e1.localize)(2685,"Authenticating to '{0}'",this.label),cancellable:!0},(t,i)=>r(e,t,i)))break}catch(r){let e=this._createFlows[t+1]?.label;if(!e)break;let i=(0,eg.isCancellationError)(r)?(0,e1.localize)(2686,"Having trouble authenticating to '{0}'? Would you like to try a different way? ({1})",this.label,e):(0,e1.localize)(2687,"You have not yet finished authenticating to '{0}'. Would you like to try a different way? ({1})",this.label,e);if(!await this._proxy.$showContinueNotification(i))throw new eg.CancellationError;this._logger.error(`Failed to create token via flow '${e}': ${r}`)}}if(!i)throw Error("Failed to create authentication token");i.scope!==e.join(" ")&&(this._logger.warn(`Token scopes '${i.scope}' do not match requested scopes '${e.join(" ")}'. Overwriting token with what was requested...`),i.scope=e.join(" ")),this._tokenStore.update({added:[{...i,created_at:Date.now()}],removed:[]});let r=this._tokenStore.sessions.find(e=>e.accessToken===i.access_token);return this._logger.info(`Created ${i.refresh_token?"refreshable":"non-refreshable"} session for scopes: ${i.scope}${i.expires_in?` that expires in ${i.expires_in} seconds`:""}`),r}async removeSession(e){this._logger.info(`Removing session with id: ${e}`);let t=this._tokenStore.sessions.find(t=>t.id===e);if(!t)return void this._logger.error(`Session with id ${e} not found`);let i=this._tokenStore.tokens.find(e=>e.access_token===t.accessToken);i?(this._tokenStore.update({added:[],removed:[i]}),this._logger.info(`Removed token for session: ${t.id} with scopes: ${t.scopes.join(" ")}`)):this._logger.error(`Failed to retrieve token for removed session: ${t.id}`)}dispose(){this._disposable.dispose()}async _createWithUrlHandler(e,t,i){let r,n;if(!this._serverMetadata.authorization_endpoint)throw Error("Authorization Endpoint required");if(!this._serverMetadata.token_endpoint)throw Error("Token endpoint not available in server metadata");let o=this.generateRandomString(64),s=await this.generateCodeChallenge(o),a=this.generateRandomString(32),l=eD.URI.parse(`${this._initData.environment.appUriScheme}://dynamicauthprovider/${this.authorizationServer.authority}/authorize?nonce=${a}`);try{r=await this._extHostUrls.createAppUri(l)}catch(e){throw Error(`Failed to create external URI: ${e}`)}let c=new URL(this._serverMetadata.authorization_endpoint);c.searchParams.append("client_id",this._clientId),c.searchParams.append("response_type","code"),c.searchParams.append("state",r.toString()),c.searchParams.append("code_challenge",s),c.searchParams.append("code_challenge_method","S256");let d=e.join(" ");d&&c.searchParams.append("scope",d),this._resourceMetadata?.resource&&c.searchParams.append("resource",this._resourceMetadata.resource);let u="https://vscode.dev/redirect";c.searchParams.append("redirect_uri",u);let h=this.waitForAuthorizationCode(l);if(this._logger.info(`Opening authorization URL for scopes: ${d}`),this._logger.trace(`Authorization URL: ${c.toString()}`),!await this._extHostWindow.openUri(c.toString(),{}))throw new eg.CancellationError;t.report({message:(0,e1.localize)(2688,"Complete the authentication in the browser window that has opened.")});try{n=(await (0,eU.raceCancellationError)(h,i)).code}catch(e){if((0,eg.isCancellationError)(e))throw this._logger.info("Authorization code request was cancelled by the user."),e;throw this._logger.error(`Failed to receive authorization code: ${e}`),Error(`Failed to receive authorization code: ${e}`)}return this._logger.info(`Authorization code received for scopes: ${d}`),await this.exchangeCodeForToken(n,o,u)}generateRandomString(e){let t=new Uint8Array(e);return crypto.getRandomValues(t),Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("").substring(0,e)}async generateCodeChallenge(e){let t=new TextEncoder().encode(e),i=await crypto.subtle.digest("SHA-256",t);return(0,eF.encodeBase64)(eF.VSBuffer.wrap(new Uint8Array(i)),!1,!1).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async waitForAuthorizationCode(e){let t=await this._proxy.$waitForUriHandler(e),i=/[?&]code=([^&]+)/.exec(t.query||"");if(!i||i.length<2)throw Error("Authentication failed: No authorization code received");return{code:i[1]}}async exchangeCodeForToken(e,t,i){let r;if(!this._serverMetadata.token_endpoint)throw Error("Token endpoint not available in server metadata");let n=new URLSearchParams;n.append("client_id",this._clientId),n.append("grant_type","authorization_code"),n.append("code",e),n.append("redirect_uri",i),n.append("code_verifier",t),this._resourceMetadata?.resource&&n.append("resource",this._resourceMetadata.resource),this._clientSecret&&n.append("client_secret",this._clientSecret),this._logger.info("Exchanging authorization code for token..."),this._logger.trace(`Url: ${this._serverMetadata.token_endpoint}`),this._logger.trace(`Token request body: ${n.toString()}`);try{r=await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:n.toString()})}catch(e){throw this._logger.error(`Failed to exchange authorization code for token: ${e}`),Error(`Failed to exchange authorization code for token: ${e}`)}if(!r.ok){let e=await r.text();throw Error(`Token exchange failed: ${r.status} ${r.statusText} - ${e}`)}let o=await r.json();if((0,rc.isAuthorizationTokenResponse)(o))return this._logger.info("Successfully exchanged authorization code for token."),o;if((0,rc.isAuthorizationErrorResponse)(o)&&o.error===rc.AuthorizationErrorType.InvalidClient)throw this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),Error("Client ID was invalid, generated a new one. Please try again.");throw Error(`Invalid authorization token response: ${JSON.stringify(o)}`)}async exchangeRefreshTokenForToken(e){if(!this._serverMetadata.token_endpoint)throw Error("Token endpoint not available in server metadata");let t=new URLSearchParams;t.append("client_id",this._clientId),t.append("grant_type","refresh_token"),t.append("refresh_token",e),this._resourceMetadata?.resource&&t.append("resource",this._resourceMetadata.resource),this._clientSecret&&t.append("client_secret",this._clientSecret);let i=await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:t.toString()}),r=await i.json();if((0,rc.isAuthorizationTokenResponse)(r))return{...r,created_at:Date.now()};if((0,rc.isAuthorizationErrorResponse)(r)&&r.error===rc.AuthorizationErrorType.InvalidClient)throw this._logger.warn(`Client ID (${this._clientId}) was invalid, generated a new one.`),await this._generateNewClientId(),Error("Client ID was invalid, generated a new one. Please try again.");throw Error(`Invalid authorization token response: ${JSON.stringify(r)}`)}async _generateNewClientId(){try{let e=await (0,rc.fetchDynamicRegistration)(this._serverMetadata,this._initData.environment.appName,this._resourceMetadata?.scopes_supported);this._clientId=e.client_id,this._clientSecret=e.client_secret,this._onDidChangeClientId.fire()}catch(e){this._logger.info(`Dynamic registration failed for ${this.authorizationServer.toString()}: ${e}. Prompting user for client ID and client secret.`);try{let e=await this._proxy.$promptForClientRegistration(this.authorizationServer.toString());if(!e)throw Error("User did not provide client details");this._clientId=e.clientId,this._clientSecret=e.clientSecret,this._logger.info(`User provided client ID for ${this.authorizationServer.toString()}`),e.clientSecret?this._logger.info(`User provided client secret for ${this.authorizationServer.toString()}`):this._logger.info(`User did not provide client secret for ${this.authorizationServer.toString()} (optional)`),this._onDidChangeClientId.fire()}catch(t){throw this._logger.error(`Failed to fetch new client ID and user did not provide one: ${e}`),Error(`Failed to fetch new client ID and user did not provide one: ${e}`)}}}};rE=(0,ek.__decorate)([(0,ek.__param)(0,ru),(0,ek.__param)(1,rp),(0,ek.__param)(2,ej.IExtHostInitDataService),(0,ek.__param)(3,rv),(0,ek.__param)(4,eM.ILoggerService)],rE);class rk{constructor(e,t,i){this._persistence=e,this._logger=i,this._onDidChangeSessions=new ey.Emitter,this.onDidChangeSessions=this._onDidChangeSessions.event,this._disposable=new eH.DisposableStore,this._tokensObservable=(0,rC.observableValue)("tokens",t),this._sessionsObservable=(0,rS.derivedOpts)({equalsFn:(e,t)=>(0,eY.equals)(e,t,(e,t)=>e.accessToken===t.accessToken)},e=>this._tokensObservable.read(e).map(e=>this._getSessionFromToken(e))),this._disposable.add(this._registerChangeEventAutorun()),this._disposable.add(this._persistence.onDidChange(e=>this._tokensObservable.set(e,void 0)))}get tokens(){return this._tokensObservable.get()}get sessions(){return this._sessionsObservable.get()}dispose(){this._disposable.dispose()}update({added:e,removed:t}){this._logger.trace(`Updating tokens: added ${e.length}, removed ${t.length}`);let i=[...this._tokensObservable.get()];for(let e of t){let t=i.findIndex(t=>t.access_token===e.access_token);-1!==t&&i.splice(t,1)}for(let t of e){let e=i.findIndex(e=>e.access_token===t.access_token);-1===e?i.push(t):i[e]=t}(e.length||t.length)&&(this._tokensObservable.set(i,void 0),this._persistence.set(i)),this._logger.trace(`Tokens updated: ${i.length} tokens stored.`)}_registerChangeEventAutorun(){let e=[];return(0,rb.autorun)(t=>{this._logger.trace("Checking for session changes...");let i=this._sessionsObservable.read(t);if(e===i)return void this._logger.trace("No session changes detected.");if(!i||0===i.length){this._logger.trace("All sessions removed."),e.length>0&&(this._onDidChangeSessions.fire({added:[],removed:e,changed:[]}),e=[]);return}let r=[],n=[];for(let t of i)e.some(e=>e.accessToken===t.accessToken)||r.push(t);for(let t of e)i.some(e=>e.accessToken===t.accessToken)||n.push(t);(r.length>0||n.length>0)&&(this._logger.trace(`Sessions changed: added ${r.length}, removed ${n.length}`),this._onDidChangeSessions.fire({added:r,removed:n,changed:[]})),e=i})}_getSessionFromToken(e){let t;if(e.id_token)try{t=(0,rc.getClaimsFromJWT)(e.id_token)}catch(e){}if(!t)try{t=(0,rc.getClaimsFromJWT)(e.access_token)}catch(e){}let i=e.scope?e.scope.split(" "):t?.scope?t.scope.split(" "):[];return{id:(0,rh.stringHash)(e.access_token,0).toString(),accessToken:e.access_token,account:{id:t?.sub||"unknown",label:t?.preferred_username||t?.name||t?.email||"MCP"},scopes:i,idToken:e.id_token}}}let rT=(0,eR.createDecorator)("IExtHostLanguageModels");class rR{constructor(){this._defaultStream=new eU.AsyncIterableSource,this._isDone=!1;const[e,t]=eU.AsyncIterableProducer.tee(this._defaultStream.asyncIterable);this.apiObject={get stream(){return e},get text(){return t.map(e=>e instanceof eh.LanguageModelTextPart?e.value:void 0).coalesce()}}}handleResponsePart(e){if(this._isDone)return;let t=[];for(let i of id.Iterable.wrap(e)){let e;e="text"===i.type?new eh.LanguageModelTextPart(i.value,i.audience):"thinking"===i.type?new eh.LanguageModelThinkingPart(i.value,i.id,i.metadata):"data"===i.type?new eh.LanguageModelDataPart(i.data.buffer,i.mimeType,i.audience):new eh.LanguageModelToolCallPart(i.toolCallId,i.name,i.parameters),t.push(e)}this._defaultStream.emitMany(t)}reject(e){this._isDone=!0,this._defaultStream.reject(e)}resolve(){this._isDone=!0,this._defaultStream.resolve()}}let rP=class{static{z=this}static{this._idPool=1}constructor(e,t,i){this._logService=t,this._extHostAuthentication=i,this._onDidChangeModelAccess=new ey.Emitter,this._onDidChangeProviders=new ey.Emitter,this.onDidChangeProviders=this._onDidChangeProviders.event,this._onDidChangeModelProxyAvailability=new ey.Emitter,this.onDidChangeModelProxyAvailability=this._onDidChangeModelProxyAvailability.event,this._languageModelProviders=new Map,this._localModels=new Map,this._modelAccessList=new eI.ExtensionIdentifierMap,this._pendingRequest=new Map,this._ignoredFileProviders=new Map,this._languageAccessInformationExtensions=new Set,this._proxy=e.getProxy(ev.MainContext.MainThreadLanguageModels)}dispose(){this._onDidChangeModelAccess.dispose(),this._onDidChangeProviders.dispose(),this._onDidChangeModelProxyAvailability.dispose()}registerLanguageModelChatProvider(e,t,i){let r;return this._languageModelProviders.set(t,{extension:e,provider:i}),this._proxy.$registerLanguageModelProvider(t),i.onDidChangeLanguageModelChatInformation&&(r=i.onDidChangeLanguageModelChatInformation(()=>{this._proxy.$onLMProviderChange(t)})),(0,eH.toDisposable)(()=>{this._languageModelProviders.delete(t),this._clearModelCache(t),r?.dispose(),this._proxy.$unregisterProvider(t)})}_clearModelCache(e){this._localModels.forEach((t,i)=>{t.metadata.vendor===e&&this._localModels.delete(i)})}async $provideLanguageModelChatInfo(e,t,i){let r=this._languageModelProviders.get(e);if(!r)return[];let n=await r.provider.provideLanguageModelChatInformation(t,i)??[],o=n.map(t=>{let i;return t.requiresAuthorization&&(0,tp.isProposedApiEnabled)(r.extension,"chatProvider")&&(i={providerLabel:r.extension.displayName||r.extension.name,accountLabel:"object"==typeof t.requiresAuthorization?t.requiresAuthorization.label:void 0}),t.capabilities.editTools&&(0,tp.checkProposedApiEnabled)(r.extension,"chatProvider"),{metadata:{extension:r.extension.identifier,id:t.id,vendor:e,name:t.name??"",family:t.family??"",detail:t.detail,tooltip:t.tooltip,version:t.version,maxInputTokens:t.maxInputTokens,maxOutputTokens:t.maxOutputTokens,auth:i,isDefault:t.isDefault,isUserSelectable:t.isUserSelectable,statusIcon:t.statusIcon,modelPickerCategory:t.category??ra,capabilities:t.capabilities?{vision:t.capabilities.imageInput,editTools:t.capabilities.editTools,toolCalling:!!t.capabilities.toolCalling,agentMode:!!t.capabilities.toolCalling}:void 0},identifier:`${e}/${t.id}`}});this._clearModelCache(e);for(let e=0;e<o.length;e++)this._localModels.set(o[e].identifier,{metadata:o[e].metadata,info:n[e]});return o}async $startChatRequest(e,t,i,r,n,o){let s,a=this._localModels.get(e);if(!a)throw Error("Model not found");let l=this._languageModelProviders.get(a.metadata.vendor);if(!l)throw Error(`Language model provider for '${a.metadata.id}' not found.`);let c=[],d=()=>{c.length>0&&(this._proxy.$reportResponsePart(t,new tW.SerializableObjectWithBuffers(c)),c.length=0)},u=new eU.RunOnceScheduler(d,30),h=new rs.Progress(async e=>{var t;let i;o.isCancellationRequested?this._logService.warn(`[CHAT](${l.extension.identifier.value}) CANNOT send progress because the REQUEST IS CANCELLED`):(e instanceof eh.LanguageModelToolCallPart?i={type:"tool_use",name:e.name,parameters:e.input,toolCallId:e.callId}:e instanceof eh.LanguageModelTextPart?i={type:"text",value:e.value,audience:e.audience}:e instanceof eh.LanguageModelDataPart?i={type:"data",mimeType:e.mimeType,data:eF.VSBuffer.wrap(e.data),audience:e.audience}:e instanceof eh.LanguageModelThinkingPart&&(i={type:"thinking",value:e.value,id:e.id,metadata:e.metadata}),i)?(t=i,c.push(t)>30?(d(),u.cancel()):u.schedule()):this._logService.warn(`[CHAT](${l.extension.identifier.value}) UNKNOWN part ${JSON.stringify(e)}`)});try{s=l.provider.provideLanguageModelChatResponse(a.info,r.value.map(e6.LanguageModelChatMessage2.to),{...n,modelOptions:n.modelOptions??{},requestInitiator:eI.ExtensionIdentifier.toKey(i),toolMode:n.toolMode??eh.LanguageModelChatToolMode.Auto},h,o)}catch(e){throw e}Promise.resolve(s).then(()=>{d(),this._proxy.$reportResponseDone(t,void 0)},e=>{d(),this._proxy.$reportResponseDone(t,(0,eg.transformErrorForSerialization)(e))})}$provideTokenLength(e,t,i){let r=this._localModels.get(e);if(!r)return Promise.resolve(0);let n=this._languageModelProviders.get(r.metadata.vendor);return n?Promise.resolve(n.provider.provideTokenCount(r.info,t,i)):Promise.resolve(0)}async getDefaultLanguageModel(e,t){let i;for(let[r,n]of(t&&await this.selectLanguageModels(e,{}),this._localModels))if(n.metadata.isDefault){i=r;break}return i||t?this.getLanguageModelByIdentifier(e,i):this.getDefaultLanguageModel(e,!0)}async getLanguageModelByIdentifier(e,t){let i;if(!t)return;let r=this._localModels.get(t);if(!r)return(await this.selectLanguageModels(e,{id:t}))[0];if(this._isUsingAuth(e.identifier,r.metadata)&&await this._fakeAuthPopulate(r.metadata),!i){let n=this;i={id:r.info.id,vendor:r.metadata.vendor,family:r.info.family,version:r.info.version,name:r.info.name,capabilities:{supportsImageToText:r.metadata.capabilities?.vision??!1,supportsToolCalling:!!r.metadata.capabilities?.toolCalling,editToolsHint:r.metadata.capabilities?.editTools},maxInputTokens:r.metadata.maxInputTokens,countTokens(e,i){if(!n._localModels.has(t))throw eh.LanguageModelError.NotFound(t);return n._computeTokenLength(t,e,i??ef.CancellationToken.None)},sendRequest(i,r,o){if(!n._localModels.has(t))throw eh.LanguageModelError.NotFound(t);return n._sendChatRequest(e,t,i,r??{},o??ef.CancellationToken.None)}}}return i}async selectLanguageModels(e,t){let i=await this._proxy.$selectChatModels({...t,extension:e.identifier}),r=[],n=i.map(t=>this.getLanguageModelByIdentifier(e,t));for(let e of(await Promise.all(n)))e&&r.push(e);return r}async _sendChatRequest(e,t,i,r,n){let o=this._convertMessages(e,i),s=e.identifier,a=this._localModels.get(t)?.metadata;if(!a||!this._localModels.has(t))throw eh.LanguageModelError.NotFound(`Language model '${t}' is unknown.`);if(this._isUsingAuth(s,a)&&(!await this._getAuthAccess(e,{identifier:a.extension,displayName:a.auth.providerLabel},r.justification,!1)||!this._modelAccessList.get(s)?.has(a.extension)))throw eh.LanguageModelError.NoPermissions(`Language model '${t}' cannot be used by '${s.value}'.`);let l=1e6*Math.random()|0,c=new rR;this._pendingRequest.set(l,{languageModelId:t,res:c});try{await this._proxy.$tryStartChatRequest(s,t,l,new tW.SerializableObjectWithBuffers(o),r,n)}catch(e){throw this._pendingRequest.delete(l),eh.LanguageModelError.tryDeserialize(e)??e}return c.apiObject}_convertMessages(e,t){let i=[];for(let r of t)r.role===eh.LanguageModelChatMessageRole.System&&(0,tp.checkProposedApiEnabled)(e,"languageModelSystem"),i.push(e6.LanguageModelChatMessage2.from(r));return i}async $acceptResponsePart(e,t){let i=this._pendingRequest.get(e);i&&i.res.handleResponsePart(t.value)}async $acceptResponseDone(e,t){let i=this._pendingRequest.get(e);i&&(this._pendingRequest.delete(e),t?i.res.reject(eh.LanguageModelError.tryDeserialize(t)??(0,eg.transformErrorFromSerialization)(t)):i.res.resolve())}async _getAuthAccess(e,t,i,r){let n=rl.INTERNAL_AUTH_PROVIDER_PREFIX+t.identifier.value;if(await this._extHostAuthentication.getSession(e,n,[],{silent:!0}))return this.$updateModelAccesslist([{from:e.identifier,to:t.identifier,enabled:!0}]),!0;if(r)return!1;try{let r=i?(0,e1.localize)(2694,"Justification: {1}",t.displayName,i):void 0;return await this._extHostAuthentication.getSession(e,n,[],{forceNewSession:{detail:r}}),this.$updateModelAccesslist([{from:e.identifier,to:t.identifier,enabled:!0}]),!0}catch(e){return!1}}_isUsingAuth(e,t){return!!t.auth&&!eI.ExtensionIdentifier.equals(t.extension,e)}async _fakeAuthPopulate(e){if(e.auth)for(let t of this._languageAccessInformationExtensions)try{await this._getAuthAccess(t,{identifier:e.extension,displayName:""},void 0,!0)}catch(e){this._logService.error("Fake Auth request failed"),this._logService.error(e)}}async _computeTokenLength(e,t,i){let r=this._localModels.get(e);if(!r)throw eh.LanguageModelError.NotFound(`Language model '${e}' is unknown.`);return this._languageModelProviders.get(r.metadata.vendor)?.provider.provideTokenCount(r.info,t,i)??0}$updateModelAccesslist(e){let t=[];for(let{from:i,to:r,enabled:n}of e){let e=this._modelAccessList.get(i)??new eI.ExtensionIdentifierSet;if(e.has(r)!==n){n?e.add(r):e.delete(r),this._modelAccessList.set(i,e);let o={from:i,to:r};t.push(o),this._onDidChangeModelAccess.fire(o)}}}createLanguageModelAccessInformation(e){this._languageAccessInformationExtensions.add(e);let t=ey.Event.signal(ey.Event.filter(this._onDidChangeModelAccess.event,t=>eI.ExtensionIdentifier.equals(t.from,e.identifier))),i=ey.Event.signal(this._onDidChangeProviders.event);return{get onDidChange(){return ey.Event.any(t,i)},canSendRequest:e=>!0}}fileIsIgnored(e,t,i=ef.CancellationToken.None){return(0,tp.checkProposedApiEnabled)(e,"chatParticipantAdditions"),this._proxy.$fileIsIgnored(t,i)}get isModelProxyAvailable(){return!!this._languageModelProxyProvider}async getModelProxy(e){if((0,tp.checkProposedApiEnabled)(e,"languageModelProxy"),!this._languageModelProxyProvider)throw this._logService.trace("[LanguageModelProxy] No LanguageModelProxyProvider registered"),Error("No language model proxy provider is registered.");let t=eI.ExtensionIdentifier.toKey(e.identifier);try{let e=await Promise.resolve(this._languageModelProxyProvider.provideModelProxy(t,ef.CancellationToken.None));if(!e)throw this._logService.warn(`[LanguageModelProxy] Provider returned no proxy for ${t}`),Error("Language model proxy is not available.");return e}catch(e){throw this._logService.error(`[LanguageModelProxy] Provider failed to return proxy for ${t}`,e),e}}async $isFileIgnored(e,t,i){let r=this._ignoredFileProviders.get(e);if(!r)throw Error("Unknown LanguageModelIgnoredFileProvider");return await r.provideFileIgnored(eD.URI.revive(t),i)??!1}registerIgnoredFileProvider(e,t){(0,tp.checkProposedApiEnabled)(e,"chatParticipantPrivate");let i=z._idPool++;return this._proxy.$registerFileIgnoreProvider(i),this._ignoredFileProviders.set(i,t),(0,eH.toDisposable)(()=>{this._proxy.$unregisterFileIgnoreProvider(i),this._ignoredFileProviders.delete(i)})}registerLanguageModelProxyProvider(e,t){return(0,tp.checkProposedApiEnabled)(e,"chatParticipantPrivate"),this._languageModelProxyProvider=t,this._onDidChangeModelProxyAvailability.fire(),(0,eH.toDisposable)(()=>{this._languageModelProxyProvider===t&&(this._languageModelProxyProvider=void 0,this._onDidChangeModelProxyAvailability.fire())})}};rP=z=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,eM.ILogService),(0,ek.__param)(2,rw)],rP);var rI=e.i(531559);class rA{constructor(e){this._onDidChangePassword=new ey.Emitter,this.onDidChangePassword=this._onDidChangePassword.event,this._proxy=e.getProxy(ev.MainContext.MainThreadSecretState)}async $onDidChangePassword(e){this._onDidChangePassword.fire(e)}get(e,t){return this._proxy.$getPassword(e,t)}store(e,t,i){return this._proxy.$setPassword(e,t,i)}delete(e,t){return this._proxy.$deletePassword(e,t)}keys(e){return this._proxy.$getKeys(e)}}let rM=(0,eR.createDecorator)("IExtHostSecretState");class rL{#n;constructor(e,t){this.disposables=new eH.DisposableStore,this._id=eI.ExtensionIdentifier.toKey(e.identifier),this.#n=t,this.onDidChange=ey.Event.map(ey.Event.filter(this.#n.onDidChangePassword,e=>e.extensionId===this._id),e=>({key:e.key}),this.disposables)}dispose(){this.disposables.dispose()}get(e){return this.#n.get(this._id,e)}store(e,t){return this.#n.store(this._id,e,t)}delete(e){return this.#n.delete(this._id,e)}keys(){return this.#n.keys(this._id)||[]}}let rF=class{constructor(e,t,i){this.logService=i,this.bundleCache=new Map,this._proxy=t.getProxy(ev.MainContext.MainThreadLocalization),this.currentLanguage=e.environment.appLanguage,this.isDefaultLanguage=this.currentLanguage===ib.LANGUAGE_DEFAULT}getMessage(e,t){let{message:i,args:r,comment:n}=t;if(this.isDefaultLanguage)return(0,e0.format2)(i,r??{});let o=i;n&&n.length>0&&(o+=`/${Array.isArray(n)?n.join(""):n}`);let s=this.bundleCache.get(e)?.contents[o];return s||this.logService.warn(`Using default string since no string found in i18n bundle that has the key: ${o}`),(0,e0.format2)(s??i,r??{})}getBundle(e){return this.bundleCache.get(e)?.contents}getBundleUri(e){return this.bundleCache.get(e)?.uri}async initializeLocalizedMessages(e){let t;if(this.isDefaultLanguage||!e.l10n&&!e.isBuiltin||this.bundleCache.has(e.identifier.value))return;let i=await this.getBundleLocation(e);if(!i)return void this.logService.error(`No bundle location found for extension ${e.identifier.value}`);try{let r=await this._proxy.$fetchBundleContents(i),n=JSON.parse(r);t=e.isBuiltin?n.contents?.bundle:n}catch(t){this.logService.error(`Failed to load translations for ${e.identifier.value} from ${i}: ${t.message}`);return}t&&this.bundleCache.set(e.identifier.value,{contents:t,uri:i})}async getBundleLocation(e){if(e.isBuiltin){let t=await this._proxy.$fetchBuiltInBundleUri(e.identifier.value,this.currentLanguage);return eD.URI.revive(t)}return e.l10n?eD.URI.joinPath(e.extensionLocation,e.l10n,`bundle.l10n.${this.currentLanguage}.json`):void 0}};rF=(0,ek.__decorate)([(0,ek.__param)(0,ej.IExtHostInitDataService),(0,ek.__param)(1,eP.IExtHostRpcService),(0,ek.__param)(2,eM.ILogService)],rF);let rO=(0,eR.createDecorator)("IExtHostLocalizationService");var rN=eH;let r$=(0,eR.createDecorator)("IExtHostManagedSockets"),rH=class{constructor(e){this._remoteSocketIdCounter=0,this._factory=null,this._managedRemoteSockets=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadManagedSockets)}setFactory(e,t){for(let e of this._managedRemoteSockets.values())e.dispose();this._factory&&this._proxy.$unregisterSocketFactory(this._factory.socketFactoryId),this._factory=new rU(e,t),this._proxy.$registerSocketFactory(this._factory.socketFactoryId)}async $openRemoteSocket(e){if(!this._factory||this._factory.socketFactoryId!==e)throw Error(`No socket factory with id ${e}`);let t=++this._remoteSocketIdCounter,i=await this._factory.makeConnection(),r=new rN.DisposableStore;return this._managedRemoteSockets.set(t,new rW(t,i,r)),r.add((0,rN.toDisposable)(()=>this._managedRemoteSockets.delete(t))),r.add(i.onDidEnd(()=>{this._proxy.$onDidManagedSocketEnd(t),r.dispose()})),r.add(i.onDidClose(e=>{this._proxy.$onDidManagedSocketClose(t,e?.stack??e?.message),r.dispose()})),r.add(i.onDidReceiveMessage(e=>this._proxy.$onDidManagedSocketHaveData(t,eF.VSBuffer.wrap(e)))),t}$remoteSocketWrite(e,t){this._managedRemoteSockets.get(e)?.actual.send(t.buffer)}$remoteSocketEnd(e){let t=this._managedRemoteSockets.get(e);t&&(t.actual.end(),t.dispose())}async $remoteSocketDrain(e){await this._managedRemoteSockets.get(e)?.actual.drain?.()}};rH=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],rH);class rU{constructor(e,t){this.socketFactoryId=e,this.makeConnection=t}}class rW extends rN.Disposable{constructor(e,t,i){super(),this.socketId=e,this.actual=t,this._register(i)}}let rq=(0,eR.createDecorator)("IHostUtils"),rj=K=class extends iY.Disposable{constructor(e,t,i,r,n,o,s,a,l,c,d,u,h){super(),this._extHostManagedSockets=u,this._extHostLanguageModels=h,this._onDidChangeRemoteConnectionData=this._register(new ey.Emitter),this.onDidChangeRemoteConnectionData=this._onDidChangeRemoteConnectionData.event,this._realPathCache=new Map,this._isTerminating=!1,this._hostUtils=t,this._extHostContext=i,this._initData=s,this._extHostWorkspace=r,this._extHostConfiguration=n,this._logService=o,this._extHostTunnelService=l,this._extHostTerminalService=c,this._extHostLocalizationService=d,this._mainThreadWorkspaceProxy=this._extHostContext.getProxy(ev.MainContext.MainThreadWorkspace),this._mainThreadTelemetryProxy=this._extHostContext.getProxy(ev.MainContext.MainThreadTelemetry),this._mainThreadExtensionsProxy=this._extHostContext.getProxy(ev.MainContext.MainThreadExtensionService),this._almostReadyToRunExtensions=new eU.Barrier,this._readyToStartExtensionHost=new eU.Barrier,this._readyToRunExtensions=new eU.Barrier,this._eagerExtensionsActivated=new eU.Barrier,this._activationEventsReader=new rY(this._initData.extensions.activationEvents),this._globalRegistry=new iX.ExtensionDescriptionRegistry(this._activationEventsReader,this._initData.extensions.allExtensions);const g=new eI.ExtensionIdentifierSet(this._initData.extensions.myExtensions);this._myRegistry=new iX.ExtensionDescriptionRegistry(this._activationEventsReader,rQ(this._globalRegistry,g)),ib.isCI&&(this._logService.info(`Creating extension host with the following global extensions: ${rV(this._globalRegistry)}`),this._logService.info(`Creating extension host with the following local extensions: ${rV(this._myRegistry)}`)),this._storage=new i8(this._extHostContext,this._logService),this._secretState=new rA(this._extHostContext),this._storagePath=a,this._instaService=this._store.add(e.createChild(new rn.ServiceCollection([i7,this._storage],[rM,this._secretState]))),this._activator=this._register(new i4(this._myRegistry,this._globalRegistry,{onExtensionActivationError:(e,t,i)=>{this._mainThreadExtensionsProxy.$onExtensionActivationError(e,(0,eg.transformErrorForSerialization)(t),i)},actualActivateExtension:async(e,t)=>{if(iX.ExtensionDescriptionRegistry.isHostExtension(e,this._myRegistry,this._globalRegistry))return await this._mainThreadExtensionsProxy.$activateExtension(e,t),new i6;let i=this._myRegistry.getExtensionDescription(e);return this._activateExtension(i,t)}},this._logService)),this._extensionPathIndex=null,this._resolvers=Object.create(null),this._started=!1,this._remoteConnectionData=this._initData.remote.connectionData}getRemoteConnectionData(){return this._remoteConnectionData}async initialize(){try{await this._beforeAlmostReadyToRunExtensions(),this._almostReadyToRunExtensions.open(),await this._extHostWorkspace.waitForInitializeCall(),(0,iJ.mark)("code/extHost/ready"),this._readyToStartExtensionHost.open(),this._initData.autoStart&&this._startExtensionHost()}catch(e){(0,eg.onUnexpectedError)(e)}}async _deactivateAll(){this._storagePath.onWillDeactivateAll();let e=[];try{e=this._myRegistry.getAllExtensionDescriptions().map(e=>e.identifier).filter(e=>this.isActivated(e)).map(e=>this._deactivate(e))}catch(e){}await Promise.all(e)}terminate(e,t=0){if(this._isTerminating)return;this._isTerminating=!0,this._logService.info(`Extension host terminating: ${e}`),this._logService.flush(),this._extHostTerminalService.dispose(),this._activator.dispose(),ib.isWebWorker&&(0,eg.setUnexpectedErrorHandler)(e=>{this._logService.error(e)}),this._extHostContext.dispose();let i=this._deactivateAll();Promise.race([(0,eU.timeout)(5e3),i]).finally(()=>{this._hostUtils.pid?this._logService.info(`Extension host with pid ${this._hostUtils.pid} exiting with code ${t}`):this._logService.info(`Extension host exiting with code ${t}`),this._logService.flush(),this._logService.dispose(),this._hostUtils.exit(t)})}isActivated(e){return!!this._readyToRunExtensions.isOpen()&&this._activator.isActivated(e)}async getExtension(e){let t=await this._mainThreadExtensionsProxy.$getExtension(e);return t&&{...t,identifier:new eI.ExtensionIdentifier(t.identifier.value),extensionLocation:eD.URI.revive(t.extensionLocation)}}_activateByEvent(e,t){return this._activator.activateByEvent(e,t)}_activateById(e,t){return this._activator.activateById(e,t)}activateByIdWithErrors(e,t){return this._activateById(e,t).then(()=>{let t=this._activator.getActivatedExtension(e);if(t.activationFailed)return Promise.reject(t.activationFailedError)})}getExtensionRegistry(){return this._readyToRunExtensions.wait().then(e=>this._myRegistry)}getExtensionExports(e){if(this._readyToRunExtensions.isOpen())return this._activator.getActivatedExtension(e).exports;try{return this._activator.getActivatedExtension(e).exports}catch(e){return null}}async _realPathExtensionUri(e){if(e.scheme===eO.Schemas.file&&this._hostUtils.fsRealpath){let t=e.fsPath;this._realPathCache.has(t)||this._realPathCache.set(t,this._hostUtils.fsRealpath(t));let i=await this._realPathCache.get(t);return eD.URI.file(i)}return e}async getExtensionPathIndex(){return this._extensionPathIndex||(this._extensionPathIndex=this._createExtensionPathIndex(this._myRegistry.getAllExtensionDescriptions()).then(e=>new rJ(e))),this._extensionPathIndex}async _createExtensionPathIndex(e){let t=eX.TernarySearchTree.forUris(e=>eN.extUriBiasedIgnorePathCase.ignorePathCasing(e));return await Promise.all(e.map(async e=>{if(this._getEntryPoint(e)){let i=await this._realPathExtensionUri(e.extensionLocation);t.set(i,e)}})),t}_deactivate(e){let t=Promise.resolve(void 0);if(!this._readyToRunExtensions.isOpen()||!this._activator.isActivated(e))return t;let i=this._activator.getActivatedExtension(e);if(!i)return t;try{"function"==typeof i.module.deactivate&&(t=Promise.resolve(i.module.deactivate()).then(void 0,e=>(this._logService.error(e),Promise.resolve(void 0))))}catch(t){this._logService.error(`An error occurred when deactivating the extension '${e.value}':`),this._logService.error(t)}try{i.disposable.dispose()}catch(t){this._logService.error(`An error occurred when disposing the subscriptions for extension '${e.value}':`),this._logService.error(t)}return t}async _activateExtension(e,t){return this._initData.remote.isRemote?this._mainThreadExtensionsProxy.$onWillActivateExtension(e.identifier):await this._mainThreadExtensionsProxy.$onWillActivateExtension(e.identifier),this._doActivateExtension(e,t).then(i=>{let r=i.activationTimes;return this._mainThreadExtensionsProxy.$onDidActivateExtension(e.identifier,r.codeLoadingTime,r.activateCallTime,r.activateResolvedTime,t),this._logExtensionActivationTimes(e,t,"success",r),i},i=>{throw this._logExtensionActivationTimes(e,t,"failure"),i})}_logExtensionActivationTimes(e,t,i,r){let n=rK(e,t);this._mainThreadTelemetryProxy.$publicLog2("extensionActivationTimes",{...n,...r||{},outcome:i})}_doActivateExtension(e,t){let i=rK(e,t);this._mainThreadTelemetryProxy.$publicLog2("activatePlugin",i);let r=this._getEntryPoint(e);if(!r)return Promise.resolve(new i2(iZ.NONE));this._logService.info(`ExtensionService#_doActivateExtension ${e.identifier.value}, startup: ${t.startup}, activationEvent: '${t.activationEvent}'${e.identifier.value!==t.extensionId.value?`, root cause: ${t.extensionId.value}`:""}`),this._logService.flush();let n=this._isESM(e),o=new iY.DisposableStore,s=new i0(t.startup);return Promise.all([n?this._loadESMModule(e,(0,eN.joinPath)(e.extensionLocation,r),s):this._loadCommonJSModule(e,(0,eN.joinPath)(e.extensionLocation,r),s),this._loadExtensionContext(e,o)]).then(t=>((0,iJ.mark)(`code/extHost/willActivateExtension/${e.identifier.value}`),K._callActivate(this._logService,e.identifier,t[0],t[1],o,s))).then(t=>((0,iJ.mark)(`code/extHost/didActivateExtension/${e.identifier.value}`),t))}_loadExtensionContext(e,t){let i=this._extHostLanguageModels.createLanguageModelAccessInformation(e),r=t.add(new re(e,this._storage)),n=t.add(new i9(e.identifier.value,!1,this._storage)),o=t.add(new rL(e,this._secretState)),s=e.isUnderDevelopment?this._initData.environment.extensionTestsLocationURI?eh.ExtensionMode.Test:eh.ExtensionMode.Development:eh.ExtensionMode.Production,a=this._initData.remote.isRemote?eh.ExtensionKind.Workspace:eh.ExtensionKind.UI;return this._logService.trace(`ExtensionService#loadExtensionContext ${e.identifier.value}`),Promise.all([r.whenReady,n.whenReady,this._storagePath.whenReady]).then(()=>{let t,l,c=this,d=(0,tp.isProposedApiEnabled)(e,"ipc")?this._initData.messagePorts?.get(eI.ExtensionIdentifier.toKey(e.identifier)):void 0;return Object.freeze({globalState:r,workspaceState:n,secrets:o,subscriptions:[],get languageModelAccessInformation(){return i},get extensionUri(){return e.extensionLocation},get extensionPath(){return e.extensionLocation.fsPath},asAbsolutePath:t=>(0,tg.join)(e.extensionLocation.fsPath,t),get storagePath(){return c._storagePath.workspaceValue(e)?.fsPath},get globalStoragePath(){return c._storagePath.globalValue(e).fsPath},get logPath(){return(0,tg.join)(c._initData.logsLocation.fsPath,e.identifier.value)},get logUri(){return eD.URI.joinPath(c._initData.logsLocation,e.identifier.value)},get storageUri(){return c._storagePath.workspaceValue(e)},get globalStorageUri(){return c._storagePath.globalValue(e)},get extensionMode(){return s},get extension(){return void 0===t&&(t=new rG(c,e.identifier,e,a,!1)),t},get extensionRuntime(){return(0,tp.checkProposedApiEnabled)(e,"extensionRuntime"),c.extensionRuntime},get environmentVariableCollection(){return c._extHostTerminalService.getEnvironmentVariableCollection(e)},get messagePassingProtocol(){if(!l){if(!d)return;let e=ey.Event.buffer(ey.Event.fromDOMEventEmitter(d,"message",e=>e.data));d.start(),l={onDidReceiveMessage:e,postMessage:d.postMessage.bind(d)}}return l}})})}static _callActivate(e,t,i,r,n,o){return i=i||{activate:void 0,deactivate:void 0},this._callActivateOptional(e,t,i,r,o).then(e=>new i1(!1,null,o.build(),i,e,(0,iY.toDisposable)(()=>{n.dispose(),(0,iY.dispose)(r.subscriptions)})))}static _callActivateOptional(e,t,i,r,n){if("function"!=typeof i.activate)return Promise.resolve(i);try{n.activateCallStart(),e.trace(`ExtensionService#_callActivateOptional ${t.value}`);let o=i.activate.apply(globalThis,[r]);return n.activateCallStop(),n.activateResolveStart(),Promise.resolve(o).then(e=>(n.activateResolveStop(),e))}catch(e){return Promise.reject(e)}}_activateOneStartupFinished(e,t){this._activateById(e.identifier,{startup:!1,extensionId:e.identifier,activationEvent:t}).then(void 0,e=>{this._logService.error(e)})}_activateAllStartupFinishedDeferred(e,t=0){let i=Date.now();(0,ib.setTimeout0)(()=>{for(let r=t;r<e.length;r+=1){let t=e[r];for(let n of t.activationEvents??[])if("onStartupFinished"===n)if(Date.now()-i>50){this._activateAllStartupFinishedDeferred(e,r);break}else this._activateOneStartupFinished(t,n)}})}_activateAllStartupFinished(){this._mainThreadExtensionsProxy.$setPerformanceMarks((0,iJ.getMarks)()),this._extHostConfiguration.getConfigProvider().then(e=>{let t=e.getConfiguration("extensions.experimental").get("deferredStartupFinishedActivation"),i=this._myRegistry.getAllExtensionDescriptions();if(t)this._activateAllStartupFinishedDeferred(i);else for(let e of i)if(e.activationEvents)for(let t of e.activationEvents)"onStartupFinished"===t&&this._activateOneStartupFinished(e,t)})}_handleEagerExtensions(){let e=this._activateByEvent("*",!0).then(void 0,e=>{this._logService.error(e)});this._register(this._extHostWorkspace.onDidChangeWorkspace(e=>this._handleWorkspaceContainsEagerExtensions(e.added)));let t=this._extHostWorkspace.workspace?this._extHostWorkspace.workspace.folders:[],i=this._handleWorkspaceContainsEagerExtensions(t),r=Promise.all([this._handleRemoteResolverEagerExtensions(),e,i]).then(()=>{});return Promise.race([r,(0,eU.timeout)(1e4)]).then(()=>{this._activateAllStartupFinished()}),r}_handleWorkspaceContainsEagerExtensions(e){return 0===e.length?Promise.resolve(void 0):Promise.all(this._myRegistry.getAllExtensionDescriptions().map(t=>this._handleWorkspaceContainsEagerExtension(e,t))).then(()=>{})}async _handleWorkspaceContainsEagerExtension(e,t){if(this.isActivated(t.identifier))return;let i=!this._initData.remote.isRemote&&!!this._initData.remote.authority,r={logService:this._logService,folders:e.map(e=>e.uri),forceUsingSearch:i||!this._hostUtils.fsExists,exists:e=>this._hostUtils.fsExists(e.fsPath),checkExists:(e,t,i)=>this._mainThreadWorkspaceProxy.$checkExists(e,t,i)},n=await (0,rI.checkActivateWorkspaceContainsExtension)(r,t);if(n)return this._activateById(t.identifier,{startup:!0,extensionId:t.identifier,activationEvent:n.activationEvent}).then(void 0,e=>this._logService.error(e))}async _handleRemoteResolverEagerExtensions(){if(this._initData.remote.authority)return this._activateByEvent(`onResolveRemoteAuthority:${this._initData.remote.authority}`,!1)}async $extensionTestsExecute(){await this._eagerExtensionsActivated.wait();try{return await this._doHandleExtensionTests()}catch(e){throw console.error(e),e}}async _doHandleExtensionTests(){let{extensionDevelopmentLocationURI:e,extensionTestsLocationURI:t}=this._initData.environment;if(!e||!t)throw Error((0,e1.localize)(2690,"Cannot load test runner."));let i=(await this.getExtensionPathIndex()).findSubstr(t),r=this._isESM(i,t.path),n=await (r?this._loadESMModule(null,t,new i0(!1)):this._loadCommonJSModule(null,t,new i0(!1)));if(!n||"function"!=typeof n.run)throw Error((0,e1.localize)(2691,"Path {0} does not point to a valid extension test runner.",t.toString()));return new Promise((e,i)=>{let r=(t,r)=>{t?(ib.isCI&&this._logService.error("Test runner called back with error",t),i(t)):(ib.isCI&&(r?this._logService.info(`Test runner called back with ${r} failures.`):this._logService.info("Test runner called back with successful outcome.")),e(+("number"==typeof r&&r>0)))},o=(0,eN.originalFSPath)(t),s=n.run(o,r);s&&s.then&&s.then(()=>{ib.isCI&&this._logService.info("Test runner finished successfully."),e(0)}).catch(e=>{ib.isCI&&this._logService.error("Test runner finished with error",e),i(e instanceof Error&&e.stack?e.stack:String(e))})})}_startExtensionHost(){if(this._started)throw Error("Extension host is already started!");return this._started=!0,this._readyToStartExtensionHost.wait().then(()=>this._readyToRunExtensions.open()).then(()=>Promise.race([this._activator.waitForActivatingExtensions(),(0,eU.timeout)(1e3)])).then(()=>this._handleEagerExtensions()).then(()=>{this._eagerExtensionsActivated.open(),this._logService.info("Eager extensions activated")})}registerRemoteAuthorityResolver(e,t){return this._resolvers[e]=t,(0,iY.toDisposable)(()=>{delete this._resolvers[e]})}async getRemoteExecServer(e){let{resolver:t}=await this._activateAndGetResolver(e);return t?.resolveExecServer?.(e,{resolveAttempt:0})}async _activateAndGetResolver(e){let t=e.indexOf("+");if(-1===t)throw new eh.RemoteAuthorityResolverError("Not an authority that can be resolved!",rt.RemoteAuthorityResolverErrorCode.InvalidAuthority);let i=e.substr(0,t);return await this._almostReadyToRunExtensions.wait(),await this._activateByEvent(`onResolveRemoteAuthority:${i}`,!1),{authorityPrefix:i,resolver:this._resolvers[i]}}async $resolveAuthority(e,t){let i,r,n,o,s=tj.StopWatch.create(!1),a=()=>`[resolveAuthority(${(0,rt.getRemoteAuthorityPrefix)(e)},${t})][${s.elapsed()}ms] `,l=e=>this._logService.info(`${a()}${e}`),c=e=>this._logService.warn(`${a()}${e}`),d=(e,t)=>this._logService.error(`${a()}${e}`,t),u=e=>{if(e instanceof eh.RemoteAuthorityResolverError)return{type:"error",error:{code:e._code,message:e._message,detail:e._detail}};throw e},h=async e=>{l(`activating resolver for ${e}...`);let{resolver:t,authorityPrefix:i}=await this._activateAndGetResolver(e);if(!t)throw d(`no resolver for ${i}`),new eh.RemoteAuthorityResolverError(`No remote extension installed to resolve ${i}.`,rt.RemoteAuthorityResolverErrorCode.NoResolverFound);return{resolver:t,authorityPrefix:i,remoteAuthority:e}},g=e.split(/@|%40/g).reverse();l(`activating remote resolvers ${g.join(" -> ")}`);try{i=await Promise.all(g.map(h)).catch(async t=>{if(!(t instanceof eh.RemoteAuthorityResolverError)||t._code!==rt.RemoteAuthorityResolverErrorCode.InvalidAuthority)throw t;return c(`resolving nested authorities failed: ${t.message}`),[await h(e)]})}catch(e){return u(e)}let p=new eU.IntervalTimer;for(let[e,{authorityPrefix:o,resolver:s,remoteAuthority:a}]of(p.cancelAndSet(()=>l("waiting..."),1e3),i.entries()))try{if(e===i.length-1)l("invoking final resolve()..."),(0,iJ.mark)(`code/extHost/willResolveAuthority/${o}`),r=await s.resolve(a,{resolveAttempt:t,execServer:n}),(0,iJ.mark)(`code/extHost/didResolveAuthorityOK/${o}`),l("setting tunnel factory..."),this._register(await this._extHostTunnelService.setTunnelFactory(s,eh.ManagedResolvedAuthority.isManagedResolvedAuthority(r)?r:void 0));else{if(l(`invoking resolveExecServer() for ${a}`),(0,iJ.mark)(`code/extHost/willResolveExecServer/${o}`),!(n=await s.resolveExecServer?.(a,{resolveAttempt:t,execServer:n})))throw new eh.RemoteAuthorityResolverError(`Exec server was not available for ${a}`,rt.RemoteAuthorityResolverErrorCode.NoResolverFound);(0,iJ.mark)(`code/extHost/didResolveExecServerOK/${o}`)}}catch(e){return(0,iJ.mark)(`code/extHost/didResolveAuthorityError/${o}`),d("returned an error",e),p.dispose(),u(e)}p.dispose();let m={environmentTunnels:r.environmentTunnels,features:r.tunnelFeatures?{elevation:r.tunnelFeatures.elevation,privacyOptions:r.tunnelFeatures.privacyOptions,protocol:void 0===r.tunnelFeatures.protocol||r.tunnelFeatures.protocol}:void 0},f={extensionHostEnv:r.extensionHostEnv,isTrusted:r.isTrusted,authenticationSession:r.authenticationSessionForInitializingExtensions?{id:r.authenticationSessionForInitializingExtensions.id,providerId:r.authenticationSessionForInitializingExtensions.providerId}:void 0};return l(`returned ${eh.ManagedResolvedAuthority.isManagedResolvedAuthority(r)?"managed authority":`${r.host}:${r.port}`}`),eh.ManagedResolvedAuthority.isManagedResolvedAuthority(r)?(this._extHostManagedSockets.setFactory(t,r.makeConnection),o={authority:e,connectTo:new rt.ManagedRemoteConnection(t),connectionToken:r.connectionToken}):o={authority:e,connectTo:new rt.WebSocketRemoteConnection(r.host,r.port),connectionToken:r.connectionToken},{type:"ok",value:{authority:o,options:f,tunnelInformation:m}}}async $getCanonicalURI(e,t){this._logService.info(`$getCanonicalURI invoked for authority (${(0,rt.getRemoteAuthorityPrefix)(e)})`);let{resolver:i}=await this._activateAndGetResolver(e);if(!i)return null;let r=eD.URI.revive(t);if(void 0===i.getCanonicalURI)return r;let n=await (0,eU.asPromise)(()=>i.getCanonicalURI(r));return n||r}async $startExtensionHost(e){e.toAdd.forEach(e=>e.extensionLocation=eD.URI.revive(e.extensionLocation));let{globalRegistry:t,myExtensions:i}=rz(this._activationEventsReader,this._globalRegistry,this._myRegistry,e),r=await this._createExtensionPathIndex(i);return(await this.getExtensionPathIndex()).setSearchTree(r),this._globalRegistry.set(t.getAllExtensionDescriptions()),this._myRegistry.set(i),ib.isCI&&(this._logService.info(`$startExtensionHost: global extensions: ${rV(this._globalRegistry)}`),this._logService.info(`$startExtensionHost: local extensions: ${rV(this._myRegistry)}`)),this._startExtensionHost()}$activateByEvent(e,t){return t===tp.ActivationKind.Immediate?this._almostReadyToRunExtensions.wait().then(t=>this._activateByEvent(e,!1)):this._readyToRunExtensions.wait().then(t=>this._activateByEvent(e,!1))}async $activate(e,t){return await this._readyToRunExtensions.wait(),!!this._myRegistry.getExtensionDescription(e)&&(await this._activateById(e,t),!0)}async $deltaExtensions(e){e.toAdd.forEach(e=>e.extensionLocation=eD.URI.revive(e.extensionLocation));let{globalRegistry:t,myExtensions:i}=rz(this._activationEventsReader,this._globalRegistry,this._myRegistry,e),r=await this._createExtensionPathIndex(i);return(await this.getExtensionPathIndex()).setSearchTree(r),this._globalRegistry.set(t.getAllExtensionDescriptions()),this._myRegistry.set(i),ib.isCI&&(this._logService.info(`$deltaExtensions: global extensions: ${rV(this._globalRegistry)}`),this._logService.info(`$deltaExtensions: local extensions: ${rV(this._myRegistry)}`)),Promise.resolve(void 0)}async $test_latency(e){return e}async $test_up(e){return e.byteLength}async $test_down(e){let t=eF.VSBuffer.alloc(e),i=Math.random()%256;for(let r=0;r<e;r++)t.writeUInt8(i,r);return t}async $updateRemoteConnectionData(e){this._remoteConnectionData=e,this._onDidChangeRemoteConnectionData.fire()}_isESM(e,t){return t??=e?this._getEntryPoint(e):t,t?.endsWith(".mjs")||e?.type==="module"&&!t?.endsWith(".cjs")}};function rz(e,t,i,r){e.addActivationEvents(r.addActivationEvents);let n=new iX.ExtensionDescriptionRegistry(e,t.getAllExtensionDescriptions());n.deltaExtensions(r.toAdd,r.toRemove);let o=new eI.ExtensionIdentifierSet(i.getAllExtensionDescriptions().map(e=>e.identifier));for(let e of r.myToRemove)o.delete(e);for(let e of r.myToAdd)o.add(e);let s=rQ(n,o);return{globalRegistry:n,myExtensions:s}}function rK(e,t){return{id:e.identifier.value,name:e.name,extensionVersion:e.version,publisherDisplayName:e.publisher,activationEvents:e.activationEvents?e.activationEvents.join(","):null,isBuiltin:e.isBuiltin,reason:t.activationEvent,reasonId:t.extensionId.value}}function rV(e){return e.getAllExtensionDescriptions().map(e=>e.identifier.value).join(",")}rj=K=(0,ek.__decorate)([(0,ek.__param)(0,eR.IInstantiationService),(0,ek.__param)(1,rq),(0,ek.__param)(2,eP.IExtHostRpcService),(0,ek.__param)(3,td),(0,ek.__param)(4,tD),(0,ek.__param)(5,eM.ILogService),(0,ek.__param)(6,ej.IExtHostInitDataService),(0,ek.__param)(7,ri),(0,ek.__param)(8,ro.IExtHostTunnelService),(0,ek.__param)(9,iw),(0,ek.__param)(10,rO),(0,ek.__param)(11,r$),(0,ek.__param)(12,rT)],rj);let rB=(0,eR.createDecorator)("IExtHostExtensionService");class rG{#o;#s;#a;constructor(e,t,i,r,n){this.#o=e,this.#s=t,this.#a=i.identifier,this.id=i.identifier.value,this.isBuiltin=i.isBuiltin||i.isUserBuiltin,this.extensionUri=i.extensionLocation,this.extensionPath=(0,tg.normalize)((0,eN.originalFSPath)(i.extensionLocation)),this.packageJSON=i,this.extensionKind=r,this.isFromDifferentExtensionHost=n}get isActive(){return this.#o.isActivated(this.#a)}get exports(){if("none"!==this.packageJSON.api&&!this.isFromDifferentExtensionHost)return this.#o.getExtensionExports(this.#a)}async activate(){if(this.isFromDifferentExtensionHost)throw Error("Cannot activate foreign extension");return await this.#o.activateByIdWithErrors(this.#a,{startup:!1,extensionId:this.#s,activationEvent:"api"}),this.exports}}function rQ(e,t){return e.getAllExtensionDescriptions().filter(e=>t.has(e.identifier))}class rJ{constructor(e){this._searchTree=e}setSearchTree(e){this._searchTree=e}findSubstr(e){return this._searchTree.findSubstr(e)}forEach(e){return this._searchTree.forEach(e)}}class rY{constructor(e){this._map=new eI.ExtensionIdentifierMap,this.addActivationEvents(e)}readActivationEvents(e){return this._map.get(e.identifier)??[]}addActivationEvents(e){for(let t of Object.keys(e))this._map.set(t,e[t])}}var rX=ef,rZ=e.i(537080),r0=eH;e.i(896783),(u=V||(V={})).ViewletId="workbench.view.extension.test",u.ExplorerViewId="workbench.view.testing",u.OutputPeekContributionId="editor.contrib.testingOutputPeek",u.DecorationsContributionId="editor.contrib.testingDecorations",u.CoverageDecorationsContributionId="editor.contrib.coverageDecorations",u.CoverageViewId="workbench.view.testCoverage",u.ResultsPanelId="workbench.panel.testResults",u.ResultsViewId="workbench.panel.testResults.view",u.MessageLanguageId="vscodeInternalTestMessage",(h=B||(B={})).List="list",h.Tree="true",(g=G||(G={})).ByLocation="location",g.ByStatus="status",g.ByDuration="duration",tP.TestResultState.Errored,(0,e1.localize)(12709,"Errored"),tP.TestResultState.Failed,(0,e1.localize)(12710,"Failed"),tP.TestResultState.Passed,(0,e1.localize)(12711,"Passed"),tP.TestResultState.Queued,(0,e1.localize)(12712,"Queued"),tP.TestResultState.Running,(0,e1.localize)(12713,"Running"),tP.TestResultState.Skipped,(0,e1.localize)(12714,"Skipped"),tP.TestResultState.Unset,(0,e1.localize)(12715,"Not yet run"),tP.TestRunProfileBitset.Debug,(0,e1.localize)(12717,"Debug"),tP.TestRunProfileBitset.Run,(0,e1.localize)(12718,"Run"),tP.TestRunProfileBitset.Coverage,(0,e1.localize)(12719,"Coverage"),(p=Q||(Q={})).CancelTestRefreshAction="testing.cancelTestRefresh",p.CancelTestRunAction="testing.cancelRun",p.ClearTestResultsAction="testing.clearTestResults",p.CollapseAllAction="testing.collapseAll",p.ConfigureTestProfilesAction="testing.configureProfile",p.ContinousRunUsingForTest="testing.continuousRunUsingForTest",p.CoverageAtCursor="testing.coverageAtCursor",p.CoverageByUri="testing.coverage.uri",p.CoverageClear="testing.coverage.close",p.CoverageCurrentFile="testing.coverageCurrentFile",p.CoverageFilterToTest="testing.coverageFilterToTest",p.CoverageFilterToTestInEditor="testing.coverageFilterToTestInEditor",p.CoverageGoToNextMissedLine="testing.coverage.goToNextMissedLine",p.CoverageGoToPreviousMissedLine="testing.coverage.goToPreviousMissedLine",p.CoverageLastRun="testing.coverageLastRun",p.CoverageSelectedAction="testing.coverageSelected",p.CoverageToggleInExplorer="testing.toggleCoverageInExplorer",p.CoverageToggleToolbar="testing.coverageToggleToolbar",p.CoverageViewChangeSorting="testing.coverageViewChangeSorting",p.CoverageViewCollapseAll="testing.coverageViewCollapseAll",p.DebugAction="testing.debug",p.DebugAllAction="testing.debugAll",p.DebugAtCursor="testing.debugAtCursor",p.DebugByUri="testing.debug.uri",p.DebugCurrentFile="testing.debugCurrentFile",p.DebugFailedTests="testing.debugFailTests",p.DebugFailedFromLastRun="testing.debugFailedFromLastRun",p.DebugLastRun="testing.debugLastRun",p.DebugSelectedAction="testing.debugSelected",p.FilterAction="workbench.actions.treeView.testExplorer.filter",p.GetExplorerSelection="_testing.getExplorerSelection",p.GetSelectedProfiles="testing.getSelectedProfiles",p.GoToTest="testing.editFocusedTest",p.GoToRelatedTest="testing.goToRelatedTest",p.PeekRelatedTest="testing.peekRelatedTest",p.GoToRelatedCode="testing.goToRelatedCode",p.PeekRelatedCode="testing.peekRelatedCode",p.HideTestAction="testing.hideTest",p.OpenCoverage="testing.openCoverage",p.OpenOutputPeek="testing.openOutputPeek",p.RefreshTestsAction="testing.refreshTests",p.ReRunFailedTests="testing.reRunFailTests",p.ReRunFailedFromLastRun="testing.reRunFailedFromLastRun",p.ReRunLastRun="testing.reRunLastRun",p.RunAction="testing.run",p.RunAllAction="testing.runAll",p.RunAllWithCoverageAction="testing.coverageAll",p.RunAtCursor="testing.runAtCursor",p.RunByUri="testing.run.uri",p.RunCurrentFile="testing.runCurrentFile",p.RunSelectedAction="testing.runSelected",p.RunUsingProfileAction="testing.runUsing",p.RunWithCoverageAction="testing.coverage",p.SearchForTestExtension="testing.searchForTestExtension",p.SelectDefaultTestProfiles="testing.selectDefaultTestProfiles",p.ShowMostRecentOutputAction="testing.showMostRecentOutput",p.StartContinousRun="testing.startContinuousRun",p.StartContinousRunFromExtension="testing.startContinuousRunFromExtension",p.StopContinousRunFromExtension="testing.stopContinuousRunFromExtension",p.StopContinousRun="testing.stopContinuousRun",p.TestingSortByDurationAction="testing.sortByDuration",p.TestingSortByLocationAction="testing.sortByLocation",p.TestingSortByStatusAction="testing.sortByStatus",p.TestingViewAsListAction="testing.viewAsList",p.TestingViewAsTreeAction="testing.viewAsTree",p.ToggleContinousRunForTest="testing.toggleContinuousRunForTest",p.ToggleResultsViewLayoutAction="testing.toggleResultsViewLayout",p.ToggleInlineTestOutput="testing.toggleInlineTestOutput",p.UnhideAllTestsAction="testing.unhideAllTests",p.UnhideTestAction="testing.unhideTest";var r1=tP,r2=eh;let r6=0,r3=new WeakMap,r4=(0,eR.createDecorator)("IExtHostTesting"),r5=class extends r0.Disposable{constructor(e,t,i,r){super(),this.logService=t,this.commands=i,this.editors=r,this.resultsChangedEmitter=this._register(new ey.Emitter),this.controllers=new Map,this.defaultProfilesChangedEmitter=this._register(new ey.Emitter),this.followupProviders=new Set,this.testFollowups=new Map,this.onResultsChanged=this.resultsChangedEmitter.event,this.results=[],this.proxy=e.getProxy(ev.MainContext.MainThreadTesting),this.observer=new nr(this.proxy),this.runTracker=new r7(this.proxy,t),i.registerArgumentProcessor({processArgument:e=>{switch(e?.$mid){case iS.MarshalledId.TestItemContext:{let t=e.tests[e.tests.length-1].item.extId,i=this.controllers.get(tT.TestId.root(t));return i?.collection.tree.get(t)?.actual??tN(e)}case iS.MarshalledId.TestMessageMenuArgs:{let{test:t,message:i}=e,r=t.item.extId;return{test:this.controllers.get(tT.TestId.root(r))?.collection.tree.get(r)?.actual??tN({tests:[t]}),message:e6.TestMessage.to(i)}}default:return e}}}),i.registerCommand(!1,"testing.getExplorerSelection",async()=>{let e=await i.executeCommand(Q.GetExplorerSelection),t=e=>{let t=this.controllers.get(tT.TestId.root(e));if(t)return tT.TestId.isRoot(e)?t.controller:t.collection.tree.get(e)?.actual};return{include:e?.include.map(t).filter(eK.isDefined)||[],exclude:e?.exclude.map(t).filter(eK.isDefined)||[]}})}createTestController(e,t,i,r){if(this.controllers.has(t))throw Error(`Attempt to insert a duplicate controller with ID "${t}"`);let n=new r0.DisposableStore,o=n.add(new tU(t,i,this.editors));o.root.label=i;let s=new Map,a=new Set,l=this.proxy,c=()=>{let e=0;r&&(e|=r1.TestControllerCapability.Refresh);let t=u.relatedCodeProvider;return t&&(t?.provideRelatedTests&&(e|=r1.TestControllerCapability.TestRelatedToCode),t?.provideRelatedCode&&(e|=r1.TestControllerCapability.CodeRelatedToTest)),e},d={items:o.root.children,get label(){return i},set label(value){i=value,o.root.label=value,l.$updateController(t,{label:i})},get refreshHandler(){return r},set refreshHandler(value){r=value,l.$updateController(t,{capabilities:c()})},get id(){return t},get relatedCodeProvider(){return u.relatedCodeProvider},set relatedCodeProvider(value){(0,tp.checkProposedApiEnabled)(e,"testRelatedCode"),u.relatedCodeProvider=value,l.$updateController(t,{capabilities:c()})},createRunProfile:(e,i,r,n,o,l)=>{let c=(0,rh.hash)(e);for(;s.has(c);)c++;return new no(this.proxy,s,a,this.defaultProfilesChangedEmitter.event,t,c,e,i,r,n,o,l)},createTestItem:(e,i,r)=>new t$(t,e,i,r),createTestRun:(i,r,n=!0)=>this.runTracker.createTestRun(e,t,o,i,r,n),invalidateTestResults:e=>{if(void 0===e)this.proxy.$markTestRetired(void 0);else{let i=e instanceof Array?e:[e];this.proxy.$markTestRetired(i.map(e=>tT.TestId.fromExtHostTestItem(e,t).toString()))}},set resolveHandler(fn){o.resolveHandler=fn},get resolveHandler(){return o.resolveHandler},dispose:()=>{n.dispose()}},u={controller:d,collection:o,profiles:s,extension:e,activeProfiles:a};return l.$registerTestController(t,i,c()),n.add((0,r0.toDisposable)(()=>l.$unregisterTestController(t))),this.controllers.set(t,u),n.add((0,r0.toDisposable)(()=>this.controllers.delete(t))),n.add(o.onDidGenerateDiff(e=>l.$publishDiff(t,e.map(r1.TestsDiffOp.serialize)))),d}createTestObserver(){return this.observer.checkout()}async runTests(e,t=rX.CancellationToken.None){let i=r9(e);if(!i)throw Error("The request passed to `vscode.test.runTests` must include a profile");let r=this.controllers.get(i.controllerId);if(!r)throw Error("Controller not found");await this.proxy.$runTests({preserveFocus:e.preserveFocus??!0,group:e6.TestRunProfileKind.from(i.kind),targets:[{testIds:e.include?.map(e=>tT.TestId.fromExtHostTestItem(e,r.collection.root.id).toString())??[r.collection.root.id],profileId:i.profileId,controllerId:i.controllerId}],exclude:e.exclude?.map(e=>e.id)},t)}registerTestFollowupProvider(e){return this.followupProviders.add(e),{dispose:()=>{this.followupProviders.delete(e)}}}async $getTestsRelatedToCode(e,t,i){let r=this.editors.getDocument(eD.URI.revive(e));if(!r)return[];let n=e6.Position.to(t),o=[];return await Promise.all([...this.controllers.values()].map(async e=>{let t;try{t=await e.relatedCodeProvider?.provideRelatedTests?.(r.document,n,i)}catch(t){i.isCancellationRequested||this.logService.warn(`Error thrown while providing related tests for ${e.controller.label}`,t)}if(t){for(let i of t)o.push(tT.TestId.fromExtHostTestItem(i,e.controller.id).toString());e.collection.flushDiff()}})),o}async $getCodeRelatedToTest(e,t){let i=this.controllers.get(tT.TestId.root(e));if(!i)return[];let r=i.collection.tree.get(e);if(!r)return[];let n=await i.relatedCodeProvider?.provideRelatedCode?.(r.actual,t);return n?.map(e6.location.from)??[]}$syncTests(){for(let{collection:e}of this.controllers.values())e.flushDiff();return Promise.resolve()}async $getCoverageDetails(e,t,i){let r=await this.runTracker.getCoverageDetails(e,t,i);return r?.map(e6.TestCoverage.fromDetails)}async $disposeRun(e){this.runTracker.disposeTestRun(e)}$configureRunProfile(e,t){this.controllers.get(e)?.profiles.get(t)?.configureHandler?.()}$setDefaultRunProfiles(e){let t=new Map;for(let[i,r]of Object.entries(e)){let e=this.controllers.get(i);if(!e)continue;let n=new Map,o=r.filter(t=>!e.activeProfiles.has(t)),s=[...e.activeProfiles].filter(e=>!r.includes(e));for(let t of o)n.set(t,!0),e.activeProfiles.add(t);for(let t of s)n.set(t,!1),e.activeProfiles.delete(t);n.size&&t.set(i,n)}this.defaultProfilesChangedEmitter.fire(t)}async $refreshTests(e,t){await this.controllers.get(e)?.controller.refreshHandler?.(t)}$publishTestResults(e){this.results=Object.freeze(e.map(e=>{let t=e6.TestResults.to(e),i=e.tasks.findIndex(e=>e.hasCoverage);return -1!==i&&(t.getDetailedCoverage=(t,r=rX.CancellationToken.None)=>this.proxy.$getCoverageDetails(e.id,i,t,r).then(e=>e.map(e6.TestCoverage.to))),r3.set(t,e.id),t}).concat(this.results).sort((e,t)=>t.completedAt-e.completedAt).slice(0,32)),this.resultsChangedEmitter.fire()}async $expandTest(e,t){let i=this.controllers.get(tT.TestId.fromString(e).controllerId)?.collection;i&&(await i.expand(e,t<0?1/0:t),i.flushDiff())}$acceptDiff(e){this.observer.applyDiff(e.map(e=>r1.TestsDiffOp.deserialize({asCanonicalUri:e=>e},e)))}async $runControllerTests(e,t){return Promise.all(e.map(e=>this.runControllerTestRequest(e,!1,t)))}async $startContinuousRun(e,t){let i=new rX.CancellationTokenSource(t),r=await Promise.all(e.map(e=>this.runControllerTestRequest(e,!0,i.token)));return t.isCancellationRequested||r.some(e=>e.error)||await new Promise(e=>t.onCancellationRequested(e)),i.dispose(!0),r}async $provideTestFollowups(e,t){let i=this.results.find(t=>r3.get(t)===e.resultId),r=i&&function(e,t){for(let i=0;i<e.path.length;i++){let r=t.find(t=>t.id===e.path[i]);if(!r)break;if(i===e.path.length-1)return r;t=r.children}}(tT.TestId.fromString(e.extId),i?.results);if(!r)return[];let n=[];return(await Promise.all([...this.followupProviders].map(async o=>{try{let s=await o.provideFollowup(i,r,e.taskIndex,e.messageIndex,t);s&&(n=n.concat(s))}catch(e){this.logService.error("Error thrown while providing followup for test message",e)}})),t.isCancellationRequested)?[]:n.map(e=>{let t=r6++;return this.testFollowups.set(t,e),{title:e.title,id:t}})}$disposeTestFollowups(e){for(let t of e)this.testFollowups.delete(t)}$executeTestFollowup(e){let t=this.testFollowups.get(e);return t?this.commands.executeCommand(t.command,...t.arguments||[]):Promise.resolve()}$cancelExtensionTestRun(e,t){void 0===e?this.runTracker.cancelAllRuns():this.runTracker.cancelRunById(e,t)}getMetadataForRun(e){for(let t of this.runTracker.trackers){let i=t.getTaskIdForRun(e);if(i)return{taskId:i,runId:t.id}}}async runControllerTestRequest(e,t,i){let r=this.controllers.get(e.controllerId);if(!r)return{};let{collection:n,profiles:o,extension:s}=r,a=o.get(e.profileId);if(!a)return{};let l=e.testIds.map(e=>n.tree.get(e)).filter(eK.isDefined),c=e.excludeExtIds.map(e=>r.collection.tree.get(e)).filter(eK.isDefined).filter(e=>l.some(t=>t.fullId.compare(e.fullId)===tT.TestPosition.IsChild));if(!l.length)return{};let d=new r2.TestRunRequest(l.some(e=>e.actual instanceof tH)?void 0:l.map(e=>e.actual),c.map(e=>e.actual),a,t),u=(0,r1.isStartControllerTests)(e)&&this.runTracker.prepareForMainThreadTestRun(s,d,ne.fromInternal(e,r.collection),a,i);try{return await a.runHandler(d,i),{}}catch(e){return{error:String(e)}}finally{u&&u.hasRunningTasks&&!i.isCancellationRequested&&await ey.Event.toPromise(u.onEnd)}}};r5=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,eM.ILogService),(0,ek.__param)(2,t2),(0,ek.__param)(3,ip)],r5),(m=J||(J={}))[m.Running=0]="Running",m[m.Cancelling=1]="Cancelling",m[m.Ended=2]="Ended";class r8 extends r0.Disposable{get hasRunningTasks(){return this.running>0}get id(){return this.dto.id}constructor(e,t,i,r,n,o){super(),this.dto=e,this.proxy=t,this.logService=i,this.profile=r,this.extension=n,this.state=J.Running,this.running=0,this.tasks=new Map,this.sharedTestIds=new Set,this.endEmitter=this._register(new ey.Emitter),this.publishedCoverage=new Map,this.onEnd=this.endEmitter.event,this.cts=this._register(new rX.CancellationTokenSource(o));const s=this._register(new eU.RunOnceScheduler(()=>this.forciblyEndTasks(),1e4));this._register(this.cts.token.onCancellationRequested(()=>s.schedule()));const a=new ey.Emitter;this.onDidDispose=a.event,this._register((0,r0.toDisposable)(()=>{a.fire(),a.dispose()}))}getTaskIdForRun(e){for(let[t,{run:i}]of this.tasks)if(i===e)return t}cancel(e){e?this.tasks.get(e)?.cts.cancel():this.state===J.Running?(this.cts.cancel(),this.state=J.Cancelling):this.state===J.Cancelling&&this.forciblyEndTasks()}async getCoverageDetails(e,t,i){let r,[,n]=tT.TestId.fromString(e).path,o=this.publishedCoverage.get(e);if(!o)return[];let{report:s,extIds:a}=o,l=this.tasks.get(n);if(!l)throw Error("unreachable: run task was not found");if(t&&s instanceof r2.FileCoverage){let e=a.indexOf(t);if(-1===e)return[];r=s.includesTests[e]}let c=r?this.profile?.loadDetailedCoverageForTest?.(l.run,s,r,i):this.profile?.loadDetailedCoverage?.(l.run,s,i);return await c??[]}createRun(e){let t=this.dto.id,i=this.dto.controllerId,r=(0,tJ.generateUuid)(),n=e=>(t,...i)=>{s?this.logService.warn(`Setting the state of test "${t.id}" is a no-op after the run ends.`):(this.ensureTestIsKnown(t),e(t,...i))},o=(e,n)=>{let o=n instanceof Array?n.map(e6.TestMessage.from):[e6.TestMessage.from(n)];if(e.uri&&e.range){let t={range:e6.Range.from(e.range),uri:e.uri};for(let e of o)e.location=e.location||t}this.proxy.$appendTestMessagesInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),o)},s=!1,a=this._register(new rX.CancellationTokenSource(this.cts.token)),l={isPersisted:this.dto.isPersisted,token:a.token,name:e,onDidDispose:this.onDidDispose,addCoverage:e=>{if(s)return;let n=e instanceof r2.FileCoverage?e.includesTests:[];if(n.length)for(let e of n)this.ensureTestIsKnown(e);let o=e.uri.toString(),a=new tT.TestId([t,r,o]).toString();this.publishedCoverage.set(a,{report:e,extIds:n.map(e=>tT.TestId.fromExtHostTestItem(e,i).toString())}),this.proxy.$appendCoverage(t,r,e6.TestCoverage.fromFile(i,a,e))},enqueued:n(e=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Queued)}),skipped:n(e=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Skipped)}),started:n(e=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Running)}),errored:n((e,n,s)=>{o(e,n),this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Errored,s)}),failed:n((e,n,s)=>{o(e,n),this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Failed,s)}),passed:n((e,i)=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,this.dto.controllerId).toString(),r1.TestResultState.Passed,i)}),appendOutput:(e,n,o)=>{s||(o&&this.ensureTestIsKnown(o),this.proxy.$appendOutputToRun(t,r,eF.VSBuffer.fromString(e),n&&e6.location.from(n),o&&tT.TestId.fromExtHostTestItem(o,i).toString()))},end:()=>{!s&&(s=!0,this.proxy.$finishedTestRunTask(t,r),--this.running||this.markEnded())}};return this.running++,this.tasks.set(r,{run:l,cts:a}),this.proxy.$startedTestRunTask(t,{id:r,ctrlId:this.dto.controllerId,name:e||this.extension.displayName||this.extension.identifier.value,running:!0}),l}forciblyEndTasks(){for(let{run:e}of this.tasks.values())e.end()}markEnded(){this.state!==J.Ended&&(this.state=J.Ended,this.endEmitter.fire())}ensureTestIsKnown(e){if(!(e instanceof t$))throw new tR.InvalidTestItemError(e.id);if(this.sharedTestIds.has(tT.TestId.fromExtHostTestItem(e,this.dto.controllerId).toString()))return;let t=[],i=this.dto.colllection.root;for(;;){let r=e6.TestItem.from(e);if(t.unshift(r),this.sharedTestIds.has(r.extId)||(this.sharedTestIds.add(r.extId),e===i))break;e=e.parent||i}this.proxy.$addTestsToRun(this.dto.controllerId,this.dto.id,t)}dispose(){this.markEnded(),super.dispose()}}class r7{get trackers(){return this.tracked.values()}constructor(e,t){this.proxy=e,this.logService=t,this.tracked=new Map,this.trackedById=new Map}getCoverageDetails(e,t,i){let r=tT.TestId.root(e);return this.trackedById.get(r)?.getCoverageDetails(e,t,i)||[]}disposeTestRun(e){for(let[t,{id:i}]of(this.trackedById.get(e)?.dispose(),this.trackedById.delete(e),this.tracked))i===e&&this.tracked.delete(t)}prepareForMainThreadTestRun(e,t,i,r,n){return this.getTracker(t,i,r,e,n)}cancelRunById(e,t){this.trackedById.get(e)?.cancel(t)}cancelAllRuns(){for(let e of this.tracked.values())e.cancel()}createTestRun(e,t,i,r,n,o){let s=this.tracked.get(r);if(s)return s.createRun(n);let a=ne.fromPublic(t,i,r,o),l=r9(r);this.proxy.$startedExtensionTestRun({controllerId:t,continuous:!!r.continuous,profile:l&&{group:e6.TestRunProfileKind.from(l.kind),id:l.profileId},exclude:r.exclude?.map(e=>tT.TestId.fromExtHostTestItem(e,i.root.id).toString())??[],id:a.id,include:r.include?.map(e=>tT.TestId.fromExtHostTestItem(e,i.root.id).toString())??[i.root.id],preserveFocus:r.preserveFocus??!0,persist:o});let c=this.getTracker(r,a,r.profile,e);return ey.Event.once(c.onEnd)(()=>{this.proxy.$finishedExtensionTestRun(a.id)}),c.createRun(n)}getTracker(e,t,i,r,n){let o=new r8(t,this.proxy,this.logService,i,r,n);return this.tracked.set(e,o),this.trackedById.set(o.id,o),o}}let r9=e=>{if(e.profile){if(!(e.profile instanceof no))throw Error("TestRunRequest.profile is not an instance created from TestController.createRunProfile");return e.profile}};class ne{static fromPublic(e,t,i,r){return new ne(e,(0,tJ.generateUuid)(),r,t)}static fromInternal(e,t){return new ne(e.controllerId,e.runId,!0,t)}constructor(e,t,i,r){this.controllerId=e,this.id=t,this.isPersisted=i,this.colllection=r}}class nt{get isEmpty(){return 0===this.added.size&&0===this.removed.size&&0===this.updated.size}constructor(e){this.emitter=e,this.added=new Set,this.updated=new Set,this.removed=new Set,this.alreadyRemoved=new Set}add(e){this.added.add(e)}update(e){Object.assign(e.revived,e6.TestItem.toPlain(e.item)),this.added.has(e)||this.updated.add(e)}remove(e){if(this.added.delete(e))return;this.updated.delete(e);let t=tT.TestId.parentId(e.item.extId);t&&this.alreadyRemoved.has(t.toString())?this.alreadyRemoved.add(e.item.extId):this.removed.add(e)}getChangeEvent(){let{added:e,updated:t,removed:i}=this;return{get added(){return[...e].map(e=>e.revived)},get updated(){return[...t].map(e=>e.revived)},get removed(){return[...i].map(e=>e.revived)}}}complete(){this.isEmpty||this.emitter.fire(this.getChangeEvent())}}class ni extends r1.AbstractIncrementalTestCollection{constructor(){super(...arguments),this.changeEmitter=new ey.Emitter,this.onDidChangeTests=this.changeEmitter.event}get rootTests(){return this.roots}getMirroredTestDataById(e){return this.items.get(e)}getMirroredTestDataByReference(e){return this.items.get(e.id)}createItem(e,t){return{...e,revived:e6.TestItem.toPlain(e.item),depth:t?t.depth+1:0,children:new Set}}createChangeCollector(){return new nt(this.changeEmitter)}}class nr{constructor(e){this.proxy=e}checkout(){this.current||(this.current=this.createObserverData());let e=this.current;return e.observers++,{onDidChangeTest:e.tests.onDidChangeTests,get tests(){return[...e.tests.rootTests].map(e=>e.revived)},dispose:(0,rZ.createSingleCallFunction)(()=>{0==--e.observers&&(this.proxy.$unsubscribeFromDiffs(),this.current=void 0)})}}getMirroredTestDataByReference(e){return this.current?.tests.getMirroredTestDataByReference(e)}applyDiff(e){this.current?.tests.apply(e)}createObserverData(){let e=new ni({asCanonicalUri:e=>e});return this.proxy.$subscribeToDiffs(),{observers:0,tests:e}}}let nn=(e,t,i,r)=>{i?Object.assign(i,r):t.$updateTestRunConfig(e.controllerId,e.profileId,r)};class no extends r2.TestRunProfileBase{#e;#l;#c;#d;#u;get label(){return this._label}set label(e){e!==this._label&&(this._label=e,nn(this,this.#e,this.#d,{label:e}))}get supportsContinuousRun(){return this._supportsContinuousRun}set supportsContinuousRun(e){e!==this._supportsContinuousRun&&(this._supportsContinuousRun=e,nn(this,this.#e,this.#d,{supportsContinuousRun:e}))}get isDefault(){return this.#l.has(this.profileId)}set isDefault(e){e!==this.isDefault&&(e?this.#l.add(this.profileId):this.#l.delete(this.profileId),nn(this,this.#e,this.#d,{isDefault:e}))}get tag(){return this._tag}set tag(e){e?.id!==this._tag?.id&&(this._tag=e,nn(this,this.#e,this.#d,{tag:e?e6.TestTag.namespace(this.controllerId,e.id):null}))}get configureHandler(){return this._configureHandler}set configureHandler(e){e!==this._configureHandler&&(this._configureHandler=e,nn(this,this.#e,this.#d,{hasConfigurationHandler:!!e}))}get onDidChangeDefault(){return ey.Event.chain(this.#c,e=>e.map(e=>e.get(this.controllerId)?.get(this.profileId)).filter(eK.isDefined))}constructor(e,t,i,r,n,o,s,a,l,c=!1,d,u=!1){super(n,o,a),this._label=s,this.runHandler=l,this._tag=d,this._supportsContinuousRun=u,this.#e=e,this.#u=t,this.#l=i,this.#c=r,t.set(o,this);const h=e6.TestRunProfileKind.from(a);c&&i.add(o),this.#d={profileId:o,controllerId:n,tag:d?e6.TestTag.namespace(this.controllerId,d.id):null,label:s,group:h,isDefault:c,hasConfigurationHandler:!1,supportsContinuousRun:u},queueMicrotask(()=>{this.#d&&(this.#e.$publishTestRunProfile(this.#d),this.#d=void 0)})}dispose(){this.#u?.delete(this.profileId)&&(this.#u=void 0,this.#e.$removeTestProfile(this.controllerId,this.profileId)),this.#d=void 0}}var ns=eH,na=e.i(595996),nl=e.i(82648),nc=eg;(f=Y||(Y={})).Unknown="unknown",f.Env="env",f.Config="config",f.Command="command",f.Input="input",f.ExtensionInstallFolder="extensionInstallFolder",f.WorkspaceFolder="workspaceFolder",f.Cwd="cwd",f.WorkspaceFolderBasename="workspaceFolderBasename",f.UserHome="userHome",f.LineNumber="lineNumber",f.ColumnNumber="columnNumber",f.SelectedText="selectedText",f.File="file",f.FileWorkspaceFolder="fileWorkspaceFolder",f.FileWorkspaceFolderBasename="fileWorkspaceFolderBasename",f.RelativeFile="relativeFile",f.RelativeFileDirname="relativeFileDirname",f.FileDirname="fileDirname",f.FileExtname="fileExtname",f.FileBasename="fileBasename",f.FileBasenameNoExtension="fileBasenameNoExtension",f.FileDirnameBasename="fileDirnameBasename",f.ExecPath="execPath",f.ExecInstallFolder="execInstallFolder",f.PathSeparator="pathSeparator",f.PathSeparatorAlias="/";let nd=Object.values(Y).filter(e=>"string"==typeof e);class nu extends nc.ErrorNoTelemetry{constructor(e,t){super(t),this.variable=e}}e.s(["VariableError",0,nu,"VariableKind",0,Y,"allVariableKinds",0,nd],108462);var nh=e.i(989115);class ng{constructor(e,t,i,r){this._contributedVariables=new Map,this.resolvableVariables=new Set(nd),this._context=e,this._labelService=t,this._userHomePromise=i,r&&(this._envVariablesPromise=r.then(e=>this.prepareEnv(e)))}prepareEnv(e){if(ib.isWindows){let t=Object.create(null);return Object.keys(e).forEach(i=>{t[i.toLowerCase()]=e[i]}),t}return e}async resolveWithEnvironment(e,t,i){let r=nh.ConfigurationResolverExpression.parse(i);for(let i of r.unresolved()){let n=await this.evaluateSingleVariable(i,t?.uri,e);void 0!==n&&r.resolve(i,String(n))}return r.toObject()}async resolveAsync(e,t){let i=nh.ConfigurationResolverExpression.parse(t);for(let t of i.unresolved()){let r=await this.evaluateSingleVariable(t,e?.uri);void 0!==r&&i.resolve(t,String(r))}return i.toObject()}resolveWithInteractionReplace(e,t){throw Error("resolveWithInteractionReplace not implemented.")}resolveWithInteraction(e,t){throw Error("resolveWithInteraction not implemented.")}contributeVariable(e,t){if(this._contributedVariables.has(e))throw Error("Variable "+e+" is contributed twice.");this.resolvableVariables.add(e),this._contributedVariables.set(e,t)}fsPath(e){return this._labelService?this._labelService.getUriLabel(e,{noPrefix:!0}):e.fsPath}async evaluateSingleVariable(e,t,i,r){let n={env:void 0!==i?this.prepareEnv(i):await this._envVariablesPromise,userHome:void 0!==i?void 0:await this._userHomePromise},{name:o,arg:s}=e,a=t=>{let i=this._context.getFilePath();if(i)return(0,nl.normalizeDriveLetter)(i);throw new nu(t,(0,e1.localize)(13823,"Variable {0} can not be resolved. Please open an editor.",e.id))},l=t=>{let i=a(t);if(this._context.getWorkspaceFolderPathForFile){let e=this._context.getWorkspaceFolderPathForFile();if(e)return(0,nl.normalizeDriveLetter)(e)}throw new nu(t,(0,e1.localize)(13824,"Variable {0}: can not find workspace folder of '{1}'.",e.id,(0,tg.basename)(i)))},c=e=>{if(s){let t=this._context.getFolderUri(s);if(t)return t;throw new nu(e,(0,e1.localize)(13825,"Variable {0} can not be resolved. No such folder '{1}'.",e,s))}if(t)return t;if(this._context.getWorkspaceFolderCount()>1)throw new nu(e,(0,e1.localize)(13826,"Variable {0} can not be resolved in a multi folder workspace. Scope this variable using ':' and a workspace folder name.",e));throw new nu(e,(0,e1.localize)(13827,"Variable {0} can not be resolved. Please open a folder.",e))};switch(o){case"env":if(s){if(n.env){let e=n.env[ib.isWindows?s.toLowerCase():s];if((0,eK.isString)(e))return e}return""}throw new nu(Y.Env,(0,e1.localize)(13828,"Variable {0} can not be resolved because no environment variable name is given.",e.id));case"config":if(s){let i=this._context.getConfigurationValue(t,s);if((0,eK.isUndefinedOrNull)(i))throw new nu(Y.Config,(0,e1.localize)(13829,"Variable {0} can not be resolved because setting '{1}' not found.",e.id,s));if((0,eK.isObject)(i))throw new nu(Y.Config,(0,e1.localize)(13830,"Variable {0} can not be resolved because '{1}' is a structured value.",e.id,s));return i}throw new nu(Y.Config,(0,e1.localize)(13831,"Variable {0} can not be resolved because no settings name is given.",e.id));case"command":return this.resolveFromMap(Y.Command,e.id,s,r,"command");case"input":return this.resolveFromMap(Y.Input,e.id,s,r,"input");case"extensionInstallFolder":if(s){let t=await this._context.getExtension(s);if(!t)throw new nu(Y.ExtensionInstallFolder,(0,e1.localize)(13832,"Variable {0} can not be resolved because the extension {1} is not installed.",e.id,s));return this.fsPath(t.extensionLocation)}throw new nu(Y.ExtensionInstallFolder,(0,e1.localize)(13833,"Variable {0} can not be resolved because no extension name is given.",e.id));default:switch(o){case"workspaceRoot":case"workspaceFolder":{let e=c(Y.WorkspaceFolder);return e?(0,nl.normalizeDriveLetter)(this.fsPath(e)):void 0}case"cwd":{if(!t&&!s)return(0,na.cwd)();let e=c(Y.Cwd);return e?(0,nl.normalizeDriveLetter)(this.fsPath(e)):void 0}case"workspaceRootFolderName":case"workspaceFolderBasename":{let e=c(Y.WorkspaceFolderBasename);return e?(0,nl.normalizeDriveLetter)((0,tg.basename)(this.fsPath(e))):void 0}case"userHome":if(n.userHome)return n.userHome;throw new nu(Y.UserHome,(0,e1.localize)(13834,"Variable {0} can not be resolved. UserHome path is not defined",e.id));case"lineNumber":{let t=this._context.getLineNumber();if(t)return t;throw new nu(Y.LineNumber,(0,e1.localize)(13835,"Variable {0} can not be resolved. Make sure to have a line selected in the active editor.",e.id))}case"columnNumber":{let t=this._context.getColumnNumber();if(t)return t;throw Error((0,e1.localize)(13836,"Variable {0} can not be resolved. Make sure to have a column selected in the active editor.",e.id))}case"selectedText":{let t=this._context.getSelectedText();if(t)return t;throw new nu(Y.SelectedText,(0,e1.localize)(13837,"Variable {0} can not be resolved. Make sure to have some text selected in the active editor.",e.id))}case"file":return a(Y.File);case"fileWorkspaceFolder":return l(Y.FileWorkspaceFolder);case"fileWorkspaceFolderBasename":return(0,tg.basename)(l(Y.FileWorkspaceFolderBasename));case"relativeFile":if(t||s)return(0,tg.relative)(this.fsPath(c(Y.RelativeFile)),a(Y.RelativeFile));return a(Y.RelativeFile);case"relativeFileDirname":{let e=(0,tg.dirname)(a(Y.RelativeFileDirname));if(t||s){let t=(0,tg.relative)(this.fsPath(c(Y.RelativeFileDirname)),e);return 0===t.length?".":t}return e}case"fileDirname":return(0,tg.dirname)(a(Y.FileDirname));case"fileExtname":return(0,tg.extname)(a(Y.FileExtname));case"fileBasename":return(0,tg.basename)(a(Y.FileBasename));case"fileBasenameNoExtension":{let e=(0,tg.basename)(a(Y.FileBasenameNoExtension));return e.slice(0,e.length-(0,tg.extname)(e).length)}case"fileDirnameBasename":return(0,tg.basename)((0,tg.dirname)(a(Y.FileDirnameBasename)));case"execPath":{let t=this._context.getExecPath();if(t)return t;return e.id}case"execInstallFolder":{let t=this._context.getAppRoot();if(t)return t;return e.id}case"pathSeparator":case"/":return tg.sep;default:try{return this.resolveFromMap(Y.Unknown,e.id,s,r,void 0)}catch{return e.id}}}}resolveFromMap(e,t,i,r,n){if(i&&r){let o=void 0===n?r[i]:r[n+":"+i];if("string"==typeof o)return o;throw new nu(e,(0,e1.localize)(13838,"Variable {0} can not be resolved because the command has no value.",t))}return t}}e.s(["AbstractVariableResolverService",0,ng],545341);let np=(0,eR.createDecorator)("IExtHostVariableResolverProvider");class nm extends ng{constructor(e,t,i,r,n,o,s){function a(){if(i){let e=i.activeEditor();if(e)return e.document.uri;let t=r.tabGroups.all.find(e=>e.isActive)?.activeTab;if(void 0!==t){if(t.input instanceof eh.TextDiffTabInput||t.input instanceof eh.NotebookDiffEditorTabInput)return t.input.modified;else if(t.input instanceof eh.TextTabInput||t.input instanceof eh.NotebookEditorTabInput||t.input instanceof eh.CustomEditorTabInput)return t.input.uri}}}super({getFolderUri:e=>{let t=o.folders.filter(t=>t.name===e);if(t&&t.length>0)return t[0].uri},getWorkspaceFolderCount:()=>o.folders.length,getConfigurationValue:(e,t)=>n.getConfiguration(void 0,e).get(t),getAppRoot:()=>(0,na.cwd)(),getExecPath:()=>na.env.VSCODE_EXEC_PATH,getFilePath:()=>{let e=a();if(e)return(0,tg.normalize)(e.fsPath)},getWorkspaceFolderPathForFile:()=>{if(t){let e=a();if(e){let i=t.getWorkspaceFolder(e);if(i)return(0,tg.normalize)(i.uri.fsPath)}}},getSelectedText:()=>{if(i){let e=i.activeEditor();if(e&&!e.selection.isEmpty)return e.document.getText(e.selection)}},getLineNumber:()=>{if(i){let e=i.activeEditor();if(e)return String(e.selection.end.line+1)}},getColumnNumber:()=>{if(i){let e=i.activeEditor();if(e)return String(e.selection.end.character+1)}},getExtension:t=>e.getExtension(t)},void 0,s?Promise.resolve(s):void 0,Promise.resolve(na.env))}}let nf=class extends ns.Disposable{constructor(e,t,i,r,n){super(),this.extensionService=e,this.workspaceService=t,this.editorService=i,this.configurationService=r,this.editorTabs=n,this._resolver=new iu.Lazy(async()=>{let e=await this.configurationService.getConfigProvider(),t={folders:await this.workspaceService.getWorkspaceFolders2()||[]};return this._register(this.workspaceService.onDidChangeWorkspace(async e=>{t.folders=await this.workspaceService.getWorkspaceFolders2()||[]})),new nm(this.extensionService,this.workspaceService,this.editorService,this.editorTabs,e,t,this.homeDir())})}getResolver(){return this._resolver.value}homeDir(){}};nf=(0,ek.__decorate)([(0,ek.__param)(0,rB),(0,ek.__param)(1,td),(0,ek.__param)(2,ip),(0,ek.__param)(3,tD),(0,ek.__param)(4,iV)],nf);let nv=(0,eR.createDecorator)("IExtHostDebugService"),n_=class extends iq.Disposable{get onDidStartDebugSession(){return this._onDidStartDebugSession.event}get onDidTerminateDebugSession(){return this._onDidTerminateDebugSession.event}get onDidChangeActiveDebugSession(){return this._onDidChangeActiveDebugSession.event}get activeDebugSession(){return this._activeDebugSession?.api}get onDidReceiveDebugSessionCustomEvent(){return this._onDidReceiveDebugSessionCustomEvent.event}get activeDebugConsole(){return this._activeDebugConsole.value}constructor(e,t,i,r,n,o,s,a){super(),this._workspaceService=t,this._extensionService=i,this._configurationService=r,this._editorTabs=n,this._variableResolver=o,this._commands=s,this._testing=a,this._debugSessions=new Map,this._debugVisualizationTreeItemIdsCounter=0,this._debugVisualizationProviders=new Map,this._debugVisualizationTrees=new Map,this._debugVisualizationTreeItemIds=new WeakMap,this._debugVisualizationElements=new Map,this._visualizers=new Map,this._visualizerIdCounter=0,this._configProviderHandleCounter=0,this._configProviders=[],this._adapterFactoryHandleCounter=0,this._adapterFactories=[],this._trackerFactoryHandleCounter=0,this._trackerFactories=[],this._debugAdapters=new Map,this._debugAdaptersTrackers=new Map,this._onDidStartDebugSession=this._register(new ey.Emitter),this._onDidTerminateDebugSession=this._register(new ey.Emitter),this._onDidChangeActiveDebugSession=this._register(new ey.Emitter),this._onDidReceiveDebugSessionCustomEvent=this._register(new ey.Emitter),this._debugServiceProxy=e.getProxy(ev.MainContext.MainThreadDebugService),this._onDidChangeBreakpoints=this._register(new ey.Emitter),this._onDidChangeActiveStackItem=this._register(new ey.Emitter),this._activeDebugConsole=new nC(this._debugServiceProxy),this._breakpoints=new Map,this._extensionService.getExtensionRegistry().then(e=>{this._register(e.onDidChange(t=>{this.registerAllDebugTypes(e)})),this.registerAllDebugTypes(e)}),this._telemetryProxy=e.getProxy(ev.MainContext.MainThreadTelemetry)}async $getVisualizerTreeItem(e,t){let i=this.hydrateVisualizationContext(t);if(!i)return;let r=await this._debugVisualizationTrees.get(e)?.getTreeItem?.(i);return r?this.convertVisualizerTreeItem(e,r):void 0}registerDebugVisualizationTree(e,t,i){let r=eI.ExtensionIdentifier.toKey(e.identifier),n=this.extensionVisKey(r,t);if(this._debugVisualizationProviders.has(n))throw Error(`A debug visualization provider with id '${t}' is already registered`);return this._debugVisualizationTrees.set(n,i),this._debugServiceProxy.$registerDebugVisualizerTree(n,!!i.editItem),(0,iq.toDisposable)(()=>{this._debugServiceProxy.$unregisterDebugVisualizerTree(n),this._debugVisualizationTrees.delete(t)})}async $getVisualizerTreeItemChildren(e,t){let i=this._debugVisualizationElements.get(t)?.item;if(!i)return[];let r=await this._debugVisualizationTrees.get(e)?.getChildren?.(i);return r?.map(t=>this.convertVisualizerTreeItem(e,t))||[]}async $editVisualizerTreeItem(e,t){let i=this._debugVisualizationElements.get(e);if(!i)return;let r=await this._debugVisualizationTrees.get(i.provider)?.editItem?.(i.item,t);return this.convertVisualizerTreeItem(i.provider,r||i.item)}$disposeVisualizedTree(e){let t=this._debugVisualizationElements.get(e);if(!t)return;let i=[t.children];for(let e of i)if(e)for(let t of e)i.push(this._debugVisualizationElements.get(t)?.children),this._debugVisualizationElements.delete(t)}convertVisualizerTreeItem(e,t){let i=this._debugVisualizationTreeItemIds.get(t);return i||(i=this._debugVisualizationTreeItemIdsCounter++,this._debugVisualizationTreeItemIds.set(t,i),this._debugVisualizationElements.set(i,{provider:e,item:t})),e6.DebugTreeItem.from(t,i)}asDebugSourceUri(e,t){if("number"==typeof e.sourceReference&&e.sourceReference>0){let i=`debug:${encodeURIComponent(e.path||"")}`,r="?";return t&&(i+=`${r}session=${encodeURIComponent(t.id)}`,r="&"),i+=`${r}ref=${e.sourceReference}`,eD.URI.parse(i)}if(e.path)return eD.URI.file(e.path);throw Error("cannot create uri from DAP 'source' object; properties 'path' and 'sourceReference' are both missing.")}registerAllDebugTypes(e){let t=[];for(let i of e.getAllExtensionDescriptions())if(i.contributes){let e=i.contributes.debuggers;if(e&&e.length>0)for(let i of e)(0,iz.isDebuggerMainContribution)(i)&&t.push(i.type)}this._debugServiceProxy.$registerDebugTypes(t)}get activeStackItem(){return this._activeStackItem}get onDidChangeActiveStackItem(){return this._onDidChangeActiveStackItem.event}get onDidChangeBreakpoints(){return this._onDidChangeBreakpoints.event}get breakpoints(){let e=[];return this._breakpoints.forEach(t=>e.push(t)),e}async $resolveDebugVisualizer(e,t){let i=this._visualizers.get(e);if(!i)throw Error(`No debug visualizer found with id '${e}'`);let{v:r,provider:n,extensionId:o}=i;if(r.visualization||(i.v=r=await n.resolveDebugVisualization?.(r,t)||r),!r.visualization)throw Error(`No visualization returned from resolveDebugVisualization in '${n}'`);return this.serializeVisualization(o,r.visualization)}async $executeDebugVisualizerCommand(e){let t=this._visualizers.get(e);if(!t)throw Error(`No debug visualizer found with id '${e}'`);let i=t.v.visualization;i&&"command"in i&&this._commands.executeCommand(i.command,...i.arguments||[])}hydrateVisualizationContext(e){let t=this._debugSessions.get(e.sessionId);return t&&{session:t.api,variable:e.variable,containerId:e.containerId,frameId:e.frameId,threadId:e.threadId}}async $provideDebugVisualizers(e,t,i,r){let n=this.hydrateVisualizationContext(i),o=this.extensionVisKey(e,t),s=this._debugVisualizationProviders.get(o);if(!n||!s)return[];let a=await s.provideDebugVisualization(n,r);return a?a.map(t=>{let i=++this._visualizerIdCounter;this._visualizers.set(i,{v:t,provider:s,extensionId:e});let r=t.iconPath?this.getIconPathOrClass(t.iconPath):void 0;return{id:i,name:t.name,iconClass:r?.iconClass,iconPath:r?.iconPath,visualization:this.serializeVisualization(e,t.visualization)}}):[]}$disposeDebugVisualizers(e){for(let t of e)this._visualizers.delete(t)}registerDebugVisualizationProvider(e,t,i){if(!e.contributes?.debugVisualizers?.some(e=>e.id===t))throw Error(`Extensions may only call registerDebugVisualizationProvider() for renderers they contribute (got ${t})`);let r=eI.ExtensionIdentifier.toKey(e.identifier),n=this.extensionVisKey(r,t);if(this._debugVisualizationProviders.has(n))throw Error(`A debug visualization provider with id '${t}' is already registered`);return this._debugVisualizationProviders.set(n,i),this._debugServiceProxy.$registerDebugVisualizer(r,t),(0,iq.toDisposable)(()=>{this._debugServiceProxy.$unregisterDebugVisualizer(r,t),this._debugVisualizationProviders.delete(t)})}addBreakpoints(e){let t=e.filter(e=>{let t=e.id;return!this._breakpoints.has(t)&&(this._breakpoints.set(t,e),!0)});this.fireBreakpointChanges(t,[],[]);let i=[],r=new Map;for(let e of t)if(e instanceof eh.SourceBreakpoint){let t=r.get(e.location.uri.toString());t||(t={type:"sourceMulti",uri:e.location.uri,lines:[]},r.set(e.location.uri.toString(),t),i.push(t)),t.lines.push({id:e.id,enabled:e.enabled,condition:e.condition,hitCondition:e.hitCondition,logMessage:e.logMessage,line:e.location.range.start.line,character:e.location.range.start.character,mode:e.mode})}else e instanceof eh.FunctionBreakpoint&&i.push({type:"function",id:e.id,enabled:e.enabled,hitCondition:e.hitCondition,logMessage:e.logMessage,condition:e.condition,functionName:e.functionName,mode:e.mode});return this._debugServiceProxy.$registerBreakpoints(i)}removeBreakpoints(e){let t=e.filter(e=>this._breakpoints.delete(e.id));this.fireBreakpointChanges([],t,[]);let i=t.filter(e=>e instanceof eh.SourceBreakpoint).map(e=>e.id),r=t.filter(e=>e instanceof eh.FunctionBreakpoint).map(e=>e.id),n=t.filter(e=>e instanceof eh.DataBreakpoint).map(e=>e.id);return this._debugServiceProxy.$unregisterBreakpoints(i,r,n)}startDebugging(e,t,i){let r=i.testRun&&this._testing.getMetadataForRun(i.testRun);return this._debugServiceProxy.$startDebugging(e?e.uri:void 0,t,{parentSessionID:i.parentSession?i.parentSession.id:void 0,lifecycleManagedByParent:i.lifecycleManagedByParent,repl:i.consoleMode===eh.DebugConsoleMode.MergeWithParent?"mergeWithParent":"separate",noDebug:i.noDebug,compact:i.compact,suppressSaveBeforeStart:i.suppressSaveBeforeStart,testRun:r&&{runId:r.runId,taskId:r.taskId},suppressDebugStatusbar:i.suppressDebugStatusbar??i.debugUI?.simple,suppressDebugToolbar:i.suppressDebugToolbar??i.debugUI?.simple,suppressDebugView:i.suppressDebugView??i.debugUI?.simple})}stopDebugging(e){return this._debugServiceProxy.$stopDebugging(e?e.id:void 0)}registerDebugConfigurationProvider(e,t,i){if(!t)return new eh.Disposable(()=>{});let r=this._configProviderHandleCounter++;return this._configProviders.push({type:e,handle:r,provider:t}),this._debugServiceProxy.$registerDebugConfigurationProvider(e,i,!!t.provideDebugConfigurations,!!t.resolveDebugConfiguration,!!t.resolveDebugConfigurationWithSubstitutedVariables,r),new eh.Disposable(()=>{this._configProviders=this._configProviders.filter(e=>e.provider!==t),this._debugServiceProxy.$unregisterDebugConfigurationProvider(r)})}registerDebugAdapterDescriptorFactory(e,t,i){if(!i)return new eh.Disposable(()=>{});if(!this.definesDebugType(e,t))throw Error(`a DebugAdapterDescriptorFactory can only be registered from the extension that defines the '${t}' debugger.`);if(this.getAdapterDescriptorFactoryByType(t))throw Error("a DebugAdapterDescriptorFactory can only be registered once per a type.");let r=this._adapterFactoryHandleCounter++;return this._adapterFactories.push({type:t,handle:r,factory:i}),this._debugServiceProxy.$registerDebugAdapterDescriptorFactory(t,r),new eh.Disposable(()=>{this._adapterFactories=this._adapterFactories.filter(e=>e.factory!==i),this._debugServiceProxy.$unregisterDebugAdapterDescriptorFactory(r)})}registerDebugAdapterTrackerFactory(e,t){if(!t)return new eh.Disposable(()=>{});let i=this._trackerFactoryHandleCounter++;return this._trackerFactories.push({type:e,handle:i,factory:t}),new eh.Disposable(()=>{this._trackerFactories=this._trackerFactories.filter(e=>e.factory!==t)})}async $runInTerminal(e,t){return Promise.resolve(void 0)}async $substituteVariables(e,t){let i,r=await this.getFolder(e);return r&&(i={uri:r.uri,name:r.name,index:r.index}),(await this._variableResolver.getResolver()).resolveAsync(i,t)}createDebugAdapter(e,t){if(e instanceof eh.DebugAdapterInlineImplementation)return new nb(e.implementation)}createSignService(){}async $startDASession(e,t){let i=this,r=await this.getSession(t);return this.getAdapterDescriptor(this.getAdapterDescriptorFactoryByType(r.type),r).then(t=>{if(!t)throw Error(`Couldn't find a debug adapter descriptor for debug type '${r.type}' (extension might have failed to activate)`);let n=this.createDebugAdapter(t,r);if(!n)throw Error(`Couldn't create a debug adapter for type '${r.type}'.`);return this._debugAdapters.set(e,n),this.getDebugAdapterTrackers(r).then(t=>(t&&this._debugAdaptersTrackers.set(e,t),n.onMessage(async o=>{if("request"===o.type&&"handshake"===o.command){let e=o,t={type:"response",seq:0,command:e.command,request_seq:e.seq,success:!0};this._signService||(this._signService=this.createSignService());try{if(this._signService)t.body={signature:await this._signService.sign(e.arguments.value)},n.sendResponse(t);else throw Error("no signer")}catch(e){t.success=!1,t.message=e.message,n.sendResponse(t)}}else{t&&t.onDidSendMessage&&t.onDidSendMessage(o);try{o=(0,iz.convertToVSCPaths)(o,!0)}catch(t){let e=o.type+"_"+(o.command??o.event??"");throw this._telemetryProxy.$publicLog2("debugProtocolMessageError",{type:e,from:r.type}),t}i._debugServiceProxy.$acceptDAMessage(e,o)}}),n.onError(i=>{t&&t.onError&&t.onError(i),this._debugServiceProxy.$acceptDAError(e,i.name,i.message,i.stack)}),n.onExit(i=>{t&&t.onExit&&t.onExit(i??void 0,void 0),this._debugServiceProxy.$acceptDAExit(e,i??void 0,void 0)}),t&&t.onWillStartSession&&t.onWillStartSession(),n.startSession()))})}$sendDAMessage(e,t){t=(0,iz.convertToDAPaths)(t,!1);let i=this._debugAdaptersTrackers.get(e);i&&i.onWillReceiveMessage&&i.onWillReceiveMessage(t);let r=this._debugAdapters.get(e);r?.sendMessage(t)}$stopDASession(e){let t=this._debugAdaptersTrackers.get(e);this._debugAdaptersTrackers.delete(e),t&&t.onWillStopSession&&t.onWillStopSession();let i=this._debugAdapters.get(e);return(this._debugAdapters.delete(e),i)?i.stopSession():Promise.resolve(void 0)}$acceptBreakpointsDelta(e){let t=[],i=[],r=[];if(e.added)for(let i of e.added){let e=i.id;if(e&&!this._breakpoints.has(e)){let r;if("function"===i.type)r=new eh.FunctionBreakpoint(i.functionName,i.enabled,i.condition,i.hitCondition,i.logMessage,i.mode);else if("data"===i.type)r=new eh.DataBreakpoint(i.label,i.dataId,i.canPersist,i.enabled,i.hitCondition,i.condition,i.logMessage,i.mode);else{let e=eD.URI.revive(i.uri);r=new eh.SourceBreakpoint(new tZ.Location(e,new tY.Position(i.line,i.character)),i.enabled,i.condition,i.hitCondition,i.logMessage,i.mode)}(0,eh.setBreakpointId)(r,e),this._breakpoints.set(e,r),t.push(r)}}if(e.removed)for(let t of e.removed){let e=this._breakpoints.get(t);e&&(this._breakpoints.delete(t),i.push(e))}if(e.changed){for(let t of e.changed)if(t.id){let e=this._breakpoints.get(t.id);e&&(e instanceof eh.FunctionBreakpoint&&"function"===t.type?(e.enabled=t.enabled,e.condition=t.condition,e.hitCondition=t.hitCondition,e.logMessage=t.logMessage,e.functionName=t.functionName):e instanceof eh.SourceBreakpoint&&"source"===t.type&&(e.enabled=t.enabled,e.condition=t.condition,e.hitCondition=t.hitCondition,e.logMessage=t.logMessage,e.location=new tZ.Location(eD.URI.revive(t.uri),new tY.Position(t.line,t.character))),r.push(e))}}this.fireBreakpointChanges(t,i,r)}async $acceptStackFrameFocus(e){let t;if(e){let i=await this.getSession(e.sessionId);t="thread"===e.kind?new eh.DebugThread(i.api,e.threadId):new eh.DebugStackFrame(i.api,e.threadId,e.frameId)}this._activeStackItem=t,this._onDidChangeActiveStackItem.fire(this._activeStackItem)}$provideDebugConfigurations(e,t,i){return(0,eU.asPromise)(async()=>{let r=this.getConfigProviderByHandle(e);if(!r)throw Error("no DebugConfigurationProvider found");if(!r.provideDebugConfigurations)throw Error("DebugConfigurationProvider has no method provideDebugConfigurations");let n=await this.getFolder(t);return r.provideDebugConfigurations(n,i)}).then(e=>{if(!e)throw Error("nothing returned from DebugConfigurationProvider.provideDebugConfigurations");return e})}$resolveDebugConfiguration(e,t,i,r){return(0,eU.asPromise)(async()=>{let n=this.getConfigProviderByHandle(e);if(!n)throw Error("no DebugConfigurationProvider found");if(!n.resolveDebugConfiguration)throw Error("DebugConfigurationProvider has no method resolveDebugConfiguration");let o=await this.getFolder(t);return n.resolveDebugConfiguration(o,i,r)})}$resolveDebugConfigurationWithSubstitutedVariables(e,t,i,r){return(0,eU.asPromise)(async()=>{let n=this.getConfigProviderByHandle(e);if(!n)throw Error("no DebugConfigurationProvider found");if(!n.resolveDebugConfigurationWithSubstitutedVariables)throw Error("DebugConfigurationProvider has no method resolveDebugConfigurationWithSubstitutedVariables");let o=await this.getFolder(t);return n.resolveDebugConfigurationWithSubstitutedVariables(o,i,r)})}async $provideDebugAdapter(e,t){let i=this.getAdapterDescriptorFactoryByHandle(e);if(!i)return Promise.reject(Error("no adapter descriptor factory found for handle"));let r=await this.getSession(t);return this.getAdapterDescriptor(i,r).then(e=>{if(!e)throw Error(`Couldn't find a debug adapter descriptor for debug type '${r.type}'`);return this.convertToDto(e)})}async $acceptDebugSessionStarted(e){let t=await this.getSession(e);this._onDidStartDebugSession.fire(t.api)}async $acceptDebugSessionTerminated(e){let t=await this.getSession(e);t&&(this._onDidTerminateDebugSession.fire(t.api),this._debugSessions.delete(t.id))}async $acceptDebugSessionActiveChanged(e){this._activeDebugSession=e?await this.getSession(e):void 0,this._onDidChangeActiveDebugSession.fire(this._activeDebugSession?.api)}async $acceptDebugSessionNameChanged(e,t){let i=await this.getSession(e);i?._acceptNameChanged(t)}async $acceptDebugSessionCustomEvent(e,t){let i={session:(await this.getSession(e)).api,event:t.event,body:t.body};this._onDidReceiveDebugSessionCustomEvent.fire(i)}convertToDto(e){if(e instanceof eh.DebugAdapterExecutable)return this.convertExecutableToDto(e);if(e instanceof eh.DebugAdapterServer)return this.convertServerToDto(e);if(e instanceof eh.DebugAdapterNamedPipeServer)return this.convertPipeServerToDto(e);if(e instanceof eh.DebugAdapterInlineImplementation)return this.convertImplementationToDto(e);throw Error("convertToDto unexpected type")}convertExecutableToDto(e){return{type:"executable",command:e.command,args:e.args,options:e.options}}convertServerToDto(e){return{type:"server",port:e.port,host:e.host}}convertPipeServerToDto(e){return{type:"pipeServer",path:e.path}}convertImplementationToDto(e){return{type:"implementation"}}getAdapterDescriptorFactoryByType(e){let t=this._adapterFactories.filter(t=>t.type===e);if(t.length>0)return t[0].factory}getAdapterDescriptorFactoryByHandle(e){let t=this._adapterFactories.filter(t=>t.handle===e);if(t.length>0)return t[0].factory}getConfigProviderByHandle(e){let t=this._configProviders.filter(t=>t.handle===e);if(t.length>0)return t[0].provider}definesDebugType(e,t){if(e.contributes){let i=e.contributes.debuggers;if(i&&i.length>0){for(let e of i)if(e.label&&e.type&&e.type===t)return!0}}return!1}getDebugAdapterTrackers(e){let t=e.configuration.type;return Promise.race([Promise.all(this._trackerFactories.filter(e=>e.type===t||"*"===e.type).map(t=>(0,eU.asPromise)(()=>t.factory.createDebugAdapterTracker(e.api)).then(e=>e,e=>null))).then(e=>{let t=(0,eY.coalesce)(e);if(t.length>0)return new nS(t)}),new Promise(e=>setTimeout(()=>e(void 0),1e3))]).catch(e=>{})}async getAdapterDescriptor(e,t){let i=t.configuration.debugServer;if("number"==typeof i)return Promise.resolve(new eh.DebugAdapterServer(i));if(e){let i=await this._extensionService.getExtensionRegistry();return(0,eU.asPromise)(()=>e.createDebugAdapterDescriptor(t.api,this.daExecutableFromPackage(t,i))).then(e=>{if(e)return e})}let r=await this._extensionService.getExtensionRegistry();return Promise.resolve(this.daExecutableFromPackage(t,r))}daExecutableFromPackage(e,t){}fireBreakpointChanges(e,t,i){(e.length>0||t.length>0||i.length>0)&&this._onDidChangeBreakpoints.fire(Object.freeze({added:e,removed:t,changed:i}))}async getSession(e){if(e)if("string"==typeof e){let t=this._debugSessions.get(e);if(t)return t}else{let t=this._debugSessions.get(e.id);if(!t){let i=await this.getFolder(e.folderUri),r=e.parent?this._debugSessions.get(e.parent):void 0;t=new ny(this._debugServiceProxy,e.id,e.type,e.name,i,e.configuration,r?.api),this._debugSessions.set(t.id,t),this._debugServiceProxy.$sessionCached(t.id)}return t}throw Error("cannot find session")}getFolder(e){if(e){let t=eD.URI.revive(e);return this._workspaceService.resolveWorkspaceFolder(t)}return Promise.resolve(void 0)}extensionVisKey(e,t){return`${e}\0${t}`}serializeVisualization(e,t){if(t){if("title"in t&&"command"in t)return{type:e_.DebugVisualizationType.Command};if("treeId"in t)return{type:e_.DebugVisualizationType.Tree,id:`${e}\0${t.treeId}`};throw Error("Unsupported debug visualization type")}}getIconPathOrClass(e){let t,i,r=this.getIconUris(e);return"id"in r?i=iC.ThemeIcon.asClassName(r):t=r,{iconPath:t,iconClass:i}}getIconUris(e){if(e instanceof eh.ThemeIcon)return{id:e.id};let t="object"==typeof e&&"dark"in e?e.dark:e,i="object"==typeof e&&"light"in e?e.light:e;return{dark:"string"==typeof t?eD.URI.file(t):t,light:"string"==typeof i?eD.URI.file(i):i}}};n_=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,td),(0,ek.__param)(2,rB),(0,ek.__param)(3,tD),(0,ek.__param)(4,iV),(0,ek.__param)(5,np),(0,ek.__param)(6,t2),(0,ek.__param)(7,r4)],n_);class ny{constructor(e,t,i,r,n,o,s){this._debugServiceProxy=e,this._id=t,this._type=i,this._name=r,this._workspaceFolder=n,this._configuration=o,this._parentSession=s}get api(){let e=this;return this.apiSession??=Object.freeze({id:e._id,type:e._type,get name(){return e._name},set name(name){e._name=name,e._debugServiceProxy.$setDebugSessionName(e._id,name)},parentSession:e._parentSession,workspaceFolder:e._workspaceFolder,configuration:e._configuration,customRequest:(t,i)=>e._debugServiceProxy.$customDebugAdapterRequest(e._id,t,i),getDebugProtocolBreakpoint:t=>e._debugServiceProxy.$getDebugProtocolBreakpoint(e._id,t.id)})}get id(){return this._id}get type(){return this._type}_acceptNameChanged(e){this._name=e}get configuration(){return this._configuration}}class nC{constructor(e){this.value=Object.freeze({append(t){e.$appendDebugConsole(t)},appendLine(e){this.append(e+"\n")}})}}class nS{constructor(e){this.trackers=e}onWillStartSession(){this.trackers.forEach(e=>e.onWillStartSession?e.onWillStartSession():void 0)}onWillReceiveMessage(e){this.trackers.forEach(t=>t.onWillReceiveMessage?t.onWillReceiveMessage(e):void 0)}onDidSendMessage(e){this.trackers.forEach(t=>t.onDidSendMessage?t.onDidSendMessage(e):void 0)}onWillStopSession(){this.trackers.forEach(e=>e.onWillStopSession?e.onWillStopSession():void 0)}onError(e){this.trackers.forEach(t=>t.onError?t.onError(e):void 0)}onExit(e,t){this.trackers.forEach(i=>i.onExit?i.onExit(e,t):void 0)}}class nb extends ij.AbstractDebugAdapter{constructor(e){super(),this.implementation=e,e.onDidSendMessage(e=>{this.acceptMessage(e)})}startSession(){return Promise.resolve(void 0)}sendMessage(e){this.implementation.handleMessage(e)}stopSession(){return this.implementation.dispose(),Promise.resolve(void 0)}}let nw=class extends n_{constructor(e,t,i,r,n,o,s,a){super(e,t,i,r,n,o,s,a)}};nw=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,td),(0,ek.__param)(2,rB),(0,ek.__param)(3,tD),(0,ek.__param)(4,iV),(0,ek.__param)(5,np),(0,ek.__param)(6,t2),(0,ek.__param)(7,r4)],nw);var nx=e.i(786091);class nD{constructor(e){this.provider=e}provideFileSearchResults(e,t,i){return(async()=>Promise.all(t.folderOptions.map(e=>({folder:e.folder,excludes:e.excludes.map(e=>"string"==typeof e?e:e.pattern),includes:e.includes,useGlobalIgnoreFiles:e.useIgnoreFiles.global,useIgnoreFiles:e.useIgnoreFiles.local,useParentIgnoreFiles:e.useIgnoreFiles.parent,followSymlinks:e.followSymlinks,maxResults:t.maxResults,session:t.session})).map(t=>this.provider.provideFileSearchResults({pattern:e},t,i))))().then(e=>(0,eY.coalesce)(e).flat())}}class nE{constructor(e){this.provider=e}provideTextSearchResults(e,t,i,r){return(async()=>(0,eY.coalesce)(await Promise.all(t.folderOptions.map(e=>{var i;return{folder:e.folder,excludes:e.excludes.map(e=>"string"==typeof e?e:e.pattern),includes:e.includes,useGlobalIgnoreFiles:e.useIgnoreFiles.global,useIgnoreFiles:e.useIgnoreFiles.local,useParentIgnoreFiles:e.useIgnoreFiles.parent,followSymlinks:e.followSymlinks,maxResults:t.maxResults,previewOptions:(i=t.previewOptions,{matchLines:i?.matchLines??e5.DEFAULT_TEXT_SEARCH_PREVIEW_OPTIONS.matchLines,charsPerLine:i?.charsPerLine??e5.DEFAULT_TEXT_SEARCH_PREVIEW_OPTIONS.charsPerLine}),maxFileSize:t.maxFileSize,encoding:e.encoding,afterContext:t.surroundingContext,beforeContext:t.surroundingContext}}).map(t=>this.provider.provideTextSearchResults(e,t,{report:e=>{(function(e){if(e.preview){if(Array.isArray(e.ranges)){if(!Array.isArray(e.preview.matches))return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same type."),!1;if(e.preview.matches.length!==e.ranges.length)return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same length."),!1}else if(Array.isArray(e.preview.matches))return console.warn("INVALID - A text search provider match's`ranges` and`matches` properties must have the same length."),!1}return!0})(e)&&i.report(function(e){if(!("uri"in e)||!("ranges"in e)||!("preview"in e))return new eb.TextSearchContext2(e.uri,e.text,e.lineNumber);{let t=(0,eY.asArray)(e.ranges).map((t,i)=>({sourceRange:t,previewRange:(0,eY.asArray)(e.preview.matches)[i]}));return new eb.TextSearchMatch2(e.uri,t,e.preview.text)}}(e))}},r)))).reduce((e,t)=>({limitHit:e.limitHit||t.limitHit}),{limitHit:!1}))().then(e=>({limitHit:e.limitHit,message:(0,eY.coalesce)((0,eY.asArray)(e.message))}))}}var nk=eX;class nT extends nk.TernarySearchTree{constructor(e,t,i=()=>!1){super(new nk.UriIterator(i,()=>!1));const r=new eV.ResourceMap;e.forEach((e,t)=>{let i=e.folder.with({query:"",fragment:""});r.has(i)?r.get(i).push({fq:e,i:t}):r.set(i,[{fq:e,i:t}])}),r.forEach((e,i)=>{let r=new Map;for(let i of e){let e=t(i.fq,i.i);r.set(this.encodeKey(i.fq.folder),e)}super.set(i,r)})}findQueryFragmentAwareSubstr(e){let t=super.findSubstr(e.with({query:"",fragment:""}));if(!t)return;let i=this.encodeKey(e);return t.get(i)}forEachFolderQueryInfo(e){return this.forEach(t=>t.forEach(t=>e(t)))}encodeKey(e){let t="";return e.query&&(t+=e.query),e.fragment&&(t+="#"+e.fragment),t}}class nR{constructor(e,t,i){this.config=e,this.provider=t,this.sessionLifecycle=i,this.isLimitHit=!1,this.resultCount=0,this.isCanceled=!1,this.filePattern=e.filePattern,this.includePattern=e.includePattern&&(0,nx.parse)(e.includePattern),this.maxResults=e.maxResults||void 0,this.exists=e.exists,this.activeCancellationTokens=new Set,this.globalExcludePattern=e.excludePattern&&(0,nx.parse)(e.excludePattern)}cancel(){this.isCanceled=!0,this.activeCancellationTokens.forEach(e=>e.cancel()),this.activeCancellationTokens=new Set}search(e){let t=this.config.folderQueries||[];return new Promise((i,r)=>{let n=t=>{this.resultCount++,e(t)};if(this.isCanceled)return i({limitHit:this.isLimitHit});this.config.extraFileResources&&this.config.extraFileResources.forEach(e=>{let t=e.toString(),i=(0,tg.basename)(t);this.globalExcludePattern&&this.globalExcludePattern(t,i)||this.matchFile(n,{base:e,basename:i})}),this.doSearch(t,n).then(e=>{i({limitHit:this.isLimitHit,stats:e||void 0})},e=>{r(Error((0,tq.toErrorMessage)(e)))})})}async doSearch(e,t){let i,r=new ef.CancellationTokenSource,n=e.map(e=>this.getSearchOptionsForFolder(e)),o=this.provider instanceof nD?this.sessionLifecycle?.tokenSource.token:this.sessionLifecycle?.obj,s={folderOptions:n,maxResults:this.config.maxResults??e5.DEFAULT_MAX_SEARCH_RESULTS,session:o},a=new nT(e,e=>{let t=new e5.QueryGlobTester(this.config,e),i=!t.hasSiblingExcludeClauses();return{queryTester:t,noSiblingsClauses:i,folder:e.folder,tree:this.initDirectoryTree()}});try{this.activeCancellationTokens.add(r),i=tj.StopWatch.create();let e=await this.provider.provideFileSearchResults(this.config.filePattern||"",s,r.token),n=i.elapsed(),o=tj.StopWatch.create();if(this.isCanceled&&!this.isLimitHit||(e&&e.forEach(e=>{let i=a.findQueryFragmentAwareSubstr(e),r=tg.posix.relative(i.folder.path,e.path);if(i.noSiblingsClauses){let n=(0,tg.basename)(e.path);this.matchFile(t,{base:i.folder,relativePath:r,basename:n});return}this.addDirectoryEntries(i.tree,i.folder,r,t)}),this.isCanceled&&!this.isLimitHit))return null;return a.forEachFolderQueryInfo(e=>{this.matchDirectoryTree(e.tree,e.queryTester,t)}),{providerTime:n,postProcessTime:o.elapsed()}}finally{r.dispose(),this.activeCancellationTokens.delete(r)}}getSearchOptionsForFolder(e){let t=(0,e5.resolvePatternsForProvider)(this.config.includePattern,e.includePattern),i=e.excludePattern?.map(e=>({folder:e.folder,patterns:(0,e5.resolvePatternsForProvider)(this.config.excludePattern,e.pattern)}));i?.length||(i=[{folder:void 0,patterns:(0,e5.resolvePatternsForProvider)(this.config.excludePattern,void 0)}]);let r=(0,e5.excludeToGlobPattern)(i);return{folder:e.folder,excludes:r,includes:t,useIgnoreFiles:{local:!e.disregardIgnoreFiles,parent:!e.disregardParentIgnoreFiles,global:!e.disregardGlobalIgnoreFiles},followSymlinks:!e.ignoreSymlinks}}initDirectoryTree(){let e={rootEntries:[],pathToEntries:Object.create(null)};return e.pathToEntries["."]=e.rootEntries,e}addDirectoryEntries({pathToEntries:e},t,i,r){if(i===this.filePattern){let e=(0,tg.basename)(this.filePattern);this.matchFile(r,{base:t,relativePath:this.filePattern,basename:e})}!function i(r){let n=(0,tg.basename)(r),o=(0,tg.dirname)(r),s=e[o];s||(s=e[o]=[],i(o)),s.push({base:t,relativePath:r,basename:n})}(i)}matchDirectoryTree({rootEntries:e,pathToEntries:t},i,r){let n=this,o=this.filePattern;!function e(s){let a=(0,e5.hasSiblingFn)(()=>s.map(e=>e.basename));for(let l=0,c=s.length;l<c;l++){let c=s[l],{relativePath:d,basename:u}=c;if(i.matchesExcludesSync(d,u,o!==u?a:void 0))continue;let h=t[d];if(h)e(h);else{if(d===o)continue;n.matchFile(r,c)}if(n.isLimitHit)break}}(e)}matchFile(e,t){(!this.includePattern||t.relativePath&&this.includePattern(t.relativePath,t.basename))&&((this.exists||this.maxResults&&this.resultCount>=this.maxResults)&&(this.isLimitHit=!0,this.cancel()),this.isLimitHit||e(t))}}class nP{constructor(){this._obj={},this.tokenSource=new ef.CancellationTokenSource}get obj(){if(this._obj)return this._obj;throw Error("Session object has been dereferenced.")}cancel(){this.tokenSource.cancel(),this._obj=void 0}}class nI{constructor(){this.sessions=new Map}static{this.BATCH_SIZE=512}fileSearch(e,t,i,r){let n=this.getSessionTokenSource(e.cacheKey),o=new nR(e,t,n),s=0,a=e=>{s+=e.length,i(e.map(e=>this.rawMatchToSearchItem(e)))};return this.doSearch(o,nI.BATCH_SIZE,a,r).then(e=>({limitHit:e.limitHit,stats:e.stats?{fromCache:!1,type:"fileSearchProvider",resultCount:s,detailStats:e.stats}:void 0,messages:[]}))}clearCache(e){this.sessions.get(e)?.cancel(),this.sessions.delete(e)}getSessionTokenSource(e){if(e)return this.sessions.has(e)||this.sessions.set(e,new nP),this.sessions.get(e)}rawMatchToSearchItem(e){return e.relativePath?{resource:(0,eN.joinPath)(e.base,e.relativePath)}:{resource:e.base}}doSearch(e,t,i,r){let n=r.onCancellationRequested(()=>{e.cancel()}),o=[];return e.search(e=>{e&&(o.push(e),t>0&&o.length>=t&&(i(o),o=[]))}).then(e=>(o.length&&i(o),n.dispose(),e),e=>(o.length&&i(o),n.dispose(),Promise.reject(e)))}}class nA{constructor(e,t,i){this.queryProviderPair=e,this.fileUtils=t,this.processType=i,this.collector=null,this.isLimitHit=!1,this.resultCount=0}get query(){return this.queryProviderPair.query}search(e,t,i){let r=this.query.folderQueries||[],n=new ef.CancellationTokenSource(t);return new Promise((t,o)=>{this.collector=new nM(e);let s=!1,a=(e,t)=>{if(!(e instanceof eb.AISearchKeyword)&&!s&&!this.isLimitHit){let i=this.resultSize(e);e instanceof eb.TextSearchMatch2&&"number"==typeof this.query.maxResults&&this.resultCount+i>this.query.maxResults&&(this.isLimitHit=!0,s=!0,n.cancel(),e=this.trimResultToSize(e,this.query.maxResults-this.resultCount));let r=this.resultSize(e);this.resultCount+=r;let o=e instanceof eb.TextSearchMatch2;(r>0||!o)&&this.collector.add(e,t)}};this.doSearch(r,a,n.token,i).then(e=>{n.dispose(),this.collector.flush(),t({limitHit:this.isLimitHit||e?.limitHit,messages:this.getMessagesFromResults(e),stats:{type:this.processType}})},e=>{n.dispose(),o(Error((0,tq.toErrorMessage)(e)))})})}getMessagesFromResults(e){return e?.message?Array.isArray(e.message)?e.message:[e.message]:[]}resultSize(e){return e instanceof eb.TextSearchMatch2?Array.isArray(e.ranges)?e.ranges.length:1:0}trimResultToSize(e,t){return new eb.TextSearchMatch2(e.uri,e.ranges.slice(0,t),e.previewText)}async doSearch(e,t,i,r){var n;let o,s=new nT(e,(e,t)=>({queryTester:new e5.QueryGlobTester(this.query,e),folder:e.folder,folderIdx:t}),()=>!0),a=[],l={report:e=>{if(e instanceof eb.AISearchKeyword)r?.(e);else{if(void 0===e.uri)throw Error("Text search result URI is undefined. Please check provider implementation.");let i=s.findQueryFragmentAwareSubstr(e.uri),r=i.folder.scheme===eO.Schemas.file?(0,e5.hasSiblingPromiseFn)(()=>this.fileUtils.readdir((0,eN.dirname)(e.uri))):void 0,n=(0,eN.relativePath)(i.folder,e.uri);if(n){let o=i.queryTester.includedInQuery(n,(0,tg.basename)(n),r);(0,eU.isThenable)(o)?a.push(o.then(r=>{r&&t(e,i.folderIdx)})):o&&t(e,i.folderIdx)}}}},c={folderOptions:e.map(e=>this.getSearchOptionsForFolder(e)),maxFileSize:this.query.maxFileSize,maxResults:this.query.maxResults??e5.DEFAULT_MAX_SEARCH_RESULTS,previewOptions:this.query.previewOptions??e5.DEFAULT_TEXT_SEARCH_PREVIEW_OPTIONS,surroundingContext:this.query.surroundingContext??0};return"usePCRE2"in this.query&&(c.usePCRE2=this.query.usePCRE2),o=this.queryProviderPair.query.type===e5.QueryType.aiText?await this.queryProviderPair.provider.provideAITextSearchResults(this.queryProviderPair.query.contentPattern,c,l,i):await this.queryProviderPair.provider.provideTextSearchResults({isCaseSensitive:(n=this.queryProviderPair.query.contentPattern).isCaseSensitive||!1,isRegExp:n.isRegExp||!1,isWordMatch:n.isWordMatch||!1,isMultiline:n.isMultiline||!1,pattern:n.pattern},c,l,i),a.length&&await Promise.all(a),o}getSearchOptionsForFolder(e){let t=(0,e5.resolvePatternsForProvider)(this.query.includePattern,e.includePattern),i=e.excludePattern?.map(e=>({folder:e.folder,patterns:(0,e5.resolvePatternsForProvider)(this.query.excludePattern,e.pattern)}));i&&0!==i.length||(i=[{folder:void 0,patterns:(0,e5.resolvePatternsForProvider)(this.query.excludePattern,void 0)}]);let r=(0,e5.excludeToGlobPattern)(i);return{folder:eD.URI.from(e.folder),excludes:r,includes:t,useIgnoreFiles:{local:!e.disregardIgnoreFiles,parent:!e.disregardParentIgnoreFiles,global:!e.disregardGlobalIgnoreFiles},followSymlinks:!e.ignoreSymlinks,encoding:(e.fileEncoding&&this.fileUtils.toCanonicalName(e.fileEncoding))??""}}}class nM{constructor(e){this._onResult=e,this._currentFolderIdx=-1,this._currentFileMatch=null,this._batchedCollector=new nL(512,e=>this.sendItems(e))}add(e,t){var i;this._currentFileMatch&&(this._currentFolderIdx!==t||!(0,eN.isEqual)(this._currentUri,e.uri))&&(this.pushToCollector(),this._currentFileMatch=null),this._currentFileMatch||(this._currentFolderIdx=t,this._currentFileMatch={resource:e.uri,results:[]}),this._currentFileMatch.results.push((i=e)instanceof eb.TextSearchMatch2?{previewText:i.previewText,rangeLocations:i.ranges.map(e=>({preview:{startLineNumber:e.previewRange.start.line,startColumn:e.previewRange.start.character,endLineNumber:e.previewRange.end.line,endColumn:e.previewRange.end.character},source:{startLineNumber:e.sourceRange.start.line,startColumn:e.sourceRange.start.character,endLineNumber:e.sourceRange.end.line,endColumn:e.sourceRange.end.character}}))}:{text:i.text,lineNumber:i.lineNumber})}pushToCollector(){let e=this._currentFileMatch&&this._currentFileMatch.results?this._currentFileMatch.results.length:0;this._batchedCollector.addItem(this._currentFileMatch,e)}flush(){this.pushToCollector(),this._batchedCollector.flush()}sendItems(e){this._onResult(e)}}class nL{static{this.TIMEOUT=4e3}static{this.START_BATCH_AFTER_COUNT=50}constructor(e,t){this.maxBatchSize=e,this.cb=t,this.totalNumberCompleted=0,this.batch=[],this.batchSize=0}addItem(e,t){e&&this.addItemToBatch(e,t)}addItems(e,t){e&&this.addItemsToBatch(e,t)}addItemToBatch(e,t){this.batch.push(e),this.batchSize+=t,this.onUpdate()}addItemsToBatch(e,t){this.batch=this.batch.concat(e),this.batchSize+=t,this.onUpdate()}onUpdate(){this.totalNumberCompleted<nL.START_BATCH_AFTER_COUNT||this.batchSize>=this.maxBatchSize?this.flush():this.timeoutHandle||(this.timeoutHandle=setTimeout(()=>{this.flush()},nL.TIMEOUT))}flush(){this.batchSize&&(this.totalNumberCompleted+=this.batchSize,this.cb(this.batch),this.batch=[],this.batchSize=0,this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0))}}let nF=(0,eR.createDecorator)("IExtHostSearch"),nO=class{constructor(e,t,i){this.extHostRpc=e,this._uriTransformer=t,this._logService=i,this._proxy=this.extHostRpc.getProxy(ev.MainContext.MainThreadSearch),this._handlePool=0,this._textSearchProvider=new Map,this._textSearchUsedSchemes=new Set,this._aiTextSearchProvider=new Map,this._aiTextSearchUsedSchemes=new Set,this._fileSearchProvider=new Map,this._fileSearchUsedSchemes=new Set,this._fileSearchManager=new nI}_transformScheme(e){return this._uriTransformer.transformOutgoingScheme(e)}registerTextSearchProviderOld(e,t){if(this._textSearchUsedSchemes.has(e))throw Error(`a text search provider for the scheme '${e}' is already registered`);this._textSearchUsedSchemes.add(e);let i=this._handlePool++;return this._textSearchProvider.set(i,new nE(t)),this._proxy.$registerTextSearchProvider(i,this._transformScheme(e)),(0,eH.toDisposable)(()=>{this._textSearchUsedSchemes.delete(e),this._textSearchProvider.delete(i),this._proxy.$unregisterProvider(i)})}registerTextSearchProvider(e,t){if(this._textSearchUsedSchemes.has(e))throw Error(`a text search provider for the scheme '${e}' is already registered`);this._textSearchUsedSchemes.add(e);let i=this._handlePool++;return this._textSearchProvider.set(i,t),this._proxy.$registerTextSearchProvider(i,this._transformScheme(e)),(0,eH.toDisposable)(()=>{this._textSearchUsedSchemes.delete(e),this._textSearchProvider.delete(i),this._proxy.$unregisterProvider(i)})}registerAITextSearchProvider(e,t){if(this._aiTextSearchUsedSchemes.has(e))throw Error(`an AI text search provider for the scheme '${e}'is already registered`);this._aiTextSearchUsedSchemes.add(e);let i=this._handlePool++;return this._aiTextSearchProvider.set(i,t),this._proxy.$registerAITextSearchProvider(i,this._transformScheme(e)),(0,eH.toDisposable)(()=>{this._aiTextSearchUsedSchemes.delete(e),this._aiTextSearchProvider.delete(i),this._proxy.$unregisterProvider(i)})}registerFileSearchProviderOld(e,t){if(this._fileSearchUsedSchemes.has(e))throw Error(`a file search provider for the scheme '${e}' is already registered`);this._fileSearchUsedSchemes.add(e);let i=this._handlePool++;return this._fileSearchProvider.set(i,new nD(t)),this._proxy.$registerFileSearchProvider(i,this._transformScheme(e)),(0,eH.toDisposable)(()=>{this._fileSearchUsedSchemes.delete(e),this._fileSearchProvider.delete(i),this._proxy.$unregisterProvider(i)})}registerFileSearchProvider(e,t){if(this._fileSearchUsedSchemes.has(e))throw Error(`a file search provider for the scheme '${e}' is already registered`);this._fileSearchUsedSchemes.add(e);let i=this._handlePool++;return this._fileSearchProvider.set(i,t),this._proxy.$registerFileSearchProvider(i,this._transformScheme(e)),(0,eH.toDisposable)(()=>{this._fileSearchUsedSchemes.delete(e),this._fileSearchProvider.delete(i),this._proxy.$unregisterProvider(i)})}$provideFileSearchResults(e,t,i,r){let n=nN(i),o=this._fileSearchProvider.get(e);if(o)return this._fileSearchManager.fileSearch(n,o,i=>{this._proxy.$handleFileMatch(e,t,i.map(e=>e.resource))},r);throw Error("unknown provider: "+e)}async doInternalFileSearchWithCustomCallback(e,t,i){return{messages:[]}}$clearCache(e){return this._fileSearchManager.clearCache(e),Promise.resolve(void 0)}$provideTextSearchResults(e,t,i,r){let n=this._textSearchProvider.get(e);if(!n||!n.provideTextSearchResults)throw Error(`Unknown Text Search Provider ${e}`);let o=nN(i);return this.createTextSearchManager(o,n).search(i=>this._proxy.$handleTextMatch(e,t,i),r)}$provideAITextSearchResults(e,t,i,r){let n=this._aiTextSearchProvider.get(e);if(!n||!n.provideAITextSearchResults)throw Error(`Unknown AI Text Search Provider ${e}`);let o=nN(i);return this.createAITextSearchManager(o,n).search(i=>this._proxy.$handleTextMatch(e,t,i),r,i=>this._proxy.$handleKeywordResult(e,t,i))}$enableExtensionHostSearch(){}async $getAIName(e){let t=this._aiTextSearchProvider.get(e);if(t&&t.provideAITextSearchResults)return t.name??"AI"}createTextSearchManager(e,t){return new nA({query:e,provider:t},{readdir:e=>Promise.resolve([]),toCanonicalName:e=>e},"textSearchProvider")}createAITextSearchManager(e,t){return new nA({query:e,provider:t},{readdir:e=>Promise.resolve([]),toCanonicalName:e=>e},"aiTextSearchProvider")}};function nN(e){return{...e,...{folderQueries:e.folderQueries&&e.folderQueries.map(n$),extraFileResources:e.extraFileResources&&e.extraFileResources.map(e=>eD.URI.revive(e))}}}function n$(e){return(0,e8.revive)(e)}nO=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,e3),(0,ek.__param)(2,eM.ILogService)],nO);var nH=ew;let nU=class extends nH.AbstractLoggerService{constructor(e,t){super(t.logLevel,t.logsLocation,t.loggers.map(e=>(0,e8.revive)(e))),this._proxy=e.getProxy(ev.MainContext.MainThreadLogger)}$setLogLevel(e,t){t?this.setLogLevel(eD.URI.revive(t),e):this.setLogLevel(e)}setVisibility(e,t){super.setVisibility(e,t),this._proxy.$setVisibility(e,t)}doCreateLogger(e,t,i){return new nW(this._proxy,e,t,i)}};nU=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService)],nU);class nW extends nH.AbstractMessageLogger{constructor(e,t,i,r){super(r?.logLevel==="always"),this.proxy=e,this.file=t,this.isLoggerCreated=!1,this.buffer=[],this.setLevel(i),this.proxy.$createLogger(t,r).then(()=>{this.doLog(this.buffer),this.isLoggerCreated=!0})}log(e,t){let i=[[e,t]];this.isLoggerCreated?this.doLog(i):this.buffer.push(...i)}doLog(e){this.proxy.$log(this.file,e)}flush(){this.proxy.$flush(this.file)}}var nq=eH;let nj=(0,eR.createDecorator)("IExtHostTerminalShellIntegration"),nz=class extends nq.Disposable{constructor(e,t){super(),this._extHostTerminalService=t,this._activeShellIntegrations=new Map,this._onDidChangeTerminalShellIntegration=new ey.Emitter,this.onDidChangeTerminalShellIntegration=this._onDidChangeTerminalShellIntegration.event,this._onDidStartTerminalShellExecution=new ey.Emitter,this.onDidStartTerminalShellExecution=this._onDidStartTerminalShellExecution.event,this._onDidEndTerminalShellExecution=new ey.Emitter,this.onDidEndTerminalShellExecution=this._onDidEndTerminalShellExecution.event,this._proxy=e.getProxy(ev.MainContext.MainThreadTerminalShellIntegration),this._register((0,nq.toDisposable)(()=>{for(let[e,t]of this._activeShellIntegrations)t.dispose();this._activeShellIntegrations.clear()}))}$shellIntegrationChange(e,t){let i=this._extHostTerminalService.getTerminalById(e);if(!i)return;let r=i.value,n=this._activeShellIntegrations.get(e);n||(n=new nK(i.value,t,this._onDidStartTerminalShellExecution),this._activeShellIntegrations.set(e,n),n.store.add(i.onWillDispose(()=>this._activeShellIntegrations.get(e)?.dispose())),n.store.add(n.onDidRequestShellExecution(t=>this._proxy.$executeCommand(e,t))),n.store.add(n.onDidRequestEndExecution(e=>this._onDidEndTerminalShellExecution.fire(e))),n.store.add(n.onDidRequestChangeShellIntegration(e=>this._onDidChangeTerminalShellIntegration.fire(e))),i.shellIntegration=n.value),this._onDidChangeTerminalShellIntegration.fire({terminal:r,shellIntegration:n.value})}$shellExecutionStart(e,t,i,r,n,o){this._activeShellIntegrations.has(e)||this.$shellIntegrationChange(e,t),this._activeShellIntegrations.get(e)?.startShellExecution({value:i,confidence:r,isTrusted:n},this._convertCwdToUri(o))}$shellExecutionEnd(e,t,i,r,n){this._activeShellIntegrations.get(e)?.endShellExecution({value:t,confidence:i,isTrusted:r},n)}$shellExecutionData(e,t){this._activeShellIntegrations.get(e)?.emitData(t)}$shellEnvChange(e,t,i,r){this._activeShellIntegrations.get(e)?.setEnv(t,i,r)}$cwdChange(e,t){this._activeShellIntegrations.get(e)?.setCwd(this._convertCwdToUri(t))}$closeTerminal(e){this._activeShellIntegrations.get(e)?.dispose(),this._activeShellIntegrations.delete(e)}_convertCwdToUri(e){return e?eD.URI.file(e):void 0}};nz=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,iw)],nz);class nK extends nq.Disposable{get currentExecution(){return this._currentExecution}constructor(e,t,i){super(),this._terminal=e,this._onDidStartTerminalShellExecution=i,this._pendingExecutions=[],this.store=this._register(new nq.DisposableStore),this._onDidRequestChangeShellIntegration=this._register(new ey.Emitter),this.onDidRequestChangeShellIntegration=this._onDidRequestChangeShellIntegration.event,this._onDidRequestShellExecution=this._register(new ey.Emitter),this.onDidRequestShellExecution=this._onDidRequestShellExecution.event,this._onDidRequestEndExecution=this._register(new ey.Emitter),this.onDidRequestEndExecution=this._onDidRequestEndExecution.event,this._onDidRequestNewExecution=this._register(new ey.Emitter),this.onDidRequestNewExecution=this._onDidRequestNewExecution.event;const r=this;this.value={get cwd(){return r._cwd},get env(){if(!r._env)return;return Object.freeze({isTrusted:r._env.isTrusted,value:Object.freeze({...r._env.value})})},executeCommand(e,i){if(!t)throw Error("This terminal does not support the executeCommand API.");let n=e;if(i)for(let e of i)!e.match(/["'`]/)&&e.match(/\s/)?n+=` "${e}"`:n+=` ${e}`;r._onDidRequestShellExecution.fire(n);let o={value:n,confidence:eh.TerminalShellExecutionCommandLineConfidence.High,isTrusted:!0};return r.requestNewShellExecution(o,r._cwd).value}}}requestNewShellExecution(e,t){let i=new nV(e,t??this._cwd);return nG(e.value).length>1&&(this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:nG(e.value)}),this._pendingExecutions.push(i),this._onDidRequestNewExecution.fire(e.value),i}startShellExecution(e,t){let i;if(this._pendingEndingExecution&&(this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._pendingEndingExecution.value,exitCode:void 0}),this._pendingEndingExecution=void 0),this._currentExecution){if(this._currentExecutionProperties?.isMultiLine&&this._currentExecutionProperties.unresolvedCommandLines){let t=nQ(this._currentExecutionProperties.unresolvedCommandLines,e);if(t){this._currentExecutionProperties.unresolvedCommandLines=t.unresolvedCommandLines;return}}this._currentExecution.endExecution(void 0),this._currentExecution.flush(),this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._currentExecution.value,exitCode:void 0})}if(e.confidence===eh.TerminalShellExecutionCommandLineConfidence.High)for(let[t,r]of this._pendingExecutions.entries())if(r.value.commandLine.value===e.value){i=r,this._currentExecutionProperties={isMultiLine:!1,unresolvedCommandLines:void 0},i=r,this._pendingExecutions.splice(t,1);break}else{let n=nQ(nG(r.value.commandLine.value),e);if(n){this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:n.unresolvedCommandLines},i=r,this._pendingExecutions.splice(t,1);break}}else i=this._pendingExecutions.shift();i||(i=new nV(e,t??this._cwd)),this._currentExecution=i,this._onDidStartTerminalShellExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:this._currentExecution.value})}emitData(e){this.currentExecution?.emitData(e)}endShellExecution(e,t){if((!this._currentExecutionProperties?.isMultiLine||!this._currentExecutionProperties.unresolvedCommandLines||!(this._currentExecutionProperties.unresolvedCommandLines.length>0))&&this._currentExecution){let i=this._currentExecutionProperties?.isMultiLine?this._currentExecution.value.commandLine:e;this._currentExecution.endExecution(i);let r=this._currentExecution;this._pendingEndingExecution=r,this._currentExecution=void 0,r.flush().then(()=>{this._pendingEndingExecution===r&&(this._onDidRequestEndExecution.fire({terminal:this._terminal,shellIntegration:this.value,execution:r.value,exitCode:t}),this._pendingEndingExecution=void 0)})}}setEnv(e,t,i){let r={};for(let i=0;i<e.length;i++)r[e[i]]=t[i];this._env={value:r,isTrusted:i},this._fireChangeEvent()}setCwd(e){let t=!1;eD.URI.isUri(this._cwd)?t=!eD.URI.isUri(e)||this._cwd.toString()!==e.toString():this._cwd!==e&&(t=!0),t&&(this._cwd=e,this._fireChangeEvent())}_fireChangeEvent(){this._onDidRequestChangeShellIntegration.fire({terminal:this._terminal,shellIntegration:this.value})}}class nV{constructor(e,t){this._commandLine=e,this.cwd=t,this._isEnded=!1;const i=this;this.value={get commandLine(){return i._commandLine},get cwd(){return i.cwd},read:()=>i._createDataStream()}}_createDataStream(){if(!this._dataStream){if(this._isEnded)return eU.AsyncIterableObject.EMPTY;this._dataStream=new nB}return this._dataStream.createIterable()}emitData(e){this._isEnded||this._dataStream?.emitData(e)}endExecution(e){e&&(this._commandLine=e),this._dataStream?.endExecution(),this._isEnded=!0}async flush(){this._dataStream&&(await this._dataStream.flush(),this._dataStream.dispose(),this._dataStream=void 0)}}class nB extends nq.Disposable{constructor(){super(...arguments),this._iterables=[],this._emitters=[]}createIterable(){this._barrier||(this._barrier=new eU.Barrier);let e=this._barrier,t=new eU.AsyncIterableObject(async t=>{this._emitters.push(t),await e.wait()});return this._iterables.push(t),t}emitData(e){for(let t of this._emitters)t.emitOne(e)}endExecution(){this._barrier?.open()}async flush(){await Promise.all(this._iterables.map(e=>e.toPromise()))}}function nG(e){return e.split("\n").map(e=>e.trim()).filter(e=>e.length>0)}function nQ(e,t){if(0===e.length)return!1;let i=[...e],r=nG(t.value);if(i&&i.length>0){for(;i.length>0&&i[0]===r[0];)i.shift(),r.shift();if(0===r.length)return{unresolvedCommandLines:i}}return!1}var nJ=eH;(_=X||(X={}))[_.CR=13]="CR",_[_.LF=10]="LF",_[_.COLON=58]="COLON",_[_.SPACE=32]="SPACE";class nY{constructor(e){this.dataBuffer="",this.eventTypeBuffer="",this.buffer=[],this.endedOnCR=!1,this.onEventHandler=e,this.decoder=new TextDecoder("utf-8")}getLastEventId(){return this.lastEventIdBuffer}getReconnectionTime(){return this.reconnectionTime}feed(e){if(0===e.length)return;let t=0;for(this.endedOnCR&&e[0]===X.LF&&t++,this.endedOnCR=!1;t<e.length;){let i=e.indexOf(X.CR,t),r=e.indexOf(X.LF,t),n=-1===i?r:-1===r?i:Math.min(i,r);if(-1===n)break;let o="";for(let e of this.buffer)o+=this.decoder.decode(e,{stream:!0});o+=this.decoder.decode(e.subarray(t,n)),this.processLine(o),this.buffer.length=0,t=n+(e[n]===X.CR&&e[n+1]===X.LF?2:1)}t<e.length?this.buffer.push(e.subarray(t)):this.endedOnCR=e[e.length-1]===X.CR}processLine(e){let t,i;if(!e.length)return void this.dispatchEvent();if(e.startsWith(":"))return;let r=e.indexOf(":");-1===r?(t=e,i=""):(t=e.substring(0,r),(i=e.substring(r+1)).startsWith(" ")&&(i=i.substring(1))),this.processField(t,i)}processField(e,t){switch(e){case"event":this.eventTypeBuffer=t;break;case"data":this.dataBuffer+=t,this.dataBuffer+="\n";break;case"id":t.includes("\0")?this.currentEventId=void 0:this.currentEventId=this.lastEventIdBuffer=t;break;case"retry":/^\d+$/.test(t)&&(this.reconnectionTime=parseInt(t,10))}}dispatchEvent(){if(""===this.dataBuffer){this.dataBuffer="",this.eventTypeBuffer="";return}this.dataBuffer.endsWith("\n")&&(this.dataBuffer=this.dataBuffer.substring(0,this.dataBuffer.length-1));let e={type:this.eventTypeBuffer||"message",data:this.dataBuffer};void 0!==this.currentEventId&&(e.id=this.currentEventId),void 0!==this.reconnectionTime&&(e.retry=this.reconnectionTime),this.onEventHandler(e),this.reset()}reset(){this.dataBuffer="",this.eventTypeBuffer="",this.currentEventId=void 0}}var nX=e.i(183866),nZ=e.i(367835),n0=e.i(701575),n1=e.i(585883),n2=e.i(237867);let n6=(0,eR.createDecorator)("IExtHostMpcService"),n3=(0,nX.vObj)({label:(0,nX.vString)(),version:(0,nX.vOptionalProp)((0,nX.vString)()),metadata:(0,nX.vOptionalProp)((0,nX.vObj)({capabilities:(0,nX.vOptionalProp)((0,nX.vObjAny)()),serverInfo:(0,nX.vOptionalProp)((0,nX.vObjAny)()),tools:(0,nX.vOptionalProp)((0,nX.vArray)((0,nX.vObj)({availability:(0,nX.vNumber)(),definition:(0,nX.vObjAny)()})))})),authentication:(0,nX.vOptionalProp)((0,nX.vObj)({providerId:(0,nX.vString)(),scopes:(0,nX.vArray)((0,nX.vString)())}))}),n4=class extends nJ.Disposable{constructor(e,t,i,r,n){super(),this._logService=t,this._extHostInitData=i,this._workspaceService=r,this._variableResolver=n,this._initialProviderPromises=new Set,this._sseEventSources=this._register(new nJ.DisposableMap),this._unresolvedMcpServers=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadMcp)}$startMcp(e,t){this._startMcp(e,n1.McpServerLaunch.fromSerialized(t.launch),t.defaultCwd&&eD.URI.revive(t.defaultCwd),t.errorOnUserInteraction)}_startMcp(e,t,i,r){if(t.type===n1.McpServerTransportType.HTTP)return void this._sseEventSources.set(e,new n8(e,t,this._proxy,this._logService,r));throw Error("not implemented")}async $substituteVariables(e,t){let i=eD.URI.revive(e),r=i&&await this._workspaceService.resolveWorkspaceFolder(i);return(await this._variableResolver.getResolver()).resolveAsync(r&&{uri:r.uri,name:r.name,index:r.index},t)}$stopMcp(e){this._sseEventSources.get(e)?.close().then(()=>this._didClose(e))}_didClose(e){this._sseEventSources.deleteAndDispose(e)}$sendMessage(e,t){this._sseEventSources.get(e)?.send(t)}async $waitForInitialCollectionProviders(){await Promise.all(this._initialProviderPromises)}async $resolveMcpLaunch(e,t){let i=this._unresolvedMcpServers.get(e);if(!i)return;let r=i.servers.find(e=>e.label===t);if(!r)return;if(!i.provider.resolveMcpServerDefinition)return e6.McpServerDefinition.from(r);let n=await i.provider.resolveMcpServerDefinition(r,ef.CancellationToken.None);return n?e6.McpServerDefinition.from(n):void 0}registerMcpConfigurationProvider(e,t,i){let r=new nJ.DisposableStore,n=e.contributes?.mcpServerDefinitionProviders?.find(e=>e.id===t);if(!n)throw Error(`MCP configuration providers must be registered in the contributes.mcpServerDefinitionProviders array within your package.json, but "${t}" was not`);let o={id:(0,n1.extensionPrefixedIdentifier)(e.identifier,t),isTrustedByDefault:!0,label:n?.label??e.displayName??e.name,scope:n0.StorageScope.WORKSPACE,canResolveLaunch:"function"==typeof i.resolveMcpServerDefinition,extensionId:e.identifier.value,configTarget:this._extHostInitData.remote.isRemote?t_.ConfigurationTarget.USER_REMOTE:t_.ConfigurationTarget.USER},s=async()=>{let t=await i.provideMcpServerDefinitions(ef.CancellationToken.None);this._unresolvedMcpServers.set(o.id,{servers:t??[],provider:i});let r=[];for(let i of t??[]){let t,n=eI.ExtensionIdentifier.toKey(e.identifier)+"/"+i.label;if(r.some(e=>e.id===n)){let e=2;for(;r.some(t=>t.id===n+e);)e++;n+=e}n3.validateOrThrow(i),i.authentication&&(0,tp.checkProposedApiEnabled)(e,"mcpToolDefinitions"),(0,tp.isProposedApiEnabled)(e,"mcpToolDefinitions")&&i.metadata&&(t={capabilities:i.metadata.capabilities,instructions:i.metadata.instructions,serverInfo:i.metadata.serverInfo,tools:i.metadata.tools?.map(e=>({availability:e.availability===eh.McpToolAvailability.Dynamic?n1.McpServerStaticToolAvailability.Dynamic:n1.McpServerStaticToolAvailability.Initial,definition:e.definition}))}),r.push({id:n,label:i.label,cacheNonce:i.version||"$$NONE",staticMetadata:t,launch:e6.McpServerDefinition.from(i)})}this._proxy.$upsertMcpCollection(o,r)};r.add((0,nJ.toDisposable)(()=>{this._unresolvedMcpServers.delete(o.id),this._proxy.$deleteMcpCollection(o.id)})),i.onDidChangeMcpServerDefinitions&&r.add(i.onDidChangeMcpServerDefinitions(s)),i.onDidChangeServerDefinitions&&r.add(i.onDidChangeServerDefinitions(s)),i.onDidChange&&r.add(i.onDidChange(s));let a=new Promise(e=>{setTimeout(()=>s().finally(()=>{this._initialProviderPromises.delete(a),e()}),0)});return this._initialProviderPromises.add(a),r}};n4=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,eM.ILogService),(0,ek.__param)(2,ej.IExtHostInitDataService),(0,ek.__param)(3,td),(0,ek.__param)(4,np)],n4),(y=Z||(Z={}))[y.Unknown=0]="Unknown",y[y.Http=1]="Http",y[y.SSE=2]="SSE";let n5=[301,302,303,307,308];class n8 extends nJ.Disposable{constructor(e,t,i,r,n){super(),this._id=e,this._launch=t,this._proxy=i,this._logService=r,this._errorOnUserInteraction=n,this._requestSequencer=new eU.Sequencer,this._postEndpoint=new eU.DeferredPromise,this._mode={value:Z.Unknown},this._cts=new ef.CancellationTokenSource,this._abortCtrl=new AbortController,this._didSendClose=!1,this._register((0,nJ.toDisposable)(()=>{this._abortCtrl.abort(),this._cts.dispose(!0)})),this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Running})}async send(e){try{this._mode.value===Z.Unknown?await this._requestSequencer.queue(()=>this._send(e)):await this._send(e)}catch(t){let e=`Error sending message to ${this._launch.uri}: ${String(t)}`;this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Error,message:e})}}async close(){if(this._mode.value===Z.Http&&this._mode.sessionId&&!this._didSendClose){this._didSendClose=!0;try{await this._closeSession(this._mode.sessionId)}catch{}}this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Stopped})}async _closeSession(e){let t={...Object.fromEntries(this._launch.headers),"Mcp-Session-Id":e};try{await this._addAuthHeader(t,{errorOnUserInteraction:!0})}catch(e){this._log(ew.LogLevel.Debug,"Skipping session close: authentication no longer available");return}await this._fetch(this._launch.uri.toString(!0),{method:"DELETE",headers:t})}_send(e){return this._mode.value===Z.SSE?this._sendLegacySSE(this._mode.endpoint,e):this._sendStreamableHttp(e,this._mode.value===Z.Http?this._mode.sessionId:void 0)}async _sendStreamableHttp(e,t){let i=new TextEncoder().encode(e),r={...Object.fromEntries(this._launch.headers),"Content-Type":"application/json","Content-Length":String(i.length),Accept:"text/event-stream, application/json"};t&&(r["Mcp-Session-Id"]=t),await this._addAuthHeader(r);let n=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"POST",headers:r,body:i},r),o=this._mode.value===Z.Unknown,s=n.headers.get("Mcp-Session-Id");if(s&&(this._mode={value:Z.Http,sessionId:s}),this._mode.value===Z.Unknown&&n.status>=400&&n.status<500&&!n7(n.status)){this._log(ew.LogLevel.Info,`${n.status} status sending message to ${this._launch.uri}, will attempt to fall back to legacy SSE`),this._sseFallbackWithMessage(e);return}if(n.status>=300){let e=this._mode.value===Z.Http&&!!this._mode.sessionId&&(400===n.status||404===n.status);this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Error,message:`${n.status} status sending message to ${this._launch.uri}: ${await this._getErrText(n)}`+(e?"; will retry with new session ID":""),shouldRetry:e});return}this._mode.value===Z.Unknown&&(this._mode={value:Z.Http,sessionId:void 0}),o&&this._attachStreamableBackchannel(),await this._handleSuccessfulStreamableHttp(n,e)}async _sseFallbackWithMessage(e){let t=await this._attachSSE();t&&(this._mode={value:Z.SSE,endpoint:t},await this._sendLegacySSE(t,e))}async _handleSuccessfulStreamableHttp(e,t){if(202===e.status)return;let i=e.headers.get("Content-Type")?.toLowerCase()||"";if(i.startsWith("text/event-stream")){let i=new nY(e=>{if("message"===e.type)this._proxy.$onDidReceiveMessage(this._id,e.data);else if("endpoint"===e.type)throw this._log(ew.LogLevel.Warning,`Received SSE endpoint from a POST to ${this._launch.uri}, will fall back to legacy SSE`),this._sseFallbackWithMessage(t),new eg.CancellationError});try{await this._doSSE(i,e)}catch(e){this._log(ew.LogLevel.Warning,`Error reading SSE stream: ${String(e)}`)}}else if(i.startsWith("application/json"))this._proxy.$onDidReceiveMessage(this._id,await e.text());else{let t=await e.text();!function(e){try{return JSON.parse(e),!0}catch(e){return!1}}(t)?this._log(ew.LogLevel.Warning,`Unexpected ${e.status} response for request: ${t}`):this._proxy.$onDidReceiveMessage(this._id,t)}}async _attachStreamableBackchannel(){let e,t;for(let i=0;!this._store.isDisposed;i++){let r;void 0!==t?(await (0,eU.timeout)(Math.max(0,t-Date.now()),this._cts.token),t=void 0):await (0,eU.timeout)(Math.min(1e3*i,3e4),this._cts.token);try{let t={...Object.fromEntries(this._launch.headers),Accept:"text/event-stream"};await this._addAuthHeader(t),this._mode.value===Z.Http&&void 0!==this._mode.sessionId&&(t["Mcp-Session-Id"]=this._mode.sessionId),e&&(t["Last-Event-ID"]=e),r=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"GET",headers:t},t)}catch(e){this._log(ew.LogLevel.Info,`Error connecting to ${this._launch.uri} for async notifications, will retry`);continue}if(r.status>=400)return void this._log(ew.LogLevel.Debug,`${r.status} status connecting to ${this._launch.uri} for async notifications; they will be disabled: ${await this._getErrText(r)}`);r.headers.get("content-type")?.toLowerCase().includes("text/event-stream")&&(i=0);let n=new nY(i=>{i.retry&&(t=Date.now()+i.retry),"message"===i.type&&i.data&&this._proxy.$onDidReceiveMessage(this._id,i.data),i.id&&(e=i.id)});try{await this._doSSE(n,r)}catch(e){this._log(ew.LogLevel.Info,`Error reading from async stream, we will reconnect: ${e}`)}}}async _attachSSE(){let e,t=new eU.DeferredPromise,i={...Object.fromEntries(this._launch.headers),Accept:"text/event-stream"};await this._addAuthHeader(i);try{if((e=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"GET",headers:i},i)).status>=300)return void this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Error,message:`${e.status} status connecting to ${this._launch.uri} as SSE: ${await this._getErrText(e)}`})}catch(e){this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Error,message:`Error connecting to ${this._launch.uri} as SSE: ${e}`});return}let r=new nY(e=>{"message"===e.type?this._proxy.$onDidReceiveMessage(this._id,e.data):"endpoint"===e.type&&t.complete(new URL(e.data,this._launch.uri.toString(!0)).toString())});return this._register((0,nJ.toDisposable)(()=>t.cancel())),this._doSSE(r,e).catch(e=>{this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Error,message:`Error reading SSE stream: ${String(e)}`})}),t.p}async _sendLegacySSE(e,t){let i=new TextEncoder().encode(t),r={...Object.fromEntries(this._launch.headers),"Content-Type":"application/json","Content-Length":String(i.length)};await this._addAuthHeader(r);let n=await this._fetch(e,{method:"POST",headers:r,body:i});n.status>=300&&this._log(ew.LogLevel.Warning,`${n.status} status sending message to ${this._postEndpoint}: ${await this._getErrText(n)}`)}async _doSSE(e,t){let i;if(!t.body)return;let r=t.body.getReader();do{try{i=await (0,eU.raceCancellationError)(r.read(),this._cts.token)}catch(e){if(r.cancel(),this._store.isDisposed)return;throw e}i.value&&e.feed(i.value)}while(!i.done)}async _addAuthHeader(e,t){let i=t?.errorOnUserInteraction??this._errorOnUserInteraction;if(this._authMetadata)try{let r={authorizationServer:this._authMetadata.authorizationServer.toJSON(),authorizationServerMetadata:this._authMetadata.serverMetadata,resourceMetadata:this._authMetadata.resourceMetadata,scopes:this._authMetadata.scopes},n=await this._proxy.$getTokenFromServerMetadata(this._id,r,{errorOnUserInteraction:i,forceNewRegistration:t?.forceNewRegistration});n&&(e.Authorization=`Bearer ${n}`)}catch(e){if(n1.UserInteractionRequiredError.is(e))throw this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Stopped,reason:"needs-user-interaction"}),new eg.CancellationError;this._log(ew.LogLevel.Warning,`Error getting token from server metadata: ${String(e)}`)}if(this._launch.authentication)try{this._log(ew.LogLevel.Debug,`Using provided authentication config: providerId=${this._launch.authentication.providerId}, scopes=${this._launch.authentication.scopes.join(", ")}`);let r=await this._proxy.$getTokenForProviderId(this._id,this._launch.authentication.providerId,this._launch.authentication.scopes,{errorOnUserInteraction:i,forceNewRegistration:t?.forceNewRegistration});r&&(e.Authorization=`Bearer ${r}`,this._log(ew.LogLevel.Info,"Successfully obtained token from provided authentication config"))}catch(e){if(n1.UserInteractionRequiredError.is(e))throw this._proxy.$onDidChangeState(this._id,{state:n1.McpConnectionState.Kind.Stopped,reason:"needs-user-interaction"}),new eg.CancellationError;this._log(ew.LogLevel.Warning,`Error getting token from provided authentication config: ${String(e)}`)}return e}_log(e,t){this._store.isDisposed||this._proxy.$onDidPublishLog(this._id,e,t)}async _getErrText(e){try{return await e.text()}catch{return e.statusText}}async _fetchWithAuthRetry(e,t,i){let r=()=>this._fetch(e,t),n=await r();if(n7(n.status)&&(this._authMetadata?this._authMetadata.update(n)&&(await this._addAuthHeader(i),i.Authorization&&(t.headers=i,n=await r())):(this._authMetadata=await oe(e,n,{launchHeaders:this._launch.headers,fetch:(e,t)=>this._fetch(e,t),log:(e,t)=>this._log(e,t)}),this._proxy.$logMcpAuthSetup(this._authMetadata.telemetry),await this._addAuthHeader(i),i.Authorization&&(t.headers=i,n=await r()))),i.Authorization&&n7(n.status)){let e=await this._getErrText(n);this._log(ew.LogLevel.Info,`Received ${n.status} status with Authorization header, retrying with new auth registration. Error details: ${e||"no additional details"}`),await this._addAuthHeader(i,{forceNewRegistration:!0}),n=await r()}return n}async _fetch(e,t){let i;if(t.headers["user-agent"]=`${nZ.default.nameLong}/${nZ.default.version}`,(0,ew.canLog)(this._logService.getLevel(),ew.LogLevel.Trace)){let i={...t,headers:{...t.headers}};i.body&&(i.body=new TextDecoder().decode(i.body)),i.headers?.Authorization&&(i.headers.Authorization="***"),this._log(ew.LogLevel.Trace,`Fetching ${e} with options: ${JSON.stringify(i)}`)}let r=e;for(let e=0;e<5&&(i=await this._fetchInternal(r,{...t,signal:this._abortCtrl.signal,redirect:"manual"}),n5.includes(i.status));e++){let e=i.headers.get("location");if(!e)break;let n=new URL(e,r).toString();this._log(ew.LogLevel.Trace,`Redirect (${i.status}) from ${r} to ${n}`),r=n,(303===i.status||(301===i.status||302===i.status)&&"POST"===t.method)&&(t.method="GET",delete t.body)}if((0,ew.canLog)(this._logService.getLevel(),ew.LogLevel.Trace)){let e={};i.headers.forEach((t,i)=>{e[i]=t}),this._log(ew.LogLevel.Trace,`Fetched ${r}: ${JSON.stringify({status:i.status,headers:e})}`)}return i}_fetchInternal(e,t){return fetch(e,t)}}function n7(e){return 401===e||403===e}class n9{constructor(e,t,i,r,n,o){this.authorizationServer=e,this.serverMetadata=t,this.resourceMetadata=i,this.telemetry=n,this._log=o,this._scopes=r}get scopes(){return this._scopes}update(e){let t=this._parseScopesFromResponse(e);return!(0,rc.scopesMatch)(t,this._scopes)&&(this._log(ew.LogLevel.Info,`Scopes changed from ${JSON.stringify(this._scopes)} to ${JSON.stringify(t)}, updating`),this._scopes=t,!0)}_parseScopesFromResponse(e){if(!e.headers.has("WWW-Authenticate"))return;let t=e.headers.get("WWW-Authenticate");for(let e of(0,rc.parseWWWAuthenticateHeader)(t))if("Bearer"===e.scheme&&e.params.scope){let t=e.params.scope.split(rc.AUTH_SCOPE_SEPARATOR).filter(e=>e.trim().length);if(t.length)return this._log(ew.LogLevel.Info,`Found scope challenge in WWW-Authenticate header: ${e.params.scope}`),t}}}async function oe(e,t,i){let r,n,o,{launchHeaders:s,fetch:a,log:l}=i,c=ev.McpAuthResourceMetadataSource.None,{resourceMetadataChallenge:d,scopesChallenge:u}=function(e,t){let i,r;if(e.headers.has("WWW-Authenticate")){let n=e.headers.get("WWW-Authenticate");for(let e of(0,rc.parseWWWAuthenticateHeader)(n))if("Bearer"===e.scheme){if(!i&&e.params.resource_metadata&&(i=e.params.resource_metadata,t(ew.LogLevel.Debug,`Found resource_metadata challenge in WWW-Authenticate header: ${i}`)),!r&&e.params.scope){let i=e.params.scope.split(rc.AUTH_SCOPE_SEPARATOR).filter(e=>e.trim().length);i.length&&(t(ew.LogLevel.Debug,`Found scope challenge in WWW-Authenticate header: ${e.params.scope}`),r=i)}if(i&&r)break}}return{resourceMetadataChallenge:i,scopesChallenge:r}}(t,l),h=u;try{let{metadata:t,discoveryUrl:i,errors:u}=await (0,rc.fetchResourceMetadata)(e,d,{sameOriginHeaders:{...Object.fromEntries(s),"MCP-Protocol-Version":n2.MCP.LATEST_PROTOCOL_VERSION},fetch:(e,t)=>a(e,t)});for(let e of u)l(ew.LogLevel.Warning,`Error fetching resource metadata: ${e}`);l(ew.LogLevel.Info,`Discovered resource metadata at ${i}`),c=d?ev.McpAuthResourceMetadataSource.Header:ev.McpAuthResourceMetadataSource.WellKnown,(n=t.authorization_servers?.[0])?(l(ew.LogLevel.Info,`Using auth server metadata url: ${n}`),r=ev.McpAuthServerMetadataSource.ResourceMetadata):l(ew.LogLevel.Warning,`No authorization_servers found in resource metadata ${i} - Is this resource metadata configured correctly?`),h??=t.scopes_supported,o=t}catch(e){l(ew.LogLevel.Warning,`Could not fetch resource metadata: ${String(e)}`)}let g=new URL(t.url).origin,p={};n||(n=g,p={...Object.fromEntries(s),"MCP-Protocol-Version":n2.MCP.LATEST_PROTOCOL_VERSION});try{l(ew.LogLevel.Debug,`Fetching auth server metadata for: ${n} ...`);let{metadata:e,discoveryUrl:t,errors:i}=await (0,rc.fetchAuthorizationServerMetadata)(n,{additionalHeaders:p,fetch:(e,t)=>a(e,t)});for(let e of i)l(ew.LogLevel.Warning,`Error fetching authorization server metadata: ${e}`);return l(ew.LogLevel.Info,`Discovered authorization server metadata at ${t}`),r??=ev.McpAuthServerMetadataSource.WellKnown,new n9(eD.URI.parse(n),e,o,h,{resourceMetadataSource:c,serverMetadataSource:r},l)}catch(e){l(ew.LogLevel.Warning,`Error populating auth server metadata for ${n}: ${String(e)}`)}let m=(0,rc.getDefaultMetadataForUrl)(new URL(g));return l(ew.LogLevel.Info,"Using default auth metadata"),new n9(eD.URI.parse(g),m,o,h,{resourceMetadataSource:c,serverMetadataSource:ev.McpAuthServerMetadataSource.Default},l)}var ot=eH;let oi=(0,eR.createDecorator)("IExtHostDataChannels");class or extends ot.Disposable{constructor(e){super(),this.channelId=e,this._onDidReceiveData=new ey.Emitter,this.onDidReceiveData=this._onDidReceiveData.event,this._register(this._onDidReceiveData)}_fireDidReceiveData(e){this._onDidReceiveData.fire({data:e})}toString(){return`DataChannel(${this.channelId})`}}(0,eT.registerSingleton)(rO,rF,eT.InstantiationType.Delayed),(0,eT.registerSingleton)(eM.ILoggerService,nU,eT.InstantiationType.Delayed),(0,eT.registerSingleton)(iM,iL,eT.InstantiationType.Delayed),(0,eT.registerSingleton)(t2,t1,eT.InstantiationType.Eager),(0,eT.registerSingleton)(rv,r_,eT.InstantiationType.Eager),(0,eT.registerSingleton)(rT,rP,eT.InstantiationType.Eager),(0,eT.registerSingleton)(tD,tw,eT.InstantiationType.Eager),(0,eT.registerSingleton)(eq,eW,eT.InstantiationType.Eager),(0,eT.registerSingleton)(r4,r5,eT.InstantiationType.Eager),(0,eT.registerSingleton)(nv,nw,eT.InstantiationType.Eager),(0,eT.registerSingleton)(tf,tm,eT.InstantiationType.Eager),(0,eT.registerSingleton)(ip,ig,eT.InstantiationType.Eager),(0,eT.registerSingleton)(r$,rH,eT.InstantiationType.Eager),(0,eT.registerSingleton)(e$,class{constructor(){this._systemSchemes=new Set(Object.keys(eO.Schemas)),this._providerInfo=new Map,this.extUri=new eN.ExtUri(e=>{let t=this._providerInfo.get(e.scheme);return void 0!==t&&!(t&ep.FileSystemProviderCapabilities.PathCaseSensitive)})}$acceptProviderInfos(e,t){null===t?this._providerInfo.delete(e.scheme):this._providerInfo.set(e.scheme,t)}isFreeScheme(e){return!this._providerInfo.has(e)&&!this._systemSchemes.has(e)}getCapabilities(e){return this._providerInfo.get(e)}},eT.InstantiationType.Eager),(0,eT.registerSingleton)(eJ,eQ,eT.InstantiationType.Delayed),(0,eT.registerSingleton)(nF,nO,eT.InstantiationType.Eager),(0,eT.registerSingleton)(i7,i8,eT.InstantiationType.Eager),(0,eT.registerSingleton)(iW,iU,eT.InstantiationType.Eager),(0,eT.registerSingleton)(iw,iP,eT.InstantiationType.Eager),(0,eT.registerSingleton)(nj,nz,eT.InstantiationType.Eager),(0,eT.registerSingleton)(ro.IExtHostTunnelService,ro.ExtHostTunnelService,eT.InstantiationType.Eager),(0,eT.registerSingleton)(ru,rd,eT.InstantiationType.Eager),(0,eT.registerSingleton)(rp,rg,eT.InstantiationType.Eager),(0,eT.registerSingleton)(td,tc,eT.InstantiationType.Eager),(0,eT.registerSingleton)(rM,rA,eT.InstantiationType.Eager),(0,eT.registerSingleton)(iV,iQ,eT.InstantiationType.Eager),(0,eT.registerSingleton)(np,nf,eT.InstantiationType.Eager),(0,eT.registerSingleton)(n6,n4,eT.InstantiationType.Eager),(0,eT.registerSingleton)(oi,class{constructor(){this._channels=new Map}createDataChannel(e,t){(0,tp.checkProposedApiEnabled)(e,"dataChannels");let i=this._channels.get(t);return i||(i=new or(t),this._channels.set(t,i)),i}$onDidReceiveData(e,t){let i=this._channels.get(e);i&&i._fireDidReceiveData(t)}},eT.InstantiationType.Eager);var on=e.i(481205),oo=e.i(955612),os=e.i(526097),oa=e.i(37305);let ol=class extends oa.LogService{constructor(e,t,i){const r=i.remote.isRemote?"remoteexthost":e?"workerexthost":"exthost",n=i.remote.isRemote?(0,e1.localize)(2695,"Extension Host (Remote)"):e?(0,e1.localize)(2696,"Extension Host (Worker)"):(0,e1.localize)(2697,"Extension Host");super(t.createLogger(r,{name:n}))}};ol=(0,ek.__decorate)([(0,ek.__param)(1,eM.ILoggerService),(0,ek.__param)(2,ej.IExtHostInitDataService)],ol);class oc{static async installEarlyHandler(e){Error.stackTraceLimit=100;let t=e.get(eM.ILogService),i=e.get(eP.IExtHostRpcService).getProxy(ev.MainContext.MainThreadErrors);(0,eg.setUnexpectedErrorHandler)(e=>{t.error(e);let r=(0,eg.transformErrorForSerialization)(e);i.$onUnexpectedError(r)})}static async installFullHandler(e){let t=e.get(eM.ILogService),i=e.get(eP.IExtHostRpcService),r=e.get(rB),n=e.get(tQ),o=e.get(iM),s=i.getProxy(ev.MainContext.MainThreadExtensionService),a=i.getProxy(ev.MainContext.MainThreadErrors),l=await r.getExtensionRegistry(),c=await r.getExtensionPathIndex(),d=new WeakMap;function u(e,t){let i,r;if(d.has(e))return d.get(e).stack;let n="";for(let e of t)n+=`
22
+ at ${e.toString()}`,r=e.getFileName(),!i&&r&&(i=c.findSubstr(eD.URI.file(r)));let o=`${e.name||"Error"}: ${e.message||""}${n}`;return d.set(e,{extensionIdentifier:i?.identifier,stack:o}),o}let h=Symbol("prepareStackTrace wrapped"),g=u;Object.defineProperty(Error,"prepareStackTrace",{configurable:!1,get:()=>g,set(e){if(e===u||!e||e[h]){g=e||u;return}Object.assign(g=function(t,i){return u(t,i),e.call(Error,t,i)},{[h]:!0})}}),(0,eg.setUnexpectedErrorHandler)(e=>{let i;eg.PendingMigrationError.is(e)||t.error(e);let r=(0,eg.transformErrorForSerialization)(e);if(e instanceof eI.ExtensionError)i=e.extension;else{let t=d.get(e);i=t?.extensionIdentifier}if(i)if(eg.PendingMigrationError.is(e)){let t=l.getExtensionDescription(i);t&&o.report(e.name,t,`${e.message}
23
+ FROM: ${e.stack}`)}else{s.$onExtensionRuntimeError(i,r);let o=n.onExtensionError(i,e);t.trace("forwarded error to extension?",o,i)}}),eg.errorHandler.addListener(e=>{a.$onUnexpectedError(e)})}}class od{constructor(e,t,i,r,n){this._hostUtils=i,this._rpcProtocol=new on.RPCProtocol(e,null,r),t=od._transform(t,this._rpcProtocol);const o=new rn.ServiceCollection(...(0,eT.getSingletonServiceDescriptors)());o.set(ej.IExtHostInitDataService,{_serviceBrand:void 0,...t,messagePorts:n}),o.set(eP.IExtHostRpcService,new eP.ExtHostRpcService(this._rpcProtocol)),o.set(e3,new e4(r)),o.set(rq,i),o.set(eM.ILogService,new os.SyncDescriptor(ol,[!0],!0)),o.set(eM.ILoggerService,new os.SyncDescriptor(nU,[],!0));const s=new oo.InstantiationService(o,!0);ib.isWebWorker&&s.invokeFunction(oc.installEarlyHandler),this._logService=s.invokeFunction(e=>e.get(eM.ILogService)),(0,iJ.mark)("code/extHost/didCreateServices"),this._hostUtils.pid?this._logService.info(`Extension host with pid ${this._hostUtils.pid} started`):this._logService.info("Extension host started"),this._logService.trace("initData",t),this._extensionService=s.invokeFunction(e=>e.get(rB)),this._extensionService.initialize(),ib.isWebWorker&&s.invokeFunction(oc.installFullHandler)}async asBrowserUri(e){let t=this._rpcProtocol.getProxy(ev.MainContext.MainThreadExtensionService);return eD.URI.revive(await t.$asBrowserUri(e))}async getAllStaticBrowserUris(){let e=this._rpcProtocol.getProxy(ev.MainContext.MainThreadExtensionService);return(await e.$getAllStaticBrowserUris()).map(([e,t])=>[eD.URI.revive(e),eD.URI.revive(t)])}terminate(e){this._extensionService.terminate(e)}getExtHostExtensionService(){return this._extensionService}static _transform(e,t){e.extensions.allExtensions.forEach(e=>{e.extensionLocation=eD.URI.revive(t.transformIncomingURIs(e.extensionLocation))}),e.environment.appRoot=eD.URI.revive(t.transformIncomingURIs(e.environment.appRoot));let i=e.environment.extensionDevelopmentLocationURI;return i&&(e.environment.extensionDevelopmentLocationURI=i.map(e=>eD.URI.revive(t.transformIncomingURIs(e)))),e.environment.extensionTestsLocationURI=eD.URI.revive(t.transformIncomingURIs(e.environment.extensionTestsLocationURI)),e.environment.globalStorageHome=eD.URI.revive(t.transformIncomingURIs(e.environment.globalStorageHome)),e.environment.workspaceStorageHome=eD.URI.revive(t.transformIncomingURIs(e.environment.workspaceStorageHome)),e.nlsBaseUrl=eD.URI.revive(t.transformIncomingURIs(e.nlsBaseUrl)),e.logsLocation=eD.URI.revive(t.transformIncomingURIs(e.logsLocation)),e.workspace=t.transformIncomingURIs(e.workspace),e}}var ou=e.i(596436);e.i(467724);var oh=e.i(981399),og=e.i(536766),op=e.i(399362),om=e.i(370973),of=e.i(176876),ov=e.i(347589),o_=e.i(991307),oy=e.i(689318),oC=e.i(821788);class oS{constructor(e){this._relatedInformationProviders=new Map,this._nextHandle=0,this._proxy=e.getProxy(ev.MainContext.MainThreadAiRelatedInformation)}async $provideAiRelatedInformation(e,t,i){if(0===this._relatedInformationProviders.size)throw Error("No related information providers registered");let r=this._relatedInformationProviders.get(e);if(!r)throw Error("related information provider not found");return await r.provideRelatedInformation(t,i)??[]}getRelatedInformation(e,t,i){return this._proxy.$getAiRelatedInformation(t,i)}registerRelatedInformationProvider(e,t,i){let r=this._nextHandle;return this._nextHandle++,this._relatedInformationProviders.set(r,i),this._proxy.$registerAiRelatedInformationProvider(r,t),new eh.Disposable(()=>{this._proxy.$unregisterAiRelatedInformationProvider(r),this._relatedInformationProviders.delete(r)})}}class ob{constructor(e){this._settingsSearchProviders=new Map,this._nextHandle=0,this._proxy=e.getProxy(ev.MainContext.MainThreadAiSettingsSearch)}async $startSearch(e,t,i,r){if(0===this._settingsSearchProviders.size)throw Error("No related information providers registered");let n=this._settingsSearchProviders.get(e);if(!n)throw Error("Settings search provider not found");let o=new rs.Progress(t=>{this._proxy.$handleSearchResult(e,e6.AiSettingsSearch.fromSettingsSearchResult(t))});return n.provideSettingsSearchResults(t,i,o,r)}registerSettingsSearchProvider(e,t){let i=this._nextHandle;return this._nextHandle++,this._settingsSearchProviders.set(i,t),this._proxy.$registerAiSettingsSearchProvider(i),new eh.Disposable(()=>{this._proxy.$unregisterAiSettingsSearchProvider(i),this._settingsSearchProviders.delete(i)})}}var ow=e.i(772649),ox=e.i(373776),oD=e.i(568101),oE=e.i(750596),ok=e.i(102143);let oT=[new t5("vscode.executeDocumentHighlights","_executeDocumentHighlights","Execute document highlight provider.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of DocumentHighlight-instances.",oP(e6.DocumentHighlight.to))),new t5("vscode.executeDocumentSymbolProvider","_executeDocumentSymbolProvider","Execute document symbol provider.",[t3.Uri],new t4("A promise that resolves to an array of SymbolInformation and DocumentSymbol instances.",(e,t)=>{if(!(0,eY.isFalsyOrEmpty)(e)){class i extends oE.SymbolInformation{constructor(){super(...arguments),this.containerName=""}static to(e){let r=new i(e.name,e6.SymbolKind.to(e.kind),e.containerName||"",new tZ.Location(t[0],e6.Range.to(e.range)));return r.detail=e.detail,r.range=r.location.range,r.selectionRange=e6.Range.to(e.selectionRange),r.children=e.children?e.children.map(i.to):[],r}}return e.map(i.to)}})),new t5("vscode.executeFormatDocumentProvider","_executeFormatDocumentProvider","Execute document format provider.",[t3.Uri,new t3("options","Formatting options",e=>!0,e=>e)],new t4("A promise that resolves to an array of TextEdits.",oP(e6.TextEdit.to))),new t5("vscode.executeFormatRangeProvider","_executeFormatRangeProvider","Execute range format provider.",[t3.Uri,t3.Range,new t3("options","Formatting options",e=>!0,e=>e)],new t4("A promise that resolves to an array of TextEdits.",oP(e6.TextEdit.to))),new t5("vscode.executeFormatOnTypeProvider","_executeFormatOnTypeProvider","Execute format on type provider.",[t3.Uri,t3.Position,new t3("ch","Trigger character",e=>"string"==typeof e,e=>e),new t3("options","Formatting options",e=>!0,e=>e)],new t4("A promise that resolves to an array of TextEdits.",oP(e6.TextEdit.to))),new t5("vscode.executeDefinitionProvider","_executeDefinitionProvider","Execute all definition providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.experimental.executeDefinitionProvider_recursive","_executeDefinitionProvider_recursive","Execute all definition providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.executeTypeDefinitionProvider","_executeTypeDefinitionProvider","Execute all type definition providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.experimental.executeTypeDefinitionProvider_recursive","_executeTypeDefinitionProvider_recursive","Execute all type definition providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.executeDeclarationProvider","_executeDeclarationProvider","Execute all declaration providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.experimental.executeDeclarationProvider_recursive","_executeDeclarationProvider_recursive","Execute all declaration providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.executeImplementationProvider","_executeImplementationProvider","Execute all implementation providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.experimental.executeImplementationProvider_recursive","_executeImplementationProvider_recursive","Execute all implementation providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location or LocationLink instances.",oI)),new t5("vscode.executeReferenceProvider","_executeReferenceProvider","Execute all reference providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location-instances.",oP(e6.location.to))),new t5("vscode.experimental.executeReferenceProvider","_executeReferenceProvider_recursive","Execute all reference providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Location-instances.",oP(e6.location.to))),new t5("vscode.executeHoverProvider","_executeHoverProvider","Execute all hover providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Hover-instances.",oP(e6.Hover.to))),new t5("vscode.experimental.executeHoverProvider_recursive","_executeHoverProvider_recursive","Execute all hover providers.",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of Hover-instances.",oP(e6.Hover.to))),new t5("vscode.executeSelectionRangeProvider","_executeSelectionRangeProvider","Execute selection range provider.",[t3.Uri,new t3("position","A position in a text document",e=>Array.isArray(e)&&e.every(e=>tY.Position.isPosition(e)),e=>e.map(e6.Position.from))],new t4("A promise that resolves to an array of ranges.",e=>e.map(e=>{let t;for(let i of e.reverse())t=new eh.SelectionRange(e6.Range.to(i),t);return t}))),new t5("vscode.executeWorkspaceSymbolProvider","_executeWorkspaceSymbolProvider","Execute all workspace symbol providers.",[t3.String.with("query","Search string")],new t4("A promise that resolves to an array of SymbolInformation-instances.",e=>e.map(e6.WorkspaceSymbol.to))),new t5("vscode.prepareCallHierarchy","_executePrepareCallHierarchy","Prepare call hierarchy at a position inside a document",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of CallHierarchyItem-instances",e=>e.map(e6.CallHierarchyItem.to))),new t5("vscode.provideIncomingCalls","_executeProvideIncomingCalls","Compute incoming calls for an item",[t3.CallHierarchyItem],new t4("A promise that resolves to an array of CallHierarchyIncomingCall-instances",e=>e.map(e6.CallHierarchyIncomingCall.to))),new t5("vscode.provideOutgoingCalls","_executeProvideOutgoingCalls","Compute outgoing calls for an item",[t3.CallHierarchyItem],new t4("A promise that resolves to an array of CallHierarchyOutgoingCall-instances",e=>e.map(e6.CallHierarchyOutgoingCall.to))),new t5("vscode.prepareRename","_executePrepareRename","Execute the prepareRename of rename provider.",[t3.Uri,t3.Position],new t4("A promise that resolves to a range and placeholder text.",e=>{if(e)return{range:e6.Range.to(e.range),placeholder:e.text}})),new t5("vscode.executeDocumentRenameProvider","_executeDocumentRenameProvider","Execute rename provider.",[t3.Uri,t3.Position,t3.String.with("newName","The new symbol name")],new t4("A promise that resolves to a WorkspaceEdit.",e=>{if(e){if(e.rejectReason)throw Error(e.rejectReason);return e6.WorkspaceEdit.to(e)}})),new t5("vscode.executeLinkProvider","_executeLinkProvider","Execute document link provider.",[t3.Uri,t3.Number.with("linkResolveCount","Number of links that should be resolved, only when links are unresolved.").optional()],new t4("A promise that resolves to an array of DocumentLink-instances.",e=>e.map(e6.DocumentLink.to))),new t5("vscode.provideDocumentSemanticTokensLegend","_provideDocumentSemanticTokensLegend","Provide semantic tokens legend for a document",[t3.Uri],new t4("A promise that resolves to SemanticTokensLegend.",e=>{if(e)return new eh.SemanticTokensLegend(e.tokenTypes,e.tokenModifiers)})),new t5("vscode.provideDocumentSemanticTokens","_provideDocumentSemanticTokens","Provide semantic tokens for a document",[t3.Uri],new t4("A promise that resolves to SemanticTokens.",e=>{if(!e)return;let t=(0,ox.decodeSemanticTokensDto)(e);if("full"===t.type)return new eh.SemanticTokens(t.data,void 0)})),new t5("vscode.provideDocumentRangeSemanticTokensLegend","_provideDocumentRangeSemanticTokensLegend","Provide semantic tokens legend for a document range",[t3.Uri,t3.Range.optional()],new t4("A promise that resolves to SemanticTokensLegend.",e=>{if(e)return new eh.SemanticTokensLegend(e.tokenTypes,e.tokenModifiers)})),new t5("vscode.provideDocumentRangeSemanticTokens","_provideDocumentRangeSemanticTokens","Provide semantic tokens for a document range",[t3.Uri,t3.Range],new t4("A promise that resolves to SemanticTokens.",e=>{if(!e)return;let t=(0,ox.decodeSemanticTokensDto)(e);if("full"===t.type)return new eh.SemanticTokens(t.data,void 0)})),new t5("vscode.executeCompletionItemProvider","_executeCompletionItemProvider","Execute completion item provider.",[t3.Uri,t3.Position,t3.String.with("triggerCharacter","Trigger completion when the user types the character, like `,` or `(`").optional(),t3.Number.with("itemResolveCount","Number of completions to resolve (too large numbers slow down completions)").optional()],new t4("A promise that resolves to a CompletionList-instance.",(e,t,i)=>{if(!e)return new eh.CompletionList([]);let r=e.suggestions.map(e=>e6.CompletionItem.to(e,i));return new eh.CompletionList(r,e.incomplete)})),new t5("vscode.executeSignatureHelpProvider","_executeSignatureHelpProvider","Execute signature help provider.",[t3.Uri,t3.Position,t3.String.with("triggerCharacter","Trigger signature help when the user types the character, like `,` or `(`").optional()],new t4("A promise that resolves to SignatureHelp.",e=>{if(e)return e6.SignatureHelp.to(e)})),new t5("vscode.executeCodeLensProvider","_executeCodeLensProvider","Execute code lens provider.",[t3.Uri,t3.Number.with("itemResolveCount","Number of lenses that should be resolved and returned. Will only return resolved lenses, will impact performance)").optional()],new t4("A promise that resolves to an array of CodeLens-instances.",(e,t,i)=>oP(e=>new eh.CodeLens(e6.Range.to(e.range),e.command&&i.fromInternal(e.command)))(e))),new t5("vscode.executeCodeActionProvider","_executeCodeActionProvider","Execute code action provider.",[t3.Uri,new t3("rangeOrSelection","Range in a text document. Some refactoring provider requires Selection object.",e=>ti.Range.isRange(e),e=>tX.Selection.isSelection(e)?e6.Selection.from(e):e6.Range.from(e)),t3.String.with("kind","Code action kind to return code actions for").optional(),t3.Number.with("itemResolveCount","Number of code actions to resolve (too large numbers slow down code actions)").optional()],new t4("A promise that resolves to an array of Command-instances.",(e,t,i)=>oP(e=>{if(e._isSynthetic){if(!e.command)throw Error("Synthetic code actions must have a command");return i.fromInternal(e.command)}{let t=new eh.CodeAction(e.title,e.kind?new ok.CodeActionKind(e.kind):void 0);return e.edit&&(t.edit=e6.WorkspaceEdit.to(e.edit)),e.command&&(t.command=i.fromInternal(e.command)),t.isPreferred=e.isPreferred,t}})(e))),new t5("vscode.executeDocumentColorProvider","_executeDocumentColorProvider","Execute document color provider.",[t3.Uri],new t4("A promise that resolves to an array of ColorInformation objects.",e=>e?e.map(e=>new eh.ColorInformation(e6.Range.to(e.range),e6.Color.to(e.color))):[])),new t5("vscode.executeColorPresentationProvider","_executeColorPresentationProvider","Execute color presentation provider.",[new t3("color","The color to show and insert",e=>e instanceof eh.Color,e6.Color.from),new t3("context","Context object with uri and range",e=>!0,e=>({uri:e.uri,range:e6.Range.from(e.range)}))],new t4("A promise that resolves to an array of ColorPresentation objects.",e=>e?e.map(e6.ColorPresentation.to):[])),new t5("vscode.executeInlayHintProvider","_executeInlayHintProvider","Execute inlay hints provider",[t3.Uri,t3.Range],new t4("A promise that resolves to an array of Inlay objects",(e,t,i)=>e.map(e6.InlayHint.to.bind(void 0,i)))),new t5("vscode.executeFoldingRangeProvider","_executeFoldingRangeProvider","Execute folding range provider",[t3.Uri],new t4("A promise that resolves to an array of FoldingRange objects",(e,t)=>{if(e)return e.map(e6.FoldingRange.to)})),new t5("vscode.resolveNotebookContentProviders","_resolveNotebookContentProvider","Resolve Notebook Content Providers",[],new t4("A promise that resolves to an array of NotebookContentProvider static info objects.",oP(e=>({viewType:e.viewType,displayName:e.displayName,options:{transientOutputs:e.options.transientOutputs,transientCellMetadata:e.options.transientCellMetadata,transientDocumentMetadata:e.options.transientDocumentMetadata},filenamePattern:e.filenamePattern.map(e=>e6.NotebookExclusiveDocumentPattern.to(e))})))),new t5("vscode.executeInlineValueProvider","_executeInlineValueProvider","Execute inline value provider",[t3.Uri,t3.Range,new t3("context","An InlineValueContext",e=>e&&"number"==typeof e.frameId&&e.stoppedLocation instanceof ti.Range,e=>e6.InlineValueContext.from(e))],new t4("A promise that resolves to an array of InlineValue objects",e=>e.map(e6.InlineValue.to))),new t5("vscode.open","_workbench.open","Opens the provided resource in the editor. Can be a text or binary file, or an http(s) URL. If you need more control over the options for opening a text file, use vscode.window.showTextDocument instead.",[new t3("uriOrString","Uri-instance or string (only http/https)",e=>eD.URI.isUri(e)||"string"==typeof e&&(0,eO.matchesSomeScheme)(e,eO.Schemas.http,eO.Schemas.https),e=>e),new t3("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",e=>void 0===e||"number"==typeof e||"object"==typeof e,e=>e?"number"==typeof e?[e6.ViewColumn.from(e),void 0]:[e6.ViewColumn.from(e.viewColumn),e6.TextEditorOpenOptions.from(e)]:e).optional(),t3.String.with("label","").optional()],t4.Void),new t5("vscode.openWith","_workbench.openWith","Opens the provided resource with a specific editor.",[t3.Uri.with("resource","Resource to open"),t3.String.with("viewId","Custom editor view id. This should be the viewType string for custom editors or the notebookType string for notebooks. Use 'default' to use VS Code's default text editor"),new t3("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",e=>void 0===e||"number"==typeof e||"object"==typeof e,e=>e?"number"==typeof e?[e6.ViewColumn.from(e),void 0]:[e6.ViewColumn.from(e.viewColumn),e6.TextEditorOpenOptions.from(e)]:e).optional()],t4.Void),new t5("vscode.diff","_workbench.diff","Opens the provided resources in the diff editor to compare their contents.",[t3.Uri.with("left","Left-hand side resource of the diff editor"),t3.Uri.with("right","Right-hand side resource of the diff editor"),t3.String.with("title","Human readable title for the diff editor").optional(),new t3("columnOrOptions","Either the column in which to open or editor options, see vscode.TextDocumentShowOptions",e=>void 0===e||"object"==typeof e,e=>e&&[e6.ViewColumn.from(e.viewColumn),e6.TextEditorOpenOptions.from(e)]).optional()],t4.Void),new t5("vscode.changes","_workbench.changes","Opens a list of resources in the changes editor to compare their contents.",[t3.String.with("title","Human readable title for the changes editor"),new t3("resourceList","List of resources to compare",e=>{for(let t of e){if(3!==t.length)return!1;let[e,i,r]=t;if(!eD.URI.isUri(e)||!eD.URI.isUri(i)&&null!=i||!eD.URI.isUri(r)&&null!=r)return!1}return!0},e=>e)],t4.Void),new t5("vscode.prepareTypeHierarchy","_executePrepareTypeHierarchy","Prepare type hierarchy at a position inside a document",[t3.Uri,t3.Position],new t4("A promise that resolves to an array of TypeHierarchyItem-instances",e=>e.map(e6.TypeHierarchyItem.to))),new t5("vscode.provideSupertypes","_executeProvideSupertypes","Compute supertypes for an item",[t3.TypeHierarchyItem],new t4("A promise that resolves to an array of TypeHierarchyItem-instances",e=>e.map(e6.TypeHierarchyItem.to))),new t5("vscode.provideSubtypes","_executeProvideSubtypes","Compute subtypes for an item",[t3.TypeHierarchyItem],new t4("A promise that resolves to an array of TypeHierarchyItem-instances",e=>e.map(e6.TypeHierarchyItem.to))),new t5("vscode.revealTestInExplorer","_revealTestInExplorer","Reveals a test instance in the explorer",[t3.TestItem],t4.Void),new t5("vscode.startContinuousTestRun","testing.startContinuousRunFromExtension","Starts running the given tests with continuous run mode.",[t3.TestProfile,t3.Arr(t3.TestItem)],t4.Void),new t5("vscode.stopContinuousTestRun","testing.stopContinuousRunFromExtension","Stops running the given tests with continuous run mode.",[t3.Arr(t3.TestItem)],t4.Void),new t5("vscode.experimental.editSession.continue","_workbench.editSessions.actions.continueEditSession","Continue the current edit session in a different workspace",[t3.Uri.with("workspaceUri","The target workspace to continue the current edit session in")],t4.Void),new t5("setContext","_setContext","Set a custom context key value that can be used in when clauses.",[t3.String.with("name","The context key name"),new t3("value","The context key value",()=>!0,e=>e)],t4.Void),new t5("vscode.editorChat.start","inlineChat.start","Invoke a new editor chat session",[new t3("Run arguments","",e=>!0,e=>{if(e)return{initialRange:e.initialRange?e6.Range.from(e.initialRange):void 0,initialSelection:tX.Selection.isSelection(e.initialSelection)?e6.Selection.from(e.initialSelection):void 0,message:e.message,attachments:e.attachments,autoSend:e.autoSend,position:e.position?e6.Position.from(e.position):void 0,blockOnResponse:e.blockOnResponse}})],t4.Void)];class oR{static register(e){oT.forEach(e.registerApiCommand,e),this._registerValidateWhenClausesCommand(e)}static _registerValidateWhenClausesCommand(e){e.registerCommand(!1,"_validateWhenClauses",oD.validateWhenClauses)}}function oP(e){return t=>{if(Array.isArray(t))return t.map(e)}}function oI(e){if(!Array.isArray(e))return;let t=[];for(let i of e)(0,ow.isLocationLink)(i)?t.push(e6.DefinitionLink.to(i)):t.push(e6.location.to(i));return t}let oA=class{constructor(e,t){this._proxy=e.getProxy(ev.MainContext.MainThreadBulkEdits),this._versionInformationProvider={getTextDocumentVersion:e=>t.getDocument(e)?.version,getNotebookDocumentVersion:()=>void 0}}applyWorkspaceEdit(e,t,i){let r=new tW.SerializableObjectWithBuffers(e6.WorkspaceEdit.from(e,this._versionInformationProvider));return this._proxy.$tryApplyWorkspaceEdit(r,void 0,i?.isRefactoring??!1)}};oA=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],oA);var oM=eH,oL=e.i(723250),oF=e.i(941001),oO=e.i(778116),oN=e.i(723525);class o${constructor(e,t,i,r,n){this._extension=e,this._request=t,this._proxy=i,this._commandsConverter=r,this._sessionDisposables=n,this._stopWatch=tj.StopWatch.create(!1),this._isClosed=!1}close(){this._isClosed=!0}get timings(){return{firstProgress:this._firstProgress,totalElapsed:this._stopWatch.elapsed()}}get apiObject(){if(!this._apiObject){let i=this;this._stopWatch.reset();let r=0;function e(e){if(i._isClosed){let t=Error("Response stream has been closed");throw Error.captureStackTrace(t,e),t}}let n=[],o=[];function t(e,t){if(1===n.push(void 0!==t?[e,t]:e)&&queueMicrotask(()=>{let e=o;o=[],i._proxy.$handleProgressChunk(i._request.requestId,n).finally(()=>{e.forEach(e=>e())}),n.length=0}),void 0!==t)return new Promise(e=>{o.push(e)})}let s=(e,i)=>{if(void 0===this._firstProgress&&("markdownContent"===e.kind||"markdownVuln"===e.kind||"prepareToolInvocation"===e.kind)&&(this._firstProgress=this._stopWatch.elapsed()),i){let n=r++,o=t(e,n);Promise.all([o,i({report:e=>{o.then(()=>{oN.MarkdownString.isMarkdownString(e.value)?t(e6.ChatResponseWarningPart.from(e),n):t(e6.ChatResponseReferencePart.from(e),n)})}})]).then(([e,i])=>{t(e6.ChatTaskResult.from(i),n)})}else t(e)};this._apiObject=Object.freeze({clearToPreviousToolInvocation(i){return e(this.markdown),t({kind:"clearToPreviousToolInvocation",reason:i}),this},markdown(t){e(this.markdown);let i=new eh.ChatResponseMarkdownPart(t);return s(e6.ChatResponseMarkdownPart.from(i)),this},markdownWithVulnerabilities(t,r){e(this.markdown),r&&(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let n=new eh.ChatResponseMarkdownWithVulnerabilitiesPart(t,r);return s(e6.ChatResponseMarkdownWithVulnerabilitiesPart.from(n)),this},codeblockUri(t,r){e(this.codeblockUri),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let n=new eh.ChatResponseCodeblockUriPart(t,r);return s(e6.ChatResponseCodeblockUriPart.from(n)),this},filetree(t,i){e(this.filetree);let r=new eh.ChatResponseFileTreePart(t,i);return s(e6.ChatResponseFilesPart.from(r)),this},anchor(e,t){let i=new eh.ChatResponseAnchorPart(e,t);return this.push(i)},button(t){e(this.anchor);let r=new eh.ChatResponseCommandButtonPart(t);return s(e6.ChatResponseCommandButtonPart.from(r,i._commandsConverter,i._sessionDisposables)),this},progress(t,i){e(this.progress);let r=new eh.ChatResponseProgressPart2(t,i);return s(i?e6.ChatTask.from(r):e6.ChatResponseProgressPart.from(r),i),this},thinkingProgress(t){e(this.thinkingProgress),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let r=new eh.ChatResponseThinkingProgressPart(t.text??"",t.id,t.metadata);return s(e6.ChatResponseThinkingProgressPart.from(r)),this},warning(t){e(this.progress),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let r=new eh.ChatResponseWarningPart(t);return s(e6.ChatResponseWarningPart.from(r)),this},reference(e,t){return this.reference2(e,t)},reference2(t,r,n){if(e(this.reference),"object"==typeof t&&"variableName"in t&&(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions"),"object"==typeof t&&"variableName"in t&&!t.value){let e=i._request.variables.variables.find(e=>e.name===t.variableName);if(e){let i;if(e.references?.length)i=e.references.map(e=>({kind:"reference",reference:{variableName:t.variableName,value:e.reference}}));else{let e=new eh.ChatResponseReferencePart(t,r,n);i=[e6.ChatResponseReferencePart.from(e)]}i.forEach(e=>s(e))}}else{let e=new eh.ChatResponseReferencePart(t,r,n);s(e6.ChatResponseReferencePart.from(e))}return this},codeCitation(t,r,n){e(this.codeCitation),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let o=new eh.ChatResponseCodeCitationPart(t,r,n);s(e6.ChatResponseCodeCitationPart.from(o))},textEdit(t,r){e(this.textEdit),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let n=new eh.ChatResponseTextEditPart(t,r);return n.isDone=!0===r||void 0,s(e6.ChatResponseTextEditPart.from(n)),this},notebookEdit(t,r){e(this.notebookEdit),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let n=new eh.ChatResponseNotebookEditPart(t,r);return s(e6.ChatResponseNotebookEditPart.from(n)),this},async externalEdit(i,n){e(this.externalEdit);let o=Array.isArray(i)?i:[i],s=r++,a=(0,tJ.generateUuid)();await t({kind:"externalEdits",start:!0,resources:o,undoStopId:a},s);try{return await n(),a}finally{await t({kind:"externalEdits",start:!1,resources:o,undoStopId:a},s)}},confirmation(t,r,n,o){e(this.confirmation),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let a=new eh.ChatResponseConfirmationPart(t,r,n,o);return s(e6.ChatResponseConfirmationPart.from(a)),this},prepareToolInvocation(t){e(this.prepareToolInvocation),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let r=new eh.ChatPrepareToolInvocationPart(t);return s(e6.ChatPrepareToolInvocationPart.from(r)),this},push(t){if(e(this.push),(t instanceof eh.ChatResponseTextEditPart||t instanceof eh.ChatResponseNotebookEditPart||t instanceof eh.ChatResponseMarkdownWithVulnerabilitiesPart||t instanceof eh.ChatResponseWarningPart||t instanceof eh.ChatResponseConfirmationPart||t instanceof eh.ChatResponseCodeCitationPart||t instanceof eh.ChatResponseMovePart||t instanceof eh.ChatResponseExtensionsPart||t instanceof eh.ChatResponseExternalEditPart||t instanceof eh.ChatResponseThinkingProgressPart||t instanceof eh.ChatResponsePullRequestPart||t instanceof eh.ChatResponseProgressPart2)&&(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions"),t instanceof eh.ChatResponseReferencePart)this.reference2(t.value,t.iconPath,t.options);else if(t instanceof eh.ChatResponseProgressPart2)s(t.task?e6.ChatTask.from(t):e6.ChatResponseProgressPart.from(t),t.task);else if(t instanceof eh.ChatResponseThinkingProgressPart)s(e6.ChatResponseThinkingProgressPart.from(t));else if(t instanceof eh.ChatResponseAnchorPart){let e=e6.ChatResponseAnchorPart.from(t);if(t.resolve){(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions"),e.resolveId=(0,tJ.generateUuid)();let r=new ef.CancellationTokenSource;t.resolve(r.token).then(()=>{let r=e6.ChatResponseAnchorPart.from(t);i._proxy.$handleAnchorResolve(i._request.requestId,e.resolveId,r)}).then(()=>r.dispose(),()=>r.dispose()),i._sessionDisposables.add((0,oM.toDisposable)(()=>r.dispose(!0)))}s(e)}else t instanceof eh.ChatPrepareToolInvocationPart?((0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions"),s(e6.ChatPrepareToolInvocationPart.from(t))):t instanceof eh.ChatResponseExternalEditPart?this.externalEdit(t.uris,t.callback).then(e=>t.didGetApplied(e)):s(e6.ChatResponsePart.from(t,i._commandsConverter,i._sessionDisposables));return this}})}return this._apiObject}}class oH extends oM.Disposable{static{this._idPool=0}static{this._participantDetectionProviderIdPool=0}static{this._relatedFilesProviderIdPool=0}static{this._customAgentsProviderIdPool=0}constructor(e,t,i,r,n,o,s,a){super(),this._logService=t,this._commands=i,this._documents=r,this._editorsAndDocuments=n,this._languageModels=o,this._diagnostics=s,this._tools=a,this._agents=new Map,this._participantDetectionProviders=new Map,this._relatedFilesProviders=new Map,this._customAgentsProviders=new Map,this._sessionDisposables=this._register(new oM.DisposableResourceMap),this._completionDisposables=this._register(new oM.DisposableMap),this._inFlightRequests=new Set,this._onDidChangeChatRequestTools=this._register(new ey.Emitter),this.onDidChangeChatRequestTools=this._onDidChangeChatRequestTools.event,this._onDidDisposeChatSession=this._register(new ey.Emitter),this.onDidDisposeChatSession=this._onDidDisposeChatSession.event,this._proxy=e.getProxy(ev.MainContext.MainThreadChatAgents2),i.registerArgumentProcessor({processArgument:e=>e&&eD.URI.isUri(e.sessionResource)&&e.$mid===iS.MarshalledId.ChatViewContext?null:e})}async transferActiveChat(e){await this._proxy.$transferActiveChatSession(e)}createChatAgent(e,t,i){let r=oH._idPool++,n=new oq(e,t,this._proxy,r,i);return this._agents.set(r,n),this._proxy.$registerAgent(r,e.identifier,t,{},void 0),n.apiAgent}createDynamicChatAgent(e,t,i,r){let n=oH._idPool++,o=new oq(e,t,this._proxy,n,r);return this._agents.set(n,o),this._proxy.$registerAgent(n,e.identifier,t,{isSticky:!0},i),o.apiAgent}registerChatParticipantDetectionProvider(e,t){let i=oH._participantDetectionProviderIdPool++;return this._participantDetectionProviders.set(i,new oU(e,t)),this._proxy.$registerChatParticipantDetectionProvider(i),(0,oM.toDisposable)(()=>{this._participantDetectionProviders.delete(i),this._proxy.$unregisterChatParticipantDetectionProvider(i)})}registerRelatedFilesProvider(e,t,i){let r=oH._relatedFilesProviderIdPool++;return this._relatedFilesProviders.set(r,new oW(e,t)),this._proxy.$registerRelatedFilesProvider(r,i),(0,oM.toDisposable)(()=>{this._relatedFilesProviders.delete(r),this._proxy.$unregisterRelatedFilesProvider(r)})}registerCustomAgentsProvider(e,t){let i=oH._customAgentsProviderIdPool++;this._customAgentsProviders.set(i,{extension:e,provider:t}),this._proxy.$registerCustomAgentsProvider(i,e.identifier);let r=new oM.DisposableStore;return t.onDidChangeCustomAgents&&r.add(t.onDidChangeCustomAgents(()=>{this._proxy.$onDidChangeCustomAgents(i)})),r.add((0,oM.toDisposable)(()=>{this._customAgentsProviders.delete(i),this._proxy.$unregisterCustomAgentsProvider(i)})),r}async $provideRelatedFiles(e,t,i){let r=this._relatedFilesProviders.get(e);if(!r)return Promise.resolve([]);let n=e6.ChatRequestDraft.to(t);return await r.provider.provideRelatedFiles(n,i)??void 0}async $provideCustomAgents(e,t,i){let r=this._customAgentsProviders.get(e);return r?await r.provider.provideCustomAgents(t,i)??void 0:Promise.resolve(void 0)}async $detectChatParticipant(e,t,i,r,n){let o=this._participantDetectionProviders.get(e);if(!o)return;let{request:s,location:a,history:l}=await this._createRequest(t,i,o.extension),c=await this.getModelForRequest(s,o.extension),d=e6.ChatAgentRequest.to(s,a,c,this.getDiagnosticsWhenEnabled(o.extension),this.getToolsForRequest(o.extension,s.userSelectedTools),o.extension,this._logService);return o.provider.provideParticipantDetection(d,{history:l},{participants:r.participants,location:e6.ChatLocation.to(r.location)},n)}async _createRequest(e,t,i){let r,n=(0,e8.revive)(e),o=await this.prepareHistoryTurns(i,n.agentId,t);if(n.locationData?.type===oO.ChatAgentLocation.EditorInline){let e=this._documents.getDocument(n.locationData.document),t=this._editorsAndDocuments.getEditor(n.locationData.id);r=new eh.ChatRequestEditorData(t.value,e,e6.Selection.to(n.locationData.selection),e6.Range.to(n.locationData.wholeRange))}else if(n.locationData?.type===oO.ChatAgentLocation.Notebook){let e=this._documents.getDocument(n.locationData.sessionInputUri);r=new eh.ChatRequestNotebookData(e)}return{request:n,location:r,history:o}}async getModelForRequest(e,t){let i;if(e.userSelectedModelId&&(i=await this._languageModels.getLanguageModelByIdentifier(t,e.userSelectedModelId)),!i&&!(i=await this._languageModels.getDefaultLanguageModel(t)))throw Error("Language model unavailable");return i}async $setRequestTools(e,t){let i=[...this._inFlightRequests].find(t=>t.requestId===e);if(i){for(let[e,r]of(i.extRequest.tools.clear(),this.getToolsForRequest(i.extension,t)))i.extRequest.tools.set(e,r);this._onDidChangeChatRequestTools.fire(i.extRequest)}}async $invokeAgent(e,t,i,r){let n,o,s=this._agents.get(e);if(!s)throw Error(`[CHAT](${e}) CANNOT invoke agent because the agent is not registered`);try{var a,l;let e,{request:c,location:d,history:u}=await this._createRequest(t,i,s.extension),h=this._sessionDisposables.get(c.sessionResource);h||(h=new oM.DisposableStore,this._sessionDisposables.set(c.sessionResource,h)),n=new o$(s.extension,c,this._proxy,this._commands.converter,h);let g=await this.getModelForRequest(c,s.extension),p=e6.ChatAgentRequest.to(c,d,g,this.getDiagnosticsWhenEnabled(s.extension),this.getToolsForRequest(s.extension,c.userSelectedTools),s.extension,this._logService);o={requestId:t.requestId,extRequest:p,extension:s.extension},this._inFlightRequests.add(o),i.chatSessionContext&&(e={chatSessionItem:{resource:eD.URI.revive(i.chatSessionContext.chatSessionResource),label:i.chatSessionContext.isUntitled?"Untitled Session":"Session"},isUntitled:i.chatSessionContext.isUntitled});let m={history:u,chatSessionContext:e},f=s.invoke(p,m,n.apiObject,r);return await (a=Promise.resolve(f).then(e=>{let t;if(e?.metadata)try{JSON.stringify(e.metadata)}catch(i){let t=`result.metadata MUST be JSON.stringify-able. Got error: ${i.message}`;return this._logService.error(`[${s.extension.identifier.value}] [@${s.id}] ${t}`,s.extension),{errorDetails:{message:t},timings:n?.timings,nextQuestion:e.nextQuestion}}return e?.errorDetails&&(t={...e.errorDetails,responseIsIncomplete:!0}),(t?.responseIsRedacted||t?.isQuotaExceeded||t?.isRateLimited||t?.confirmationButtons||t?.code)&&(0,tp.checkProposedApiEnabled)(s.extension,"chatParticipantPrivate"),{errorDetails:t,timings:n?.timings,metadata:e?.metadata,nextQuestion:e?.nextQuestion,details:e?.details}}),l=r,new Promise((e,t)=>{let i=l.onCancellationRequested(async()=>{i.dispose(),await (0,eU.timeout)(1e3),e(void 0)});a.then(e,t).finally(()=>i.dispose())}))}catch(i){this._logService.error(i,s.extension),i instanceof eh.LanguageModelError&&i.cause&&(i=i.cause);let e=i instanceof Error&&"ChatQuotaExceeded"===i.name,t=i instanceof Error&&"ChatRateLimited"===i.name;return{errorDetails:{message:(0,tq.toErrorMessage)(i),responseIsIncomplete:!0,isQuotaExceeded:e,isRateLimited:t}}}finally{o&&this._inFlightRequests.delete(o),n?.close()}}getDiagnosticsWhenEnabled(e){return(0,tp.isProposedApiEnabled)(e,"chatReferenceDiagnostic")?this._diagnostics.getDiagnostics():[]}getToolsForRequest(e,t){if(!t)return new Map;let i=new Map;for(let r of this._tools.getTools(e))"boolean"==typeof t[r.name]&&i.set(r.name,t[r.name]);return i}async prepareHistoryTurns(e,t,i){let r=[];for(let n of i.history){let i=e6.ChatAgentResult.to(n.result),o=t===n.request.agentId||oj(n.request.agentId)&&oj(t)?i:{...i,metadata:void 0},s=[],a=[];for(let t of n.request.variables.variables)if("tool"===t.kind)a.push(e6.ChatLanguageModelToolReference.to(t));else if("toolset"===t.kind)a.push(...t.value.map(e6.ChatLanguageModelToolReference.to));else{let i=e6.ChatPromptReference.to(t,this.getDiagnosticsWhenEnabled(e),this._logService);i&&s.push(i)}let l=(0,tp.isProposedApiEnabled)(e,"chatParticipantPrivate")?n.request.editedFileEvents:void 0,c=new eh.ChatRequestTurn(n.request.message,n.request.command,s,n.request.agentId,a,l,n.request.requestId);r.push(c);let d=(0,eY.coalesce)(n.response.map(e=>e6.ChatResponsePart.toContent(e,this._commands.converter)));r.push(new eh.ChatResponseTurn(d,o,n.request.agentId,n.request.command))}return r}$releaseSession(e){let t=eD.URI.revive(e);this._sessionDisposables.deleteAndDispose(t);let i=oF.LocalChatSessionUri.parseLocalSessionId(t);i&&this._onDidDisposeChatSession.fire(i)}async $provideFollowups(e,t,i,r,n){let o=this._agents.get(t);if(!o)return Promise.resolve([]);let s=(0,e8.revive)(e),a=await this.prepareHistoryTurns(o.extension,o.id,r),l=e6.ChatAgentResult.to(i);return(await o.provideFollowups(l,{history:a},n)).filter(e=>{let t=!e.participant||id.Iterable.some(this._agents.values(),t=>t.id===e.participant&&eI.ExtensionIdentifier.equals(t.extension.identifier,o.extension.identifier));return t||this._logService.warn(`[@${o.id}] ChatFollowup refers to an unknown participant: ${e.participant}`),t}).map(e=>e6.ChatFollowup.from(e,s))}$acceptFeedback(e,t,i){let r,n=this._agents.get(e);if(!n)return;let o=e6.ChatAgentResult.to(t);switch(i.direction){case oL.ChatAgentVoteDirection.Down:r=eh.ChatResultFeedbackKind.Unhelpful;break;case oL.ChatAgentVoteDirection.Up:r=eh.ChatResultFeedbackKind.Helpful}let s={result:o,kind:r,unhelpfulReason:(0,tp.isProposedApiEnabled)(n.extension,"chatParticipantAdditions")?i.reason:void 0};n.acceptFeedback(Object.freeze(s))}$acceptAction(e,t,i){let r=this._agents.get(e);if(!r||"vote"===i.action.kind)return;let n=e6.ChatAgentUserActionEvent.to(t,i,this._commands.converter);n&&r.acceptAction(Object.freeze(n))}async $invokeCompletionProvider(e,t,i){let r=this._agents.get(e);if(!r)return[];let n=this._completionDisposables.get(e);return n?n.clear():(n=new oM.DisposableStore,this._completionDisposables.set(e,n)),(await r.invokeCompletionProvider(t,i)).map(e=>e6.ChatAgentCompletionItem.from(e,this._commands.converter,n))}async $provideChatTitle(e,t,i){let r=this._agents.get(e);if(!r)return;let n=await this.prepareHistoryTurns(r.extension,r.id,{history:t});return await r.provideTitle({history:n},i)}async $provideChatSummary(e,t,i){let r=this._agents.get(e);if(!r)return;let n=await this.prepareHistoryTurns(r.extension,r.id,{history:t});return await r.provideSummary({history:n},i)}}class oU{constructor(e,t){this.extension=e,this.provider=t}}class oW{constructor(e,t){this.extension=e,this.provider=t}}class oq{constructor(e,t,i,r,n){this.extension=e,this.id=t,this._proxy=i,this._handle=r,this._requestHandler=n,this._onDidReceiveFeedback=new ey.Emitter,this._onDidPerformAction=new ey.Emitter,this._pauseStateEmitter=new ey.Emitter}acceptFeedback(e){this._onDidReceiveFeedback.fire(e)}acceptAction(e){this._onDidPerformAction.fire(e)}setChatRequestPauseState(e){this._pauseStateEmitter.fire(e)}async invokeCompletionProvider(e,t){return this._agentVariableProvider?await this._agentVariableProvider.provider.provideCompletionItems(e,t)??[]:[]}async provideFollowups(e,t,i){if(!this._followupProvider)return[];let r=await this._followupProvider.provideFollowups(e,t,i);return r?r.filter(e=>!(e&&"commandId"in e)).filter(e=>!(e&&"message"in e)):[]}async provideTitle(e,t){if(this._titleProvider)return await this._titleProvider.provideChatTitle(e,t)??void 0}async provideSummary(e,t){if(this._summarizer)return await this._summarizer.provideChatSummary(e,t)??void 0}get apiAgent(){let e=!1,t=!1,i=()=>{e||t||(t=!0,queueMicrotask(()=>{this._proxy.$updateAgent(this._handle,{icon:this._iconPath?this._iconPath instanceof eD.URI?this._iconPath:"light"in this._iconPath?this._iconPath.light:void 0:void 0,iconDark:this._iconPath&&"dark"in this._iconPath?this._iconPath.dark:void 0,themeIcon:this._iconPath instanceof eh.ThemeIcon?this._iconPath:void 0,hasFollowups:void 0!==this._followupProvider,helpTextPrefix:this._helpTextPrefix&&"string"!=typeof this._helpTextPrefix?e6.MarkdownString.from(this._helpTextPrefix):this._helpTextPrefix,helpTextPostfix:this._helpTextPostfix&&"string"!=typeof this._helpTextPostfix?e6.MarkdownString.from(this._helpTextPostfix):this._helpTextPostfix,supportIssueReporting:this._supportIssueReporting,additionalWelcomeMessage:this._additionalWelcomeMessage&&"string"!=typeof this._additionalWelcomeMessage?e6.MarkdownString.from(this._additionalWelcomeMessage):this._additionalWelcomeMessage}),t=!1}))},r=this;return{get id(){return r.id},get iconPath(){return r._iconPath},set iconPath(v){r._iconPath=v,i()},get requestHandler(){return r._requestHandler},set requestHandler(v){(0,eK.assertType)("function"==typeof v,"Invalid request handler"),r._requestHandler=v},get followupProvider(){return r._followupProvider},set followupProvider(v){r._followupProvider=v,i()},get helpTextPrefix(){return(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._helpTextPrefix},set helpTextPrefix(v){(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._helpTextPrefix=v,i()},get helpTextPostfix(){return(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._helpTextPostfix},set helpTextPostfix(v){(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._helpTextPostfix=v,i()},get supportIssueReporting(){return(0,tp.checkProposedApiEnabled)(r.extension,"chatParticipantPrivate"),r._supportIssueReporting},set supportIssueReporting(v){(0,tp.checkProposedApiEnabled)(r.extension,"chatParticipantPrivate"),r._supportIssueReporting=v,i()},get onDidReceiveFeedback(){return r._onDidReceiveFeedback.event},set participantVariableProvider(v){if((0,tp.checkProposedApiEnabled)(r.extension,"chatParticipantAdditions"),r._agentVariableProvider=v,v){if(!v.triggerCharacters.length)throw Error("triggerCharacters are required");r._proxy.$registerAgentCompletionsProvider(r._handle,r.id,v.triggerCharacters)}else r._proxy.$unregisterAgentCompletionsProvider(r._handle,r.id)},get participantVariableProvider(){return(0,tp.checkProposedApiEnabled)(r.extension,"chatParticipantAdditions"),r._agentVariableProvider},set additionalWelcomeMessage(v){(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._additionalWelcomeMessage=v,i()},get additionalWelcomeMessage(){return(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._additionalWelcomeMessage},set titleProvider(v){(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._titleProvider=v,i()},get titleProvider(){return(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._titleProvider},set summarizer(v){(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._summarizer=v},get summarizer(){return(0,tp.checkProposedApiEnabled)(r.extension,"defaultChatParticipant"),r._summarizer},get onDidChangePauseState(){return(0,tp.checkProposedApiEnabled)(r.extension,"chatParticipantAdditions"),r._pauseStateEmitter.event},onDidPerformAction:(0,tp.isProposedApiEnabled)(this.extension,"chatParticipantAdditions")?this._onDidPerformAction.event:void 0,dispose(){e=!0,r._followupProvider=void 0,r._onDidReceiveFeedback.dispose(),r._proxy.$unregisterAgent(r._handle)}}}invoke(e,t,i,r){return this._requestHandler(e,t,i,r)}}function oj(e){return e.startsWith("github.copilot")}class oz{constructor(e,t){this.webviews=t,this._renderers=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadChatOutputRenderer)}registerChatOutputRenderer(e,t,i){if(this._renderers.has(t))throw Error(`Chat output renderer already registered for: ${t}`);return this._renderers.set(t,{extension:e,renderer:i}),this._proxy.$registerChatOutputRenderer(t,e.identifier,e.extensionLocation),new eh.Disposable(()=>{this._renderers.delete(t),this._proxy.$unregisterChatOutputRenderer(t)})}async $renderChatOutput(e,t,i,r,n){let o=this._renderers.get(e);if(!o)throw Error(`No chat output renderer registered for: ${e}`);let s=this.webviews.createNewWebview(r,{},o.extension);return o.renderer.renderChatOutput(Object.freeze({mime:t,value:i.buffer}),s,{},n)}}var oK=eH,oV=e.i(288628),oB=e.i(33670);class oG{constructor(e,t,i,r,n,o){this.session=e,this.extension=t,this.proxy=r,this.commandsConverter=n,this.sessionDisposables=o,this._stream=new o$(t,i,r,n,o)}get activeResponseStream(){return this._stream}getActiveRequestStream(e){return new o$(this.extension,e,this.proxy,this.commandsConverter,this.sessionDisposables)}}let oQ=class extends oK.Disposable{static{ee=this}static{this._sessionHandlePool=0}constructor(e,t,i,r){super(),this.commands=e,this._languageModels=t,this._extHostRpc=i,this._logService=r,this._chatSessionItemProviders=new Map,this._chatSessionContentProviders=new Map,this._nextChatSessionItemProviderHandle=0,this._nextChatSessionContentProviderHandle=0,this._sessionItems=new eV.ResourceMap,this._extHostChatSessions=new eV.ResourceMap,this._proxy=this._extHostRpc.getProxy(ev.MainContext.MainThreadChatSessions),e.registerArgumentProcessor({processArgument:e=>{if(e&&e.$mid===iS.MarshalledId.AgentSessionContext){let t=e.session.resource||e.sessionId,i=this._sessionItems.get(t);if(i)return i;this._logService.warn(`No chat session found for ID: ${t}`)}return e}})}registerChatSessionItemProvider(e,t,i){let r=this._nextChatSessionItemProviderHandle++,n=new oK.DisposableStore;return this._chatSessionItemProviders.set(r,{provider:i,extension:e,disposable:n,sessionType:t}),this._proxy.$registerChatSessionItemProvider(r,t),i.onDidChangeChatSessionItems&&n.add(i.onDidChangeChatSessionItems(()=>{this._proxy.$onDidChangeChatSessionItems(r)})),i.onDidCommitChatSessionItem&&n.add(i.onDidCommitChatSessionItem(e=>{let{original:t,modified:i}=e;this._proxy.$onDidCommitChatSessionItem(r,t.resource,i.resource)})),{dispose:()=>{this._chatSessionItemProviders.delete(r),n.dispose(),this._proxy.$unregisterChatSessionItemProvider(r)}}}registerChatSessionContentProvider(e,t,i,r,n){let o=this._nextChatSessionContentProviderHandle++,s=new oK.DisposableStore;return this._chatSessionContentProviders.set(o,{provider:r,extension:e,capabilities:n,disposable:s}),this._proxy.$registerChatSessionContentProvider(o,t),r.onDidChangeChatSessionOptions&&s.add(r.onDidChangeChatSessionOptions(e=>{this._proxy.$onDidChangeChatSessionOptions(o,e.resource,e.updates)})),r.onDidChangeChatSessionProviderOptions&&s.add(r.onDidChangeChatSessionProviderOptions(()=>{this._proxy.$onDidChangeChatSessionProviderOptions(o)})),new eh.Disposable(()=>{this._chatSessionContentProviders.delete(o),s.dispose(),this._proxy.$unregisterChatSessionContentProvider(o)})}convertChatSessionStatus(e){if(void 0!==e)switch(e){case 0:return oV.ChatSessionStatus.Failed;case 1:return oV.ChatSessionStatus.Completed;case 2:return oV.ChatSessionStatus.InProgress;default:return}}convertChatSessionItem(e,t){return{resource:t.resource,label:t.label,description:t.description?e6.MarkdownString.from(t.description):void 0,badge:t.badge?e6.MarkdownString.from(t.badge):void 0,status:this.convertChatSessionStatus(t.status),tooltip:e6.MarkdownString.fromStrict(t.tooltip),timing:{startTime:t.timing?.startTime??0,endTime:t.timing?.endTime},changes:t.changes instanceof Array?t.changes:t.changes&&{files:t.changes?.files??0,insertions:t.changes?.insertions??0,deletions:t.changes?.deletions??0}}}async $provideChatSessionItems(e,t){let i=this._chatSessionItemProviders.get(e);if(!i)return this._logService.error(`No provider registered for handle ${e}`),[];let r=await i.provider.provideChatSessionItems(t);if(!r)return[];let n=[];for(let e of r)this._sessionItems.set(e.resource,e),n.push(this.convertChatSessionItem(i.sessionType,e));return n}async $provideChatSessionContent(e,t,i){let r=this._chatSessionContentProviders.get(e);if(!r)throw Error(`No provider for handle ${e}`);let n=eD.URI.revive(t),o=await r.provider.provideChatSessionContent(n,i);if(i.isCancellationRequested)throw new eg.CancellationError;let s=new oK.DisposableStore,a=ee._sessionHandlePool++,l=n.toString(),c=new oG(o,r.extension,{sessionResource:n,requestId:"ongoing",agentId:l,message:"",variables:{variables:[]},location:oO.ChatAgentLocation.Chat},{$handleProgressChunk:(t,i)=>this._proxy.$handleProgressChunk(e,n,t,i),$handleAnchorResolve:(t,i,r)=>{this._proxy.$handleAnchorResolve(e,n,t,i,r)}},this.commands.converter,s),d=s.add(new ef.CancellationTokenSource);this._extHostChatSessions.set(n,{sessionObj:c,disposeCts:d}),o.activeResponseCallback&&Promise.resolve(o.activeResponseCallback(c.activeResponseStream.apiObject,d.token)).finally(()=>{this._proxy.$handleProgressComplete(e,n,"ongoing")});let{capabilities:u}=r;return{id:a+"",resource:eD.URI.revive(n),hasActiveResponseCallback:!!o.activeResponseCallback,hasRequestHandler:!!o.requestHandler,supportsInterruption:!!u?.supportsInterruptions,options:o.options,history:o.history.map(e=>e instanceof eh.ChatRequestTurn?this.convertRequestTurn(e):this.convertResponseTurn(e,s))}}async $provideHandleOptionsChange(e,t,i,r){let n=eD.URI.revive(t),o=this._chatSessionContentProviders.get(e);if(!o)return void this._logService.warn(`No provider for handle ${e}`);if(!o.provider.provideHandleOptionsChange)return void this._logService.debug(`Provider for handle ${e} does not implement provideHandleOptionsChange`);try{let e=i.map(e=>({optionId:e.optionId,value:void 0===e.value?void 0:"string"==typeof e.value?e.value:e.value.id}));await o.provider.provideHandleOptionsChange(n,e,r)}catch(t){this._logService.error(`Error calling provideHandleOptionsChange for handle ${e}, sessionResource ${n}:`,t)}}async $provideChatSessionProviderOptions(e,t){let i=this._chatSessionContentProviders.get(e);if(!i)return void this._logService.warn(`No provider for handle ${e} when requesting chat session options`);let r=i.provider;if(r.provideChatSessionProviderOptions)try{let{optionGroups:e}=await r.provideChatSessionProviderOptions(t);if(!e)return;return{optionGroups:e}}catch(t){this._logService.error(`Error calling provideChatSessionProviderOptions for handle ${e}:`,t);return}}async $interruptChatSessionActiveResponse(e,t,i){let r=this._extHostChatSessions.get(eD.URI.revive(t));r?.disposeCts.cancel()}async $disposeChatSessionContent(e,t){let i=this._extHostChatSessions.get(eD.URI.revive(t));i?(i.disposeCts.cancel(),i.sessionObj.sessionDisposables.dispose(),this._extHostChatSessions.delete(eD.URI.revive(t))):this._logService.warn(`No chat session found for resource: ${t}`)}async $invokeChatSessionRequestHandler(e,t,i,r,n){let o=this._extHostChatSessions.get(eD.URI.revive(t));if(!o||!o.sessionObj.session.requestHandler)return{};let s=e6.ChatAgentRequest.to(i,void 0,await this.getModelForRequest(i,o.sessionObj.extension),[],new Map,o.sessionObj.extension,this._logService),a=o.sessionObj.getActiveRequestStream(i);return await o.sessionObj.session.requestHandler(s,{history:r},a.apiObject,n),{}}async getModelForRequest(e,t){let i;if(e.userSelectedModelId&&(i=await this._languageModels.getLanguageModelByIdentifier(t,e.userSelectedModelId)),!i&&!(i=await this._languageModels.getDefaultLanguageModel(t)))throw Error("Language model unavailable");return i}convertRequestTurn(e){let t=e.references.map(e=>this.convertReferenceToVariable(e));return{type:"request",id:e.id,prompt:e.prompt,participant:e.participant,command:e.command,variableData:t.length>0?{variables:t}:void 0}}convertReferenceToVariable(e){let t=e.value&&"object"==typeof e.value&&"uri"in e.value&&"range"in e.value?e6.Location.from(e.value):e.value,i=e.range?{start:e.range[0],endExclusive:e.range[1]}:void 0;if(t&&t instanceof eh.ChatReferenceDiagnostic&&Array.isArray(t.diagnostics)&&t.diagnostics.length&&t.diagnostics[0][1].length){let e=e6.Diagnostic.from(t.diagnostics[0][1][0]),i={filterRange:{startLineNumber:e.startLineNumber,startColumn:e.startColumn,endLineNumber:e.endLineNumber,endColumn:e.endColumn},filterSeverity:e.severity,filterUri:t.diagnostics[0][0],problemMessage:t.diagnostics[0][1][0].message};return oB.IDiagnosticVariableEntryFilterData.toEntry(i)}if(tZ.Location.isLocation(e.value)&&e.name.startsWith("sym:")){let t=e6.Location.from(e.value);return{id:e.id,name:e.name,fullName:e.name.substring(4),value:{uri:e.value.uri,range:t.range},symbolKind:ow.SymbolKind.Property,icon:ow.SymbolKinds.toIcon(ow.SymbolKind.Property),kind:"symbol",range:i}}if(eD.URI.isUri(t)&&e.name.startsWith("prompt:")&&e.id.startsWith(oB.PromptFileVariableKind.PromptFile)&&e.id.endsWith(t.toString()))return{id:e.id,name:`prompt:${(0,eN.basename)(t)}`,value:t,kind:"promptFile",modelDescription:"Prompt instructions file",isRoot:!0,automaticallyAdded:!1,range:i};let r=eD.URI.isUri(t)||t&&"object"==typeof t&&"uri"in t,n=r&&eD.URI.isUri(t)&&t.path.endsWith("/");return{id:e.id,name:e.name,value:t,modelDescription:e.modelDescription,range:i,kind:n?"directory":r?"file":"generic"}}convertResponseTurn(e,t){return{type:"response",parts:(0,eY.coalesce)(e.response.map(e=>e6.ChatResponsePart.from(e,this.commands.converter,t))),participant:e.participant}}};oQ=ee=(0,ek.__decorate)([(0,ek.__param)(2,eP.IExtHostRpcService),(0,ek.__param)(3,eM.ILogService)],oQ);class oJ{constructor(e){this._items=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadChatStatus)}createChatStatusItem(e,t){var i,r;let n=(i=e.identifier,r=t,`${eI.ExtensionIdentifier.toKey(i)}.${r}`);if(this._items.has(n))throw Error(`Chat status item '${t}' already exists`);let o={id:n,title:"",description:"",detail:""},s=!1,a=!1,l=()=>{if(s)throw Error("Chat status item is disposed");a&&this._proxy.$setEntry(t,o)},c=Object.freeze({id:t,get title(){return o.title},set title(value){o.title=value,l()},get description(){return o.description},set description(value){o.description=value,l()},get detail(){return o.detail},set detail(value){o.detail=value,l()},show:()=>{a=!0,l()},hide:()=>{a=!1,this._proxy.$disposeEntry(t)},dispose:()=>{s=!0,this._proxy.$disposeEntry(t),this._items.delete(n)}});return this._items.set(n,c),c}}class oY{constructor(e){const t=e.getProxy(ev.MainContext.MainThreadClipboard);this.value=Object.freeze({readText:()=>t.$readText(),writeText:e=>t.$writeText(e)})}}var oX=e.i(331508);class oZ{constructor(e,t,i){this._proxy=e,this._editors=t,this._remoteInfo=i,this._handlePool=0,this._disposables=new eH.DisposableStore,this._insets=new Map,this._disposables.add(t.onDidChangeVisibleTextEditors(()=>{let e=t.getVisibleTextEditors();for(let t of this._insets.values())0>e.indexOf(t.editor)&&t.inset.dispose()}))}dispose(){this._insets.forEach(e=>e.inset.dispose()),this._disposables.dispose()}createWebviewEditorInset(e,t,i,r,n){let o;for(let t of this._editors.getVisibleTextEditors(!0))if(t.value===e){o=t;break}if(!o)throw Error("not a visible editor");let s=this,a=this._handlePool++,l=new ey.Emitter,c=new ey.Emitter,d=new class{constructor(){this._html="",this._options=Object.create(null)}asWebviewUri(e){return(0,oX.asWebviewUri)(e,s._remoteInfo)}get cspSource(){return oX.webviewGenericCspSource}set options(e){this._options=e,s._proxy.$setOptions(a,e)}get options(){return this._options}set html(e){this._html=e,s._proxy.$setHtml(a,e)}get html(){return this._html}get onDidReceiveMessage(){return l.event}postMessage(e){return s._proxy.$postMessage(a,e)}},u=new class{constructor(){this.editor=e,this.line=t,this.height=i,this.webview=d,this.onDidDispose=c.event}dispose(){s._insets.delete(a)&&(s._proxy.$disposeEditorInset(a),c.fire(),c.dispose(),l.dispose())}};return this._proxy.$createEditorInset(a,o.id,o.value.document.uri,t+1,i,r||{},n.identifier,n.extensionLocation),this._insets.set(a,{editor:e,inset:u,onDidReceiveMessage:l}),u}$onDidDispose(e){let t=this._insets.get(e);t&&t.inset.dispose()}$onDidReceiveMessage(e,t){let i=this._insets.get(e);i?.onDidReceiveMessage.fire(t)}}class o0{static{this._providerHandlePool=0}constructor(e){this.providers=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadCodeMapper)}async $mapCode(e,t,i){let r=this.providers.get(e);if(!r)throw Error(`Received request to map code for unknown provider handle ${e}`);let n={textEdit:(e,i)=>{i=(0,eY.asArray)(i),this._proxy.$handleProgress(t.requestId,{uri:e,edits:i.map(e6.TextEdit.from)})},notebookEdit:(e,i)=>{i=(0,eY.asArray)(i),this._proxy.$handleProgress(t.requestId,{uri:e,edits:i.map(e6.NotebookEdit.from)})}},o={location:t.location,chatRequestId:t.chatRequestId,chatRequestModel:t.chatRequestModel,chatSessionId:t.chatSessionResource?oF.LocalChatSessionUri.parseLocalSessionId(eD.URI.revive(t.chatSessionResource)):void 0,codeBlocks:t.codeBlocks.map(e=>({code:e.code,resource:eD.URI.revive(e.resource),markdownBeforeBlock:e.markdownBeforeBlock}))};return await r.provideMappedEdits(o,n,i)??null}registerMappedEditsProvider(e,t){let i=o0._providerHandlePool++;return this._proxy.$registerCodeMapperProvider(i,e.displayName??e.name),this.providers.set(i,t),{dispose:()=>this._proxy.$unregisterCodeMapperProvider(i)}}}var o1=eH,o2=e.i(956711),o6=e.i(539222);class o3{#h;#e;#g;#p;#m;#f;#v;#_;#y;#C;#S;#b;constructor(e,t,i,r,n,o,s){this.#v="",this.#y=!1,this.#C=!1,this._onMessageEmitter=new ey.Emitter,this.onDidReceiveMessage=this._onMessageEmitter.event,this.#w=new ey.Emitter,this._onDidDispose=this.#w.event,this.#h=e,this.#e=t,this.#_=i,this.#p=r,this.#m=n,this.#f=o,this.#S=o4(o),this.#b=function(e){try{let t=(0,o2.normalizeVersion)((0,o2.parseVersion)(e.engines.vscode));if(!t)return!1;return t.majorBase<1||1===t.majorBase&&t.minorBase<60}catch{return!1}}(o),this.#g=s}#w;dispose(){this.#y=!0,this.#w.fire(),this.#w.dispose(),this._onMessageEmitter.dispose()}asWebviewUri(e){return this.#C=!0,(0,oX.asWebviewUri)(e,this.#p)}get cspSource(){let e=this.#f.extensionLocation;if(e.scheme===eO.Schemas.https||e.scheme===eO.Schemas.http){let t=e.toString();return t.endsWith("/")||(t+="/"),t+" "+oX.webviewGenericCspSource}return oX.webviewGenericCspSource}get html(){return this.assertNotDisposed(),this.#v}set html(e){this.assertNotDisposed(),this.#v!==e&&(this.#v=e,this.#b&&!this.#C&&/(["'])vscode-resource:([^\s'"]+?)(["'])/i.test(e)&&(this.#C=!0,this.#g.report("Webview vscode-resource: uris",this.#f,"Please migrate to use the 'webview.asWebviewUri' api instead: https://aka.ms/vscode-webview-use-aswebviewuri")),this.#e.$setHtml(this.#h,this.rewriteOldResourceUrlsIfNeeded(e)))}get options(){return this.assertNotDisposed(),this.#_}set options(e){this.assertNotDisposed(),(0,tv.equals)(this.#_,e)||this.#e.$setOptions(this.#h,o7(this.#f,this.#m,e)),this.#_=e}async postMessage(e){if(this.#y)return!1;let t=(0,o6.serializeWebviewMessage)(e,{serializeBuffersForPostMessage:this.#S});return this.#e.$postMessage(this.#h,t.message,...t.buffers)}assertNotDisposed(){if(this.#y)throw Error("Webview is disposed")}rewriteOldResourceUrlsIfNeeded(e){if(!this.#b)return e;let t=this.#f.extensionLocation?.scheme===eO.Schemas.vscodeRemote,i=this.#f.extensionLocation.scheme===eO.Schemas.vscodeRemote?this.#f.extensionLocation.authority:void 0;return e.replace(/(["'])(?:vscode-resource):(\/\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(e,r,n,o,s,a)=>{let l=eD.URI.from({scheme:o||"file",path:decodeURIComponent(s)}),c=(0,oX.asWebviewUri)(l,{isRemote:t,authority:i}).toString();return`${r}${c}${a}`}).replace(/(["'])(?:vscode-webview-resource):(\/\/[^\s\/'"]+\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(e,r,n,o,s,a)=>{let l=eD.URI.from({scheme:o||"file",path:decodeURIComponent(s)}),c=(0,oX.asWebviewUri)(l,{isRemote:t,authority:i}).toString();return`${r}${c}${a}`})}}function o4(e){try{let t=(0,o2.normalizeVersion)((0,o2.parseVersion)(e.engines.vscode));return!!t&&t.majorBase>=1&&t.minorBase>=57}catch{return!1}}class o5 extends o1.Disposable{constructor(e,t,i,r,n){super(),this.remoteInfo=t,this.workspace=i,this._logService=r,this._deprecationService=n,this._webviews=new Map,this._webviewProxy=e.getProxy(ev.MainContext.MainThreadWebviews)}dispose(){for(let e of(super.dispose(),this._webviews.values()))e.dispose();this._webviews.clear()}$onMessage(e,t,i){let r=this.getWebview(e);if(r){let{message:e}=(0,o6.deserializeWebviewMessage)(t,i.value);r._onMessageEmitter.fire(e)}}$onMissingCsp(e,t){this._logService.warn(`${t} created a webview without a content security policy: https://aka.ms/vscode-webview-missing-csp`)}createNewWebview(e,t,i){var r;let n=new o3(e,this._webviewProxy,{enableCommandUris:(r=t).enableCommandUris,enableScripts:r.enableScripts,enableForms:r.enableForms,portMapping:r.portMapping,localResourceRoots:r.localResourceRoots?.map(e=>eD.URI.from(e))},this.remoteInfo,this.workspace,i,this._deprecationService);this._webviews.set(e,n);let o=n._onDidDispose(()=>{o.dispose(),this.deleteWebview(e)});return n}deleteWebview(e){this._webviews.delete(e)}getWebview(e){return this._webviews.get(e)}}function o8(e){return{id:e.identifier,location:e.extensionLocation}}function o7(e,t,i){var r,n;return{enableCommandUris:i.enableCommandUris,enableScripts:i.enableScripts,enableForms:i.enableForms,portMapping:i.portMapping,localResourceRoots:i.localResourceRoots||(r=e,n=t,[...(n?.getWorkspaceFolders()||[]).map(e=>e.uri),r.extensionLocation])}}class o9{static{this.enableDebugLogging=!1}constructor(e){this.id=e,this._data=new Map,this._idPool=1}add(e){let t=this._idPool++;return this._data.set(t,e),this.logDebugInfo(),t}get(e,t){return this._data.has(e)?this._data.get(e)[t]:void 0}delete(e){this._data.delete(e),this.logDebugInfo()}logDebugInfo(){o9.enableDebugLogging&&console.log(`${this.id} cache size - ${this._data.size}`)}}class se{constructor(e,t){this.document=e,this._storagePath=t,this._backupCounter=1,this._edits=new o9("custom documents")}addEdit(e){return this._edits.add([e])}async undo(e,t){await this.getEdit(e).undo(),t||this.disposeBackup()}async redo(e,t){await this.getEdit(e).redo(),t||this.disposeBackup()}disposeEdits(e){for(let t of e)this._edits.delete(t)}getNewBackupUri(){var e;let t;if(!this._storagePath)throw Error("Backup requires a valid storage path");let i=(t=(e=this.document.uri).scheme===eO.Schemas.file||e.scheme===eO.Schemas.untitled?e.fsPath:e.toString(),(0,rh.hash)(t)+""+this._backupCounter++);return(0,eN.joinPath)(this._storagePath,i)}updateBackup(e){this._backup?.delete(),this._backup=e}disposeBackup(){this._backup?.delete(),this._backup=void 0}getEdit(e){let t=this._edits.get(e,0);if(!t)throw Error("No edit found");return t}}class st{constructor(){this._documents=new Map}get(e,t){return this._documents.get(this.key(e,t))}add(e,t,i){let r=this.key(e,t.uri);if(this._documents.has(r))throw Error(`Document already exists for viewType:${e} resource:${t.uri}`);let n=new se(t,i);return this._documents.set(r,n),n}delete(e,t){let i=this.key(e,t.uri);this._documents.delete(i)}key(e,t){return`${e}@@@${t}`}}(C=et||(et={}))[C.Text=0]="Text",C[C.Custom=1]="Custom";class si{constructor(){this._providers=new Map}addTextProvider(e,t,i){return this.add(e,{type:et.Text,extension:t,provider:i})}addCustomProvider(e,t,i){return this.add(e,{type:et.Custom,extension:t,provider:i})}get(e){return this._providers.get(e)}add(e,t){if(this._providers.has(e))throw Error(`Provider for viewType:${e} already registered`);return this._providers.set(e,t),new eh.Disposable(()=>this._providers.delete(e))}}class sr{constructor(e,t,i,r,n){this._extHostDocuments=t,this._extensionStoragePaths=i,this._extHostWebview=r,this._extHostWebviewPanels=n,this._editorProviders=new si,this._documents=new st,this._proxy=e.getProxy(ev.MainContext.MainThreadCustomEditors)}registerCustomEditorProvider(e,t,i,r){let n=new eH.DisposableStore;return"function"==typeof i.resolveCustomTextEditor?(n.add(this._editorProviders.addTextProvider(t,e,i)),this._proxy.$registerTextEditorProvider(o8(e),t,r.webviewOptions||{},{supportsMove:!!i.moveCustomTextEditor},o4(e))):(n.add(this._editorProviders.addCustomProvider(t,e,i)),sn(i)&&n.add(i.onDidChangeCustomDocument(e=>{var i;let r=this.getCustomDocumentEntry(t,e.document.uri);if("function"==typeof(i=e).undo&&"function"==typeof i.redo){let i=r.addEdit(e);this._proxy.$onDidEdit(e.document.uri,t,i,e.label)}else this._proxy.$onContentChange(e.document.uri,t)})),this._proxy.$registerCustomEditorProvider(o8(e),t,r.webviewOptions||{},!!r.supportsMultipleEditorsPerDocument,o4(e))),eh.Disposable.from(n,new eh.Disposable(()=>{this._proxy.$unregisterEditorProvider(t)}))}async $createCustomDocument(e,t,i,r,n){let o,s=this._editorProviders.get(t);if(!s)throw Error(`No provider found for '${t}'`);if(s.type!==et.Custom)throw Error(`Invalid provide type for '${t}'`);let a=eD.URI.revive(e),l=await s.provider.openCustomDocument(a,{backupId:i,untitledDocumentData:r?.buffer},n);return sn(s.provider)&&this._extensionStoragePaths&&(o=this._extensionStoragePaths.workspaceValue(s.extension)??this._extensionStoragePaths.globalValue(s.extension)),this._documents.add(t,l,o),{editable:sn(s.provider)}}async $disposeCustomDocument(e,t){let i=this._editorProviders.get(t);if(!i)throw Error(`No provider found for '${t}'`);if(i.type!==et.Custom)throw Error(`Invalid provider type for '${t}'`);let r=eD.URI.revive(e),{document:n}=this.getCustomDocumentEntry(t,r);this._documents.delete(t,n),n.dispose()}async $resolveCustomEditor(e,t,i,r,n,o){let s=this._editorProviders.get(i);if(!s)throw Error(`No provider found for '${i}'`);let a=e6.ViewColumn.to(n),l=this._extHostWebview.createNewWebview(t,r.contentOptions,s.extension),c=this._extHostWebviewPanels.createNewWebviewPanel(t,i,r.title,a,r.options,l,r.active),d=eD.URI.revive(e);switch(s.type){case et.Custom:{let{document:e}=this.getCustomDocumentEntry(i,d);return s.provider.resolveCustomEditor(e,c,o)}case et.Text:{let e=this._extHostDocuments.getDocument(d);return s.provider.resolveCustomTextEditor(e,c,o)}default:throw Error("Unknown webview provider type")}}$disposeEdits(e,t,i){this.getCustomDocumentEntry(t,e).disposeEdits(i)}async $onMoveCustomEditor(e,t,i){let r=this._editorProviders.get(i);if(!r)throw Error(`No provider found for '${i}'`);if(!r.provider.moveCustomTextEditor)throw Error(`Provider does not implement move '${i}'`);let n=this._extHostWebviewPanels.getWebviewPanel(e);if(!n)throw Error("No webview found");let o=eD.URI.revive(t),s=this._extHostDocuments.getDocument(o);await r.provider.moveCustomTextEditor(s,n,ef.CancellationToken.None)}async $undo(e,t,i,r){return this.getCustomDocumentEntry(t,e).undo(i,r)}async $redo(e,t,i,r){return this.getCustomDocumentEntry(t,e).redo(i,r)}async $revert(e,t,i){let r=this.getCustomDocumentEntry(t,e),n=this.getCustomEditorProvider(t);await n.revertCustomDocument(r.document,i),r.disposeBackup()}async $onSave(e,t,i){let r=this.getCustomDocumentEntry(t,e),n=this.getCustomEditorProvider(t);await n.saveCustomDocument(r.document,i),r.disposeBackup()}async $onSaveAs(e,t,i,r){let n=this.getCustomDocumentEntry(t,e);return this.getCustomEditorProvider(t).saveCustomDocumentAs(n.document,eD.URI.revive(i),r)}async $backup(e,t,i){let r=this.getCustomDocumentEntry(t,e),n=this.getCustomEditorProvider(t),o=await n.backupCustomDocument(r.document,{destination:r.getNewBackupUri()},i);return r.updateBackup(o),o.id}getCustomDocumentEntry(e,t){let i=this._documents.get(e,eD.URI.revive(t));if(!i)throw Error("No custom document found");return i}getCustomEditorProvider(e){let t=this._editorProviders.get(e),i=t?.provider;if(!i||!sn(i))throw Error("Custom document is not editable");return i}}function sn(e){return!!e.onDidChangeCustomDocument}var so=e.i(362787),ss=e.i(495101);class sa{#e;#x;#D;constructor(e,t,i,r,n,o,s,a){this._name=e,this._owner=t,this._maxDiagnosticsTotal=i,this._maxDiagnosticsPerFile=r,this._modelVersionIdProvider=n,this._isDisposed=!1,this._maxDiagnosticsTotal=Math.max(r,i),this.#D=new eV.ResourceMap(e=>o.getComparisonKey(e)),this.#e=s,this.#x=a}dispose(){this._isDisposed||(this.#x.fire([...this.#D.keys()]),this.#e?.$clear(this._owner),this.#D.clear(),this._isDisposed=!0)}get name(){return this._checkDisposed(),this._name}set(e,t){if(!e)return void this.clear();this._checkDisposed();let i=[];if(eD.URI.isUri(e)){if(!t)return void this.delete(e);this.#D.set(e,(0,eY.coalesce)(t)),i=[e]}else if(Array.isArray(e)){let t;for(let r of(i=[],e=[...e].sort(sa._compareIndexedTuplesByUri))){let[e,n]=r;if(t&&e.toString()===t.toString()||(t&&0===this.#D.get(t).length&&this.#D.delete(t),t=e,i.push(e),this.#D.set(e,[])),n){let t=this.#D.get(e);t?.push(...(0,eY.coalesce)(n))}else{let t=this.#D.get(e);t&&(t.length=0)}}}if(this.#x.fire(i),!this.#e)return;let r=[],n=0;for(let e of i){let t=[],i=this.#D.get(e);if(i)if(i.length>this._maxDiagnosticsPerFile){t=[];let r=[ss.DiagnosticSeverity.Error,ss.DiagnosticSeverity.Warning,ss.DiagnosticSeverity.Information,ss.DiagnosticSeverity.Hint];i:for(let n=0;n<4;n++)for(let o of i)if(o.severity===r[n]&&t.push({...e6.Diagnostic.from(o),modelVersionId:this._modelVersionIdProvider(e)})===this._maxDiagnosticsPerFile)break i;t.push({severity:so.MarkerSeverity.Info,message:(0,e1.localize)(2689,"Not showing {0} further errors and warnings.",i.length-this._maxDiagnosticsPerFile),startLineNumber:t[t.length-1].startLineNumber,startColumn:t[t.length-1].startColumn,endLineNumber:t[t.length-1].endLineNumber,endColumn:t[t.length-1].endColumn})}else t=i.map(t=>({...e6.Diagnostic.from(t),modelVersionId:this._modelVersionIdProvider(e)}));if(r.push([e,t]),(n+=t.length)>this._maxDiagnosticsTotal)break}this.#e.$changeMany(this._owner,r)}delete(e){this._checkDisposed(),this.#x.fire([e]),this.#D.delete(e),this.#e?.$changeMany(this._owner,[[e,void 0]])}clear(){this._checkDisposed(),this.#x.fire([...this.#D.keys()]),this.#D.clear(),this.#e?.$clear(this._owner)}forEach(e,t){for(let[i,r]of(this._checkDisposed(),this))e.call(t,i,r,this)}*[Symbol.iterator](){for(let e of(this._checkDisposed(),this.#D.keys()))yield[e,this.get(e)]}get(e){this._checkDisposed();let t=this.#D.get(e);return Array.isArray(t)?Object.freeze(t.slice(0)):[]}has(e){return this._checkDisposed(),Array.isArray(this.#D.get(e))}_checkDisposed(){if(this._isDisposed)throw Error("illegal state - object is disposed")}static _compareIndexedTuplesByUri(e,t){return e[0].toString()<t[0].toString()?-1:+(e[0].toString()>t[0].toString())}}let sl=class{static{ei=this}static{this._idPool=0}static{this._maxDiagnosticsPerFile=1e3}static{this._maxDiagnosticsTotal=1.1*this._maxDiagnosticsPerFile}static _mapper(e){let t=new eV.ResourceMap;for(let i of e)t.set(i,i);return{uris:Object.freeze(Array.from(t.values()))}}constructor(e,t,i,r){this._logService=t,this._fileSystemInfoService=i,this._extHostDocumentsAndEditors=r,this._collections=new Map,this._onDidChangeDiagnostics=new ey.DebounceEmitter({merge:e=>e.flat(),delay:50}),this.onDidChangeDiagnostics=ey.Event.map(this._onDidChangeDiagnostics.event,ei._mapper),this._proxy=e.getProxy(ev.MainContext.MainThreadDiagnostics)}createDiagnosticCollection(e,t){let i,{_collections:r,_proxy:n,_onDidChangeDiagnostics:o,_logService:s,_fileSystemInfoService:a,_extHostDocumentsAndEditors:l}=this,c=new class{$changeMany(t,i){n.$changeMany(t,i),s.trace("[DiagnosticCollection] change many (extension, owner, uris)",e.value,t,0===i.length?"CLEARING":i)}$clear(t){n.$clear(t),s.trace("[DiagnosticCollection] remove all (extension, owner)",e.value,t)}dispose(){n.dispose()}};if(t)if(r.has(t)){this._logService.warn(`DiagnosticCollection with name '${t}' does already exist.`);do i=t+ei._idPool++;while(r.has(i))}else i=t;else i=t="_generated_diagnostic_collection_name_#"+ei._idPool++;return new class extends sa{constructor(){super(t,i,ei._maxDiagnosticsTotal,ei._maxDiagnosticsPerFile,e=>l.getDocument(e)?.version,a.extUri,c,o),r.set(i,this)}dispose(){super.dispose(),r.delete(i)}}}getDiagnostics(e){if(e)return this._getDiagnostics(e);{let e=new Map,t=[];for(let i of this._collections.values())i.forEach((i,r)=>{let n=e.get(i.toString());void 0===n&&(n=t.length,e.set(i.toString(),n),t.push([i,[]])),t[n][1]=t[n][1].concat(...r)});return t}}_getDiagnostics(e){let t=[];for(let i of this._collections.values())i.has(e)&&(t=t.concat(i.get(e)));return t}$acceptMarkersChange(e){if(!this._mirrorCollection){let e="_generated_mirror",t=new sa(e,e,Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,e=>void 0,this._fileSystemInfoService.extUri,void 0,this._onDidChangeDiagnostics);this._collections.set(e,t),this._mirrorCollection=t}for(let[t,i]of e)this._mirrorCollection.set(eD.URI.revive(t),i.map(e6.Diagnostic.to))}};sl=ei=(0,ek.__decorate)([(0,ek.__param)(1,eM.ILogService),(0,ek.__param)(2,e$)],sl);class sc{constructor(e){this._proxy=e.getProxy(ev.MainContext.MainThreadDialogs)}showOpenDialog(e){return this._proxy.$showOpenDialog(e).then(e=>e?e.map(e=>eD.URI.revive(e)):void 0)}showSaveDialog(e){return this._proxy.$showSaveDialog(e).then(e=>e?eD.URI.revive(e):void 0)}}class sd{static{this._handlePool=0}constructor(e,t,i){this._documentsAndEditors=t,this._logService=i,this._documentContentProviders=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadDocumentContentProviders)}registerTextDocumentContentProvider(e,t){let i;if(Object.keys(eO.Schemas).indexOf(e)>=0)throw Error(`scheme '${e}' already registered`);let r=sd._handlePool++;if(this._documentContentProviders.set(r,t),this._proxy.$registerTextContentProvider(r,e),"function"==typeof t.onDidChange){let n;i=t.onDidChange(async t=>{if(t.scheme!==e)return void this._logService.warn(`Provider for scheme '${e}' is firing event for schema '${t.scheme}' which will be IGNORED`);if(!this._documentsAndEditors.getDocument(t))return;n&&await n;let i=this.$provideTextDocumentContent(r,t).then(async e=>{if(!e&&"string"!=typeof e)return;let i=this._documentsAndEditors.getDocument(t);if(!i)return;let r=(0,e0.splitLines)(e);if(!i.equalLines(r))return this._proxy.$onVirtualDocumentChange(t,e)}).catch(eg.onUnexpectedError).finally(()=>{n===i&&(n=void 0)});n=i})}return new eh.Disposable(()=>{this._documentContentProviders.delete(r)&&this._proxy.$unregisterTextContentProvider(r),i&&(i.dispose(),i=void 0)})}$provideTextDocumentContent(e,t){let i=this._documentContentProviders.get(e);return i?Promise.resolve(i.provideTextDocumentContent(eD.URI.revive(t),ef.CancellationToken.None)):Promise.reject(Error(`unsupported uri-scheme: ${t.scheme}`))}}var su=e.i(195603);class sh{constructor(e,t,i,r={timeout:1500,errors:3}){this._logService=e,this._documents=t,this._mainThreadBulkEdits=i,this._thresholds=r,this._callbacks=new su.LinkedList,this._badListeners=new WeakMap}dispose(){this._callbacks.clear()}getOnWillSaveTextDocumentEvent(e){return(t,i,r)=>{let n={dispose:this._callbacks.push([t,i,e])};return Array.isArray(r)&&r.push(n),n}}async $participateInSave(e,t){let i=eD.URI.revive(e),r=!1,n=setTimeout(()=>r=!0,this._thresholds.timeout),o=[];try{for(let e of[...this._callbacks]){if(r)break;let n=this._documents.getDocument(i),s=await this._deliverEventAsyncAndBlameBadListeners(e,{document:n,reason:e6.TextDocumentSaveReason.to(t)});o.push(s)}}finally{clearTimeout(n)}return o}_deliverEventAsyncAndBlameBadListeners([e,t,i],r){let n=this._badListeners.get(e);return"number"==typeof n&&n>this._thresholds.errors?Promise.resolve(!1):this._deliverEventAsync(i,e,t,r).then(()=>!0,t=>{if(this._logService.error(`onWillSaveTextDocument-listener from extension '${i.identifier.value}' threw ERROR`),this._logService.error(t),!(t instanceof Error)||"concurrent_edits"!==t.message){let t=this._badListeners.get(e);this._badListeners.set(e,t?t+1:1),"number"==typeof t&&t>this._thresholds.errors&&this._logService.info(`onWillSaveTextDocument-listener from extension '${i.identifier.value}' will now be IGNORED because of timeouts and/or errors`)}return!1})}_deliverEventAsync(e,t,i,r){let n=[],o=Date.now(),{document:s,reason:a}=r,{version:l}=s,c=Object.freeze({document:s,reason:a,waitUntil(e){if(Object.isFrozen(n))throw(0,eg.illegalState)("waitUntil can not be called async");n.push(Promise.resolve(e))}});try{t.apply(i,[c])}catch(e){return Promise.reject(e)}return new Promise((t,i)=>{let r=setTimeout(()=>i(Error("timeout")),this._thresholds.timeout);return Promise.all(n).then(i=>{this._logService.debug(`onWillSaveTextDocument-listener from extension '${e.identifier.value}' finished after ${Date.now()-o}ms`),clearTimeout(r),t(i)}).catch(e=>{clearTimeout(r),i(e)})}).then(e=>{let t={edits:[]};for(let i of e)if(Array.isArray(i)&&i.every(e=>e instanceof ie.TextEdit))for(let{newText:e,newEol:r,range:n}of i)t.edits.push({resource:s.uri,versionId:void 0,textEdit:{range:n&&e6.Range.from(n),text:e,eol:r&&e6.EndOfLine.from(r)}});if(0!==t.edits.length)return l===s.version?this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new tW.SerializableObjectWithBuffers(t)):Promise.reject(Error("concurrent_edits"))})}}class sg{constructor(e,t){this._onDidAddDocument=new ey.Emitter,this._onDidRemoveDocument=new ey.Emitter,this._onDidChangeDocument=new ey.Emitter,this._onDidChangeDocumentWithReason=new ey.Emitter,this._onDidSaveDocument=new ey.Emitter,this.onDidAddDocument=this._onDidAddDocument.event,this.onDidRemoveDocument=this._onDidRemoveDocument.event,this.onDidChangeDocument=this._onDidChangeDocument.event,this.onDidChangeDocumentWithReason=this._onDidChangeDocumentWithReason.event,this.onDidSaveDocument=this._onDidSaveDocument.event,this._toDispose=new eH.DisposableStore,this._documentLoader=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadDocuments),this._documentsAndEditors=t,this._documentsAndEditors.onDidRemoveDocuments(e=>{for(let t of e)this._onDidRemoveDocument.fire(t.document)},void 0,this._toDispose),this._documentsAndEditors.onDidAddDocuments(e=>{for(let t of e)this._onDidAddDocument.fire(t.document)},void 0,this._toDispose)}dispose(){this._toDispose.dispose()}getAllDocumentData(){return[...this._documentsAndEditors.allDocuments()]}getDocumentData(e){if(!e)return;let t=this._documentsAndEditors.getDocument(e);if(t)return t}getDocument(e){let t=this.getDocumentData(e);if(!t?.document)throw Error(`Unable to retrieve document from URI '${e}'`);return t.document}ensureDocumentData(e,t){let i=this._documentsAndEditors.getDocument(e);if(i&&(!t?.encoding||i.document.encoding===t.encoding))return Promise.resolve(i);let r=this._documentLoader.get(e.toString());return r?t?.encoding&&(r=r.then(i=>i.document.encoding!==t.encoding?this.ensureDocumentData(e,t):i)):(r=this._proxy.$tryOpenDocument(e,t).then(t=>{this._documentLoader.delete(e.toString());let i=eD.URI.revive(t);return(0,eK.assertReturnsDefined)(this._documentsAndEditors.getDocument(i))},t=>(this._documentLoader.delete(e.toString()),Promise.reject(t))),this._documentLoader.set(e.toString(),r)),r}createDocumentData(e){return this._proxy.$tryCreateDocument(e).then(e=>eD.URI.revive(e))}$acceptModelLanguageChanged(e,t){let i=eD.URI.revive(e),r=this._documentsAndEditors.getDocument(i);if(!r)throw Error("unknown document");this._onDidRemoveDocument.fire(r.document),r._acceptLanguageId(t),this._onDidAddDocument.fire(r.document)}$acceptModelSaved(e){let t=eD.URI.revive(e),i=this._documentsAndEditors.getDocument(t);if(!i)throw Error("unknown document");this.$acceptDirtyStateChanged(e,!1),this._onDidSaveDocument.fire(i.document)}$acceptDirtyStateChanged(e,t){let i=eD.URI.revive(e),r=this._documentsAndEditors.getDocument(i);if(!r)throw Error("unknown document");r._acceptIsDirty(t),this._onDidChangeDocument.fire({document:r.document,contentChanges:[],reason:void 0}),this._onDidChangeDocumentWithReason.fire({document:r.document,contentChanges:[],reason:void 0,detailedReason:void 0})}$acceptEncodingChanged(e,t){let i=eD.URI.revive(e),r=this._documentsAndEditors.getDocument(i);if(!r)throw Error("unknown document");r._acceptEncoding(t),this._onDidChangeDocument.fire({document:r.document,contentChanges:[],reason:void 0}),this._onDidChangeDocumentWithReason.fire({document:r.document,contentChanges:[],reason:void 0,detailedReason:void 0})}$acceptModelChanged(e,t,i){let r,n=eD.URI.revive(e),o=this._documentsAndEditors.getDocument(n);if(!o)throw Error("unknown document");o._acceptIsDirty(i),o.onEvents(t),t.isUndoing?r=eh.TextDocumentChangeReason.Undo:t.isRedoing&&(r=eh.TextDocumentChangeReason.Redo),this._onDidChangeDocument.fire((0,tv.deepFreeze)({document:o.document,contentChanges:t.changes.map(e=>({range:e6.Range.to(e.range),rangeOffset:e.rangeOffset,rangeLength:e.rangeLength,text:e.text})),reason:r})),this._onDidChangeDocumentWithReason.fire((0,tv.deepFreeze)({document:o.document,contentChanges:t.changes.map(e=>({range:e6.Range.to(e.range),rangeOffset:e.rangeOffset,rangeLength:e.rangeLength,text:e.text})),reason:r,detailedReason:t.detailedReason?{source:t.detailedReason.source,metadata:t.detailedReason}:void 0}))}setWordDefinitionFor(e,t){t?it.set(e,t):it.delete(e)}}class sp{constructor(e){this._provider=new Map,this._onDidChange=new ey.Emitter,this.onDidChange=this._onDidChange.event,this._allKnownModels=new Set,this._handlePool=0,this._proxy=e.getProxy(ev.MainContext.MainThreadEmbeddings)}registerEmbeddingsProvider(e,t,i){if(this._allKnownModels.has(t))throw Error("An embeddings provider for this model is already registered");let r=this._handlePool++;return this._proxy.$registerEmbeddingProvider(r,t),this._provider.set(r,{id:t,provider:i}),(0,eH.toDisposable)(()=>{this._allKnownModels.delete(t),this._proxy.$unregisterEmbeddingProvider(r),this._provider.delete(r)})}async computeEmbeddings(e,t,i){i??=ef.CancellationToken.None;let r=!1;"string"==typeof t&&(t=[t],r=!0);let n=await this._proxy.$computeEmbeddings(e,t,i);if(n.length!==t.length)throw Error();if(r){if(1!==n.length)throw Error();return n[0]}return n}async $provideEmbeddings(e,t,i){let r=this._provider.get(e);if(!r)return[];let n=await r.provider.provideEmbeddings(t,i);return n||[]}get embeddingsModels(){return Array.from(this._allKnownModels)}$acceptEmbeddingModels(e){this._allKnownModels=new Set(e),this._onDidChange.fire()}}class sm{constructor(e){this._AiEmbeddingVectorProviders=new Map,this._nextHandle=0,this._proxy=e.getProxy(ev.MainContext.MainThreadAiEmbeddingVector)}async $provideAiEmbeddingVector(e,t,i){if(0===this._AiEmbeddingVectorProviders.size)throw Error("No embedding vector providers registered");let r=this._AiEmbeddingVectorProviders.get(e);if(!r)throw Error("Embedding vector provider not found");let n=await r.provideEmbeddingVector(t,i);if(!n)throw Error("Embedding vector provider returned undefined");return n}registerEmbeddingVectorProvider(e,t,i){let r=this._nextHandle;return this._nextHandle++,this._AiEmbeddingVectorProviders.set(r,i),this._proxy.$registerAiEmbeddingVectorProvider(t,r),new eh.Disposable(()=>{this._proxy.$unregisterAiEmbeddingVectorProvider(r),this._AiEmbeddingVectorProviders.delete(r)})}}var sf=e.i(673078),sv=e.i(601293),s_=e.i(399119);class sy{constructor(){this._schemes=[]}add(e){this._stateMachine=void 0,this._schemes.push(e)}delete(e){let t=this._schemes.indexOf(e);t>=0&&(this._schemes.splice(t,1),this._stateMachine=void 0)}_initStateMachine(){if(!this._stateMachine){let e,t,i=this._schemes.sort(),r=[],n=sf.State.LastKnownState,o=sf.State.LastKnownState;for(let s of i){let i=e?(0,e0.commonPrefixLength)(e,s):0;for(t=0===i?sf.State.Start:o;i<s.length;i++)i+1===s.length?(n=o,o=sf.State.BeforeColon):o+=1,r.push([t,s.toUpperCase().charCodeAt(i),o]),r.push([t,s.toLowerCase().charCodeAt(i),o]),t=o;e=s,o=n}r.push([sf.State.BeforeColon,sv.CharCode.Colon,sf.State.AfterColon]),r.push([sf.State.AfterColon,sv.CharCode.Slash,sf.State.End]),this._stateMachine=new sf.StateMachine(r)}}provideDocumentLinks(e){this._initStateMachine();let t=[];for(let i of sf.LinkComputer.computeLinks({getLineContent:t=>e.lineAt(t-1).text,getLineCount:()=>e.lineCount},this._stateMachine)){let e=e6.DocumentLink.to(i);e.target&&t.push(e)}return t}}class sC{constructor(e,t){this._extHostLanguageFeatures=t,this._linkProvider=new sy,this._fsProvider=new Map,this._registeredSchemes=new Set,this._watches=new Map,this._handlePool=0,this._proxy=e.getProxy(ev.MainContext.MainThreadFileSystem)}dispose(){this._linkProviderRegistration?.dispose()}registerFileSystemProvider(e,t,i,r={}){let n;if(sC._validateFileSystemProvider(i),this._registeredSchemes.has(t))throw Error(`a provider for the scheme '${t}' is already registered`);this._linkProviderRegistration||(this._linkProviderRegistration=this._extHostLanguageFeatures.registerDocumentLinkProvider(e,"*",this._linkProvider));let o=this._handlePool++;this._linkProvider.add(t),this._registeredSchemes.add(t),this._fsProvider.set(o,i);let s=ep.FileSystemProviderCapabilities.FileReadWrite;r.isCaseSensitive&&(s+=ep.FileSystemProviderCapabilities.PathCaseSensitive),r.isReadonly&&(s+=ep.FileSystemProviderCapabilities.Readonly),"function"==typeof i.copy&&(s+=ep.FileSystemProviderCapabilities.FileFolderCopy),"function"==typeof i.open&&"function"==typeof i.close&&"function"==typeof i.read&&"function"==typeof i.write&&((0,tp.checkProposedApiEnabled)(e,"fsChunks"),s+=ep.FileSystemProviderCapabilities.FileOpenReadWriteClose),r.isReadonly&&(0,s_.isMarkdownString)(r.isReadonly)&&""!==r.isReadonly.value&&(n={value:r.isReadonly.value,isTrusted:r.isReadonly.isTrusted,supportThemeIcons:r.isReadonly.supportThemeIcons,supportHtml:r.isReadonly.supportHtml,baseUri:r.isReadonly.baseUri,uris:r.isReadonly.uris}),this._proxy.$registerFileSystemProvider(o,t,s,n).catch(i=>{console.error(`FAILED to register filesystem provider of ${e.identifier.value}-extension for the scheme ${t}`),console.error(i)});let a=i.onDidChangeFile(e=>{let i=[];for(let r of e){let e,{uri:n,type:o}=r;if(n.scheme===t){switch(o){case eh.FileChangeType.Changed:e=ep.FileChangeType.UPDATED;break;case eh.FileChangeType.Created:e=ep.FileChangeType.ADDED;break;case eh.FileChangeType.Deleted:e=ep.FileChangeType.DELETED;break;default:throw Error("Unknown FileChangeType")}i.push({resource:n,type:e})}}this._proxy.$onFileSystemChange(o,i)});return(0,eH.toDisposable)(()=>{a.dispose(),this._linkProvider.delete(t),this._registeredSchemes.delete(t),this._fsProvider.delete(o),this._proxy.$unregisterProvider(o)})}static _validateFileSystemProvider(e){if(!e)throw Error("MISSING provider");if("function"!=typeof e.watch)throw Error("Provider does NOT implement watch");if("function"!=typeof e.stat)throw Error("Provider does NOT implement stat");if("function"!=typeof e.readDirectory)throw Error("Provider does NOT implement readDirectory");if("function"!=typeof e.createDirectory)throw Error("Provider does NOT implement createDirectory");if("function"!=typeof e.readFile)throw Error("Provider does NOT implement readFile");if("function"!=typeof e.writeFile)throw Error("Provider does NOT implement writeFile");if("function"!=typeof e.delete)throw Error("Provider does NOT implement delete");if("function"!=typeof e.rename)throw Error("Provider does NOT implement rename")}static _asIStat(e){let{type:t,ctime:i,mtime:r,size:n,permissions:o}=e;return{type:t,ctime:i,mtime:r,size:n,permissions:o}}$stat(e,t){return Promise.resolve(this._getFsProvider(e).stat(eD.URI.revive(t))).then(e=>sC._asIStat(e))}$readdir(e,t){return Promise.resolve(this._getFsProvider(e).readDirectory(eD.URI.revive(t)))}$readFile(e,t){return Promise.resolve(this._getFsProvider(e).readFile(eD.URI.revive(t))).then(e=>eF.VSBuffer.wrap(e))}$writeFile(e,t,i,r){return Promise.resolve(this._getFsProvider(e).writeFile(eD.URI.revive(t),i.buffer,r))}$delete(e,t,i){return Promise.resolve(this._getFsProvider(e).delete(eD.URI.revive(t),i))}$rename(e,t,i,r){return Promise.resolve(this._getFsProvider(e).rename(eD.URI.revive(t),eD.URI.revive(i),r))}$copy(e,t,i,r){let n=this._getFsProvider(e);if(!n.copy)throw Error('FileSystemProvider does not implement "copy"');return Promise.resolve(n.copy(eD.URI.revive(t),eD.URI.revive(i),r))}$mkdir(e,t){return Promise.resolve(this._getFsProvider(e).createDirectory(eD.URI.revive(t)))}$watch(e,t,i,r){let n=this._getFsProvider(e).watch(eD.URI.revive(i),r);this._watches.set(t,n)}$unwatch(e,t){let i=this._watches.get(t);i&&(i.dispose(),this._watches.delete(t))}$open(e,t,i){let r=this._getFsProvider(e);if(!r.open)throw Error('FileSystemProvider does not implement "open"');return Promise.resolve(r.open(eD.URI.revive(t),i))}$close(e,t){let i=this._getFsProvider(e);if(!i.close)throw Error('FileSystemProvider does not implement "close"');return Promise.resolve(i.close(t))}$read(e,t,i,r){let n=this._getFsProvider(e);if(!n.read)throw Error('FileSystemProvider does not implement "read"');let o=eF.VSBuffer.alloc(r);return Promise.resolve(n.read(t,i,o.buffer,0,r)).then(e=>o.slice(0,e))}$write(e,t,i,r){let n=this._getFsProvider(e);if(!n.write)throw Error('FileSystemProvider does not implement "write"');return Promise.resolve(n.write(t,i,r.buffer,0,r.byteLength))}_getFsProvider(e){let t=this._fsProvider.get(e);if(!t){let e=Error();throw e.name="ENOPRO",e.message="no provider",e}return t}}var sS=eH;class sb extends sS.Disposable{static{this.MAX_RESTARTS=5}constructor(e,t,i,r){super(),this.onFileChanges=e,this.onLogMessage=t,this.verboseLogging=i,this.options=r,this.watcherDisposables=this._register(new sS.MutableDisposable),this.requests=void 0,this.restartCounter=0}init(){let e=new sS.DisposableStore;this.watcherDisposables.value=e,this.watcher=this.createWatcher(e),this.watcher.setVerboseLogging(this.verboseLogging),e.add(this.watcher.onDidChangeFile(e=>this.onFileChanges(e))),e.add(this.watcher.onDidLogMessage(e=>this.onLogMessage(e))),e.add(this.watcher.onDidError(e=>this.onError(e.error,e.request)))}onError(e,t){this.canRestart(e,t)?this.restartCounter<sb.MAX_RESTARTS&&this.requests?(this.error(`restarting watcher after unexpected error: ${e}`),this.restart(this.requests)):this.error(`gave up attempting to restart watcher after unexpected error: ${e}`):this.error(e)}canRestart(e,t){return!!this.options.restartOnError&&!t&&-1===e.indexOf("No space left on device")&&-1===e.indexOf("EMFILE")}restart(e){this.restartCounter++,this.init(),this.watch(e)}async watch(e){this.requests=e,await this.watcher?.watch(e)}async setVerboseLogging(e){this.verboseLogging=e,await this.watcher?.setVerboseLogging(e)}error(e){this.onLogMessage({type:"error",message:`[File Watcher (${this.options.type})] ${e}`})}trace(e){this.onLogMessage({type:"trace",message:`[File Watcher (${this.options.type})] ${e}`})}dispose(){return this.watcher=void 0,super.dispose()}}var sw=e.i(631895);class sx{get ignoreCreateEvents(){return!!(1&this._config)}get ignoreChangeEvents(){return!!(2&this._config)}get ignoreDeleteEvents(){return!!(4&this._config)}constructor(e,t,i,r,n,o,s,a){this.session=Math.random(),this._onDidCreate=new ey.Emitter,this._onDidChange=new ey.Emitter,this._onDidDelete=new ey.Emitter,this._config=0,a.ignoreCreateEvents&&(this._config+=1),a.ignoreChangeEvents&&(this._config+=2),a.ignoreDeleteEvents&&(this._config+=4);const l="string"==typeof s?!((i.getCapabilities(eO.Schemas.file)??0)&ep.FileSystemProviderCapabilities.PathCaseSensitive):i.extUri.ignorePathCasing(eD.URI.revive(s.baseUri)),c=(0,nx.parse)(s,{ignoreCase:l}),d="string"==typeof s,u=o(e=>{if("number"!=typeof e.session||e.session===this.session){if(!a.ignoreCreateEvents)for(let t of e.created){let e=eD.URI.revive(t);c(e.fsPath)&&(!d||r.getWorkspaceFolder(e))&&this._onDidCreate.fire(e)}if(!a.ignoreChangeEvents)for(let t of e.changed){let e=eD.URI.revive(t);c(e.fsPath)&&(!d||r.getWorkspaceFolder(e))&&this._onDidChange.fire(e)}if(!a.ignoreDeleteEvents)for(let t of e.deleted){let e=eD.URI.revive(t);c(e.fsPath)&&(!d||r.getWorkspaceFolder(e))&&this._onDidDelete.fire(e)}}});this._disposable=eh.Disposable.from(this.ensureWatching(e,r,t,n,s,a,!1),this._onDidCreate,this._onDidChange,this._onDidDelete,u)}ensureWatching(e,t,i,r,n,o,s){let a,l,c=eh.Disposable.from();if("string"==typeof n||o.ignoreChangeEvents&&o.ignoreCreateEvents&&o.ignoreDeleteEvents)return c;let d=e.getProxy(ev.MainContext.MainThreadFileSystemEventService),u=!1;(n.pattern.includes(nx.GLOBSTAR)||n.pattern.includes(nx.GLOB_SPLIT))&&(u=!0);let h=[];if(s)(o.ignoreChangeEvents||o.ignoreCreateEvents||o.ignoreDeleteEvents)&&(a=ep.FileChangeFilter.UPDATED|ep.FileChangeFilter.ADDED|ep.FileChangeFilter.DELETED,o.ignoreChangeEvents&&(a&=~ep.FileChangeFilter.UPDATED),o.ignoreCreateEvents&&(a&=~ep.FileChangeFilter.ADDED),o.ignoreDeleteEvents&&(a&=~ep.FileChangeFilter.DELETED));else if(u&&0===h.length){let e=t.getWorkspaceFolder(eD.URI.revive(n.baseUri)),r=i.getConfiguration("files",e).get("watcherExclude");if(r)for(let e in r)e&&!0===r[e]&&h.push(e)}else if(!u){let e=t.getWorkspaceFolder(eD.URI.revive(n.baseUri));if(e){let t=i.getConfiguration("files",e).get("watcherExclude");if(t){for(let i in t)if(i&&!0===t[i]){var g;let t=`${(0,e0.rtrim)(i,"/")}/${nx.GLOBSTAR}`;l||(l=[]),l.push((g=e.uri.fsPath,"string"!=typeof t||t.startsWith(nx.GLOBSTAR)||(0,tg.isAbsolute)(t)?t:{base:g,pattern:t}))}}if(!l||0===l.length)return c}}return d.$watch(r.identifier.value,this.session,n.baseUri,{recursive:u,excludes:h,includes:l,filter:a},!!s),eh.Disposable.from({dispose:()=>d.$unwatch(this.session)})}dispose(){this._disposable.dispose()}get onDidCreate(){return this._onDidCreate.event}get onDidChange(){return this._onDidChange.event}get onDidDelete(){return this._onDidDelete.event}}class sD{get created(){return this._created.value}get changed(){return this._changed.value}get deleted(){return this._deleted.value}constructor(e){this._events=e,this._created=new iu.Lazy(()=>this._events.created.map(eD.URI.revive)),this._changed=new iu.Lazy(()=>this._events.changed.map(eD.URI.revive)),this._deleted=new iu.Lazy(()=>this._events.deleted.map(eD.URI.revive)),this.session=this._events.session}}class sE{constructor(e,t,i){this._mainContext=e,this._logService=t,this._extHostDocumentsAndEditors=i,this._onFileSystemEvent=new ey.Emitter,this._onDidRenameFile=new ey.Emitter,this._onDidCreateFile=new ey.Emitter,this._onDidDeleteFile=new ey.Emitter,this._onWillRenameFile=new ey.AsyncEmitter,this._onWillCreateFile=new ey.AsyncEmitter,this._onWillDeleteFile=new ey.AsyncEmitter,this.onDidRenameFile=this._onDidRenameFile.event,this.onDidCreateFile=this._onDidCreateFile.event,this.onDidDeleteFile=this._onDidDeleteFile.event}createFileSystemWatcher(e,t,i,r,n,o){return new sx(this._mainContext,t,i,e,r,this._onFileSystemEvent.event,e6.GlobPattern.from(n),o)}$onFileEvent(e){this._onFileSystemEvent.fire(new sD(e))}$onDidRunFileOperation(e,t){switch(e){case ep.FileOperation.MOVE:this._onDidRenameFile.fire(Object.freeze({files:t.map(e=>({oldUri:eD.URI.revive(e.source),newUri:eD.URI.revive(e.target)}))}));break;case ep.FileOperation.DELETE:this._onDidDeleteFile.fire(Object.freeze({files:t.map(e=>eD.URI.revive(e.target))}));break;case ep.FileOperation.CREATE:case ep.FileOperation.COPY:this._onDidCreateFile.fire(Object.freeze({files:t.map(e=>eD.URI.revive(e.target))}))}}getOnWillRenameFileEvent(e){return this._createWillExecuteEvent(e,this._onWillRenameFile)}getOnWillCreateFileEvent(e){return this._createWillExecuteEvent(e,this._onWillCreateFile)}getOnWillDeleteFileEvent(e){return this._createWillExecuteEvent(e,this._onWillDeleteFile)}_createWillExecuteEvent(e,t){return(i,r,n)=>{let o=function(e){i.call(r,e)};return o.extension=e,t.event(o,void 0,n)}}async $onWillRunFileOperation(e,t,i,r){switch(e){case ep.FileOperation.MOVE:return await this._fireWillEvent(this._onWillRenameFile,{files:t.map(e=>({oldUri:eD.URI.revive(e.source),newUri:eD.URI.revive(e.target)}))},i,r);case ep.FileOperation.DELETE:return await this._fireWillEvent(this._onWillDeleteFile,{files:t.map(e=>eD.URI.revive(e.target))},i,r);case ep.FileOperation.CREATE:case ep.FileOperation.COPY:return await this._fireWillEvent(this._onWillCreateFile,{files:t.map(e=>eD.URI.revive(e.target))},i,r)}}async _fireWillEvent(e,t,i,r){let n=new Set,o=[];if(await e.fireAsync(t,r,async(e,t)=>{let r=Date.now(),s=await Promise.resolve(e);s instanceof sw.WorkspaceEdit&&(o.push([t.extension,s]),n.add(t.extension.displayName??t.extension.identifier.value)),Date.now()-r>i&&this._logService.warn("SLOW file-participant",t.extension.identifier)}),r.isCancellationRequested||0===o.length)return;let s={edits:[]};for(let[,e]of o){let{edits:t}=e6.WorkspaceEdit.from(e,{getTextDocumentVersion:e=>this._extHostDocumentsAndEditors.getDocument(e)?.version,getNotebookDocumentVersion:()=>void 0});s.edits=s.edits.concat(t)}return{edit:s,extensionNames:Array.from(n)}}}class sk{constructor(e,t,i,r,n){this._extHostNotebooks=t,this._textDocumentsAndEditors=i,this._commands=r;const o=new t5("interactive.open","_interactive.open","Open interactive window and return notebook editor and input URI",[new t3("showOptions","Show Options",e=>!0,e=>e),new t3("resource","Interactive resource Uri",e=>!0,e=>e),new t3("controllerId","Notebook controller Id",e=>!0,e=>e),new t3("title","Interactive editor title",e=>!0,e=>e)],new t4("Notebook and input URI",e=>{if(n.debug("[ExtHostInteractive] open iw with notebook editor id",e.notebookEditorId),void 0!==e.notebookEditorId){let t=this._extHostNotebooks.getEditorById(e.notebookEditorId);return n.debug("[ExtHostInteractive] notebook editor found",t.id),{notebookUri:eD.URI.revive(e.notebookUri),inputUri:eD.URI.revive(e.inputUri),notebookEditor:t.apiEditor}}return n.debug("[ExtHostInteractive] notebook editor not found, uris for the interactive document",e.notebookUri,e.inputUri),{notebookUri:eD.URI.revive(e.notebookUri),inputUri:eD.URI.revive(e.inputUri)}}));this._commands.registerApiCommand(o)}$willAddInteractiveDocument(e,t,i,r){this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({addedDocuments:[{EOL:t,lines:[""],languageId:i,uri:e,isDirty:!1,versionId:1,encoding:"utf8"}]})}$willRemoveInteractiveDocument(e,t){this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({removedDocuments:[e]})}}class sT{constructor(e){this._handlePool=0,this._proxy=e.getProxy(ev.MainContext.MainThreadLabelService)}$registerResourceLabelFormatter(e){let t=this._handlePool++;return this._proxy.$registerResourceLabelFormatter(t,e),(0,eH.toDisposable)(()=>{this._proxy.$unregisterResourceLabelFormatter(t)})}}var sR=eH,sP=e.i(340793),sI=e.i(386549);class sA{constructor(e,t){this._documents=e,this._provider=t}async provideDocumentSymbols(e,t){let i=this._documents.getDocument(e),r=await this._provider.provideDocumentSymbols(i,t);return(0,eY.isFalsyOrEmpty)(r)?void 0:r[0]instanceof eh.DocumentSymbol?r.map(e6.DocumentSymbol.from):sA._asDocumentSymbolTree(r)}static _asDocumentSymbolTree(e){e=e.slice(0).sort((e,t)=>{let i=e.location.range.start.compareTo(t.location.range.start);return 0===i&&(i=t.location.range.end.compareTo(e.location.range.end)),i});let t=[],i=[];for(let r of e){let e={name:r.name||"!!MISSING: name!!",kind:e6.SymbolKind.from(r.kind),tags:r.tags?.map(e6.SymbolTag.from)||[],detail:"",containerName:r.containerName,range:e6.Range.from(r.location.range),selectionRange:e6.Range.from(r.location.range),children:[]};for(;;){if(0===i.length){i.push(e),t.push(e);break}let r=i[i.length-1];if(tE.Range.containsRange(r.range,e.range)&&!tE.Range.equalsRange(r.range,e.range)){r.children?.push(e),i.push(e);break}i.pop()}}return t}}class sM{constructor(e,t,i,r,n,o){this._documents=e,this._commands=t,this._provider=i,this._extension=r,this._extTelemetry=n,this._logService=o,this._cache=new o9("CodeLens"),this._disposables=new Map}async provideCodeLenses(e,t){let i=this._documents.getDocument(e),r=await this._provider.provideCodeLenses(i,t);if(!r||t.isCancellationRequested)return;let n=this._cache.add(r),o=new sR.DisposableStore;this._disposables.set(n,o);let s={cacheId:n,lenses:[]};for(let e=0;e<r.length;e++){if(!ti.Range.isRange(r[e].range)){console.warn("INVALID code lens, range is not defined",this._extension.identifier.value);continue}s.lenses.push({cacheId:[n,e],range:e6.Range.from(r[e].range),command:this._commands.toInternal(r[e].command,o)})}return s}async resolveCodeLens(e,t){let i,r=e.cacheId&&this._cache.get(...e.cacheId);if(!r||((i="function"!=typeof this._provider.resolveCodeLens||r.isResolved?r:await this._provider.resolveCodeLens(r,t))||(i=r),t.isCancellationRequested))return;let n=e.cacheId&&this._disposables.get(e.cacheId[0]);if(n){if(!i.command){let e=Error("INVALID code lens resolved, lacks command: "+this._extension.identifier.value);this._extTelemetry.onExtensionError(this._extension.identifier,e),this._logService.error(e);return}return e.command=this._commands.toInternal(i.command,n),e}}releaseCodeLenses(e){this._disposables.get(e)?.dispose(),this._disposables.delete(e),this._cache.delete(e)}}function sL(e){return Array.isArray(e)?e.map(e6.DefinitionLink.from):e?[e6.DefinitionLink.from(e)]:[]}class sF{constructor(e,t){this._documents=e,this._provider=t}async provideDefinition(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t);return sL(await this._provider.provideDefinition(r,n,i))}}class sO{constructor(e,t){this._documents=e,this._provider=t}async provideDeclaration(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t);return sL(await this._provider.provideDeclaration(r,n,i))}}class sN{constructor(e,t){this._documents=e,this._provider=t}async provideImplementation(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t);return sL(await this._provider.provideImplementation(r,n,i))}}class s${constructor(e,t){this._documents=e,this._provider=t}async provideTypeDefinition(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t);return sL(await this._provider.provideTypeDefinition(r,n,i))}}class sH{static{this.HOVER_MAP_MAX_SIZE=10}constructor(e,t){this._documents=e,this._provider=t,this._hoverCounter=0,this._hoverMap=new Map}async provideHover(e,t,i,r){let n,o=this._documents.getDocument(e),s=e6.Position.to(t);if(i&&i.verbosityRequest){let e=i.verbosityRequest.previousHover.id,t=this._hoverMap.get(e);if(!t)throw Error(`Hover with id ${e} not found`);let a={verbosityDelta:i.verbosityRequest.verbosityDelta,previousHover:t};n=await this._provider.provideHover(o,s,r,a)}else n=await this._provider.provideHover(o,s,r);if(!n||(0,eY.isFalsyOrEmpty)(n.contents))return;n.range||(n.range=o.getWordRangeAtPosition(s)),n.range||(n.range=new ti.Range(s,s));let a=e6.Hover.from(n),l=this._hoverCounter;if(this._hoverMap.size===sH.HOVER_MAP_MAX_SIZE){let e=Math.min(...this._hoverMap.keys());this._hoverMap.delete(e)}return this._hoverMap.set(l,n),this._hoverCounter+=1,{...a,id:l}}releaseHover(e){this._hoverMap.delete(e)}}class sU{constructor(e,t){this._documents=e,this._provider=t}async provideEvaluatableExpression(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t),o=await this._provider.provideEvaluatableExpression(r,n,i);if(o)return e6.EvaluatableExpression.from(o)}}class sW{constructor(e,t){this._documents=e,this._provider=t}async provideInlineValues(e,t,i,r){let n=this._documents.getDocument(e),o=await this._provider.provideInlineValues(n,e6.Range.to(t),e6.InlineValueContext.to(i),r);if(Array.isArray(o))return o.map(e=>e6.InlineValue.from(e))}}class sq{constructor(e,t){this._documents=e,this._provider=t}async provideDocumentHighlights(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t),o=await this._provider.provideDocumentHighlights(r,n,i);if(Array.isArray(o))return o.map(e6.DocumentHighlight.from)}}class sj{constructor(e,t,i){this._documents=e,this._provider=t,this._logService=i}async provideMultiDocumentHighlights(e,t,i,r){let n=this._documents.getDocument(e),o=i.map(e=>{try{return this._documents.getDocument(e)}catch(t){this._logService.error("Error: Unable to retrieve document from URI: "+e+". Error message: "+t);return}}).filter(e=>void 0!==e),s=e6.Position.to(t),a=await this._provider.provideMultiDocumentHighlights(n,s,o,r);if(Array.isArray(a))return a.map(e6.MultiDocumentHighlight.from)}}class sz{constructor(e,t){this._documents=e,this._provider=t}async provideLinkedEditingRanges(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t),o=await this._provider.provideLinkedEditingRanges(r,n,i);if(o&&Array.isArray(o.ranges))return{ranges:(0,eY.coalesce)(o.ranges.map(e6.Range.from)),wordPattern:o.wordPattern}}}class sK{constructor(e,t){this._documents=e,this._provider=t}async provideReferences(e,t,i,r){let n=this._documents.getDocument(e),o=e6.Position.to(t),s=await this._provider.provideReferences(n,o,i,r);if(Array.isArray(s))return s.map(e6.location.from)}}class sV{static{this._maxCodeActionsPerFile=1e3}constructor(e,t,i,r,n,o,s){this._documents=e,this._commands=t,this._diagnostics=i,this._provider=r,this._logService=n,this._extension=o,this._apiDeprecation=s,this._cache=new o9("CodeAction"),this._disposables=new Map}async provideCodeActions(e,t,i,r){let n=this._documents.getDocument(e),o=sP.Selection.isISelection(t)?e6.Selection.to(t):e6.Range.to(t),s=[];for(let t of this._diagnostics.getDiagnostics(e))if(o.intersection(t.range)&&s.push(t)>sV._maxCodeActionsPerFile)break;let a={diagnostics:s,only:i.only?new ok.CodeActionKind(i.only):void 0,triggerKind:e6.CodeActionTriggerKind.to(i.trigger)},l=await this._provider.provideCodeActions(n,o,a,r);if(!(0,eY.isNonEmptyArray)(l)||r.isCancellationRequested)return;let c=this._cache.add(l),d=new sR.DisposableStore;this._disposables.set(c,d);let u=[];for(let e=0;e<l.length;e++){let t=l[e];if(t)if(!sV._isCommand(t)||t instanceof eh.CodeAction){a.only&&(t.kind?a.only.contains(t.kind)||this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${a.only.value}' requested but returned code action is of kind '${t.kind.value}'. Code action will be dropped. Please check 'CodeActionContext.only' to only return requested code actions.`):this._logService.warn(`${this._extension.identifier.value} - Code actions of kind '${a.only.value}' requested but returned code action does not have a 'kind'. Code action will be dropped. Please set 'CodeAction.kind'.`));let i=t.ranges??[];u.push({cacheId:[c,e],title:t.title,command:t.command&&this._commands.toInternal(t.command,d),diagnostics:t.diagnostics&&t.diagnostics.map(e6.Diagnostic.from),edit:t.edit&&e6.WorkspaceEdit.from(t.edit,void 0),kind:t.kind&&t.kind.value,isPreferred:t.isPreferred,isAI:!!(0,tp.isProposedApiEnabled)(this._extension,"codeActionAI")&&t.isAI,ranges:(0,tp.isProposedApiEnabled)(this._extension,"codeActionRanges")?(0,eY.coalesce)(i.map(e6.Range.from)):void 0,disabled:t.disabled?.reason})}else this._apiDeprecation.report("CodeActionProvider.provideCodeActions - return commands",this._extension,"Return 'CodeAction' instances instead."),u.push({_isSynthetic:!0,title:t.title,command:this._commands.toInternal(t,d)})}return{cacheId:c,actions:u}}async resolveCodeAction(e,t){let i,r,[n,o]=e,s=this._cache.get(n,o);if(!s||sV._isCommand(s)||!this._provider.resolveCodeAction)return{};let a=await this._provider.resolveCodeAction(s,t)??s;if(a.edit&&(i=e6.WorkspaceEdit.from(a.edit,void 0)),a.command){let e=this._disposables.get(n);e&&(r=this._commands.toInternal(a.command,e))}return{edit:i,command:r}}releaseCodeActions(e){this._disposables.get(e)?.dispose(),this._disposables.delete(e),this._cache.delete(e)}static _isCommand(e){return"string"==typeof e.command&&"string"==typeof e.title}}class sB{constructor(e,t,i,r,n){this._proxy=e,this._documents=t,this._provider=i,this._handle=r,this._extension=n,this._editsCache=new o9("DocumentPasteEdit.edits")}async prepareDocumentPaste(e,t,i,r){if(!this._provider.prepareDocumentPaste)return;this._cachedPrepare=void 0;let n=this._documents.getDocument(e),o=t.map(e=>e6.Range.to(e)),s=e6.DataTransfer.toDataTransfer(i,()=>{throw new eg.NotImplementedError});if(await this._provider.prepareDocumentPaste(n,o,s,r),r.isCancellationRequested)return;let a=Array.from(s).filter(([,e])=>!(e instanceof eh.InternalDataTransferItem)),l=new Map,c=await Promise.all(Array.from(a,async([e,t])=>{let i=(0,tJ.generateUuid)();return l.set(i,t),[e,await e6.DataTransferItem.from(e,t,i)]}));return this._cachedPrepare=l,{items:c}}async providePasteEdits(e,t,i,r,n,o){if(!this._provider.provideDocumentPasteEdits)return[];let s=this._documents.getDocument(t),a=i.map(e=>e6.Range.to(e)),l=r.items.map(([t,i])=>{let r=this._cachedPrepare?.get(i.id);return r?[t,r]:[t,e6.DataTransferItem.to(t,i,async t=>(await this._proxy.$resolvePasteFileData(this._handle,e,t)).buffer)]}),c=new eh.DataTransfer(l),d=await this._provider.provideDocumentPasteEdits(s,a,c,{only:n.only?new eh.DocumentDropOrPasteEditKind(n.only):void 0,triggerKind:n.triggerKind},o);if(!d||o.isCancellationRequested)return[];let u=this._editsCache.add(d);return d.map((e,t)=>({_cacheId:[u,t],title:e.title??(0,e1.localize)(2692,"Paste using '{0}' extension",this._extension.displayName||this._extension.name),kind:e.kind,yieldTo:e.yieldTo?.map(e=>e.value),insertText:"string"==typeof e.insertText?e.insertText:{snippet:e.insertText.value},additionalEdit:e.additionalEdit?e6.WorkspaceEdit.from(e.additionalEdit,void 0):void 0}))}async resolvePasteEdit(e,t){let[i,r]=e,n=this._editsCache.get(i,r);if(!n||!this._provider.resolveDocumentPasteEdit)return{};let o=await this._provider.resolveDocumentPasteEdit(n,t)??n;return{insertText:o.insertText,additionalEdit:o.additionalEdit?e6.WorkspaceEdit.from(o.additionalEdit,void 0):void 0}}releasePasteEdits(e){this._editsCache.delete(e)}}class sG{constructor(e,t){this._documents=e,this._provider=t}async provideDocumentFormattingEdits(e,t,i){let r=this._documents.getDocument(e),n=await this._provider.provideDocumentFormattingEdits(r,t,i);if(Array.isArray(n))return n.map(e6.TextEdit.from)}}class sQ{constructor(e,t){this._documents=e,this._provider=t}async provideDocumentRangeFormattingEdits(e,t,i,r){let n=this._documents.getDocument(e),o=e6.Range.to(t),s=await this._provider.provideDocumentRangeFormattingEdits(n,o,i,r);if(Array.isArray(s))return s.map(e6.TextEdit.from)}async provideDocumentRangesFormattingEdits(e,t,i,r){(0,eK.assertType)("function"==typeof this._provider.provideDocumentRangesFormattingEdits,"INVALID invocation of `provideDocumentRangesFormattingEdits`");let n=this._documents.getDocument(e),o=t.map(e6.Range.to),s=await this._provider.provideDocumentRangesFormattingEdits(n,o,i,r);if(Array.isArray(s))return s.map(e6.TextEdit.from)}}class sJ{constructor(e,t){this._documents=e,this._provider=t,this.autoFormatTriggerCharacters=[]}async provideOnTypeFormattingEdits(e,t,i,r,n){let o=this._documents.getDocument(e),s=e6.Position.to(t),a=await this._provider.provideOnTypeFormattingEdits(o,s,i,r,n);if(Array.isArray(a))return a.map(e6.TextEdit.from)}}class sY{constructor(e,t){this._provider=e,this._logService=t,this._cache=new o9("WorkspaceSymbols")}async provideWorkspaceSymbols(e,t){let i=await this._provider.provideWorkspaceSymbols(e,t);if(!(0,eY.isNonEmptyArray)(i))return{symbols:[]};let r=this._cache.add(i),n={cacheId:r,symbols:[]};for(let e=0;e<i.length;e++){let t=i[e];if(!t||!t.name){this._logService.warn("INVALID SymbolInformation",t);continue}n.symbols.push({...e6.WorkspaceSymbol.from(t),cacheId:[r,e]})}return n}async resolveWorkspaceSymbol(e,t){if("function"!=typeof this._provider.resolveWorkspaceSymbol||!e.cacheId)return e;let i=this._cache.get(...e.cacheId);if(i){let r=await this._provider.resolveWorkspaceSymbol(i,t);return r&&(0,tv.mixin)(e,e6.WorkspaceSymbol.from(r),!0)}}releaseWorkspaceSymbols(e){this._cache.delete(e)}}class sX{static supportsResolving(e){return"function"==typeof e.prepareRename}constructor(e,t,i){this._documents=e,this._provider=t,this._logService=i}async provideRenameEdits(e,t,i,r){let n=this._documents.getDocument(e),o=e6.Position.to(t);try{let e=await this._provider.provideRenameEdits(n,o,i,r);if(!e)return;return e6.WorkspaceEdit.from(e)}catch(t){let e=sX._asMessage(t);if(e)return{rejectReason:e,edits:void 0};return Promise.reject(t)}}async resolveRenameLocation(e,t,i){if("function"!=typeof this._provider.prepareRename)return Promise.resolve(void 0);let r=this._documents.getDocument(e),n=e6.Position.to(t);try{let e,t,o=await this._provider.prepareRename(r,n,i);if(ti.Range.isRange(o)?(e=o,t=r.getText(o)):(0,eK.isObject)(o)&&(e=o.range,t=o.placeholder),!e||!t)return;if(e.start.line>n.line||e.end.line<n.line)return void this._logService.warn("INVALID rename location: position line must be within range start/end lines");return{range:e6.Range.from(e),text:t}}catch(t){let e=sX._asMessage(t);if(e)return{rejectReason:e,range:void 0,text:void 0};return Promise.reject(t)}}static _asMessage(e){return"string"==typeof e?e:e instanceof Error&&"string"==typeof e.message?e.message:void 0}}class sZ{static{this.languageTriggerKindToVSCodeTriggerKind={[ow.NewSymbolNameTriggerKind.Invoke]:eh.NewSymbolNameTriggerKind.Invoke,[ow.NewSymbolNameTriggerKind.Automatic]:eh.NewSymbolNameTriggerKind.Automatic}}constructor(e,t,i){this._documents=e,this._provider=t,this._logService=i}async supportsAutomaticNewSymbolNamesTriggerKind(){return this._provider.supportsAutomaticTriggerKind}async provideNewSymbolNames(e,t,i,r){let n=this._documents.getDocument(e),o=e6.Range.to(t);try{let e=sZ.languageTriggerKindToVSCodeTriggerKind[i],t=await this._provider.provideNewSymbolNames(n,o,e,r);if(!t)return;return t.map(e=>"string"==typeof e?{newSymbolName:e}:{newSymbolName:e.newSymbolName,tags:e.tags})}catch(e){this._logService.error(sZ._asMessage(e)??JSON.stringify(e,null," "));return}}static _asMessage(e){return"string"==typeof e?e:e instanceof Error&&"string"==typeof e.message?e.message:void 0}}class s0{constructor(e,t){this.resultId=e,this.tokens=t}}class s1{constructor(e,t){this._documents=e,this._provider=t,this._nextResultId=1,this._previousResults=new Map}async provideDocumentSemanticTokens(e,t,i){let r=this._documents.getDocument(e),n=0!==t?this._previousResults.get(t):null,o="string"==typeof n?.resultId&&"function"==typeof this._provider.provideDocumentSemanticTokensEdits?await this._provider.provideDocumentSemanticTokensEdits(r,n.resultId,i):await this._provider.provideDocumentSemanticTokens(r,i);return(n&&this._previousResults.delete(t),o)?(o=s1._fixProvidedSemanticTokens(o),this._send(s1._convertToEdits(n,o),o)):null}async releaseDocumentSemanticColoring(e){this._previousResults.delete(e)}static _fixProvidedSemanticTokens(e){return s1._isSemanticTokens(e)?s1._isCorrectSemanticTokens(e)?e:new eh.SemanticTokens(new Uint32Array(e.data),e.resultId):s1._isSemanticTokensEdits(e)?s1._isCorrectSemanticTokensEdits(e)?e:new eh.SemanticTokensEdits(e.edits.map(e=>new eh.SemanticTokensEdit(e.start,e.deleteCount,e.data?new Uint32Array(e.data):e.data)),e.resultId):e}static _isSemanticTokens(e){return e&&!!e.data}static _isCorrectSemanticTokens(e){return e.data instanceof Uint32Array}static _isSemanticTokensEdits(e){return e&&Array.isArray(e.edits)}static _isCorrectSemanticTokensEdits(e){for(let t of e.edits)if(!(t.data instanceof Uint32Array))return!1;return!0}static _convertToEdits(e,t){if(!s1._isSemanticTokens(t)||!e||!e.tokens)return t;let i=e.tokens,r=i.length,n=t.data,o=n.length,s=0,a=Math.min(r,o);for(;s<a&&i[s]===n[s];)s++;if(s===r&&s===o)return new eh.SemanticTokensEdits([],t.resultId);let l=0,c=a-s;for(;l<c&&i[r-l-1]===n[o-l-1];)l++;return new eh.SemanticTokensEdits([{start:s,deleteCount:r-s-l,data:n.subarray(s,o-l)}],t.resultId)}_send(e,t){if(s1._isSemanticTokens(e)){let t=this._nextResultId++;return this._previousResults.set(t,new s0(e.resultId,e.data)),(0,ox.encodeSemanticTokensDto)({id:t,type:"full",data:e.data})}if(s1._isSemanticTokensEdits(e)){let i=this._nextResultId++;return s1._isSemanticTokens(t)?this._previousResults.set(i,new s0(t.resultId,t.data)):this._previousResults.set(i,new s0(e.resultId)),(0,ox.encodeSemanticTokensDto)({id:i,type:"delta",deltas:(e.edits||[]).map(e=>({start:e.start,deleteCount:e.deleteCount,data:e.data}))})}return null}}class s2{constructor(e,t){this._documents=e,this._provider=t}async provideDocumentRangeSemanticTokens(e,t,i){let r=this._documents.getDocument(e),n=await this._provider.provideDocumentRangeSemanticTokens(r,e6.Range.to(t),i);return n?this._send(n):null}_send(e){return(0,ox.encodeSemanticTokensDto)({id:0,type:"full",data:e.data})}}class s6{static supportsResolving(e){return"function"==typeof e.resolveCompletionItem}constructor(e,t,i,r,n){this._documents=e,this._commands=t,this._provider=i,this._apiDeprecation=r,this._extension=n,this._cache=new o9("CompletionItem"),this._disposables=new Map}async provideCompletionItems(e,t,i,r){let n=this._documents.getDocument(e),o=e6.Position.to(t),s=n.getWordRangeAtPosition(o)||new ti.Range(o,o),a=s.with({end:o}),l=new tj.StopWatch,c=await this._provider.provideCompletionItems(n,o,r,e6.CompletionContext.to(i));if(!c||r.isCancellationRequested)return;let d=Array.isArray(c)?new eh.CompletionList(c):c,u=s6.supportsResolving(this._provider)?this._cache.add(d.items):this._cache.add([]),h=new sR.DisposableStore;this._disposables.set(u,h);let g=[],p={x:u,[ev.ISuggestResultDtoField.completions]:g,[ev.ISuggestResultDtoField.defaultRanges]:{replace:e6.Range.from(s),insert:e6.Range.from(a)},[ev.ISuggestResultDtoField.isIncomplete]:d.isIncomplete||void 0,[ev.ISuggestResultDtoField.duration]:l.elapsed()};for(let e=0;e<d.items.length;e++){let t=d.items[e],i=this._convertCompletionItem(t,[u,e],a,s);g.push(i)}return p}async resolveCompletionItem(e,t){if("function"!=typeof this._provider.resolveCompletionItem)return;let i=this._cache.get(...e);if(!i)return;let r=this._convertCompletionItem(i,e),n=await this._provider.resolveCompletionItem(i,t);if(!n)return;let o=this._convertCompletionItem(n,e);return(r[ev.ISuggestDataDtoField.insertText]!==o[ev.ISuggestDataDtoField.insertText]||r[ev.ISuggestDataDtoField.insertTextRules]!==o[ev.ISuggestDataDtoField.insertTextRules])&&this._apiDeprecation.report("CompletionItem.insertText",this._extension,"extension MAY NOT change 'insertText' of a CompletionItem during resolve"),r[ev.ISuggestDataDtoField.commandIdent]===o[ev.ISuggestDataDtoField.commandIdent]&&r[ev.ISuggestDataDtoField.commandId]===o[ev.ISuggestDataDtoField.commandId]&&(0,tv.equals)(r[ev.ISuggestDataDtoField.commandArguments],o[ev.ISuggestDataDtoField.commandArguments])||this._apiDeprecation.report("CompletionItem.command",this._extension,"extension MAY NOT change 'command' of a CompletionItem during resolve"),{...r,[ev.ISuggestDataDtoField.documentation]:o[ev.ISuggestDataDtoField.documentation],[ev.ISuggestDataDtoField.detail]:o[ev.ISuggestDataDtoField.detail],[ev.ISuggestDataDtoField.additionalTextEdits]:o[ev.ISuggestDataDtoField.additionalTextEdits],[ev.ISuggestDataDtoField.insertText]:o[ev.ISuggestDataDtoField.insertText],[ev.ISuggestDataDtoField.insertTextRules]:o[ev.ISuggestDataDtoField.insertTextRules],[ev.ISuggestDataDtoField.commandIdent]:o[ev.ISuggestDataDtoField.commandIdent],[ev.ISuggestDataDtoField.commandId]:o[ev.ISuggestDataDtoField.commandId],[ev.ISuggestDataDtoField.commandArguments]:o[ev.ISuggestDataDtoField.commandArguments]}}releaseCompletionItems(e){this._disposables.get(e)?.dispose(),this._disposables.delete(e),this._cache.delete(e)}_convertCompletionItem(e,t,i,r){let n,o=this._disposables.get(t[0]);if(!o)throw Error("DisposableStore is missing...");let s=this._commands.toInternal(e.command,o),a={x:t,[ev.ISuggestDataDtoField.label]:e.label,[ev.ISuggestDataDtoField.kind]:void 0!==e.kind?e6.CompletionItemKind.from(e.kind):void 0,[ev.ISuggestDataDtoField.kindModifier]:e.tags&&e.tags.map(e6.CompletionItemTag.from),[ev.ISuggestDataDtoField.detail]:e.detail,[ev.ISuggestDataDtoField.documentation]:void 0===e.documentation?void 0:e6.MarkdownString.fromStrict(e.documentation),[ev.ISuggestDataDtoField.sortText]:e.sortText!==e.label?e.sortText:void 0,[ev.ISuggestDataDtoField.filterText]:e.filterText!==e.label?e.filterText:void 0,[ev.ISuggestDataDtoField.preselect]:e.preselect||void 0,[ev.ISuggestDataDtoField.insertTextRules]:e.keepWhitespace?ow.CompletionItemInsertTextRule.KeepWhitespace:ow.CompletionItemInsertTextRule.None,[ev.ISuggestDataDtoField.commitCharacters]:e.commitCharacters?.join(""),[ev.ISuggestDataDtoField.additionalTextEdits]:e.additionalTextEdits&&e.additionalTextEdits.map(e6.TextEdit.from),[ev.ISuggestDataDtoField.commandIdent]:s?.$ident,[ev.ISuggestDataDtoField.commandId]:s?.id,[ev.ISuggestDataDtoField.commandArguments]:s?.$ident?void 0:s?.arguments};return e.textEdit?(this._apiDeprecation.report("CompletionItem.textEdit",this._extension,"Use 'CompletionItem.insertText' and 'CompletionItem.range' instead."),a[ev.ISuggestDataDtoField.insertText]=e.textEdit.newText):"string"==typeof e.insertText?a[ev.ISuggestDataDtoField.insertText]=e.insertText:e.insertText instanceof sI.SnippetString&&(a[ev.ISuggestDataDtoField.insertText]=e.insertText.value,a[ev.ISuggestDataDtoField.insertTextRules]|=ow.CompletionItemInsertTextRule.InsertAsSnippet),e.textEdit?n=e.textEdit.range:e.range&&(n=e.range),ti.Range.isRange(n)?a[ev.ISuggestDataDtoField.range]=e6.Range.from(n):!n||i?.isEqual(n.inserting)&&r?.isEqual(n.replacing)||(a[ev.ISuggestDataDtoField.range]={insert:e6.Range.from(n.inserting),replace:e6.Range.from(n.replacing)}),a}}class s3{constructor(e,t,i,r){this._extension=e,this._documents=t,this._provider=i,this._commands=r,this._references=new s4,this.languageTriggerKindToVSCodeTriggerKind={[ow.InlineCompletionTriggerKind.Automatic]:eh.InlineCompletionTriggerKind.Automatic,[ow.InlineCompletionTriggerKind.Explicit]:eh.InlineCompletionTriggerKind.Invoke},this._isAdditionsProposedApiEnabled=(0,tp.isProposedApiEnabled)(this._extension,"inlineCompletionsAdditions")}get supportsHandleEvents(){return(0,tp.isProposedApiEnabled)(this._extension,"inlineCompletionsAdditions")&&("function"==typeof this._provider.handleDidShowCompletionItem||"function"==typeof this._provider.handleDidPartiallyAcceptCompletionItem||"function"==typeof this._provider.handleDidRejectCompletionItem||"function"==typeof this._provider.handleEndOfLifetime)}get supportsSetModelId(){return(0,tp.isProposedApiEnabled)(this._extension,"inlineCompletionsAdditions")&&"function"==typeof this._provider.setCurrentModelId}get modelInfo(){if(this._isAdditionsProposedApiEnabled)return this._provider.modelInfo?{models:this._provider.modelInfo.models,currentModelId:this._provider.modelInfo.currentModelId}:void 0}setCurrentModelId(e){this._isAdditionsProposedApiEnabled&&this._provider.setCurrentModelId?.(e)}async provideInlineCompletions(e,t,i,r){let n,o=this._documents.getDocument(e),s=e6.Position.to(t),a=await this._provider.provideInlineCompletionItems(o,s,{selectedCompletionInfo:i.selectedSuggestionInfo?{range:e6.Range.to(i.selectedSuggestionInfo.range),text:i.selectedSuggestionInfo.text}:void 0,triggerKind:this.languageTriggerKindToVSCodeTriggerKind[i.triggerKind],requestUuid:i.requestUuid,requestIssuedDateTime:i.requestIssuedDateTime,earliestShownDateTime:i.earliestShownDateTime},r);if(!a)return;let{resultItems:l,list:c}=Array.isArray(a)?{resultItems:a,list:void 0}:{resultItems:a.items,list:a},d=this._isAdditionsProposedApiEnabled?Array.isArray(a)?[]:a.commands||[]:[],u=this._isAdditionsProposedApiEnabled&&!Array.isArray(a)?a.enableForwardStability:void 0;return{pid:this._references.createReferenceId({dispose(){n?.dispose()},items:l,list:c}),languageId:o.languageId,items:l.map((e,t)=>{let i,r;e.command&&(n||(n=new sR.DisposableStore),i=this._commands.toInternal(e.command,n)),e.action&&(n||(n=new sR.DisposableStore),r=this._commands.toInternal(e.action,n));let o=e.insertText;return{insertText:void 0===o?void 0:"string"==typeof o?o:{snippet:o.value},range:e.range?e6.Range.from(e.range):void 0,showRange:this._isAdditionsProposedApiEnabled&&e.showRange?e6.Range.from(e.showRange):void 0,command:i,gutterMenuLinkAction:r,idx:t,completeBracketPairs:!!this._isAdditionsProposedApiEnabled&&e.completeBracketPairs,isInlineEdit:!!this._isAdditionsProposedApiEnabled&&e.isInlineEdit,showInlineEditMenu:!!this._isAdditionsProposedApiEnabled&&e.showInlineEditMenu,hint:e.displayLocation&&this._isAdditionsProposedApiEnabled?{range:e6.Range.from(e.displayLocation.range),content:e.displayLocation.label,style:e.displayLocation.kind?e6.InlineCompletionHintStyle.from(e.displayLocation.kind):ow.InlineCompletionHintStyle.Code}:void 0,warning:e.warning&&this._isAdditionsProposedApiEnabled?{message:e6.MarkdownString.from(e.warning.message),icon:e.warning.icon?e6.IconPath.fromThemeIcon(e.warning.icon):void 0}:void 0,correlationId:this._isAdditionsProposedApiEnabled?e.correlationId:void 0,suggestionId:void 0,uri:this._isAdditionsProposedApiEnabled&&e.uri?e.uri:void 0,supportsRename:!!this._isAdditionsProposedApiEnabled&&e.supportsRename,jumpToPosition:this._isAdditionsProposedApiEnabled&&e.jumpToPosition?e6.Position.from(e.jumpToPosition):void 0}}),commands:d.map(e=>(n||(n=new sR.DisposableStore),e6.CompletionCommand.from(e,this._commands,n))),suppressSuggestions:!1,enableForwardStability:u}}disposeCompletions(e,t){let i=this._references.get(e);this._provider.handleListEndOfLifetime&&this._isAdditionsProposedApiEnabled&&i?.list&&this._provider.handleListEndOfLifetime(i.list,function(e){switch(e.kind){case"lostRace":return{kind:eh.InlineCompletionsDisposeReasonKind.LostRace};case"tokenCancellation":return{kind:eh.InlineCompletionsDisposeReasonKind.TokenCancellation};case"other":default:return{kind:eh.InlineCompletionsDisposeReasonKind.Other};case"empty":return{kind:eh.InlineCompletionsDisposeReasonKind.Empty};case"notTaken":return{kind:eh.InlineCompletionsDisposeReasonKind.NotTaken}}}(t));let r=this._references.disposeReferenceId(e);r?.dispose()}handleDidShowCompletionItem(e,t,i){let r=this._references.get(e)?.items[t];r&&this._provider.handleDidShowCompletionItem&&this._isAdditionsProposedApiEnabled&&this._provider.handleDidShowCompletionItem(r,i)}handlePartialAccept(e,t,i,r){let n=this._references.get(e)?.items[t];n&&this._provider.handleDidPartiallyAcceptCompletionItem&&this._isAdditionsProposedApiEnabled&&(this._provider.handleDidPartiallyAcceptCompletionItem(n,i),this._provider.handleDidPartiallyAcceptCompletionItem(n,e6.PartialAcceptInfo.to(r)))}handleEndOfLifetime(e,t,i){let r=this._references.get(e)?.items[t];if(r&&this._provider.handleEndOfLifetime&&this._isAdditionsProposedApiEnabled){let e=e6.InlineCompletionEndOfLifeReason.to(i,e=>this._references.get(e.pid)?.items[e.idx]);this._provider.handleEndOfLifetime(r,e)}}handleRejection(e,t){let i=this._references.get(e)?.items[t];i&&this._provider.handleDidRejectCompletionItem&&this._isAdditionsProposedApiEnabled&&this._provider.handleDidRejectCompletionItem(i)}}class s4{constructor(){this._references=new Map,this._idPool=1}createReferenceId(e){let t=this._idPool++;return this._references.set(t,e),t}disposeReferenceId(e){let t=this._references.get(e);return this._references.delete(e),t}get(e){return this._references.get(e)}}class s5{constructor(e,t){this._documents=e,this._provider=t,this._cache=new o9("SignatureHelp")}async provideSignatureHelp(e,t,i,r){let n=this._documents.getDocument(e),o=e6.Position.to(t),s=this.reviveContext(i),a=await this._provider.provideSignatureHelp(n,o,r,s);if(a){let e=this._cache.add([a]);return{...e6.SignatureHelp.from(a),id:e}}}reviveContext(e){let t;if(e.activeSignatureHelp){let i=e6.SignatureHelp.to(e.activeSignatureHelp),r=this._cache.get(e.activeSignatureHelp.id,0);r?((t=r).activeSignature=i.activeSignature,t.activeParameter=i.activeParameter):t=i}return{...e,activeSignatureHelp:t}}releaseSignatureHelp(e){this._cache.delete(e)}}class s8{constructor(e,t,i,r,n){this._documents=e,this._commands=t,this._provider=i,this._logService=r,this._extension=n,this._cache=new o9("InlayHints"),this._disposables=new Map}async provideInlayHints(e,t,i){let r=this._documents.getDocument(e),n=e6.Range.to(t),o=await this._provider.provideInlayHints(r,n,i);if(!Array.isArray(o)||0===o.length)return void this._logService.trace(`[InlayHints] NO inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(t)}`);if(i.isCancellationRequested)return;let s=this._cache.add(o);this._disposables.set(s,new sR.DisposableStore);let a={hints:[],cacheId:s};for(let e=0;e<o.length;e++)this._isValidInlayHint(o[e],n)&&a.hints.push(this._convertInlayHint(o[e],[s,e]));return this._logService.trace(`[InlayHints] ${a.hints.length} inlay hints from '${this._extension.identifier.value}' for range ${JSON.stringify(t)}`),a}async resolveInlayHint(e,t){if("function"!=typeof this._provider.resolveInlayHint)return;let i=this._cache.get(...e);if(!i)return;let r=await this._provider.resolveInlayHint(i,t);if(r&&this._isValidInlayHint(r))return this._convertInlayHint(r,e)}releaseHints(e){this._disposables.get(e)?.dispose(),this._disposables.delete(e),this._cache.delete(e)}_isValidInlayHint(e,t){return 0===e.label.length||Array.isArray(e.label)&&e.label.every(e=>0===e.value.length)?(console.log("INVALID inlay hint, empty label",e),!1):!t||!!t.contains(e.position)}_convertInlayHint(e,t){let i=this._disposables.get(t[0]);if(!i)throw Error("DisposableStore is missing...");let r={label:"",cacheId:t,tooltip:e6.MarkdownString.fromStrict(e.tooltip),position:e6.Position.from(e.position),textEdits:e.textEdits&&e.textEdits.map(e6.TextEdit.from),kind:e.kind&&e6.InlayHintKind.from(e.kind),paddingLeft:e.paddingLeft,paddingRight:e.paddingRight};if("string"==typeof e.label)r.label=e.label;else{let t=[];for(let n of(r.label=t,e.label)){if(!n.value){console.warn("INVALID inlay hint, empty label part",this._extension.identifier.value);continue}let e={label:n.value,tooltip:e6.MarkdownString.fromStrict(n.tooltip)};tZ.Location.isLocation(n.location)&&(e.location=e6.location.from(n.location)),n.command&&(e.command=this._commands.toInternal(n.command,i)),t.push(e)}}return r}}class s7{constructor(e,t){this._documents=e,this._provider=t,this._cache=new o9("DocumentLink")}async provideLinks(e,t){let i=this._documents.getDocument(e),r=await this._provider.provideDocumentLinks(i,t);if(Array.isArray(r)&&0!==r.length&&!t.isCancellationRequested)if("function"!=typeof this._provider.resolveDocumentLink)return{links:r.filter(s7._validateLink).map(e6.DocumentLink.from)};else{let e=this._cache.add(r),t={links:[],cacheId:e};for(let i=0;i<r.length;i++){if(!s7._validateLink(r[i]))continue;let n=e6.DocumentLink.from(r[i]);n.cacheId=[e,i],t.links.push(n)}return t}}static _validateLink(e){return!e.target||!(e.target.path.length>5e4)||(console.warn("DROPPING link because it is too long"),!1)}async resolveLink(e,t){if("function"!=typeof this._provider.resolveDocumentLink)return;let i=this._cache.get(...e);if(!i)return;let r=await this._provider.resolveDocumentLink(i,t);if(r&&s7._validateLink(r))return e6.DocumentLink.from(r)}releaseLinks(e){this._cache.delete(e)}}class s9{constructor(e,t){this._documents=e,this._provider=t}async provideColors(e,t){let i=this._documents.getDocument(e),r=await this._provider.provideDocumentColors(i,t);return Array.isArray(r)?r.map(e=>({color:e6.Color.from(e.color),range:e6.Range.from(e.range)})):[]}async provideColorPresentations(e,t,i){let r=this._documents.getDocument(e),n=e6.Range.to(t.range),o=e6.Color.to(t.color),s=await this._provider.provideColorPresentations(o,{document:r,range:n},i);if(Array.isArray(s))return s.map(e6.ColorPresentation.from)}}class ae{constructor(e,t){this._documents=e,this._provider=t}async provideFoldingRanges(e,t,i){let r=this._documents.getDocument(e),n=await this._provider.provideFoldingRanges(r,t,i);if(Array.isArray(n))return n.map(e6.FoldingRange.from)}}class at{constructor(e,t,i){this._documents=e,this._provider=t,this._logService=i}async provideSelectionRanges(e,t,i){let r=this._documents.getDocument(e),n=t.map(e6.Position.to),o=await this._provider.provideSelectionRanges(r,n,i);if(!(0,eY.isNonEmptyArray)(o))return[];if(o.length!==n.length)return this._logService.warn("BAD selection ranges, provider must return ranges for each position"),[];let s=[];for(let e=0;e<n.length;e++){let t=[];s.push(t);let i=n[e],r=o[e];for(;;){if(!r.range.contains(i))throw Error("INVALID selection range, must contain the previous range");if(t.push(e6.SelectionRange.from(r)),!r.parent)break;i=r.range,r=r.parent}}return s}}class ai{constructor(e,t){this._documents=e,this._provider=t,this._idPool=new io.IdGenerator(""),this._cache=new Map}async prepareSession(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t),o=await this._provider.prepareCallHierarchy(r,n,i);if(!o)return;let s=this._idPool.nextId();return(this._cache.set(s,new Map),Array.isArray(o))?o.map(e=>this._cacheAndConvertItem(s,e)):[this._cacheAndConvertItem(s,o)]}async provideCallsTo(e,t,i){let r=this._itemFromCache(e,t);if(!r)throw Error("missing call hierarchy item");let n=await this._provider.provideCallHierarchyIncomingCalls(r,i);if(n)return n.map(t=>({from:this._cacheAndConvertItem(e,t.from),fromRanges:t.fromRanges.map(e=>e6.Range.from(e))}))}async provideCallsFrom(e,t,i){let r=this._itemFromCache(e,t);if(!r)throw Error("missing call hierarchy item");let n=await this._provider.provideCallHierarchyOutgoingCalls(r,i);if(n)return n.map(t=>({to:this._cacheAndConvertItem(e,t.to),fromRanges:t.fromRanges.map(e=>e6.Range.from(e))}))}releaseSession(e){this._cache.delete(e)}_cacheAndConvertItem(e,t){let i=this._cache.get(e),r=e6.CallHierarchyItem.from(t,e,i.size.toString(36));return i.set(r._itemId,t),r}_itemFromCache(e,t){let i=this._cache.get(e);return i?.get(t)}}class ar{constructor(e,t){this._documents=e,this._provider=t,this._idPool=new io.IdGenerator(""),this._cache=new Map}async prepareSession(e,t,i){let r=this._documents.getDocument(e),n=e6.Position.to(t),o=await this._provider.prepareTypeHierarchy(r,n,i);if(!o)return;let s=this._idPool.nextId();return(this._cache.set(s,new Map),Array.isArray(o))?o.map(e=>this._cacheAndConvertItem(s,e)):[this._cacheAndConvertItem(s,o)]}async provideSupertypes(e,t,i){let r=this._itemFromCache(e,t);if(!r)throw Error("missing type hierarchy item");let n=await this._provider.provideTypeHierarchySupertypes(r,i);if(n)return n.map(t=>this._cacheAndConvertItem(e,t))}async provideSubtypes(e,t,i){let r=this._itemFromCache(e,t);if(!r)throw Error("missing type hierarchy item");let n=await this._provider.provideTypeHierarchySubtypes(r,i);if(n)return n.map(t=>this._cacheAndConvertItem(e,t))}releaseSession(e){this._cache.delete(e)}_cacheAndConvertItem(e,t){let i=this._cache.get(e),r=e6.TypeHierarchyItem.from(t,e,i.size.toString(36));return i.set(r._itemId,t),r}_itemFromCache(e,t){let i=this._cache.get(e);return i?.get(t)}}class an{constructor(e,t,i,r,n){this._proxy=e,this._documents=t,this._provider=i,this._handle=r,this._extension=n,this._cache=new o9("DocumentDropEdit")}async provideDocumentOnDropEdits(e,t,i,r,n){let o=this._documents.getDocument(t),s=e6.Position.to(i),a=e6.DataTransfer.toDataTransfer(r,async t=>(await this._proxy.$resolveDocumentOnDropFileData(this._handle,e,t)).buffer),l=await this._provider.provideDocumentDropEdits(o,s,a,n);if(!l)return;let c=(0,eY.asArray)(l),d=this._cache.add(c);return c.map((e,t)=>({_cacheId:[d,t],title:e.title??(0,e1.localize)(2693,"Drop using '{0}' extension",this._extension.displayName||this._extension.name),kind:e.kind?.value,yieldTo:e.yieldTo?.map(e=>e.value),insertText:"string"==typeof e.insertText?e.insertText:{snippet:e.insertText.value},additionalEdit:e.additionalEdit?e6.WorkspaceEdit.from(e.additionalEdit,void 0):void 0}))}async resolveDropEdit(e,t){let[i,r]=e,n=this._cache.get(i,r);if(!n||!this._provider.resolveDocumentDropEdit)return{};let o=await this._provider.resolveDocumentDropEdit(n,t)??n;return{additionalEdit:o.additionalEdit?e6.WorkspaceEdit.from(o.additionalEdit,void 0):void 0}}releaseDropEdits(e){this._cache.delete(e)}}class ao{constructor(e,t){this.adapter=e,this.extension=t}}class as extends sR.Disposable{static{this._handlePool=0}get inlineCompletionsUnificationState(){return this._inlineCompletionsUnificationState}constructor(e,t,i,r,n,o,s,a){super(),this._uriTransformer=t,this._documents=i,this._commands=r,this._diagnostics=n,this._logService=o,this._apiDeprecation=s,this._extensionTelemetry=a,this._adapter=new Map,this._onDidChangeInlineCompletionsUnificationState=this._register(new ey.Emitter),this.onDidChangeInlineCompletionsUnificationState=this._onDidChangeInlineCompletionsUnificationState.event,this._proxy=e.getProxy(ev.MainContext.MainThreadLanguageFeatures),this._inlineCompletionsUnificationState={codeUnification:!1,modelUnification:!1,extensionUnification:!1,expAssignments:[]}}_transformDocumentSelector(e,t){return e6.DocumentSelector.from(e,this._uriTransformer,t)}_createDisposable(e){return new eh.Disposable(()=>{this._adapter.delete(e),this._proxy.$unregister(e)})}_nextHandle(){return as._handlePool++}async _withAdapter(e,t,i,r,n,o=!1){let s=this._adapter.get(e);if(!s||!(s.adapter instanceof t))return r;let a=Date.now();o||this._logService.trace(`[${s.extension.identifier.value}] INVOKE provider '${i.toString().replace(/[\r\n]/g,"")}'`);let l=i(s.adapter,s.extension);return(Promise.resolve(l).catch(e=>{(0,eg.isCancellationError)(e)||(this._logService.error(`[${s.extension.identifier.value}] provider FAILED`),this._logService.error(e),this._extensionTelemetry.onExtensionError(s.extension.identifier,e))}).finally(()=>{o||this._logService.trace(`[${s.extension.identifier.value}] provider DONE after ${Date.now()-a}ms`)}),ef.CancellationToken.isCancellationToken(n))?(0,eU.raceCancellationError)(l,n):l}_addNewAdapter(e,t){let i=this._nextHandle();return this._adapter.set(i,new ao(e,t)),i}static _extLabel(e){return e.displayName||e.name}static _extId(e){return e.identifier.value}registerDocumentSymbolProvider(e,t,i,r){let n=this._addNewAdapter(new sA(this._documents,i),e),o=r&&r.label||as._extLabel(e);return this._proxy.$registerDocumentSymbolProvider(n,this._transformDocumentSelector(t,e),o),this._createDisposable(n)}$provideDocumentSymbols(e,t,i){return this._withAdapter(e,sA,e=>e.provideDocumentSymbols(eD.URI.revive(t),i),void 0,i)}registerCodeLensProvider(e,t,i){let r=this._nextHandle(),n="function"==typeof i.onDidChangeCodeLenses?this._nextHandle():void 0;this._adapter.set(r,new ao(new sM(this._documents,this._commands.converter,i,e,this._extensionTelemetry,this._logService),e)),this._proxy.$registerCodeLensSupport(r,this._transformDocumentSelector(t,e),n);let o=this._createDisposable(r);if(void 0!==n){let e=i.onDidChangeCodeLenses(e=>this._proxy.$emitCodeLensEvent(n));o=eh.Disposable.from(o,e)}return o}$provideCodeLenses(e,t,i){return this._withAdapter(e,sM,e=>e.provideCodeLenses(eD.URI.revive(t),i),void 0,i,"output"===t.scheme)}$resolveCodeLens(e,t,i){return this._withAdapter(e,sM,e=>e.resolveCodeLens(t,i),void 0,void 0,!0)}$releaseCodeLenses(e,t){this._withAdapter(e,sM,e=>Promise.resolve(e.releaseCodeLenses(t)),void 0,void 0,!0)}registerDefinitionProvider(e,t,i){let r=this._addNewAdapter(new sF(this._documents,i),e);return this._proxy.$registerDefinitionSupport(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideDefinition(e,t,i,r){return this._withAdapter(e,sF,e=>e.provideDefinition(eD.URI.revive(t),i,r),[],r)}registerDeclarationProvider(e,t,i){let r=this._addNewAdapter(new sO(this._documents,i),e);return this._proxy.$registerDeclarationSupport(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideDeclaration(e,t,i,r){return this._withAdapter(e,sO,e=>e.provideDeclaration(eD.URI.revive(t),i,r),[],r)}registerImplementationProvider(e,t,i){let r=this._addNewAdapter(new sN(this._documents,i),e);return this._proxy.$registerImplementationSupport(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideImplementation(e,t,i,r){return this._withAdapter(e,sN,e=>e.provideImplementation(eD.URI.revive(t),i,r),[],r)}registerTypeDefinitionProvider(e,t,i){let r=this._addNewAdapter(new s$(this._documents,i),e);return this._proxy.$registerTypeDefinitionSupport(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideTypeDefinition(e,t,i,r){return this._withAdapter(e,s$,e=>e.provideTypeDefinition(eD.URI.revive(t),i,r),[],r)}registerHoverProvider(e,t,i,r){let n=this._addNewAdapter(new sH(this._documents,i),e);return this._proxy.$registerHoverProvider(n,this._transformDocumentSelector(t,e)),this._createDisposable(n)}$provideHover(e,t,i,r,n){return this._withAdapter(e,sH,e=>e.provideHover(eD.URI.revive(t),i,r,n),void 0,n)}$releaseHover(e,t){this._withAdapter(e,sH,e=>Promise.resolve(e.releaseHover(t)),void 0,void 0)}registerEvaluatableExpressionProvider(e,t,i,r){let n=this._addNewAdapter(new sU(this._documents,i),e);return this._proxy.$registerEvaluatableExpressionProvider(n,this._transformDocumentSelector(t,e)),this._createDisposable(n)}$provideEvaluatableExpression(e,t,i,r){return this._withAdapter(e,sU,e=>e.provideEvaluatableExpression(eD.URI.revive(t),i,r),void 0,r)}registerInlineValuesProvider(e,t,i,r){let n="function"==typeof i.onDidChangeInlineValues?this._nextHandle():void 0,o=this._addNewAdapter(new sW(this._documents,i),e);this._proxy.$registerInlineValuesProvider(o,this._transformDocumentSelector(t,e),n);let s=this._createDisposable(o);if(void 0!==n){let e=i.onDidChangeInlineValues(e=>this._proxy.$emitInlineValuesEvent(n));s=eh.Disposable.from(s,e)}return s}$provideInlineValues(e,t,i,r,n){return this._withAdapter(e,sW,e=>e.provideInlineValues(eD.URI.revive(t),i,r,n),void 0,n)}registerDocumentHighlightProvider(e,t,i){let r=this._addNewAdapter(new sq(this._documents,i),e);return this._proxy.$registerDocumentHighlightProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}registerMultiDocumentHighlightProvider(e,t,i){let r=this._addNewAdapter(new sj(this._documents,i,this._logService),e);return this._proxy.$registerMultiDocumentHighlightProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideDocumentHighlights(e,t,i,r){return this._withAdapter(e,sq,e=>e.provideDocumentHighlights(eD.URI.revive(t),i,r),void 0,r)}$provideMultiDocumentHighlights(e,t,i,r,n){return this._withAdapter(e,sj,e=>e.provideMultiDocumentHighlights(eD.URI.revive(t),i,r.map(e=>eD.URI.revive(e)),n),void 0,n)}registerLinkedEditingRangeProvider(e,t,i){let r=this._addNewAdapter(new sz(this._documents,i),e);return this._proxy.$registerLinkedEditingRangeProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideLinkedEditingRanges(e,t,i,r){return this._withAdapter(e,sz,async e=>{let n=await e.provideLinkedEditingRanges(eD.URI.revive(t),i,r);if(n)return{ranges:n.ranges,wordPattern:n.wordPattern?as._serializeRegExp(n.wordPattern):void 0}},void 0,r)}registerReferenceProvider(e,t,i){let r=this._addNewAdapter(new sK(this._documents,i),e);return this._proxy.$registerReferenceSupport(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideReferences(e,t,i,r,n){return this._withAdapter(e,sK,e=>e.provideReferences(eD.URI.revive(t),i,r,n),void 0,n)}registerCodeActionProvider(e,t,i,r){let n=new sR.DisposableStore,o=this._addNewAdapter(new sV(this._documents,this._commands.converter,this._diagnostics,i,this._logService,e,this._apiDeprecation),e);return this._proxy.$registerCodeActionSupport(o,this._transformDocumentSelector(t,e),{providedKinds:r?.providedCodeActionKinds?.map(e=>e.value),documentation:r?.documentation?.map(e=>({kind:e.kind.value,command:this._commands.converter.toInternal(e.command,n)}))},as._extLabel(e),as._extId(e),!!i.resolveCodeAction),n.add(this._createDisposable(o)),n}$provideCodeActions(e,t,i,r,n){return this._withAdapter(e,sV,e=>e.provideCodeActions(eD.URI.revive(t),i,r,n),void 0,n)}$resolveCodeAction(e,t,i){return this._withAdapter(e,sV,e=>e.resolveCodeAction(t,i),{},void 0)}$releaseCodeActions(e,t){this._withAdapter(e,sV,e=>Promise.resolve(e.releaseCodeActions(t)),void 0,void 0)}registerDocumentFormattingEditProvider(e,t,i){let r=this._addNewAdapter(new sG(this._documents,i),e);return this._proxy.$registerDocumentFormattingSupport(r,this._transformDocumentSelector(t,e),e.identifier,e.displayName||e.name),this._createDisposable(r)}$provideDocumentFormattingEdits(e,t,i,r){return this._withAdapter(e,sG,e=>e.provideDocumentFormattingEdits(eD.URI.revive(t),i,r),void 0,r)}registerDocumentRangeFormattingEditProvider(e,t,i){let r="function"==typeof i.provideDocumentRangesFormattingEdits,n=this._addNewAdapter(new sQ(this._documents,i),e);return this._proxy.$registerRangeFormattingSupport(n,this._transformDocumentSelector(t,e),e.identifier,e.displayName||e.name,r),this._createDisposable(n)}$provideDocumentRangeFormattingEdits(e,t,i,r,n){return this._withAdapter(e,sQ,e=>e.provideDocumentRangeFormattingEdits(eD.URI.revive(t),i,r,n),void 0,n)}$provideDocumentRangesFormattingEdits(e,t,i,r,n){return this._withAdapter(e,sQ,e=>e.provideDocumentRangesFormattingEdits(eD.URI.revive(t),i,r,n),void 0,n)}registerOnTypeFormattingEditProvider(e,t,i,r){let n=this._addNewAdapter(new sJ(this._documents,i),e);return this._proxy.$registerOnTypeFormattingSupport(n,this._transformDocumentSelector(t,e),r,e.identifier),this._createDisposable(n)}$provideOnTypeFormattingEdits(e,t,i,r,n,o){return this._withAdapter(e,sJ,e=>e.provideOnTypeFormattingEdits(eD.URI.revive(t),i,r,n,o),void 0,o)}registerWorkspaceSymbolProvider(e,t){let i=this._addNewAdapter(new sY(t,this._logService),e);return this._proxy.$registerNavigateTypeSupport(i,"function"==typeof t.resolveWorkspaceSymbol),this._createDisposable(i)}$provideWorkspaceSymbols(e,t,i){return this._withAdapter(e,sY,e=>e.provideWorkspaceSymbols(t,i),{symbols:[]},i)}$resolveWorkspaceSymbol(e,t,i){return this._withAdapter(e,sY,e=>e.resolveWorkspaceSymbol(t,i),void 0,void 0)}$releaseWorkspaceSymbols(e,t){this._withAdapter(e,sY,e=>e.releaseWorkspaceSymbols(t),void 0,void 0)}registerRenameProvider(e,t,i){let r=this._addNewAdapter(new sX(this._documents,i,this._logService),e);return this._proxy.$registerRenameSupport(r,this._transformDocumentSelector(t,e),sX.supportsResolving(i)),this._createDisposable(r)}$provideRenameEdits(e,t,i,r,n){return this._withAdapter(e,sX,e=>e.provideRenameEdits(eD.URI.revive(t),i,r,n),void 0,n)}$resolveRenameLocation(e,t,i,r){return this._withAdapter(e,sX,e=>e.resolveRenameLocation(eD.URI.revive(t),i,r),void 0,r)}registerNewSymbolNamesProvider(e,t,i){let r=this._addNewAdapter(new sZ(this._documents,i,this._logService),e);return this._proxy.$registerNewSymbolNamesProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$supportsAutomaticNewSymbolNamesTriggerKind(e){return this._withAdapter(e,sZ,e=>e.supportsAutomaticNewSymbolNamesTriggerKind(),!1,void 0)}$provideNewSymbolNames(e,t,i,r,n){return this._withAdapter(e,sZ,e=>e.provideNewSymbolNames(eD.URI.revive(t),i,r,n),void 0,n)}registerDocumentSemanticTokensProvider(e,t,i,r){let n=this._addNewAdapter(new s1(this._documents,i),e),o="function"==typeof i.onDidChangeSemanticTokens?this._nextHandle():void 0;this._proxy.$registerDocumentSemanticTokensProvider(n,this._transformDocumentSelector(t,e),r,o);let s=this._createDisposable(n);if(o){let e=i.onDidChangeSemanticTokens(e=>this._proxy.$emitDocumentSemanticTokensEvent(o));s=eh.Disposable.from(s,e)}return s}$provideDocumentSemanticTokens(e,t,i,r){return this._withAdapter(e,s1,e=>e.provideDocumentSemanticTokens(eD.URI.revive(t),i,r),null,r)}$releaseDocumentSemanticTokens(e,t){this._withAdapter(e,s1,e=>e.releaseDocumentSemanticColoring(t),void 0,void 0)}registerDocumentRangeSemanticTokensProvider(e,t,i,r){let n=this._addNewAdapter(new s2(this._documents,i),e),o="function"==typeof i.onDidChangeSemanticTokens?this._nextHandle():void 0;this._proxy.$registerDocumentRangeSemanticTokensProvider(n,this._transformDocumentSelector(t,e),r,o);let s=this._createDisposable(n);if(o){let e=i.onDidChangeSemanticTokens(e=>this._proxy.$emitDocumentRangeSemanticTokensEvent(o));s=eh.Disposable.from(s,e)}return s}$provideDocumentRangeSemanticTokens(e,t,i,r){return this._withAdapter(e,s2,e=>e.provideDocumentRangeSemanticTokens(eD.URI.revive(t),i,r),null,r)}registerCompletionItemProvider(e,t,i,r){let n=this._addNewAdapter(new s6(this._documents,this._commands.converter,i,this._apiDeprecation,e),e);return this._proxy.$registerCompletionsProvider(n,this._transformDocumentSelector(t,e),r,s6.supportsResolving(i),e.identifier),this._createDisposable(n)}$provideCompletionItems(e,t,i,r,n){return this._withAdapter(e,s6,e=>e.provideCompletionItems(eD.URI.revive(t),i,r,n),void 0,n)}$resolveCompletionItem(e,t,i){return this._withAdapter(e,s6,e=>e.resolveCompletionItem(t,i),void 0,i)}$releaseCompletionItems(e,t){this._withAdapter(e,s6,e=>e.releaseCompletionItems(t),void 0,void 0)}registerInlineCompletionsProvider(e,t,i,r){let n=new s3(e,this._documents,i,this._commands.converter),o=this._addNewAdapter(n,e),s=this._createDisposable(o),a=(0,tp.isProposedApiEnabled)(e,"inlineCompletionsAdditions")&&"function"==typeof i.onDidChange;if(a){let e=i.onDidChange(e=>this._proxy.$emitInlineCompletionsChange(o));s=eh.Disposable.from(s,e)}let l=(0,tp.isProposedApiEnabled)(e,"inlineCompletionsAdditions")&&"function"==typeof i.onDidChangeModelInfo;if(l){let e=i.onDidChangeModelInfo(e=>this._proxy.$emitInlineCompletionModelInfoChange(o,n.modelInfo));s=eh.Disposable.from(s,e)}return this._proxy.$registerInlineCompletionsSupport(o,this._transformDocumentSelector(t,e),n.supportsHandleEvents,eI.ExtensionIdentifier.toKey(e.identifier.value),e.version,r?.groupId?eI.ExtensionIdentifier.toKey(r.groupId):void 0,r?.yieldTo?.map(e=>eI.ExtensionIdentifier.toKey(e))||[],r?.displayName,r?.debounceDelayMs,r?.excludes?.map(e=>eI.ExtensionIdentifier.toKey(e))||[],a,n.supportsSetModelId,n.modelInfo,l),s}$provideInlineCompletions(e,t,i,r,n){return this._withAdapter(e,s3,e=>e.provideInlineCompletions(eD.URI.revive(t),i,r,n),void 0,void 0)}$handleInlineCompletionDidShow(e,t,i,r){this._withAdapter(e,s3,async e=>{e.handleDidShowCompletionItem(t,i,r)},void 0,void 0)}$handleInlineCompletionPartialAccept(e,t,i,r,n){this._withAdapter(e,s3,async e=>{e.handlePartialAccept(t,i,r,n)},void 0,void 0)}$handleInlineCompletionEndOfLifetime(e,t,i,r){this._withAdapter(e,s3,async e=>{e.handleEndOfLifetime(t,i,r)},void 0,void 0)}$handleInlineCompletionRejection(e,t,i){this._withAdapter(e,s3,async e=>{e.handleRejection(t,i)},void 0,void 0)}$freeInlineCompletionsList(e,t,i){this._withAdapter(e,s3,async e=>{e.disposeCompletions(t,i)},void 0,void 0)}$acceptInlineCompletionsUnificationState(e){this._inlineCompletionsUnificationState=e,this._onDidChangeInlineCompletionsUnificationState.fire()}$handleInlineCompletionSetCurrentModelId(e,t){this._withAdapter(e,s3,async e=>{e.setCurrentModelId(t)},void 0,void 0)}registerSignatureHelpProvider(e,t,i,r){let n=Array.isArray(r)?{triggerCharacters:r,retriggerCharacters:[]}:r,o=this._addNewAdapter(new s5(this._documents,i),e);return this._proxy.$registerSignatureHelpProvider(o,this._transformDocumentSelector(t,e),n),this._createDisposable(o)}$provideSignatureHelp(e,t,i,r,n){return this._withAdapter(e,s5,e=>e.provideSignatureHelp(eD.URI.revive(t),i,r,n),void 0,n)}$releaseSignatureHelp(e,t){this._withAdapter(e,s5,e=>e.releaseSignatureHelp(t),void 0,void 0)}registerInlayHintsProvider(e,t,i){let r="function"==typeof i.onDidChangeInlayHints?this._nextHandle():void 0,n=this._addNewAdapter(new s8(this._documents,this._commands.converter,i,this._logService,e),e);this._proxy.$registerInlayHintsProvider(n,this._transformDocumentSelector(t,e),"function"==typeof i.resolveInlayHint,r,as._extLabel(e));let o=this._createDisposable(n);if(void 0!==r){let e=i.onDidChangeInlayHints(e=>this._proxy.$emitInlayHintsEvent(r));o=eh.Disposable.from(o,e)}return o}$provideInlayHints(e,t,i,r){return this._withAdapter(e,s8,e=>e.provideInlayHints(eD.URI.revive(t),i,r),void 0,r)}$resolveInlayHint(e,t,i){return this._withAdapter(e,s8,e=>e.resolveInlayHint(t,i),void 0,i)}$releaseInlayHints(e,t){this._withAdapter(e,s8,e=>e.releaseHints(t),void 0,void 0)}registerDocumentLinkProvider(e,t,i){let r=this._addNewAdapter(new s7(this._documents,i),e);return this._proxy.$registerDocumentLinkProvider(r,this._transformDocumentSelector(t,e),"function"==typeof i.resolveDocumentLink),this._createDisposable(r)}$provideDocumentLinks(e,t,i){return this._withAdapter(e,s7,e=>e.provideLinks(eD.URI.revive(t),i),void 0,i,"output"===t.scheme)}$resolveDocumentLink(e,t,i){return this._withAdapter(e,s7,e=>e.resolveLink(t,i),void 0,void 0,!0)}$releaseDocumentLinks(e,t){this._withAdapter(e,s7,e=>e.releaseLinks(t),void 0,void 0,!0)}registerColorProvider(e,t,i){let r=this._addNewAdapter(new s9(this._documents,i),e);return this._proxy.$registerDocumentColorProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideDocumentColors(e,t,i){return this._withAdapter(e,s9,e=>e.provideColors(eD.URI.revive(t),i),[],i)}$provideColorPresentations(e,t,i,r){return this._withAdapter(e,s9,e=>e.provideColorPresentations(eD.URI.revive(t),i,r),void 0,r)}registerFoldingRangeProvider(e,t,i){let r=this._nextHandle(),n="function"==typeof i.onDidChangeFoldingRanges?this._nextHandle():void 0;this._adapter.set(r,new ao(new ae(this._documents,i),e)),this._proxy.$registerFoldingRangeProvider(r,this._transformDocumentSelector(t,e),e.identifier,n);let o=this._createDisposable(r);if(void 0!==n){let e=i.onDidChangeFoldingRanges(()=>this._proxy.$emitFoldingRangeEvent(n));o=eh.Disposable.from(o,e)}return o}$provideFoldingRanges(e,t,i,r){return this._withAdapter(e,ae,e=>e.provideFoldingRanges(eD.URI.revive(t),i,r),void 0,r)}registerSelectionRangeProvider(e,t,i){let r=this._addNewAdapter(new at(this._documents,i,this._logService),e);return this._proxy.$registerSelectionRangeProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$provideSelectionRanges(e,t,i,r){return this._withAdapter(e,at,e=>e.provideSelectionRanges(eD.URI.revive(t),i,r),[],r)}registerCallHierarchyProvider(e,t,i){let r=this._addNewAdapter(new ai(this._documents,i),e);return this._proxy.$registerCallHierarchyProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$prepareCallHierarchy(e,t,i,r){return this._withAdapter(e,ai,e=>Promise.resolve(e.prepareSession(eD.URI.revive(t),i,r)),void 0,r)}$provideCallHierarchyIncomingCalls(e,t,i,r){return this._withAdapter(e,ai,e=>e.provideCallsTo(t,i,r),void 0,r)}$provideCallHierarchyOutgoingCalls(e,t,i,r){return this._withAdapter(e,ai,e=>e.provideCallsFrom(t,i,r),void 0,r)}$releaseCallHierarchy(e,t){this._withAdapter(e,ai,e=>Promise.resolve(e.releaseSession(t)),void 0,void 0)}registerTypeHierarchyProvider(e,t,i){let r=this._addNewAdapter(new ar(this._documents,i),e);return this._proxy.$registerTypeHierarchyProvider(r,this._transformDocumentSelector(t,e)),this._createDisposable(r)}$prepareTypeHierarchy(e,t,i,r){return this._withAdapter(e,ar,e=>Promise.resolve(e.prepareSession(eD.URI.revive(t),i,r)),void 0,r)}$provideTypeHierarchySupertypes(e,t,i,r){return this._withAdapter(e,ar,e=>e.provideSupertypes(t,i,r),void 0,r)}$provideTypeHierarchySubtypes(e,t,i,r){return this._withAdapter(e,ar,e=>e.provideSubtypes(t,i,r),void 0,r)}$releaseTypeHierarchy(e,t){this._withAdapter(e,ar,e=>Promise.resolve(e.releaseSession(t)),void 0,void 0)}registerDocumentOnDropEditProvider(e,t,i,r){let n=this._nextHandle();return this._adapter.set(n,new ao(new an(this._proxy,this._documents,i,n,e),e)),this._proxy.$registerDocumentOnDropEditProvider(n,this._transformDocumentSelector(t,e),r?{supportsResolve:!!i.resolveDocumentDropEdit,dropMimeTypes:r.dropMimeTypes,providedDropKinds:r.providedDropEditKinds?.map(e=>e.value)}:void 0),this._createDisposable(n)}$provideDocumentOnDropEdits(e,t,i,r,n,o){return this._withAdapter(e,an,e=>Promise.resolve(e.provideDocumentOnDropEdits(t,eD.URI.revive(i),r,n,o)),void 0,void 0)}$resolveDropEdit(e,t,i){return this._withAdapter(e,an,e=>e.resolveDropEdit(t,i),{},void 0)}$releaseDocumentOnDropEdits(e,t){this._withAdapter(e,an,e=>Promise.resolve(e.releaseDropEdits(t)),void 0,void 0)}registerDocumentPasteEditProvider(e,t,i,r){let n=this._nextHandle();return this._adapter.set(n,new ao(new sB(this._proxy,this._documents,i,n,e),e)),this._proxy.$registerPasteEditProvider(n,this._transformDocumentSelector(t,e),{supportsCopy:!!i.prepareDocumentPaste,supportsPaste:!!i.provideDocumentPasteEdits,supportsResolve:!!i.resolveDocumentPasteEdit,providedPasteEditKinds:r.providedPasteEditKinds?.map(e=>e.value),copyMimeTypes:r.copyMimeTypes,pasteMimeTypes:r.pasteMimeTypes}),this._createDisposable(n)}$prepareDocumentPaste(e,t,i,r,n){return this._withAdapter(e,sB,e=>e.prepareDocumentPaste(eD.URI.revive(t),i,r,n),void 0,n)}$providePasteEdits(e,t,i,r,n,o,s){return this._withAdapter(e,sB,e=>e.providePasteEdits(t,eD.URI.revive(i),r,n,o,s),void 0,s)}$resolvePasteEdit(e,t,i){return this._withAdapter(e,sB,e=>e.resolvePasteEdit(t,i),{},void 0)}$releasePasteEdits(e,t){this._withAdapter(e,sB,e=>Promise.resolve(e.releasePasteEdits(t)),void 0,void 0)}static _serializeRegExp(e){return{pattern:e.source,flags:e.flags}}static _serializeIndentationRule(e){return{decreaseIndentPattern:as._serializeRegExp(e.decreaseIndentPattern),increaseIndentPattern:as._serializeRegExp(e.increaseIndentPattern),indentNextLinePattern:e.indentNextLinePattern?as._serializeRegExp(e.indentNextLinePattern):void 0,unIndentedLinePattern:e.unIndentedLinePattern?as._serializeRegExp(e.unIndentedLinePattern):void 0}}static _serializeOnEnterRule(e){return{beforeText:as._serializeRegExp(e.beforeText),afterText:e.afterText?as._serializeRegExp(e.afterText):void 0,previousLineText:e.previousLineText?as._serializeRegExp(e.previousLineText):void 0,action:e.action}}static _serializeOnEnterRules(e){return e.map(as._serializeOnEnterRule)}static _serializeAutoClosingPair(e){return{open:e.open,close:e.close,notIn:e.notIn?e.notIn.map(e=>eh.SyntaxTokenType.toString(e)):void 0}}static _serializeAutoClosingPairs(e){return e.map(as._serializeAutoClosingPair)}setLanguageConfiguration(e,t,i){let{wordPattern:r}=i;if(r&&(0,e0.regExpLeadsToEndlessLoop)(r))throw Error(`Invalid language configuration: wordPattern '${r}' is not allowed to match the empty string.`);r?this._documents.setWordDefinitionFor(t,r):this._documents.setWordDefinitionFor(t,void 0),i.__electricCharacterSupport&&this._apiDeprecation.report("LanguageConfiguration.__electricCharacterSupport",e,"Do not use."),i.__characterPairSupport&&this._apiDeprecation.report("LanguageConfiguration.__characterPairSupport",e,"Do not use.");let n=this._nextHandle(),o={comments:i.comments,brackets:i.brackets,wordPattern:i.wordPattern?as._serializeRegExp(i.wordPattern):void 0,indentationRules:i.indentationRules?as._serializeIndentationRule(i.indentationRules):void 0,onEnterRules:i.onEnterRules?as._serializeOnEnterRules(i.onEnterRules):void 0,__electricCharacterSupport:i.__electricCharacterSupport,__characterPairSupport:i.__characterPairSupport,autoClosingPairs:i.autoClosingPairs?as._serializeAutoClosingPairs(i.autoClosingPairs):void 0};return this._proxy.$setLanguageConfiguration(n,t,o),this._createDisposable(n)}$setWordDefinitions(e){for(let t of e)this._documents.setWordDefinitionFor(t.languageId,new RegExp(t.regexSource,t.regexFlags))}}var aa=ef,al=e.i(280980),ac=e.i(475288),ad=e.i(777416),au=e.i(120140),ah=e.i(528337);let ag="vscode_editFile",ap="vscode_editFile_internal",am={id:ap,displayName:"",modelDescription:"",source:al.ToolDataSource.Internal},af=class{constructor(e,t,i){this.chatService=e,this.codeMapperService=t,this.notebookService=i}async invoke(e,t,i,r){let n;if(!e.context)throw Error("toolInvocationToken is required for this tool");let o=e.parameters,s=eD.URI.revive(o.uri),a=ac.CellUri.parse(s)?.notebook||s,l=this.chatService.getSession(oF.LocalChatSessionUri.forSession(e.context?.sessionId)),c=l.getRequests().at(-1);l.acceptResponseProgress(c,{kind:"markdownContent",content:new s_.MarkdownString("\n````\n")}),l.acceptResponseProgress(c,{kind:"codeblockUri",uri:a,isEdit:!0}),l.acceptResponseProgress(c,{kind:"markdownContent",content:new s_.MarkdownString("\n````\n")}),this.notebookService.hasSupportedNotebooks(a)&&this.notebookService.getNotebookTextModel(a)?l.acceptResponseProgress(c,{kind:"notebookEdit",edits:[],uri:a}):l.acceptResponseProgress(c,{kind:"textEdit",edits:[],uri:a});let d=l.editingSession;if(!d)throw Error("This tool must be called from within an editing session");let u=await this.codeMapperService.mapCode({codeBlocks:[{code:o.code,resource:a,markdownBeforeBlock:o.explanation}],location:"tool",chatRequestId:e.chatRequestId,chatRequestModel:e.modelId,chatSessionResource:e.context.sessionResource},{textEdit:(e,t)=>{l.acceptResponseProgress(c,{kind:"textEdit",uri:e,edits:t})},notebookEdit(e,t){l.acceptResponseProgress(c,{kind:"notebookEdit",uri:e,edits:t})}},r);if(this.notebookService.hasSupportedNotebooks(a)&&this.notebookService.getNotebookTextModel(a)?l.acceptResponseProgress(c,{kind:"notebookEdit",uri:a,edits:[],done:!0}):l.acceptResponseProgress(c,{kind:"textEdit",uri:a,edits:[],done:!0}),u?.errorMessage)throw Error(u.errorMessage);return await new Promise(e=>{let t=!1;n=(0,rb.autorun)(i=>{let r=d.entries.read(i),n=r?.find(e=>e.modifiedURI.toString()===a.toString());n&&(n.isCurrentlyBeingModifiedBy.read(i)?t=!0:t&&e(!0))})}).finally(()=>{n.dispose()}),{content:[{kind:"text",value:"The file was edited successfully"}]}}async prepareToolInvocation(e,t){return{presentation:al.ToolInvocationPresentation.Hidden}}};af=(0,ek.__decorate)([(0,ek.__param)(0,ah.IChatService),(0,ek.__param)(1,au.ICodeMapperService),(0,ek.__param)(2,ad.INotebookService)],af);var av=e.i(155652),a_=eH,ay=e.i(731931),aC=e.i(633137);let aS={id:"vscode_get_confirmation",displayName:"Confirmation Tool",modelDescription:"A tool that demonstrates different types of confirmations. Takes a title, message, and confirmation type (basic or terminal).",source:al.ToolDataSource.Internal,inputSchema:{type:"object",properties:{title:{type:"string",description:"Title for the confirmation dialog"},message:{type:"string",description:"Message to show in the confirmation dialog"},confirmationType:{type:"string",enum:["basic","terminal"],description:"Type of confirmation to show - basic for simple confirmation, terminal for terminal command confirmation"},terminalCommand:{type:"string",description:'Terminal command to show (only used when confirmationType is "terminal")'}},required:["title","message","confirmationType"],additionalProperties:!1}};class ab{async prepareToolInvocation(e,t){let i,r=e.parameters;if(!r.title||!r.message)throw Error("Missing required parameters for ConfirmationTool");return i="terminal"===(r.confirmationType??"basic")?{kind:"terminal",commandLine:{original:r.terminalCommand??""},language:"bash"}:void 0,{confirmationMessages:{title:r.title,message:new s_.MarkdownString(r.message),allowAutoConfirm:!0},toolSpecificData:i,presentation:al.ToolInvocationPresentation.HiddenAfterComplete}}async invoke(e,t,i,r){return{content:[{kind:"text",value:"yes"}]}}}var aw=eH,ax=e.i(189807);let aD="manage_todo_list";function aE(e,t=!0){let i={todoList:{type:"array",description:e?"Complete array of all todo items. Must include ALL items - both existing and new.":"Complete array of all todo items (required for write operation, ignored for read). Must include ALL items - both existing and new.",items:{type:"object",properties:{id:{type:"number",description:"Unique identifier for the todo. Use sequential numbers starting from 1."},title:{type:"string",description:"Concise action-oriented todo label (3-7 words). Displayed in UI."},...t&&{description:{type:"string",description:"Detailed context, requirements, or implementation notes. Include file paths, specific methods, or acceptance criteria."}},status:{type:"string",enum:["not-started","in-progress","completed"],description:"not-started: Not begun | in-progress: Currently working (max 1) | completed: Fully finished with no blockers"}},required:t?["id","title","description","status"]:["id","title","status"]}}},r=e?["todoList"]:[];return e||(i.operation={type:"string",enum:["write","read"],description:"write: Replace entire todo list with new content. read: Retrieve current todo list. ALWAYS provide complete list when writing - partial updates not supported."},r.unshift("operation")),{id:aD,toolReferenceName:"todo",legacyToolReferenceFullNames:["todos"],canBeReferencedInPrompt:!0,icon:iC.ThemeIcon.fromId(av.Codicon.checklist.id),displayName:(0,e1.localize)(6070,"Manage and track todo items for task planning"),userDescription:(0,e1.localize)(6071,"Manage and track todo items for task planning"),modelDescription:"Manage a structured todo list to track progress and plan tasks throughout your coding session. Use this tool VERY frequently to ensure task visibility and proper planning.\n\nWhen to use this tool:\n- Complex multi-step work requiring planning and tracking\n- When user provides multiple tasks or requests (numbered/comma-separated)\n- After receiving new instructions that require multiple steps\n- BEFORE starting work on any todo (mark as in-progress)\n- IMMEDIATELY after completing each todo (mark completed individually)\n- When breaking down larger tasks into smaller actionable steps\n- To give users visibility into your progress and planning\n\nWhen NOT to use:\n- Single, trivial tasks that can be completed in one step\n- Purely conversational/informational requests\n- When just reading files or performing simple searches\n\nCRITICAL workflow:\n1. Plan tasks by writing todo list with specific, actionable items\n2. Mark ONE todo as in-progress before starting work\n3. Complete the work for that specific todo\n4. Mark that todo as completed IMMEDIATELY\n5. Move to next todo and repeat\n\nTodo states:\n- not-started: Todo not yet begun\n- in-progress: Currently working (limit ONE at a time)\n- completed: Finished successfully\n\nIMPORTANT: Mark todos completed as soon as they are done. Do not batch completions.",source:al.ToolDataSource.Internal,inputSchema:{type:"object",properties:i,required:r}}}aE(!1);let ak=class extends aw.Disposable{constructor(e,t,i,r,n){super(),this.writeOnly=e,this.includeDescription=t,this.chatTodoListService=i,this.logService=r,this.telemetryService=n}async invoke(e,t,i,r){let n=e.parameters,o=e.context?.sessionId??n.chatSessionId??"default";this.logService.debug(`ManageTodoListTool: Invoking with options ${JSON.stringify(n)}`);try{let e=this.writeOnly?"write":n.operation;if(!e)return{content:[{kind:"text",value:"Error: operation parameter is required"}]};if("read"===e)return this.handleReadOperation(oF.LocalChatSessionUri.forSession(o));if("write"===e)return this.handleWriteOperation(n,oF.LocalChatSessionUri.forSession(o));return{content:[{kind:"text",value:"Error: Unknown operation"}]}}catch(e){return{content:[{kind:"text",value:`Error: ${e instanceof Error?e.message:"Unknown error"}`}]}}}async prepareToolInvocation(e,t){let i,r=e.parameters,n=e.chatSessionId??r.chatSessionId??"default",o=this.chatTodoListService.getTodos(oF.LocalChatSessionUri.forSession(n));switch(this.writeOnly?"write":r.operation){case"write":r.todoList&&(i=this.generatePastTenseMessage(o,r.todoList));break;case"read":i=(0,e1.localize)(6072,"Read todo list")}let s=(r.todoList??o).map(e=>({id:e.id.toString(),title:e.title,description:e.description||"",status:e.status}));return{pastTenseMessage:new s_.MarkdownString(i??(0,e1.localize)(6073,"Updated todo list")),toolSpecificData:{kind:"todoList",sessionId:n,todoList:s}}}generatePastTenseMessage(e,t){if(0===e.length)return 1===t.length?(0,e1.localize)(6074,"Created 1 todo"):(0,e1.localize)(6075,"Created {0} todos",t.length);let i=new Map(e.map(e=>[e.id,e])),r=t.filter(e=>{let t=i.get(e.id);return t&&"in-progress"!==t.status&&"in-progress"===e.status});if(r.length>0){let e=r[0],i=t.length,n=t.findIndex(t=>t.id===e.id)+1;return(0,e1.localize)(6076,"Starting: *{0}* ({1}/{2})",e.title,n,i)}let n=t.filter(e=>{let t=i.get(e.id);return t&&"completed"!==t.status&&"completed"===e.status});if(n.length>0){let e=n[0],i=t.length,r=t.findIndex(t=>t.id===e.id)+1;return(0,e1.localize)(6077,"Completed: *{0}* ({1}/{2})",e.title,r,i)}let o=t.filter(e=>!i.has(e.id));return o.length>0?1===o.length?(0,e1.localize)(6078,"Added 1 todo"):(0,e1.localize)(6079,"Added {0} todos",o.length):(0,e1.localize)(6080,"Updated todo list")}handleRead(e,t){if(0===e.length)return"No todo list found.";let i=this.formatTodoListAsMarkdownTaskList(e);return`# Todo List
24
+
25
+ ${i}`}handleReadOperation(e){let t=this.chatTodoListService.getTodos(e),i=this.handleRead(t,e),r=this.calculateStatusCounts(t);return this.telemetryService.publicLog2("todoListToolInvoked",{operation:"read",notStartedCount:r.notStartedCount,inProgressCount:r.inProgressCount,completedCount:r.completedCount,chatSessionId:(0,oF.chatSessionResourceToId)(e)}),{content:[{kind:"text",value:i}]}}handleWriteOperation(e,t){if(!e.todoList)return{content:[{kind:"text",value:"Error: todoList is required for write operation"}]};let i=e.todoList.map(e=>({id:e.id,title:e.title,description:e.description||"",status:e.status})),r=this.chatTodoListService.getTodos(t),n=this.calculateTodoChanges(r,i);this.chatTodoListService.setTodos(t,i);let o=this.calculateStatusCounts(i),s=[];return i.length<3?s.push("Warning: Small todo list (<3 items). This task might not need a todo list."):i.length>10&&s.push("Warning: Large todo list (>10 items). Consider keeping the list focused and actionable."),n>3&&s.push("Warning: Did you mean to update so many todos at the same time? Consider working on them one by one."),this.telemetryService.publicLog2("todoListToolInvoked",{operation:"write",notStartedCount:o.notStartedCount,inProgressCount:o.inProgressCount,completedCount:o.completedCount,chatSessionId:(0,oF.chatSessionResourceToId)(t)}),{content:[{kind:"text",value:`Successfully wrote todo list${s.length?"\n\n"+s.join("\n"):""}`}],toolMetadata:{warnings:s}}}calculateStatusCounts(e){let t=e.filter(e=>"not-started"===e.status).length;return{notStartedCount:t,inProgressCount:e.filter(e=>"in-progress"===e.status).length,completedCount:e.filter(e=>"completed"===e.status).length}}formatTodoListAsMarkdownTaskList(e){return 0===e.length?"":e.map(e=>{let t;switch(e.status){case"completed":t="[x]";break;case"in-progress":t="[-]";break;default:t="[ ]"}let i=[`- ${t} ${e.title}`];return this.includeDescription&&e.description&&e.description.trim()&&i.push(` - ${e.description.trim()}`),i.join("\n")}).join("\n")}calculateTodoChanges(e,t){let i=0,r=Math.min(e.length,t.length);for(let n=0;n<r;n++){let r=e[n],o=t[n];(r.title!==o.title||(r.description??"")!==(o.description??"")||r.status!==o.status)&&i++}return Math.max(0,t.length-e.length)+Math.max(0,e.length-t.length)+i}};ak=(0,ek.__decorate)([(0,ek.__param)(2,ax.IChatTodoListService),(0,ek.__param)(3,eM.ILogService),(0,ek.__param)(4,og.ITelemetryService)],ak);var aT=eH,aR=e.i(643882),aP=e.i(492727),aI=e.i(446122),aA=e.i(548806),aM=e.i(553638);(S=er||(er={})).instructions="instructions",S.prompt="prompt",S.agent="agent";let aL=".github/agents";function aF(e){return void 0!==function(e){let t,i=(0,tg.basename)(e.path);return i.endsWith(".prompt.md")?er.prompt:i.endsWith(".instructions.md")||"copilot-instructions.md"===i?er.instructions:i.endsWith(".chatmode.md")||i.endsWith(".agent.md")||i.endsWith(".md")&&((t=(0,tg.dirname)(e.path)).endsWith("/"+aL)||t===aL)?er.agent:void 0}(e)}var aO=en||(en={});function aN(e,t){let i=function(e){switch(e){case er.instructions:return en.INSTRUCTIONS_LOCATION_KEY;case er.prompt:return en.PROMPT_LOCATIONS_KEY;case er.agent:return en.MODE_LOCATION_KEY;default:throw Error("Unknown prompt type")}}(t),r=e.getValue(i);if(!(null==r||Array.isArray(r))&&"object"==typeof r){let e={};for(let[t,i]of Object.entries(r)){let r=t.trim(),n=a$(i);void 0!==n&&r&&(e[r]=n)}return e}}function a$(e){if("boolean"==typeof e)return e;if("string"==typeof e){let t=e.trim().toLowerCase();if("true"===t)return!0;if("false"===t)return!1}}aO.PROMPT_LOCATIONS_KEY="chat.promptFilesLocations",aO.INSTRUCTIONS_LOCATION_KEY="chat.instructionsFilesLocations",aO.MODE_LOCATION_KEY="chat.modeFilesLocations",aO.PROMPT_FILES_SUGGEST_KEY="chat.promptFilesRecommendations",aO.USE_COPILOT_INSTRUCTION_FILES="github.copilot.chat.codeGeneration.useInstructionFiles",aO.USE_AGENT_MD="chat.useAgentsMdFile",aO.USE_NESTED_AGENT_MD="chat.useNestedAgentsMdFiles",aO.USE_AGENT_SKILLS="chat.useAgentSkills",aO.getLocationsValue=aN,aO.promptSourceFolders=function(e,t){let i=aN(e,t),r=function(e){switch(e){case er.instructions:return".github/instructions";case er.prompt:return".github/prompts";case er.agent:return aL;default:throw Error("Unknown prompt type")}}(t);if(i&&"object"==typeof i){let e=[];for(let[t,n]of(!1!==i[r]&&e.push(r),Object.entries(i)))!1!==n&&t!==r&&e.push(t);return e}return[]},aO.getPromptFilesRecommendationsValue=function(e,t){let i=e.getValue(aO.PROMPT_FILES_SUGGEST_KEY,{resource:t});if(!i||"object"!=typeof i||Array.isArray(i))return;let r={};for(let[e,t]of Object.entries(i)){let i=e.trim();if(!i)continue;if("boolean"==typeof t){r[i]=t;continue}if("string"==typeof t){let e=t.trim();e&&(r[i]=e);continue}let n=a$(t);void 0!==n&&(r[i]=n)}return Object.keys(r).length>0?r:void 0};var aH=e.i(515401),aU=e.i(103346);let aW=class{constructor(e,t,i,r,n,o,s,a,l){this._enabledTools=e,this._promptsService=t,this._logService=i,this._labelService=r,this._configurationService=n,this._workspaceService=o,this._fileService=s,this._telemetryService=a,this._languageModelToolsService=l,this._parseResults=new eV.ResourceMap}async _parseInstructionsFile(e,t){if(this._parseResults.has(e))return this._parseResults.get(e);try{let i=await this._promptsService.parseNew(e,t);return this._parseResults.set(e,i),i}catch(t){this._logService.error(`[InstructionsContextComputer] Failed to parse instruction file: ${e}`,t);return}}async collect(e,t){let i=await this._promptsService.listPromptFiles(er.instructions,t);this._logService.trace(`[InstructionsContextComputer] ${i.length} instruction files available.`);let r={applyingInstructionsCount:0,referencedInstructionsCount:0,agentInstructionsCount:0,listedInstructionsCount:0,totalInstructionsCount:0},n=this._getContext(e);await this.addApplyingInstructions(i,n,e,r,t),await this._addReferencedInstructions(e,r,t),await this._addAgentInstructions(e,r,t);let o=await this._getInstructionsWithPatternsList(i,e,t);o&&(e.add(o),r.listedInstructionsCount++),this.sendTelemetry(r)}sendTelemetry(e){e.totalInstructionsCount=e.agentInstructionsCount+e.referencedInstructionsCount+e.applyingInstructionsCount+e.listedInstructionsCount,this._telemetryService.publicLog2("instructionsCollected",e)}async addApplyingInstructions(e,t,i,r,n){for(let{uri:o}of e){let e=await this._parseInstructionsFile(o,n);if(!e){this._logService.trace(`[InstructionsContextComputer] Unable to read: ${o}`);continue}let s=e.header?.applyTo;if(!s){this._logService.trace(`[InstructionsContextComputer] No 'applyTo' found: ${o}`);continue}if(t.instructions.has(o)){this._logService.trace(`[InstructionsContextComputer] Skipping already processed instruction file: ${o}`);continue}let a=this._matches(t.files,s);if(a){this._logService.trace(`[InstructionsContextComputer] Match for ${o} with ${a.pattern}${a.file?` for file ${a.file}`:""}`);let e=a.file?(0,e1.localize)(5978,"Automatically attached as pattern {0} matches {1}",s,this._labelService.getUriLabel(a.file,{relative:!0})):(0,e1.localize)(5977,"Automatically attached as pattern is **");i.add((0,oB.toPromptFileVariableEntry)(o,oB.PromptFileVariableKind.Instruction,e,!0)),r.applyingInstructionsCount++}else this._logService.trace(`[InstructionsContextComputer] No match for ${o} with ${s}`)}}_getContext(e){let t=new eV.ResourceSet,i=new eV.ResourceSet;for(let r of e.asArray())if((0,oB.isPromptFileVariableEntry)(r))i.add(r.value);else{let e=oB.IChatRequestVariableEntry.toUri(r);e&&t.add(e)}return{files:t,instructions:i}}async _addAgentInstructions(e,t,i){let r=this._configurationService.getValue(en.USE_COPILOT_INSTRUCTION_FILES),n=this._configurationService.getValue(en.USE_AGENT_MD);if(!r&&!n)return void this._logService.trace("[InstructionsContextComputer] No agent instructions files added (settings disabled).");let o=new oB.ChatRequestVariableSet;if(r){for(let e of(await this._promptsService.listCopilotInstructionsMDs(i)))o.add((0,oB.toPromptFileVariableEntry)(e,oB.PromptFileVariableKind.Instruction,(0,e1.localize)(5979,"Automatically attached as setting {0} is enabled",en.USE_COPILOT_INSTRUCTION_FILES),!0)),t.agentInstructionsCount++,this._logService.trace(`[InstructionsContextComputer] copilot-instruction.md files added: ${e.toString()}`);await this._addReferencedInstructions(o,t,i)}if(n)for(let e of(await this._promptsService.listAgentMDs(i,!1)))o.add((0,oB.toPromptFileVariableEntry)(e,oB.PromptFileVariableKind.Instruction,(0,e1.localize)(5980,"Automatically attached as setting {0} is enabled",en.USE_AGENT_MD),!0)),t.agentInstructionsCount++,this._logService.trace(`[InstructionsContextComputer] AGENTS.md files added: ${e.toString()}`);for(let t of o.asArray())e.add(t)}_matches(e,t){let i=(0,nx.splitGlobAware)(t,","),r=t=>{if(0!==(t=t.trim()).length){if("**"===t||"**/*"===t||"*"===t)return{pattern:t};for(let i of(t.startsWith("/")||t.startsWith("**/")||(t="**/"+t),e))if((0,nx.match)(t,i.path,{ignoreCase:!0}))return{pattern:t,file:i}}};for(let e of i){let t=r(e);if(t)return t}}_getTool(e){if(!this._enabledTools)return;let t=this._languageModelToolsService.getToolByName(e);if(t&&this._enabledTools.get(t))return{tool:t,variable:`#tool:${this._languageModelToolsService.getFullReferenceName(t)}`}}async _getInstructionsWithPatternsList(e,t,i){let r=this._getTool("readFile"),n=this._getTool(al.VSCodeToolReference.runSubagent),o=[];if(r){let t=this._configurationService.getValue(en.USE_NESTED_AGENT_MD)?this._promptsService.findAgentMDsInWorkspace(i):Promise.resolve([]);o.push("<instructions>"),o.push("Here is a list of instruction files that contain rules for modifying or creating new code."),o.push("These files are important for ensuring that the code is modified or created correctly."),o.push("Please make sure to follow the rules specified in these files when working with the codebase."),o.push(`If the file is not already available as attachment, use the ${r.variable} tool to acquire it.`),o.push("Make sure to acquire the instructions before making any changes to the code.");let n=!1;for(let{uri:t}of e){let e=await this._parseInstructionsFile(t,i);if(e){if(o.push("<instruction>"),e.header){let{description:i,applyTo:r}=e.header;i&&o.push(`<description>${i}</description>`),o.push(`<file>${aq(t)}</file>`),r&&o.push(`<applyTo>${r}</applyTo>`)}else o.push(`<file>${aq(t)}</file>`);o.push("</instruction>"),n=!0}}for(let e of(await t))if(e){let t=this._labelService.getUriLabel((0,eN.dirname)(e),{relative:!0}),i=0===t.trim().length?(0,e1.localize)(5981,"Instructions for the workspace"):(0,e1.localize)(5982,"Instructions for folder '{0}'",t);o.push("<instruction>"),o.push(`<description>${i}</description>`),o.push(`<file>${aq(e)}</file>`),o.push("</instruction>"),n=!0}n?o.push("</instructions>","",""):o.length=0;let s=await this._promptsService.findAgentSkills(i);if(s&&s.length>0){for(let e of(o.push("<skills>"),o.push("Here is a list of skills that contain domain specific knowledge on a variety of topics."),o.push("Each skill comes with a description of the topic and a file path that contains the detailed instructions."),o.push(`When a user asks you to perform a task that falls within the domain of a skill, use the ${r.variable} tool to acquire the full instructions from the file URI.`),s))o.push("<skill>"),o.push(`<name>${e.name}</name>`),e.description&&o.push(`<description>${e.description}</description>`),o.push(`<file>${aq(e.uri)}</file>`),o.push("</skill>");o.push("</skills>","","")}}if(n&&this._configurationService.getValue(oO.ChatConfiguration.SubagentToolCustomAgents)){let e=await this._promptsService.getCustomAgents(i);if(e.length>0){for(let t of(o.push("<agents>"),o.push("Here is a list of agents that can be used when running a subagent."),o.push("Each agent has optionally a description with the agent's purpose and expertise. When asked to run a subagent, choose the most appropriate agent from this list."),o.push(`Use the ${n.variable} tool with the agent name to run the subagent.`),e))!1!==t.infer&&(o.push("<agent>"),o.push(`<name>${t.name}</name>`),t.description&&o.push(`<description>${t.description}</description>`),t.argumentHint&&o.push(`<argumentHint>${t.argumentHint}</argumentHint>`),o.push("</agent>"));o.push("</agents>","","")}}if(0===o.length)return;let s=o.join("\n"),a=[],l=e=>{if(e){let t=s.indexOf(e.variable);for(;t>=0;)a.push((0,oB.toToolVariableEntry)(e.tool,new aU.OffsetRange(t,t+e.variable.length))),t=s.indexOf(e.variable,t+1)}};return l(r),l(n),(0,oB.toPromptTextVariableEntry)(s,!0,a)}async _addReferencedInstructions(e,t,i){let r=new eV.ResourceSet,n=[];for(let t of e.asArray())(0,oB.isPromptFileVariableEntry)(t)&&!r.has(t.value)&&(n.push(t.value),r.add(t.value));let o=n.pop();for(;o;){let s=await this._parseInstructionsFile(o,i);if(s&&s.body){let i=[];for(let e of s.body.fileReferences){let t=s.body.resolveFilePath(e.content);t&&!r.has(t)&&(aF(t)||void 0!==this._workspaceService.getWorkspaceFolder(t))&&(i.push({resource:t}),r.add(t))}if(i.length>0){let r=await this._fileService.resolveAll(i);for(let s=0;s<r.length;s++){let a=r[s],l=i[s].resource;if(a.success&&a.stat?.isFile){aF(l)&&n.push(l);let i=(0,e1.localize)(5983,"Referenced by {0}",(0,eN.basename)(o));e.add((0,oB.toPromptFileVariableEntry)(l,oB.PromptFileVariableKind.InstructionReference,i,!0)),t.referencedInstructionsCount++,this._logService.trace(`[InstructionsContextComputer] ${l.toString()} added, referenced by ${o.toString()}`)}}}}o=n.pop()}}};function aq(e){return e.scheme===eO.Schemas.file||e.scheme===eO.Schemas.vscodeRemote?e.fsPath:e.toString()}function aj(e){return{content:[{kind:"text",value:e}]}}aW=(0,ek.__decorate)([(0,ek.__param)(1,aH.IPromptsService),(0,ek.__param)(2,eM.ILogService),(0,ek.__param)(3,om.ILabelService),(0,ek.__param)(4,ay.IConfigurationService),(0,ek.__param)(5,op.IWorkspaceContextService),(0,ek.__param)(6,aM.IFileService),(0,ek.__param)(7,og.ITelemetryService),(0,ek.__param)(8,aC.ILanguageModelToolsService)],aW);let az="runSubagent",aK=`Launch a new agent to handle complex, multi-step tasks autonomously. This tool is good at researching complex questions, searching for code, and executing multi-step tasks. When you are searching for a keyword or file and are not confident that you will find the right match in the first few tries, use this agent to perform the search for you.
26
+
27
+ - Agents do not run async or in the background, you will wait for the agent's result.
28
+ - When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
29
+ - Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
30
+ - The agent's outputs should generally be trusted
31
+ - Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent`,aV=class extends aT.Disposable{constructor(e,t,i,r,n,o,s,a,l){super(),this.chatAgentService=e,this.chatService=t,this.chatModeService=i,this.languageModelToolsService=r,this.languageModelsService=n,this.logService=o,this.toolsService=s,this.configurationService=a,this.instantiationService=l,this.onDidUpdateToolData=ey.Event.filter(this.configurationService.onDidChangeConfiguration,e=>e.affectsConfiguration(oO.ChatConfiguration.SubagentToolCustomAgents))}getToolData(){let e=aK,t={type:"object",properties:{prompt:{type:"string",description:"A detailed description of the task for the agent to perform"},description:{type:"string",description:"A short (3-5 word) description of the task"}},required:["prompt","description"]};return this.configurationService.getValue(oO.ChatConfiguration.SubagentToolCustomAgents)&&(t.properties.agentName={type:"string",description:"Optional name of a specific agent to invoke. If not provided, uses the current agent."},e+=`
32
+ - If the user asks for a certain agent, you MUST provide that EXACT agent name (case-sensitive) to invoke that specific agent.`),{id:az,toolReferenceName:al.VSCodeToolReference.runSubagent,icon:iC.ThemeIcon.fromId(av.Codicon.organization.id),displayName:(0,e1.localize)(6081,"Run Subagent"),userDescription:(0,e1.localize)(6082,"Run a task within an isolated subagent context to enable efficient organization of tasks and context window management."),modelDescription:e,source:al.ToolDataSource.Internal,inputSchema:t}}async invoke(e,t,i,r){let n=e.parameters;if(this.logService.debug(`RunSubagentTool: Invoking with prompt: ${n.prompt.substring(0,100)}...`),!e.context)throw Error("toolInvocationToken is required for this tool");let o=this.chatService.getSession(e.context.sessionResource);if(!o)throw Error("Chat model not found for session");let s=o.getRequests().at(-1);try{let t,i=this.chatAgentService.getDefaultAgent(oO.ChatAgentLocation.Chat,oO.ChatModeKind.Agent);if(!i)return aj("Error: No default agent available");let a=e.modelId,l=e.userSelectedTools;if(n.agentName){let e=this.chatModeService.findModeByName(n.agentName);if(e){let i=e.model?.get();if(i)for(let e of this.languageModelsService.getLanguageModelIds()){let t=this.languageModelsService.lookupLanguageModel(e);if(t&&aI.ILanguageModelChatMetadata.matchesQualifiedName(i,t)){a=e;break}}let r=e.customTools?.get();if(r){let t=this.languageModelToolsService.toToolAndToolSetEnablementMap(r,e.target?.get());for(let[e,i]of(l={},t))e instanceof al.ToolSet||(l[e.id]=i)}let n=e.modeInstructions?.get();t=n&&{name:e.name.get(),content:n.content,toolReferences:this.toolsService.toToolReferences(n.toolReferences),metadata:n.metadata}}else this.logService.warn(`RunSubagentTool: Agent '${n.agentName}' not found, using current configuration`)}let c=[],d=!1;l&&(l[az]=!1,l[aD]=!1);let u=await this.collectVariables(l,r),h={sessionResource:e.context.sessionResource,requestId:e.callId??`subagent-${Date.now()}`,agentId:i.id,message:n.prompt,variables:{variables:u.asArray()},location:oO.ChatAgentLocation.Chat,isSubagent:!0,userSelectedModelId:a,userSelectedTools:l,modeInstructions:t},g=await this.chatAgentService.invokeAgent(i.id,h,e=>{for(let t of e)"prepareToolInvocation"===t.kind||"textEdit"===t.kind||"notebookEdit"===t.kind||"codeblockUri"===t.kind?("codeblockUri"!==t.kind||d||(d=!0,o.acceptResponseProgress(s,{kind:"markdownContent",content:new s_.MarkdownString("```\n"),fromSubagent:!0})),o.acceptResponseProgress(s,t),"prepareToolInvocation"===t.kind&&(c.length=0)):"markdownContent"===t.kind&&(d&&(o.acceptResponseProgress(s,{kind:"markdownContent",content:new s_.MarkdownString("\n```\n\n"),fromSubagent:!0}),d=!1),c.push(t.content.value))},[],r);if(g.errorDetails)return aj(`Agent error: ${g.errorDetails.message}`);return aj(c.join("")||"Agent completed with no output")}catch(t){let e=`Error invoking subagent: ${t instanceof Error?t.message:"Unknown error"}`;return this.logService.error(e,t),aj(e)}}async prepareToolInvocation(e,t){return{invocationMessage:e.parameters.description}}async collectVariables(e,t){let i;if(e){let t=Object.entries(e).filter(([,e])=>e).map(([e])=>e).map(e=>this.languageModelToolsService.getTool(e)).filter(e=>!!e).map(e=>this.languageModelToolsService.getFullReferenceName(e));t.length>0&&(i=this.languageModelToolsService.toToolAndToolSetEnablementMap(t,void 0))}let r=new oB.ChatRequestVariableSet,n=this.instantiationService.createInstance(aW,i);return await n.collect(r,t),r}};aV=(0,ek.__decorate)([(0,ek.__param)(0,aR.IChatAgentService),(0,ek.__param)(1,ah.IChatService),(0,ek.__param)(2,aP.IChatModeService),(0,ek.__param)(3,aC.ILanguageModelToolsService),(0,ek.__param)(4,aA.ILanguageModelsService),(0,ek.__param)(5,eM.ILogService),(0,ek.__param)(6,aC.ILanguageModelToolsService),(0,ek.__param)(7,ay.IConfigurationService),(0,ek.__param)(8,eR.IInstantiationService)],aV);let aB=class extends a_.Disposable{static{this.ID="chat.builtinTools"}constructor(e,t,i){let r,n;super(),this.configurationService=i;const o=t.createInstance(af);this._register(e.registerTool(am,o));const s=!0===this.configurationService.getValue("chat.todoListTool.writeOnly"),a=!1!==this.configurationService.getValue("chat.todoListTool.descriptionField"),l=aE(s,a),c=this._register(t.createInstance(ak,s,a));this._register(e.registerTool(l,c));const d=t.createInstance(ab);this._register(e.registerTool(aS,d));const u=this._register(t.createInstance(aV)),h=this._register(e.createToolSet(al.ToolDataSource.Internal,"custom-agent",al.SpecedToolAliases.agent,{icon:iC.ThemeIcon.fromId(av.Codicon.agent.id),description:(0,e1.localize)(6083,"Delegate tasks to other agents")})),g=()=>{r?.dispose(),n?.dispose();let t=u.getToolData();r=e.registerTool(t,u),n=h.addTool(t)};g(),this._register(u.onDidUpdateToolData(g)),this._register({dispose:()=>{r?.dispose(),n?.dispose()}})}};aB=(0,ek.__decorate)([(0,ek.__param)(0,aC.ILanguageModelToolsService),(0,ek.__param)(1,eR.IInstantiationService),(0,ek.__param)(2,ay.IConfigurationService)],aB);var aG=e.i(331139),aQ=eH,aJ=e.i(610672),aY=e.i(686380),aX=e.i(704552),aZ=e.i(542034);(0,e1.localize2)(7865,"Extensions"),(b=eo||(eo={}))[b.Installing=0]="Installing",b[b.Installed=1]="Installed",b[b.Uninstalling=2]="Uninstalling",b[b.Uninstalled=3]="Uninstalled",(w=es||(es={})).ReloadWindow="reloadWindow",w.RestartExtensions="restartExtensions",w.DownloadUpdate="downloadUpdate",w.ApplyUpdate="applyUpdate",w.QuitAndInstall="quitAndInstall",(x=ea||(ea={})).Readme="readme",x.Features="features",x.Changelog="changelog",x.Dependencies="dependencies",x.ExtensionPack="extensionPack";let a0=class extends aQ.Disposable{constructor(e,t){super(),this.containers=e,this._register(t.onChange(this.update,this))}set extension(e){this.containers.forEach(t=>t.extension=e)}update(e){for(let t of this.containers)e&&t.extension?(0,aJ.areSameExtensions)(t.extension.identifier,e.identifier)&&(t.extension.server&&e.server&&t.extension.server!==e.server?t.updateWhenCounterExtensionChanges&&t.update():t.extension=e):t.update()}};a0=(0,ek.__decorate)([(0,ek.__param)(1,aZ.IExtensionsWorkbenchService)],a0),new oD.RawContextKey("defaultExtensionViews",!0),new oD.RawContextKey("hasOutdatedExtensions",!1),new oD.RawContextKey("hasGallery",!1),new oD.RawContextKey("extensionsGalleryStatus",aX.ExtensionGalleryManifestStatus.Unavailable),new oD.RawContextKey("extensionResultListFocused ",!0),new oD.RawContextKey("searchMcpServers",!1),new aY.MenuId("extensionsSearchActionsMenu"),new aY.MenuId("extensionsFilterSubMenu"),iC.ThemeIcon.fromId(av.Codicon.extensions.id),(0,e1.localize)(7878,"Search Extensions"),(0,e1.localize)(7879,"Search for VS Code extensions"),al.ToolDataSource.Internal,eI.EXTENSION_CATEGORIES;let a1=class{constructor(e){this.extensionWorkbenchService=e}async invoke(e,t,i,r){let n=e.parameters;if(!n.keywords?.length&&!n.category&&!n.ids?.length)return{content:[{kind:"text",value:(0,e1.localize)(7880,"Please provide a category or keywords or ids to search for.")}]};let o=new Map,s=e=>{for(let t of e)t.deprecationInfo||t.isMalicious||o.set(t.identifier.id.toLowerCase(),{id:t.identifier.id,name:t.displayName,description:t.description,installed:t.state===eo.Installed,installCount:t.installCount??0,rating:t.rating??0,categories:t.categories??[],tags:t.gallery?.tags??[]})},a=async e=>{let t=await this.extensionWorkbenchService.queryGallery({text:e,pageSize:10,sortBy:aG.SortBy.InstallCount},r);t.firstPage.length&&s(t.firstPage)};if(n.ids?.length&&s(await this.extensionWorkbenchService.getExtensions(n.ids.map(e=>({id:e})),r)),n.keywords?.length)for(let e of n.keywords??[])if("featured"===e)await a("featured");else{let t=n.category?`category:"${n.category}"`:"";t=e?`${t} ${e}`.trim():t,await a(t)}else await a(`category:"${n.category}"`);let l=Array.from(o.values());return{content:[{kind:"text",value:`Here are the list of extensions:
33
+ ${JSON.stringify(l)}
34
+ . Important: Use the following format to display extensions to the user because there is a renderer available to parse these extensions in this format and display them with all details. So, do not describe about the extensions to the user.
35
+ \`\`\`vscode-extensions
36
+ extensionId1,extensionId2
37
+ \`\`\`
38
+ .`}],toolResultDetails:{input:JSON.stringify(n),output:[{type:"embed",isText:!0,value:JSON.stringify(l.map(e=>e.id))}]}}}};a1=(0,ek.__decorate)([(0,ek.__param)(0,aZ.IExtensionsWorkbenchService)],a1);class a2{constructor(e){this._apiObject=new iu.Lazy(()=>{let e=this;return Object.freeze({get name(){return e._data.id},get description(){return e._data.modelDescription},get inputSchema(){return e._data.inputSchema},get tags(){return e._data.tags??[]},get source(){return}})}),this._apiObjectWithChatParticipantAdditions=new iu.Lazy(()=>{let e=this,t=e6.LanguageModelToolSource.to(e._data.source);return Object.freeze({get name(){return e._data.id},get description(){return e._data.modelDescription},get inputSchema(){return e._data.inputSchema},get tags(){return e._data.tags??[]},get source(){return t}})}),this._data=e}update(e){this._data=e}get data(){return this._data}get apiObject(){return this._apiObject.value}get apiObjectWithChatParticipantAdditions(){return this._apiObjectWithChatParticipantAdditions.value}}class a6{constructor(e,t){this._languageModels=t,this._registeredTools=new Map,this._tokenCountFuncs=new Map,this._allTools=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadLanguageModelTools),this._proxy.$getTools().then(e=>{for(let t of e)this._allTools.set(t.id,new a2((0,e8.revive)(t)))})}async $countTokensForInvocation(e,t,i){let r=this._tokenCountFuncs.get(e);if(!r)throw Error(`Tool invocation call ${e} not found`);return await r(t,i)}async invokeTool(e,t,i,r){let n=(0,tJ.generateUuid)();i.tokenizationOptions&&this._tokenCountFuncs.set(n,i.tokenizationOptions.countTokens);try{if(i.toolInvocationToken&&!(0,al.isToolInvocationContext)(i.toolInvocationToken))throw Error("Invalid tool invocation token");if((t===ap||t===ag)&&!(0,tp.isProposedApiEnabled)(e,"chatParticipantPrivate"))throw Error(`Invalid tool: ${t}`);let o=await this._proxy.$invokeTool({toolId:t,callId:n,parameters:i.input,tokenBudget:i.tokenizationOptions?.tokenBudget,context:i.toolInvocationToken,chatRequestId:(0,tp.isProposedApiEnabled)(e,"chatParticipantPrivate")?i.chatRequestId:void 0,chatInteractionId:(0,tp.isProposedApiEnabled)(e,"chatParticipantPrivate")?i.chatInteractionId:void 0,fromSubAgent:(0,tp.isProposedApiEnabled)(e,"chatParticipantPrivate")?i.fromSubAgent:void 0},r),s=o instanceof tW.SerializableObjectWithBuffers?o.value:o;return e6.LanguageModelToolResult.to((0,e8.revive)(s))}finally{this._tokenCountFuncs.delete(n)}}$onDidChangeTools(e){let t=new Set(this._registeredTools.keys());for(let i of e){t.delete(i.id);let e=this._allTools.get(i.id);e?e.update(i):this._allTools.set(i.id,new a2((0,e8.revive)(i)))}for(let e of t)this._allTools.delete(e)}getTools(e){let t=(0,tp.isProposedApiEnabled)(e,"chatParticipantPrivate");return Array.from(this._allTools.values()).map(e=>t?e.apiObjectWithChatParticipantAdditions:e.apiObject).filter(t=>{switch(t.name){case ap:case ag:case"vscode_fetchWebPage_internal":case"vscode_searchExtensions_internal":return(0,tp.isProposedApiEnabled)(e,"chatParticipantPrivate");default:return!0}})}async $invokeTool(e,t){let i,r=this._registeredTools.get(e.toolId);if(!r)throw Error(`Unknown tool ${e.toolId}`);let n={input:e.parameters,toolInvocationToken:(0,e8.revive)(e.context)};if((0,tp.isProposedApiEnabled)(r.extension,"chatParticipantPrivate")&&(n.chatRequestId=e.chatRequestId,n.chatInteractionId=e.chatInteractionId,n.chatSessionId=e.context?.sessionId,n.fromSubAgent=e.fromSubAgent),(0,tp.isProposedApiEnabled)(r.extension,"chatParticipantAdditions")&&e.modelId&&(n.model=await this.getModel(e.modelId,r.extension)),void 0!==e.tokenBudget&&(n.tokenizationOptions={tokenBudget:e.tokenBudget,countTokens:this._tokenCountFuncs.get(e.callId)||((t,i=aa.CancellationToken.None)=>this._proxy.$countTokensForInvocation(e.callId,t,i))}),(0,tp.isProposedApiEnabled)(r.extension,"toolProgress")){let t;i={report:i=>{void 0!==i.increment&&(t=(t??0)+i.increment),this._proxy.$acceptToolProgress(e.callId,{message:e6.MarkdownString.fromStrict(i.message),progress:void 0===t?void 0:t/100})}}}let o=await (0,eU.raceCancellation)(Promise.resolve(r.tool.invoke(n,t,i)),t);if(!o)throw new eg.CancellationError;return e6.LanguageModelToolResult.from(o,r.extension)}async getModel(e,t){let i;if(e&&(i=await this._languageModels.getLanguageModelByIdentifier(t,e)),!i&&!(i=await this._languageModels.getDefaultLanguageModel(t)))throw Error("Language model unavailable");return i}async $prepareToolInvocation(e,t,i){let r=this._registeredTools.get(e);if(!r)throw Error(`Unknown tool ${e}`);let n={input:t.parameters,chatRequestId:t.chatRequestId,chatSessionId:t.chatSessionId,chatInteractionId:t.chatInteractionId};if(r.tool.prepareInvocation){let e=await r.tool.prepareInvocation(n,i);if(!e)return;return(e.pastTenseMessage||e.presentation)&&(0,tp.checkProposedApiEnabled)(r.extension,"chatParticipantPrivate"),{confirmationMessages:e.confirmationMessages?{title:"string"==typeof e.confirmationMessages.title?e.confirmationMessages.title:e6.MarkdownString.from(e.confirmationMessages.title),message:"string"==typeof e.confirmationMessages.message?e.confirmationMessages.message:e6.MarkdownString.from(e.confirmationMessages.message)}:void 0,invocationMessage:e6.MarkdownString.fromStrict(e.invocationMessage),pastTenseMessage:e6.MarkdownString.fromStrict(e.pastTenseMessage),presentation:e.presentation}}}registerTool(e,t,i){return this._registeredTools.set(t,{extension:e,tool:i}),this._proxy.$registerTool(t),(0,eH.toDisposable)(()=>{this._registeredTools.delete(t),this._proxy.$unregisterTool(t)})}}class a3{constructor(e,t,i,r){this._documents=t,this._commands=i,this._uriTransformer=r,this._languageIds=[],this._handlePool=0,this._ids=new Set,this._proxy=e.getProxy(ev.MainContext.MainThreadLanguages)}$acceptLanguageIds(e){this._languageIds=e}async getLanguages(){return this._languageIds.slice(0)}async changeLanguage(e,t){await this._proxy.$changeLanguage(e,t);let i=this._documents.getDocumentData(e);if(!i)throw Error(`document '${e.toString()}' NOT found`);return i.document}async tokenAtPosition(e,t){let i=e.version,r=e6.Position.from(t),n=await this._proxy.$tokensAtPosition(e.uri,r),o={type:eh.StandardTokenType.Other,range:e.getWordRangeAtPosition(t)??new ti.Range(t.line,t.character,t.line,t.character)};if(!n)return o;let s={range:e6.Range.to(n.range),type:e6.TokenType.to(n.type)};return s.range.contains(t)&&i===e.version?s:o}createLanguageStatusItem(e,t,i){let r,n=this._handlePool++,o=this._proxy,s=this._ids,a=`${e.identifier.value}/${t}`;if(s.has(a))throw Error(`LanguageStatusItem with id '${t}' ALREADY exists`);s.add(a);let l={selector:i,id:t,name:e.displayName??e.name,severity:eh.LanguageStatusSeverity.Information,command:void 0,text:"",detail:"",busy:!1},c=new eH.DisposableStore,d=()=>{(r?.dispose(),s.has(a))?r=(0,eU.disposableTimeout)(()=>{c.clear(),this._proxy.$setLanguageStatus(n,{id:a,name:l.name??e.displayName??e.name,source:e.displayName??e.name,selector:e6.DocumentSelector.from(l.selector,this._uriTransformer),label:l.text,detail:l.detail??"",severity:l.severity===eh.LanguageStatusSeverity.Error?tt.default.Error:l.severity===eh.LanguageStatusSeverity.Warning?tt.default.Warning:tt.default.Info,command:l.command&&this._commands.toInternal(l.command,c),accessibilityInfo:l.accessibilityInformation,busy:l.busy})},0):console.warn(`LanguageStatusItem (${t}) from ${e.identifier.value} has been disposed and CANNOT be updated anymore`)};return d(),{dispose(){c.dispose(),r?.dispose(),o.$removeLanguageStatus(n),s.delete(a)},get id(){return l.id},get name(){return l.name},set name(value){l.name=value,d()},get selector(){return l.selector},set selector(value){l.selector=value,d()},get text(){return l.text},set text(value){l.text=value,d()},set text2(value){(0,tp.checkProposedApiEnabled)(e,"languageStatusText"),l.text=value,d()},get text2(){return(0,tp.checkProposedApiEnabled)(e,"languageStatusText"),l.text},get detail(){return l.detail},set detail(value){l.detail=value,d()},get severity(){return l.severity},set severity(value){l.severity=value,d()},get accessibilityInformation(){return l.accessibilityInformation},set accessibilityInformation(value){l.accessibilityInformation=value,d()},get command(){return l.command},set command(value){l.command=value,d()},get busy(){return l.busy},set busy(value){l.busy=value,d()}}}}let a4=class{constructor(e,t){this._logService=t,this._proxy=e.getProxy(ev.MainContext.MainThreadMessageService)}showMessage(e,t,i,r,n){let o,s={source:{identifier:e.identifier,label:e.displayName||e.name}};"string"==typeof r||r&&r.title?o=[r,...n]:(s.modal=r?.modal,s.useCustom=r?.useCustom,s.detail=r?.detail,o=n),s.useCustom&&(0,tp.checkProposedApiEnabled)(e,"resolvers");let a=[],l=!1;for(let t=0;t<o.length;t++){let i=o[t];if("string"==typeof i)a.push({title:i,handle:t,isCloseAffordance:!1});else if("object"==typeof i){let{title:r,isCloseAffordance:n}=i;a.push({title:r,isCloseAffordance:!!n,handle:t}),n&&(l?this._logService.warn(`[${e.identifier}] Only one message item can have 'isCloseAffordance':`,i):l=!0)}else this._logService.warn(`[${e.identifier}] Invalid message item:`,i)}return this._proxy.$showMessage(t,i,s,a).then(e=>{if("number"==typeof e)return o[e]})}};a4=(0,ek.__decorate)([(0,ek.__param)(1,eM.ILogService)],a4);var a5=e.i(419031);class a8{constructor(e,t,i,r){this.start=e,this.deletedCount=t,this.deletedItems=i,this.items=r}asApiEvent(){return{range:new t0.NotebookRange(this.start,this.start+this.deletedCount),addedCells:this.items.map(e=>e.apiCell),removedCells:this.deletedItems}}}class a7{static asModelAddData(e){return{EOL:e.eol,lines:e.source,languageId:e.language,uri:e.uri,isDirty:!1,versionId:1,encoding:"utf8"}}constructor(e,t,i){this.notebook=e,this._extHostDocument=t,this._cellData=i,this.handle=i.handle,this.uri=eD.URI.revive(i.uri),this.cellKind=i.cellKind,this._outputs=i.outputs.map(e6.NotebookCellOutput.to),this._internalMetadata=i.internalMetadata??{},this._metadata=Object.freeze(i.metadata??{}),this._previousResult=Object.freeze(e6.NotebookCellExecutionSummary.to(i.internalMetadata??{}))}get internalMetadata(){return this._internalMetadata}get apiCell(){if(!this._apiCell){let e=this,t=this._extHostDocument.getDocument(this.uri);if(!t)throw Error(`MISSING extHostDocument for notebook cell: ${this.uri}`);let i={get index(){return e.notebook.getCellIndex(e)},notebook:e.notebook.apiNotebook,kind:e6.NotebookCellKind.to(this._cellData.cellKind),document:t.document,get mime(){return e._mime},set mime(value){e._mime=value},get outputs(){return e._outputs.slice(0)},get metadata(){return e._metadata},get executionSummary(){return e._previousResult}};this._apiCell=Object.freeze(i)}return this._apiCell}setOutputs(e){this._outputs=e.map(e6.NotebookCellOutput.to)}setOutputItems(e,t,i){let r=i.map(e6.NotebookCellOutputItem.to),n=this._outputs.find(t=>t.id===e);if(n&&(t||(n.items.length=0),n.items.push(...r),n.items.length>1&&n.items.every(e=>(0,a5.isTextStreamMime)(e.mime)))){let e=new Map,t=[];n.items.forEach(i=>{let r;e.has(i.mime)?r=e.get(i.mime):(r=[],e.set(i.mime,r),t.push(i.mime)),r.push(i.data)}),n.items.length=0,t.forEach(t=>{let i=(0,ac.compressOutputItemStreams)(e.get(t));n.items.push({mime:t,data:i.data.buffer})})}}setMetadata(e){this._metadata=Object.freeze(e)}setInternalMetadata(e){this._internalMetadata=e,this._previousResult=Object.freeze(e6.NotebookCellExecutionSummary.to(e))}setMime(e){}}class a9{static{this._handlePool=0}constructor(e,t,i,r,n){this._proxy=e,this._textDocumentsAndEditors=t,this._textDocuments=i,this.uri=r,this.handle=a9._handlePool++,this._cells=[],this._versionId=0,this._isDirty=!1,this._disposed=!1,this._notebookType=n.viewType,this._metadata=Object.freeze(n.metadata??Object.create(null)),this._spliceNotebookCells([[0,0,n.cells]],!0,void 0),this._versionId=n.versionId}dispose(){this._disposed=!0}get versionId(){return this._versionId}get apiNotebook(){if(!this._notebook){let e=this,t={get uri(){return e.uri},get version(){return e._versionId},get notebookType(){return e._notebookType},get isDirty(){return e._isDirty},get isUntitled(){return e.uri.scheme===eO.Schemas.untitled},get isClosed(){return e._disposed},get metadata(){return e._metadata},get cellCount(){return e._cells.length},cellAt:t=>(t=e._validateIndex(t),e._cells[t].apiCell),getCells:t=>(t?e._getCells(t):e._cells).map(e=>e.apiCell),save:()=>e._save(),[Symbol.for("debug.description")](){return`NotebookDocument(${this.uri.toString()})`}};this._notebook=Object.freeze(t)}return this._notebook}acceptDocumentPropertiesChanged(e){e.metadata&&(this._metadata=Object.freeze({...this._metadata,...e.metadata}))}acceptDirty(e){this._isDirty=e}acceptModelChanged(e,t,i){this._versionId=e.versionId,this._isDirty=t,this.acceptDocumentPropertiesChanged({metadata:i});let r={notebook:this.apiNotebook,metadata:i,cellChanges:[],contentChanges:[]},n=[];for(let t of e.rawEvents)t.kind===ac.NotebookCellsChangeType.ModelChange?this._spliceNotebookCells(t.changes,!1,r.contentChanges):t.kind===ac.NotebookCellsChangeType.Move?this._moveCells(t.index,t.length,t.newIdx,r.contentChanges):t.kind===ac.NotebookCellsChangeType.Output?(this._setCellOutputs(t.index,t.outputs),n.push({cell:this._cells[t.index].apiCell,outputs:this._cells[t.index].apiCell.outputs})):t.kind===ac.NotebookCellsChangeType.OutputItem?(this._setCellOutputItems(t.index,t.outputId,t.append,t.outputItems),n.push({cell:this._cells[t.index].apiCell,outputs:this._cells[t.index].apiCell.outputs})):t.kind===ac.NotebookCellsChangeType.ChangeCellLanguage?(this._changeCellLanguage(t.index,t.language),n.push({cell:this._cells[t.index].apiCell,document:this._cells[t.index].apiCell.document})):t.kind===ac.NotebookCellsChangeType.ChangeCellContent?n.push({cell:this._cells[t.index].apiCell,document:this._cells[t.index].apiCell.document}):t.kind===ac.NotebookCellsChangeType.ChangeCellMime?this._changeCellMime(t.index,t.mime):t.kind===ac.NotebookCellsChangeType.ChangeCellMetadata?(this._changeCellMetadata(t.index,t.metadata),n.push({cell:this._cells[t.index].apiCell,metadata:this._cells[t.index].apiCell.metadata})):t.kind===ac.NotebookCellsChangeType.ChangeCellInternalMetadata&&(this._changeCellInternalMetadata(t.index,t.internalMetadata),n.push({cell:this._cells[t.index].apiCell,executionSummary:this._cells[t.index].apiCell.executionSummary}));let o=new Map;for(let e=0;e<n.length;e++){let t=n[e],i=o.get(t.cell);if(void 0===i){let e=r.cellChanges.push({document:void 0,executionSummary:void 0,metadata:void 0,outputs:void 0,...t});o.set(t.cell,e-1)}else r.cellChanges[i]={...r.cellChanges[i],...t}}return r}_validateIndex(e){return(e|=0)<0?0:e>=this._cells.length?this._cells.length-1:e}_validateRange(e){let t=0|e.start,i=0|e.end;return t<0&&(t=0),i>this._cells.length&&(i=this._cells.length),e.with({start:t,end:i})}_getCells(e){e=this._validateRange(e);let t=[];for(let i=e.start;i<e.end;i++)t.push(this._cells[i]);return t}async _save(){return this._disposed?Promise.reject(Error("Notebook has been closed")):this._proxy.$trySaveNotebook(this.uri)}_spliceNotebookCells(e,t,i){if(this._disposed)return;let r=[],n=[],o=[];if(e.reverse().forEach(e=>{let i=e[2].map(e=>{let i=new a7(this,this._textDocumentsAndEditors,e);return t||n.push(a7.asModelAddData(e)),i}),s=new a8(e[0],e[1],[],i);for(let t of this._cells.splice(e[0],e[1],...i))o.push(t.uri),s.deletedItems.push(t.apiCell);r.push(s)}),this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({addedDocuments:n,removedDocuments:o}),i)for(let e of r)i.push(e.asApiEvent())}_moveCells(e,t,i,r){let n=this._cells.splice(e,t);for(let o of(this._cells.splice(i,0,...n),[new a8(e,t,n.map(e=>e.apiCell),[]),new a8(i,0,[],n)]))r.push(o.asApiEvent())}_setCellOutputs(e,t){this._cells[e].setOutputs(t)}_setCellOutputItems(e,t,i,r){this._cells[e].setOutputItems(t,i,r)}_changeCellLanguage(e,t){let i=this._cells[e];i.apiCell.document.languageId!==t&&this._textDocuments.$acceptModelLanguageChanged(i.uri,t)}_changeCellMime(e,t){this._cells[e].apiCell.mime=t}_changeCellMetadata(e,t){this._cells[e].setMetadata(t)}_changeCellInternalMetadata(e,t){this._cells[e].setInternalMetadata(t)}getCellFromApiCell(e){return this._cells.find(t=>t.apiCell===e)}getCellFromIndex(e){return this._cells[e]}getCell(e){return this._cells.find(t=>t.handle===e)}getCellIndex(e){return this._cells.indexOf(e)}}class le{static{this.apiEditorsToExtHost=new WeakMap}constructor(e,t,i,r,n,o,s){this.id=e,this._proxy=t,this.notebookData=i,this._visibleRanges=r,this._selections=n,this._viewColumn=o,this.viewType=s,this._visible=!1}get apiEditor(){if(!this._editor){let e=this;this._editor={get notebook(){return e.notebookData.apiNotebook},get selection(){return e._selections[0]},set selection(selection){this.selections=[selection]},get selections(){return e._selections},set selections(value){if(!Array.isArray(value)||!value.every(t0.NotebookRange.isNotebookRange))throw(0,eg.illegalArgument)("selections");e._selections=0===value.length?[new t0.NotebookRange(0,0)]:value,e._trySetSelections(e._selections)},get visibleRanges(){return e._visibleRanges},revealRange(t,i){e._proxy.$tryRevealRange(e.id,e6.NotebookRange.from(t),i??eh.NotebookEditorRevealType.Default)},get viewColumn(){return e._viewColumn},get replOptions(){if("repl"===e.viewType)return{appendIndex:this.notebook.cellCount-1};return},[Symbol.for("debug.description")](){return`NotebookEditor(${this.notebook.uri.toString()})`}},le.apiEditorsToExtHost.set(this._editor,this)}return this._editor}get visible(){return this._visible}_acceptVisibility(e){this._visible=e}_acceptVisibleRanges(e){this._visibleRanges=e}_acceptSelections(e){this._selections=e}_trySetSelections(e){this._proxy.$trySetSelections(this.id,e.map(e6.NotebookRange.from))}_acceptViewColumn(e){this._viewColumn=e}}var lt=eH,li=e.i(437032),lr=e.i(922688);class ln extends lt.Disposable{constructor(e,t,i){super(),this._source=e,this._inputTextBuffer=t,this._outputs=i,this._outputTextBuffers=void 0}_getFullModelRange(e){let t=e.getLineCount();return new tE.Range(1,1,t,this._getLineMaxColumn(e,t))}_getLineMaxColumn(e,t){if(t<1||t>e.getLineCount())throw Error("Illegal value for lineNumber");return e.getLineLength(t)+1}get inputTextBuffer(){if(!this._inputTextBuffer){let e=new li.PieceTreeTextBufferBuilder;e.acceptChunk(this._source);let{textBuffer:t,disposable:i}=e.finish(!0).create(eC.DefaultEndOfLine.LF);this._inputTextBuffer=t,this._register(i)}return this._inputTextBuffer}get outputTextBuffers(){return this._outputTextBuffers||(this._outputTextBuffers=this._outputs.map(e=>{let t=new li.PieceTreeTextBufferBuilder;t.acceptChunk(e);let{textBuffer:i,disposable:r}=t.finish(!0).create(eC.DefaultEndOfLine.LF);return this._register(r),i})),this._outputTextBuffers}findInInputs(e){let t=new lr.SearchParams(e,!1,!1,null).parseSearchRequest();if(!t)return[];let i=this._getFullModelRange(this.inputTextBuffer);return this.inputTextBuffer.findMatchesLineByLine(i,t,!0,5e3)}findInOutputs(e){let t=new lr.SearchParams(e,!1,!1,null).parseSearchRequest();return t?this.outputTextBuffers.map(e=>{let i=e.findMatchesLineByLine(this._getFullModelRange(e),t,!0,5e3);if(0!==i.length)return{textBuffer:e,matches:i}}).filter(e=>!!e):[]}}function lo(e,t){let i=-1,r=[],n=[];return e.forEach(e=>{e.range.startLineNumber!==i&&n.length>0&&(r.push([...n]),n=[]),n.push(e),i=e.range.endLineNumber}),n.length>0&&r.push([...n]),r.map(e=>{let i=[],r=e[0].range.startLineNumber,n=e[e.length-1].range.endLineNumber;for(let e=r;e<=n;e++)i.push(t.getLineContent(e));return new e5.TextSearchMatch(i.join("\n")+"\n",e.map(e=>new tE.Range(e.range.startLineNumber-1,e.range.startColumn-1,e.range.endLineNumber-1,e.range.endColumn-1)))})}var ls=e.i(781112);class la{static{this._notebookStatusBarItemProviderHandlePool=0}get activeNotebookEditor(){return this._activeNotebookEditor?.apiEditor}get visibleNotebookEditors(){return this._visibleNotebookEditors.map(e=>e.apiEditor)}constructor(e,t,i,r,n,o,s){this._textDocumentsAndEditors=i,this._textDocuments=r,this._extHostFileSystem=n,this._extHostSearch=o,this._logService=s,this._notebookStatusBarItemProviders=new Map,this._documents=new eV.ResourceMap,this._editors=new Map,this._onDidChangeActiveNotebookEditor=new ey.Emitter,this.onDidChangeActiveNotebookEditor=this._onDidChangeActiveNotebookEditor.event,this._visibleNotebookEditors=[],this._onDidOpenNotebookDocument=new ey.Emitter,this.onDidOpenNotebookDocument=this._onDidOpenNotebookDocument.event,this._onDidCloseNotebookDocument=new ey.Emitter,this.onDidCloseNotebookDocument=this._onDidCloseNotebookDocument.event,this._onDidChangeVisibleNotebookEditors=new ey.Emitter,this.onDidChangeVisibleNotebookEditors=this._onDidChangeVisibleNotebookEditors.event,this._statusBarCache=new o9("NotebookCellStatusBarCache"),this._handlePool=0,this._notebookSerializer=new Map,this._notebookProxy=e.getProxy(ev.MainContext.MainThreadNotebook),this._notebookDocumentsProxy=e.getProxy(ev.MainContext.MainThreadNotebookDocuments),this._notebookEditorsProxy=e.getProxy(ev.MainContext.MainThreadNotebookEditors),this._commandsConverter=t.converter,t.registerArgumentProcessor({processArgument:e=>{if(e&&e.$mid===iS.MarshalledId.NotebookCellActionContext){let t=e.notebookEditor?.notebookUri,i=e.cell.handle,r=this._documents.get(t),n=r?.getCell(i);if(n)return n.apiCell}if(e&&e.$mid===iS.MarshalledId.NotebookActionContext){let t=e.uri,i=this._documents.get(t);if(i)return i.apiNotebook}return e}}),la._registerApiCommands(t)}getEditorById(e){let t=this._editors.get(e);if(!t)throw Error(`unknown text editor: ${e}. known editors: ${[...this._editors.keys()]} `);return t}getIdByEditor(e){for(let[t,i]of this._editors)if(i.apiEditor===e)return t}get notebookDocuments(){return[...this._documents.values()]}getNotebookDocument(e,t){let i=this._documents.get(e);if(!i&&!t)throw Error(`NO notebook document for '${e}'`);return i}static _convertNotebookRegistrationData(e,t){if(!t)return;let i=t.filenamePattern.map(e=>e6.NotebookExclusiveDocumentPattern.from(e)).filter(e=>void 0!==e);return t.filenamePattern&&!i?void console.warn(`Notebook content provider view options file name pattern is invalid ${t.filenamePattern}`):{extension:e.identifier,providerDisplayName:e.displayName||e.name,displayName:t.displayName,filenamePattern:i,priority:t.exclusive?ls.RegisteredEditorPriority.exclusive:void 0}}registerNotebookCellStatusBarItemProvider(e,t,i){let r,n=la._notebookStatusBarItemProviderHandlePool++,o="function"==typeof i.onDidChangeCellStatusBarItems?la._notebookStatusBarItemProviderHandlePool++:void 0;return this._notebookStatusBarItemProviders.set(n,i),this._notebookProxy.$registerNotebookCellStatusBarItemProvider(n,o,t),void 0!==o&&(r=i.onDidChangeCellStatusBarItems(e=>this._notebookProxy.$emitCellStatusBarEvent(o))),new eh.Disposable(()=>{this._notebookStatusBarItemProviders.delete(n),this._notebookProxy.$unregisterNotebookCellStatusBarItemProvider(n,o),r?.dispose()})}async createNotebookDocument(e){let t=await this._notebookDocumentsProxy.$tryCreateNotebook({viewType:e.viewType,content:e.content&&e6.NotebookData.from(e.content)});return eD.URI.revive(t)}async openNotebookDocument(e){let t=this._documents.get(e);if(t)return t.apiNotebook;let i=await this._notebookDocumentsProxy.$tryOpenNotebook(e),r=this._documents.get(eD.URI.revive(i));return(0,eK.assertReturnsDefined)(r?.apiNotebook)}async showNotebookDocument(e,t){let i;i="object"==typeof t?{position:e6.ViewColumn.from(t.viewColumn),preserveFocus:t.preserveFocus,selections:t.selections&&t.selections.map(e6.NotebookRange.from),pinned:"boolean"==typeof t.preview?!t.preview:void 0,label:"string"==typeof t.asRepl?t.asRepl:"object"==typeof t.asRepl?t.asRepl.label:void 0}:{preserveFocus:!1,pinned:!0};let r=t?.asRepl?"repl":e.notebookType,n=await this._notebookEditorsProxy.$tryShowNotebookDocument(e.uri,r,i),o=n&&this._editors.get(n)?.apiEditor;if(o)return o;if(n)throw Error(`Could NOT open editor for "${e.uri.toString()}" because another editor opened in the meantime.`);throw Error(`Could NOT open editor for "${e.uri.toString()}".`)}async $provideNotebookCellStatusBarItems(e,t,i,r){let n=this._notebookStatusBarItemProviders.get(e),o=eD.URI.revive(t),s=this._documents.get(o);if(!s||!n)return;let a=s.getCellFromIndex(i);if(!a)return;let l=await n.provideCellStatusBarItems(a.apiCell,r);if(!l)return;let c=new eH.DisposableStore;return{cacheId:this._statusBarCache.add([c]),items:(Array.isArray(l)?l:[l]).map(e=>e6.NotebookStatusBarItem.from(e,this._commandsConverter,c))}}$releaseNotebookCellStatusBarItems(e){this._statusBarCache.delete(e)}registerNotebookSerializer(e,t,i,r,n){if((0,e0.isFalsyOrWhitespace)(t))throw Error("viewType cannot be empty or just whitespace");let o=this._handlePool++;return this._notebookSerializer.set(o,{viewType:t,serializer:i,options:r}),this._notebookProxy.$registerNotebookSerializer(o,{id:e.identifier,location:e.extensionLocation},t,e6.NotebookDocumentContentOptions.from(r),la._convertNotebookRegistrationData(e,n)),(0,eH.toDisposable)(()=>{this._notebookProxy.$unregisterNotebookSerializer(o)})}async $dataToNotebook(e,t,i){let r=this._notebookSerializer.get(e);if(!r)throw Error("NO serializer found");let n=await r.serializer.deserializeNotebook(t.buffer,i);return new tW.SerializableObjectWithBuffers(e6.NotebookData.from(n))}async $notebookToData(e,t,i){let r=this._notebookSerializer.get(e);if(!r)throw Error("NO serializer found");let n=await r.serializer.serializeNotebook(e6.NotebookData.to(t.value),i);return eF.VSBuffer.wrap(n)}async $saveNotebook(e,t,i,r,n){let o=eD.URI.revive(t),s=this._notebookSerializer.get(e);this.trace(`enter saveNotebook(versionId: ${i}, ${o.toString()})`);try{if(!s)throw new ll("NO serializer found");let e=this._documents.get(o);if(!e)throw new ll("Document NOT found");if(e.versionId!==i)throw new ll("Document version mismatch, expected: "+i+", actual: "+e.versionId);if(!this._extHostFileSystem.value.isWritableFileSystem(o.scheme))throw new ep.FileOperationError((0,e1.localize)(2698,"Unable to modify read-only file '{0}'",this._resourceForError(o)),ep.FileOperationResult.FILE_PERMISSION_DENIED);let t={metadata:(0,tv.filter)(e.apiNotebook.metadata,e=>!(s.options?.transientDocumentMetadata??{})[e]),cells:[]};for(let i of e.apiNotebook.getCells()){let e=new t0.NotebookCellData(i.kind,i.document.getText(),i.document.languageId,i.mime,!s.options?.transientOutputs?[...i.outputs]:[],i.metadata,i.executionSummary);e.metadata=(0,tv.filter)(i.metadata,e=>!(s.options?.transientCellMetadata??{})[e]),t.cells.push(e)}if(await this._validateWriteFile(o,r),n.isCancellationRequested)throw new eg.CancellationError;let a=await s.serializer.serializeNotebook(t,n);if(n.isCancellationRequested)throw new eg.CancellationError;this.trace(`serialized versionId: ${i} ${o.toString()}`),await this._extHostFileSystem.value.writeFile(o,a),this.trace(`Finished write versionId: ${i} ${o.toString()}`);let l=this._extHostFileSystem.getFileSystemProviderExtUri(o.scheme),c=await this._extHostFileSystem.value.stat(o),d={name:l.basename(o),isFile:(c.type&ep.FileType.File)!=0,isDirectory:(c.type&ep.FileType.Directory)!=0,isSymbolicLink:(c.type&ep.FileType.SymbolicLink)!=0,mtime:c.mtime,ctime:c.ctime,size:c.size,readonly:!!((c.permissions??0)&ep.FilePermission.Readonly)||!this._extHostFileSystem.value.isWritableFileSystem(o.scheme),locked:!!((c.permissions??0)&ep.FilePermission.Locked),executable:!!((c.permissions??0)&ep.FilePermission.Executable),etag:(0,ep.etag)({mtime:c.mtime,size:c.size})};return this.trace(`exit saveNotebook(versionId: ${i}, ${o.toString()})`),d}catch(e){if(e instanceof ep.FileOperationError)return{...e,message:e.message};throw e}}async $searchInNotebooks(e,t,i,r,n){let o=this._notebookSerializer.get(e)?.serializer;if(!o)return{limitHit:!1,results:[]};let s=new eV.ResourceSet,a=async(e,t,i)=>{await Promise.all(e.map(async e=>await Promise.all(e.filenamePatterns.map(n=>{let o={_reason:i._reason,folderQueries:i.folderQueries,includePattern:i.includePattern,excludePattern:i.excludePattern,maxResults:i.maxResults,type:e5.QueryType.File,filePattern:n};return this._extHostSearch.doInternalFileSearchWithCustomCallback(o,t,t=>{t.forEach(t=>{s.has(t)||r.some(i=>(!e.isFromSettings||!!i.isFromSettings)&&i.filenamePatterns.some(e=>(0,ls.globMatchesResource)(e,t)))||s.add(t)})}).catch(e=>{if("ENOENT"===e.code)return console.warn("Could not find notebook search results, ignoring notebook results."),{limitHit:!1,messages:[]};throw e})}))))};await a(i,n,t);let l=new eV.ResourceMap,c=!1,d=Array.from(s).map(async e=>{let i=[];try{if(n.isCancellationRequested)return;if(t.maxResults&&[...l.values()].reduce((e,t)=>e+t.cellResults.length,0)>t.maxResults){c=!0;return}let r=[],s=this._documents.get(e);if(s)s.apiNotebook.getCells().forEach(e=>r.push({input:e.document.getText(),outputs:e.outputs.flatMap(e=>e.items.map(e=>e.data.toString()))}));else{let t=await this._extHostFileSystem.value.readFile(e),i=eF.VSBuffer.fromString(t.toString()),s=await o.deserializeNotebook(i.buffer,n);if(n.isCancellationRequested)return;e6.NotebookData.from(s).cells.forEach(e=>r.push({input:e.source,outputs:e.outputs.flatMap(e=>e.items.map(e=>e.valueBytes.toString()))}))}if(n.isCancellationRequested)return;r.forEach((e,r)=>{let n=t.contentPattern.pattern,o=new ln(e.input,void 0,e.outputs),s=o.findInInputs(n),a=o.findInOutputs(n),l=a.flatMap(e=>lo(e.matches,e.textBuffer)).map((e,t)=>(e.webviewIndex=t,e));if(s.length>0||a.length>0){let e={index:r,contentResults:lo(s,o.inputTextBuffer),webviewResults:l};i.push(e)}}),l.set(e,{resource:e,cellResults:i});return}catch(e){return}});return await Promise.all(d),{limitHit:c,results:[...l.values()]}}async _validateWriteFile(e,t){let i=await this._extHostFileSystem.value.stat(e);if("number"==typeof t?.mtime&&"string"==typeof t.etag&&t.etag!==ep.ETAG_DISABLED&&"number"==typeof i.mtime&&"number"==typeof i.size&&t.mtime<i.mtime&&t.etag!==(0,ep.etag)({mtime:t.mtime,size:i.size}))throw new ep.FileOperationError((0,e1.localize)(2699,"File Modified Since"),ep.FileOperationResult.FILE_MODIFIED_SINCE,t)}_resourceForError(e){return e.scheme===eO.Schemas.file?e.fsPath:e.toString()}_createExtHostEditor(e,t,i){if(this._editors.has(t))throw Error(`editor with id ALREADY EXSIST: ${t}`);let r=new le(t,this._notebookEditorsProxy,e,i.visibleRanges.map(e6.NotebookRange.to),i.selections.map(e6.NotebookRange.to),"number"==typeof i.viewColumn?e6.ViewColumn.to(i.viewColumn):void 0,i.viewType);this._editors.set(t,r)}$acceptDocumentAndEditorsDelta(e){if(e.value.removedDocuments)for(let t of e.value.removedDocuments){let e=eD.URI.revive(t),i=this._documents.get(e);for(let t of(i&&(i.dispose(),this._documents.delete(e),this._textDocumentsAndEditors.$acceptDocumentsAndEditorsDelta({removedDocuments:i.apiNotebook.getCells().map(e=>e.document.uri)}),this._onDidCloseNotebookDocument.fire(i.apiNotebook)),this._editors.values()))t.notebookData.uri.toString()===e.toString()&&this._editors.delete(t.id)}if(e.value.addedDocuments){let t=[];for(let i of e.value.addedDocuments){let e=eD.URI.revive(i.uri);if(this._documents.has(e))throw Error(`adding EXISTING notebook ${e} `);let r=new a9(this._notebookDocumentsProxy,this._textDocumentsAndEditors,this._textDocuments,e,i);t.push(...i.cells.map(e=>a7.asModelAddData(e))),this._documents.get(e)?.dispose(),this._documents.set(e,r),this._textDocumentsAndEditors.$acceptDocumentsAndEditorsDelta({addedDocuments:t}),this._onDidOpenNotebookDocument.fire(r.apiNotebook)}}if(e.value.addedEditors)for(let t of e.value.addedEditors){if(this._editors.has(t.id))return;let e=eD.URI.revive(t.documentUri),i=this._documents.get(e);i&&this._createExtHostEditor(i,t.id,t)}if(e.value.removedEditors)for(let t of e.value.removedEditors){let e=this._editors.get(t);e&&(this._editors.delete(t),this._activeNotebookEditor?.id===e.id&&(this._activeNotebookEditor=void 0))}if(e.value.visibleEditors){this._visibleNotebookEditors=e.value.visibleEditors.map(e=>this._editors.get(e)).filter(e=>!!e);let t=new Set;for(let e of(this._visibleNotebookEditors.forEach(e=>t.add(e.id)),this._editors.values())){let i=t.has(e.id);e._acceptVisibility(i)}this._visibleNotebookEditors=[...this._editors.values()].map(e=>e).filter(e=>e.visible),this._onDidChangeVisibleNotebookEditors.fire(this.visibleNotebookEditors)}null===e.value.newActiveEditor?this._activeNotebookEditor=void 0:e.value.newActiveEditor&&(this._editors.get(e.value.newActiveEditor)||console.error(`FAILED to find active notebook editor ${e.value.newActiveEditor}`),this._activeNotebookEditor=this._editors.get(e.value.newActiveEditor)),void 0!==e.value.newActiveEditor&&this._onDidChangeActiveNotebookEditor.fire(this._activeNotebookEditor?.apiEditor)}static _registerApiCommands(e){let t=t3.String.with("notebookType","A notebook type"),i=new t5("vscode.executeDataToNotebook","_executeDataToNotebook","Invoke notebook serializer",[t,new t3("data","Bytes to convert to data",e=>e instanceof Uint8Array,e=>eF.VSBuffer.wrap(e))],new t4("Notebook Data",e=>e6.NotebookData.to(e.value))),r=new t5("vscode.executeNotebookToData","_executeNotebookToData","Invoke notebook serializer",[t,new t3("NotebookData","Notebook data to convert to bytes",e=>!0,e=>new tW.SerializableObjectWithBuffers(e6.NotebookData.from(e)))],new t4("Bytes",e=>e.buffer));e.registerApiCommand(i),e.registerApiCommand(r)}trace(e){this._logService.trace(`[Extension Host Notebook] ${e}`)}}class ll extends Error{constructor(e){super(e),this.name="NotebookSaveError"}}class lc{constructor(e,t,i,r={timeout:1500,errors:3}){this._logService=e,this._notebooksAndEditors=t,this._mainThreadBulkEdits=i,this._thresholds=r,this._onWillSaveNotebookDocumentEvent=new ey.AsyncEmitter}dispose(){}getOnWillSaveNotebookDocumentEvent(e){return(t,i,r)=>{let n=function(e){t.call(i,e)};return n.extension=e,this._onWillSaveNotebookDocumentEvent.event(n,void 0,r)}}async $participateInSave(e,t,i){let r=eD.URI.revive(e),n=this._notebooksAndEditors.getNotebookDocument(r);if(!n)throw Error("Unable to resolve notebook document");let o=[];if(await this._onWillSaveNotebookDocumentEvent.fireAsync({notebook:n.apiNotebook,reason:e6.TextDocumentSaveReason.to(t)},i,async(e,t)=>{let r=Date.now(),n=await await Promise.resolve(e);Date.now()-r>this._thresholds.timeout&&this._logService.warn("onWillSaveNotebookDocument-listener from extension",t.extension.identifier),!i.isCancellationRequested&&n&&(n instanceof sw.WorkspaceEdit?o.push(n):this._logService.warn("onWillSaveNotebookDocument-listener from extension",t.extension.identifier,"ignored due to invalid data"))}),i.isCancellationRequested)return!1;if(0===o.length)return!0;let s={edits:[]};for(let e of o){let{edits:t}=e6.WorkspaceEdit.from(e);s.edits=s.edits.concat(t)}return this._mainThreadBulkEdits.$tryApplyWorkspaceEdit(new tW.SerializableObjectWithBuffers(s))}}class ld{constructor(e){this._notebooksAndEditors=e,this._onDidSaveNotebookDocument=new ey.Emitter,this.onDidSaveNotebookDocument=this._onDidSaveNotebookDocument.event,this._onDidChangeNotebookDocument=new ey.Emitter,this.onDidChangeNotebookDocument=this._onDidChangeNotebookDocument.event}$acceptModelChanged(e,t,i,r){let n=this._notebooksAndEditors.getNotebookDocument(eD.URI.revive(e)).acceptModelChanged(t.value,i,r);this._onDidChangeNotebookDocument.fire(n)}$acceptDirtyStateChanged(e,t){this._notebooksAndEditors.getNotebookDocument(eD.URI.revive(e)).acceptDirty(t)}$acceptModelSaved(e){let t=this._notebooksAndEditors.getNotebookDocument(eD.URI.revive(e));this._onDidSaveNotebookDocument.fire(t.apiNotebook)}}let lu=class{constructor(e,t){this._logService=e,this._notebooksAndEditors=t,this._onDidChangeNotebookEditorSelection=new ey.Emitter,this._onDidChangeNotebookEditorVisibleRanges=new ey.Emitter,this.onDidChangeNotebookEditorSelection=this._onDidChangeNotebookEditorSelection.event,this.onDidChangeNotebookEditorVisibleRanges=this._onDidChangeNotebookEditorVisibleRanges.event}$acceptEditorPropertiesChanged(e,t){this._logService.debug("ExtHostNotebook#$acceptEditorPropertiesChanged",e,t);let i=this._notebooksAndEditors.getEditorById(e);t.visibleRanges&&i._acceptVisibleRanges(t.visibleRanges.ranges.map(e6.NotebookRange.to)),t.selections&&i._acceptSelections(t.selections.selections.map(e6.NotebookRange.to)),t.visibleRanges&&this._onDidChangeNotebookEditorVisibleRanges.fire({notebookEditor:i.apiEditor,visibleRanges:i.apiEditor.visibleRanges}),t.selections&&this._onDidChangeNotebookEditorSelection.fire(Object.freeze({notebookEditor:i.apiEditor,selections:i.apiEditor.selections}))}$acceptEditorViewColumns(e){for(let t in e)this._notebooksAndEditors.getEditorById(t)._acceptViewColumn(e6.ViewColumn.to(e[t]))}};lu=(0,ek.__decorate)([(0,ek.__param)(0,eM.ILogService)],lu);var lh=eH,lg=e.i(55708);(D=el||(el={}))[D.Disconnected=1]="Disconnected",D[D.Connected=2]="Connected",D[D.Initializing=3]="Initializing";let lp=class{constructor(e,t,i,r,n){this._initData=t,this._extHostNotebook=i,this._commands=r,this._logService=n,this._activeExecutions=new eV.ResourceMap,this._activeNotebookExecutions=new eV.ResourceMap,this._kernelDetectionTask=new Map,this._kernelDetectionTaskHandlePool=0,this._kernelSourceActionProviders=new Map,this._kernelSourceActionProviderHandlePool=0,this._kernelData=new Map,this._handlePool=0,this.id=0,this.variableStore={},this._proxy=e.getProxy(ev.MainContext.MainThreadNotebookKernels);const o=new t5("notebook.selectKernel","_notebook.selectKernel","Trigger kernel picker for specified notebook editor widget",[new t3("options","Select kernel options",e=>!0,e=>{if(e&&"notebookEditor"in e&&"id"in e){let t=this._extHostNotebook.getIdByEditor(e.notebookEditor);return{id:e.id,extension:e.extension,notebookEditorId:t}}if(e&&"notebookEditor"in e){let t=this._extHostNotebook.getIdByEditor(e.notebookEditor);if(void 0===t)throw Error(`Cannot invoke 'notebook.selectKernel' for unrecognized notebook editor ${e.notebookEditor.notebook.uri.toString()}`);return"skipIfAlreadySelected"in e?{notebookEditorId:t,skipIfAlreadySelected:e.skipIfAlreadySelected}:{notebookEditorId:t}}return e})],t4.Void),s=new t5("vscode.executeNotebookVariableProvider","_executeNotebookVariableProvider","Execute notebook variable provider",[t3.Uri],new t4("A promise that resolves to an array of variables",(e,t)=>e.map(e=>({variable:{name:e.name,value:e.value,expression:e.expression,type:e.type,language:e.language},hasNamedChildren:e.hasNamedChildren,indexedChildrenCount:e.indexedChildrenCount}))));this._commands.registerApiCommand(o),this._commands.registerApiCommand(s)}createNotebookController(e,t,i,r,n,o){let s,a;for(let i of this._kernelData.values())if(i.controller.id===t&&eI.ExtensionIdentifier.equals(e.identifier,i.extensionId))throw Error(`notebook controller with id '${t}' ALREADY exist`);let l=this._handlePool++,c=this;this._logService.trace(`NotebookController[${l}], CREATED by ${e.identifier.value}, ${t}`);let d=()=>console.warn(`NO execute handler from notebook controller '${p.id}' of extension: '${e.identifier}'`),u=!1,h=new ey.Emitter,g=new ey.Emitter,p={id:l_(e.identifier,t),notebookType:i,extensionId:e.identifier,extensionLocation:e.extensionLocation,label:r||e.identifier.value,preloads:o?o.map(e6.NotebookRendererScript.from):[]},m=n??d;this._proxy.$addKernel(l,p).catch(e=>{console.log(e),u=!0});let f=0,_=()=>{if(u)return;let e=++f;Promise.resolve().then(()=>{e===f&&this._proxy.$updateKernel(l,p)})},y=new eV.ResourceMap,C={get id(){return t},get notebookType(){return p.notebookType},onDidChangeSelectedNotebooks:h.event,get label(){return p.label},set label(value){p.label=value??e.displayName??e.name,_()},get detail(){return p.detail??""},set detail(value){p.detail=value,_()},get description(){return p.description??""},set description(value){p.description=value,_()},get supportedLanguages(){return p.supportedLanguages},set supportedLanguages(value){p.supportedLanguages=value,_()},get supportsExecutionOrder(){return p.supportsExecutionOrder??!1},set supportsExecutionOrder(value){p.supportsExecutionOrder=value,_()},get rendererScripts(){return p.preloads?p.preloads.map(e6.NotebookRendererScript.to):[]},get executeHandler(){return m},set executeHandler(value){m=value??d},get interruptHandler(){return s},set interruptHandler(value){s=value,p.supportsInterrupt=!!value,_()},set variableProvider(value){(0,tp.checkProposedApiEnabled)(e,"notebookVariableProvider"),a=value,p.hasVariableProvider=!!value,value?.onDidChangeVariables(e=>c._proxy.$variablesUpdated(e.uri)),_()},get variableProvider(){return a},createNotebookCellExecution(t){if(u)throw Error("notebook controller is DISPOSED");if(!y.has(t.notebook.uri))throw c._logService.trace(`NotebookController[${l}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(y.keys()).map(e=>e.toString())),Error(`notebook controller is NOT associated to notebook: ${t.notebook.uri.toString()}`);return c._createNotebookCellExecution(t,l_(e.identifier,this.id))},createNotebookExecution(t){if((0,tp.checkProposedApiEnabled)(e,"notebookExecution"),u)throw Error("notebook controller is DISPOSED");if(!y.has(t.uri))throw c._logService.trace(`NotebookController[${l}] NOT associated to notebook, associated to THESE notebooks:`,Array.from(y.keys()).map(e=>e.toString())),Error(`notebook controller is NOT associated to notebook: ${t.uri.toString()}`);return c._createNotebookExecution(t,l_(e.identifier,this.id))},dispose:()=>{u||(this._logService.trace(`NotebookController[${l}], DISPOSED`),u=!0,this._kernelData.delete(l),h.dispose(),g.dispose(),this._proxy.$removeKernel(l))},updateNotebookAffinity(t,i){i===eh.NotebookControllerAffinity2.Hidden&&(0,tp.checkProposedApiEnabled)(e,"notebookControllerAffinityHidden"),c._proxy.$updateNotebookPriority(l,t.uri,i)},onDidReceiveMessage:g.event,postMessage:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"notebookMessaging"),c._proxy.$postMessage(l,i&&c._extHostNotebook.getIdByEditor(i),t)),asWebviewUri:t=>((0,tp.checkProposedApiEnabled)(e,"notebookMessaging"),(0,oX.asWebviewUri)(t,c._initData.remote))};return this._kernelData.set(l,{extensionId:e.identifier,controller:C,onDidReceiveMessage:g,onDidChangeSelection:h,associatedNotebooks:y}),C}getIdByController(e){for(let[t,i]of this._kernelData)if(i.controller===e)return l_(i.extensionId,e.id);return null}createNotebookControllerDetectionTask(e,t){let i=this._kernelDetectionTaskHandlePool++,r=this;this._logService.trace(`NotebookControllerDetectionTask[${i}], CREATED by ${e.identifier.value}`),this._proxy.$addKernelDetectionTask(i,t);let n={dispose:()=>{this._kernelDetectionTask.delete(i),r._proxy.$removeKernelDetectionTask(i)}};return this._kernelDetectionTask.set(i,n),n}registerKernelSourceActionProvider(e,t,i){let r,n=this._kernelSourceActionProviderHandlePool++,o="function"==typeof i.onDidChangeNotebookKernelSourceActions?n:void 0,s=this;return this._kernelSourceActionProviders.set(n,i),this._logService.trace(`NotebookKernelSourceActionProvider[${n}], CREATED by ${e.identifier.value}`),this._proxy.$addKernelSourceActionProvider(n,n,t),void 0!==o&&(r=i.onDidChangeNotebookKernelSourceActions(e=>this._proxy.$emitNotebookKernelSourceActionsChangeEvent(o))),{dispose:()=>{this._kernelSourceActionProviders.delete(n),s._proxy.$removeKernelSourceActionProvider(n,n),r?.dispose()}}}async $provideKernelSourceActions(e,t){let i=this._kernelSourceActionProviders.get(e);if(i){let e=new lh.DisposableStore;return(await i.provideNotebookKernelSourceActions(t)??[]).map(t=>e6.NotebookKernelSourceAction.from(t,this._commands.converter,e))}return[]}$acceptNotebookAssociation(e,t,i){let r=this._kernelData.get(e);if(r){let n=this._extHostNotebook.getNotebookDocument(eD.URI.revive(t));i?r.associatedNotebooks.set(n.uri,!0):r.associatedNotebooks.delete(n.uri),this._logService.trace(`NotebookController[${e}] ASSOCIATE notebook`,n.uri.toString(),i),r.onDidChangeSelection.fire({selected:i,notebook:n.apiNotebook})}}async $executeCells(e,t,i){let r=this._kernelData.get(e);if(!r)return;let n=this._extHostNotebook.getNotebookDocument(eD.URI.revive(t)),o=[];for(let e of i){let t=n.getCell(e);t&&o.push(t.apiCell)}try{this._logService.trace(`NotebookController[${e}] EXECUTE cells`,n.uri.toString(),o.length),await r.controller.executeHandler.call(r.controller,o,n.apiNotebook,r.controller)}catch(t){this._logService.error(`NotebookController[${e}] execute cells FAILED`,t),console.error(t)}}async $cancelCells(e,t,i){let r=this._kernelData.get(e);if(!r)return;let n=this._extHostNotebook.getNotebookDocument(eD.URI.revive(t));if(r.controller.interruptHandler)await r.controller.interruptHandler.call(r.controller,n.apiNotebook);else for(let e of i){let t=n.getCell(e);t&&this._activeExecutions.get(t.uri)?.cancel()}if(r.controller.interruptHandler){let e=this._activeNotebookExecutions.get(n.uri);this._activeNotebookExecutions.delete(n.uri),i.length&&Array.isArray(e)&&e.length&&e.forEach(e=>e.dispose())}}async $provideVariables(e,t,i,r,n,o,s){let a,l=this._kernelData.get(e);if(!l)return;let c=this._extHostNotebook.getNotebookDocument(eD.URI.revive(i)),d=l.controller.variableProvider;if(!d)return;if(void 0!==r){if(!(a=this.variableStore[r]))return}else this.variableStore={};let u="named"===n?eh.NotebookVariablesRequestKind.Named:eh.NotebookVariablesRequestKind.Indexed,h=d.provideVariables(c.apiNotebook,a,u,o,s),g=0;for await(let e of h){if(s.isCancellationRequested)return;let i={id:this.id++,name:e.variable.name,value:e.variable.value,type:e.variable.type,interfaces:e.variable.interfaces,language:e.variable.language,expression:e.variable.expression,hasNamedChildren:e.hasNamedChildren,indexedChildrenCount:e.indexedChildrenCount,extensionId:l.extensionId.value};if(this.variableStore[i.id]=e.variable,this._proxy.$receiveVariable(t,i),g++>=100)return}}$acceptKernelMessageFromRenderer(e,t,i){let r=this._kernelData.get(e);if(!r)return;let n=this._extHostNotebook.getEditorById(t);r.onDidReceiveMessage.fire(Object.freeze({editor:n.apiEditor,message:i}))}_createNotebookCellExecution(e,t){if(e.index<0)throw Error("CANNOT execute cell that has been REMOVED from notebook");let i=this._extHostNotebook.getNotebookDocument(e.notebook.uri).getCellFromApiCell(e);if(!i)throw Error("invalid cell");if(this._activeExecutions.has(i.uri))throw Error(`duplicate execution for ${i.uri}`);let r=new lm(t,i,this._proxy);this._activeExecutions.set(i.uri,r);let n=r.onDidChangeState(()=>{r.state===ec.Resolved&&(r.dispose(),n.dispose(),this._activeExecutions.delete(i.uri))});return r.asApiObject()}_createNotebookExecution(e,t){let i=this._extHostNotebook.getNotebookDocument(e.uri),r=e.getCells().find(e=>{let t=i.getCellFromApiCell(e);return t&&this._activeExecutions.has(t.uri)});if(r)throw Error(`duplicate cell execution for ${r.document.uri}`);if(this._activeNotebookExecutions.has(i.uri))throw Error(`duplicate notebook execution for ${i.uri}`);let n=new lf(t,i,this._proxy),o=n.onDidChangeState(()=>{n.state===ed.Resolved&&(n.dispose(),o.dispose(),this._activeNotebookExecutions.delete(i.uri))});return this._activeNotebookExecutions.set(i.uri,[n,o]),n.asApiObject()}};lp=(0,ek.__decorate)([(0,ek.__param)(4,eM.ILogService)],lp),(E=ec||(ec={}))[E.Init=0]="Init",E[E.Started=1]="Started",E[E.Resolved=2]="Resolved";class lm extends lh.Disposable{static{this.HANDLE=0}get state(){return this._state}constructor(e,t,i){super(),this._cell=t,this._proxy=i,this._handle=lm.HANDLE++,this._onDidChangeState=new ey.Emitter,this.onDidChangeState=this._onDidChangeState.event,this._state=ec.Init,this._tokenSource=this._register(new ef.CancellationTokenSource),this._collector=new lv(10,e=>this.update(e)),this._executionOrder=t.internalMetadata.executionOrder,this._proxy.$createExecution(this._handle,e,this._cell.notebook.uri,this._cell.handle)}cancel(){this._tokenSource.cancel()}async updateSoon(e){await this._collector.addItem(e)}async update(e){let t=Array.isArray(e)?e:[e];return this._proxy.$updateExecution(this._handle,new tW.SerializableObjectWithBuffers(t))}verifyStateForOutput(){if(this._state===ec.Init)throw Error("Must call start before modifying cell output");if(this._state===ec.Resolved)throw Error("Cannot modify cell output after calling resolve")}cellIndexToHandle(e){let t=this._cell;if(e&&(t=this._cell.notebook.getCellFromApiCell(e)),!t)throw Error("INVALID cell");return t.handle}validateAndConvertOutputs(e){return e.map(e=>{let t=t0.NotebookCellOutput.ensureUniqueMimeTypes(e.items,!0);return t===e.items?e6.NotebookCellOutput.from(e):e6.NotebookCellOutput.from({items:t,id:e.id,metadata:e.metadata})})}async updateOutputs(e,t,i){let r=this.cellIndexToHandle(t),n=this.validateAndConvertOutputs((0,eY.asArray)(e));return this.updateSoon({editType:lg.CellExecutionUpdateType.Output,cellHandle:r,append:i,outputs:n})}async updateOutputItems(e,t,i){return e=t0.NotebookCellOutput.ensureUniqueMimeTypes((0,eY.asArray)(e),!0),this.updateSoon({editType:lg.CellExecutionUpdateType.OutputItems,items:e.map(e6.NotebookCellOutputItem.from),outputId:t.id,append:i})}asApiObject(){let e=this;return Object.freeze({get token(){return e._tokenSource.token},get cell(){return e._cell.apiCell},get executionOrder(){return e._executionOrder},set executionOrder(v){e._executionOrder=v,e.update([{editType:lg.CellExecutionUpdateType.ExecutionState,executionOrder:e._executionOrder}])},start(t){if(e._state===ec.Resolved||e._state===ec.Started)throw Error("Cannot call start again");e._state=ec.Started,e._onDidChangeState.fire(),e.update({editType:lg.CellExecutionUpdateType.ExecutionState,runStartTime:t})},end(t,i,r){var n;let o;if(e._state===ec.Resolved)throw Error("Cannot call resolve twice");e._state=ec.Resolved,e._onDidChangeState.fire(),e._collector.flush();let s=(n=r)?{name:n.name,message:n.message,stack:n.stack instanceof Array?n.stack.map(e=>({uri:e.uri,position:e.position,label:e.label})):n.stack,location:(o=n.location)?{startLineNumber:o.start.line,startColumn:o.start.character,endLineNumber:o.end.line,endColumn:o.end.character}:void 0,uri:n.uri}:void 0;e._proxy.$completeExecution(e._handle,new tW.SerializableObjectWithBuffers({runEndTime:i,lastRunSuccess:t,error:s}))},clearOutput:t=>(e.verifyStateForOutput(),e.updateOutputs([],t,!1)),appendOutput:(t,i)=>(e.verifyStateForOutput(),e.updateOutputs(t,i,!0)),replaceOutput:(t,i)=>(e.verifyStateForOutput(),e.updateOutputs(t,i,!1)),appendOutputItems:(t,i)=>(e.verifyStateForOutput(),e.updateOutputItems(t,i,!0)),replaceOutputItems:(t,i)=>(e.verifyStateForOutput(),e.updateOutputItems(t,i,!1))})}}(k=ed||(ed={}))[k.Init=0]="Init",k[k.Started=1]="Started",k[k.Resolved=2]="Resolved";class lf extends lh.Disposable{static{this.HANDLE=0}get state(){return this._state}constructor(e,t,i){super(),this._notebook=t,this._proxy=i,this._handle=lf.HANDLE++,this._onDidChangeState=new ey.Emitter,this.onDidChangeState=this._onDidChangeState.event,this._state=ed.Init,this._tokenSource=this._register(new ef.CancellationTokenSource),this._proxy.$createNotebookExecution(this._handle,e,this._notebook.uri)}cancel(){this._tokenSource.cancel()}asApiObject(){return Object.freeze({start:()=>{if(this._state===ed.Resolved||this._state===ed.Started)throw Error("Cannot call start again");this._state=ed.Started,this._onDidChangeState.fire(),this._proxy.$beginNotebookExecution(this._handle)},end:()=>{if(this._state===ed.Resolved)throw Error("Cannot call resolve twice");this._state=ed.Resolved,this._onDidChangeState.fire(),this._proxy.$completeNotebookExecution(this._handle)}})}}class lv{constructor(e,t){this.delay=e,this.callback=t,this.batch=[],this.startedTimer=Date.now()}addItem(e){return(this.batch.push(e),this.currentDeferred||(this.currentDeferred=new eU.DeferredPromise,this.startedTimer=Date.now(),(0,eU.timeout)(this.delay).then(()=>this.flush())),Date.now()-this.startedTimer>this.delay)?this.flush():this.currentDeferred.p}flush(){if(0===this.batch.length||!this.currentDeferred)return Promise.resolve();let e=this.currentDeferred;this.currentDeferred=void 0;let t=this.batch;return this.batch=[],this.callback(t).finally(()=>e.complete())}}function l_(e,t){return`${e.value}/${t}`}class ly{constructor(e,t){this._extHostNotebook=t,this._rendererMessageEmitters=new Map,this.proxy=e.getProxy(ev.MainContext.MainThreadNotebookRenderers)}$postRendererMessage(e,t,i){let r=this._extHostNotebook.getEditorById(e);this._rendererMessageEmitters.get(t)?.fire({editor:r.apiEditor,message:i})}createRendererMessaging(e,t){if(!e.contributes?.notebookRenderer?.some(e=>e.id===t))throw Error(`Extensions may only call createRendererMessaging() for renderers they contribute (got ${t})`);return{onDidReceiveMessage:(e,i,r)=>this.getOrCreateEmitterFor(t).event(e,i,r),postMessage:(e,i)=>{le.apiEditorsToExtHost.has(e)&&([e,i]=[i,e]);let r=i&&le.apiEditorsToExtHost.get(i);return this.proxy.$postMessage(r?.id,t,e)}}}getOrCreateEmitterFor(e){let t=this._rendererMessageEmitters.get(e);return t||(t=new ey.Emitter({onDidRemoveLastListener:()=>{t?.dispose(),this._rendererMessageEmitters.delete(e)}}),this._rendererMessageEmitters.set(e,t)),t}}class lC{constructor(e){this.handlers=new Map,this.proxy=e.getProxy(ev.MainContext.MainThreadProfileContentHandlers)}registerProfileContentHandler(e,t,i){if((0,tp.checkProposedApiEnabled)(e,"profileContentHandlers"),this.handlers.has(t))throw Error(`Handler with id '${t}' already registered`);return this.handlers.set(t,i),this.proxy.$registerProfileContentHandler(t,i.name,i.description,e.identifier.value),(0,eH.toDisposable)(()=>{this.handlers.delete(t),this.proxy.$unregisterProfileContentHandler(t)})}async $saveProfile(e,t,i,r){let n=this.handlers.get(e);if(!n)throw Error(`Unknown handler with id: ${e}`);return n.saveProfile(t,i,r)}async $readProfile(e,t,i){let r=this.handlers.get(e);if(!r)throw Error(`Unknown handler with id: ${e}`);return r.readProfile((0,eK.isString)(t)?t:eD.URI.revive(t),i)}}class lS{static{this.handlePool=0}constructor(e,t){this.uriTransformer=t,this.providers=new Map,this.proxy=e.getProxy(ev.MainContext.MainThreadQuickDiff)}$provideOriginalResource(e,t,i){let r=eD.URI.revive(t),n=this.providers.get(e);return n?(0,eU.asPromise)(()=>n.provideOriginalResource(r,i)).then(e=>e||null):Promise.resolve(null)}registerQuickDiffProvider(e,t,i,r,n,o){let s=lS.handlePool++;this.providers.set(s,i);let a=eI.ExtensionIdentifier.toKey(e.identifier);return this.proxy.$registerQuickDiffProvider(s,e6.DocumentSelector.from(t,this.uriTransformer),`${a}.${r}`,n,o),{dispose:()=>{this.proxy.$unregisterQuickDiffProvider(s),this.providers.delete(s)}}}}var lb=e.i(97514),lw=e.i(295443);function lx(e){return e instanceof eD.URI}function lD(e){if(e)return"string"==typeof e.iconPath?eD.URI.file(e.iconPath):eD.URI.isUri(e.iconPath)?e.iconPath:iC.ThemeIcon.isThemeIcon(e.iconPath)?e.iconPath:void 0}function lE(e){return e?eD.URI.isUri(e)||iC.ThemeIcon.isThemeIcon(e)?e:{light:e.light,dark:e.dark}:void 0}function lk(e){let t=lE(e.authorIcon),i=Array.isArray(e.tooltip)?e6.MarkdownString.fromMany(e.tooltip):e.tooltip?e6.MarkdownString.from(e.tooltip):void 0,r=e.references?.map(e=>({...e,icon:lE(e.icon)}));return{...e,authorIcon:t,references:r,tooltip:i}}function lT(e){return e?{...e,icon:lE(e.icon)}:void 0}function lR(e,t){if(!e.iconPath&&!t.iconPath)return 0;if(!e.iconPath)return -1;if(!t.iconPath)return 1;let i="string"==typeof e.iconPath?e.iconPath:eD.URI.isUri(e.iconPath)?e.iconPath.fsPath:e.iconPath.id,r="string"==typeof t.iconPath?t.iconPath:eD.URI.isUri(t.iconPath)?t.iconPath.fsPath:t.iconPath.id;return(0,lb.comparePaths)(i,r)}function lP(e,t){let i=(0,lb.comparePaths)(e.resourceUri.fsPath,t.resourceUri.fsPath,!0);if(0!==i)return i;if(e.command&&t.command)i=function(e,t){if(e.command!==t.command)return e.command<t.command?-1:1;if(e.title!==t.title)return e.title<t.title?-1:1;if(e.tooltip!==t.tooltip){if(void 0!==e.tooltip&&void 0!==t.tooltip)return e.tooltip<t.tooltip?-1:1;else if(void 0!==e.tooltip)return 1;else if(void 0!==t.tooltip)return -1}if(e.arguments===t.arguments)return 0;if(!e.arguments)return -1;if(!t.arguments)return 1;if(e.arguments.length!==t.arguments.length)return e.arguments.length-t.arguments.length;for(let i=0;i<e.arguments.length;i++){let r=e.arguments[i],n=t.arguments[i];if(r!==n&&!(lx(r)&&lx(n)&&(r.scheme===eO.Schemas.file&&n.scheme===eO.Schemas.file&&ib.isLinux?r.toString()===n.toString():r.toString().toLowerCase()===n.toString().toLowerCase())))return r<n?-1:1}return 0}(e.command,t.command);else if(e.command)return 1;else if(t.command)return -1;if(0!==i)return i;if(e.decorations&&t.decorations)i=function(e,t){let i=0;if(e.strikeThrough!==t.strikeThrough)return e.strikeThrough?1:-1;if(e.faded!==t.faded)return e.faded?1:-1;if(e.tooltip!==t.tooltip)return(e.tooltip||"").localeCompare(t.tooltip||"");if(0!==(i=lR(e,t)))return i;if(e.light&&t.light)i=lR(e.light,t.light);else if(e.light)return 1;else if(t.light)return -1;if(0!==i)return i;if(e.dark&&t.dark)i=lR(e.dark,t.dark);else if(e.dark)return 1;else if(t.dark)return -1;return i}(e.decorations,t.decorations);else if(e.decorations)return 1;else if(t.decorations)return -1;if(0!==i)return i;if(e.multiFileDiffEditorModifiedUri&&t.multiFileDiffEditorModifiedUri)i=(0,lb.comparePaths)(e.multiFileDiffEditorModifiedUri.fsPath,t.multiFileDiffEditorModifiedUri.fsPath,!0);else if(e.multiFileDiffEditorModifiedUri)return 1;else if(t.multiFileDiffEditorModifiedUri)return -1;if(0!==i)return i;if(e.multiDiffEditorOriginalUri&&t.multiDiffEditorOriginalUri)i=(0,lb.comparePaths)(e.multiDiffEditorOriginalUri.fsPath,t.multiDiffEditorOriginalUri.fsPath,!0);else if(e.multiDiffEditorOriginalUri)return 1;else if(t.multiDiffEditorOriginalUri)return -1;return i}function lI(e,t){return e.command===t.command&&e.title===t.title&&e.tooltip===t.tooltip&&(e.arguments&&t.arguments?function(e,t){for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}(e.arguments,t.arguments):e.arguments===t.arguments)}class lA{#e;#E;get value(){return this._value}set value(e){e=e??"",this.#e.$setInputBoxValue(this._sourceControlHandle,e),this.updateValue(e)}get onDidChange(){return this._onDidChange.event}get placeholder(){return this._placeholder}set placeholder(e){this.#e.$setInputBoxPlaceholder(this._sourceControlHandle,e),this._placeholder=e}get validateInput(){return(0,tp.checkProposedApiEnabled)(this._extension,"scmValidation"),this._validateInput}set validateInput(e){if((0,tp.checkProposedApiEnabled)(this._extension,"scmValidation"),e&&"function"!=typeof e)throw Error(`[${this._extension.identifier.value}]: Invalid SCM input box validation function`);this._validateInput=e,this.#e.$setValidationProviderIsEnabled(this._sourceControlHandle,!!e)}get enabled(){return this._enabled}set enabled(e){e=!!e,this._enabled!==e&&(this._enabled=e,this.#e.$setInputBoxEnablement(this._sourceControlHandle,e))}get visible(){return this._visible}set visible(e){e=!!e,this._visible!==e&&(this._visible=e,this.#e.$setInputBoxVisibility(this._sourceControlHandle,e))}get document(){return(0,tp.checkProposedApiEnabled)(this._extension,"scmTextDocument"),this.#E.getDocument(this._documentUri)}constructor(e,t,i,r,n){this._extension=e,this._sourceControlHandle=r,this._documentUri=n,this._value="",this._onDidChange=new ey.Emitter,this._placeholder="",this._enabled=!0,this._visible=!0,this.#E=t,this.#e=i}showValidationMessage(e,t){(0,tp.checkProposedApiEnabled)(this._extension,"scmValidation"),this.#e.$showValidationMessage(this._sourceControlHandle,e,e6.SourceControlInputBoxValidationType.from(t))}$onInputBoxValueChange(e){this.updateValue(e)}updateValue(e){this._value=e,this._onDidChange.fire(e)}}class lM{static{this._handlePool=0}get disposed(){return this._disposed}get id(){return this._id}get label(){return this._label}set label(e){this._label=e,this._proxy.$updateGroupLabel(this._sourceControlHandle,this.handle,e)}get contextValue(){return this._contextValue}set contextValue(e){this._contextValue=e,this._proxy.$updateGroup(this._sourceControlHandle,this.handle,this.features)}get hideWhenEmpty(){return this._hideWhenEmpty}set hideWhenEmpty(e){this._hideWhenEmpty=e,this._proxy.$updateGroup(this._sourceControlHandle,this.handle,this.features)}get features(){return{contextValue:this.contextValue,hideWhenEmpty:this.hideWhenEmpty}}get resourceStates(){return[...this._resourceStates]}set resourceStates(e){this._resourceStates=[...e],this._onDidUpdateResourceStates.fire()}constructor(e,t,i,r,n,o,s){this._proxy=e,this._commands=t,this._sourceControlHandle=i,this._id=r,this._label=n,this.multiDiffEditorEnableViewChanges=o,this._extension=s,this._resourceHandlePool=0,this._resourceStates=[],this._resourceStatesMap=new Map,this._resourceStatesCommandsMap=new Map,this._resourceStatesDisposablesMap=new Map,this._onDidUpdateResourceStates=new ey.Emitter,this.onDidUpdateResourceStates=this._onDidUpdateResourceStates.event,this._disposed=!1,this._onDidDispose=new ey.Emitter,this.onDidDispose=this._onDidDispose.event,this._handlesSnapshot=[],this._resourceSnapshot=[],this._contextValue=void 0,this._hideWhenEmpty=void 0,this.handle=lM._handlePool++}getResourceState(e){return this._resourceStatesMap.get(e)}$executeResourceCommand(e,t){let i=this._resourceStatesCommandsMap.get(e);return i?(0,eU.asPromise)(()=>this._commands.executeCommand(i.command,...i.arguments||[],t)):Promise.resolve(void 0)}_takeResourceStateSnapshot(){let e=[...this._resourceStates].sort(lP),t=(0,eY.sortedDiff)(this._resourceSnapshot,e,lP).map(e=>{let t=e.toInsert.map(e=>{let t,i=this._resourceHandlePool++;this._resourceStatesMap.set(i,e);let r=e.resourceUri;if(e.command)if("vscode.open"===e.command.command||"vscode.diff"===e.command.command||"vscode.changes"===e.command.command){let r=new eH.DisposableStore;t=this._commands.converter.toInternal(e.command,r),this._resourceStatesDisposablesMap.set(i,r)}else this._resourceStatesCommandsMap.set(i,e.command);let n=(0,tp.isProposedApiEnabled)(this._extension,"scmMultiDiffEditor"),o=n?e.multiDiffEditorOriginalUri:void 0,s=n?e.multiFileDiffEditorModifiedUri:void 0,a=lD(e.decorations);return{rawResource:[i,r,[e.decorations&&lD(e.decorations.light)||a,e.decorations&&lD(e.decorations.dark)||a],e.decorations&&e.decorations.tooltip||"",e.decorations&&!!e.decorations.strikeThrough,e.decorations&&!!e.decorations.faded,e.contextValue||"",t,o,s],handle:i}});return{start:e.start,deleteCount:e.deleteCount,toInsert:t}}),i=t.map(({start:e,deleteCount:t,toInsert:i})=>[e,t,i.map(e=>e.rawResource)]);for(let{start:e,deleteCount:i,toInsert:r}of t.reverse()){let t=r.map(e=>e.handle);for(let r of this._handlesSnapshot.splice(e,i,...t))this._resourceStatesMap.delete(r),this._resourceStatesCommandsMap.delete(r),this._resourceStatesDisposablesMap.get(r)?.dispose(),this._resourceStatesDisposablesMap.delete(r)}return this._resourceSnapshot=e,i}dispose(){this._disposed=!0,this._onDidDispose.fire()}}class lL{static{this._handlePool=0}#e;get id(){return this._id}get label(){return this._label}get rootUri(){return this._rootUri}get contextValue(){return(0,tp.checkProposedApiEnabled)(this._extension,"scmProviderOptions"),this._contextValue}set contextValue(e){(0,tp.checkProposedApiEnabled)(this._extension,"scmProviderOptions"),this._contextValue!==e&&(this._contextValue=e,this.#e.$updateSourceControl(this.handle,{contextValue:e}))}get inputBox(){return this._inputBox}get count(){return this._count}set count(e){this._count!==e&&(this._count=e,this.#e.$updateSourceControl(this.handle,{count:e}))}get quickDiffProvider(){return this._quickDiffProvider}set quickDiffProvider(e){let t;this._quickDiffProvider=e,(0,tp.isProposedApiEnabled)(this._extension,"quickDiffProvider")&&(t=e?.label),this.#e.$updateSourceControl(this.handle,{hasQuickDiffProvider:!!e,quickDiffLabel:t})}get secondaryQuickDiffProvider(){return(0,tp.checkProposedApiEnabled)(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider}set secondaryQuickDiffProvider(e){(0,tp.checkProposedApiEnabled)(this._extension,"quickDiffProvider"),this._secondaryQuickDiffProvider=e;let t=e?.label;this.#e.$updateSourceControl(this.handle,{hasSecondaryQuickDiffProvider:!!e,secondaryQuickDiffLabel:t})}get historyProvider(){return(0,tp.checkProposedApiEnabled)(this._extension,"scmHistoryProvider"),this._historyProvider}set historyProvider(e){(0,tp.checkProposedApiEnabled)(this._extension,"scmHistoryProvider"),this._historyProvider=e,this._historyProviderDisposable.value=new eH.DisposableStore,this.#e.$updateSourceControl(this.handle,{hasHistoryProvider:!!e}),e&&(this._historyProviderDisposable.value.add(e.onDidChangeCurrentHistoryItemRefs(()=>{let t=lT(e?.currentHistoryItemRef),i=lT(e?.currentHistoryItemRemoteRef),r=lT(e?.currentHistoryItemBaseRef);this.#e.$onDidChangeHistoryProviderCurrentHistoryItemRefs(this.handle,t,i,r)})),this._historyProviderDisposable.value.add(e.onDidChangeHistoryItemRefs(e=>{if(0===e.added.length&&0===e.modified.length&&0===e.removed.length)return;let t=e.added.map(e=>({...e,icon:lE(e.icon)})),i=e.modified.map(e=>({...e,icon:lE(e.icon)})),r=e.removed.map(e=>({...e,icon:lE(e.icon)}));this.#e.$onDidChangeHistoryProviderHistoryItemRefs(this.handle,{added:t,modified:i,removed:r,silent:e.silent})})))}get artifactProvider(){return(0,tp.checkProposedApiEnabled)(this._extension,"scmArtifactProvider"),this._artifactProvider}set artifactProvider(e){(0,tp.checkProposedApiEnabled)(this._extension,"scmArtifactProvider"),this._artifactProvider=e,this._artifactProviderDisposable.value=new eH.DisposableStore,this.#e.$updateSourceControl(this.handle,{hasArtifactProvider:!!e}),e&&this._artifactProviderDisposable.value.add(e.onDidChangeArtifacts(e=>{0!==e.length&&this.#e.$onDidChangeArtifacts(this.handle,e)}))}get commitTemplate(){return this._commitTemplate}set commitTemplate(e){e!==this._commitTemplate&&(this._commitTemplate=e,this.#e.$updateSourceControl(this.handle,{commitTemplate:e}))}get acceptInputCommand(){return this._acceptInputCommand}set acceptInputCommand(e){this._acceptInputDisposables.value=new eH.DisposableStore,this._acceptInputCommand=e;let t=this._commands.converter.toInternal(e,this._acceptInputDisposables.value);this.#e.$updateSourceControl(this.handle,{acceptInputCommand:t})}get actionButton(){return(0,tp.checkProposedApiEnabled)(this._extension,"scmActionButton"),this._actionButton}set actionButton(e){if((0,tp.checkProposedApiEnabled)(this._extension,"scmActionButton"),(0,lw.structuralEquals)(this._actionButton,e))return;let t=this._actionButtonDisposables;this._actionButtonDisposables=new eH.DisposableStore,this._actionButton=e;let i=void 0!==e?{command:{...this._commands.converter.toInternal(e.command,this._actionButtonDisposables),shortTitle:e.command.shortTitle},secondaryCommands:e.secondaryCommands?.map(e=>e.map(e=>this._commands.converter.toInternal(e,this._actionButtonDisposables))),enabled:e.enabled}:null;this.#e.$updateSourceControl(this.handle,{actionButton:i}).finally(()=>t.dispose())}get statusBarCommands(){return this._statusBarCommands}set statusBarCommands(e){var t;if(this._statusBarCommands&&e&&(t=this._statusBarCommands,(0,eY.equals)(t,e,lI)))return;let i=this._statusBarDisposables;this._statusBarDisposables=new eH.DisposableStore,this._statusBarCommands=e;let r=(e||[]).map(e=>this._commands.converter.toInternal(e,this._statusBarDisposables));this.#e.$updateSourceControl(this.handle,{statusBarCommands:r}).finally(()=>i.dispose())}get selected(){return this._selected}constructor(e,t,i,r,n,o,s,a,l,c){this._extension=e,this._commands=r,this._id=n,this._label=o,this._rootUri=s,this._onDidDispose=new ey.Emitter,this.onDidDispose=this._onDidDispose.event,this._groups=new Map,this._contextValue=void 0,this._count=void 0,this._quickDiffProvider=void 0,this._secondaryQuickDiffProvider=void 0,this._historyProviderDisposable=new eH.MutableDisposable,this._artifactProviderDisposable=new eH.MutableDisposable,this._commitTemplate=void 0,this._acceptInputDisposables=new eH.MutableDisposable,this._acceptInputCommand=void 0,this._actionButtonDisposables=new eH.DisposableStore,this._statusBarDisposables=new eH.DisposableStore,this._statusBarCommands=void 0,this._selected=!1,this._onDidChangeSelection=new ey.Emitter,this.onDidChangeSelection=this._onDidChangeSelection.event,this._artifactCommandsDisposables=new eH.DisposableMap,this.handle=lL._handlePool++,this.createdResourceGroups=new Map,this.updatedResourceGroups=new Set,this.#e=i;const d=eD.URI.from({scheme:eO.Schemas.vscodeSourceControl,path:`${n}/scm${this.handle}/input`,query:s?`rootUri=${encodeURIComponent(s.toString())}`:void 0});this._inputBox=new lA(e,t,this.#e,this.handle,d),this.#e.$registerSourceControl(this.handle,c?.handle,n,o,s,lE(a),l,d),this.onDidDisposeParent=c?c.onDidDispose:ey.Event.None}createResourceGroup(e,t,i){let r=(0,tp.isProposedApiEnabled)(this._extension,"scmMultiDiffEditor")&&i?.multiDiffEditorEnableViewChanges===!0,n=new lM(this.#e,this._commands,this.handle,e,t,r,this._extension),o=ey.Event.once(n.onDidDispose)(()=>this.createdResourceGroups.delete(n));return this.createdResourceGroups.set(n,o),this.eventuallyAddResourceGroups(),n}eventuallyAddResourceGroups(){let e=[],t=[];for(let[i,r]of this.createdResourceGroups){r.dispose();let n=i.onDidUpdateResourceStates(()=>{this.updatedResourceGroups.add(i),this.eventuallyUpdateResourceStates()});ey.Event.once(i.onDidDispose)(()=>{this.updatedResourceGroups.delete(i),n.dispose(),this._groups.delete(i.handle),this.#e.$unregisterGroup(this.handle,i.handle)}),e.push([i.handle,i.id,i.label,i.features,i.multiDiffEditorEnableViewChanges]);let o=i._takeResourceStateSnapshot();o.length>0&&t.push([i.handle,o]),this._groups.set(i.handle,i)}this.#e.$registerGroups(this.handle,e,t),this.createdResourceGroups.clear()}eventuallyUpdateResourceStates(){let e=[];this.updatedResourceGroups.forEach(t=>{let i=t._takeResourceStateSnapshot();0!==i.length&&e.push([t.handle,i])}),e.length>0&&this.#e.$spliceResourceStates(this.handle,e),this.updatedResourceGroups.clear()}getResourceGroup(e){return this._groups.get(e)}setSelectionState(e){this._selected=e,this._onDidChangeSelection.fire(e)}async provideArtifacts(e,t){let i=new eH.DisposableStore,r=await this.artifactProvider?.provideArtifacts(e,t),n=r?.map(e=>({...e,icon:lE(e.icon),command:e.command?this._commands.converter.toInternal(e.command,i):void 0}));return this._artifactCommandsDisposables.get(e)?.dispose(),this._artifactCommandsDisposables.set(e,i),n}dispose(){this._acceptInputDisposables.dispose(),this._actionButtonDisposables.dispose(),this._statusBarDisposables.dispose(),this._historyProviderDisposable.dispose(),this._artifactProviderDisposable.dispose(),this._artifactCommandsDisposables.dispose(),this._groups.forEach(e=>e.dispose()),this.#e.$unregisterSourceControl(this.handle),this._onDidDispose.fire(),this._onDidDispose.dispose()}}lL.__decorator=(0,ek.__decorate)([(0,rf.debounce)(100)],lL.prototype,"eventuallyAddResourceGroups",null),lL.__decorator=(0,ek.__decorate)([(0,rf.debounce)(100)],lL.prototype,"eventuallyUpdateResourceStates",null);let lF=class{get onDidChangeActiveProvider(){return this._onDidChangeActiveProvider.event}constructor(e,t,i,r){this._commands=t,this._extHostDocuments=i,this.logService=r,this._sourceControls=new Map,this._sourceControlsByExtension=new eI.ExtensionIdentifierMap,this._onDidChangeActiveProvider=new ey.Emitter,this._proxy=e.getProxy(ev.MainContext.MainThreadSCM),this._telemetry=e.getProxy(ev.MainContext.MainThreadTelemetry),t.registerArgumentProcessor({processArgument:e=>{if(e&&e.$mid===iS.MarshalledId.ScmResource){let t=this._sourceControls.get(e.sourceControlHandle);if(!t)return e;let i=t.getResourceGroup(e.groupHandle);return i?i.getResourceState(e.handle):e}if(e&&e.$mid===iS.MarshalledId.ScmResourceGroup){let t=this._sourceControls.get(e.sourceControlHandle);return t?t.getResourceGroup(e.groupHandle):e}if(e&&e.$mid===iS.MarshalledId.ScmProvider){let t=this._sourceControls.get(e.handle);return t||e}return e}})}createSourceControl(e,t,i,r,n,o,s){this.logService.trace("ExtHostSCM#createSourceControl",e.identifier.value,t,i,r),this._telemetry.$publicLog2("api/scm/createSourceControl",{extensionId:e.identifier.value});let a=s?id.Iterable.find(this._sourceControls.values(),e=>e===s):void 0,l=new lL(e,this._extHostDocuments,this._proxy,this._commands,t,i,r,n,o,a);this._sourceControls.set(l.handle,l);let c=this._sourceControlsByExtension.get(e.identifier)||[];return c.push(l),this._sourceControlsByExtension.set(e.identifier,c),l}getLastInputBox(e){this.logService.trace("ExtHostSCM#getLastInputBox",e.identifier.value);let t=this._sourceControlsByExtension.get(e.identifier),i=t&&t[t.length-1];return i&&i.inputBox}$provideOriginalResource(e,t,i){let r=eD.URI.revive(t);this.logService.trace("ExtHostSCM#$provideOriginalResource",e,r.toString());let n=this._sourceControls.get(e);return n&&n.quickDiffProvider&&n.quickDiffProvider.provideOriginalResource?(0,eU.asPromise)(()=>n.quickDiffProvider.provideOriginalResource(r,i)).then(e=>e||null):Promise.resolve(null)}$provideSecondaryOriginalResource(e,t,i){let r=eD.URI.revive(t);this.logService.trace("ExtHostSCM#$provideSecondaryOriginalResource",e,r.toString());let n=this._sourceControls.get(e);return n&&n.secondaryQuickDiffProvider&&n.secondaryQuickDiffProvider.provideOriginalResource?(0,eU.asPromise)(()=>n.secondaryQuickDiffProvider.provideOriginalResource(r,i)).then(e=>e||null):Promise.resolve(null)}$onInputBoxValueChange(e,t){this.logService.trace("ExtHostSCM#$onInputBoxValueChange",e);let i=this._sourceControls.get(e);return i&&i.inputBox.$onInputBoxValueChange(t),Promise.resolve(void 0)}$executeResourceCommand(e,t,i,r){this.logService.trace("ExtHostSCM#$executeResourceCommand",e,t,i);let n=this._sourceControls.get(e);if(!n)return Promise.resolve(void 0);let o=n.getResourceGroup(t);return o?o.$executeResourceCommand(i,r):Promise.resolve(void 0)}$validateInput(e,t,i){this.logService.trace("ExtHostSCM#$validateInput",e);let r=this._sourceControls.get(e);return r&&r.inputBox.validateInput?(0,eU.asPromise)(()=>r.inputBox.validateInput(t,i)).then(e=>{if(!e)return Promise.resolve(void 0);let t=e6.MarkdownString.fromStrict(e.message);return t?Promise.resolve([t,e.type]):Promise.resolve(void 0)}):Promise.resolve(void 0)}$setSelectedSourceControl(e){return this.logService.trace("ExtHostSCM#$setSelectedSourceControl",e),this._selectedSourceControlHandle===e||(void 0!==e&&this._sourceControls.get(e)?.setSelectionState(!0),void 0!==this._selectedSourceControlHandle&&this._sourceControls.get(this._selectedSourceControlHandle)?.setSelectionState(!1),this._selectedSourceControlHandle=e),Promise.resolve(void 0)}async $resolveHistoryItem(e,t,i){try{let r=this._sourceControls.get(e)?.historyProvider,n=await r?.resolveHistoryItem(t,i);return n?lk(n):void 0}catch(e){this.logService.error("ExtHostSCM#$resolveHistoryItem",e);return}}async $resolveHistoryItemChatContext(e,t,i){try{let r=this._sourceControls.get(e)?.historyProvider;return await r?.resolveHistoryItemChatContext(t,i)??void 0}catch(e){this.logService.error("ExtHostSCM#$resolveHistoryItemChatContext",e);return}}async $resolveHistoryItemChangeRangeChatContext(e,t,i,r,n){try{let o=this._sourceControls.get(e)?.historyProvider;return await o?.resolveHistoryItemChangeRangeChatContext?.(t,i,r,n)??void 0}catch(e){this.logService.error("ExtHostSCM#$resolveHistoryItemChangeRangeChatContext",e);return}}async $resolveHistoryItemRefsCommonAncestor(e,t,i){try{let r=this._sourceControls.get(e)?.historyProvider;return await r?.resolveHistoryItemRefsCommonAncestor(t,i)??void 0}catch(e){this.logService.error("ExtHostSCM#$resolveHistoryItemRefsCommonAncestor",e);return}}async $provideHistoryItemRefs(e,t,i){try{let r=this._sourceControls.get(e)?.historyProvider,n=await r?.provideHistoryItemRefs(t,i);return n?.map(e=>({...e,icon:lE(e.icon)}))??void 0}catch(e){this.logService.error("ExtHostSCM#$provideHistoryItemRefs",e);return}}async $provideHistoryItems(e,t,i){try{let r=this._sourceControls.get(e)?.historyProvider,n=await r?.provideHistoryItems(t,i);return n?.map(e=>lk(e))??void 0}catch(e){this.logService.error("ExtHostSCM#$provideHistoryItems",e);return}}async $provideHistoryItemChanges(e,t,i,r){try{let n=this._sourceControls.get(e)?.historyProvider;return await n?.provideHistoryItemChanges(t,i,r)??void 0}catch(e){this.logService.error("ExtHostSCM#$provideHistoryItemChanges",e);return}}async $provideArtifactGroups(e,t){try{let i=this._sourceControls.get(e)?.artifactProvider,r=await i?.provideArtifactGroups(t);return r?.map(e=>({...e,icon:lE(e.icon)}))}catch(e){this.logService.error("ExtHostSCM#$provideArtifactGroups",e);return}}async $provideArtifacts(e,t,i){try{let r=this._sourceControls.get(e);return r?.provideArtifacts(t,i)}catch(e){this.logService.error("ExtHostSCM#$provideArtifacts",e);return}}};lF=(0,ek.__decorate)([(0,ek.__param)(3,eM.ILogService)],lF);class lO{static{this.handlePool=0}constructor(e,t){this.uriTransformer=t,this.providers=new Map,this.proxy=e.getProxy(ev.MainContext.MainThreadShare)}async $provideShare(e,t,i){let r=this.providers.get(e);return await r?.provideShare({selection:e6.Range.to(t.selection),resourceUri:eD.URI.revive(t.resourceUri)},i)??void 0}registerShareProvider(e,t){let i=lO.handlePool++;return this.providers.set(i,t),this.proxy.$registerShareProvider(i,e6.DocumentSelector.from(e,this.uriTransformer),t.id,t.label,t.priority),{dispose:()=>{this.proxy.$unregisterShareProvider(i),this.providers.delete(i)}}}}class lN{static{this.ID_POOL=1}constructor(e){this.providers=new Map,this.sessions=new Map,this.synthesizers=new Map,this.proxy=e.getProxy(ev.MainContext.MainThreadSpeech)}async $createSpeechToTextSession(e,t,i){let r=this.providers.get(e);if(!r)return;let n=new eH.DisposableStore,o=new ef.CancellationTokenSource;this.sessions.set(t,o);let s=await r.provideSpeechToTextSession(o.token,i?{language:i}:void 0);s&&(n.add(s.onDidChange(e=>{o.token.isCancellationRequested||this.proxy.$emitSpeechToTextEvent(t,e)})),n.add(o.token.onCancellationRequested(()=>n.dispose())))}async $cancelSpeechToTextSession(e){this.sessions.get(e)?.dispose(!0),this.sessions.delete(e)}async $createTextToSpeechSession(e,t,i){let r=this.providers.get(e);if(!r)return;let n=new eH.DisposableStore,o=new ef.CancellationTokenSource;this.sessions.set(t,o);let s=await r.provideTextToSpeechSession(o.token,i?{language:i}:void 0);s&&(this.synthesizers.set(t,s),n.add(s.onDidChange(e=>{o.token.isCancellationRequested||this.proxy.$emitTextToSpeechEvent(t,e)})),n.add(o.token.onCancellationRequested(()=>n.dispose())))}async $synthesizeSpeech(e,t){this.synthesizers.get(e)?.synthesize(t)}async $cancelTextToSpeechSession(e){this.sessions.get(e)?.dispose(!0),this.sessions.delete(e),this.synthesizers.delete(e)}async $createKeywordRecognitionSession(e,t){let i=this.providers.get(e);if(!i)return;let r=new eH.DisposableStore,n=new ef.CancellationTokenSource;this.sessions.set(t,n);let o=await i.provideKeywordRecognitionSession(n.token);o&&(r.add(o.onDidChange(e=>{n.token.isCancellationRequested||this.proxy.$emitKeywordRecognitionEvent(t,e)})),r.add(n.token.onCancellationRequested(()=>r.dispose())))}async $cancelKeywordRecognitionSession(e){this.sessions.get(e)?.dispose(!0),this.sessions.delete(e)}registerProvider(e,t,i){let r=lN.ID_POOL++;return this.providers.set(r,i),this.proxy.$registerProvider(r,t,{extension:e,displayName:e.value}),(0,eH.toDisposable)(()=>{this.proxy.$unregisterProvider(r),this.providers.delete(r)})}}class l${static{this.ID_GEN=0}static{this.ALLOWED_BACKGROUND_COLORS=new Map([["statusBarItem.errorBackground",new eh.ThemeColor("statusBarItem.errorForeground")],["statusBarItem.warningBackground",new eh.ThemeColor("statusBarItem.warningForeground")]])}#e;#k;constructor(e,t,i,r,n,o=eh.StatusBarAlignment.Left,s,a){if(this._onDispose=a,this._disposed=!1,this._text="",this._staleCommandRegistrations=new eH.DisposableStore,this.#e=e,this.#k=t,n&&r){this._entryId=(0,eh.asStatusBarItemIdentifier)(r.identifier,n);const e=i.get(this._entryId);e&&(o=e.alignLeft?eh.StatusBarAlignment.Left:eh.StatusBarAlignment.Right,s=e.priority,this._visible=!0,this.name=e.name,this.text=e.text,this.tooltip=e.tooltip,this.command=e.command,this.accessibilityInformation=e.accessibilityInformation)}else this._entryId=String(l$.ID_GEN++);this._extension=r,this._id=n,this._alignment=o,this._priority=this.validatePriority(s)}validatePriority(e){if((0,eK.isNumber)(e))return e===1/0?Number.MAX_VALUE:e===-1/0?-Number.MAX_VALUE:e}get id(){return this._id??this._extension.identifier.value}get entryId(){return this._entryId}get alignment(){return this._alignment}get priority(){return this._priority}get text(){return this._text}get name(){return this._name}get tooltip(){return this._tooltip}get tooltip2(){return this._extension&&(0,tp.checkProposedApiEnabled)(this._extension,"statusBarItemTooltip"),this._tooltip2}get color(){return this._color}get backgroundColor(){return this._backgroundColor}get command(){return this._command?.fromApi}get accessibilityInformation(){return this._accessibilityInformation}set text(e){this._text=e,this.update()}set name(e){this._name=e,this.update()}set tooltip(e){this._tooltip=e,this.update()}set tooltip2(e){this._extension&&(0,tp.checkProposedApiEnabled)(this._extension,"statusBarItemTooltip"),this._tooltip2=e,this.update()}set color(e){this._color=e,this.update()}set backgroundColor(e){e&&!l$.ALLOWED_BACKGROUND_COLORS.has(e.id)&&(e=void 0),this._backgroundColor=e,this.update()}set command(e){this._command?.fromApi!==e&&(this._latestCommandRegistration&&this._staleCommandRegistrations.add(this._latestCommandRegistration),this._latestCommandRegistration=new eH.DisposableStore,"string"==typeof e?this._command={fromApi:e,internal:this.#k.toInternal({title:"",command:e},this._latestCommandRegistration)}:e?this._command={fromApi:e,internal:this.#k.toInternal(e,this._latestCommandRegistration)}:this._command=void 0,this.update())}set accessibilityInformation(e){this._accessibilityInformation=e,this.update()}show(){this._visible=!0,this.update()}hide(){clearTimeout(this._timeoutHandle),this._visible=!1,this.#e.$disposeEntry(this._entryId)}update(){!this._disposed&&this._visible&&(clearTimeout(this._timeoutHandle),this._timeoutHandle=setTimeout(()=>{let e,t,i,r;this._timeoutHandle=void 0,e=this._extension?this._id?`${this._extension.identifier.value}.${this._id}`:this._extension.identifier.value:this._id,t=this._name?this._name:(0,e1.localize)(2700,"{0} (Extension)",this._extension.displayName||this._extension.name);let n=this._color;this._backgroundColor&&(n=l$.ALLOWED_BACKGROUND_COLORS.get(this._backgroundColor.id)),"function"==typeof this._tooltip2?(i=e6.MarkdownString.fromStrict(this._tooltip),r=!0):(i=e6.MarkdownString.fromStrict(this._tooltip2??this._tooltip),r=!1),this.#e.$setEntry(this._entryId,e,this._extension?.identifier.value,t,this._text,i,r,this._command?.internal,n,this._backgroundColor,this._alignment===eh.StatusBarAlignment.Left,this._priority,this._accessibilityInformation),this._staleCommandRegistrations.clear()},0))}dispose(){this.hide(),this._onDispose?.(),this._disposed=!0}}class lH{constructor(e){this._messages=[],this._item=e.createStatusBarEntry(void 0,"status.extensionMessage",eh.StatusBarAlignment.Left,5e-324),this._item.name=(0,e1.localize)(2701,"Extension Status")}dispose(){this._messages.length=0,this._item.dispose()}setMessage(e){let t={message:e};return this._messages.unshift(t),this._update(),new eh.Disposable(()=>{let e=this._messages.indexOf(t);e>=0&&(this._messages.splice(e,1),this._update())})}_update(){this._messages.length>0?(this._item.text=this._messages[0].message,this._item.show()):this._item.hide()}}class lU{constructor(e,t){this._entries=new Map,this._existingItems=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadStatusBar),this._commands=t,this._statusMessage=new lH(this)}$acceptStaticEntries(e){for(let t of e)this._existingItems.set(t.entryId,t)}async $provideTooltip(e,t){let i=this._entries.get(e);if(!i)return;let r="function"==typeof i.tooltip2?await i.tooltip2(t):i.tooltip2;return t.isCancellationRequested?void 0:e6.MarkdownString.fromStrict(r)}createStatusBarEntry(e,t,i,r){let n=new l$(this._proxy,this._commands,this._existingItems,e,t,i,r,()=>this._entries.delete(n.entryId));return this._entries.set(n.entryId,n),n}setStatusBarMessage(e,t){let i,r=this._statusMessage.setMessage(e);return"number"==typeof t?i=setTimeout(()=>r.dispose(),t):void 0!==t&&t.then(()=>r.dispose(),()=>r.dispose()),new eh.Disposable(()=>{r.dispose(),clearTimeout(i)})}}var lW=eH;class lq extends lW.Disposable{constructor(e,t){super(),this._extHostDocumentsAndEditors=t,this._onDidChangeTextEditorSelection=new ey.Emitter,this._onDidChangeTextEditorOptions=new ey.Emitter,this._onDidChangeTextEditorVisibleRanges=new ey.Emitter,this._onDidChangeTextEditorViewColumn=new ey.Emitter,this._onDidChangeTextEditorDiffInformation=new ey.Emitter,this._onDidChangeActiveTextEditor=new ey.Emitter,this._onDidChangeVisibleTextEditors=new ey.Emitter,this.onDidChangeTextEditorSelection=this._onDidChangeTextEditorSelection.event,this.onDidChangeTextEditorOptions=this._onDidChangeTextEditorOptions.event,this.onDidChangeTextEditorVisibleRanges=this._onDidChangeTextEditorVisibleRanges.event,this.onDidChangeTextEditorViewColumn=this._onDidChangeTextEditorViewColumn.event,this.onDidChangeTextEditorDiffInformation=this._onDidChangeTextEditorDiffInformation.event,this.onDidChangeActiveTextEditor=this._onDidChangeActiveTextEditor.event,this.onDidChangeVisibleTextEditors=this._onDidChangeVisibleTextEditors.event,this._proxy=e.getProxy(ev.MainContext.MainThreadTextEditors),this._register(this._extHostDocumentsAndEditors.onDidChangeVisibleTextEditors(e=>this._onDidChangeVisibleTextEditors.fire(e))),this._register(this._extHostDocumentsAndEditors.onDidChangeActiveTextEditor(e=>this._onDidChangeActiveTextEditor.fire(e)))}getActiveTextEditor(){return this._extHostDocumentsAndEditors.activeEditor()}getVisibleTextEditors(e){let t=this._extHostDocumentsAndEditors.allEditors();return e?t:t.map(e=>e.value)}async showTextDocument(e,t,i){let r;r="number"==typeof t?{position:e6.ViewColumn.from(t),preserveFocus:i}:"object"==typeof t?{position:e6.ViewColumn.from(t.viewColumn),preserveFocus:t.preserveFocus,selection:"object"==typeof t.selection?e6.Range.from(t.selection):void 0,pinned:"boolean"==typeof t.preview?!t.preview:void 0}:{preserveFocus:!1};let n=await this._proxy.$tryShowTextDocument(e.uri,r),o=n&&this._extHostDocumentsAndEditors.getEditor(n);if(o)return o.value;if(n)throw Error(`Could NOT open editor for "${e.uri.toString()}" because another editor opened in the meantime.`);throw Error(`Could NOT open editor for "${e.uri.toString()}".`)}createTextEditorDecorationType(e,t){return new is(this._proxy,e,t).value}$acceptEditorPropertiesChanged(e,t){let i=this._extHostDocumentsAndEditors.getEditor(e);if(!i)throw Error("unknown text editor");if(t.options&&i._acceptOptions(t.options),t.selections){let e=t.selections.selections.map(e6.Selection.to);i._acceptSelections(e)}if(t.visibleRanges){let e=(0,eY.coalesce)(t.visibleRanges.map(e6.Range.to));i._acceptVisibleRanges(e)}if(t.options&&this._onDidChangeTextEditorOptions.fire({textEditor:i.value,options:{...t.options,lineNumbers:e6.TextEditorLineNumbersStyle.to(t.options.lineNumbers)}}),t.selections){let e=eh.TextEditorSelectionChangeKind.fromValue(t.selections.source),r=t.selections.selections.map(e6.Selection.to);this._onDidChangeTextEditorSelection.fire({textEditor:i.value,selections:r,kind:e})}if(t.visibleRanges){let e=(0,eY.coalesce)(t.visibleRanges.map(e6.Range.to));this._onDidChangeTextEditorVisibleRanges.fire({textEditor:i.value,visibleRanges:e})}}$acceptEditorPositionData(e){for(let t in e){let i=this._extHostDocumentsAndEditors.getEditor(t);if(!i)throw Error("Unknown text editor");let r=e6.ViewColumn.to(e[t]);i.value.viewColumn!==r&&(i._acceptViewColumn(r),this._onDidChangeTextEditorViewColumn.fire({textEditor:i.value,viewColumn:r}))}}$acceptEditorDiffInformation(e,t){let i=this._extHostDocumentsAndEditors.getEditor(e);if(!i)throw Error("unknown text editor");if(!t){i._acceptDiffInformation(void 0),this._onDidChangeTextEditorDiffInformation.fire({textEditor:i.value,diffInformation:void 0});return}let r=this,n=t.map(e=>{let t=eD.URI.revive(e.original),i=eD.URI.revive(e.modified),n=e.changes.map(e=>{let t,[i,r,n,o]=e;return t=i===r?eh.TextEditorChangeKind.Addition:n===o?eh.TextEditorChangeKind.Deletion:eh.TextEditorChangeKind.Modification,{original:{startLineNumber:i,endLineNumberExclusive:r},modified:{startLineNumber:n,endLineNumberExclusive:o},kind:t}});return Object.freeze({documentVersion:e.documentVersion,original:t,modified:i,changes:n,get isStale(){let t=r._extHostDocumentsAndEditors.getDocument(i);return t?.version!==e.documentVersion}})});i._acceptDiffInformation(n),this._onDidChangeTextEditorDiffInformation.fire({textEditor:i.value,diffInformation:n})}getDiffInformation(e){return Promise.resolve(this._proxy.$getDiffInformation(e))}}let lj=class{constructor(e){this._actual=new eh.ColorTheme(eh.ColorThemeKind.Dark),this._onDidChangeActiveColorTheme=new ey.Emitter}get activeColorTheme(){return this._actual}$onColorThemeChange(e){let t;switch(e){case"light":t=eh.ColorThemeKind.Light;break;case"hcDark":t=eh.ColorThemeKind.HighContrast;break;case"hcLight":t=eh.ColorThemeKind.HighContrastLight;break;default:t=eh.ColorThemeKind.Dark}this._actual=new eh.ColorTheme(t),this._onDidChangeActiveColorTheme.fire(this._actual)}get onDidChangeActiveColorTheme(){return this._onDidChangeActiveColorTheme.event}};lj=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],lj);class lz{constructor(e,t){this._providers=new Map,this._itemsBySourceAndUriMap=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadTimeline),t.registerArgumentProcessor({processArgument:(e,t)=>{if(e&&e.$mid===iS.MarshalledId.TimelineActionContext)if(!(this._providers.get(e.source)&&t&&(0,tp.isProposedApiEnabled)(t,"timeline")))return;else{let t=void 0===e.uri?void 0:eD.URI.revive(e.uri);return this._itemsBySourceAndUriMap.get(e.source)?.get(lK(t))?.get(e.handle)}return e}})}async $getTimeline(e,t,i,r){let n=this._providers.get(e);return n?.provider.provideTimeline(eD.URI.revive(t),i,r)}registerTimelineProvider(e,t,i,r){let n,o=new eH.DisposableStore,s=this.convertTimelineItem(t.id,r,o).bind(this);t.onDidChange&&(n=t.onDidChange(e=>this._proxy.$emitTimelineChangeEvent({uri:void 0,reset:!0,...e,id:t.id}),this));let a=this._itemsBySourceAndUriMap;return this.registerTimelineProviderCore({...t,scheme:e,onDidChange:void 0,async provideTimeline(e,i,r){i?.resetCache&&(o.clear(),a.get(t.id)?.clear());let n=await t.provideTimeline(e,i,r);if(null==n)return;let l=s(e,i);return{...n,source:t.id,items:n.items.map(l)}},dispose(){for(let e of a.values())e.get(t.id)?.clear();n?.dispose(),o.dispose()}},i)}convertTimelineItem(e,t,i){return(r,n)=>{let o;if(n?.cacheResults){let t=this._itemsBySourceAndUriMap.get(e);void 0===t&&(t=new Map,this._itemsBySourceAndUriMap.set(e,t));let i=lK(r);void 0===(o=t.get(i))&&(o=new Map,t.set(i,o))}return r=>{let n,s,a,l,{iconPath:c,...d}=r,u=`${e}|${r.id??r.timestamp}`;return o?.set(u,r),r.iconPath&&(c instanceof eh.ThemeIcon?a={id:c.id,color:c.color}:eD.URI.isUri(c)?(n=c,s=c):{light:n,dark:s}=c),oN.MarkdownString.isMarkdownString(d.tooltip)?l=e6.MarkdownString.from(d.tooltip):(0,eK.isString)(d.tooltip)?l=d.tooltip:oN.MarkdownString.isMarkdownString(d.detail)?(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),l=e6.MarkdownString.from(d.detail)):(0,eK.isString)(d.detail)&&(console.warn("Using deprecated TimelineItem.detail, migrate to TimelineItem.tooltip"),l=d.detail),{...d,id:d.id??void 0,handle:u,source:e,command:r.command?t.toInternal(r.command,i):void 0,icon:n,iconDark:s,themeIcon:a,tooltip:l,accessibilityInformation:r.accessibilityInformation}}}}registerTimelineProviderCore(e,t){if(this._providers.get(e.id))throw Error(`Timeline Provider ${e.id} already exists.`);return this._proxy.$registerTimelineProvider({id:e.id,label:e.label,scheme:e.scheme}),this._providers.set(e.id,{provider:e,extension:t}),(0,eH.toDisposable)(()=>{for(let t of this._itemsBySourceAndUriMap.values())t.get(e.id)?.clear();this._providers.delete(e.id),this._proxy.$unregisterTimelineProvider(e.id),e.dispose()})}}function lK(e){return e?.toString()}var lV=eH,lB=e.i(305063),lG=e.i(334326);function lQ(e,t){if((0,eK.isString)(e))return{label:e};if(e&&"object"==typeof e&&e.label){let i;if(Array.isArray(e.highlights)&&(i=(i=e.highlights.filter(e=>2===e.length&&"number"==typeof e[0]&&"number"==typeof e[1])).length?i:void 0),(0,eK.isString)(e.label))return{label:e.label,highlights:i};if(oN.MarkdownString.isMarkdownString(e.label))return(0,tp.checkProposedApiEnabled)(t,"treeItemMarkdownLabel"),{label:e6.MarkdownString.from(e.label),highlights:i}}}class lJ extends lV.Disposable{constructor(e,t,i){function r(e){return e&&e.$treeViewId&&(e.$treeItemHandle||e.$selectedTreeItems||e.$focusedTreeItem)}super(),this._proxy=e,this._commands=t,this._logService=i,this._treeViews=new Map,this._treeDragAndDropService=new lG.TreeViewsDnDService,t.registerArgumentProcessor({processArgument:e=>r(e)?this._convertArgument(e):Array.isArray(e)&&e.length>0?e.map(e=>r(e)?this._convertArgument(e):e):e})}registerTreeDataProvider(e,t,i){let r=this.createTreeView(e,{treeDataProvider:t},i);return{dispose:()=>r.dispose()}}createTreeView(e,t,i){if(!t||!t.treeDataProvider)throw Error("Options with treeDataProvider is mandatory");let r=t.dragAndDropController?.dropMimeTypes??[],n=t.dragAndDropController?.dragMimeTypes??[],o=!!t.dragAndDropController?.handleDrag,s=!!t.dragAndDropController?.handleDrop,a=this._createExtHostTreeView(e,t,i),l={showCollapseAll:!!t.showCollapseAll,canSelectMany:!!t.canSelectMany,dropMimeTypes:r,dragMimeTypes:n,hasHandleDrag:o,hasHandleDrop:s,manuallyManageCheckboxes:!!t.manageCheckboxStateManually},c=this._proxy.$registerTreeViewDataProvider(e,l),d={get onDidCollapseElement(){return a.onDidCollapseElement},get onDidExpandElement(){return a.onDidExpandElement},get selection(){return a.selectedElements},get onDidChangeSelection(){return a.onDidChangeSelection},get activeItem(){return(0,tp.checkProposedApiEnabled)(i,"treeViewActiveItem"),a.focusedElement},get onDidChangeActiveItem(){return(0,tp.checkProposedApiEnabled)(i,"treeViewActiveItem"),a.onDidChangeActiveItem},get visible(){return a.visible},get onDidChangeVisibility(){return a.onDidChangeVisibility},get onDidChangeCheckboxState(){return a.onDidChangeCheckboxState},get message(){return a.message},set message(message){(0,s_.isMarkdownString)(message)&&(0,tp.checkProposedApiEnabled)(i,"treeViewMarkdownMessage"),a.message=message},get title(){return a.title},set title(title){a.title=title},get description(){return a.description},set description(description){a.description=description},get badge(){return a.badge},set badge(badge){void 0!==badge&&eh.ViewBadge.isViewBadge(badge)?a.badge={value:Math.floor(Math.abs(badge.value)),tooltip:badge.tooltip}:void 0===badge&&(a.badge=void 0)},reveal:(e,t)=>a.reveal(e,t),dispose:async()=>{await c,this._treeViews.delete(e),a.dispose()}};return this._register(d),d}async $getChildren(e,t){let i=this._treeViews.get(e);if(!i)return Promise.reject(new lB.NoTreeViewError(e));if(!t){let e=await i.getChildren();return e?[[0,...e]]:void 0}let r=[];for(let e=0;e<t.length;e++){let n=t[e],o=await i.getChildren(n);o&&r.push([e,...o])}return r}async $handleDrop(e,t,i,r,n,o,s,a){let l=this._treeViews.get(e);if(!l)return Promise.reject(new lB.NoTreeViewError(e));let c=e6.DataTransfer.toDataTransfer(i,async i=>(await this._proxy.$resolveDropFileData(e,t,i)).buffer);return s===e&&a&&await this._addAdditionalTransferItems(c,l,a,n,o),l.onDrop(c,r,n)}async _addAdditionalTransferItems(e,t,i,r,n){let o=this._treeDragAndDropService.removeDragOperationTransfer(n);if(o)(await o)?.forEach((t,i)=>{t&&e.set(i,t)});else if(n&&t.handleDrag){let o=t.handleDrag(i,e,r);this._treeDragAndDropService.addDragOperationTransfer(n,o),await o}return e}async $handleDrag(e,t,i,r){let n=this._treeViews.get(e);if(!n)return Promise.reject(new lB.NoTreeViewError(e));let o=await this._addAdditionalTransferItems(new eh.DataTransfer,n,t,r,i);if(o&&!r.isCancellationRequested)return e6.DataTransfer.from(o)}async $hasResolve(e){let t=this._treeViews.get(e);if(!t)throw new lB.NoTreeViewError(e);return t.hasResolve}$resolve(e,t,i){let r=this._treeViews.get(e);if(!r)throw new lB.NoTreeViewError(e);return r.resolveTreeItem(t,i)}$setExpanded(e,t,i){let r=this._treeViews.get(e);if(!r)throw new lB.NoTreeViewError(e);r.setExpanded(t,i)}$setSelectionAndFocus(e,t,i){let r=this._treeViews.get(e);if(!r)throw new lB.NoTreeViewError(e);r.setSelectionAndFocus(t,i)}$setVisible(e,t){let i=this._treeViews.get(e);if(!i){if(!t)return;throw new lB.NoTreeViewError(e)}i.setVisible(t)}$changeCheckboxState(e,t){let i=this._treeViews.get(e);if(!i)throw new lB.NoTreeViewError(e);i.setCheckboxState(t)}_createExtHostTreeView(e,t,i){let r=this._register(new lY(e,t,this._proxy,this._commands.converter,this._logService,i));return this._treeViews.set(e,r),r}_convertArgument(e){let t=this._treeViews.get(e.$treeViewId);return t&&e.$treeItemHandle?t.getExtensionElement(e.$treeItemHandle):t&&e.$focusedTreeItem?t.focusedElement:null}}class lY extends lV.Disposable{static{this.LABEL_HANDLE_PREFIX="0"}static{this.ID_HANDLE_PREFIX="1"}static{this.ROOT_FETCH_KEY=Symbol("extHostTreeViewRoot")}get visible(){return this._visible}get selectedElements(){return this._selectedHandles.map(e=>this.getExtensionElement(e)).filter(e=>!(0,eK.isUndefinedOrNull)(e))}get focusedElement(){return this._focusedHandle?this.getExtensionElement(this._focusedHandle):void 0}constructor(e,t,i,r,n,o){let s,a;if(super(),this._viewId=e,this._proxy=i,this._commands=r,this._logService=n,this._extension=o,this._roots=void 0,this._elements=new Map,this._nodes=new Map,this._childrenFetchTokens=new Map,this._visible=!1,this._selectedHandles=[],this._focusedHandle=void 0,this._onDidExpandElement=this._register(new ey.Emitter),this.onDidExpandElement=this._onDidExpandElement.event,this._onDidCollapseElement=this._register(new ey.Emitter),this.onDidCollapseElement=this._onDidCollapseElement.event,this._onDidChangeSelection=this._register(new ey.Emitter),this.onDidChangeSelection=this._onDidChangeSelection.event,this._onDidChangeActiveItem=this._register(new ey.Emitter),this.onDidChangeActiveItem=this._onDidChangeActiveItem.event,this._onDidChangeVisibility=this._register(new ey.Emitter),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._onDidChangeCheckboxState=this._register(new ey.Emitter),this.onDidChangeCheckboxState=this._onDidChangeCheckboxState.event,this._onDidChangeData=this._register(new ey.Emitter),this._refreshPromise=Promise.resolve(),this._refreshQueue=Promise.resolve(),this._nodesToClear=new Set,this._message="",this._title="",this._refreshCancellationSource=new ef.CancellationTokenSource,o.contributes&&o.contributes.views)for(const t in o.contributes.views)for(const i of o.contributes.views[t])i.id===e&&(this._title=i.name);this._dataProvider=t.treeDataProvider,this._dndController=t.dragAndDropController,this._dataProvider.onDidChangeTreeData&&this._register(this._dataProvider.onDidChangeTreeData(e=>{Array.isArray(e)&&0===e.length||this._onDidChangeData.fire({message:!1,element:e})}));const l=ey.Event.debounce(this._onDidChangeData.event,(e,t)=>(e||(e={message:!1,elements:[]}),!1!==t.element&&(s||(s=new Promise(e=>a=e),this._refreshPromise=this._refreshPromise.then(()=>s)),Array.isArray(t.element)?e.elements.push(...t.element):e.elements.push(t.element)),t.message&&(e.message=!0),e),200,!0);this._register(l(({message:e,elements:t})=>{t.length&&(t=(0,eY.distinct)(t),this._refreshQueue=this._refreshQueue.then(()=>{let e=a;s=null;let i=Array.from(this._nodesToClear);return this._nodesToClear.clear(),this._debugLogRefresh("start",t,i),this._refresh(t).then(()=>(this._debugLogRefresh("done",t,i),this._clearNodes(i),e())).catch(r=>{let n=r instanceof Error?r.message:JSON.stringify(r);return this._debugLogRefresh("error",t,i),this._clearNodes(i),this._logService.error(`Unable to refresh tree view ${this._viewId}: ${n}`),e()})})),e&&this._proxy.$setMessage(this._viewId,e6.MarkdownString.fromStrict(this._message)??"")}))}_debugCollectHandles(e){let t=[];for(let i of e){if(!i){t.push("<root>");continue}let e=this._nodes.get(i);e&&t.push(e.item.handle)}return{changed:t,roots:this._roots?.map(e=>e.item.handle)??[]}}_debugLogRefresh(e,t,i){if(this._isDebugLogging())try{let r=this._debugCollectHandles(t);r.clearing=i.map(e=>e.item.handle);let n=r.changed.length,o=i.length;this._logService.debug(`[TreeView:${this._viewId}] refresh ${e} changed=${n} nodesToClear=${o} elements.size=${this._elements.size} nodes.size=${this._nodes.size} handles=${JSON.stringify(r)}`)}catch{this._logService.debug(`[TreeView:${this._viewId}] refresh ${e} (snapshot failed)`)}}_isDebugLogging(){try{let e=this._logService.getLevel();return e===ew.LogLevel.Debug||e===ew.LogLevel.Trace}catch{return!1}}async getChildren(e){let t=e?this.getExtensionElement(e):void 0;if(e&&!t)return this._logService.error(`No tree item with id '${e}' found.`),Promise.resolve([]);let i=this._getChildrenNodes(e);return i||(i=await this._fetchChildrenNodes(t)),i?i.map(e=>e.item):void 0}getExtensionElement(e){return this._elements.get(e)}reveal(e,t){t=t||{select:!0,focus:!1};let i=!!(0,eK.isUndefinedOrNull)(t.select)||t.select,r=!(0,eK.isUndefinedOrNull)(t.focus)&&t.focus,n=!(0,eK.isUndefinedOrNull)(t.expand)&&t.expand;return"function"!=typeof this._dataProvider.getParent?Promise.reject(Error("Required registered TreeDataProvider to implement 'getParent' method to access 'reveal' method")):e?this._refreshPromise.then(()=>this._resolveUnknownParentChain(e)).then(t=>this._resolveTreeNode(e,t[t.length-1]).then(e=>this._proxy.$reveal(this._viewId,{item:e.item,parentChain:t.map(e=>e.item)},{select:i,focus:r,expand:n})),e=>this._logService.error(e)):this._proxy.$reveal(this._viewId,void 0,{select:i,focus:r,expand:n})}get message(){return this._message}set message(e){this._message=e,this._onDidChangeData.fire({message:!0,element:!1})}get title(){return this._title}set title(e){this._title=e,this._proxy.$setTitle(this._viewId,e,this._description)}get description(){return this._description}set description(e){this._description=e,this._proxy.$setTitle(this._viewId,this._title,e)}get badge(){return this._badge}set badge(e){(this._badge?.value!==e?.value||this._badge?.tooltip!==e?.tooltip)&&(this._badge=e6.ViewBadge.from(e),this._proxy.$setBadge(this._viewId,e))}setExpanded(e,t){let i=this.getExtensionElement(e);i&&(t?this._onDidExpandElement.fire(Object.freeze({element:i})):this._onDidCollapseElement.fire(Object.freeze({element:i})))}setSelectionAndFocus(e,t){let i=!(0,eY.equals)(this._selectedHandles,e);this._selectedHandles=e;let r=this._focusedHandle!==t;this._focusedHandle=t,i&&this._onDidChangeSelection.fire(Object.freeze({selection:this.selectedElements})),r&&this._onDidChangeActiveItem.fire(Object.freeze({activeItem:this.focusedElement}))}setVisible(e){e!==this._visible&&(this._visible=e,this._onDidChangeVisibility.fire(Object.freeze({visible:this._visible})))}async setCheckboxState(e){let t=(await Promise.all(e.map(async e=>{let t=this.getExtensionElement(e.treeItemHandle);return t?{extensionItem:t,treeItem:await this._dataProvider.getTreeItem(t),newState:e.newState?eh.TreeItemCheckboxState.Checked:eh.TreeItemCheckboxState.Unchecked}:Promise.resolve(void 0)}))).filter(e=>void 0!==e);t.forEach(e=>{e.treeItem.checkboxState=e.newState?eh.TreeItemCheckboxState.Checked:eh.TreeItemCheckboxState.Unchecked}),this._onDidChangeCheckboxState.fire({items:t.map(e=>[e.extensionItem,e.newState])})}async handleDrag(e,t,i){let r=[];for(let t of e){let e=this.getExtensionElement(t);e&&r.push(e)}if(this._dndController?.handleDrag&&0!==r.length)return await this._dndController.handleDrag(r,t,i),t}get hasHandleDrag(){return!!this._dndController?.handleDrag}async onDrop(e,t,i){let r=t?this.getExtensionElement(t):void 0;if((r||!t)&&this._dndController?.handleDrop)return(0,eU.asPromise)(()=>this._dndController?.handleDrop?this._dndController.handleDrop(r,e,i):void 0)}get hasResolve(){return!!this._dataProvider.resolveTreeItem}async resolveTreeItem(e,t){if(!this._dataProvider.resolveTreeItem)return;let i=this._elements.get(e);if(i){let e=this._nodes.get(i);if(e){let r=await this._dataProvider.resolveTreeItem(e.extensionItem,i,t)??e.extensionItem;return this._validateTreeItem(r),e.item.tooltip=this._getTooltip(r.tooltip),e.item.command=this._getCommand(e.disposableStore,r.command),e.item}}}_resolveUnknownParentChain(e){return this._resolveParent(e).then(e=>e?this._resolveUnknownParentChain(e).then(t=>this._resolveTreeNode(e,t[t.length-1]).then(e=>(t.push(e),t))):Promise.resolve([]))}_resolveParent(e){let t=this._nodes.get(e);return t?Promise.resolve(t.parent?this._elements.get(t.parent.item.handle):void 0):(0,eU.asPromise)(()=>this._dataProvider.getParent(e))}_resolveTreeNode(e,t){let i=this._nodes.get(e);return i?Promise.resolve(i):(0,eU.asPromise)(()=>this._dataProvider.getTreeItem(e)).then(i=>this._createHandle(e,i,t,!0)).then(e=>this.getChildren(t?t.item.handle:void 0).then(()=>{let t=this.getExtensionElement(e);if(t){let e=this._nodes.get(t);if(e)return Promise.resolve(e)}throw Error(`Cannot resolve tree item for element ${e} from extension ${this._extension.identifier.value}`)}))}_getChildrenNodes(e){if(e){let t;if("string"==typeof e){let i=this.getExtensionElement(e);t=i?this._nodes.get(i):void 0}else t=e;return t&&t.children||void 0}return this._roots}_getFetchKey(e){return e??lY.ROOT_FETCH_KEY}async _fetchChildrenNodes(e){this._addChildrenToClear(e);let t=this._getFetchKey(e),i=this._childrenFetchTokens.get(t)??0;i++,this._childrenFetchTokens.set(t,i);let r=new ef.CancellationTokenSource(this._refreshCancellationSource.token);try{let n=await this._dataProvider.getChildren(e);if(this._childrenFetchTokens.get(t)!==i)return;let o=e?this._nodes.get(e):void 0;if(r.token.isCancellationRequested)return;let s=(0,eY.coalesce)(n||[]),a=await Promise.all((0,eY.coalesce)(s).map(e=>this._dataProvider.getTreeItem(e)));if(this._childrenFetchTokens.get(t)!==i||r.token.isCancellationRequested)return;let l=a.map((e,t)=>e?this._createAndRegisterTreeNode(s[t],e,o):null);if(this._childrenFetchTokens.get(t)!==i)return;return(0,eY.coalesce)(l)}finally{r.dispose()}}_refresh(e){if(e.some(e=>!e))return this._refreshCancellationSource.dispose(!0),this._refreshCancellationSource=new ef.CancellationTokenSource,this._addChildrenToClear(),this._proxy.$refresh(this._viewId);{let t=this._getHandlesToRefresh(e);if(t.length)return this._refreshHandles(t)}return Promise.resolve(void 0)}_getHandlesToRefresh(e){let t=new Set,i=e.map(e=>this._nodes.get(e));for(let e of i)if(e&&!t.has(e.item.handle)){let r=e;for(;r&&r.parent&&-1===i.findIndex(e=>r&&r.parent&&e&&e.item.handle===r.parent.item.handle);){let e=this._elements.get(r.parent.item.handle);r=e?this._nodes.get(e):void 0}r&&!r.parent&&t.add(e.item.handle)}let r=[];return t.forEach(e=>{let i=this._elements.get(e);if(i){let n=this._nodes.get(i);!n||n.parent&&t.has(n.parent.item.handle)||r.push(e)}}),r}_refreshHandles(e){let t={};return Promise.all(e.map(e=>this._refreshNode(e).then(i=>{i&&(t[e]=i.item)}))).then(()=>Object.keys(t).length?this._proxy.$refresh(this._viewId,t):void 0)}_refreshNode(e){let t=this.getExtensionElement(e);if(t){let e=this._nodes.get(t);if(e)return this._addChildrenToClear(t),(0,eU.asPromise)(()=>this._dataProvider.getTreeItem(t)).then(i=>{if(i){let r=this._createTreeNode(t,i,e.parent);return this._updateNodeCache(t,r,e,e.parent),e.dispose(),r}return null})}return Promise.resolve(null)}_createAndRegisterTreeNode(e,t,i){let r=t.id?`${lY.ID_HANDLE_PREFIX}/${t.id}`:void 0;if(r){let n=this._elements.get(r);if(n){if(n!==e)throw Error((0,e1.localize)(2704,"Element with id {0} is already registered",t.id));let r=this._nodes.get(n);if(r){let n=this._createTreeNode(e,t,i);return this._updateNodeCache(e,n,r,i),r.dispose(),n}}}let n=this._createTreeNode(e,t,i);return this._addNodeToCache(e,n),this._addNodeToParentCache(n,i),n}_getTooltip(e){return oN.MarkdownString.isMarkdownString(e)?e6.MarkdownString.from(e):e}_getCommand(e,t){return t?{...this._commands.toInternal(t,e),originalId:t.command}:void 0}_getCheckbox(e){let t,i,r;if(void 0!==e.checkboxState)return"number"==typeof e.checkboxState?t=e.checkboxState:(t=e.checkboxState.state,i=e.checkboxState.tooltip,r=e.checkboxState.accessibilityInformation),{isChecked:t===eh.TreeItemCheckboxState.Checked,tooltip:i,accessibilityInformation:r}}_validateTreeItem(e){if(!eh.TreeItem.isTreeItem(e,this._extension))throw Error(`Extension ${this._extension.identifier.value} has provided an invalid tree item.`)}_createTreeNode(e,t,i){this._validateTreeItem(t);let r=this._register(new lV.DisposableStore),n=this._createHandle(e,t,i),o=this._getLightIconPath(t);return{item:{handle:n,parentHandle:i?i.item.handle:void 0,label:lQ(t.label,this._extension),description:t.description,resourceUri:t.resourceUri,tooltip:this._getTooltip(t.tooltip),command:this._getCommand(r,t.command),contextValue:t.contextValue,icon:o,iconDark:this._getDarkIconPath(t)||o,themeIcon:this._getThemeIcon(t),collapsibleState:(0,eK.isUndefinedOrNull)(t.collapsibleState)?eh.TreeItemCollapsibleState.None:t.collapsibleState,accessibilityInformation:t.accessibilityInformation,checkbox:this._getCheckbox(t)},extensionItem:t,parent:i,children:void 0,disposableStore:r,dispose(){r.dispose()}}}_getThemeIcon(e){return e.iconPath instanceof eh.ThemeIcon?e.iconPath:void 0}_createHandle(e,{id:t,label:i,resourceUri:r},n,o){let s;if(t)return`${lY.ID_HANDLE_PREFIX}/${t}`;let a=lQ(i,this._extension),l=n?n.item.handle:lY.LABEL_HANDLE_PREFIX,c="";a&&(c=(0,s_.isMarkdownString)(a.label)?a.label.value:a.label);let d=c||(r?(0,eN.basename)(r):"");d=-1!==d.indexOf("/")?d.replace("/","//"):d;let u=this._nodes.has(e)?this._nodes.get(e).item.handle:void 0,h=this._getChildrenNodes(n)||[],g=0;do{if(s=`${l}/${g}:${d}`,o||!this._elements.has(s)||u===s)break;g++}while(g<=h.length)return s}_getLightIconPath(e){if(e.iconPath&&!(e.iconPath instanceof eh.ThemeIcon))return"string"==typeof e.iconPath||eD.URI.isUri(e.iconPath)?this._getIconPath(e.iconPath):this._getIconPath(e.iconPath.light)}_getDarkIconPath(e){if(e.iconPath&&!(e.iconPath instanceof eh.ThemeIcon)&&e.iconPath.dark)return this._getIconPath(e.iconPath.dark)}_getIconPath(e){return eD.URI.isUri(e)?e:eD.URI.file(e)}_addNodeToCache(e,t){this._elements.set(t.item.handle,e),this._nodes.set(e,t)}_updateNodeCache(e,t,i,r){this._elements.delete(t.item.handle),this._nodes.delete(e),t.item.handle!==i.item.handle&&this._elements.delete(i.item.handle),this._addNodeToCache(e,t);let n=this._getChildrenNodes(r)||[],o=n.filter(e=>e.item.handle===i.item.handle)[0];o&&n.splice(n.indexOf(o),1,t)}_addNodeToParentCache(e,t){t?(t.children||(t.children=[]),t.children.push(e)):(this._roots||(this._roots=[]),this._roots.push(e))}_addChildrenToClear(e){if(e){let t=this._nodes.get(e);if(t){if(t.children)for(let e of t.children){this._nodesToClear.add(e);let t=this._elements.get(e.item.handle);t&&(this._addChildrenToClear(t),this._nodes.delete(t),this._elements.delete(e.item.handle))}t.children=void 0}}else this._addAllToClear()}_addAllToClear(){this._roots=void 0,this._nodes.forEach(e=>{this._nodesToClear.add(e)}),this._nodes.clear(),this._elements.clear(),this._childrenFetchTokens.clear()}_clearNodes(e){(0,lV.dispose)(e)}_clearAll(){this._roots=void 0,this._elements.clear(),(0,lV.dispose)(this._nodes.values()),this._nodes.clear(),(0,lV.dispose)(this._nodesToClear),this._nodesToClear.clear(),this._childrenFetchTokens.clear()}dispose(){super.dispose(),this._refreshCancellationSource.dispose(),this._clearAll(),this._proxy.$disposeTree(this._viewId)}}class lX{static{this.supportedSchemes=new Set([eO.Schemas.http,eO.Schemas.https])}constructor(e){this._openers=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadUriOpeners)}registerExternalUriOpener(e,t,i,r){if(this._openers.has(t))throw Error(`Opener with id '${t}' already registered`);let n=r.schemes.find(e=>!lX.supportedSchemes.has(e));if(n)throw Error(`Scheme '${n}' is not supported. Only http and https are currently supported.`);return this._openers.set(t,i),this._proxy.$registerUriOpener(t,r.schemes,e,r.label),(0,eH.toDisposable)(()=>{this._openers.delete(t),this._proxy.$unregisterUriOpener(t)})}async $canOpenUri(e,t,i){let r=this._openers.get(e);if(!r)throw Error(`Unknown opener with id: ${e}`);let n=eD.URI.revive(t);return r.canOpenExternalUri(n,i)}async $openUri(e,t,i){let r=this._openers.get(e);if(!r)throw Error(`Unknown opener id: '${e}'`);return r.openExternalUri(eD.URI.revive(t.resolvedUri),{sourceUri:eD.URI.revive(t.sourceUri)},i)}}var lZ=eH;class l0 extends lZ.Disposable{#h;#e;#T;#R;#_;#P;#I;#A;#M;#L;#y;#F;#O;constructor(e,t,i,r){super(),this.#A=void 0,this.#M=!0,this.#y=!1,this.#F=this._register(new ey.Emitter),this.onDidDispose=this.#F.event,this.#O=this._register(new ey.Emitter),this.onDidChangeViewState=this.#O.event,this.#h=e,this.#e=t,this.#R=i,this.#T=r.viewType,this.#_=r.panelOptions,this.#A=r.viewColumn,this.#P=r.title,this.#L=r.active}dispose(){this.#y||(this.#y=!0,this.#F.fire(),this.#e.$disposeWebview(this.#h),this.#R.dispose(),super.dispose())}get webview(){return this.assertNotDisposed(),this.#R}get viewType(){return this.assertNotDisposed(),this.#T}get title(){return this.assertNotDisposed(),this.#P}set title(e){this.assertNotDisposed(),this.#P!==e&&(this.#P=e,this.#e.$setTitle(this.#h,e))}get iconPath(){return this.assertNotDisposed(),this.#I}set iconPath(e){this.assertNotDisposed(),this.#I!==e&&(this.#I=e,eD.URI.isUri(e)?this.#e.$setIconPath(this.#h,{light:e,dark:e}):this.#e.$setIconPath(this.#h,e))}get options(){return this.#_}get viewColumn(){if(this.assertNotDisposed(),"number"!=typeof this.#A||!(this.#A<0))return this.#A}get active(){return this.assertNotDisposed(),this.#L}get visible(){return this.assertNotDisposed(),this.#M}_updateViewState(e){this.#y||(this.active!==e.active||this.visible!==e.visible||this.viewColumn!==e.viewColumn)&&(this.#L=e.active,this.#M=e.visible,this.#A=e.viewColumn,this.#O.fire({webviewPanel:this}))}reveal(e,t){this.assertNotDisposed(),this.#e.$reveal(this.#h,{viewColumn:void 0===e?void 0:e6.ViewColumn.from(e),preserveFocus:!!t})}assertNotDisposed(){if(this.#y)throw Error("Webview is disposed")}}class l1 extends lZ.Disposable{static newHandle(){return(0,tJ.generateUuid)()}constructor(e,t,i){super(),this.webviews=t,this.workspace=i,this._webviewPanels=new Map,this._serializers=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadWebviewPanels)}dispose(){super.dispose(),this._webviewPanels.forEach(e=>e.dispose()),this._webviewPanels.clear()}createWebviewPanel(e,t,i,r,n={}){var o;let s="object"==typeof r?r.viewColumn:r,a={viewColumn:e6.ViewColumn.from(s),preserveFocus:"object"==typeof r&&!!r.preserveFocus},l=o4(e),c=l1.newHandle();this._proxy.$createWebviewPanel(o8(e),c,t,{title:i,panelOptions:{enableFindWidget:(o=n).enableFindWidget,retainContextWhenHidden:o.retainContextWhenHidden},webviewOptions:o7(e,this.workspace,n),serializeBuffersForPostMessage:l},a);let d=this.webviews.createNewWebview(c,n,e);return this.createNewWebviewPanel(c,t,i,s,n,d,!0)}$onDidChangeWebviewPanelViewStates(e){let t=Object.keys(e);for(let i of(t.sort((t,i)=>{let r=e[t],n=e[i];return r.active?1:n.active?-1:r.visible-n.visible}),t)){let t=this.getWebviewPanel(i);if(!t)continue;let r=e[i];t._updateViewState({active:r.active,visible:r.visible,viewColumn:e6.ViewColumn.to(r.position)})}}async $onDidDisposeWebviewPanel(e){let t=this.getWebviewPanel(e);t?.dispose(),this._webviewPanels.delete(e),this.webviews.deleteWebview(e)}registerWebviewPanelSerializer(e,t,i){if(this._serializers.has(t))throw Error(`Serializer for '${t}' already registered`);return this._serializers.set(t,{serializer:i,extension:e}),this._proxy.$registerSerializer(t,{serializeBuffersForPostMessage:o4(e)}),new eh.Disposable(()=>{this._serializers.delete(t),this._proxy.$unregisterSerializer(t)})}async $deserializeWebviewPanel(e,t,i,r){let n=this._serializers.get(t);if(!n)throw Error(`No serializer found for '${t}'`);let{serializer:o,extension:s}=n,a=this.webviews.createNewWebview(e,i.webviewOptions,s),l=this.createNewWebviewPanel(e,t,i.title,r,i.panelOptions,a,i.active);await o.deserializeWebviewPanel(l,i.state)}createNewWebviewPanel(e,t,i,r,n,o,s){let a=new l0(e,this._proxy,o,{viewType:t,title:i,viewColumn:r,panelOptions:n,active:s});return this._webviewPanels.set(e,a),a}getWebviewPanel(e){return this._webviewPanels.get(e)}}var l2=eH;class l6 extends l2.Disposable{#h;#e;#T;#R;#y;#N;#P;#$;#H;constructor(e,t,i,r,n,o){super(),this.#y=!1,this.#U=this._register(new ey.Emitter),this.onDidChangeVisibility=this.#U.event,this.#F=this._register(new ey.Emitter),this.onDidDispose=this.#F.event,this.#T=i,this.#P=r,this.#h=e,this.#e=t,this.#R=n,this.#N=o}dispose(){this.#y||(this.#y=!0,this.#F.fire(),this.#R.dispose(),super.dispose())}#U;#F;get title(){return this.assertNotDisposed(),this.#P}set title(e){this.assertNotDisposed(),this.#P!==e&&(this.#P=e,this.#e.$setWebviewViewTitle(this.#h,e))}get description(){return this.assertNotDisposed(),this.#$}set description(e){this.assertNotDisposed(),this.#$!==e&&(this.#$=e,this.#e.$setWebviewViewDescription(this.#h,e))}get visible(){return this.#N}get webview(){return this.#R}get viewType(){return this.#T}_setVisible(e){e===this.#N||this.#y||(this.#N=e,this.#U.fire())}get badge(){return this.assertNotDisposed(),this.#H}set badge(e){this.assertNotDisposed(),(e?.value!==this.#H?.value||e?.tooltip!==this.#H?.tooltip)&&(this.#H=e6.ViewBadge.from(e),this.#e.$setWebviewViewBadge(this.#h,e))}show(e){this.assertNotDisposed(),this.#e.$show(this.#h,!!e)}assertNotDisposed(){if(this.#y)throw Error("Webview is disposed")}}class l3{constructor(e,t){this._extHostWebview=t,this._viewProviders=new Map,this._webviewViews=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadWebviewViews)}registerWebviewViewProvider(e,t,i,r){if(this._viewProviders.has(t))throw Error(`View provider for '${t}' already registered`);return this._viewProviders.set(t,{provider:i,extension:e}),this._proxy.$registerWebviewViewProvider(o8(e),t,{retainContextWhenHidden:r?.retainContextWhenHidden,serializeBuffersForPostMessage:o4(e)}),new eh.Disposable(()=>{this._viewProviders.delete(t),this._proxy.$unregisterWebviewViewProvider(t)})}async $resolveWebviewView(e,t,i,r,n){let o=this._viewProviders.get(t);if(!o)throw Error(`No view provider found for '${t}'`);let{provider:s,extension:a}=o,l=this._extHostWebview.createNewWebview(e,{},a),c=new l6(e,this._proxy,t,i,l,!0);this._webviewViews.set(e,c),await s.resolveWebviewView(c,{state:r},n)}async $onDidChangeWebviewViewVisibility(e,t){this.getWebviewView(e)._setVisible(t)}async $disposeWebviewView(e){let t=this.getWebviewView(e);this._webviewViews.delete(e),t.dispose(),this._extHostWebview.deleteWebview(e)}getWebviewView(e){let t=this._webviewViews.get(e);if(!t)throw Error("No webview found");return t}}var l4=eH;let l5=class extends l4.Disposable{constructor(e){super(),this._handlePool=0,this._providers=new Map,this._itemPool=0,this._items=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadChatContext)}async $provideChatContext(e,t){this._items.delete(e);let i=this._getProvider(e);if(!i.provideChatContextExplicit)throw Error("provideChatContext not implemented");let r=await i.provideChatContextExplicit(t)??[],n=[];for(let t of r){let i=this._addTrackedItem(e,t);n.push({handle:i,icon:t.icon,label:t.label,modelDescription:t.modelDescription,value:t.value})}return n}_addTrackedItem(e,t){let i=this._itemPool++;return this._items.has(e)||this._items.set(e,new Map),this._items.get(e).set(i,t),i}async $provideChatContextForResource(e,t,i){let r=this._getProvider(e);if(!r.provideChatContextForResource)throw Error("provideChatContextForResource not implemented");let n=await r.provideChatContextForResource({resource:eD.URI.revive(t.resource)},i);if(!n)return;let o={handle:this._addTrackedItem(e,n),icon:n.icon,label:n.label,modelDescription:n.modelDescription,value:t.withValue?n.value:void 0};if(t.withValue&&!o.value&&r.resolveChatContext){let e=await r.resolveChatContext(n,i);o.value=e?.value}return o}async _doResolve(e,t,i,r){let n=await e.resolveChatContext(i,r)??t;return{handle:t.handle,icon:n.icon,label:n.label,modelDescription:n.modelDescription,value:n.value}}async $resolveChatContext(e,t,i){let r=this._getProvider(e);if(!r.resolveChatContext)throw Error("resolveChatContext not implemented");let n=this._items.get(e)?.get(t.handle);if(!n)throw Error("Chat context item not found");return this._doResolve(r,t,n,i)}registerChatContextProvider(e,t,i){let r=this._handlePool++,n=new l4.DisposableStore;return this._listenForWorkspaceContextChanges(r,i,n),this._providers.set(r,{provider:i,disposables:n}),this._proxy.$registerChatContextProvider(r,`${t}`,e?e6.DocumentSelector.from(e):void 0,{},{supportsResource:!!i.provideChatContextForResource,supportsResolve:!!i.resolveChatContext}),{dispose:()=>{this._providers.delete(r),this._proxy.$unregisterChatContextProvider(r),n.dispose()}}}_listenForWorkspaceContextChanges(e,t,i){t.onDidChangeWorkspaceChatContext&&t.provideWorkspaceChatContext&&i.add(t.onDidChangeWorkspaceChatContext(async()=>{let i=await t.provideWorkspaceChatContext(ef.CancellationToken.None),r=[];for(let e of i??[]){let i={icon:e.icon,label:e.label,modelDescription:e.modelDescription,value:e.value,handle:this._itemPool++},n=await this._doResolve(t,i,e,ef.CancellationToken.None);r.push(n)}this._proxy.$updateWorkspaceContextItems(e,r)}))}_getProvider(e){if(!this._providers.has(e))throw Error("Chat context provider not found");return this._providers.get(e).provider}dispose(){for(let{disposables:e}of(super.dispose(),this._providers.values()))e.dispose()}};l5=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],l5);var l8=e.i(324566);function l7(e){let t=e.get(ej.IExtHostInitDataService),i=e.get(e$),r=e.get(eq),n=e.get(rB),o=e.get(td),s=e.get(tQ),a=e.get(tD),l=e.get(e3),c=e.get(eP.IExtHostRpcService),d=e.get(i7),u=e.get(ri),h=e.get(eM.ILoggerService),g=e.get(eM.ILogService),p=e.get(ro.IExtHostTunnelService),m=e.get(iM),f=e.get(ru),_=e.get(rp),y=e.get(rM),C=e.get(iV),S=e.get(r$),b=e.get(rv),w=e.get(rw),x=e.get(rT),D=e.get(n6),E=e.get(oi);c.set(ev.ExtHostContext.ExtHostFileSystemInfo,i),c.set(ev.ExtHostContext.ExtHostLogLevelServiceShape,h),c.set(ev.ExtHostContext.ExtHostWorkspace,o),c.set(ev.ExtHostContext.ExtHostConfiguration,a),c.set(ev.ExtHostContext.ExtHostExtensionService,n),c.set(ev.ExtHostContext.ExtHostStorage,d),c.set(ev.ExtHostContext.ExtHostTunnelService,p),c.set(ev.ExtHostContext.ExtHostWindow,f),c.set(ev.ExtHostContext.ExtHostUrls,_),c.set(ev.ExtHostContext.ExtHostSecretState,y),c.set(ev.ExtHostContext.ExtHostTelemetry,s),c.set(ev.ExtHostContext.ExtHostEditorTabs,C),c.set(ev.ExtHostContext.ExtHostManagedSockets,S),c.set(ev.ExtHostContext.ExtHostProgress,b),c.set(ev.ExtHostContext.ExtHostAuthentication,w),c.set(ev.ExtHostContext.ExtHostChatProvider,x),c.set(ev.ExtHostContext.ExtHostDataChannels,E);let k=c.set(ev.ExtHostContext.ExtHostDecorations,e.get(tf)),R=c.set(ev.ExtHostContext.ExtHostDocumentsAndEditors,e.get(ip)),P=c.set(ev.ExtHostContext.ExtHostCommands,e.get(t2)),I=c.set(ev.ExtHostContext.ExtHostTerminalService,e.get(iw)),A=c.set(ev.ExtHostContext.ExtHostTerminalShellIntegration,e.get(nj)),M=c.set(ev.ExtHostContext.ExtHostDebugService,e.get(nv)),L=c.set(ev.ExtHostContext.ExtHostSearch,e.get(nF)),F=c.set(ev.ExtHostContext.ExtHostTask,e.get(iW)),O=c.set(ev.ExtHostContext.ExtHostOutputService,e.get(eJ)),N=c.set(ev.ExtHostContext.ExtHostLocalization,e.get(rO)),$=c.set(ev.ExtHostContext.ExtHostDocuments,new sg(c,R)),H=c.set(ev.ExtHostContext.ExtHostDocumentContentProviders,new sd(c,R,g)),U=c.set(ev.ExtHostContext.ExtHostDocumentSaveParticipant,new sh(g,$,c.getProxy(ev.MainContext.MainThreadBulkEdits))),W=c.set(ev.ExtHostContext.ExtHostNotebook,new la(c,P,R,$,r,L,g)),q=c.set(ev.ExtHostContext.ExtHostNotebookDocuments,new ld(W)),j=c.set(ev.ExtHostContext.ExtHostNotebookEditors,new lu(g,W)),z=c.set(ev.ExtHostContext.ExtHostNotebookKernels,new lp(c,t,W,P,g)),K=c.set(ev.ExtHostContext.ExtHostNotebookRenderers,new ly(c,W)),V=c.set(ev.ExtHostContext.ExtHostNotebookDocumentSaveParticipant,new lc(g,W,c.getProxy(ev.MainContext.MainThreadBulkEdits))),B=c.set(ev.ExtHostContext.ExtHostEditors,new lq(c,R)),G=c.set(ev.ExtHostContext.ExtHostTreeViews,new lJ(c.getProxy(ev.MainContext.MainThreadTreeViews),P,g)),Q=c.set(ev.ExtHostContext.ExtHostEditorInsets,new oZ(c.getProxy(ev.MainContext.MainThreadEditorInsets),B,t.remote)),J=c.set(ev.ExtHostContext.ExtHostDiagnostics,new sl(c,g,i,R)),Y=c.set(ev.ExtHostContext.ExtHostLanguages,new a3(c,$,P.converter,l)),X=c.set(ev.ExtHostContext.ExtHostLanguageFeatures,new as(c,l,$,P,J,g,m,s)),Z=c.set(ev.ExtHostContext.ExtHostCodeMapper,new o0(c)),ee=c.set(ev.ExtHostContext.ExtHostFileSystem,new sC(c,X)),et=c.set(ev.ExtHostContext.ExtHostFileSystemEventService,new sE(c,g,R)),ei=c.set(ev.ExtHostContext.ExtHostQuickOpen,function(e,t,i){let r=e.getProxy(ev.MainContext.MainThreadQuickOpen);class n{static{this._nextId=1}constructor(e,t){this._extension=e,this._onDidDispose=t,this._id=o._nextId++,this._visible=!1,this._expectingHide=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!0,this._value="",this._valueSelection=void 0,this._buttons=[],this._handlesToButtons=new Map,this._onDidAcceptEmitter=new ey.Emitter,this._onDidChangeValueEmitter=new ey.Emitter,this._onDidTriggerButtonEmitter=new ey.Emitter,this._onDidHideEmitter=new ey.Emitter,this._pendingUpdate={id:this._id},this._disposed=!1,this._disposables=[this._onDidTriggerButtonEmitter,this._onDidHideEmitter,this._onDidAcceptEmitter,this._onDidChangeValueEmitter],this.onDidChangeValue=this._onDidChangeValueEmitter.event,this.onDidAccept=this._onDidAcceptEmitter.event,this.onDidTriggerButton=this._onDidTriggerButtonEmitter.event,this.onDidHide=this._onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update({title:e})}get step(){return this._steps}set step(e){this._steps=e,this.update({step:e})}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update({totalSteps:e})}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update({enabled:e})}get busy(){return this._busy}set busy(e){this._busy=e,this.update({busy:e})}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){this._ignoreFocusOut=e,this.update({ignoreFocusOut:e})}get value(){return this._value}set value(e){this._value=e,this.update({value:e})}get valueSelection(){return this._valueSelection}set valueSelection(e){this._valueSelection=e,this.update({valueSelection:e})}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update({placeholder:e})}get buttons(){return this._buttons}set buttons(e){e.some(e=>"number"==typeof e.location||"object"==typeof e.toggle&&"boolean"==typeof e.toggle.checked)&&(0,tp.checkProposedApiEnabled)(this._extension,"quickInputButtonLocation"),this._buttons=e.slice(),this._handlesToButtons.clear(),e.forEach((e,t)=>{let i=e===eh.QuickInputButtons.Back?-1:t;this._handlesToButtons.set(i,e)}),this.update({buttons:e.map((e,t)=>({iconPathDto:e6.IconPath.from(e.iconPath),tooltip:e.tooltip,handle:e===eh.QuickInputButtons.Back?-1:t,location:"number"==typeof e.location?e.location:void 0,toggle:"object"==typeof e.toggle&&"boolean"==typeof e.toggle.checked?{checked:e.toggle.checked}:void 0}))})}show(){this._visible=!0,this._expectingHide=!0,this.update({visible:!0})}hide(){this._visible=!1,this.update({visible:!1})}_fireDidAccept(){this._onDidAcceptEmitter.fire()}_fireDidChangeValue(e){this._value=e,this._onDidChangeValueEmitter.fire(e)}_fireDidTriggerButton(e,t){let i=this._handlesToButtons.get(e);i&&(void 0!==t&&i.toggle&&(i.toggle.checked=t),this._onDidTriggerButtonEmitter.fire(i))}_fireDidHide(){this._expectingHide&&(this._expectingHide=this._visible,this._onDidHideEmitter.fire())}dispose(){this._disposed||(this._disposed=!0,this._fireDidHide(),this._disposables=(0,eH.dispose)(this._disposables),this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=void 0),this._onDidDispose(),r.$dispose(this._id))}update(e){if(!this._disposed){for(let t of Object.keys(e)){let i=e[t];this._pendingUpdate[t]=void 0===i?null:i}"visible"in this._pendingUpdate?(this._updateTimeout&&(clearTimeout(this._updateTimeout),this._updateTimeout=void 0),this.dispatchUpdate()):this._visible&&!this._updateTimeout&&(this._updateTimeout=setTimeout(()=>{this._updateTimeout=void 0,this.dispatchUpdate()},0))}}dispatchUpdate(){r.$createOrUpdate(this._pendingUpdate),this._pendingUpdate={id:this._id}}}class o extends n{constructor(e,t){super(e,t),this._items=[],this._handlesToItems=new Map,this._itemsToHandles=new Map,this._canSelectMany=!1,this._matchOnDescription=!0,this._matchOnDetail=!0,this._sortByLabel=!0,this._keepScrollPosition=!1,this._activeItems=[],this._onDidChangeActiveEmitter=new ey.Emitter,this._selectedItems=[],this._onDidChangeSelectionEmitter=new ey.Emitter,this._onDidTriggerItemButtonEmitter=new ey.Emitter,this.onDidChangeActive=this._onDidChangeActiveEmitter.event,this.onDidChangeSelection=this._onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this._onDidTriggerItemButtonEmitter.event,this._disposables.push(this._onDidChangeActiveEmitter,this._onDidChangeSelectionEmitter,this._onDidTriggerItemButtonEmitter),this.update({type:"quickPick"})}get items(){return this._items}set items(e){this._items=e.slice(),this._handlesToItems.clear(),this._itemsToHandles.clear(),e.forEach((e,t)=>{this._handlesToItems.set(t,e),this._itemsToHandles.set(e,t)});let t=[];for(let i=0;i<e.length;i++){let r=e[i];r.kind===eh.QuickPickItemKind.Separator?t.push({type:"separator",label:r.label}):(r.tooltip&&(0,tp.checkProposedApiEnabled)(this._extension,"quickPickItemTooltip"),t.push({handle:i,label:r.label,iconPathDto:e6.IconPath.from(r.iconPath),description:r.description,detail:r.detail,picked:r.picked,alwaysShow:r.alwaysShow,tooltip:e6.MarkdownString.fromStrict(r.tooltip),resourceUri:r.resourceUri,buttons:r.buttons?.map((e,t)=>({iconPathDto:e6.IconPath.from(e.iconPath),tooltip:e.tooltip,handle:t}))}))}this.update({items:t})}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update({canSelectMany:e})}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update({matchOnDescription:e})}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update({matchOnDetail:e})}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update({sortByLabel:e})}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e,this.update({keepScrollPosition:e})}get prompt(){return this._prompt}set prompt(e){this._prompt=e,this.update({prompt:e})}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e.filter(e=>this._itemsToHandles.has(e)),this.update({activeItems:this._activeItems.map(e=>this._itemsToHandles.get(e))})}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e.filter(e=>this._itemsToHandles.has(e)),this.update({selectedItems:this._selectedItems.map(e=>this._itemsToHandles.get(e))})}_fireDidChangeActive(e){let t=(0,eY.coalesce)(e.map(e=>this._handlesToItems.get(e)));this._activeItems=t,this._onDidChangeActiveEmitter.fire(t)}_fireDidChangeSelection(e){let t=(0,eY.coalesce)(e.map(e=>this._handlesToItems.get(e)));this._selectedItems=t,this._onDidChangeSelectionEmitter.fire(t)}_fireDidTriggerItemButton(e,t){let i=this._handlesToItems.get(e);if(!i||!i.buttons||!i.buttons.length)return;let r=i.buttons[t];r&&this._onDidTriggerItemButtonEmitter.fire({button:r,item:i})}}class s extends n{constructor(e,t){super(e,t),this._password=!1,this.update({type:"inputBox"})}get password(){return this._password}set password(e){this._password=e,this.update({password:e})}get prompt(){return this._prompt}set prompt(e){this._prompt=e,this.update({prompt:e})}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,e?"string"==typeof e?this.update({validationMessage:e,severity:tt.default.Error}):this.update({validationMessage:e.message,severity:e.severity??tt.default.Error}):this.update({validationMessage:void 0,severity:tt.default.Ignore})}}return new class{constructor(e,t){this._sessions=new Map,this._instances=0,this._workspace=e,this._commands=t}showQuickPick(e,t,i,n=ef.CancellationToken.None){this._onDidSelectItem=void 0;let o=Promise.resolve(t),s=++this._instances,a=r.$show(s,{title:i?.title,placeHolder:i?.placeHolder,prompt:i?.prompt,matchOnDescription:i?.matchOnDescription,matchOnDetail:i?.matchOnDetail,ignoreFocusLost:i?.ignoreFocusOut,canPickMany:i?.canPickMany},n),l={};return Promise.race([a.then(()=>l),o]).then(t=>{if(t!==l)return o.then(t=>{let n=[];for(let i=0;i<t.length;i++){let r=t[i];"string"==typeof r?n.push({label:r,handle:i}):r.kind===eh.QuickPickItemKind.Separator?n.push({type:"separator",label:r.label}):(r.tooltip&&(0,tp.checkProposedApiEnabled)(e,"quickPickItemTooltip"),n.push({label:r.label,iconPathDto:e6.IconPath.from(r.iconPath),description:r.description,detail:r.detail,picked:r.picked,alwaysShow:r.alwaysShow,tooltip:e6.MarkdownString.fromStrict(r.tooltip),resourceUri:r.resourceUri,handle:i}))}return i&&"function"==typeof i.onDidSelectItem&&(this._onDidSelectItem=e=>{i.onDidSelectItem(t[e])}),r.$setItems(s,n),a.then(e=>"number"==typeof e?t[e]:Array.isArray(e)?e.map(e=>t[e]):void 0)})}).then(void 0,e=>{if(!(0,eg.isCancellationError)(e))return r.$setError(s,e),Promise.reject(e)})}$onItemSelected(e){this._onDidSelectItem?.(e)}showInput(e,t=ef.CancellationToken.None){return this._validateInput=e?.validateInput,r.$input(e,"function"==typeof this._validateInput,t).then(void 0,e=>{if(!(0,eg.isCancellationError)(e))return Promise.reject(e)})}async $validateInput(e){let t;if(!this._validateInput)return;let i=await this._validateInput(e);if(!i||"string"==typeof i)return i;switch(i.severity){case eh.InputBoxValidationSeverity.Info:t=tt.default.Info;break;case eh.InputBoxValidationSeverity.Warning:t=tt.default.Warning;break;case eh.InputBoxValidationSeverity.Error:t=tt.default.Error;break;default:t=i.message?tt.default.Error:tt.default.Ignore}return{content:i.message,severity:t}}async showWorkspaceFolderPick(e,t=ef.CancellationToken.None){let i=await this._commands.executeCommand("_workbench.pickWorkspaceFolder",[e]);if(!i)return;let r=await this._workspace.getWorkspaceFolders2();if(r)return r.find(e=>e.uri.toString()===i.uri.toString())}createQuickPick(e){let t=new o(e,()=>this._sessions.delete(t._id));return this._sessions.set(t._id,t),t}createInputBox(e){let t=new s(e,()=>this._sessions.delete(t._id));return this._sessions.set(t._id,t),t}$onDidChangeValue(e,t){let i=this._sessions.get(e);i?._fireDidChangeValue(t)}$onDidAccept(e){let t=this._sessions.get(e);t?._fireDidAccept()}$onDidChangeActive(e,t){let i=this._sessions.get(e);i instanceof o&&i._fireDidChangeActive(t)}$onDidChangeSelection(e,t){let i=this._sessions.get(e);i instanceof o&&i._fireDidChangeSelection(t)}$onDidTriggerButton(e,t,i){let r=this._sessions.get(e);r?._fireDidTriggerButton(t,i)}$onDidTriggerItemButton(e,t,i){let r=this._sessions.get(e);r instanceof o&&r._fireDidTriggerItemButton(t,i)}$onDidHide(e){let t=this._sessions.get(e);t?._fireDidHide()}}(t,i)}(c,o,P)),er=c.set(ev.ExtHostContext.ExtHostSCM,new lF(c,P,$,g)),en=c.set(ev.ExtHostContext.ExtHostQuickDiff,new lS(c,l)),eo=c.set(ev.ExtHostContext.ExtHostShare,new lO(c,l)),es=c.set(ev.ExtHostContext.ExtHostComments,function(e,t,i){let r=e.getProxy(ev.MainContext.MainThreadComments);class n{static{this.handlePool=0}constructor(){this._commentControllers=new Map,this._commentControllersByExtension=new eI.ExtensionIdentifierMap,t.registerArgumentProcessor({processArgument:e=>{if(e&&e.$mid===iS.MarshalledId.CommentController){let t=this._commentControllers.get(e.handle);return t?t.value:e}if(e&&e.$mid===iS.MarshalledId.CommentThread){let t=this._commentControllers.get(e.commentControlHandle);if(!t)return e;let i=t.getCommentThread(e.commentThreadHandle);return i?i.value:e}if(e&&(e.$mid===iS.MarshalledId.CommentThreadReply||e.$mid===iS.MarshalledId.CommentThreadInstance)){let t=this._commentControllers.get(e.thread.commentControlHandle);if(!t)return e;let i=t.getCommentThread(e.thread.commentThreadHandle);return i?e.$mid===iS.MarshalledId.CommentThreadInstance?i.value:{thread:i.value,text:e.text}:e}if(e&&e.$mid===iS.MarshalledId.CommentNode){let t=this._commentControllers.get(e.thread.commentControlHandle);if(!t)return e;let i=t.getCommentThread(e.thread.commentThreadHandle);if(!i)return e;let r=e.commentUniqueId,n=i.getCommentByUniqueId(r);return n||e}if(e&&e.$mid===iS.MarshalledId.CommentThreadNode){let t=this._commentControllers.get(e.thread.commentControlHandle);if(!t)return e;let i=t.getCommentThread(e.thread.commentThreadHandle);if(!i)return e;let r=e.text,n=e.commentUniqueId,o=i.getCommentByUniqueId(n);return o?("string"==typeof o.body?o.body=r:o.body=new oN.MarkdownString(r),o):e}return e}})}createCommentController(e,t,i){let r=new s(e,n.handlePool++,t,i);this._commentControllers.set(r.handle,r);let o=this._commentControllersByExtension.get(e.identifier)||[];return o.push(r),this._commentControllersByExtension.set(e.identifier,o),r.value}async $createCommentThreadTemplate(e,t,i,r){let n=this._commentControllers.get(e);n&&n.$createCommentThreadTemplate(t,i,r)}async $setActiveComment(e,t){let i=this._commentControllers.get(e);i&&i.$setActiveComment(t??void 0)}async $updateCommentThreadTemplate(e,t,i){let r=this._commentControllers.get(e);r&&r.$updateCommentThreadTemplate(t,i)}$deleteCommentThread(e,t){let i=this._commentControllers.get(e);i?.$deleteCommentThread(t)}async $updateCommentThread(e,t,i){let r=this._commentControllers.get(e);r?.$updateCommentThread(t,i)}async $provideCommentingRanges(e,t,r){let n=this._commentControllers.get(e);if(!n||!n.commentingRangeProvider)return Promise.resolve(void 0);let o=await i.ensureDocumentData(eD.URI.revive(t));return(0,eU.asPromise)(async()=>{let e=await n.commentingRangeProvider?.provideCommentingRanges(o.document,r);return Array.isArray(e)?{ranges:e,fileComments:!1}:e?{ranges:e.ranges||[],fileComments:e.enableFileComments||!1}:e??void 0}).then(e=>{let t;return e&&(t={ranges:e.ranges.map(e=>e6.Range.from(e)),fileComments:e.fileComments}),t})}$toggleReaction(e,t,i,r,n){let o=this._commentControllers.get(e);return o&&o.reactionHandler?(0,eU.asPromise)(()=>{let e=o.getCommentThread(t);if(e){let t=e.getCommentByUniqueId(r.uniqueIdInThread);if(void 0!==o&&t&&o.reactionHandler){var i;return o.reactionHandler(t,{label:(i=n).label||"",count:i.count||0,iconPath:i.iconPath?eD.URI.revive(i.iconPath):"",authorHasReacted:i.hasReacted||!1,reactors:i.reactors?.map(e=>({name:e}))})}}return Promise.resolve(void 0)}):Promise.resolve(void 0)}}class o{static{this._handlePool=0}set threadId(e){this._id=e}get threadId(){return this._id}get id(){return this._id}get resource(){return this._uri}get uri(){return this._uri}set range(e){void 0===e==(void 0===this._range)&&e&&this._range&&e.isEqual(this._range)||(this._range=e,this.modifications.range=e,this._onDidUpdateCommentThread.fire())}get range(){return this._range}set canReply(e){this._canReply!==e&&(this._canReply=e,this.modifications.canReply=e,this._onDidUpdateCommentThread.fire())}get canReply(){return this._canReply}get label(){return this._label}set label(e){this._label=e,this.modifications.label=e,this._onDidUpdateCommentThread.fire()}get contextValue(){return this._contextValue}set contextValue(e){this._contextValue=e,this.modifications.contextValue=e,this._onDidUpdateCommentThread.fire()}get comments(){return this._comments}set comments(e){this._comments=e,this.modifications.comments=e,this._onDidUpdateCommentThread.fire()}get collapsibleState(){return this._collapseState}set collapsibleState(e){this._collapseState!==e&&(this._collapseState=e,this.modifications.collapsibleState=e,this._onDidUpdateCommentThread.fire())}get state(){return this._state}set state(e){this._state=e,"object"==typeof e?((0,tp.checkProposedApiEnabled)(this.extensionDescription,"commentThreadApplicability"),this.modifications.state=e.resolved,this.modifications.applicability=e.applicability):this.modifications.state=e,this._onDidUpdateCommentThread.fire()}get isDisposed(){return this._isDiposed}constructor(e,t,i,n,s,l,c,d,u){this._commentControllerHandle=t,this._id=i,this._uri=n,this._range=s,this._comments=l,this.extensionDescription=c,this._isTemplate=d,this.handle=o._handlePool++,this.commentHandle=0,this.modifications=Object.create(null),this._onDidUpdateCommentThread=new ey.Emitter,this.onDidUpdateCommentThread=this._onDidUpdateCommentThread.event,this._canReply=!0,this._commentsMap=new Map,this._acceptInputDisposables=new eH.MutableDisposable,this._acceptInputDisposables.value=new eH.DisposableStore,void 0===this._id&&(this._id=`${e}.${this.handle}`),r.$createCommentThread(t,this.handle,this._id,this._uri,e6.Range.from(this._range),this._comments.map(e=>a(this,e,this._commentsMap,this.extensionDescription)),c.identifier,this._isTemplate,u),this._localDisposables=[],this._isDiposed=!1,this._localDisposables.push(this.onDidUpdateCommentThread(()=>{this.eventuallyUpdateCommentThread()})),this._localDisposables.push({dispose:()=>{r.$deleteCommentThread(t,this.handle)}});const h=this;this.value={get uri(){return h.uri},get range(){return h.range},set range(value){h.range=value},get comments(){return h.comments},set comments(value){h.comments=value},get collapsibleState(){return h.collapsibleState},set collapsibleState(value){h.collapsibleState=value},get canReply(){return h.canReply},set canReply(state){h.canReply=state},get contextValue(){return h.contextValue},set contextValue(value){h.contextValue=value},get label(){return h.label},set label(value){h.label=value},get state(){return h.state},set state(value){h.state=value},reveal:(e,t)=>h.reveal(e,t),hide:()=>h.hide(),dispose:()=>{h.dispose()}}}updateIsTemplate(){this._isTemplate&&(this._isTemplate=!1,this.modifications.isTemplate=!1)}eventuallyUpdateCommentThread(){if(this._isDiposed)return;this.updateIsTemplate(),this._acceptInputDisposables.value||(this._acceptInputDisposables.value=new eH.DisposableStore);let e=e=>Object.prototype.hasOwnProperty.call(this.modifications,e),t={};e("range")&&(t.range=e6.Range.from(this._range)),e("label")&&(t.label=this.label),e("contextValue")&&(t.contextValue=this.contextValue??null),e("comments")&&(t.comments=this._comments.map(e=>a(this,e,this._commentsMap,this.extensionDescription))),e("collapsibleState")&&(t.collapseState=l(this._collapseState)),e("canReply")&&(t.canReply=this.canReply),e("state")&&(t.state=function(e){let t;if(void 0!==(t="object"==typeof e?e.resolved:e))switch(t){case eh.CommentThreadState.Unresolved:break;case eh.CommentThreadState.Resolved:return ow.CommentThreadState.Resolved}return ow.CommentThreadState.Unresolved}(this._state)),e("applicability")&&(t.applicability=function(e){let t;if("object"==typeof e&&(t=e.applicability),void 0!==t)switch(t){case eh.CommentThreadApplicability.Current:break;case eh.CommentThreadApplicability.Outdated:return ow.CommentThreadApplicability.Outdated}return ow.CommentThreadApplicability.Current}(this._state)),e("isTemplate")&&(t.isTemplate=this._isTemplate),this.modifications={},r.$updateCommentThread(this._commentControllerHandle,this.handle,this._id,this._uri,t)}getCommentByUniqueId(e){for(let t of this._commentsMap){let i=t[0];if(e===t[1])return i}}async reveal(e,t){let i;(0,tp.checkProposedApiEnabled)(this.extensionDescription,"commentReveal"),e&&void 0!==e.body?i=e:t=t??e;let n=i?this._commentsMap.get(i):void 0;n??=this._commentsMap.get(this._comments[0]);let o=!0,s=!1;return t?.focus===eh.CommentThreadFocus.Reply?(s=!0,o=!1):t?.focus===eh.CommentThreadFocus.Comment&&(o=!1),r.$revealCommentThread(this._commentControllerHandle,this.handle,n,{preserveFocus:o,focusReply:s})}async hide(){return r.$hideCommentThread(this._commentControllerHandle,this.handle)}dispose(){this._isDiposed=!0,this._acceptInputDisposables.dispose(),this._localDisposables.forEach(e=>e.dispose())}}class s{get id(){return this._id}get label(){return this._label}get handle(){return this._handle}get commentingRangeProvider(){return this._commentingRangeProvider}set commentingRangeProvider(e){this._commentingRangeProvider=e,e?.resourceHints&&(0,tp.checkProposedApiEnabled)(this._extension,"commentingRangeHint"),r.$updateCommentingRanges(this.handle,e?.resourceHints)}get reactionHandler(){return this._reactionHandler}set reactionHandler(e){this._reactionHandler=e,r.$updateCommentControllerFeatures(this.handle,{reactionHandler:!!e})}get options(){return this._options}set options(e){this._options=e,r.$updateCommentControllerFeatures(this.handle,{options:this._options})}get activeComment(){return(0,tp.checkProposedApiEnabled)(this._extension,"activeComment"),this._activeComment}get activeCommentThread(){return(0,tp.checkProposedApiEnabled)(this._extension,"activeComment"),this._activeThread?.value}constructor(e,t,i,n){this._extension=e,this._handle=t,this._id=i,this._label=n,this._threads=new Map,r.$registerCommentController(this.handle,i,n,this._extension.identifier.value);const o=this;this.value=Object.freeze({id:o.id,label:o.label,get options(){return o.options},set options(options){o.options=options},get commentingRangeProvider(){return o.commentingRangeProvider},set commentingRangeProvider(commentingRangeProvider){o.commentingRangeProvider=commentingRangeProvider},get reactionHandler(){return o.reactionHandler},set reactionHandler(handler){o.reactionHandler=handler},get activeCommentThread(){return o.activeCommentThread},createCommentThread:(e,t,i)=>o.createCommentThread(e,t,i).value,dispose:()=>{o.dispose()}}),this._localDisposables=[],this._localDisposables.push({dispose:()=>{r.$unregisterCommentController(this.handle)}})}createCommentThread(e,t,i){let r=new o(this.id,this.handle,void 0,e,t,i,this._extension,!1);return this._threads.set(r.handle,r),r}$setActiveComment(e){if(!e){this._activeComment=void 0,this._activeThread=void 0;return}let t=this._threads.get(e.commentThreadHandle);t&&(this._activeComment=e.uniqueIdInThread?t.getCommentByUniqueId(e.uniqueIdInThread):void 0,this._activeThread=t)}$createCommentThreadTemplate(e,t,i){let r=new o(this.id,this.handle,void 0,eD.URI.revive(e),e6.Range.to(t),[],this._extension,!0,i);return r.collapsibleState=ow.CommentThreadCollapsibleState.Expanded,this._threads.set(r.handle,r),r}$updateCommentThreadTemplate(e,t){let i=this._threads.get(e);i&&(i.range=e6.Range.to(t))}$updateCommentThread(e,t){let i=this._threads.get(e);i&&Object.prototype.hasOwnProperty.call(t,"collapseState")&&(i.collapsibleState=l(t.collapseState))}$deleteCommentThread(e){let t=this._threads.get(e);t?.dispose(),this._threads.delete(e)}getCommentThread(e){return this._threads.get(e)}dispose(){this._threads.forEach(e=>{e.dispose()}),this._localDisposables.forEach(e=>e.dispose())}}function a(e,t,i,r){let n=i.get(t);return n||(n=++e.commentHandle,i.set(t,n)),void 0!==t.state&&(0,tp.checkProposedApiEnabled)(r,"commentsDraftState"),t.reactions?.some(e=>void 0!==e.reactors)&&(0,tp.checkProposedApiEnabled)(r,"commentReactor"),{mode:t.mode,contextValue:t.contextValue,uniqueIdInThread:n,body:"string"==typeof t.body?t.body:e6.MarkdownString.from(t.body),userName:t.author.name,userIconPath:t.author.iconPath,label:t.label,commentReactions:t.reactions?t.reactions.map(e=>{var t;return{label:(t=e).label,iconPath:t.iconPath?(0,e6.pathOrURIToURI)(t.iconPath):void 0,count:t.count,hasReacted:t.authorHasReacted,reactors:t.reactors&&t.reactors.length>0&&"string"!=typeof t.reactors[0]?t.reactors.map(e=>e.name):t.reactors}}):void 0,state:t.state,timestamp:t.timestamp?.toJSON()}}function l(e){if(void 0!==e)switch(e){case eh.CommentThreadCollapsibleState.Expanded:return ow.CommentThreadCollapsibleState.Expanded;case eh.CommentThreadCollapsibleState.Collapsed:}return ow.CommentThreadCollapsibleState.Collapsed}return new n}(c,P,$)),ea=c.set(ev.ExtHostContext.ExtHostLabelService,new sT(c)),el=c.set(ev.ExtHostContext.ExtHostTheming,new lj(c)),ec=c.set(ev.ExtHostContext.ExtHostTimeline,new lz(c,P)),ed=c.set(ev.ExtHostContext.ExtHostWebviews,new o5(c,t.remote,o,g,m)),eu=c.set(ev.ExtHostContext.ExtHostWebviewPanels,new l1(c,ed,o)),ek=c.set(ev.ExtHostContext.ExtHostCustomEditors,new sr(c,$,u,ed,eu)),eT=c.set(ev.ExtHostContext.ExtHostWebviewViews,new l3(c,ed)),eR=c.set(ev.ExtHostContext.ExtHostTesting,e.get(r4)),eA=c.set(ev.ExtHostContext.ExtHostUriOpeners,new lX(c)),eL=c.set(ev.ExtHostContext.ExtHostProfileContentHandlers,new lC(c)),eF=c.set(ev.ExtHostContext.ExtHostChatOutputRenderer,new oz(c,ed));c.set(ev.ExtHostContext.ExtHostInteractive,new sk(c,W,R,P,g));let eN=c.set(ev.ExtHostContext.ExtHostLanguageModelTools,new a6(c,x)),eW=c.set(ev.ExtHostContext.ExtHostChatSessions,new oQ(P,x,c,g)),ez=c.set(ev.ExtHostContext.ExtHostChatAgents2,new oH(c,g,P,$,R,x,J,eN)),eK=c.set(ev.ExtHostContext.ExtHostChatContext,new l5(c)),eV=c.set(ev.ExtHostContext.ExtHostAiRelatedInformation,new oS(c)),eB=c.set(ev.ExtHostContext.ExtHostAiEmbeddingVector,new sm(c)),eG=c.set(ev.ExtHostContext.ExtHostAiSettingsSearch,new ob(c)),eQ=c.set(ev.ExtHostContext.ExtHostStatusBar,new lU(c,P.converter)),eX=c.set(ev.ExtHostContext.ExtHostSpeech,new lN(c)),eZ=c.set(ev.ExtHostContext.ExtHostEmbeddings,new sp(c));c.set(ev.ExtHostContext.ExtHostMcp,e.get(n6));let e0=Object.values(ev.ExtHostContext);c.assertRegistered(e0);let e1=new oA(c,R),e2=new oY(c),e4=new a4(c,g),e5=new sc(c),e8=new oJ(c);return oR.register(P),function(e,a,l){function c(t){return(i,r,n)=>{let o=t(t=>{try{i.call(r,t)}catch(t){(0,eg.onUnexpectedExternalError)(new eI.ExtensionError(e.identifier,t,"FAILED to handle event"))}});return n?.push(o),o}}let d=function(){let t=!e.isUnderDevelopment;function i(){t||(g.info(`Extension '${e.identifier.value}' uses a document selector without scheme. Learn more about this: https://go.microsoft.com/fwlink/?linkid=872305`),t=!0)}return function t(r){return Array.isArray(r)?r.forEach(t):"string"==typeof r?i():(void 0===r.scheme&&i(),"boolean"==typeof r.exclusive&&(0,tp.checkProposedApiEnabled)(e,"documentFiltersExclusive")),r}}(),u=t.remote.isRemote?eh.ExtensionKind.Workspace:eh.ExtensionKind.UI,h={get rootPath(){return m.report("workspace.rootPath",e,"Please use 'workspace.workspaceFolders' instead. More details: https://aka.ms/vscode-eliminating-rootpath"),o.getPath()},set rootPath(value){throw new eg.ReadonlyError("rootPath")},getWorkspaceFolder:e=>o.getWorkspaceFolder(e),get workspaceFolders(){return o.getWorkspaceFolders()},get name(){return o.name},set name(value){throw new eg.ReadonlyError("name")},get workspaceFile(){return o.workspaceFile},set workspaceFile(value){throw new eg.ReadonlyError("workspaceFile")},updateWorkspaceFolders:(t,i,...r)=>o.updateWorkspaceFolders(e,t,i||0,...r),onDidChangeWorkspaceFolders:function(e,t,i){return c(o.onDidChangeWorkspace)(e,t,i)},asRelativePath:(e,t)=>o.getRelativePath(e,t),findFiles:(t,i,r,n)=>o.findFiles(t,i,r,e.identifier,n),findFiles2:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"findFiles2"),o.findFiles2(t,i,e.identifier,r)),findTextInFiles:(t,i,r,n)=>{let s,a;return(0,tp.checkProposedApiEnabled)(e,"findTextInFiles"),"object"==typeof i?(s=i,a=r):(s={},a=i,n=r),o.findTextInFiles(t,s||{},a,e.identifier,n)},findTextInFiles2:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"findTextInFiles2"),(0,tp.checkProposedApiEnabled)(e,"textSearchProvider2"),o.findTextInFiles2(t,i,e.identifier,r)),save:e=>o.save(e),saveAs:e=>o.saveAs(e),saveAll:e=>o.saveAll(e),applyEdit:(t,i)=>e1.applyWorkspaceEdit(t,e,i),createFileSystemWatcher:(t,r,n,s)=>et.createFileSystemWatcher(o,l,i,e,t,{ignoreCreateEvents:!!r,ignoreChangeEvents:!!n,ignoreDeleteEvents:!!s}),get textDocuments(){return $.getAllDocumentData().map(e=>e.document)},set textDocuments(value){throw new eg.ReadonlyError("textDocuments")},openTextDocument(t,i){let r;if(i=i??t,"string"==typeof t)r=Promise.resolve(eD.URI.file(t));else if(eD.URI.isUri(t))r=Promise.resolve(t);else if(i&&"object"!=typeof i)throw Error("illegal argument - uriOrFileNameOrOptions");else r=$.createDocumentData(i);return r.then(t=>(g.trace(`openTextDocument from ${e.identifier}`),t.scheme!==eO.Schemas.vscodeRemote||t.authority||m.report("workspace.openTextDocument",e,"A URI of 'vscode-remote' scheme requires an authority."),$.ensureDocumentData(t,i).then(e=>e.document)))},onDidOpenTextDocument:(e,t,i)=>c($.onDidAddDocument)(e,t,i),onDidCloseTextDocument:(e,t,i)=>c($.onDidRemoveDocument)(e,t,i),onDidChangeTextDocument:(t,i,r)=>(0,tp.isProposedApiEnabled)(e,"textDocumentChangeReason")?c($.onDidChangeDocumentWithReason)(t,i,r):c($.onDidChangeDocument)(t,i,r),onDidSaveTextDocument:(e,t,i)=>c($.onDidSaveDocument)(e,t,i),onWillSaveTextDocument:(t,i,r)=>c(U.getOnWillSaveTextDocumentEvent(e))(t,i,r),get notebookDocuments(){return W.notebookDocuments.map(e=>e.apiNotebook)},async openNotebookDocument(e,t){let i;if(eD.URI.isUri(e))i=e,await W.openNotebookDocument(e);else if("string"==typeof e)i=eD.URI.revive(await W.createNotebookDocument({viewType:e,content:t}));else throw Error("Invalid arguments");return W.getNotebookDocument(i).apiNotebook},onDidSaveNotebookDocument:(e,t,i)=>c(q.onDidSaveNotebookDocument)(e,t,i),onDidChangeNotebookDocument:(e,t,i)=>c(q.onDidChangeNotebookDocument)(e,t,i),onWillSaveNotebookDocument:(t,i,r)=>c(V.getOnWillSaveNotebookDocumentEvent(e))(t,i,r),get onDidOpenNotebookDocument(){return c(W.onDidOpenNotebookDocument)},get onDidCloseNotebookDocument(){return c(W.onDidCloseNotebookDocument)},registerNotebookSerializer:(t,i,r,n)=>W.registerNotebookSerializer(e,t,i,r,(0,tp.isProposedApiEnabled)(e,"notebookLiveShare")?n:void 0),onDidChangeConfiguration:(e,t,i)=>c(l.onDidChangeConfiguration)(e,t,i),getConfiguration(t,i){return i=1==arguments.length?void 0:i,l.getConfiguration(t,i,e)},registerTextDocumentContentProvider:(e,t)=>H.registerTextDocumentContentProvider(e,t),registerTaskProvider:(t,i)=>(m.report("window.registerTaskProvider",e,"Use the corresponding function on the 'tasks' namespace instead"),F.registerTaskProvider(e,t,i)),registerFileSystemProvider:(t,i,n)=>(0,eH.combinedDisposable)(ee.registerFileSystemProvider(e,t,i,n),r.addFileSystemProvider(t,i,n)),get fs(){return r.value},registerFileSearchProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"fileSearchProvider"),L.registerFileSearchProviderOld(t,i)),registerTextSearchProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"textSearchProvider"),L.registerTextSearchProviderOld(t,i)),registerAITextSearchProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"aiTextSearchProvider"),(0,tp.checkProposedApiEnabled)(e,"textSearchProvider2"),L.registerAITextSearchProvider(t,i)),registerFileSearchProvider2:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"fileSearchProvider2"),L.registerFileSearchProvider(t,i)),registerTextSearchProvider2:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"textSearchProvider2"),L.registerTextSearchProvider(t,i)),registerRemoteAuthorityResolver:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"resolvers"),n.registerRemoteAuthorityResolver(t,i)),registerResourceLabelFormatter:t=>((0,tp.checkProposedApiEnabled)(e,"resolvers"),ea.$registerResourceLabelFormatter(t)),getRemoteExecServer:t=>((0,tp.checkProposedApiEnabled)(e,"resolvers"),n.getRemoteExecServer(t)),onDidCreateFiles:(e,t,i)=>c(et.onDidCreateFile)(e,t,i),onDidDeleteFiles:(e,t,i)=>c(et.onDidDeleteFile)(e,t,i),onDidRenameFiles:(e,t,i)=>c(et.onDidRenameFile)(e,t,i),onWillCreateFiles:(t,i,r)=>c(et.getOnWillCreateFileEvent(e))(t,i,r),onWillDeleteFiles:(t,i,r)=>c(et.getOnWillDeleteFileEvent(e))(t,i,r),onWillRenameFiles:(t,i,r)=>c(et.getOnWillRenameFileEvent(e))(t,i,r),openTunnel:t=>((0,tp.checkProposedApiEnabled)(e,"tunnels"),p.openTunnel(e,t).then(e=>{if(!e)throw Error("cannot open tunnel");return e})),get tunnels(){return(0,tp.checkProposedApiEnabled)(e,"tunnels"),p.getTunnels()},onDidChangeTunnels:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"tunnels"),c(p.onDidChangeTunnels)(t,i,r)),registerPortAttributesProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"portsAttributes"),p.registerPortsAttributesProvider(t,i)),registerTunnelProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"tunnelFactory"),p.registerTunnelProvider(t,i)),registerTimelineProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"timeline"),ec.registerTimelineProvider(t,i,e.identifier,P.converter)),get isTrusted(){return o.trusted},requestWorkspaceTrust:t=>((0,tp.checkProposedApiEnabled)(e,"workspaceTrust"),o.requestWorkspaceTrust(t)),onDidGrantWorkspaceTrust:(e,t,i)=>c(o.onDidGrantWorkspaceTrust)(e,t,i),registerEditSessionIdentityProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"editSessionIdentityProvider"),o.registerEditSessionIdentityProvider(t,i)),onWillCreateEditSessionIdentity:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"editSessionIdentityProvider"),c(o.getOnWillCreateEditSessionIdentityEvent(e))(t,i,r)),registerCanonicalUriProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"canonicalUriProvider"),o.registerCanonicalUriProvider(t,i)),getCanonicalUri:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"canonicalUriProvider"),o.provideCanonicalUri(t,i,r)),decode:(e,t)=>o.decode(e,t),encode:(e,t)=>o.encode(e,t)};return{version:t.version,ai:{getRelatedInformation:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"aiRelatedInformation"),eV.getRelatedInformation(e,t,i)),registerRelatedInformationProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"aiRelatedInformation"),eV.registerRelatedInformationProvider(e,t,i)),registerEmbeddingVectorProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"aiRelatedInformation"),eB.registerEmbeddingVectorProvider(e,t,i)),registerSettingsSearchProvider:t=>((0,tp.checkProposedApiEnabled)(e,"aiSettingsSearch"),eG.registerSettingsSearchProvider(e,t))},authentication:{getSession:(t,i,r)=>(("object"==typeof r?.forceNewSession&&r.forceNewSession.learnMore||"object"==typeof r?.createIfNone&&r.createIfNone.learnMore)&&(0,tp.checkProposedApiEnabled)(e,"authLearnMore"),r?.authorizationServer&&(0,tp.checkProposedApiEnabled)(e,"authIssuers"),w.getSession(e,t,i,r)),getAccounts:e=>w.getAccounts(e),hasSession:async(t,i)=>((0,tp.checkProposedApiEnabled)(e,"authSession"),!!await w.getSession(e,t,i,{silent:!0})),get onDidChangeSessions(){return c(w.getExtensionScopedSessionsEvent(e.identifier.value))},registerAuthenticationProvider:(t,i,r,n)=>(n?.supportedAuthorizationServers&&(0,tp.checkProposedApiEnabled)(e,"authIssuers"),w.registerAuthenticationProvider(t,i,r,n))},commands:{registerCommand:(t,i,r)=>P.registerCommand(!0,t,i,r,void 0,e),registerTextEditorCommand:(t,i,r)=>P.registerCommand(!0,t,(...e)=>{let n=B.getActiveTextEditor();return n?n.edit(t=>{i.apply(r,[n,t,...e])}).then(e=>{e||g.warn("Edits from command "+t+" were not applied.")},e=>{g.warn("An error occurred while running command "+t,e)}):void g.warn("Cannot execute "+t+" because there is no active text editor.")},void 0,void 0,e),registerDiffInformationCommand:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"diffCommand"),P.registerCommand(!0,t,async(...e)=>{let n=R.activeEditor(!0);if(!n)return void g.warn("Cannot execute "+t+" because there is no active text editor.");let o=await B.getDiffInformation(n.id);i.apply(r,[o,...e])},void 0,void 0,e)),executeCommand:(e,...t)=>P.executeCommand(e,...t),getCommands:(e=!1)=>P.getCommands(e)},comments:{createCommentController:(t,i)=>es.createCommentController(e,t,i)},chat:{registerMappedEditsProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"mappedEditsProvider"),{dispose(){}}),registerMappedEditsProvider2:t=>((0,tp.checkProposedApiEnabled)(e,"mappedEditsProvider"),Z.registerMappedEditsProvider(e,t)),createChatParticipant:(t,i)=>ez.createChatAgent(e,t,i),createDynamicChatParticipant:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"chatParticipantPrivate"),ez.createDynamicChatAgent(e,t,i,r)),registerChatParticipantDetectionProvider:t=>((0,tp.checkProposedApiEnabled)(e,"chatParticipantPrivate"),ez.registerChatParticipantDetectionProvider(e,t)),registerRelatedFilesProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"chatEditing"),ez.registerRelatedFilesProvider(e,t,i)),onDidDisposeChatSession:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"chatParticipantPrivate"),c(ez.onDidDisposeChatSession)(t,i,r)),registerChatSessionItemProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"chatSessionsProvider"),eW.registerChatSessionItemProvider(e,t,i)),registerChatSessionContentProvider:(t,i,r,n)=>((0,tp.checkProposedApiEnabled)(e,"chatSessionsProvider"),eW.registerChatSessionContentProvider(e,t,r,i,n)),registerChatOutputRenderer:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"chatOutputRenderer"),eF.registerChatOutputRenderer(e,t,i)),registerChatContextProvider:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"chatContextProvider"),eK.registerChatContextProvider(t?d(t):void 0,`${e.id}-${i}`,r)),registerCustomAgentsProvider:t=>((0,tp.checkProposedApiEnabled)(e,"chatParticipantPrivate"),ez.registerCustomAgentsProvider(e,t))},debug:{get activeDebugSession(){return M.activeDebugSession},get activeDebugConsole(){return M.activeDebugConsole},get breakpoints(){return M.breakpoints},get activeStackItem(){return M.activeStackItem},registerDebugVisualizationProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"debugVisualization"),M.registerDebugVisualizationProvider(e,t,i)),registerDebugVisualizationTreeProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"debugVisualization"),M.registerDebugVisualizationTree(e,t,i)),onDidStartDebugSession:(e,t,i)=>c(M.onDidStartDebugSession)(e,t,i),onDidTerminateDebugSession:(e,t,i)=>c(M.onDidTerminateDebugSession)(e,t,i),onDidChangeActiveDebugSession:(e,t,i)=>c(M.onDidChangeActiveDebugSession)(e,t,i),onDidReceiveDebugSessionCustomEvent:(e,t,i)=>c(M.onDidReceiveDebugSessionCustomEvent)(e,t,i),onDidChangeBreakpoints:(e,t,i)=>c(M.onDidChangeBreakpoints)(e,t,i),onDidChangeActiveStackItem:(e,t,i)=>c(M.onDidChangeActiveStackItem)(e,t,i),registerDebugConfigurationProvider:(e,t,i)=>M.registerDebugConfigurationProvider(e,t,i||e_.DebugConfigurationProviderTriggerKind.Initial),registerDebugAdapterDescriptorFactory:(t,i)=>M.registerDebugAdapterDescriptorFactory(e,t,i),registerDebugAdapterTrackerFactory:(e,t)=>M.registerDebugAdapterTrackerFactory(e,t),startDebugging:(e,t,i)=>!i||"object"==typeof i&&"configuration"in i?M.startDebugging(e,t,{parentSession:i}):M.startDebugging(e,t,i||{}),stopDebugging:e=>M.stopDebugging(e),addBreakpoints:e=>M.addBreakpoints(e),removeBreakpoints:e=>M.removeBreakpoints(e),asDebugSourceUri:(e,t)=>M.asDebugSourceUri(e,t)},env:{get machineId(){return t.telemetryInfo.machineId},get devDeviceId(){return(0,tp.checkProposedApiEnabled)(e,"devDeviceId"),t.telemetryInfo.devDeviceId??t.telemetryInfo.machineId},get sessionId(){return t.telemetryInfo.sessionId},get language(){return t.environment.appLanguage},get appName(){return t.environment.appName},get appRoot(){return t.environment.appRoot?.fsPath??""},get appHost(){return t.environment.appHost},get uriScheme(){return t.environment.appUriScheme},get clipboard(){return e2.value},get shell(){return I.getDefaultShell(!1)},get onDidChangeShell(){return c(I.onDidChangeShell)},get isTelemetryEnabled(){return s.getTelemetryConfiguration()},get onDidChangeTelemetryEnabled(){return c(s.onDidChangeTelemetryEnabled)},get telemetryConfiguration(){return(0,tp.checkProposedApiEnabled)(e,"telemetry"),s.getTelemetryDetails()},get onDidChangeTelemetryConfiguration(){return(0,tp.checkProposedApiEnabled)(e,"telemetry"),c(s.onDidChangeTelemetryConfiguration)},get isNewAppInstall(){return tG(t.telemetryInfo.firstSessionDate)},createTelemetryLogger:(t,i)=>(tB.validateSender(t),s.instantiateLogger(e,t,i)),openExternal:async(e,i)=>f.openUri(e,{allowTunneling:t.remote.isRemote??(!!t.remote.authority&&await p.hasTunnelProvider()),allowContributedOpeners:i?.allowContributedOpeners}),async asExternalUri(e){if(e.scheme===t.environment.appUriScheme)return _.createAppUri(e);try{return await f.asExternalUri(e,{allowTunneling:!!t.remote.authority})}catch(t){if((0,eO.matchesScheme)(e,eO.Schemas.http)||(0,eO.matchesScheme)(e,eO.Schemas.https))return e;throw t}},get remoteName(){return(0,oC.getRemoteName)(t.remote.authority)},get remoteAuthority(){return(0,tp.checkProposedApiEnabled)(e,"resolvers"),t.remote.authority},get uiKind(){return t.uiKind},get logLevel(){return g.getLevel()},get onDidChangeLogLevel(){return c(g.onDidChangeLogLevel)},get appQuality(){return(0,tp.checkProposedApiEnabled)(e,"resolvers"),t.quality},get appCommit(){return(0,tp.checkProposedApiEnabled)(e,"resolvers"),t.commit},getDataChannel:t=>((0,tp.checkProposedApiEnabled)(e,"dataChannels"),E.createDataChannel(e,t))},extensions:{getExtension(t,i){(0,tp.isProposedApiEnabled)(e,"extensionsAny")||(i=!1);let r=a.mine.getExtensionDescription(t);if(r)return new rG(n,e.identifier,r,u,!1);if(i){let i=a.all.getExtensionDescription(t);if(i)return new rG(n,e.identifier,i,u,!0)}},get all(){let t=[];for(let i of a.mine.getAllExtensionDescriptions())t.push(new rG(n,e.identifier,i,u,!1));return t},get allAcrossExtensionHosts(){(0,tp.checkProposedApiEnabled)(e,"extensionsAny");let t=new eI.ExtensionIdentifierSet(a.mine.getAllExtensionDescriptions().map(e=>e.identifier)),i=[];for(let r of a.all.getAllExtensionDescriptions()){let o=!t.has(r.identifier);i.push(new rG(n,e.identifier,r,u,o))}return i},get onDidChange(){if((0,tp.isProposedApiEnabled)(e,"extensionsAny"))return c(ey.Event.any(a.mine.onDidChange,a.all.onDidChange));return c(a.mine.onDidChange)}},interactive:{transferActiveChat:t=>((0,tp.checkProposedApiEnabled)(e,"interactive"),ez.transferActiveChat(t))},l10n:{t(...t){if("string"==typeof t[0]){let i=t.shift(),r=t&&"object"==typeof t[0]?t[0]:t;return N.getMessage(e.identifier.value,{message:i,args:r})}return N.getMessage(e.identifier.value,t[0])},get bundle(){return N.getBundle(e.identifier.value)},get uri(){return N.getBundleUri(e.identifier.value)}},languages:{createDiagnosticCollection:t=>J.createDiagnosticCollection(e.identifier,t),get onDidChangeDiagnostics(){return c(J.onDidChangeDiagnostics)},getDiagnostics:e=>J.getDiagnostics(e),getLanguages:()=>Y.getLanguages(),setTextDocumentLanguage:(e,t)=>Y.changeLanguage(e.uri,t),match(e,t){let i,r=e6.LanguageSelector.from(e);return(0,oy.targetsNotebooks)(r)&&(i=W.notebookDocuments.find(e=>e.apiNotebook.getCells().find(e=>e.document===t))?.apiNotebook),(0,oy.score)(r,t.uri,t.languageId,!0,i?.uri,i?.notebookType)},registerCodeActionsProvider:(t,i,r)=>X.registerCodeActionProvider(e,d(t),i,r),registerDocumentPasteEditProvider:(t,i,r)=>X.registerDocumentPasteEditProvider(e,d(t),i,r),registerCodeLensProvider:(t,i)=>X.registerCodeLensProvider(e,d(t),i),registerDefinitionProvider:(t,i)=>X.registerDefinitionProvider(e,d(t),i),registerDeclarationProvider:(t,i)=>X.registerDeclarationProvider(e,d(t),i),registerImplementationProvider:(t,i)=>X.registerImplementationProvider(e,d(t),i),registerTypeDefinitionProvider:(t,i)=>X.registerTypeDefinitionProvider(e,d(t),i),registerHoverProvider:(t,i)=>X.registerHoverProvider(e,d(t),i,e.identifier),registerEvaluatableExpressionProvider:(t,i)=>X.registerEvaluatableExpressionProvider(e,d(t),i,e.identifier),registerInlineValuesProvider:(t,i)=>X.registerInlineValuesProvider(e,d(t),i,e.identifier),registerDocumentHighlightProvider:(t,i)=>X.registerDocumentHighlightProvider(e,d(t),i),registerMultiDocumentHighlightProvider:(t,i)=>X.registerMultiDocumentHighlightProvider(e,d(t),i),registerLinkedEditingRangeProvider:(t,i)=>X.registerLinkedEditingRangeProvider(e,d(t),i),registerReferenceProvider:(t,i)=>X.registerReferenceProvider(e,d(t),i),registerRenameProvider:(t,i)=>X.registerRenameProvider(e,d(t),i),registerNewSymbolNamesProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"newSymbolNamesProvider"),X.registerNewSymbolNamesProvider(e,d(t),i)),registerDocumentSymbolProvider:(t,i,r)=>X.registerDocumentSymbolProvider(e,d(t),i,r),registerWorkspaceSymbolProvider:t=>X.registerWorkspaceSymbolProvider(e,t),registerDocumentFormattingEditProvider:(t,i)=>X.registerDocumentFormattingEditProvider(e,d(t),i),registerDocumentRangeFormattingEditProvider:(t,i)=>X.registerDocumentRangeFormattingEditProvider(e,d(t),i),registerOnTypeFormattingEditProvider:(t,i,r,...n)=>X.registerOnTypeFormattingEditProvider(e,d(t),i,[r].concat(n)),registerDocumentSemanticTokensProvider:(t,i,r)=>X.registerDocumentSemanticTokensProvider(e,d(t),i,r),registerDocumentRangeSemanticTokensProvider:(t,i,r)=>X.registerDocumentRangeSemanticTokensProvider(e,d(t),i,r),registerSignatureHelpProvider:(t,i,r,...n)=>"object"==typeof r?X.registerSignatureHelpProvider(e,d(t),i,r):X.registerSignatureHelpProvider(e,d(t),i,void 0===r?[]:[r,...n]),registerCompletionItemProvider:(t,i,...r)=>X.registerCompletionItemProvider(e,d(t),i,r),registerInlineCompletionItemProvider:(t,i,r)=>(i.handleDidShowCompletionItem&&(0,tp.checkProposedApiEnabled)(e,"inlineCompletionsAdditions"),i.handleDidPartiallyAcceptCompletionItem&&(0,tp.checkProposedApiEnabled)(e,"inlineCompletionsAdditions"),r&&(0,tp.checkProposedApiEnabled)(e,"inlineCompletionsAdditions"),X.registerInlineCompletionsProvider(e,d(t),i,r)),get inlineCompletionsUnificationState(){return(0,tp.checkProposedApiEnabled)(e,"inlineCompletionsAdditions"),X.inlineCompletionsUnificationState},onDidChangeCompletionsUnificationState:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"inlineCompletionsAdditions"),c(X.onDidChangeInlineCompletionsUnificationState)(t,i,r)),registerDocumentLinkProvider:(t,i)=>X.registerDocumentLinkProvider(e,d(t),i),registerColorProvider:(t,i)=>X.registerColorProvider(e,d(t),i),registerFoldingRangeProvider:(t,i)=>X.registerFoldingRangeProvider(e,d(t),i),registerSelectionRangeProvider:(t,i)=>X.registerSelectionRangeProvider(e,t,i),registerCallHierarchyProvider:(t,i)=>X.registerCallHierarchyProvider(e,t,i),registerTypeHierarchyProvider:(t,i)=>X.registerTypeHierarchyProvider(e,t,i),setLanguageConfiguration:(t,i)=>X.setLanguageConfiguration(e,t,i),getTokenInformationAtPosition:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"tokenInformation"),Y.tokenAtPosition(t,i)),registerInlayHintsProvider:(t,i)=>X.registerInlayHintsProvider(e,t,i),createLanguageStatusItem:(t,i)=>Y.createLanguageStatusItem(e,t,i),registerDocumentDropEditProvider:(t,i,r)=>X.registerDocumentOnDropEditProvider(e,t,i,r)},lm:{selectChatModels:t=>x.selectLanguageModels(e,t??{}),onDidChangeChatModels:(e,t,i)=>x.onDidChangeProviders(e,t,i),registerLanguageModelChatProvider:(t,i)=>x.registerLanguageModelChatProvider(e,t,i),get isModelProxyAvailable(){return(0,tp.checkProposedApiEnabled)(e,"languageModelProxy"),x.isModelProxyAvailable},onDidChangeModelProxyAvailability:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"languageModelProxy"),x.onDidChangeModelProxyAvailability(t,i,r)),getModelProxy:()=>((0,tp.checkProposedApiEnabled)(e,"languageModelProxy"),x.getModelProxy(e)),registerLanguageModelProxyProvider:t=>((0,tp.checkProposedApiEnabled)(e,"chatParticipantPrivate"),x.registerLanguageModelProxyProvider(e,t)),get embeddingModels(){return(0,tp.checkProposedApiEnabled)(e,"embeddings"),eZ.embeddingsModels},onDidChangeEmbeddingModels:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"embeddings"),eZ.onDidChange(t,i,r)),registerEmbeddingsProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"embeddings"),eZ.registerEmbeddingsProvider(e,t,i)),computeEmbeddings:async(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"embeddings"),eZ.computeEmbeddings(t,i,r)),registerTool:(t,i)=>eN.registerTool(e,t,i),invokeTool:(t,i,r)=>eN.invokeTool(e,t,i,r),get tools(){return eN.getTools(e)},fileIsIgnored:(t,i)=>x.fileIsIgnored(e,t,i),registerIgnoredFileProvider:t=>x.registerIgnoredFileProvider(e,t),registerMcpServerDefinitionProvider:(t,i)=>D.registerMcpConfigurationProvider(e,t,i),onDidChangeChatRequestTools:(...t)=>((0,tp.checkProposedApiEnabled)(e,"chatParticipantAdditions"),c(ez.onDidChangeChatRequestTools)(...t))},notebooks:{createNotebookController:(t,i,r,n,o)=>z.createNotebookController(e,t,i,r,n,(0,tp.isProposedApiEnabled)(e,"notebookMessaging")?o:void 0),registerNotebookCellStatusBarItemProvider:(t,i)=>W.registerNotebookCellStatusBarItemProvider(e,t,i),createRendererMessaging:t=>K.createRendererMessaging(e,t),createNotebookControllerDetectionTask:t=>((0,tp.checkProposedApiEnabled)(e,"notebookKernelSource"),z.createNotebookControllerDetectionTask(e,t)),registerKernelSourceActionProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"notebookKernelSource"),z.registerKernelSourceActionProvider(e,t,i))},scm:{get inputBox(){return m.report("scm.inputBox",e,"Use 'SourceControl.inputBox' instead"),er.getLastInputBox(e)},createSourceControl:(t,i,r,n,o,s)=>((n||o||s)&&(0,tp.checkProposedApiEnabled)(e,"scmProviderOptions"),er.createSourceControl(e,t,i,r,n,o,s))},speech:{registerSpeechProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"speech"),eX.registerProvider(e.identifier,t,i))},tasks:{registerTaskProvider:(t,i)=>F.registerTaskProvider(e,t,i),fetchTasks:e=>F.fetchTasks(e),executeTask:t=>F.executeTask(e,t),get taskExecutions(){return F.taskExecutions},onDidStartTask:(t,i,r)=>c(F.onDidStartTask)(r=>{(0,tp.isProposedApiEnabled)(e,"taskExecutionTerminal")||r?.execution?.terminal===void 0||(r.execution.terminal=void 0);let n={...r,execution:r.execution};return t.call(i,n)},i,r),onDidEndTask:(e,t,i)=>c(F.onDidEndTask)(e,t,i),onDidStartTaskProcess:(e,t,i)=>c(F.onDidStartTaskProcess)(e,t,i),onDidEndTaskProcess:(e,t,i)=>c(F.onDidEndTaskProcess)(e,t,i),onDidStartTaskProblemMatchers:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"taskProblemMatcherStatus"),c(F.onDidStartTaskProblemMatchers)(t,i,r)),onDidEndTaskProblemMatchers:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"taskProblemMatcherStatus"),c(F.onDidEndTaskProblemMatchers)(t,i,r))},tests:{createTestController:(t,i,r)=>eR.createTestController(e,t,i,r),createTestObserver:()=>((0,tp.checkProposedApiEnabled)(e,"testObserver"),eR.createTestObserver()),runTests:t=>((0,tp.checkProposedApiEnabled)(e,"testObserver"),eR.runTests(t)),registerTestFollowupProvider:t=>((0,tp.checkProposedApiEnabled)(e,"testObserver"),eR.registerTestFollowupProvider(t)),get onDidChangeTestResults(){return(0,tp.checkProposedApiEnabled)(e,"testObserver"),c(eR.onResultsChanged)},get testResults(){return(0,tp.checkProposedApiEnabled)(e,"testObserver"),eR.results}},window:{get activeTextEditor(){return B.getActiveTextEditor()},get visibleTextEditors(){return B.getVisibleTextEditors()},get activeTerminal(){return I.activeTerminal},get terminals(){return I.terminals},async showTextDocument(t,i,r){eD.URI.isUri(t)&&t.scheme===eO.Schemas.vscodeRemote&&!t.authority&&m.report("workspace.showTextDocument",e,"A URI of 'vscode-remote' scheme requires an authority.");let n=await (eD.URI.isUri(t)?Promise.resolve(h.openTextDocument(t)):Promise.resolve(t));return B.showTextDocument(n,i,r)},createTextEditorDecorationType:t=>B.createTextEditorDecorationType(e,t),onDidChangeActiveTextEditor:(e,t,i)=>c(B.onDidChangeActiveTextEditor)(e,t,i),onDidChangeVisibleTextEditors:(e,t,i)=>c(B.onDidChangeVisibleTextEditors)(e,t,i),onDidChangeTextEditorSelection:(e,t,i)=>c(B.onDidChangeTextEditorSelection)(e,t,i),onDidChangeTextEditorOptions:(e,t,i)=>c(B.onDidChangeTextEditorOptions)(e,t,i),onDidChangeTextEditorVisibleRanges:(e,t,i)=>c(B.onDidChangeTextEditorVisibleRanges)(e,t,i),onDidChangeTextEditorViewColumn:(e,t,i)=>c(B.onDidChangeTextEditorViewColumn)(e,t,i),onDidChangeTextEditorDiffInformation:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"textEditorDiffInformation"),c(B.onDidChangeTextEditorDiffInformation)(t,i,r)),onDidCloseTerminal:(e,t,i)=>c(I.onDidCloseTerminal)(e,t,i),onDidOpenTerminal:(e,t,i)=>c(I.onDidOpenTerminal)(e,t,i),onDidChangeActiveTerminal:(e,t,i)=>c(I.onDidChangeActiveTerminal)(e,t,i),onDidChangeTerminalDimensions:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"terminalDimensions"),c(I.onDidChangeTerminalDimensions)(t,i,r)),onDidChangeTerminalState:(e,t,i)=>c(I.onDidChangeTerminalState)(e,t,i),onDidWriteTerminalData:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"terminalDataWriteEvent"),c(I.onDidWriteTerminalData)(t,i,r)),onDidExecuteTerminalCommand:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"terminalExecuteCommandEvent"),c(I.onDidExecuteTerminalCommand)(t,i,r)),onDidChangeTerminalShellIntegration:(e,t,i)=>c(A.onDidChangeTerminalShellIntegration)(e,t,i),onDidStartTerminalShellExecution:(e,t,i)=>c(A.onDidStartTerminalShellExecution)(e,t,i),onDidEndTerminalShellExecution:(e,t,i)=>c(A.onDidEndTerminalShellExecution)(e,t,i),get state(){return f.getState()},onDidChangeWindowState:(e,t,i)=>c(f.onDidChangeWindowState)(e,t,i),showInformationMessage:(t,...i)=>e4.showMessage(e,tt.default.Info,t,i[0],i.slice(1)),showWarningMessage:(t,...i)=>e4.showMessage(e,tt.default.Warning,t,i[0],i.slice(1)),showErrorMessage:(t,...i)=>e4.showMessage(e,tt.default.Error,t,i[0],i.slice(1)),showQuickPick:(t,i,r)=>ei.showQuickPick(e,t,i,r),showWorkspaceFolderPick:e=>ei.showWorkspaceFolderPick(e),showInputBox:(e,t)=>ei.showInput(e,t),showOpenDialog:e=>e5.showOpenDialog(e),showSaveDialog:e=>e5.showSaveDialog(e),createStatusBarItem(t,i,r){let n,o,s;return"string"==typeof t?(n=t,o=i,s=r):(o=t,s=i),eQ.createStatusBarEntry(e,n,o,s)},setStatusBarMessage:(e,t)=>eQ.setStatusBarMessage(e,t),withScmProgress:t=>(m.report("window.withScmProgress",e,"Use 'withProgress' instead."),b.withProgress(e,{location:eh.ProgressLocation.SourceControl},(e,i)=>t({report(e){}}))),withProgress:(t,i)=>b.withProgress(e,t,i),createOutputChannel:(t,i)=>O.createOutputChannel(t,i,e),createWebviewPanel:(t,i,r,n)=>eu.createWebviewPanel(e,t,i,r,n),createWebviewTextEditorInset:(t,i,r,n)=>((0,tp.checkProposedApiEnabled)(e,"editorInsets"),Q.createWebviewEditorInset(t,i,r,n,e)),createTerminal:(e,t,i)=>"object"==typeof e?"pty"in e?I.createExtensionTerminal(e):I.createTerminalFromOptions(e):I.createTerminal(e,t,i),registerTerminalLinkProvider:e=>I.registerLinkProvider(e),registerTerminalProfileProvider:(t,i)=>I.registerProfileProvider(e,t,i),registerTerminalCompletionProvider:(t,...i)=>((0,tp.checkProposedApiEnabled)(e,"terminalCompletionProvider"),I.registerTerminalCompletionProvider(e,t,...i)),registerTerminalQuickFixProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"terminalQuickFixProvider"),I.registerTerminalQuickFixProvider(t,e.identifier.value,i)),registerTreeDataProvider:(t,i)=>G.registerTreeDataProvider(t,i,e),createTreeView:(t,i)=>G.createTreeView(t,i,e),registerWebviewPanelSerializer:(t,i)=>eu.registerWebviewPanelSerializer(e,t,i),registerCustomEditorProvider:(t,i,r={})=>ek.registerCustomEditorProvider(e,t,i,r),registerFileDecorationProvider:t=>k.registerFileDecorationProvider(t,e),registerUriHandler:t=>_.registerUriHandler(e,t),createQuickPick:()=>ei.createQuickPick(e),createInputBox:()=>ei.createInputBox(e),get activeColorTheme(){return el.activeColorTheme},onDidChangeActiveColorTheme:(e,t,i)=>c(el.onDidChangeActiveColorTheme)(e,t,i),registerWebviewViewProvider:(t,i,r)=>eT.registerWebviewViewProvider(e,t,i,r?.webviewOptions),get activeNotebookEditor(){return W.activeNotebookEditor},onDidChangeActiveNotebookEditor:(e,t,i)=>c(W.onDidChangeActiveNotebookEditor)(e,t,i),get visibleNotebookEditors(){return W.visibleNotebookEditors},get onDidChangeVisibleNotebookEditors(){return c(W.onDidChangeVisibleNotebookEditors)},onDidChangeNotebookEditorSelection:(e,t,i)=>c(j.onDidChangeNotebookEditorSelection)(e,t,i),onDidChangeNotebookEditorVisibleRanges:(e,t,i)=>c(j.onDidChangeNotebookEditorVisibleRanges)(e,t,i),showNotebookDocument:(e,t)=>W.showNotebookDocument(e,t),registerExternalUriOpener:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"externalUriOpener"),eA.registerExternalUriOpener(e.identifier,t,i,r)),registerProfileContentHandler:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"profileContentHandlers"),eL.registerProfileContentHandler(e,t,i)),registerQuickDiffProvider:(t,i,r,n,o)=>((0,tp.checkProposedApiEnabled)(e,"quickDiffProvider"),en.registerQuickDiffProvider(e,d(t),i,r,n,o)),get tabGroups(){return C.tabGroups},registerShareProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"shareProvider"),eo.registerShareProvider(d(t),i)),get nativeHandle(){return(0,tp.checkProposedApiEnabled)(e,"nativeWindowHandle"),f.nativeHandle},createChatStatusItem:t=>((0,tp.checkProposedApiEnabled)(e,"chatStatusItem"),e8.createChatStatusItem(e,t))},workspace:h,Breakpoint:eh.Breakpoint,TerminalOutputAnchor:eh.TerminalOutputAnchor,ChatResultFeedbackKind:eh.ChatResultFeedbackKind,ChatVariableLevel:eh.ChatVariableLevel,ChatCompletionItem:eh.ChatCompletionItem,ChatReferenceDiagnostic:eh.ChatReferenceDiagnostic,CallHierarchyIncomingCall:eh.CallHierarchyIncomingCall,CallHierarchyItem:eh.CallHierarchyItem,CallHierarchyOutgoingCall:eh.CallHierarchyOutgoingCall,CancellationError:eg.CancellationError,CancellationTokenSource:ef.CancellationTokenSource,CandidatePortSource:ev.CandidatePortSource,CodeAction:eh.CodeAction,CodeActionKind:ok.CodeActionKind,CodeActionTriggerKind:eh.CodeActionTriggerKind,CodeLens:eh.CodeLens,Color:eh.Color,ColorInformation:eh.ColorInformation,ColorPresentation:eh.ColorPresentation,ColorThemeKind:eh.ColorThemeKind,CommentMode:eh.CommentMode,CommentState:eh.CommentState,CommentThreadCollapsibleState:eh.CommentThreadCollapsibleState,CommentThreadState:eh.CommentThreadState,CommentThreadApplicability:eh.CommentThreadApplicability,CommentThreadFocus:eh.CommentThreadFocus,CompletionItem:eh.CompletionItem,CompletionItemKind:eh.CompletionItemKind,CompletionItemTag:eh.CompletionItemTag,CompletionList:eh.CompletionList,CompletionTriggerKind:eh.CompletionTriggerKind,ConfigurationTarget:eh.ConfigurationTarget,CustomExecution:eh.CustomExecution,DebugAdapterExecutable:eh.DebugAdapterExecutable,DebugAdapterInlineImplementation:eh.DebugAdapterInlineImplementation,DebugAdapterNamedPipeServer:eh.DebugAdapterNamedPipeServer,DebugAdapterServer:eh.DebugAdapterServer,DebugConfigurationProviderTriggerKind:e_.DebugConfigurationProviderTriggerKind,DebugConsoleMode:eh.DebugConsoleMode,DebugVisualization:eh.DebugVisualization,DecorationRangeBehavior:eh.DecorationRangeBehavior,Diagnostic:ss.Diagnostic,DiagnosticRelatedInformation:ss.DiagnosticRelatedInformation,DiagnosticSeverity:ss.DiagnosticSeverity,DiagnosticTag:ss.DiagnosticTag,Disposable:eh.Disposable,DocumentHighlight:eh.DocumentHighlight,DocumentHighlightKind:eh.DocumentHighlightKind,MultiDocumentHighlight:eh.MultiDocumentHighlight,DocumentLink:eh.DocumentLink,DocumentSymbol:eh.DocumentSymbol,EndOfLine:ie.EndOfLine,EnvironmentVariableMutatorType:eh.EnvironmentVariableMutatorType,EvaluatableExpression:eh.EvaluatableExpression,InlineValueText:eh.InlineValueText,InlineValueVariableLookup:eh.InlineValueVariableLookup,InlineValueEvaluatableExpression:eh.InlineValueEvaluatableExpression,InlineCompletionTriggerKind:eh.InlineCompletionTriggerKind,InlineCompletionsDisposeReasonKind:eh.InlineCompletionsDisposeReasonKind,EventEmitter:ey.Emitter,ExtensionKind:eh.ExtensionKind,ExtensionMode:eh.ExtensionMode,ExternalUriOpenerPriority:eh.ExternalUriOpenerPriority,FileChangeType:eh.FileChangeType,FileDecoration:eh.FileDecoration,FileDecoration2:eh.FileDecoration,FileSystemError:eh.FileSystemError,FileType:ep.FileType,FilePermission:ep.FilePermission,FoldingRange:eh.FoldingRange,FoldingRangeKind:eh.FoldingRangeKind,FunctionBreakpoint:eh.FunctionBreakpoint,InlineCompletionItem:eh.InlineSuggestion,InlineCompletionList:eh.InlineSuggestionList,Hover:eh.Hover,VerboseHover:eh.VerboseHover,HoverVerbosityAction:eh.HoverVerbosityAction,IndentAction:em.IndentAction,Location:tZ.Location,MarkdownString:oN.MarkdownString,OverviewRulerLane:eC.OverviewRulerLane,ParameterInformation:eh.ParameterInformation,PortAutoForwardAction:eh.PortAutoForwardAction,Position:tY.Position,ProcessExecution:eh.ProcessExecution,ProgressLocation:eh.ProgressLocation,QuickInputButtonLocation:eh.QuickInputButtonLocation,QuickInputButtons:eh.QuickInputButtons,Range:ti.Range,RelativePattern:eh.RelativePattern,Selection:tX.Selection,SelectionRange:eh.SelectionRange,SemanticTokens:eh.SemanticTokens,SemanticTokensBuilder:eh.SemanticTokensBuilder,SemanticTokensEdit:eh.SemanticTokensEdit,SemanticTokensEdits:eh.SemanticTokensEdits,SemanticTokensLegend:eh.SemanticTokensLegend,ShellExecution:eh.ShellExecution,ShellQuoting:eh.ShellQuoting,SignatureHelp:eh.SignatureHelp,SignatureHelpTriggerKind:eh.SignatureHelpTriggerKind,SignatureInformation:eh.SignatureInformation,SnippetString:sI.SnippetString,SourceBreakpoint:eh.SourceBreakpoint,StandardTokenType:eh.StandardTokenType,StatusBarAlignment:eh.StatusBarAlignment,SymbolInformation:oE.SymbolInformation,SymbolKind:oE.SymbolKind,SymbolTag:oE.SymbolTag,Task:eh.Task,TaskEventKind:eh.TaskEventKind,TaskGroup:eh.TaskGroup,TaskPanelKind:eh.TaskPanelKind,TaskRevealKind:eh.TaskRevealKind,TaskScope:eh.TaskScope,TerminalLink:eh.TerminalLink,TerminalQuickFixTerminalCommand:eh.TerminalQuickFixCommand,TerminalQuickFixOpener:eh.TerminalQuickFixOpener,TerminalLocation:eh.TerminalLocation,TerminalProfile:eh.TerminalProfile,TerminalExitReason:eh.TerminalExitReason,TerminalShellExecutionCommandLineConfidence:eh.TerminalShellExecutionCommandLineConfidence,TerminalCompletionItem:eh.TerminalCompletionItem,TerminalCompletionItemKind:eh.TerminalCompletionItemKind,TerminalCompletionList:eh.TerminalCompletionList,TerminalShellType:eh.TerminalShellType,TextDocumentSaveReason:eh.TextDocumentSaveReason,TextEdit:ie.TextEdit,SnippetTextEdit:l8.SnippetTextEdit,TextEditorCursorStyle:ex.TextEditorCursorStyle,TextEditorChangeKind:eh.TextEditorChangeKind,TextEditorLineNumbersStyle:eh.TextEditorLineNumbersStyle,TextEditorRevealType:eh.TextEditorRevealType,TextEditorSelectionChangeKind:eh.TextEditorSelectionChangeKind,SyntaxTokenType:eh.SyntaxTokenType,TextDocumentChangeReason:eh.TextDocumentChangeReason,ThemeColor:eh.ThemeColor,ThemeIcon:eh.ThemeIcon,TreeItem:eh.TreeItem,TreeItemCheckboxState:eh.TreeItemCheckboxState,TreeItemCollapsibleState:eh.TreeItemCollapsibleState,TypeHierarchyItem:eh.TypeHierarchyItem,UIKind:eS.UIKind,Uri:eD.URI,ViewColumn:eh.ViewColumn,WorkspaceEdit:sw.WorkspaceEdit,DocumentPasteTriggerKind:eh.DocumentPasteTriggerKind,DocumentDropEdit:eh.DocumentDropEdit,DocumentDropOrPasteEditKind:eh.DocumentDropOrPasteEditKind,DocumentPasteEdit:eh.DocumentPasteEdit,InlayHint:eh.InlayHint,InlayHintLabelPart:eh.InlayHintLabelPart,InlayHintKind:eh.InlayHintKind,RemoteAuthorityResolverError:eh.RemoteAuthorityResolverError,ResolvedAuthority:eh.ResolvedAuthority,ManagedResolvedAuthority:eh.ManagedResolvedAuthority,SourceControlInputBoxValidationType:eh.SourceControlInputBoxValidationType,ExtensionRuntime:eh.ExtensionRuntime,TimelineItem:eh.TimelineItem,NotebookRange:t0.NotebookRange,NotebookCellKind:t0.NotebookCellKind,NotebookCellExecutionState:eh.NotebookCellExecutionState,NotebookCellData:t0.NotebookCellData,NotebookData:t0.NotebookData,NotebookRendererScript:eh.NotebookRendererScript,NotebookCellStatusBarAlignment:eh.NotebookCellStatusBarAlignment,NotebookEditorRevealType:eh.NotebookEditorRevealType,NotebookCellOutput:t0.NotebookCellOutput,NotebookCellOutputItem:t0.NotebookCellOutputItem,CellErrorStackFrame:eh.CellErrorStackFrame,NotebookCellStatusBarItem:eh.NotebookCellStatusBarItem,NotebookControllerAffinity:eh.NotebookControllerAffinity,NotebookControllerAffinity2:eh.NotebookControllerAffinity2,NotebookEdit:t0.NotebookEdit,NotebookKernelSourceAction:eh.NotebookKernelSourceAction,NotebookVariablesRequestKind:eh.NotebookVariablesRequestKind,PortAttributes:eh.PortAttributes,LinkedEditingRanges:eh.LinkedEditingRanges,TestResultState:eh.TestResultState,TestRunRequest:eh.TestRunRequest,TestMessage:eh.TestMessage,TestMessageStackFrame:eh.TestMessageStackFrame,TestTag:eh.TestTag,TestRunProfileKind:eh.TestRunProfileKind,TextSearchCompleteMessageType:eb.TextSearchCompleteMessageType,DataTransfer:eh.DataTransfer,DataTransferItem:eh.DataTransferItem,TestCoverageCount:eh.TestCoverageCount,FileCoverage:eh.FileCoverage,StatementCoverage:eh.StatementCoverage,BranchCoverage:eh.BranchCoverage,DeclarationCoverage:eh.DeclarationCoverage,WorkspaceTrustState:eh.WorkspaceTrustState,LanguageStatusSeverity:eh.LanguageStatusSeverity,QuickPickItemKind:eh.QuickPickItemKind,InputBoxValidationSeverity:eh.InputBoxValidationSeverity,TabInputText:eh.TextTabInput,TabInputTextDiff:eh.TextDiffTabInput,TabInputTextMerge:eh.TextMergeTabInput,TabInputCustom:eh.CustomEditorTabInput,TabInputNotebook:eh.NotebookEditorTabInput,TabInputNotebookDiff:eh.NotebookDiffEditorTabInput,TabInputWebview:eh.WebviewEditorTabInput,TabInputTerminal:eh.TerminalEditorTabInput,TabInputInteractiveWindow:eh.InteractiveWindowInput,TabInputChat:eh.ChatEditorTabInput,TabInputTextMultiDiff:eh.TextMultiDiffTabInput,TelemetryTrustedValue:eE.TelemetryTrustedValue,LogLevel:ew.LogLevel,EditSessionIdentityMatch:T,InteractiveSessionVoteDirection:eh.InteractiveSessionVoteDirection,ChatCopyKind:eh.ChatCopyKind,ChatSessionChangedFile:eh.ChatSessionChangedFile,ChatEditingSessionActionOutcome:eh.ChatEditingSessionActionOutcome,InteractiveEditorResponseFeedbackKind:eh.InteractiveEditorResponseFeedbackKind,DebugStackFrame:eh.DebugStackFrame,DebugThread:eh.DebugThread,RelatedInformationType:eh.RelatedInformationType,SpeechToTextStatus:eh.SpeechToTextStatus,TextToSpeechStatus:eh.TextToSpeechStatus,PartialAcceptTriggerKind:eh.PartialAcceptTriggerKind,InlineCompletionEndOfLifeReasonKind:eh.InlineCompletionEndOfLifeReasonKind,InlineCompletionDisplayLocationKind:eh.InlineCompletionDisplayLocationKind,KeywordRecognitionStatus:eh.KeywordRecognitionStatus,ChatImageMimeType:eh.ChatImageMimeType,ChatResponseMarkdownPart:eh.ChatResponseMarkdownPart,ChatResponseFileTreePart:eh.ChatResponseFileTreePart,ChatResponseAnchorPart:eh.ChatResponseAnchorPart,ChatResponseProgressPart:eh.ChatResponseProgressPart,ChatResponseProgressPart2:eh.ChatResponseProgressPart2,ChatResponseThinkingProgressPart:eh.ChatResponseThinkingProgressPart,ChatResponseReferencePart:eh.ChatResponseReferencePart,ChatResponseReferencePart2:eh.ChatResponseReferencePart,ChatResponseCodeCitationPart:eh.ChatResponseCodeCitationPart,ChatResponseCodeblockUriPart:eh.ChatResponseCodeblockUriPart,ChatResponseWarningPart:eh.ChatResponseWarningPart,ChatResponseTextEditPart:eh.ChatResponseTextEditPart,ChatResponseNotebookEditPart:eh.ChatResponseNotebookEditPart,ChatResponseMarkdownWithVulnerabilitiesPart:eh.ChatResponseMarkdownWithVulnerabilitiesPart,ChatResponseCommandButtonPart:eh.ChatResponseCommandButtonPart,ChatResponseConfirmationPart:eh.ChatResponseConfirmationPart,ChatResponseMovePart:eh.ChatResponseMovePart,ChatResponseExtensionsPart:eh.ChatResponseExtensionsPart,ChatResponseExternalEditPart:eh.ChatResponseExternalEditPart,ChatResponsePullRequestPart:eh.ChatResponsePullRequestPart,ChatPrepareToolInvocationPart:eh.ChatPrepareToolInvocationPart,ChatResponseMultiDiffPart:eh.ChatResponseMultiDiffPart,ChatResponseReferencePartStatusKind:eh.ChatResponseReferencePartStatusKind,ChatResponseClearToPreviousToolInvocationReason:eh.ChatResponseClearToPreviousToolInvocationReason,ChatRequestTurn:eh.ChatRequestTurn,ChatRequestTurn2:eh.ChatRequestTurn,ChatResponseTurn:eh.ChatResponseTurn,ChatResponseTurn2:eh.ChatResponseTurn2,ChatToolInvocationPart:eh.ChatToolInvocationPart,ChatLocation:eh.ChatLocation,ChatSessionStatus:eh.ChatSessionStatus,ChatRequestEditorData:eh.ChatRequestEditorData,ChatRequestNotebookData:eh.ChatRequestNotebookData,ChatReferenceBinaryData:eh.ChatReferenceBinaryData,ChatRequestEditedFileEventKind:eh.ChatRequestEditedFileEventKind,LanguageModelChatMessageRole:eh.LanguageModelChatMessageRole,LanguageModelChatMessage:eh.LanguageModelChatMessage,LanguageModelChatMessage2:eh.LanguageModelChatMessage2,LanguageModelToolResultPart:eh.LanguageModelToolResultPart,LanguageModelToolResultPart2:eh.LanguageModelToolResultPart,LanguageModelTextPart:eh.LanguageModelTextPart,LanguageModelTextPart2:eh.LanguageModelTextPart,LanguageModelPartAudience:eh.LanguageModelPartAudience,ToolResultAudience:eh.LanguageModelPartAudience,LanguageModelToolCallPart:eh.LanguageModelToolCallPart,LanguageModelThinkingPart:eh.LanguageModelThinkingPart,LanguageModelError:eh.LanguageModelError,LanguageModelToolResult:eh.LanguageModelToolResult,LanguageModelToolResult2:eh.LanguageModelToolResult2,LanguageModelDataPart:eh.LanguageModelDataPart,LanguageModelDataPart2:eh.LanguageModelDataPart,LanguageModelToolExtensionSource:eh.LanguageModelToolExtensionSource,LanguageModelToolMCPSource:eh.LanguageModelToolMCPSource,ExtendedLanguageModelToolResult:eh.ExtendedLanguageModelToolResult,LanguageModelChatToolMode:eh.LanguageModelChatToolMode,LanguageModelPromptTsxPart:eh.LanguageModelPromptTsxPart,NewSymbolName:eh.NewSymbolName,NewSymbolNameTag:eh.NewSymbolNameTag,NewSymbolNameTriggerKind:eh.NewSymbolNameTriggerKind,ExcludeSettingOptions:eb.ExcludeSettingOptions,TextSearchContext2:eb.TextSearchContext2,TextSearchMatch2:eb.TextSearchMatch2,AISearchKeyword:eb.AISearchKeyword,TextSearchCompleteMessageTypeNew:eb.TextSearchCompleteMessageType,ChatErrorLevel:eh.ChatErrorLevel,McpHttpServerDefinition:eh.McpHttpServerDefinition,McpHttpServerDefinition2:eh.McpHttpServerDefinition,McpStdioServerDefinition:eh.McpStdioServerDefinition,McpStdioServerDefinition2:eh.McpStdioServerDefinition,McpToolAvailability:eh.McpToolAvailability,SettingsSearchResultKind:eh.SettingsSearchResultKind}}}let l9=class{constructor(e,t,i,r,n,o,s){this._apiFactory=e,this._extensionRegistry=t,this._instaService=i,this._extHostConfiguration=r,this._extHostExtensionService=n,this._initData=o,this._logService=s,this._factories=new Map,this._alternatives=[]}async install(){this._installInterceptor(),(0,iJ.mark)("code/extHost/willWaitForConfig");let e=await this._extHostConfiguration.getConfigProvider();(0,iJ.mark)("code/extHost/didWaitForConfig");let t=await this._extHostExtensionService.getExtensionPathIndex();this.register(new ct(this._apiFactory,t,this._extensionRegistry,e,this._logService)),this.register(this._instaService.createInstance(ce)),this._initData.remote.isRemote&&this.register(this._instaService.createInstance(ci,t,this._initData.environment.appUriScheme))}register(e){if("nodeModuleName"in e)if(Array.isArray(e.nodeModuleName))for(let t of e.nodeModuleName)this._factories.set(t,e);else this._factories.set(e.nodeModuleName,e);"function"==typeof e.alternativeModuleName&&this._alternatives.push(t=>e.alternativeModuleName(t))}};l9=(0,ek.__decorate)([(0,ek.__param)(2,eR.IInstantiationService),(0,ek.__param)(3,tD),(0,ek.__param)(4,rB),(0,ek.__param)(5,ej.IExtHostInitDataService),(0,ek.__param)(6,eM.ILogService)],l9);let ce=class{static{eu=this}static{this.aliased=new Map([["vscode-ripgrep","@vscode/ripgrep"],["vscode-windows-registry","@vscode/windows-registry"]])}constructor(e){if(e.environment.appRoot&&eu.aliased.size){const t=(0,e0.escapeRegExpCharacters)(this.forceForwardSlashes(e.environment.appRoot.fsPath)),i="[a-z0-9_.-]",r=`@${i}+\\/${i}+|${i}+`;this.re=RegExp(`^(${t}/node_modules|node_modules\\.asar(?:\\.unpacked)?\\/)(${r})(.*)$`,"i")}}alternativeModuleName(e){if(!this.re)return;let t=this.re.exec(this.forceForwardSlashes(e));if(!t)return;let[,i,r,n]=t,o=eu.aliased.get(r);if(void 0!==o)return console.warn(`${r} as been renamed to ${o}, please update your imports`),i+o+n}forceForwardSlashes(e){return e.replace(/\\/g,"/")}};ce=eu=(0,ek.__decorate)([(0,ek.__param)(0,ej.IExtHostInitDataService)],ce);class ct{constructor(e,t,i,r,n){this._apiFactory=e,this._extensionPaths=t,this._extensionRegistry=i,this._configProvider=r,this._logService=n,this.nodeModuleName="vscode",this._extApiImpl=new eI.ExtensionIdentifierMap}load(e,t){let i=this._extensionPaths.findSubstr(t);if(i){let e=this._extApiImpl.get(i.identifier);return e||(e=this._apiFactory(i,this._extensionRegistry,this._configProvider),this._extApiImpl.set(i.identifier,e)),e}if(!this._defaultApiImpl){let e="";this._extensionPaths.forEach((t,i)=>e+=` ${i} -> ${t.identifier.value}
39
+ `),this._logService.warn(`Could not identify extension for 'vscode' require call from ${t}. These are the extension path mappings:
40
+ ${e}`),this._defaultApiImpl=this._apiFactory(tp.nullExtensionDescription,this._extensionRegistry,this._configProvider)}return this._defaultApiImpl}}let ci=class{constructor(e,t,i){this._extensionPaths=e,this._appUriScheme=t,this.nodeModuleName=["open","opn"],this._mainThreadTelemetry=i.getProxy(ev.MainContext.MainThreadTelemetry);const r=i.getProxy(ev.MainContext.MainThreadWindow);this._impl=(e,t)=>{let i=eD.URI.parse(e);return t?this.callOriginal(e,t):"http"===i.scheme||"https"===i.scheme?r.$openUri(i,e,{allowTunneling:!0}):"mailto"===i.scheme||i.scheme===this._appUriScheme?r.$openUri(i,e,{}):this.callOriginal(e,t)}}load(e,t,i){let r=this._extensionPaths.findSubstr(t);return r&&(this._extensionId=r.identifier.value,this.sendShimmingTelemetry()),this._original=i(e),this._impl}callOriginal(e,t){return this.sendNoForwardTelemetry(),this._original(e,t)}sendShimmingTelemetry(){this._extensionId&&this._mainThreadTelemetry.$publicLog2("shimming.open",{extension:this._extensionId})}sendNoForwardTelemetry(){this._extensionId&&this._mainThreadTelemetry.$publicLog2("shimming.open.call.noForward",{extension:this._extensionId})}};ci=(0,ek.__decorate)([(0,ek.__param)(2,eP.IExtHostRpcService)],ci);let cr=class{constructor(e,t){this._mainThreadConsole=e.getProxy(ev.MainContext.MainThreadConsole),this._includeStack=t.consoleForward.includeStack,this._logNative=t.consoleForward.logNative,this._wrapConsoleMethod("info","log"),this._wrapConsoleMethod("log","log"),this._wrapConsoleMethod("warn","warn"),this._wrapConsoleMethod("debug","debug"),this._wrapConsoleMethod("error","error")}_wrapConsoleMethod(e,t){let i=this,r=console[e];Object.defineProperty(console,e,{set:()=>{},get:()=>function(){i._handleConsoleCall(e,t,r,arguments)}})}_handleConsoleCall(e,t,i,r){this._mainThreadConsole.$logExtensionHostMessage({type:"__$console",severity:t,arguments:function(e,t){let i=[];if(e.length)for(let t=0;t<e.length;t++){let r=e[t];if(void 0===r)r="undefined";else if(r instanceof Error){let e=r;r=e.stack?e.stack:e.toString()}i.push(r)}if(t){let e=Error().stack;e&&i.push({__$stack:e.split("\n").slice(3).join("\n")})}try{let e=(0,tv.safeStringify)(i);if(e.length>1e5)return"Output omitted for a large object that exceeds the limits";return e}catch(e){return`Output omitted for an object that cannot be inspected ('${e.toString()}')`}}(r,this._includeStack)}),this._logNative&&this._nativeConsoleLogMessage(e,i,r)}};cr=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService)],cr);let cn=class extends cr{constructor(e,t){super(e,t)}_nativeConsoleLogMessage(e,t,i){t.apply(console,i)}};cn=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService)],cn);class co extends l9{_installInterceptor(){}getModule(e,t){for(let t of this._alternatives){let i=t(e);if(i){e=i;break}}if(this._factories.has(e))return this._factories.get(e).load(e,t,()=>{throw Error("CANNOT LOAD MODULE from here.")})}}class cs extends rj{constructor(){super(...arguments),this.extensionRuntime=eh.ExtensionRuntime.Webworker}async _beforeAlmostReadyToRunExtensions(){ib.isWebWorker&&this._instaService.createInstance(cn),this._apiFactory=this._instaService.invokeFunction(l7),this._fakeModules=this._instaService.createInstance(co,this._apiFactory,{mine:this._myRegistry,all:this._globalRegistry}),await this._fakeModules.install(),performance.mark("code/extHost/didInitAPI"),await this._waitForDebuggerAttachment()}_getEntryPoint(e){return e.browser}async _loadCommonJSModule(e,t,i){var r;let n;t=t.with({path:(r=t.path,(0,tg.extname)(r)?r:r+".js")});let o=e?.identifier.value;o&&performance.mark(`code/extHost/willFetchExtensionCode/${o}`);let s=eD.URI.revive(await this._mainThreadExtensionsProxy.$asBrowserUri(t)),a=await fetch(s.toString(!0));if(o&&performance.mark(`code/extHost/didFetchExtensionCode/${o}`),200!==a.status)throw Error(a.statusText);let l=await a.text(),c=`${t.toString(!0)}#vscode-extension`,d=`${l}
41
+ //# sourceURL=${c}`;try{n=Function("module","exports","require",d)}catch(e){throw o?console.error(`Loading code for extension ${o} failed: ${e.message}`):console.error(`Loading code failed: ${e.message}`),console.error(`${t.toString(!0)}${"number"==typeof e.line?` line ${e.line}`:""}${"number"==typeof e.column?` column ${e.column}`:""}`),console.error(e),e}e&&await this._extHostLocalizationService.initializeLocalizedMessages(e);let u={},h={exports:u},g=e=>{let i=this._fakeModules.getModule(e,t);if(void 0===i)throw Error(`Cannot load module '${e}'`);return i};try{return i.codeLoadingStart(),o&&performance.mark(`code/extHost/willLoadExtensionCode/${o}`),n(h,u,g),h.exports!==u?h.exports:u}finally{o&&performance.mark(`code/extHost/didLoadExtensionCode/${o}`),i.codeLoadingStop()}}_loadESMModule(e,t,i){throw Error("ESM modules are not supported in the web worker extension host")}async $setRemoteEnvironment(e){}async _waitForDebuggerAttachment(e=5e3){if(!this._initData.environment.isExtensionDevelopmentDebug)return;let t=Date.now()+e;for(;Date.now()<t&&!("__jsDebugIsReady"in globalThis);)await (0,eU.timeout)(10)}}var ca=e.i(524874),cl=e.i(425761),cc=e.i(22465),cd=e.i(130722),cu=e.i(669827);let ch=new eU.DeferredPromise;(0,eT.registerSingleton)(rw,rx,eT.InstantiationType.Eager),(0,eT.registerSingleton)(rB,class extends cs{constructor(){super(...arguments),this._extApiImpl=new eI.ExtensionIdentifierMap}async getApi(e){let[t,i]=await Promise.all([this.getExtensionRegistry(),this._extHostConfiguration.getConfigProvider()]),r={mine:t,all:this._globalRegistry};if(null==e)return null==this._defaultApiImpl&&(this._defaultApiImpl=this._apiFactory(tp.nullExtensionDescription,r,i)),this._defaultApiImpl;let n=t.getExtensionDescription(e);if(null==n)throw Error(`Extension ${e} does not exist or is disabled`);let o=this._extApiImpl.get(n.identifier);return null==o&&(o=this._apiFactory(n,r,i),this._extApiImpl.set(n.identifier,o)),o}},eT.InstantiationType.Eager),(0,eT.registerSingleton)(ri,rr,eT.InstantiationType.Eager),(0,eT.registerSingleton)(tQ,new os.SyncDescriptor(tV,[!0],!0));let cg=new class{constructor(){this.pid=void 0,this.exit=cl.unsupported}async exists(){return!0}async realpath(e){return e}},cp=class{constructor(e,t,i,r,n,o,s,a,l,c,d,u){this.runningLocation=e,this.startup=t,this._initDataProvider=i,this._telemetryService=r,this._contextService=n,this._labelService=o,this._logService=s,this._loggerService=a,this._environmentService=l,this._productService=c,this._userDataProfilesService=d,this._defaultLogLevelsService=u,this.remoteAuthority=null,this.extensions=null,this.pid=null,this.onExit=ey.Event.None,this._protocolPromise=null,this._extensionHostLogsLocation=(0,eN.joinPath)(this._environmentService.extHostLogsPath,"local")}async start(){return null==this._protocolPromise&&(this._protocolPromise=this._start()),await this._protocolPromise}async _start(){let[e,t]=function(){let e=new ou.BufferedEmitter,t=new ou.BufferedEmitter;class i{constructor(e,t){this.emitterIn=e,this.emitterOut=t,this.onMessage=this.emitterIn.event}send(e){this.emitterOut.fire(e)}}return[new i(e,t),new i(t,e)]}(),i=new od(t,await this._createExtHostInitData(),cg,null).getExtHostExtensionService();return await ch.complete(e=>i.getApi(e)),e}async _createExtHostInitData(){let e,t=await this._initDataProvider.getInitData();this.extensions=t.extensions;let i=this._contextService.getWorkspace(),r=this._productService.extensionsGallery?.nlsBaseUrl;return null==r||null==this._productService.commit||ib.Language.isDefaultVariant()||(e=eD.URI.joinPath(eD.URI.parse(r),this._productService.commit,this._productService.version,ib.Language.value())),{commit:this._productService.commit,version:this._productService.version,quality:this._productService.quality,parentPid:0,environment:{isExtensionDevelopmentDebug:this._environmentService.debugRenderer,appName:this._productService.nameLong,appHost:this._productService.embedderIdentifier??(ib.isWeb?"web":"desktop"),appUriScheme:this._productService.urlProtocol,appLanguage:ib.language,isExtensionTelemetryLoggingOnly:(0,eE.isLoggingOnly)(this._productService,this._environmentService),extensionDevelopmentLocationURI:this._environmentService.extensionDevelopmentLocationURI,extensionTestsLocationURI:this._environmentService.extensionTestsLocationURI,globalStorageHome:this._userDataProfilesService.defaultProfile.globalStorageHome,workspaceStorageHome:this._environmentService.workspaceStorageHome,extensionLogLevel:this._defaultLogLevelsService.defaultLogLevels.extensions},workspace:this._contextService.getWorkbenchState()===e2.WorkbenchState.EMPTY?void 0:{configuration:i.configuration??void 0,id:i.id,name:this._labelService.getWorkspaceLabel(i),transient:i.transient},consoleForward:{includeStack:!1,logNative:this._environmentService.debugRenderer},extensions:t.extensions.toSnapshot(),nlsBaseUrl:e,telemetryInfo:{sessionId:this._telemetryService.sessionId,machineId:this._telemetryService.machineId,firstSessionDate:this._telemetryService.firstSessionDate,msftInternal:this._telemetryService.msftInternal,sqmId:this._telemetryService.sqmId,devDeviceId:this._telemetryService.devDeviceId},logLevel:this._logService.getLevel(),loggers:[...this._loggerService.getRegisteredLoggers()],logsLocation:this._extensionHostLogsLocation,autoStart:this.startup===tp.ExtensionHostStartup.EagerAutoStart,remote:{authority:this._environmentService.remoteAuthority,connectionData:null,isRemote:!1},uiKind:ib.isWeb?eS.UIKind.Web:eS.UIKind.Desktop}}getInspectPort(){}enableInspectPort(){return Promise.resolve(!1)}dispose(){}};async function cm(e){let t=await ch.p;return await t(e)}function cf(e){return new Proxy({},{get(i,r){if(null==t)throw Error("Default api is not ready yet, do not forget to import 'vscode/localExtensionHost' and wait for services initialization");return t[e][r]}})}cp=(0,ek.__decorate)([(0,ek.__param)(3,og.ITelemetryService),(0,ek.__param)(4,op.IWorkspaceContextService),(0,ek.__param)(5,om.ILabelService),(0,ek.__param)(6,eM.ILogService),(0,ek.__param)(7,eM.ILoggerService),(0,ek.__param)(8,of.IBrowserWorkbenchEnvironmentService),(0,ek.__param)(9,ov.IProductService),(0,ek.__param)(10,o_.IUserDataProfilesService),(0,ek.__param)(11,cu.IDefaultLogLevelsService)],cp),(0,ca.setLocalExtensionHost)(cp),(0,cc.registerLocalApiFactory)(cm),(0,cc.registerDefaultApiHandler)(e=>{t=e}),(0,cd.registerServiceInitializePostParticipant)(async e=>{e.get(oh.IExtensionService),t=await cm()}),e.s(["defaultApi",()=>t],610504);let{version:cv,tasks:c_,notebooks:cy,scm:cC,comments:cS,authentication:cb,tests:cw,extensions:cx,debug:cD,env:cE,commands:ck,window:cT,workspace:cR,languages:cP,l10n:cI,interactive:cA,ai:cM,chat:cL,speech:cF,lm:cO,Breakpoint:cN,TerminalOutputAnchor:c$,ChatResultFeedbackKind:cH,ChatVariableLevel:cU,ChatCompletionItem:cW,CallHierarchyIncomingCall:cq,CallHierarchyItem:cj,CallHierarchyOutgoingCall:cz,CancellationError:cK,CancellationTokenSource:cV,CandidatePortSource:cB,CodeAction:cG,CodeActionKind:cQ,CodeActionTriggerKind:cJ,CodeLens:cY,Color:cX,ColorInformation:cZ,ColorPresentation:c0,ColorThemeKind:c1,CommentMode:c2,CommentState:c6,CommentThreadCollapsibleState:c3,CommentThreadState:c4,CommentThreadApplicability:c5,CommentThreadFocus:c8,CompletionItem:c7,CompletionItemKind:c9,CompletionItemTag:de,CompletionList:dt,CompletionTriggerKind:di,ConfigurationTarget:dr,CustomExecution:dn,DebugAdapterExecutable:ds,DebugAdapterInlineImplementation:da,DebugAdapterNamedPipeServer:dl,DebugAdapterServer:dc,DebugConfigurationProviderTriggerKind:dd,DebugConsoleMode:du,DebugVisualization:dh,DecorationRangeBehavior:dg,Diagnostic:dp,DiagnosticRelatedInformation:dm,DiagnosticSeverity:df,DiagnosticTag:dv,Disposable:d_,DocumentHighlight:dy,DocumentHighlightKind:dC,MultiDocumentHighlight:dS,DocumentLink:db,DocumentSymbol:dw,EndOfLine:dx,EnvironmentVariableMutatorType:dD,EvaluatableExpression:dE,InlineValueText:dk,InlineValueVariableLookup:dT,InlineValueEvaluatableExpression:dR,InlineCompletionTriggerKind:dP,EventEmitter:dI,ExtensionKind:dA,ExtensionMode:dM,ExternalUriOpenerPriority:dL,FileChangeType:dF,FileDecoration:dO,FileDecoration2:dN,FileSystemError:d$,FileType:dH,FilePermission:dU,FoldingRange:dW,FoldingRangeKind:dq,FunctionBreakpoint:dj,InlineCompletionItem:dz,InlineCompletionList:dK,Hover:dV,VerboseHover:dB,HoverVerbosityAction:dG,IndentAction:dQ,Location:dJ,MarkdownString:dY,OverviewRulerLane:dX,ParameterInformation:dZ,PortAutoForwardAction:d0,Position:d1,ProcessExecution:d2,ProgressLocation:d6,QuickInputButtonLocation:d3,QuickInputButtons:d4,Range:d5,RelativePattern:d8,Selection:d7,SelectionRange:d9,SemanticTokens:ue,SemanticTokensBuilder:ut,SemanticTokensEdit:ui,SemanticTokensEdits:ur,SemanticTokensLegend:un,ShellExecution:uo,ShellQuoting:us,SignatureHelp:ua,SignatureHelpTriggerKind:ul,SignatureInformation:uc,SnippetString:ud,SourceBreakpoint:uu,StandardTokenType:uh,StatusBarAlignment:ug,SymbolInformation:up,SymbolKind:um,SymbolTag:uf,Task:uv,TaskGroup:u_,TaskPanelKind:uy,TaskRevealKind:uC,TaskScope:uS,TerminalLink:ub,TerminalQuickFixTerminalCommand:uw,TerminalQuickFixOpener:ux,TerminalLocation:uD,TerminalProfile:uE,TerminalExitReason:uk,TerminalShellExecutionCommandLineConfidence:uT,TextDocumentSaveReason:uR,TextEdit:uP,SnippetTextEdit:uI,TextEditorCursorStyle:uA,TextEditorLineNumbersStyle:uM,TextEditorRevealType:uL,TextEditorSelectionChangeKind:uF,SyntaxTokenType:uO,TextDocumentChangeReason:uN,ThemeColor:u$,ThemeIcon:uH,TreeItem:uU,TreeItemCheckboxState:uW,TreeItemCollapsibleState:uq,TypeHierarchyItem:uj,UIKind:uz,Uri:uK,ViewColumn:uV,WorkspaceEdit:uB,DocumentPasteTriggerKind:uG,DocumentDropEdit:uQ,DocumentDropOrPasteEditKind:uJ,DocumentPasteEdit:uY,InlayHint:uX,InlayHintLabelPart:uZ,InlayHintKind:u0,RemoteAuthorityResolverError:u1,ResolvedAuthority:u2,ManagedResolvedAuthority:u6,SourceControlInputBoxValidationType:u3,ExtensionRuntime:u4,TimelineItem:u5,NotebookRange:u8,NotebookCellKind:u7,NotebookCellData:u9,NotebookData:he,NotebookRendererScript:ht,NotebookCellStatusBarAlignment:hi,NotebookEditorRevealType:hr,NotebookCellOutput:hn,NotebookCellOutputItem:ho,NotebookCellStatusBarItem:hs,NotebookControllerAffinity:ha,NotebookControllerAffinity2:hl,NotebookEdit:hc,NotebookKernelSourceAction:hd,NotebookVariablesRequestKind:hu,PortAttributes:hh,LinkedEditingRanges:hg,TestResultState:hp,TestRunRequest:hm,TestMessage:hf,TestMessageStackFrame:hv,TestTag:h_,TestRunProfileKind:hy,TextSearchCompleteMessageType:hC,DataTransfer:hS,DataTransferItem:hb,TestCoverageCount:hw,FileCoverage:hx,StatementCoverage:hD,BranchCoverage:hE,DeclarationCoverage:hk,LanguageStatusSeverity:hT,QuickPickItemKind:hR,InputBoxValidationSeverity:hP,TabInputText:hI,TabInputTextDiff:hA,TabInputTextMerge:hM,TabInputCustom:hL,TabInputNotebook:hF,TabInputNotebookDiff:hO,TabInputWebview:hN,TabInputTerminal:h$,TabInputInteractiveWindow:hH,TabInputChat:hU,TabInputTextMultiDiff:hW,TelemetryTrustedValue:hq,LogLevel:hj,EditSessionIdentityMatch:hz,ChatCopyKind:hK,DebugStackFrame:hV,DebugThread:hB,RelatedInformationType:hG,SpeechToTextStatus:hQ,TextToSpeechStatus:hJ,PartialAcceptTriggerKind:hY,KeywordRecognitionStatus:hX,ChatResponseMarkdownPart:hZ,ChatResponseFileTreePart:h0,ChatResponseAnchorPart:h1,ChatResponseProgressPart:h2,ChatResponseProgressPart2:h6,ChatResponseReferencePart:h3,ChatResponseReferencePart2:h4,ChatResponseCodeCitationPart:h5,ChatResponseWarningPart:h8,ChatResponseTextEditPart:h7,ChatResponseMarkdownWithVulnerabilitiesPart:h9,ChatResponseCommandButtonPart:ge,ChatResponseConfirmationPart:gt,ChatResponseReferencePartStatusKind:gi,ChatRequestTurn:gr,ChatResponseTurn:gn,ChatLocation:go,ChatRequestEditorData:gs,ChatRequestNotebookData:ga,ChatResponseMovePart:gl,LanguageModelChatMessageRole:gc,LanguageModelChatMessage:gd,LanguageModelError:gu,NewSymbolName:gh,NewSymbolNameTag:gg,NewSymbolNameTriggerKind:gp,ExcludeSettingOptions:gm,ChatResponseCodeblockUriPart:gf,ChatEditingSessionActionOutcome:gv,LanguageModelChatToolMode:g_,LanguageModelToolCallPart:gy,LanguageModelToolResultPart:gC,LanguageModelTextPart:gS,LanguageModelPromptTsxPart:gb,LanguageModelToolResult:gw,ChatReferenceBinaryData:gx,CellErrorStackFrame:gD,TerminalCompletionItemKind:gE,TerminalCompletionList:gk,TextEditorChangeKind:gT,TextSearchMatch2:gR,TextSearchContext2:gP,ChatResponseNotebookEditPart:gI,ChatErrorLevel:gA,ExtendedLanguageModelToolResult:gM,ChatReferenceDiagnostic:gL,LanguageModelChatMessage2:gF,LanguageModelDataPart:gO,McpStdioServerDefinition:gN,SettingsSearchResultKind:g$,ChatResponseExtensionsPart:gH,ChatRequestEditedFileEventKind:gU,ChatRequestTurn2:gW,InlineCompletionEndOfLifeReasonKind:gq,LanguageModelToolResultPart2:gj,LanguageModelToolResult2:gz,McpHttpServerDefinition:gK,AISearchKeyword:gV,ChatPrepareToolInvocationPart:gB,InlineCompletionsDisposeReasonKind:gG,ChatToolInvocationPart:gQ,ChatResponseMultiDiffPart:gJ,ChatResponsePullRequestPart:gY,ChatResponseClearToPreviousToolInvocationReason:gX,LanguageModelToolExtensionSource:gZ,LanguageModelToolMCPSource:g0,ChatResponseTurn2:g1,LanguageModelTextPart2:g2,LanguageModelDataPart2:g6,ChatResponseThinkingProgressPart:g3,ChatSessionStatus:g4,InlineCompletionDisplayLocationKind:g5,LanguageModelThinkingPart:g8,LanguageModelPartAudience:g7,ChatResponseExternalEditPart:g9,McpToolAvailability:pe,McpStdioServerDefinition2:pt,McpHttpServerDefinition2:pi,TerminalCompletionItem:pr,ChatSessionChangedFile:pn}={version:nZ.default.version,tasks:cf("tasks"),notebooks:cf("notebooks"),scm:cf("scm"),comments:cf("comments"),authentication:cf("authentication"),tests:cf("tests"),extensions:cf("extensions"),debug:cf("debug"),env:cf("env"),commands:cf("commands"),window:cf("window"),workspace:cf("workspace"),languages:cf("languages"),l10n:cf("l10n"),interactive:cf("interactive"),ai:cf("ai"),chat:cf("chat"),speech:cf("speech"),lm:cf("lm"),Breakpoint:eh.Breakpoint,TerminalOutputAnchor:eh.TerminalOutputAnchor,ChatResultFeedbackKind:eh.ChatResultFeedbackKind,ChatVariableLevel:eh.ChatVariableLevel,ChatCompletionItem:eh.ChatCompletionItem,CallHierarchyIncomingCall:eh.CallHierarchyIncomingCall,CallHierarchyItem:eh.CallHierarchyItem,CallHierarchyOutgoingCall:eh.CallHierarchyOutgoingCall,CancellationError:eg.CancellationError,CancellationTokenSource:ef.CancellationTokenSource,CandidatePortSource:ev.CandidatePortSource,CodeAction:eh.CodeAction,CodeActionKind:ok.CodeActionKind,CodeActionTriggerKind:eh.CodeActionTriggerKind,CodeLens:eh.CodeLens,Color:eh.Color,ColorInformation:eh.ColorInformation,ColorPresentation:eh.ColorPresentation,ColorThemeKind:eh.ColorThemeKind,CommentMode:eh.CommentMode,CommentState:eh.CommentState,CommentThreadCollapsibleState:eh.CommentThreadCollapsibleState,CommentThreadState:eh.CommentThreadState,CommentThreadApplicability:eh.CommentThreadApplicability,CommentThreadFocus:eh.CommentThreadFocus,CompletionItem:eh.CompletionItem,CompletionItemKind:eh.CompletionItemKind,CompletionItemTag:eh.CompletionItemTag,CompletionList:eh.CompletionList,CompletionTriggerKind:eh.CompletionTriggerKind,ConfigurationTarget:eh.ConfigurationTarget,CustomExecution:eh.CustomExecution,DebugAdapterExecutable:eh.DebugAdapterExecutable,DebugAdapterInlineImplementation:eh.DebugAdapterInlineImplementation,DebugAdapterNamedPipeServer:eh.DebugAdapterNamedPipeServer,DebugAdapterServer:eh.DebugAdapterServer,DebugConfigurationProviderTriggerKind:e_.DebugConfigurationProviderTriggerKind,DebugConsoleMode:eh.DebugConsoleMode,DebugVisualization:eh.DebugVisualization,DecorationRangeBehavior:eh.DecorationRangeBehavior,Diagnostic:ss.Diagnostic,DiagnosticRelatedInformation:ss.DiagnosticRelatedInformation,DiagnosticSeverity:ss.DiagnosticSeverity,DiagnosticTag:ss.DiagnosticTag,Disposable:eh.Disposable,DocumentHighlight:eh.DocumentHighlight,DocumentHighlightKind:eh.DocumentHighlightKind,MultiDocumentHighlight:eh.MultiDocumentHighlight,DocumentLink:eh.DocumentLink,DocumentSymbol:eh.DocumentSymbol,EndOfLine:ie.EndOfLine,EnvironmentVariableMutatorType:eh.EnvironmentVariableMutatorType,EvaluatableExpression:eh.EvaluatableExpression,InlineValueText:eh.InlineValueText,InlineValueVariableLookup:eh.InlineValueVariableLookup,InlineValueEvaluatableExpression:eh.InlineValueEvaluatableExpression,InlineCompletionTriggerKind:eh.InlineCompletionTriggerKind,EventEmitter:ey.Emitter,ExtensionKind:eh.ExtensionKind,ExtensionMode:eh.ExtensionMode,ExternalUriOpenerPriority:eh.ExternalUriOpenerPriority,FileChangeType:eh.FileChangeType,FileDecoration:eh.FileDecoration,FileDecoration2:eh.FileDecoration,FileSystemError:eh.FileSystemError,FileType:ep.FileType,FilePermission:ep.FilePermission,FoldingRange:eh.FoldingRange,FoldingRangeKind:eh.FoldingRangeKind,FunctionBreakpoint:eh.FunctionBreakpoint,InlineCompletionItem:eh.InlineSuggestion,InlineCompletionList:eh.InlineSuggestionList,Hover:eh.Hover,VerboseHover:eh.VerboseHover,HoverVerbosityAction:eh.HoverVerbosityAction,IndentAction:em.IndentAction,Location:tZ.Location,MarkdownString:oN.MarkdownString,OverviewRulerLane:eC.OverviewRulerLane,ParameterInformation:eh.ParameterInformation,PortAutoForwardAction:eh.PortAutoForwardAction,Position:tY.Position,ProcessExecution:eh.ProcessExecution,ProgressLocation:eh.ProgressLocation,QuickInputButtonLocation:eh.QuickInputButtonLocation,QuickInputButtons:eh.QuickInputButtons,Range:ti.Range,RelativePattern:eh.RelativePattern,Selection:tX.Selection,SelectionRange:eh.SelectionRange,SemanticTokens:eh.SemanticTokens,SemanticTokensBuilder:eh.SemanticTokensBuilder,SemanticTokensEdit:eh.SemanticTokensEdit,SemanticTokensEdits:eh.SemanticTokensEdits,SemanticTokensLegend:eh.SemanticTokensLegend,ShellExecution:eh.ShellExecution,ShellQuoting:eh.ShellQuoting,SignatureHelp:eh.SignatureHelp,SignatureHelpTriggerKind:eh.SignatureHelpTriggerKind,SignatureInformation:eh.SignatureInformation,SnippetString:sI.SnippetString,SourceBreakpoint:eh.SourceBreakpoint,StandardTokenType:eh.StandardTokenType,StatusBarAlignment:eh.StatusBarAlignment,SymbolInformation:oE.SymbolInformation,SymbolKind:oE.SymbolKind,SymbolTag:oE.SymbolTag,Task:eh.Task,TaskGroup:eh.TaskGroup,TaskPanelKind:eh.TaskPanelKind,TaskRevealKind:eh.TaskRevealKind,TaskScope:eh.TaskScope,TerminalLink:eh.TerminalLink,TerminalQuickFixTerminalCommand:eh.TerminalQuickFixCommand,TerminalQuickFixOpener:eh.TerminalQuickFixOpener,TerminalLocation:eh.TerminalLocation,TerminalProfile:eh.TerminalProfile,TerminalExitReason:eh.TerminalExitReason,TerminalShellExecutionCommandLineConfidence:eh.TerminalShellExecutionCommandLineConfidence,TextDocumentSaveReason:eh.TextDocumentSaveReason,TextEdit:ie.TextEdit,SnippetTextEdit:l8.SnippetTextEdit,TextEditorCursorStyle:ex.TextEditorCursorStyle,TextEditorLineNumbersStyle:eh.TextEditorLineNumbersStyle,TextEditorRevealType:eh.TextEditorRevealType,TextEditorSelectionChangeKind:eh.TextEditorSelectionChangeKind,SyntaxTokenType:eh.SyntaxTokenType,TextDocumentChangeReason:eh.TextDocumentChangeReason,ThemeColor:eh.ThemeColor,ThemeIcon:eh.ThemeIcon,TreeItem:eh.TreeItem,TreeItemCheckboxState:eh.TreeItemCheckboxState,TreeItemCollapsibleState:eh.TreeItemCollapsibleState,TypeHierarchyItem:eh.TypeHierarchyItem,UIKind:eS.UIKind,Uri:eD.URI,ViewColumn:eh.ViewColumn,WorkspaceEdit:sw.WorkspaceEdit,DocumentPasteTriggerKind:eh.DocumentPasteTriggerKind,DocumentDropEdit:eh.DocumentDropEdit,DocumentDropOrPasteEditKind:eh.DocumentDropOrPasteEditKind,DocumentPasteEdit:eh.DocumentPasteEdit,InlayHint:eh.InlayHint,InlayHintLabelPart:eh.InlayHintLabelPart,InlayHintKind:eh.InlayHintKind,RemoteAuthorityResolverError:eh.RemoteAuthorityResolverError,ResolvedAuthority:eh.ResolvedAuthority,ManagedResolvedAuthority:eh.ManagedResolvedAuthority,SourceControlInputBoxValidationType:eh.SourceControlInputBoxValidationType,ExtensionRuntime:eh.ExtensionRuntime,TimelineItem:eh.TimelineItem,NotebookRange:t0.NotebookRange,NotebookCellKind:t0.NotebookCellKind,NotebookCellData:t0.NotebookCellData,NotebookData:t0.NotebookData,NotebookRendererScript:eh.NotebookRendererScript,NotebookCellStatusBarAlignment:eh.NotebookCellStatusBarAlignment,NotebookEditorRevealType:eh.NotebookEditorRevealType,NotebookCellOutput:t0.NotebookCellOutput,NotebookCellOutputItem:t0.NotebookCellOutputItem,NotebookCellStatusBarItem:eh.NotebookCellStatusBarItem,NotebookControllerAffinity:eh.NotebookControllerAffinity,NotebookControllerAffinity2:eh.NotebookControllerAffinity2,NotebookEdit:t0.NotebookEdit,NotebookKernelSourceAction:eh.NotebookKernelSourceAction,NotebookVariablesRequestKind:eh.NotebookVariablesRequestKind,PortAttributes:eh.PortAttributes,LinkedEditingRanges:eh.LinkedEditingRanges,TestResultState:eh.TestResultState,TestRunRequest:eh.TestRunRequest,TestMessage:eh.TestMessage,TestMessageStackFrame:eh.TestMessageStackFrame,TestTag:eh.TestTag,TestRunProfileKind:eh.TestRunProfileKind,TextSearchCompleteMessageType:eb.TextSearchCompleteMessageType,DataTransfer:eh.DataTransfer,DataTransferItem:eh.DataTransferItem,TestCoverageCount:eh.TestCoverageCount,FileCoverage:eh.FileCoverage,StatementCoverage:eh.StatementCoverage,BranchCoverage:eh.BranchCoverage,DeclarationCoverage:eh.DeclarationCoverage,LanguageStatusSeverity:eh.LanguageStatusSeverity,QuickPickItemKind:eh.QuickPickItemKind,InputBoxValidationSeverity:eh.InputBoxValidationSeverity,TabInputText:eh.TextTabInput,TabInputTextDiff:eh.TextDiffTabInput,TabInputTextMerge:eh.TextMergeTabInput,TabInputCustom:eh.CustomEditorTabInput,TabInputNotebook:eh.NotebookEditorTabInput,TabInputNotebookDiff:eh.NotebookDiffEditorTabInput,TabInputWebview:eh.WebviewEditorTabInput,TabInputTerminal:eh.TerminalEditorTabInput,TabInputInteractiveWindow:eh.InteractiveWindowInput,TabInputChat:eh.ChatEditorTabInput,TabInputTextMultiDiff:eh.TextMultiDiffTabInput,TelemetryTrustedValue:eE.TelemetryTrustedValue,LogLevel:ew.LogLevel,EditSessionIdentityMatch:T,ChatCopyKind:eh.ChatCopyKind,DebugStackFrame:eh.DebugStackFrame,DebugThread:eh.DebugThread,RelatedInformationType:eh.RelatedInformationType,SpeechToTextStatus:eh.SpeechToTextStatus,TextToSpeechStatus:eh.TextToSpeechStatus,PartialAcceptTriggerKind:eh.PartialAcceptTriggerKind,KeywordRecognitionStatus:eh.KeywordRecognitionStatus,ChatResponseMarkdownPart:eh.ChatResponseMarkdownPart,ChatResponseFileTreePart:eh.ChatResponseFileTreePart,ChatResponseAnchorPart:eh.ChatResponseAnchorPart,ChatResponseProgressPart:eh.ChatResponseProgressPart,ChatResponseProgressPart2:eh.ChatResponseProgressPart2,ChatResponseReferencePart:eh.ChatResponseReferencePart,ChatResponseReferencePart2:eh.ChatResponseReferencePart,ChatResponseCodeCitationPart:eh.ChatResponseCodeCitationPart,ChatResponseWarningPart:eh.ChatResponseWarningPart,ChatResponseTextEditPart:eh.ChatResponseTextEditPart,ChatResponseMarkdownWithVulnerabilitiesPart:eh.ChatResponseMarkdownWithVulnerabilitiesPart,ChatResponseCommandButtonPart:eh.ChatResponseCommandButtonPart,ChatResponseConfirmationPart:eh.ChatResponseConfirmationPart,ChatResponseReferencePartStatusKind:eh.ChatResponseReferencePartStatusKind,ChatRequestTurn:eh.ChatRequestTurn,ChatResponseTurn:eh.ChatResponseTurn,ChatLocation:eh.ChatLocation,ChatRequestEditorData:eh.ChatRequestEditorData,ChatRequestNotebookData:eh.ChatRequestNotebookData,ChatResponseMovePart:eh.ChatResponseMovePart,LanguageModelChatMessageRole:eh.LanguageModelChatMessageRole,LanguageModelChatMessage:eh.LanguageModelChatMessage,LanguageModelError:eh.LanguageModelError,NewSymbolName:eh.NewSymbolName,NewSymbolNameTag:eh.NewSymbolNameTag,NewSymbolNameTriggerKind:eh.NewSymbolNameTriggerKind,ExcludeSettingOptions:eb.ExcludeSettingOptions,ChatResponseCodeblockUriPart:eh.ChatResponseCodeblockUriPart,ChatEditingSessionActionOutcome:eh.ChatEditingSessionActionOutcome,LanguageModelChatToolMode:eh.LanguageModelChatToolMode,LanguageModelToolCallPart:eh.LanguageModelToolCallPart,LanguageModelToolResultPart:eh.LanguageModelToolResultPart,LanguageModelTextPart:eh.LanguageModelTextPart,LanguageModelPromptTsxPart:eh.LanguageModelPromptTsxPart,LanguageModelToolResult:eh.LanguageModelToolResult,ChatReferenceBinaryData:eh.ChatReferenceBinaryData,CellErrorStackFrame:eh.CellErrorStackFrame,TerminalCompletionItemKind:eh.TerminalCompletionItemKind,TerminalCompletionList:eh.TerminalCompletionList,TextEditorChangeKind:eh.TextEditorChangeKind,TextSearchMatch2:eb.TextSearchMatch2,TextSearchContext2:eb.TextSearchContext2,ChatResponseNotebookEditPart:eh.ChatResponseNotebookEditPart,ChatErrorLevel:eh.ChatErrorLevel,ExtendedLanguageModelToolResult:eh.ExtendedLanguageModelToolResult,ChatReferenceDiagnostic:eh.ChatReferenceDiagnostic,LanguageModelChatMessage2:eh.LanguageModelChatMessage2,LanguageModelDataPart:eh.LanguageModelDataPart,McpStdioServerDefinition:eh.McpStdioServerDefinition,SettingsSearchResultKind:eh.SettingsSearchResultKind,ChatResponseExtensionsPart:eh.ChatResponseExtensionsPart,ChatRequestEditedFileEventKind:eh.ChatRequestEditedFileEventKind,ChatRequestTurn2:eh.ChatRequestTurn,InlineCompletionEndOfLifeReasonKind:eh.InlineCompletionEndOfLifeReasonKind,LanguageModelToolResultPart2:eh.LanguageModelToolResultPart,LanguageModelToolResult2:eh.LanguageModelToolResult2,McpHttpServerDefinition:eh.McpHttpServerDefinition,AISearchKeyword:eb.AISearchKeyword,ChatPrepareToolInvocationPart:eh.ChatPrepareToolInvocationPart,InlineCompletionsDisposeReasonKind:eh.InlineCompletionsDisposeReasonKind,ChatToolInvocationPart:eh.ChatToolInvocationPart,ChatResponseMultiDiffPart:eh.ChatResponseMultiDiffPart,ChatResponsePullRequestPart:eh.ChatResponsePullRequestPart,ChatResponseClearToPreviousToolInvocationReason:eh.ChatResponseClearToPreviousToolInvocationReason,LanguageModelToolExtensionSource:eh.LanguageModelToolExtensionSource,LanguageModelToolMCPSource:eh.LanguageModelToolMCPSource,ChatResponseTurn2:eh.ChatResponseTurn2,LanguageModelTextPart2:eh.LanguageModelTextPart,LanguageModelDataPart2:eh.LanguageModelDataPart,ChatResponseThinkingProgressPart:eh.ChatResponseThinkingProgressPart,ChatSessionStatus:eh.ChatSessionStatus,InlineCompletionDisplayLocationKind:eh.InlineCompletionDisplayLocationKind,LanguageModelThinkingPart:eh.LanguageModelThinkingPart,LanguageModelPartAudience:eh.LanguageModelPartAudience,ChatResponseExternalEditPart:eh.ChatResponseExternalEditPart,McpToolAvailability:eh.McpToolAvailability,McpStdioServerDefinition2:eh.McpStdioServerDefinition,McpHttpServerDefinition2:eh.McpHttpServerDefinition,TerminalCompletionItem:eh.TerminalCompletionItem,ChatSessionChangedFile:eh.ChatSessionChangedFile};e.s(["AISearchKeyword",0,gV,"BranchCoverage",0,hE,"Breakpoint",0,cN,"CallHierarchyIncomingCall",0,cq,"CallHierarchyItem",0,cj,"CallHierarchyOutgoingCall",0,cz,"CancellationError",0,cK,"CancellationTokenSource",0,cV,"CandidatePortSource",0,cB,"CellErrorStackFrame",0,gD,"ChatCompletionItem",0,cW,"ChatCopyKind",0,hK,"ChatEditingSessionActionOutcome",0,gv,"ChatErrorLevel",0,gA,"ChatLocation",0,go,"ChatPrepareToolInvocationPart",0,gB,"ChatReferenceBinaryData",0,gx,"ChatReferenceDiagnostic",0,gL,"ChatRequestEditedFileEventKind",0,gU,"ChatRequestEditorData",0,gs,"ChatRequestNotebookData",0,ga,"ChatRequestTurn",0,gr,"ChatRequestTurn2",0,gW,"ChatResponseAnchorPart",0,h1,"ChatResponseClearToPreviousToolInvocationReason",0,gX,"ChatResponseCodeCitationPart",0,h5,"ChatResponseCodeblockUriPart",0,gf,"ChatResponseCommandButtonPart",0,ge,"ChatResponseConfirmationPart",0,gt,"ChatResponseExtensionsPart",0,gH,"ChatResponseExternalEditPart",0,g9,"ChatResponseFileTreePart",0,h0,"ChatResponseMarkdownPart",0,hZ,"ChatResponseMarkdownWithVulnerabilitiesPart",0,h9,"ChatResponseMovePart",0,gl,"ChatResponseMultiDiffPart",0,gJ,"ChatResponseNotebookEditPart",0,gI,"ChatResponseProgressPart",0,h2,"ChatResponseProgressPart2",0,h6,"ChatResponsePullRequestPart",0,gY,"ChatResponseReferencePart",0,h3,"ChatResponseReferencePart2",0,h4,"ChatResponseReferencePartStatusKind",0,gi,"ChatResponseTextEditPart",0,h7,"ChatResponseThinkingProgressPart",0,g3,"ChatResponseTurn",0,gn,"ChatResponseTurn2",0,g1,"ChatResponseWarningPart",0,h8,"ChatResultFeedbackKind",0,cH,"ChatSessionChangedFile",0,pn,"ChatSessionStatus",0,g4,"ChatToolInvocationPart",0,gQ,"ChatVariableLevel",0,cU,"CodeAction",0,cG,"CodeActionKind",0,cQ,"CodeActionTriggerKind",0,cJ,"CodeLens",0,cY,"Color",0,cX,"ColorInformation",0,cZ,"ColorPresentation",0,c0,"ColorThemeKind",0,c1,"CommentMode",0,c2,"CommentState",0,c6,"CommentThreadApplicability",0,c5,"CommentThreadCollapsibleState",0,c3,"CommentThreadFocus",0,c8,"CommentThreadState",0,c4,"CompletionItem",0,c7,"CompletionItemKind",0,c9,"CompletionItemTag",0,de,"CompletionList",0,dt,"CompletionTriggerKind",0,di,"ConfigurationTarget",0,dr,"CustomExecution",0,dn,"DataTransfer",0,hS,"DataTransferItem",0,hb,"DebugAdapterExecutable",0,ds,"DebugAdapterInlineImplementation",0,da,"DebugAdapterNamedPipeServer",0,dl,"DebugAdapterServer",0,dc,"DebugConfigurationProviderTriggerKind",0,dd,"DebugConsoleMode",0,du,"DebugStackFrame",0,hV,"DebugThread",0,hB,"DebugVisualization",0,dh,"DeclarationCoverage",0,hk,"DecorationRangeBehavior",0,dg,"Diagnostic",0,dp,"DiagnosticRelatedInformation",0,dm,"DiagnosticSeverity",0,df,"DiagnosticTag",0,dv,"Disposable",0,d_,"DocumentDropEdit",0,uQ,"DocumentDropOrPasteEditKind",0,uJ,"DocumentHighlight",0,dy,"DocumentHighlightKind",0,dC,"DocumentLink",0,db,"DocumentPasteEdit",0,uY,"DocumentPasteTriggerKind",0,uG,"DocumentSymbol",0,dw,"EditSessionIdentityMatch",0,hz,"EndOfLine",0,dx,"EnvironmentVariableMutatorType",0,dD,"EvaluatableExpression",0,dE,"EventEmitter",0,dI,"ExcludeSettingOptions",0,gm,"ExtendedLanguageModelToolResult",0,gM,"ExtensionKind",0,dA,"ExtensionMode",0,dM,"ExtensionRuntime",0,u4,"ExternalUriOpenerPriority",0,dL,"FileChangeType",0,dF,"FileCoverage",0,hx,"FileDecoration",0,dO,"FileDecoration2",0,dN,"FilePermission",0,dU,"FileSystemError",0,d$,"FileType",0,dH,"FoldingRange",0,dW,"FoldingRangeKind",0,dq,"FunctionBreakpoint",0,dj,"Hover",0,dV,"HoverVerbosityAction",0,dG,"IndentAction",0,dQ,"InlayHint",0,uX,"InlayHintKind",0,u0,"InlayHintLabelPart",0,uZ,"InlineCompletionDisplayLocationKind",0,g5,"InlineCompletionEndOfLifeReasonKind",0,gq,"InlineCompletionItem",0,dz,"InlineCompletionList",0,dK,"InlineCompletionTriggerKind",0,dP,"InlineCompletionsDisposeReasonKind",0,gG,"InlineValueEvaluatableExpression",0,dR,"InlineValueText",0,dk,"InlineValueVariableLookup",0,dT,"InputBoxValidationSeverity",0,hP,"KeywordRecognitionStatus",0,hX,"LanguageModelChatMessage",0,gd,"LanguageModelChatMessage2",0,gF,"LanguageModelChatMessageRole",0,gc,"LanguageModelChatToolMode",0,g_,"LanguageModelDataPart",0,gO,"LanguageModelDataPart2",0,g6,"LanguageModelError",0,gu,"LanguageModelPartAudience",0,g7,"LanguageModelPromptTsxPart",0,gb,"LanguageModelTextPart",0,gS,"LanguageModelTextPart2",0,g2,"LanguageModelThinkingPart",0,g8,"LanguageModelToolCallPart",0,gy,"LanguageModelToolExtensionSource",0,gZ,"LanguageModelToolMCPSource",0,g0,"LanguageModelToolResult",0,gw,"LanguageModelToolResult2",0,gz,"LanguageModelToolResultPart",0,gC,"LanguageModelToolResultPart2",0,gj,"LanguageStatusSeverity",0,hT,"LinkedEditingRanges",0,hg,"Location",0,dJ,"LogLevel",0,hj,"ManagedResolvedAuthority",0,u6,"MarkdownString",0,dY,"McpHttpServerDefinition",0,gK,"McpHttpServerDefinition2",0,pi,"McpStdioServerDefinition",0,gN,"McpStdioServerDefinition2",0,pt,"McpToolAvailability",0,pe,"MultiDocumentHighlight",0,dS,"NewSymbolName",0,gh,"NewSymbolNameTag",0,gg,"NewSymbolNameTriggerKind",0,gp,"NotebookCellData",0,u9,"NotebookCellKind",0,u7,"NotebookCellOutput",0,hn,"NotebookCellOutputItem",0,ho,"NotebookCellStatusBarAlignment",0,hi,"NotebookCellStatusBarItem",0,hs,"NotebookControllerAffinity",0,ha,"NotebookControllerAffinity2",0,hl,"NotebookData",0,he,"NotebookEdit",0,hc,"NotebookEditorRevealType",0,hr,"NotebookKernelSourceAction",0,hd,"NotebookRange",0,u8,"NotebookRendererScript",0,ht,"NotebookVariablesRequestKind",0,hu,"OverviewRulerLane",0,dX,"ParameterInformation",0,dZ,"PartialAcceptTriggerKind",0,hY,"PortAttributes",0,hh,"PortAutoForwardAction",0,d0,"Position",0,d1,"ProcessExecution",0,d2,"ProgressLocation",0,d6,"QuickInputButtonLocation",0,d3,"QuickInputButtons",0,d4,"QuickPickItemKind",0,hR,"Range",0,d5,"RelatedInformationType",0,hG,"RelativePattern",0,d8,"RemoteAuthorityResolverError",0,u1,"ResolvedAuthority",0,u2,"Selection",0,d7,"SelectionRange",0,d9,"SemanticTokens",0,ue,"SemanticTokensBuilder",0,ut,"SemanticTokensEdit",0,ui,"SemanticTokensEdits",0,ur,"SemanticTokensLegend",0,un,"SettingsSearchResultKind",0,g$,"ShellExecution",0,uo,"ShellQuoting",0,us,"SignatureHelp",0,ua,"SignatureHelpTriggerKind",0,ul,"SignatureInformation",0,uc,"SnippetString",0,ud,"SnippetTextEdit",0,uI,"SourceBreakpoint",0,uu,"SourceControlInputBoxValidationType",0,u3,"SpeechToTextStatus",0,hQ,"StandardTokenType",0,uh,"StatementCoverage",0,hD,"StatusBarAlignment",0,ug,"SymbolInformation",0,up,"SymbolKind",0,um,"SymbolTag",0,uf,"SyntaxTokenType",0,uO,"TabInputChat",0,hU,"TabInputCustom",0,hL,"TabInputInteractiveWindow",0,hH,"TabInputNotebook",0,hF,"TabInputNotebookDiff",0,hO,"TabInputTerminal",0,h$,"TabInputText",0,hI,"TabInputTextDiff",0,hA,"TabInputTextMerge",0,hM,"TabInputTextMultiDiff",0,hW,"TabInputWebview",0,hN,"Task",0,uv,"TaskGroup",0,u_,"TaskPanelKind",0,uy,"TaskRevealKind",0,uC,"TaskScope",0,uS,"TelemetryTrustedValue",0,hq,"TerminalCompletionItem",0,pr,"TerminalCompletionItemKind",0,gE,"TerminalCompletionList",0,gk,"TerminalExitReason",0,uk,"TerminalLink",0,ub,"TerminalLocation",0,uD,"TerminalOutputAnchor",0,c$,"TerminalProfile",0,uE,"TerminalQuickFixOpener",0,ux,"TerminalQuickFixTerminalCommand",0,uw,"TerminalShellExecutionCommandLineConfidence",0,uT,"TestCoverageCount",0,hw,"TestMessage",0,hf,"TestMessageStackFrame",0,hv,"TestResultState",0,hp,"TestRunProfileKind",0,hy,"TestRunRequest",0,hm,"TestTag",0,h_,"TextDocumentChangeReason",0,uN,"TextDocumentSaveReason",0,uR,"TextEdit",0,uP,"TextEditorChangeKind",0,gT,"TextEditorCursorStyle",0,uA,"TextEditorLineNumbersStyle",0,uM,"TextEditorRevealType",0,uL,"TextEditorSelectionChangeKind",0,uF,"TextSearchCompleteMessageType",0,hC,"TextSearchContext2",0,gP,"TextSearchMatch2",0,gR,"TextToSpeechStatus",0,hJ,"ThemeColor",0,u$,"ThemeIcon",0,uH,"TimelineItem",0,u5,"TreeItem",0,uU,"TreeItemCheckboxState",0,uW,"TreeItemCollapsibleState",0,uq,"TypeHierarchyItem",0,uj,"UIKind",0,uz,"Uri",0,uK,"VerboseHover",0,dB,"ViewColumn",0,uV,"WorkspaceEdit",0,uB,"ai",0,cM,"authentication",0,cb,"chat",0,cL,"commands",0,ck,"comments",0,cS,"debug",0,cD,"env",0,cE,"extensions",0,cx,"interactive",0,cA,"l10n",0,cI,"languages",0,cP,"lm",0,cO,"notebooks",0,cy,"scm",0,cC,"speech",0,cF,"tasks",0,c_,"tests",0,cw,"version",0,cv,"window",0,cT,"workspace",0,cR],663544)},217405,(e,t,i)=>{"use strict";function r(e){return"string"==typeof e||e instanceof String}function n(e){return"function"==typeof e}function o(e){return Array.isArray(e)}function s(e){return e&&n(e.then)}Object.defineProperty(i,"__esModule",{value:!0}),i.asPromise=i.thenable=i.typedArray=i.stringArray=i.array=i.func=i.error=i.number=i.string=i.boolean=void 0,i.boolean=function(e){return!0===e||!1===e},i.string=r,i.number=function(e){return"number"==typeof e||e instanceof Number},i.error=function(e){return e instanceof Error},i.func=n,i.array=o,i.stringArray=function(e){return o(e)&&e.every(e=>r(e))},i.typedArray=function(e,t){return Array.isArray(e)&&e.every(t)},i.thenable=s,i.asPromise=function(e){return e instanceof Promise?e:s(e)?new Promise((t,i)=>{e.then(e=>t(e),e=>i(e))}):Promise.resolve(e)}},413807,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.generateUuid=i.parse=i.isUUID=i.v4=i.empty=void 0;class r{constructor(e){this._value=e}asHex(){return this._value}equals(e){return this.asHex()===e.asHex()}}class n extends r{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return n._oneOf(n._chars)}constructor(){super(""+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+"-"+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+"-4"+n._randomHex()+n._randomHex()+n._randomHex()+"-"+n._oneOf(n._timeHighBits)+n._randomHex()+n._randomHex()+n._randomHex()+"-"+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex()+n._randomHex())}}function o(){return new n}n._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"],n._timeHighBits=["8","9","a","b"],i.empty=new r("00000000-0000-0000-0000-000000000000"),i.v4=o;let s=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function a(e){return s.test(e)}i.isUUID=a,i.parse=function(e){if(!a(e))throw Error("invalid uuid");return new r(e)},i.generateUuid=function(){return o().asHex()}},165969,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.WorkspaceFeature=i.TextDocumentLanguageFeature=i.TextDocumentEventFeature=i.DynamicDocumentFeature=i.DynamicFeature=i.StaticFeature=i.ensure=i.LSPCancellationError=void 0;let o=e.r(663544),s=e.r(441296),a=e.r(217405),l=e.r(413807);class c extends o.CancellationError{constructor(e){super(),this.data=e}}i.LSPCancellationError=c,i.ensure=function(e,t){return void 0===e[t]&&(e[t]={}),e[t]},(r||(i.StaticFeature=r={})).is=function(e){return null!=e&&a.func(e.fillClientCapabilities)&&a.func(e.initialize)&&a.func(e.getState)&&a.func(e.clear)&&(void 0===e.fillInitializeParams||a.func(e.fillInitializeParams))},(n||(i.DynamicFeature=n={})).is=function(e){return null!=e&&a.func(e.fillClientCapabilities)&&a.func(e.initialize)&&a.func(e.getState)&&a.func(e.clear)&&(void 0===e.fillInitializeParams||a.func(e.fillInitializeParams))&&a.func(e.register)&&a.func(e.unregister)&&void 0!==e.registrationType};class d{constructor(e){this._client=e}getState(){let e=this.getDocumentSelectors(),t=0;for(let i of e)for(let e of(t++,o.workspace.textDocuments))if(o.languages.match(i,e)>0)return{kind:"document",id:this.registrationType.method,registrations:!0,matches:!0};let i=t>0;return{kind:"document",id:this.registrationType.method,registrations:i,matches:!1}}}i.DynamicDocumentFeature=d,i.TextDocumentEventFeature=class extends d{static textDocumentFilter(e,t){for(let i of e)if(o.languages.match(i,t)>0)return!0;return!1}constructor(e,t,i,r,n,s,a){super(e),this._event=t,this._type=i,this._middleware=r,this._createParams=n,this._textDocument=s,this._selectorFilter=a,this._selectors=new Map,this._onNotificationSent=new o.EventEmitter}getStateInfo(){return[this._selectors.values(),!1]}getDocumentSelectors(){return this._selectors.values()}register(e){e.registerOptions.documentSelector&&(this._listener||(this._listener=this._event(e=>{this.callback(e).catch(e=>{this._client.error(`Sending document notification ${this._type.method} failed.`,e)})})),this._selectors.set(e.id,this._client.protocol2CodeConverter.asDocumentSelector(e.registerOptions.documentSelector)))}async callback(e){let t=async e=>{let t=this._createParams(e);await this._client.sendNotification(this._type,t),this.notificationSent(this.getTextDocument(e),this._type,t)};if(this.matches(e)){let i=this._middleware();return i?i(e,e=>t(e)):t(e)}}matches(e){return!this._client.hasDedicatedTextSynchronizationFeature(this._textDocument(e))&&(!this._selectorFilter||this._selectorFilter(this._selectors.values(),e))}get onNotificationSent(){return this._onNotificationSent.event}notificationSent(e,t,i){this._onNotificationSent.fire({textDocument:e,type:t,params:i})}unregister(e){this._selectors.delete(e),0===this._selectors.size&&this._listener&&(this._listener.dispose(),this._listener=void 0)}clear(){this._selectors.clear(),this._onNotificationSent.dispose(),this._listener&&(this._listener.dispose(),this._listener=void 0)}getProvider(e){for(let t of this._selectors.values())if(o.languages.match(t,e)>0)return{send:e=>this.callback(e)}}},i.TextDocumentLanguageFeature=class extends d{constructor(e,t){super(e),this._registrationType=t,this._registrations=new Map}*getDocumentSelectors(){for(let e of this._registrations.values()){let t=e.data.registerOptions.documentSelector;null!==t&&(yield this._client.protocol2CodeConverter.asDocumentSelector(t))}}get registrationType(){return this._registrationType}register(e){if(!e.registerOptions.documentSelector)return;let t=this.registerLanguageProvider(e.registerOptions,e.id);this._registrations.set(e.id,{disposable:t[0],data:e,provider:t[1]})}unregister(e){let t=this._registrations.get(e);void 0!==t&&t.disposable.dispose()}clear(){this._registrations.forEach(e=>{e.disposable.dispose()}),this._registrations.clear()}getRegistration(e,t){if(t){if(s.TextDocumentRegistrationOptions.is(t)){let i=s.StaticRegistrationOptions.hasId(t)?t.id:l.generateUuid(),r=t.documentSelector??e;if(r)return[i,Object.assign({},t,{documentSelector:r})]}else if(a.boolean(t)&&!0===t||s.WorkDoneProgressOptions.is(t)){if(!e)return[void 0,void 0];let i=a.boolean(t)&&!0===t?{documentSelector:e}:Object.assign({},t,{documentSelector:e});return[l.generateUuid(),i]}}return[void 0,void 0]}getRegistrationOptions(e,t){if(e&&t)return a.boolean(t)&&!0===t?{documentSelector:e}:Object.assign({},t,{documentSelector:e})}getProvider(e){for(let t of this._registrations.values()){let i=t.data.registerOptions.documentSelector;if(null!==i&&o.languages.match(this._client.protocol2CodeConverter.asDocumentSelector(i),e)>0)return t.provider}}getAllProviders(){let e=[];for(let t of this._registrations.values())e.push(t.provider);return e}},i.WorkspaceFeature=class{constructor(e,t){this._client=e,this._registrationType=t,this._registrations=new Map}getState(){let e=this._registrations.size>0;return{kind:"workspace",id:this._registrationType.method,registrations:e}}get registrationType(){return this._registrationType}register(e){let t=this.registerLanguageProvider(e.registerOptions);this._registrations.set(e.id,{disposable:t[0],provider:t[1]})}unregister(e){let t=this._registrations.get(e);void 0!==t&&t.disposable.dispose()}clear(){this._registrations.forEach(e=>{e.disposable.dispose()}),this._registrations.clear()}getProviders(){let e=[];for(let t of this._registrations.values())e.push(t.provider);return e}}},203379,(e,t,i)=>{var r=e.i(8890);"object"==typeof r.default&&r.default&&r.default.platform,t.exports={sep:"/"}},969803,(e,t,i)=>{"use strict";function r(e,t,i){e instanceof RegExp&&(e=n(e,i)),t instanceof RegExp&&(t=n(t,i));var r=o(e,t,i);return r&&{start:r[0],end:r[1],pre:i.slice(0,r[0]),body:i.slice(r[0]+e.length,r[1]),post:i.slice(r[1]+t.length)}}function n(e,t){var i=t.match(e);return i?i[0]:null}function o(e,t,i){var r,n,o,s,a,l=i.indexOf(e),c=i.indexOf(t,l+1),d=l;if(l>=0&&c>0){if(e===t)return[l,c];for(r=[],o=i.length;d>=0&&!a;)d==l?(r.push(d),l=i.indexOf(e,d+1)):1==r.length?a=[r.pop(),c]:((n=r.pop())<o&&(o=n,s=c),c=i.indexOf(t,d+1)),d=l<c&&l>=0?l:c;r.length&&(a=[o,s])}return a}t.exports=r,r.range=o},597181,(e,t,i)=>{var r=e.r(969803);t.exports=function(e,t){if(!e)return[];var i=null==(t=t||{}).max?1/0:t.max;return"{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),(function e(t,i,n){var o=[],a=r("{","}",t);if(!a)return[t];var l=a.pre,d=a.post.length?e(a.post,i,!1):[""];if(/\$$/.test(a.pre))for(var m=0;m<d.length&&m<i;m++){var f=l+"{"+a.body+"}"+d[m];o.push(f)}else{var _=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(a.body),y=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(a.body),C=_||y,S=a.body.indexOf(",")>=0;if(!C&&!S)return a.post.match(/,(?!,).*\}/)?e(t=a.pre+"{"+a.body+s+a.post,i,!0):[t];if(C)b=a.body.split(/\.\./);else if(1===(b=function e(t){if(!t)return[""];var i=[],n=r("{","}",t);if(!n)return t.split(",");var o=n.pre,s=n.body,a=n.post,l=o.split(",");l[l.length-1]+="{"+s+"}";var c=e(a);return a.length&&(l[l.length-1]+=c.shift(),l.push.apply(l,c)),i.push.apply(i,l),i}(a.body)).length&&1===(b=e(b[0],i,!1).map(u)).length)return d.map(function(e){return a.pre+b[0]+e});if(C){var b,w,x,D=c(b[0]),E=c(b[1]),k=Math.max(b[0].length,b[1].length),T=3==b.length?Math.max(Math.abs(c(b[2])),1):1,R=g;E<D&&(T*=-1,R=p);var P=b.some(h);w=[];for(var I=D;R(I,E);I+=T){if(y)"\\"===(x=String.fromCharCode(I))&&(x="");else if(x=String(I),P){var A=k-x.length;if(A>0){var M=Array(A+1).join("0");x=I<0?"-"+M+x.slice(1):M+x}}w.push(x)}}else{w=[];for(var L=0;L<b.length;L++)w.push.apply(w,e(b[L],i,!1))}for(var L=0;L<w.length;L++)for(var m=0;m<d.length&&o.length<i;m++){var f=l+w[L]+d[m];(!n||C||f)&&o.push(f)}}return o})(e.split("\\\\").join(n).split("\\{").join(o).split("\\}").join(s).split("\\,").join(a).split("\\.").join(l),i,!0).map(d)};var n="\0SLASH"+Math.random()+"\0",o="\0OPEN"+Math.random()+"\0",s="\0CLOSE"+Math.random()+"\0",a="\0COMMA"+Math.random()+"\0",l="\0PERIOD"+Math.random()+"\0";function c(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function d(e){return e.split(n).join("\\").split(o).join("{").split(s).join("}").split(a).join(",").split(l).join(".")}function u(e){return"{"+e+"}"}function h(e){return/^-?0\d/.test(e)}function g(e,t){return e<=t}function p(e,t){return e>=t}},564461,(e,t,i)=>{let r=t.exports=(e,t,i={})=>(f(t),(!!i.nocomment||"#"!==t.charAt(0))&&new S(t,i).match(e));t.exports=r;let n=e.r(203379);r.sep=n.sep;let o=Symbol("globstar **");r.GLOBSTAR=o;let s=e.r(597181),a={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},l="[^/]",c=l+"*?",d=e=>e.split("").reduce((e,t)=>(e[t]=!0,e),{}),u=d("().*{}+?[]^$\\!"),h=d("[.("),g=/\/+/;r.filter=(e,t={})=>(i,n,o)=>r(i,e,t);let p=(e,t={})=>{let i={};return Object.keys(e).forEach(t=>i[t]=e[t]),Object.keys(t).forEach(e=>i[e]=t[e]),i};r.defaults=e=>{if(!e||"object"!=typeof e||!Object.keys(e).length)return r;let t=r,i=(i,r,n)=>t(i,r,p(e,n));return i.Minimatch=class extends t.Minimatch{constructor(t,i){super(t,p(e,i))}},i.Minimatch.defaults=i=>t.defaults(p(e,i)).Minimatch,i.filter=(i,r)=>t.filter(i,p(e,r)),i.defaults=i=>t.defaults(p(e,i)),i.makeRe=(i,r)=>t.makeRe(i,p(e,r)),i.braceExpand=(i,r)=>t.braceExpand(i,p(e,r)),i.match=(i,r,n)=>t.match(i,r,p(e,n)),i},r.braceExpand=(e,t)=>m(e,t);let m=(e,t={})=>(f(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e))?[e]:s(e),f=e=>{if("string"!=typeof e)throw TypeError("invalid pattern");if(e.length>65536)throw TypeError("pattern is too long")},_=Symbol("subparse");r.makeRe=(e,t)=>new S(e,t||{}).makeRe(),r.match=(e,t,i={})=>{let r=new S(t,i);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e};let y=e=>e.replace(/\\([^-\]])/g,"$1"),C=e=>e.replace(/[[\]\\]/g,"\\$&");class S{constructor(e,t){f(e),t||(t={}),this.options=t,this.maxGlobstarRecursion=void 0!==t.maxGlobstarRecursion?t.maxGlobstarRecursion:200,this.set=[],this.pattern=e,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||!1===t.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.make()}debug(){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0)){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate();let i=this.globSet=this.braceExpand();t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,i),i=this.globParts=i.map(e=>e.split(g)),this.debug(this.pattern,i),i=i.map((e,t,i)=>e.map(this.parse,this)),this.debug(this.pattern,i),i=i.filter(e=>-1===e.indexOf(!1)),this.debug(this.pattern,i),this.set=i}parseNegate(){if(this.options.nonegate)return;let e=this.pattern,t=!1,i=0;for(let r=0;r<e.length&&"!"===e.charAt(r);r++)t=!t,i++;i&&(this.pattern=e.slice(i)),this.negate=t}matchOne(e,t,i){return -1!==t.indexOf(o)?this._matchGlobstar(e,t,i,0,0):this._matchOne(e,t,i,0,0)}_matchGlobstar(e,t,i,r,n){let s=-1;for(let e=n;e<t.length;e++)if(t[e]===o){s=e;break}let a=-1;for(let e=t.length-1;e>=0;e--)if(t[e]===o){a=e;break}let l=t.slice(n,s),c=i?t.slice(s+1):t.slice(s+1,a),d=i?[]:t.slice(a+1);if(l.length){let t=e.slice(r,r+l.length);if(!this._matchOne(t,l,i,0,0))return!1;r+=l.length}let u=0;if(d.length){if(d.length+r>e.length)return!1;let t=e.length-d.length;if(this._matchOne(e,d,i,t,0))u=d.length;else{if(""!==e[e.length-1]||r+d.length===e.length||!this._matchOne(e,d,i,t-1,0))return!1;u=d.length+1}}if(!c.length){let t=!!u;for(let i=r;i<e.length-u;i++){let r=String(e[i]);if(t=!0,"."===r||".."===r||!this.options.dot&&"."===r.charAt(0))return!1}return i||t}let h=[[[],0]],g=h[0],p=0,m=[0];for(let e of c)e===o?(m.push(p),g=[[],0],h.push(g)):(g[0].push(e),p++);let f=h.length-1,_=e.length-u;for(let e of h)e[1]=_-(m[f--]+e[0].length);return!!this._matchGlobStarBodySections(e,h,r,0,i,0,!!u)}_matchGlobStarBodySections(e,t,i,r,n,o,s){let a=t[r];if(!a){for(let t=i;t<e.length;t++){s=!0;let i=e[t];if("."===i||".."===i||!this.options.dot&&"."===i.charAt(0))return!1}return s}let[l,c]=a;for(;i<=c;){if(this._matchOne(e.slice(0,i+l.length),l,n,i,0)&&o<this.maxGlobstarRecursion){let a=this._matchGlobStarBodySections(e,t,i+l.length,r+1,n,o+1,s);if(!1!==a)return a}let a=e[i];if("."===a||".."===a||!this.options.dot&&"."===a.charAt(0))return!1;i++}return n||null}_matchOne(e,t,i,r,n){let s,a,l,c;for(s=r,a=n,l=e.length,c=t.length;s<l&&a<c;s++,a++){let i;this.debug("matchOne loop");let r=t[a],n=e[s];if(this.debug(t,r,n),!1===r||r===o||("string"==typeof r?(i=n===r,this.debug("string match",r,n,i)):(i=n.match(r),this.debug("pattern match",r,n,i)),!i))return!1}if(s===l&&a===c)return!0;if(s===l)return i;if(a===c)return s===l-1&&""===e[s];throw Error("wtf?")}braceExpand(){return m(this.pattern,this.options)}parse(e,t){let i,r,n,s;f(e);let d=this.options;if("**"===e)if(!d.noglobstar)return o;else e="*";if(""===e)return"";let g="",p=!1,m=!1,S=[],b=[],w=!1,x=-1,D=-1,E="."===e.charAt(0),k=d.dot||E,T=e=>"."===e.charAt(0)?"":d.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",R=()=>{if(i){switch(i){case"*":g+=c,p=!0;break;case"?":g+=l,p=!0;break;default:g+="\\"+i}this.debug("clearStateChar %j %j",i,g),i=!1}};for(let t=0,o;t<e.length&&(o=e.charAt(t));t++){if(this.debug("%s %s %s %j",e,t,g,o),m){if("/"===o)return!1;u[o]&&(g+="\\"),g+=o,m=!1;continue}switch(o){case"/":return!1;case"\\":if(w&&"-"===e.charAt(t+1)){g+=o;continue}R(),m=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s %s %s %j <-- stateChar",e,t,g,o),w){this.debug(" in class"),"!"===o&&t===D+1&&(o="^"),g+=o;continue}if("*"===o&&"*"===i)continue;this.debug("call clearStateChar %j",i),R(),i=o,d.noext&&R();continue;case"(":{if(w){g+="(";continue}if(!i){g+="\\(";continue}let r={type:i,start:t-1,reStart:g.length,open:a[i].open,close:a[i].close};this.debug(this.pattern," ",r),S.push(r),g+=r.open,0===r.start&&"!"!==r.type&&(E=!0,g+=T(e.slice(t+1))),this.debug("plType %j %j",i,g),i=!1;continue}case")":{let e=S[S.length-1];if(w||!e){g+="\\)";continue}S.pop(),R(),p=!0,g+=(n=e).close,"!"===n.type&&b.push(Object.assign(n,{reEnd:g.length}));continue}case"|":{let i=S[S.length-1];if(w||!i){g+="\\|";continue}R(),g+="|",0===i.start&&"!"!==i.type&&(E=!0,g+=T(e.slice(t+1)));continue}case"[":if(R(),w){g+="\\"+o;continue}w=!0,D=t,x=g.length,g+=o;continue;case"]":if(t===D+1||!w){g+="\\"+o;continue}r=e.substring(D+1,t);try{RegExp("["+C(y(r))+"]"),g+=o}catch(e){g=g.substring(0,x)+"(?:$.)"}p=!0,w=!1;continue;default:R(),u[o]&&!("^"===o&&w)&&(g+="\\"),g+=o}}for(w&&(r=e.slice(D+1),s=this.parse(r,_),g=g.substring(0,x)+"\\["+s[0],p=p||s[1]),n=S.pop();n;n=S.pop()){let e;e=g.slice(n.reStart+n.open.length),this.debug("setting tail",g,n),e=e.replace(/((?:\\{2}){0,64})(\\?)\|/g,(e,t,i)=>(i||(i="\\"),t+t+i+"|")),this.debug("tail=%j\n %s",e,e,n,g);let t="*"===n.type?c:"?"===n.type?l:"\\"+n.type;p=!0,g=g.slice(0,n.reStart)+t+"\\("+e}R(),m&&(g+="\\\\");let P=h[g.charAt(0)];for(let e=b.length-1;e>-1;e--){let i=b[e],r=g.slice(0,i.reStart),n=g.slice(i.reStart,i.reEnd-8),o=g.slice(i.reEnd),s=g.slice(i.reEnd-8,i.reEnd)+o,a=r.split(")").length,l=r.split("(").length-a,c=o;for(let e=0;e<l;e++)c=c.replace(/\)[+*?]?/,"");let d=""===(o=c)&&t!==_?"(?:$|\\/)":"";g=r+n+o+d+s}if(""!==g&&p&&(g="(?=.)"+g),P&&(g=(E?"":k?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)")+g),t===_)return[g,p];if(d.nocase&&!p&&(p=e.toUpperCase()!==e.toLowerCase()),!p)return e.replace(/\\(.)/g,"$1");let I=d.nocase?"i":"";try{return Object.assign(RegExp("^"+g+"$",I),{_glob:e,_src:g})}catch(e){return RegExp("$.")}}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,i=t.noglobstar?c:t.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",r=t.nocase?"i":"",n=e.map(e=>((e=e.map(e=>"string"==typeof e?e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):e===o?o:e._src).reduce((e,t)=>((e[e.length-1]!==o||t!==o)&&e.push(t),e),[])).forEach((t,r)=>{t===o&&e[r-1]!==o&&(0===r?e.length>1?e[r+1]="(?:\\/|"+i+"\\/)?"+e[r+1]:e[r]=i:r===e.length-1?e[r-1]+="(?:\\/|"+i+")?":(e[r-1]+="(?:\\/|\\/"+i+"\\/)"+e[r+1],e[r+1]=o))}),e.filter(e=>e!==o).join("/"))).join("|");n="^(?:"+n+")$",this.negate&&(n="^(?!"+n+").*$");try{this.regexp=new RegExp(n,r)}catch(e){this.regexp=!1}return this.regexp}match(e,t=this.partial){let i;if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;let r=this.options;"/"!==n.sep&&(e=e.split(n.sep).join("/")),e=e.split(g),this.debug(this.pattern,"split",e);let o=this.set;this.debug(this.pattern,"set",o);for(let t=e.length-1;t>=0&&!(i=e[t]);t--);for(let n=0;n<o.length;n++){let s=o[n],a=e;if(r.matchBase&&1===s.length&&(a=[i]),this.matchOne(a,s,t)){if(r.flipNegate)return!0;return!this.negate}}return!r.flipNegate&&this.negate}static defaults(e){return r.defaults(e).Minimatch}}r.Minimatch=S},986131,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h;Object.defineProperty(i,"__esModule",{value:!0}),i.DiagnosticFeature=i.DiagnosticPullMode=i.vsdiag=void 0;let g=e.r(564461),p=e.r(663544),m=e.r(441296),f=e.r(413807),_=e.r(165969);function y(e,t){return void 0===e[t]&&(e[t]={}),e[t]}(c=(l=r||(i.vsdiag=r={})).DocumentDiagnosticReportKind||(l.DocumentDiagnosticReportKind={})).full="full",c.unChanged="unChanged",(d=n||(i.DiagnosticPullMode=n={})).onType="onType",d.onSave="onSave",(u=o||(o={})).active="open",u.reschedule="reschedule",u.outDated="drop";class C{constructor(){this.open=new Set,this._onOpen=new p.EventEmitter,this._onClose=new p.EventEmitter,C.fillTabResources(this.open);const e=e=>{if(0===e.closed.length&&0===e.opened.length)return;let t=this.open,i=new Set;C.fillTabResources(i);let r=new Set,n=new Set(i);for(let e of t.values())i.has(e)?n.delete(e):r.add(e);if(this.open=i,r.size>0){let e=new Set;for(let t of r)e.add(p.Uri.parse(t));this._onClose.fire(e)}if(n.size>0){let e=new Set;for(let t of n)e.add(p.Uri.parse(t));this._onOpen.fire(e)}};void 0!==p.window.tabGroups.onDidChangeTabs?this.disposable=p.window.tabGroups.onDidChangeTabs(e):this.disposable={dispose:()=>{}}}get onClose(){return this._onClose.event}get onOpen(){return this._onOpen.event}dispose(){this.disposable.dispose()}isActive(e){return e instanceof p.Uri?p.window.activeTextEditor?.document.uri===e:p.window.activeTextEditor?.document===e}isVisible(e){let t=e instanceof p.Uri?e:e.uri;return this.open.has(t.toString())}getTabResources(){let e=new Set;return C.fillTabResources(new Set,e),e}static fillTabResources(e,t){let i=e??new Set;for(let e of p.window.tabGroups.all)for(let r of e.tabs){let e,n=r.input;n instanceof p.TabInputText?e=n.uri:n instanceof p.TabInputTextDiff?e=n.modified:n instanceof p.TabInputCustom&&(e=n.uri),void 0===e||i.has(e.toString())||(i.add(e.toString()),void 0!==t&&t.add(e))}}}(h=s||(s={}))[h.document=1]="document",h[h.workspace=2]="workspace",(a||(a={})).asKey=function(e){return e instanceof p.Uri?e.toString():e.uri.toString()};class S{constructor(){this.documentPullStates=new Map,this.workspacePullStates=new Map}track(e,t,i){let r=e===s.document?this.documentPullStates:this.workspacePullStates,[n,o,a]=t instanceof p.Uri?[t.toString(),t,i]:[t.uri.toString(),t.uri,t.version],l=r.get(n);return void 0===l&&(l={document:o,pulledVersion:a,resultId:void 0},r.set(n,l)),l}update(e,t,i,r){let n=e===s.document?this.documentPullStates:this.workspacePullStates,[o,a,l,c]=t instanceof p.Uri?[t.toString(),t,i,r]:[t.uri.toString(),t.uri,t.version,i],d=n.get(o);void 0===d?(d={document:a,pulledVersion:l,resultId:c},n.set(o,d)):(d.pulledVersion=l,d.resultId=c)}unTrack(e,t){let i=a.asKey(t);(e===s.document?this.documentPullStates:this.workspacePullStates).delete(i)}tracks(e,t){let i=a.asKey(t);return(e===s.document?this.documentPullStates:this.workspacePullStates).has(i)}getResultId(e,t){let i=a.asKey(t),r=e===s.document?this.documentPullStates:this.workspacePullStates;return r.get(i)?.resultId}getAllResultIds(){let e=[];for(let[t,i]of this.workspacePullStates)this.documentPullStates.has(t)&&(i=this.documentPullStates.get(t)),void 0!==i.resultId&&e.push({uri:t,value:i.resultId});return e}}class b{constructor(e,t,i){this.client=e,this.tabs=t,this.options=i,this.isDisposed=!1,this.onDidChangeDiagnosticsEmitter=new p.EventEmitter,this.provider=this.createProvider(),this.diagnostics=p.languages.createDiagnosticCollection(i.identifier),this.openRequests=new Map,this.documentStates=new S,this.workspaceErrorCounter=0}knows(e,t){let i=t instanceof p.Uri?t:t.uri;return this.documentStates.tracks(e,t)||this.openRequests.has(i.toString())}forget(e,t){this.documentStates.unTrack(e,t)}pull(e,t){if(this.isDisposed)return;let i=e instanceof p.Uri?e:e.uri;this.pullAsync(e).then(()=>{t&&t()},e=>{this.client.error(`Document pull failed for text document ${i.toString()}`,e,!1)})}async pullAsync(e,t){if(this.isDisposed)return;let i=e instanceof p.Uri,n=i?e:e.uri,a=n.toString();t=i?t:e.version;let l=this.openRequests.get(a),c=i?this.documentStates.track(s.document,e,t):this.documentStates.track(s.document,e);if(void 0===l){let i,l,d=new p.CancellationTokenSource;this.openRequests.set(a,{state:o.active,document:e,version:t,tokenSource:d});try{i=await this.provider.provideDiagnostics(e,c.resultId,d.token)??{kind:r.DocumentDiagnosticReportKind.full,items:[]}}catch(t){if(t instanceof _.LSPCancellationError&&m.DiagnosticServerCancellationData.is(t.data)&&!1===t.data.retriggerRequest&&(l={state:o.outDated,document:e}),void 0===l&&t instanceof p.CancellationError)l={state:o.reschedule,document:e};else throw t}if(void 0===(l=l??this.openRequests.get(a))){this.client.error(`Lost request state in diagnostic pull model. Clearing diagnostics for ${a}`),this.diagnostics.delete(n);return}if(this.openRequests.delete(a),!this.tabs.isVisible(e))return void this.documentStates.unTrack(s.document,e);if(l.state===o.outDated)return;void 0!==i&&(i.kind===r.DocumentDiagnosticReportKind.full&&this.diagnostics.set(n,i.items),c.pulledVersion=t,c.resultId=i.resultId),l.state===o.reschedule&&this.pull(e)}else l.state===o.active?(l.tokenSource.cancel(),this.openRequests.set(a,{state:o.reschedule,document:l.document})):l.state===o.outDated&&this.openRequests.set(a,{state:o.reschedule,document:l.document})}forgetDocument(e){let t=e instanceof p.Uri?e:e.uri,i=t.toString(),r=this.openRequests.get(i);this.options.workspaceDiagnostics?void 0!==r?this.openRequests.set(i,{state:o.reschedule,document:e}):this.pull(e,()=>{this.forget(s.document,e)}):(void 0!==r&&(r.state===o.active&&r.tokenSource.cancel(),this.openRequests.set(i,{state:o.outDated,document:e})),this.diagnostics.delete(t),this.forget(s.document,e))}pullWorkspace(){this.isDisposed||this.pullWorkspaceAsync().then(()=>{this.workspaceTimeout=(0,m.RAL)().timer.setTimeout(()=>{this.pullWorkspace()},2e3)},e=>{e instanceof _.LSPCancellationError||m.DiagnosticServerCancellationData.is(e.data)||(this.client.error("Workspace diagnostic pull failed.",e,!1),this.workspaceErrorCounter++),this.workspaceErrorCounter<=5&&(this.workspaceTimeout=(0,m.RAL)().timer.setTimeout(()=>{this.pullWorkspace()},2e3))})}async pullWorkspaceAsync(){if(!this.provider.provideWorkspaceDiagnostics||this.isDisposed)return;void 0!==this.workspaceCancellation&&(this.workspaceCancellation.cancel(),this.workspaceCancellation=void 0),this.workspaceCancellation=new p.CancellationTokenSource;let e=this.documentStates.getAllResultIds().map(e=>({uri:this.client.protocol2CodeConverter.asUri(e.uri),value:e.value}));await this.provider.provideWorkspaceDiagnostics(e,this.workspaceCancellation.token,e=>{if(e&&!this.isDisposed)for(let t of e.items)t.kind!==r.DocumentDiagnosticReportKind.full||this.documentStates.tracks(s.document,t.uri)||this.diagnostics.set(t.uri,t.items),this.documentStates.update(s.workspace,t.uri,t.version??void 0,t.resultId)})}createProvider(){let e={onDidChangeDiagnostics:this.onDidChangeDiagnosticsEmitter.event,provideDiagnostics:(e,t,i)=>{let n=(e,t,i)=>{let n={identifier:this.options.identifier,textDocument:{uri:this.client.code2ProtocolConverter.asUri(e instanceof p.Uri?e:e.uri)},previousResultId:t};return!0!==this.isDisposed&&this.client.isRunning()?this.client.sendRequest(m.DocumentDiagnosticRequest.type,n,i).then(async e=>null==e||this.isDisposed||i.isCancellationRequested?{kind:r.DocumentDiagnosticReportKind.full,items:[]}:e.kind===m.DocumentDiagnosticReportKind.Full?{kind:r.DocumentDiagnosticReportKind.full,resultId:e.resultId,items:await this.client.protocol2CodeConverter.asDiagnostics(e.items,i)}:{kind:r.DocumentDiagnosticReportKind.unChanged,resultId:e.resultId},e=>this.client.handleFailedRequest(m.DocumentDiagnosticRequest.type,i,e,{kind:r.DocumentDiagnosticReportKind.full,items:[]})):{kind:r.DocumentDiagnosticReportKind.full,items:[]}},o=this.client.middleware;return o.provideDiagnostics?o.provideDiagnostics(e,t,i,n):n(e,t,i)}};return this.options.workspaceDiagnostics&&(e.provideWorkspaceDiagnostics=(e,t,i)=>{let n=async e=>e.kind===m.DocumentDiagnosticReportKind.Full?{kind:r.DocumentDiagnosticReportKind.full,uri:this.client.protocol2CodeConverter.asUri(e.uri),resultId:e.resultId,version:e.version,items:await this.client.protocol2CodeConverter.asDiagnostics(e.items,t)}:{kind:r.DocumentDiagnosticReportKind.unChanged,uri:this.client.protocol2CodeConverter.asUri(e.uri),resultId:e.resultId,version:e.version},o=e=>{let t=[];for(let i of e)t.push({uri:this.client.code2ProtocolConverter.asUri(i.uri),value:i.value});return t},s=(e,t)=>{let r=(0,f.generateUuid)(),s=this.client.onProgress(m.WorkspaceDiagnosticRequest.partialResult,r,async e=>{if(null==e)return void i(null);let t={items:[]};for(let i of e.items)try{t.items.push(await n(i))}catch(e){this.client.error("Converting workspace diagnostics failed.",e)}i(t)}),a={identifier:this.options.identifier,previousResultIds:o(e),partialResultToken:r};return!0!==this.isDisposed&&this.client.isRunning()?this.client.sendRequest(m.WorkspaceDiagnosticRequest.type,a,t).then(async e=>{if(t.isCancellationRequested)return{items:[]};let r={items:[]};for(let t of e.items)r.items.push(await n(t));return s.dispose(),i(r),{items:[]}},e=>(s.dispose(),this.client.handleFailedRequest(m.DocumentDiagnosticRequest.type,t,e,{items:[]}))):{items:[]}},a=this.client.middleware;return a.provideWorkspaceDiagnostics?a.provideWorkspaceDiagnostics(e,t,i,s):s(e,t,i)}),e}dispose(){for(let[e,t]of(this.isDisposed=!0,this.workspaceCancellation?.cancel(),this.workspaceTimeout?.dispose(),this.openRequests))t.state===o.active&&t.tokenSource.cancel(),this.openRequests.set(e,{state:o.outDated,document:t.document});this.diagnostics.dispose()}}class w{constructor(e){this.diagnosticRequestor=e,this.documents=new m.LinkedMap,this.isDisposed=!1}add(e){if(!0===this.isDisposed)return;let t=a.asKey(e);this.documents.has(t)||(this.documents.set(t,e,m.Touch.Last),this.trigger())}remove(e){let t=a.asKey(e);this.documents.delete(t),0===this.documents.size?this.stop():t===this.endDocumentKey()&&(this.endDocument=this.documents.last)}trigger(){if(!0!==this.isDisposed){if(void 0!==this.intervalHandle){this.endDocument=this.documents.last;return}this.endDocument=this.documents.last,this.intervalHandle=(0,m.RAL)().timer.setInterval(()=>{let e=this.documents.first;if(void 0!==e){let t=a.asKey(e);this.diagnosticRequestor.pull(e),this.documents.set(t,e,m.Touch.Last),t===this.endDocumentKey()&&this.stop()}},200)}}dispose(){this.isDisposed=!0,this.stop(),this.documents.clear()}stop(){this.intervalHandle?.dispose(),this.intervalHandle=void 0,this.endDocument=void 0}endDocumentKey(){return void 0!==this.endDocument?a.asKey(this.endDocument):void 0}}class x{constructor(e,t,i){const r=e.clientOptions.diagnosticPullOptions??{onChange:!0,onSave:!1},o=e.protocol2CodeConverter.asDocumentSelector(i.documentSelector),a=[],l=e=>e instanceof p.Uri?(e=>{let t=i.documentSelector;if(void 0!==r.match)return r.match(t,e);for(let i of t)if(m.TextDocumentFilter.is(i)){if("string"==typeof i||void 0!==i.language&&"*"!==i.language||void 0!==i.scheme&&"*"!==i.scheme&&i.scheme!==e.scheme)return!1;if(void 0!==i.pattern){let t=new g.Minimatch(i.pattern,{noext:!0});if(!t.makeRe()||!t.match(e.fsPath))return!1}}return!0})(e):p.languages.match(o,e)>0&&t.isVisible(e),c=e=>e instanceof p.Uri?this.activeTextDocument?.uri.toString()===e.toString():this.activeTextDocument===e;this.diagnosticRequestor=new b(e,t,i),this.backgroundScheduler=new w(this.diagnosticRequestor);const d=e=>{!l(e)||!i.interFileDependencies||c(e)||this.backgroundScheduler.add(e)};this.activeTextDocument=p.window.activeTextEditor?.document,p.window.onDidChangeActiveTextEditor(e=>{let t=this.activeTextDocument;this.activeTextDocument=e?.document,void 0!==t&&d(t),void 0!==this.activeTextDocument&&this.backgroundScheduler.remove(this.activeTextDocument)});const u=e.getFeature(m.DidOpenTextDocumentNotification.method);a.push(u.onNotificationSent(e=>{let t=e.textDocument;!this.diagnosticRequestor.knows(s.document,t)&&l(t)&&this.diagnosticRequestor.pull(t,()=>{d(t)})})),a.push(t.onOpen(e=>{for(let t of e){let e;if(this.diagnosticRequestor.knows(s.document,t))continue;let i=t.toString();for(let t of p.workspace.textDocuments)if(i===t.uri.toString()){e=t;break}void 0!==e&&l(e)&&this.diagnosticRequestor.pull(e,()=>{d(e)})}}));const h=new Set;for(const e of p.workspace.textDocuments)l(e)&&(this.diagnosticRequestor.pull(e,()=>{d(e)}),h.add(e.uri.toString()));if(!0===r.onTabs)for(const e of t.getTabResources())!h.has(e.toString())&&l(e)&&this.diagnosticRequestor.pull(e,()=>{d(e)});if(!0===r.onChange){const t=e.getFeature(m.DidChangeTextDocumentNotification.method);a.push(t.onNotificationSent(async e=>{let t=e.textDocument;(void 0===r.filter||!r.filter(t,n.onType))&&this.diagnosticRequestor.knows(s.document,t)&&this.diagnosticRequestor.pull(t,()=>{this.backgroundScheduler.trigger()})}))}if(!0===r.onSave){const t=e.getFeature(m.DidSaveTextDocumentNotification.method);a.push(t.onNotificationSent(e=>{let t=e.textDocument;(void 0===r.filter||!r.filter(t,n.onSave))&&this.diagnosticRequestor.knows(s.document,t)&&this.diagnosticRequestor.pull(e.textDocument,()=>{this.backgroundScheduler.trigger()})}))}const f=e.getFeature(m.DidCloseTextDocumentNotification.method);a.push(f.onNotificationSent(e=>{this.cleanUpDocument(e.textDocument)})),t.onClose(e=>{for(let t of e)this.cleanUpDocument(t)}),this.diagnosticRequestor.onDidChangeDiagnosticsEmitter.event(()=>{for(let e of p.workspace.textDocuments)l(e)&&this.diagnosticRequestor.pull(e)}),!0===i.workspaceDiagnostics&&"da348dc5-c30a-4515-9d98-31ff3be38d14"!==i.identifier&&this.diagnosticRequestor.pullWorkspace(),this.disposable=p.Disposable.from(...a,this.backgroundScheduler,this.diagnosticRequestor)}get onDidChangeDiagnosticsEmitter(){return this.diagnosticRequestor.onDidChangeDiagnosticsEmitter}get diagnostics(){return this.diagnosticRequestor.provider}cleanUpDocument(e){this.diagnosticRequestor.knows(s.document,e)&&(this.diagnosticRequestor.forgetDocument(e),this.backgroundScheduler.remove(e))}}class D extends _.TextDocumentLanguageFeature{constructor(e){super(e,m.DocumentDiagnosticRequest.type)}fillClientCapabilities(e){let t=y(y(e,"textDocument"),"diagnostic");t.dynamicRegistration=!0,t.relatedDocumentSupport=!1,y(y(e,"workspace"),"diagnostics").refreshSupport=!0}initialize(e,t){this._client.onRequest(m.DiagnosticRefreshRequest.type,async()=>{for(let e of this.getAllProviders())e.onDidChangeDiagnosticsEmitter.fire()});let[i,r]=this.getRegistration(t,e.diagnosticProvider);i&&r&&this.register({id:i,registerOptions:r})}clear(){void 0!==this.tabs&&(this.tabs.dispose(),this.tabs=void 0),super.clear()}registerLanguageProvider(e){void 0===this.tabs&&(this.tabs=new C);let t=new x(this._client,this.tabs,e);return[t.disposable,t]}}i.DiagnosticFeature=D},130354,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.forEach=i.mapAsync=i.map=i.clearTestMode=i.setTestMode=i.Semaphore=i.Delayer=void 0;let r=e.r(441296);i.Delayer=class{constructor(e){this.defaultDelay=e,this.timeout=void 0,this.completionPromise=void 0,this.onSuccess=void 0,this.task=void 0}trigger(e,t=this.defaultDelay){return this.task=e,t>=0&&this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise(e=>{this.onSuccess=e}).then(()=>{this.completionPromise=void 0,this.onSuccess=void 0;var e=this.task();return this.task=void 0,e})),(t>=0||void 0===this.timeout)&&(this.timeout=(0,r.RAL)().timer.setTimeout(()=>{this.timeout=void 0,this.onSuccess(void 0)},t>=0?t:this.defaultDelay)),this.completionPromise}forceDelivery(){if(!this.completionPromise)return;this.cancelTimeout();let e=this.task();return this.completionPromise=void 0,this.onSuccess=void 0,this.task=void 0,e}isTriggered(){return void 0!==this.timeout}cancel(){this.cancelTimeout(),this.completionPromise=void 0}cancelTimeout(){void 0!==this.timeout&&(this.timeout.dispose(),this.timeout=void 0)}},i.Semaphore=class{constructor(e=1){if(e<=0)throw Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,i)=>{this._waiting.push({thunk:e,resolve:t,reject:i}),this.runNext()})}get active(){return this._active}runNext(){0!==this._waiting.length&&this._active!==this._capacity&&(0,r.RAL)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(0===this._waiting.length||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(t=>{this._active--,e.resolve(t),this.runNext()},t=>{this._active--,e.reject(t),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}};let n=!1;i.setTestMode=function(){n=!0},i.clearTestMode=function(){n=!1};class o{constructor(e=15){this.yieldAfter=!0===n?Math.max(e,2):Math.max(e,15),this.startTime=Date.now(),this.counter=0,this.total=0,this.counterInterval=1}start(){this.counter=0,this.total=0,this.counterInterval=1,this.startTime=Date.now()}shouldYield(){if(++this.counter>=this.counterInterval){let e=Date.now()-this.startTime,t=Math.max(0,this.yieldAfter-e);if(this.total+=this.counter,this.counter=0,e>=this.yieldAfter||t<=1)return this.counterInterval=1,this.total=0,!0;switch(e){case 0:case 1:this.counterInterval=2*this.total}}return!1}}i.map=async function(e,t,i,n){if(0===e.length)return[];let s=Array(e.length),a=new o(n?.yieldAfter);function l(i){a.start();for(let r=i;r<e.length;r++)if(s[r]=t(e[r]),a.shouldYield())return n?.yieldCallback&&n.yieldCallback(),r+1;return -1}let c=l(0);for(;-1!==c&&(void 0===i||!i.isCancellationRequested);)c=await new Promise(e=>{(0,r.RAL)().timer.setImmediate(()=>{e(l(c))})});return s},i.mapAsync=async function(e,t,i,n){if(0===e.length)return[];let s=Array(e.length),a=new o(n?.yieldAfter);async function l(r){a.start();for(let o=r;o<e.length;o++)if(s[o]=await t(e[o],i),a.shouldYield())return n?.yieldCallback&&n.yieldCallback(),o+1;return -1}let c=await l(0);for(;-1!==c&&(void 0===i||!i.isCancellationRequested);)c=await new Promise(e=>{(0,r.RAL)().timer.setImmediate(()=>{e(l(c))})});return s},i.forEach=async function(e,t,i,n){if(0===e.length)return;let s=new o(n?.yieldAfter);function a(i){s.start();for(let r=i;r<e.length;r++)if(t(e[r]),s.shouldYield())return n?.yieldCallback&&n.yieldCallback(),r+1;return -1}let l=a(0);for(;-1!==l&&(void 0===i||!i.isCancellationRequested);)l=await new Promise(e=>{(0,r.RAL)().timer.setImmediate(()=>{e(a(l))})})}},765046,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.CompletionItem{constructor(e){super(e)}}i.default=n},184037,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.CodeLens{constructor(e){super(e)}}i.default=n},776453,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.DocumentLink{constructor(e,t){super(e,t)}}i.default=n},755683,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.CodeAction{constructor(e,t){super(e),this.data=t}}i.default=n},582182,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.ProtocolDiagnostic=i.DiagnosticCode=void 0;let n=e.r(663544),o=e.r(217405);(r||(i.DiagnosticCode=r={})).is=function(e){return null!=e&&(o.number(e.value)||o.string(e.value))&&o.string(e.target)};class s extends n.Diagnostic{constructor(e,t,i,r){super(e,t,i),this.data=r,this.hasDiagnosticCode=!1}}i.ProtocolDiagnostic=s},42642,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.CallHierarchyItem{constructor(e,t,i,r,n,o,s){super(e,t,i,r,n,o),void 0!==s&&(this.data=s)}}i.default=n},987722,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.TypeHierarchyItem{constructor(e,t,i,r,n,o,s){super(e,t,i,r,n,o),void 0!==s&&(this.data=s)}}i.default=n},81723,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.SymbolInformation{constructor(e,t,i,n,o){const s=!(n instanceof r.Uri);super(e,t,i,s?n:new r.Location(n,new r.Range(0,0,0,0))),this.hasRange=s,void 0!==o&&(this.data=o)}}i.default=n},256301,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class n extends r.InlayHint{constructor(e,t,i){super(e,t,i)}}i.default=n},743402,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.createConverter=void 0;let n=e.r(663544),o=e.r(441296),s=e.r(217405),a=e.r(130354),l=e.r(765046),c=e.r(184037),d=e.r(776453),u=e.r(755683),h=e.r(582182),g=e.r(42642),p=e.r(987722),m=e.r(81723),f=e.r(256301);(r||(r={})).is=function(e){return e&&!!e.inserting&&!!e.replacing},i.createConverter=function(e){let t=e||(e=>e.toString());function i(e){return{uri:t(e.uri)}}function _(e){return{uri:t(e.uri),languageId:e.languageId,version:e.version,text:e.getText()}}function y(e){return{label:e.label}}function C(e){return{label:e.label,parameters:e.parameters.map(y)}}function S(e){return{line:e.line,character:e.character}}function b(e){return null==e?e:{line:e.line>o.uinteger.MAX_VALUE?o.uinteger.MAX_VALUE:e.line,character:e.character>o.uinteger.MAX_VALUE?o.uinteger.MAX_VALUE:e.character}}function w(e){return null==e?e:{start:b(e.start),end:b(e.end)}}function x(e){return null==e?e:o.Location.create(t(e.uri),w(e.range))}function D(e){switch(e){case n.DiagnosticSeverity.Error:return o.DiagnosticSeverity.Error;case n.DiagnosticSeverity.Warning:return o.DiagnosticSeverity.Warning;case n.DiagnosticSeverity.Information:return o.DiagnosticSeverity.Information;case n.DiagnosticSeverity.Hint:return o.DiagnosticSeverity.Hint}}function E(e){switch(e){case n.DiagnosticTag.Unnecessary:return o.DiagnosticTag.Unnecessary;case n.DiagnosticTag.Deprecated:return o.DiagnosticTag.Deprecated;default:return}}function k(e){return{message:e.message,location:x(e.location)}}function T(e){let i=o.Diagnostic.create(w(e.range),e.message),r=e instanceof h.ProtocolDiagnostic?e:void 0;void 0!==r&&void 0!==r.data&&(i.data=r.data);let n=function(e){if(null!=e)return s.number(e)||s.string(e)?e:{value:e.value,target:t(e.target)}}(e.code);return h.DiagnosticCode.is(n)?void 0!==r&&r.hasDiagnosticCode?i.code=n:(i.code=n.value,i.codeDescription={href:n.target}):i.code=n,s.number(e.severity)&&(i.severity=D(e.severity)),Array.isArray(e.tags)&&(i.tags=function(e){if(!e)return;let t=[];for(let i of e){let e=E(i);void 0!==e&&t.push(e)}return t.length>0?t:void 0}(e.tags)),e.relatedInformation&&(i.relatedInformation=e.relatedInformation.map(k)),e.source&&(i.source=e.source),i}function R(e,t){return null==e?e:a.map(e,T,t)}function P(e){return null==e?e:e.map(T)}function I(e){return{range:w(e.range),newText:e.newText}}function A(e){return null==e?e:e.map(I)}function M(e){return e<=n.SymbolKind.TypeParameter?e+1:o.SymbolKind.Property}function L(e){return e}function F(e){return e.map(L)}async function O(e,t){let i=o.CodeAction.create(e.title);if(e instanceof u.default&&void 0!==e.data&&(i.data=e.data),void 0!==e.kind&&(i.kind=H(e.kind)),void 0!==e.diagnostics&&(i.diagnostics=await R(e.diagnostics,t)),void 0!==e.edit)throw Error("VS Code code actions can only be converted to a protocol code action without an edit.");return void 0!==e.command&&(i.command=U(e.command)),void 0!==e.isPreferred&&(i.isPreferred=e.isPreferred),void 0!==e.disabled&&(i.disabled={reason:e.disabled.reason}),i}async function N(e,t){let i;return null==e?e:(e.only&&s.string(e.only.value)&&(i=[e.only.value]),o.CodeActionContext.create(await R(e.diagnostics,t),i,$(e.triggerKind)))}function $(e){switch(e){case n.CodeActionTriggerKind.Invoke:return o.CodeActionTriggerKind.Invoked;case n.CodeActionTriggerKind.Automatic:return o.CodeActionTriggerKind.Automatic;default:return}}function H(e){if(null!=e)return e.value}function U(e){let t=o.Command.create(e.title,e.command);return e.arguments&&(t.arguments=e.arguments),t}function W(e){let t=o.InlayHintLabelPart.create(e.value);return void 0!==e.location&&(t.location=x(e.location)),void 0!==e.command&&(t.command=U(e.command)),void 0!==e.tooltip&&(t.tooltip=q(e.tooltip)),t}function q(e){return"string"==typeof e?e:{kind:o.MarkupKind.Markdown,value:e.value}}return{asUri:function(e){return t(e)},asTextDocumentIdentifier:i,asTextDocumentItem:_,asVersionedTextDocumentIdentifier:function(e){return{uri:t(e.uri),version:e.version}},asOpenTextDocumentParams:function(e){return{textDocument:_(e)}},asChangeTextDocumentParams:function(e,i,r){if(e.uri&&e.version)return{textDocument:{uri:t(e.uri),version:e.version},contentChanges:[{text:e.getText()}]};if(e.document&&e.contentChanges)return{textDocument:{uri:t(i),version:r},contentChanges:e.contentChanges.map(e=>{let t=e.range;return{range:{start:{line:t.start.line,character:t.start.character},end:{line:t.end.line,character:t.end.character}},rangeLength:e.rangeLength,text:e.text}})};throw Error("Unsupported text document change parameter")},asCloseTextDocumentParams:function(e){return{textDocument:i(e)}},asSaveTextDocumentParams:function(e,t=!1){let r={textDocument:i(e)};return t&&(r.text=e.getText()),r},asWillSaveTextDocumentParams:function(e){return{textDocument:i(e.document),reason:function(e){switch(e){case n.TextDocumentSaveReason.Manual:break;case n.TextDocumentSaveReason.AfterDelay:return o.TextDocumentSaveReason.AfterDelay;case n.TextDocumentSaveReason.FocusOut:return o.TextDocumentSaveReason.FocusOut}return o.TextDocumentSaveReason.Manual}(e.reason)}},asDidCreateFilesParams:function(e){return{files:e.files.map(e=>({uri:t(e)}))}},asDidRenameFilesParams:function(e){return{files:e.files.map(e=>({oldUri:t(e.oldUri),newUri:t(e.newUri)}))}},asDidDeleteFilesParams:function(e){return{files:e.files.map(e=>({uri:t(e)}))}},asWillCreateFilesParams:function(e){return{files:e.files.map(e=>({uri:t(e)}))}},asWillRenameFilesParams:function(e){return{files:e.files.map(e=>({oldUri:t(e.oldUri),newUri:t(e.newUri)}))}},asWillDeleteFilesParams:function(e){return{files:e.files.map(e=>({uri:t(e)}))}},asTextDocumentPositionParams:function(e,t){return{textDocument:i(e),position:S(t)}},asCompletionParams:function(e,t,r){return{textDocument:i(e),position:S(t),context:{triggerKind:function(e){switch(e){case n.CompletionTriggerKind.TriggerCharacter:return o.CompletionTriggerKind.TriggerCharacter;case n.CompletionTriggerKind.TriggerForIncompleteCompletions:return o.CompletionTriggerKind.TriggerForIncompleteCompletions;default:return o.CompletionTriggerKind.Invoked}}(r.triggerKind),triggerCharacter:r.triggerCharacter}}},asSignatureHelpParams:function(e,t,r){var s;return{textDocument:i(e),position:S(t),context:{isRetrigger:r.isRetrigger,triggerCharacter:r.triggerCharacter,triggerKind:function(e){switch(e){case n.SignatureHelpTriggerKind.Invoke:return o.SignatureHelpTriggerKind.Invoked;case n.SignatureHelpTriggerKind.TriggerCharacter:return o.SignatureHelpTriggerKind.TriggerCharacter;case n.SignatureHelpTriggerKind.ContentChange:return o.SignatureHelpTriggerKind.ContentChange}}(r.triggerKind),activeSignatureHelp:void 0===(s=r.activeSignatureHelp)?s:{signatures:s.signatures.map(C),activeSignature:s.activeSignature,activeParameter:s.activeParameter}}}},asWorkerPosition:S,asRange:w,asRanges:function(e){return e.map(w)},asPosition:b,asPositions:function(e,t){return a.map(e,b,t)},asPositionsSync:function(e){return e.map(b)},asLocation:x,asDiagnosticSeverity:D,asDiagnosticTag:E,asDiagnostic:T,asDiagnostics:R,asDiagnosticsSync:P,asCompletionItem:function(e,t=!1){var i,a,c,d,u,h;let g,p,m,f,_;s.string(e.label)?g=e.label:(g=e.label.label,t&&(void 0!==e.label.detail||void 0!==e.label.description)&&(p={detail:e.label.detail,description:e.label.description}));let y={label:g};void 0!==p&&(y.labelDetails=p);let C=e instanceof l.default?e:void 0;e.detail&&(y.detail=e.detail),e.documentation&&(C&&"$string"!==C.documentationFormat?y.documentation=function(e,t){switch(e){case"$string":return t;case o.MarkupKind.PlainText:return{kind:e,value:t};case o.MarkupKind.Markdown:return{kind:e,value:t.value};default:return`Unsupported Markup content received. Kind is: ${e}`}}(C.documentationFormat,e.documentation):y.documentation=e.documentation),e.filterText&&(y.filterText=e.filterText),c=y,d=e,_=o.InsertTextFormat.PlainText,d.textEdit?(m=d.textEdit.newText,f=d.textEdit.range):d.insertText instanceof n.SnippetString?(_=o.InsertTextFormat.Snippet,m=d.insertText.value):m=d.insertText,d.range&&(f=d.range),c.insertTextFormat=_,d.fromEdit&&void 0!==m&&void 0!==f?(u=m,h=f,c.textEdit=r.is(h)?o.InsertReplaceEdit.create(u,w(h.inserting),w(h.replacing)):{newText:u,range:w(h)}):c.insertText=m,s.number(e.kind)&&(i=e.kind,y.kind=void 0!==(a=C&&C.originalItemKind)?a:i+1),e.sortText&&(y.sortText=e.sortText),e.additionalTextEdits&&(y.additionalTextEdits=A(e.additionalTextEdits)),e.commitCharacters&&(y.commitCharacters=e.commitCharacters.slice()),e.command&&(y.command=U(e.command)),(!0===e.preselect||!1===e.preselect)&&(y.preselect=e.preselect);let S=function(e){if(void 0===e)return e;let t=[];for(let i of e){let e=function(e){if(e===n.CompletionItemTag.Deprecated)return o.CompletionItemTag.Deprecated}(i);void 0!==e&&t.push(e)}return t}(e.tags);if(C){if(void 0!==C.data&&(y.data=C.data),!0===C.deprecated||!1===C.deprecated){if(!0===C.deprecated&&void 0!==S&&S.length>0){let e=S.indexOf(n.CompletionItemTag.Deprecated);-1!==e&&S.splice(e,1)}y.deprecated=C.deprecated}void 0!==C.insertTextMode&&(y.insertTextMode=C.insertTextMode)}return void 0!==S&&S.length>0&&(y.tags=S),void 0===y.insertTextMode&&!0===e.keepWhitespace&&(y.insertTextMode=o.InsertTextMode.adjustIndentation),y},asTextEdit:I,asSymbolKind:M,asSymbolTag:L,asSymbolTags:F,asReferenceParams:function(e,t,r){return{textDocument:i(e),position:S(t),context:{includeDeclaration:r.includeDeclaration}}},asCodeAction:O,asCodeActionSync:function(e){let t=o.CodeAction.create(e.title);if(e instanceof u.default&&void 0!==e.data&&(t.data=e.data),void 0!==e.kind&&(t.kind=H(e.kind)),void 0!==e.diagnostics&&(t.diagnostics=P(e.diagnostics)),void 0!==e.edit)throw Error("VS Code code actions can only be converted to a protocol code action without an edit.");return void 0!==e.command&&(t.command=U(e.command)),void 0!==e.isPreferred&&(t.isPreferred=e.isPreferred),void 0!==e.disabled&&(t.disabled={reason:e.disabled.reason}),t},asCodeActionContext:N,asCodeActionContextSync:function(e){let t;return null==e?e:(e.only&&s.string(e.only.value)&&(t=[e.only.value]),o.CodeActionContext.create(P(e.diagnostics),t,$(e.triggerKind)))},asInlineValueContext:function(e){return null==e?e:o.InlineValueContext.create(e.frameId,w(e.stoppedLocation))},asCommand:U,asCodeLens:function(e){let t=o.CodeLens.create(w(e.range));return e.command&&(t.command=U(e.command)),e instanceof c.default&&e.data&&(t.data=e.data),t},asFormattingOptions:function(e,t){let i={tabSize:e.tabSize,insertSpaces:e.insertSpaces};return t.trimTrailingWhitespace&&(i.trimTrailingWhitespace=!0),t.trimFinalNewlines&&(i.trimFinalNewlines=!0),t.insertFinalNewline&&(i.insertFinalNewline=!0),i},asDocumentSymbolParams:function(e){return{textDocument:i(e)}},asCodeLensParams:function(e){return{textDocument:i(e)}},asDocumentLink:function(e){let i=o.DocumentLink.create(w(e.range));e.target&&(i.target=t(e.target)),void 0!==e.tooltip&&(i.tooltip=e.tooltip);let r=e instanceof d.default?e:void 0;return r&&r.data&&(i.data=r.data),i},asDocumentLinkParams:function(e){return{textDocument:i(e)}},asCallHierarchyItem:function(e){let i={name:e.name,kind:M(e.kind),uri:t(e.uri),range:w(e.range),selectionRange:w(e.selectionRange)};return void 0!==e.detail&&e.detail.length>0&&(i.detail=e.detail),void 0!==e.tags&&(i.tags=F(e.tags)),e instanceof g.default&&void 0!==e.data&&(i.data=e.data),i},asTypeHierarchyItem:function(e){let i={name:e.name,kind:M(e.kind),uri:t(e.uri),range:w(e.range),selectionRange:w(e.selectionRange)};return void 0!==e.detail&&e.detail.length>0&&(i.detail=e.detail),void 0!==e.tags&&(i.tags=F(e.tags)),e instanceof p.default&&void 0!==e.data&&(i.data=e.data),i},asInlayHint:function(e){let t="string"==typeof e.label?e.label:e.label.map(W),i=o.InlayHint.create(b(e.position),t);return void 0!==e.kind&&(i.kind=e.kind),void 0!==e.textEdits&&(i.textEdits=A(e.textEdits)),void 0!==e.tooltip&&(i.tooltip=q(e.tooltip)),void 0!==e.paddingLeft&&(i.paddingLeft=e.paddingLeft),void 0!==e.paddingRight&&(i.paddingRight=e.paddingRight),e instanceof f.default&&void 0!==e.data&&(i.data=e.data),i},asWorkspaceSymbol:function(e){let i=e instanceof m.default?{name:e.name,kind:M(e.kind),location:e.hasRange?x(e.location):{uri:t(e.location.uri)},data:e.data}:{name:e.name,kind:M(e.kind),location:x(e.location)};return void 0!==e.tags&&(i.tags=F(e.tags)),""!==e.containerName&&(i.containerName=e.containerName),i},asInlineCompletionParams:function(e,t,r){return{context:o.InlineCompletionContext.create(r.triggerKind,r.selectedCompletionInfo),textDocument:i(e),position:b(t)}}}}},979417,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.createConverter=void 0;let n=e.r(663544),o=e.r(441296),s=e.r(217405),a=e.r(130354),l=e.r(765046),c=e.r(184037),d=e.r(776453),u=e.r(755683),h=e.r(582182),g=e.r(42642),p=e.r(987722),m=e.r(81723),f=e.r(256301),_=e.r(441296);(r||(r={})).is=function(e){return e&&s.string(e.language)&&s.string(e.value)},i.createConverter=function(e,t,i){let y=e||(e=>n.Uri.parse(e));async function C(e,t){return a.map(e,S,t)}function S(e){let t=new h.ProtocolDiagnostic(x(e.range),e.message,E(e.severity),e.data);if(void 0!==e.code){if("string"==typeof e.code||"number"==typeof e.code)o.CodeDescription.is(e.codeDescription)?t.code={value:e.code,target:y(e.codeDescription.href)}:t.code=e.code;else if(h.DiagnosticCode.is(e.code)){t.hasDiagnosticCode=!0;let i=e.code;t.code={value:i.value,target:y(i.target)}}}return e.source&&(t.source=e.source),e.relatedInformation&&(t.relatedInformation=function(e){let t=Array(e.length);for(let i=0;i<e.length;i++){let r=e[i];t[i]=new n.DiagnosticRelatedInformation(H(r.location),r.message)}return t}(e.relatedInformation)),Array.isArray(e.tags)&&(t.tags=function(e){if(!e)return;let t=[];for(let i of e){let e=b(i);void 0!==e&&t.push(e)}return t.length>0?t:void 0}(e.tags)),t}function b(e){switch(e){case o.DiagnosticTag.Unnecessary:return n.DiagnosticTag.Unnecessary;case o.DiagnosticTag.Deprecated:return n.DiagnosticTag.Deprecated;default:return}}function w(e){return e?new n.Position(e.line,e.character):void 0}function x(e){return e?new n.Range(e.start.line,e.start.character,e.end.line,e.end.character):void 0}async function D(e,t){return a.map(e,e=>new n.Range(e.start.line,e.start.character,e.end.line,e.end.character),t)}function E(e){if(null==e)return n.DiagnosticSeverity.Error;switch(e){case o.DiagnosticSeverity.Error:break;case o.DiagnosticSeverity.Warning:return n.DiagnosticSeverity.Warning;case o.DiagnosticSeverity.Information:return n.DiagnosticSeverity.Information;case o.DiagnosticSeverity.Hint:return n.DiagnosticSeverity.Hint}return n.DiagnosticSeverity.Error}function k(e){if(s.string(e))return e;switch(e.kind){case o.MarkupKind.Markdown:return T(e.value);case o.MarkupKind.PlainText:return e.value;default:return`Unsupported Markup content received. Kind is: ${e.kind}`}}function T(e){let r;if(void 0===e||"string"==typeof e)r=new n.MarkdownString(e);else switch(e.kind){case o.MarkupKind.Markdown:r=new n.MarkdownString(e.value);break;case o.MarkupKind.PlainText:(r=new n.MarkdownString).appendText(e.value);break;default:(r=new n.MarkdownString).appendText(`Unsupported Markup content received. Kind is: ${e.kind}`)}return r.isTrusted=t,r.supportHtml=i,r}async function R(e,t,i){var r,s;let l,c;if(!e)return;if(Array.isArray(e))return a.map(e,e=>P(e,t),i);let{defaultRange:d,commitCharacters:u}=(r=e,s=t,l=r.itemDefaults?.editRange,c=r.itemDefaults?.commitCharacters??s,o.Range.is(l)?{defaultRange:x(l),commitCharacters:c}:void 0!==l?{defaultRange:{inserting:x(l.insert),replacing:x(l.replace)},commitCharacters:c}:{defaultRange:void 0,commitCharacters:c}),h=await a.map(e.items,t=>P(t,u,d,e.itemDefaults?.insertTextMode,e.itemDefaults?.insertTextFormat,e.itemDefaults?.data),i);return new n.CompletionList(h,e.isIncomplete)}function P(e,t,i,r,a,c){var d,u;let h=function(e){if(null==e)return[];let t=[];for(let i of e){let e=function(e){if(e===o.CompletionItemTag.Deprecated)return n.CompletionItemTag.Deprecated}(i);void 0!==e&&t.push(e)}return t}(e.tags),g=(d=e,o.CompletionItemLabelDetails.is(d.labelDetails)?{label:d.label,detail:d.labelDetails.detail,description:d.labelDetails.description}:d.label),p=new l.default(g);e.detail&&(p.detail=e.detail),e.documentation&&(p.documentation=k(e.documentation),p.documentationFormat=s.string(e.documentation)?"$string":e.documentation.kind),e.filterText&&(p.filterText=e.filterText);let m=function(e,t,i){let r=e.insertTextFormat??i;if(void 0!==e.textEdit||void 0!==t){var s;let[i,a]=void 0!==e.textEdit?(s=e.textEdit,o.InsertReplaceEdit.is(s)?[{inserting:x(s.insert),replacing:x(s.replace)},s.newText]:[x(s.range),s.newText]):[t,e.textEditText??e.label];return r===o.InsertTextFormat.Snippet?{text:new n.SnippetString(a),range:i,fromEdit:!0}:{text:a,range:i,fromEdit:!0}}if(e.insertText)if(r===o.InsertTextFormat.Snippet)return{text:new n.SnippetString(e.insertText),fromEdit:!1};else return{text:e.insertText,fromEdit:!1}}(e,i,a);if(m&&(p.insertText=m.text,p.range=m.range,p.fromEdit=m.fromEdit),s.number(e.kind)){let[t,i]=(u=e.kind,o.CompletionItemKind.Text<=u&&u<=o.CompletionItemKind.TypeParameter?[u-1,void 0]:[n.CompletionItemKind.Text,u]);p.kind=t,i&&(p.originalItemKind=i)}e.sortText&&(p.sortText=e.sortText),e.additionalTextEdits&&(p.additionalTextEdits=M(e.additionalTextEdits));let f=void 0!==e.commitCharacters?s.stringArray(e.commitCharacters)?e.commitCharacters:void 0:t;f&&(p.commitCharacters=f.slice()),e.command&&(p.command=ei(e.command)),(!0===e.deprecated||!1===e.deprecated)&&(p.deprecated=e.deprecated,!0===e.deprecated&&h.push(n.CompletionItemTag.Deprecated)),(!0===e.preselect||!1===e.preselect)&&(p.preselect=e.preselect);let _=e.data??c;void 0!==_&&(p.data=_),h.length>0&&(p.tags=h);let y=e.insertTextMode??r;return void 0!==y&&(p.insertTextMode=y,y===o.InsertTextMode.asIs&&(p.keepWhitespace=!0)),p}function I(e){if(e)return new n.TextEdit(x(e.range),e.newText)}async function A(e,t){if(e)return a.map(e,I,t)}function M(e){if(!e)return;let t=Array(e.length);for(let i=0;i<e.length;i++)t[i]=I(e[i]);return t}async function L(e,t){if(!e)return;let i=new n.SignatureHelp;return s.number(e.activeSignature)?i.activeSignature=e.activeSignature:i.activeSignature=0,s.number(e.activeParameter)?i.activeParameter=e.activeParameter:i.activeParameter=0,e.signatures&&(i.signatures=await F(e.signatures,t)),i}async function F(e,t){return a.mapAsync(e,O,t)}async function O(e,t){let i=new n.SignatureInformation(e.label);return void 0!==e.documentation&&(i.documentation=k(e.documentation)),void 0!==e.parameters&&(i.parameters=await N(e.parameters,t)),void 0!==e.activeParameter&&(i.activeParameter=e.activeParameter),i}function N(e,t){return a.map(e,$,t)}function $(e){let t=new n.ParameterInformation(e.label);return e.documentation&&(t.documentation=k(e.documentation)),t}function H(e){return e?new n.Location(y(e.uri),x(e.range)):void 0}async function U(e,t){if(e)return j(e,t)}async function W(e,t){if(e)return j(e,t)}function q(e){if(!e)return;let t={targetUri:y(e.targetUri),targetRange:x(e.targetRange),originSelectionRange:x(e.originSelectionRange),targetSelectionRange:x(e.targetSelectionRange)};if(!t.targetSelectionRange)throw Error("targetSelectionRange must not be undefined or null");return t}async function j(e,t){if(e)if(s.array(e))if(0===e.length)return[];else if(o.LocationLink.is(e[0]))return a.map(e,q,t);else return a.map(e,H,t);else if(o.LocationLink.is(e))return[q(e)];else return H(e)}async function z(e,t){if(e)return a.map(e,H,t)}async function K(e,t){if(e)return a.map(e,V,t)}function V(e){let t=new n.DocumentHighlight(x(e.range));return s.number(e.kind)&&(t.kind=B(e.kind)),t}function B(e){switch(e){case o.DocumentHighlightKind.Text:break;case o.DocumentHighlightKind.Read:return n.DocumentHighlightKind.Read;case o.DocumentHighlightKind.Write:return n.DocumentHighlightKind.Write}return n.DocumentHighlightKind.Text}async function G(e,t){if(e)return a.map(e,X,t)}function Q(e){return e<=o.SymbolKind.TypeParameter?e-1:n.SymbolKind.Property}function J(e){return e===o.SymbolTag.Deprecated?n.SymbolTag.Deprecated:void 0}function Y(e){if(null==e)return;let t=[];for(let i of e){let e=J(i);void 0!==e&&t.push(e)}return 0===t.length?void 0:t}function X(e){let t=e.data,i=e.location,r=void 0===i.range||void 0!==t?new m.default(e.name,Q(e.kind),e.containerName??"",void 0===i.range?y(i.uri):new n.Location(y(e.location.uri),x(i.range)),t):new n.SymbolInformation(e.name,Q(e.kind),e.containerName??"",new n.Location(y(e.location.uri),x(i.range)));return et(r,e),r}async function Z(e,t){if(null!=e)return a.map(e,ee,t)}function ee(e){let t=new n.DocumentSymbol(e.name,e.detail||"",Q(e.kind),x(e.range),x(e.selectionRange));if(et(t,e),void 0!==e.children&&e.children.length>0){let i=[];for(let t of e.children)i.push(ee(t));t.children=i}return t}function et(e,t){e.tags=Y(t.tags),t.deprecated&&(e.tags?e.tags.includes(n.SymbolTag.Deprecated)||(e.tags=e.tags.concat(n.SymbolTag.Deprecated)):e.tags=[n.SymbolTag.Deprecated])}function ei(e){let t={title:e.title,command:e.command};return e.arguments&&(t.arguments=e.arguments),t}async function er(e,t){if(e)return a.map(e,ei,t)}let en=new Map;function eo(e){if(null==e)return;let t=en.get(e);if(t)return t;let i=e.split(".");for(let e of(t=n.CodeActionKind.Empty,i))t=t.append(e);return t}async function es(e,t){if(null==e)return;let i=new u.default(e.title,e.data);return void 0!==e.kind&&(i.kind=eo(e.kind)),void 0!==e.diagnostics&&(i.diagnostics=function(e){let t=Array(e.length);for(let i=0;i<e.length;i++)t[i]=S(e[i]);return t}(e.diagnostics)),void 0!==e.edit&&(i.edit=await ec(e.edit,t)),void 0!==e.command&&(i.command=ei(e.command)),void 0!==e.isPreferred&&(i.isPreferred=e.isPreferred),void 0!==e.disabled&&(i.disabled={reason:e.disabled.reason}),i}function ea(e){if(!e)return;let t=new c.default(x(e.range));return e.command&&(t.command=ei(e.command)),void 0!==e.data&&null!==e.data&&(t.data=e.data),t}async function el(e,t){if(e)return a.map(e,ea,t)}async function ec(e,t){if(!e)return;let i=new Map;if(void 0!==e.changeAnnotations){let r=e.changeAnnotations;await a.forEach(Object.keys(r),e=>{let t=function(e){if(void 0!==e)return{label:e.label,needsConfirmation:!!e.needsConfirmation,description:e.description}}(r[e]);i.set(e,t)},t)}let r=e=>{if(void 0!==e)return i.get(e)},s=new n.WorkspaceEdit;if(e.documentChanges){let i=e.documentChanges;await a.forEach(i,e=>{if(o.CreateFile.is(e))s.createFile(y(e.uri),e.options,r(e.annotationId));else if(o.RenameFile.is(e))s.renameFile(y(e.oldUri),y(e.newUri),e.options,r(e.annotationId));else if(o.DeleteFile.is(e))s.deleteFile(y(e.uri),e.options,r(e.annotationId));else if(o.TextDocumentEdit.is(e)){let t=y(e.textDocument.uri);for(let i of e.edits)o.AnnotatedTextEdit.is(i)?s.replace(t,x(i.range),i.newText,r(i.annotationId)):s.replace(t,x(i.range),i.newText)}else throw Error(`Unknown workspace edit change received:
42
+ ${JSON.stringify(e,void 0,4)}`)},t)}else if(e.changes){let i=e.changes;await a.forEach(Object.keys(i),e=>{s.set(y(e),M(i[e]))},t)}return s}function ed(e){let t=x(e.range),i=e.target?y(e.target):void 0,r=new d.default(t,i);return void 0!==e.tooltip&&(r.tooltip=e.tooltip),void 0!==e.data&&null!==e.data&&(r.data=e.data),r}async function eu(e,t){if(e)return a.map(e,ed,t)}function eh(e){return new n.Color(e.red,e.green,e.blue,e.alpha)}function eg(e){return new n.ColorInformation(x(e.range),eh(e.color))}async function ep(e,t){if(e)return a.map(e,eg,t)}function em(e){let t=new n.ColorPresentation(e.label);return t.additionalTextEdits=M(e.additionalTextEdits),e.textEdit&&(t.textEdit=I(e.textEdit)),t}async function ef(e,t){if(e)return a.map(e,em,t)}function ev(e){if(e)switch(e){case o.FoldingRangeKind.Comment:return n.FoldingRangeKind.Comment;case o.FoldingRangeKind.Imports:return n.FoldingRangeKind.Imports;case o.FoldingRangeKind.Region:return n.FoldingRangeKind.Region}}function e_(e){return new n.FoldingRange(e.startLine,e.endLine,ev(e.kind))}async function ey(e,t){if(e)return a.map(e,e_,t)}function eC(e){return new n.SelectionRange(x(e.range),e.parent?eC(e.parent):void 0)}async function eS(e,t){return Array.isArray(e)?a.map(e,eC,t):[]}function eb(e){return o.InlineValueText.is(e)?new n.InlineValueText(x(e.range),e.text):o.InlineValueVariableLookup.is(e)?new n.InlineValueVariableLookup(x(e.range),e.variableName,e.caseSensitiveLookup):new n.InlineValueEvaluatableExpression(x(e.range),e.expression)}async function ew(e,t){return Array.isArray(e)?a.map(e,eb,t):[]}async function ex(e,t){let i="string"==typeof e.label?e.label:await a.map(e.label,eD,t),r=new f.default(w(e.position),i);return void 0!==e.kind&&(r.kind=e.kind),void 0!==e.textEdits&&(r.textEdits=await A(e.textEdits,t)),void 0!==e.tooltip&&(r.tooltip=eE(e.tooltip)),void 0!==e.paddingLeft&&(r.paddingLeft=e.paddingLeft),void 0!==e.paddingRight&&(r.paddingRight=e.paddingRight),void 0!==e.data&&(r.data=e.data),r}function eD(e){let t=new n.InlayHintLabelPart(e.value);return void 0!==e.location&&(t.location=H(e.location)),void 0!==e.tooltip&&(t.tooltip=eE(e.tooltip)),void 0!==e.command&&(t.command=ei(e.command)),t}function eE(e){return"string"==typeof e?e:T(e)}async function ek(e,t){if(Array.isArray(e))return a.mapAsync(e,ex,t)}function eT(e){if(null===e)return;let t=new g.default(Q(e.kind),e.name,e.detail||"",y(e.uri),x(e.range),x(e.selectionRange),e.data);return void 0!==e.tags&&(t.tags=Y(e.tags)),t}async function eR(e,t){if(null!==e)return a.map(e,eT,t)}async function eP(e,t){return new n.CallHierarchyIncomingCall(eT(e.from),await D(e.fromRanges,t))}async function eI(e,t){if(null!==e)return a.mapAsync(e,eP,t)}async function eA(e,t){return new n.CallHierarchyOutgoingCall(eT(e.to),await D(e.fromRanges,t))}async function eM(e,t){if(null!==e)return a.mapAsync(e,eA,t)}function eL(e){return new n.SemanticTokensEdit(e.start,e.deleteCount,void 0!==e.data?new Uint32Array(e.data):void 0)}async function eF(e,t){if(null!=e)return new n.SemanticTokensEdits(e.edits.map(eL),e.resultId)}async function eO(e,t){if(null!=e)return new n.LinkedEditingRanges(await D(e.ranges,t),function(e){if(null!=e)return new RegExp(e)}(e.wordPattern))}function eN(e){if(null===e)return;let t=new p.default(Q(e.kind),e.name,e.detail||"",y(e.uri),x(e.range),x(e.selectionRange),e.data);return void 0!==e.tags&&(t.tags=Y(e.tags)),t}async function e$(e,t){if(null!==e)return a.map(e,eN,t)}function eH(e){let t,i;t="string"==typeof e.insertText?e.insertText:new n.SnippetString(e.insertText.value),e.command&&(i=ei(e.command));let r=new n.InlineCompletionItem(t,x(e.range),i);return e.filterText&&(r.filterText=e.filterText),r}return en.set(o.CodeActionKind.Empty,n.CodeActionKind.Empty),en.set(o.CodeActionKind.QuickFix,n.CodeActionKind.QuickFix),en.set(o.CodeActionKind.Refactor,n.CodeActionKind.Refactor),en.set(o.CodeActionKind.RefactorExtract,n.CodeActionKind.RefactorExtract),en.set(o.CodeActionKind.RefactorInline,n.CodeActionKind.RefactorInline),en.set(o.CodeActionKind.RefactorRewrite,n.CodeActionKind.RefactorRewrite),en.set(o.CodeActionKind.Source,n.CodeActionKind.Source),en.set(o.CodeActionKind.SourceOrganizeImports,n.CodeActionKind.SourceOrganizeImports),{asUri:function(e){return y(e)},asDocumentSelector:function(e){let t=[];for(let i of e)if("string"==typeof i)t.push(i);else if(_.NotebookCellTextDocumentFilter.is(i))if("string"==typeof i.notebook)t.push({notebookType:i.notebook,language:i.language});else{let e=i.notebook.notebookType??"*";t.push({notebookType:e,scheme:i.notebook.scheme,pattern:i.notebook.pattern,language:i.language})}else _.TextDocumentFilter.is(i)&&t.push({language:i.language,scheme:i.scheme,pattern:i.pattern});return t},asDiagnostics:C,asDiagnostic:S,asRange:x,asRanges:D,asPosition:w,asDiagnosticSeverity:E,asDiagnosticTag:b,asHover:function(e){if(e)return new n.Hover(function(e){if(s.string(e))return T(e);if(r.is(e))return T().appendCodeblock(e.value,e.language);if(!Array.isArray(e))return T(e);{let t=[];for(let i of e){let e=T();r.is(i)?e.appendCodeblock(i.value,i.language):e.appendMarkdown(i),t.push(e)}return t}}(e.contents),x(e.range))},asCompletionResult:R,asCompletionItem:P,asTextEdit:I,asTextEdits:A,asSignatureHelp:L,asSignatureInformations:F,asSignatureInformation:O,asParameterInformations:N,asParameterInformation:$,asDeclarationResult:U,asDefinitionResult:W,asLocation:H,asReferences:z,asDocumentHighlights:K,asDocumentHighlight:V,asDocumentHighlightKind:B,asSymbolKind:Q,asSymbolTag:J,asSymbolTags:Y,asSymbolInformations:G,asSymbolInformation:X,asDocumentSymbols:Z,asDocumentSymbol:ee,asCommand:ei,asCommands:er,asCodeAction:es,asCodeActionKind:eo,asCodeActionKinds:function(e){if(null!=e)return e.map(e=>eo(e))},asCodeActionResult:function(e,t){return a.mapAsync(e,async e=>o.Command.is(e)?ei(e):es(e,t),t)},asCodeLens:ea,asCodeLenses:el,asWorkspaceEdit:ec,asDocumentLink:ed,asDocumentLinks:eu,asFoldingRangeKind:ev,asFoldingRange:e_,asFoldingRanges:ey,asColor:eh,asColorInformation:eg,asColorInformations:ep,asColorPresentation:em,asColorPresentations:ef,asSelectionRange:eC,asSelectionRanges:eS,asInlineValue:eb,asInlineValues:ew,asInlayHint:ex,asInlayHints:ek,asSemanticTokensLegend:function(e){return e},asSemanticTokens:async function e(e,t){if(null!=e)return new n.SemanticTokens(new Uint32Array(e.data),e.resultId)},asSemanticTokensEdit:eL,asSemanticTokensEdits:eF,asCallHierarchyItem:eT,asCallHierarchyItems:eR,asCallHierarchyIncomingCall:eP,asCallHierarchyIncomingCalls:eI,asCallHierarchyOutgoingCall:eA,asCallHierarchyOutgoingCalls:eM,asLinkedEditingRanges:eO,asTypeHierarchyItem:eN,asTypeHierarchyItems:e$,asGlobPattern:function(e){if(s.string(e))return e;if(o.RelativePattern.is(e)){if(o.URI.is(e.baseUri))return new n.RelativePattern(y(e.baseUri),e.pattern);else if(o.WorkspaceFolder.is(e.baseUri)){let t=n.workspace.getWorkspaceFolder(y(e.baseUri.uri));return void 0!==t?new n.RelativePattern(t,e.pattern):void 0}}},asInlineCompletionResult:async function(e,t){if(!e)return;if(Array.isArray(e))return a.map(e,e=>eH(e),t);let i=await a.map(e.items,e=>eH(e),t);return new n.InlineCompletionList(i)},asInlineCompletionItem:eH}}},648481,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ProgressPart=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(217405);i.ProgressPart=class{constructor(e,t,i){this._client=e,this._token=t,this._reported=0,this._infinite=!1,this._lspProgressDisposable=this._client.onProgress(n.WorkDoneProgress.type,this._token,e=>{switch(e.kind){case"begin":this.begin(e);break;case"report":this.report(e);break;case"end":this.done(),i&&i(this)}})}begin(e){this._infinite=void 0===e.percentage,void 0!==this._lspProgressDisposable&&r.window.withProgress({location:r.ProgressLocation.Window,cancellable:e.cancellable,title:e.title},async(t,i)=>{if(void 0!==this._lspProgressDisposable)return this._progress=t,this._cancellationToken=i,this._tokenDisposable=this._cancellationToken.onCancellationRequested(()=>{this._client.sendNotification(n.WorkDoneProgressCancelNotification.type,{token:this._token})}),this.report(e),new Promise((e,t)=>{this._resolve=e,this._reject=t})})}report(e){if(this._infinite&&o.string(e.message))void 0!==this._progress&&this._progress.report({message:e.message});else if(o.number(e.percentage)){let t=Math.max(0,Math.max(0,Math.min(e.percentage,100))-this._reported);this._reported+=t,void 0!==this._progress&&this._progress.report({message:e.message,increment:t})}}cancel(){this.cleanup(),void 0!==this._reject&&(this._reject(),this._resolve=void 0,this._reject=void 0)}done(){this.cleanup(),void 0!==this._resolve&&(this._resolve(),this._resolve=void 0,this._reject=void 0)}cleanup(){void 0!==this._lspProgressDisposable&&(this._lspProgressDisposable.dispose(),this._lspProgressDisposable=void 0),void 0!==this._tokenDisposable&&(this._tokenDisposable.dispose(),this._tokenDisposable=void 0),this._progress=void 0,this._cancellationToken=void 0}}},628134,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.NotebookDocumentSyncFeature=void 0;let r=e.r(663544),n=e.r(564461),o=e.r(441296),s=e.r(413807),a=e.r(217405);function l(e,t){return void 0===e[t]&&(e[t]={}),e[t]}!function(e){function t(e,t){return e.map(e=>n(e,t))}function i(e){return function e(t,i){if(t.has(i))throw Error("Can't deep copy cyclic structures.");if(Array.isArray(i)){let r=[];for(let n of i)if(null!==n&&"object"==typeof n||Array.isArray(n))r.push(e(t,n));else{if(n instanceof RegExp)throw Error("Can't transfer regular expressions to the server");r.push(n)}return r}{let r=Object.keys(i),n=Object.create(null);for(let o of r){let r=i[o];if(null!==r&&"object"==typeof r||Array.isArray(r))n[o]=e(t,r);else{if(r instanceof RegExp)throw Error("Can't transfer regular expressions to the server");n[o]=r}}return n}}(new Set,e)}function n(e,t){let n=o.NotebookCell.create(function(e){switch(e){case r.NotebookCellKind.Markup:return o.NotebookCellKind.Markup;case r.NotebookCellKind.Code:return o.NotebookCellKind.Code}}(e.kind),t.asUri(e.document.uri));return Object.keys(e.metadata).length>0&&(n.metadata=i(e.metadata)),void 0!==e.executionSummary&&a.number(e.executionSummary.executionOrder)&&a.boolean(e.executionSummary.success)&&(n.executionSummary={executionOrder:e.executionSummary.executionOrder,success:e.executionSummary.success}),n}e.asVersionedNotebookDocumentIdentifier=function(e,t){return{version:e.version,uri:t.asUri(e.uri)}},e.asNotebookDocument=function(e,r,n){let s=o.NotebookDocument.create(n.asUri(e.uri),e.notebookType,e.version,t(r,n));return Object.keys(e.metadata).length>0&&(s.metadata=i(e.metadata)),s},e.asNotebookCells=t,e.asMetadata=i,e.asNotebookCell=n,e.asTextContentChange=function(e,t){let i=t.asChangeTextDocumentParams(e,e.document.uri,e.document.version);return{document:i.textDocument,changes:i.contentChanges}},e.asNotebookDocumentChangeEvent=function(e,t){let i=Object.create(null);if(e.metadata&&(i.metadata=p.c2p.asMetadata(e.metadata)),void 0!==e.cells){let r=Object.create(null),n=e.cells;n.structure&&(r.structure={array:{start:n.structure.array.start,deleteCount:n.structure.array.deleteCount,cells:void 0!==n.structure.array.cells?n.structure.array.cells.map(e=>p.c2p.asNotebookCell(e,t)):void 0},didOpen:void 0!==n.structure.didOpen?n.structure.didOpen.map(e=>t.asOpenTextDocumentParams(e.document).textDocument):void 0,didClose:void 0!==n.structure.didClose?n.structure.didClose.map(e=>t.asCloseTextDocumentParams(e.document).textDocument):void 0}),void 0!==n.data&&(r.data=n.data.map(e=>p.c2p.asNotebookCell(e,t))),void 0!==n.textContent&&(r.textContent=n.textContent.map(e=>p.c2p.asTextContentChange(e,t))),Object.keys(r).length>0&&(i.cells=r)}return i}}((p=c||(c={})).c2p||(p.c2p={}));var c,d,u,h,g,p,m=d||(d={});function f(e,t,i=!0){var r,n,o,s;return e.kind===t.kind&&e.document.uri.toString()===t.document.uri.toString()&&e.document.languageId===t.document.languageId&&(r=e.executionSummary,r===(n=t.executionSummary)||void 0!==r&&void 0!==n&&r.executionOrder===n.executionOrder&&r.success===n.success&&(o=r.timing,o===(s=n.timing)||void 0!==o&&void 0!==s&&o.startTime===s.startTime&&o.endTime===s.endTime))&&(!i||i&&function e(t,i){if(t===i)return!0;if(null==t||null==i||typeof t!=typeof i||"object"!=typeof t)return!1;let r=Array.isArray(t),n=Array.isArray(i);if(r!==n)return!1;if(r&&n){if(t.length!==i.length)return!1;for(let r=0;r<t.length;r++)if(!e(t[r],i[r]))return!1}if(_(t)&&_(i)){let r=Object.keys(t),n=Object.keys(i);if(r.length!==n.length||(r.sort(),n.sort(),!e(r,n)))return!1;for(let n=0;n<r.length;n++){let o=r[n];if(!e(t[o],i[o]))return!1}return!0}return!1}(e.metadata,t.metadata))}function _(e){return null!==e&&"object"==typeof e}function y(e,t,i,r){return void 0===t&&void 0===i?{notebook:e,language:r}:{notebook:{notebookType:e,scheme:t,pattern:i},language:r}}m.computeDiff=function(e,t,i){let r=e.length,n=t.length,o=0;for(;o<n&&o<r&&f(e[o],t[o],i);)o++;if(o<n&&o<r){let s=r-1,a=n-1;for(;s>=0&&a>=0&&f(e[s],t[a],i);)s--,a--;let l=s+1-o,c=o===a+1?void 0:t.slice(o,a+1);return void 0!==c?{start:o,deleteCount:l,cells:c}:{start:o,deleteCount:l}}return o<n?{start:o,deleteCount:0,cells:t.slice(o)}:o<r?{start:o,deleteCount:r-o}:void 0},m.isObjectLiteral=_,(u||(u={})).matchNotebook=function(e,t){if("string"==typeof e)return"*"===e||t.notebookType===e;if(void 0!==e.notebookType&&"*"!==e.notebookType&&t.notebookType!==e.notebookType)return!1;let i=t.uri;if(void 0!==e.scheme&&"*"!==e.scheme&&i.scheme!==e.scheme)return!1;if(void 0!==e.pattern){let t=new n.Minimatch(e.pattern,{noext:!0});if(!t.makeRe()||!t.match(i.fsPath))return!1}return!0},(h||(h={})).asDocumentSelector=function(e){let t=e.notebookSelector,i=[];for(let e of t){let t=("string"==typeof e.notebook?e.notebook:e.notebook?.notebookType)??"*",r="string"==typeof e.notebook?void 0:e.notebook?.scheme,n="string"==typeof e.notebook?void 0:e.notebook?.pattern;if(void 0!==e.cells)for(let o of e.cells)i.push(y(t,r,n,o.language));else i.push(y(t,r,n,void 0))}return i},(g||(g={})).create=function(e){return{cells:e,uris:new Set(e.map(e=>e.document.uri.toString()))}};class C{constructor(e,t){for(const i of(this.client=e,this.options=t,this.notebookSyncInfo=new Map,this.notebookDidOpen=new Set,this.disposables=[],this.selector=e.protocol2CodeConverter.asDocumentSelector(h.asDocumentSelector(t)),r.workspace.onDidOpenNotebookDocument(e=>{this.notebookDidOpen.add(e.uri.toString()),this.didOpen(e)},void 0,this.disposables),r.workspace.notebookDocuments))this.notebookDidOpen.add(i.uri.toString()),this.didOpen(i);r.workspace.onDidChangeNotebookDocument(e=>this.didChangeNotebookDocument(e),void 0,this.disposables),!0===this.options.save&&r.workspace.onDidSaveNotebookDocument(e=>this.didSave(e),void 0,this.disposables),r.workspace.onDidCloseNotebookDocument(e=>{this.didClose(e),this.notebookDidOpen.delete(e.uri.toString())},void 0,this.disposables)}getState(){for(let e of r.workspace.notebookDocuments)if(void 0!==this.getMatchingCells(e))return{kind:"document",id:"$internal",registrations:!0,matches:!0};return{kind:"document",id:"$internal",registrations:!0,matches:!1}}get mode(){return"notebook"}handles(e){return r.languages.match(this.selector,e)>0}didOpenNotebookCellTextDocument(e,t){if(0===r.languages.match(this.selector,t.document)||!this.notebookDidOpen.has(e.uri.toString()))return;let i=this.notebookSyncInfo.get(e.uri.toString()),n=this.cellMatches(e,t);if(void 0!==i){let r=i.uris.has(t.document.uri.toString());if(n&&r||!n&&!r)return;if(n){let t=this.getMatchingCells(e);if(void 0!==t){let r=this.asNotebookDocumentChangeEvent(e,void 0,i,t);void 0!==r&&this.doSendChange(r,t).catch(()=>{})}}}else n&&this.doSendOpen(e,[t]).catch(()=>{})}didChangeNotebookCellTextDocument(e,t){0!==r.languages.match(this.selector,t.document)&&this.doSendChange({notebook:e,cells:{textContent:[t]}},void 0).catch(()=>{})}didCloseNotebookCellTextDocument(e,t){let i=this.notebookSyncInfo.get(e.uri.toString());if(void 0===i)return;let r=t.document.uri,n=i.cells.findIndex(e=>e.document.uri.toString()===r.toString());if(-1!==n)if(0===n&&1===i.cells.length)this.doSendClose(e,i.cells).catch(()=>{});else{let t=i.cells.slice(),r=t.splice(n,1);this.doSendChange({notebook:e,cells:{structure:{array:{start:n,deleteCount:1},didClose:r}}},t).catch(()=>{})}}dispose(){for(let e of this.disposables)e.dispose()}didOpen(e,t=this.getMatchingCells(e),i=this.notebookSyncInfo.get(e.uri.toString())){if(void 0!==i)if(void 0!==t){let r=this.asNotebookDocumentChangeEvent(e,void 0,i,t);void 0!==r&&this.doSendChange(r,t).catch(()=>{})}else this.doSendClose(e,[]).catch(()=>{});else{if(void 0===t)return;this.doSendOpen(e,t).catch(()=>{})}}didChangeNotebookDocument(e){let t=e.notebook,i=this.notebookSyncInfo.get(t.uri.toString());if(void 0===i){if(0===e.contentChanges.length)return;let r=this.getMatchingCells(t);if(void 0===r)return;this.didOpen(t,r,i)}else{let r=this.getMatchingCells(t);if(void 0===r)return void this.didClose(t,i);let n=this.asNotebookDocumentChangeEvent(e.notebook,e,i,r);void 0!==n&&this.doSendChange(n,r).catch(()=>{})}}didSave(e){void 0!==this.notebookSyncInfo.get(e.uri.toString())&&this.doSendSave(e).catch(()=>{})}didClose(e,t=this.notebookSyncInfo.get(e.uri.toString())){if(void 0===t)return;let i=e.getCells().filter(e=>t.uris.has(e.document.uri.toString()));this.doSendClose(e,i).catch(()=>{})}async sendDidOpenNotebookDocument(e){let t=this.getMatchingCells(e);if(void 0!==t)return this.doSendOpen(e,t)}async doSendOpen(e,t){let i=async(e,t)=>{let i=c.c2p.asNotebookDocument(e,t,this.client.code2ProtocolConverter),r=t.map(e=>this.client.code2ProtocolConverter.asTextDocumentItem(e.document));try{await this.client.sendNotification(o.DidOpenNotebookDocumentNotification.type,{notebookDocument:i,cellTextDocuments:r})}catch(e){throw this.client.error("Sending DidOpenNotebookDocumentNotification failed",e),e}},r=this.client.middleware?.notebooks;return this.notebookSyncInfo.set(e.uri.toString(),g.create(t)),r?.didOpen!==void 0?r.didOpen(e,t,i):i(e,t)}async sendDidChangeNotebookDocument(e){return this.doSendChange(e,void 0)}async doSendChange(e,t=this.getMatchingCells(e.notebook)){let i=async e=>{try{await this.client.sendNotification(o.DidChangeNotebookDocumentNotification.type,{notebookDocument:c.c2p.asVersionedNotebookDocumentIdentifier(e.notebook,this.client.code2ProtocolConverter),change:c.c2p.asNotebookDocumentChangeEvent(e,this.client.code2ProtocolConverter)})}catch(e){throw this.client.error("Sending DidChangeNotebookDocumentNotification failed",e),e}},r=this.client.middleware?.notebooks;return e.cells?.structure!==void 0&&this.notebookSyncInfo.set(e.notebook.uri.toString(),g.create(t??[])),r?.didChange!==void 0?r?.didChange(e,i):i(e)}async sendDidSaveNotebookDocument(e){return this.doSendSave(e)}async doSendSave(e){let t=async e=>{try{await this.client.sendNotification(o.DidSaveNotebookDocumentNotification.type,{notebookDocument:{uri:this.client.code2ProtocolConverter.asUri(e.uri)}})}catch(e){throw this.client.error("Sending DidSaveNotebookDocumentNotification failed",e),e}},i=this.client.middleware?.notebooks;return i?.didSave!==void 0?i.didSave(e,t):t(e)}async sendDidCloseNotebookDocument(e){return this.doSendClose(e,this.getMatchingCells(e)??[])}async doSendClose(e,t){let i=async(e,t)=>{try{await this.client.sendNotification(o.DidCloseNotebookDocumentNotification.type,{notebookDocument:{uri:this.client.code2ProtocolConverter.asUri(e.uri)},cellTextDocuments:t.map(e=>this.client.code2ProtocolConverter.asTextDocumentIdentifier(e.document))})}catch(e){throw this.client.error("Sending DidCloseNotebookDocumentNotification failed",e),e}},r=this.client.middleware?.notebooks;return this.notebookSyncInfo.delete(e.uri.toString()),r?.didClose!==void 0?r.didClose(e,t,i):i(e,t)}asNotebookDocumentChangeEvent(e,t,i,r){let n;if(void 0!==t&&t.notebook!==e)throw Error("Notebook must be identical");let o={notebook:e};if(t?.metadata!==void 0&&(o.metadata=c.c2p.asMetadata(t.metadata)),t?.cellChanges!==void 0&&t.cellChanges.length>0){let e=[];for(let i of(n=new Set(r.map(e=>e.document.uri.toString())),t.cellChanges))n.has(i.cell.document.uri.toString())&&(void 0!==i.executionSummary||void 0!==i.metadata)&&e.push(i.cell);e.length>0&&(o.cells=o.cells??{},o.cells.data=e)}if((t?.contentChanges!==void 0&&t.contentChanges.length>0||void 0===t)&&void 0!==i&&void 0!==r){let e,t,n=i.cells,s=d.computeDiff(n,r,!1);if(void 0!==s){for(let i of(e=void 0===s.cells?new Map:new Map(s.cells.map(e=>[e.document.uri.toString(),e])),Array.from((t=0===s.deleteCount?new Map:new Map(n.slice(s.start,s.start+s.deleteCount).map(e=>[e.document.uri.toString(),e]))).keys())))e.has(i)&&(t.delete(i),e.delete(i));o.cells=o.cells??{};let i=[],r=[];if(e.size>0||t.size>0){for(let t of e.values())i.push(t);for(let e of t.values())r.push(e)}o.cells.structure={array:s,didOpen:i,didClose:r}}}return Object.keys(o).length>1?o:void 0}getMatchingCells(e,t=e.getCells()){if(void 0!==this.options.notebookSelector){for(let i of this.options.notebookSelector)if(void 0===i.notebook||u.matchNotebook(i.notebook,e)){let r=this.filterCells(e,t,i.cells);return 0===r.length?void 0:r}}}cellMatches(e,t){let i=this.getMatchingCells(e,[t]);return void 0!==i&&i[0]===t}filterCells(e,t,i){let r=void 0!==i?t.filter(e=>{let t=e.document.languageId;return i.some(e=>"*"===e.language||t===e.language)}):t;return"function"==typeof this.client.clientOptions.notebookDocumentOptions?.filterCells?this.client.clientOptions.notebookDocumentOptions.filterCells(e,r):r}}class S{constructor(e){this.client=e,this.registrations=new Map,this.registrationType=o.NotebookDocumentSyncRegistrationType.type,r.workspace.onDidOpenTextDocument(e=>{if(e.uri.scheme!==S.CellScheme)return;let[t,i]=this.findNotebookDocumentAndCell(e);if(void 0!==t&&void 0!==i)for(let e of this.registrations.values())e instanceof C&&e.didOpenNotebookCellTextDocument(t,i)}),r.workspace.onDidChangeTextDocument(e=>{if(0===e.contentChanges.length)return;let t=e.document;if(t.uri.scheme!==S.CellScheme)return;let[i]=this.findNotebookDocumentAndCell(t);if(void 0!==i)for(let t of this.registrations.values())t instanceof C&&t.didChangeNotebookCellTextDocument(i,e)}),r.workspace.onDidCloseTextDocument(e=>{if(e.uri.scheme!==S.CellScheme)return;let[t,i]=this.findNotebookDocumentAndCell(e);if(void 0!==t&&void 0!==i)for(let e of this.registrations.values())e instanceof C&&e.didCloseNotebookCellTextDocument(t,i)})}getState(){if(0===this.registrations.size)return{kind:"document",id:this.registrationType.method,registrations:!1,matches:!1};for(let e of this.registrations.values()){let t=e.getState();if("document"===t.kind&&!0===t.registrations&&!0===t.matches)return{kind:"document",id:this.registrationType.method,registrations:!0,matches:!0}}return{kind:"document",id:this.registrationType.method,registrations:!0,matches:!1}}fillClientCapabilities(e){let t=l(l(e,"notebookDocument"),"synchronization");t.dynamicRegistration=!0,t.executionSummarySupport=!0}preInitialize(e){let t=e.notebookDocumentSync;void 0!==t&&(this.dedicatedChannel=this.client.protocol2CodeConverter.asDocumentSelector(h.asDocumentSelector(t)))}initialize(e){let t=e.notebookDocumentSync;if(void 0===t)return;let i=t.id??s.generateUuid();this.register({id:i,registerOptions:t})}register(e){let t=new C(this.client,e.registerOptions);this.registrations.set(e.id,t)}unregister(e){let t=this.registrations.get(e);t&&t.dispose()}clear(){for(let e of this.registrations.values())e.dispose();this.registrations.clear()}handles(e){if(e.uri.scheme!==S.CellScheme)return!1;if(void 0!==this.dedicatedChannel&&r.languages.match(this.dedicatedChannel,e)>0)return!0;for(let t of this.registrations.values())if(t.handles(e))return!0;return!1}getProvider(e){for(let t of this.registrations.values())if(t.handles(e.document))return t}findNotebookDocumentAndCell(e){let t=e.uri.toString();for(let e of r.workspace.notebookDocuments)for(let i of e.getCells())if(i.document.uri.toString()===t)return[e,i];return[void 0,void 0]}}i.NotebookDocumentSyncFeature=S,S.CellScheme="vscode-notebook-cell"},42305,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.SyncConfigurationFeature=i.toJSONObject=i.ConfigurationFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(217405),s=e.r(413807),a=e.r(165969);function l(e){if(e){if(Array.isArray(e))return e.map(l);else if("object"==typeof e){let t=Object.create(null);for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=l(e[i]));return t}}return e}i.ConfigurationFeature=class{constructor(e){this._client=e}getState(){return{kind:"static"}}fillClientCapabilities(e){e.workspace=e.workspace||{},e.workspace.configuration=!0}initialize(){let e=this._client;e.onRequest(n.ConfigurationRequest.type,(t,i)=>{let r=e=>{let t=[];for(let i of e.items){let e=void 0!==i.scopeUri&&null!==i.scopeUri?this._client.protocol2CodeConverter.asUri(i.scopeUri):void 0;t.push(this.getConfiguration(e,null!==i.section?i.section:void 0))}return t},n=e.middleware.workspace;return n&&n.configuration?n.configuration(t,i,r):r(t,i)})}getConfiguration(e,t){let i=null;if(t){let n=t.lastIndexOf(".");if(-1===n)i=l(r.workspace.getConfiguration(void 0,e).get(t));else{let o=r.workspace.getConfiguration(t.substr(0,n),e);o&&(i=l(o.get(t.substr(n+1))))}}else{let t=r.workspace.getConfiguration(void 0,e);for(let e of(i={},Object.keys(t)))t.has(e)&&(i[e]=l(t.get(e)))}return void 0===i&&(i=null),i}clear(){}},i.toJSONObject=l,i.SyncConfigurationFeature=class{constructor(e){this._client=e,this.isCleared=!1,this._listeners=new Map}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._listeners.size>0}}get registrationType(){return n.DidChangeConfigurationNotification.type}fillClientCapabilities(e){(0,a.ensure)((0,a.ensure)(e,"workspace"),"didChangeConfiguration").dynamicRegistration=!0}initialize(){this.isCleared=!1;let e=this._client.clientOptions.synchronize?.configurationSection;void 0!==e&&this.register({id:s.generateUuid(),registerOptions:{section:e}})}register(e){let t=r.workspace.onDidChangeConfiguration(t=>{this.onDidChangeConfiguration(e.registerOptions.section,t)});this._listeners.set(e.id,t),void 0!==e.registerOptions.section&&this.onDidChangeConfiguration(e.registerOptions.section,void 0)}unregister(e){let t=this._listeners.get(e);t&&(this._listeners.delete(e),t.dispose())}clear(){for(let e of this._listeners.values())e.dispose();this._listeners.clear(),this.isCleared=!0}onDidChangeConfiguration(e,t){let i;if(this.isCleared||void 0!==(i=o.string(e)?[e]:e)&&void 0!==t&&!i.some(e=>t.affectsConfiguration(e)))return;let r=async e=>void 0===e?this._client.sendNotification(n.DidChangeConfigurationNotification.type,{settings:null}):this._client.sendNotification(n.DidChangeConfigurationNotification.type,{settings:this.extractSettingsInformation(e)}),s=this._client.middleware.workspace?.didChangeConfiguration;(s?s(i,r):r(i)).catch(e=>{this._client.error(`Sending notification ${n.DidChangeConfigurationNotification.type.method} failed`,e)})}extractSettingsInformation(e){let t=this._client.clientOptions.workspaceFolder?this._client.clientOptions.workspaceFolder.uri:void 0,i=Object.create(null);for(let n=0;n<e.length;n++){let o=e[n],s=o.indexOf("."),a=null;if(a=s>=0?r.workspace.getConfiguration(o.substr(0,s),t).get(o.substr(s+1)):r.workspace.getConfiguration(void 0,t).get(o)){let t=e[n].split(".");(function(e,t){let i=e;for(let e=0;e<t.length-1;e++){let r=i[t[e]];r||(r=Object.create(null),i[t[e]]=r),i=r}return i})(i,t)[t[t.length-1]]=l(a)}}return i}}},802301,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DidSaveTextDocumentFeature=i.WillSaveWaitUntilFeature=i.WillSaveFeature=i.DidChangeTextDocumentFeature=i.DidCloseTextDocumentFeature=i.DidOpenTextDocumentFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentEventFeature{constructor(e,t){super(e,r.workspace.onDidOpenTextDocument,n.DidOpenTextDocumentNotification.type,()=>e.middleware.didOpen,t=>e.code2ProtocolConverter.asOpenTextDocumentParams(t),e=>e,o.TextDocumentEventFeature.textDocumentFilter),this._syncedDocuments=t}get openDocuments(){return this._syncedDocuments.values()}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;t&&i&&i.openClose&&this.register({id:s.generateUuid(),registerOptions:{documentSelector:t}})}get registrationType(){return n.DidOpenTextDocumentNotification.type}register(e){if(super.register(e),!e.registerOptions.documentSelector)return;let t=this._client.protocol2CodeConverter.asDocumentSelector(e.registerOptions.documentSelector);r.workspace.textDocuments.forEach(e=>{let i=e.uri.toString();if(!this._syncedDocuments.has(i)&&r.languages.match(t,e)>0&&!this._client.hasDedicatedTextSynchronizationFeature(e)){let t=this._client.middleware,r=e=>this._client.sendNotification(this._type,this._createParams(e));(t.didOpen?t.didOpen(e,r):r(e)).catch(e=>{this._client.error(`Sending document notification ${this._type.method} failed`,e)}),this._syncedDocuments.set(i,e)}})}getTextDocument(e){return e}notificationSent(e,t,i){this._syncedDocuments.set(e.uri.toString(),e),super.notificationSent(e,t,i)}}i.DidOpenTextDocumentFeature=a;class l extends o.TextDocumentEventFeature{constructor(e,t,i){super(e,r.workspace.onDidCloseTextDocument,n.DidCloseTextDocumentNotification.type,()=>e.middleware.didClose,t=>e.code2ProtocolConverter.asCloseTextDocumentParams(t),e=>e,o.TextDocumentEventFeature.textDocumentFilter),this._syncedDocuments=t,this._pendingTextDocumentChanges=i}get registrationType(){return n.DidCloseTextDocumentNotification.type}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;t&&i&&i.openClose&&this.register({id:s.generateUuid(),registerOptions:{documentSelector:t}})}async callback(e){await super.callback(e),this._pendingTextDocumentChanges.delete(e.uri.toString())}getTextDocument(e){return e}notificationSent(e,t,i){this._syncedDocuments.delete(e.uri.toString()),super.notificationSent(e,t,i)}unregister(e){let t=this._selectors.get(e);super.unregister(e);let i=this._selectors.values();this._syncedDocuments.forEach(e=>{if(r.languages.match(t,e)>0&&!this._selectorFilter(i,e)&&!this._client.hasDedicatedTextSynchronizationFeature(e)){let t=this._client.middleware,i=e=>this._client.sendNotification(this._type,this._createParams(e));this._syncedDocuments.delete(e.uri.toString()),(t.didClose?t.didClose(e,i):i(e)).catch(e=>{this._client.error(`Sending document notification ${this._type.method} failed`,e)})}})}}i.DidCloseTextDocumentFeature=l;class c extends o.DynamicDocumentFeature{constructor(e,t){super(e),this._changeData=new Map,this._onNotificationSent=new r.EventEmitter,this._onPendingChangeAdded=new r.EventEmitter,this._pendingTextDocumentChanges=t,this._syncKind=n.TextDocumentSyncKind.None}get onNotificationSent(){return this._onNotificationSent.event}get onPendingChangeAdded(){return this._onPendingChangeAdded.event}get syncKind(){return this._syncKind}get registrationType(){return n.DidChangeTextDocumentNotification.type}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;t&&i&&void 0!==i.change&&i.change!==n.TextDocumentSyncKind.None&&this.register({id:s.generateUuid(),registerOptions:Object.assign({},{documentSelector:t},{syncKind:i.change})})}register(e){e.registerOptions.documentSelector&&(this._listener||(this._listener=r.workspace.onDidChangeTextDocument(this.callback,this)),this._changeData.set(e.id,{syncKind:e.registerOptions.syncKind,documentSelector:this._client.protocol2CodeConverter.asDocumentSelector(e.registerOptions.documentSelector)}),this.updateSyncKind(e.registerOptions.syncKind))}*getDocumentSelectors(){for(let e of this._changeData.values())yield e.documentSelector}async callback(e){if(0===e.contentChanges.length)return;let t=e.document.uri,i=e.document.version,o=[];for(let s of this._changeData.values())if(r.languages.match(s.documentSelector,e.document)>0&&!this._client.hasDedicatedTextSynchronizationFeature(e.document)){let r=this._client.middleware;if(s.syncKind===n.TextDocumentSyncKind.Incremental){let s=async e=>{let r=this._client.code2ProtocolConverter.asChangeTextDocumentParams(e,t,i);await this._client.sendNotification(n.DidChangeTextDocumentNotification.type,r),this.notificationSent(e.document,n.DidChangeTextDocumentNotification.type,r)};o.push(r.didChange?r.didChange(e,e=>s(e)):s(e))}else if(s.syncKind===n.TextDocumentSyncKind.Full){let t=async e=>{let t=e.document.uri.toString();this._pendingTextDocumentChanges.set(t,e.document),this._onPendingChangeAdded.fire()};o.push(r.didChange?r.didChange(e,e=>t(e)):t(e))}}return Promise.all(o).then(void 0,e=>{throw this._client.error(`Sending document notification ${n.DidChangeTextDocumentNotification.type.method} failed`,e),e})}notificationSent(e,t,i){this._onNotificationSent.fire({textDocument:e,type:t,params:i})}unregister(e){if(this._changeData.delete(e),0===this._changeData.size)this._listener&&(this._listener.dispose(),this._listener=void 0),this._syncKind=n.TextDocumentSyncKind.None;else for(let e of(this._syncKind=n.TextDocumentSyncKind.None,this._changeData.values()))if(this.updateSyncKind(e.syncKind),this._syncKind===n.TextDocumentSyncKind.Full)break}clear(){this._pendingTextDocumentChanges.clear(),this._changeData.clear(),this._syncKind=n.TextDocumentSyncKind.None,this._listener&&(this._listener.dispose(),this._listener=void 0)}getPendingDocumentChanges(e){let t;if(0===this._pendingTextDocumentChanges.size)return[];if(0===e.size)t=Array.from(this._pendingTextDocumentChanges.values()),this._pendingTextDocumentChanges.clear();else for(let i of(t=[],this._pendingTextDocumentChanges))e.has(i[0])||(t.push(i[1]),this._pendingTextDocumentChanges.delete(i[0]));return t}getProvider(e){for(let t of this._changeData.values())if(r.languages.match(t.documentSelector,e)>0)return{send:e=>this.callback(e)}}updateSyncKind(e){if(this._syncKind!==n.TextDocumentSyncKind.Full)switch(e){case n.TextDocumentSyncKind.Full:this._syncKind=e;break;case n.TextDocumentSyncKind.Incremental:this._syncKind===n.TextDocumentSyncKind.None&&(this._syncKind=n.TextDocumentSyncKind.Incremental)}}}i.DidChangeTextDocumentFeature=c;class d extends o.TextDocumentEventFeature{constructor(e){super(e,r.workspace.onWillSaveTextDocument,n.WillSaveTextDocumentNotification.type,()=>e.middleware.willSave,t=>e.code2ProtocolConverter.asWillSaveTextDocumentParams(t),e=>e.document,(e,t)=>o.TextDocumentEventFeature.textDocumentFilter(e,t.document))}get registrationType(){return n.WillSaveTextDocumentNotification.type}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"synchronization").willSave=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;t&&i&&i.willSave&&this.register({id:s.generateUuid(),registerOptions:{documentSelector:t}})}getTextDocument(e){return e.document}}i.WillSaveFeature=d;class u extends o.DynamicDocumentFeature{constructor(e){super(e),this._selectors=new Map}getDocumentSelectors(){return this._selectors.values()}get registrationType(){return n.WillSaveTextDocumentWaitUntilRequest.type}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"synchronization").willSaveWaitUntil=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;t&&i&&i.willSaveWaitUntil&&this.register({id:s.generateUuid(),registerOptions:{documentSelector:t}})}register(e){e.registerOptions.documentSelector&&(this._listener||(this._listener=r.workspace.onWillSaveTextDocument(this.callback,this)),this._selectors.set(e.id,this._client.protocol2CodeConverter.asDocumentSelector(e.registerOptions.documentSelector)))}callback(e){if(o.TextDocumentEventFeature.textDocumentFilter(this._selectors.values(),e.document)&&!this._client.hasDedicatedTextSynchronizationFeature(e.document)){let t=this._client.middleware,i=e=>this._client.sendRequest(n.WillSaveTextDocumentWaitUntilRequest.type,this._client.code2ProtocolConverter.asWillSaveTextDocumentParams(e)).then(async e=>{let t=await this._client.protocol2CodeConverter.asTextEdits(e);return void 0===t?[]:t});e.waitUntil(t.willSaveWaitUntil?t.willSaveWaitUntil(e,i):i(e))}}unregister(e){this._selectors.delete(e),0===this._selectors.size&&this._listener&&(this._listener.dispose(),this._listener=void 0)}clear(){this._selectors.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}}i.WillSaveWaitUntilFeature=u;class h extends o.TextDocumentEventFeature{constructor(e){super(e,r.workspace.onDidSaveTextDocument,n.DidSaveTextDocumentNotification.type,()=>e.middleware.didSave,t=>e.code2ProtocolConverter.asSaveTextDocumentParams(t,this._includeText),e=>e,o.TextDocumentEventFeature.textDocumentFilter),this._includeText=!1}get registrationType(){return n.DidSaveTextDocumentNotification.type}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"synchronization").didSave=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;if(t&&i&&i.save){let e="boolean"==typeof i.save?{includeText:!1}:{includeText:!!i.save.includeText};this.register({id:s.generateUuid(),registerOptions:Object.assign({},{documentSelector:t},e)})}}register(e){this._includeText=!!e.registerOptions.includeText,super.register(e)}getTextDocument(e){return e}}i.DidSaveTextDocumentFeature=h},627932,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.CompletionItemFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807),a=[n.CompletionItemKind.Text,n.CompletionItemKind.Method,n.CompletionItemKind.Function,n.CompletionItemKind.Constructor,n.CompletionItemKind.Field,n.CompletionItemKind.Variable,n.CompletionItemKind.Class,n.CompletionItemKind.Interface,n.CompletionItemKind.Module,n.CompletionItemKind.Property,n.CompletionItemKind.Unit,n.CompletionItemKind.Value,n.CompletionItemKind.Enum,n.CompletionItemKind.Keyword,n.CompletionItemKind.Snippet,n.CompletionItemKind.Color,n.CompletionItemKind.File,n.CompletionItemKind.Reference,n.CompletionItemKind.Folder,n.CompletionItemKind.EnumMember,n.CompletionItemKind.Constant,n.CompletionItemKind.Struct,n.CompletionItemKind.Event,n.CompletionItemKind.Operator,n.CompletionItemKind.TypeParameter];class l extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.CompletionRequest.type),this.labelDetailsSupport=new Map}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"completion");t.dynamicRegistration=!0,t.contextSupport=!0,t.completionItem={snippetSupport:!0,commitCharactersSupport:!0,documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText],deprecatedSupport:!0,preselectSupport:!0,tagSupport:{valueSet:[n.CompletionItemTag.Deprecated]},insertReplaceSupport:!0,resolveSupport:{properties:["documentation","detail","additionalTextEdits"]},insertTextModeSupport:{valueSet:[n.InsertTextMode.asIs,n.InsertTextMode.adjustIndentation]},labelDetailsSupport:!0},t.insertTextMode=n.InsertTextMode.adjustIndentation,t.completionItemKind={valueSet:a},t.completionList={itemDefaults:["commitCharacters","editRange","insertTextFormat","insertTextMode","data"]}}initialize(e,t){let i=this.getRegistrationOptions(t,e.completionProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e,t){this.labelDetailsSupport.set(t,!!e.completionItem?.labelDetailsSupport);let i=e.triggerCharacters??[],o=e.allCommitCharacters,s=e.documentSelector,a={provideCompletionItems:(e,t,i,r)=>{let s=this._client,a=this._client.middleware,l=(e,t,i,r)=>s.sendRequest(n.CompletionRequest.type,s.code2ProtocolConverter.asCompletionParams(e,t,i),r).then(e=>r.isCancellationRequested?null:s.protocol2CodeConverter.asCompletionResult(e,o,r),e=>s.handleFailedRequest(n.CompletionRequest.type,r,e,null));return a.provideCompletionItem?a.provideCompletionItem(e,t,r,i,l):l(e,t,r,i)},resolveCompletionItem:e.resolveProvider?(e,i)=>{let r=this._client,o=this._client.middleware,s=(e,i)=>r.sendRequest(n.CompletionResolveRequest.type,r.code2ProtocolConverter.asCompletionItem(e,!!this.labelDetailsSupport.get(t)),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asCompletionItem(e),t=>r.handleFailedRequest(n.CompletionResolveRequest.type,i,t,e));return o.resolveCompletionItem?o.resolveCompletionItem(e,i,s):s(e,i)}:void 0};return[r.languages.registerCompletionItemProvider(this._client.protocol2CodeConverter.asDocumentSelector(s),a,...i),a]}}i.CompletionItemFeature=l},712502,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.HoverFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.HoverRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"hover");t.dynamicRegistration=!0,t.contentFormat=[n.MarkupKind.Markdown,n.MarkupKind.PlainText]}initialize(e,t){let i=this.getRegistrationOptions(t,e.hoverProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideHover:(e,t,i)=>{let r=this._client,o=(e,t,i)=>r.sendRequest(n.HoverRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asHover(e),e=>r.handleFailedRequest(n.HoverRequest.type,i,e,null)),s=r.middleware;return s.provideHover?s.provideHover(e,t,i,o):o(e,t,i)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerHoverProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.HoverFeature=a},182409,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DefinitionFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.DefinitionRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"definition");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.definitionProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideDefinition:(e,t,i)=>{let r=this._client,o=(e,t,i)=>r.sendRequest(n.DefinitionRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDefinitionResult(e,i),e=>r.handleFailedRequest(n.DefinitionRequest.type,i,e,null)),s=r.middleware;return s.provideDefinition?s.provideDefinition(e,t,i,o):o(e,t,i)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerDefinitionProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.DefinitionFeature=a},661553,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.SignatureHelpFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.SignatureHelpRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"signatureHelp");t.dynamicRegistration=!0,t.signatureInformation={documentationFormat:[n.MarkupKind.Markdown,n.MarkupKind.PlainText]},t.signatureInformation.parameterInformation={labelOffsetSupport:!0},t.signatureInformation.activeParameterSupport=!0,t.contextSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.signatureHelpProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t={provideSignatureHelp:(e,t,i,r)=>{let o=this._client,s=(e,t,i,r)=>o.sendRequest(n.SignatureHelpRequest.type,o.code2ProtocolConverter.asSignatureHelpParams(e,t,i),r).then(e=>r.isCancellationRequested?null:o.protocol2CodeConverter.asSignatureHelp(e,r),e=>o.handleFailedRequest(n.SignatureHelpRequest.type,r,e,null)),a=o.middleware;return a.provideSignatureHelp?a.provideSignatureHelp(e,t,r,i,s):s(e,t,r,i)}};return[this.registerProvider(e,t),t]}registerProvider(e,t){let i=this._client.protocol2CodeConverter.asDocumentSelector(e.documentSelector);if(void 0===e.retriggerCharacters){let n=e.triggerCharacters||[];return r.languages.registerSignatureHelpProvider(i,t,...n)}{let n={triggerCharacters:e.triggerCharacters||[],retriggerCharacters:e.retriggerCharacters||[]};return r.languages.registerSignatureHelpProvider(i,t,n)}}}i.SignatureHelpFeature=a},568942,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DocumentHighlightFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.DocumentHighlightRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"documentHighlight").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentHighlightProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideDocumentHighlights:(e,t,i)=>{let r=this._client,o=(e,t,i)=>r.sendRequest(n.DocumentHighlightRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDocumentHighlights(e,i),e=>r.handleFailedRequest(n.DocumentHighlightRequest.type,i,e,null)),s=r.middleware;return s.provideDocumentHighlights?s.provideDocumentHighlights(e,t,i,o):o(e,t,i)}};return[r.languages.registerDocumentHighlightProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.DocumentHighlightFeature=a},775419,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DocumentSymbolFeature=i.SupportedSymbolTags=i.SupportedSymbolKinds=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);i.SupportedSymbolKinds=[n.SymbolKind.File,n.SymbolKind.Module,n.SymbolKind.Namespace,n.SymbolKind.Package,n.SymbolKind.Class,n.SymbolKind.Method,n.SymbolKind.Property,n.SymbolKind.Field,n.SymbolKind.Constructor,n.SymbolKind.Enum,n.SymbolKind.Interface,n.SymbolKind.Function,n.SymbolKind.Variable,n.SymbolKind.Constant,n.SymbolKind.String,n.SymbolKind.Number,n.SymbolKind.Boolean,n.SymbolKind.Array,n.SymbolKind.Object,n.SymbolKind.Key,n.SymbolKind.Null,n.SymbolKind.EnumMember,n.SymbolKind.Struct,n.SymbolKind.Event,n.SymbolKind.Operator,n.SymbolKind.TypeParameter],i.SupportedSymbolTags=[n.SymbolTag.Deprecated];class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.DocumentSymbolRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"documentSymbol");t.dynamicRegistration=!0,t.symbolKind={valueSet:i.SupportedSymbolKinds},t.hierarchicalDocumentSymbolSupport=!0,t.tagSupport={valueSet:i.SupportedSymbolTags},t.labelSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentSymbolProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideDocumentSymbols:(e,t)=>{let i=this._client,r=async(e,t)=>{try{let r=await i.sendRequest(n.DocumentSymbolRequest.type,i.code2ProtocolConverter.asDocumentSymbolParams(e),t);if(t.isCancellationRequested||null==r)return null;if(0===r.length)return[];{let e=r[0];if(n.DocumentSymbol.is(e))return await i.protocol2CodeConverter.asDocumentSymbols(r,t);return await i.protocol2CodeConverter.asSymbolInformations(r,t)}}catch(e){return i.handleFailedRequest(n.DocumentSymbolRequest.type,t,e,null)}},o=i.middleware;return o.provideDocumentSymbols?o.provideDocumentSymbols(e,t,r):r(e,t)}},o=void 0!==e.label?{label:e.label}:void 0;return[r.languages.registerDocumentSymbolProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i,o),i]}}i.DocumentSymbolFeature=a},703750,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.WorkspaceSymbolFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(775419),a=e.r(413807);class l extends o.WorkspaceFeature{constructor(e){super(e,n.WorkspaceSymbolRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"workspace"),"symbol");t.dynamicRegistration=!0,t.symbolKind={valueSet:s.SupportedSymbolKinds},t.tagSupport={valueSet:s.SupportedSymbolTags},t.resolveSupport={properties:["location.range"]}}initialize(e){e.workspaceSymbolProvider&&this.register({id:a.generateUuid(),registerOptions:!0===e.workspaceSymbolProvider?{workDoneProgress:!1}:e.workspaceSymbolProvider})}registerLanguageProvider(e){let t={provideWorkspaceSymbols:(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(n.WorkspaceSymbolRequest.type,{query:e},t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asSymbolInformations(e,t),e=>i.handleFailedRequest(n.WorkspaceSymbolRequest.type,t,e,null)),o=i.middleware;return o.provideWorkspaceSymbols?o.provideWorkspaceSymbols(e,t,r):r(e,t)},resolveWorkspaceSymbol:!0===e.resolveProvider?(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(n.WorkspaceSymbolResolveRequest.type,i.code2ProtocolConverter.asWorkspaceSymbol(e),t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asSymbolInformation(e),e=>i.handleFailedRequest(n.WorkspaceSymbolResolveRequest.type,t,e,null)),o=i.middleware;return o.resolveWorkspaceSymbol?o.resolveWorkspaceSymbol(e,t,r):r(e,t)}:void 0};return[r.languages.registerWorkspaceSymbolProvider(t),t]}}i.WorkspaceSymbolFeature=l},731340,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ReferencesFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.ReferencesRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"references").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.referencesProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideReferences:(e,t,i,r)=>{let o=this._client,s=(e,t,i,r)=>o.sendRequest(n.ReferencesRequest.type,o.code2ProtocolConverter.asReferenceParams(e,t,i),r).then(e=>r.isCancellationRequested?null:o.protocol2CodeConverter.asReferences(e,r),e=>o.handleFailedRequest(n.ReferencesRequest.type,r,e,null)),a=o.middleware;return a.provideReferences?a.provideReferences(e,t,i,r,s):s(e,t,i,r)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerReferenceProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.ReferencesFeature=a},709521,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.CodeActionFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(413807),s=e.r(165969);class a extends s.TextDocumentLanguageFeature{constructor(e){super(e,n.CodeActionRequest.type)}fillClientCapabilities(e){let t=(0,s.ensure)((0,s.ensure)(e,"textDocument"),"codeAction");t.dynamicRegistration=!0,t.isPreferredSupport=!0,t.disabledSupport=!0,t.dataSupport=!0,t.resolveSupport={properties:["edit"]},t.codeActionLiteralSupport={codeActionKind:{valueSet:[n.CodeActionKind.Empty,n.CodeActionKind.QuickFix,n.CodeActionKind.Refactor,n.CodeActionKind.RefactorExtract,n.CodeActionKind.RefactorInline,n.CodeActionKind.RefactorRewrite,n.CodeActionKind.Source,n.CodeActionKind.SourceOrganizeImports]}},t.honorsChangeAnnotations=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.codeActionProvider);i&&this.register({id:o.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideCodeActions:(e,t,i,r)=>{let o=this._client,s=async(e,t,i,r)=>{let s={textDocument:o.code2ProtocolConverter.asTextDocumentIdentifier(e),range:o.code2ProtocolConverter.asRange(t),context:o.code2ProtocolConverter.asCodeActionContextSync(i)};return o.sendRequest(n.CodeActionRequest.type,s,r).then(e=>r.isCancellationRequested||null==e?null:o.protocol2CodeConverter.asCodeActionResult(e,r),e=>o.handleFailedRequest(n.CodeActionRequest.type,r,e,null))},a=o.middleware;return a.provideCodeActions?a.provideCodeActions(e,t,i,r,s):s(e,t,i,r)},resolveCodeAction:e.resolveProvider?(e,t)=>{let i=this._client,r=this._client.middleware,o=async(e,t)=>i.sendRequest(n.CodeActionResolveRequest.type,i.code2ProtocolConverter.asCodeActionSync(e),t).then(r=>t.isCancellationRequested?e:i.protocol2CodeConverter.asCodeAction(r,t),r=>i.handleFailedRequest(n.CodeActionResolveRequest.type,t,r,e));return r.resolveCodeAction?r.resolveCodeAction(e,t,o):o(e,t)}:void 0};return[r.languages.registerCodeActionsProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i,e.codeActionKinds?{providedCodeActionKinds:this._client.protocol2CodeConverter.asCodeActionKinds(e.codeActionKinds)}:void 0),i]}}i.CodeActionFeature=a},751493,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.CodeLensFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(413807),s=e.r(165969);class a extends s.TextDocumentLanguageFeature{constructor(e){super(e,n.CodeLensRequest.type)}fillClientCapabilities(e){(0,s.ensure)((0,s.ensure)(e,"textDocument"),"codeLens").dynamicRegistration=!0,(0,s.ensure)((0,s.ensure)(e,"workspace"),"codeLens").refreshSupport=!0}initialize(e,t){this._client.onRequest(n.CodeLensRefreshRequest.type,async()=>{for(let e of this.getAllProviders())e.onDidChangeCodeLensEmitter.fire()});let i=this.getRegistrationOptions(t,e.codeLensProvider);i&&this.register({id:o.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i=new r.EventEmitter,o={onDidChangeCodeLenses:i.event,provideCodeLenses:(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(n.CodeLensRequest.type,i.code2ProtocolConverter.asCodeLensParams(e),t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asCodeLenses(e,t),e=>i.handleFailedRequest(n.CodeLensRequest.type,t,e,null)),o=i.middleware;return o.provideCodeLenses?o.provideCodeLenses(e,t,r):r(e,t)},resolveCodeLens:e.resolveProvider?(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(n.CodeLensResolveRequest.type,i.code2ProtocolConverter.asCodeLens(e),t).then(r=>t.isCancellationRequested?e:i.protocol2CodeConverter.asCodeLens(r),r=>i.handleFailedRequest(n.CodeLensResolveRequest.type,t,r,e)),o=i.middleware;return o.resolveCodeLens?o.resolveCodeLens(e,t,r):r(e,t)}:void 0};return[r.languages.registerCodeLensProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),o),{provider:o,onDidChangeCodeLensEmitter:i}]}}i.CodeLensFeature=a},881732,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.DocumentOnTypeFormattingFeature=i.DocumentRangeFormattingFeature=i.DocumentFormattingFeature=void 0;let n=e.r(663544),o=e.r(441296),s=e.r(413807),a=e.r(165969);(r||(r={})).fromConfiguration=function(e){let t=n.workspace.getConfiguration("files",e);return{trimTrailingWhitespace:t.get("trimTrailingWhitespace"),trimFinalNewlines:t.get("trimFinalNewlines"),insertFinalNewline:t.get("insertFinalNewline")}};class l extends a.TextDocumentLanguageFeature{constructor(e){super(e,o.DocumentFormattingRequest.type)}fillClientCapabilities(e){(0,a.ensure)((0,a.ensure)(e,"textDocument"),"formatting").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentFormattingProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideDocumentFormattingEdits:(e,t,i)=>{let n=this._client,s=(e,t,i)=>{let s={textDocument:n.code2ProtocolConverter.asTextDocumentIdentifier(e),options:n.code2ProtocolConverter.asFormattingOptions(t,r.fromConfiguration(e))};return n.sendRequest(o.DocumentFormattingRequest.type,s,i).then(e=>i.isCancellationRequested?null:n.protocol2CodeConverter.asTextEdits(e,i),e=>n.handleFailedRequest(o.DocumentFormattingRequest.type,i,e,null))},a=n.middleware;return a.provideDocumentFormattingEdits?a.provideDocumentFormattingEdits(e,t,i,s):s(e,t,i)}};return[n.languages.registerDocumentFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.DocumentFormattingFeature=l;class c extends a.TextDocumentLanguageFeature{constructor(e){super(e,o.DocumentRangeFormattingRequest.type)}fillClientCapabilities(e){let t=(0,a.ensure)((0,a.ensure)(e,"textDocument"),"rangeFormatting");t.dynamicRegistration=!0,t.rangesSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentRangeFormattingProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideDocumentRangeFormattingEdits:(e,t,i,n)=>{let s=this._client,a=(e,t,i,n)=>{let a={textDocument:s.code2ProtocolConverter.asTextDocumentIdentifier(e),range:s.code2ProtocolConverter.asRange(t),options:s.code2ProtocolConverter.asFormattingOptions(i,r.fromConfiguration(e))};return s.sendRequest(o.DocumentRangeFormattingRequest.type,a,n).then(e=>n.isCancellationRequested?null:s.protocol2CodeConverter.asTextEdits(e,n),e=>s.handleFailedRequest(o.DocumentRangeFormattingRequest.type,n,e,null))},l=s.middleware;return l.provideDocumentRangeFormattingEdits?l.provideDocumentRangeFormattingEdits(e,t,i,n,a):a(e,t,i,n)}};return e.rangesSupport&&(i.provideDocumentRangesFormattingEdits=(e,t,i,n)=>{let s=this._client,a=(e,t,i,n)=>{let a={textDocument:s.code2ProtocolConverter.asTextDocumentIdentifier(e),ranges:s.code2ProtocolConverter.asRanges(t),options:s.code2ProtocolConverter.asFormattingOptions(i,r.fromConfiguration(e))};return s.sendRequest(o.DocumentRangesFormattingRequest.type,a,n).then(e=>n.isCancellationRequested?null:s.protocol2CodeConverter.asTextEdits(e,n),e=>s.handleFailedRequest(o.DocumentRangesFormattingRequest.type,n,e,null))},l=s.middleware;return l.provideDocumentRangesFormattingEdits?l.provideDocumentRangesFormattingEdits(e,t,i,n,a):a(e,t,i,n)}),[n.languages.registerDocumentRangeFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.DocumentRangeFormattingFeature=c;class d extends a.TextDocumentLanguageFeature{constructor(e){super(e,o.DocumentOnTypeFormattingRequest.type)}fillClientCapabilities(e){(0,a.ensure)((0,a.ensure)(e,"textDocument"),"onTypeFormatting").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentOnTypeFormattingProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideOnTypeFormattingEdits:(e,t,i,n,s)=>{let a=this._client,l=(e,t,i,n,s)=>{let l={textDocument:a.code2ProtocolConverter.asTextDocumentIdentifier(e),position:a.code2ProtocolConverter.asPosition(t),ch:i,options:a.code2ProtocolConverter.asFormattingOptions(n,r.fromConfiguration(e))};return a.sendRequest(o.DocumentOnTypeFormattingRequest.type,l,s).then(e=>s.isCancellationRequested?null:a.protocol2CodeConverter.asTextEdits(e,s),e=>a.handleFailedRequest(o.DocumentOnTypeFormattingRequest.type,s,e,null))},c=a.middleware;return c.provideOnTypeFormattingEdits?c.provideOnTypeFormattingEdits(e,t,i,n,s,l):l(e,t,i,n,s)}},s=e.moreTriggerCharacter||[];return[n.languages.registerOnTypeFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i,e.firstTriggerCharacter,...s),i]}}i.DocumentOnTypeFormattingFeature=d},839656,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.RenameFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(413807),s=e.r(217405),a=e.r(165969);class l extends a.TextDocumentLanguageFeature{constructor(e){super(e,n.RenameRequest.type)}fillClientCapabilities(e){let t=(0,a.ensure)((0,a.ensure)(e,"textDocument"),"rename");t.dynamicRegistration=!0,t.prepareSupport=!0,t.prepareSupportDefaultBehavior=n.PrepareSupportDefaultBehavior.Identifier,t.honorsChangeAnnotations=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.renameProvider);i&&(s.boolean(e.renameProvider)&&(i.prepareProvider=!1),this.register({id:o.generateUuid(),registerOptions:i}))}registerLanguageProvider(e){let t=e.documentSelector,i={provideRenameEdits:(e,t,i,r)=>{let o=this._client,s=(e,t,i,r)=>{let s={textDocument:o.code2ProtocolConverter.asTextDocumentIdentifier(e),position:o.code2ProtocolConverter.asPosition(t),newName:i};return o.sendRequest(n.RenameRequest.type,s,r).then(e=>r.isCancellationRequested?null:o.protocol2CodeConverter.asWorkspaceEdit(e,r),e=>o.handleFailedRequest(n.RenameRequest.type,r,e,null,!1))},a=o.middleware;return a.provideRenameEdits?a.provideRenameEdits(e,t,i,r,s):s(e,t,i,r)},prepareRename:e.prepareProvider?(e,t,i)=>{let r=this._client,o=(e,t,i)=>{let o={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),position:r.code2ProtocolConverter.asPosition(t)};return r.sendRequest(n.PrepareRenameRequest.type,o,i).then(e=>i.isCancellationRequested?null:n.Range.is(e)?r.protocol2CodeConverter.asRange(e):this.isDefaultBehavior(e)?!0===e.defaultBehavior?null:Promise.reject(Error("The element can't be renamed.")):e&&n.Range.is(e.range)?{range:r.protocol2CodeConverter.asRange(e.range),placeholder:e.placeholder}:Promise.reject(Error("The element can't be renamed.")),e=>{if("string"==typeof e.message)throw Error(e.message);throw Error("The element can't be renamed.")})},s=r.middleware;return s.prepareRename?s.prepareRename(e,t,i,o):o(e,t,i)}:void 0};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerRenameProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}isDefaultBehavior(e){return e&&s.boolean(e.defaultBehavior)}}i.RenameFeature=l},609380,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DocumentLinkFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.DocumentLinkRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"documentLink");t.dynamicRegistration=!0,t.tooltipSupport=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.documentLinkProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideDocumentLinks:(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(n.DocumentLinkRequest.type,i.code2ProtocolConverter.asDocumentLinkParams(e),t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asDocumentLinks(e,t),e=>i.handleFailedRequest(n.DocumentLinkRequest.type,t,e,null)),o=i.middleware;return o.provideDocumentLinks?o.provideDocumentLinks(e,t,r):r(e,t)},resolveDocumentLink:e.resolveProvider?(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(n.DocumentLinkResolveRequest.type,i.code2ProtocolConverter.asDocumentLink(e),t).then(r=>t.isCancellationRequested?e:i.protocol2CodeConverter.asDocumentLink(r),r=>i.handleFailedRequest(n.DocumentLinkResolveRequest.type,t,r,e)),o=i.middleware;return o.resolveDocumentLink?o.resolveDocumentLink(e,t,r):r(e,t)}:void 0};return[r.languages.registerDocumentLinkProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.DocumentLinkFeature=a},15891,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ExecuteCommandFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(413807),s=e.r(165969);i.ExecuteCommandFeature=class{constructor(e){this._client=e,this._commands=new Map}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._commands.size>0}}get registrationType(){return n.ExecuteCommandRequest.type}fillClientCapabilities(e){(0,s.ensure)((0,s.ensure)(e,"workspace"),"executeCommand").dynamicRegistration=!0}initialize(e){e.executeCommandProvider&&this.register({id:o.generateUuid(),registerOptions:Object.assign({},e.executeCommandProvider)})}register(e){let t=this._client,i=t.middleware,o=(e,i)=>t.sendRequest(n.ExecuteCommandRequest.type,{command:e,arguments:i}).then(void 0,e=>t.handleFailedRequest(n.ExecuteCommandRequest.type,void 0,e,void 0));if(e.registerOptions.commands){let t=[];for(let n of e.registerOptions.commands)t.push(r.commands.registerCommand(n,(...e)=>i.executeCommand?i.executeCommand(n,e,o):o(n,e)));this._commands.set(e.id,t)}}unregister(e){let t=this._commands.get(e);t&&t.forEach(e=>e.dispose())}clear(){this._commands.forEach(e=>{e.forEach(e=>e.dispose())}),this._commands.clear()}}},398692,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.FileSystemWatcherFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);i.FileSystemWatcherFeature=class{constructor(e,t){this._client=e,this._notifyFileEvent=t,this._watchers=new Map}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._watchers.size>0}}get registrationType(){return n.DidChangeWatchedFilesNotification.type}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"workspace"),"didChangeWatchedFiles").dynamicRegistration=!0,(0,o.ensure)((0,o.ensure)(e,"workspace"),"didChangeWatchedFiles").relativePatternSupport=!0}initialize(e,t){}register(e){if(!Array.isArray(e.registerOptions.watchers))return;let t=[];for(let i of e.registerOptions.watchers){let e=this._client.protocol2CodeConverter.asGlobPattern(i.globPattern);if(void 0===e)continue;let o=!0,s=!0,a=!0;void 0!==i.kind&&null!==i.kind&&(o=(i.kind&n.WatchKind.Create)!=0,s=(i.kind&n.WatchKind.Change)!=0,a=(i.kind&n.WatchKind.Delete)!=0);let l=r.workspace.createFileSystemWatcher(e,!o,!s,!a);this.hookListeners(l,o,s,a,t),t.push(l)}this._watchers.set(e.id,t)}registerRaw(e,t){let i=[];for(let e of t)this.hookListeners(e,!0,!0,!0,i);this._watchers.set(e,i)}hookListeners(e,t,i,r,o){t&&e.onDidCreate(e=>this._notifyFileEvent({uri:this._client.code2ProtocolConverter.asUri(e),type:n.FileChangeType.Created}),null,o),i&&e.onDidChange(e=>this._notifyFileEvent({uri:this._client.code2ProtocolConverter.asUri(e),type:n.FileChangeType.Changed}),null,o),r&&e.onDidDelete(e=>this._notifyFileEvent({uri:this._client.code2ProtocolConverter.asUri(e),type:n.FileChangeType.Deleted}),null,o)}unregister(e){let t=this._watchers.get(e);if(t)for(let e of t)e.dispose()}clear(){this._watchers.forEach(e=>{for(let t of e)t.dispose()}),this._watchers.clear()}}},571328,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ColorProviderFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.DocumentColorRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"colorProvider").dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.colorProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i={provideColorPresentations:(e,t,i)=>{let r=this._client,o=(e,t,i)=>{let o={color:e,textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(t.document),range:r.code2ProtocolConverter.asRange(t.range)};return r.sendRequest(n.ColorPresentationRequest.type,o,i).then(e=>i.isCancellationRequested?null:this._client.protocol2CodeConverter.asColorPresentations(e,i),e=>r.handleFailedRequest(n.ColorPresentationRequest.type,i,e,null))},s=r.middleware;return s.provideColorPresentations?s.provideColorPresentations(e,t,i,o):o(e,t,i)},provideDocumentColors:(e,t)=>{let i=this._client,r=(e,t)=>{let r={textDocument:i.code2ProtocolConverter.asTextDocumentIdentifier(e)};return i.sendRequest(n.DocumentColorRequest.type,r,t).then(e=>t.isCancellationRequested?null:this._client.protocol2CodeConverter.asColorInformations(e,t),e=>i.handleFailedRequest(n.DocumentColorRequest.type,t,e,null))},o=i.middleware;return o.provideDocumentColors?o.provideDocumentColors(e,t,r):r(e,t)}};return[r.languages.registerColorProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.ColorProviderFeature=s},167690,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ImplementationFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.ImplementationRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"implementation");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.implementationProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i={provideImplementation:(e,t,i)=>{let r=this._client,o=(e,t,i)=>r.sendRequest(n.ImplementationRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDefinitionResult(e,i),e=>r.handleFailedRequest(n.ImplementationRequest.type,i,e,null)),s=r.middleware;return s.provideImplementation?s.provideImplementation(e,t,i,o):o(e,t,i)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerImplementationProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.ImplementationFeature=s},149172,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.TypeDefinitionFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.TypeDefinitionRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"typeDefinition").dynamicRegistration=!0;let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"typeDefinition");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.typeDefinitionProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i={provideTypeDefinition:(e,t,i)=>{let r=this._client,o=(e,t,i)=>r.sendRequest(n.TypeDefinitionRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDefinitionResult(e,i),e=>r.handleFailedRequest(n.TypeDefinitionRequest.type,i,e,null)),s=r.middleware;return s.provideTypeDefinition?s.provideTypeDefinition(e,t,i,o):o(e,t,i)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerTypeDefinitionProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.TypeDefinitionFeature=s},132575,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.WorkspaceFoldersFeature=i.arrayDiff=void 0;let r=e.r(413807),n=e.r(663544),o=e.r(441296);function s(e,t){if(null!=e)return e[t]}function a(e,t){return e.filter(e=>0>t.indexOf(e))}i.arrayDiff=a,i.WorkspaceFoldersFeature=class{constructor(e){this._client=e,this._listeners=new Map}getState(){return{kind:"workspace",id:this.registrationType.method,registrations:this._listeners.size>0}}get registrationType(){return o.DidChangeWorkspaceFoldersNotification.type}fillInitializeParams(e){let t=n.workspace.workspaceFolders;this.initializeWithFolders(t),void 0===t?e.workspaceFolders=null:e.workspaceFolders=t.map(e=>this.asProtocol(e))}initializeWithFolders(e){this._initialFolders=e}fillClientCapabilities(e){e.workspace=e.workspace||{},e.workspace.workspaceFolders=!0}initialize(e){let t,i=this._client;i.onRequest(o.WorkspaceFoldersRequest.type,e=>{let t=()=>{let e=n.workspace.workspaceFolders;return void 0===e?null:e.map(e=>this.asProtocol(e))},r=i.middleware.workspace;return r&&r.workspaceFolders?r.workspaceFolders(e,t):t(e)});let a=s(s(s(e,"workspace"),"workspaceFolders"),"changeNotifications");"string"==typeof a?t=a:!0===a&&(t=r.generateUuid()),t&&this.register({id:t,registerOptions:void 0})}sendInitialEvent(e){let t;if(this._initialFolders&&e){let i=a(this._initialFolders,e),r=a(e,this._initialFolders);(r.length>0||i.length>0)&&(t=this.doSendEvent(r,i))}else this._initialFolders?t=this.doSendEvent([],this._initialFolders):e&&(t=this.doSendEvent(e,[]));void 0!==t&&t.catch(e=>{this._client.error(`Sending notification ${o.DidChangeWorkspaceFoldersNotification.type.method} failed`,e)})}doSendEvent(e,t){let i={event:{added:e.map(e=>this.asProtocol(e)),removed:t.map(e=>this.asProtocol(e))}};return this._client.sendNotification(o.DidChangeWorkspaceFoldersNotification.type,i)}register(e){let t=e.id,i=this._client,r=n.workspace.onDidChangeWorkspaceFolders(e=>{let t=e=>this.doSendEvent(e.added,e.removed),r=i.middleware.workspace;(r&&r.didChangeWorkspaceFolders?r.didChangeWorkspaceFolders(e,t):t(e)).catch(e=>{this._client.error(`Sending notification ${o.DidChangeWorkspaceFoldersNotification.type.method} failed`,e)})});this._listeners.set(t,r),this.sendInitialEvent(n.workspace.workspaceFolders)}unregister(e){let t=this._listeners.get(e);void 0!==t&&(this._listeners.delete(e),t.dispose())}clear(){for(let e of this._listeners.values())e.dispose();this._listeners.clear()}asProtocol(e){return void 0===e?null:{uri:this._client.code2ProtocolConverter.asUri(e.uri),name:e.name}}}},868176,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.FoldingRangeFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.FoldingRangeRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"foldingRange");t.dynamicRegistration=!0,t.rangeLimit=5e3,t.lineFoldingOnly=!0,t.foldingRangeKind={valueSet:[n.FoldingRangeKind.Comment,n.FoldingRangeKind.Imports,n.FoldingRangeKind.Region]},t.foldingRange={collapsedText:!1},(0,o.ensure)((0,o.ensure)(e,"workspace"),"foldingRange").refreshSupport=!0}initialize(e,t){this._client.onRequest(n.FoldingRangeRefreshRequest.type,async()=>{for(let e of this.getAllProviders())e.onDidChangeFoldingRange.fire()});let[i,r]=this.getRegistration(t,e.foldingRangeProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i=new r.EventEmitter,o={onDidChangeFoldingRanges:i.event,provideFoldingRanges:(e,t,i)=>{let r=this._client,o=(e,t,i)=>{let o={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e)};return r.sendRequest(n.FoldingRangeRequest.type,o,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asFoldingRanges(e,i),e=>r.handleFailedRequest(n.FoldingRangeRequest.type,i,e,null))},s=r.middleware;return s.provideFoldingRanges?s.provideFoldingRanges(e,t,i,o):o(e,t,i)}};return[r.languages.registerFoldingRangeProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),o),{provider:o,onDidChangeFoldingRange:i}]}}i.FoldingRangeFeature=s},231044,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DeclarationFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.DeclarationRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"declaration");t.dynamicRegistration=!0,t.linkSupport=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.declarationProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i={provideDeclaration:(e,t,i)=>{let r=this._client,o=(e,t,i)=>r.sendRequest(n.DeclarationRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDeclarationResult(e,i),e=>r.handleFailedRequest(n.DeclarationRequest.type,i,e,null)),s=r.middleware;return s.provideDeclaration?s.provideDeclaration(e,t,i,o):o(e,t,i)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerDeclarationProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.DeclarationFeature=s},822883,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.SelectionRangeFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.SelectionRangeRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"selectionRange").dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.selectionRangeProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i={provideSelectionRanges:(e,t,i)=>{let r=this._client,o=async(e,t,i)=>{let o={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),positions:r.code2ProtocolConverter.asPositionsSync(t,i)};return r.sendRequest(n.SelectionRangeRequest.type,o,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asSelectionRanges(e,i),e=>r.handleFailedRequest(n.SelectionRangeRequest.type,i,e,null))},s=r.middleware;return s.provideSelectionRanges?s.provideSelectionRanges(e,t,i,o):o(e,t,i)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerSelectionRangeProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.SelectionRangeFeature=s},723215,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ProgressFeature=void 0;let r=e.r(441296),n=e.r(648481);i.ProgressFeature=class{constructor(e){this._client=e,this.activeParts=new Set}getState(){return{kind:"window",id:r.WorkDoneProgressCreateRequest.method,registrations:this.activeParts.size>0}}fillClientCapabilities(e){var t;(void 0===e[t="window"]&&(e[t]=Object.create(null)),e[t]).workDoneProgress=!0}initialize(){let e=this._client,t=e=>{this.activeParts.delete(e)},i=e=>{this.activeParts.add(new n.ProgressPart(this._client,e.token,t))};e.onRequest(r.WorkDoneProgressCreateRequest.type,i)}clear(){for(let e of this.activeParts)e.done();this.activeParts.clear()}}},755716,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.CallHierarchyFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s{constructor(e){this.client=e,this.middleware=e.middleware}prepareCallHierarchy(e,t,i){let r=this.client,o=this.middleware,s=(e,t,i)=>{let o=r.code2ProtocolConverter.asTextDocumentPositionParams(e,t);return r.sendRequest(n.CallHierarchyPrepareRequest.type,o,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asCallHierarchyItems(e,i),e=>r.handleFailedRequest(n.CallHierarchyPrepareRequest.type,i,e,null))};return o.prepareCallHierarchy?o.prepareCallHierarchy(e,t,i,s):s(e,t,i)}provideCallHierarchyIncomingCalls(e,t){let i=this.client,r=this.middleware,o=(e,t)=>{let r={item:i.code2ProtocolConverter.asCallHierarchyItem(e)};return i.sendRequest(n.CallHierarchyIncomingCallsRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asCallHierarchyIncomingCalls(e,t),e=>i.handleFailedRequest(n.CallHierarchyIncomingCallsRequest.type,t,e,null))};return r.provideCallHierarchyIncomingCalls?r.provideCallHierarchyIncomingCalls(e,t,o):o(e,t)}provideCallHierarchyOutgoingCalls(e,t){let i=this.client,r=this.middleware,o=(e,t)=>{let r={item:i.code2ProtocolConverter.asCallHierarchyItem(e)};return i.sendRequest(n.CallHierarchyOutgoingCallsRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asCallHierarchyOutgoingCalls(e,t),e=>i.handleFailedRequest(n.CallHierarchyOutgoingCallsRequest.type,t,e,null))};return r.provideCallHierarchyOutgoingCalls?r.provideCallHierarchyOutgoingCalls(e,t,o):o(e,t)}}class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.CallHierarchyPrepareRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"callHierarchy").dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.callHierarchyProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=new s(this._client);return[r.languages.registerCallHierarchyProvider(this._client.protocol2CodeConverter.asDocumentSelector(e.documentSelector),t),t]}}i.CallHierarchyFeature=a},483640,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.SemanticTokensFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(217405);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.SemanticTokensRegistrationType.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"semanticTokens");t.dynamicRegistration=!0,t.tokenTypes=[n.SemanticTokenTypes.namespace,n.SemanticTokenTypes.type,n.SemanticTokenTypes.class,n.SemanticTokenTypes.enum,n.SemanticTokenTypes.interface,n.SemanticTokenTypes.struct,n.SemanticTokenTypes.typeParameter,n.SemanticTokenTypes.parameter,n.SemanticTokenTypes.variable,n.SemanticTokenTypes.property,n.SemanticTokenTypes.enumMember,n.SemanticTokenTypes.event,n.SemanticTokenTypes.function,n.SemanticTokenTypes.method,n.SemanticTokenTypes.macro,n.SemanticTokenTypes.keyword,n.SemanticTokenTypes.modifier,n.SemanticTokenTypes.comment,n.SemanticTokenTypes.string,n.SemanticTokenTypes.number,n.SemanticTokenTypes.regexp,n.SemanticTokenTypes.operator,n.SemanticTokenTypes.decorator],t.tokenModifiers=[n.SemanticTokenModifiers.declaration,n.SemanticTokenModifiers.definition,n.SemanticTokenModifiers.readonly,n.SemanticTokenModifiers.static,n.SemanticTokenModifiers.deprecated,n.SemanticTokenModifiers.abstract,n.SemanticTokenModifiers.async,n.SemanticTokenModifiers.modification,n.SemanticTokenModifiers.documentation,n.SemanticTokenModifiers.defaultLibrary],t.formats=[n.TokenFormat.Relative],t.requests={range:!0,full:{delta:!0}},t.multilineTokenSupport=!1,t.overlappingTokenSupport=!1,t.serverCancelSupport=!0,t.augmentsSyntaxTokens=!0,(0,o.ensure)((0,o.ensure)(e,"workspace"),"semanticTokens").refreshSupport=!0}initialize(e,t){this._client.onRequest(n.SemanticTokensRefreshRequest.type,async()=>{for(let e of this.getAllProviders())e.onDidChangeSemanticTokensEmitter.fire()});let[i,r]=this.getRegistration(t,e.semanticTokensProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i=s.boolean(e.full)?e.full:void 0!==e.full,o=void 0!==e.full&&"boolean"!=typeof e.full&&!0===e.full.delta,a=new r.EventEmitter,l=i?{onDidChangeSemanticTokens:a.event,provideDocumentSemanticTokens:(e,t)=>{let i=this._client,r=i.middleware,o=(e,t)=>{let r={textDocument:i.code2ProtocolConverter.asTextDocumentIdentifier(e)};return i.sendRequest(n.SemanticTokensRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asSemanticTokens(e,t),e=>i.handleFailedRequest(n.SemanticTokensRequest.type,t,e,null))};return r.provideDocumentSemanticTokens?r.provideDocumentSemanticTokens(e,t,o):o(e,t)},provideDocumentSemanticTokensEdits:o?(e,t,i)=>{let r=this._client,o=r.middleware,s=(e,t,i)=>{let o={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),previousResultId:t};return r.sendRequest(n.SemanticTokensDeltaRequest.type,o,i).then(async e=>i.isCancellationRequested?null:n.SemanticTokens.is(e)?await r.protocol2CodeConverter.asSemanticTokens(e,i):await r.protocol2CodeConverter.asSemanticTokensEdits(e,i),e=>r.handleFailedRequest(n.SemanticTokensDeltaRequest.type,i,e,null))};return o.provideDocumentSemanticTokensEdits?o.provideDocumentSemanticTokensEdits(e,t,i,s):s(e,t,i)}:void 0}:void 0,c=!0===e.range?{provideDocumentRangeSemanticTokens:(e,t,i)=>{let r=this._client,o=r.middleware,s=(e,t,i)=>{let o={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),range:r.code2ProtocolConverter.asRange(t)};return r.sendRequest(n.SemanticTokensRangeRequest.type,o,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asSemanticTokens(e,i),e=>r.handleFailedRequest(n.SemanticTokensRangeRequest.type,i,e,null))};return o.provideDocumentRangeSemanticTokens?o.provideDocumentRangeSemanticTokens(e,t,i,s):s(e,t,i)}}:void 0,d=[],u=this._client,h=u.protocol2CodeConverter.asSemanticTokensLegend(e.legend),g=u.protocol2CodeConverter.asDocumentSelector(t);return void 0!==l&&d.push(r.languages.registerDocumentSemanticTokensProvider(g,l,h)),void 0!==c&&d.push(r.languages.registerDocumentRangeSemanticTokensProvider(g,c,h)),[new r.Disposable(()=>d.forEach(e=>e.dispose())),{range:c,full:l,onDidChangeSemanticTokensEmitter:a}]}}i.SemanticTokensFeature=a},583355,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.WillDeleteFilesFeature=i.WillRenameFilesFeature=i.WillCreateFilesFeature=i.DidDeleteFilesFeature=i.DidRenameFilesFeature=i.DidCreateFilesFeature=void 0;let r=e.r(663544),n=e.r(564461),o=e.r(441296),s=e.r(413807);function a(e,t){return void 0===e[t]&&(e[t]={}),e[t]}class l{constructor(e,t,i,r,n){this._client=e,this._event=t,this._registrationType=i,this._clientCapability=r,this._serverCapability=n,this._filters=new Map}getState(){return{kind:"workspace",id:this._registrationType.method,registrations:this._filters.size>0}}filterSize(){return this._filters.size}get registrationType(){return this._registrationType}fillClientCapabilities(e){var t;let i=a(a(e,"workspace"),"fileOperations");i.dynamicRegistration=!0,t=this._clientCapability,i[t]=!0}initialize(e){let t=e.workspace?.fileOperations,i=void 0!==t?t[this._serverCapability]:void 0;if(i?.filters!==void 0)try{this.register({id:s.generateUuid(),registerOptions:{filters:i.filters}})}catch(e){this._client.warn(`Ignoring invalid glob pattern for ${this._serverCapability} registration: ${e}`)}}register(e){this._listener||(this._listener=this._event(this.send,this));let t=e.registerOptions.filters.map(e=>{let t=new n.Minimatch(e.pattern.glob,l.asMinimatchOptions(e.pattern.options));if(!t.makeRe())throw Error(`Invalid pattern ${e.pattern.glob}!`);return{scheme:e.scheme,matcher:t,kind:e.pattern.matches}});this._filters.set(e.id,t)}unregister(e){this._filters.delete(e),0===this._filters.size&&this._listener&&(this._listener.dispose(),this._listener=void 0)}clear(){this._filters.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}getFileType(e){return l.getFileType(e)}async filter(e,t){let i=await Promise.all(e.files.map(async e=>{let i=t(e),n=i.fsPath.replace(/\\/g,"/");for(let e of this._filters.values())for(let t of e)if(void 0===t.scheme||t.scheme===i.scheme){if(t.matcher.match(n)){if(void 0===t.kind)return!0;let e=await this.getFileType(i);if(void 0===e)return this._client.error(`Failed to determine file type for ${i.toString()}.`),!0;if(e===r.FileType.File&&t.kind===o.FileOperationPatternKind.file||e===r.FileType.Directory&&t.kind===o.FileOperationPatternKind.folder)return!0}else if(t.kind===o.FileOperationPatternKind.folder&&await l.getFileType(i)===r.FileType.Directory&&t.matcher.match(`${n}/`))return!0}return!1})),n=e.files.filter((e,t)=>i[t]);return{...e,files:n}}static async getFileType(e){try{return(await r.workspace.fs.stat(e)).type}catch(e){return}}static asMinimatchOptions(e){let t={dot:!0};return e?.ignoreCase===!0&&(t.nocase=!0),t}}class c extends l{constructor(e,t,i,r,n,o,s){super(e,t,i,r,n),this._notificationType=i,this._accessUri=o,this._createParams=s}async send(e){let t=await this.filter(e,this._accessUri);if(t.files.length){let e=async e=>this._client.sendNotification(this._notificationType,this._createParams(e));return this.doSend(t,e)}}}class d extends c{constructor(){super(...arguments),this._fsPathFileTypes=new Map}async getFileType(e){let t=e.fsPath;if(this._fsPathFileTypes.has(t))return this._fsPathFileTypes.get(t);let i=await l.getFileType(e);return i&&this._fsPathFileTypes.set(t,i),i}async cacheFileTypes(e,t){await this.filter(e,t)}clearFileTypeCache(){this._fsPathFileTypes.clear()}unregister(e){super.unregister(e),0===this.filterSize()&&this._willListener&&(this._willListener.dispose(),this._willListener=void 0)}clear(){super.clear(),this._willListener&&(this._willListener.dispose(),this._willListener=void 0)}}i.DidCreateFilesFeature=class extends c{constructor(e){super(e,r.workspace.onDidCreateFiles,o.DidCreateFilesNotification.type,"didCreate","didCreate",e=>e,e.code2ProtocolConverter.asDidCreateFilesParams)}doSend(e,t){let i=this._client.middleware.workspace;return i?.didCreateFiles?i.didCreateFiles(e,t):t(e)}},i.DidRenameFilesFeature=class extends d{constructor(e){super(e,r.workspace.onDidRenameFiles,o.DidRenameFilesNotification.type,"didRename","didRename",e=>e.oldUri,e.code2ProtocolConverter.asDidRenameFilesParams)}register(e){this._willListener||(this._willListener=r.workspace.onWillRenameFiles(this.willRename,this)),super.register(e)}willRename(e){e.waitUntil(this.cacheFileTypes(e,e=>e.oldUri))}doSend(e,t){this.clearFileTypeCache();let i=this._client.middleware.workspace;return i?.didRenameFiles?i.didRenameFiles(e,t):t(e)}},i.DidDeleteFilesFeature=class extends d{constructor(e){super(e,r.workspace.onDidDeleteFiles,o.DidDeleteFilesNotification.type,"didDelete","didDelete",e=>e,e.code2ProtocolConverter.asDidDeleteFilesParams)}register(e){this._willListener||(this._willListener=r.workspace.onWillDeleteFiles(this.willDelete,this)),super.register(e)}willDelete(e){e.waitUntil(this.cacheFileTypes(e,e=>e))}doSend(e,t){this.clearFileTypeCache();let i=this._client.middleware.workspace;return i?.didDeleteFiles?i.didDeleteFiles(e,t):t(e)}};class u extends l{constructor(e,t,i,r,n,o,s){super(e,t,i,r,n),this._requestType=i,this._accessUri=o,this._createParams=s}async send(e){let t=this.waitUntil(e);e.waitUntil(t)}async waitUntil(e){let t=await this.filter(e,this._accessUri);if(t.files.length){let e=e=>this._client.sendRequest(this._requestType,this._createParams(e),e.token).then(this._client.protocol2CodeConverter.asWorkspaceEdit);return this.doSend(t,e)}}}i.WillCreateFilesFeature=class extends u{constructor(e){super(e,r.workspace.onWillCreateFiles,o.WillCreateFilesRequest.type,"willCreate","willCreate",e=>e,e.code2ProtocolConverter.asWillCreateFilesParams)}doSend(e,t){let i=this._client.middleware.workspace;return i?.willCreateFiles?i.willCreateFiles(e,t):t(e)}},i.WillRenameFilesFeature=class extends u{constructor(e){super(e,r.workspace.onWillRenameFiles,o.WillRenameFilesRequest.type,"willRename","willRename",e=>e.oldUri,e.code2ProtocolConverter.asWillRenameFilesParams)}doSend(e,t){let i=this._client.middleware.workspace;return i?.willRenameFiles?i.willRenameFiles(e,t):t(e)}},i.WillDeleteFilesFeature=class extends u{constructor(e){super(e,r.workspace.onWillDeleteFiles,o.WillDeleteFilesRequest.type,"willDelete","willDelete",e=>e,e.code2ProtocolConverter.asWillDeleteFilesParams)}doSend(e,t){let i=this._client.middleware.workspace;return i?.willDeleteFiles?i.willDeleteFiles(e,t):t(e)}}},590974,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.LinkedEditingFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.LinkedEditingRangeRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"linkedEditingRange").dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.linkedEditingRangeProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i={provideLinkedEditingRanges:(e,t,i)=>{let r=this._client,o=(e,t,i)=>r.sendRequest(n.LinkedEditingRangeRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asLinkedEditingRanges(e,i),e=>r.handleFailedRequest(n.LinkedEditingRangeRequest.type,i,e,null)),s=r.middleware;return s.provideLinkedEditingRange?s.provideLinkedEditingRange(e,t,i,o):o(e,t,i)}};return[this.registerProvider(t,i),i]}registerProvider(e,t){return r.languages.registerLinkedEditingRangeProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.LinkedEditingFeature=s},999322,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.TypeHierarchyFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s{constructor(e){this.client=e,this.middleware=e.middleware}prepareTypeHierarchy(e,t,i){let r=this.client,o=this.middleware,s=(e,t,i)=>{let o=r.code2ProtocolConverter.asTextDocumentPositionParams(e,t);return r.sendRequest(n.TypeHierarchyPrepareRequest.type,o,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asTypeHierarchyItems(e,i),e=>r.handleFailedRequest(n.TypeHierarchyPrepareRequest.type,i,e,null))};return o.prepareTypeHierarchy?o.prepareTypeHierarchy(e,t,i,s):s(e,t,i)}provideTypeHierarchySupertypes(e,t){let i=this.client,r=this.middleware,o=(e,t)=>{let r={item:i.code2ProtocolConverter.asTypeHierarchyItem(e)};return i.sendRequest(n.TypeHierarchySupertypesRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asTypeHierarchyItems(e,t),e=>i.handleFailedRequest(n.TypeHierarchySupertypesRequest.type,t,e,null))};return r.provideTypeHierarchySupertypes?r.provideTypeHierarchySupertypes(e,t,o):o(e,t)}provideTypeHierarchySubtypes(e,t){let i=this.client,r=this.middleware,o=(e,t)=>{let r={item:i.code2ProtocolConverter.asTypeHierarchyItem(e)};return i.sendRequest(n.TypeHierarchySubtypesRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asTypeHierarchyItems(e,t),e=>i.handleFailedRequest(n.TypeHierarchySubtypesRequest.type,t,e,null))};return r.provideTypeHierarchySubtypes?r.provideTypeHierarchySubtypes(e,t,o):o(e,t)}}class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.TypeHierarchyPrepareRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"typeHierarchy").dynamicRegistration=!0}initialize(e,t){let[i,r]=this.getRegistration(t,e.typeHierarchyProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=this._client,i=new s(t);return[r.languages.registerTypeHierarchyProvider(t.protocol2CodeConverter.asDocumentSelector(e.documentSelector),i),i]}}i.TypeHierarchyFeature=a},825212,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.InlineValueFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.InlineValueRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"inlineValue").dynamicRegistration=!0,(0,o.ensure)((0,o.ensure)(e,"workspace"),"inlineValue").refreshSupport=!0}initialize(e,t){this._client.onRequest(n.InlineValueRefreshRequest.type,async()=>{for(let e of this.getAllProviders())e.onDidChangeInlineValues.fire()});let[i,r]=this.getRegistration(t,e.inlineValueProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i=new r.EventEmitter,o={onDidChangeInlineValues:i.event,provideInlineValues:(e,t,i,r)=>{let o=this._client,s=(e,t,i,r)=>{let s={textDocument:o.code2ProtocolConverter.asTextDocumentIdentifier(e),range:o.code2ProtocolConverter.asRange(t),context:o.code2ProtocolConverter.asInlineValueContext(i)};return o.sendRequest(n.InlineValueRequest.type,s,r).then(e=>r.isCancellationRequested?null:o.protocol2CodeConverter.asInlineValues(e,r),e=>o.handleFailedRequest(n.InlineValueRequest.type,r,e,null))},a=o.middleware;return a.provideInlineValues?a.provideInlineValues(e,t,i,r,s):s(e,t,i,r)}};return[this.registerProvider(t,o),{provider:o,onDidChangeInlineValues:i}]}registerProvider(e,t){return r.languages.registerInlineValuesProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.InlineValueFeature=s},988814,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.InlayHintsFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969);class s extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.InlayHintRequest.type)}fillClientCapabilities(e){let t=(0,o.ensure)((0,o.ensure)(e,"textDocument"),"inlayHint");t.dynamicRegistration=!0,t.resolveSupport={properties:["tooltip","textEdits","label.tooltip","label.location","label.command"]},(0,o.ensure)((0,o.ensure)(e,"workspace"),"inlayHint").refreshSupport=!0}initialize(e,t){this._client.onRequest(n.InlayHintRefreshRequest.type,async()=>{for(let e of this.getAllProviders())e.onDidChangeInlayHints.fire()});let[i,r]=this.getRegistration(t,e.inlayHintProvider);i&&r&&this.register({id:i,registerOptions:r})}registerLanguageProvider(e){let t=e.documentSelector,i=new r.EventEmitter,o={onDidChangeInlayHints:i.event,provideInlayHints:(e,t,i)=>{let r=this._client,o=async(e,t,i)=>{let o={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),range:r.code2ProtocolConverter.asRange(t)};try{let e=await r.sendRequest(n.InlayHintRequest.type,o,i);if(i.isCancellationRequested)return null;return r.protocol2CodeConverter.asInlayHints(e,i)}catch(e){return r.handleFailedRequest(n.InlayHintRequest.type,i,e,null)}},s=r.middleware;return s.provideInlayHints?s.provideInlayHints(e,t,i,o):o(e,t,i)}};return o.resolveInlayHint=!0===e.resolveProvider?(e,t)=>{let i=this._client,r=async(e,t)=>{try{let r=await i.sendRequest(n.InlayHintResolveRequest.type,i.code2ProtocolConverter.asInlayHint(e),t);if(t.isCancellationRequested)return null;let o=i.protocol2CodeConverter.asInlayHint(r,t);return t.isCancellationRequested?null:o}catch(e){return i.handleFailedRequest(n.InlayHintResolveRequest.type,t,e,null)}},o=i.middleware;return o.resolveInlayHint?o.resolveInlayHint(e,t,r):r(e,t)}:void 0,[this.registerProvider(t,o),{provider:o,onDidChangeInlayHints:i}]}registerProvider(e,t){return r.languages.registerInlayHintsProvider(this._client.protocol2CodeConverter.asDocumentSelector(e),t)}}i.InlayHintsFeature=s},205135,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.InlineCompletionItemFeature=void 0;let r=e.r(663544),n=e.r(441296),o=e.r(165969),s=e.r(413807);class a extends o.TextDocumentLanguageFeature{constructor(e){super(e,n.InlineCompletionRequest.type)}fillClientCapabilities(e){(0,o.ensure)((0,o.ensure)(e,"textDocument"),"inlineCompletion").dynamicRegistration=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.inlineCompletionProvider);i&&this.register({id:s.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideInlineCompletionItems:(e,t,i,r)=>{let o=this._client,s=this._client.middleware,a=(e,t,i,r)=>o.sendRequest(n.InlineCompletionRequest.type,o.code2ProtocolConverter.asInlineCompletionParams(e,t,i),r).then(e=>r.isCancellationRequested?null:o.protocol2CodeConverter.asInlineCompletionResult(e,r),e=>o.handleFailedRequest(n.InlineCompletionRequest.type,r,e,null));return s.provideInlineCompletionItems?s.provideInlineCompletionItems(e,t,i,r,a):a(e,t,i,r)}};return[r.languages.registerInlineCompletionItemProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.InlineCompletionItemFeature=a},281859,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h,g,p,m,f,_;Object.defineProperty(i,"__esModule",{value:!0}),i.ProposedFeatures=i.BaseLanguageClient=i.MessageTransports=i.SuspendMode=i.State=i.CloseAction=i.ErrorAction=i.RevealOutputChannelOn=void 0;let y=e.r(663544),C=e.r(441296),S=e.r(743402),b=e.r(979417),w=e.r(217405),x=e.r(130354),D=e.r(413807),E=e.r(648481),k=e.r(165969),T=e.r(986131),R=e.r(628134),P=e.r(42305),I=e.r(802301),A=e.r(627932),M=e.r(712502),L=e.r(182409),F=e.r(661553),O=e.r(568942),N=e.r(775419),$=e.r(703750),H=e.r(731340),U=e.r(709521),W=e.r(751493),q=e.r(881732),j=e.r(839656),z=e.r(609380),K=e.r(15891),V=e.r(398692),B=e.r(571328),G=e.r(167690),Q=e.r(149172),J=e.r(132575),Y=e.r(868176),X=e.r(231044),Z=e.r(822883),ee=e.r(723215),et=e.r(755716),ei=e.r(483640),er=e.r(583355),en=e.r(590974),eo=e.r(999322),es=e.r(825212),ea=e.r(988814),el=e.r(205135);(h=r||(i.RevealOutputChannelOn=r={}))[h.Debug=0]="Debug",h[h.Info=1]="Info",h[h.Warn=2]="Warn",h[h.Error=3]="Error",h[h.Never=4]="Never",(g=n||(i.ErrorAction=n={}))[g.Continue=1]="Continue",g[g.Shutdown=2]="Shutdown",(p=o||(i.CloseAction=o={}))[p.DoNotRestart=1]="DoNotRestart",p[p.Restart=2]="Restart",(m=s||(i.State=s={}))[m.Stopped=1]="Stopped",m[m.Starting=3]="Starting",m[m.Running=2]="Running",(f=a||(i.SuspendMode=a={})).off="off",f.on="on",(l||(l={})).sanitizeIsTrusted=function(e){return null!=e&&!!("boolean"==typeof e||"object"==typeof e&&null!==e&&w.stringArray(e.enabledCommands))&&e};class ec{constructor(e,t){this.client=e,this.maxRestartCount=t,this.restarts=[]}error(e,t,i){return i&&i<=3?{action:n.Continue}:{action:n.Shutdown}}closed(){return(this.restarts.push(Date.now()),this.restarts.length<=this.maxRestartCount)?{action:o.Restart}:this.restarts[this.restarts.length-1]-this.restarts[0]<=18e4?{action:o.DoNotRestart,message:`The ${this.client.name} server crashed ${this.maxRestartCount+1} times in the last 3 minutes. The server will not be restarted. See the output for more information.`}:(this.restarts.shift(),{action:o.Restart})}}(_=c||(c={})).Initial="initial",_.Starting="starting",_.StartFailed="startFailed",_.Running="running",_.Stopping="stopping",_.Stopped="stopped",(d||(i.MessageTransports=d={})).is=function(e){return e&&C.MessageReader.is(e.reader)&&C.MessageWriter.is(e.writer)};class ed{constructor(e,t,i){this._traceFormat=C.TraceFormat.Text,this._diagnosticQueue=new Map,this._diagnosticQueueState={state:"idle"},this._features=[],this._dynamicFeatures=new Map,this.workspaceEditLock=new x.Semaphore(1),this._id=e,this._name=t;const n={isTrusted:!1,supportHtml:!1};void 0!==(i=i||{}).markdown&&(n.isTrusted=l.sanitizeIsTrusted(i.markdown.isTrusted),n.supportHtml=!0===i.markdown.supportHtml),this._clientOptions={documentSelector:i.documentSelector??[],synchronize:i.synchronize??{},diagnosticCollectionName:i.diagnosticCollectionName,outputChannelName:i.outputChannelName??this._name,revealOutputChannelOn:i.revealOutputChannelOn??r.Error,stdioEncoding:i.stdioEncoding??"utf8",initializationOptions:i.initializationOptions,initializationFailedHandler:i.initializationFailedHandler,progressOnInitialization:!!i.progressOnInitialization,errorHandler:i.errorHandler??this.createDefaultErrorHandler(i.connectionOptions?.maxRestartCount),middleware:i.middleware??{},uriConverters:i.uriConverters,workspaceFolder:i.workspaceFolder,connectionOptions:i.connectionOptions,markdown:n,diagnosticPullOptions:i.diagnosticPullOptions??{onChange:!0,onSave:!1},notebookDocumentOptions:i.notebookDocumentOptions??{}},this._clientOptions.synchronize=this._clientOptions.synchronize||{},this._state=c.Initial,this._ignoredRegistrations=new Set,this._listeners=[],this._notificationHandlers=new Map,this._pendingNotificationHandlers=new Map,this._notificationDisposables=new Map,this._requestHandlers=new Map,this._pendingRequestHandlers=new Map,this._requestDisposables=new Map,this._progressHandlers=new Map,this._pendingProgressHandlers=new Map,this._progressDisposables=new Map,this._connection=void 0,this._initializeResult=void 0,i.outputChannel?(this._outputChannel=i.outputChannel,this._disposeOutputChannel=!1):(this._outputChannel=void 0,this._disposeOutputChannel=!0),this._traceOutputChannel=i.traceOutputChannel,this._diagnostics=void 0,this._pendingOpenNotifications=new Set,this._pendingChangeSemaphore=new x.Semaphore(1),this._pendingChangeDelayer=new x.Delayer(250),this._fileEvents=[],this._fileEventDelayer=new x.Delayer(250),this._onStop=void 0,this._telemetryEmitter=new C.Emitter,this._stateChangeEmitter=new C.Emitter,this._trace=C.Trace.Off,this._tracer={log:(e,t)=>{w.string(e)?this.logTrace(e,t):this.logObjectTrace(e)}},this._c2p=S.createConverter(i.uriConverters?i.uriConverters.code2Protocol:void 0),this._p2c=b.createConverter(i.uriConverters?i.uriConverters.protocol2Code:void 0,this._clientOptions.markdown.isTrusted,this._clientOptions.markdown.supportHtml),this._syncedDocuments=new Map,this.registerBuiltinFeatures()}get name(){return this._name}get middleware(){return this._clientOptions.middleware??Object.create(null)}get clientOptions(){return this._clientOptions}get protocol2CodeConverter(){return this._p2c}get code2ProtocolConverter(){return this._c2p}get onTelemetry(){return this._telemetryEmitter.event}get onDidChangeState(){return this._stateChangeEmitter.event}get outputChannel(){return this._outputChannel||(this._outputChannel=y.window.createOutputChannel(this._clientOptions.outputChannelName?this._clientOptions.outputChannelName:this._name)),this._outputChannel}get traceOutputChannel(){return this._traceOutputChannel?this._traceOutputChannel:this.outputChannel}get diagnostics(){return this._diagnostics}get state(){return this.getPublicState()}get $state(){return this._state}set $state(e){let t=this.getPublicState();this._state=e;let i=this.getPublicState();i!==t&&this._stateChangeEmitter.fire({oldState:t,newState:i})}getPublicState(){switch(this.$state){case c.Starting:return s.Starting;case c.Running:return s.Running;default:return s.Stopped}}get initializeResult(){return this._initializeResult}async sendRequest(e,...t){if(this.$state===c.StartFailed||this.$state===c.Stopping||this.$state===c.Stopped)return Promise.reject(new C.ResponseError(C.ErrorCodes.ConnectionInactive,"Client is not running"));let i=await this.$start();this._didChangeTextDocumentFeature.syncKind===C.TextDocumentSyncKind.Full&&await this.sendPendingFullTextDocumentChanges(i);let r=this._clientOptions.middleware?.sendRequest;if(void 0===r)return i.sendRequest(e,...t);{let n,o;return 1===t.length?C.CancellationToken.is(t[0])?o=t[0]:n=t[0]:2===t.length&&(n=t[0],o=t[1]),r(e,n,o,(e,t,r)=>{let n=[];return void 0!==t&&n.push(t),void 0!==r&&n.push(r),i.sendRequest(e,...n)})}}onRequest(e,t){let i,r="string"==typeof e?e:e.method;this._requestHandlers.set(r,t);let n=this.activeConnection();return void 0!==n?(this._requestDisposables.set(r,n.onRequest(e,t)),i={dispose:()=>{let e=this._requestDisposables.get(r);void 0!==e&&(e.dispose(),this._requestDisposables.delete(r))}}):(this._pendingRequestHandlers.set(r,t),i={dispose:()=>{this._pendingRequestHandlers.delete(r);let e=this._requestDisposables.get(r);void 0!==e&&(e.dispose(),this._requestDisposables.delete(r))}}),{dispose:()=>{this._requestHandlers.delete(r),i.dispose()}}}async sendNotification(e,t){let i;if(this.$state===c.StartFailed||this.$state===c.Stopping||this.$state===c.Stopped)return Promise.reject(new C.ResponseError(C.ErrorCodes.ConnectionInactive,"Client is not running"));let r=this._didChangeTextDocumentFeature.syncKind===C.TextDocumentSyncKind.Full;r&&"string"!=typeof e&&e.method===C.DidOpenTextDocumentNotification.method&&(i=t?.textDocument.uri,this._pendingOpenNotifications.add(i));let n=await this.$start();r&&await this.sendPendingFullTextDocumentChanges(n),void 0!==i&&this._pendingOpenNotifications.delete(i);let o=this._clientOptions.middleware?.sendNotification;return o?o(e,n.sendNotification.bind(n),t):n.sendNotification(e,t)}onNotification(e,t){let i,r="string"==typeof e?e:e.method;this._notificationHandlers.set(r,t);let n=this.activeConnection();return void 0!==n?(this._notificationDisposables.set(r,n.onNotification(e,t)),i={dispose:()=>{let e=this._notificationDisposables.get(r);void 0!==e&&(e.dispose(),this._notificationDisposables.delete(r))}}):(this._pendingNotificationHandlers.set(r,t),i={dispose:()=>{this._pendingNotificationHandlers.delete(r);let e=this._notificationDisposables.get(r);void 0!==e&&(e.dispose(),this._notificationDisposables.delete(r))}}),{dispose:()=>{this._notificationHandlers.delete(r),i.dispose()}}}async sendProgress(e,t,i){if(this.$state===c.StartFailed||this.$state===c.Stopping||this.$state===c.Stopped)return Promise.reject(new C.ResponseError(C.ErrorCodes.ConnectionInactive,"Client is not running"));try{return(await this.$start()).sendProgress(e,t,i)}catch(e){throw this.error(`Sending progress for token ${t} failed.`,e),e}}onProgress(e,t,i){let r;this._progressHandlers.set(t,{type:e,handler:i});let n=this.activeConnection(),o=this._clientOptions.middleware?.handleWorkDoneProgress,s=C.WorkDoneProgress.is(e)&&void 0!==o?e=>{o(t,e,()=>i(e))}:i;return void 0!==n?(this._progressDisposables.set(t,n.onProgress(e,t,s)),r={dispose:()=>{let e=this._progressDisposables.get(t);void 0!==e&&(e.dispose(),this._progressDisposables.delete(t))}}):(this._pendingProgressHandlers.set(t,{type:e,handler:i}),r={dispose:()=>{this._pendingProgressHandlers.delete(t);let e=this._progressDisposables.get(t);void 0!==e&&(e.dispose(),this._progressDisposables.delete(t))}}),{dispose:()=>{this._progressHandlers.delete(t),r.dispose()}}}createDefaultErrorHandler(e){if(void 0!==e&&e<0)throw Error(`Invalid maxRestartCount: ${e}`);return new ec(this,e??4)}async setTrace(e){this._trace=e;let t=this.activeConnection();void 0!==t&&await t.trace(this._trace,this._tracer,{sendNotification:!1,traceFormat:this._traceFormat})}data2String(e){return e instanceof C.ResponseError?` Message: ${e.message}
43
+ Code: ${e.code} ${e.data?"\n"+e.data.toString():""}`:e instanceof Error?w.string(e.stack)?e.stack:e.message:w.string(e)?e:e.toString()}debug(e,t,i=!0){this.logOutputMessage(C.MessageType.Debug,r.Debug,"Debug",e,t,i)}info(e,t,i=!0){this.logOutputMessage(C.MessageType.Info,r.Info,"Info",e,t,i)}warn(e,t,i=!0){this.logOutputMessage(C.MessageType.Warning,r.Warn,"Warn",e,t,i)}error(e,t,i=!0){this.logOutputMessage(C.MessageType.Error,r.Error,"Error",e,t,i)}logOutputMessage(e,t,i,r,n,o){this.outputChannel.appendLine(`[${i.padEnd(5)} - ${new Date().toLocaleTimeString()}] ${r}`),null!=n&&this.outputChannel.appendLine(this.data2String(n)),("force"===o||o&&this._clientOptions.revealOutputChannelOn<=t)&&this.showNotificationMessage(e,r)}showNotificationMessage(e,t){t=t??"A request has failed. See the output for more information.",(e===C.MessageType.Error?y.window.showErrorMessage:e===C.MessageType.Warning?y.window.showWarningMessage:y.window.showInformationMessage)(t,"Go to output").then(e=>{void 0!==e&&this.outputChannel.show(!0)})}logTrace(e,t){this.traceOutputChannel.appendLine(`[Trace - ${new Date().toLocaleTimeString()}] ${e}`),t&&this.traceOutputChannel.appendLine(this.data2String(t))}logObjectTrace(e){e.isLSPMessage&&e.type?this.traceOutputChannel.append(`[LSP - ${new Date().toLocaleTimeString()}] `):this.traceOutputChannel.append(`[Trace - ${new Date().toLocaleTimeString()}] `),e&&this.traceOutputChannel.appendLine(`${JSON.stringify(e)}`)}needsStart(){return this.$state===c.Initial||this.$state===c.Stopping||this.$state===c.Stopped}needsStop(){return this.$state===c.Starting||this.$state===c.Running}activeConnection(){return this.$state===c.Running&&void 0!==this._connection?this._connection:void 0}isRunning(){return this.$state===c.Running}async start(){if("disposing"===this._disposed||"disposed"===this._disposed)throw Error("Client got disposed and can't be restarted.");if(this.$state===c.Stopping)throw Error("Client is currently stopping. Can only restart a full stopped client");if(void 0!==this._onStart)return this._onStart;let[e,t,i]=this.createOnStartPromise();for(let[t,i]of(this._onStart=e,void 0===this._diagnostics&&(this._diagnostics=this._clientOptions.diagnosticCollectionName?y.languages.createDiagnosticCollection(this._clientOptions.diagnosticCollectionName):y.languages.createDiagnosticCollection()),this._notificationHandlers))this._pendingNotificationHandlers.has(t)||this._pendingNotificationHandlers.set(t,i);for(let[e,t]of this._requestHandlers)this._pendingRequestHandlers.has(e)||this._pendingRequestHandlers.set(e,t);for(let[e,t]of this._progressHandlers)this._pendingProgressHandlers.has(e)||this._pendingProgressHandlers.set(e,t);this.$state=c.Starting;try{let e=await this.createConnection();e.onNotification(C.LogMessageNotification.type,e=>{switch(e.type){case C.MessageType.Error:this.error(e.message,void 0,!1);break;case C.MessageType.Warning:this.warn(e.message,void 0,!1);break;case C.MessageType.Info:this.info(e.message,void 0,!1);break;case C.MessageType.Debug:this.debug(e.message,void 0,!1);break;default:this.outputChannel.appendLine(e.message)}}),e.onNotification(C.ShowMessageNotification.type,e=>{switch(e.type){case C.MessageType.Error:y.window.showErrorMessage(e.message);break;case C.MessageType.Warning:y.window.showWarningMessage(e.message);break;case C.MessageType.Info:default:y.window.showInformationMessage(e.message)}}),e.onRequest(C.ShowMessageRequest.type,e=>{let t;switch(e.type){case C.MessageType.Error:t=y.window.showErrorMessage;break;case C.MessageType.Warning:t=y.window.showWarningMessage;break;case C.MessageType.Info:default:t=y.window.showInformationMessage}let i=e.actions||[];return t(e.message,...i)}),e.onNotification(C.TelemetryEventNotification.type,e=>{this._telemetryEmitter.fire(e)}),e.onRequest(C.ShowDocumentRequest.type,async e=>{let t=async e=>{let t=this.protocol2CodeConverter.asUri(e.uri);try{if(!0===e.external)return{success:await y.env.openExternal(t)};{let i={};return void 0!==e.selection&&(i.selection=this.protocol2CodeConverter.asRange(e.selection)),void 0===e.takeFocus||!1===e.takeFocus?i.preserveFocus=!0:!0===e.takeFocus&&(i.preserveFocus=!1),await y.window.showTextDocument(t,i),{success:!0}}}catch(e){return{success:!1}}},i=this._clientOptions.middleware.window?.showDocument;return void 0!==i?i(e,t):t(e)}),e.listen(),await this.initialize(e),t()}catch(e){this.$state=c.StartFailed,this.error(`${this._name} client: couldn't create connection to server.`,e,"force"),i(e)}return this._onStart}createOnStartPromise(){let e,t;return[new Promise((i,r)=>{e=i,t=r}),e,t]}async initialize(e){this.refreshTrace(e,!1);let t=this._clientOptions.initializationOptions,[i,r]=void 0!==this._clientOptions.workspaceFolder?[this._clientOptions.workspaceFolder.uri.fsPath,[{uri:this._c2p.asUri(this._clientOptions.workspaceFolder.uri),name:this._clientOptions.workspaceFolder.name}]]:[this._clientGetRootPath(),null],n={processId:null,clientInfo:{name:y.env.appName,version:y.version},locale:this.getLocale(),rootPath:i||null,rootUri:i?this._c2p.asUri(y.Uri.file(i)):null,capabilities:this.computeClientCapabilities(),initializationOptions:w.func(t)?t():t,trace:C.Trace.toString(this._trace),workspaceFolders:r};if(this.fillInitializeParams(n),!this._clientOptions.progressOnInitialization)return this.doInitialize(e,n);{let t=D.generateUuid(),i=new E.ProgressPart(e,t);n.workDoneToken=t;try{let t=await this.doInitialize(e,n);return i.done(),t}catch(e){throw i.cancel(),e}}}async doInitialize(e,t){try{let i,r=await e.initialize(t);if(void 0!==r.capabilities.positionEncoding&&r.capabilities.positionEncoding!==C.PositionEncodingKind.UTF16)throw Error(`Unsupported position encoding (${r.capabilities.positionEncoding}) received from server ${this.name}`);for(let[t,n]of(this._initializeResult=r,this.$state=c.Running,w.number(r.capabilities.textDocumentSync)?i=r.capabilities.textDocumentSync===C.TextDocumentSyncKind.None?{openClose:!1,change:C.TextDocumentSyncKind.None,save:void 0}:{openClose:!0,change:r.capabilities.textDocumentSync,save:{includeText:!1}}:void 0!==r.capabilities.textDocumentSync&&null!==r.capabilities.textDocumentSync&&(i=r.capabilities.textDocumentSync),this._capabilities=Object.assign({},r.capabilities,{resolvedTextDocumentSync:i}),e.onNotification(C.PublishDiagnosticsNotification.type,e=>this.handleDiagnostics(e)),e.onRequest(C.RegistrationRequest.type,e=>this.handleRegistrationRequest(e)),e.onRequest("client/registerFeature",e=>this.handleRegistrationRequest(e)),e.onRequest(C.UnregistrationRequest.type,e=>this.handleUnregistrationRequest(e)),e.onRequest("client/unregisterFeature",e=>this.handleUnregistrationRequest(e)),e.onRequest(C.ApplyWorkspaceEditRequest.type,e=>this.handleApplyWorkspaceEdit(e)),this._pendingNotificationHandlers))this._notificationDisposables.set(t,e.onNotification(t,n));for(let[t,i]of(this._pendingNotificationHandlers.clear(),this._pendingRequestHandlers))this._requestDisposables.set(t,e.onRequest(t,i));for(let[t,i]of(this._pendingRequestHandlers.clear(),this._pendingProgressHandlers))this._progressDisposables.set(t,e.onProgress(i.type,t,i.handler));return this._pendingProgressHandlers.clear(),await e.sendNotification(C.InitializedNotification.type,{}),this.hookFileEvents(e),this.hookConfigurationChanged(e),this.initializeFeatures(e),r}catch(t){throw this._clientOptions.initializationFailedHandler?this._clientOptions.initializationFailedHandler(t)?this.initialize(e):this.stop():t instanceof C.ResponseError&&t.data&&t.data.retry?y.window.showErrorMessage(t.message,{title:"Retry",id:"retry"}).then(t=>{t&&"retry"===t.id?this.initialize(e):this.stop()}):(t&&t.message&&y.window.showErrorMessage(t.message),this.error("Server initialization failed.",t),this.stop()),t}}_clientGetRootPath(){let e=y.workspace.workspaceFolders;if(!e||0===e.length)return;let t=e[0];if("file"===t.uri.scheme)return t.uri.fsPath}stop(e=2e3){return this.shutdown("stop",e)}dispose(e=2e3){try{return this._disposed="disposing",this.stop(e)}finally{this._disposed="disposed"}}async shutdown(e,t){if(this.$state===c.Stopped||this.$state===c.Initial)return;if(this.$state===c.Stopping)if(void 0!==this._onStop)return this._onStop;else throw Error("Client is stopping but no stop promise available.");let i=this.activeConnection();if(void 0===i||this.$state!==c.Running)throw Error(`Client is not running and can't be stopped. It's current state is: ${this.$state}`);this._initializeResult=void 0,this.$state=c.Stopping,this.cleanUp(e);let r=new Promise(e=>{(0,C.RAL)().timer.setTimeout(e,t)}),n=(async e=>(await e.shutdown(),await e.exit(),e))(i);return this._onStop=Promise.race([r,n]).then(e=>{if(void 0!==e)e.end(),e.dispose();else throw this.error("Stopping server timed out",void 0,!1),Error("Stopping the server timed out")},e=>{throw this.error("Stopping server failed",e,!1),e}).finally(()=>{this.$state=c.Stopped,"stop"===e&&this.cleanUpChannel(),this._onStart=void 0,this._onStop=void 0,this._connection=void 0,this._ignoredRegistrations.clear()})}cleanUp(e){for(let e of(this._fileEvents=[],this._fileEventDelayer.cancel(),this._listeners.splice(0,this._listeners.length)))e.dispose();for(let e of(this._syncedDocuments&&this._syncedDocuments.clear(),Array.from(this._features.entries()).map(e=>e[1]).reverse()))e.clear();"stop"===e&&void 0!==this._diagnostics&&(this._diagnostics.dispose(),this._diagnostics=void 0),void 0!==this._idleInterval&&(this._idleInterval.dispose(),this._idleInterval=void 0)}cleanUpChannel(){void 0!==this._outputChannel&&this._disposeOutputChannel&&(this._outputChannel.dispose(),this._outputChannel=void 0)}notifyFileEvent(e){let t=this;async function i(e){return t._fileEvents.push(e),t._fileEventDelayer.trigger(async()=>{await t.sendNotification(C.DidChangeWatchedFilesNotification.type,{changes:t._fileEvents}),t._fileEvents=[]})}let r=this.clientOptions.middleware?.workspace;(r?.didChangeWatchedFile?r.didChangeWatchedFile(e,i):i(e)).catch(e=>{t.error("Notify file events failed.",e)})}async sendPendingFullTextDocumentChanges(e){return this._pendingChangeSemaphore.lock(async()=>{try{let t=this._didChangeTextDocumentFeature.getPendingDocumentChanges(this._pendingOpenNotifications);if(0===t.length)return;for(let i of t){let t=this.code2ProtocolConverter.asChangeTextDocumentParams(i);await e.sendNotification(C.DidChangeTextDocumentNotification.type,t),this._didChangeTextDocumentFeature.notificationSent(i,C.DidChangeTextDocumentNotification.type,t)}}catch(e){throw this.error("Sending pending changes failed",e,!1),e}})}triggerPendingChangeDelivery(){this._pendingChangeDelayer.trigger(async()=>{let e=this.activeConnection();void 0===e?this.triggerPendingChangeDelivery():await this.sendPendingFullTextDocumentChanges(e)}).catch(e=>this.error("Delivering pending changes failed",e,!1))}handleDiagnostics(e){if(!this._diagnostics)return;let t=e.uri;"busy"===this._diagnosticQueueState.state&&this._diagnosticQueueState.document===t&&this._diagnosticQueueState.tokenSource.cancel(),this._diagnosticQueue.set(e.uri,e.diagnostics),this.triggerDiagnosticQueue()}triggerDiagnosticQueue(){(0,C.RAL)().timer.setImmediate(()=>{this.workDiagnosticQueue()})}workDiagnosticQueue(){if("busy"===this._diagnosticQueueState.state)return;let e=this._diagnosticQueue.entries().next();if(!0===e.done)return;let[t,i]=e.value;this._diagnosticQueue.delete(t);let r=new y.CancellationTokenSource;this._diagnosticQueueState={state:"busy",document:t,tokenSource:r},this._p2c.asDiagnostics(i,r.token).then(e=>{if(!r.token.isCancellationRequested){let i=this._p2c.asUri(t),r=this.clientOptions.middleware;r.handleDiagnostics?r.handleDiagnostics(i,e,(e,t)=>this.setDiagnostics(e,t)):this.setDiagnostics(i,e)}}).finally(()=>{this._diagnosticQueueState={state:"idle"},this.triggerDiagnosticQueue()})}setDiagnostics(e,t){this._diagnostics&&this._diagnostics.set(e,t)}getLocale(){return y.env.language}async $start(){if(this.$state===c.StartFailed)throw Error("Previous start failed. Can't restart server.");await this.start();let e=this.activeConnection();if(void 0===e)throw Error("Starting server failed");return e}async createConnection(){var e,t,i,r,n;let o,s,a=(e,t,i)=>{this.handleConnectionError(e,t,i).catch(e=>this.error("Handling connection error failed",e))},l=()=>{this.handleConnectionClosed().catch(e=>this.error("Handling connection close failed",e))},c=await this.createMessageTransports(this._clientOptions.stdioEncoding||"utf8");return this._connection=(e=c.reader,t=c.writer,i=a,r=l,n=this._clientOptions.connectionOptions,o=new eu,(s=(0,C.createProtocolConnection)(e,t,o,n)).onError(e=>{i(e[0],e[1],e[2])}),s.onClose(r),{listen:()=>s.listen(),sendRequest:s.sendRequest,onRequest:s.onRequest,hasPendingResponse:s.hasPendingResponse,sendNotification:s.sendNotification,onNotification:s.onNotification,onProgress:s.onProgress,sendProgress:s.sendProgress,trace:(e,t,i)=>{let r={sendNotification:!1,traceFormat:C.TraceFormat.Text};return void 0===i?s.trace(e,t,r):(w.boolean(i),s.trace(e,t,i))},initialize:e=>s.sendRequest(C.InitializeRequest.type,e),shutdown:()=>s.sendRequest(C.ShutdownRequest.type,void 0),exit:()=>s.sendNotification(C.ExitNotification.type),end:()=>s.end(),dispose:()=>s.dispose()}),this._connection}async handleConnectionClosed(){if(this.$state===c.Stopped)return;try{void 0!==this._connection&&this._connection.dispose()}catch(e){}let e={action:o.DoNotRestart};if(this.$state!==c.Stopping)try{e=await this._clientOptions.errorHandler.closed()}catch(e){}this._connection=void 0,e.action===o.DoNotRestart?(this.error(e.message??"Connection to server got closed. Server will not be restarted.",void 0,!0!==e.handled&&"force"),this.cleanUp("stop"),this.$state===c.Starting?this.$state=c.StartFailed:this.$state=c.Stopped,this._onStop=Promise.resolve(),this._onStart=void 0):e.action===o.Restart&&(this.info(e.message??"Connection to server got closed. Server will restart.",!e.handled),this.cleanUp("restart"),this.$state=c.Initial,this._onStop=Promise.resolve(),this._onStart=void 0,this.start().catch(e=>this.error("Restarting server failed",e,"force")))}async handleConnectionError(e,t,i){let r=await this._clientOptions.errorHandler.error(e,t,i);r.action===n.Shutdown?(this.error(r.message??`Client ${this._name}: connection to server is erroring.
44
+ ${e.message}
45
+ Shutting down server.`,void 0,!0!==r.handled&&"force"),this.stop().catch(e=>{this.error("Stopping server failed",e,!1)})):this.error(r.message??`Client ${this._name}: connection to server is erroring.
46
+ ${e.message}`,void 0,!0!==r.handled&&"force")}hookConfigurationChanged(e){this._listeners.push(y.workspace.onDidChangeConfiguration(()=>{this.refreshTrace(e,!0)}))}refreshTrace(e,t=!1){let i=y.workspace.getConfiguration(this._id),r=C.Trace.Off,n=C.TraceFormat.Text;if(i){let e=i.get("trace.server","off");"string"==typeof e?r=C.Trace.fromString(e):(r=C.Trace.fromString(i.get("trace.server.verbosity","off")),n=C.TraceFormat.fromString(i.get("trace.server.format","text")))}this._trace=r,this._traceFormat=n,e.trace(this._trace,this._tracer,{sendNotification:t,traceFormat:this._traceFormat}).catch(e=>{this.error("Updating trace failed with error",e,!1)})}hookFileEvents(e){let t,i=this._clientOptions.synchronize.fileEvents;!i||(t=w.array(i)?i:[i])&&this._dynamicFeatures.get(C.DidChangeWatchedFilesNotification.type.method).registerRaw(D.generateUuid(),t)}registerFeatures(e){for(let t of e)this.registerFeature(t)}registerFeature(e){if(this._features.push(e),k.DynamicFeature.is(e)){let t=e.registrationType;this._dynamicFeatures.set(t.method,e)}}getFeature(e){return this._dynamicFeatures.get(e)}hasDedicatedTextSynchronizationFeature(e){let t=this.getFeature(C.NotebookDocumentSyncRegistrationType.method);return void 0!==t&&t instanceof R.NotebookDocumentSyncFeature&&t.handles(e)}registerBuiltinFeatures(){let e=new Map;this.registerFeature(new P.ConfigurationFeature(this)),this.registerFeature(new I.DidOpenTextDocumentFeature(this,this._syncedDocuments)),this._didChangeTextDocumentFeature=new I.DidChangeTextDocumentFeature(this,e),this._didChangeTextDocumentFeature.onPendingChangeAdded(()=>{this.triggerPendingChangeDelivery()}),this.registerFeature(this._didChangeTextDocumentFeature),this.registerFeature(new I.WillSaveFeature(this)),this.registerFeature(new I.WillSaveWaitUntilFeature(this)),this.registerFeature(new I.DidSaveTextDocumentFeature(this)),this.registerFeature(new I.DidCloseTextDocumentFeature(this,this._syncedDocuments,e)),this.registerFeature(new V.FileSystemWatcherFeature(this,e=>this.notifyFileEvent(e))),this.registerFeature(new A.CompletionItemFeature(this)),this.registerFeature(new M.HoverFeature(this)),this.registerFeature(new F.SignatureHelpFeature(this)),this.registerFeature(new L.DefinitionFeature(this)),this.registerFeature(new H.ReferencesFeature(this)),this.registerFeature(new O.DocumentHighlightFeature(this)),this.registerFeature(new N.DocumentSymbolFeature(this)),this.registerFeature(new $.WorkspaceSymbolFeature(this)),this.registerFeature(new U.CodeActionFeature(this)),this.registerFeature(new W.CodeLensFeature(this)),this.registerFeature(new q.DocumentFormattingFeature(this)),this.registerFeature(new q.DocumentRangeFormattingFeature(this)),this.registerFeature(new q.DocumentOnTypeFormattingFeature(this)),this.registerFeature(new j.RenameFeature(this)),this.registerFeature(new z.DocumentLinkFeature(this)),this.registerFeature(new K.ExecuteCommandFeature(this)),this.registerFeature(new P.SyncConfigurationFeature(this)),this.registerFeature(new Q.TypeDefinitionFeature(this)),this.registerFeature(new G.ImplementationFeature(this)),this.registerFeature(new B.ColorProviderFeature(this)),void 0===this.clientOptions.workspaceFolder&&this.registerFeature(new J.WorkspaceFoldersFeature(this)),this.registerFeature(new Y.FoldingRangeFeature(this)),this.registerFeature(new X.DeclarationFeature(this)),this.registerFeature(new Z.SelectionRangeFeature(this)),this.registerFeature(new ee.ProgressFeature(this)),this.registerFeature(new et.CallHierarchyFeature(this)),this.registerFeature(new ei.SemanticTokensFeature(this)),this.registerFeature(new en.LinkedEditingFeature(this)),this.registerFeature(new er.DidCreateFilesFeature(this)),this.registerFeature(new er.DidRenameFilesFeature(this)),this.registerFeature(new er.DidDeleteFilesFeature(this)),this.registerFeature(new er.WillCreateFilesFeature(this)),this.registerFeature(new er.WillRenameFilesFeature(this)),this.registerFeature(new er.WillDeleteFilesFeature(this)),this.registerFeature(new eo.TypeHierarchyFeature(this)),this.registerFeature(new es.InlineValueFeature(this)),this.registerFeature(new ea.InlayHintsFeature(this)),this.registerFeature(new T.DiagnosticFeature(this)),this.registerFeature(new R.NotebookDocumentSyncFeature(this))}registerProposedFeatures(){this.registerFeatures(u.createAll(this))}fillInitializeParams(e){for(let t of this._features)w.func(t.fillInitializeParams)&&t.fillInitializeParams(e)}computeClientCapabilities(){let e={};(0,k.ensure)(e,"workspace").applyEdit=!0;let t=(0,k.ensure)((0,k.ensure)(e,"workspace"),"workspaceEdit");t.documentChanges=!0,t.resourceOperations=[C.ResourceOperationKind.Create,C.ResourceOperationKind.Rename,C.ResourceOperationKind.Delete],t.failureHandling=C.FailureHandlingKind.TextOnlyTransactional,t.normalizesLineEndings=!0,t.changeAnnotationSupport={groupsOnLabel:!0};let i=(0,k.ensure)((0,k.ensure)(e,"textDocument"),"publishDiagnostics");i.relatedInformation=!0,i.versionSupport=!1,i.tagSupport={valueSet:[C.DiagnosticTag.Unnecessary,C.DiagnosticTag.Deprecated]},i.codeDescriptionSupport=!0,i.dataSupport=!0;let r=(0,k.ensure)(e,"window");(0,k.ensure)(r,"showMessage").messageActionItem={additionalPropertiesSupport:!0},(0,k.ensure)(r,"showDocument").support=!0;let n=(0,k.ensure)(e,"general");for(let t of(n.staleRequestSupport={cancel:!0,retryOnContentModified:Array.from(ed.RequestsToCancelOnContentModified)},n.regularExpressions={engine:"ECMAScript",version:"ES2020"},n.markdown={parser:"marked",version:"1.1.0"},n.positionEncodings=["utf-16"],this._clientOptions.markdown.supportHtml&&(n.markdown.allowedTags=["ul","li","p","code","blockquote","ol","h1","h2","h3","h4","h5","h6","hr","em","pre","table","thead","tbody","tr","th","td","div","del","a","strong","br","img","span"]),this._features))t.fillClientCapabilities(e);return e}initializeFeatures(e){let t=this._clientOptions.documentSelector;for(let e of this._features)w.func(e.preInitialize)&&e.preInitialize(this._capabilities,t);for(let e of this._features)e.initialize(this._capabilities,t)}async handleRegistrationRequest(e){let t=this.clientOptions.middleware?.handleRegisterCapability;return t?t(e,e=>this.doRegisterCapability(e)):this.doRegisterCapability(e)}async doRegisterCapability(e){if(!this.isRunning()){for(let t of e.registrations)this._ignoredRegistrations.add(t.id);return}for(let t of e.registrations){let e=this._dynamicFeatures.get(t.method);if(void 0===e)return Promise.reject(Error(`No feature implementation for ${t.method} found. Registration failed.`));let i=t.registerOptions??{};i.documentSelector=i.documentSelector??this._clientOptions.documentSelector;let r={id:t.id,registerOptions:i};try{e.register(r)}catch(e){return Promise.reject(e)}}}async handleUnregistrationRequest(e){let t=this.clientOptions.middleware?.handleUnregisterCapability;return t?t(e,e=>this.doUnregisterCapability(e)):this.doUnregisterCapability(e)}async doUnregisterCapability(e){for(let t of e.unregisterations){if(this._ignoredRegistrations.has(t.id))continue;let e=this._dynamicFeatures.get(t.method);if(!e)return Promise.reject(Error(`No feature implementation for ${t.method} found. Unregistration failed.`));e.unregister(t.id)}}async handleApplyWorkspaceEdit(e){let t=e.edit,i=await this.workspaceEditLock.lock(()=>this._p2c.asWorkspaceEdit(t)),r=new Map;y.workspace.textDocuments.forEach(e=>r.set(e.uri.toString(),e));let n=!1;if(t.documentChanges){for(let e of t.documentChanges)if(C.TextDocumentEdit.is(e)&&e.textDocument.version&&e.textDocument.version>=0){let t=this._p2c.asUri(e.textDocument.uri).toString(),i=r.get(t);if(i&&i.version!==e.textDocument.version){n=!0;break}}}return n?Promise.resolve({applied:!1}):w.asPromise(y.workspace.applyEdit(i).then(e=>({applied:e})))}handleFailedRequest(e,t,i,r,n=!0){if(i instanceof C.ResponseError){if(i.code===C.ErrorCodes.PendingResponseRejected||i.code===C.ErrorCodes.ConnectionInactive)return r;if(i.code===C.LSPErrorCodes.RequestCancelled||i.code===C.LSPErrorCodes.ServerCancelled)if(void 0!==t&&t.isCancellationRequested)return r;else if(void 0!==i.data)throw new k.LSPCancellationError(i.data);else throw new y.CancellationError;if(i.code===C.LSPErrorCodes.ContentModified)if(!(ed.RequestsToCancelOnContentModified.has(e.method)||ed.CancellableResolveCalls.has(e.method)))return r;else throw new y.CancellationError}throw this.error(`Request ${e.method} failed.`,i,n),i}}i.BaseLanguageClient=ed,ed.RequestsToCancelOnContentModified=new Set([C.SemanticTokensRequest.method,C.SemanticTokensRangeRequest.method,C.SemanticTokensDeltaRequest.method]),ed.CancellableResolveCalls=new Set([C.CompletionResolveRequest.method,C.CodeLensResolveRequest.method,C.CodeActionResolveRequest.method,C.InlayHintResolveRequest.method,C.DocumentLinkResolveRequest.method,C.WorkspaceSymbolResolveRequest.method]);class eu{error(e){(0,C.RAL)().console.error(e)}warn(e){(0,C.RAL)().console.warn(e)}info(e){(0,C.RAL)().console.info(e)}log(e){(0,C.RAL)().console.log(e)}}(u||(i.ProposedFeatures=u={})).createAll=function(e){return[new el.InlineCompletionItemFeature(e)]}},484871,(e,t,i)=>{"use strict";var r=e.e&&e.e.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=e.e&&e.e.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(i,"__esModule",{value:!0}),i.DiagnosticPullMode=i.vsdiag=void 0,n(e.r(441296),i),n(e.r(165969),i);var o=e.r(986131);Object.defineProperty(i,"vsdiag",{enumerable:!0,get:function(){return o.vsdiag}}),Object.defineProperty(i,"DiagnosticPullMode",{enumerable:!0,get:function(){return o.DiagnosticPullMode}}),n(e.r(281859),i)},443484,(e,t,i)=>{"use strict";t.exports=e.r(441296)},179718,(e,t,i)=>{"use strict";var r=e.e&&e.e.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=e.e&&e.e.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(i,"__esModule",{value:!0}),i.LanguageClient=void 0;let o=e.r(484871),s=e.r(443484);n(e.r(443484),i),n(e.r(484871),i);class a extends o.BaseLanguageClient{constructor(e,t,i,r){super(e,t,i),this.worker=r}createMessageTransports(e){return Promise.resolve({reader:new s.BrowserMessageReader(this.worker),writer:new s.BrowserMessageWriter(this.worker)})}}i.LanguageClient=a},185966,(e,t,i)=>{"use strict";t.exports=e.r(179718)},310336,e=>{e.q("/_next/static/media/editor.worker.0ffjdaaj15t6e.js")},969663,e=>{e.q("/_next/static/media/extensionHost.worker.14sz5xf8-1efr.js")},859546,e=>{e.q("/_next/static/media/worker.081j0x4avp1l1.js")},406346,(e,t,i)=>{"use strict";function r(e){return"string"==typeof e||e instanceof String}function n(e){return Array.isArray(e)}Object.defineProperty(i,"__esModule",{value:!0}),i.stringArray=i.array=i.func=i.error=i.number=i.string=i.boolean=void 0,i.boolean=function(e){return!0===e||!1===e},i.string=r,i.number=function(e){return"number"==typeof e||e instanceof Number},i.error=function(e){return e instanceof Error},i.func=function(e){return"function"==typeof e},i.array=n,i.stringArray=function(e){return n(e)&&e.every(e=>r(e))}},257425,(e,t,i)=>{"use strict";var r,n,o,s;Object.defineProperty(i,"__esModule",{value:!0}),i.Message=i.NotificationType9=i.NotificationType8=i.NotificationType7=i.NotificationType6=i.NotificationType5=i.NotificationType4=i.NotificationType3=i.NotificationType2=i.NotificationType1=i.NotificationType0=i.NotificationType=i.RequestType9=i.RequestType8=i.RequestType7=i.RequestType6=i.RequestType5=i.RequestType4=i.RequestType3=i.RequestType2=i.RequestType1=i.RequestType=i.RequestType0=i.AbstractMessageSignature=i.ParameterStructures=i.ResponseError=i.ErrorCodes=void 0;let a=e.r(406346);(o=r||(i.ErrorCodes=r={})).ParseError=-32700,o.InvalidRequest=-32600,o.MethodNotFound=-32601,o.InvalidParams=-32602,o.InternalError=-32603,o.jsonrpcReservedErrorRangeStart=-32099,o.serverErrorStart=-32099,o.MessageWriteError=-32099,o.MessageReadError=-32098,o.PendingResponseRejected=-32097,o.ConnectionInactive=-32096,o.ServerNotInitialized=-32002,o.UnknownErrorCode=-32001,o.jsonrpcReservedErrorRangeEnd=-32e3,o.serverErrorEnd=-32e3;class l extends Error{constructor(e,t,i){super(t),this.code=a.number(e)?e:r.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,l.prototype)}toJson(){let e={code:this.code,message:this.message};return void 0!==this.data&&(e.data=this.data),e}}i.ResponseError=l;class c{constructor(e){this.kind=e}static is(e){return e===c.auto||e===c.byName||e===c.byPosition}toString(){return this.kind}}i.ParameterStructures=c,c.auto=new c("auto"),c.byPosition=new c("byPosition"),c.byName=new c("byName");class d{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return c.auto}}i.AbstractMessageSignature=d,i.RequestType0=class extends d{constructor(e){super(e,0)}},i.RequestType=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.RequestType1=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.RequestType2=class extends d{constructor(e){super(e,2)}},i.RequestType3=class extends d{constructor(e){super(e,3)}},i.RequestType4=class extends d{constructor(e){super(e,4)}},i.RequestType5=class extends d{constructor(e){super(e,5)}},i.RequestType6=class extends d{constructor(e){super(e,6)}},i.RequestType7=class extends d{constructor(e){super(e,7)}},i.RequestType8=class extends d{constructor(e){super(e,8)}},i.RequestType9=class extends d{constructor(e){super(e,9)}},i.NotificationType=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.NotificationType0=class extends d{constructor(e){super(e,0)}},i.NotificationType1=class extends d{constructor(e,t=c.auto){super(e,1),this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}},i.NotificationType2=class extends d{constructor(e){super(e,2)}},i.NotificationType3=class extends d{constructor(e){super(e,3)}},i.NotificationType4=class extends d{constructor(e){super(e,4)}},i.NotificationType5=class extends d{constructor(e){super(e,5)}},i.NotificationType6=class extends d{constructor(e){super(e,6)}},i.NotificationType7=class extends d{constructor(e){super(e,7)}},i.NotificationType8=class extends d{constructor(e){super(e,8)}},i.NotificationType9=class extends d{constructor(e){super(e,9)}},(s=n||(i.Message=n={})).isRequest=function(e){return e&&a.string(e.method)&&(a.string(e.id)||a.number(e.id))},s.isNotification=function(e){return e&&a.string(e.method)&&void 0===e.id},s.isResponse=function(e){return e&&(void 0!==e.result||!!e.error)&&(a.string(e.id)||a.number(e.id)||null===e.id)}},869991,(e,t,i)=>{"use strict";var r,n,o;Object.defineProperty(i,"__esModule",{value:!0}),i.LRUCache=i.LinkedMap=i.Touch=void 0,(o=n||(i.Touch=n={})).None=0,o.First=1,o.AsOld=o.First,o.Last=2,o.AsNew=o.Last;class s{constructor(){this[r]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(e){return this._map.has(e)}get(e,t=n.None){let i=this._map.get(e);if(i)return t!==n.None&&this.touch(i,t),i.value}set(e,t,i=n.None){let r=this._map.get(e);if(r)r.value=t,i!==n.None&&this.touch(r,i);else{switch(r={key:e,value:t,next:void 0,previous:void 0},i){case n.None:this.addItemLast(r);break;case n.First:this.addItemFirst(r);break;case n.Last:default:this.addItemLast(r)}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let i=this._state,r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==i)throw Error("LinkedMap got modified during iteration.");r=r.next}}keys(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.key,done:!1};return t=t.next,e}}};return i}values(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:t.value,done:!1};return t=t.next,e}}};return i}entries(){let e=this._state,t=this._head,i={[Symbol.iterator]:()=>i,next:()=>{if(this._state!==e)throw Error("LinkedMap got modified during iteration.");if(!t)return{value:void 0,done:!0};{let e={value:[t.key,t.value],done:!1};return t=t.next,e}}};return i}[(r=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(0===e)return void this.clear();let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(this._head||this._tail)if(this._head)e.next=this._head,this._head.previous=e;else throw Error("Invalid list");else this._tail=e;this._head=e,this._state++}addItemLast(e){if(this._head||this._tail)if(this._tail)e.previous=this._tail,this._tail.next=e;else throw Error("Invalid list");else this._head=e;this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,i=e.previous;if(!t||!i)throw Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw Error("Invalid list");if(t===n.First||t===n.Last){if(t===n.First){if(e===this._head)return;let t=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(t.previous=i,i.next=t),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===n.Last){if(e===this._tail)return;let t=e.next,i=e.previous;e===this._head?(t.previous=void 0,this._head=t):(t.previous=i,i.next=t),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){for(let[t,i]of(this.clear(),e))this.set(t,i)}}i.LinkedMap=s,i.LRUCache=class extends s{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=n.AsNew){return super.get(e,t)}peek(e){return super.get(e,n.None)}set(e,t){return super.set(e,t,n.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}},763636,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.Disposable=void 0,(r||(i.Disposable=r={})).create=function(e){return{dispose:e}}},540958,(e,t,i)=>{"use strict";let r;function n(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(i,"__esModule",{value:!0}),(n||(n={})).install=function(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e},i.default=n},907260,(e,t,i)=>{"use strict";var r,n;let o;Object.defineProperty(i,"__esModule",{value:!0}),i.Emitter=i.Event=void 0;let s=e.r(540958);n=r||(i.Event=r={}),o={dispose(){}},n.None=function(){return o};class a{add(e,t=null,i){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(i)&&i.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let i=!1;for(let r=0,n=this._callbacks.length;r<n;r++)if(this._callbacks[r]===e)if(this._contexts[r]===t){this._callbacks.splice(r,1),this._contexts.splice(r,1);return}else i=!0;if(i)throw Error("When adding a listener with a context, you should remove it with the same context")}invoke(...e){if(!this._callbacks)return[];let t=[],i=this._callbacks.slice(0),r=this._contexts.slice(0);for(let n=0,o=i.length;n<o;n++)try{t.push(i[n].apply(r[n],e))}catch(e){(0,s.default)().console.error(e)}return t}isEmpty(){return!this._callbacks||0===this._callbacks.length}dispose(){this._callbacks=void 0,this._contexts=void 0}}class l{constructor(e){this._options=e}get event(){return this._event||(this._event=(e,t,i)=>{this._callbacks||(this._callbacks=new a),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let r={dispose:()=>{this._callbacks&&(this._callbacks.remove(e,t),r.dispose=l._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(i)&&i.push(r),r}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}}i.Emitter=l,l._noop=function(){}},686787,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.CancellationTokenSource=i.CancellationToken=void 0;let o=e.r(540958),s=e.r(406346),a=e.r(907260);(n=r||(i.CancellationToken=r={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.Event.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:a.Event.None}),n.is=function(e){return e&&(e===n.None||e===n.Cancelled||s.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)};let l=Object.freeze(function(e,t){let i=(0,o.default)().timer.setTimeout(e.bind(t),0);return{dispose(){i.dispose()}}});class c{constructor(){this._isCancelled=!1}cancel(){!this._isCancelled&&(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?l:(this._emitter||(this._emitter=new a.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}}i.CancellationTokenSource=class{get token(){return this._token||(this._token=new c),this._token}cancel(){this._token?this._token.cancel():this._token=r.Cancelled}dispose(){this._token?this._token instanceof c&&this._token.dispose():this._token=r.None}}},593876,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.SharedArrayReceiverStrategy=i.SharedArraySenderStrategy=void 0;let o=e.r(686787);(n=r||(r={})).Continue=0,n.Cancelled=1,i.SharedArraySenderStrategy=class{constructor(){this.buffers=new Map}enableCancellation(e){if(null===e.id)return;let t=new SharedArrayBuffer(4);new Int32Array(t,0,1)[0]=r.Continue,this.buffers.set(e.id,t),e.$cancellationData=t}async sendCancellation(e,t){let i=this.buffers.get(t);if(void 0===i)return;let n=new Int32Array(i,0,1);Atomics.store(n,0,r.Cancelled)}cleanup(e){this.buffers.delete(e)}dispose(){this.buffers.clear()}};class s{constructor(e){this.data=new Int32Array(e,0,1)}get isCancellationRequested(){return Atomics.load(this.data,0)===r.Cancelled}get onCancellationRequested(){throw Error("Cancellation over SharedArrayBuffer doesn't support cancellation events")}}class a{constructor(e){this.token=new s(e)}cancel(){}dispose(){}}i.SharedArrayReceiverStrategy=class{constructor(){this.kind="request"}createCancellationTokenSource(e){let t=e.$cancellationData;return void 0===t?new o.CancellationTokenSource:new a(t)}}},578915,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.Semaphore=void 0;let r=e.r(540958);i.Semaphore=class{constructor(e=1){if(e<=0)throw Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,i)=>{this._waiting.push({thunk:e,resolve:t,reject:i}),this.runNext()})}get active(){return this._active}runNext(){0!==this._waiting.length&&this._active!==this._capacity&&(0,r.default)().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(0===this._waiting.length||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(t=>{this._active--,e.resolve(t),this.runNext()},t=>{this._active--,e.reject(t),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}}},57485,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.ReadableStreamMessageReader=i.AbstractMessageReader=i.MessageReader=void 0;let o=e.r(540958),s=e.r(406346),a=e.r(907260),l=e.r(578915);(r||(i.MessageReader=r={})).is=function(e){return e&&s.func(e.listen)&&s.func(e.dispose)&&s.func(e.onError)&&s.func(e.onClose)&&s.func(e.onPartialMessage)};class c{constructor(){this.errorEmitter=new a.Emitter,this.closeEmitter=new a.Emitter,this.partialMessageEmitter=new a.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:Error(`Reader received error. Reason: ${s.string(e.message)?e.message:"unknown"}`)}}i.AbstractMessageReader=c,(n||(n={})).fromOptions=function(e){let t,i,r,n=new Map,s=new Map;if(void 0===e||"string"==typeof e)t=e??"utf-8";else{if(t=e.charset??"utf-8",void 0!==e.contentDecoder&&(i=e.contentDecoder,n.set(i.name,i)),void 0!==e.contentDecoders)for(let t of e.contentDecoders)n.set(t.name,t);if(void 0!==e.contentTypeDecoder&&(r=e.contentTypeDecoder,s.set(r.name,r)),void 0!==e.contentTypeDecoders)for(let t of e.contentTypeDecoders)s.set(t.name,t)}return void 0===r&&(r=(0,o.default)().applicationJson.decoder,s.set(r.name,r)),{charset:t,contentDecoder:i,contentDecoders:n,contentTypeDecoder:r,contentTypeDecoders:s}},i.ReadableStreamMessageReader=class extends c{constructor(e,t){super(),this.readable=e,this.options=n.fromOptions(t),this.buffer=(0,o.default)().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0,this.readSemaphore=new l.Semaphore(1)}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(e=>{this.onData(e)});return this.readable.onError(e=>this.fireError(e)),this.readable.onClose(()=>this.fireClose()),t}onData(e){try{for(this.buffer.append(e);;){if(-1===this.nextMessageLength){let e=this.buffer.tryReadHeaders(!0);if(!e)return;let t=e.get("content-length");if(!t)return void this.fireError(Error(`Header must provide a Content-Length property.
47
+ ${JSON.stringify(Object.fromEntries(e))}`));let i=parseInt(t);if(isNaN(i))return void this.fireError(Error(`Content-Length value must be a number. Got ${t}`));this.nextMessageLength=i}let e=this.buffer.tryReadBody(this.nextMessageLength);if(void 0===e)return void this.setPartialMessageTimer();this.clearPartialMessageTimer(),this.nextMessageLength=-1,this.readSemaphore.lock(async()=>{let t=void 0!==this.options.contentDecoder?await this.options.contentDecoder.decode(e):e,i=await this.options.contentTypeDecoder.decode(t,this.options);this.callback(i)}).catch(e=>{this.fireError(e)})}}catch(e){this.fireError(e)}}clearPartialMessageTimer(){this.partialMessageTimer&&(this.partialMessageTimer.dispose(),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),this._partialMessageTimeout<=0||(this.partialMessageTimer=(0,o.default)().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}}},34572,(e,t,i)=>{"use strict";var r,n;Object.defineProperty(i,"__esModule",{value:!0}),i.WriteableStreamMessageWriter=i.AbstractMessageWriter=i.MessageWriter=void 0;let o=e.r(540958),s=e.r(406346),a=e.r(578915),l=e.r(907260);(r||(i.MessageWriter=r={})).is=function(e){return e&&s.func(e.dispose)&&s.func(e.onClose)&&s.func(e.onError)&&s.func(e.write)};class c{constructor(){this.errorEmitter=new l.Emitter,this.closeEmitter=new l.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,i){this.errorEmitter.fire([this.asError(e),t,i])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:Error(`Writer received error. Reason: ${s.string(e.message)?e.message:"unknown"}`)}}i.AbstractMessageWriter=c,(n||(n={})).fromOptions=function(e){return void 0===e||"string"==typeof e?{charset:e??"utf-8",contentTypeEncoder:(0,o.default)().applicationJson.encoder}:{charset:e.charset??"utf-8",contentEncoder:e.contentEncoder,contentTypeEncoder:e.contentTypeEncoder??(0,o.default)().applicationJson.encoder}},i.WriteableStreamMessageWriter=class extends c{constructor(e,t){super(),this.writable=e,this.options=n.fromOptions(t),this.errorCount=0,this.writeSemaphore=new a.Semaphore(1),this.writable.onError(e=>this.fireError(e)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(e=>void 0!==this.options.contentEncoder?this.options.contentEncoder.encode(e):e).then(t=>{let i=[];return i.push("Content-Length: ",t.byteLength.toString(),"\r\n"),i.push("\r\n"),this.doWrite(e,i,t)},e=>{throw this.fireError(e),e}))}async doWrite(e,t,i){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(i)}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}}},454166,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.AbstractMessageBuffer=void 0,i.AbstractMessageBuffer=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t="string"==typeof e?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(e=!1){if(0===this._chunks.length)return;let t=0,i=0,r=0,n=0;e:for(;i<this._chunks.length;){let e=this._chunks[i];for(r=0;r<e.length;){switch(e[r]){case 13:switch(t){case 0:t=1;break;case 2:t=3;break;default:t=0}break;case 10:switch(t){case 1:t=2;break;case 3:t=4,r++;break e;default:t=0}break;default:t=0}r++}n+=e.byteLength,i++}if(4!==t)return;let o=this._read(n+r),s=new Map,a=this.toString(o,"ascii").split("\r\n");if(a.length<2)return s;for(let t=0;t<a.length-2;t++){let i=a[t],r=i.indexOf(":");if(-1===r)throw Error(`Message header must separate key and value using ':'
48
+ ${i}`);let n=i.substr(0,r),o=i.substr(r+1).trim();s.set(e?n.toLowerCase():n,o)}return s}tryReadBody(e){if(!(this._totalLength<e))return this._read(e)}get numberOfBytes(){return this._totalLength}_read(e){if(0===e)return this.emptyBuffer();if(e>this._totalLength)throw Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let t=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(t)}if(this._chunks[0].byteLength>e){let t=this._chunks[0],i=this.asNative(t,e);return this._chunks[0]=t.slice(e),this._totalLength-=e,i}let t=this.allocNative(e),i=0;for(;e>0;){let r=this._chunks[0];if(r.byteLength>e){let n=r.slice(0,e);t.set(n,i),i+=e,this._chunks[0]=r.slice(e),this._totalLength-=e,e-=e}else t.set(r,i),i+=r.byteLength,this._chunks.shift(),this._totalLength-=r.byteLength,e-=r.byteLength}return t}}},971320,(e,t,i)=>{"use strict";var r,n,o,s,a,l,c,d,u,h,g,p,m,f,_,y,C,S,b,w,x,D,E,k,T,R,P,I,A;Object.defineProperty(i,"__esModule",{value:!0}),i.createMessageConnection=i.ConnectionOptions=i.MessageStrategy=i.CancellationStrategy=i.CancellationSenderStrategy=i.CancellationReceiverStrategy=i.RequestCancellationReceiverStrategy=i.IdCancellationReceiverStrategy=i.ConnectionStrategy=i.ConnectionError=i.ConnectionErrors=i.LogTraceNotification=i.SetTraceNotification=i.TraceFormat=i.TraceValues=i.Trace=i.NullLogger=i.ProgressType=i.ProgressToken=void 0;let M=e.r(540958),L=e.r(406346),F=e.r(257425),O=e.r(869991),N=e.r(907260),$=e.r(686787);(r||(r={})).type=new F.NotificationType("$/cancelRequest"),(n||(i.ProgressToken=n={})).is=function(e){return"string"==typeof e||"number"==typeof e},(o||(o={})).type=new F.NotificationType("$/progress"),i.ProgressType=class{},(s||(s={})).is=function(e){return L.func(e)},i.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}}),(w=a||(i.Trace=a={}))[w.Off=0]="Off",w[w.Messages=1]="Messages",w[w.Compact=2]="Compact",w[w.Verbose=3]="Verbose",(x=l||(i.TraceValues=l={})).Off="off",x.Messages="messages",x.Compact="compact",x.Verbose="verbose",(D=a||(i.Trace=a={})).fromString=function(e){if(!L.string(e))return D.Off;switch(e=e.toLowerCase()){case"off":default:return D.Off;case"messages":return D.Messages;case"compact":return D.Compact;case"verbose":return D.Verbose}},D.toString=function(e){switch(e){case D.Off:return"off";case D.Messages:return"messages";case D.Compact:return"compact";case D.Verbose:return"verbose";default:return"off"}},(E=c||(i.TraceFormat=c={})).Text="text",E.JSON="json",(k=c||(i.TraceFormat=c={})).fromString=function(e){return L.string(e)&&"json"===(e=e.toLowerCase())?k.JSON:k.Text},(d||(i.SetTraceNotification=d={})).type=new F.NotificationType("$/setTrace"),(u||(i.LogTraceNotification=u={})).type=new F.NotificationType("$/logTrace"),(T=h||(i.ConnectionErrors=h={}))[T.Closed=1]="Closed",T[T.Disposed=2]="Disposed",T[T.AlreadyListening=3]="AlreadyListening";class H extends Error{constructor(e,t){super(t),this.code=e,Object.setPrototypeOf(this,H.prototype)}}i.ConnectionError=H,(g||(i.ConnectionStrategy=g={})).is=function(e){return e&&L.func(e.cancelUndispatched)},(p||(i.IdCancellationReceiverStrategy=p={})).is=function(e){return e&&(void 0===e.kind||"id"===e.kind)&&L.func(e.createCancellationTokenSource)&&(void 0===e.dispose||L.func(e.dispose))},(m||(i.RequestCancellationReceiverStrategy=m={})).is=function(e){return e&&"request"===e.kind&&L.func(e.createCancellationTokenSource)&&(void 0===e.dispose||L.func(e.dispose))},(R=f||(i.CancellationReceiverStrategy=f={})).Message=Object.freeze({createCancellationTokenSource:e=>new $.CancellationTokenSource}),R.is=function(e){return p.is(e)||m.is(e)},(P=_||(i.CancellationSenderStrategy=_={})).Message=Object.freeze({sendCancellation:(e,t)=>e.sendNotification(r.type,{id:t}),cleanup(e){}}),P.is=function(e){return e&&L.func(e.sendCancellation)&&L.func(e.cleanup)},(I=y||(i.CancellationStrategy=y={})).Message=Object.freeze({receiver:f.Message,sender:_.Message}),I.is=function(e){return e&&f.is(e.receiver)&&_.is(e.sender)},(C||(i.MessageStrategy=C={})).is=function(e){return e&&L.func(e.handleMessage)},(S||(i.ConnectionOptions=S={})).is=function(e){return e&&(y.is(e.cancellationStrategy)||g.is(e.connectionStrategy)||C.is(e.messageStrategy))},(A=b||(b={}))[A.New=1]="New",A[A.Listening=2]="Listening",A[A.Closed=3]="Closed",A[A.Disposed=4]="Disposed",i.createMessageConnection=function(e,t,l,g){let m,f,_,S,w=void 0!==l?l:i.NullLogger,x=0,D=0,E=0,k=new Map,T=new Map,R=new Map,P=new O.LinkedMap,I=new Map,A=new Set,U=new Map,W=a.Off,q=c.Text,j=b.New,z=new N.Emitter,K=new N.Emitter,V=new N.Emitter,B=new N.Emitter,G=new N.Emitter,Q=g&&g.cancellationStrategy?g.cancellationStrategy:y.Message;function J(e){if(null===e)throw Error("Can't send requests with id null since the response can't be correlated.");return"req-"+e.toString()}function Y(e){}function X(){return j===b.Listening}function Z(){return j===b.Closed}function ee(){return j===b.Disposed}function et(){(j===b.New||j===b.Listening)&&(j=b.Closed,K.fire(void 0))}function ei(e){F.Message.isRequest(e)?function(e){let i,r;if(ee())return;function n(i,r,n){let o={jsonrpc:"2.0",id:e.id};i instanceof F.ResponseError?o.error=i.toJson():o.result=void 0===i?null:i,eo(o,r,n),t.write(o).catch(()=>w.error("Sending response failed."))}function o(i,r,n){let o={jsonrpc:"2.0",id:e.id,error:i.toJson()};eo(o,r,n),t.write(o).catch(()=>w.error("Sending response failed."))}var s,l,d=e;if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&d.params&&(e=`Params: ${en(d.params)}
49
+
50
+ `),f.log(`Received request '${d.method} - (${d.id})'.`,e)}else ea("receive-request",d);let u=k.get(e.method);u&&(i=u.type,r=u.handler);let h=Date.now();if(r||_){let a=e.id??String(Date.now()),c=p.is(Q.receiver)?Q.receiver.createCancellationTokenSource(a):Q.receiver.createCancellationTokenSource(e);null!==e.id&&A.has(e.id)&&c.cancel(),null!==e.id&&U.set(a,c);try{let d;if(r)if(void 0===e.params){if(void 0!==i&&0!==i.numberOfParams)return void o(new F.ResponseError(F.ErrorCodes.InvalidParams,`Request ${e.method} defines ${i.numberOfParams} params but received none.`),e.method,h);d=r(c.token)}else if(Array.isArray(e.params)){if(void 0!==i&&i.parameterStructures===F.ParameterStructures.byName)return void o(new F.ResponseError(F.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by name but received parameters by position`),e.method,h);d=r(...e.params,c.token)}else{if(void 0!==i&&i.parameterStructures===F.ParameterStructures.byPosition)return void o(new F.ResponseError(F.ErrorCodes.InvalidParams,`Request ${e.method} defines parameters by position but received parameters by name`),e.method,h);d=r(e.params,c.token)}else _&&(d=_(e.method,e.params,c.token));let u=d;if(d)u.then?u.then(t=>{U.delete(a),n(t,e.method,h)},t=>{U.delete(a),t instanceof F.ResponseError?o(t,e.method,h):t&&L.string(t.message)?o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}):(U.delete(a),n(d,e.method,h));else{let i;U.delete(a),s=d,l=e.method,void 0===s&&(s=null),i={jsonrpc:"2.0",id:e.id,result:s},eo(i,l,h),t.write(i).catch(()=>w.error("Sending response failed."))}}catch(t){U.delete(a),t instanceof F.ResponseError?n(t,e.method,h):t&&L.string(t.message)?o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):o(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}}else o(new F.ResponseError(F.ErrorCodes.MethodNotFound,`Unhandled method ${e.method}`),e.method,h)}(e):F.Message.isNotification(e)?function(e){let t,i;if(!ee()){if(e.method===r.type.method){let t=e.params.id;A.delete(t),es(e);return}{let r=T.get(e.method);r&&(t=r.handler,i=r.type)}if(t||S)try{if(es(e),t)if(void 0===e.params)void 0!==i&&0!==i.numberOfParams&&i.parameterStructures!==F.ParameterStructures.byName&&w.error(`Notification ${e.method} defines ${i.numberOfParams} params but received none.`),t();else if(Array.isArray(e.params)){let r=e.params;e.method===o.type.method&&2===r.length&&n.is(r[0])?t({token:r[0],value:r[1]}):(void 0!==i&&(i.parameterStructures===F.ParameterStructures.byName&&w.error(`Notification ${e.method} defines parameters by name but received parameters by position`),i.numberOfParams!==e.params.length&&w.error(`Notification ${e.method} defines ${i.numberOfParams} params but received ${r.length} arguments`)),t(...r))}else void 0!==i&&i.parameterStructures===F.ParameterStructures.byPosition&&w.error(`Notification ${e.method} defines parameters by position but received parameters by name`),t(e.params);else S&&S(e.method,e.params)}catch(t){t.message?w.error(`Notification handler '${e.method}' failed with message: ${t.message}`):w.error(`Notification handler '${e.method}' failed unexpectedly.`)}else V.fire(e)}}(e):F.Message.isResponse(e)?function(e){if(!ee())if(null===e.id)e.error?w.error(`Received response message without id: Error is:
51
+ ${JSON.stringify(e.error,void 0,4)}`):w.error("Received response message without id. No further error information provided.");else{let t=e.id,i=I.get(t);if(function(e,t){if(W!==a.Off&&f)if(q===c.Text){let i;if((W===a.Verbose||W===a.Compact)&&(e.error&&e.error.data?i=`Error data: ${en(e.error.data)}
52
+
53
+ `:e.result?i=`Result: ${en(e.result)}
54
+
55
+ `:void 0===e.error&&(i="No result returned.\n\n")),t){let r=e.error?` Request failed: ${e.error.message} (${e.error.code}).`:"";f.log(`Received response '${t.method} - (${e.id})' in ${Date.now()-t.timerStart}ms.${r}`,i)}else f.log(`Received response ${e.id} without active response promise.`,i)}else ea("receive-response",e)}(e,i),void 0!==i){I.delete(t);try{if(e.error){let t=e.error;i.reject(new F.ResponseError(t.code,t.message,t.data))}else if(void 0!==e.result)i.resolve(e.result);else throw Error("Should never happen.")}catch(e){e.message?w.error(`Response handler '${i.method}' failed with message: ${e.message}`):w.error(`Response handler '${i.method}' failed unexpectedly.`)}}}}(e):function(e){if(!e)return w.error("Received empty message.");if(w.error(`Received message which is neither a response nor a notification message:
56
+ ${JSON.stringify(e,null,4)}`),L.string(e.id)||L.number(e.id)){let t=e.id,i=I.get(t);i&&i.reject(Error("The received response has neither a result nor an error property."))}}(e)}e.onClose(et),e.onError(function(e){z.fire([e,void 0,void 0])}),t.onClose(et),t.onError(function(e){z.fire(e)});let er=e=>{try{if(F.Message.isNotification(e)&&e.method===r.type.method){let i=e.params.id,r=J(i),n=P.get(r);if(F.Message.isRequest(n)){let o=g?.connectionStrategy,s=o&&o.cancelUndispatched?o.cancelUndispatched(n,Y):Y(n);if(s&&(void 0!==s.error||void 0!==s.result)){P.delete(r),U.delete(i),s.id=n.id,eo(s,e.method,Date.now()),t.write(s).catch(()=>w.error("Sending response for canceled message failed."));return}}let o=U.get(i);if(void 0!==o){o.cancel(),es(e);return}A.add(i)}var i,n=P;F.Message.isRequest(e)?n.set(J(e.id),e):F.Message.isResponse(e)?n.set(null===(i=e.id)?"res-unknown-"+(++E).toString():"res-"+i.toString(),e):n.set("not-"+(++D).toString(),e)}finally{!function e(){m||0===P.size||(m=(0,M.default)().timer.setImmediate(()=>{m=void 0,function(){if(0===P.size)return;let t=P.shift();try{let e=g?.messageStrategy;C.is(e)?e.handleMessage(t,ei):ei(t)}finally{e()}}()}))}()}};function en(e){if(null!=e)switch(W){case a.Verbose:return JSON.stringify(e,null,4);case a.Compact:return JSON.stringify(e);default:return}}function eo(e,t,i){if(W!==a.Off&&f)if(q===c.Text){let r;(W===a.Verbose||W===a.Compact)&&(e.error&&e.error.data?r=`Error data: ${en(e.error.data)}
57
+
58
+ `:e.result?r=`Result: ${en(e.result)}
59
+
60
+ `:void 0===e.error&&(r="No result returned.\n\n")),f.log(`Sending response '${t} - (${e.id})'. Processing request took ${Date.now()-i}ms`,r)}else ea("send-response",e)}function es(e){if(W!==a.Off&&f&&e.method!==u.type.method)if(q===c.Text){let t;(W===a.Verbose||W===a.Compact)&&(t=e.params?`Params: ${en(e.params)}
61
+
62
+ `:"No parameters provided.\n\n"),f.log(`Received notification '${e.method}'.`,t)}else ea("receive-notification",e)}function ea(e,t){if(!f||W===a.Off)return;let i={isLSPMessage:!0,type:e,message:t,timestamp:Date.now()};f.log(i)}function el(){if(Z())throw new H(h.Closed,"Connection is closed.");if(ee())throw new H(h.Disposed,"Connection is disposed.")}function ec(e){return void 0===e?null:e}function ed(e){if(null!==e)return e}function eu(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}function eh(e,t){switch(e){case F.ParameterStructures.auto:if(eu(t))return ed(t);return[ec(t)];case F.ParameterStructures.byName:if(!eu(t))throw Error("Received parameters by name but param is not an object literal.");return ed(t);case F.ParameterStructures.byPosition:return[ec(t)];default:throw Error(`Unknown parameter structure ${e.toString()}`)}}function eg(e,t){let i,r=e.numberOfParams;switch(r){case 0:i=void 0;break;case 1:i=eh(e.parameterStructures,t[0]);break;default:i=[];for(let e=0;e<t.length&&e<r;e++)i.push(ec(t[e]));if(t.length<r)for(let e=t.length;e<r;e++)i.push(null)}return i}let ep={sendNotification:(e,...i)=>{let r,n;if(el(),L.string(e)){r=e;let t=i[0],o=0,s=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(o=1,s=t);let a=i.length,l=a-o;switch(l){case 0:n=void 0;break;case 1:n=eh(s,i[o]);break;default:if(s===F.ParameterStructures.byName)throw Error(`Received ${l} parameters for 'by Name' notification parameter structure.`);n=i.slice(o,a).map(e=>ec(e))}}else r=e.method,n=eg(e,i);let o={jsonrpc:"2.0",method:r,params:n};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&(e=o.params?`Params: ${en(o.params)}
63
+
64
+ `:"No parameters provided.\n\n"),f.log(`Sending notification '${o.method}'.`,e)}else ea("send-notification",o);return t.write(o).catch(e=>{throw w.error("Sending notification failed."),e})},onNotification:(e,t)=>{let i;return el(),L.func(e)?S=e:t&&(L.string(e)?(i=e,T.set(e,{type:void 0,handler:t})):(i=e.method,T.set(e.method,{type:e,handler:t}))),{dispose:()=>{void 0!==i?T.delete(i):S=void 0}}},onProgress:(e,t,i)=>{if(R.has(t))throw Error(`Progress handler for token ${t} already registered`);return R.set(t,i),{dispose:()=>{R.delete(t)}}},sendProgress:(e,t,i)=>ep.sendNotification(o.type,{token:t,value:i}),onUnhandledProgress:B.event,sendRequest:(e,...i)=>{let r,n,o,s;if(el(),!X())throw Error("Call listen() first.");if(L.string(e)){r=e;let t=i[0],o=i[i.length-1],a=0,l=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(a=1,l=t);let c=i.length;$.CancellationToken.is(o)&&(c-=1,s=o);let d=c-a;switch(d){case 0:n=void 0;break;case 1:n=eh(l,i[a]);break;default:if(l===F.ParameterStructures.byName)throw Error(`Received ${d} parameters for 'by Name' request parameter structure.`);n=i.slice(a,c).map(e=>ec(e))}}else{r=e.method,n=eg(e,i);let t=e.numberOfParams;s=$.CancellationToken.is(i[t])?i[t]:void 0}let l=x++;s&&(o=s.onCancellationRequested(()=>{let e=Q.sender.sendCancellation(ep,l);return void 0===e?(w.log(`Received no promise from cancellation strategy when cancelling id ${l}`),Promise.resolve()):e.catch(()=>{w.log(`Sending cancellation messages for id ${l} failed`)})}));let d={jsonrpc:"2.0",id:l,method:r,params:n};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&d.params&&(e=`Params: ${en(d.params)}
65
+
66
+ `),f.log(`Sending request '${d.method} - (${d.id})'.`,e)}else ea("send-request",d);return"function"==typeof Q.sender.enableCancellation&&Q.sender.enableCancellation(d),new Promise(async(e,i)=>{let n={method:r,timerStart:Date.now(),resolve:t=>{e(t),Q.sender.cleanup(l),o?.dispose()},reject:e=>{i(e),Q.sender.cleanup(l),o?.dispose()}};try{I.set(l,n),await t.write(d)}catch(e){throw I.delete(l),n.reject(new F.ResponseError(F.ErrorCodes.MessageWriteError,e.message?e.message:"Unknown reason")),w.error("Sending request failed."),e}})},onRequest:(e,t)=>{el();let i=null;return s.is(e)?(i=void 0,_=e):L.string(e)?(i=null,void 0!==t&&(i=e,k.set(e,{handler:t,type:void 0}))):void 0!==t&&(i=e.method,k.set(e.method,{type:e,handler:t})),{dispose:()=>{null!==i&&(void 0!==i?k.delete(i):_=void 0)}}},hasPendingResponse:()=>I.size>0,trace:async(e,t,i)=>{let r=!1,n=c.Text;void 0!==i&&(L.boolean(i)?r=i:(r=i.sendNotification||!1,n=i.traceFormat||c.Text)),W=e,q=n,f=W===a.Off?void 0:t,!r||Z()||ee()||await ep.sendNotification(d.type,{value:a.toString(e)})},onError:z.event,onClose:K.event,onUnhandledNotification:V.event,onDispose:G.event,end:()=>{t.end()},dispose:()=>{if(ee())return;j=b.Disposed,G.fire(void 0);let i=new F.ResponseError(F.ErrorCodes.PendingResponseRejected,"Pending response rejected since connection got disposed");for(let e of I.values())e.reject(i);I=new Map,U=new Map,A=new Set,P=new O.LinkedMap,L.func(t.dispose)&&t.dispose(),L.func(e.dispose)&&e.dispose()},listen:()=>{if(el(),X())throw new H(h.AlreadyListening,"Connection is already listening");j=b.Listening,e.listen(er)},inspect:()=>{(0,M.default)().console.log("inspect")}};return ep.onNotification(u.type,e=>{if(W===a.Off||!f)return;let t=W===a.Verbose||W===a.Compact;f.log(e.message,t?e.verbose:void 0)}),ep.onNotification(o.type,e=>{let t=R.get(e.token);t?t(e.value):B.fire(e)}),ep}},412392,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.ProgressType=i.ProgressToken=i.createMessageConnection=i.NullLogger=i.ConnectionOptions=i.ConnectionStrategy=i.AbstractMessageBuffer=i.WriteableStreamMessageWriter=i.AbstractMessageWriter=i.MessageWriter=i.ReadableStreamMessageReader=i.AbstractMessageReader=i.MessageReader=i.SharedArrayReceiverStrategy=i.SharedArraySenderStrategy=i.CancellationToken=i.CancellationTokenSource=i.Emitter=i.Event=i.Disposable=i.LRUCache=i.Touch=i.LinkedMap=i.ParameterStructures=i.NotificationType9=i.NotificationType8=i.NotificationType7=i.NotificationType6=i.NotificationType5=i.NotificationType4=i.NotificationType3=i.NotificationType2=i.NotificationType1=i.NotificationType0=i.NotificationType=i.ErrorCodes=i.ResponseError=i.RequestType9=i.RequestType8=i.RequestType7=i.RequestType6=i.RequestType5=i.RequestType4=i.RequestType3=i.RequestType2=i.RequestType1=i.RequestType0=i.RequestType=i.Message=i.RAL=void 0,i.MessageStrategy=i.CancellationStrategy=i.CancellationSenderStrategy=i.CancellationReceiverStrategy=i.ConnectionError=i.ConnectionErrors=i.LogTraceNotification=i.SetTraceNotification=i.TraceFormat=i.TraceValues=i.Trace=void 0;let r=e.r(257425);Object.defineProperty(i,"Message",{enumerable:!0,get:function(){return r.Message}}),Object.defineProperty(i,"RequestType",{enumerable:!0,get:function(){return r.RequestType}}),Object.defineProperty(i,"RequestType0",{enumerable:!0,get:function(){return r.RequestType0}}),Object.defineProperty(i,"RequestType1",{enumerable:!0,get:function(){return r.RequestType1}}),Object.defineProperty(i,"RequestType2",{enumerable:!0,get:function(){return r.RequestType2}}),Object.defineProperty(i,"RequestType3",{enumerable:!0,get:function(){return r.RequestType3}}),Object.defineProperty(i,"RequestType4",{enumerable:!0,get:function(){return r.RequestType4}}),Object.defineProperty(i,"RequestType5",{enumerable:!0,get:function(){return r.RequestType5}}),Object.defineProperty(i,"RequestType6",{enumerable:!0,get:function(){return r.RequestType6}}),Object.defineProperty(i,"RequestType7",{enumerable:!0,get:function(){return r.RequestType7}}),Object.defineProperty(i,"RequestType8",{enumerable:!0,get:function(){return r.RequestType8}}),Object.defineProperty(i,"RequestType9",{enumerable:!0,get:function(){return r.RequestType9}}),Object.defineProperty(i,"ResponseError",{enumerable:!0,get:function(){return r.ResponseError}}),Object.defineProperty(i,"ErrorCodes",{enumerable:!0,get:function(){return r.ErrorCodes}}),Object.defineProperty(i,"NotificationType",{enumerable:!0,get:function(){return r.NotificationType}}),Object.defineProperty(i,"NotificationType0",{enumerable:!0,get:function(){return r.NotificationType0}}),Object.defineProperty(i,"NotificationType1",{enumerable:!0,get:function(){return r.NotificationType1}}),Object.defineProperty(i,"NotificationType2",{enumerable:!0,get:function(){return r.NotificationType2}}),Object.defineProperty(i,"NotificationType3",{enumerable:!0,get:function(){return r.NotificationType3}}),Object.defineProperty(i,"NotificationType4",{enumerable:!0,get:function(){return r.NotificationType4}}),Object.defineProperty(i,"NotificationType5",{enumerable:!0,get:function(){return r.NotificationType5}}),Object.defineProperty(i,"NotificationType6",{enumerable:!0,get:function(){return r.NotificationType6}}),Object.defineProperty(i,"NotificationType7",{enumerable:!0,get:function(){return r.NotificationType7}}),Object.defineProperty(i,"NotificationType8",{enumerable:!0,get:function(){return r.NotificationType8}}),Object.defineProperty(i,"NotificationType9",{enumerable:!0,get:function(){return r.NotificationType9}}),Object.defineProperty(i,"ParameterStructures",{enumerable:!0,get:function(){return r.ParameterStructures}});let n=e.r(869991);Object.defineProperty(i,"LinkedMap",{enumerable:!0,get:function(){return n.LinkedMap}}),Object.defineProperty(i,"LRUCache",{enumerable:!0,get:function(){return n.LRUCache}}),Object.defineProperty(i,"Touch",{enumerable:!0,get:function(){return n.Touch}});let o=e.r(763636);Object.defineProperty(i,"Disposable",{enumerable:!0,get:function(){return o.Disposable}});let s=e.r(907260);Object.defineProperty(i,"Event",{enumerable:!0,get:function(){return s.Event}}),Object.defineProperty(i,"Emitter",{enumerable:!0,get:function(){return s.Emitter}});let a=e.r(686787);Object.defineProperty(i,"CancellationTokenSource",{enumerable:!0,get:function(){return a.CancellationTokenSource}}),Object.defineProperty(i,"CancellationToken",{enumerable:!0,get:function(){return a.CancellationToken}});let l=e.r(593876);Object.defineProperty(i,"SharedArraySenderStrategy",{enumerable:!0,get:function(){return l.SharedArraySenderStrategy}}),Object.defineProperty(i,"SharedArrayReceiverStrategy",{enumerable:!0,get:function(){return l.SharedArrayReceiverStrategy}});let c=e.r(57485);Object.defineProperty(i,"MessageReader",{enumerable:!0,get:function(){return c.MessageReader}}),Object.defineProperty(i,"AbstractMessageReader",{enumerable:!0,get:function(){return c.AbstractMessageReader}}),Object.defineProperty(i,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return c.ReadableStreamMessageReader}});let d=e.r(34572);Object.defineProperty(i,"MessageWriter",{enumerable:!0,get:function(){return d.MessageWriter}}),Object.defineProperty(i,"AbstractMessageWriter",{enumerable:!0,get:function(){return d.AbstractMessageWriter}}),Object.defineProperty(i,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return d.WriteableStreamMessageWriter}});let u=e.r(454166);Object.defineProperty(i,"AbstractMessageBuffer",{enumerable:!0,get:function(){return u.AbstractMessageBuffer}});let h=e.r(971320);Object.defineProperty(i,"ConnectionStrategy",{enumerable:!0,get:function(){return h.ConnectionStrategy}}),Object.defineProperty(i,"ConnectionOptions",{enumerable:!0,get:function(){return h.ConnectionOptions}}),Object.defineProperty(i,"NullLogger",{enumerable:!0,get:function(){return h.NullLogger}}),Object.defineProperty(i,"createMessageConnection",{enumerable:!0,get:function(){return h.createMessageConnection}}),Object.defineProperty(i,"ProgressToken",{enumerable:!0,get:function(){return h.ProgressToken}}),Object.defineProperty(i,"ProgressType",{enumerable:!0,get:function(){return h.ProgressType}}),Object.defineProperty(i,"Trace",{enumerable:!0,get:function(){return h.Trace}}),Object.defineProperty(i,"TraceValues",{enumerable:!0,get:function(){return h.TraceValues}}),Object.defineProperty(i,"TraceFormat",{enumerable:!0,get:function(){return h.TraceFormat}}),Object.defineProperty(i,"SetTraceNotification",{enumerable:!0,get:function(){return h.SetTraceNotification}}),Object.defineProperty(i,"LogTraceNotification",{enumerable:!0,get:function(){return h.LogTraceNotification}}),Object.defineProperty(i,"ConnectionErrors",{enumerable:!0,get:function(){return h.ConnectionErrors}}),Object.defineProperty(i,"ConnectionError",{enumerable:!0,get:function(){return h.ConnectionError}}),Object.defineProperty(i,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return h.CancellationReceiverStrategy}}),Object.defineProperty(i,"CancellationSenderStrategy",{enumerable:!0,get:function(){return h.CancellationSenderStrategy}}),Object.defineProperty(i,"CancellationStrategy",{enumerable:!0,get:function(){return h.CancellationStrategy}}),Object.defineProperty(i,"MessageStrategy",{enumerable:!0,get:function(){return h.MessageStrategy}}),i.RAL=e.r(540958).default},592944,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(412392);class n extends r.AbstractMessageBuffer{constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return n.emptyBuffer}fromString(e,t){return new TextEncoder().encode(e)}toString(e,t){return"ascii"===t?this.asciiDecoder.decode(e):new TextDecoder(t).decode(e)}asNative(e,t){return void 0===t?e:e.slice(0,t)}allocNative(e){return new Uint8Array(e)}}n.emptyBuffer=new Uint8Array(0);class o{constructor(e){this.socket=e,this._onData=new r.Emitter,this._messageListener=e=>{e.data.arrayBuffer().then(e=>{this._onData.fire(new Uint8Array(e))},()=>{(0,r.RAL)().console.error("Converting blob to array buffer failed.")})},this.socket.addEventListener("message",this._messageListener)}onClose(e){return this.socket.addEventListener("close",e),r.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),r.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),r.Disposable.create(()=>this.socket.removeEventListener("end",e))}onData(e){return this._onData.event(e)}}class s{constructor(e){this.socket=e}onClose(e){return this.socket.addEventListener("close",e),r.Disposable.create(()=>this.socket.removeEventListener("close",e))}onError(e){return this.socket.addEventListener("error",e),r.Disposable.create(()=>this.socket.removeEventListener("error",e))}onEnd(e){return this.socket.addEventListener("end",e),r.Disposable.create(()=>this.socket.removeEventListener("end",e))}write(e,t){if("string"==typeof e){if(void 0!==t&&"utf-8"!==t)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t}`);this.socket.send(e)}else this.socket.send(e);return Promise.resolve()}end(){this.socket.close()}}let a=new TextEncoder,l=Object.freeze({messageBuffer:Object.freeze({create:e=>new n(e)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(e,t)=>{if("utf-8"!==t.charset)throw Error(`In a Browser environments only utf-8 text encoding is supported. But got encoding: ${t.charset}`);return Promise.resolve(a.encode(JSON.stringify(e,void 0,0)))}}),decoder:Object.freeze({name:"application/json",decode:(e,t)=>{if(!(e instanceof Uint8Array))throw Error("In a Browser environments only Uint8Arrays are supported.");return Promise.resolve(JSON.parse(new TextDecoder(t.charset).decode(e)))}})}),stream:Object.freeze({asReadableStream:e=>new o(e),asWritableStream:e=>new s(e)}),console:console,timer:Object.freeze({setTimeout(e,t,...i){let r=setTimeout(e,t,...i);return{dispose:()=>clearTimeout(r)}},setImmediate(e,...t){let i=setTimeout(e,0,...t);return{dispose:()=>clearTimeout(i)}},setInterval(e,t,...i){let r=setInterval(e,t,...i);return{dispose:()=>clearInterval(r)}}})});function c(){return l}(c||(c={})).install=function(){r.RAL.install(l)},i.default=c},269213,(e,t,i)=>{"use strict";var r=e.e&&e.e.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),n=e.e&&e.e.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||r(t,e,i)};Object.defineProperty(i,"__esModule",{value:!0}),i.createMessageConnection=i.BrowserMessageWriter=i.BrowserMessageReader=void 0,e.r(592944).default.install();let o=e.r(412392);n(e.r(412392),i);class s extends o.AbstractMessageReader{constructor(e){super(),this._onData=new o.Emitter,this._messageListener=e=>{this._onData.fire(e.data)},e.addEventListener("error",e=>this.fireError(e)),e.onmessage=this._messageListener}listen(e){return this._onData.event(e)}}i.BrowserMessageReader=s;class a extends o.AbstractMessageWriter{constructor(e){super(),this.port=e,this.errorCount=0,e.addEventListener("error",e=>this.fireError(e))}write(e){try{return this.port.postMessage(e),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}}i.BrowserMessageWriter=a,i.createMessageConnection=function(e,t,i,r){return void 0===i&&(i=o.NullLogger),o.ConnectionStrategy.is(r)&&(r={connectionStrategy:r}),(0,o.createMessageConnection)(e,t,i,r)}},611219,e=>{"use strict";let t,i,r,n,o;var s,a,l,c,d,u,h,g,p,m,f,_,y,C,S,b,w,x,D,E,k,T,R,P,I,A,M,L,F,O,N,$,H,U,W,q,j,z,K,V,B,G,Q,J,Y,X,Z,ee,et,ei,er,en,eo,es=e.i(344180),ea=e.i(887836),el=e.i(764556);e.i(462506);let ec=new Map;function ed(e,t){if(t.workspaceRoot){let i=t.workspaceRoot.replace(/\/+$/,"");if(e.startsWith(`${i}/`))return decodeURIComponent(e.slice(i.length+1))}for(let i of[`/workspace/${t.workspaceId}/`,`/${t.workspaceId}/`])if(e.startsWith(i))return decodeURIComponent(e.slice(i.length));return null}var eu=e.i(60293),eh=e.i(360112);let eg=[{id:"copyPosition",label:"复制代码位置",contextMenuGroupId:"9_cutcopypaste",contextMenuOrder:10,run:(e,t)=>{let i=e.getModel(),r=e.getSelection();if(!i||!r)return;let n=ed(i.uri.path,t),o=`${n||i.uri.path}:${r.startLineNumber}:${r.endLineNumber}`;navigator.clipboard.writeText(o).then(()=>{eh.toast.success(`已复制: ${o}`)})}},{id:"addToFavorites",label:"添加到代码收藏",contextMenuGroupId:"9_cutcopypaste",contextMenuOrder:11,run:(e,t)=>{let i=e.getModel(),r=e.getSelection();if(!i||!r)return;let n=r.startLineNumber,o=r.startColumn,s=r.endLineNumber,a=r.endColumn,l=ed(i.uri.path,t);if(!l)return;let c={startLineNumber:n,startColumn:1,endLineNumber:s,endColumn:i.getLineMaxColumn(s)},d=i.getValueInRange(c).trim();d.length>300&&(d=d.slice(0,300)+"\n…");let u=l.split("/").pop()||l,h=s>n?`${n}-${s}`:`${n}`;eu.useCodeFavoritesStore.getState().setPendingFavorite({workspaceId:t.workspaceId,path:l,line:n,column:o,endLine:s,endColumn:a,label:`${u}:${h}`,snippet:d})}}];for(let e of eg)ec.set(e.id,e);e.i(340642);var ep=e.i(564822),em=e.i(691223),ef=e.i(972846),ev=e.i(194228),e_=e.i(433721);let ey=(0,e_.default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);var eC=e.i(106206);let eS="u">typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function eb(e){let t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function ew(e){return"nodeType"in e}function ex(e){var t,i;return e?eb(e)?e:ew(e)&&null!=(t=null==(i=e.ownerDocument)?void 0:i.defaultView)?t:window:window}function eD(e){let{Document:t}=ex(e);return e instanceof t}function eE(e){return!eb(e)&&e instanceof ex(e).HTMLElement}function ek(e){return e instanceof ex(e).SVGElement}function eT(e){return e?eb(e)?e.document:ew(e)?eD(e)?e:eE(e)||ek(e)?e.ownerDocument:document:document:document}let eR=eS?el.useLayoutEffect:el.useEffect;function eP(e){let t=(0,el.useRef)(e);return eR(()=>{t.current=e}),(0,el.useCallback)(function(){for(var e=arguments.length,i=Array(e),r=0;r<e;r++)i[r]=arguments[r];return null==t.current?void 0:t.current(...i)},[])}function eI(e,t){void 0===t&&(t=[e]);let i=(0,el.useRef)(e);return eR(()=>{i.current!==e&&(i.current=e)},t),i}function eA(e,t){let i=(0,el.useRef)();return(0,el.useMemo)(()=>{let t=e(i.current);return i.current=t,t},[...t])}function eM(e){let t=eP(e),i=(0,el.useRef)(null),r=(0,el.useCallback)(e=>{e!==i.current&&(null==t||t(e,i.current)),i.current=e},[]);return[i,r]}function eL(e){let t=(0,el.useRef)();return(0,el.useEffect)(()=>{t.current=e},[e]),t.current}let eF={};function eO(e,t){return(0,el.useMemo)(()=>{if(t)return t;let i=null==eF[e]?0:eF[e]+1;return eF[e]=i,e+"-"+i},[e,t])}function eN(e){return function(t){for(var i=arguments.length,r=Array(i>1?i-1:0),n=1;n<i;n++)r[n-1]=arguments[n];return r.reduce((t,i)=>{for(let[r,n]of Object.entries(i)){let i=t[r];null!=i&&(t[r]=i+e*n)}return t},{...t})}}let e$=eN(1),eH=eN(-1);function eU(e){if(!e)return!1;let{KeyboardEvent:t}=ex(e.target);return t&&e instanceof t}function eW(e){if(function(e){if(!e)return!1;let{TouchEvent:t}=ex(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:i}=e.touches[0];return{x:t,y:i}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:i}=e.changedTouches[0];return{x:t,y:i}}}return"clientX"in e&&"clientY"in e?{x:e.clientX,y:e.clientY}:null}let eq=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:i}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(i?Math.round(i):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:i}=e;return"scaleX("+t+") scaleY("+i+")"}},Transform:{toString(e){if(e)return[eq.Translate.toString(e),eq.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:i,easing:r}=e;return t+" "+i+"ms "+r}}}),ej="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]",ez={display:"none"};function eK(e){let{id:t,value:i}=e;return el.default.createElement("div",{id:t,style:ez},i)}function eV(e){let{id:t,announcement:i,ariaLiveType:r="assertive"}=e;return el.default.createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":r,"aria-atomic":!0},i)}let eB=(0,el.createContext)(null),eG={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},eQ={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:i}=e;return i?"Draggable item "+t.id+" was moved over droppable area "+i.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:i}=e;return i?"Draggable item "+t.id+" was dropped over droppable area "+i.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function eJ(e){var t;let i,{announcements:r=eQ,container:n,hiddenTextDescribedById:o,screenReaderInstructions:s=eG}=e,{announce:a,announcement:l}=function(){let[e,t]=(0,el.useState)("");return{announce:(0,el.useCallback)(e=>{null!=e&&t(e)},[]),announcement:e}}(),c=eO("DndLiveRegion"),[d,u]=(0,el.useState)(!1);if((0,el.useEffect)(()=>{u(!0)},[]),t=(0,el.useMemo)(()=>({onDragStart(e){let{active:t}=e;a(r.onDragStart({active:t}))},onDragMove(e){let{active:t,over:i}=e;r.onDragMove&&a(r.onDragMove({active:t,over:i}))},onDragOver(e){let{active:t,over:i}=e;a(r.onDragOver({active:t,over:i}))},onDragEnd(e){let{active:t,over:i}=e;a(r.onDragEnd({active:t,over:i}))},onDragCancel(e){let{active:t,over:i}=e;a(r.onDragCancel({active:t,over:i}))}}),[a,r]),i=(0,el.useContext)(eB),(0,el.useEffect)(()=>{if(!i)throw Error("useDndMonitor must be used within a children of <DndContext>");return i(t)},[t,i]),!d)return null;let h=el.default.createElement(el.default.Fragment,null,el.default.createElement(eK,{id:o,value:s.draggable}),el.default.createElement(eV,{id:c,announcement:l}));return n?(0,eC.createPortal)(h,n):h}function eY(){}function eX(e,t){return(0,el.useMemo)(()=>({sensor:e,options:null!=t?t:{}}),[e,t])}(s=$||($={})).DragStart="dragStart",s.DragMove="dragMove",s.DragEnd="dragEnd",s.DragCancel="dragCancel",s.DragOver="dragOver",s.RegisterDroppable="registerDroppable",s.SetDroppableDisabled="setDroppableDisabled",s.UnregisterDroppable="unregisterDroppable";let eZ=Object.freeze({x:0,y:0});function e0(e,t){let{data:{value:i}}=e,{data:{value:r}}=t;return i-r}function e1(e,t){let{data:{value:i}}=e,{data:{value:r}}=t;return r-i}function e2(e,t,i){return void 0===t&&(t=e.left),void 0===i&&(i=e.top),{x:t+.5*e.width,y:i+.5*e.height}}let e6=e=>{let{collisionRect:t,droppableRects:i,droppableContainers:r}=e,n=e2(t,t.left,t.top),o=[];for(let e of r){let{id:t}=e,r=i.get(t);if(r){var s;let i=(s=e2(r),Math.sqrt(Math.pow(s.x-n.x,2)+Math.pow(s.y-n.y,2)));o.push({id:t,data:{droppableContainer:e,value:i}})}}return o.sort(e0)},e3=e=>{let{collisionRect:t,droppableRects:i,droppableContainers:r}=e,n=[];for(let e of r){let{id:r}=e,o=i.get(r);if(o){let i=function(e,t){let i=Math.max(t.top,e.top),r=Math.max(t.left,e.left),n=Math.min(t.left+t.width,e.left+e.width),o=Math.min(t.top+t.height,e.top+e.height);if(r<n&&i<o){let s=t.width*t.height,a=e.width*e.height,l=(n-r)*(o-i);return Number((l/(s+a-l)).toFixed(4))}return 0}(o,t);i>0&&n.push({id:r,data:{droppableContainer:e,value:i}})}}return n.sort(e1)};function e4(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:eZ}let e5=function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];return i.reduce((e,t)=>({...e,top:e.top+ +t.y,bottom:e.bottom+ +t.y,left:e.left+ +t.x,right:e.right+ +t.x}),{...e})},e8={ignoreTransform:!1};function e7(e,t){void 0===t&&(t=e8);let i=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=ex(e).getComputedStyle(e);t&&(i=function(e,t,i){let r=function(e){if(e.startsWith("matrix3d(")){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}(t);if(!r)return e;let{scaleX:n,scaleY:o,x:s,y:a}=r,l=e.left-s-(1-n)*parseFloat(i),c=e.top-a-(1-o)*parseFloat(i.slice(i.indexOf(" ")+1)),d=n?e.width/n:e.width,u=o?e.height/o:e.height;return{width:d,height:u,top:c,right:l+d,bottom:c+u,left:l}}(i,t,r))}let{top:r,left:n,width:o,height:s,bottom:a,right:l}=i;return{top:r,left:n,width:o,height:s,bottom:a,right:l}}function e9(e){return e7(e,{ignoreTransform:!0})}function te(e,t){let i=[];return e?function r(n){var o,s;let a;if(null!=t&&i.length>=t||!n)return i;if(eD(n)&&null!=n.scrollingElement&&!i.includes(n.scrollingElement))return i.push(n.scrollingElement),i;if(!eE(n)||ek(n)||i.includes(n))return i;let l=ex(e).getComputedStyle(n);return(n!==e&&(void 0===(o=l)&&(o=ex(n).getComputedStyle(n)),a=/(auto|scroll|overlay)/,["overflow","overflowX","overflowY"].some(e=>{let t=o[e];return"string"==typeof t&&a.test(t)}))&&i.push(n),void 0===(s=l)&&(s=ex(n).getComputedStyle(n)),"fixed"===s.position)?i:r(n.parentNode)}(e):i}function tt(e){let[t]=te(e,1);return null!=t?t:null}function ti(e){return eS&&e?eb(e)?e:ew(e)?eD(e)||e===eT(e).scrollingElement?window:eE(e)?e:null:null:null}function tr(e){return eb(e)?e.scrollX:e.scrollLeft}function tn(e){return eb(e)?e.scrollY:e.scrollTop}function to(e){return{x:tr(e),y:tn(e)}}function ts(e){return!!eS&&!!e&&e===document.scrollingElement}function ta(e){let t={x:0,y:0},i=ts(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-i.width,y:e.scrollHeight-i.height},n=e.scrollTop<=t.y,o=e.scrollLeft<=t.x;return{isTop:n,isLeft:o,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}(a=H||(H={}))[a.Forward=1]="Forward",a[a.Backward=-1]="Backward";let tl={x:.2,y:.2};function tc(e){return e.reduce((e,t)=>e$(e,to(t)),eZ)}let td=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+tr(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+tn(t),0)}]];class tu{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const i=te(t),r=tc(i);for(const[t,n,o]of(this.rect={...e},this.width=e.width,this.height=e.height,td))for(const e of n)Object.defineProperty(this,e,{get:()=>{let n=o(i),s=r[t]-n;return this.rect[e]+s},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class th{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,i){var r;null==(r=this.target)||r.addEventListener(e,t,i),this.listeners.push([e,t,i])}}function tg(e,t){let i=Math.abs(e.x),r=Math.abs(e.y);return"number"==typeof t?Math.sqrt(i**2+r**2)>t:"x"in t&&"y"in t?i>t.x&&r>t.y:"x"in t?i>t.x:"y"in t&&r>t.y}function tp(e){e.preventDefault()}function tm(e){e.stopPropagation()}(l=U||(U={})).Click="click",l.DragStart="dragstart",l.Keydown="keydown",l.ContextMenu="contextmenu",l.Resize="resize",l.SelectionChange="selectionchange",l.VisibilityChange="visibilitychange",(c=W||(W={})).Space="Space",c.Down="ArrowDown",c.Right="ArrowRight",c.Left="ArrowLeft",c.Up="ArrowUp",c.Esc="Escape",c.Enter="Enter",c.Tab="Tab";let tf={start:[W.Space,W.Enter],cancel:[W.Esc],end:[W.Space,W.Enter,W.Tab]},tv=(e,t)=>{let{currentCoordinates:i}=t;switch(e.code){case W.Right:return{...i,x:i.x+25};case W.Left:return{...i,x:i.x-25};case W.Down:return{...i,y:i.y+25};case W.Up:return{...i,y:i.y-25}}};class t_{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new th(eT(t)),this.windowListeners=new th(ex(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(U.Resize,this.handleCancel),this.windowListeners.add(U.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(U.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,i=e.node.current;i&&function(e,t){if(void 0===t&&(t=e7),!e)return;let{top:i,left:r,bottom:n,right:o}=t(e);tt(e)&&(n<=0||o<=0||i>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}(i),t(eZ)}handleKeyDown(e){if(eU(e)){let{active:t,context:i,options:r}=this.props,{keyboardCodes:n=tf,coordinateGetter:o=tv,scrollBehavior:s="smooth"}=r,{code:a}=e;if(n.end.includes(a))return void this.handleEnd(e);if(n.cancel.includes(a))return void this.handleCancel(e);let{collisionRect:l}=i.current,c=l?{x:l.left,y:l.top}:eZ;this.referenceCoordinates||(this.referenceCoordinates=c);let d=o(e,{active:t,context:i.current,currentCoordinates:c});if(d){let t=eH(d,c),r={x:0,y:0},{scrollableAncestors:n}=i.current;for(let i of n){let n=e.code,{isTop:o,isRight:a,isLeft:l,isBottom:c,maxScroll:u,minScroll:h}=ta(i),g=function(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:i,right:r,bottom:n}=e.getBoundingClientRect();return{top:t,left:i,right:r,bottom:n,width:e.clientWidth,height:e.clientHeight}}(i),p={x:Math.min(n===W.Right?g.right-g.width/2:g.right,Math.max(n===W.Right?g.left:g.left+g.width/2,d.x)),y:Math.min(n===W.Down?g.bottom-g.height/2:g.bottom,Math.max(n===W.Down?g.top:g.top+g.height/2,d.y))},m=n===W.Right&&!a||n===W.Left&&!l,f=n===W.Down&&!c||n===W.Up&&!o;if(m&&p.x!==d.x){let e=i.scrollLeft+t.x,o=n===W.Right&&e<=u.x||n===W.Left&&e>=h.x;if(o&&!t.y)return void i.scrollTo({left:e,behavior:s});o?r.x=i.scrollLeft-e:r.x=n===W.Right?i.scrollLeft-u.x:i.scrollLeft-h.x,r.x&&i.scrollBy({left:-r.x,behavior:s});break}if(f&&p.y!==d.y){let e=i.scrollTop+t.y,o=n===W.Down&&e<=u.y||n===W.Up&&e>=h.y;if(o&&!t.x)return void i.scrollTo({top:e,behavior:s});o?r.y=i.scrollTop-e:r.y=n===W.Down?i.scrollTop-u.y:i.scrollTop-h.y,r.y&&i.scrollBy({top:-r.y,behavior:s});break}}this.handleMove(e,e$(eH(d,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:i}=this.props;e.preventDefault(),i(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function ty(e){return!!(e&&"distance"in e)}function tC(e){return!!(e&&"delay"in e)}t_.activators=[{eventName:"onKeyDown",handler:(e,t,i)=>{let{keyboardCodes:r=tf,onActivation:n}=t,{active:o}=i,{code:s}=e.nativeEvent;if(r.start.includes(s)){let t=o.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==n||n({event:e.nativeEvent}),!0)}return!1}}];class tS{constructor(e,t,i){var r;void 0===i&&(i=function(e){let{EventTarget:t}=ex(e);return e instanceof t?e:eT(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:n}=e,{target:o}=n;this.props=e,this.events=t,this.document=eT(o),this.documentListeners=new th(this.document),this.listeners=new th(i),this.windowListeners=new th(ex(o)),this.initialCoordinates=null!=(r=eW(n))?r:eZ,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:i}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(U.Resize,this.handleCancel),this.windowListeners.add(U.DragStart,tp),this.windowListeners.add(U.VisibilityChange,this.handleCancel),this.windowListeners.add(U.ContextMenu,tp),this.documentListeners.add(U.Keydown,this.handleKeydown),t){if(null!=i&&i({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(tC(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(ty(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:i,onPending:r}=this.props;r(i,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(U.Click,tm,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(U.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;let{activated:i,initialCoordinates:r,props:n}=this,{onMove:o,options:{activationConstraint:s}}=n;if(!r)return;let a=null!=(t=eW(e))?t:eZ,l=eH(r,a);if(!i&&s){if(ty(s)){if(null!=s.tolerance&&tg(l,s.tolerance))return this.handleCancel();if(tg(l,s.distance))return this.handleStart()}return tC(s)&&tg(l,s.tolerance)?this.handleCancel():void this.handlePending(s,l)}e.cancelable&&e.preventDefault(),o(a)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===W.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}let tb={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class tw extends tS{constructor(e){const{event:t}=e;super(e,tb,eT(t.target))}}tw.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:i}=e,{onActivation:r}=t;return!!i.isPrimary&&0===i.button&&(null==r||r({event:i}),!0)}}];(d=q||(q={}))[d.RightClick=2]="RightClick";(u=j||(j={}))[u.Pointer=0]="Pointer",u[u.DraggableRect=1]="DraggableRect",(h=z||(z={}))[h.TreeOrder=0]="TreeOrder",h[h.ReversedTreeOrder=1]="ReversedTreeOrder";let tx={x:{[H.Backward]:!1,[H.Forward]:!1},y:{[H.Backward]:!1,[H.Forward]:!1}};(g=K||(K={}))[g.Always=0]="Always",g[g.BeforeDragging=1]="BeforeDragging",g[g.WhileDragging=2]="WhileDragging",(V||(V={})).Optimized="optimized";let tD=new Map;function tE(e,t){return eA(i=>e?i||("function"==typeof t?t(e):e):null,[t,e])}function tk(e){let{callback:t,disabled:i}=e,r=eP(t),n=(0,el.useMemo)(()=>{if(i||"u"<typeof window||void 0===window.ResizeObserver)return;let{ResizeObserver:e}=window;return new e(r)},[i]);return(0,el.useEffect)(()=>()=>null==n?void 0:n.disconnect(),[n]),n}function tT(e){return new tu(e7(e),e)}function tR(e,t,i){void 0===t&&(t=tT);let[r,n]=(0,el.useState)(null);function o(){n(r=>{if(!e)return null;if(!1===e.isConnected){var n;return null!=(n=null!=r?r:i)?n:null}let o=t(e);return JSON.stringify(r)===JSON.stringify(o)?r:o})}let s=function(e){let{callback:t,disabled:i}=e,r=eP(t),n=(0,el.useMemo)(()=>{if(i||"u"<typeof window||void 0===window.MutationObserver)return;let{MutationObserver:e}=window;return new e(r)},[r,i]);return(0,el.useEffect)(()=>()=>null==n?void 0:n.disconnect(),[n]),n}({callback(t){if(e)for(let i of t){let{type:t,target:r}=i;if("childList"===t&&r instanceof HTMLElement&&r.contains(e)){o();break}}}}),a=tk({callback:o});return eR(()=>{o(),e?(null==a||a.observe(e),null==s||s.observe(document.body,{childList:!0,subtree:!0})):(null==a||a.disconnect(),null==s||s.disconnect())},[e]),r}let tP=[];function tI(e,t){void 0===t&&(t=[]);let i=(0,el.useRef)(null);return(0,el.useEffect)(()=>{i.current=null},t),(0,el.useEffect)(()=>{let t=e!==eZ;t&&!i.current&&(i.current=e),!t&&i.current&&(i.current=null)},[e]),i.current?eH(e,i.current):eZ}function tA(e){return(0,el.useMemo)(()=>{let t,i;return e?(t=e.innerWidth,{top:0,left:0,right:t,bottom:i=e.innerHeight,width:t,height:i}):null},[e])}let tM=[],tL=[{sensor:tw,options:{}},{sensor:t_,options:{}}],tF={current:{}},tO={draggable:{measure:e9},droppable:{measure:e9,strategy:K.WhileDragging,frequency:V.Optimized},dragOverlay:{measure:e7}};class tN extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,i;return null!=(t=null==(i=this.get(e))?void 0:i.node.current)?t:void 0}}let t$={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new tN,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:eY},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:tO,measureDroppableContainers:eY,windowRect:null,measuringScheduled:!1},tH={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:eY,draggableNodes:new Map,over:null,measureDroppableContainers:eY},tU=(0,el.createContext)(tH),tW=(0,el.createContext)(t$);function tq(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new tN}}}function tj(e,t){switch(t.type){case $.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case $.DragMove:if(null==e.draggable.active)return e;return{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case $.DragEnd:case $.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case $.RegisterDroppable:{let{element:i}=t,{id:r}=i,n=new tN(e.droppable.containers);return n.set(r,i),{...e,droppable:{...e.droppable,containers:n}}}case $.SetDroppableDisabled:{let{id:i,key:r,disabled:n}=t,o=e.droppable.containers.get(i);if(!o||r!==o.key)return e;let s=new tN(e.droppable.containers);return s.set(i,{...o,disabled:n}),{...e,droppable:{...e.droppable,containers:s}}}case $.UnregisterDroppable:{let{id:i,key:r}=t,n=e.droppable.containers.get(i);if(!n||r!==n.key)return e;let o=new tN(e.droppable.containers);return o.delete(i),{...e,droppable:{...e.droppable,containers:o}}}default:return e}}function tz(e){let{disabled:t}=e,{active:i,activatorEvent:r,draggableNodes:n}=(0,el.useContext)(tU),o=eL(r),s=eL(null==i?void 0:i.id);return(0,el.useEffect)(()=>{if(!t&&!r&&o&&null!=s){if(!eU(o)||document.activeElement===o.target)return;let e=n.get(s);if(!e)return;let{activatorNode:t,node:i}=e;(t.current||i.current)&&requestAnimationFrame(()=>{for(let e of[t.current,i.current]){if(!e)continue;let t=e.matches(ej)?e:e.querySelector(ej);if(t){t.focus();break}}})}},[r,t,n,s,o]),null}let tK=(0,el.createContext)({...eZ,scaleX:1,scaleY:1});(p=B||(B={}))[p.Uninitialized=0]="Uninitialized",p[p.Initializing=1]="Initializing",p[p.Initialized=2]="Initialized";let tV=(0,el.memo)(function(e){var t,i,r,n,o,s,a,l;let c,d,u,h,g,p,m,f,{id:_,accessibility:y,autoScroll:C=!0,children:S,sensors:b=tL,collisionDetection:w=e3,measuring:x,modifiers:D,...E}=e,[k,T]=(0,el.useReducer)(tj,void 0,tq),[R,P]=function(){let[e]=(0,el.useState)(()=>new Set),t=(0,el.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,el.useCallback)(t=>{let{type:i,event:r}=t;e.forEach(e=>{var t;return null==(t=e[i])?void 0:t.call(e,r)})},[e]),t]}(),[I,A]=(0,el.useState)(B.Uninitialized),M=I===B.Initialized,{draggable:{active:L,nodes:F,translate:O},droppable:{containers:N}}=k,U=null!=L?F.get(L):null,W=(0,el.useRef)({initial:null,translated:null}),q=(0,el.useMemo)(()=>{var e;return null!=L?{id:L,data:null!=(e=null==U?void 0:U.data)?e:tF,rect:W}:null},[L,U]),V=(0,el.useRef)(null),[G,Q]=(0,el.useState)(null),[J,Y]=(0,el.useState)(null),X=eI(E,Object.values(E)),Z=eO("DndDescribedBy",_),ee=(0,el.useMemo)(()=>N.getEnabled(),[N]),et=(0,el.useMemo)(()=>({draggable:{...tO.draggable,...null==x?void 0:x.draggable},droppable:{...tO.droppable,...null==x?void 0:x.droppable},dragOverlay:{...tO.dragOverlay,...null==x?void 0:x.dragOverlay}}),[null==x?void 0:x.draggable,null==x?void 0:x.droppable,null==x?void 0:x.dragOverlay]),{droppableRects:ei,measureDroppableContainers:er,measuringScheduled:en}=function(e,t){let{dragging:i,dependencies:r,config:n}=t,[o,s]=(0,el.useState)(null),{frequency:a,measure:l,strategy:c}=n,d=(0,el.useRef)(e),u=function(){switch(c){case K.Always:return!1;case K.BeforeDragging:return i;default:return!i}}(),h=eI(u),g=(0,el.useCallback)(function(e){void 0===e&&(e=[]),h.current||s(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[h]),p=(0,el.useRef)(null),m=eA(t=>{if(u&&!i)return tD;if(!t||t===tD||d.current!==e||null!=o){let t=new Map;for(let i of e){if(!i)continue;if(o&&o.length>0&&!o.includes(i.id)&&i.rect.current){t.set(i.id,i.rect.current);continue}let e=i.node.current,r=e?new tu(l(e),e):null;i.rect.current=r,r&&t.set(i.id,r)}return t}return t},[e,o,i,u,l]);return(0,el.useEffect)(()=>{d.current=e},[e]),(0,el.useEffect)(()=>{u||g()},[i,u]),(0,el.useEffect)(()=>{o&&o.length>0&&s(null)},[JSON.stringify(o)]),(0,el.useEffect)(()=>{u||"number"!=typeof a||null!==p.current||(p.current=setTimeout(()=>{g(),p.current=null},a))},[a,u,g,...r]),{droppableRects:m,measureDroppableContainers:g,measuringScheduled:null!=o}}(ee,{dragging:M,dependencies:[O.x,O.y],config:et.droppable}),eo=eA(e=>{var t;return null==L?null:null!=(t=null!=g?g:e)?t:null},[g=(h=null!=L?F.get(L):void 0)?h.node.current:null,L]),es=(0,el.useMemo)(()=>J?eW(J):null,[J]),ea=(c=(null==G?void 0:G.autoScrollEnabled)===!1,d="object"==typeof C?!1===C.enabled:!1===C,u=M&&!c&&!d,"object"==typeof C?{...C,enabled:u}:{enabled:u}),ec=tE(eo,et.draggable.measure);!function(e){let{activeNode:t,measure:i,initialRect:r,config:n=!0}=e,o=(0,el.useRef)(!1),{x:s,y:a}="boolean"==typeof n?{x:n,y:n}:n;eR(()=>{if(!s&&!a||!t){o.current=!1;return}if(o.current||!r)return;let e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;let n=e4(i(e),r);if(s||(n.x=0),a||(n.y=0),o.current=!0,Math.abs(n.x)>0||Math.abs(n.y)>0){let t=tt(e);t&&t.scrollBy({top:n.y,left:n.x})}},[t,s,a,r,i])}({activeNode:null!=L?F.get(L):null,config:ea.layoutShiftCompensation,initialRect:ec,measure:et.draggable.measure});let ed=tR(eo,et.draggable.measure,ec),eu=tR(eo?eo.parentElement:null),eh=(0,el.useRef)({activatorEvent:null,active:null,activeNode:eo,collisionRect:null,collisions:null,droppableRects:ei,draggableNodes:F,draggingNode:null,draggingNodeRect:null,droppableContainers:N,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),eg=N.getNodeFor(null==(t=eh.current.over)?void 0:t.id),ep=function(e){let{measure:t}=e,[i,r]=(0,el.useState)(null),n=tk({callback:(0,el.useCallback)(e=>{for(let{target:i}of e)if(eE(i)){r(e=>{let r=t(i);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[o,s]=eM((0,el.useCallback)(e=>{let i=function(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return eE(t)?t:e}(e);null==n||n.disconnect(),i&&(null==n||n.observe(i)),r(i?t(i):null)},[t,n]));return(0,el.useMemo)(()=>({nodeRef:o,rect:i,setRef:s}),[i,o,s])}({measure:et.dragOverlay.measure}),em=null!=(i=ep.nodeRef.current)?i:eo,ef=M?null!=(r=ep.rect)?r:ed:null,ev=!!(ep.nodeRef.current&&ep.rect),e_=(p=tE(o=ev?null:ed),e4(o,p)),ey=tA(em?ex(em):null),eb=(s=M?null!=eg?eg:eo:null,m=(0,el.useRef)(s),f=eA(e=>s?e&&e!==tP&&s&&m.current&&s.parentNode===m.current.parentNode?e:te(s):tP,[s]),(0,el.useEffect)(()=>{m.current=s},[s]),f),ew=function(e,t){void 0===t&&(t=e7);let[i]=e,r=tA(i?ex(i):null),[n,o]=(0,el.useState)(tM);function s(){o(()=>e.length?e.map(e=>ts(e)?r:new tu(t(e),e)):tM)}let a=tk({callback:s});return eR(()=>{null==a||a.disconnect(),s(),e.forEach(e=>null==a?void 0:a.observe(e))},[e]),n}(eb),eD=function(e,t){let{transform:i,...r}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...r}),i):i}(D,{transform:{x:O.x-e_.x,y:O.y-e_.y,scaleX:1,scaleY:1},activatorEvent:J,active:q,activeNodeRect:ed,containerNodeRect:eu,draggingNodeRect:ef,over:eh.current.over,overlayNodeRect:ep.rect,scrollableAncestors:eb,scrollableAncestorRects:ew,windowRect:ey}),ek=es?e$(es,O):null,eT=function(e){let[t,i]=(0,el.useState)(null),r=(0,el.useRef)(e),n=(0,el.useCallback)(e=>{let t=ti(e.target);t&&i(e=>e?(e.set(t,to(t)),new Map(e)):null)},[]);return(0,el.useEffect)(()=>{let t=r.current;if(e!==t){o(t);let s=e.map(e=>{let t=ti(e);return t?(t.addEventListener("scroll",n,{passive:!0}),[t,to(t)]):null}).filter(e=>null!=e);i(s.length?new Map(s):null),r.current=e}return()=>{o(e),o(t)};function o(e){e.forEach(e=>{let t=ti(e);null==t||t.removeEventListener("scroll",n)})}},[n,e]),(0,el.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>e$(e,t),eZ):tc(e):eZ,[e,t])}(eb),eP=tI(eT),eF=tI(eT,[ed]),eN=e$(eD,eP),eH=ef?e5(ef,eD):null,eU=q&&eH?w({active:q,collisionRect:eH,droppableRects:ei,droppableContainers:ee,pointerCoordinates:ek}):null,eq=function(e){if(!e||0===e.length)return null;let[t]=e;return t.id}(eU),[ej,ez]=(0,el.useState)(null),eK=(a=ev?eD:e$(eD,eF),l=null!=(n=null==ej?void 0:ej.rect)?n:null,{...a,scaleX:l&&ed?l.width/ed.width:1,scaleY:l&&ed?l.height/ed.height:1}),eV=(0,el.useRef)(null),eG=(0,el.useCallback)((e,t)=>{let{sensor:i,options:r}=t;if(null==V.current)return;let n=F.get(V.current);if(!n)return;let o=e.nativeEvent,s=new i({active:V.current,activeNode:n,event:o,options:r,context:eh,onAbort(e){if(!F.get(e))return;let{onDragAbort:t}=X.current,i={id:e};null==t||t(i),R({type:"onDragAbort",event:i})},onPending(e,t,i,r){if(!F.get(e))return;let{onDragPending:n}=X.current,o={id:e,constraint:t,initialCoordinates:i,offset:r};null==n||n(o),R({type:"onDragPending",event:o})},onStart(e){let t=V.current;if(null==t)return;let i=F.get(t);if(!i)return;let{onDragStart:r}=X.current,n={activatorEvent:o,active:{id:t,data:i.data,rect:W}};(0,eC.unstable_batchedUpdates)(()=>{null==r||r(n),A(B.Initializing),T({type:$.DragStart,initialCoordinates:e,active:t}),R({type:"onDragStart",event:n}),Q(eV.current),Y(o)})},onMove(e){T({type:$.DragMove,coordinates:e})},onEnd:a($.DragEnd),onCancel:a($.DragCancel)});function a(e){return async function(){let{active:t,collisions:i,over:r,scrollAdjustedTranslate:n}=eh.current,s=null;if(t&&n){let{cancelDrop:a}=X.current;s={activatorEvent:o,active:t,collisions:i,delta:n,over:r},e===$.DragEnd&&"function"==typeof a&&await Promise.resolve(a(s))&&(e=$.DragCancel)}V.current=null,(0,eC.unstable_batchedUpdates)(()=>{T({type:e}),A(B.Uninitialized),ez(null),Q(null),Y(null),eV.current=null;let t=e===$.DragEnd?"onDragEnd":"onDragCancel";if(s){let e=X.current[t];null==e||e(s),R({type:t,event:s})}})}}eV.current=s},[F]),eQ=(0,el.useCallback)((e,t)=>(i,r)=>{let n=i.nativeEvent,o=F.get(r);null!==V.current||!o||n.dndKit||n.defaultPrevented||!0===e(i,t.options,{active:o})&&(n.dndKit={capturedBy:t.sensor},V.current=r,eG(i,t))},[F,eG]),eY=(0,el.useMemo)(()=>b.reduce((e,t)=>{let{sensor:i}=t;return[...e,...i.activators.map(e=>({eventName:e.eventName,handler:eQ(e.handler,t)}))]},[]),[b,eQ]);(0,el.useEffect)(()=>{if(!eS)return;let e=b.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(let t of e)null==t||t()}},b.map(e=>{let{sensor:t}=e;return t})),eR(()=>{ed&&I===B.Initializing&&A(B.Initialized)},[ed,I]),(0,el.useEffect)(()=>{let{onDragMove:e}=X.current,{active:t,activatorEvent:i,collisions:r,over:n}=eh.current;if(!t||!i)return;let o={active:t,activatorEvent:i,collisions:r,delta:{x:eN.x,y:eN.y},over:n};(0,eC.unstable_batchedUpdates)(()=>{null==e||e(o),R({type:"onDragMove",event:o})})},[eN.x,eN.y]),(0,el.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:i,droppableContainers:r,scrollAdjustedTranslate:n}=eh.current;if(!e||null==V.current||!t||!n)return;let{onDragOver:o}=X.current,s=r.get(eq),a=s&&s.rect.current?{id:s.id,rect:s.rect.current,data:s.data,disabled:s.disabled}:null,l={active:e,activatorEvent:t,collisions:i,delta:{x:n.x,y:n.y},over:a};(0,eC.unstable_batchedUpdates)(()=>{ez(a),null==o||o(l),R({type:"onDragOver",event:l})})},[eq]),eR(()=>{eh.current={activatorEvent:J,active:q,activeNode:eo,collisionRect:eH,collisions:eU,droppableRects:ei,draggableNodes:F,draggingNode:em,draggingNodeRect:ef,droppableContainers:N,over:ej,scrollableAncestors:eb,scrollAdjustedTranslate:eN},W.current={initial:ef,translated:eH}},[q,eo,eU,eH,F,em,ef,ei,N,ej,eb,eN]),function(e){let t,{acceleration:i,activator:r=j.Pointer,canScroll:n,draggingRect:o,enabled:s,interval:a=5,order:l=z.TreeOrder,pointerCoordinates:c,scrollableAncestors:d,scrollableAncestorRects:u,delta:h,threshold:g}=e,p=function(e){let{delta:t,disabled:i}=e,r=eL(t);return eA(e=>{if(i||!r||!e)return tx;let n={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[H.Backward]:e.x[H.Backward]||-1===n.x,[H.Forward]:e.x[H.Forward]||1===n.x},y:{[H.Backward]:e.y[H.Backward]||-1===n.y,[H.Forward]:e.y[H.Forward]||1===n.y}}},[i,t,r])}({delta:h,disabled:!s}),[m,f]=(t=(0,el.useRef)(null),[(0,el.useCallback)((e,i)=>{t.current=setInterval(e,i)},[]),(0,el.useCallback)(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]),_=(0,el.useRef)({x:0,y:0}),y=(0,el.useRef)({x:0,y:0}),C=(0,el.useMemo)(()=>{switch(r){case j.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case j.DraggableRect:return o}},[r,o,c]),S=(0,el.useRef)(null),b=(0,el.useCallback)(()=>{let e=S.current;if(!e)return;let t=_.current.x*y.current.x,i=_.current.y*y.current.y;e.scrollBy(t,i)},[]),w=(0,el.useMemo)(()=>l===z.TreeOrder?[...d].reverse():d,[l,d]);(0,el.useEffect)(()=>{if(!s||!d.length||!C)return void f();for(let e of w){if((null==n?void 0:n(e))===!1)continue;let t=u[d.indexOf(e)];if(!t)continue;let{direction:r,speed:o}=function(e,t,i,r,n){let{top:o,left:s,right:a,bottom:l}=i;void 0===r&&(r=10),void 0===n&&(n=tl);let{isTop:c,isBottom:d,isLeft:u,isRight:h}=ta(e),g={x:0,y:0},p={x:0,y:0},m={height:t.height*n.y,width:t.width*n.x};return!c&&o<=t.top+m.height?(g.y=H.Backward,p.y=r*Math.abs((t.top+m.height-o)/m.height)):!d&&l>=t.bottom-m.height&&(g.y=H.Forward,p.y=r*Math.abs((t.bottom-m.height-l)/m.height)),!h&&a>=t.right-m.width?(g.x=H.Forward,p.x=r*Math.abs((t.right-m.width-a)/m.width)):!u&&s<=t.left+m.width&&(g.x=H.Backward,p.x=r*Math.abs((t.left+m.width-s)/m.width)),{direction:g,speed:p}}(e,t,C,i,g);for(let e of["x","y"])p[e][r[e]]||(o[e]=0,r[e]=0);if(o.x>0||o.y>0){f(),S.current=e,m(b,a),_.current=o,y.current=r;return}}_.current={x:0,y:0},y.current={x:0,y:0},f()},[i,b,n,f,s,a,JSON.stringify(C),JSON.stringify(p),m,d,w,u,JSON.stringify(g)])}({...ea,delta:O,draggingRect:eH,pointerCoordinates:ek,scrollableAncestors:eb,scrollableAncestorRects:ew});let eX=(0,el.useMemo)(()=>({active:q,activeNode:eo,activeNodeRect:ed,activatorEvent:J,collisions:eU,containerNodeRect:eu,dragOverlay:ep,draggableNodes:F,droppableContainers:N,droppableRects:ei,over:ej,measureDroppableContainers:er,scrollableAncestors:eb,scrollableAncestorRects:ew,measuringConfiguration:et,measuringScheduled:en,windowRect:ey}),[q,eo,ed,J,eU,eu,ep,F,N,ei,ej,er,eb,ew,et,en,ey]),e0=(0,el.useMemo)(()=>({activatorEvent:J,activators:eY,active:q,activeNodeRect:ed,ariaDescribedById:{draggable:Z},dispatch:T,draggableNodes:F,over:ej,measureDroppableContainers:er}),[J,eY,q,ed,T,Z,F,ej,er]);return el.default.createElement(eB.Provider,{value:P},el.default.createElement(tU.Provider,{value:e0},el.default.createElement(tW.Provider,{value:eX},el.default.createElement(tK.Provider,{value:eK},S)),el.default.createElement(tz,{disabled:(null==y?void 0:y.restoreFocus)===!1})),el.default.createElement(eJ,{...y,hiddenTextDescribedById:Z}))}),tB=(0,el.createContext)(null),tG="button",tQ={timeout:25},tJ={position:"fixed",touchAction:"none"},tY=e=>eU(e)?"transform 250ms ease":void 0;function tX(e,t,i){let r=e.slice();return r.splice(i<0?r.length+i:i,0,r.splice(t,1)[0]),r}function tZ(e){return null!==e&&e>=0}(e,t)=>{let{as:i,activatorEvent:r,adjustScale:n,children:o,className:s,rect:a,style:l,transform:c,transition:d=tY}=e;if(!a)return null;let u=n?c:{...c,scaleX:1,scaleY:1},h={...tJ,width:a.width,height:a.height,top:a.top,left:a.left,transform:eq.Transform.toString(u),transformOrigin:n&&r?function(e,t){let i=eW(e);if(!i)return"0 0";let r={x:(i.x-t.left)/t.width*100,y:(i.y-t.top)/t.height*100};return r.x+"% "+r.y+"%"}(r,a):void 0,transition:"function"==typeof d?d(r):d,...l};return el.default.createElement(i,{className:s,style:h,ref:t},o)},r={styles:{active:{opacity:"0"}}};let t0={scaleX:1,scaleY:1},t1=e=>{var t,i,r,n;let o,s,a,{rects:l,activeNodeRect:c,activeIndex:d,overIndex:u,index:h}=e,g=null!=(t=l[d])?t:c;if(!g)return null;let p=(i=l,r=h,n=d,o=i[r],s=i[r-1],a=i[r+1],o&&(s||a)?n<r?s?o.left-(s.left+s.width):a.left-(o.left+o.width):a?a.left-(o.left+o.width):o.left-(s.left+s.width):0);if(h===d){let e=l[u];return e?{x:d<u?e.left+e.width-(g.left+g.width):e.left-g.left,y:0,...t0}:null}return h>d&&h<=u?{x:-g.width-p,y:0,...t0}:h<d&&h>=u?{x:g.width+p,y:0,...t0}:{x:0,y:0,...t0}},t2=e=>{let{rects:t,activeIndex:i,overIndex:r,index:n}=e,o=tX(t,r,i),s=t[n],a=o[n];return a&&s?{x:a.left-s.left,y:a.top-s.top,scaleX:a.width/s.width,scaleY:a.height/s.height}:null},t6="Sortable",t3=el.default.createContext({activeIndex:-1,containerId:t6,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:t2,disabled:{draggable:!1,droppable:!1}});function t4(e){let{children:t,id:i,items:r,strategy:n=t2,disabled:o=!1}=e,{active:s,dragOverlay:a,droppableRects:l,over:c,measureDroppableContainers:d}=(0,el.useContext)(tW),u=eO(t6,i),h=null!==a.rect,g=(0,el.useMemo)(()=>r.map(e=>"object"==typeof e&&"id"in e?e.id:e),[r]),p=null!=s,m=s?g.indexOf(s.id):-1,f=c?g.indexOf(c.id):-1,_=(0,el.useRef)(g),y=!function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(e[i]!==t[i])return!1;return!0}(g,_.current),C=-1!==f&&-1===m||y,S="boolean"==typeof o?{draggable:o,droppable:o}:o;eR(()=>{y&&p&&d(g)},[y,g,p,d]),(0,el.useEffect)(()=>{_.current=g},[g]);let b=(0,el.useMemo)(()=>({activeIndex:m,containerId:u,disabled:S,disableTransforms:C,items:g,overIndex:f,useDragOverlay:h,sortedRects:g.reduce((e,t,i)=>{let r=l.get(t);return r&&(e[i]=r),e},Array(g.length)),strategy:n}),[m,u,S.draggable,S.droppable,C,g,f,l,h,n]);return el.default.createElement(t3.Provider,{value:b},t)}let t5=e=>{let{id:t,items:i,activeIndex:r,overIndex:n}=e;return tX(i,r,n).indexOf(t)},t8=e=>{let{containerId:t,isSorting:i,wasDragging:r,index:n,items:o,newIndex:s,previousItems:a,previousContainerId:l,transition:c}=e;return!!c&&!!r&&(a===o||n!==s)&&(!!i||s!==n&&t===l)},t7={duration:200,easing:"ease"},t9="transform",ie=eq.Transition.toString({property:t9,duration:0,easing:"linear"}),it={roleDescription:"sortable"};W.Down,W.Right,W.Up,W.Left;var ii=e.i(361031),ir=e.i(940361),io=e.i(209988),is=e.i(260218),ia=e.i(244073),il=e.i(359209),ic=e.i(465458);let id=({transform:e})=>({...e,y:0});function iu({file:e,isActive:t,boundDirs:i,commitDiffs:r,onClose:n,onClick:o,onCopy:s,onRevealInFinder:a,onSetRevealPath:l,onTogglePin:c,onCloseOthers:d,onCloseLeft:u,onCloseRight:h,t:g}){let{attributes:p,listeners:m,setNodeRef:f,transform:_,transition:y,isDragging:C}=function(e){var t,i,r,n;let{animateLayoutChanges:o=t8,attributes:s,disabled:a,data:l,getNewIndex:c=t5,id:d,strategy:u,resizeObserverConfig:h,transition:g=t7}=e,{items:p,containerId:m,activeIndex:f,disabled:_,disableTransforms:y,sortedRects:C,overIndex:S,useDragOverlay:b,strategy:w}=(0,el.useContext)(t3),x=(t=a,i=_,"boolean"==typeof t?{draggable:t,droppable:!1}:{draggable:null!=(r=null==t?void 0:t.draggable)?r:i.draggable,droppable:null!=(n=null==t?void 0:t.droppable)?n:i.droppable}),D=p.indexOf(d),E=(0,el.useMemo)(()=>({sortable:{containerId:m,index:D,items:p},...l}),[m,l,D,p]),k=(0,el.useMemo)(()=>p.slice(p.indexOf(d)),[p,d]),{rect:T,node:R,isOver:P,setNodeRef:I}=function(e){let{data:t,disabled:i=!1,id:r,resizeObserverConfig:n}=e,o=eO("Droppable"),{active:s,dispatch:a,over:l,measureDroppableContainers:c}=(0,el.useContext)(tU),d=(0,el.useRef)({disabled:i}),u=(0,el.useRef)(!1),h=(0,el.useRef)(null),g=(0,el.useRef)(null),{disabled:p,updateMeasurementsFor:m,timeout:f}={...tQ,...n},_=eI(null!=m?m:r),y=tk({callback:(0,el.useCallback)(()=>{if(!u.current){u.current=!0;return}null!=g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{c(Array.isArray(_.current)?_.current:[_.current]),g.current=null},f)},[f]),disabled:p||!s}),[C,S]=eM((0,el.useCallback)((e,t)=>{y&&(t&&(y.unobserve(t),u.current=!1),e&&y.observe(e))},[y])),b=eI(t);return(0,el.useEffect)(()=>{y&&C.current&&(y.disconnect(),u.current=!1,y.observe(C.current))},[C,y]),(0,el.useEffect)(()=>(a({type:$.RegisterDroppable,element:{id:r,key:o,disabled:i,node:C,rect:h,data:b}}),()=>a({type:$.UnregisterDroppable,key:o,id:r})),[r]),(0,el.useEffect)(()=>{i!==d.current.disabled&&(a({type:$.SetDroppableDisabled,id:r,key:o,disabled:i}),d.current.disabled=i)},[r,o,i,a]),{active:s,rect:h,isOver:(null==l?void 0:l.id)===r,node:C,over:l,setNodeRef:S}}({id:d,data:E,disabled:x.droppable,resizeObserverConfig:{updateMeasurementsFor:k,...h}}),{active:A,activatorEvent:M,activeNodeRect:L,attributes:F,setNodeRef:O,listeners:N,isDragging:H,over:U,setActivatorNodeRef:W,transform:q}=function(e){let{id:t,data:i,disabled:r=!1,attributes:n}=e,o=eO("Draggable"),{activators:s,activatorEvent:a,active:l,activeNodeRect:c,ariaDescribedById:d,draggableNodes:u,over:h}=(0,el.useContext)(tU),{role:g=tG,roleDescription:p="draggable",tabIndex:m=0}=null!=n?n:{},f=(null==l?void 0:l.id)===t,_=(0,el.useContext)(f?tK:tB),[y,C]=eM(),[S,b]=eM(),w=(0,el.useMemo)(()=>s.reduce((e,i)=>{let{eventName:r,handler:n}=i;return e[r]=e=>{n(e,t)},e},{}),[s,t]),x=eI(i);return eR(()=>(u.set(t,{id:t,key:o,node:y,activatorNode:S,data:x}),()=>{let e=u.get(t);e&&e.key===o&&u.delete(t)}),[u,t]),{active:l,activatorEvent:a,activeNodeRect:c,attributes:(0,el.useMemo)(()=>({role:g,tabIndex:m,"aria-disabled":r,"aria-pressed":!!f&&g===tG||void 0,"aria-roledescription":p,"aria-describedby":d.draggable}),[r,g,m,f,p,d.draggable]),isDragging:f,listeners:r?void 0:w,node:y,over:h,setNodeRef:C,setActivatorNodeRef:b,transform:_}}({id:d,data:E,attributes:{...it,...s},disabled:x.draggable}),j=function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return(0,el.useMemo)(()=>e=>{t.forEach(t=>t(e))},t)}(I,O),z=!!A,K=z&&!y&&tZ(f)&&tZ(S),V=!b&&H,B=V&&K?q:null,G=K?null!=B?B:(null!=u?u:w)({rects:C,activeNodeRect:L,activeIndex:f,overIndex:S,index:D}):null,Q=tZ(f)&&tZ(S)?c({id:d,items:p,activeIndex:f,overIndex:S}):D,J=null==A?void 0:A.id,Y=(0,el.useRef)({activeId:J,items:p,newIndex:Q,containerId:m}),X=p!==Y.current.items,Z=o({active:A,containerId:m,isDragging:H,isSorting:z,id:d,index:D,items:p,newIndex:Y.current.newIndex,previousItems:Y.current.items,previousContainerId:Y.current.containerId,transition:g,wasDragging:null!=Y.current.activeId}),ee=function(e){let{disabled:t,index:i,node:r,rect:n}=e,[o,s]=(0,el.useState)(null),a=(0,el.useRef)(i);return eR(()=>{if(!t&&i!==a.current&&r.current){let e=n.current;if(e){let t=e7(r.current,{ignoreTransform:!0}),i={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(i.x||i.y)&&s(i)}}i!==a.current&&(a.current=i)},[t,i,r,n]),(0,el.useEffect)(()=>{o&&s(null)},[o]),o}({disabled:!Z,index:D,node:R,rect:T});return(0,el.useEffect)(()=>{z&&Y.current.newIndex!==Q&&(Y.current.newIndex=Q),m!==Y.current.containerId&&(Y.current.containerId=m),p!==Y.current.items&&(Y.current.items=p)},[z,Q,m,p]),(0,el.useEffect)(()=>{if(J===Y.current.activeId)return;if(null!=J&&null==Y.current.activeId){Y.current.activeId=J;return}let e=setTimeout(()=>{Y.current.activeId=J},50);return()=>clearTimeout(e)},[J]),{active:A,activeIndex:f,attributes:F,data:E,rect:T,index:D,newIndex:Q,items:p,isOver:P,isSorting:z,isDragging:H,listeners:N,node:R,overIndex:S,over:U,setNodeRef:j,setActivatorNodeRef:W,setDroppableNodeRef:I,setDraggableNodeRef:O,transform:null!=ee?ee:G,transition:ee||X&&Y.current.newIndex===D?ie:(!V||eU(M))&&g&&(z||Z)?eq.Transition.toString({...g,property:t9}):void 0}}({id:e.path}),S={transform:eq.Transform.toString(_),transition:y};return(0,es.jsxs)(ir.ContextMenu,{children:[(0,es.jsx)(ir.ContextMenuTrigger,{children:(0,es.jsxs)("div",{ref:f,style:S,...p,...m,className:(0,ic.cn)("flex items-center gap-1 px-3 py-1.5 text-xs border-r cursor-grab shrink-0 select-none",t?"bg-background text-foreground border-b-2 border-b-primary":"text-muted-foreground hover:bg-accent",C&&"opacity-50 shadow-lg z-10",e.pinned&&"border-l-2 border-l-primary/60"),onClick:o,children:[e.pinned&&(0,es.jsx)(ey,{size:10,className:"text-primary/70 shrink-0 -ml-1 mr-0.5"}),(0,em.isCommitDiffPath)(e.path)?(0,es.jsx)(ev.GitCommitHorizontal,{size:14,className:"text-blue-500 shrink-0"}):(0,es.jsx)(il.FileIconImg,{name:e.name}),e.modified&&!e.pinned&&(0,es.jsx)("span",{className:"size-1.5 rounded-full bg-orange-400 shrink-0"}),(0,es.jsx)("span",{className:"truncate max-w-32",children:(0,em.isCommitDiffPath)(e.path)&&r[(0,em.getCommitHashFromPath)(e.path)]?.message?.split("\n")[0]?.slice(0,30)||e.name}),(0,es.jsx)("button",{className:"ml-1 hover:bg-accent rounded p-0.5",onClick:t=>n(t,e),children:(0,es.jsx)(ef.X,{className:"size-3"})})]})}),(0,es.jsxs)(ir.ContextMenuContent,{children:[(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>l(e.path),children:g("revealInTree")}),(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>a(e.path),children:g("revealInFinder")}),(0,es.jsx)(ir.ContextMenuSeparator,{}),(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>{var t;return s((t=e.path,0===i.length?t:i[0].replace(/\/+$/,"")+"/"+t))},children:g("copyFilePath")}),(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>s(e.path),children:g("copyRelativePath")}),(0,es.jsx)(ir.ContextMenuSeparator,{}),(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>c(e.path),children:g(e.pinned?"unpin":"pin")}),(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>d(e.path),children:g("closeOthers")}),(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>u(e.path),children:g("closeLeft")}),(0,es.jsx)(ir.ContextMenuItem,{onClick:()=>h(e.path),children:g("closeRight")})]})]})}function ih({workspaceId:e}){let{openFiles:t,activeFilePath:i,setActiveFile:r,closeFile:n,saveFile:o,setRevealPath:s,commitDiffs:a,togglePin:l,reorderFiles:c,closeOthers:d,closeToLeft:u,closeToRight:h}=(0,em.useEditorStore)(),g=(0,ii.useWorkspaceStore)(e=>e.workspaces).find(t=>t.id===e),p=g?.boundDirs??[],m=(0,ia.useTranslations)("editor"),[f,_]=(0,el.useState)(null),y=function(){for(var e=arguments.length,t=Array(e),i=0;i<e;i++)t[i]=arguments[i];return(0,el.useMemo)(()=>[...t].filter(e=>null!=e),[...t])}(eX(tw,{activationConstraint:{distance:5}}),eX(t_)),C=async e=>{await navigator.clipboard.writeText(e),eh.toast.success(m("copied"))},S=t=>{fetch(`/api/workspaces/${e}/files/reveal?path=${encodeURIComponent(t)}`,{method:"POST"})},b=(t,i)=>{t.stopPropagation(),i.modified?_(i):n(e,i.path)},w=async()=>{f&&(await o(e,f.path),n(e,f.path),_(null))},x=(0,el.useCallback)(t=>{let{active:i,over:r}=t;if(!r||i.id===r.id)return;let n=em.useEditorStore.getState().openFiles,o=n.findIndex(e=>e.path===String(i.id)),s=n.findIndex(e=>e.path===String(r.id));if(-1===o||-1===s)return;let a=tX(n,o,s),l=a.findIndex(e=>e.path===String(i.id)),d=a[l],u=l>0&&a[l-1].pinned,h=!u&&l<a.length-1&&a[l+1].pinned;d&&(a[l]={...d,pinned:u||h}),c(e,[...a.filter(e=>e.pinned),...a.filter(e=>!e.pinned)])},[e,c]);return 0===t.length?null:(0,es.jsxs)(es.Fragment,{children:[(0,es.jsx)(tV,{sensors:y,collisionDetection:e6,modifiers:[id],onDragEnd:x,children:(0,es.jsx)(t4,{items:t.map(e=>e.path),strategy:t1,children:(0,es.jsx)("div",{className:"flex items-center border-b bg-muted/30 overflow-x-auto",children:t.map(t=>(0,es.jsx)(iu,{file:t,isActive:t.path===i,boundDirs:p,commitDiffs:a,onClose:b,onClick:()=>r(e,t.path),onCopy:C,onRevealInFinder:S,onSetRevealPath:s,onTogglePin:t=>l(e,t),onCloseOthers:t=>d(e,t),onCloseLeft:t=>u(e,t),onCloseRight:t=>h(e,t),t:e=>m(e)},t.path))})})}),(0,es.jsx)(io.Dialog,{open:!!f,onOpenChange:e=>!e&&_(null),children:(0,es.jsxs)(io.DialogContent,{children:[(0,es.jsxs)(io.DialogHeader,{children:[(0,es.jsx)(io.DialogTitle,{children:m("saveChangesTitle")}),(0,es.jsx)(io.DialogDescription,{children:m("saveChangesDesc",{name:f?.name??""})})]}),(0,es.jsxs)(io.DialogFooter,{children:[(0,es.jsx)(is.Button,{variant:"outline",onClick:()=>_(null),children:m("cancel")}),(0,es.jsx)(is.Button,{variant:"destructive",onClick:()=>{f&&(n(e,f.path),_(null))},children:m("discardChanges")}),(0,es.jsx)(is.Button,{onClick:w,children:m("save")})]})]})})]})}var ig=e.i(917955);function ip({editorRef:e,workspaceId:t,isReadOnly:i,onToggleReadOnly:r,isFullscreen:n,onToggleFullscreen:o,wordWrap:s,onToggleWordWrap:a,minimap:l,onToggleMinimap:c}){let{saveFile:d,activeFilePath:u}=(0,em.useEditorStore)(),h=(0,ia.useTranslations)("editor"),g=t=>{requestAnimationFrame(()=>{let i=e.current;i&&(i.focus(),i.getAction(t)?.run())})};return(0,es.jsxs)("div",{className:"flex items-center h-7 border-b bg-background shrink-0",children:[(0,es.jsxs)(ig.DropdownMenu,{children:[(0,es.jsx)(ig.DropdownMenuTrigger,{className:"px-3 h-full text-xs hover:bg-accent outline-none cursor-default",children:h("menuFile")}),(0,es.jsx)(ig.DropdownMenuContent,{align:"start",sideOffset:0,children:(0,es.jsxs)(ig.DropdownMenuItem,{onClick:()=>u&&d(t,u),children:[h("menuSave"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌘S"})]})})]}),(0,es.jsxs)(ig.DropdownMenu,{children:[(0,es.jsx)(ig.DropdownMenuTrigger,{className:"px-3 h-full text-xs hover:bg-accent outline-none cursor-default",children:h("menuEdit")}),(0,es.jsxs)(ig.DropdownMenuContent,{align:"start",sideOffset:0,children:[(0,es.jsxs)(ig.DropdownMenuItem,{onClick:()=>g("undo"),children:[h("menuUndo"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌘Z"})]}),(0,es.jsxs)(ig.DropdownMenuItem,{onClick:()=>g("redo"),children:[h("menuRedo"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⇧⌘Z"})]}),(0,es.jsx)(ig.DropdownMenuSeparator,{}),(0,es.jsxs)(ig.DropdownMenuItem,{onClick:()=>g("editor.action.clipboardCutAction"),children:[h("menuCut"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌘X"})]}),(0,es.jsxs)(ig.DropdownMenuItem,{onClick:()=>g("editor.action.clipboardCopyAction"),children:[h("menuCopy"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌘C"})]}),(0,es.jsxs)(ig.DropdownMenuItem,{onClick:()=>g("editor.action.clipboardPasteAction"),children:[h("menuPaste"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌘V"})]}),(0,es.jsx)(ig.DropdownMenuSeparator,{}),(0,es.jsxs)(ig.DropdownMenuItem,{onClick:()=>g("actions.find"),children:[h("menuFind"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌘F"})]}),(0,es.jsxs)(ig.DropdownMenuItem,{disabled:i,onClick:()=>g("editor.action.startFindReplaceAction"),children:[h("menuReplace"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌥⌘F"})]})]})]}),(0,es.jsxs)(ig.DropdownMenu,{children:[(0,es.jsx)(ig.DropdownMenuTrigger,{className:"px-3 h-full text-xs hover:bg-accent outline-none cursor-default",children:h("menuView")}),(0,es.jsxs)(ig.DropdownMenuContent,{align:"start",sideOffset:0,children:[(0,es.jsxs)(ig.DropdownMenuItem,{onClick:o,children:[h(n?"exitFullscreen":"menuFullscreen"),(0,es.jsx)(ig.DropdownMenuShortcut,{children:"⌃⌘F"})]}),(0,es.jsx)(ig.DropdownMenuSeparator,{}),(0,es.jsx)(ig.DropdownMenuItem,{onClick:a,children:h(s?"disableWordWrap":"enableWordWrap")}),(0,es.jsx)(ig.DropdownMenuItem,{onClick:c,children:h(l?"disableMinimap":"enableMinimap")})]})]}),(0,es.jsx)("div",{className:"flex-1"}),(0,es.jsx)("button",{onClick:r,className:"flex items-center gap-1 px-2 h-full text-xs text-muted-foreground hover:text-foreground hover:bg-accent outline-none cursor-default",title:h(i?"enableEdit":"disableEdit"),children:i?"🔒":"✏️"})]})}var im=e.i(950396),iv=e.i(650654),i_=e.i(992764),iy=e.i(381253),iC=e.i(613812);function iS({diffs:e,message:t}){let[i,r]=(0,el.useState)(new Set);return 0===e.length?(0,es.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"No changes"}):(0,es.jsxs)("div",{className:"h-full overflow-auto",children:[(0,es.jsxs)("div",{className:"text-xs text-muted-foreground px-3 py-1.5 border-b bg-muted/30",children:[t.split("\n")[0]," · ",e.length," file",e.length>1?"s":""]}),e.map(e=>{let t=i.has(e.path);return(0,es.jsxs)("div",{className:"border-b last:border-b-0",children:[(0,es.jsxs)("button",{className:"flex items-center gap-1.5 w-full px-2 py-1 text-xs font-mono hover:bg-accent/50 text-left",onClick:()=>{var t;return t=e.path,void r(e=>{let i=new Set(e);return i.has(t)?i.delete(t):i.add(t),i})},children:[t?(0,es.jsx)(i_.ChevronRight,{size:13}):(0,es.jsx)(iv.ChevronDown,{size:13}),(0,es.jsx)(iy.FileCode,{size:13,className:"text-muted-foreground shrink-0"}),(0,es.jsx)("span",{className:"truncate",children:e.path})]}),!t&&(0,es.jsx)("div",{className:"h-64",children:(0,es.jsx)(iC.DiffViewer,{oldContent:e.oldContent,newContent:e.newContent,path:e.path,isBinary:e.isBinary})})]},e.path)})]})}let ib=(0,e_.default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);var iw=e.i(332277);e.i(836406),e.i(859073),e.i(664195),e.i(347410),e.i(768224),e.i(93151),e.i(158555),e.i(517965),e.i(742150),e.i(500127),e.i(874243),e.i(686882),e.i(127819),e.i(640883),e.i(604257),e.i(869416),e.i(116427),e.i(836354),e.i(473864),e.i(318209),e.i(172781),e.i(250182),e.i(131624),e.i(238015),e.i(534662),e.i(433140),e.i(663159),e.i(119260),e.i(877059),e.i(808e3),e.i(645831),e.i(764894),e.i(551501),e.i(337525),e.i(335283),e.i(615239),e.i(324240),e.i(33999),e.i(745026),e.i(637114),e.i(705067),e.i(948539),e.i(768797),e.i(633666),e.i(405261),e.i(231009),e.i(72895),e.i(862215),e.i(273544),e.i(844168),e.i(843210),e.i(767312),e.i(116013),e.i(735564),e.i(44118),e.i(486172),e.i(321915),e.i(171733),e.i(6838),e.i(45048),e.i(526568),e.i(646675),e.i(426208),e.i(772315),e.i(137475),e.i(504183),e.i(656092),e.i(126391),e.i(925665),e.i(756500);var ix=e.i(680590);class iD{constructor(e,t,i){this._onDidChange=new ix.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}let iE={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},ik={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},iT=new iD("css",iE,ik),iR=new iD("scss",iE,ik),iP=new iD("less",iE,ik);function iI(){return e.A(771485)}ix.languages.onLanguage("less",()=>{iI().then(e=>e.setupMode(iP))}),ix.languages.onLanguage("scss",()=>{iI().then(e=>e.setupMode(iR))}),ix.languages.onLanguage("css",()=>{iI().then(e=>e.setupMode(iT))}),e.s(["cssDefaults",0,iT,"lessDefaults",0,iP,"scssDefaults",0,iR],312705);var iA=e.i(312705);class iM{constructor(e,t,i){this._onDidChange=new ix.Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}let iL={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},suggest:{},data:{useDefaultDataProvider:!0}};function iF(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===iO,documentFormattingEdits:e===iO,documentRangeFormattingEdits:e===iO}}let iO="html",iN="handlebars",i$="razor",iH=iK(iO,iL,iF(iO)),iU=iH.defaults,iW=iK(iN,iL,iF(iN)),iq=iW.defaults,ij=iK(i$,iL,iF(i$)),iz=ij.defaults;function iK(t,i=iL,r=iF(t)){let n,o=new iM(t,i,r),s=ix.languages.onLanguage(t,async()=>{n=(await e.A(918487)).setupMode(o)});return{defaults:o,dispose(){s.dispose(),n?.dispose(),n=void 0}}}e.s(["handlebarDefaults",0,iq,"handlebarLanguageService",0,iW,"htmlDefaults",0,iU,"htmlLanguageService",0,iH,"razorDefaults",0,iz,"razorLanguageService",0,ij,"registerHTMLLanguageService",0,iK],994073);var iV=e.i(994073);let iB=new class{constructor(e,t,i){this._onDidChange=new ix.Emitter,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}}("json",{validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},{documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0});function iG(){return e.A(134924)}ix.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),ix.languages.onLanguage("json",()=>{iG().then(e=>e.setupMode(iB))}),e.s(["getWorker",0,()=>iG().then(e=>e.getWorker()),"jsonDefaults",0,iB],632514);var iQ=e.i(632514),iJ=e.i(551959);let iY={},iX={};class iZ{static getOrCreate(e){return iX[e]||(iX[e]=new iZ(e)),iX[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,iY[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function i0(e){let t=e.id;iY[t]=e,ix.languages.register(e);let i=iZ.getOrCreate(t);ix.languages.registerTokensProviderFactory(t,{create:async()=>(await i.load()).language}),ix.languages.onLanguageEncountered(t,async()=>{let e=await i.load();ix.languages.setLanguageConfiguration(t,e.conf)})}i0({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>e.A(635811)}),i0({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>e.A(264749)}),i0({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>e.A(317605)}),i0({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>e.A(704590)}),i0({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>e.A(153742)}),i0({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>e.A(629448)}),i0({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>e.A(124011)}),i0({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>e.A(331538)}),i0({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>e.A(940085)}),i0({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>e.A(940085)}),i0({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>e.A(158993)}),i0({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>e.A(189140)}),i0({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>e.A(12065)}),i0({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>e.A(546118)}),i0({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>e.A(468355)}),i0({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>e.A(292453)}),i0({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>e.A(699591)}),i0({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>e.A(357037)}),i0({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>e.A(766246)}),i0({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>e.A(301403)}),i0({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>e.A(806910).then(e=>e.TagAutoInterpolationDollar)}),i0({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>e.A(806910).then(e=>e.TagAngleInterpolationDollar)}),i0({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>e.A(806910).then(e=>e.TagBracketInterpolationDollar)}),i0({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>e.A(806910).then(e=>e.TagAngleInterpolationBracket)}),i0({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>e.A(806910).then(e=>e.TagBracketInterpolationBracket)}),i0({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>e.A(806910).then(e=>e.TagAutoInterpolationDollar)}),i0({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>e.A(806910).then(e=>e.TagAutoInterpolationBracket)}),i0({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>e.A(961253)}),i0({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>e.A(264559)}),i0({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>e.A(30518)}),i0({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>e.A(768474)}),i0({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>e.A(504826)}),i0({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>e.A(524721)}),i0({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>e.A(365570)}),i0({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>e.A(787804)}),i0({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>e.A(979480)}),i0({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>e.A(850064)}),i0({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>e.A(236120)}),i0({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>e.A(769302)}),i0({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>e.A(511259)}),i0({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>e.A(778189)}),i0({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>e.A(391583)}),i0({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>e.A(4206)}),i0({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>e.A(816552)}),i0({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>e.A(718384)}),i0({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>e.A(284913)}),i0({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>e.A(581714)}),i0({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>e.A(261034)}),i0({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>e.A(93611)}),i0({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>e.A(862727)}),i0({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>e.A(697377)}),i0({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>e.A(347750)}),i0({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>e.A(461792)}),i0({id:"pla",extensions:[".pla"],loader:()=>e.A(84791)}),i0({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>e.A(590375)}),i0({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>e.A(146984)}),i0({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>e.A(64443)}),i0({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>e.A(402493)}),i0({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>e.A(294884)}),i0({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>e.A(445468)}),i0({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>e.A(250392)}),i0({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>e.A(35431)}),i0({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>e.A(185498)}),i0({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>e.A(288688)}),i0({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>e.A(257081)}),i0({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>e.A(434615)}),i0({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>e.A(611325)}),i0({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>e.A(199304)}),i0({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>e.A(424725)}),i0({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>e.A(575894)}),i0({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>e.A(440673)}),i0({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>e.A(647192)}),i0({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>e.A(30427)}),i0({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>e.A(509854)}),i0({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>e.A(641974)}),i0({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>e.A(66225)}),i0({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>e.A(252541)}),i0({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>e.A(769837)}),i0({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>e.A(215611)}),i0({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>e.A(316227)}),i0({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>e.A(316227)}),i0({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>e.A(240972)}),i0({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>e.A(216930)}),i0({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>e.A(755019)}),i0({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>e.A(717277)}),i0({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>e.A(308554)}),i0({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>e.A(943272)}),i0({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",aliases:["XML","xml"],mimetypes:["text/xml","application/xml","application/xaml+xml","application/xml-dtd"],loader:()=>e.A(867512)}),i0({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>e.A(611958)});var i1=Object.defineProperty,i2=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?i1(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};(X||(X={})).create=function(e){return e};var i6=Z||(Z={});function i3(e){return -32099<=e&&e<=-32e3}i6.parseError=-32700,i6.invalidRequest=-32600,i6.methodNotFound=-32601,i6.invalidParams=-32602,i6.internalError=-32603,i6.isServerError=i3,i6.serverError=function(e){if(!i3(e))throw Error("Invalid range for a server error.");return e},i6.unexpectedServerError=-32e3,i6.isApplicationError=function(e){return!0},i6.applicationError=function(e){return e},i6.genericApplicationError=-320100;var i4=class{constructor(){i2(this,"listeners",new Set),i2(this,"event",e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},i5=class{constructor(e){i2(this,"_value"),i2(this,"eventEmitter"),this._value=e,this.eventEmitter=new i4}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.eventEmitter.fire(e))}get onChange(){return this.eventEmitter.event}};function i8(e,t,i){return e instanceof Set?e.add(t):e.set(t,i),{dispose:()=>e.delete(t)}}var i7=class{constructor(){i2(this,"_state","none"),i2(this,"promise"),i2(this,"resolve",()=>{}),i2(this,"reject",()=>{}),this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}get state(){return this._state}},i9=(G=class{constructor(){i2(this,"_unprocessedMessages",[]),i2(this,"_messageListener"),i2(this,"id",G.id++),i2(this,"_state",new i5({state:"open"})),i2(this,"state",this._state)}setListener(e){if(this._messageListener=e,e)for(;this._unprocessedMessages.length>0&&void 0!==this._messageListener;){let e=this._unprocessedMessages.shift();this._messageListener(e)}}send(e){return this._sendImpl(e)}_dispatchReceivedMessage(e){0===this._unprocessedMessages.length&&this._messageListener?this._messageListener(e):this._unprocessedMessages.push(e)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(e){return new re(this,e??new rt)}},i2(G,"id",0),G),re=class{constructor(e,t){i2(this,"baseStream"),i2(this,"logger"),this.baseStream=e,this.logger=t}get state(){return this.baseStream.state}setListener(e){void 0===e?this.baseStream.setListener(void 0):this.baseStream.setListener(t=>{this.logger.log(this.baseStream,"incoming",t),e(t)})}send(e){return this.logger.log(this.baseStream,"outgoing",e),this.baseStream.send(e)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},rt=class{log(e,t,i){console.log(`${"incoming"===t?"<-":"->"} [${e.toString()}] ${JSON.stringify(i)}`)}},ri=class e{constructor(e){i2(this,"connect"),this.connect=e}mapContext(t){return new e(e=>{var i,r;return this.connect(e?(i=e,r=t,{handleNotification:(e,t)=>i.handleNotification(e,r(t)),handleRequest:(e,t,n)=>i.handleRequest(e,t,r(n))}):void 0)})}},rr=class e{constructor(e,t,i){i2(this,"_stream"),i2(this,"_listener"),i2(this,"_logger"),i2(this,"_unprocessedResponses",new Map),i2(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(e=>{void 0!==e.method?void 0===e.id?this._processNotification(e):this._processRequest(e):this._processResponse(e)})}static createChannel(t,i){let r=!1;return new ri(n=>{if(r)throw Error(`A channel to the stream ${t} was already constructed!`);return r=!0,new e(t,n,i)})}get state(){return this._stream.state}async _processNotification(e){if(void 0!==e.id)throw Error();if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){let t,i;if(void 0===e.id)throw Error();if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(i){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${i}`,message:e,exception:i}),t={error:{code:Z.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:Z.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};i="result"in t?{jsonrpc:"2.0",id:e.id,result:t.result}:{jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){let t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){let r={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(r.id),new Promise((e,t)=>{let i=""+r.id;this._unprocessedResponses.set(i,i=>{"result"in i?e({result:i.result}):(i.error||t(Error("Response had neither 'result' nor 'error' field set.")),e({error:i.error}))}),this._stream.send(r).then(void 0,e=>{this._unprocessedResponses.delete(i),t(e)})})}sendNotification(e,t){let i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}};(m=ee||(ee={})).sAny=function(){return{deserializeFromJson:e=>({hasErrors:!1,value:e}),serializeToJson:e=>e}},m.sEmptyObject=function(){return{deserializeFromJson:e=>({hasErrors:!1,value:{}}),serializeToJson:e=>({})}},m.sVoidFromNull=function(){return{deserializeFromJson:e=>({hasErrors:!1,value:void 0}),serializeToJson:e=>null}};let rn=Symbol("OptionalMethodNotFound");var ro=class{contextualize(e){return new rs(this,e)}},rs=class extends ro{constructor(e,t){super(),i2(this,"underylingTypedChannel"),i2(this,"converters"),this.underylingTypedChannel=e,this.converters=t}async request(e,t,i){let r=await this.converters.getSendContext(i);return this.underylingTypedChannel.request(e,t,r)}async notify(e,t,i){let r=await this.converters.getSendContext(i);return this.underylingTypedChannel.notify(e,t,r)}registerNotificationHandler(e,t){return this.underylingTypedChannel.registerNotificationHandler(e,async(e,i)=>await t(e,await this.converters.getNewContext(i)))}registerRequestHandler(e,t){return this.underylingTypedChannel.registerRequestHandler(e,async(e,i,r)=>await t(e,i,await this.converters.getNewContext(r)))}},ra=class e extends ro{constructor(e,t={}){super(),i2(this,"channelCtor"),i2(this,"_requestSender"),i2(this,"_handler",new Map),i2(this,"_unknownNotificationHandler",new Set),i2(this,"_timeout"),i2(this,"sendExceptionDetails",!1),i2(this,"_logger"),i2(this,"listeningDeferred",new i7),i2(this,"onListening",this.listeningDeferred.promise),i2(this,"_requestDidErrorEventEmitter",new i4),i2(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=function(e){let t=setTimeout(e,1e3);return{dispose:()=>clearTimeout(t)}}(()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(t,i={}){return new e(rr.createChannel(t,i.logger),i)}startListen(){if(this._requestSender)throw Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){let r=this._handler.get(e.method);if(!r)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:Z.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if("request"!=r.kind){let t=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:t,data:{requestObject:e}}),{error:{code:Z.invalidRequest,message:t,data:{method:e.method}}}}let n=r.requestType.paramsSerializer.deserializeFromJson(e.params);if(n.hasErrors){let t=`Got invalid params: ${n.errorMessage}`;return this._logger&&this._logger.debug({text:t,data:{requestObject:e,errorMessage:n.errorMessage}}),{error:{code:Z.invalidParams,message:t,data:{errors:n.errorMessage}}}}{let o,s=n.value;try{let e=await r.handler(s,t,i);if("error"in e||"errorMessage"in e){let t=e.error?r.requestType.errorSerializer.serializeToJson(e.error):void 0;o={error:{code:e.errorCode||Z.genericApplicationError,message:e.errorMessage||"An error was returned",data:t}}}else o={result:r.requestType.resultSerializer.serializeToJson(e.ok)}}catch(t){t instanceof rc?o={error:{code:t.code,message:t.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${t}.`,exception:t,data:{requestObject:e}}),o={error:{code:Z.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${t}.`:"Server has thrown an unexpected exception"}})}return o}}async handleNotification(e,t){let i=this._handler.get(e.method);if(!i){for(let t of this._unknownNotificationHandler)t(e);0===this._unknownNotificationHandler.size&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if("notification"!=i.kind){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}let r=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(r.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${r}`,data:{requestObject:e,errorMessage:r.errorMessage}});return}let n=r.value;for(let r of i.handlers)try{r(n,t)}catch(t){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${t}.`,exception:t,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return i8(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw Error(`Handler with method "${e.method}" already registered.`);return i8(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(i){if("notification"!==i.kind)throw Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw Error(`Method "${e.method}" was registered for a different type.`)}else i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);return i8(i.handlers,t)}getRegisteredTypes(){let e=[];for(let t of this._handler.values())"notification"===t.kind?e.push(t.notificationType):"request"===t.kind&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw Error("Impossible");let r=e.paramsSerializer.serializeToJson(t);rl(r);let n=await this._requestSender.sendRequest({method:e.method,params:r},i);if("error"in n){let t;if(e.isOptional&&n.error.code===Z.methodNotFound)return rn;if(void 0!==n.error.data){let i=e.errorSerializer.deserializeFromJson(n.error.data);if(i.hasErrors)throw Error(i.errorMessage);t=i.value}else t=void 0;let i=new rc(n.error.message,t,n.error.code);throw this._requestDidErrorEventEmitter.fire({error:i}),i}{let t=e.resultSerializer.deserializeFromJson(n.result);if(!t.hasErrors)return t.value;throw Error("Could not deserialize response: "+t.errorMessage+`
67
+
68
+ ${JSON.stringify(n,null,2)}`)}}async notify(e,t,i){if(!this.checkChannel(this._requestSender))throw Error();let r=e.paramsSerializer.serializeToJson(t);rl(r),this._requestSender.sendNotification({method:e.method,params:r},i)}};function rl(e){if(null!==e&&Array.isArray(e)&&"object"!=typeof e)throw Error("Invalid value! Only null, array and object is allowed.")}var rc=class e extends Error{constructor(t,i,r=Z.genericApplicationError){super(t),i2(this,"data"),i2(this,"code"),this.data=i,this.code=r,Object.setPrototypeOf(this,e.prototype)}},rd=class e{constructor(e,t,i,r,n=!1){i2(this,"method"),i2(this,"paramsSerializer"),i2(this,"resultSerializer"),i2(this,"errorSerializer"),i2(this,"isOptional"),i2(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=i,this.errorSerializer=r,this.isOptional=n}withMethod(t){return new e(t,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new e(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},ru=class e{constructor(e,t){i2(this,"method"),i2(this,"paramsSerializer"),i2(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(t){return new e(t,this.paramsSerializer)}};function rh(e){return new rd((e||{}).method,ee.sAny(),ee.sAny(),ee.sAny())}function rg(e){return new ru((e||{}).method,ee.sAny())}let rp=Symbol();var rm=(Q=class{constructor(e){i2(this,"error"),i2(this,rp),this.error=e}},i2(Q,"factory",e=>new Q(e)),Q);function rf(e){let t={};for(let[i,r]of Object.entries(e)){let e=r.method?r.method:i;t[i]=r.withMethod(e)}return t}var rv=class e{constructor(e=[],t,i){i2(this,"tags"),i2(this,"server"),i2(this,"client"),this.tags=e,this.server=t,this.client=i}_onlyDesignTime(){return Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,i,r){let n=this.buildCounterpart(e,i),o=this.registerHandlers(e,t,r,n);return{counterpart:n,dispose:()=>o.dispose()}}buildCounterpart(e,t){let i={};for(let[r,n]of Object.entries(t)){let t;t="request"===n.kind?n.isOptional?async(t,i)=>{void 0===t&&(t={});try{return await e.request(n,t,i)}catch(e){if(e&&e.code===Z.methodNotFound)return rn;throw e}}:(t,i)=>(void 0===t&&(t={}),e.request(n,t,i)):(t,i)=>(void 0===t&&(t={}),e.notify(n,t,i)),i[r]=t}return i}registerHandlers(e,t,i,r){let n=[];for(let[o,s]of Object.entries(t))if("request"===s.kind){let t=i[o];if(!t)continue;let a=this.createRequestHandler(r,t);n.push(e.registerRequestHandler(s,a))}else{let t=i[o];t&&n.push(e.registerNotificationHandler(s,(e,i)=>{t(e,{context:i,counterpart:r})}))}return{dispose:()=>n.forEach(e=>e.dispose())}}createRequestHandler(e,t){return async(i,r,n)=>{let o=await t(i,{context:n,counterpart:e,newErr:rm.factory,requestId:r});return o instanceof rm?o.error:{ok:o}}}static getServerFromStream(e,t,i,r){let n=ra.fromTransport(t,i),{server:o}=e.getServer(n,r);return n.startListen(),{channel:n,server:o}}static registerServerToStream(e,t,i,r){let n=ra.fromTransport(t,i),{client:o}=e.registerServer(n,r);return n.startListen(),{channel:n,client:o}}getServer(e,t){let{counterpart:i,dispose:r}=this.getInterface(e,this.client,this.server,t);return{server:i,dispose:r}}registerServer(e,t){let{counterpart:i,dispose:r}=this.getInterface(e,this.server,this.client,t);return{client:i,dispose:r}}withContext(){return new e(this.tags,this.server,this.client)}};let r_=((f={}).Comment="comment",f.Imports="imports",f.Region="region",f),ry=((_={})[_.File=1]="File",_[_.Module=2]="Module",_[_.Namespace=3]="Namespace",_[_.Package=4]="Package",_[_.Class=5]="Class",_[_.Method=6]="Method",_[_.Property=7]="Property",_[_.Field=8]="Field",_[_.Constructor=9]="Constructor",_[_.Enum=10]="Enum",_[_.Interface=11]="Interface",_[_.Function=12]="Function",_[_.Variable=13]="Variable",_[_.Constant=14]="Constant",_[_.String=15]="String",_[_.Number=16]="Number",_[_.Boolean=17]="Boolean",_[_.Array=18]="Array",_[_.Object=19]="Object",_[_.Key=20]="Key",_[_.Null=21]="Null",_[_.EnumMember=22]="EnumMember",_[_.Struct=23]="Struct",_[_.Event=24]="Event",_[_.Operator=25]="Operator",_[_.TypeParameter=26]="TypeParameter",_),rC=((y={})[y.Deprecated=1]="Deprecated",y),rS=((C={})[C.Type=1]="Type",C[C.Parameter=2]="Parameter",C),rb=((S={})[S.None=0]="None",S[S.Full=1]="Full",S[S.Incremental=2]="Incremental",S),rw=((b={})[b.Text=1]="Text",b[b.Method=2]="Method",b[b.Function=3]="Function",b[b.Constructor=4]="Constructor",b[b.Field=5]="Field",b[b.Variable=6]="Variable",b[b.Class=7]="Class",b[b.Interface=8]="Interface",b[b.Module=9]="Module",b[b.Property=10]="Property",b[b.Unit=11]="Unit",b[b.Value=12]="Value",b[b.Enum=13]="Enum",b[b.Keyword=14]="Keyword",b[b.Snippet=15]="Snippet",b[b.Color=16]="Color",b[b.File=17]="File",b[b.Reference=18]="Reference",b[b.Folder=19]="Folder",b[b.EnumMember=20]="EnumMember",b[b.Constant=21]="Constant",b[b.Struct=22]="Struct",b[b.Event=23]="Event",b[b.Operator=24]="Operator",b[b.TypeParameter=25]="TypeParameter",b),rx=((w={})[w.Deprecated=1]="Deprecated",w),rD=((x={})[x.PlainText=1]="PlainText",x[x.Snippet=2]="Snippet",x),rE=((D={})[D.Text=1]="Text",D[D.Read=2]="Read",D[D.Write=3]="Write",D),rk=((E={}).Empty="",E.QuickFix="quickfix",E.Refactor="refactor",E.RefactorExtract="refactor.extract",E.RefactorInline="refactor.inline",E.RefactorRewrite="refactor.rewrite",E.Source="source",E.SourceOrganizeImports="source.organizeImports",E.SourceFixAll="source.fixAll",E),rT=((k={}).PlainText="plaintext",k.Markdown="markdown",k),rR=((T={})[T.Error=1]="Error",T[T.Warning=2]="Warning",T[T.Information=3]="Information",T[T.Hint=4]="Hint",T),rP=((R={})[R.Unnecessary=1]="Unnecessary",R[R.Deprecated=2]="Deprecated",R),rI=((P={})[P.Invoked=1]="Invoked",P[P.TriggerCharacter=2]="TriggerCharacter",P[P.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",P),rA=((I={})[I.Invoked=1]="Invoked",I[I.TriggerCharacter=2]="TriggerCharacter",I[I.ContentChange=3]="ContentChange",I),rM=((A={})[A.Invoked=1]="Invoked",A[A.Automatic=2]="Automatic",A),rL=((M={}).Relative="relative",M);var rF=class{constructor(e){this.method=e}};let rO={textDocumentImplementation:new rF("textDocument/implementation"),textDocumentTypeDefinition:new rF("textDocument/typeDefinition"),textDocumentDocumentColor:new rF("textDocument/documentColor"),textDocumentColorPresentation:new rF("textDocument/colorPresentation"),textDocumentFoldingRange:new rF("textDocument/foldingRange"),textDocumentDeclaration:new rF("textDocument/declaration"),textDocumentSelectionRange:new rF("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new rF("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new rF("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new rF("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new rF("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new rF("workspace/willCreateFiles"),workspaceWillRenameFiles:new rF("workspace/willRenameFiles"),workspaceWillDeleteFiles:new rF("workspace/willDeleteFiles"),textDocumentMoniker:new rF("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new rF("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new rF("textDocument/inlineValue"),textDocumentInlayHint:new rF("textDocument/inlayHint"),textDocumentDiagnostic:new rF("textDocument/diagnostic"),textDocumentInlineCompletion:new rF("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new rF("textDocument/willSaveWaitUntil"),textDocumentCompletion:new rF("textDocument/completion"),textDocumentHover:new rF("textDocument/hover"),textDocumentSignatureHelp:new rF("textDocument/signatureHelp"),textDocumentDefinition:new rF("textDocument/definition"),textDocumentReferences:new rF("textDocument/references"),textDocumentDocumentHighlight:new rF("textDocument/documentHighlight"),textDocumentDocumentSymbol:new rF("textDocument/documentSymbol"),textDocumentCodeAction:new rF("textDocument/codeAction"),workspaceSymbol:new rF("workspace/symbol"),textDocumentCodeLens:new rF("textDocument/codeLens"),textDocumentDocumentLink:new rF("textDocument/documentLink"),textDocumentFormatting:new rF("textDocument/formatting"),textDocumentRangeFormatting:new rF("textDocument/rangeFormatting"),textDocumentRangesFormatting:new rF("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new rF("textDocument/onTypeFormatting"),textDocumentRename:new rF("textDocument/rename"),workspaceExecuteCommand:new rF("workspace/executeCommand"),workspaceDidCreateFiles:new rF("workspace/didCreateFiles"),workspaceDidRenameFiles:new rF("workspace/didRenameFiles"),workspaceDidDeleteFiles:new rF("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new rF("workspace/didChangeConfiguration"),textDocumentDidOpen:new rF("textDocument/didOpen"),textDocumentDidChange:new rF("textDocument/didChange"),textDocumentDidClose:new rF("textDocument/didClose"),textDocumentDidSave:new rF("textDocument/didSave"),textDocumentWillSave:new rF("textDocument/willSave"),workspaceDidChangeWatchedFiles:new rF("workspace/didChangeWatchedFiles")},rN=(n=rf((L={server:{textDocumentImplementation:rh({method:"textDocument/implementation"}),textDocumentTypeDefinition:rh({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:rh({method:"textDocument/documentColor"}),textDocumentColorPresentation:rh({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:rh({method:"textDocument/foldingRange"}),textDocumentDeclaration:rh({method:"textDocument/declaration"}),textDocumentSelectionRange:rh({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:rh({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:rh({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:rh({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:rh({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:rh({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:rh({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:rh({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:rh({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:rh({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:rh({method:"workspace/willDeleteFiles"}),textDocumentMoniker:rh({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:rh({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:rh({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:rh({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:rh({method:"textDocument/inlineValue"}),textDocumentInlayHint:rh({method:"textDocument/inlayHint"}),inlayHintResolve:rh({method:"inlayHint/resolve"}),textDocumentDiagnostic:rh({method:"textDocument/diagnostic"}),workspaceDiagnostic:rh({method:"workspace/diagnostic"}),textDocumentInlineCompletion:rh({method:"textDocument/inlineCompletion"}),initialize:rh({method:"initialize"}),shutdown:rh({method:"shutdown"}),textDocumentWillSaveWaitUntil:rh({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:rh({method:"textDocument/completion"}),completionItemResolve:rh({method:"completionItem/resolve"}),textDocumentHover:rh({method:"textDocument/hover"}),textDocumentSignatureHelp:rh({method:"textDocument/signatureHelp"}),textDocumentDefinition:rh({method:"textDocument/definition"}),textDocumentReferences:rh({method:"textDocument/references"}),textDocumentDocumentHighlight:rh({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:rh({method:"textDocument/documentSymbol"}),textDocumentCodeAction:rh({method:"textDocument/codeAction"}),codeActionResolve:rh({method:"codeAction/resolve"}),workspaceSymbol:rh({method:"workspace/symbol"}),workspaceSymbolResolve:rh({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:rh({method:"textDocument/codeLens"}),codeLensResolve:rh({method:"codeLens/resolve"}),textDocumentDocumentLink:rh({method:"textDocument/documentLink"}),documentLinkResolve:rh({method:"documentLink/resolve"}),textDocumentFormatting:rh({method:"textDocument/formatting"}),textDocumentRangeFormatting:rh({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:rh({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:rh({method:"textDocument/onTypeFormatting"}),textDocumentRename:rh({method:"textDocument/rename"}),textDocumentPrepareRename:rh({method:"textDocument/prepareRename"}),workspaceExecuteCommand:rh({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:rg({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:rg({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:rg({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:rg({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:rg({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:rg({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:rg({method:"notebookDocument/didChange"}),notebookDocumentDidSave:rg({method:"notebookDocument/didSave"}),notebookDocumentDidClose:rg({method:"notebookDocument/didClose"}),initialized:rg({method:"initialized"}),exit:rg({method:"exit"}),workspaceDidChangeConfiguration:rg({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:rg({method:"textDocument/didOpen"}),textDocumentDidChange:rg({method:"textDocument/didChange"}),textDocumentDidClose:rg({method:"textDocument/didClose"}),textDocumentDidSave:rg({method:"textDocument/didSave"}),textDocumentWillSave:rg({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:rg({method:"workspace/didChangeWatchedFiles"}),setTrace:rg({method:"$/setTrace"}),cancelRequest:rg({method:"$/cancelRequest"}),progress:rg({method:"$/progress"})},client:{workspaceWorkspaceFolders:rh({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:rh({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:rh({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:rh({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:rh({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:rh({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:rh({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:rh({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:rh({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:rh({method:"client/registerCapability"}).optional(),clientUnregisterCapability:rh({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:rh({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:rh({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:rh({method:"workspace/applyEdit"}).optional(),windowShowMessage:rg({method:"window/showMessage"}),windowLogMessage:rg({method:"window/logMessage"}),telemetryEvent:rg({method:"telemetry/event"}),textDocumentPublishDiagnostics:rg({method:"textDocument/publishDiagnostics"}),logTrace:rg({method:"$/logTrace"}),cancelRequest:rg({method:"$/cancelRequest"}),progress:rg({method:"$/progress"})}}).server),o=rf(L.client),new rv(L.tags||[],n,o));function r$(e,t){if(e.textModel!==t)throw Error(`Expected text model to be ${t}, but got ${e.textModel}`);return e}var rH=(J=class{constructor(){i2(this,"_store",new rU)}dispose(){this._store.dispose()}_register(e){if(e===this)throw Error("Cannot register a disposable on itself!");return this._store.add(e)}},i2(J,"None",Object.freeze({dispose(){}})),J),rU=(Y=class{constructor(){i2(this,"_toDispose",new Set),i2(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(0!==this._toDispose.size)try{for(let e of this._toDispose)e.dispose()}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw Error("Cannot register a disposable on itself!");return this._isDisposed?Y.DISABLE_DISPOSED_WARNING||console.warn(Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(e),e}},i2(Y,"DISABLE_DISPOSED_WARNING",!1),Y);let rW=new Map([[rk.Empty,""],[rk.QuickFix,"quickfix"],[rk.Refactor,"refactor"],[rk.RefactorExtract,"refactor.extract"],[rk.RefactorInline,"refactor.inline"],[rk.RefactorRewrite,"refactor.rewrite"],[rk.Source,"source"],[rk.SourceOrganizeImports,"source.organizeImports"],[rk.SourceFixAll,"source.fixAll"]]),rq=new Map([[ix.languages.CodeActionTriggerType.Invoke,rM.Invoked],[ix.languages.CodeActionTriggerType.Auto,rM.Automatic]]),rj=new Map([[rw.Text,ix.languages.CompletionItemKind.Text],[rw.Method,ix.languages.CompletionItemKind.Method],[rw.Function,ix.languages.CompletionItemKind.Function],[rw.Constructor,ix.languages.CompletionItemKind.Constructor],[rw.Field,ix.languages.CompletionItemKind.Field],[rw.Variable,ix.languages.CompletionItemKind.Variable],[rw.Class,ix.languages.CompletionItemKind.Class],[rw.Interface,ix.languages.CompletionItemKind.Interface],[rw.Module,ix.languages.CompletionItemKind.Module],[rw.Property,ix.languages.CompletionItemKind.Property],[rw.Unit,ix.languages.CompletionItemKind.Unit],[rw.Value,ix.languages.CompletionItemKind.Value],[rw.Enum,ix.languages.CompletionItemKind.Enum],[rw.Keyword,ix.languages.CompletionItemKind.Keyword],[rw.Snippet,ix.languages.CompletionItemKind.Snippet],[rw.Color,ix.languages.CompletionItemKind.Color],[rw.File,ix.languages.CompletionItemKind.File],[rw.Reference,ix.languages.CompletionItemKind.Reference],[rw.Folder,ix.languages.CompletionItemKind.Folder],[rw.EnumMember,ix.languages.CompletionItemKind.EnumMember],[rw.Constant,ix.languages.CompletionItemKind.Constant],[rw.Struct,ix.languages.CompletionItemKind.Struct],[rw.Event,ix.languages.CompletionItemKind.Event],[rw.Operator,ix.languages.CompletionItemKind.Operator],[rw.TypeParameter,ix.languages.CompletionItemKind.TypeParameter]]),rz=new Map([[rx.Deprecated,ix.languages.CompletionItemTag.Deprecated]]);function rK(e){return rz.get(e)}let rV=new Map([[ix.languages.CompletionTriggerKind.Invoke,rI.Invoked],[ix.languages.CompletionTriggerKind.TriggerCharacter,rI.TriggerCharacter],[ix.languages.CompletionTriggerKind.TriggerForIncompleteCompletions,rI.TriggerForIncompleteCompletions]]),rB=new Map([[rD.Snippet,ix.languages.CompletionItemInsertTextRule.InsertAsSnippet]]),rG=new Map([[ry.File,ix.languages.SymbolKind.File],[ry.Module,ix.languages.SymbolKind.Module],[ry.Namespace,ix.languages.SymbolKind.Namespace],[ry.Package,ix.languages.SymbolKind.Package],[ry.Class,ix.languages.SymbolKind.Class],[ry.Method,ix.languages.SymbolKind.Method],[ry.Property,ix.languages.SymbolKind.Property],[ry.Field,ix.languages.SymbolKind.Field],[ry.Constructor,ix.languages.SymbolKind.Constructor],[ry.Enum,ix.languages.SymbolKind.Enum],[ry.Interface,ix.languages.SymbolKind.Interface],[ry.Function,ix.languages.SymbolKind.Function],[ry.Variable,ix.languages.SymbolKind.Variable],[ry.Constant,ix.languages.SymbolKind.Constant],[ry.String,ix.languages.SymbolKind.String],[ry.Number,ix.languages.SymbolKind.Number],[ry.Boolean,ix.languages.SymbolKind.Boolean],[ry.Array,ix.languages.SymbolKind.Array],[ry.Object,ix.languages.SymbolKind.Object],[ry.Key,ix.languages.SymbolKind.Key],[ry.Null,ix.languages.SymbolKind.Null],[ry.EnumMember,ix.languages.SymbolKind.EnumMember],[ry.Struct,ix.languages.SymbolKind.Struct],[ry.Event,ix.languages.SymbolKind.Event],[ry.Operator,ix.languages.SymbolKind.Operator],[ry.TypeParameter,ix.languages.SymbolKind.TypeParameter]]);function rQ(e){return rG.get(e)??ix.languages.SymbolKind.File}let rJ=new Map([[rC.Deprecated,ix.languages.SymbolTag.Deprecated]]),rY=new Map([[rE.Text,ix.languages.DocumentHighlightKind.Text],[rE.Read,ix.languages.DocumentHighlightKind.Read],[rE.Write,ix.languages.DocumentHighlightKind.Write]]),rX=new Map([[r_.Comment,ix.languages.FoldingRangeKind.Comment],[r_.Imports,ix.languages.FoldingRangeKind.Imports],[r_.Region,ix.languages.FoldingRangeKind.Region]]),rZ=new Map([[ix.MarkerSeverity.Error,rR.Error],[ix.MarkerSeverity.Warning,rR.Warning],[ix.MarkerSeverity.Info,rR.Information],[ix.MarkerSeverity.Hint,rR.Hint]]),r0=new Map([[rR.Error,ix.MarkerSeverity.Error],[rR.Warning,ix.MarkerSeverity.Warning],[rR.Information,ix.MarkerSeverity.Info],[rR.Hint,ix.MarkerSeverity.Hint]]),r1=new Map([[rP.Unnecessary,ix.MarkerTag.Unnecessary],[rP.Deprecated,ix.MarkerTag.Deprecated]]),r2=new Map([[ix.languages.SignatureHelpTriggerKind.Invoke,rA.Invoked],[ix.languages.SignatureHelpTriggerKind.TriggerCharacter,rA.TriggerCharacter],[ix.languages.SignatureHelpTriggerKind.ContentChange,rA.ContentChange]]);function r6(e){if(e)return{id:e.command,title:e.title,arguments:e.arguments}}let r3=new Map([[rS.Type,ix.languages.InlayHintKind.Type],[rS.Parameter,ix.languages.InlayHintKind.Parameter]]);function r4(e,t){if("targetUri"in e){let i=t.bridge.translateBackRange({uri:e.targetUri},e.targetRange);return{uri:i.textModel.uri,range:i.range,originSelectionRange:e.originSelectionRange?t.bridge.translateBackRange({uri:e.targetUri},e.originSelectionRange).range:void 0,targetSelectionRange:e.targetSelectionRange?t.bridge.translateBackRange({uri:e.targetUri},e.targetSelectionRange).range:void 0}}{let i=t.bridge.translateBackRange({uri:e.uri},e.range);return{uri:i.textModel.uri,range:i.range}}}function r5(e){return e&&0!==e.length?e.map(e=>"notebook"in e?"string"==typeof e.notebook?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme}):{language:"*"}}function r8(e){var t;let i={severity:(t=e.severity)?r0.get(t)??ix.MarkerSeverity.Error:ix.MarkerSeverity.Error,startLineNumber:e.range.start.line+1,startColumn:e.range.start.character+1,endLineNumber:e.range.end.line+1,endColumn:e.range.end.character+1,message:e.message,source:e.source,code:"string"==typeof e.code?e.code:e.code?.toString()};return e.tags&&(i.tags=e.tags.map(e=>r1.get(e)).filter(e=>void 0!==e)),e.relatedInformation&&(i.relatedInformation=e.relatedInformation.map(e=>({resource:ix.Uri.parse(e.location.uri),startLineNumber:e.location.range.start.line+1,startColumn:e.location.range.start.character+1,endLineNumber:e.location.range.end.line+1,endColumn:e.location.range.end.character+1,message:e.message}))),i}var r7=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(rj.keys())},completionItem:{tagSupport:{valueSet:Array.from(rz.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentCompletion,!0,e=>ix.languages.registerCompletionItemProvider(r5(e.documentSelector),new r9(this._connection,e))))}},r9=class{constructor(e,t){i2(this,"resolveCompletionItem"),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCompletionItem=async(e,t)=>(ne(e,await this._client.server.completionItemResolve(e._lspItem),this._client.bridge,e._translated,e._model),e))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(e,t,i,r){var n;let o=this._client.bridge.translate(e,t),s=await this._client.server.textDocumentCompletion({textDocument:o.textDocument,position:o.position,context:i.triggerCharacter?{triggerKind:(n=i.triggerKind,rV.get(n)??rI.Invoked),triggerCharacter:i.triggerCharacter}:void 0});return s?{suggestions:(Array.isArray(s)?s:s.items).map(i=>{var r,n,s,a,l,c;let d,u,h;return{...(r=i,n=this._client.bridge,s=o,a=e,l=t,u=r.insertText||r.label,r.textEdit&&("range"in r.textEdit?(u=r.textEdit.newText,d=r$(n.translateBackRange(s.textDocument,r.textEdit.range),a).range):(u=r.textEdit.newText,d={insert:r$(n.translateBackRange(s.textDocument,r.textEdit.insert),a).range,replace:r$(n.translateBackRange(s.textDocument,r.textEdit.replace),a).range})),d||(d=ix.Range.fromPositions(l,l)),ne(h={label:r.label,kind:(c=r.kind)?rj.get(c)??ix.languages.CompletionItemKind.Text:ix.languages.CompletionItemKind.Text,insertText:u,sortText:r.sortText,filterText:r.filterText,preselect:r.preselect,commitCharacters:r.commitCharacters,range:d},r,n,s,a),h),_lspItem:i,_translated:o,_model:e}})}:{suggestions:[]}}};function ne(e,t,i,r,n){void 0!==t.detail&&(e.detail=t.detail),void 0!==t.documentation&&(e.documentation=function(e){if(e)return"string"==typeof e?e:{value:e.value,isTrusted:!0}}(t.documentation)),void 0!==t.insertTextFormat&&(e.insertTextRules=function(e){if(e)return rB.get(e)}(t.insertTextFormat)),t.tags&&t.tags.length>0&&(e.tags=t.tags.map(rK).filter(e=>void 0!==e)),t.additionalTextEdits&&t.additionalTextEdits.length>0&&(e.additionalTextEdits=t.additionalTextEdits.map(e=>({range:r$(i.translateBackRange(r.textDocument,e.range),n).range,text:e.newText}))),t.command&&(e.command=r6(t.command))}var nt=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[rT.Markdown,rT.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentHover,!0,e=>ix.languages.registerHoverProvider(r5(e.documentSelector),new ni(this._connection,e))))}},ni=class{constructor(e,t){this._client=e,this._capabilities=t}async provideHover(e,t,i){var r;let n=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentHover({textDocument:n.textDocument,position:n.position});return o&&o.contents?{contents:Array.isArray(r=o.contents)?r.map(e=>nr(e)):[nr(r)],range:o.range?this._client.bridge.translateBackRange(n.textDocument,o.range).range:void 0}:null}};function nr(e){return"string"==typeof e?{value:e,isTrusted:!0}:"kind"in e?{value:e.value,isTrusted:!0}:{value:`\`\`\`${e.language}
69
+ ${e.value}
70
+ \`\`\``,isTrusted:!0}}var nn=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{signatureHelp:{dynamicRegistration:!0,contextSupport:!0,signatureInformation:{documentationFormat:[rT.Markdown,rT.PlainText],parameterInformation:{labelOffsetSupport:!0},activeParameterSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentSignatureHelp,!0,e=>ix.languages.registerSignatureHelpProvider(r5(e.documentSelector),new no(this._connection,e))))}},no=class{constructor(e,t){i2(this,"signatureHelpTriggerCharacters"),i2(this,"signatureHelpRetriggerCharacters"),this._client=e,this._capabilities=t,this.signatureHelpTriggerCharacters=t.triggerCharacters,this.signatureHelpRetriggerCharacters=t.retriggerCharacters}async provideSignatureHelp(e,t,i,r){var n;let o=this._client.bridge.translate(e,t),s=await this._client.server.textDocumentSignatureHelp({textDocument:o.textDocument,position:o.position,context:{triggerKind:(n=r.triggerKind,r2.get(n)??rA.Invoked),triggerCharacter:r.triggerCharacter,isRetrigger:r.isRetrigger}});return s?{value:{signatures:s.signatures.map(e=>({label:e.label,documentation:ns(e.documentation),parameters:e.parameters?.map(e=>({label:e.label,documentation:ns(e.documentation)}))||[],activeParameter:e.activeParameter})),activeSignature:s.activeSignature||0,activeParameter:s.activeParameter||0},dispose:()=>{}}:null}};function ns(e){if(e)return"string"==typeof e?e:{value:e.value,isTrusted:!0}}var na=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{definition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentDefinition,!0,e=>ix.languages.registerDefinitionProvider(r5(e.documentSelector),new nl(this._connection,e))))}},nl=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDefinition(e,t,i){let r=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentDefinition({textDocument:r.textDocument,position:r.position});return n?Array.isArray(n)?n.map(e=>r4(e,this._client)):r4(n,this._client):null}},nc=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{declaration:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentDeclaration,!0,e=>ix.languages.registerDeclarationProvider(r5(e.documentSelector),new nd(this._connection,e))))}},nd=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDeclaration(e,t,i){let r=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentDeclaration({textDocument:r.textDocument,position:r.position});return n?Array.isArray(n)?n.map(e=>r4(e,this._client)):r4(n,this._client):null}},nu=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{typeDefinition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentTypeDefinition,!0,e=>ix.languages.registerTypeDefinitionProvider(r5(e.documentSelector),new nh(this._connection,e))))}},nh=class{constructor(e,t){this._client=e,this._capabilities=t}async provideTypeDefinition(e,t,i){let r=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentTypeDefinition({textDocument:r.textDocument,position:r.position});return n?Array.isArray(n)?n.map(e=>r4(e,this._client)):r4(n,this._client):null}},ng=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{implementation:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentImplementation,!0,e=>ix.languages.registerImplementationProvider(r5(e.documentSelector),new np(this._connection,e))))}},np=class{constructor(e,t){this._client=e,this._capabilities=t}async provideImplementation(e,t,i){let r=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentImplementation({textDocument:r.textDocument,position:r.position});return n?Array.isArray(n)?n.map(e=>r4(e,this._client)):r4(n,this._client):null}},nm=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{references:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentReferences,!0,e=>ix.languages.registerReferenceProvider(r5(e.documentSelector),new nf(this._connection,e))))}},nf=class{constructor(e,t){this._client=e,this._capabilities=t}async provideReferences(e,t,i,r){let n=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentReferences({textDocument:n.textDocument,position:n.position,context:{includeDeclaration:i.includeDeclaration}});return o?o.map(e=>{let t=this._client.bridge.translateBackRange({uri:e.uri},e.range);return{uri:t.textModel.uri,range:t.range}}):null}},nv=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentHighlight:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentDocumentHighlight,!0,e=>ix.languages.registerDocumentHighlightProvider(r5(e.documentSelector),new n_(this._connection,e))))}},n_=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentHighlights(e,t,i){let r=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentDocumentHighlight({textDocument:r.textDocument,position:r.position});return n?n.map(e=>{var t;return{range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,kind:(t=e.kind)?rY.get(t)??ix.languages.DocumentHighlightKind.Text:ix.languages.DocumentHighlightKind.Text}}):null}},ny=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentSymbol:{dynamicRegistration:!0,hierarchicalDocumentSymbolSupport:!0,symbolKind:{valueSet:Array.from(rG.keys())},tagSupport:{valueSet:[rC.Deprecated]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentDocumentSymbol,!0,e=>ix.languages.registerDocumentSymbolProvider(r5(e.documentSelector),new nC(this._connection,e))))}},nC=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentSymbols(e,t){let i=this._client.bridge.translate(e,new ix.Position(1,1)),r=await this._client.server.textDocumentDocumentSymbol({textDocument:i.textDocument});if(!r)return null;if(Array.isArray(r)&&r.length>0)if("location"in r[0])return r.map(e=>{var t,i;return t=e,i=this._client,{name:t.name,detail:"",kind:rQ(t.kind),tags:t.tags?.map(e=>rJ.get(e)).filter(e=>void 0!==e)||[],range:i.bridge.translateBackRange({uri:t.location.uri},t.location.range).range,selectionRange:i.bridge.translateBackRange({uri:t.location.uri},t.location.range).range,children:[]}});else return r.map(e=>(function e(t,i,r){return{name:t.name,detail:t.detail||"",kind:rQ(t.kind),tags:t.tags?.map(e=>rJ.get(e)).filter(e=>void 0!==e)||[],range:i.bridge.translateBackRange(r,t.range).range,selectionRange:i.bridge.translateBackRange(r,t.selectionRange).range,children:t.children?.map(t=>e(t,i,r))||[]}})(e,this._client,i.textDocument));return[]}},nS=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rename:{dynamicRegistration:!0,prepareSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentRename,!0,e=>ix.languages.registerRenameProvider(r5(e.documentSelector),new nb(this._connection,e))))}},nb=class{constructor(e,t){this._client=e,this._capabilities=t}async provideRenameEdits(e,t,i,r){let n=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentRename({textDocument:n.textDocument,position:n.position,newName:i});return o?function(e,t){let i=[];if(e.changes)for(let r in e.changes)for(let n of e.changes[r]){let e=t.bridge.translateBackRange({uri:r},n.range);i.push({resource:e.textModel.uri,versionId:void 0,textEdit:{range:e.range,text:n.newText}})}if(e.documentChanges){for(let r of e.documentChanges)if("textDocument"in r){let e=r.textDocument.uri;for(let n of r.edits){let o=t.bridge.translateBackRange({uri:e},n.range);i.push({resource:o.textModel.uri,versionId:r.textDocument.version,textEdit:{range:o.range,text:n.newText}})}}}return{edits:i}}(o,this._client):null}async resolveRenameLocation(e,t,i){if(!this._capabilities.prepareProvider)return null;let r=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentPrepareRename({textDocument:r.textDocument,position:r.position});if(!n)return null;if("range"in n&&"placeholder"in n)return{range:this._client.bridge.translateBackRange(r.textDocument,n.range).range,text:n.placeholder};if("defaultBehavior"in n);else if("start"in n&&"end"in n){let t=this._client.bridge.translateBackRange(r.textDocument,n).range;return{range:t,text:e.getValueInRange(t)}}return null}},nw=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeAction:{dynamicRegistration:!0,codeActionLiteralSupport:{codeActionKind:{valueSet:Array.from(rW.keys())}},isPreferredSupport:!0,disabledSupport:!0,dataSupport:!0,resolveSupport:{properties:["edit"]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentCodeAction,!0,e=>ix.languages.registerCodeActionProvider(r5(e.documentSelector),new nx(this._connection,e))))}},nx=class{constructor(e,t){i2(this,"resolveCodeAction"),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCodeAction=async(e,t)=>{if(e._lspAction){let t=await this._client.server.codeActionResolve(e._lspAction);t.edit&&(e.edit=nD(t.edit,this._client)),t.command&&(e.command=r6(t.command))}return e})}async provideCodeActions(e,t,i,r){var n;let o=this._client.bridge.translate(e,t.getStartPosition()),s=await this._client.server.textDocumentCodeAction({textDocument:o.textDocument,range:this._client.bridge.translateRange(e,t),context:{diagnostics:i.markers.map(t=>{var i;return{range:this._client.bridge.translateRange(e,ix.Range.lift(t)),message:t.message,severity:(i=t.severity,rZ.get(i)??rR.Error)}}),triggerKind:(n=i.trigger,rq.get(n)??rM.Invoked)}});return s?{actions:(Array.isArray(s)?s:[s]).map(e=>"title"in e&&!("kind"in e)?{title:e.title,command:r6(e)}:{title:e.title,kind:function(e){if(e)return rW.get(e)??e}(e.kind),isPreferred:e.isPreferred,disabled:e.disabled?.reason,edit:e.edit?nD(e.edit,this._client):void 0,command:r6(e.command),_lspAction:e}),dispose:()=>{}}:null}};function nD(e,t){let i=[];if(e.changes)for(let r in e.changes)for(let n of e.changes[r]){let e=t.bridge.translateBackRange({uri:r},n.range);i.push({resource:e.textModel.uri,versionId:void 0,textEdit:{range:e.range,text:n.newText}})}if(e.documentChanges){for(let r of e.documentChanges)if("textDocument"in r){let e=r.textDocument.uri;for(let n of r.edits){let o=t.bridge.translateBackRange({uri:e},n.range);i.push({resource:o.textModel.uri,versionId:r.textDocument.version??void 0,textEdit:{range:o.range,text:n.newText}})}}}return{edits:i}}var nE=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeLens:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentCodeLens,!0,e=>ix.languages.registerCodeLensProvider(r5(e.documentSelector),new nk(this._connection,e))))}},nk=class{constructor(e,t){this._client=e,this._capabilities=t}async provideCodeLenses(e,t){let i=this._client.bridge.translate(e,new ix.Position(1,1)),r=await this._client.server.textDocumentCodeLens({textDocument:i.textDocument});return r?{lenses:r.map(t=>({range:r$(this._client.bridge.translateBackRange(i.textDocument,t.range),e).range,command:r6(t.command),_lspCodeLens:t})),dispose:()=>{}}:null}async resolveCodeLens(e,t,i){if(!this._capabilities.resolveProvider||!t._lspCodeLens)return t;let r=await this._client.server.codeLensResolve(t._lspCodeLens);return r.command&&(t.command={id:r.command.command,title:r.command.title,arguments:r.command.arguments}),t}},nT=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentLink:{dynamicRegistration:!0,tooltipSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentDocumentLink,!0,e=>ix.languages.registerLinkProvider(r5(e.documentSelector),new nR(this._connection,e))))}},nR=class{constructor(e,t){this._client=e,this._capabilities=t}async provideLinks(e,t){let i=this._client.bridge.translate(e,new ix.Position(1,1)),r=await this._client.server.textDocumentDocumentLink({textDocument:i.textDocument});return r?{links:r.map(e=>({range:this._client.bridge.translateBackRange(i.textDocument,e.range).range,url:e.target,tooltip:e.tooltip}))}:null}async resolveLink(e,t){return!this._capabilities.resolveProvider,e}},nP=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{formatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentFormatting,!0,e=>ix.languages.registerDocumentFormattingEditProvider(r5(e.documentSelector),new nI(this._connection,e))))}},nI=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentFormattingEdits(e,t,i){let r=this._client.bridge.translate(e,new ix.Position(1,1)),n=await this._client.server.textDocumentFormatting({textDocument:r.textDocument,options:{tabSize:t.tabSize,insertSpaces:t.insertSpaces}});return n?n.map(e=>({range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,text:e.newText})):null}},nA=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rangeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentRangeFormatting,!0,e=>ix.languages.registerDocumentRangeFormattingEditProvider(r5(e.documentSelector),new nM(this._connection,e))))}},nM=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentRangeFormattingEdits(e,t,i,r){let n=this._client.bridge.translate(e,t.getStartPosition()),o=await this._client.server.textDocumentRangeFormatting({textDocument:n.textDocument,range:this._client.bridge.translateRange(e,t),options:{tabSize:i.tabSize,insertSpaces:i.insertSpaces}});return o?o.map(e=>({range:this._client.bridge.translateBackRange(n.textDocument,e.range).range,text:e.newText})):null}},nL=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{onTypeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentOnTypeFormatting,!0,e=>ix.languages.registerOnTypeFormattingEditProvider(r5(e.documentSelector),new nF(this._connection,e))))}},nF=class{constructor(e,t){i2(this,"autoFormatTriggerCharacters"),this._client=e,this._capabilities=t,this.autoFormatTriggerCharacters=[t.firstTriggerCharacter,...t.moreTriggerCharacter||[]]}async provideOnTypeFormattingEdits(e,t,i,r,n){let o=this._client.bridge.translate(e,t),s=await this._client.server.textDocumentOnTypeFormatting({textDocument:o.textDocument,position:o.position,ch:i,options:{tabSize:r.tabSize,insertSpaces:r.insertSpaces}});return s?s.map(e=>({range:this._client.bridge.translateBackRange(o.textDocument,e.range).range,text:e.newText})):null}},nO=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{foldingRange:{dynamicRegistration:!0,rangeLimit:5e3,lineFoldingOnly:!1,foldingRangeKind:{valueSet:[r_.Comment,r_.Imports,r_.Region]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentFoldingRange,!0,e=>ix.languages.registerFoldingRangeProvider(r5(e.documentSelector),new nN(this._connection,e))))}},nN=class{constructor(e,t){this._client=e,this._capabilities=t}async provideFoldingRanges(e,t,i){let r=this._client.bridge.translate(e,new ix.Position(1,1)),n=await this._client.server.textDocumentFoldingRange({textDocument:r.textDocument});return n?n.map(e=>({start:e.startLine+1,end:e.endLine+1,kind:function(e){if(e)return rX.get(e)}(e.kind)})):null}},n$=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{selectionRange:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentSelectionRange,!0,e=>ix.languages.registerSelectionRangeProvider(r5(e.documentSelector),new nH(this._connection,e))))}},nH=class{constructor(e,t){this._client=e,this._capabilities=t}async provideSelectionRanges(e,t,i){let r=this._client.bridge.translate(e,t[0]),n=await this._client.server.textDocumentSelectionRange({textDocument:r.textDocument,positions:t.map(t=>this._client.bridge.translate(e,t).position)});return n?n.map(e=>this.convertSelectionRange(e,r.textDocument)):null}convertSelectionRange(e,t){let i=[],r=e;for(;r;)i.push({range:this._client.bridge.translateBackRange(t,r.range).range}),r=r.parent;return i}},nU=class extends rH{constructor(e){super(),i2(this,"_providers",new Set),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{inlayHint:{dynamicRegistration:!0,resolveSupport:{properties:["tooltip","textEdits","label.tooltip","label.location","label.command"]}}},workspace:{inlayHint:{refreshSupport:!0}}})),this._register(this._connection.connection.registerRequestHandler(rN.client.workspaceInlayHintRefresh,async()=>{for(let e of this._providers)e.refresh();return{ok:null}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentInlayHint,!0,e=>{let t=new nW(this._connection,e);this._providers.add(t);let i=ix.languages.registerInlayHintsProvider(r5(e.documentSelector),t);return{dispose:()=>{this._providers.delete(t),i.dispose()}}}))}},nW=class{constructor(e,t){i2(this,"_onDidChangeInlayHints",new ix.Emitter),i2(this,"onDidChangeInlayHints",this._onDidChangeInlayHints.event),i2(this,"resolveInlayHint"),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveInlayHint=async(e,t)=>{let i=await this._client.server.inlayHintResolve(e._lspInlayHint);return i.tooltip&&(e.tooltip=nz(i.tooltip)),i.label!==e._lspInlayHint.label&&(e.label=nj(i.label)),i.textEdits&&(e.textEdits=i.textEdits.map(t=>({range:this._client.bridge.translateBackRange({uri:e._targetUri},t.range).range,text:t.newText}))),e})}refresh(){this._onDidChangeInlayHints.fire()}async provideInlayHints(e,t,i){let r=this._client.bridge.translate(e,t.getStartPosition()),n=await nq(async()=>await this._client.server.textDocumentInlayHint({textDocument:r.textDocument,range:this._client.bridge.translateRange(e,t)}));return n?{hints:n.map(t=>{var i;return{label:nj(t.label),position:r$(this._client.bridge.translateBack(r.textDocument,t.position),e).position,kind:(i=t.kind)?r3.get(i)??ix.languages.InlayHintKind.Type:ix.languages.InlayHintKind.Type,tooltip:nz(t.tooltip),paddingLeft:t.paddingLeft,paddingRight:t.paddingRight,textEdits:t.textEdits?.map(t=>({range:r$(this._client.bridge.translateBackRange(r.textDocument,t.range),e).range,text:t.newText})),_lspInlayHint:t,_targetUri:r.textDocument.uri}}),dispose:()=>{}}:null}};async function nq(e){for(let t=3;;t--)try{return await e()}catch(e){if("content modified"===e.message&&t>0)continue;throw e}}function nj(e){return"string"==typeof e?e:e.map(e=>{let t={label:e.value,tooltip:nz(e.tooltip),command:r6(e.command)};return e.location&&(t.location={uri:ix.Uri.parse(e.location.uri),range:new ix.Range(e.location.range.start.line+1,e.location.range.start.character+1,e.location.range.end.line+1,e.location.range.end.character+1)}),t})}function nz(e){if(e)return"string"==typeof e?e:{value:e.value,isTrusted:!0}}var nK=class extends rH{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{semanticTokens:{dynamicRegistration:!0,requests:{range:!0,full:{delta:!0}},tokenTypes:["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"],tokenModifiers:["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],formats:[rL.Relative],overlappingTokenSupport:!1,multilineTokenSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentSemanticTokensFull,!0,e=>ix.languages.registerDocumentSemanticTokensProvider(r5(e.documentSelector),new nV(this._connection,e))))}},nV=class{constructor(e,t){this._client=e,this._capabilities=t}getLegend(){return{tokenTypes:this._capabilities.legend.tokenTypes,tokenModifiers:this._capabilities.legend.tokenModifiers}}releaseDocumentSemanticTokens(e){}async provideDocumentSemanticTokens(e,t,i){let r=this._client.bridge.translate(e,e.getPositionAt(0)),n=this._capabilities.full;if(t&&n&&"object"==typeof n&&n.delta){let e=await this._client.server.textDocumentSemanticTokensFullDelta({textDocument:r.textDocument,previousResultId:t});return e?"edits"in e?{resultId:e.resultId,edits:e.edits.map(e=>({start:e.start,deleteCount:e.deleteCount,data:e.data?new Uint32Array(e.data):void 0}))}:{resultId:e.resultId,data:new Uint32Array(e.data)}:null}let o=await this._client.server.textDocumentSemanticTokensFull({textDocument:r.textDocument});return o?{resultId:o.resultId,data:new Uint32Array(o.data)}:null}async provideDocumentSemanticTokensEdits(e,t,i){return this.provideDocumentSemanticTokens(e,t,i)}},nB=class extends rH{constructor(e){super(),i2(this,"_diagnosticsMarkerOwner","lsp"),i2(this,"_pullDiagnosticProviders",new Map),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{publishDiagnostics:{relatedInformation:!0,tagSupport:{valueSet:[...r1.keys()]},versionSupport:!0,codeDescriptionSupport:!0,dataSupport:!0},diagnostic:{dynamicRegistration:!0,relatedDocumentSupport:!0}}})),this._register(this._connection.connection.registerNotificationHandler(rN.client.textDocumentPublishDiagnostics,e=>this._handlePublishDiagnostics(e))),this._register(this._connection.capabilities.registerCapabilityHandler(rO.textDocumentDiagnostic,!0,e=>{let t=new rU;for(let i of ix.editor.getModels())this._addPullDiagnosticProvider(i,e,t);return t.add(ix.editor.onDidCreateModel(i=>{this._addPullDiagnosticProvider(i,e,t)})),t}))}_addPullDiagnosticProvider(e,t,i){if(e.getLanguageId(),!function(e,t){if(!t)return!0;let i=e.getLanguageId();if(e.uri.toString(!0),!t||0===t.length)return!0;for(let e of t)if(!e.language||"*"===e.language||e.language===i)return!0;return!1}(e,t.documentSelector))return;let r=new nG(e,this._connection,this._diagnosticsMarkerOwner,t);this._pullDiagnosticProviders.set(e,r),i.add(r),i.add(e.onWillDispose(()=>{this._pullDiagnosticProviders.delete(e)}))}_handlePublishDiagnostics(e){let t=e.uri;try{let i=this._connection.bridge.translateBack({uri:t},{line:0,character:0}).textModel;if(!i||i.isDisposed())return;let r=e.diagnostics.map(e=>r8(e));ix.editor.setModelMarkers(i,this._diagnosticsMarkerOwner,r)}catch(e){console.debug(`Could not set diagnostics for ${t}:`,e)}}},nG=class extends rH{constructor(e,t,i,r){super(),i2(this,"_updateHandle"),i2(this,"_previousResultId"),this._model=e,this._connection=t,this._markerOwner=i,this._capability=r,this._register(this._model.onDidChangeContent(()=>{this._scheduleDiagnosticUpdate()})),this._scheduleDiagnosticUpdate()}_scheduleDiagnosticUpdate(){void 0!==this._updateHandle&&clearTimeout(this._updateHandle),this._updateHandle=window.setTimeout(()=>{this._updateHandle=void 0,this._requestDiagnostics()},500)}async _requestDiagnostics(){if(!this._model.isDisposed())try{let e=this._connection.bridge.translate(this._model,new ix.Position(1,1)),t=await this._connection.server.textDocumentDiagnostic({textDocument:e.textDocument,identifier:this._capability.identifier,previousResultId:this._previousResultId});if(this._model.isDisposed())return;this._handleDiagnosticReport(t)}catch(e){console.error("Error requesting diagnostics:",e)}}_handleDiagnosticReport(e){if("full"===e.kind){this._previousResultId=e.resultId;let t=e.items.map(e=>r8(e));ix.editor.setModelMarkers(this._model,this._markerOwner,t),"relatedDocuments"in e&&e.relatedDocuments&&this._handleRelatedDocuments(e.relatedDocuments)}else"unchanged"===e.kind&&(this._previousResultId=e.resultId)}_handleRelatedDocuments(e){for(let[t,i]of Object.entries(e))try{let e=this._connection.bridge.translateBack({uri:t},{line:0,character:0}).textModel;if(!e||e.isDisposed())continue;if("full"===i.kind){let t=i.items.map(e=>r8(e));ix.editor.setModelMarkers(e,this._markerOwner,t)}}catch(e){console.debug(`Could not set related diagnostics for ${t}:`,e)}}dispose(){void 0!==this._updateHandle&&(clearTimeout(this._updateHandle),this._updateHandle=void 0),super.dispose()}},nQ=class{constructor(e,t,i,r){this.server=e,this.bridge=t,this.capabilities=i,this.connection=r}},nJ=class extends rH{constructor(e){super(),i2(this,"_staticCapabilities",new Set),i2(this,"_dynamicFromStatic",n2.create()),i2(this,"_registrations",new Map),i2(this,"_serverCapabilities"),this._connection=e,this._register(this._connection.registerRequestHandler(rN.client.clientRegisterCapability,async e=>{for(let t of e.registrations){let e=n0(t.method),i=new nX(t.id,e,t.registerOptions,!1);this._registerCapabilityOptions(i)}return{ok:null}})),this._register(this._connection.registerRequestHandler(rN.client.clientUnregisterCapability,async e=>{for(let t of e.unregisterations){let e=n0(t.method),i=this._registrations.get(e),r=i?.registrations.get(t.id);if(!r)throw Error(`No registration for method ${t.method} with id ${t.id}`);r?.handlerDisposables.forEach(e=>e.dispose()),i?.registrations.delete(t.id)}return{ok:null}}))}_registerCapabilityOptions(e){let t=this._registrations.get(e.capability);if(t||(t=new n1,this._registrations.set(e.capability,t)),t.registrations.has(e.id))throw Error(`Handler for method ${e.capability.method} with id ${e.id} already registered`);for(let i of(t.registrations.set(e.id,e),t.handlers))(i.handleStaticCapability||!e.isFromStatic)&&e.handlerDisposables.set(i,i.handler(e.options))}setServerCapabilities(e){if(this._serverCapabilities)throw Error("Server capabilities already set");for(let t of(this._serverCapabilities=e,Object.values(rO))){let i=this._dynamicFromStatic.getOptions(t,e);i&&this._registerCapabilityOptions(new nX(t.method,t,i,!0))}}getClientCapabilities(){let e={};for(let t of this._staticCapabilities)!function e(t,i){for(let r of Object.keys(i)){let n=i[r];if(void 0===n)continue;let o=t[r];if(void 0===o||"object"!=typeof n||null===n||"object"!=typeof o||null===o){t[r]=n;continue}e(o,n)}}(e,t.cap);return e}addStaticClientCapabilities(e){let t={cap:e};return this._staticCapabilities.add(t),{dispose:()=>{this._staticCapabilities.delete(t)}}}registerCapabilityHandler(e,t,i){let r=this._registrations.get(e);r||(r=new n1,this._registrations.set(e,r));let n=new nY(e,t,i);for(let e of(r.handlers.add(n),r.registrations.values()))(n.handleStaticCapability||!e.isFromStatic)&&e.handlerDisposables.set(n,i(e.options));return{dispose:()=>{for(let e of(r.handlers.delete(n),r.registrations.values())){let t=e.handlerDisposables.get(n);t&&(t.dispose(),e.handlerDisposables.delete(n))}}}}},nY=class{constructor(e,t,i){this.capability=e,this.handleStaticCapability=t,this.handler=i}},nX=class{constructor(e,t,i,r){i2(this,"handlerDisposables",new Map),this.id=e,this.capability=t,this.options=i,this.isFromStatic=r}};let nZ=new Map([...Object.values(rO)].map(e=>[e.method,e]));function n0(e){let t=nZ.get(e);if(!t)throw Error(`No capability found for method ${e}`);return t}var n1=class{constructor(){i2(this,"handlers",new Set),i2(this,"registrations",new Map)}},n2=class e{constructor(){i2(this,"_mappings",new Map)}static create(){let t=new e;return t.set(rO.textDocumentDidChange,e=>{if(void 0!==e.textDocumentSync)if("object"==typeof e.textDocumentSync)return{syncKind:e.textDocumentSync.change??rb.None,documentSelector:null};else return{syncKind:e.textDocumentSync,documentSelector:null}}),t.set(rO.textDocumentCompletion,e=>e.completionProvider),t.set(rO.textDocumentHover,e=>e.hoverProvider),t.set(rO.textDocumentSignatureHelp,e=>e.signatureHelpProvider),t.set(rO.textDocumentDefinition,e=>e.definitionProvider),t.set(rO.textDocumentReferences,e=>e.referencesProvider),t.set(rO.textDocumentDocumentHighlight,e=>e.documentHighlightProvider),t.set(rO.textDocumentDocumentSymbol,e=>e.documentSymbolProvider),t.set(rO.textDocumentCodeAction,e=>e.codeActionProvider),t.set(rO.textDocumentCodeLens,e=>e.codeLensProvider),t.set(rO.textDocumentDocumentLink,e=>e.documentLinkProvider),t.set(rO.textDocumentFormatting,e=>e.documentFormattingProvider),t.set(rO.textDocumentRangeFormatting,e=>e.documentRangeFormattingProvider),t.set(rO.textDocumentOnTypeFormatting,e=>e.documentOnTypeFormattingProvider),t.set(rO.textDocumentRename,e=>e.renameProvider),t.set(rO.textDocumentFoldingRange,e=>e.foldingRangeProvider),t.set(rO.textDocumentDeclaration,e=>e.declarationProvider),t.set(rO.textDocumentTypeDefinition,e=>e.typeDefinitionProvider),t.set(rO.textDocumentImplementation,e=>e.implementationProvider),t.set(rO.textDocumentDocumentColor,e=>e.colorProvider),t.set(rO.textDocumentSelectionRange,e=>e.selectionRangeProvider),t.set(rO.textDocumentLinkedEditingRange,e=>e.linkedEditingRangeProvider),t.set(rO.textDocumentPrepareCallHierarchy,e=>e.callHierarchyProvider),t.set(rO.textDocumentSemanticTokensFull,e=>e.semanticTokensProvider),t.set(rO.textDocumentInlayHint,e=>e.inlayHintProvider),t.set(rO.textDocumentInlineValue,e=>e.inlineValueProvider),t.set(rO.textDocumentDiagnostic,e=>e.diagnosticProvider),t.set(rO.textDocumentMoniker,e=>e.monikerProvider),t.set(rO.textDocumentPrepareTypeHierarchy,e=>e.typeHierarchyProvider),t.set(rO.workspaceSymbol,e=>e.workspaceSymbolProvider),t.set(rO.workspaceExecuteCommand,e=>e.executeCommandProvider),t}set(e,t){if(this._mappings.has(e.method))throw Error(`Capability for method ${e.method} already registered`);this._mappings.set(e.method,t)}getOptions(e,t){let i=this._mappings.get(e.method);if(i)return i(t)}},n6=class extends rH{constructor(e,t){super(),i2(this,"_managedModels",new Map),i2(this,"_managedModelsReverse",new Map),i2(this,"_started",!1),this._server=e,this._capabilities=t,this._register(this._capabilities.addStaticClientCapabilities({textDocument:{synchronization:{dynamicRegistration:!0,willSave:!1,willSaveWaitUntil:!1,didSave:!1}}})),this._register(t.registerCapabilityHandler(rO.textDocumentDidChange,!0,e=>{if(this._started)return{dispose:()=>{}};for(let e of(this._started=!0,this._register(ix.editor.onDidCreateModel(e=>{this._getOrCreateManagedModel(e)})),ix.editor.getModels()))this._getOrCreateManagedModel(e);return{dispose:()=>{}}}))}_getOrCreateManagedModel(e){if(!this._started)throw Error("Not started");let t=e.uri.toString(!0).toLowerCase(),i=this._managedModels.get(e);return i||(i=new n3(e,this._server),this._managedModels.set(e,i),this._managedModelsReverse.set(t,e)),e.onWillDispose(()=>{i.dispose(),this._managedModels.delete(e),this._managedModelsReverse.delete(t)}),i}translateBack(e,t){let i=e.uri.toLowerCase(),r=this._managedModelsReverse.get(i);if(!r)throw Error(`No text model for uri ${i}`);return{textModel:r,position:new ix.Position(t.line+1,t.character+1)}}translateBackRange(e,t){let i=e.uri.toLowerCase(),r=this._managedModelsReverse.get(i);if(!r)throw Error(`No text model for uri ${i}`);return{textModel:r,range:new ix.Range(t.start.line+1,t.start.character+1,t.end.line+1,t.end.character+1)}}translate(e,t){return{textDocument:{uri:e.uri.toString(!0)},position:{line:t.lineNumber-1,character:t.column-1}}}translateRange(e,t){return{start:{line:t.startLineNumber-1,character:t.startColumn-1},end:{line:t.endLineNumber-1,character:t.endColumn-1}}}},n3=class extends rH{constructor(e,t){super(),this._textModel=e,this._api=t;const i=e.uri.toString(!0).toLowerCase();this._api.textDocumentDidOpen({textDocument:{languageId:e.getLanguageId(),uri:i,version:e.getVersionId(),text:e.getValue()}}),this._register(e.onDidChangeContent(t=>{let r=t.changes.map(e=>{var t,i;return{range:{start:{line:(i=(t=e).range).startLineNumber-1,character:i.startColumn-1},end:{line:i.endLineNumber-1,character:i.endColumn-1}},rangeLength:t.rangeLength,text:t.text}});this._api.textDocumentDidChange({textDocument:{uri:i,version:e.getVersionId()},contentChanges:r})})),this._register({dispose:()=>{this._api.textDocumentDidClose({textDocument:{uri:i}})}})}},n4=class{constructor(e){i2(this,"_connection"),i2(this,"_capabilitiesRegistry"),i2(this,"_bridge"),i2(this,"_initPromise");const t=ra.fromTransport(e),i=rN.getServer(t,{});t.startListen(),this._capabilitiesRegistry=new nJ(t),this._bridge=new n6(i.server,this._capabilitiesRegistry),this._connection=new nQ(i.server,this._bridge,this._capabilitiesRegistry,t),this.createFeatures(),this._initPromise=this._init()}async _init(){let e=await this._connection.server.initialize({processId:null,capabilities:this._capabilitiesRegistry.getClientCapabilities(),rootUri:null});this._connection.server.initialized({}),this._capabilitiesRegistry.setServerCapabilities(e.capabilities)}createFeatures(){let e=new rU;return e.add(new r7(this._connection)),e.add(new nt(this._connection)),e.add(new nn(this._connection)),e.add(new na(this._connection)),e.add(new nc(this._connection)),e.add(new nu(this._connection)),e.add(new ng(this._connection)),e.add(new nm(this._connection)),e.add(new nv(this._connection)),e.add(new ny(this._connection)),e.add(new nS(this._connection)),e.add(new nw(this._connection)),e.add(new nE(this._connection)),e.add(new nT(this._connection)),e.add(new nP(this._connection)),e.add(new nA(this._connection)),e.add(new nL(this._connection)),e.add(new nO(this._connection)),e.add(new n$(this._connection)),e.add(new nU(this._connection)),e.add(new nK(this._connection)),e.add(new nB(this._connection)),e}},n5=null,n8=n5="u">typeof WebSocket?WebSocket:"u">typeof MozWebSocket?MozWebSocket:e.g.WebSocket||e.g.MozWebSocket,n7=class e extends i9{constructor(e){super(),i2(this,"socket"),i2(this,"errorEmitter",new i4),i2(this,"onError",this.errorEmitter),this.socket=e,e.onmessage=e=>{try{let t=e.data;if("string"==typeof t){let e=JSON.parse(t);this._dispatchReceivedMessage(e)}else throw Error("Not supported")}catch(e){this.errorEmitter.fire({error:e})}},e.onclose=e=>{this._onConnectionClosed()}}static connectTo(t){let i=new n8(("host"in t?{address:`${t.forceTls?"wss":"ws"}://${t.host}:${t.port}`}:t).address);return new Promise((t,r)=>{i.onerror=e=>{r(e)},i.onopen=()=>{t(new e(i))}})}static fromWebSocket(t){return new e(t)}close(){this.socket.close()}dispose(){this.close()}_sendImpl(e){let t=JSON.stringify(e);return new Promise((e,i)=>{this.socket.send(t,t=>{t?i(t):e()})})}toString(){return`${this.id}@${this.socket.url}`}},n9=class extends i9{constructor(e,t,i){super(),i2(this,"_windowLike"),i2(this,"_source"),i2(this,"_loadingState"),i2(this,"_disposed",!1),i2(this,"_messageHandler",({data:e,source:t})=>{(!this._source||t===this._source)&&"object"==typeof e&&e&&this._dispatchReceivedMessage(e)}),this._windowLike=e,this._source=t,this._loadingState=i,this._windowLike.addEventListener("message",this._messageHandler)}async _sendImpl(e){if(this._disposed)throw Error("Transport is disposed");this._loadingState&&!this._loadingState.loaded&&await this._loadingState.onLoaded,this._windowLike.postMessage(e)}toString(){return`${this.id}@${this._windowLike}`}dispose(){this._disposed||(this._disposed=!0,this._windowLike.removeEventListener("message",this._messageHandler))}};e.s(["MonacoLspClient",0,n4,"WebSocketTransport",0,n7,"createTransportToIFrame",0,function(e){if("u"<typeof window)throw Error("call this function from the main browser thread");return new n9(e.contentWindow,e.contentWindow,{loaded:"complete"===window.document.readyState,onLoaded:new Promise(e=>{window.addEventListener("load",()=>e())})})},"createTransportToWorker",0,function(e){if("u"<typeof window)throw Error("call this function from the main browser thread");return new n9(e)}],733757),e.i(733757),e.i(120276);let oe=globalThis.MonacoEnvironment;oe?.globalAPI&&(globalThis.monaco=ix),ix.languages.css=iA,ix.languages.html=iV,ix.languages.typescript=iJ,ix.languages.json=iQ;let ot=new Map;function oi(e,t,i){return i?ix.Uri.file(`${i.replace(/\/+$/,"")}/${t}`):ix.Uri.parse(`file:///workspace/${e}/${t}`)}var or=e.i(185966);class on extends or.BaseLanguageClient{messageTransports;constructor({id:e,name:t,clientOptions:i,messageTransports:r}){super(e??t.toLowerCase(),t,i),this.messageTransports=r}createMessageTransports(e){return Promise.resolve(this.messageTransports)}}var oo=e.i(861593),os=e.i(69150),oa=e.i(840969),ol=e.i(654295),oc=e.i(865562),od=e.i(611130),ou=e.i(693205),oh=e.i(802136),og=e.i(798237),op=e.i(478697),om=e.i(79522),of=e.i(347470);class ov extends of.EditorWorkerClient{constructor(e,t,i){super(i.worker,i.keepIdleModels||!1,e,t),this._foreignModuleHost=i.host||null,this._foreignProxy=this._getProxy().then(e=>new Proxy({},{get(t,i,r){if("then"!==i){if("string"!=typeof i)throw Error("Not supported");if("then"!==i)return(...t)=>e.$fmr(i,t)}}}))}fhr(e,t){if(!this._foreignModuleHost||"function"!=typeof this._foreignModuleHost[e])return Promise.reject(Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(e){return Promise.reject(e)}}getProxy(){return this._foreignProxy}withSyncedResources(e){return this.workerWithSyncedResources(e).then(e=>this.getProxy())}}var o_=e.i(130772),oy=e.i(604634),oC=e.i(600345),oS=e.i(772649),ob=e.i(58762),ow=e.i(429200),ox=e.i(305638),oD=e.i(98342),oE=e.i(326659),ok=e.i(49583),oT=e.i(20848),oR=e.i(561295),oP=e.i(830598),oI=e.i(746244),oA=e.i(343840),oM=e.i(281482),oL=od;function oF(e){return"string"==typeof e}(F=et||(et={}))[F.None=0]="None",F[F.Open=1]="Open",F[F.Close=-1]="Close";function oO(e,t){return e.ignoreCase&&t?t.toLowerCase():t}function oN(e){return e.replace(/[&<>'"_]/g,"-")}function o$(e,t){return Error(`${e.languageId}: ${t}`)}function oH(e,t,i,r,n){let o=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,function(t,s,a,l,c,d,u,h,g){return a?"$":l?oO(e,i):c&&c<r.length?oO(e,r[c]):u&&e&&"string"==typeof e[u]?e[u]:(null===o&&(o=n.split(".")).unshift(n),d&&d<o.length)?oO(e,o[d]):""})}function oU(e,t){let i=t;for(;i&&i.length>0;){let t=e.tokenizer[i];if(t)return t;let r=i.lastIndexOf(".");i=r<0?null:i.substr(0,r)}return null}var oW=e.i(731931);class oq{static{this._INSTANCE=new oq(5)}static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new oj(e,t);let i=oj.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let r=this._entries[i];return r||(r=new oj(e,t),this._entries[i]=r),r}}class oj{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t}equals(e){return oj._equals(this,e)}push(e){return oq.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return oq.create(this.parent,e)}}class oz{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new oz(this.languageId,this.state)}}class oK{static{this._INSTANCE=new oK(5)}static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(null!==t||null!==e&&e.depth>=this._maxCacheDepth)return new oV(e,t);let i=oj.getStackElementId(e),r=this._entries[i];return r||(r=new oV(e,null),this._entries[i]=r),r}}class oV{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:oK.create(this.stack,this.embeddedLanguageData)}equals(e){return e instanceof oV&&!!this.stack.equals(e.stack)&&(null===this.embeddedLanguageData&&null===e.embeddedLanguageData||null!==this.embeddedLanguageData&&null!==e.embeddedLanguageData&&this.embeddedLanguageData.equals(e.embeddedLanguageData))}}class oB{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){(this._lastTokenType!==t||this._lastTokenLanguage!==this._languageId)&&(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new oS.Token(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,r){let n=i.languageId,o=i.state,s=oS.TokenizationRegistry.get(n);if(!s)return this.enterLanguage(n),this.emit(r,""),o;let a=s.tokenize(e,t,o);if(0!==r)for(let e of a.tokens)this._tokens.push(new oS.Token(e.offset+r,e.type,e.language));else this._tokens=this._tokens.concat(a.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,a.endState}finalize(e){return new oS.TokenizationResult(this._tokens,e)}}class oG{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=oR.LanguageId.Null,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){let i=this._theme.match(this._currentLanguageId,t)|oR.MetadataConsts.BALANCED_BRACKETS_MASK;this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){let r=null!==e?e.length:0,n=t.length,o=null!==i?i.length:0;if(0===r&&0===n&&0===o)return new Uint32Array(0);if(0===r&&0===n)return i;if(0===n&&0===o)return e;let s=new Uint32Array(r+n+o);null!==e&&s.set(e);for(let e=0;e<n;e++)s[r+e]=t[e];return null!==i&&s.set(i,r+n),s}nestedLanguageTokenize(e,t,i,r){let n=i.languageId,o=i.state,s=oS.TokenizationRegistry.get(n);if(!s)return this.enterLanguage(n),this.emit(r,""),o;let a=s.tokenizeEncoded(e,t,o);if(0!==r)for(let e=0,t=a.tokens.length;e<t;e+=2)a.tokens[e]+=r;return this._prependTokens=oG._merge(this._prependTokens,this._tokens,a.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,a.endState}finalize(e){return new oS.EncodedTokenizationResult(oG._merge(this._prependTokens,this._tokens,null),[],e)}}let oQ=ei=class extends oL.Disposable{constructor(e,t,i,r,n){super(),this._configurationService=n,this._languageService=e,this._standaloneThemeService=t,this._languageId=i,this._lexer=r,this._embeddedLanguages=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);let o=!1;this._register(oS.TokenizationRegistry.onDidChange(e=>{if(o)return;let t=!1;for(let i=0,r=e.changedLanguages.length;i<r;i++){let r=e.changedLanguages[i];if(this._embeddedLanguages[r]){t=!0;break}}t&&(o=!0,oS.TokenizationRegistry.handleChange([this._languageId]),o=!1)})),this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}),this._register(this._configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){let e=[];for(let t in this._embeddedLanguages){let i=oS.TokenizationRegistry.get(t);if(i){if(i instanceof ei){let t=i.getLoadStatus();!1===t.loaded&&e.push(t.promise)}continue}oS.TokenizationRegistry.isResolved(t)||e.push(oS.TokenizationRegistry.getOrCreate(t))}return 0===e.length?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then(e=>void 0)}}getInitialState(){let e=oq.create(null,this._lexer.start);return oK.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,ox.nullTokenize)(this._languageId,i);let r=new oB,n=this._tokenize(e,t,i,r);return r.finalize(n)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,ox.nullTokenizeEncoded)(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);let r=new oG(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),n=this._tokenize(e,t,i,r);return r.finalize(n)}_tokenize(e,t,i,r){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,r):this._myTokenize(e,t,i,0,r)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&!(i=oU(this._lexer,t.stack.state)))throw o$(this._lexer,"tokenizer state is not defined: "+t.stack.state);let r=-1,n=!1;for(let o of i){if(oF(o.action)||!("@pop"===o.action.nextEmbedded||o.action.hasEmbeddedEndInCases))continue;n=!0;let i=o.resolveRegex(t.stack.state),s=i.source;if("^(?:"===s.substr(0,4)&&")"===s.substr(s.length-1,1)){let e=(i.ignoreCase?"i":"")+(i.unicode?"u":"");i=new RegExp(s.substr(4,s.length-5),e)}let a=e.search(i);-1!==a&&(0===a||!o.matchOnlyAtLineStart)&&(-1===r||a<r)&&(r=a)}if(!n)throw o$(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return r}_nestedTokenize(e,t,i,r,n){let o=this._findLeavingNestedLanguageOffset(e,i);if(-1===o){let o=n.nestedLanguageTokenize(e,t,i.embeddedLanguageData,r);return oK.create(i.stack,new oz(i.embeddedLanguageData.languageId,o))}let s=e.substring(0,o);s.length>0&&n.nestedLanguageTokenize(s,!1,i.embeddedLanguageData,r);let a=e.substring(o);return this._myTokenize(a,t,i,r+o,n)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,r,n){n.enterLanguage(this._languageId);let o=e.length,s=t&&this._lexer.includeLF?e+"\n":e,a=s.length,l=i.embeddedLanguageData,c=i.stack,d=0,u=null,h=!0;for(;h||d<a;){let i=d,m=c.depth,f=u?u.groups.length:0,_=c.state,y=null,C=null,S=null,b=null,w=null;if(u){y=u.matches;let e=u.groups.shift();C=e.matched,S=e.action,b=u.rule,0===u.groups.length&&(u=null)}else{if(!h&&d>=a)break;h=!1;let e=this._lexer.tokenizer[_];if(!e&&!(e=oU(this._lexer,_)))throw o$(this._lexer,"tokenizer state is not defined: "+_);let t=s.substr(d);for(let i of e)if((0===d||!i.matchOnlyAtLineStart)&&(y=t.match(i.resolveRegex(_)))){C=y[0],S=i.action;break}}if(y||(y=[""],C=""),S||(d<a&&(C=(y=[s.charAt(d)])[0]),S=this._lexer.defaultToken),null===C)break;for(d+=C.length;!Array.isArray(S)&&!oF(S)&&S.test;)S=S.test(C,y,_,d===a);let x=null;if("string"==typeof S||Array.isArray(S))x=S;else if(S.group)x=S.group;else if(null!==S.token&&void 0!==S.token){var g,p;if(x=S.tokenSubst?oH(this._lexer,S.token,C,y,_):S.token,S.nextEmbedded)if("@pop"===S.nextEmbedded){if(!l)throw o$(this._lexer,"cannot pop embedded language if not inside one");l=null}else if(l)throw o$(this._lexer,"cannot enter embedded language from within an embedded language");else w=oH(this._lexer,S.nextEmbedded,C,y,_);if(S.goBack&&(d=Math.max(0,d-S.goBack)),S.switchTo&&"string"==typeof S.switchTo){let e=oH(this._lexer,S.switchTo,C,y,_);if("@"===e[0]&&(e=e.substr(1)),oU(this._lexer,e))c=c.switchTo(e);else throw o$(this._lexer,"trying to switch to a state '"+e+"' that is undefined in rule: "+this._safeRuleName(b))}else if(S.transform&&"function"==typeof S.transform)throw o$(this._lexer,"action.transform not supported");else if(S.next)if("@push"===S.next)if(c.depth>=this._lexer.maxStack)throw o$(this._lexer,"maximum tokenizer stack size reached: ["+c.state+","+c.parent.state+",...]");else c=c.push(_);else if("@pop"===S.next)if(c.depth<=1)throw o$(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(b));else c=c.pop();else if("@popall"===S.next)c=c.popall();else{let e=oH(this._lexer,S.next,C,y,_);if("@"===e[0]&&(e=e.substr(1)),oU(this._lexer,e))c=c.push(e);else throw o$(this._lexer,"trying to set a next state '"+e+"' that is undefined in rule: "+this._safeRuleName(b))}S.log&&"string"==typeof S.log&&(g=this._lexer,p=this._lexer.languageId+": "+oH(this._lexer,S.log,C,y,_),console.log(`${g.languageId}: ${p}`))}if(null===x)throw o$(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(b));let D=i=>{let o=this._languageService.getLanguageIdByLanguageName(i)||this._languageService.getLanguageIdByMimeType(i)||i,s=this._getNestedEmbeddedLanguageData(o);if(!(d<a))return oK.create(c,s);{let i=e.substr(d);return this._nestedTokenize(i,t,oK.create(c,s),r+d,n)}};if(Array.isArray(x)){if(u&&u.groups.length>0)throw o$(this._lexer,"groups cannot be nested: "+this._safeRuleName(b));if(y.length!==x.length+1)throw o$(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(b));let e=0;for(let t=1;t<y.length;t++)e+=y[t].length;if(e!==C.length)throw o$(this._lexer,"with groups, all characters should be matched in consecutive groups in rule: "+this._safeRuleName(b));u={rule:b,matches:y,groups:[]};for(let e=0;e<x.length;e++)u.groups[e]={action:x[e],matched:y[e+1]};d-=C.length;continue}{if("@rematch"===x&&(d-=C.length,C="",y=null,x="",null!==w))return D(w);if(0===C.length)if(0===a||m!==c.depth||_!==c.state||(u?u.groups.length:0)!==f)continue;else throw o$(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(b));let e=null;if(oF(x)&&0===x.indexOf("@brackets")){let t=x.substr(9),i=function(e,t){if(!t)return null;for(let i of(t=oO(e,t),e.brackets))if(i.open===t)return{token:i.token,bracketType:et.Open};else if(i.close===t)return{token:i.token,bracketType:et.Close};return null}(this._lexer,C);if(!i)throw o$(this._lexer,"@brackets token returned but no bracket defined as: "+C);e=oN(i.token+t)}else e=oN(""===x?"":x+this._lexer.tokenPostfix);i<o&&n.emit(i+r,e)}if(null!==w)return D(w)}return oK.create(c,l)}_getNestedEmbeddedLanguageData(e){if(!this._languageService.isRegisteredLanguageId(e))return new oz(e,ox.NullState);e!==this._languageId&&(this._languageService.requestBasicLanguageFeatures(e),oS.TokenizationRegistry.getOrCreate(e),this._embeddedLanguages[e]=!0);let t=oS.TokenizationRegistry.get(e);return t?new oz(e,t.getInitialState()):new oz(e,ox.NullState)}};oQ=ei=(0,oM.__decorate)([(0,oM.__param)(4,oW.IConfigurationService)],oQ);let oJ=(0,oT.createTrustedTypesPolicy)("standaloneColorizer",{createHTML:e=>e});class oY{static colorizeElement(e,t,i,r){let n=(r=r||{}).theme||"vs",o=r.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!o)return console.error("Mode not detected"),Promise.resolve();let s=t.getLanguageIdByMimeType(o)||o;e.setTheme(n);let a=i.firstChild?i.firstChild.nodeValue:"";return i.className+=" "+n,this.colorize(t,a||"",s,r).then(e=>{i.innerHTML=oJ?.createHTML(e)??e},e=>console.error(e))}static async colorize(e,t,i,r){var n,o,s,a;let l=e.languageIdCodec,c=4;r&&"number"==typeof r.tabSize&&(c=r.tabSize),(0,ou.startsWithUTF8BOM)(t)&&(t=t.substr(1));let d=(0,ou.splitLines)(t);if(!e.isRegisteredLanguageId(i))return oX(d,c,l);let u=await oS.TokenizationRegistry.getOrCreate(i);return u?(n=d,o=c,s=u,a=l,new Promise((e,t)=>{let i=()=>{let r=function(e,t,i,r){let n=[],o=i.getInitialState();for(let s=0,a=e.length;s<a;s++){let a=e[s],l=i.tokenizeEncoded(a,!0,o);oP.LineTokens.convertToEndOffset(l.tokens,a.length);let c=new oP.LineTokens(l.tokens,a,r),d=oA.ViewLineRenderingData.isBasicASCII(a,!0),u=oA.ViewLineRenderingData.containsRTL(a,d,!0),h=(0,oI.renderViewLine2)(new oI.RenderLineInput(!1,!0,a,!1,d,u,0,c.inflate(),[],t,0,0,0,0,-1,"none",!1,!1,null,null,0));(n=n.concat(h.html)).push("<br/>"),o=l.endState}return n.join("")}(n,o,s,a);if(s instanceof oQ){let e=s.getLoadStatus();if(!1===e.loaded)return void e.promise.then(i,t)}e(r)};i()})):oX(d,c,l)}static colorizeLine(e,t,i,r,n=4){let o=oA.ViewLineRenderingData.isBasicASCII(e,t),s=oA.ViewLineRenderingData.containsRTL(e,o,i);return(0,oI.renderViewLine2)(new oI.RenderLineInput(!1,!0,e,!1,o,s,0,r,[],n,0,0,0,0,-1,"none",!1,!1,null,null,0)).html}static colorizeModelLine(e,t,i=4){let r=e.getLineContent(t);e.tokenization.forceTokenization(t);let n=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(r,e.mightContainNonBasicASCII(),e.mightContainRTL(),n,i)}}function oX(e,t,i){let r=[],n=(oR.FontStyle.None<<oR.MetadataConsts.FONT_STYLE_OFFSET|oR.ColorId.DefaultForeground<<oR.MetadataConsts.FOREGROUND_OFFSET|oR.ColorId.DefaultBackground<<oR.MetadataConsts.BACKGROUND_OFFSET)>>>0,o=new Uint32Array(2);o[0]=0,o[1]=n;for(let n=0,s=e.length;n<s;n++){let s=e[n];o[0]=s.length;let a=new oP.LineTokens(o,s,i),l=oA.ViewLineRenderingData.isBasicASCII(s,!0),c=oA.ViewLineRenderingData.containsRTL(s,l,!0),d=(0,oI.renderViewLine2)(new oI.RenderLineInput(!1,!0,s,!1,l,c,0,a,[],t,0,0,0,0,-1,"none",!1,!1,null,null,0));(r=r.concat(d.html)).push("<br/>")}return r.join("")}var oZ=e.i(922292),o0=e.i(487106),o1=e.i(18149),o2=e.i(686380),o6=e.i(318581),o3=e.i(568101),o4=e.i(84513),o5=e.i(206548),o8=e.i(65579),o7=e.i(781808),o9=e.i(58867),se=od;e.i(71224);var st=e.i(488259),si=e.i(650289),sr=e.i(575129);e.i(698014),e.i(140331);var sn=e.i(471999);e.i(900329),e.i(785266),e.i(181268),e.i(70177),e.i(575210),e.i(890787),e.i(67920),(0,sr.registerColor)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,si.localize)(209,"The background color of the diff editor's header")),(0,sr.registerColor)("multiDiffEditor.background",sn.editorBackground,(0,si.localize)(210,"The background color of the multi file diff editor")),(0,sr.registerColor)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,si.localize)(211,"The border color of the multi file diff editor"));var so=e.i(850887),ss=e.i(984004),sa=e.i(155652),sl=od,sc=e.i(2301),sd=e.i(159868),su=e.i(9753),sh=e.i(299051),sg=e.i(25797),sp=e.i(631524),sm=e.i(623012),sf=e.i(823288),sv=e.i(532816),s_=e.i(314122),sy=e.i(896344);class sC{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let sS=class extends sl.Disposable{constructor(e,t,i,r,n){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=r,this._viewModel=(0,sv.observableValue)(this,void 0),this._collapsed=(0,s_.derived)(this,e=>this._viewModel.read(e)?.collapsed.read(e)),this._editorContentHeight=(0,sv.observableValue)(this,500),this.contentHeight=(0,s_.derived)(this,e=>(this._collapsed.read(e)?0:this._editorContentHeight.read(e))+this._outerEditorHeight),this._modifiedContentWidth=(0,sv.observableValue)(this,0),this._modifiedWidth=(0,sv.observableValue)(this,0),this._originalContentWidth=(0,sv.observableValue)(this,0),this._originalWidth=(0,sv.observableValue)(this,0),this.maxScroll=(0,s_.derived)(this,e=>{let t=this._modifiedContentWidth.read(e)-this._modifiedWidth.read(e),i=this._originalContentWidth.read(e)-this._originalWidth.read(e);return t>i?{maxScroll:t,width:this._modifiedWidth.read(e)}:{maxScroll:i,width:this._originalWidth.read(e)}}),this._elements=(0,so.h)("div.multiDiffEntry",[(0,so.h)("div.header@header",[(0,so.h)("div.header-content",[(0,so.h)("div.collapse-button@collapseButton"),(0,so.h)("div.file-path",[(0,so.h)("div.title.modified.show-file-icons@primaryPath",[]),(0,so.h)("div.status.deleted@status",["R"]),(0,so.h)("div.title.original.show-file-icons@secondaryPath",[])]),(0,so.h)("div.actions@actions")])]),(0,so.h)("div.editorParent",[(0,so.h)("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(sp.DiffEditorWidget,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=(0,sg.observableCodeEditor)(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=(0,sg.observableCodeEditor)(this.editor.getOriginalEditor()).isFocused,this.isFocused=(0,s_.derived)(this,e=>this.isModifedFocused.read(e)||this.isOriginalFocused.read(e)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new sl.DisposableStore),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new ss.Button(this._elements.collapseButton,{});this._register((0,sy.autorun)(e=>{o.element.className="",o.icon=this._collapsed.read(e)?sa.Codicon.chevronRight:sa.Codicon.chevronDown})),this._register(o.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,sy.autorun)(e=>{this._elements.editor.style.display=this._collapsed.read(e)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(e=>{let t=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(t,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(e=>{let t=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(t,void 0)})),this._register(this.editor.onDidContentSizeChange(e=>{(0,sf.globalTransaction)(t=>{this._editorContentHeight.set(e.contentHeight,t),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),t),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),t)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(e=>{if(this._isSettingScrollTop||!e.scrollTopChanged||!this._data)return;let t=e.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(t)})),this._register((0,sy.autorun)(e=>{let t=this._viewModel.read(e)?.isActive.read(e);this._elements.root.classList.toggle("active",t)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(n.createScoped(this._elements.actions));const s=this._register(this._instantiationService.createChild(new sh.ServiceCollection([su.IContextKeyService,this._contextKeyService])));this._register(s.createInstance(sd.MenuWorkbenchToolBar,this._elements.actions,o2.MenuId.MultiDiffEditorFileToolbar,{actionRunner:this._register(new sm.ActionRunnerWithContext(()=>this._viewModel.get()?.modifiedUri??this._viewModel.get()?.originalUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:e=>e.startsWith("navigation")},actionViewItemProvider:(e,t)=>(0,sc.createActionViewItem)(s,e,t)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){function t(e){return{...e,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(this._data=e,!e)return void(0,sf.globalTransaction)(e=>{this._viewModel.set(void 0,e),this.editor.setDiffModel(null,e),this._dataStore.clear()});let i=e.viewModel.documentDiffItem;if((0,sf.globalTransaction)(r=>{this._resourceLabel?.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:void 0===e.viewModel.modifiedUri});let n=!1,o=!1,s=!1,a="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(a="R",n=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(a="A",s=!0):(a="D",o=!0),this._elements.status.classList.toggle("renamed",n),this._elements.status.classList.toggle("deleted",o),this._elements.status.classList.toggle("added",s),this._elements.status.innerText=a,this._resourceLabel2?.setUri(n?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,r),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,r),this.editor.updateOptions(t(i.options??{}))}),i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{this.editor.updateOptions(t(i.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,e=>{e||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(let[t,i]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(t,i)}render(e,t,i,r){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";let n=e.length-this._headerHeight,o=Math.max(0,Math.min(r.start-e.start,n));this._elements.header.style.transform=`translateY(${o}px)`,(0,sf.globalTransaction)(i=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",o>0||i>0),this._elements.header.classList.toggle("collapsed",o===n)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};sS=(0,oM.__decorate)([(0,oM.__param)(3,st.IInstantiationService),(0,oM.__param)(4,su.IContextKeyService)],sS);var sb=e.i(235905),sw=e.i(46373),sx=e.i(454514),sD=e.i(237029),sE=e.i(619122),sk=od,sT=e.i(920042),sR=e.i(103346),sP=e.i(340793),sI=e.i(704409),sA=e.i(955921);class sM{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(0===this._unused.size)t=this._create(e),this._itemData.set(t,e);else{let i=[...this._unused.values()];t=i.find(t=>this._itemData.get(t).getId()===e.getId())??i[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(let e of this._used)e.dispose();for(let e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var sL=e.i(229081);(0,ol.registerCss)(void 0);let sF=class extends sk.Disposable{constructor(e,t,i,r,n,o){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=r,this._parentContextKeyService=n,this._parentInstantiationService=o,this._scrollableElements=(0,so.h)("div.scrollContent",[(0,so.h)("div@content",{style:{overflow:"hidden"}}),(0,so.h)("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new sT.Scrollable({forceIntegerValues:!1,scheduleAtNextAnimationFrame:e=>(0,so.scheduleAtNextAnimationFrame)((0,so.getWindow)(this._element),e),smoothScrollDuration:100})),this._scrollableElement=this._register(new sw.SmoothScrollableElement(this._scrollableElements.root,{vertical:sT.ScrollbarVisibility.Auto,horizontal:sT.ScrollbarVisibility.Auto,useShadows:!1},this._scrollable)),this._elements=(0,so.h)("div.monaco-component.multiDiffEditor",{},[(0,so.h)("div",{},[this._scrollableElement.getDomNode()]),(0,so.h)("div.placeholder@placeholder",{},[(0,so.h)("div")])]),this._sizeObserver=this._register(new sA.ObservableElementSizeObserver(this._element,void 0)),this._objectPool=this._register(new sM(e=>{let t=this._instantiationService.createInstance(sS,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return t.setData(e),t})),this.scrollTop=(0,sL.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,sL.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=(0,s_.derived)(this,e=>{let t=this._viewModel.read(e);if(!t)return{items:[],getItem:e=>{throw new sE.BugIndicatingError}};let i=t.items.read(e),r=new Map;return{items:i.map(t=>{let i=e.store.add(new sO(t,this._objectPool,this.scrollLeft,e=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+e})})),n=this._lastDocStates?.[i.getKey()];return n&&(0,sf.transaction)(e=>{i.setViewState(n,e)}),r.set(t,i),i}),getItem:e=>r.get(e)}}),this._viewItems=this._viewItemsInfo.map(this,e=>e.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(e,t)=>e.reduce((e,i)=>e+i.contentHeight.read(t)+this._spaceBetweenPx,0)),this.activeControl=(0,s_.derived)(this,e=>{let t=this._viewModel.read(e)?.activeDiffItem.read(e);if(!t)return;let i=this._viewItemsInfo.read(e).getItem(t);return i.template.read(e)?.editor}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new sh.ServiceCollection([su.IContextKeyService,this._contextKeyService]))),this._contextKeyService.createKey(sI.EditorContextKeys.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register((0,sy.autorunWithStore)((e,t)=>{let i=this._viewModel.read(e);if(i&&i.contextKeys)for(let[e,r]of Object.entries(i.contextKeys)){let i=this._contextKeyService.createKey(e,void 0);i.set(r),t.add((0,sk.toDisposable)(()=>i.reset()))}}));const s=this._parentContextKeyService.createKey(sI.EditorContextKeys.multiDiffEditorAllCollapsed.key,!1);this._register((0,sy.autorun)(e=>{let t=this._viewModel.read(e);if(t){let i=t.items.read(e).every(t=>t.collapsed.read(e));s.set(i)}})),this._register((0,sy.autorun)(e=>{let t=this._dimension.read(e);this._sizeObserver.observe(t)}));const a=(0,s_.derived)(e=>{if(this._viewItems.read(e).length>0)return;let t=this._viewModel.read(e);return!t||t.isLoading.read(e)?(0,si.localize)(212,"Loading..."):(0,si.localize)(213,"No Changed Files")});this._register((0,sy.autorun)(e=>{let t=a.read(e);this._elements.placeholder.innerText=t??"",this._elements.placeholder.classList.toggle("visible",!!t)})),this._scrollableElements.content.style.position="relative",this._register((0,sy.autorun)(e=>{let t=this._sizeObserver.height.read(e);this._scrollableElements.root.style.height=`${t}px`;let i=this._totalHeight.read(e);this._scrollableElements.content.style.height=`${i}px`;let r=this._sizeObserver.width.read(e),n=r,o=this._viewItems.read(e),s=(0,sD.findFirstMax)(o,(0,sx.compareBy)(t=>t.maxScroll.read(e).maxScroll,sx.numberComparator));s&&(n=r+s.maxScroll.read(e).maxScroll),this._scrollableElement.setScrollDimensions({width:r,height:t,scrollHeight:i,scrollWidth:n})})),e.replaceChildren(this._elements.root),this._register((0,sk.toDisposable)(()=>{e.replaceChildren()})),this._register((0,sy.autorun)(e=>{let t=this._viewModel.read(e);if(t&&!t.isLoading.read(e)){if(0===t.items.read(e).length||t.activeDiffItem.read(e))return;this.goToNextChange()}})),this._register(this._register((0,sy.autorun)(e=>{(0,sf.globalTransaction)(t=>{this.render(e)})})))}setScrollState(e){this._scrollableElement.setScrollPosition({scrollLeft:e.left,scrollTop:e.top})}getRootElement(){return this._elements.root}getContextKeyService(){return this._contextKeyService}getScopedInstantiationService(){return this._instantiationService}reveal(e,t){var i,r;let n,o,s=this._viewItems.get(),a=s.findIndex(t=>t.viewModel.originalUri?.toString()===e.original?.toString()&&t.viewModel.modifiedUri?.toString()===e.modified?.toString());if(-1===a)throw new sE.BugIndicatingError("Resource not found in diff editor");let l=s[a];this._viewModel.get().activeDiffItem.setCache(l.viewModel,void 0);let c=0;for(let e=0;e<a;e++)c+=s[e].contentHeight.get()+this._spaceBetweenPx;this._scrollableElement.setScrollPosition({scrollTop:c});let d=l.template.get()?.editor,u="original"in e?d?.getOriginalEditor():d?.getModifiedEditor();u&&t?.range&&(u.revealRangeInCenter(t.range),i=u,r=t.range,n=i.getModel(),o=i.createDecorationsCollection([{range:r,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]),setTimeout(()=>{i.getModel()===n&&o.clear()},350))}getViewState(){return{scrollState:{top:this.scrollTop.get(),left:this.scrollLeft.get()},docStates:Object.fromEntries(this._viewItems.get().map(e=>[e.getKey(),e.getViewState()]))}}setViewState(e){this.setScrollState(e.scrollState),this._lastDocStates=e.docStates,(0,sf.transaction)(t=>{if(e.docStates)for(let i of this._viewItems.get()){let r=e.docStates[i.getKey()];r&&i.setViewState(r,t)}})}findDocumentDiffItem(e){let t=this._viewItems.get().find(t=>t.viewModel.diffEditorViewModel.model.modified.uri.toString()===e.toString()||t.viewModel.diffEditorViewModel.model.original.uri.toString()===e.toString());return t?.viewModel.documentDiffItem}tryGetCodeEditor(e){let t=this._viewItems.get().find(t=>t.viewModel.diffEditorViewModel.model.modified.uri.toString()===e.toString()||t.viewModel.diffEditorViewModel.model.original.uri.toString()===e.toString()),i=t?.template.get()?.editor;if(i)if(t.viewModel.diffEditorViewModel.model.modified.uri.toString()===e.toString())return{diffEditor:i,editor:i.getModifiedEditor()};else return{diffEditor:i,editor:i.getOriginalEditor()}}goToNextChange(){this._navigateToChange("next")}goToPreviousChange(){this._navigateToChange("previous")}_navigateToChange(e){let t=this._viewItems.get();if(0===t.length)return;let i=this._viewModel.get()?.activeDiffItem.get(),r=i?t.findIndex(e=>e.viewModel===i):-1;if(-1===r)return void this._goToFile(0,"first");let n=t[r];n.viewModel.collapsed.get()&&n.viewModel.collapsed.set(!1,void 0);let o=n.template.get()?.editor;if(o?.getDiffComputationResult()?.changes2?.length){let t=o.getModifiedEditor().getPosition()?.lineNumber||1,i=o.getDiffComputationResult().changes2;if("next"===e?i.some(e=>e.modified.startLineNumber>t):i.some(e=>e.modified.endLineNumberExclusive<=t))return void o.goToDiff(e)}let s=(r+("next"===e?1:-1)+t.length)%t.length;this._goToFile(s,"next"===e?"first":"last")}_goToFile(e,t){let i=this._viewItems.get()[e];i.viewModel.collapsed.get()&&i.viewModel.collapsed.set(!1,void 0),this.reveal({original:i.viewModel.originalUri,modified:i.viewModel.modifiedUri});let r=i.template.get()?.editor;if(r?.getDiffComputationResult()?.changes2?.length)if("first"===t)r.revealFirstDiff();else{let e=r.getDiffComputationResult().changes2.at(-1),t=r.getModifiedEditor();t.setPosition({lineNumber:e.modified.startLineNumber,column:1}),t.revealLineInCenter(e.modified.startLineNumber)}r?.focus()}render(e){let t=this.scrollTop.read(e),i=0,r=0,n=0,o=this._sizeObserver.height.read(e),s=sR.OffsetRange.ofStartAndLength(t,o),a=this._sizeObserver.width.read(e);for(let l of this._viewItems.read(e)){let c=l.contentHeight.read(e),d=Math.min(c,o),u=sR.OffsetRange.ofStartAndLength(r,d),h=sR.OffsetRange.ofStartAndLength(n,c);if(h.isBefore(s))i-=c-d,l.hide();else if(h.isAfter(s))l.hide();else{let e=Math.max(0,Math.min(s.start-h.start,c-d));i-=e;let r=sR.OffsetRange.ofStartAndLength(t+i,o);l.render(u,e,a,r)}r+=d+this._spaceBetweenPx,n+=c+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};sF=(0,oM.__decorate)([(0,oM.__param)(4,su.IContextKeyService),(0,oM.__param)(5,st.IInstantiationService)],sF);class sO extends sk.Disposable{constructor(e,t,i,r){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=r,this._templateRef=this._register((0,sv.disposableObservableValue)(this,void 0)),this.contentHeight=(0,s_.derived)(this,e=>this._templateRef.read(e)?.object.contentHeight?.read(e)??this.viewModel.lastTemplateData.read(e).contentHeight),this.maxScroll=(0,s_.derived)(this,e=>this._templateRef.read(e)?.object.maxScroll.read(e)??{maxScroll:0,scrollWidth:0}),this.template=(0,s_.derived)(this,e=>this._templateRef.read(e)?.object),this._isHidden=(0,sv.observableValue)(this,!1),this._isFocused=(0,s_.derived)(this,e=>this.template.read(e)?.isFocused.read(e)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register((0,sy.autorun)(e=>{let t=this._scrollLeft.read(e);this._templateRef.read(e)?.object.setScrollLeft(t)})),this._register((0,sy.autorun)(e=>{let t=this._templateRef.read(e);t&&this._isHidden.read(e)&&(t.object.isFocused.read(e)||this._clear())}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}getViewState(){return(0,sf.transaction)(e=>{this._updateTemplateData(e)}),{collapsed:this.viewModel.collapsed.get(),selections:this.viewModel.lastTemplateData.get().selections}}setViewState(e,t){this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);let i=this.viewModel.lastTemplateData.get(),r=e.selections?.map(sP.Selection.liftSelection);this.viewModel.lastTemplateData.set({...i,selections:r},t);let n=this._templateRef.get();n&&r&&n.object.editor.setSelections(r)}_updateTemplateData(e){let t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){let e=this._templateRef.get();e&&(0,sf.transaction)(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,r){this._isHidden.set(!1,void 0);let n=this._templateRef.get();if(!n){n=this._objectPool.getUnusedObj(new sC(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(n,void 0);let e=this.viewModel.lastTemplateData.get().selections;e&&n.object.editor.setSelections(e)}n.object.render(e,i,t,r)}}var sN=e.i(465376);let s$=class extends se.Disposable{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=(0,sv.observableValue)(this,void 0),this._viewModel=(0,sv.observableValue)(this,void 0),this._widgetImpl=(0,s_.derived)(this,e=>e.store.add(this._instantiationService.createInstance((0,o9.readHotReloadableExport)(sF),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._activeControl=(0,s_.derived)(this,e=>this._widgetImpl.read(e).activeControl.read(e)),this.onDidChangeActiveControl=o7.Event.fromObservableLight(this._activeControl),this._register((0,sN.recomputeInitiallyAndOnChange)(this._widgetImpl))}reveal(e,t){this._widgetImpl.get().reveal(e,t)}createViewModel(e){return new sb.MultiDiffEditorViewModel(e,this._instantiationService)}setViewModel(e){this._viewModel.set(e,void 0)}layout(e){this._dimension.set(e,void 0)}getActiveControl(){return this._activeControl.get()}getViewState(){return this._widgetImpl.get().getViewState()}setViewState(e){this._widgetImpl.get().setViewState(e)}tryGetCodeEditor(e){return this._widgetImpl.get().tryGetCodeEditor(e)}getRootElement(){return this._widgetImpl.get().getRootElement()}getContextKeyService(){return this._widgetImpl.get().getContextKeyService()}getScopedInstantiationService(){return this._widgetImpl.get().getScopedInstantiationService()}findDocumentDiffItem(e){return this._widgetImpl.get().findDocumentDiffItem(e)}goToNextChange(){this._widgetImpl.get().goToNextChange()}goToPreviousChange(){this._widgetImpl.get().goToPreviousChange()}};s$=(0,oM.__decorate)([(0,oM.__param)(2,st.IInstantiationService)],s$);var sH=e.i(557941);function sU(e){let t=o0.StandaloneServices.get(o4.IKeybindingService);return t instanceof o0.StandaloneKeybindingService?t.addDynamicKeybindings(e.map(e=>({keybinding:e.keybinding,command:e.command,commandArgs:e.commandArgs,when:o3.ContextKeyExpr.deserialize(e.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),od.Disposable.None)}(0,ol.registerCss)(void 0);var sW=e.i(144881),sq=e.i(166969),sj=e.i(841836),sz=e.i(407791),sK=e.i(535567);function sV(e,t){return"boolean"==typeof e?e:t}function sB(e,t){return"string"==typeof e?e:t}function sG(e,t=!1){t&&(e=e.map(function(e){return e.toLowerCase()}));let i=function(e){let t={};for(let i of e)t[i]=!0;return t}(e);return t?function(e){return void 0!==i[e.toLowerCase()]&&i.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==i[e]&&i.hasOwnProperty(e)}}function sQ(e,t,i){let r;t=t.replace(/@@/g,"\x01");let n=0;do r=!1,t=t.replace(/@(\w+)/g,function(i,n){r=!0;let o="";if("string"==typeof e[n])o=e[n];else if(e[n]&&e[n]instanceof RegExp)o=e[n].source;else if(void 0===e[n])throw o$(e,"language definition does not contain attribute '"+n+"', used at: "+t);else throw o$(e,"attribute reference '"+n+"' must be a string, used at: "+t);return o?"(?:"+o+")":""}),n++;while(r&&n<5)t=t.replace(/\x01/g,"@");let o=(e.ignoreCase?"i":"")+(e.unicode?"u":"");if(i&&t.match(/\$[sS](\d\d?)/g)){let i=null,r=null;return n=>{let s;return r&&i===n?r:(i=n,r=new RegExp((s=null,t.replace(/\$[sS](\d\d?)/g,function(t,i){return(null===s&&(s=n.split(".")).unshift(n),i&&i<s.length)?(0,ou.escapeRegExpCharacters)(oO(e,s[i])):""})),o))}}return new RegExp(t,o)}class sJ{constructor(e){this.regex=RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let i;if("string"==typeof t)i=t;else if(t instanceof RegExp)i=t.source;else throw o$(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=i.length>0&&"^"===i[0],this.name=this.name+": "+i,this.regex=sQ(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=function e(t,i,r){if(!r)return{token:""};if("string"==typeof r)return r;if(r.token||""===r.token)if("string"!=typeof r.token)throw o$(t,"a 'token' attribute must be of type string, in rule: "+i);else{let e={token:r.token};if(r.token.indexOf("$")>=0&&(e.tokenSubst=!0),"string"==typeof r.bracket)if("@open"===r.bracket)e.bracket=et.Open;else if("@close"===r.bracket)e.bracket=et.Close;else throw o$(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+i);if(r.next)if("string"!=typeof r.next)throw o$(t,"the next state must be a string value in rule: "+i);else{let n=r.next;if(!/^(@pop|@push|@popall)$/.test(n)&&("@"===n[0]&&(n=n.substr(1)),0>n.indexOf("$")&&!function(e,t){let i=t;for(;i&&i.length>0;){if(e.stateNames[i])return!0;let t=i.lastIndexOf(".");i=t<0?null:i.substr(0,t)}return!1}(t,oH(t,n,"",[],""))))throw o$(t,"the next state '"+r.next+"' is not defined in rule: "+i);e.next=n}return"number"==typeof r.goBack&&(e.goBack=r.goBack),"string"==typeof r.switchTo&&(e.switchTo=r.switchTo),"string"==typeof r.log&&(e.log=r.log),"string"==typeof r.nextEmbedded&&(e.nextEmbedded=r.nextEmbedded,t.usesEmbedded=!0),e}if(Array.isArray(r)){let n=[];for(let o=0,s=r.length;o<s;o++)n[o]=e(t,i,r[o]);return{group:n}}if(r.cases){let n=[],o=!1;for(let s in r.cases)if(r.cases.hasOwnProperty(s)){let a=e(t,i,r.cases[s]);"@default"===s||"@"===s||""===s?n.push({test:void 0,value:a,name:s}):"@eos"===s?n.push({test:function(e,t,i,r){return r},value:a,name:s}):n.push(function(e,t,i,r){let n,o=-1,s=i,a=i.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);a&&(a[3]&&(o=parseInt(a[3]),a[2]&&(o+=100)),s=a[4]);let l="~",c=s;if(s&&0!==s.length?/^\w*$/.test(c)?l="==":(a=s.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(l=a[1],c=a[2]):(l="!=",c=""),("~"===l||"!~"===l)&&/^(\w|\|)*$/.test(c)){let t=sG(c.split("|"),e.ignoreCase);n=function(e){return"~"===l?t(e):!t(e)}}else if("@"===l||"!@"===l){let i=e[c];if(!i)throw o$(e,"the @ match target '"+c+"' is not defined, in rule: "+t);if(!function(e,t){if(!t||!Array.isArray(t))return!1;for(let i of t)if(!e(i))return!1;return!0}(function(e){return"string"==typeof e},i))throw o$(e,"the @ match target '"+c+"' must be an array of strings, in rule: "+t);let r=sG(i,e.ignoreCase);n=function(e){return"@"===l?r(e):!r(e)}}else if("~"===l||"!~"===l)if(0>c.indexOf("$")){let t=sQ(e,"^"+c+"$",!1);n=function(e){return"~"===l?t.test(e):!t.test(e)}}else n=function(t,i,r,n){return sQ(e,"^"+oH(e,c,i,r,n)+"$",!1).test(t)};else if(0>c.indexOf("$")){let t=oO(e,c);n=function(e){return"=="===l?e===t:e!==t}}else{let t=oO(e,c);n=function(i,r,n,o,s){let a=oH(e,t,r,n,o);return"=="===l?i===a:i!==a}}return -1===o?{name:i,value:r,test:function(e,t,i,r){return n(e,e,t,i,r)}}:{name:i,value:r,test:function(e,t,i,r){let s=function(e,t,i,r){if(r<0)return e;if(r<t.length)return t[r];if(r>=100){r-=100;let e=i.split(".");if(e.unshift(i),r<e.length)return e[r]}return null}(e,t,i,o);return n(s||"",e,t,i,r)}}}(t,i,s,a)),o||(o=!(0,sK.isString)(a)&&(a.hasEmbeddedEndInCases||["@pop","@popall"].includes(a.nextEmbedded||"")))}let s=t.defaultToken;return{hasEmbeddedEndInCases:o,test:function(e,t,i,r){for(let o of n)if(!o.test||o.test(e,t,i,r))return o.value;return s}}}else throw o$(t,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+i)}(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function sY(e,t){if(!t||"object"!=typeof t)throw Error("Monarch: expecting a language definition object");let i={languageId:e,includeLF:sV(t.includeLF,!1),noThrow:!1,maxStack:100,start:"string"==typeof t.start?t.start:null,ignoreCase:sV(t.ignoreCase,!1),unicode:sV(t.unicode,!1),tokenPostfix:sB(t.tokenPostfix,"."+e),defaultToken:sB(t.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]};if(t.languageId=e,t.includeLF=i.includeLF,t.ignoreCase=i.ignoreCase,t.unicode=i.unicode,t.noThrow=i.noThrow,t.usesEmbedded=i.usesEmbedded,t.stateNames=t.tokenizer,t.defaultToken=i.defaultToken,!t.tokenizer||"object"!=typeof t.tokenizer)throw o$(i,"a language definition must define the 'tokenizer' attribute as an object");for(let e in i.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(e)){i.start||(i.start=e);let r=t.tokenizer[e];i.tokenizer[e]=[],function e(r,n,o){for(let s of o){let o=s.include;if(o){if("string"!=typeof o)throw o$(i,"an 'include' attribute must be a string at: "+r);if("@"===o[0]&&(o=o.substr(1)),!t.tokenizer[o])throw o$(i,"include target '"+o+"' is not defined at: "+r);e(r+"."+o,n,t.tokenizer[o])}else{let e=new sJ(r);if(Array.isArray(s)&&s.length>=1&&s.length<=3)if(e.setRegex(t,s[0]),s.length>=3)if("string"==typeof s[1])e.setAction(t,{token:s[1],next:s[2]});else if("object"==typeof s[1]){let i=s[1];i.next=s[2],e.setAction(t,i)}else throw o$(i,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+r);else e.setAction(t,s[1]);else{if(!s.regex)throw o$(i,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+r);s.name&&"string"==typeof s.name&&(e.name=s.name),s.matchOnlyAtStart&&(e.matchOnlyAtLineStart=sV(s.matchOnlyAtLineStart,!1)),e.setRegex(t,s.regex),e.setAction(t,s.action)}n.push(e)}}}("tokenizer."+e,i.tokenizer[e],r)}if(i.usesEmbedded=t.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw o$(i,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];let r=[];for(let e of t.brackets){let t=e;if(t&&Array.isArray(t)&&3===t.length&&(t={token:t[2],open:t[0],close:t[1]}),t.open===t.close)throw o$(i,"open and close brackets in a 'brackets' attribute must be different: "+t.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"==typeof t.open&&"string"==typeof t.token&&"string"==typeof t.close)r.push({token:t.token+i.tokenPostfix,open:oO(i,t.open),close:oO(i,t.close)});else throw o$(i,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return i.brackets=r,i.noThrow=!0,i}var sX=e.i(495723);class sZ{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if("function"==typeof this._actual.tokenize)return s0.adaptTokenize(this._languageId,this._actual,e,i);throw Error("Not supported!")}tokenizeEncoded(e,t,i){let r=this._actual.tokenizeEncoded(e,i);return new oS.EncodedTokenizationResult(r.tokens,[],r.endState)}}class s0{constructor(e,t,i,r){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=r}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){let i=[],r=0;for(let n=0,o=e.length;n<o;n++){let o=e[n],s=o.startIndex;0===n?s=0:s<r&&(s=r),i[n]=new oS.Token(s,o.scopes,t),r=s}return i}static adaptTokenize(e,t,i,r){let n,o=t.tokenize(i,r),s=s0._toClassicTokens(o.tokens,e);return n=o.endState.equals(r)?r:o.endState,new oS.TokenizationResult(s,n)}tokenize(e,t,i){return s0.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){let i=e.encodeLanguageId(this._languageId),r=this._standaloneThemeService.getColorTheme().tokenTheme,n=[],o=0,s=0;for(let e=0,a=t.length;e<a;e++){let a=t[e],l=r.match(i,a.scopes)|oR.MetadataConsts.BALANCED_BRACKETS_MASK;if(o>0&&n[o-1]===l)continue;let c=a.startIndex;0===e?c=0:c<s&&(c=s),n[o++]=c,n[o++]=l,s=c}let a=new Uint32Array(o);for(let e=0;e<o;e++)a[e]=n[e];return a}tokenizeEncoded(e,t,i){let r,n=this._actual.tokenize(e,i),o=this._toBinaryTokens(this._languageService.languageIdCodec,n.tokens);return r=n.endState.equals(i)?i:n.endState,new oS.EncodedTokenizationResult(o,[],r)}}function s1(e){return e&&"function"==typeof e.then}function s2(e,t){return"tokenizeEncoded"in t?new sZ(e,t):new s0(e,t,o0.StandaloneServices.get(ob.ILanguageService),o0.StandaloneServices.get(o1.IStandaloneThemeService))}function s6(e,t){let i=new oS.LazyTokenizationSupport(async()=>{let i=await Promise.resolve(t.create());return i?"function"==typeof i.getInitialState?s2(e,i):new oQ(o0.StandaloneServices.get(ob.ILanguageService),o0.StandaloneServices.get(o1.IStandaloneThemeService),e,sY(e,i),o0.StandaloneServices.get(oW.IConfigurationService)):null});return oS.TokenizationRegistry.registerFactory(e,i)}var s3=e.i(264901),s4=e.i(322193);os.EditorOptions.wrappingIndent.defaultValue=os.WrappingIndent.None,os.EditorOptions.glyphMargin.defaultValue=!1,os.EditorOptions.autoIndent.defaultValue=os.EditorAutoIndentStrategy.Advanced,os.EditorOptions.overviewRulerLanes.defaultValue=2,s3.FormattingConflicts.setFormatterSelector((e,t,i)=>Promise.resolve(e[0]));let s5=(0,oa.createMonacoBaseAPI)();s5.editor={create:function(e,t,i){return o0.StandaloneServices.initialize(i||{}).createInstance(oZ.StandaloneEditor,e,t)},getEditors:function(){return o0.StandaloneServices.get(om.ICodeEditorService).listCodeEditors()},getDiffEditors:function(){return o0.StandaloneServices.get(om.ICodeEditorService).listDiffEditors()},onDidCreateEditor:function(e){return o0.StandaloneServices.get(om.ICodeEditorService).onCodeEditorAdd(t=>{e(t)})},onDidCreateDiffEditor:function(e){return o0.StandaloneServices.get(om.ICodeEditorService).onDiffEditorAdd(t=>{e(t)})},createDiffEditor:function(e,t,i){return o0.StandaloneServices.initialize(i||{}).createInstance(oZ.StandaloneDiffEditor2,e,t)},addCommand:function(e){if("string"!=typeof e.id||"function"!=typeof e.run)throw Error("Invalid command descriptor, `id` and `run` are required properties!");return o6.CommandsRegistry.registerCommand(e.id,e.run)},addEditorAction:function(e){if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");let t=o3.ContextKeyExpr.deserialize(e.precondition),i=new od.DisposableStore;if(i.add(o6.CommandsRegistry.registerCommand(e.id,(i,...r)=>op.EditorCommand.runEditorCommand(i,r,t,(t,i,r)=>Promise.resolve(e.run(i,...r))))),e.contextMenuGroupId){let r={command:{id:e.id,title:e.label},when:t,group:e.contextMenuGroupId,order:e.contextMenuOrder||0};i.add(o2.MenuRegistry.appendMenuItem(o2.MenuId.EditorContext,r))}if(Array.isArray(e.keybindings)){let r=o0.StandaloneServices.get(o4.IKeybindingService);if(r instanceof o0.StandaloneKeybindingService){let n=o3.ContextKeyExpr.and(t,o3.ContextKeyExpr.deserialize(e.keybindingContext));i.add(r.addDynamicKeybindings(e.keybindings.map(t=>({keybinding:t,command:e.id,when:n}))))}else console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService")}return i},addKeybindingRule:function(e){return sU([e])},addKeybindingRules:sU,createModel:function(e,t,i){let r=o0.StandaloneServices.get(ob.ILanguageService),n=r.getLanguageIdByMimeType(t)||t;return(0,oZ.createTextModel)(o0.StandaloneServices.get(oE.IModelService),r,e,n,i)},setModelLanguage:function(e,t){let i=o0.StandaloneServices.get(ob.ILanguageService),r=i.getLanguageIdByMimeType(t)||t||ow.PLAINTEXT_LANGUAGE_ID;e.setLanguage(i.createById(r))},setModelMarkers:function(e,t,i){e&&o0.StandaloneServices.get(o5.IMarkerService).changeOne(t,e.uri,i)},getModelMarkers:function(e){return o0.StandaloneServices.get(o5.IMarkerService).read(e)},removeAllMarkers:function(e){o0.StandaloneServices.get(o5.IMarkerService).changeAll(e,[])},onDidChangeMarkers:function(e){return o0.StandaloneServices.get(o5.IMarkerService).onMarkerChanged(e)},getModels:function(){return o0.StandaloneServices.get(oE.IModelService).getModels()},getModel:function(e){return o0.StandaloneServices.get(oE.IModelService).getModel(e)},onDidCreateModel:function(e){return o0.StandaloneServices.get(oE.IModelService).onModelAdded(e)},onWillDisposeModel:function(e){return o0.StandaloneServices.get(oE.IModelService).onModelRemoved(e)},onDidChangeModelLanguage:function(e){return o0.StandaloneServices.get(oE.IModelService).onModelLanguageChanged(t=>{e({model:t.model,oldLanguage:t.oldLanguageId})})},createWebWorker:function(e){var t;return t=o0.StandaloneServices.get(oE.IModelService),new ov(t,o0.StandaloneServices.get(sH.IWebWorkerService),e)},colorizeElement:function(e,t){let i=o0.StandaloneServices.get(ob.ILanguageService),r=o0.StandaloneServices.get(o1.IStandaloneThemeService);return oY.colorizeElement(r,i,e,t).then(()=>{r.registerEditorContainer(e)})},colorize:function(e,t,i){let r=o0.StandaloneServices.get(ob.ILanguageService);return o0.StandaloneServices.get(o1.IStandaloneThemeService).registerEditorContainer(oc.mainWindow.document.body),oY.colorize(r,e,t,i)},colorizeModelLine:function(e,t,i=4){return o0.StandaloneServices.get(o1.IStandaloneThemeService).registerEditorContainer(oc.mainWindow.document.body),oY.colorizeModelLine(e,t,i)},tokenize:function(e,t){let i;oS.TokenizationRegistry.getOrCreate(t);let r=(i=oS.TokenizationRegistry.get(t))||{getInitialState:()=>ox.NullState,tokenize:(e,i,r)=>(0,ox.nullTokenize)(t,r)},n=(0,ou.splitLines)(e),o=[],s=r.getInitialState();for(let e=0,t=n.length;e<t;e++){let t=n[e],i=r.tokenize(t,!0,s);o[e]=i.tokens,s=i.endState}return o},defineTheme:function(e,t){o0.StandaloneServices.get(o1.IStandaloneThemeService).defineTheme(e,t)},setTheme:function(e){o0.StandaloneServices.get(o1.IStandaloneThemeService).setTheme(e)},remeasureFonts:function(){og.FontMeasurements.clearAllFontInfos()},registerCommand:function(e,t){return o6.CommandsRegistry.registerCommand({id:e,handler:t})},registerLinkOpener:function(e){return o0.StandaloneServices.get(o8.IOpenerService).registerOpener({open:async t=>("string"==typeof t&&(t=oh.URI.parse(t)),e.open(t))})},registerEditorOpener:function(e){return o0.StandaloneServices.get(om.ICodeEditorService).registerCodeEditorOpenHandler(async(t,i,r)=>{let n;if(!i)return null;let o=t.options?.selection;return(o&&"number"==typeof o.endLineNumber&&"number"==typeof o.endColumn?n=o:o&&(n={lineNumber:o.startLineNumber,column:o.startColumn}),await e.openCodeEditor(i,t.resource,n))?i:null})},AccessibilitySupport:ok.AccessibilitySupport,ContentWidgetPositionPreference:ok.ContentWidgetPositionPreference,CursorChangeReason:ok.CursorChangeReason,DefaultEndOfLine:ok.DefaultEndOfLine,EditorAutoIndentStrategy:ok.EditorAutoIndentStrategy,EditorOption:ok.EditorOption,EndOfLinePreference:ok.EndOfLinePreference,EndOfLineSequence:ok.EndOfLineSequence,MinimapPosition:ok.MinimapPosition,MinimapSectionHeaderStyle:ok.MinimapSectionHeaderStyle,MouseTargetType:ok.MouseTargetType,OverlayWidgetPositionPreference:ok.OverlayWidgetPositionPreference,OverviewRulerLane:ok.OverviewRulerLane,GlyphMarginLane:ok.GlyphMarginLane,RenderLineNumbersType:ok.RenderLineNumbersType,RenderMinimap:ok.RenderMinimap,ScrollbarVisibility:ok.ScrollbarVisibility,ScrollType:ok.ScrollType,TextEditorCursorBlinkingStyle:ok.TextEditorCursorBlinkingStyle,TextEditorCursorStyle:ok.TextEditorCursorStyle,TrackedRangeStickiness:ok.TrackedRangeStickiness,WrappingIndent:ok.WrappingIndent,InjectedTextCursorStops:ok.InjectedTextCursorStops,PositionAffinity:ok.PositionAffinity,ShowLightbulbIconMode:ok.ShowLightbulbIconMode,TextDirection:ok.TextDirection,ConfigurationChangedEvent:os.ConfigurationChangedEvent,BareFontInfo:oy.BareFontInfo,FontInfo:oy.FontInfo,TextModelResolvedOptions:oD.TextModelResolvedOptions,FindMatch:oD.FindMatch,ApplyUpdateResult:os.ApplyUpdateResult,EditorZoom:o_.EditorZoom,createMultiFileDiffEditor:function(e,t){let i=o0.StandaloneServices.initialize(t||{});return new s$(e,{},i)},EditorType:oC.EditorType,EditorOptions:os.EditorOptions},s5.languages={register:function(e){ow.ModesRegistry.registerLanguage(e)},getLanguages:function(){let e=[];return e.concat(ow.ModesRegistry.getLanguages())},onLanguage:function(e,t){return o0.StandaloneServices.withServices(()=>{let i=o0.StandaloneServices.get(ob.ILanguageService).onDidRequestRichLanguageFeatures(r=>{r===e&&(i.dispose(),t())});return i})},onLanguageEncountered:function(e,t){return o0.StandaloneServices.withServices(()=>{let i=o0.StandaloneServices.get(ob.ILanguageService).onDidRequestBasicLanguageFeatures(r=>{r===e&&(i.dispose(),t())});return i})},getEncodedLanguageId:function(e){return o0.StandaloneServices.get(ob.ILanguageService).languageIdCodec.encodeLanguageId(e)},setLanguageConfiguration:function(e,t){if(!o0.StandaloneServices.get(ob.ILanguageService).isRegisteredLanguageId(e))throw Error(`Cannot set configuration for unknown language ${e}`);return o0.StandaloneServices.get(sj.ILanguageConfigurationService).register(e,t,100)},setColorMap:function(e){let t=o0.StandaloneServices.get(o1.IStandaloneThemeService);if(e){let i=[null];for(let t=1,r=e.length;t<r;t++)i[t]=sW.Color.fromHex(e[t]);t.setColorMapOverride(i)}else t.setColorMapOverride(null)},registerTokensProviderFactory:s6,setTokensProvider:function(e,t){if(!o0.StandaloneServices.get(ob.ILanguageService).isRegisteredLanguageId(e))throw Error(`Cannot set tokens provider for unknown language ${e}`);return s1(t)?s6(e,{create:()=>t}):oS.TokenizationRegistry.register(e,s2(e,t))},setMonarchTokensProvider:function(e,t){return s1(t)?s6(e,{create:()=>t}):oS.TokenizationRegistry.register(e,new oQ(o0.StandaloneServices.get(ob.ILanguageService),o0.StandaloneServices.get(o1.IStandaloneThemeService),e,sY(e,t),o0.StandaloneServices.get(oW.IConfigurationService)))},registerReferenceProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).referenceProvider.register(e,t)},registerRenameProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).renameProvider.register(e,t)},registerNewSymbolNameProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).newSymbolNamesProvider.register(e,t)},registerCompletionItemProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).completionProvider.register(e,t)},registerSignatureHelpProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).signatureHelpProvider.register(e,t)},registerHoverProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).hoverProvider.register(e,{provideHover:async(e,i,r,n)=>{let o=e.getWordAtPosition(i);return Promise.resolve(t.provideHover(e,i,r,n)).then(e=>{if(e)return!e.range&&o&&(e.range=new sq.Range(i.lineNumber,o.startColumn,i.lineNumber,o.endColumn)),e.range||(e.range=new sq.Range(i.lineNumber,i.column,i.lineNumber,i.column)),e})}})},registerDocumentSymbolProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).documentSymbolProvider.register(e,t)},registerDocumentHighlightProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).documentHighlightProvider.register(e,t)},registerLinkedEditingRangeProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).linkedEditingRangeProvider.register(e,t)},registerDefinitionProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).definitionProvider.register(e,t)},registerImplementationProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).implementationProvider.register(e,t)},registerTypeDefinitionProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).typeDefinitionProvider.register(e,t)},registerCodeLensProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).codeLensProvider.register(e,t)},registerCodeActionProvider:function(e,t,i){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).codeActionProvider.register(e,{providedCodeActionKinds:i?.providedCodeActionKinds,documentation:i?.documentation,provideCodeActions:(e,i,r,n)=>{let o=o0.StandaloneServices.get(o5.IMarkerService).read({resource:e.uri}).filter(e=>sq.Range.areIntersectingOrTouching(e,i));return t.provideCodeActions(e,i,{markers:o,only:r.only,trigger:r.trigger},n)},resolveCodeAction:t.resolveCodeAction})},registerDocumentFormattingEditProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).documentFormattingEditProvider.register(e,t)},registerDocumentRangeFormattingEditProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).documentRangeFormattingEditProvider.register(e,t)},registerOnTypeFormattingEditProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).onTypeFormattingEditProvider.register(e,t)},registerLinkProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).linkProvider.register(e,t)},registerColorProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).colorProvider.register(e,t)},registerFoldingRangeProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).foldingRangeProvider.register(e,t)},registerDeclarationProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).declarationProvider.register(e,t)},registerSelectionRangeProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).selectionRangeProvider.register(e,t)},registerDocumentSemanticTokensProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).documentSemanticTokensProvider.register(e,t)},registerDocumentRangeSemanticTokensProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).documentRangeSemanticTokensProvider.register(e,t)},registerInlineCompletionsProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).inlineCompletionsProvider.register(e,t)},registerInlayHintsProvider:function(e,t){return o0.StandaloneServices.get(sz.ILanguageFeaturesService).inlayHintsProvider.register(e,t)},DocumentHighlightKind:ok.DocumentHighlightKind,CompletionItemKind:ok.CompletionItemKind,CompletionItemTag:ok.CompletionItemTag,CompletionItemInsertTextRule:ok.CompletionItemInsertTextRule,SymbolKind:ok.SymbolKind,SymbolTag:ok.SymbolTag,IndentAction:ok.IndentAction,CompletionTriggerKind:ok.CompletionTriggerKind,SignatureHelpTriggerKind:ok.SignatureHelpTriggerKind,InlayHintKind:ok.InlayHintKind,InlineCompletionTriggerKind:ok.InlineCompletionTriggerKind,CodeActionTriggerType:ok.CodeActionTriggerType,NewSymbolNameTag:ok.NewSymbolNameTag,NewSymbolNameTriggerKind:ok.NewSymbolNameTriggerKind,PartialAcceptTriggerKind:ok.PartialAcceptTriggerKind,HoverVerbosityAction:ok.HoverVerbosityAction,InlineCompletionEndOfLifeReasonKind:ok.InlineCompletionEndOfLifeReasonKind,InlineCompletionHintStyle:ok.InlineCompletionHintStyle,FoldingRangeKind:oS.FoldingRangeKind,SelectedSuggestionInfo:oS.SelectedSuggestionInfo,EditDeltaInfo:sX.EditDeltaInfo},s5.CancellationTokenSource,s5.Emitter,s5.KeyCode,s5.KeyMod,s5.Position,s5.Range,s5.Selection,s5.SelectionDirection,s5.MarkerSeverity,s5.MarkerTag,s5.Uri,s5.Token;let s8=s5.editor,s7=s5.languages,s9=(0,s4.getMonacoEnvironment)(),ae=globalThis;(s9?.globalAPI||"function"==typeof ae.define&&ae.define.amd)&&(ae.monaco=s5),void 0!==ae.require&&"function"==typeof ae.require.config&&ae.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});var at=e.i(106452);let ai=s7.onLanguage;s7.onLanguage=(e,t)=>(0,oo.withReadyServices)(()=>ai(e,t));let ar=s7.onLanguage;s7.onLanguageEncountered=(e,t)=>(0,oo.withReadyServices)(()=>ar(e,t)),s8.create=at.createConfiguredEditor,s8.createDiffEditor=at.createConfiguredDiffEditor,s8.createModelReference=at.createModelReference,s8.writeFile=at.writeFile;var an=e.i(290231),ao=e.i(22465),as=e.i(467724),aa=e.i(107043),al=e.i(702320),ac=e.i(193409),ad=e.i(554250),au=od,ah=e.i(819593),ag=e.i(13306);let ap=class extends au.Disposable{constructor(e,t,i){super(),this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=this._register(new o7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._register(this.configurationService.onDidChangeConfiguration(e=>this._onDidChangeConfiguration.fire(this.toResourceConfigurationChangeEvent(e))))}getValue(e,t,i){return"string"==typeof i?this._getValue(e,ah.Position.isIPosition(t)?t:null,i):this._getValue(e,null,"string"==typeof t?t:void 0)}updateValue(e,t,i,r){let n=e?this.getLanguage(e,null):null,o=this.configurationService.inspect(t,{resource:e,overrideIdentifier:n});void 0===r&&(r=this.deriveConfigurationTarget(o,n));let s=n&&o.overrideIdentifiers?.includes(n)?n:void 0;return this.configurationService.updateValue(t,i,{resource:e,overrideIdentifier:s},r)}deriveConfigurationTarget(e,t){if(t){if(e.memory?.override!==void 0)return ag.ConfigurationTarget.MEMORY;if(e.workspaceFolder?.override!==void 0)return ag.ConfigurationTarget.WORKSPACE_FOLDER;if(e.workspace?.override!==void 0)return ag.ConfigurationTarget.WORKSPACE;if(e.userRemote?.override!==void 0)return ag.ConfigurationTarget.USER_REMOTE;if(e.userLocal?.override!==void 0)return ag.ConfigurationTarget.USER_LOCAL}return e.memory?.value!==void 0?ag.ConfigurationTarget.MEMORY:e.workspaceFolder?.value!==void 0?ag.ConfigurationTarget.WORKSPACE_FOLDER:e.workspace?.value!==void 0?ag.ConfigurationTarget.WORKSPACE:e.userRemote?.value!==void 0?ag.ConfigurationTarget.USER_REMOTE:ag.ConfigurationTarget.USER_LOCAL}_getValue(e,t,i){let r=e?this.getLanguage(e,t):void 0;return void 0===i?this.configurationService.getValue({resource:e,overrideIdentifier:r}):this.configurationService.getValue(i,{resource:e,overrideIdentifier:r})}inspect(e,t,i){let r=e?this.getLanguage(e,t):void 0;return this.configurationService.inspect(i,{resource:e,overrideIdentifier:r})}getLanguage(e,t){let i=this.modelService.getModel(e);return i?t?i.getLanguageIdAtPosition(t.lineNumber,t.column):i.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}toResourceConfigurationChangeEvent(e){return{affectedKeys:e.affectedKeys,affectsConfiguration:(t,i)=>{let r=t?this.getLanguage(t,null):void 0;return!!e.affectsConfiguration(i,{resource:t,overrideIdentifier:r})||!!r&&e.affectedKeys.has(`[${r}]`)}}}};ap=(0,oM.__decorate)([(0,oM.__param)(0,oW.IConfigurationService),(0,oM.__param)(1,oE.IModelService),(0,oM.__param)(2,ob.ILanguageService)],ap);var am=e.i(2267),af=e.i(553638),av=e.i(526097),a_=e.i(853457),ay=e.i(990091),aC=e.i(621826),aS=e.i(474320),ab=e.i(991307),aw=e.i(399362),ax=e.i(506986),aD=e.i(107700),aE=e.i(425024),ak=e.i(4160);let aT=".vscode",aR="settings",aP=`${aT}/${aR}.json`,aI="vscode://schemas/settings/workspace",aA=[am.ConfigurationScope.APPLICATION,am.ConfigurationScope.APPLICATION_MACHINE],aM=[am.ConfigurationScope.MACHINE,am.ConfigurationScope.WINDOW,am.ConfigurationScope.RESOURCE,am.ConfigurationScope.LANGUAGE_OVERRIDABLE,am.ConfigurationScope.MACHINE_OVERRIDABLE],aL=[am.ConfigurationScope.WINDOW,am.ConfigurationScope.RESOURCE,am.ConfigurationScope.LANGUAGE_OVERRIDABLE],aF=[am.ConfigurationScope.APPLICATION,...aL],aO=[am.ConfigurationScope.MACHINE,am.ConfigurationScope.APPLICATION_MACHINE,am.ConfigurationScope.WINDOW,am.ConfigurationScope.RESOURCE,am.ConfigurationScope.LANGUAGE_OVERRIDABLE,am.ConfigurationScope.MACHINE_OVERRIDABLE],aN=[am.ConfigurationScope.WINDOW,am.ConfigurationScope.RESOURCE,am.ConfigurationScope.LANGUAGE_OVERRIDABLE,am.ConfigurationScope.MACHINE_OVERRIDABLE],a$=[am.ConfigurationScope.RESOURCE,am.ConfigurationScope.LANGUAGE_OVERRIDABLE,am.ConfigurationScope.MACHINE_OVERRIDABLE],aH="tasks",aU="launch",aW=Object.create(null);aW[aH]=`${aT}/${aH}.json`,aW[aU]=`${aT}/${aU}.json`,aW.mcp=`${aT}/mcp.json`;let aq=Object.create(null);aq[aH]=`${aH}.json`,aq.mcp="mcp.json";let aj="workbench.settings.applyToAllProfiles";var az=e.i(608326),aK=e.i(888961),aV=od,aB=e.i(399119),aG=e.i(367835);let aQ=aC.Registry.as(ak.Extensions.JSONContribution),aJ=aC.Registry.as(am.Extensions.Configuration),aY={type:"object",defaultSnippets:[{body:{title:"",properties:{}}}],properties:{title:{description:(0,si.localize)(2626,"A title for the current category of settings. This label will be rendered in the Settings editor as a subheading. If the title is the same as the extension display name, then the category will be grouped under the main extension heading."),type:"string"},order:{description:(0,si.localize)(2627,"When specified, gives the order of this category of settings relative to other categories."),type:"integer"},properties:{description:(0,si.localize)(2628,"Description of the configuration properties."),type:"object",propertyNames:{pattern:"\\S+",patternErrorMessage:(0,si.localize)(2629,"Property should not be empty.")},additionalProperties:{anyOf:[{title:(0,si.localize)(2630,"Schema of the configuration property."),$ref:"http://json-schema.org/draft-07/schema#"},{type:"object",properties:{scope:{type:"string",enum:["application","machine","window","resource","language-overridable","machine-overridable"],default:"window",enumDescriptions:[(0,si.localize)(2631,"Configuration that can be configured only in the user settings."),(0,si.localize)(2632,"Configuration that can be configured only in the user settings or only in the remote settings."),(0,si.localize)(2633,"Configuration that can be configured in the user, remote or workspace settings."),(0,si.localize)(2634,"Configuration that can be configured in the user, remote, workspace or folder settings."),(0,si.localize)(2635,"Resource configuration that can be configured in language specific settings."),(0,si.localize)(2636,"Machine configuration that can be configured also in workspace or folder settings.")],markdownDescription:(0,si.localize)(2637,"Scope in which the configuration is applicable. Available scopes are `application`, `machine`, `window`, `resource`, and `machine-overridable`.")},enumDescriptions:{type:"array",items:{type:"string"},description:(0,si.localize)(2638,"Descriptions for enum values")},markdownEnumDescriptions:{type:"array",items:{type:"string"},description:(0,si.localize)(2639,"Descriptions for enum values in the markdown format.")},enumItemLabels:{type:"array",items:{type:"string"},markdownDescription:(0,si.localize)(2640,"Labels for enum values to be displayed in the Settings editor. When specified, the {0} values still show after the labels, but less prominently.","`enum`")},markdownDescription:{type:"string",description:(0,si.localize)(2641,"The description in the markdown format.")},deprecationMessage:{type:"string",description:(0,si.localize)(2642,"If set, the property is marked as deprecated and the given message is shown as an explanation.")},markdownDeprecationMessage:{type:"string",description:(0,si.localize)(2643,"If set, the property is marked as deprecated and the given message is shown as an explanation in the markdown format.")},editPresentation:{type:"string",enum:["singlelineText","multilineText"],enumDescriptions:[(0,si.localize)(2644,"The value will be shown in an inputbox."),(0,si.localize)(2645,"The value will be shown in a textarea.")],default:"singlelineText",description:(0,si.localize)(2646,"When specified, controls the presentation format of the string setting.")},order:{type:"integer",description:(0,si.localize)(2647,"When specified, gives the order of this setting relative to other settings within the same category. Settings with an order property will be placed before settings without this property set.")},ignoreSync:{type:"boolean",description:(0,si.localize)(2648,"When enabled, Settings Sync will not sync the user value of this configuration by default.")},tags:{type:"array",items:{type:"string",enum:["accessibility","advanced","experimental","telemetry","usesOnlineServices"],enumDescriptions:[(0,si.localize)(2649,"Accessibility settings"),(0,si.localize)(2650,"Advanced settings are hidden by default in the Settings editor unless the user chooses to show advanced settings."),(0,si.localize)(2651,"Experimental settings are subject to change and may be removed in future releases."),(0,si.localize)(2652,"Preview settings can be used to try out new features before they are finalized."),(0,si.localize)(2653,"Telemetry settings"),(0,si.localize)(2654,"Settings that use online services")]},additionalItems:!0,markdownDescription:(0,si.localize)(2655,"A list of tags under which to place the setting. The tag can then be searched up in the Settings editor. For example, specifying the `experimental` tag allows one to find the setting by searching `@tag:experimental`.")}}}]}}}},aX=aE.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"configurationDefaults",jsonSchema:{$ref:am.configurationDefaultsSchemaId},canHandleResolver:!0});aX.setHandler((e,{added:i,removed:r})=>{t&&aJ.deltaConfiguration(t);let n=t={};if(queueMicrotask(()=>{t===n&&(aJ.deltaConfiguration(t),t=void 0)}),r.length){let e=r.map(e=>({overrides:(0,aD.deepClone)(e.value),source:{id:e.description.identifier.value,displayName:e.description.displayName}}));t.removedDefaults=e}if(i.length){let e=aJ.getConfigurationProperties(),r=[am.ConfigurationScope.MACHINE_OVERRIDABLE,am.ConfigurationScope.WINDOW,am.ConfigurationScope.RESOURCE,am.ConfigurationScope.LANGUAGE_OVERRIDABLE],n=i.map(t=>{let i=(0,aD.deepClone)(t.value);for(let n of Object.keys(i)){let o=e[n];if(o?.disallowConfigurationDefault){t.collector.warn((0,si.localize)(2656,"Cannot register configuration defaults for '{0}'. This setting does not allow contributing configuration defaults.",n)),delete i[n];continue}if(!am.OVERRIDE_PROPERTY_REGEX.test(n)&&o?.scope&&!r.includes(o.scope)){t.collector.warn((0,si.localize)(2657,"Cannot register configuration defaults for '{0}'. Only defaults for machine-overridable, window, resource and language overridable scoped settings are supported.",n)),delete i[n];continue}}return{overrides:i,source:{id:t.description.identifier.value,displayName:t.description.displayName}}});t.addedDefaults=n}});let aZ=aE.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"configuration",deps:[aX],jsonSchema:{description:(0,si.localize)(2658,"Contributes configuration settings."),oneOf:[aY,{type:"array",items:aY}]},canHandleResolver:!0}),a0=new az.ExtensionIdentifierMap;aZ.setHandler((e,{added:i,removed:r})=>{if(t??={},r.length){let e=[];for(let t of r)e.push(...a0.get(t.description.identifier)||[]),a0.delete(t.description.identifier);t.removedConfigurations=e}let n=new Set;function o(e,t){let i=(0,aD.deepClone)(e);return i.title&&"string"!=typeof i.title&&t.collector.error((0,si.localize)(2659,"'configuration.title' must be a string")),function e(t,i){let r=t.properties,o=aG.default.extensionConfigurationPolicy;if(r)for(let e in"object"!=typeof r&&(i.collector.error((0,si.localize)(2660,"'configuration.properties' must be an object")),t.properties={}),r){let t=r[e],s=(0,am.validateProperty)(e,t,i.description.identifier.value);if(s){delete r[e],i.collector.warn(s);continue}if(n.has(e)&&!am.EXTENSION_UNIFICATION_EXTENSION_IDS.has(i.description.identifier.value.toLowerCase())){delete r[e],i.collector.warn((0,si.localize)(2661,"Cannot register '{0}'. This property is already registered.",e));continue}if(!(0,sK.isObject)(t)){delete r[e],i.collector.error((0,si.localize)(2662,"configuration.properties property '{0}' must be an object",e));continue}o?.[e]&&(t.policy=o?.[e]),t.tags?.some(e=>"onexp"===e.toLowerCase())&&(t.experiment={mode:"startup"}),n.add(e),t.scope=t.scope?(0,am.parseScope)(t.scope.toString()):am.ConfigurationScope.WINDOW}let s=t.allOf;if(s)for(let t of(i.collector.error((0,si.localize)(2663,"'configuration.allOf' is deprecated and should no longer be used. Instead, pass multiple configuration sections as an array to the 'configuration' contribution point.")),s))e(t,i)}(i,t),i.id=e.id||t.description.identifier.value,i.extensionInfo={id:t.description.identifier.value,displayName:t.description.displayName},i.restrictedProperties=t.description.capabilities?.untrustedWorkspaces?.supported==="limited"?t.description.capabilities?.untrustedWorkspaces.restrictedConfigurations:void 0,i.title=i.title||t.description.displayName||t.description.identifier.value,i}if(i.length){let e=[];for(let t of i){let i=[],r=t.value;Array.isArray(r)?r.forEach(e=>i.push(o(e,t))):i.push(o(r,t)),a0.set(t.description.identifier,i),e.push(...i)}t.addedConfigurations=e}aJ.deltaConfiguration(t),t=void 0}),aQ.registerSchema("vscode://schemas/workspaceConfig",{allowComments:!0,allowTrailingCommas:!0,default:{folders:[{path:""}],settings:{}},required:["folders"],properties:{folders:{minItems:0,uniqueItems:!0,description:(0,si.localize)(2664,"List of folders to be loaded in the workspace."),items:{type:"object",defaultSnippets:[{body:{path:"$1"}}],oneOf:[{properties:{path:{type:"string",description:(0,si.localize)(2665,"A file path. e.g. `/root/folderA` or `./folderA` for a relative path that will be resolved against the location of the workspace file.")},name:{type:"string",description:(0,si.localize)(2666,"An optional name for the folder. ")}},required:["path"]},{properties:{uri:{type:"string",description:(0,si.localize)(2667,"URI of the folder")},name:{type:"string",description:(0,si.localize)(2666,"An optional name for the folder. ")}},required:["uri"]}]}},settings:{type:"object",default:{},description:(0,si.localize)(2668,"Workspace settings"),$ref:aI},launch:{type:"object",default:{configurations:[],compounds:[]},description:(0,si.localize)(2669,"Workspace launch configurations"),$ref:"vscode://schemas/launch"},tasks:{type:"object",default:{version:"2.0.0",tasks:[]},description:(0,si.localize)(2670,"Workspace task configurations"),$ref:"vscode://schemas/tasks"},mcp:{type:"object",default:{inputs:[],servers:{"mcp-server-time":{command:"uvx",args:["mcp_server_time","--local-timezone=America/Los_Angeles"]}}},description:(0,si.localize)(2671,"Model Context Protocol server configurations"),$ref:"vscode://schemas/mcp"},extensions:{type:"object",default:{},description:(0,si.localize)(2672,"Workspace extensions"),$ref:"vscode://schemas/extensions"},remoteAuthority:{type:"string",doNotSuggest:!0,description:(0,si.localize)(2673,"The remote server where the workspace is located.")},transient:{type:"boolean",doNotSuggest:!0,description:(0,si.localize)(2674,"A transient workspace will disappear when restarting or reloading.")}},errorMessage:(0,si.localize)(2675,"Unknown workspace configuration property")});class a1 extends aV.Disposable{constructor(){super(...arguments),this.type="table"}shouldRender(e){return!!e.contributes?.configuration}render(e){let t=e.contributes?.configuration?Array.isArray(e.contributes.configuration)?e.contributes.configuration:[e.contributes.configuration]:[],i=(0,am.getAllConfigurationProperties)(t),r=i?Object.keys(i):[];return{data:{headers:[(0,si.localize)(2676,"ID"),(0,si.localize)(2677,"Description"),(0,si.localize)(2678,"Default")],rows:r.sort((e,t)=>e.localeCompare(t)).map(e=>[new aB.MarkdownString().appendMarkdown(`\`${e}\``),i[e].markdownDescription?new aB.MarkdownString(i[e].markdownDescription,!1):i[e].description??"",new aB.MarkdownString().appendCodeblock("json",JSON.stringify((0,sK.isUndefined)(i[e].default)?(0,am.getDefaultValue)(i[e].type):i[e].default,null,2))])},dispose:()=>{}}}}aC.Registry.as(aK.Extensions.ExtensionFeaturesRegistry).registerExtensionFeature({id:"configuration",label:(0,si.localize)(2679,"Settings"),access:{canToggle:!1},renderer:new av.SyncDescriptor(a1)});class a2 extends aV.Disposable{constructor(){super(...arguments),this.type="table"}shouldRender(e){return!!e.contributes?.configurationDefaults}render(e){let t=e.contributes?.configurationDefaults??{},i=[(0,si.localize)(2680,"Languages"),(0,si.localize)(2681,"Setting"),(0,si.localize)(2682,"Override Value")],r=[];for(let e of Object.keys(t).sort((e,t)=>e.localeCompare(t))){let i=t[e];if(am.OVERRIDE_PROPERTY_REGEX.test(e)){let t=(0,am.overrideIdentifiersFromKey)(e),n=new aB.MarkdownString().appendMarkdown(`${t.join(", ")}`);for(let e of Object.keys(i).sort((e,t)=>e.localeCompare(t))){let t=[];t.push(n),t.push(new aB.MarkdownString().appendMarkdown(`\`${e}\``)),t.push(new aB.MarkdownString().appendCodeblock("json",JSON.stringify(i[e],null,2))),r.push(t)}}else{let t=[];t.push(""),t.push(new aB.MarkdownString().appendMarkdown(`\`${e}\``)),t.push(new aB.MarkdownString().appendCodeblock("json",JSON.stringify(i,null,2))),r.push(t)}}return{data:{headers:i,rows:r},dispose:()=>{}}}}aC.Registry.as(aK.Extensions.ExtensionFeaturesRegistry).registerExtensionFeature({id:"configurationDefaults",label:(0,si.localize)(2683,"Settings Default Overrides"),access:{canToggle:!1},renderer:new av.SyncDescriptor(a2)});var a6=e.i(697786),a3=e.i(683578),a4=e.i(578953),a5=od,a8=e.i(216822),a7=e.i(975445),a9=e.i(693162),le=e.i(74304),lt=e.i(428048),li=e.i(701575),lr=e.i(140889),ln=e.i(927718),lo=o2,ls=e.i(856884),la=e.i(51593),ll=e.i(770326);let lc=class extends a5.Disposable{constructor(e,t,i,r,n,o){super(),this.contextService=e,this.notificationService=t,this.fileService=i,this.quickInputService=r,this.hostService=n,this.storageService=o,this.findWorkspaces()}async findWorkspaces(){let e=this.contextService.getWorkspace().folders[0];if(!e||this.contextService.getWorkbenchState()!==a4.WorkbenchState.FOLDER||(0,ln.isVirtualWorkspace)(this.contextService.getWorkspace()))return;let t=(await this.fileService.resolve(e.uri)).children?.map(e=>e.name);if(Array.isArray(t)){let i=t.filter(a4.hasWorkspaceFileExtension);i.length>0&&this.doHandleWorkspaceFiles(e.uri,i)}}doHandleWorkspaceFiles(e,t){let i={id:"workspaces.dontPromptToOpen",scope:a8.NeverShowAgainScope.WORKSPACE,isSecondary:!0};if(1===t.length){let r=t[0];this.notificationService.prompt(ll.default.Info,(0,si.localize)(13579,"This folder contains a workspace file '{0}'. Do you want to open it? [Learn more]({1}) about workspace files.",r,"https://go.microsoft.com/fwlink/?linkid=2025315"),[{label:(0,si.localize)(13580,"Open Workspace"),run:()=>this.hostService.openWindow([{workspaceUri:(0,a9.joinPath)(e,r)}])}],{neverShowAgain:i,priority:this.storageService.isNew(li.StorageScope.WORKSPACE)?a8.NotificationPriority.OPTIONAL:a8.NotificationPriority.SILENT})}else t.length>1&&this.notificationService.prompt(ll.default.Info,(0,si.localize)(13581,"This folder contains multiple workspace files. Do you want to open one? [Learn more]({0}) about workspace files.","https://go.microsoft.com/fwlink/?linkid=2025315"),[{label:(0,si.localize)(13582,"Select Workspace"),run:()=>{this.quickInputService.pick(t.map(e=>({label:e})),{placeHolder:(0,si.localize)(13583,"Select a workspace to open")}).then(t=>{t&&this.hostService.openWindow([{workspaceUri:(0,a9.joinPath)(e,t.label)}])})}}],{neverShowAgain:i,priority:this.storageService.isNew(li.StorageScope.WORKSPACE)?a8.NotificationPriority.OPTIONAL:a8.NotificationPriority.SILENT})}};lc=(0,oM.__decorate)([(0,oM.__param)(0,aw.IWorkspaceContextService),(0,oM.__param)(1,a7.INotificationService),(0,oM.__param)(2,af.IFileService),(0,oM.__param)(3,lt.IQuickInputService),(0,oM.__param)(4,le.IHostService),(0,oM.__param)(5,lr.IStorageService)],lc),aC.Registry.as(a6.Extensions.Workbench).registerWorkbenchContribution(lc,a3.LifecyclePhase.Eventually),(0,lo.registerAction2)(class extends lo.Action2{constructor(){super({id:"workbench.action.openWorkspaceFromEditor",title:(0,si.localize2)(13580,"Open Workspace"),f1:!1,menu:{id:lo.MenuId.EditorContent,when:o3.ContextKeyExpr.and(ls.ResourceContextKey.Extension.isEqualTo(a4.WORKSPACE_SUFFIX),ls.ActiveEditorContext.isEqualTo(la.TEXT_FILE_EDITOR_ID),ls.TemporaryWorkspaceContext.toNegated())}})}async run(e,t){let i=e.get(le.IHostService),r=e.get(aw.IWorkspaceContextService),n=e.get(a7.INotificationService);if(r.getWorkbenchState()===a4.WorkbenchState.WORKSPACE){let e=r.getWorkspace().configuration;if(e&&(0,a9.isEqual)(e,t))return void n.info((0,si.localize)(13584,"This workspace is already open."))}return i.openWindow([{workspaceUri:t}])}});var ld=e.i(802186),lu=od,lh=e.i(590746),lg=a4,lp=e.i(737917),lm=e.i(378442),lf=lp;class lv extends lf.ConfigurationModelParser{constructor(e,t){super(e,t),this._folders=[],this._transient=!1,this._settingsModelParser=new lf.ConfigurationModelParser(e,t),this._launchModel=lf.ConfigurationModel.createEmptyModel(t),this._tasksModel=lf.ConfigurationModel.createEmptyModel(t)}get folders(){return this._folders}get transient(){return this._transient}get settingsModel(){return this._settingsModelParser.configurationModel}get launchModel(){return this._launchModel}get tasksModel(){return this._tasksModel}reparseWorkspaceSettings(e){this._settingsModelParser.reparse(e)}getRestrictedWorkspaceSettings(){return this._settingsModelParser.restrictedConfigurations}doParseRaw(e,t){return this._folders=e.folders||[],this._transient=(0,sK.isBoolean)(e.transient)&&e.transient,this._settingsModelParser.parseRaw(e.settings,t),this._launchModel=this.createConfigurationModelFrom(e,"launch"),this._tasksModel=this.createConfigurationModelFrom(e,"tasks"),super.doParseRaw(e,t)}createConfigurationModelFrom(e,t){let i=e[t];if(i){let e=(0,ag.toValuesTree)(i,e=>console.error(`Conflict in settings file ${this._name}: ${e}`)),r=Object.create(null);r[t]=e;let n=Object.keys(i).map(e=>`${t}.${e}`);return new lf.ConfigurationModel(r,n,[],void 0,this.logService)}return lf.ConfigurationModel.createEmptyModel(this.logService)}}class l_ extends lf.ConfigurationModelParser{constructor(e,t,i){super(e,i),this.scope=t}doParseRaw(e,t){let i=(0,ag.toValuesTree)(e,e=>console.error(`Conflict in settings file ${this._name}: ${e}`)),r=Object.create(null);return r[this.scope]=i,{contents:r,keys:Object.keys(e).map(e=>`${this.scope}.${e}`),overrides:[]}}}class ly extends lf.Configuration{constructor(e,t,i,r,n,o,s,a,l,c,d){super(e,t,i,r,n,o,s,a,l,d),this._workspace=c}getValue(e,t={}){return super.getValue(e,t,this._workspace)}inspect(e,t={}){return super.inspect(e,t,this._workspace)}keys(){return super.keys(this._workspace)}compareAndDeleteFolderConfiguration(e){return this._workspace&&this._workspace.folders.length>0&&this._workspace.folders[0].uri.toString()===e.toString()?{keys:[],overrides:[]}:super.compareAndDeleteFolderConfiguration(e)}compare(e){let t=(t,i,r)=>{let n=[];return n.push(...i.filter(e=>-1===t.indexOf(e))),n.push(...t.filter(e=>-1===i.indexOf(e))),n.push(...t.filter(t=>-1!==i.indexOf(t)&&(!(0,aD.equals)(this.getValue(t,{overrideIdentifier:r}),e.getValue(t,{overrideIdentifier:r}))||this._workspace&&this._workspace.folders.some(i=>!(0,aD.equals)(this.getValue(t,{resource:i.uri,overrideIdentifier:r}),e.getValue(t,{resource:i.uri,overrideIdentifier:r})))))),n},i=t(this.allKeys(),e.allKeys()),r=[];for(let i of(0,sx.distinct)([...this.allOverrideIdentifiers(),...e.allOverrideIdentifiers()])){let n=t(this.getAllKeysForOverrideIdentifier(i),e.getAllKeysForOverrideIdentifier(i),i);n.length&&r.push([i,n])}return{keys:i,overrides:r}}}var lC=e.i(95940),lS=e.i(292608),lb=e.i(242671),lw=e.i(170774),lx=e.i(386567),lD=e.i(652731),lE=e.i(905670),lk=e.i(362361),lT=e.i(509046),lR=e.i(315380),lP=e.i(17607),lI=sE,lA=e.i(951129);(O=er||(er={}))[O.ERROR_UNKNOWN_KEY=0]="ERROR_UNKNOWN_KEY",O[O.ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION=1]="ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION",O[O.ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE=2]="ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE",O[O.ERROR_INVALID_FOLDER_CONFIGURATION=3]="ERROR_INVALID_FOLDER_CONFIGURATION",O[O.ERROR_INVALID_USER_TARGET=4]="ERROR_INVALID_USER_TARGET",O[O.ERROR_INVALID_WORKSPACE_TARGET=5]="ERROR_INVALID_WORKSPACE_TARGET",O[O.ERROR_INVALID_FOLDER_TARGET=6]="ERROR_INVALID_FOLDER_TARGET",O[O.ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION=7]="ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION",O[O.ERROR_NO_WORKSPACE_OPENED=8]="ERROR_NO_WORKSPACE_OPENED",O[O.ERROR_CONFIGURATION_FILE_DIRTY=9]="ERROR_CONFIGURATION_FILE_DIRTY",O[O.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE=10]="ERROR_CONFIGURATION_FILE_MODIFIED_SINCE",O[O.ERROR_INVALID_CONFIGURATION=11]="ERROR_INVALID_CONFIGURATION",O[O.ERROR_POLICY_CONFIGURATION=12]="ERROR_POLICY_CONFIGURATION",O[O.ERROR_INTERNAL=13]="ERROR_INTERNAL";class lM extends lI.ErrorNoTelemetry{constructor(e,t){super(e),this.code=t}}(N=en||(en={}))[N.USER_LOCAL=1]="USER_LOCAL",N[N.USER_REMOTE=2]="USER_REMOTE",N[N.WORKSPACE=3]="WORKSPACE",N[N.WORKSPACE_FOLDER=4]="WORKSPACE_FOLDER";let lL=class{constructor(e,t,i,r,n,o,s,a,l,c,d,u,h){this.remoteSettingsResource=e,this.configurationService=t,this.contextService=i,this.userDataProfileService=r,this.userDataProfilesService=n,this.fileService=o,this.textModelResolverService=s,this.textFileService=a,this.notificationService=l,this.preferencesService=c,this.editorService=d,this.uriIdentityService=u,this.filesConfigurationService=h,this.queue=new lh.Queue}async writeConfiguration(e,t,i={}){let r=this.getConfigurationEditOperation(e,t,i.scopes||{});return this.queue.queue(async()=>{try{await this.doWriteConfiguration(r,i)}catch(e){if(i.donotNotifyError)throw e;await this.onError(e,r,i.scopes)}})}async doWriteConfiguration(e,t){await this.validate(e.target,e,!t.handleDirtyFile,t.scopes||{});let i=e.resource,r=await this.resolveModelReference(i);try{let i=this.getFormattingOptions(r.object.textEditorModel);await this.updateConfiguration(e,r.object.textEditorModel,i,t)}finally{r.dispose()}}async updateConfiguration(e,t,i,r){if(this.hasParseErrors(t.getValue(),e))throw this.toConfigurationEditingError(er.ERROR_INVALID_CONFIGURATION,e.target,e);if(this.textFileService.isDirty(t.uri)&&r.handleDirtyFile)switch(r.handleDirtyFile){case"save":await this.save(t,e);break;case"revert":await this.textFileService.revert(t.uri)}let n=this.getEdits(e,t.getValue(),i)[0];if(n){let i;try{i=this.filesConfigurationService.enableAutoSaveAfterShortDelay(t.uri),this.applyEditsToBuffer(n,t)&&await this.save(t,e)}finally{i?.dispose()}}}async save(e,t){try{await this.textFileService.save(e.uri,{ignoreErrorHandler:!0})}catch(e){if(e.fileOperationResult===lD.FileOperationResult.FILE_MODIFIED_SINCE)throw this.toConfigurationEditingError(er.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE,t.target,t);throw new lM((0,si.localize)(13758,"Error while writing to {0}. {1}",this.stringifyTarget(t.target),e.message),er.ERROR_INTERNAL)}}applyEditsToBuffer(e,t){let i=t.getPositionAt(e.offset),r=t.getPositionAt(e.offset+e.length),n=new sq.Range(i.lineNumber,i.column,r.lineNumber,r.column),o=t.getValueInRange(n);if(e.content!==o){let r=o?lR.EditOperation.replace(n,e.content):lR.EditOperation.insert(i,e.content);return t.pushEditOperations([new sP.Selection(i.lineNumber,i.column,i.lineNumber,i.column)],[r],()=>[]),!0}return!1}getEdits({value:e,jsonPath:t},i,r){return t.length?(0,lb.setProperty)(i,t,e,r):[{content:JSON.stringify(e,null,r.insertSpaces&&r.tabSize?" ".repeat(r.tabSize):" "),length:i.length,offset:0}]}getFormattingOptions(e){let{insertSpaces:t,tabSize:i}=e.getOptions();return{insertSpaces:t,tabSize:i,eol:e.getEOL()}}async onError(e,t,i){switch(e.code){case er.ERROR_INVALID_CONFIGURATION:this.onInvalidConfigurationError(e,t);break;case er.ERROR_CONFIGURATION_FILE_DIRTY:this.onConfigurationFileDirtyError(e,t,i);break;case er.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE:return this.doWriteConfiguration(t,{scopes:i,handleDirtyFile:"revert"});default:this.notificationService.error(e.message)}}onInvalidConfigurationError(e,t){let i=t.workspaceStandAloneConfigurationKey===aH?(0,si.localize)(13759,"Open Tasks Configuration"):t.workspaceStandAloneConfigurationKey===aU?(0,si.localize)(13760,"Open Launch Configuration"):"mcp"===t.workspaceStandAloneConfigurationKey?(0,si.localize)(13761,"Open MCP Configuration"):null;i?this.notificationService.prompt(ll.default.Error,e.message,[{label:i,run:()=>this.openFile(t.resource)}]):this.notificationService.prompt(ll.default.Error,e.message,[{label:(0,si.localize)(13762,"Open Settings"),run:()=>this.openSettings(t)}])}onConfigurationFileDirtyError(e,t,i){let r=t.workspaceStandAloneConfigurationKey===aH?(0,si.localize)(13759,"Open Tasks Configuration"):t.workspaceStandAloneConfigurationKey===aU?(0,si.localize)(13760,"Open Launch Configuration"):null;r?this.notificationService.prompt(ll.default.Error,e.message,[{label:(0,si.localize)(13763,"Save and Retry"),run:()=>{let e=t.key?`${t.workspaceStandAloneConfigurationKey}.${t.key}`:t.workspaceStandAloneConfigurationKey;this.writeConfiguration(t.target,{key:e,value:t.value},{handleDirtyFile:"save",scopes:i})}},{label:r,run:()=>this.openFile(t.resource)}]):this.notificationService.prompt(ll.default.Error,e.message,[{label:(0,si.localize)(13763,"Save and Retry"),run:()=>this.writeConfiguration(t.target,{key:t.key,value:t.value},{handleDirtyFile:"save",scopes:i})},{label:(0,si.localize)(13762,"Open Settings"),run:()=>this.openSettings(t)}])}openSettings(e){let t={jsonEditor:!0};switch(e.target){case en.USER_LOCAL:this.preferencesService.openUserSettings(t);break;case en.USER_REMOTE:this.preferencesService.openRemoteSettings(t);break;case en.WORKSPACE:this.preferencesService.openWorkspaceSettings(t);break;case en.WORKSPACE_FOLDER:if(e.resource){let t=this.contextService.getWorkspaceFolder(e.resource);t&&this.preferencesService.openFolderSettings({folderUri:t.uri,jsonEditor:!0})}}}openFile(e){this.editorService.openEditor({resource:e,options:{pinned:!0}})}toConfigurationEditingError(e,t,i){return new lM(this.toErrorMessage(e,t,i),e)}toErrorMessage(e,t,i){switch(e){case er.ERROR_POLICY_CONFIGURATION:return(0,si.localize)(13764,"Unable to write {0} because it is configured in system policy.",i.key);case er.ERROR_UNKNOWN_KEY:return(0,si.localize)(13765,"Unable to write to {0} because {1} is not a registered configuration.",this.stringifyTarget(t),i.key);case er.ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION:return(0,si.localize)(13766,"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",i.key);case er.ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE:return(0,si.localize)(13767,"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",i.key);case er.ERROR_INVALID_FOLDER_CONFIGURATION:return(0,si.localize)(13768,"Unable to write to Folder Settings because {0} does not support the folder resource scope.",i.key);case er.ERROR_INVALID_USER_TARGET:return(0,si.localize)(13769,"Unable to write to User Settings because {0} does not support for global scope.",i.key);case er.ERROR_INVALID_WORKSPACE_TARGET:return(0,si.localize)(13770,"Unable to write to Workspace Settings because {0} does not support for workspace scope in a multi folder workspace.",i.key);case er.ERROR_INVALID_FOLDER_TARGET:return(0,si.localize)(13771,"Unable to write to Folder Settings because no resource is provided.");case er.ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION:return(0,si.localize)(13772,"Unable to write to Language Settings because {0} is not a resource language setting.",i.key);case er.ERROR_NO_WORKSPACE_OPENED:return(0,si.localize)(13773,"Unable to write to {0} because no workspace is opened. Please open a workspace first and try again.",this.stringifyTarget(t));case er.ERROR_INVALID_CONFIGURATION:if(i.workspaceStandAloneConfigurationKey===aH)return(0,si.localize)(13774,"Unable to write into the tasks configuration file. Please open it to correct errors/warnings in it and try again.");if(i.workspaceStandAloneConfigurationKey===aU)return(0,si.localize)(13775,"Unable to write into the launch configuration file. Please open it to correct errors/warnings in it and try again.");if("mcp"===i.workspaceStandAloneConfigurationKey)return(0,si.localize)(13776,"Unable to write into the MCP configuration file. Please open it to correct errors/warnings in it and try again.");switch(t){case en.USER_LOCAL:return(0,si.localize)(13777,"Unable to write into user settings. Please open the user settings to correct errors/warnings in it and try again.");case en.USER_REMOTE:return(0,si.localize)(13778,"Unable to write into remote user settings. Please open the remote user settings to correct errors/warnings in it and try again.");case en.WORKSPACE:return(0,si.localize)(13779,"Unable to write into workspace settings. Please open the workspace settings to correct errors/warnings in the file and try again.");case en.WORKSPACE_FOLDER:{let e="<<unknown>>";if(i.resource){let t=this.contextService.getWorkspaceFolder(i.resource);t&&(e=t.name)}return(0,si.localize)(13780,"Unable to write into folder settings. Please open the '{0}' folder settings to correct errors/warnings in it and try again.",e)}default:return""}case er.ERROR_CONFIGURATION_FILE_DIRTY:if(i.workspaceStandAloneConfigurationKey===aH)return(0,si.localize)(13781,"Unable to write into tasks configuration file because the file has unsaved changes. Please save it first and then try again.");if(i.workspaceStandAloneConfigurationKey===aU)return(0,si.localize)(13782,"Unable to write into launch configuration file because the file has unsaved changes. Please save it first and then try again.");if("mcp"===i.workspaceStandAloneConfigurationKey)return(0,si.localize)(13783,"Unable to write into MCP configuration file because the file has unsaved changes. Please save it first and then try again.");switch(t){case en.USER_LOCAL:return(0,si.localize)(13784,"Unable to write into user settings because the file has unsaved changes. Please save the user settings file first and then try again.");case en.USER_REMOTE:return(0,si.localize)(13785,"Unable to write into remote user settings because the file has unsaved changes. Please save the remote user settings file first and then try again.");case en.WORKSPACE:return(0,si.localize)(13786,"Unable to write into workspace settings because the file has unsaved changes. Please save the workspace settings file first and then try again.");case en.WORKSPACE_FOLDER:{let e="<<unknown>>";if(i.resource){let t=this.contextService.getWorkspaceFolder(i.resource);t&&(e=t.name)}return(0,si.localize)(13787,"Unable to write into folder settings because the file has unsaved changes. Please save the '{0}' folder settings file first and then try again.",e)}default:return""}case er.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE:if(i.workspaceStandAloneConfigurationKey===aH)return(0,si.localize)(13788,"Unable to write into tasks configuration file because the content of the file is newer.");if(i.workspaceStandAloneConfigurationKey===aU)return(0,si.localize)(13789,"Unable to write into launch configuration file because the content of the file is newer.");if("mcp"===i.workspaceStandAloneConfigurationKey)return(0,si.localize)(13790,"Unable to write into MCP configuration file because the content of the file is newer.");switch(t){case en.USER_LOCAL:return(0,si.localize)(13791,"Unable to write into user settings because the content of the file is newer.");case en.USER_REMOTE:return(0,si.localize)(13792,"Unable to write into remote user settings because the content of the file is newer.");case en.WORKSPACE:return(0,si.localize)(13793,"Unable to write into workspace settings because the content of the file is newer.");case en.WORKSPACE_FOLDER:return(0,si.localize)(13794,"Unable to write into folder settings because the content of the file is newer.")}case er.ERROR_INTERNAL:return(0,si.localize)(13795,"Unable to write to {0} because of an internal error.",this.stringifyTarget(t))}}stringifyTarget(e){switch(e){case en.USER_LOCAL:return(0,si.localize)(13796,"User Settings");case en.USER_REMOTE:return(0,si.localize)(13797,"Remote User Settings");case en.WORKSPACE:return(0,si.localize)(13798,"Workspace Settings");case en.WORKSPACE_FOLDER:return(0,si.localize)(13799,"Folder Settings");default:return""}}defaultResourceValue(e){let t=this.uriIdentityService.extUri.basename(e);return t.substr(0,t.length-this.uriIdentityService.extUri.extname(e).length)===aH?'{\n "version": "2.0.0",\n "tasks": []\n}':"{}"}async resolveModelReference(e){return await this.fileService.exists(e)||await this.textFileService.write(e,this.defaultResourceValue(e),{encoding:"utf8"}),this.textModelResolverService.createModelReference(e)}hasParseErrors(e,t){if(t.workspaceStandAloneConfigurationKey&&!t.key)return!1;let i=[];return(0,lS.parse)(e,i,{allowTrailingComma:!0,allowEmptyContent:!0}),i.length>0}async validate(e,t,i,r){if(void 0!==this.configurationService.inspect(t.key).policyValue)throw this.toConfigurationEditingError(er.ERROR_POLICY_CONFIGURATION,e,t);let n=aC.Registry.as(am.Extensions.Configuration).getConfigurationProperties(),o=n[t.key]?.scope;if(!t.workspaceStandAloneConfigurationKey&&0>this.configurationService.keys().default.indexOf(t.key)&&!am.OVERRIDE_PROPERTY_REGEX.test(t.key)&&void 0!==t.value)throw this.toConfigurationEditingError(er.ERROR_UNKNOWN_KEY,e,t);if(t.workspaceStandAloneConfigurationKey&&t.workspaceStandAloneConfigurationKey!==aH&&"mcp"!==t.workspaceStandAloneConfigurationKey&&(e===en.USER_LOCAL||e===en.USER_REMOTE))throw this.toConfigurationEditingError(er.ERROR_INVALID_USER_TARGET,e,t);if((e===en.WORKSPACE||e===en.WORKSPACE_FOLDER)&&this.contextService.getWorkbenchState()===a4.WorkbenchState.EMPTY)throw this.toConfigurationEditingError(er.ERROR_NO_WORKSPACE_OPENED,e,t);if(e===en.WORKSPACE&&!t.workspaceStandAloneConfigurationKey&&!am.OVERRIDE_PROPERTY_REGEX.test(t.key)){if(o&&aA.includes(o))throw this.toConfigurationEditingError(er.ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION,e,t);if(o===am.ConfigurationScope.MACHINE)throw this.toConfigurationEditingError(er.ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE,e,t)}if(e===en.WORKSPACE_FOLDER){if(!t.resource)throw this.toConfigurationEditingError(er.ERROR_INVALID_FOLDER_TARGET,e,t);if(!t.workspaceStandAloneConfigurationKey&&!am.OVERRIDE_PROPERTY_REGEX.test(t.key)&&void 0!==o&&!a$.includes(o))throw this.toConfigurationEditingError(er.ERROR_INVALID_FOLDER_CONFIGURATION,e,t)}if(r.overrideIdentifiers?.length&&o!==am.ConfigurationScope.LANGUAGE_OVERRIDABLE)throw this.toConfigurationEditingError(er.ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION,e,t);if(!t.resource)throw this.toConfigurationEditingError(er.ERROR_INVALID_FOLDER_TARGET,e,t);if(i&&this.textFileService.isDirty(t.resource))throw this.toConfigurationEditingError(er.ERROR_CONFIGURATION_FILE_DIRTY,e,t)}getConfigurationEditOperation(e,t,i){if(t.key){let r=e===en.USER_LOCAL?aq:aW;for(let n of Object.keys(r)){let o=this.getConfigurationFileResource(e,n,r[n],i.resource,void 0);if(t.key===n){let i=this.isWorkspaceConfigurationResource(o)?[n]:[];return{key:i[i.length-1],jsonPath:i,value:t.value,resource:o??void 0,workspaceStandAloneConfigurationKey:n,target:e}}let s=`${n}.`;if(0===t.key.indexOf(s)){let i=this.isWorkspaceConfigurationResource(o)?[n,t.key.substring(s.length)]:[t.key.substring(s.length)];return{key:i[i.length-1],jsonPath:i,value:t.value,resource:o??void 0,workspaceStandAloneConfigurationKey:n,target:e}}}}let r=t.key,n=aC.Registry.as(am.Extensions.Configuration).getConfigurationProperties(),o=n[r]?.scope,s=i.overrideIdentifiers?.length?[(0,am.keyFromOverrideIdentifiers)(i.overrideIdentifiers),r]:[r];if(e===en.USER_LOCAL||e===en.USER_REMOTE)return{key:r,jsonPath:s,value:t.value,resource:this.getConfigurationFileResource(e,r,"",null,o)??void 0,target:e};let a=this.getConfigurationFileResource(e,r,aP,i.resource,o);return this.isWorkspaceConfigurationResource(a)&&(s=["settings",...s]),{key:r,jsonPath:s,value:t.value,resource:a??void 0,target:e}}isWorkspaceConfigurationResource(e){let t=this.contextService.getWorkspace();return!!(t.configuration&&e&&t.configuration.fsPath===e.fsPath)}getConfigurationFileResource(e,t,i,r,n){if(e===en.USER_LOCAL)return t===aH?this.userDataProfileService.currentProfile.tasksResource:"mcp"===t?this.userDataProfileService.currentProfile.mcpResource:!this.userDataProfileService.currentProfile.isDefault&&this.configurationService.isSettingAppliedForAllProfiles(t)?this.userDataProfilesService.defaultProfile.settingsResource:this.userDataProfileService.currentProfile.settingsResource;if(e===en.USER_REMOTE)return this.remoteSettingsResource;let o=this.contextService.getWorkbenchState();if(o!==a4.WorkbenchState.EMPTY){let t=this.contextService.getWorkspace();if(e===en.WORKSPACE){if(o===a4.WorkbenchState.WORKSPACE)return t.configuration??null;if(o===a4.WorkbenchState.FOLDER)return t.folders[0].toResource(i)}if(e===en.WORKSPACE_FOLDER&&r){let e=this.contextService.getWorkspaceFolder(r);if(e)return e.toResource(i)}}return null}};lL=(0,oM.__decorate)([(0,oM.__param)(1,lx.IWorkbenchConfigurationService),(0,oM.__param)(2,aw.IWorkspaceContextService),(0,oM.__param)(3,lP.IUserDataProfileService),(0,oM.__param)(4,ab.IUserDataProfilesService),(0,oM.__param)(5,af.IFileService),(0,oM.__param)(6,lE.ITextModelService),(0,oM.__param)(7,lw.ITextFileService),(0,oM.__param)(8,a7.INotificationService),(0,oM.__param)(9,lT.IPreferencesService),(0,oM.__param)(10,lk.IEditorService),(0,oM.__param)(11,aS.IUriIdentityService),(0,oM.__param)(12,lA.IFilesConfigurationService)],lL);var lF=od,lO=lp,lN=e.i(182504),l$=lm;class lH extends l$.DefaultConfiguration{static{this.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY="DefaultOverridesCacheExists"}constructor(e,t,i){super(i),this.configurationCache=e,this.configurationRegistry=aC.Registry.as(am.Extensions.Configuration),this.cachedConfigurationDefaultsOverrides={},this.cacheKey={type:"defaults",key:"configurationDefaultsOverrides"},t.options?.configurationDefaults&&this.configurationRegistry.registerDefaultConfigurations([{overrides:t.options.configurationDefaults}])}getConfigurationDefaultOverrides(){return this.cachedConfigurationDefaultsOverrides}async initialize(){return await this.initializeCachedConfigurationDefaultsOverrides(),super.initialize()}reload(){return this.cachedConfigurationDefaultsOverrides={},this.updateCachedConfigurationDefaultsOverrides(),super.reload()}hasCachedConfigurationDefaultsOverrides(){return!(0,sK.isEmptyObject)(this.cachedConfigurationDefaultsOverrides)}initializeCachedConfigurationDefaultsOverrides(){return this.initiaizeCachedConfigurationDefaultsOverridesPromise||(this.initiaizeCachedConfigurationDefaultsOverridesPromise=(async()=>{try{if(localStorage.getItem(lH.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY)){let e=await this.configurationCache.read(this.cacheKey);e&&(this.cachedConfigurationDefaultsOverrides=JSON.parse(e))}}catch(e){}this.cachedConfigurationDefaultsOverrides=(0,sK.isObject)(this.cachedConfigurationDefaultsOverrides)?this.cachedConfigurationDefaultsOverrides:{}})()),this.initiaizeCachedConfigurationDefaultsOverridesPromise}onDidUpdateConfiguration(e,t){super.onDidUpdateConfiguration(e,t),t&&this.updateCachedConfigurationDefaultsOverrides()}async updateCachedConfigurationDefaultsOverrides(){let e={};for(let[t,i]of this.configurationRegistry.getConfigurationDefaultsOverrides())am.OVERRIDE_PROPERTY_REGEX.test(t)||void 0===i.value||(e[t]=i.value);try{Object.keys(e).length?(localStorage.setItem(lH.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY,"yes"),await this.configurationCache.write(this.cacheKey,JSON.stringify(e))):(localStorage.removeItem(lH.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY),await this.configurationCache.remove(this.cacheKey))}catch(e){}}}class lU extends lO.UserSettings{constructor(e,t,i,r){super(e.defaultProfile.settingsResource,{scopes:aA,skipUnregistered:!0},i.extUri,t,r),this._onDidChangeConfiguration=this._register(new o7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._register(this.onDidChange(()=>this.reloadConfigurationScheduler.schedule())),this.reloadConfigurationScheduler=this._register(new lh.RunOnceScheduler(()=>this.loadConfiguration().then(e=>this._onDidChangeConfiguration.fire(e)),50))}async initialize(){return this.loadConfiguration()}async loadConfiguration(){let e=await super.loadConfiguration(),t=e.getValue(aj),i=Array.isArray(t)?t:[];return this.parseOptions.include||i.length?this.reparse({...this.parseOptions,include:i}):e}}class lW extends lF.Disposable{get hasTasksLoaded(){return this.userConfiguration.value instanceof lq}constructor(e,t,i,r,n,o,s){super(),this.settingsResource=e,this.tasksResource=t,this.mcpResource=i,this.configurationParseOptions=r,this.fileService=n,this.uriIdentityService=o,this.logService=s,this._onDidChangeConfiguration=this._register(new o7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this.userConfiguration=this._register(new lF.MutableDisposable),this.userConfigurationChangeDisposable=this._register(new lF.MutableDisposable),this.userConfiguration.value=new lO.UserSettings(e,this.configurationParseOptions,o.extUri,this.fileService,s),this.userConfigurationChangeDisposable.value=this.userConfiguration.value.onDidChange(()=>this.reloadConfigurationScheduler.schedule()),this.reloadConfigurationScheduler=this._register(new lh.RunOnceScheduler(()=>this.userConfiguration.value.loadConfiguration().then(e=>this._onDidChangeConfiguration.fire(e)),50))}async reset(e,t,i,r){return this.settingsResource=e,this.tasksResource=t,this.mcpResource=i,this.configurationParseOptions=r,this.doReset()}async doReset(e){let t=this.uriIdentityService.extUri.dirname(this.settingsResource),i=[];this.tasksResource&&i.push([aH,this.tasksResource]),this.mcpResource&&i.push(["mcp",this.mcpResource]);let r=new lq(t.toString(),this.settingsResource,i,this.configurationParseOptions,this.fileService,this.uriIdentityService,this.logService),n=await r.loadConfiguration(e);return this.userConfiguration.value=r,this.userConfigurationChangeDisposable.value&&(this.userConfigurationChangeDisposable.value=this.userConfiguration.value.onDidChange(()=>this.reloadConfigurationScheduler.schedule())),n}async initialize(){return this.userConfiguration.value.loadConfiguration()}async reload(e){return this.hasTasksLoaded?this.userConfiguration.value.loadConfiguration():this.doReset(e)}reparse(e){return this.configurationParseOptions={...this.configurationParseOptions,...e},this.userConfiguration.value.reparse(this.configurationParseOptions)}getRestrictedSettings(){return this.userConfiguration.value.getRestrictedSettings()}}class lq extends lF.Disposable{constructor(e,t,i,r,n,o,s){super(),this.settingsResource=t,this.standAloneConfigurationResources=i,this.fileService=n,this.uriIdentityService=o,this.logService=s,this._onDidChange=this._register(new o7.Emitter),this.onDidChange=this._onDidChange.event,this.allResources=[this.settingsResource,...this.standAloneConfigurationResources.map(([,e])=>e)],this._register((0,lF.combinedDisposable)(...this.allResources.map(e=>(0,lF.combinedDisposable)(this.fileService.watch(o.extUri.dirname(e)),this.fileService.watch(e))))),this._folderSettingsModelParser=new lO.ConfigurationModelParser(e,s),this._folderSettingsParseOptions=r,this._standAloneConfigurations=[],this._cache=lO.ConfigurationModel.createEmptyModel(this.logService),this._register(o7.Event.debounce(o7.Event.any(o7.Event.filter(this.fileService.onDidFilesChange,e=>this.handleFileChangesEvent(e)),o7.Event.filter(this.fileService.onDidRunOperation,e=>this.handleFileOperationEvent(e))),()=>void 0,100)(()=>this._onDidChange.fire()))}async resolveContents(e){let t=async e=>Promise.all(e.map(async e=>{try{return(await this.fileService.readFile(e,{atomic:!0})).value.toString()}catch(t){this.logService.trace(`Error while resolving configuration file '${e.toString()}': ${(0,sE.getErrorMessage)(t)}`),t.fileOperationResult!==lD.FileOperationResult.FILE_NOT_FOUND&&t.fileOperationResult!==lD.FileOperationResult.FILE_NOT_DIRECTORY&&this.logService.error(t)}return"{}"})),[[i],r]=await Promise.all([e?Promise.resolve([void 0]):t([this.settingsResource]),t(this.standAloneConfigurationResources.map(([,e])=>e))]);return[i,r.map((e,t)=>[this.standAloneConfigurationResources[t][0],e])]}async loadConfiguration(e){let[t,i]=await this.resolveContents(!!e);this._standAloneConfigurations=[],this._folderSettingsModelParser.parse("",this._folderSettingsParseOptions),void 0!==t&&this._folderSettingsModelParser.parse(t,this._folderSettingsParseOptions);for(let e=0;e<i.length;e++){let t=i[e][1];if(void 0!==t){let i=new l_(this.standAloneConfigurationResources[e][1].toString(),this.standAloneConfigurationResources[e][0],this.logService);i.parse(t),this._standAloneConfigurations.push(i.configurationModel)}}return this.consolidate(e),this._cache}getRestrictedSettings(){return this._folderSettingsModelParser.restrictedConfigurations}reparse(e){let t=this._folderSettingsModelParser.configurationModel.contents;return this._folderSettingsParseOptions=e,this._folderSettingsModelParser.reparse(this._folderSettingsParseOptions),(0,aD.equals)(t,this._folderSettingsModelParser.configurationModel.contents)||this.consolidate(),this._cache}consolidate(e){this._cache=(e??this._folderSettingsModelParser.configurationModel).merge(...this._standAloneConfigurations)}handleFileChangesEvent(e){return!!(this.allResources.some(t=>e.contains(t))||this.allResources.some(t=>e.contains(this.uriIdentityService.extUri.dirname(t),lD.FileChangeType.DELETED)))}handleFileOperationEvent(e){return!!((e.isOperation(lD.FileOperation.CREATE)||e.isOperation(lD.FileOperation.COPY)||e.isOperation(lD.FileOperation.DELETE)||e.isOperation(lD.FileOperation.WRITE))&&this.allResources.some(t=>this.uriIdentityService.extUri.isEqual(e.resource,t))||e.isOperation(lD.FileOperation.DELETE)&&this.allResources.some(t=>this.uriIdentityService.extUri.isEqual(e.resource,this.uriIdentityService.extUri.dirname(t))))}}class lj extends lF.Disposable{constructor(e,t,i,r,n,o){super(),this._userConfigurationInitializationPromise=null,this._onDidChangeConfiguration=this._register(new o7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onDidInitialize=this._register(new o7.Emitter),this.onDidInitialize=this._onDidInitialize.event,this._fileService=i,this._userConfiguration=this._cachedConfiguration=new lK(e,t,{scopes:aO},o),n.getEnvironment().then(async e=>{if(e){let t=this._register(new lz(e.settingsPath,{scopes:aO},this._fileService,r,o));this._register(t.onDidChangeConfiguration(e=>this.onDidUserConfigurationChange(e))),this._userConfigurationInitializationPromise=t.initialize();let i=await this._userConfigurationInitializationPromise;this._userConfiguration.dispose(),this._userConfiguration=t,this.onDidUserConfigurationChange(i),this._onDidInitialize.fire(i)}})}async initialize(){if(this._userConfiguration instanceof lz)return this._userConfiguration.initialize();let e=await this._userConfiguration.initialize();return this._userConfigurationInitializationPromise&&(e=await this._userConfigurationInitializationPromise,this._userConfigurationInitializationPromise=null),e}reload(){return this._userConfiguration.reload()}reparse(){return this._userConfiguration.reparse({scopes:aO})}getRestrictedSettings(){return this._userConfiguration.getRestrictedSettings()}onDidUserConfigurationChange(e){this.updateCache(),this._onDidChangeConfiguration.fire(e)}async updateCache(){if(this._userConfiguration instanceof lz){let e;try{e=await this._userConfiguration.resolveContent()}catch(e){if(e.fileOperationResult!==lD.FileOperationResult.FILE_NOT_FOUND)return}await this._cachedConfiguration.updateConfiguration(e)}}}class lz extends lF.Disposable{constructor(e,t,i,r,n){super(),this.configurationResource=e,this.fileService=i,this.uriIdentityService=r,this.logService=n,this._onDidChangeConfiguration=this._register(new o7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this.fileWatcherDisposable=this._register(new lF.MutableDisposable),this.directoryWatcherDisposable=this._register(new lF.MutableDisposable),this.parser=new lO.ConfigurationModelParser(this.configurationResource.toString(),n),this.parseOptions=t,this._register(i.onDidFilesChange(e=>this.handleFileChangesEvent(e))),this._register(i.onDidRunOperation(e=>this.handleFileOperationEvent(e))),this.reloadConfigurationScheduler=this._register(new lh.RunOnceScheduler(()=>this.reload().then(e=>this._onDidChangeConfiguration.fire(e)),50)),this._register((0,lF.toDisposable)(()=>{this.stopWatchingResource(),this.stopWatchingDirectory()}))}watchResource(){this.fileWatcherDisposable.value=this.fileService.watch(this.configurationResource)}stopWatchingResource(){this.fileWatcherDisposable.value=void 0}watchDirectory(){let e=this.uriIdentityService.extUri.dirname(this.configurationResource);this.directoryWatcherDisposable.value=this.fileService.watch(e)}stopWatchingDirectory(){this.directoryWatcherDisposable.value=void 0}async initialize(){let e=await this.fileService.exists(this.configurationResource);return this.onResourceExists(e),this.reload()}async resolveContent(){return(await this.fileService.readFile(this.configurationResource,{atomic:!0})).value.toString()}async reload(){try{let e=await this.resolveContent();return this.parser.parse(e,this.parseOptions),this.parser.configurationModel}catch(e){return lO.ConfigurationModel.createEmptyModel(this.logService)}}reparse(e){return this.parseOptions=e,this.parser.reparse(this.parseOptions),this.parser.configurationModel}getRestrictedSettings(){return this.parser.restrictedConfigurations}handleFileChangesEvent(e){let t=!1;e.contains(this.configurationResource,lD.FileChangeType.ADDED)?(t=!0,this.onResourceExists(!0)):e.contains(this.configurationResource,lD.FileChangeType.DELETED)?(t=!0,this.onResourceExists(!1)):e.contains(this.configurationResource,lD.FileChangeType.UPDATED)&&(t=!0),t&&this.reloadConfigurationScheduler.schedule()}handleFileOperationEvent(e){(e.isOperation(lD.FileOperation.CREATE)||e.isOperation(lD.FileOperation.COPY)||e.isOperation(lD.FileOperation.DELETE)||e.isOperation(lD.FileOperation.WRITE))&&this.uriIdentityService.extUri.isEqual(e.resource,this.configurationResource)&&this.reloadConfigurationScheduler.schedule()}onResourceExists(e){e?(this.stopWatchingDirectory(),this.watchResource()):(this.stopWatchingResource(),this.watchDirectory())}}class lK extends lF.Disposable{constructor(e,t,i,r){super(),this.configurationCache=t,this._onDidChange=this._register(new o7.Emitter),this.onDidChange=this._onDidChange.event,this.key={type:"user",key:e},this.parser=new lO.ConfigurationModelParser("CachedRemoteUserConfiguration",r),this.parseOptions=i,this.configurationModel=lO.ConfigurationModel.createEmptyModel(r)}getConfigurationModel(){return this.configurationModel}initialize(){return this.reload()}reparse(e){return this.parseOptions=e,this.parser.reparse(this.parseOptions),this.configurationModel=this.parser.configurationModel,this.configurationModel}getRestrictedSettings(){return this.parser.restrictedConfigurations}async reload(){try{let e=await this.configurationCache.read(this.key),t=JSON.parse(e);t.content&&(this.parser.parse(t.content,this.parseOptions),this.configurationModel=this.parser.configurationModel)}catch(e){}return this.configurationModel}async updateConfiguration(e){return e?this.configurationCache.write(this.key,JSON.stringify({content:e})):this.configurationCache.remove(this.key)}}class lV extends lF.Disposable{get initialized(){return this._initialized}constructor(e,t,i,r){super(),this.configurationCache=e,this.fileService=t,this.uriIdentityService=i,this.logService=r,this._workspaceConfigurationDisposables=this._register(new lF.DisposableStore),this._workspaceIdentifier=null,this._isWorkspaceTrusted=!1,this._onDidUpdateConfiguration=this._register(new o7.Emitter),this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event,this._initialized=!1,this.fileService=t,this._workspaceConfiguration=this._cachedConfiguration=new lG(e,r)}async initialize(e,t){this._workspaceIdentifier=e,this._isWorkspaceTrusted=t,this._initialized||(this.configurationCache.needsCaching(this._workspaceIdentifier.configPath)?(this._workspaceConfiguration=this._cachedConfiguration,this.waitAndInitialize(this._workspaceIdentifier)):this.doInitialize(new lB(this.fileService,this.uriIdentityService,this.logService))),await this.reload()}async reload(){this._workspaceIdentifier&&await this._workspaceConfiguration.load(this._workspaceIdentifier,{scopes:aN,skipRestricted:this.isUntrusted()})}getFolders(){return this._workspaceConfiguration.getFolders()}setFolders(e,t){return this._workspaceIdentifier?t.write(this._workspaceIdentifier.configPath,[{path:["folders"],value:e}],!0).then(()=>this.reload()):Promise.resolve()}isTransient(){return this._workspaceConfiguration.isTransient()}getConfiguration(){return this._workspaceConfiguration.getWorkspaceSettings()}updateWorkspaceTrust(e){return this._isWorkspaceTrusted=e,this.reparseWorkspaceSettings()}reparseWorkspaceSettings(){return this._workspaceConfiguration.reparseWorkspaceSettings({scopes:aN,skipRestricted:this.isUntrusted()}),this.getConfiguration()}getRestrictedSettings(){return this._workspaceConfiguration.getRestrictedSettings()}async waitAndInitialize(e){if(await (0,lD.whenProviderRegistered)(e.configPath,this.fileService),!(this._workspaceConfiguration instanceof lB)){let t=this._register(new lB(this.fileService,this.uriIdentityService,this.logService));await t.load(e,{scopes:aN,skipRestricted:this.isUntrusted()}),this.doInitialize(t),this.onDidWorkspaceConfigurationChange(!1,!0)}}doInitialize(e){this._workspaceConfigurationDisposables.clear(),this._workspaceConfiguration=this._workspaceConfigurationDisposables.add(e),this._workspaceConfigurationDisposables.add(this._workspaceConfiguration.onDidChange(e=>this.onDidWorkspaceConfigurationChange(!0,!1))),this._initialized=!0}isUntrusted(){return!this._isWorkspaceTrusted}async onDidWorkspaceConfigurationChange(e,t){e&&await this.reload(),this.updateCache(),this._onDidUpdateConfiguration.fire(t)}async updateCache(){if(this._workspaceIdentifier&&this.configurationCache.needsCaching(this._workspaceIdentifier.configPath)&&this._workspaceConfiguration instanceof lB){let e=await this._workspaceConfiguration.resolveContent(this._workspaceIdentifier);await this._cachedConfiguration.updateWorkspace(this._workspaceIdentifier,e)}}}class lB extends lF.Disposable{constructor(e,t,i){super(),this.fileService=e,this.logService=i,this._workspaceIdentifier=null,this._onDidChange=this._register(new o7.Emitter),this.onDidChange=this._onDidChange.event,this.workspaceConfigurationModelParser=new lv("",i),this.workspaceSettings=lO.ConfigurationModel.createEmptyModel(i),this._register(o7.Event.any(o7.Event.filter(this.fileService.onDidFilesChange,e=>!!this._workspaceIdentifier&&e.contains(this._workspaceIdentifier.configPath)),o7.Event.filter(this.fileService.onDidRunOperation,e=>!!this._workspaceIdentifier&&(e.isOperation(lD.FileOperation.CREATE)||e.isOperation(lD.FileOperation.COPY)||e.isOperation(lD.FileOperation.DELETE)||e.isOperation(lD.FileOperation.WRITE))&&t.extUri.isEqual(e.resource,this._workspaceIdentifier.configPath)))(()=>this.reloadConfigurationScheduler.schedule())),this.reloadConfigurationScheduler=this._register(new lh.RunOnceScheduler(()=>this._onDidChange.fire(),50)),this.workspaceConfigWatcher=this._register(this.watchWorkspaceConfigurationFile())}get workspaceIdentifier(){return this._workspaceIdentifier}async resolveContent(e){return(await this.fileService.readFile(e.configPath,{atomic:!0})).value.toString()}async load(e,t){this._workspaceIdentifier&&this._workspaceIdentifier.id===e.id||(this._workspaceIdentifier=e,this.workspaceConfigurationModelParser=new lv(this._workspaceIdentifier.id,this.logService),(0,lF.dispose)(this.workspaceConfigWatcher),this.workspaceConfigWatcher=this._register(this.watchWorkspaceConfigurationFile()));let i="";try{i=await this.resolveContent(this._workspaceIdentifier)}catch(e){await this.fileService.exists(this._workspaceIdentifier.configPath)&&this.logService.error(e)}this.workspaceConfigurationModelParser.parse(i,t),this.consolidate()}getConfigurationModel(){return this.workspaceConfigurationModelParser.configurationModel}getFolders(){return this.workspaceConfigurationModelParser.folders}isTransient(){return this.workspaceConfigurationModelParser.transient}getWorkspaceSettings(){return this.workspaceSettings}reparseWorkspaceSettings(e){return this.workspaceConfigurationModelParser.reparseWorkspaceSettings(e),this.consolidate(),this.getWorkspaceSettings()}getRestrictedSettings(){return this.workspaceConfigurationModelParser.getRestrictedWorkspaceSettings()}consolidate(){this.workspaceSettings=this.workspaceConfigurationModelParser.settingsModel.merge(this.workspaceConfigurationModelParser.launchModel,this.workspaceConfigurationModelParser.tasksModel)}watchWorkspaceConfigurationFile(){return this._workspaceIdentifier?this.fileService.watch(this._workspaceIdentifier.configPath):lF.Disposable.None}}class lG{constructor(e,t){this.configurationCache=e,this.logService=t,this.onDidChange=o7.Event.None,this.workspaceConfigurationModelParser=new lv("",t),this.workspaceSettings=lO.ConfigurationModel.createEmptyModel(t)}async load(e,t){try{let i=this.getKey(e),r=await this.configurationCache.read(i),n=JSON.parse(r);n.content&&(this.workspaceConfigurationModelParser=new lv(i.key,this.logService),this.workspaceConfigurationModelParser.parse(n.content,t),this.consolidate())}catch(e){}}get workspaceIdentifier(){return null}getConfigurationModel(){return this.workspaceConfigurationModelParser.configurationModel}getFolders(){return this.workspaceConfigurationModelParser.folders}isTransient(){return this.workspaceConfigurationModelParser.transient}getWorkspaceSettings(){return this.workspaceSettings}reparseWorkspaceSettings(e){return this.workspaceConfigurationModelParser.reparseWorkspaceSettings(e),this.consolidate(),this.getWorkspaceSettings()}getRestrictedSettings(){return this.workspaceConfigurationModelParser.getRestrictedWorkspaceSettings()}consolidate(){this.workspaceSettings=this.workspaceConfigurationModelParser.settingsModel.merge(this.workspaceConfigurationModelParser.launchModel,this.workspaceConfigurationModelParser.tasksModel)}async updateWorkspace(e,t){try{let i=this.getKey(e);t?await this.configurationCache.write(i,JSON.stringify({content:t})):await this.configurationCache.remove(i)}catch(e){}}getKey(e){return{type:"workspaces",key:e.id}}}class lQ{constructor(e,t,i,r,n){this.configurationCache=r,this.logService=n,this.onDidChange=o7.Event.None,this.key={type:"folder",key:(0,lN.hash)((0,a9.joinPath)(e,t).toString()).toString(16)},this._folderSettingsModelParser=new lO.ConfigurationModelParser("CachedFolderConfiguration",n),this._folderSettingsParseOptions=i,this._standAloneConfigurations=[],this.configurationModel=lO.ConfigurationModel.createEmptyModel(n)}async loadConfiguration(){try{let e=await this.configurationCache.read(this.key),{content:t}=JSON.parse(e.toString());if(t)for(let e of Object.keys(t))if(e===aR)this._folderSettingsModelParser.parse(t[e],this._folderSettingsParseOptions);else{let i=new l_(e,e,this.logService);i.parse(t[e]),this._standAloneConfigurations.push(i.configurationModel)}this.consolidate()}catch(e){}return this.configurationModel}async updateConfiguration(e,t){let i={};e&&(i[aR]=e),t.forEach(([e,t])=>{t&&(i[e]=t)}),Object.keys(i).length?await this.configurationCache.write(this.key,JSON.stringify({content:i})):await this.configurationCache.remove(this.key)}getRestrictedSettings(){return this._folderSettingsModelParser.restrictedConfigurations}reparse(e){return this._folderSettingsParseOptions=e,this._folderSettingsModelParser.reparse(this._folderSettingsParseOptions),this.consolidate(),this.configurationModel}consolidate(){this.configurationModel=this._folderSettingsModelParser.configurationModel.merge(...this._standAloneConfigurations)}getUnsupportedKeys(){return[]}}class lJ extends lF.Disposable{constructor(e,t,i,r,n,o,s,a,l){super(),this.workspaceFolder=t,this.workbenchState=r,this.workspaceTrusted=n,this.configurationCache=l,this._onDidChange=this._register(new o7.Emitter),this.onDidChange=this._onDidChange.event,this.scopes=a4.WorkbenchState.WORKSPACE===this.workbenchState?a$:aN,this.configurationFolder=s.extUri.joinPath(t.uri,i),this.cachedFolderConfiguration=new lQ(t.uri,i,{scopes:this.scopes,skipRestricted:this.isUntrusted()},l,a),e&&this.configurationCache.needsCaching(t.uri)?(this.folderConfiguration=this.cachedFolderConfiguration,(0,lD.whenProviderRegistered)(t.uri,o).then(()=>{this.folderConfiguration=this._register(this.createFileServiceBasedConfiguration(o,s,a)),this._register(this.folderConfiguration.onDidChange(e=>this.onDidFolderConfigurationChange())),this.onDidFolderConfigurationChange()})):(this.folderConfiguration=this._register(this.createFileServiceBasedConfiguration(o,s,a)),this._register(this.folderConfiguration.onDidChange(e=>this.onDidFolderConfigurationChange())))}loadConfiguration(){return this.folderConfiguration.loadConfiguration()}updateWorkspaceTrust(e){return this.workspaceTrusted=e,this.reparse()}reparse(){let e=this.folderConfiguration.reparse({scopes:this.scopes,skipRestricted:this.isUntrusted()});return this.updateCache(),e}getRestrictedSettings(){return this.folderConfiguration.getRestrictedSettings()}isUntrusted(){return!this.workspaceTrusted}onDidFolderConfigurationChange(){this.updateCache(),this._onDidChange.fire()}createFileServiceBasedConfiguration(e,t,i){let r=t.extUri.joinPath(this.configurationFolder,`${aR}.json`),n=[aH,aU,"mcp"].map(e=>[e,t.extUri.joinPath(this.configurationFolder,`${e}.json`)]);return new lq(this.configurationFolder.toString(),r,n,{scopes:this.scopes,skipRestricted:this.isUntrusted()},e,t,i)}async updateCache(){if(this.configurationCache.needsCaching(this.configurationFolder)&&this.folderConfiguration instanceof lq){let[e,t]=await this.folderConfiguration.resolveContents();this.cachedFolderConfiguration.updateConfiguration(e,t)}}}var lY=e.i(40577),lX=e.i(772383),lZ=e.i(278725),l0=e.i(431110),l1=e.i(168363),l2=e.i(981399),l6=e.i(967602),l3=e.i(169315),l4=e.i(254686),l5=e.i(803777);function l8(e,t){return e.isDefault||e.useDefaultFlags?.settings?t?aF:void 0:t?aL:aM}class l7 extends lg.Workspace{constructor(){super(...arguments),this.initialized=!1}}class l9 extends lu.Disposable{get restrictedSettings(){return this._restrictedSettings}constructor({remoteAuthority:e,configurationCache:t},i,r,n,o,s,a,l,c){if(super(),this.userDataProfileService=r,this.userDataProfilesService=n,this.fileService=o,this.remoteAgentService=s,this.uriIdentityService=a,this.logService=l,this.initialized=!1,this.applicationConfiguration=null,this.remoteUserConfiguration=null,this._onDidChangeConfiguration=this._register(new o7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeWorkspaceFolders=this._register(new o7.Emitter),this.onWillChangeWorkspaceFolders=this._onWillChangeWorkspaceFolders.event,this._onDidChangeWorkspaceFolders=this._register(new o7.Emitter),this.onDidChangeWorkspaceFolders=this._onDidChangeWorkspaceFolders.event,this._onDidChangeWorkspaceName=this._register(new o7.Emitter),this.onDidChangeWorkspaceName=this._onDidChangeWorkspaceName.event,this._onDidChangeWorkbenchState=this._register(new o7.Emitter),this.onDidChangeWorkbenchState=this._onDidChangeWorkbenchState.event,this.isWorkspaceTrusted=!0,this._restrictedSettings={default:[]},this._onDidChangeRestrictedSettings=this._register(new o7.Emitter),this.onDidChangeRestrictedSettings=this._onDidChangeRestrictedSettings.event,this.configurationRegistry=aC.Registry.as(am.Extensions.Configuration),this.initRemoteUserConfigurationBarrier=new lh.Barrier,this.completeWorkspaceBarrier=new lh.Barrier,this.defaultConfiguration=this._register(new lH(t,i,l)),this.policyConfiguration=c instanceof l3.NullPolicyService?new lm.NullPolicyConfiguration:this._register(new lm.PolicyConfiguration(this.defaultConfiguration,c,l)),this.configurationCache=t,this._configuration=new ly(this.defaultConfiguration.configurationModel,this.policyConfiguration.configurationModel,lp.ConfigurationModel.createEmptyModel(l),lp.ConfigurationModel.createEmptyModel(l),lp.ConfigurationModel.createEmptyModel(l),lp.ConfigurationModel.createEmptyModel(l),new ld.ResourceMap,lp.ConfigurationModel.createEmptyModel(l),new ld.ResourceMap,this.workspace,l),this.applicationConfigurationDisposables=this._register(new lu.DisposableStore),this.createApplicationConfiguration(),this.localUserConfiguration=this._register(new lW(r.currentProfile.settingsResource,r.currentProfile.tasksResource,r.currentProfile.mcpResource,{scopes:l8(r.currentProfile,!!e)},o,a,l)),this.cachedFolderConfigs=new ld.ResourceMap,this._register(this.localUserConfiguration.onDidChangeConfiguration(e=>this.onLocalUserConfigurationChanged(e))),e){const i=this.remoteUserConfiguration=this._register(new lj(e,t,o,a,s,l));this._register(i.onDidInitialize(e=>{this._register(i.onDidChangeConfiguration(e=>this.onRemoteUserConfigurationChanged(e))),this.onRemoteUserConfigurationChanged(e),this.initRemoteUserConfigurationBarrier.open()}))}else this.initRemoteUserConfigurationBarrier.open();this.workspaceConfiguration=this._register(new lV(t,o,a,l)),this._register(this.workspaceConfiguration.onDidUpdateConfiguration(e=>{this.onWorkspaceConfigurationChanged(e).then(()=>{this.workspace.initialized=this.workspaceConfiguration.initialized,this.checkAndMarkWorkspaceComplete(e)})})),this._register(this.defaultConfiguration.onDidChangeConfiguration(({properties:e,defaults:t})=>this.onDefaultConfigurationChanged(t,e))),this._register(this.policyConfiguration.onDidChangeConfiguration(e=>this.onPolicyConfigurationChanged(e))),this._register(r.onDidChangeCurrentProfile(e=>this.onUserDataProfileChanged(e))),this.workspaceEditingQueue=new lh.Queue}createApplicationConfiguration(){this.applicationConfigurationDisposables.clear(),this.userDataProfileService.currentProfile.isDefault||this.userDataProfileService.currentProfile.useDefaultFlags?.settings?this.applicationConfiguration=null:(this.applicationConfiguration=this.applicationConfigurationDisposables.add(this._register(new lU(this.userDataProfilesService,this.fileService,this.uriIdentityService,this.logService))),this.applicationConfigurationDisposables.add(this.applicationConfiguration.onDidChangeConfiguration(e=>this.onApplicationConfigurationChanged(e))))}async getCompleteWorkspace(){return await this.completeWorkspaceBarrier.wait(),this.getWorkspace()}getWorkspace(){return this.workspace}getWorkbenchState(){return this.workspace.configuration?lg.WorkbenchState.WORKSPACE:1===this.workspace.folders.length?lg.WorkbenchState.FOLDER:lg.WorkbenchState.EMPTY}getWorkspaceFolder(e){return this.workspace.getFolder(e)}addFolders(e,t){return this.updateFolders(e,[],t)}removeFolders(e){return this.updateFolders([],e)}async updateFolders(e,t,i){return this.workspaceEditingQueue.queue(()=>this.doUpdateFolders(e,t,i))}isInsideWorkspace(e){return!!this.getWorkspaceFolder(e)}isCurrentWorkspace(e){switch(this.getWorkbenchState()){case lg.WorkbenchState.FOLDER:{let t;return oh.URI.isUri(e)?t=e:(0,lg.isSingleFolderWorkspaceIdentifier)(e)&&(t=e.uri),oh.URI.isUri(t)&&this.uriIdentityService.extUri.isEqual(t,this.workspace.folders[0].uri)}case lg.WorkbenchState.WORKSPACE:return(0,lg.isWorkspaceIdentifier)(e)&&this.workspace.id===e.id}return!1}async doUpdateFolders(e,t,i){if(this.getWorkbenchState()!==lg.WorkbenchState.WORKSPACE||e.length+t.length===0)return Promise.resolve(void 0);let r=!1,n=this.getWorkspace().folders,o=n.map(e=>e.raw).filter((e,i)=>!(0,lC.isStoredWorkspaceFolder)(e)||!this.contains(t,n[i].uri));if(r=n.length!==o.length,e.length){let t=this.getWorkspace().configuration,s=this.uriIdentityService.extUri.dirname(t),a=(n=(0,lC.toWorkspaceFolders)(o,t,this.uriIdentityService.extUri)).map(e=>e.uri),l=[];for(let t of e){let e=t.uri;if(!this.contains(a,e)){try{if(!(await this.fileService.stat(e)).isDirectory)continue}catch(e){}l.push((0,lC.getStoredWorkspaceFolder)(e,!1,t.name,s,this.uriIdentityService.extUri))}}l.length>0&&(r=!0,"number"==typeof i&&i>=0&&i<o.length?(o=o.slice(0)).splice(i,0,...l):o=[...o,...l])}return r?this.setFolders(o):Promise.resolve(void 0)}async setFolders(e){if(!this.instantiationService)throw Error("Cannot update workspace folders because workspace service is not yet ready to accept writes.");return await this.instantiationService.invokeFunction(t=>this.workspaceConfiguration.setFolders(e,t.get(l4.IJSONEditingService))),this.onWorkspaceConfigurationChanged(!1)}contains(e,t){return e.some(e=>this.uriIdentityService.extUri.isEqual(e,t))}getConfigurationData(){return this._configuration.toData()}getValue(e,t){let i="string"==typeof e?e:void 0,r=(0,ag.isConfigurationOverrides)(e)?e:(0,ag.isConfigurationOverrides)(t)?t:void 0;return this._configuration.getValue(i,r)}async updateValue(e,t,i,r,n){let o=(0,ag.isConfigurationUpdateOverrides)(i)?i:(0,ag.isConfigurationOverrides)(i)?{resource:i.resource,overrideIdentifiers:i.overrideIdentifier?[i.overrideIdentifier]:void 0}:void 0,s=o?r:i,a=s?[s]:[];if(o?.overrideIdentifiers&&(o.overrideIdentifiers=(0,sx.distinct)(o.overrideIdentifiers),o.overrideIdentifiers=o.overrideIdentifiers.length?o.overrideIdentifiers:void 0),!a.length){if(o?.overrideIdentifiers&&o.overrideIdentifiers.length>1)throw Error("Configuration Target is required while updating the value for multiple override identifiers");let i=this.inspect(e,{resource:o?.resource,overrideIdentifier:o?.overrideIdentifiers?o.overrideIdentifiers[0]:void 0});a.push(...this.deriveConfigurationTargets(e,t,i)),(0,aD.equals)(t,i.defaultValue)&&1===a.length&&(a[0]===ag.ConfigurationTarget.USER||a[0]===ag.ConfigurationTarget.USER_LOCAL)&&(t=void 0)}await lh.Promises.settled(a.map(i=>this.writeConfigurationValue(e,t,i,o,n)))}async reloadConfiguration(e){if(void 0===e){this.reloadDefaultConfiguration();let e=await this.reloadApplicationConfiguration(!0),{local:t,remote:i}=await this.reloadUserConfiguration();await this.reloadWorkspaceConfiguration(),await this.loadConfiguration(e,t,i,!0);return}if((0,lg.isWorkspaceFolder)(e))return void await this.reloadWorkspaceFolderConfiguration(e);switch(e){case ag.ConfigurationTarget.DEFAULT:this.reloadDefaultConfiguration();return;case ag.ConfigurationTarget.USER:{let{local:e,remote:t}=await this.reloadUserConfiguration();await this.loadConfiguration(this._configuration.applicationConfiguration,e,t,!0);return}case ag.ConfigurationTarget.USER_LOCAL:await this.reloadLocalUserConfiguration();return;case ag.ConfigurationTarget.USER_REMOTE:await this.reloadRemoteUserConfiguration();return;case ag.ConfigurationTarget.WORKSPACE:case ag.ConfigurationTarget.WORKSPACE_FOLDER:await this.reloadWorkspaceConfiguration();return}}hasCachedConfigurationDefaultsOverrides(){return this.defaultConfiguration.hasCachedConfigurationDefaultsOverrides()}inspect(e,t){return this._configuration.inspect(e,t)}keys(){return this._configuration.keys()}async whenRemoteConfigurationLoaded(){await this.initRemoteUserConfigurationBarrier.wait()}async initialize(e){(0,lY.mark)("code/willInitWorkspaceService");let t=this.initialized;this.initialized=!1;let i=await this.createWorkspace(e);await this.updateWorkspaceAndInitializeConfiguration(i,t),this.checkAndMarkWorkspaceComplete(!1),(0,lY.mark)("code/didInitWorkspaceService")}updateWorkspaceTrust(e){if(this.isWorkspaceTrusted!==e){this.isWorkspaceTrusted=e;let t=this._configuration.toData(),i=[];for(let e of this.workspace.folders){let t,r=this.cachedFolderConfigs.get(e.uri);r&&(t=r.updateWorkspaceTrust(this.isWorkspaceTrusted),this._configuration.updateFolderConfiguration(e.uri,t)),i.push(t)}this.getWorkbenchState()===lg.WorkbenchState.FOLDER?i[0]&&this._configuration.updateWorkspaceConfiguration(i[0]):this._configuration.updateWorkspaceConfiguration(this.workspaceConfiguration.updateWorkspaceTrust(this.isWorkspaceTrusted)),this.updateRestrictedSettings();let r=[];this.restrictedSettings.userLocal&&r.push(...this.restrictedSettings.userLocal),this.restrictedSettings.userRemote&&r.push(...this.restrictedSettings.userRemote),this.restrictedSettings.workspace&&r.push(...this.restrictedSettings.workspace),this.restrictedSettings.workspaceFolder?.forEach(e=>r.push(...e)),(r=(0,sx.distinct)(r)).length&&this.triggerConfigurationChange({keys:r,overrides:[]},{data:t,workspace:this.workspace},ag.ConfigurationTarget.WORKSPACE)}}acquireInstantiationService(e){this.instantiationService=e}isSettingAppliedForAllProfiles(e){let t=this.configurationRegistry.getConfigurationProperties()[e]?.scope;if(t&&aA.includes(t))return!0;let i=this.getValue(aj)??[];return Array.isArray(i)&&i.includes(e)}async createWorkspace(e){return(0,lg.isWorkspaceIdentifier)(e)?this.createMultiFolderWorkspace(e):(0,lg.isSingleFolderWorkspaceIdentifier)(e)?this.createSingleFolderWorkspace(e):this.createEmptyWorkspace(e)}async createMultiFolderWorkspace(e){await this.workspaceConfiguration.initialize({id:e.id,configPath:e.configPath},this.isWorkspaceTrusted);let t=e.configPath,i=(0,lC.toWorkspaceFolders)(this.workspaceConfiguration.getFolders(),t,this.uriIdentityService.extUri),r=new l7(e.id,i,this.workspaceConfiguration.isTransient(),t,e=>this.uriIdentityService.extUri.ignorePathCasing(e));return r.initialized=this.workspaceConfiguration.initialized,r}createSingleFolderWorkspace(e){let t=new l7(e.id,[(0,lg.toWorkspaceFolder)(e.uri)],!1,null,e=>this.uriIdentityService.extUri.ignorePathCasing(e));return t.initialized=!0,t}createEmptyWorkspace(e){let t=new l7(e.id,[],!1,null,e=>this.uriIdentityService.extUri.ignorePathCasing(e));return t.initialized=!0,Promise.resolve(t)}checkAndMarkWorkspaceComplete(e){!this.completeWorkspaceBarrier.isOpen()&&this.workspace.initialized&&(this.completeWorkspaceBarrier.open(),this.validateWorkspaceFoldersAndReload(e))}async updateWorkspaceAndInitializeConfiguration(e,t){let i,r,n=!!this.workspace,o=[];if(n?(i=this.getWorkbenchState(),r=this.workspace.configuration?this.workspace.configuration.fsPath:void 0,o=this.workspace.folders,this.workspace.update(e)):this.workspace=e,await this.initializeConfiguration(t),n){let e=this.getWorkbenchState();i&&e!==i&&this._onDidChangeWorkbenchState.fire(e);let t=this.workspace.configuration?this.workspace.configuration.fsPath:void 0;(r&&t!==r||e!==i)&&this._onDidChangeWorkspaceName.fire();let n=this.compareFolders(o,this.workspace.folders);n&&(n.added.length||n.removed.length||n.changed.length)&&(await this.handleWillChangeWorkspaceFolders(n,!1),this._onDidChangeWorkspaceFolders.fire(n))}this.localUserConfiguration.hasTasksLoaded||this._register((0,so.runWhenWindowIdle)(oc.mainWindow,()=>this.reloadLocalUserConfiguration(!1,this._configuration.localUserConfiguration)))}compareFolders(e,t){let i={added:[],removed:[],changed:[]};i.added=t.filter(t=>!e.some(e=>t.uri.toString()===e.uri.toString()));for(let r=0;r<e.length;r++){let n=e[r],o=0;for(o=0;o<t.length&&n.uri.toString()!==t[o].uri.toString();o++);o<t.length?(r!==o||n.name!==t[o].name)&&i.changed.push(n):i.removed.push(n)}return i}async initializeConfiguration(e){await this.defaultConfiguration.initialize();let t=this.policyConfiguration.initialize(),i=this.applicationConfiguration?this.applicationConfiguration.initialize():Promise.resolve(lp.ConfigurationModel.createEmptyModel(this.logService)),r=async()=>{(0,lY.mark)("code/willInitUserConfiguration");let e=await Promise.all([this.localUserConfiguration.initialize(),this.remoteUserConfiguration?this.remoteUserConfiguration.initialize():Promise.resolve(lp.ConfigurationModel.createEmptyModel(this.logService))]);if(this.applicationConfiguration){let t=await i;e[0]=this.localUserConfiguration.reparse({exclude:t.getValue(aj)})}return(0,lY.mark)("code/didInitUserConfiguration"),e},[,n,[o,s]]=await Promise.all([t,i,r()]);(0,lY.mark)("code/willInitWorkspaceConfiguration"),await this.loadConfiguration(n,o,s,e),(0,lY.mark)("code/didInitWorkspaceConfiguration")}reloadDefaultConfiguration(){this.onDefaultConfigurationChanged(this.defaultConfiguration.reload())}async reloadApplicationConfiguration(e){if(!this.applicationConfiguration)return lp.ConfigurationModel.createEmptyModel(this.logService);let t=await this.applicationConfiguration.loadConfiguration();return e||this.onApplicationConfigurationChanged(t),t}async reloadUserConfiguration(){let[e,t]=await Promise.all([this.reloadLocalUserConfiguration(!0),this.reloadRemoteUserConfiguration(!0)]);return{local:e,remote:t}}async reloadLocalUserConfiguration(e,t){let i=await this.localUserConfiguration.reload(t);return e||this.onLocalUserConfigurationChanged(i),i}async reloadRemoteUserConfiguration(e){if(this.remoteUserConfiguration){let t=await this.remoteUserConfiguration.reload();return e||this.onRemoteUserConfigurationChanged(t),t}return lp.ConfigurationModel.createEmptyModel(this.logService)}async reloadWorkspaceConfiguration(){let e=this.getWorkbenchState();return e===lg.WorkbenchState.FOLDER?this.onWorkspaceFolderConfigurationChanged(this.workspace.folders[0]):e===lg.WorkbenchState.WORKSPACE?this.workspaceConfiguration.reload().then(()=>this.onWorkspaceConfigurationChanged(!1)):void 0}reloadWorkspaceFolderConfiguration(e){return this.onWorkspaceFolderConfigurationChanged(e)}async loadConfiguration(e,t,i,r){this.cachedFolderConfigs=new ld.ResourceMap;let n=this.workspace.folders,o=await this.loadFolderConfigurations(n),s=this.getWorkspaceConfigurationModel(o),a=new ld.ResourceMap;o.forEach((e,t)=>a.set(n[t].uri,e));let l=this._configuration;if(this._configuration=new ly(this.defaultConfiguration.configurationModel,this.policyConfiguration.configurationModel,e,t,i,s,a,lp.ConfigurationModel.createEmptyModel(this.logService),new ld.ResourceMap,this.workspace,this.logService),this.initialized=!0,r){let e=this._configuration.compare(l);this.triggerConfigurationChange(e,{data:l.toData(),workspace:this.workspace},ag.ConfigurationTarget.WORKSPACE)}this.updateRestrictedSettings()}getWorkspaceConfigurationModel(e){switch(this.getWorkbenchState()){case lg.WorkbenchState.FOLDER:return e[0];case lg.WorkbenchState.WORKSPACE:return this.workspaceConfiguration.getConfiguration();default:return lp.ConfigurationModel.createEmptyModel(this.logService)}}onUserDataProfileChanged(e){e.join((async()=>{let t=[];t.push(this.localUserConfiguration.reset(e.profile.settingsResource,e.profile.tasksResource,e.profile.mcpResource,{scopes:l8(e.profile,!!this.remoteUserConfiguration)})),(e.previous.isDefault!==e.profile.isDefault||!!e.previous.useDefaultFlags?.settings!=!!e.profile.useDefaultFlags?.settings)&&(this.createApplicationConfiguration(),this.applicationConfiguration&&t.push(this.reloadApplicationConfiguration(!0)));let[i,r]=await Promise.all(t);r=r??this._configuration.applicationConfiguration,this.applicationConfiguration&&(i=this.localUserConfiguration.reparse({exclude:r.getValue(aj)})),await this.loadConfiguration(r,i,this._configuration.remoteUserConfiguration,!0)})())}onDefaultConfigurationChanged(e,t){if(this.workspace){let i=this._configuration.toData(),r=this._configuration.compareAndUpdateDefaultConfiguration(e,t);if(this.applicationConfiguration&&this._configuration.updateApplicationConfiguration(this.applicationConfiguration.reparse()),this.remoteUserConfiguration&&(this._configuration.updateLocalUserConfiguration(this.localUserConfiguration.reparse()),this._configuration.updateRemoteUserConfiguration(this.remoteUserConfiguration.reparse())),this.getWorkbenchState()===lg.WorkbenchState.FOLDER){let e=this.cachedFolderConfigs.get(this.workspace.folders[0].uri);e&&(this._configuration.updateWorkspaceConfiguration(e.reparse()),this._configuration.updateFolderConfiguration(this.workspace.folders[0].uri,e.reparse()))}else for(let e of(this._configuration.updateWorkspaceConfiguration(this.workspaceConfiguration.reparseWorkspaceSettings()),this.workspace.folders)){let t=this.cachedFolderConfigs.get(e.uri);t&&this._configuration.updateFolderConfiguration(e.uri,t.reparse())}this.triggerConfigurationChange(r,{data:i,workspace:this.workspace},ag.ConfigurationTarget.DEFAULT),this.updateRestrictedSettings()}}onPolicyConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.compareAndUpdatePolicyConfiguration(e);this.triggerConfigurationChange(i,t,ag.ConfigurationTarget.DEFAULT)}onApplicationConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.applicationConfiguration.getValue(aj)??[],r=this._configuration.compareAndUpdateApplicationConfiguration(e),n=this.getValue(aj)??[],o=this.configurationRegistry.getConfigurationProperties(),s=[];for(let e of r.keys){let t=o[e]?.scope;if(t&&aA.includes(t)){if(s.push(e),e===aj){for(let e of i)n.includes(e)||s.push(e);for(let e of n)i.includes(e)||s.push(e)}}else n.includes(e)&&s.push(e)}r.keys=s,r.keys.includes(aj)&&this._configuration.updateLocalUserConfiguration(this.localUserConfiguration.reparse({exclude:n})),this.triggerConfigurationChange(r,t,ag.ConfigurationTarget.USER)}onLocalUserConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.compareAndUpdateLocalUserConfiguration(e);this.triggerConfigurationChange(i,t,ag.ConfigurationTarget.USER)}onRemoteUserConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.compareAndUpdateRemoteUserConfiguration(e);this.triggerConfigurationChange(i,t,ag.ConfigurationTarget.USER)}async onWorkspaceConfigurationChanged(e){if(this.workspace&&this.workspace.configuration){let t=(0,lC.toWorkspaceFolders)(this.workspaceConfiguration.getFolders(),this.workspace.configuration,this.uriIdentityService.extUri);if(this.workspace.initialized){let{added:e,removed:i,changed:r}=this.compareFolders(this.workspace.folders,t);t=e.length||i.length||r.length?await this.toValidWorkspaceFolders(t):this.workspace.folders}await this.updateWorkspaceConfiguration(t,this.workspaceConfiguration.getConfiguration(),e)}}updateRestrictedSettings(){let e=[],t=this.configurationRegistry.getConfigurationProperties(),i=Object.keys(t).filter(e=>t[e].restricted).sort((e,t)=>e.localeCompare(t)),r=(0,sx.delta)(i,this._restrictedSettings.default,(e,t)=>e.localeCompare(t));e.push(...r.added,...r.removed);let n=(this.applicationConfiguration?.getRestrictedSettings()||[]).sort((e,t)=>e.localeCompare(t)),o=(0,sx.delta)(n,this._restrictedSettings.application||[],(e,t)=>e.localeCompare(t));e.push(...o.added,...o.removed);let s=this.localUserConfiguration.getRestrictedSettings().sort((e,t)=>e.localeCompare(t)),a=(0,sx.delta)(s,this._restrictedSettings.userLocal||[],(e,t)=>e.localeCompare(t));e.push(...a.added,...a.removed);let l=(this.remoteUserConfiguration?.getRestrictedSettings()||[]).sort((e,t)=>e.localeCompare(t)),c=(0,sx.delta)(l,this._restrictedSettings.userRemote||[],(e,t)=>e.localeCompare(t));e.push(...c.added,...c.removed);let d=new ld.ResourceMap;for(let t of this.workspace.folders){let i=this.cachedFolderConfigs.get(t.uri),r=(i?.getRestrictedSettings()||[]).sort((e,t)=>e.localeCompare(t));r.length&&d.set(t.uri,r);let n=this._restrictedSettings.workspaceFolder?.get(t.uri)||[],o=(0,sx.delta)(r,n,(e,t)=>e.localeCompare(t));e.push(...o.added,...o.removed)}let u=this.getWorkbenchState()===lg.WorkbenchState.WORKSPACE?this.workspaceConfiguration.getRestrictedSettings().sort((e,t)=>e.localeCompare(t)):this.workspace.folders[0]&&d.get(this.workspace.folders[0].uri)||[],h=(0,sx.delta)(u,this._restrictedSettings.workspace||[],(e,t)=>e.localeCompare(t));e.push(...h.added,...h.removed),e.length&&(this._restrictedSettings={default:i,application:n.length?n:void 0,userLocal:s.length?s:void 0,userRemote:l.length?l:void 0,workspace:u.length?u:void 0,workspaceFolder:d.size?d:void 0},this._onDidChangeRestrictedSettings.fire(this.restrictedSettings))}async updateWorkspaceConfiguration(e,t,i){let r={data:this._configuration.toData(),workspace:this.workspace},n=this._configuration.compareAndUpdateWorkspaceConfiguration(t),o=this.compareFolders(this.workspace.folders,e);if(o.added.length||o.removed.length||o.changed.length){this.workspace.folders=e;let t=await this.onFoldersChanged();await this.handleWillChangeWorkspaceFolders(o,i),this.triggerConfigurationChange(t,r,ag.ConfigurationTarget.WORKSPACE_FOLDER),this._onDidChangeWorkspaceFolders.fire(o)}else this.triggerConfigurationChange(n,r,ag.ConfigurationTarget.WORKSPACE);this.updateRestrictedSettings()}async handleWillChangeWorkspaceFolders(e,t){let i=[];this._onWillChangeWorkspaceFolders.fire({join(e){i.push(e)},changes:e,fromCache:t});try{await lh.Promises.settled(i)}catch(e){}}async onWorkspaceFolderConfigurationChanged(e){let[t]=await this.loadFolderConfigurations([e]),i={data:this._configuration.toData(),workspace:this.workspace},r=this._configuration.compareAndUpdateFolderConfiguration(e.uri,t);if(this.getWorkbenchState()===lg.WorkbenchState.FOLDER){let e=this._configuration.compareAndUpdateWorkspaceConfiguration(t);this.triggerConfigurationChange((0,lp.mergeChanges)(r,e),i,ag.ConfigurationTarget.WORKSPACE)}else this.triggerConfigurationChange(r,i,ag.ConfigurationTarget.WORKSPACE_FOLDER);this.updateRestrictedSettings()}async onFoldersChanged(){let e=[];for(let t of this.cachedFolderConfigs.keys())this.workspace.folders.filter(e=>e.uri.toString()===t.toString())[0]||(this.cachedFolderConfigs.get(t).dispose(),this.cachedFolderConfigs.delete(t),e.push(this._configuration.compareAndDeleteFolderConfiguration(t)));let t=this.workspace.folders.filter(e=>!this.cachedFolderConfigs.has(e.uri));return t.length&&(await this.loadFolderConfigurations(t)).forEach((i,r)=>{e.push(this._configuration.compareAndUpdateFolderConfiguration(t[r].uri,i))}),(0,lp.mergeChanges)(...e)}loadFolderConfigurations(e){return Promise.all([...e.map(e=>{let t=this.cachedFolderConfigs.get(e.uri);return t||(t=new lJ(!this.initialized,e,aT,this.getWorkbenchState(),this.isWorkspaceTrusted,this.fileService,this.uriIdentityService,this.logService,this.configurationCache),this._register(t.onDidChange(()=>this.onWorkspaceFolderConfigurationChanged(e))),this.cachedFolderConfigs.set(e.uri,this._register(t))),t.loadConfiguration()})])}async validateWorkspaceFoldersAndReload(e){let t=await this.toValidWorkspaceFolders(this.workspace.folders),{removed:i}=this.compareFolders(this.workspace.folders,t);i.length&&await this.updateWorkspaceConfiguration(t,this.workspaceConfiguration.getConfiguration(),e)}async toValidWorkspaceFolders(e){let t=[];for(let i of e){try{if(!(await this.fileService.stat(i.uri)).isDirectory)continue}catch(e){this.logService.warn(`Ignoring the error while validating workspace folder ${i.uri.toString()} - ${(0,l0.toErrorMessage)(e)}`)}t.push(i)}return t}async writeConfigurationValue(e,t,i,r,n){if(!this.instantiationService)throw Error("Cannot write configuration because the configuration service is not yet ready to accept writes.");if(i===ag.ConfigurationTarget.DEFAULT)throw Error("Invalid configuration target");if(i===ag.ConfigurationTarget.MEMORY){let n={data:this._configuration.toData(),workspace:this.workspace};this._configuration.updateValue(e,t,r),this.triggerConfigurationChange({keys:r?.overrideIdentifiers?.length?[(0,am.keyFromOverrideIdentifiers)(r.overrideIdentifiers),e]:[e],overrides:r?.overrideIdentifiers?.length?r.overrideIdentifiers.map(t=>[t,[e]]):[]},n,i);return}let o=this.toEditableConfigurationTarget(i,e);if(!o||o===en.USER_REMOTE&&!this.remoteUserConfiguration)throw Error("Invalid configuration target");if(r?.overrideIdentifiers?.length&&r.overrideIdentifiers.length>1){let e=this.getConfigurationModelForEditableConfigurationTarget(o,r.resource);if(e){let t=r.overrideIdentifiers.sort(),i=e.overrides.find(e=>(0,sx.equals)([...e.identifiers].sort(),t));i&&(r.overrideIdentifiers=i.identifiers)}}switch(this.configurationEditing=this.configurationEditing??this.createConfigurationEditingService(this.instantiationService),await (await this.configurationEditing).writeConfiguration(o,{key:e,value:t},{scopes:r,...n}),o){case en.USER_LOCAL:this.applicationConfiguration&&this.isSettingAppliedForAllProfiles(e)?await this.reloadApplicationConfiguration():await this.reloadLocalUserConfiguration();return;case en.USER_REMOTE:return this.reloadRemoteUserConfiguration().then(()=>void 0);case en.WORKSPACE:return this.reloadWorkspaceConfiguration();case en.WORKSPACE_FOLDER:{let e=r&&r.resource?this.workspace.getFolder(r.resource):null;if(e)return this.reloadWorkspaceFolderConfiguration(e)}}}async createConfigurationEditingService(e){let t=(await this.remoteAgentService.getEnvironment())?.settingsPath??null;return e.createInstance(lL,t)}getConfigurationModelForEditableConfigurationTarget(e,t){switch(e){case en.USER_LOCAL:return this._configuration.localUserConfiguration;case en.USER_REMOTE:return this._configuration.remoteUserConfiguration;case en.WORKSPACE:return this._configuration.workspaceConfiguration;case en.WORKSPACE_FOLDER:return t?this._configuration.folderConfigurations.get(t):void 0}}getConfigurationModel(e,t){switch(e){case ag.ConfigurationTarget.USER_LOCAL:return this._configuration.localUserConfiguration;case ag.ConfigurationTarget.USER_REMOTE:return this._configuration.remoteUserConfiguration;case ag.ConfigurationTarget.WORKSPACE:return this._configuration.workspaceConfiguration;case ag.ConfigurationTarget.WORKSPACE_FOLDER:return t?this._configuration.folderConfigurations.get(t):void 0;default:return}}deriveConfigurationTargets(e,t,i){if((0,aD.equals)(t,i.value))return[];let r=[];return(void 0!==i.workspaceFolderValue&&r.push(ag.ConfigurationTarget.WORKSPACE_FOLDER),void 0!==i.workspaceValue&&r.push(ag.ConfigurationTarget.WORKSPACE),void 0!==i.userRemoteValue&&r.push(ag.ConfigurationTarget.USER_REMOTE),void 0!==i.userLocalValue&&r.push(ag.ConfigurationTarget.USER_LOCAL),void 0!==i.applicationValue&&r.push(ag.ConfigurationTarget.APPLICATION),void 0===t)?r:[r[0]||ag.ConfigurationTarget.USER]}triggerConfigurationChange(e,t,i){if(e.keys.length){i!==ag.ConfigurationTarget.DEFAULT&&this.logService.debug(`Configuration keys changed in ${(0,ag.ConfigurationTargetToString)(i)} target`,...e.keys);let r=new lp.ConfigurationChangeEvent(e,t,this._configuration,this.workspace,this.logService);r.source=i,this._onDidChangeConfiguration.fire(r)}}toEditableConfigurationTarget(e,t){if(e===ag.ConfigurationTarget.APPLICATION)return en.USER_LOCAL;if(e===ag.ConfigurationTarget.USER){if(this.remoteUserConfiguration){let e=this.configurationRegistry.getConfigurationProperties()[t]?.scope;if(e===am.ConfigurationScope.MACHINE||e===am.ConfigurationScope.MACHINE_OVERRIDABLE||e===am.ConfigurationScope.APPLICATION_MACHINE||void 0!==this.inspect(t).userRemoteValue)return en.USER_REMOTE}return en.USER_LOCAL}return e===ag.ConfigurationTarget.USER_LOCAL?en.USER_LOCAL:e===ag.ConfigurationTarget.USER_REMOTE?en.USER_REMOTE:e===ag.ConfigurationTarget.WORKSPACE?en.WORKSPACE:e===ag.ConfigurationTarget.WORKSPACE_FOLDER?en.WORKSPACE_FOLDER:null}}let ce=class extends lu.Disposable{constructor(e,t,i,r,n){super(),this.workspaceContextService=e,this.environmentService=t,this.workspaceTrustManagementService=i,r.whenInstalledExtensionsRegistered().then(()=>{this.registerConfigurationSchemas();let e=aC.Registry.as(am.Extensions.Configuration),t=this._register(new lh.Delayer(50));this._register(o7.Event.any(e.onDidUpdateConfiguration,e.onDidSchemaChange,i.onDidChangeTrust)(()=>t.trigger(()=>this.registerConfigurationSchemas(),n.phase===a3.LifecyclePhase.Eventually?void 0:2500)))})}registerConfigurationSchemas(){let e={properties:am.allSettings.properties,patternProperties:am.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},t=this.environmentService.remoteAuthority?{properties:Object.assign({},am.applicationSettings.properties,am.windowSettings.properties,am.resourceSettings.properties),patternProperties:am.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0}:e,i={properties:Object.assign({},am.machineSettings.properties,am.machineOverridableSettings.properties,am.windowSettings.properties,am.resourceSettings.properties),patternProperties:am.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},r={properties:Object.assign({},am.applicationMachineSettings.properties,am.machineSettings.properties,am.machineOverridableSettings.properties,am.windowSettings.properties,am.resourceSettings.properties),patternProperties:am.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},n={properties:Object.assign({},this.checkAndFilterPropertiesRequiringTrust(am.machineOverridableSettings.properties),this.checkAndFilterPropertiesRequiringTrust(am.windowSettings.properties),this.checkAndFilterPropertiesRequiringTrust(am.resourceSettings.properties)),patternProperties:am.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},o={properties:Object.keys(am.allSettings.properties).reduce((e,t)=>(e[t]=Object.assign({deprecationMessage:void 0},am.allSettings.properties[t]),e),{}),patternProperties:Object.keys(am.allSettings.patternProperties).reduce((e,t)=>(e[t]=Object.assign({deprecationMessage:void 0},am.allSettings.patternProperties[t]),e),{}),additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},s=lg.WorkbenchState.WORKSPACE===this.workspaceContextService.getWorkbenchState()?{properties:Object.assign({},this.checkAndFilterPropertiesRequiringTrust(am.machineOverridableSettings.properties),this.checkAndFilterPropertiesRequiringTrust(am.resourceSettings.properties)),patternProperties:am.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0}:n,a={type:"object",description:(0,si.localize)(13756,"Contribute defaults for configurations"),properties:Object.assign({},this.filterDefaultOverridableProperties(am.machineOverridableSettings.properties),this.filterDefaultOverridableProperties(am.windowSettings.properties),this.filterDefaultOverridableProperties(am.resourceSettings.properties)),patternProperties:{[am.OVERRIDE_PROPERTY_PATTERN]:{type:"object",default:{},$ref:am.resourceLanguageSettingsSchemaId}},additionalProperties:!1};this.registerSchemas({defaultSettingsSchema:o,userSettingsSchema:t,profileSettingsSchema:i,machineSettingsSchema:r,workspaceSettingsSchema:n,folderSettingsSchema:s,configDefaultsSchema:a})}registerSchemas(e){let t=aC.Registry.as(ak.Extensions.JSONContribution);t.registerSchema("vscode://schemas/settings/default",e.defaultSettingsSchema),t.registerSchema("vscode://schemas/settings/user",e.userSettingsSchema),t.registerSchema("vscode://schemas/settings/profile",e.profileSettingsSchema),t.registerSchema("vscode://schemas/settings/machine",e.machineSettingsSchema),t.registerSchema(aI,e.workspaceSettingsSchema),t.registerSchema("vscode://schemas/settings/folder",e.folderSettingsSchema),t.registerSchema(am.configurationDefaultsSchemaId,e.configDefaultsSchema)}checkAndFilterPropertiesRequiringTrust(e){if(this.workspaceTrustManagementService.isWorkspaceTrusted())return e;let t={};return Object.entries(e).forEach(([e,i])=>{i.restricted||(t[e]=i)}),t}filterDefaultOverridableProperties(e){let t={};return Object.entries(e).forEach(([e,i])=>{i.disallowConfigurationDefault||(t[e]=i)}),t}};ce=(0,oM.__decorate)([(0,oM.__param)(0,aw.IWorkspaceContextService),(0,oM.__param)(1,lX.IWorkbenchEnvironmentService),(0,oM.__param)(2,l1.IWorkspaceTrustManagementService),(0,oM.__param)(3,l2.IExtensionService),(0,oM.__param)(4,lZ.ILifecycleService)],ce);let ct=class extends lu.Disposable{static{this.ID="workbench.contrib.configurationDefaultOverridesContribution"}constructor(e,t,i,r){super(),this.workbenchAssignmentService=e,this.extensionService=t,this.configurationService=i,this.logService=r,this.processedExperimentalSettings=new Set,this.autoExperimentalSettings=new Set,this.configurationRegistry=aC.Registry.as(am.Extensions.Configuration),this.throttler=this._register(new lh.Throttler),this.throttler.queue(()=>this.updateDefaults()),this._register(e.onDidRefetchAssignments(()=>this.throttler.queue(()=>this.processExperimentalSettings(this.autoExperimentalSettings,!0)))),this._register(this.configurationRegistry.onDidUpdateConfiguration(({properties:e})=>this.processExperimentalSettings(e,!1)))}async updateDefaults(){this.logService.trace("ConfigurationService#updateDefaults: begin");try{await this.processExperimentalSettings(Object.keys(this.configurationRegistry.getConfigurationProperties()),!1)}finally{await this.extensionService.whenInstalledExtensionsRegistered(),this.logService.trace("ConfigurationService#updateDefaults: resetting the defaults"),this.configurationService.reloadConfiguration(ag.ConfigurationTarget.DEFAULT)}}async processExperimentalSettings(e,t){let i={},r=this.configurationRegistry.getConfigurationProperties();for(let n of e){let e=r[n];if(e?.experiment&&!(!t&&this.processedExperimentalSettings.has(n))){this.processedExperimentalSettings.add(n),"auto"===e.experiment.mode&&this.autoExperimentalSettings.add(n);try{let t=await this.workbenchAssignmentService.getTreatment(e.experiment.name??`config.${n}`);(0,sK.isUndefined)(t)||(0,aD.equals)(t,e.default)||(i[n]=t)}catch(e){}}}Object.keys(i).length&&this.configurationRegistry.registerDefaultConfigurations([{overrides:i}])}};ct=(0,oM.__decorate)([(0,oM.__param)(0,l6.IWorkbenchAssignmentService),(0,oM.__param)(1,l2.IExtensionService),(0,oM.__param)(2,oW.IConfigurationService),(0,oM.__param)(3,a_.ILogService)],ct),aC.Registry.as(a6.Extensions.Workbench).registerWorkbenchContribution(ce,a3.LifecyclePhase.Restored),(0,a6.registerWorkbenchContribution2)(ct.ID,ct,a6.WorkbenchPhase.BlockRestore),aC.Registry.as(am.Extensions.Configuration).registerConfiguration({...l5.workbenchConfigurationNodeBase,properties:{[aj]:{type:"array",description:(0,si.localize)(13757,"Configure settings to be applied for all profiles."),default:[],scope:am.ConfigurationScope.APPLICATION,additionalProperties:!0,uniqueItems:!0}}});class ci{constructor(e,t,i){this.donotCacheResourcesWithSchemes=e,this.fileService=i,this.cachedConfigurations=new Map,this.cacheHome=t.cacheHome}needsCaching(e){return!this.donotCacheResourcesWithSchemes.includes(e.scheme)}read(e){return this.getCachedConfiguration(e).read()}write(e,t){return this.getCachedConfiguration(e).save(t)}remove(e){return this.getCachedConfiguration(e).remove()}getCachedConfiguration({type:e,key:t}){let i=`${e}:${t}`,r=this.cachedConfigurations.get(i);return r||(r=new cr({type:e,key:t},this.cacheHome,this.fileService),this.cachedConfigurations.set(i,r)),r}}class cr{constructor({type:e,key:t},i,r){this.fileService=r,this.cachedConfigurationFolderResource=(0,a9.joinPath)(i,"CachedConfigurations",e,t),this.cachedConfigurationFileResource=(0,a9.joinPath)(this.cachedConfigurationFolderResource,"workspaces"===e?"workspace.json":"configuration.json"),this.queue=new lh.Queue}async read(){try{return(await this.fileService.readFile(this.cachedConfigurationFileResource)).value.toString()}catch(e){return""}}async save(e){await this.createCachedFolder()&&await this.queue.queue(async()=>{await this.fileService.writeFile(this.cachedConfigurationFileResource,aa.VSBuffer.fromString(e))})}async remove(){try{await this.queue.queue(()=>this.fileService.del(this.cachedConfigurationFolderResource,{recursive:!0,useTrash:!1}))}catch(e){if(e.fileOperationResult!==lD.FileOperationResult.FILE_NOT_FOUND)throw e}}async createCachedFolder(){if(await this.fileService.exists(this.cachedConfigurationFolderResource))return!0;try{return await this.fileService.createFolder(this.cachedConfigurationFolderResource),!0}catch(e){return!1}}}var cn=e.i(436771),co=e.i(354244);e.i(157255);let cs=class{constructor(e,t,i,r){this.configurationService=e,this.environmentService=i,this.storageService=r,this.remoteEnvironment=null,t.getEnvironment().then(e=>this.remoteEnvironment=e)}getEOL(e,t){let i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});if(i&&"string"==typeof i&&"auto"!==i)return i;let r=this.getOS(e);return r===co.OperatingSystem.Linux||r===co.OperatingSystem.Macintosh?"\n":"\r\n"}getOS(e){let t=co.OS,i=this.environmentService.remoteAuthority;if(i&&e&&e.scheme!==al.Schemas.file){let e=`resource.authority.os.${i}`;t=this.remoteEnvironment?this.remoteEnvironment.os:this.storageService.getNumber(e,li.StorageScope.WORKSPACE,co.OS),this.storageService.store(e,t,li.StorageScope.WORKSPACE,li.StorageTarget.MACHINE)}return t}};cs=(0,oM.__decorate)([(0,oM.__param)(0,oW.IConfigurationService),(0,oM.__param)(1,cn.IRemoteAgentService),(0,oM.__param)(2,lX.IWorkbenchEnvironmentService),(0,oM.__param)(3,lr.IStorageService)],cs);var ca=e.i(431153),cl=e.i(846960),cc=e.i(324726),cd=e.i(193391),cu=od;let ch=class extends cu.Disposable{constructor(e,t,i,r,n,o,s,a,l,c,d,u,h,g,p,m){super(),this.jsonEditingService=e,this.contextService=t,this.configurationService=i,this.notificationService=r,this.commandService=n,this.fileService=o,this.textFileService=s,this.workspacesService=a,this.environmentService=l,this.fileDialogService=c,this.dialogService=d,this.hostService=u,this.uriIdentityService=h,this.workspaceTrustManagementService=g,this.userDataProfilesService=p,this.userDataProfileService=m}async pickNewWorkspacePath(){let e=[al.Schemas.file];this.environmentService.remoteAuthority&&e.unshift(al.Schemas.vscodeRemote);let t=await this.fileDialogService.showSaveDialog({saveLabel:(0,si.localize)(14660,"Save"),title:(0,si.localize)(14661,"Save Workspace"),filters:a4.WORKSPACE_FILTER,defaultUri:(0,a9.joinPath)(await this.fileDialogService.defaultWorkspacePath(),this.getNewWorkspaceName()),availableFileSystems:e});if(t)return(0,a4.hasWorkspaceFileExtension)(t)||(t=t.with({path:`${t.path}.${a4.WORKSPACE_EXTENSION}`})),t}getNewWorkspaceName(){let e=this.getCurrentWorkspaceIdentifier()?.configPath;if(e&&(0,a4.isSavedWorkspace)(e,this.environmentService))return(0,a9.basename)(e);let t=this.contextService.getWorkspace().folders.at(0);return t?`${(0,a9.basename)(t.uri)}.${a4.WORKSPACE_EXTENSION}`:`workspace.${a4.WORKSPACE_EXTENSION}`}async updateFolders(e,t,i,r){let n=this.contextService.getWorkspace().folders,o=[];"number"==typeof t&&(o=n.slice(e,e+t).map(e=>e.uri));let s=[];Array.isArray(i)&&(s=i.map(e=>({uri:(0,a9.removeTrailingPathSeparator)(e.uri),name:e.name})));let a=o.length>0,l=s.length>0;if(l||a)return l&&!a?this.doAddFolders(s,e,r):a&&!l?this.removeFolders(o):this.includesSingleFolderWorkspace(o)?this.createAndEnterWorkspace(s):this.contextService.getWorkbenchState()!==a4.WorkbenchState.WORKSPACE?this.doAddFolders(s,e,r):this.doUpdateFolders(s,o,e,r)}async doUpdateFolders(e,t,i,r=!1){try{await this.contextService.updateFolders(e,t,i)}catch(e){if(r)throw e;this.handleWorkspaceConfigurationEditingError(e)}}addFolders(e,t=!1){let i=e.map(e=>({uri:(0,a9.removeTrailingPathSeparator)(e.uri),name:e.name}));return this.doAddFolders(i,void 0,t)}async doAddFolders(e,t,i=!1){let r=this.contextService.getWorkbenchState();if(r!==a4.WorkbenchState.WORKSPACE){let i=this.contextService.getWorkspace().folders.map(e=>({uri:e.uri}));if(i.splice("number"==typeof t?t:i.length,0,...e),i=(0,sx.distinct)(i,e=>this.uriIdentityService.extUri.getComparisonKey(e.uri)),r===a4.WorkbenchState.EMPTY&&0===i.length||r===a4.WorkbenchState.FOLDER&&1===i.length)return;return this.createAndEnterWorkspace(i)}try{await this.contextService.addFolders(e,t)}catch(e){if(i)throw e;this.handleWorkspaceConfigurationEditingError(e)}}async removeFolders(e,t=!1){if(this.includesSingleFolderWorkspace(e))return this.createAndEnterWorkspace([]);try{await this.contextService.removeFolders(e)}catch(e){if(t)throw e;this.handleWorkspaceConfigurationEditingError(e)}}includesSingleFolderWorkspace(e){if(this.contextService.getWorkbenchState()===a4.WorkbenchState.FOLDER){let t=this.contextService.getWorkspace().folders[0];return e.some(e=>this.uriIdentityService.extUri.isEqual(e,t.uri))}return!1}async createAndEnterWorkspace(e,t){if(t&&!await this.isValidTargetWorkspacePath(t))return;let i=this.environmentService.remoteAuthority,r=await this.workspacesService.createUntitledWorkspace(e,i);if(t)try{await this.saveWorkspaceAs(r,t)}finally{await this.workspacesService.deleteUntitledWorkspace(r)}else t=r.configPath,this.userDataProfileService.currentProfile.isDefault||await this.userDataProfilesService.setProfileForWorkspace(r,this.userDataProfileService.currentProfile);return this.enterWorkspace(t)}async saveAndEnterWorkspace(e){let t=this.getCurrentWorkspaceIdentifier();return t?(0,a9.isEqual)(t.configPath,e)?this.saveWorkspace(t):await this.isValidTargetWorkspacePath(e)?(await this.saveWorkspaceAs(t,e),this.enterWorkspace(e)):void 0:void 0}async isValidTargetWorkspacePath(e){return!0}async saveWorkspaceAs(e,t){let i=e.configPath;if(!(0,a4.isUntitledWorkspace)(t,this.environmentService)&&!this.userDataProfileService.currentProfile.isDefault){let e=await this.workspacesService.getWorkspaceIdentifier(t);await this.userDataProfilesService.setProfileForWorkspace(e,this.userDataProfileService.currentProfile)}if(this.uriIdentityService.extUri.isEqual(i,t))return;let r=(0,a4.isUntitledWorkspace)(i,this.environmentService),n=await this.fileService.readFile(i),o=(0,lC.rewriteWorkspaceFileForNewLocation)(n.value.toString(),i,r,t,this.uriIdentityService.extUri);await this.textFileService.create([{resource:t,value:o,options:{overwrite:!0}}]),await this.trustWorkspaceConfiguration(t)}async saveWorkspace(e){let t=e.configPath,i=this.textFileService.files.get(t);if(i)return void await i.save({force:!0,reason:cd.SaveReason.EXPLICIT});if(await this.fileService.exists(t))return;let r=(0,lC.rewriteWorkspaceFileForNewLocation)(JSON.stringify({folders:[]},null," "),t,!1,t,this.uriIdentityService.extUri);await this.textFileService.create([{resource:t,value:r}])}handleWorkspaceConfigurationEditingError(e){e.code===ca.JSONEditingErrorCode.ERROR_INVALID_FILE?this.onInvalidWorkspaceConfigurationFileError():this.notificationService.error(e.message)}onInvalidWorkspaceConfigurationFileError(){let e=(0,si.localize)(14662,"Unable to write into workspace configuration file. Please open the file to correct errors/warnings in it and try again.");this.askToOpenWorkspaceConfigurationFile(e)}askToOpenWorkspaceConfigurationFile(e){this.notificationService.prompt(ll.default.Error,e,[{label:(0,si.localize)(14663,"Open Workspace Configuration"),run:()=>this.commandService.executeCommand("workbench.action.openWorkspaceConfigFile")}])}async doEnterWorkspace(e){if(this.environmentService.extensionTestsLocationURI)throw Error("Entering a new workspace is not possible in tests.");let t=await this.workspacesService.getWorkspaceIdentifier(e);return this.contextService.getWorkbenchState()===a4.WorkbenchState.FOLDER&&await this.migrateWorkspaceSettings(t),await this.configurationService.initialize(t),this.workspacesService.enterWorkspace(e)}migrateWorkspaceSettings(e){return this.doCopyWorkspaceSettings(e,e=>e.scope===am.ConfigurationScope.WINDOW)}copyWorkspaceSettings(e){return this.doCopyWorkspaceSettings(e)}doCopyWorkspaceSettings(e,t){let i=aC.Registry.as(am.Extensions.Configuration).getConfigurationProperties(),r={};for(let e of this.configurationService.keys().workspace)if(i[e]){if(t&&!t(i[e]))continue;r[e]=this.configurationService.inspect(e).workspaceValue}return this.jsonEditingService.write(e.configPath,[{path:["settings"],value:r}],!0)}async trustWorkspaceConfiguration(e){this.contextService.getWorkbenchState()!==a4.WorkbenchState.EMPTY&&this.workspaceTrustManagementService.isWorkspaceTrusted()&&await this.workspaceTrustManagementService.setUrisTrust([e],!0)}getCurrentWorkspaceIdentifier(){let e=(0,a4.toWorkspaceIdentifier)(this.contextService.getWorkspace());if((0,a4.isWorkspaceIdentifier)(e))return e}};ch=(0,oM.__decorate)([(0,oM.__param)(0,l4.IJSONEditingService),(0,oM.__param)(1,aw.IWorkspaceContextService),(0,oM.__param)(2,lx.IWorkbenchConfigurationService),(0,oM.__param)(3,a7.INotificationService),(0,oM.__param)(4,cl.ICommandService),(0,oM.__param)(5,af.IFileService),(0,oM.__param)(6,lw.ITextFileService),(0,oM.__param)(7,ax.IWorkspacesService),(0,oM.__param)(8,lX.IWorkbenchEnvironmentService),(0,oM.__param)(9,cc.IFileDialogService),(0,oM.__param)(10,cc.IDialogService),(0,oM.__param)(11,le.IHostService),(0,oM.__param)(12,aS.IUriIdentityService),(0,oM.__param)(13,l1.IWorkspaceTrustManagementService),(0,oM.__param)(14,ab.IUserDataProfilesService),(0,oM.__param)(15,lP.IUserDataProfileService)],ch);var cg=od,cp=e.i(775937);let cm=class extends cg.Disposable{static{eo=this}static{this.RECENTLY_OPENED_KEY="recently.opened"}constructor(e,t,i,r,n,o){super(),this.storageService=e,this.contextService=t,this.logService=i,this.fileService=r,this.environmentService=n,this.uriIdentityService=o,this._onRecentlyOpenedChange=this._register(new o7.Emitter),this.onDidChangeRecentlyOpened=this._onRecentlyOpenedChange.event,this.addWorkspaceToRecentlyOpened(),this.registerListeners()}registerListeners(){this._register(this.storageService.onDidChangeValue(li.StorageScope.APPLICATION,eo.RECENTLY_OPENED_KEY,this._store)(()=>this._onRecentlyOpenedChange.fire())),this._register(this.contextService.onDidChangeWorkspaceFolders(e=>this.onDidChangeWorkspaceFolders(e)))}onDidChangeWorkspaceFolders(e){if((0,a4.isTemporaryWorkspace)(this.contextService.getWorkspace()))for(let t of e.added)this.addRecentlyOpened([{folderUri:t.uri}])}addWorkspaceToRecentlyOpened(){let e=this.contextService.getWorkspace(),t=this.environmentService.remoteAuthority;switch(this.contextService.getWorkbenchState()){case a4.WorkbenchState.FOLDER:this.addRecentlyOpened([{folderUri:e.folders[0].uri,remoteAuthority:t}]);break;case a4.WorkbenchState.WORKSPACE:this.addRecentlyOpened([{workspace:{id:e.id,configPath:e.configuration},remoteAuthority:t}])}}async getRecentlyOpened(){let e=this.storageService.get(eo.RECENTLY_OPENED_KEY,li.StorageScope.APPLICATION);if(e){let t=(0,lC.restoreRecentlyOpened)(JSON.parse(e),this.logService);return t.workspaces=t.workspaces.filter(e=>!((0,lC.isRecentFolder)(e)&&e.folderUri.scheme===al.Schemas.file&&!(0,a4.isTemporaryWorkspace)(this.contextService.getWorkspace())||(0,lC.isRecentWorkspace)(e)&&(0,a4.isTemporaryWorkspace)(e.workspace.configPath))),t}return{workspaces:[],files:[]}}async addRecentlyOpened(e){let t=await this.getRecentlyOpened();for(let i of e)(0,lC.isRecentFile)(i)?(this.doRemoveRecentlyOpened(t,[i.fileUri]),t.files.unshift(i)):((0,lC.isRecentFolder)(i)?this.doRemoveRecentlyOpened(t,[i.folderUri]):this.doRemoveRecentlyOpened(t,[i.workspace.configPath]),t.workspaces.unshift(i));return this.saveRecentlyOpened(t)}async removeRecentlyOpened(e){let t=await this.getRecentlyOpened();return this.doRemoveRecentlyOpened(t,e),this.saveRecentlyOpened(t)}doRemoveRecentlyOpened(e,t){e.files=e.files.filter(e=>!t.some(t=>t.toString()===e.fileUri.toString())),e.workspaces=e.workspaces.filter(e=>!t.some(t=>t.toString()===((0,lC.isRecentFolder)(e)?e.folderUri.toString():e.workspace.configPath.toString())))}async saveRecentlyOpened(e){return this.storageService.store(eo.RECENTLY_OPENED_KEY,JSON.stringify((0,lC.toStoreData)(e)),li.StorageScope.APPLICATION,li.StorageTarget.USER)}async clearRecentlyOpened(){this.storageService.remove(eo.RECENTLY_OPENED_KEY,li.StorageScope.APPLICATION)}async enterWorkspace(e){return{workspace:await this.getWorkspaceIdentifier(e)}}async createUntitledWorkspace(e,t){let i=(Date.now()+Math.round(1e3*Math.random())).toString(),r=(0,a9.joinPath)(this.environmentService.untitledWorkspacesHome,`Untitled-${i}.${a4.WORKSPACE_EXTENSION}`),n=[];if(e)for(let t of e)n.push((0,lC.getStoredWorkspaceFolder)(t.uri,!0,t.name,this.environmentService.untitledWorkspacesHome,this.uriIdentityService.extUri));return await this.fileService.writeFile(r,aa.VSBuffer.fromString(JSON.stringify({folders:n,remoteAuthority:t},null," "))),this.getWorkspaceIdentifier(r)}async deleteUntitledWorkspace(e){try{await this.fileService.del(e.configPath)}catch(e){if(e.fileOperationResult!==lD.FileOperationResult.FILE_NOT_FOUND)throw e}}async getWorkspaceIdentifier(e){return(0,cp.getWorkspaceIdentifier)(e)}async getDirtyWorkspaces(){return[]}};cm=eo=(0,oM.__decorate)([(0,oM.__param)(0,lr.IStorageService),(0,oM.__param)(1,aw.IWorkspaceContextService),(0,oM.__param)(2,a_.ILogService),(0,oM.__param)(3,af.IFileService),(0,oM.__param)(4,lX.IWorkbenchEnvironmentService),(0,oM.__param)(5,aS.IUriIdentityService)],cm);var cf=e.i(973265),cv=e.i(370973),c_=e.i(751753),cy=e.i(163731),cC=e.i(108462),cS=e.i(989115),cb=e.i(545341);let cw="configResolveInputLru";class cx extends cb.AbstractVariableResolverService{static{this.INPUT_OR_COMMAND_VARIABLES_PATTERN=/\${((input|command):(.*?))}/g}constructor(e,t,i,r,n,o,s,a,l,c,d){super({getFolderUri:e=>{let t=o.getWorkspace().folders.filter(t=>t.name===e).pop();return t?t.uri:void 0},getWorkspaceFolderCount:()=>o.getWorkspace().folders.length,getConfigurationValue:(e,t)=>r.getValue(t,e?{resource:e}:{}),getAppRoot:()=>e.getAppRoot(),getExecPath:()=>e.getExecPath(),getFilePath:()=>{let e=cd.EditorResourceAccessor.getOriginalUri(i.activeEditor,{supportSideBySide:cd.SideBySideEditor.PRIMARY,filterByScheme:[al.Schemas.file,al.Schemas.vscodeUserData,this.pathService.defaultUriScheme]});if(e)return this.labelService.getUriLabel(e,{noPrefix:!0})},getWorkspaceFolderPathForFile:()=>{let e=cd.EditorResourceAccessor.getOriginalUri(i.activeEditor,{supportSideBySide:cd.SideBySideEditor.PRIMARY,filterByScheme:[al.Schemas.file,al.Schemas.vscodeUserData,this.pathService.defaultUriScheme]});if(!e)return;let t=o.getWorkspaceFolder(e);if(t)return this.labelService.getUriLabel(t.uri,{noPrefix:!0})},getSelectedText:()=>{let e=i.activeTextEditorControl,t=null;if((0,cy.isCodeEditor)(e))t=e;else if((0,cy.isDiffEditor)(e)){let i=e.getOriginalEditor(),r=e.getModifiedEditor();t=i.hasWidgetFocus()?i:r}let r=t?.getModel(),n=t?.getSelection();if(r&&n)return r.getValueInRange(n)},getLineNumber:()=>{let e=i.activeTextEditorControl;if((0,cy.isCodeEditor)(e)){let t=e.getSelection();if(t)return String(t.positionLineNumber)}},getColumnNumber:()=>{let e=i.activeTextEditorControl;if((0,cy.isCodeEditor)(e)){let t=e.getSelection();if(t)return String(t.positionColumn)}},getExtension:e=>c.getExtension(e)},a,l.userHome().then(e=>e.path),t),this.configurationService=r,this.commandService=n,this.quickInputService=s,this.labelService=a,this.pathService=l,this.storageService=d,this.userInputAccessQueue=new lh.Queue,this.resolvableVariables.add("command"),this.resolvableVariables.add("input")}async resolveWithInteractionReplace(e,t,i,r,n){let o=cS.ConfigurationResolverExpression.parse(t);return await this.resolveWithInteraction(e,o,i,r,n),o.toObject()}async resolveWithInteraction(e,t,i,r,n){let o=cS.ConfigurationResolverExpression.parse(t);for(let t of o.unresolved()){let s;if("command"===t.name){let e=(r?r[t.arg]:void 0)||t.arg,i=await this.commandService.executeCommand(e,o.toObject());if(!(0,sK.isUndefinedOrNull)(i)){if("string"!=typeof i)throw new cC.VariableError(cC.VariableKind.Command,(0,si.localize)(13801,"Cannot substitute command variable '{0}' because command did not return a result of type string.",e));s={value:i}}}else if("input"===t.name)s=await this.showUserInput(i,t.arg,await this.resolveInputs(e,i,n),r);else if(this._contributedVariables.has(t.inner))s={value:await this._contributedVariables.get(t.inner)()};else{let i=await this.evaluateSingleVariable(t,e?.uri);if(void 0===i)continue;s="string"==typeof i?{value:i}:i}if(void 0===s)return;o.resolve(t,s)}return new Map(c_.Iterable.map(o.resolved(),([e,t])=>[e.inner,t.value]))}async resolveInputs(e,t,i){let r;if(!t)return;let n=e?{resource:e.uri}:{},o=this.configurationService.inspect(t,n);if(o)switch(i){case ag.ConfigurationTarget.MEMORY:r=o.memoryValue?.inputs;break;case ag.ConfigurationTarget.DEFAULT:r=o.defaultValue?.inputs;break;case ag.ConfigurationTarget.USER:r=o.userValue?.inputs;break;case ag.ConfigurationTarget.USER_LOCAL:r=o.userLocalValue?.inputs;break;case ag.ConfigurationTarget.USER_REMOTE:r=o.userRemoteValue?.inputs;break;case ag.ConfigurationTarget.APPLICATION:r=o.applicationValue?.inputs;break;case ag.ConfigurationTarget.WORKSPACE:r=o.workspaceValue?.inputs;break;case ag.ConfigurationTarget.WORKSPACE_FOLDER:default:r=o.workspaceFolderValue?.inputs}return r??this.configurationService.getValue(t,n)?.inputs}readInputLru(){let e=this.storageService.get(cw,li.StorageScope.WORKSPACE),t=new ld.LRUCache(5);try{e&&t.fromJSON(JSON.parse(e))}catch{}return t}storeInputLru(e){this.storageService.store(cw,JSON.stringify(e.toJSON()),li.StorageScope.WORKSPACE,li.StorageTarget.MACHINE)}async showUserInput(e,t,i,r){if(!i)throw new cC.VariableError(cC.VariableKind.Input,(0,si.localize)(13802,"Variable '{0}' must be defined in an '{1}' section of the debug or task configuration.",t,"inputs"));let n=i.filter(e=>e.id===t).pop();if(n){let i=e=>{throw new cC.VariableError(cC.VariableKind.Input,(0,si.localize)(13803,"Input variable '{0}' is of type '{1}' and must include '{2}'.",t,n.type,e))},o=this.readInputLru(),s=`${e}.${t}`,a=o.get(s);switch(n.type){case"promptString":{(0,sK.isString)(n.description)||i("description");let e={prompt:n.description,ignoreFocusLost:!0,value:r?.[`input:${t}`]??a??n.default};return n.password&&(e.password=n.password),this.userInputAccessQueue.queue(()=>this.quickInputService.input(e)).then(e=>("string"!=typeof e||n.password||this.storeInputLru(o.set(s,e)),void 0!==e?{value:e,input:n}:void 0))}case"pickString":{if((0,sK.isString)(n.description)||i("description"),Array.isArray(n.options))for(let e of n.options)(0,sK.isString)(e)||(0,sK.isString)(e.value)||i("value");else i("options");let e=[];for(let i of n.options){let o=(0,sK.isString)(i)?i:i.value,s=(0,sK.isString)(i)?void 0:i.label,l={label:s?`${s}: ${o}`:o,value:o},c=r?.[`input:${t}`]??a??n.default;o===n.default?(l.description=(0,si.localize)(13804,"(Default)"),e.unshift(l)):o===c?e.unshift(l):e.push(l)}let l={placeHolder:n.description,matchOnDetail:!0,ignoreFocusLost:!0};return this.userInputAccessQueue.queue(()=>this.quickInputService.pick(e,l,void 0)).then(e=>{if(e){let t=e.value;return this.storeInputLru(o.set(s,t)),{value:t,input:n}}})}case"command":return(0,sK.isString)(n.command)||i("command"),this.userInputAccessQueue.queue(()=>this.commandService.executeCommand(n.command,n.args)).then(e=>{if("string"==typeof e||(0,sK.isUndefinedOrNull)(e))return{value:e,input:n};throw new cC.VariableError(cC.VariableKind.Input,(0,si.localize)(13805,"Cannot substitute input variable '{0}' because command '{1}' did not return a result of type string.",t,n.command))});default:throw new cC.VariableError(cC.VariableKind.Input,(0,si.localize)(13806,"Input variable '{0}' can only be of type 'promptString', 'pickString', or 'command'.",t))}}throw new cC.VariableError(cC.VariableKind.Input,(0,si.localize)(13807,"Undefined input variable '{0}' encountered. Remove or define '{0}' to continue.",t))}}var cD=e.i(292035);let cE=class extends cx{constructor(e,t,i,r,n,o,s,a,l){super({getAppRoot:()=>void 0,getExecPath:()=>void 0},Promise.resolve(Object.create(null)),e,t,i,r,n,o,s,a,l)}};cE=(0,oM.__decorate)([(0,oM.__param)(0,lk.IEditorService),(0,oM.__param)(1,oW.IConfigurationService),(0,oM.__param)(2,cl.ICommandService),(0,oM.__param)(3,aw.IWorkspaceContextService),(0,oM.__param)(4,lt.IQuickInputService),(0,oM.__param)(5,cv.ILabelService),(0,oM.__param)(6,cD.IPathService),(0,oM.__param)(7,l2.IExtensionService),(0,oM.__param)(8,lr.IStorageService)],cE);var ck=e.i(703175),cT=e.i(68629),cR=e.i(130722),cP=e.i(425761),cI=e.i(63876);let cA=oh.URI.from({scheme:al.Schemas.vscodeUserData,path:"/User/settings.json"});async function cM(e,t,i=cA){await (0,cT.initFile)(i,e,t)}aC.Registry.as(am.Extensions.Configuration);let cL=class extends l9{constructor(e,t,i,r,n,o,s,a){super({configurationCache:new ci([al.Schemas.file,al.Schemas.vscodeUserData,al.Schemas.tmp],e,r),remoteAuthority:(0,cI.getWorkbenchConstructionOptions)().remoteAuthority},e,t,i,r,n,o,s,a)}};cL=(0,oM.__decorate)([(0,oM.__param)(0,lX.IWorkbenchEnvironmentService),(0,oM.__param)(1,lP.IUserDataProfileService),(0,oM.__param)(2,ab.IUserDataProfilesService),(0,oM.__param)(3,af.IFileService),(0,oM.__param)(4,cn.IRemoteAgentService),(0,oM.__param)(5,aS.IUriIdentityService),(0,oM.__param)(6,a_.ILogService),(0,oM.__param)(7,ay.IPolicyService)],cL);class cF extends ch{constructor(){super(...arguments),this.enterWorkspace=cP.unsupported}}(0,cR.registerServiceInitializePreParticipant)(async e=>{let t=e.get(aw.IWorkspaceContextService);t.acquireInstantiationService(e.get(st.IInstantiationService));let r=i??(0,cI.getWorkspaceIdentifier)();if(oh.URI.isUri(r)){let i=r.with({path:"/workspace.code-workspace"});try{let t=e.get(af.IFileService);await t.createFolder(r),await t.writeFile(i,aa.VSBuffer.fromString(JSON.stringify({folders:[{path:r.path}]})))}catch{}await t.initialize({id:(0,ac.generateUuid)(),configPath:i})}else await t.initialize(r)});let cO=(0,cP.memoizedConstructor)(cL);var cN=e.i(698107),c$=an;let cH=5*lD.ByteSize.MB,cU=class extends c$.AbstractMessageLogger{constructor(e,t,i,r){super(),this.resource=e,this.donotUseFormatters=i,this.fileService=r,this.backupIndex=1,this.buffer="",this.setLevel(t),this.flushDelayer=new lh.ThrottledDelayer(100),this.initializePromise=this.initialize()}async flush(){if(!this.buffer)return;await this.initializePromise;let e=await this.loadContent();e.length>cH&&(await this.fileService.writeFile(this.getBackupResource(),aa.VSBuffer.fromString(e)),e=""),this.buffer&&(e+=this.buffer,this.buffer="",await this.fileService.writeFile(this.resource,aa.VSBuffer.fromString(e)))}async initialize(){try{await this.fileService.createFile(this.resource)}catch(e){if(e.fileOperationResult!==lD.FileOperationResult.FILE_MODIFIED_SINCE)throw e}}log(e,t){this.donotUseFormatters?this.buffer+=t:this.buffer+=`${this.getCurrentTimestamp()} [${this.stringifyLogLevel(e)}] ${t}
71
+ `,this.flushDelayer.trigger(()=>this.flush())}getCurrentTimestamp(){let e,t=e=>e<10?`0${e}`:e,i=new Date;return`${i.getFullYear()}-${t(i.getMonth()+1)}-${t(i.getDate())} ${t(i.getHours())}:${t(i.getMinutes())}:${t(i.getSeconds())}.${(e=i.getMilliseconds())<10?`00${e}`:e<100?`0${e}`:e}`}getBackupResource(){return this.backupIndex=this.backupIndex>5?1:this.backupIndex,(0,a9.joinPath)((0,a9.dirname)(this.resource),`${(0,a9.basename)(this.resource)}_${this.backupIndex++}`)}async loadContent(){try{return(await this.fileService.readFile(this.resource)).value.toString()}catch(e){return""}}stringifyLogLevel(e){switch(e){case c$.LogLevel.Debug:return"debug";case c$.LogLevel.Error:return"error";case c$.LogLevel.Info:return"info";case c$.LogLevel.Trace:return"trace";case c$.LogLevel.Warning:return"warning"}return""}};cU=(0,oM.__decorate)([(0,oM.__param)(3,af.IFileService)],cU);class cW extends c$.AbstractLoggerService{constructor(e,t,i){super(e,t),this.fileService=i}doCreateLogger(e,t,i){let r=new cN.BufferLogger(t);return(0,lD.whenProviderRegistered)(e,this.fileService).then(()=>r.logger=new cU(e,r.getLevel(),!!i?.donotUseFormatters,this.fileService)),r}}var cq=e.i(37305),cj=e.i(253642),cz=e.i(753062),cK=e.i(885277),cV=od;let cB=class extends cV.Disposable{constructor(e,t,i,r,n){super(),this.environmentService=e,this.fileService=t,this.jsonEditingService=i,this.logService=r,this.loggerService=n,this._onDidChangeDefaultLogLevels=this._register(new o7.Emitter),this.onDidChangeDefaultLogLevels=this._onDidChangeDefaultLogLevels.event,this._defaultLogLevels={default:this._getDefaultLogLevelFromEnv(),extensions:this._getExtensionsDefaultLogLevelsFromEnv()},this._register(this.fileService.onDidFilesChange(e=>{e.contains(this.environmentService.argvResource)&&this.onDidChangeArgv()}))}async onDidChangeArgv(){let e=await this._parseLogLevelsFromArgv();this.updateDefaultLogLevels(e)}get defaultLogLevels(){return this._defaultLogLevels}updateDefaultLogLevels(e){let t={default:e?.default??this._getDefaultLogLevelFromEnv(),extensions:e?.extensions??this._getExtensionsDefaultLogLevelsFromEnv()};(0,aD.equals)(this._defaultLogLevels,t)||(this._defaultLogLevels=t,this._onDidChangeDefaultLogLevels.fire(this._defaultLogLevels))}getDefaultLogLevel(e){return e?(e=e.toLowerCase(),this._getDefaultLogLevel(this._defaultLogLevels,e)):this._getDefaultLogLevel(this._defaultLogLevels)}async setDefaultLogLevel(e,t){let i=await this._parseLogLevelsFromArgv()??{};if(t){t=t.toLowerCase();let r=this._getDefaultLogLevel(i,t);i.extensions=i.extensions??[];let n=i.extensions.find(([e])=>e===t);for(let{resource:o}of(n?n[1]=e:i.extensions.push([t,e]),await this._writeLogLevelsToArgv(i),[...this.loggerService.getRegisteredLoggers()].filter(e=>e.extensionId&&e.extensionId.toLowerCase()===t)))this.loggerService.getLogLevel(o)===r&&this.loggerService.setLogLevel(o,e)}else{let t=this._getDefaultLogLevel(i);i.default=e,await this._writeLogLevelsToArgv(i),this.loggerService.getLogLevel()===t&&this.loggerService.setLogLevel(e)}this.updateDefaultLogLevels(i)}_getDefaultLogLevel(e,t){if(t){let i=e.extensions?.find(([e])=>e===t);if(i)return i[1]}return e.default??(0,an.getLogLevel)(this.environmentService)}async _writeLogLevelsToArgv(e){let t=[];for(let[i,r]of((0,sK.isUndefined)(e.default)||t.push((0,an.LogLevelToString)(e.default)),e.extensions??[]))t.push(`${i}=${(0,an.LogLevelToString)(r)}`);await this.jsonEditingService.write(this.environmentService.argvResource,[{path:["log-level"],value:t.length?t:void 0}],!0)}async _parseLogLevelsFromArgv(){let e={extensions:[]};for(let t of(await this._readLogLevelsFromArgv())){let i=cK.EXTENSION_IDENTIFIER_WITH_LOG_REGEX.exec(t);if(i&&i[1]&&i[2]){let t=(0,an.parseLogLevel)(i[2]);(0,sK.isUndefined)(t)||e.extensions?.push([i[1].toLowerCase(),t])}else{let i=(0,an.parseLogLevel)(t);(0,sK.isUndefined)(i)||(e.default=i)}}return!(0,sK.isUndefined)(e.default)||e.extensions?.length?e:void 0}async _readLogLevelsFromArgv(){try{let e=await this.fileService.readFile(this.environmentService.argvResource),t=(0,lS.parse)(e.value.toString());return(0,sK.isString)(t["log-level"])?[t["log-level"]]:Array.isArray(t["log-level"])?t["log-level"]:[]}catch(e){(0,lD.toFileOperationResult)(e)!==lD.FileOperationResult.FILE_NOT_FOUND&&this.logService.error(e)}return[]}_getDefaultLogLevelFromEnv(){return(0,an.getLogLevel)(this.environmentService)}_getExtensionsDefaultLogLevelsFromEnv(){let e=[];for(let[t,i]of this.environmentService.extensionLogLevel??[]){let r=(0,an.parseLogLevel)(i);(0,sK.isUndefined)(r)||e.push([t,r])}return e}};cB=(0,oM.__decorate)([(0,oM.__param)(0,lX.IWorkbenchEnvironmentService),(0,oM.__param)(1,af.IFileService),(0,oM.__param)(2,l4.IJSONEditingService),(0,oM.__param)(3,a_.ILogService),(0,oM.__param)(4,a_.ILoggerService)],cB);var cG=e.i(669827),cQ=e.i(884425);let cJ=(0,si.localize)(0,"Window");var cY=e.i(262072),cX=o2,cZ=e.i(701898),c0=e.i(558493),c1=e.i(812491),c2=e.i(536367);let c6=class extends cZ.Action{static{this.ID="workbench.action.setLogLevel"}static{this.TITLE=(0,si.localize2)(8589,"Set Log Level...")}constructor(e,t,i,r,n,o){super(e,t),this.quickInputService=i,this.loggerService=r,this.outputService=n,this.defaultLogLevelsService=o}async run(){let e=await this.selectLogLevelOrChannel();null!==e&&((0,an.isLogLevel)(e)?this.loggerService.setLogLevel(e):await this.setLogLevelForChannel(e))}async selectLogLevelOrChannel(){let e=this.defaultLogLevelsService.defaultLogLevels,t=[],i=[],r=this.loggerService.getLogLevel();for(let e of this.outputService.getChannelDescriptors()){if(!this.outputService.canSetLogLevel(e))continue;let n=(0,c0.isSingleSourceOutputChannelDescriptor)(e)?[e.source]:(0,c0.isMultiSourceOutputChannelDescriptor)(e)?e.source:[];if(!n.length)continue;let o=n.reduce((e,t)=>Math.min(e,this.loggerService.getLogLevel(t.resource)??r),r),s={id:e.id,label:e.label,description:o!==r?this.getLabel(o):void 0,channel:e};e.extensionId?t.push(s):i.push(s)}let n=[];return n.push({type:"separator",label:(0,si.localize)(8590,"All")}),n.push(...this.getLogLevelEntries(e.default,this.loggerService.getLogLevel(),!0)),t.length&&(n.push({type:"separator",label:(0,si.localize)(8591,"Extension Logs")}),n.push(...t.sort((e,t)=>e.label.localeCompare(t.label)))),n.push({type:"separator",label:(0,si.localize)(8592,"Logs")}),n.push(...i.sort((e,t)=>e.label.localeCompare(t.label))),new Promise((e,t)=>{let i,r=new od.DisposableStore,o=r.add(this.quickInputService.createQuickPick({useSeparators:!0}));o.placeholder=(0,si.localize)(8593,"Set Log Level"),o.items=n,r.add(o.onDidTriggerItemButton(e=>{o.hide(),this.defaultLogLevelsService.setDefaultLogLevel(e.item.level)})),r.add(o.onDidAccept(e=>{i=o.selectedItems[0],o.hide()})),r.add(o.onDidHide(()=>{let t=i?i.level??i:null;r.dispose(),e(t)})),o.show()})}async setLogLevelForChannel(e){let t=this.defaultLogLevelsService.defaultLogLevels,i=t.extensions.find(t=>t[0]===e.channel.extensionId?.toLowerCase())?.[1]??t.default,r=this.getLogLevelEntries(i,this.outputService.getLogLevel(e.channel)??i,!!e.channel.extensionId);return new Promise((t,i)=>{let n,o=new od.DisposableStore,s=o.add(this.quickInputService.createQuickPick());s.placeholder=e?(0,si.localize)(8594," {0}: Select log level",e?.label):(0,si.localize)(8595,"Select log level"),s.items=r,s.activeItems=r.filter(e=>e.level===this.loggerService.getLogLevel()),o.add(s.onDidTriggerItemButton(t=>{s.hide(),this.defaultLogLevelsService.setDefaultLogLevel(t.item.level,e.channel.extensionId)})),o.add(s.onDidAccept(e=>{n=s.selectedItems[0],s.hide()})),o.add(s.onDidHide(()=>{n&&this.outputService.setLogLevel(e.channel,n.level),o.dispose(),t()})),s.show()})}getLogLevelEntries(e,t,i){let r=i?{iconClass:c2.ThemeIcon.asClassName(sa.Codicon.checkAll),tooltip:(0,si.localize)(8596,"Set as Default Log Level")}:void 0;return[{label:this.getLabel(an.LogLevel.Trace,t),level:an.LogLevel.Trace,description:this.getDescription(an.LogLevel.Trace,e),buttons:r&&e!==an.LogLevel.Trace?[r]:void 0},{label:this.getLabel(an.LogLevel.Debug,t),level:an.LogLevel.Debug,description:this.getDescription(an.LogLevel.Debug,e),buttons:r&&e!==an.LogLevel.Debug?[r]:void 0},{label:this.getLabel(an.LogLevel.Info,t),level:an.LogLevel.Info,description:this.getDescription(an.LogLevel.Info,e),buttons:r&&e!==an.LogLevel.Info?[r]:void 0},{label:this.getLabel(an.LogLevel.Warning,t),level:an.LogLevel.Warning,description:this.getDescription(an.LogLevel.Warning,e),buttons:r&&e!==an.LogLevel.Warning?[r]:void 0},{label:this.getLabel(an.LogLevel.Error,t),level:an.LogLevel.Error,description:this.getDescription(an.LogLevel.Error,e),buttons:r&&e!==an.LogLevel.Error?[r]:void 0},{label:this.getLabel(an.LogLevel.Off,t),level:an.LogLevel.Off,description:this.getDescription(an.LogLevel.Off,e),buttons:r&&e!==an.LogLevel.Off?[r]:void 0}]}getLabel(e,t){let i=(0,an.LogLevelToLocalizedString)(e).value;return e===t?`$(check) ${i}`:i}getDescription(e,t){return t===e?(0,si.localize)(8597,"Default"):void 0}};c6=(0,oM.__decorate)([(0,oM.__param)(2,lt.IQuickInputService),(0,oM.__param)(3,a_.ILoggerService),(0,oM.__param)(4,c1.IOutputService),(0,oM.__param)(5,cG.IDefaultLogLevelsService)],c6),class extends cZ.Action{static{this.ID="workbench.action.openSessionLogFile"}static{this.TITLE=(0,si.localize2)(8598,"Open Window Log File (Session)...")}constructor(e,t,i,r,n,o){super(e,t),this.environmentService=i,this.fileService=r,this.quickInputService=n,this.editorService=o}async run(){let e=await this.quickInputService.pick(this.getSessions().then(e=>e.map((e,t)=>({id:e.toString(),label:(0,a9.basename)(e),description:0===t?(0,si.localize)(8599,"Current"):void 0}))),{canPickMany:!1,placeHolder:(0,si.localize)(8600,"Select Session")});if(e){let t=await this.quickInputService.pick(this.getLogFiles(oh.URI.parse(e.id)).then(e=>e.map(e=>({id:e.toString(),label:(0,a9.basename)(e)}))),{canPickMany:!1,placeHolder:(0,si.localize)(8601,"Select Log file")});if(t)return this.editorService.openEditor({resource:oh.URI.parse(t.id),options:{pinned:!0}}).then(()=>void 0)}}async getSessions(){let e=this.environmentService.logsHome.with({scheme:this.environmentService.logFile.scheme}),t=[e],i=await this.fileService.resolve((0,a9.dirname)(e));return i.children&&t.push(...i.children.filter(t=>!(0,a9.isEqual)(t.resource,e)&&t.isDirectory&&/^\d{8}T\d{6}$/.test(t.name)).sort().reverse().map(e=>e.resource)),t}async getLogFiles(e){let t=await this.fileService.resolve(e);return t.children?t.children.filter(e=>!e.isDirectory).map(e=>e.resource):[]}};var c3=od;(0,cX.registerAction2)(class extends cX.Action2{constructor(){super({id:c6.ID,title:c6.TITLE,category:cY.Categories.Developer,f1:!0})}run(e){let t=e.get(st.IInstantiationService).createInstance(c6,c6.ID,c6.TITLE.value);return t.run().finally(()=>t.dispose())}}),(0,cX.registerAction2)(class extends cX.Action2{constructor(){super({id:"workbench.action.setDefaultLogLevel",title:(0,si.localize2)(8586,"Set Default Log Level"),category:cY.Categories.Developer})}run(e,t,i){return e.get(cG.IDefaultLogLevelsService).setDefaultLogLevel(t,i)}});let c4=class extends c3.Disposable{constructor(e,t,i){super(),this.loggerService=e,this.contextKeyService=t,this.uriIdentityService=i,this.contextKeys=new ld.CounterSet,this.outputChannelRegistry=aC.Registry.as(c0.Extensions.OutputChannels);const r=an.CONTEXT_LOG_LEVEL.bindTo(t);r.set((0,an.LogLevelToString)(e.getLogLevel())),this._register(e.onDidChangeLogLevel(t=>{(0,an.isLogLevel)(t)&&r.set((0,an.LogLevelToString)(e.getLogLevel()))})),this.onDidAddLoggers(e.getRegisteredLoggers()),this._register(e.onDidChangeLoggers(({added:e,removed:t})=>{this.onDidAddLoggers(e),this.onDidRemoveLoggers(t)})),this._register(e.onDidChangeVisibility(([t,i])=>{let r=e.getRegisteredLogger(t);r&&(i?this.registerLogChannel(r):this.deregisterLogChannel(r))})),this.registerShowWindowLogAction(),this._register(o7.Event.filter(t.onDidChangeContext,e=>e.affectsSome(this.contextKeys))(()=>this.onDidChangeContext()))}onDidAddLoggers(e){for(let t of e){if(t.when){let e=o3.ContextKeyExpr.deserialize(t.when);if(e){for(let t of e.keys())this.contextKeys.add(t);if(!this.contextKeyService.contextMatchesRules(e))continue}}t.hidden||this.registerLogChannel(t)}}onDidChangeContext(){for(let e of this.loggerService.getRegisteredLoggers())e.when&&(this.contextKeyService.contextMatchesRules(o3.ContextKeyExpr.deserialize(e.when))?this.registerLogChannel(e):this.deregisterLogChannel(e))}onDidRemoveLoggers(e){for(let t of e){if(t.when){let e=o3.ContextKeyExpr.deserialize(t.when);if(e)for(let t of e.keys())this.contextKeys.delete(t)}this.deregisterLogChannel(t)}}registerLogChannel(e){if(e.group)return void this.registerCompoundLogChannel(e.group.id,e.group.name,e);let t=this.outputChannelRegistry.getChannel(e.id);if(t&&(0,c0.isSingleSourceOutputChannelDescriptor)(t)&&this.uriIdentityService.extUri.isEqual(t.source.resource,e.resource))return;let i=this.outputChannelRegistry.getChannel(e.id),r=i&&(0,c0.isSingleSourceOutputChannelDescriptor)(i)&&i.source.resource.scheme===al.Schemas.vscodeRemote?this.loggerService.getRegisteredLogger(i.source.resource):void 0;r&&this.deregisterLogChannel(r);let n=i&&e.resource.scheme===al.Schemas.vscodeRemote,o=n?`${e.id}.remote`:e.id,s=n?(0,si.localize)(8587,"{0} (Remote)",e.name??e.id):e.name??e.id;this.outputChannelRegistry.registerChannel({id:o,label:s,source:{resource:e.resource},log:!0,extensionId:e.extensionId})}registerCompoundLogChannel(e,t,i){let r=this.outputChannelRegistry.getChannel(e),n={resource:i.resource,name:i.name??i.id};r?(0,c0.isMultiSourceOutputChannelDescriptor)(r)&&!r.source.some(({resource:e})=>this.uriIdentityService.extUri.isEqual(e,i.resource))&&this.outputChannelRegistry.updateChannelSources(e,[...r.source,n]):this.outputChannelRegistry.registerChannel({id:e,label:t,log:!0,source:[n]})}deregisterLogChannel(e){if(e.group){let t=this.outputChannelRegistry.getChannel(e.group.id);t&&(0,c0.isMultiSourceOutputChannelDescriptor)(t)&&this.outputChannelRegistry.updateChannelSources(e.group.id,t.source.filter(({resource:t})=>!this.uriIdentityService.extUri.isEqual(t,e.resource)))}else this.outputChannelRegistry.removeChannel(e.id)}registerShowWindowLogAction(){this._register((0,cX.registerAction2)(class extends cX.Action2{constructor(){super({id:cz.showWindowLogActionId,title:(0,si.localize2)(8588,"Show Window Log"),category:cY.Categories.Developer,f1:!0})}async run(e){e.get(c1.IOutputService).showChannel(cz.windowLogId)}}))}};c4=(0,oM.__decorate)([(0,oM.__param)(0,a_.ILoggerService),(0,oM.__param)(1,su.IContextKeyService),(0,oM.__param)(2,aS.IUriIdentityService)],c4),aC.Registry.as(a6.Extensions.Workbench).registerWorkbenchContribution(c4,a3.LifecyclePhase.Restored);let c5=class extends cW{constructor(e,t,i){super(e??(0,an.getLogLevel)(i),cI.logsPath,t)}};c5=(0,oM.__decorate)([(0,oM.__param)(1,af.IFileService),(0,oM.__param)(2,cj.IEnvironmentService)],c5);let c8=[],c7=class extends cq.LogService{constructor(e,t){super(e.createLogger(t.logFile,{id:cz.windowLogId,name:cJ}),c8)}};c7=(0,oM.__decorate)([(0,oM.__param)(0,a_.ILoggerService),(0,oM.__param)(1,lX.IWorkbenchEnvironmentService)],c7);var c9=od,de=e.i(132485),dt=e.i(445152),di=e.i(935868),dr=e.i(935144),dn=od,ds=e.i(565280);let da=class extends dn.Disposable{constructor(e,t,i){super(),this._modelService=e,this._textModelService=t,this._undoRedoService=i,this._register(this._modelService.onModelRemoved(e=>{let t=this._undoRedoService.getElements(e.uri);if(0!==t.past.length||0!==t.future.length){for(let e of t.past)e instanceof ds.MultiModelEditStackElement&&e.setDelegate(this);for(let e of t.future)e instanceof ds.MultiModelEditStackElement&&e.setDelegate(this)}}))}prepareUndoRedo(e){let t=e.getMissingModels();return 0===t.length?dn.Disposable.None:Promise.all(t.map(async e=>{try{return await this._textModelService.createModelReference(e)}catch(e){return dn.Disposable.None}})).then(e=>({dispose:()=>(0,dn.dispose)(e)}))}};da=(0,oM.__decorate)([(0,oM.__param)(0,oE.IModelService),(0,oM.__param)(1,lE.ITextModelService),(0,oM.__param)(2,dr.IUndoRedoService)],da);var dl=e.i(141103);let dc=class extends c9.ReferenceCollection{constructor(e,t,i,r){super(),this.instantiationService=e,this.textFileService=t,this.fileService=i,this.modelService=r,this.providers=new Map,this.modelsToDispose=new Set}createReferencedObject(e){return this.doCreateReferencedObject(e)}async doCreateReferencedObject(e,t){this.modelsToDispose.delete(e);let i=oh.URI.parse(e);if(i.scheme===al.Schemas.inMemory){if(!this.modelService.getModel(i))throw Error(`Unable to resolve inMemory resource ${e}`);let t=this.instantiationService.createInstance(de.TextResourceEditorModel,i);if(this.ensureResolvedModel(t,e))return t}if(i.scheme===al.Schemas.untitled){let t=await this.textFileService.untitled.resolve({untitledResource:i});if(this.ensureResolvedModel(t,e))return t}if(this.fileService.hasProvider(i)){let t=await this.textFileService.files.resolve(i,{reason:dt.TextFileResolveReason.REFERENCE});if(this.ensureResolvedModel(t,e))return t}if(this.providers.has(i.scheme)){await this.resolveTextModelContent(e);let t=this.instantiationService.createInstance(de.TextResourceEditorModel,i);if(this.ensureResolvedModel(t,e))return t}if(!t)return await this.fileService.activateProvider(i.scheme),this.doCreateReferencedObject(e,!0);throw Error(`Unable to resolve resource ${e}`)}ensureResolvedModel(e,t){if(e.textEditorModel)return!0;throw Error(`Unable to resolve resource ${t}`)}destroyReferencedObject(e,t){oh.URI.parse(e).scheme!==al.Schemas.inMemory&&(this.modelsToDispose.add(e),(async()=>{try{let i=await t;if(!this.modelsToDispose.has(e)||(i instanceof di.TextFileEditorModel?await this.textFileService.files.canDispose(i):i instanceof dl.UntitledTextEditorModel&&await this.textFileService.untitled.canDispose(i),!this.modelsToDispose.has(e)))return;i.dispose()}catch(e){}finally{this.modelsToDispose.delete(e)}})())}registerTextModelContentProvider(e,t){let i=this.providers.get(e);return i||(i=[],this.providers.set(e,i)),i.unshift(t),(0,c9.toDisposable)(()=>{let i=this.providers.get(e);if(!i)return;let r=i.indexOf(t);-1!==r&&(i.splice(r,1),0===i.length&&this.providers.delete(e))})}hasTextModelContentProvider(e){return void 0!==this.providers.get(e)}async resolveTextModelContent(e){let t=oh.URI.parse(e);for(let e of this.providers.get(t.scheme)||[]){let i=await e.provideTextContent(t);if(i)return i}throw Error(`Unable to resolve text model content for resource ${e}`)}};dc=(0,oM.__decorate)([(0,oM.__param)(0,st.IInstantiationService),(0,oM.__param)(1,lw.ITextFileService),(0,oM.__param)(2,af.IFileService),(0,oM.__param)(3,oE.IModelService)],dc);let dd=class extends c9.Disposable{get resourceModelCollection(){return this._resourceModelCollection||(this._resourceModelCollection=this.instantiationService.createInstance(dc)),this._resourceModelCollection}get asyncModelCollection(){return this._asyncModelCollection||(this._asyncModelCollection=new c9.AsyncReferenceCollection(this.resourceModelCollection)),this._asyncModelCollection}constructor(e,t,i,r,n){super(),this.instantiationService=e,this.fileService=t,this.undoRedoService=i,this.modelService=r,this.uriIdentityService=n,this._resourceModelCollection=void 0,this._asyncModelCollection=void 0,this._register(new da(this.modelService,this,this.undoRedoService))}async createModelReference(e){return e=this.uriIdentityService.asCanonicalUri(e),await this.asyncModelCollection.acquire(e.toString())}registerTextModelContentProvider(e,t){return this.resourceModelCollection.registerTextModelContentProvider(e,t)}canHandleResource(e){return!!this.fileService.hasProvider(e)||e.scheme===al.Schemas.untitled||e.scheme===al.Schemas.inMemory||this.resourceModelCollection.hasTextModelContentProvider(e.scheme)}};dd=(0,oM.__decorate)([(0,oM.__param)(0,st.IInstantiationService),(0,oM.__param)(1,af.IFileService),(0,oM.__param)(2,dr.IUndoRedoService),(0,oM.__param)(3,oE.IModelService),(0,oM.__param)(4,aS.IUriIdentityService)],dd);let du=e=>{if(e instanceof URL)return e.href;{let t=btoa(Array.from(new TextEncoder().encode(e),e=>String.fromCodePoint(e)).join(""));return new URL(`data:text/plain;base64,${t}`).href}},dh=()=>{"u"<typeof MonacoEnvironment&&(globalThis.MonacoEnvironment={});let e=MonacoEnvironment;return void 0===e.vscodeApiInitialising&&(e.vscodeApiInitialising=!1),void 0===e.vscodeApiInitialised&&(e.vscodeApiInitialised=!1),void 0===e.viewServiceType&&(e.viewServiceType="EditorService"),e},dg=(e,t)=>{if(void 0!==t)for(let[i,r]of Object.entries(t))e[i]=r},dp=async(e,t,i,r)=>{r?.info("Received open editor call with parameters: ",e,t,i)};class dm{url;options;constructor(e,t){this.url=e,this.options=t}}let df=e=>{let t=dh();t.getWorkerUrl=(t,i)=>(e.logger?.info(`getWorkerUrl: workerId: ${t} label: ${i}`),e.workerLoaders?.[i]?.().url.toString()),t.getWorkerOptions=(t,i)=>(e.logger?.info(`getWorkerOptions: moduleId: ${t} label: ${i}`),e.workerLoaders?.[i]?.().options)},dv=t=>{df({workerLoaders:{editorWorkerService:()=>new dm(new e.U(e.r(310336)),{type:"module"}),extensionHostWorkerMain:()=>new dm(new e.U(e.r(969663)),{type:"module"}),TextMateWorker:()=>new dm(new e.U(e.r(859546)),{type:"module"}),OutputLinkDetectionWorker:void 0,LanguageDetectionWorker:void 0,NotebookEditorWorker:void 0,LocalFileSearchWorker:void 0},logger:t})};var d_=e.i(663544);e.i(610504);class dy{logger=new an.ConsoleLogger;extensionRegisterResults=new Map;disposableStore=new od.DisposableStore;apiConfig;constructor(e){this.apiConfig={...e,serviceOverrides:e.serviceOverrides??{},logLevel:e.logLevel??an.LogLevel.Off},this.logger.setLevel(this.apiConfig.logLevel)}getExtensionRegisterResult(e){return this.extensionRegisterResults.get(e)}getMonacoVscodeApiConfig(){return this.apiConfig}configureMonacoWorkers(){"function"==typeof this.apiConfig.monacoWorkerFactory?this.apiConfig.monacoWorkerFactory(this.logger):df({logger:this.logger})}performErrorHandling=e=>{throw dh().vscodeApiInitialising=!1,Error(e)};async configureHighlightingServices(){if("extended"===this.apiConfig.$type){let t=(await e.A(940730)).default,i=(await e.A(509433)).default,r=(await e.A(545594)).default;dg(this.apiConfig.serviceOverrides,{...r(),...t(),...i()})}else{let t=(await e.A(963197)).default;dg(this.apiConfig.serviceOverrides,{...t()})}}async configureViewsServices(){let t=this.apiConfig.viewsConfig.$type;("ViewsService"===t||"WorkbenchService"===t)&&("classic"===this.apiConfig.$type&&this.performErrorHandling(`View Service Type "${t}" cannot be used with classic configuration.`),void 0===this.apiConfig.viewsConfig.htmlContainer&&this.performErrorHandling(`View Service Type "${t}" requires a HTMLElement.`));let i=dh();if("ViewsService"===t){let t=(await e.A(974099)).default;dg(this.apiConfig.serviceOverrides,{...t(this.apiConfig.viewsConfig.openEditorFunc??dp)}),i.viewServiceType="ViewsService"}else if("WorkbenchService"===t){let t=(await e.A(924017)).default;dg(this.apiConfig.serviceOverrides,{...t()}),i.viewServiceType="WorkbenchService"}else{let t=(await e.A(872082)).default;dg(this.apiConfig.serviceOverrides,{...t(this.apiConfig.viewsConfig.openEditorFunc??dp)}),i.viewServiceType="EditorService"}}async applyViewsPostConfig(){let e=this.apiConfig.viewsConfig.$type;("ViewsService"===e||"WorkbenchService"===e)&&(this.apiConfig.viewsConfig.htmlAugmentationInstructions?.(this.apiConfig.viewsConfig.htmlContainer),await this.apiConfig.viewsConfig.viewsInitFunc?.())}configureWorkspaceConfig(){void 0===this.apiConfig.workspaceConfig&&(this.apiConfig.workspaceConfig={workspaceProvider:{trusted:!0,workspace:{workspaceUri:d_.Uri.file("/workspace.code-workspace")},open:async()=>(window.open(window.location.href),!0)}})}configureDevLogLevel(){let e=this.apiConfig.workspaceConfig?.developmentOptions?.logLevel;if(void 0===e){let e={...this.apiConfig.workspaceConfig.developmentOptions};e.logLevel=this.apiConfig.logLevel,this.apiConfig.workspaceConfig.developmentOptions=Object.assign({},e)}else e!==this.apiConfig.logLevel?this.performErrorHandling(`You have configured mismatching logLevels: ${this.apiConfig.logLevel} (wrapperConfig) ${e} (workspaceConfig.developmentOptions)`):this.logger.debug("Development log level and api log level are in aligned.")}configureSemanticHighlighting(){if(this.apiConfig.advanced?.enforceSemanticHighlighting===!0){let e={...this.apiConfig.workspaceConfig.configurationDefaults??{}};e["editor.semanticHighlighting.enabled"]=!0,this.apiConfig.workspaceConfig.configurationDefaults=Object.assign({},e)}}async initUserConfiguration(){this.apiConfig.userConfiguration?.json!==void 0&&await cM(this.apiConfig.userConfiguration.json)}async supplyRequiredServices(){return{...(i=void 0,{...(0,cT.default)(),[oW.IConfigurationService.toString()]:new av.SyncDescriptor(cO,[],!0),[aw.IWorkspaceContextService.toString()]:new av.SyncDescriptor(cO,[],!0),[ad.ITextResourceConfigurationService.toString()]:new av.SyncDescriptor(ap,[],!0),[cf.IWorkspaceEditingService.toString()]:new av.SyncDescriptor(cF,[],!0),[ax.IWorkspacesService.toString()]:new av.SyncDescriptor(cm,[],!0),[ad.ITextResourcePropertiesService.toString()]:new av.SyncDescriptor(cs,[],!0),[ck.IConfigurationResolverService.toString()]:new av.SyncDescriptor(cE,[],!0)}),...{...(0,cQ.default)(),[a_.ILoggerService.toString()]:new av.SyncDescriptor(c5,[void 0],!0),[a_.ILogService.toString()]:new av.SyncDescriptor(c7,[],!0),[cG.IDefaultLogLevelsService.toString()]:new av.SyncDescriptor(cB,[],!0)},...{[lE.ITextModelService.toString()]:new av.SyncDescriptor(dd,[],!0)}}}checkServiceConsistency(){let e=this.apiConfig.serviceOverrides,t=Object.keys(e).includes("themeService"),i=Object.keys(e).includes("textMateTokenizationFeature"),r=Object.keys(e).includes("markersService"),n=Object.keys(e).includes("viewsService");t&&!i&&this.performErrorHandling('"theme" service requires "textmate" service. Please add it to the "userServices".'),r&&!n&&this.performErrorHandling('"markers" service requires "views" service. Please add it to the "userServices".')}async initAllServices(t){let i=await this.supplyRequiredServices();if(dg(i,this.apiConfig.serviceOverrides),this.apiConfig.advanced?.loadExtensionServices===void 0||!0===this.apiConfig.advanced.loadExtensionServices){let{default:t}=await e.A(473446);dg(i,{...t({enableWorkerExtensionHost:this.apiConfig.advanced?.enableExtHostWorker===!0})})}var r=this.logger;for(let e of Object.keys(i))r?.debug(`Loading service: ${e}`);(t??!0)&&this.checkServiceConsistency(),"ViewsService"===this.apiConfig.viewsConfig.$type||"WorkbenchService"===this.apiConfig.viewsConfig.$type?await (0,oo.initialize)(i,this.apiConfig.viewsConfig.htmlContainer,this.apiConfig.workspaceConfig,this.apiConfig.envOptions):await (0,oo.initialize)(i,void 0,this.apiConfig.workspaceConfig,this.apiConfig.envOptions),(0,sE.setUnexpectedErrorHandler)(e=>{this.logger.getLevel()!==an.LogLevel.Off&&this.logger.error("Unexpected error",e)})}async initExtensions(){"extended"===this.apiConfig.$type&&(this.apiConfig.advanced?.loadThemes===void 0||!0===this.apiConfig.advanced.loadThemes)&&await e.A(876468);let t=this.apiConfig.extensions;if(this.apiConfig.extensions){let e=[],i=[];for(let r of((0,ao.getBuiltinExtensions)().forEach(e=>{i.push(e.identifier.id)}),t??[]))i.includes(`${r.config.publisher}.${r.config.name}`)||e.push(this.initExtension(r,i));await Promise.all(e)}}initExtension(e,t){if(t.includes(`${e.config.publisher}.${e.config.name}`))return Promise.resolve();{let t=e.config,i=(0,ao.registerExtension)(t,as.ExtensionHostKind.LocalProcess);if(this.extensionRegisterResults.set(t.name,i),e.filesOrContents&&Object.hasOwn(i,"registerFileUrl"))for(let t of e.filesOrContents)this.disposableStore.add(i.registerFileUrl(t[0],du(t[1])));return i.whenReady()}}markGlobalInit(){this.logger.debug("markGlobalInit");let e=dh();e.vscodeApiGlobalInitAwait=new Promise(t=>{e.vscodeApiGlobalInitResolve=t})}markGlobalInitDone(){let e=dh();e.vscodeApiGlobalInitResolve?.(),e.vscodeApiInitialised=!0,e.vscodeApiGlobalInitAwait=void 0,e.vscodeApiGlobalInitResolve=void 0,this.logger.debug("markGlobalInitDone")}async start(e){let t=dh();!0===t.vscodeApiInitialised?this.logger.warn("Initialization of monaco-vscode api can only performed once!"):!0!==t.vscodeApiInitialising?(t.vscodeApiInitialising=!0,this.markGlobalInit(),this.configureWorkspaceConfig(),this.configureDevLogLevel(),this.logger.info(`Initializing monaco-vscode api. Caller: ${e?.caller??"unknown"}`),await this.configureMonacoWorkers(),await this.configureHighlightingServices(),await this.configureViewsServices(),this.configureSemanticHighlighting(),await this.initUserConfiguration(),await this.initAllServices(e?.performServiceConsistencyChecks),await this.applyViewsPostConfig(),await this.initExtensions(),this.markGlobalInitDone(),this.logger.debug("Initialization of monaco-vscode api completed successfully.")):this.logger.debug("Initialization of monaco-vscode api is already ongoing.")}dispose(){this.extensionRegisterResults.forEach(e=>e.dispose()),this.disposableStore.dispose(),this.disposableStore=new od.DisposableStore}}var dC=e.i(269213),dS=dC;class db extends dS.AbstractMessageReader{socket;state="initial";callback;events=[];constructor(e){super(),this.socket=e,this.socket.onMessage(e=>this.readMessage(e)),this.socket.onError(e=>this.fireError(e)),this.socket.onClose((e,t)=>{if(1e3!==e){let i={name:""+e,message:`Error during socket reconnect: code = ${e}, reason = ${t}`};this.fireError(i)}this.fireClose()})}listen(e){if("initial"===this.state)for(this.state="listening",this.callback=e;0!==this.events.length;){let e=this.events.pop();void 0!==e.message?this.readMessage(e.message):void 0!==e.error?this.fireError(e.error):this.fireClose()}return{dispose:()=>{this.callback===e&&(this.state="initial",this.callback=void 0)}}}dispose(){super.dispose(),this.state="initial",this.callback=void 0,this.events.splice(0,this.events.length)}readMessage(e){if("initial"===this.state)this.events.splice(0,0,{message:e});else if("listening"===this.state)try{let t=JSON.parse(e);this.callback(t)}catch(t){let e={name:"400",message:`Error during message parsing, reason = ${"object"==typeof t?t.message:"unknown"}`};this.fireError(e)}}fireError(e){"initial"===this.state?this.events.splice(0,0,{error:e}):"listening"===this.state&&super.fireError(e)}fireClose(){"initial"===this.state?this.events.splice(0,0,{}):"listening"===this.state&&super.fireClose(),this.state="closed"}}var dw=dC;class dx extends dw.AbstractMessageWriter{errorCount=0;socket;constructor(e){super(),this.socket=e}end(){}async write(e){try{let t=JSON.stringify(e);this.socket.send(t)}catch(t){this.errorCount++,this.fireError(t,e,this.errorCount)}}}var dD=e.i(437122),dE=e.i(523592);let dk=new Map,dT=null;function dR(e,t){let i,r;if(dk.has(e))return;let n=new WebSocket(((i=new URL("/ws/lsp/typescript",(0,dE.getActiveServerUrl)()??window.location.origin)).protocol="https:"===i.protocol?"wss:":"ws:",i.searchParams.set("workspaceId",e),(r=(0,dD.getToken)())&&i.searchParams.set("token",r),i.toString()));n.onopen=async()=>{console.info("[monaco-language-client] TypeScript websocket opened",{workspaceId:e,workspaceRoot:t}),await (dT||(dT=new dy({$type:"classic",viewsConfig:{$type:"EditorService"},userConfiguration:{json:JSON.stringify({"editor.wordBasedSuggestions":"off","typescript.tsserver.useSyntaxServer":"auto"})},monacoWorkerFactory:dv}).start({caller:"agent-spaces-monaco-language-client"})));let i={send:e=>n.send(e),onMessage:e=>{n.onmessage=t=>e(t.data)},onError:e=>{n.onerror=t=>{Object.hasOwn(t,"message")&&e(t.message)}},onClose:e=>{n.onclose=t=>e(t.code,t.reason)},dispose:()=>n.close()},r={reader:new db(i),writer:new dx(i)},o=new on({id:`typescript-${e}`,name:"TypeScript Language Server",clientOptions:{documentSelector:[{language:"typescript",scheme:"file"},{language:"javascript",scheme:"file"}],workspaceFolder:{index:0,name:e,uri:t?d_.Uri.file(t):d_.Uri.parse(`file:///workspace/${e}`)},errorHandler:{error:()=>({action:or.ErrorAction.Continue}),closed:()=>({action:or.CloseAction.DoNotRestart})}},messageTransports:r});dk.set(e,o),o.start().catch(t=>{console.warn("[monaco-language-client] failed to start TypeScript client:",t),dk.delete(e),n.close()})},n.onerror=()=>{console.warn("[monaco-language-client] TypeScript language server websocket failed")},n.onclose=()=>{let t=dk.get(e);dk.delete(e),t?.stop()}}function dP(e,t,i,r){if(!e)return null;let n=(i||r||"").replace(/\/+$/,"");if(n&&e.path.startsWith(`${n}/`))return decodeURIComponent(e.path.slice(n.length+1));var o=e.path;if(!o)return null;let s=`/workspace/${t}/`;if(o.startsWith(s))return decodeURIComponent(o.slice(s.length));let a=`/${t}/`;return o.startsWith(a)?decodeURIComponent(o.slice(a.length)):null}let dI=["",".tsx",".ts",".jsx",".js",".mjs",".cjs",".json"],dA=["index.tsx","index.ts","index.jsx","index.js","index.mjs","index.cjs","index.json"];async function dM(e,t){try{let i=await fetch(`/api/workspaces/${e}/files/exists?path=${encodeURIComponent(t)}`);return!!(await i.json()).exists}catch{return!1}}async function dL(e,t){for(let i of dI){let r=`${t}${i}`;if(await dM(e,r))return r}for(let i of dA){let r=`${t}/${i}`;if(await dM(e,r))return r}return null}async function dF(e,t,i){if(!i.startsWith(".")&&!i.startsWith("@/"))return null;let r=t.split("/").slice(0,-1).join("/"),n=t.split("/").lastIndexOf("src"),o=n>=0?t.split("/").slice(0,n+1).join("/"):"src",s=function(e){let t=[];for(let i of e.split("/"))if(i&&"."!==i)if(".."===i){if(0===t.length)return null;t.pop()}else t.push(i);return t.join("/")}(i.startsWith("@/")?`${o}/${i.slice(2)}`:`${r}/${i}`);return s?dL(e,s):null}async function dO(e,t){try{let i=await fetch(`/api/workspaces/${e}/files/content?path=${encodeURIComponent(t)}`);if(!i.ok)return null;let r=await i.json();return"string"==typeof r.content?r.content:null}catch{return null}}function dN(e){let t=e.split(".").pop()?.toLowerCase(),i=e.split("/").pop()?.toLowerCase()||"";return"dockerfile"===i||i.startsWith("dockerfile.")?"dockerfile":"makefile"===i||"gnumakefile"===i?"makefile":"cmakelists.txt"===i||i.endsWith(".cmake")?"cmake":".gitignore"===i||".dockerignore"===i||".eslintignore"===i?"plaintext":({ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",jsonc:"json",css:"css",scss:"scss",less:"less",html:"html",htm:"html",vue:"html",svg:"xml",xml:"xml",yaml:"yaml",yml:"yaml",toml:"ini",ini:"ini",env:"ini",py:"python",pyw:"python",rb:"ruby",pl:"perl",pm:"perl",php:"php",lua:"lua",sh:"shell",bash:"shell",zsh:"shell",fish:"shell",ps1:"powershell",psm1:"powershell",bat:"bat",cmd:"bat",rs:"rust",go:"go",c:"c",h:"c",cpp:"cpp",cc:"cpp",cxx:"cpp",hpp:"cpp",hh:"cpp",hxx:"cpp",cs:"csharp",java:"java",kt:"kotlin",kts:"kotlin",swift:"swift",dart:"dart",scala:"scala",hs:"haskell",lhs:"haskell",ex:"elixir",exs:"elixir",erl:"erlang",clj:"clojure",cljs:"clojure",groovy:"groovy",gradle:"groovy",md:"markdown",mdx:"markdown",tex:"latex",sql:"sql",graphql:"graphql",gql:"graphql",dockerfile:"dockerfile",r:"r",d:"d",zig:"zig"})[t||""]||"plaintext"}function d$(e){let t=e?.getDomNode(),i=document.activeElement;t&&i instanceof HTMLElement&&t.contains(i)&&i.blur()}function dH(e){let t=e?.getModel(),i=e?.getSelection();if(!t||!i||i.isEmpty()||i.startLineNumber!==i.endLineNumber)return!1;let r=t.getValueInRange(i);if(!r||/\s/.test(r))return!1;let n=t.getWordAtPosition({lineNumber:i.startLineNumber,column:i.startColumn});return!!n&&n.word===r&&i.startColumn===n.startColumn&&i.endColumn===n.endColumn}function dU(e){let t=e?.getModel(),i=e?.getSelection(),r=e?.getDomNode();if(!e||!t||!i||!r||!dH(e))return null;let n=e.getScrolledVisiblePosition({lineNumber:i.endLineNumber,column:i.endColumn}),o=r.getBoundingClientRect(),s=t.getValueInRange(i);return{x:n?o.left+n.left:o.left+o.width/2,y:n?o.top+n.top+n.height:o.top+o.height/2,selectedText:s,canNavigate:!0}}function dW(e){let t=e?.getPosition();e&&t&&e.setSelections([{selectionStartLineNumber:t.lineNumber,selectionStartColumn:t.column,positionLineNumber:t.lineNumber,positionColumn:t.column}],"agentSpaces.mobileContextMenu")}function dq({activeContent:e,wordWrap:t,mobileSelectionMode:i,mobileReadonlyMenu:r,mobileSelectionPreMetrics:n,mobileSelectionPreRef:o,mobileReadonlyMenuRef:s,onContextMenu:a,onEnterSelectionMode:l,onCloseSelectionMode:c,onCopySelection:d,onRunEditorAction:u,onRunBuiltinAction:h}){return(0,es.jsxs)(es.Fragment,{children:[i?(0,es.jsx)("pre",{ref:o,className:"absolute inset-0 z-20 m-0 overflow-auto bg-background py-2 text-foreground select-text",style:{paddingLeft:n?.contentLeft??0,paddingRight:n?.contentRight??0,fontFamily:n?.fontFamily,fontWeight:n?.fontWeight,fontSize:n?.fontSize,lineHeight:n?`${n.lineHeight}px`:void 0,letterSpacing:n?.letterSpacing,fontFeatureSettings:n?.fontFeatureSettings,fontVariationSettings:n?.fontVariationSettings,whiteSpace:t?"pre-wrap":"pre",overflowWrap:t?"anywhere":"normal"},onContextMenu:a,children:e}):null,r?(0,es.jsxs)("div",{ref:s,className:"fixed z-[80] min-w-40 select-none rounded-md border bg-popover p-1 text-popover-foreground shadow-md",style:{left:Math.min(Math.max(8,r.x),window.innerWidth-168),top:Math.min(Math.max(8,r.y),window.innerHeight-180)},onPointerDown:e=>e.stopPropagation(),children:[i?null:(0,es.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent",onClick:l,children:"选择模式"}),(0,es.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent",onClick:d,children:"复制代码"}),r.canNavigate?(0,es.jsxs)(es.Fragment,{children:[(0,es.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent",onClick:()=>u("editor.action.revealDefinition"),children:"Go to Definition"}),(0,es.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent",onClick:()=>u("editor.action.goToReferences"),children:"Go to References"})]}):null,eg.map(e=>(0,es.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent",onClick:()=>h(e.id),children:e.label},e.id)),i?(0,es.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent",onClick:c,children:"完成"}):null]}):null]})}var dj=e.i(555060);function dz(){let e=(0,ia.useTranslations)("editor");return(0,es.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:e("loadingEditor")})}let dK=(0,ea.default)(()=>e.A(863812).then(e=>e.default),{loadableGenerated:{modules:[158480]},ssr:!1,loading:()=>(0,es.jsx)(dz,{})}),dV=!1;e.s(["CodeEditor",0,function({workspaceId:e}){dV||(dV=!0,window.addEventListener("unhandledrejection",e=>{(e.reason?.name==="Canceled"||"Canceled"===String(e.reason))&&e.preventDefault()}));let{openFiles:t,modifiedFileContents:i,activeFilePath:r,updateContent:n,saveFile:o,refreshFile:s,jumpToPosition:a,pendingJump:l,clearPendingJump:c,commitDiffs:d}=(0,em.useEditorStore)(),{resolvedTheme:u}=(0,im.useTheme)(),h=(0,ia.useTranslations)("editor"),g=(0,ep.useIsMobile)(),p=(0,ii.useWorkspaceStore)(t=>t.workspaces.find(t=>t.id===e)?.boundDirs?.[0]),m=(0,el.useRef)(null),f=(0,el.useRef)(null),_=(0,el.useRef)(null),y=(0,el.useRef)([]),C=(0,el.useRef)([]),S=(0,el.useRef)([]),[b,w]=(0,el.useState)(!0),[x,D]=(0,el.useState)(!1),[E,k]=(0,el.useState)(()=>"true"===localStorage.getItem("editor-word-wrap")),[T,R]=(0,el.useState)(()=>"true"===localStorage.getItem("editor-minimap")),[P,I]=(0,el.useState)(0),[A,M]=(0,el.useState)(0),[L,F]=(0,el.useState)(!0),O=t.find(e=>e.path===r),N=O?i[O.path]??O.content:"",$=!!r&&(0,em.isCommitDiffPath)(r),H=$&&r?d[(0,em.getCommitHashFromPath)(r)]:null,U=O?.mediaType??(r?(0,em.getMediaType)(r):null),W="image"===U||"video"===U||"audio"===U||"svg"===U||"markdown"===U,q="svg"===U||"markdown"===U,j=r&&U?`/api/workspaces/${e}/files/content?path=${encodeURIComponent(r)}&raw=true`:null;(0,el.useEffect)(()=>{F(!0)},[r]);let z=function({editorRef:e,monacoRef:t,activeContent:i,workspaceId:r,workspaceRoot:n,isMobile:o,isReadOnly:s,isCommitDiff:a,hasActiveFile:l,editorReadyTick:c,wordWrap:d}){let u=(0,el.useRef)(null),h=(0,el.useRef)(null),g=(0,el.useRef)(null),p=(0,el.useRef)(null),m=(0,el.useRef)(null),f=(0,el.useRef)(!1),_=(0,el.useRef)(!1),y=(0,el.useRef)(!1),[C,S]=(0,el.useState)(!1),[b,w]=(0,el.useState)(null),[x,D]=(0,el.useState)(null),E=o&&s&&!a&&l,k=(0,el.useCallback)(()=>{null!=p.current&&(window.clearTimeout(p.current),p.current=null),null!=m.current&&(window.clearTimeout(m.current),m.current=null),S(!1),w(null),D(null),window.getSelection()?.removeAllRanges()},[]),T=(0,el.useCallback)(()=>{let e=g.current;e&&(window.clearTimeout(e.timer),g.current=null)},[]),R=(0,el.useCallback)(()=>{null!=p.current&&(window.clearTimeout(p.current),p.current=null)},[]),P=(0,el.useCallback)(()=>{null!=m.current&&(window.clearTimeout(m.current),m.current=null)},[]),I=(0,el.useCallback)(t=>{E&&!C&&(t.preventDefault(),t.stopPropagation(),d$(e.current),w({x:t.clientX,y:t.clientY,selectedText:"",canNavigate:dH(e.current)}))},[e,C,E]),A=(0,el.useCallback)(()=>{f.current||E&&!C&&d$(e.current)},[e,C,E]),M=(0,el.useCallback)(t=>{if(!E||C||"mouse"===t.pointerType||h.current?.contains(t.target))return;let i=e.current,r=i?.getTargetAtClientPoint(t.clientX,t.clientY),n=i?.getSelection();if(n&&r?.position&&!n.isEmpty()&&n.containsPosition(r.position)){t.preventDefault(),t.stopPropagation();let e=dU(i);e&&w(e);return}w(null),T();let o=t.clientX,s=t.clientY;g.current={x:o,y:s,timer:window.setTimeout(()=>{d$(e.current),w({x:o,y:s,selectedText:"",canNavigate:dH(i)}),g.current=null},520)}},[T,e,C,E]),L=(0,el.useCallback)(e=>{!E||h.current?.contains(e.target)||(w(null),M(e))},[M,E]),F=(0,el.useCallback)(e=>{let t=g.current;!t||Math.hypot(e.clientX-t.x,e.clientY-t.y)>10&&T()},[T]),O=(0,el.useCallback)(()=>{T()},[T]),N=(0,el.useCallback)(t=>{if(!C)return;let i=window.getSelection(),r=i?.toString()??"";if(!r)return void w(null);let n=u.current,o=i?.rangeCount?i.getRangeAt(0):null;if(n&&o&&n.contains(o.commonAncestorContainer)){let t=document.createRange();t.selectNodeContents(n),t.setEnd(o.startContainer,o.startOffset);let i=document.createRange();i.selectNodeContents(n),i.setEnd(o.endContainer,o.endOffset);let r=t.toString().length,s=i.toString().length,a=e.current?.getModel();if(a){let t=a.getPositionAt(r),i=a.getPositionAt(s);e.current?.setSelection({startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:i.lineNumber,endColumn:i.column})}}if(!t)return;let s=o?.getBoundingClientRect();w({x:s?s.left+s.width/2:window.innerWidth/2,y:s?s.bottom:window.innerHeight/2,selectedText:r,canNavigate:dH(e.current)})},[e,C]),$=(0,el.useCallback)(()=>{R(),w(null),p.current=window.setTimeout(()=>{p.current=null,N(!0)},1400)},[R,N]),H=(0,el.useCallback)(e=>{C&&(e.preventDefault(),e.stopPropagation(),$())},[C,$]),U=(0,el.useCallback)(()=>{let i=e.current;if(i&&t.current){let e=i.getLayoutInfo(),r=i.getOption(t.current.editor.EditorOption.fontInfo);D({scrollLeft:i.getScrollLeft(),scrollTop:i.getScrollTop(),contentLeft:e.contentLeft,contentRight:Math.max(0,e.width-e.contentLeft-e.contentWidth),fontFamily:r.fontFamily,fontWeight:r.fontWeight,fontSize:r.fontSize,lineHeight:r.lineHeight,letterSpacing:r.letterSpacing,fontFeatureSettings:r.fontFeatureSettings,fontVariationSettings:r.fontVariationSettings})}else D(null);S(!0),w(null)},[e,t]),W=(0,el.useCallback)(async()=>{let e=b?.selectedText||i;e&&(await navigator.clipboard.writeText(e),eh.toast.success(b?.selectedText?"已复制选中文本":"已复制代码"),k())},[i,k,b]),q=(0,el.useCallback)(t=>{let i=e.current,o=eg.find(e=>e.id===t);i&&o&&(o.run(i,{workspaceId:r,workspaceRoot:n}),k())},[k,e,r,n]),j=(0,el.useCallback)(t=>{let i=e.current;if(!i)return;let r=i.getSelection(),n=r?.getStartPosition()??i.getPosition();w(null),P(),_.current=!0,y.current=!0,f.current=!0,n&&(i.setSelections([{selectionStartLineNumber:n.lineNumber,selectionStartColumn:n.column,positionLineNumber:n.lineNumber,positionColumn:n.column}],"agentSpaces.mobileContextMenu"),i.setPosition(n)),i.focus(),requestAnimationFrame(()=>{for(let r of(i.trigger("agentSpaces.mobileContextMenu",t,void 0),[250,700,1200]))window.setTimeout(()=>{dW(e.current),w(null)},r);window.setTimeout(()=>{dW(e.current),w(null),f.current=!1,_.current=!1,y.current=!1,d$(e.current)},1600)})},[P,e]);return(0,el.useEffect)(()=>{E||(k(),T())},[T,k,E]),(0,el.useEffect)(()=>{if(!C)return;let e=()=>{window.setTimeout(()=>{N(!1),$()},0)};return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[C,$,N]),(0,el.useEffect)(()=>{if(!C)return;let e=u.current;e&&x&&(e.scrollLeft=x.scrollLeft,e.scrollTop=x.scrollTop)},[C,x]),(0,el.useEffect)(()=>{let t=e.current;if(!t||!E||C)return void P();let i=t.onDidChangeCursorSelection(()=>{(P(),_.current)?w(null):dH(t)?m.current=window.setTimeout(()=>{m.current=null;let e=dU(t);e&&w(e)},500):w(e=>e?.canNavigate?null:e)});return()=>{i.dispose(),P()}},[P,c,e,C,E]),{showMobileReadonlyOverlay:E,mobileSelectionMode:C,mobileReadonlyMenu:b,mobileSelectionPreMetrics:x,mobileSelectionPreRef:u,mobileReadonlyMenuRef:h,pendingNavigationSelectionCleanup:y,containerProps:{onContextMenuCapture:I,onFocusCapture:A,onPointerDownCapture:L,onPointerMoveCapture:F,onPointerUpCapture:O,onPointerCancelCapture:O},enterMobileSelectionMode:U,closeMobileSelectionMode:k,copyMobileSelection:W,runMobileEditorAction:j,runMobileBuiltinAction:q,handleMobileSelectionContextMenu:H}}({editorRef:m,monacoRef:f,activeContent:N,workspaceId:e,workspaceRoot:p,isMobile:g,isReadOnly:b,isCommitDiff:$,hasActiveFile:!!O,editorReadyTick:P,wordWrap:E}),K=(0,el.useCallback)(()=>{r&&o(e,r)},[r,o,e]),V=(0,el.useRef)(K);(0,el.useEffect)(()=>{V.current=K},[K]);let B=(0,el.useCallback)((e,t)=>{e.updateOptions({readOnly:t})},[]),G=(0,el.useCallback)((t,i)=>{!function(e,t,i,r){for(let e of i)e.dispose();i.length=0;let{activeFilePath:n,workspaceId:o,workspaceRoot:s,jumpToPosition:a}=r;i.push(e.onContextMenu(t=>{let i=t.target.position;if(!i)return;let r=e.getSelection();r&&!r.isEmpty()&&r.containsPosition(i)||e.setPosition(i),console.info("[monaco-navigation] context menu position",{uri:e.getModel()?.uri.toString(),lineNumber:i.lineNumber,column:i.column,word:e.getModel()?.getWordAtPosition(i)?.word})}),t.editor.registerEditorOpener({openCodeEditor:async(e,t,i)=>{let r=function(e,t){if(!e||"file"!==e.scheme||!t)return null;let i=`/${t}`;return e.path.endsWith(i)?decodeURIComponent(e.path.slice(0,-i.length)):null}(e.getModel()?.uri,n??null),l=dP(t,o,s,r);if(!l)return console.warn("[monaco-navigation] failed to map target uri",{uri:t.toString(),workspaceRoot:s,inferredRoot:r,activeFilePath:n}),!1;let c=dP(e.getModel()?.uri,o,s,r),d=i&&"lineNumber"in i?i.lineNumber:i?.startLineNumber,u=i&&"column"in i?i.column:i?.startColumn;if(console.info("[monaco-navigation] open target",{uri:t.toString(),targetPath:l,sourcePath:c,line:d,column:u}),c===l&&d){let t,i=e.getModel(),r=i?(t=i.getLineContent(d).match(/\bfrom\s+['"]([^'"]+)['"]|import\s*\(\s*['"]([^'"]+)['"]\s*\)|require\s*\(\s*['"]([^'"]+)['"]\s*\)|^\s*import\s+['"]([^'"]+)['"]/),t?.[1]||t?.[2]||t?.[3]||t?.[4]||null):null,n=r?await dF(o,c,r):null;if(n&&n!==c){let t=i?.getWordAtPosition(e.getPosition()??{lineNumber:d,column:u||1})?.word,s=t?await dO(o,n):null,l=s&&t?function(e,t){let i=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=[RegExp(`\\bexport\\s+default\\s+function\\s+(${i})\\b`),RegExp(`\\bexport\\s+function\\s+(${i})\\b`),RegExp(`\\bexport\\s+(?:const|let|var|class)\\s+(${i})\\b`),RegExp(`\\bfunction\\s+(${i})\\b`),RegExp(`\\b(?:const|let|var|class)\\s+(${i})\\b`),RegExp(`\\bexport\\s+default\\s+(${i})\\b`)],n=e.split(/\r?\n/);for(let e=0;e<n.length;e+=1){let i=n[e];for(let n of r){let r=n.exec(i);if(!r||null==r.index)continue;let o=r[1]?i.indexOf(r[1],r.index):r.index;if(!(o<0))return{line:e+1,column:o+1,endColumn:o+t.length+1}}}return null}(s,t):null;return console.info("[monaco-navigation] resolved import target",{specifier:r,sourcePath:c,resolvedPath:n,symbolName:t,symbolPosition:l}),window.setTimeout(()=>{a(o,n,l?.line??1,l?.column??1,l?.line,l?.endColumn).then(()=>{console.info("[monaco-navigation] jumped to resolved import target",{resolvedPath:n})})},0),!0}}return d?c===l?(e.setPosition({lineNumber:d,column:u||1}),e.revealLineInCenter(d)):window.setTimeout(()=>{a(o,l,d,u)},0):await em.useEditorStore.getState().openFile(o,l),!0}}),e.addAction({id:"agentSpaces.showDefinition",label:"Show Definition",contextMenuGroupId:"navigation",contextMenuOrder:1.11,run:e=>e.getAction("editor.action.peekDefinition")?.run()}),e.addAction({id:"agentSpaces.showReferences",label:"Show References",contextMenuGroupId:"navigation",contextMenuOrder:1.46,run:e=>e.getAction("editor.action.referenceSearch.trigger")?.run()}),e.addAction({id:"agentSpaces.find",label:"Find",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.KeyF],run:e=>e.getAction("actions.find")?.run()}),e.addAction({id:"agentSpaces.replace",label:"Replace",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.KeyH],run:e=>e.getAction("editor.action.startFindReplaceAction")?.run()}),e.addAction({id:"agentSpaces.findInFiles",label:"Find in Files",keybindings:[t.KeyMod.CtrlCmd|t.KeyMod.Shift|t.KeyCode.KeyF],run:()=>{em.useEditorStore.getState().setRevealPath("__search_panel__")}}),e.addAction({id:"agentSpaces.goToLine",label:"Go to Line...",keybindings:[t.KeyMod.CtrlCmd|t.KeyCode.KeyG],run:e=>e.getAction("editor.action.gotoLine")?.run()}),e.addAction({id:"agentSpaces.formatDocument",label:"Format Document",keybindings:[t.KeyMod.CtrlCmd|t.KeyMod.Shift|t.KeyCode.KeyI],contextMenuGroupId:"navigation",contextMenuOrder:1.5,run:e=>e.getAction("editor.action.formatDocument")?.run()}))}(t,i,y.current,{activeFilePath:r,workspaceId:e,workspaceRoot:p,jumpToPosition:a})},[r,a,e,p]),Q=(0,el.useCallback)((t,i)=>{for(let r of(m.current=t,f.current=i,p&&dR(e,p),B(t,b),G(t,i),C.current))r.dispose();C.current=function(e,t){let i=[];for(let r of ec.values())i.push(e.addAction({...r,run:e=>r.run(e,t)}));return i}(t,{workspaceId:e,workspaceRoot:p}),I(e=>e+1),t.addAction({id:"agentSpaces.saveFile",label:"Save File",keybindings:[2097],run:()=>V.current()})},[b,G,B,e,p]);(0,el.useEffect)(()=>{m.current&&p&&dR(e,p)},[e,p]),(0,el.useEffect)(()=>{m.current&&f.current&&G(m.current,f.current)},[G]),(0,el.useEffect)(()=>()=>{let t;(t=dk.get(e))&&(dk.delete(e),t.stop())},[e]),(0,el.useEffect)(()=>()=>{for(let e of y.current)e.dispose();for(let e of(y.current=[],C.current))e.dispose();C.current=[],S.current=[]},[]);let J=(0,eu.useCodeFavoritesStore)(e=>e.favorites);(0,el.useEffect)(()=>{let t=m.current,i=f.current;if(!t||!i||!r){t&&(S.current=t.deltaDecorations(S.current,[]));return}let n=J.filter(t=>t.path===r&&t.workspaceId===e);if(0===n.length){S.current=t.deltaDecorations(S.current,[]);return}let o=n.map(e=>({range:new i.Range(e.line,1,e.endLine||e.line,1),options:{isWholeLine:!0,glyphMarginClassName:"favorite-glyph",glyphMarginHoverMessage:{value:e.label||`${e.path}:${e.line}`},className:"favorite-line-bg"}}));S.current=t.deltaDecorations(S.current,o)},[r,J,e,P]),(0,el.useEffect)(()=>{if(!r||!O||O.modified||$)return;let t=setInterval(()=>{s(e,r)},3e3);return()=>clearInterval(t)},[O,r,O?.modified,$,e,s]),(0,el.useEffect)(()=>{let e=m.current;e&&B(e,b)},[b,B]),(0,el.useEffect)(()=>{z.pendingNavigationSelectionCleanup.current&&window.setTimeout(()=>{z.pendingNavigationSelectionCleanup.current&&(dW(m.current),z.closeMobileSelectionMode())},0)},[r,P,z]),(0,el.useEffect)(()=>{let e=m.current;e&&e.updateOptions({wordWrap:E?"on":"off"})},[E]),(0,el.useEffect)(()=>{let e=m.current;e&&e.updateOptions({minimap:{enabled:T}})},[T]),(0,el.useEffect)(()=>{O&&r&&function(e,t,i,r){let n=i??"",o=oi(e,t,r),s=ix.editor.getModel(o);if(s)s.getValue()!==n&&s.setValue(n);else{let e,i;s=ix.editor.createModel(n,(e=t.split("/").pop()?.toLowerCase()||"",i=e.split(".").pop()?.toLowerCase()||"","dockerfile"===e||e.startsWith("dockerfile.")?"dockerfile":"makefile"===e||"gnumakefile"===e?"makefile":"cmakelists.txt"===e||e.endsWith(".cmake")?"cmake":({ts:"typescript",tsx:"typescript",js:"javascript",jsx:"javascript",json:"json",jsonc:"json",css:"css",scss:"scss",less:"less",html:"html",htm:"html",vue:"html",svg:"xml",xml:"xml",yaml:"yaml",yml:"yaml",toml:"ini",ini:"ini",env:"ini",py:"python",pyw:"python",rb:"ruby",pl:"perl",pm:"perl",php:"php",lua:"lua",sh:"shell",bash:"shell",zsh:"shell",fish:"shell",ps1:"powershell",psm1:"powershell",bat:"bat",cmd:"bat",rs:"rust",go:"go",c:"c",h:"c",cpp:"cpp",cc:"cpp",cxx:"cpp",hpp:"cpp",hh:"cpp",hxx:"cpp",cs:"csharp",java:"java",kt:"kotlin",kts:"kotlin",swift:"swift",dart:"dart",scala:"scala",hs:"haskell",lhs:"haskell",ex:"elixir",exs:"elixir",erl:"erlang",clj:"clojure",cljs:"clojure",groovy:"groovy",gradle:"groovy",md:"markdown",mdx:"markdown",tex:"latex",sql:"sql",graphql:"graphql",gql:"graphql",r:"r",d:"d",zig:"zig",dockerfile:"dockerfile"})[i]||"plaintext"),o)}ot.set(t,s)}(e,r,N,p)},[O,r,N,e,p]),(0,el.useEffect)(()=>{if(!l||!r||l.path!==r||!m.current)return;let{line:t,column:i,endLine:n,endColumn:o,path:s}=l,a=m.current,d=a.getModel(),u=oi(e,s,p).path;if(!d||d.uri.path!==u){let e=window.setTimeout(()=>{M(e=>e+1)},30);return()=>window.clearTimeout(e)}let h=Math.min(Math.max(1,t),d.getLineCount()),g=Math.min(Math.max(1,i||1),d.getLineMaxColumn(h)),f=n?Math.min(Math.max(1,n),d.getLineCount()):h,_=o?Math.min(Math.max(1,o),d.getLineMaxColumn(f)):g,y={startLineNumber:h,startColumn:g,endLineNumber:f,endColumn:_};a.setSelection(y),a.setPosition({lineNumber:h,column:g}),a.revealLineInCenter(h);let C=a.createDecorationsCollection([{range:y,options:{className:"symbolHighlight",stickiness:1}}]);window.setTimeout(()=>C.clear(),700),b||a.focus(),c()},[l,r,e,p,P,A,c,b]);let Y=r?oi(e,r,p).toString():void 0;return(0,es.jsxs)("div",{className:`flex flex-col h-full ${x?"fixed inset-0 z-50 bg-background":""}`,children:[(0,es.jsx)(ih,{workspaceId:e}),(0,es.jsx)(ip,{editorRef:m,workspaceId:e,isReadOnly:b,onToggleReadOnly:()=>w(e=>!e),isFullscreen:x,onToggleFullscreen:()=>D(e=>!e),wordWrap:E,onToggleWordWrap:()=>{let e=!E;k(e),localStorage.setItem("editor-word-wrap",String(e))},minimap:T,onToggleMinimap:()=>{let e=!T;R(e),localStorage.setItem("editor-minimap",String(e))}}),(0,es.jsx)("div",{ref:_,className:"relative flex-1 min-h-0",...z.containerProps,children:$&&H?(0,es.jsx)(iS,{diffs:H.diffs,message:H.message}):W&&L&&(j||"markdown"===U)?(0,es.jsxs)("div",{className:"relative flex justify-center h-full bg-muted/20 overflow-auto p-4",children:[q&&(0,es.jsxs)("button",{onClick:()=>F(!1),className:"absolute top-2 right-2 z-10 flex items-center gap-1.5 px-2.5 py-1.5 rounded-md bg-background/90 border text-xs text-muted-foreground hover:text-foreground hover:bg-background shadow-sm transition-colors",title:h("switchToCode"),children:[(0,es.jsx)(ib,{size:14}),h("code")]}),"image"===U&&(0,es.jsx)("img",{src:j,alt:O?.name,className:"max-w-full max-h-full object-contain"}),"video"===U&&(0,es.jsx)("video",{src:j,controls:!0,className:"max-w-full max-h-full"}),"audio"===U&&(0,es.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,es.jsx)("div",{className:"text-muted-foreground text-sm",children:O?.name}),(0,es.jsx)("audio",{src:j,controls:!0})]}),"svg"===U&&(0,es.jsx)("img",{src:j,alt:O?.name,className:"max-w-full max-h-full object-contain"}),"markdown"===U&&N&&(0,es.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none w-full max-w-4xl mx-auto",children:(0,es.jsx)(dj.Markdown,{content:N})})]}):O&&q&&!L?(0,es.jsxs)("div",{className:"relative flex flex-col h-full",children:[(0,es.jsxs)("button",{onClick:()=>F(!0),className:"absolute top-2 right-2 z-10 flex items-center gap-1.5 px-2.5 py-1.5 rounded-md bg-background/90 border text-xs text-muted-foreground hover:text-foreground hover:bg-background shadow-sm transition-colors",title:h("switchToPreview"),children:[(0,es.jsx)(iw.Eye,{size:14}),h("preview")]}),(0,es.jsx)(dK,{height:"100%",language:dN(O.path),value:N,path:Y,onChange:(t,i)=>{if(i.isFlush)return;let r=dP(m.current?.getModel()?.uri,e,p);r&&r===O.path&&n(r,t||"")},onMount:Q,options:{fontSize:13,minimap:{enabled:T},scrollBeyondLastLine:!1,glyphMargin:!0,lineNumbersMinChars:3,padding:{top:8},renderLineHighlight:"gutter",readOnly:b,wordWrap:E?"on":"off"},theme:"dark"===u?"vs-dark":"vs"})]}):O?(0,es.jsxs)(es.Fragment,{children:[(0,es.jsx)(dK,{height:"100%",language:dN(O.path),value:N,path:Y,onChange:(t,i)=>{if(i.isFlush)return;let r=dP(m.current?.getModel()?.uri,e,p);r&&r===O.path&&n(r,t||"")},onMount:Q,options:{fontSize:13,minimap:{enabled:T},scrollBeyondLastLine:!1,glyphMargin:!0,lineNumbersMinChars:3,padding:{top:8},renderLineHighlight:"gutter",readOnly:b,wordWrap:E?"on":"off",gotoLocation:{multipleDefinitions:"goto",multipleTypeDefinitions:"goto",multipleDeclarations:"goto",multipleImplementations:"goto",multipleReferences:"goto"}},theme:"dark"===u?"vs-dark":"vs"}),z.showMobileReadonlyOverlay?(0,es.jsx)(dq,{activeContent:N,wordWrap:E,mobileSelectionMode:z.mobileSelectionMode,mobileReadonlyMenu:z.mobileReadonlyMenu,mobileSelectionPreMetrics:z.mobileSelectionPreMetrics,mobileSelectionPreRef:z.mobileSelectionPreRef,mobileReadonlyMenuRef:z.mobileReadonlyMenuRef,onContextMenu:z.handleMobileSelectionContextMenu,onEnterSelectionMode:z.enterMobileSelectionMode,onCloseSelectionMode:z.closeMobileSelectionMode,onCopySelection:z.copyMobileSelection,onRunEditorAction:z.runMobileEditorAction,onRunBuiltinAction:z.runMobileBuiltinAction}):null]}):(0,es.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:h("openFileToEdit")})})]})}],611219)},538691,e=>{e.n(e.i(611219))}]);