@agent-spaces/server 0.3.62 → 0.3.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/dist/adapters/agent-runtime-types.js +12 -0
  2. package/dist/adapters/claude-code-runtime/index.js +3 -0
  3. package/dist/adapters/claude-code-runtime/message-format.js +1 -1
  4. package/dist/adapters/codex-runtime.js +2 -2
  5. package/dist/adapters/git.js +161 -57
  6. package/dist/adapters/langchain-runtime.js +2 -2
  7. package/dist/adapters/open-agent-sdk-runtime.js +2 -2
  8. package/dist/agents/agent-designer.js +66 -12
  9. package/dist/agents/commit-agent.js +1 -0
  10. package/dist/agents/issue-agent-progress.js +4 -2
  11. package/dist/agents/issue-agent-runner.js +5 -5
  12. package/dist/agents/issue-task-controller.js +96 -15
  13. package/dist/app.js +123 -5
  14. package/dist/package.json +1 -1
  15. package/dist/routes/agent-commands.js +72 -0
  16. package/dist/routes/agent-sse.js +10 -2
  17. package/dist/routes/agent.js +15 -1
  18. package/dist/routes/database.js +345 -0
  19. package/dist/routes/git.js +52 -1
  20. package/dist/routes/hooks.js +88 -0
  21. package/dist/routes/issue.js +59 -1
  22. package/dist/routes/kanban.js +39 -0
  23. package/dist/routes/output-style.js +48 -0
  24. package/dist/routes/prompt-template.js +2 -2
  25. package/dist/routes/skill.js +86 -15
  26. package/dist/routes/task.js +13 -1
  27. package/dist/services/agent-commands.js +168 -0
  28. package/dist/services/builtin-tools/command-tools.js +117 -0
  29. package/dist/services/builtin-tools/database-tools.js +578 -0
  30. package/dist/services/builtin-tools/index.js +5 -0
  31. package/dist/services/builtin-tools/input-helpers.js +26 -0
  32. package/dist/services/builtin-tools/issue-tools.js +209 -0
  33. package/dist/services/builtin-tools/kanban-tools.js +277 -0
  34. package/dist/services/database-vector.js +244 -0
  35. package/dist/services/hook-engine.js +118 -0
  36. package/dist/services/issue.js +6 -0
  37. package/dist/services/kanban.js +50 -0
  38. package/dist/services/notification-hub/bot-agent.js +1 -0
  39. package/dist/services/output-style.js +134 -0
  40. package/dist/services/prompt-template.js +2 -2
  41. package/dist/services/skill.js +148 -35
  42. package/dist/storage/database-store.js +365 -0
  43. package/dist/storage/hook-store.js +55 -0
  44. package/dist/storage/kanban-store.js +142 -0
  45. package/dist/web/404.html +1 -1
  46. package/dist/web/__next.__PAGE__.txt +4 -4
  47. package/dist/web/__next._full.txt +26 -30
  48. package/dist/web/__next._head.txt +4 -4
  49. package/dist/web/__next._index.txt +14 -14
  50. package/dist/web/__next._tree.txt +3 -8
  51. package/dist/web/_next/static/chunks/0-9194nbxy_6d.js +1 -0
  52. package/dist/web/_next/static/chunks/0-f~0xmwl__u5.js +1 -0
  53. package/dist/web/_next/static/chunks/0.n~yfwf4~6w-.js +1 -0
  54. package/dist/web/_next/static/chunks/002_j970b9gdx.js +1 -0
  55. package/dist/web/_next/static/chunks/01iqv28_snwus.js +1 -0
  56. package/dist/web/_next/static/chunks/01~quun6sefgl.js +1 -0
  57. package/dist/web/_next/static/chunks/02mf61htij8g0.js +31 -0
  58. package/dist/web/_next/static/chunks/03scq1-0ykve3.js +1 -0
  59. package/dist/web/_next/static/chunks/04a4vsq2wknm4.js +1 -0
  60. package/dist/web/_next/static/chunks/04dg4l4hv11q2.js +3 -0
  61. package/dist/web/_next/static/chunks/04fxddw-y20~-.js +7 -0
  62. package/dist/web/_next/static/chunks/04w7~5ooz_pwm.js +1 -0
  63. package/dist/web/_next/static/chunks/05oc21sj24wtq.js +1 -0
  64. package/dist/web/_next/static/chunks/{0zd1o3u04~qvo.js → 05psi2gtx~bev.js} +7 -7
  65. package/dist/web/_next/static/chunks/{0-oog4zg4_m~m.css → 062f9zqctzg.b.css} +0 -3
  66. package/dist/web/_next/static/chunks/{12odetnu-lyrr.js → 06whz1~s_7pva.js} +12 -12
  67. package/dist/web/_next/static/chunks/08ckpwmmwlors.js +3 -0
  68. package/dist/web/_next/static/chunks/08k~meqbd8d6v.js +1 -0
  69. package/dist/web/_next/static/chunks/099h96wjsdb25.js +2 -0
  70. package/dist/web/_next/static/chunks/09h23logvq65m.js +1 -0
  71. package/dist/web/_next/static/chunks/{0njy89g5coeyi.js → 0_8dm7bxp18xo.js} +6 -6
  72. package/dist/web/_next/static/chunks/0_mvduwjsm35w.js +1 -0
  73. package/dist/web/_next/static/chunks/0_vi1a~g4wx46.js +3 -0
  74. package/dist/web/_next/static/chunks/0a5y-vhf4i5id.js +3 -0
  75. package/dist/web/_next/static/chunks/0ake2f3x2uan4.js +24 -0
  76. package/dist/web/_next/static/chunks/{0tvd~rxgf0oh_.js → 0bbmx45w_h5np.js} +1 -1
  77. package/dist/web/_next/static/chunks/0ck8dw_9-1cdx.js +1 -0
  78. package/dist/web/_next/static/chunks/{07a0rktf_nr5h.js → 0ctg5qmw7uu.1.js} +2 -2
  79. package/dist/web/_next/static/chunks/0ewceguykiut5.js +1 -0
  80. package/dist/web/_next/static/chunks/0f7cb9li~3jra.js +67 -0
  81. package/dist/web/_next/static/chunks/0fttswpzu69qx.js +1 -0
  82. package/dist/web/_next/static/chunks/0ghs9on7wodrm.js +1 -0
  83. package/dist/web/_next/static/chunks/0ghx3j_.-gdyd.js +1 -0
  84. package/dist/web/_next/static/chunks/{0202ia13sijwb.js → 0h18ej5yf974e.js} +1 -1
  85. package/dist/web/_next/static/chunks/0h9cu-k6z5o08.js +1 -0
  86. package/dist/web/_next/static/chunks/0i39jifmxla7q.js +1 -0
  87. package/dist/web/_next/static/chunks/0iuf30t0rjsjv.js +19 -0
  88. package/dist/web/_next/static/chunks/0jb4~3qqkw2ps.js +1 -0
  89. package/dist/web/_next/static/chunks/0k4zdm72k_bfy.js +1 -0
  90. package/dist/web/_next/static/chunks/{08o-zmr-40r5g.js → 0m11vvph7q94-.js} +1 -1
  91. package/dist/web/_next/static/chunks/0n6_4so_afuwk.js +71 -0
  92. package/dist/web/_next/static/chunks/0nb8.iteznuvx.js +1 -0
  93. package/dist/web/_next/static/chunks/0np.d~hc1-pmh.js +4 -0
  94. package/dist/web/_next/static/chunks/{0qpq0~_58fe9a.js → 0oaq67r7ix.vg.js} +1 -1
  95. package/dist/web/_next/static/chunks/{0d_dp_4ofz0l3.css → 0ojcao3hdm36s.css} +0 -1
  96. package/dist/web/_next/static/chunks/0os58q93stt7j.js +3 -0
  97. package/dist/web/_next/static/chunks/{0gig.k.rq8d0x.js → 0ppr271hz0xoq.js} +1 -1
  98. package/dist/web/_next/static/chunks/0s9lmk8iauou3.js +1 -0
  99. package/dist/web/_next/static/chunks/0sp_zbx~w0am7.js +1 -0
  100. package/dist/web/_next/static/chunks/0tel~zsv4z8l_.js +1 -0
  101. package/dist/web/_next/static/chunks/0twamv4wr_dbv.js +1 -0
  102. package/dist/web/_next/static/chunks/0uhol5wafdbl~.js +1 -0
  103. package/dist/web/_next/static/chunks/0v3a_x4vt42kx.js +5 -0
  104. package/dist/web/_next/static/chunks/{002-dxhags4dj.js → 0v6hte2z-32ca.js} +2 -2
  105. package/dist/web/_next/static/chunks/0v7q4mys.mnm..css +1 -0
  106. package/dist/web/_next/static/chunks/0vbqaynjq8ga..js +3 -0
  107. package/dist/web/_next/static/chunks/0xbaakj0dfc0..js +1 -0
  108. package/dist/web/_next/static/chunks/{0..g0jl-8qup7.js → 0xoo17yef_b8g.js} +1 -1
  109. package/dist/web/_next/static/chunks/0xt-8wk21gs7g.js +1 -0
  110. package/dist/web/_next/static/chunks/0za1r07-6az6w.js +1 -0
  111. package/dist/web/_next/static/chunks/0z~vqzbm_q371.js +1 -0
  112. package/dist/web/_next/static/chunks/0~3xm80~j9ddg.js +1 -0
  113. package/dist/web/_next/static/chunks/0~u.5r3-t7179.js +1 -0
  114. package/dist/web/_next/static/chunks/10l-9myrdo3x9.js +1 -0
  115. package/dist/web/_next/static/chunks/11-czmcci_55y.js +1 -0
  116. package/dist/web/_next/static/chunks/11k-.49r~1mfm.js +1 -0
  117. package/dist/web/_next/static/chunks/{0k.8qdk7oi_os.js → 128ugqd34tr_-.js} +1 -1
  118. package/dist/web/_next/static/chunks/12jm4gwmvq-0q.js +90 -0
  119. package/dist/web/_next/static/chunks/{0rke_patcovgr.js → 1442stwa0gbxe.js} +1 -1
  120. package/dist/web/_next/static/chunks/{0jokpgh485~28.js → 14hqmid8q4apf.js} +11 -11
  121. package/dist/web/_next/static/chunks/14s37n6h0_q3x.js +16 -0
  122. package/dist/web/_next/static/chunks/161ik5kfyuwtd.js +1 -0
  123. package/dist/web/_next/static/chunks/16sg-lflc8csx.js +1 -0
  124. package/dist/web/_next/static/chunks/17k~zbv0_4rep.js +1 -0
  125. package/dist/web/_next/static/chunks/17oc2l.ekcs8b.css +1 -0
  126. package/dist/web/_next/static/chunks/{turbopack-0lrdxynxb9-1t.js → turbopack-0ndm2zc_pdptk.js} +1 -1
  127. package/dist/web/_not-found/__next._full.txt +30 -31
  128. package/dist/web/_not-found/__next._head.txt +4 -4
  129. package/dist/web/_not-found/__next._index.txt +14 -14
  130. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  131. package/dist/web/_not-found/__next._not-found.txt +3 -3
  132. package/dist/web/_not-found/__next._tree.txt +3 -3
  133. package/dist/web/_not-found.html +1 -1
  134. package/dist/web/_not-found.txt +30 -31
  135. package/dist/web/index.html +1 -1
  136. package/dist/web/index.txt +26 -30
  137. package/dist/web/login/__next._full.txt +32 -36
  138. package/dist/web/login/__next._head.txt +4 -4
  139. package/dist/web/login/__next._index.txt +14 -14
  140. package/dist/web/login/__next._tree.txt +3 -8
  141. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  142. package/dist/web/login/__next.login.txt +3 -3
  143. package/dist/web/login.html +1 -1
  144. package/dist/web/login.txt +32 -36
  145. package/dist/web/settings/__next._full.txt +29 -34
  146. package/dist/web/settings/__next._head.txt +4 -4
  147. package/dist/web/settings/__next._index.txt +14 -14
  148. package/dist/web/settings/__next._tree.txt +3 -8
  149. package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
  150. package/dist/web/settings/__next.settings.txt +5 -5
  151. package/dist/web/settings/agents/__next._full.txt +27 -32
  152. package/dist/web/settings/agents/__next._head.txt +4 -4
  153. package/dist/web/settings/agents/__next._index.txt +14 -14
  154. package/dist/web/settings/agents/__next._tree.txt +3 -8
  155. package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
  156. package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
  157. package/dist/web/settings/agents/__next.settings.txt +5 -5
  158. package/dist/web/settings/agents.html +1 -1
  159. package/dist/web/settings/agents.txt +27 -32
  160. package/dist/web/settings/mcps/__next._full.txt +27 -32
  161. package/dist/web/settings/mcps/__next._head.txt +4 -4
  162. package/dist/web/settings/mcps/__next._index.txt +14 -14
  163. package/dist/web/settings/mcps/__next._tree.txt +3 -8
  164. package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
  165. package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
  166. package/dist/web/settings/mcps/__next.settings.txt +5 -5
  167. package/dist/web/settings/mcps.html +1 -1
  168. package/dist/web/settings/mcps.txt +27 -32
  169. package/dist/web/settings/models/__next._full.txt +27 -32
  170. package/dist/web/settings/models/__next._head.txt +4 -4
  171. package/dist/web/settings/models/__next._index.txt +14 -14
  172. package/dist/web/settings/models/__next._tree.txt +3 -8
  173. package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
  174. package/dist/web/settings/models/__next.settings.models.txt +3 -3
  175. package/dist/web/settings/models/__next.settings.txt +5 -5
  176. package/dist/web/settings/models.html +1 -1
  177. package/dist/web/settings/models.txt +27 -32
  178. package/dist/web/settings/output-styles/__next._full.txt +38 -0
  179. package/dist/web/settings/output-styles/__next._head.txt +6 -0
  180. package/dist/web/settings/output-styles/__next._index.txt +15 -0
  181. package/dist/web/settings/output-styles/__next._tree.txt +3 -0
  182. package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +9 -0
  183. package/dist/web/settings/output-styles/__next.settings.output-styles.txt +5 -0
  184. package/dist/web/settings/output-styles/__next.settings.txt +7 -0
  185. package/dist/web/settings/output-styles.html +1 -0
  186. package/dist/web/settings/output-styles.txt +38 -0
  187. package/dist/web/settings/prompts/__next._full.txt +27 -32
  188. package/dist/web/settings/prompts/__next._head.txt +4 -4
  189. package/dist/web/settings/prompts/__next._index.txt +14 -14
  190. package/dist/web/settings/prompts/__next._tree.txt +3 -8
  191. package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
  192. package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
  193. package/dist/web/settings/prompts/__next.settings.txt +5 -5
  194. package/dist/web/settings/prompts.html +1 -1
  195. package/dist/web/settings/prompts.txt +27 -32
  196. package/dist/web/settings/providers/__next._full.txt +27 -32
  197. package/dist/web/settings/providers/__next._head.txt +4 -4
  198. package/dist/web/settings/providers/__next._index.txt +14 -14
  199. package/dist/web/settings/providers/__next._tree.txt +3 -8
  200. package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
  201. package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
  202. package/dist/web/settings/providers/__next.settings.txt +5 -5
  203. package/dist/web/settings/providers.html +1 -1
  204. package/dist/web/settings/providers.txt +27 -32
  205. package/dist/web/settings/skills/__next._full.txt +27 -32
  206. package/dist/web/settings/skills/__next._head.txt +4 -4
  207. package/dist/web/settings/skills/__next._index.txt +14 -14
  208. package/dist/web/settings/skills/__next._tree.txt +3 -8
  209. package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
  210. package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
  211. package/dist/web/settings/skills/__next.settings.txt +5 -5
  212. package/dist/web/settings/skills.html +1 -1
  213. package/dist/web/settings/skills.txt +27 -32
  214. package/dist/web/settings/tools/__next._full.txt +38 -0
  215. package/dist/web/settings/tools/__next._head.txt +6 -0
  216. package/dist/web/settings/tools/__next._index.txt +15 -0
  217. package/dist/web/settings/tools/__next._tree.txt +3 -0
  218. package/dist/web/settings/tools/__next.settings.tools.__PAGE__.txt +9 -0
  219. package/dist/web/settings/tools/__next.settings.tools.txt +5 -0
  220. package/dist/web/settings/tools/__next.settings.txt +7 -0
  221. package/dist/web/settings/tools.html +1 -0
  222. package/dist/web/settings/tools.txt +38 -0
  223. package/dist/web/settings.html +1 -1
  224. package/dist/web/settings.txt +29 -34
  225. package/dist/web/workflows/__next._full.txt +34 -37
  226. package/dist/web/workflows/__next._head.txt +4 -4
  227. package/dist/web/workflows/__next._index.txt +14 -14
  228. package/dist/web/workflows/__next._tree.txt +3 -8
  229. package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
  230. package/dist/web/workflows/__next.workflows.txt +3 -3
  231. package/dist/web/workflows.html +1 -1
  232. package/dist/web/workflows.txt +34 -37
  233. package/dist/web/workspace/_/__next._full.txt +32 -77
  234. package/dist/web/workspace/_/__next._head.txt +4 -4
  235. package/dist/web/workspace/_/__next._index.txt +14 -14
  236. package/dist/web/workspace/_/__next._tree.txt +4 -23
  237. package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -18
  238. package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
  239. package/dist/web/workspace/_/__next.workspace.txt +3 -3
  240. package/dist/web/workspace/_.html +1 -1
  241. package/dist/web/workspace/_.txt +32 -77
  242. package/dist/web/workspaces/__next._full.txt +32 -38
  243. package/dist/web/workspaces/__next._head.txt +4 -4
  244. package/dist/web/workspaces/__next._index.txt +14 -14
  245. package/dist/web/workspaces/__next._tree.txt +3 -8
  246. package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
  247. package/dist/web/workspaces/__next.workspaces.txt +3 -3
  248. package/dist/web/workspaces.html +1 -1
  249. package/dist/web/workspaces.txt +32 -38
  250. package/dist/ws/agent-prompt.js +45 -8
  251. package/dist/ws/agent-runner.js +10 -6
  252. package/package.json +11 -10
  253. package/public/output-styles/carmack-mode.md +381 -0
  254. package/public/output-styles/codex-rigor-mode.md +114 -0
  255. package/public/output-styles/dhh-mode.md +265 -0
  256. package/public/output-styles/evan-you-mode.md +539 -0
  257. package/public/output-styles/index.json +37 -0
  258. package/public/output-styles/jobs-mode.md +369 -0
  259. package/public/output-styles/linus-mode.md +135 -0
  260. package/public/output-styles/uncle-bob-mode.md +221 -0
  261. package/public/prompt/andrej-karpathy-skills.md +65 -0
  262. package/public/prompt/claude-token-efficient-coding.md +35 -0
  263. package/public/prompt/index.json +12 -0
  264. package/public/skills/index.json +92 -0
  265. package/public/skills/planning-with-files/planning-with-files-zh/SKILL.md +243 -0
  266. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.ps1 +44 -0
  267. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.sh +46 -0
  268. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.ps1 +124 -0
  269. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.sh +124 -0
  270. package/public/skills/planning-with-files/planning-with-files-zh/scripts/session-catchup.py +438 -0
  271. package/public/skills/planning-with-files/planning-with-files-zh/templates/findings.md +29 -0
  272. package/public/skills/planning-with-files/planning-with-files-zh/templates/progress.md +40 -0
  273. package/public/skills/planning-with-files/planning-with-files-zh/templates/task_plan.md +58 -0
  274. package/public/skills/superpowers/brainstorming/SKILL.md +164 -0
  275. package/public/skills/superpowers/brainstorming/scripts/frame-template.html +214 -0
  276. package/public/skills/superpowers/brainstorming/scripts/helper.js +88 -0
  277. package/public/skills/superpowers/brainstorming/scripts/server.cjs +354 -0
  278. package/public/skills/superpowers/brainstorming/scripts/start-server.sh +148 -0
  279. package/public/skills/superpowers/brainstorming/scripts/stop-server.sh +56 -0
  280. package/public/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
  281. package/public/skills/superpowers/brainstorming/visual-companion.md +287 -0
  282. package/public/skills/superpowers/dispatching-parallel-agents/SKILL.md +182 -0
  283. package/public/skills/superpowers/executing-plans/SKILL.md +70 -0
  284. package/public/skills/superpowers/finishing-a-development-branch/SKILL.md +251 -0
  285. package/public/skills/superpowers/receiving-code-review/SKILL.md +213 -0
  286. package/public/skills/superpowers/requesting-code-review/SKILL.md +103 -0
  287. package/public/skills/superpowers/requesting-code-review/code-reviewer.md +168 -0
  288. package/public/skills/superpowers/subagent-driven-development/SKILL.md +279 -0
  289. package/public/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +25 -0
  290. package/public/skills/superpowers/subagent-driven-development/implementer-prompt.md +113 -0
  291. package/public/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  292. package/public/skills/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
  293. package/public/skills/superpowers/systematic-debugging/SKILL.md +296 -0
  294. package/public/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
  295. package/public/skills/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
  296. package/public/skills/superpowers/systematic-debugging/defense-in-depth.md +122 -0
  297. package/public/skills/superpowers/systematic-debugging/find-polluter.sh +63 -0
  298. package/public/skills/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
  299. package/public/skills/superpowers/systematic-debugging/test-academic.md +14 -0
  300. package/public/skills/superpowers/systematic-debugging/test-pressure-1.md +58 -0
  301. package/public/skills/superpowers/systematic-debugging/test-pressure-2.md +68 -0
  302. package/public/skills/superpowers/systematic-debugging/test-pressure-3.md +69 -0
  303. package/public/skills/superpowers/test-driven-development/SKILL.md +371 -0
  304. package/public/skills/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
  305. package/public/skills/superpowers/using-git-worktrees/SKILL.md +215 -0
  306. package/public/skills/superpowers/using-superpowers/SKILL.md +117 -0
  307. package/public/skills/superpowers/using-superpowers/references/codex-tools.md +59 -0
  308. package/public/skills/superpowers/using-superpowers/references/copilot-tools.md +42 -0
  309. package/public/skills/superpowers/using-superpowers/references/gemini-tools.md +51 -0
  310. package/public/skills/superpowers/verification-before-completion/SKILL.md +139 -0
  311. package/public/skills/superpowers/writing-plans/SKILL.md +152 -0
  312. package/public/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
  313. package/public/skills/superpowers/writing-skills/SKILL.md +655 -0
  314. package/public/skills/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
  315. package/public/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  316. package/public/skills/superpowers/writing-skills/graphviz-conventions.dot +172 -0
  317. package/public/skills/superpowers/writing-skills/persuasion-principles.md +187 -0
  318. package/public/skills/superpowers/writing-skills/render-graphs.js +168 -0
  319. package/public/skills/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
  320. package/dist/web/_next/static/chunks/0-81wi7xr2nd-.js +0 -270
  321. package/dist/web/_next/static/chunks/00lca9lsasdm7.js +0 -1
  322. package/dist/web/_next/static/chunks/01gi~q0c6ez6..js +0 -1
  323. package/dist/web/_next/static/chunks/02shswpmybici.js +0 -1
  324. package/dist/web/_next/static/chunks/05tx6hzdtkgi9.js +0 -2
  325. package/dist/web/_next/static/chunks/07nbyndvzftr1.js +0 -3
  326. package/dist/web/_next/static/chunks/0bn~onkv~9xza.js +0 -1
  327. package/dist/web/_next/static/chunks/0g-0n6glz_z6w.js +0 -1
  328. package/dist/web/_next/static/chunks/0gyede80jpy3n.js +0 -4
  329. package/dist/web/_next/static/chunks/0hrbuvzuxrjfl.js +0 -1
  330. package/dist/web/_next/static/chunks/0i51q.5s_-.vh.css +0 -1
  331. package/dist/web/_next/static/chunks/0qf163pbrwy4z.js +0 -1
  332. package/dist/web/_next/static/chunks/0rnt-f3pjxb-d.js +0 -5
  333. package/dist/web/_next/static/chunks/0tgbcgsca9mrg.js +0 -1
  334. package/dist/web/_next/static/chunks/0tyhv6.y7~yxd.js +0 -1
  335. package/dist/web/_next/static/chunks/0u7_qd9hzqwac.js +0 -1
  336. package/dist/web/_next/static/chunks/0vuvql8rloda5.js +0 -1
  337. package/dist/web/_next/static/chunks/0wv0h27jafag4.js +0 -1
  338. package/dist/web/_next/static/chunks/0wwvc4zc2q6bn.js +0 -1
  339. package/dist/web/_next/static/chunks/0xmmk3vebw8xs.js +0 -1
  340. package/dist/web/_next/static/chunks/0xwqf.llmm_u2.js +0 -31
  341. package/dist/web/_next/static/chunks/0yo22_w53mo~5.js +0 -1
  342. package/dist/web/_next/static/chunks/12c0jp0qvlr1t.js +0 -1
  343. package/dist/web/_next/static/chunks/12pg1nn3v~~5k.js +0 -1
  344. package/dist/web/_next/static/chunks/16cyr8ilpx1nn.js +0 -1
  345. package/dist/web/_next/static/media/0a7740363b4d4863-s.1110aazvokzp..woff2 +0 -0
  346. package/dist/web/_next/static/media/0da9c7f357bd9d4d-s.0ek5sshv8wk3m.woff2 +0 -0
  347. package/dist/web/_next/static/media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2 +0 -0
  348. package/dist/web/_next/static/media/41e95f694c5c4549-s.0r1jrq7neqdsq.woff2 +0 -0
  349. package/dist/web/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2 +0 -0
  350. package/dist/web/_next/static/media/5f9d24ebef5d5292-s.0esuu2f5si~v8.woff2 +0 -0
  351. package/dist/web/_next/static/media/6c55a692938ebbbc-s.0g6rbszwfgn9y.woff2 +0 -0
  352. package/dist/web/_next/static/media/8e6fa89aa22d24ec-s.p.0uvzar8hswo3p.woff2 +0 -0
  353. package/dist/web/_next/static/media/a218039a3287bcfd-s.p.17-1enzs_j91b.woff2 +0 -0
  354. package/dist/web/_next/static/media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2 +0 -0
  355. package/dist/web/_next/static/media/bdc7e24a509eb931-s.0apt5mko2.qn3.woff2 +0 -0
  356. package/dist/web/_next/static/media/c3cb240f9c892514-s.163v2i5cux7-c.woff2 +0 -0
  357. package/dist/web/_next/static/media/e2334d715941921e-s.p.12skym0rqknxy.woff2 +0 -0
  358. package/public/avatars/1777813826407-bea0ja-minimax.svg +0 -1
  359. package/public/avatars/1777813967088-3xlvd0-minimax.svg +0 -1
  360. package/public/avatars/1777814041714-yp0qeq-minimax.svg +0 -1
  361. package/public/avatars/1777904986095-rg26je-icon.png +0 -0
  362. package/public/avatars/1778953228323-5je54x-user.jpg +0 -0
  363. package/public/avatars/1778954057880-g01q6y-user.jpg +0 -0
  364. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → e8w3vd9Eov_LDYWj_0zsE}/_buildManifest.js +0 -0
  365. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → e8w3vd9Eov_LDYWj_0zsE}/_clientMiddlewareManifest.js +0 -0
  366. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → e8w3vd9Eov_LDYWj_0zsE}/_ssgManifest.js +0 -0
  367. /package/public/avatars/{1777815865622-08wp9m-user.jpg → user.jpg} +0 -0
@@ -0,0 +1,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 o=await r.then(e=>e.text());await (t?.(o)??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 o(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=o,i.stringArray=function(e){return o(e)&&e.every(e=>r(e))}},849471,(e,t,i)=>{"use strict";var r,o,n,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);(n=r||(i.ErrorCodes=r={})).ParseError=-32700,n.InvalidRequest=-32600,n.MethodNotFound=-32601,n.InvalidParams=-32602,n.InternalError=-32603,n.jsonrpcReservedErrorRangeStart=-32099,n.serverErrorStart=-32099,n.MessageWriteError=-32099,n.MessageReadError=-32098,n.PendingResponseRejected=-32097,n.ConnectionInactive=-32096,n.ServerNotInitialized=-32002,n.UnknownErrorCode=-32001,n.jsonrpcReservedErrorRangeEnd=-32e3,n.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=o||(i.Message=o={})).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,o,n;Object.defineProperty(i,"__esModule",{value:!0}),i.LRUCache=i.LinkedMap=i.Touch=void 0,(n=o||(i.Touch=o={})).None=0,n.First=1,n.AsOld=n.First,n.Last=2,n.AsNew=n.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=o.None){let i=this._map.get(e);if(i)return t!==o.None&&this.touch(i,t),i.value}set(e,t,i=o.None){let r=this._map.get(e);if(r)r.value=t,i!==o.None&&this.touch(r,i);else{switch(r={key:e,value:t,next:void 0,previous:void 0},i){case o.None:this.addItemLast(r);break;case o.First:this.addItemFirst(r);break;case o.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===o.First||t===o.Last){if(t===o.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===o.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=o.AsNew){return super.get(e,t)}peek(e){return super.get(e,o.None)}set(e,t){return super.set(e,t,o.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 o(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(i,"__esModule",{value:!0}),(o||(o={})).install=function(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e},i.default=o},127146,(e,t,i)=>{"use strict";var r,o;let n;Object.defineProperty(i,"__esModule",{value:!0}),i.Emitter=i.Event=void 0;let s=e.r(427883);o=r||(i.Event=r={}),n={dispose(){}},o.None=function(){return n};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,o=this._callbacks.length;r<o;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 o=0,n=i.length;o<n;o++)try{t.push(i[o].apply(r[o],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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.CancellationTokenSource=i.CancellationToken=void 0;let n=e.r(427883),s=e.r(750718),a=e.r(127146);(o=r||(i.CancellationToken=r={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:a.Event.None}),o.is=function(e){return e&&(e===o.None||e===o.Cancelled||s.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)};let l=Object.freeze(function(e,t){let i=(0,n.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.SharedArrayReceiverStrategy=i.SharedArraySenderStrategy=void 0;let n=e.r(280822);(o=r||(r={})).Continue=0,o.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 o=new Int32Array(i,0,1);Atomics.store(o,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 n.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.ReadableStreamMessageReader=i.AbstractMessageReader=i.MessageReader=void 0;let n=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,(o||(o={})).fromOptions=function(e){let t,i,r,o=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,o.set(i.name,i)),void 0!==e.contentDecoders)for(let t of e.contentDecoders)o.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,n.default)().applicationJson.decoder,s.set(r.name,r)),{charset:t,contentDecoder:i,contentDecoders:o,contentTypeDecoder:r,contentTypeDecoders:s}},i.ReadableStreamMessageReader=class extends c{constructor(e,t){super(),this.readable=e,this.options=o.fromOptions(t),this.buffer=(0,n.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,n.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.WriteableStreamMessageWriter=i.AbstractMessageWriter=i.MessageWriter=void 0;let n=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,(o||(o={})).fromOptions=function(e){return void 0===e||"string"==typeof e?{charset:e??"utf-8",contentTypeEncoder:(0,n.default)().applicationJson.encoder}:{charset:e.charset??"utf-8",contentEncoder:e.contentEncoder,contentTypeEncoder:e.contentTypeEncoder??(0,n.default)().applicationJson.encoder}},i.WriteableStreamMessageWriter=class extends c{constructor(e,t){super(),this.writable=e,this.options=o.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,o=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++}o+=e.byteLength,i++}if(4!==t)return;let n=this._read(o+r),s=new Map,a=this.toString(n,"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 o=i.substr(0,r),n=i.substr(r+1).trim();s.set(e?o.toLowerCase():o,n)}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 o=r.slice(0,e);t.set(o,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,o,n,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"),(o||(i.ProgressToken=o={})).is=function(e){return"string"==typeof e||"number"==typeof e},(n||(n={})).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 o(i,r,o){let n={jsonrpc:"2.0",id:e.id};i instanceof F.ResponseError?n.error=i.toJson():n.result=void 0===i?null:i,en(n,r,o),t.write(n).catch(()=>w.error("Sending response failed."))}function n(i,r,o){let n={jsonrpc:"2.0",id:e.id,error:i.toJson()};en(n,r,o),t.write(n).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: ${eo(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 n(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 n(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 n(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),o(t,e.method,h)},t=>{U.delete(a),t instanceof F.ResponseError?n(t,e.method,h):t&&L.string(t.message)?n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}):(U.delete(a),o(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},en(i,l,h),t.write(i).catch(()=>w.error("Sending response failed."))}}catch(t){U.delete(a),t instanceof F.ResponseError?o(t,e.method,h):t&&L.string(t.message)?n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}}else n(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===n.type.method&&2===r.length&&o.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: ${eo(e.error.data)}
7
+
8
+ `:e.result?i=`Result: ${eo(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),o=P.get(r);if(F.Message.isRequest(o)){let n=g?.connectionStrategy,s=n&&n.cancelUndispatched?n.cancelUndispatched(o,Y):Y(o);if(s&&(void 0!==s.error||void 0!==s.result)){P.delete(r),U.delete(i),s.id=o.id,en(s,e.method,Date.now()),t.write(s).catch(()=>w.error("Sending response for canceled message failed."));return}}let n=U.get(i);if(void 0!==n){n.cancel(),es(e);return}A.add(i)}var i,o=P;F.Message.isRequest(e)?o.set(J(e.id),e):F.Message.isResponse(e)?o.set(null===(i=e.id)?"res-unknown-"+(++E).toString():"res-"+i.toString(),e):o.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 eo(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 en(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: ${eo(e.error.data)}
12
+
13
+ `:e.result?r=`Result: ${eo(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: ${eo(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,o;if(el(),L.string(e)){r=e;let t=i[0],n=0,s=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(n=1,s=t);let a=i.length,l=a-n;switch(l){case 0:o=void 0;break;case 1:o=eh(s,i[n]);break;default:if(s===F.ParameterStructures.byName)throw Error(`Received ${l} parameters for 'by Name' notification parameter structure.`);o=i.slice(n,a).map(e=>ec(e))}}else r=e.method,o=eg(e,i);let n={jsonrpc:"2.0",method:r,params:o};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&(e=n.params?`Params: ${eo(n.params)}
18
+
19
+ `:"No parameters provided.\n\n"),f.log(`Sending notification '${n.method}'.`,e)}else ea("send-notification",n);return t.write(n).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(n.type,{token:t,value:i}),onUnhandledProgress:B.event,sendRequest:(e,...i)=>{let r,o,n,s;if(el(),!X())throw Error("Call listen() first.");if(L.string(e)){r=e;let t=i[0],n=i[i.length-1],a=0,l=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(a=1,l=t);let c=i.length;$.CancellationToken.is(n)&&(c-=1,s=n);let d=c-a;switch(d){case 0:o=void 0;break;case 1:o=eh(l,i[a]);break;default:if(l===F.ParameterStructures.byName)throw Error(`Received ${d} parameters for 'by Name' request parameter structure.`);o=i.slice(a,c).map(e=>ec(e))}}else{r=e.method,o=eg(e,i);let t=e.numberOfParams;s=$.CancellationToken.is(i[t])?i[t]:void 0}let l=x++;s&&(n=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:o};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&d.params&&(e=`Params: ${eo(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 o={method:r,timerStart:Date.now(),resolve:t=>{e(t),Q.sender.cleanup(l),n?.dispose()},reject:e=>{i(e),Q.sender.cleanup(l),n?.dispose()}};try{await t.write(d),I.set(l,o)}catch(e){throw w.error("Sending request failed."),o.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,o=c.Text;void 0!==i&&(L.boolean(i)?r=i:(r=i.sendNotification||!1,o=i.traceFormat||c.Text)),W=e,q=o,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(n.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 o=e.r(208832);Object.defineProperty(i,"LinkedMap",{enumerable:!0,get:function(){return o.LinkedMap}}),Object.defineProperty(i,"LRUCache",{enumerable:!0,get:function(){return o.LRUCache}}),Object.defineProperty(i,"Touch",{enumerable:!0,get:function(){return o.Touch}});let n=e.r(690428);Object.defineProperty(i,"Disposable",{enumerable:!0,get:function(){return n.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 o extends r.AbstractMessageBuffer{constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return o.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)}}o.emptyBuffer=new Uint8Array(0);class n{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 o(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 n(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 o=Object.getOwnPropertyDescriptor(t,i);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,o)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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 n=e.r(443903);o(e.r(443903),i);class s extends n.AbstractMessageReader{constructor(e){super(),this._onData=new n.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 n.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=n.NullLogger),n.ConnectionStrategy.is(r)&&(r={connectionStrategy:r}),(0,n.createMessageConnection)(e,t,i,r)}},564099,(e,t,i)=>{"use strict";t.exports=e.r(304877)},801971,e=>{"use strict";var t,i,r,o,n,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,eo,en,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,to,tn,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=o||(o={})).MIN_VALUE=0,eR.MAX_VALUE=0x7fffffff,eR.is=function(e){return"number"==typeof e&&eR.MIN_VALUE<=e&&e<=eR.MAX_VALUE},(eP=n||(n={})).create=function(e,t){return e===Number.MAX_VALUE&&(e=o.MAX_VALUE),t===Number.MAX_VALUE&&(t=o.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:n.create(e,t),end:n.create(i,r)};if(n.is(e)&&n.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)&&n.is(e.start)&&n.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,o,n){let s={startLine:e,endLine:t};return ek.defined(i)&&(s.startCharacter=i),ek.defined(r)&&(s.endCharacter=r),ek.defined(o)&&(s.kind=o),ek.defined(n)&&(s.collapsedText=n),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,o,n){let s={range:e,message:t};return ek.defined(i)&&(s.severity=i),ek.defined(r)&&(s.code=r),ek.defined(o)&&(s.source=o),ek.defined(n)&&(s.relatedInformation=n),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 o={kind:"rename",oldUri:e,newUri:t};return void 0!==i&&(void 0!==i.overwrite||void 0!==i.ignoreIfExists)&&(o.options=i),void 0!==r&&(o.annotationId=r),o},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,o;if(void 0===i?r=S.insert(e,t):w.is(i)?(o=i,r=x.insert(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),r=x.insert(e,t,o)),this.edits.push(r),void 0!==o)return o}replace(e,t,i){let r,o;if(void 0===i?r=S.replace(e,t):w.is(i)?(o=i,r=x.replace(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),r=x.replace(e,t,o)),this.edits.push(r),void 0!==o)return o}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,o){let n={name:e,kind:t,location:{uri:r,range:i}};return o&&(n.containerName=o),n},(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,o,n){let s={name:e,detail:t,kind:i,range:r,selectionRange:o};return void 0!==n&&(s.children=n),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=eo||(eo={})).create=function(e,t,i){let r={title:e},o=!0;return"string"==typeof t?(o=!1,r.kind=t):C.is(t)?r.command=t:r.edit=t,o&&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))},(to=en||(en={})).create=function(e,t){let i={range:e};return ek.defined(t)&&(i.data=t),i},to.is=function(e){return ek.defined(e)&&s.is(e.range)&&(ek.undefined(e.command)||C.is(e.command))},(tn=es||(es={})).create=function(e,t){return{tabSize:e,insertSpaces:t}},tn.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)&&n.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,o=t.slice(0,r),n=t.slice(r);e(o,i),e(n,i);let s=0,a=0,l=0;for(;s<o.length&&a<n.length;)0>=i(o[s],n[a])?t[l++]=o[s++]:t[l++]=n[a++];for(;s<o.length;)t[l++]=o[s++];for(;a<n.length;)t[l++]=n[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}),o=i.length;for(let t=r.length-1;t>=0;t--){let n=r[t],s=e.offsetAt(n.range.start),a=e.offsetAt(n.range.end);if(a<=o)i=i.substring(0,s)+n.newText+i.substring(a,i.length);else throw Error("Overlapping edit");o=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 o=t.charAt(r);i="\r"===o||"\n"===o,"\r"===o&&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 n.create(0,e);for(;i<r;){let o=Math.floor((i+r)/2);t[o]>e?r=o:i=o+1}let o=i-1;return n.create(o,e-t[o])}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,eo,"CodeActionContext",0,er,"CodeActionKind",0,et,"CodeActionTriggerKind",0,ei,"CodeDescription",0,_,"CodeLens",0,en,"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,n,"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,o,n;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?o=E.create(e,i):(n=w.is(r)?r:this._changeAnnotations.manage(r),o=E.create(e,i,n)),this._workspaceEdit.documentChanges.push(o),void 0!==n)return n}renameFile(e,t,i,r){let o,n,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)?o=i:r=i,void 0===o?n=k.create(e,t,r):(s=w.is(o)?o:this._changeAnnotations.manage(o),n=k.create(e,t,r,s)),this._workspaceEdit.documentChanges.push(n),void 0!==s)return s}deleteFile(e,t,i){let r,o,n;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?o=T.create(e,i):(n=w.is(r)?r:this._changeAnnotations.manage(r),o=T.create(e,i,n)),this._workspaceEdit.documentChanges.push(o),void 0!==n)return n}},"WorkspaceEdit",0,R,"WorkspaceFolder",0,eD,"WorkspaceSymbol",0,Z,"integer",0,r,"uinteger",0,o])},506659,(e,t,i)=>{"use strict";var r,o;Object.defineProperty(i,"__esModule",{value:!0}),i.ProtocolNotificationType=i.ProtocolNotificationType0=i.ProtocolRequestType=i.ProtocolRequestType0=i.RegistrationType=i.MessageDirection=void 0;let n=e.r(304877);(o=r||(i.MessageDirection=r={})).clientToServer="clientToServer",o.serverToClient="serverToClient",o.both="both",i.RegistrationType=class{constructor(e){this.method=e}};class s extends n.RequestType0{constructor(e){super(e)}}i.ProtocolRequestType0=s;class a extends n.RequestType{constructor(e){super(e,n.ParameterStructures.byName)}}i.ProtocolRequestType=a;class l extends n.NotificationType0{constructor(e){super(e)}}i.ProtocolNotificationType0=l;class c extends n.NotificationType{constructor(e){super(e,n.ParameterStructures.byName)}}i.ProtocolNotificationType=c},600082,(e,t,i)=>{"use strict";function r(e){return"string"==typeof e||e instanceof String}function o(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=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.objectLiteral=function(e){return null!==e&&"object"==typeof e}},621568,(e,t,i)=>{"use strict";var r,o;Object.defineProperty(i,"__esModule",{value:!0}),i.ImplementationRequest=void 0;let n=e.r(506659);(o=r||(i.ImplementationRequest=r={})).method="textDocument/implementation",o.messageDirection=n.MessageDirection.clientToServer,o.type=new n.ProtocolRequestType(o.method)},444062,(e,t,i)=>{"use strict";var r,o;Object.defineProperty(i,"__esModule",{value:!0}),i.TypeDefinitionRequest=void 0;let n=e.r(506659);(o=r||(i.TypeDefinitionRequest=r={})).method="textDocument/typeDefinition",o.messageDirection=n.MessageDirection.clientToServer,o.type=new n.ProtocolRequestType(o.method)},292254,(e,t,i)=>{"use strict";var r,o,n,s;Object.defineProperty(i,"__esModule",{value:!0}),i.DidChangeWorkspaceFoldersNotification=i.WorkspaceFoldersRequest=void 0;let a=e.r(506659);(n=r||(i.WorkspaceFoldersRequest=r={})).method="workspace/workspaceFolders",n.messageDirection=a.MessageDirection.serverToClient,n.type=new a.ProtocolRequestType0(n.method),(s=o||(i.DidChangeWorkspaceFoldersNotification=o={})).method="workspace/didChangeWorkspaceFolders",s.messageDirection=a.MessageDirection.clientToServer,s.type=new a.ProtocolNotificationType(s.method)},656642,(e,t,i)=>{"use strict";var r,o;Object.defineProperty(i,"__esModule",{value:!0}),i.ConfigurationRequest=void 0;let n=e.r(506659);(o=r||(i.ConfigurationRequest=r={})).method="workspace/configuration",o.messageDirection=n.MessageDirection.serverToClient,o.type=new n.ProtocolRequestType(o.method)},818145,(e,t,i)=>{"use strict";var r,o,n,s;Object.defineProperty(i,"__esModule",{value:!0}),i.ColorPresentationRequest=i.DocumentColorRequest=void 0;let a=e.r(506659);(n=r||(i.DocumentColorRequest=r={})).method="textDocument/documentColor",n.messageDirection=a.MessageDirection.clientToServer,n.type=new a.ProtocolRequestType(n.method),(s=o||(i.ColorPresentationRequest=o={})).method="textDocument/colorPresentation",s.messageDirection=a.MessageDirection.clientToServer,s.type=new a.ProtocolRequestType(s.method)},647203,(e,t,i)=>{"use strict";var r,o,n,s;Object.defineProperty(i,"__esModule",{value:!0}),i.FoldingRangeRefreshRequest=i.FoldingRangeRequest=void 0;let a=e.r(506659);(n=r||(i.FoldingRangeRequest=r={})).method="textDocument/foldingRange",n.messageDirection=a.MessageDirection.clientToServer,n.type=new a.ProtocolRequestType(n.method),(s=o||(i.FoldingRangeRefreshRequest=o={})).method="workspace/foldingRange/refresh",s.messageDirection=a.MessageDirection.serverToClient,s.type=new a.ProtocolRequestType0(s.method)},261435,(e,t,i)=>{"use strict";var r,o;Object.defineProperty(i,"__esModule",{value:!0}),i.DeclarationRequest=void 0;let n=e.r(506659);(o=r||(i.DeclarationRequest=r={})).method="textDocument/declaration",o.messageDirection=n.MessageDirection.clientToServer,o.type=new n.ProtocolRequestType(o.method)},547439,(e,t,i)=>{"use strict";var r,o;Object.defineProperty(i,"__esModule",{value:!0}),i.SelectionRangeRequest=void 0;let n=e.r(506659);(o=r||(i.SelectionRangeRequest=r={})).method="textDocument/selectionRange",o.messageDirection=n.MessageDirection.clientToServer,o.type=new n.ProtocolRequestType(o.method)},583147,(e,t,i)=>{"use strict";var r,o,n,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=o||(i.WorkDoneProgressCreateRequest=o={})).method="window/workDoneProgress/create",a.messageDirection=d.MessageDirection.serverToClient,a.type=new d.ProtocolRequestType(a.method),(l=n||(i.WorkDoneProgressCancelNotification=n={})).method="window/workDoneProgress/cancel",l.messageDirection=d.MessageDirection.clientToServer,l.type=new d.ProtocolNotificationType(l.method)},181305,(e,t,i)=>{"use strict";var r,o,n,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=o||(i.CallHierarchyIncomingCallsRequest=o={})).method="callHierarchy/incomingCalls",a.messageDirection=c.MessageDirection.clientToServer,a.type=new c.ProtocolRequestType(a.method),(l=n||(i.CallHierarchyOutgoingCallsRequest=n={})).method="callHierarchy/outgoingCalls",l.messageDirection=c.MessageDirection.clientToServer,l.type=new c.ProtocolRequestType(l.method)},582717,(e,t,i)=>{"use strict";var r,o,n,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=o||(i.SemanticTokensRegistrationType=o={})).method="textDocument/semanticTokens",c.type=new p.RegistrationType(c.method),(d=n||(i.SemanticTokensRequest=n={})).method="textDocument/semanticTokens/full",d.messageDirection=p.MessageDirection.clientToServer,d.type=new p.ProtocolRequestType(d.method),d.registrationMethod=o.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=o.method,(h=a||(i.SemanticTokensRangeRequest=a={})).method="textDocument/semanticTokens/range",h.messageDirection=p.MessageDirection.clientToServer,h.type=new p.ProtocolRequestType(h.method),h.registrationMethod=o.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.ShowDocumentRequest=void 0;let n=e.r(506659);(o=r||(i.ShowDocumentRequest=r={})).method="window/showDocument",o.messageDirection=n.MessageDirection.serverToClient,o.type=new n.ProtocolRequestType(o.method)},475767,(e,t,i)=>{"use strict";var r,o;Object.defineProperty(i,"__esModule",{value:!0}),i.LinkedEditingRangeRequest=void 0;let n=e.r(506659);(o=r||(i.LinkedEditingRangeRequest=r={})).method="textDocument/linkedEditingRange",o.messageDirection=n.MessageDirection.clientToServer,o.type=new n.ProtocolRequestType(o.method)},565285,(e,t,i)=>{"use strict";var r,o,n,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=o||(i.WillCreateFilesRequest=o={})).method="workspace/willCreateFiles",u.messageDirection=_.MessageDirection.clientToServer,u.type=new _.ProtocolRequestType(u.method),(h=n||(i.DidCreateFilesNotification=n={})).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,o,n,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=o||(i.MonikerKind=o={})).$import="import",a.$export="export",a.local="local",(l=n||(i.MonikerRequest=n={})).method="textDocument/moniker",l.messageDirection=c.MessageDirection.clientToServer,l.type=new c.ProtocolRequestType(l.method)},509523,(e,t,i)=>{"use strict";var r,o,n,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=o||(i.TypeHierarchySupertypesRequest=o={})).method="typeHierarchy/supertypes",a.messageDirection=c.MessageDirection.clientToServer,a.type=new c.ProtocolRequestType(a.method),(l=n||(i.TypeHierarchySubtypesRequest=n={})).method="typeHierarchy/subtypes",l.messageDirection=c.MessageDirection.clientToServer,l.type=new c.ProtocolRequestType(l.method)},639406,(e,t,i)=>{"use strict";var r,o,n,s;Object.defineProperty(i,"__esModule",{value:!0}),i.InlineValueRefreshRequest=i.InlineValueRequest=void 0;let a=e.r(506659);(n=r||(i.InlineValueRequest=r={})).method="textDocument/inlineValue",n.messageDirection=a.MessageDirection.clientToServer,n.type=new a.ProtocolRequestType(n.method),(s=o||(i.InlineValueRefreshRequest=o={})).method="workspace/inlineValue/refresh",s.messageDirection=a.MessageDirection.serverToClient,s.type=new a.ProtocolRequestType0(s.method)},172779,(e,t,i)=>{"use strict";var r,o,n,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=o||(i.InlayHintResolveRequest=o={})).method="inlayHint/resolve",a.messageDirection=c.MessageDirection.clientToServer,a.type=new c.ProtocolRequestType(a.method),(l=n||(i.InlayHintRefreshRequest=n={})).method="workspace/inlayHint/refresh",l.messageDirection=c.MessageDirection.serverToClient,l.type=new c.ProtocolRequestType0(l.method)},116681,(e,t,i)=>{"use strict";var r,o,n,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=o||(i.DocumentDiagnosticReportKind=o={})).Full="full",l.Unchanged="unchanged",(c=n||(i.DocumentDiagnosticRequest=n={})).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,o,n,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=o||(i.ExecutionSummary=o={})).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=n||(i.NotebookCell=n={})).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),o=Array.isArray(i);if(r!==o)return!1;if(r&&o){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),o=Object.keys(i);if(r.length!==o.length||(r.sort(),o.sort(),!e(r,o)))return!1;for(let o=0;o<r.length;o++){let n=r[o];if(!e(t[n],i[n]))return!1}}return!0}(e.metadata,t.metadata)&&i.add("metadata"),void 0===e.executionSummary&&void 0===t.executionSummary||o.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,n.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,n.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.InlineCompletionRequest=void 0;let n=e.r(506659);(o=r||(i.InlineCompletionRequest=r={})).method="textDocument/inlineCompletion",o.messageDirection=n.MessageDirection.clientToServer,o.type=new n.ProtocolRequestType(o.method)},466754,(e,t,i)=>{"use strict";var r,o,n,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,eo,en,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,to,tn,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)},(o||(i.NotebookDocumentFilter=o={})).is=function(e){return tc.objectLiteral(e)&&(tc.string(e.notebookType)||tc.string(e.scheme)||tc.string(e.pattern))},(n||(i.NotebookCellTextDocumentFilter=n={})).is=function(e){return tc.objectLiteral(e)&&(tc.string(e.notebook)||o.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)&&!n.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=eo||(i.DocumentLinkRequest=eo={})).method="textDocument/documentLink",e8.messageDirection=ta.MessageDirection.clientToServer,e8.type=new ta.ProtocolRequestType(e8.method),(e7=en||(i.DocumentLinkResolveRequest=en={})).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),(to=eh||(i.PrepareRenameRequest=eh={})).method="textDocument/prepareRename",to.messageDirection=ta.MessageDirection.clientToServer,to.type=new ta.ProtocolRequestType(to.method),(tn=eg||(i.ExecuteCommandRequest=eg={})).method="workspace/executeCommand",tn.messageDirection=ta.MessageDirection.clientToServer,tn.type=new ta.ProtocolRequestType(tn.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,o){return r.ConnectionStrategy.is(o)&&(o={connectionStrategy:o}),(0,r.createMessageConnection)(e,t,i,o)}},350435,(e,t,i)=>{"use strict";var r,o,n=e.e&&e.e.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var o=Object.getOwnPropertyDescriptor(t,i);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,o)}: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)||n(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=o||(i.LSPErrorCodes=o={})).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 o=Object.getOwnPropertyDescriptor(t,i);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,o)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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 n=e.r(564099);o(e.r(564099),i),o(e.r(350435),i),i.createProtocolConnection=function(e,t,i,r){return(0,n.createMessageConnection)(e,t,i,r)}},663544,108462,545341,610504,e=>{"use strict";let t;var i,r,o,n,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,eo,en,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 o=r.length-1;o>=0;o--){i=t.joinPath(i,r[o]);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,o){super(),this.id=e,this.name=t,this.logger=i,this.proxy=r,this.extension=o,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,o,n){this.initData=t,this.extHostFileSystem=i,this.extHostFileSystemInfo=r,this.loggerService=o,this.logService=n,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,o;if(!(e=e.trim()))throw Error("illegal argument `name`. must not be falsy");let n="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(n){let t=this.extHostFileSystemInfo.extUri.joinPath(this.initData.logsLocation,i.identifier.value);o=this.extHostFileSystemInfo.extUri.joinPath(t,`${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`);let n=this.logOutputChannels.get(o);if(n)return n;l=this.loggerService.getLogLevel(o)??l,r=this.doCreateLogOutputChannel(e,o,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),o&&this.logOutputChannels.delete(o)}))}),o){let t=this.createExtHostLogOutputChannel(e,l??this.logService.getLevel(),r,a);return this.logOutputChannels.set(o,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 o=await this.outputDirectoryPromise,n=this.extHostFileSystemInfo.extUri.joinPath(o,`${this.namePool++}-${e.replace(/[\\/:\*\?"<>\|]/g,"")}.log`),s=r.add(this.loggerService.createLogger(n,{logLevel:"always",donotRotate:!0,donotUseFormatters:!0,hidden:!0})),a=await this.proxy.$register(e,n,t,i.identifier.value);return r.add((0,eH.toDisposable)(()=>this.loggerService.deregisterLogger(n))),new eB(a,e,s,this.proxy,i)}async doCreateLogOutputChannel(e,t,i,r,o){await this.createExtensionLogDirectory(t);let n=`${r.identifier.value}.${this.extHostFileSystemInfo.extUri.basename(t)}`,s=o.add(this.loggerService.createLogger(t,{id:n,name:e,logLevel:i,extensionId:r.identifier.value}));return o.add((0,eH.toDisposable)(()=>this.loggerService.deregisterLogger(t))),new eG(n,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 o=()=>{if(r.isDisposed)throw Error("Channel has been closed")},n=r.add(new ey.Emitter);function s(e){t=e,n.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:n.event,trace(e,...t){o(),i.then(i=>i.trace(e,...t))},debug(e,...t){o(),i.then(i=>i.debug(e,...t))},info(e,...t){o(),i.then(i=>i.info(e,...t))},warn(e,...t){o(),i.then(i=>i.warn(e,...t))},error(e,...t){o(),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 to(e,t,i){return tr(e.uri,t.uri,i)?0:(0,e0.compare)(e.uri.toString(),t.uri.toString())}function tn(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 o=e.slice(0).sort((e,t)=>i(e,t,r)),n=t.slice(0).sort((e,t)=>i(e,t,r));return(0,eY.delta)(o,n,(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:o,name:n,folders:s,configuration:a,transient:l,isUntitled:c}=e,d=[];t?s.forEach((e,o)=>{let n=eD.URI.revive(e.uri),s=tl._findFolder(i||t,n,r);s?(s.name=e.name,s.index=e.index,d.push(s)):d.push({uri:n,name:e.name,index:o})}):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(o,n,d,!!l,a?eD.URI.revive(a):null,!!c,e=>ta(e,r)),{added:h,removed:g}=ts(t?t.workspaceFolders:[],u.workspaceFolders,to,r);return{workspace:u,added:h,removed:g}}static _findFolder(e,t,i){for(let r=0;r<e.folders.length;r++){let o=e.workspaceFolders[r];if(tr(o.uri,t,i))return o}}constructor(e,t,i,r,o,n,s){super(e,i.map(e=>new e2.WorkspaceFolder(e)),r,o,s),this._name=t,this._isUntitled=n,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,o){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=o,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 n=t.workspace;this._confirmedWorkspace=n?new tl(n.id,n.name,[],!!n.transient,n.configuration?eD.URI.revive(n.configuration):null,!!n.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 o=[];if(Array.isArray(r)&&r.forEach(e=>{eD.URI.isUri(e.uri)&&!o.some(t=>tr(t.uri,e.uri,this._extHostFileSystemInfo))&&o.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===o.length)return!1;let n=this._actualWorkspace?this._actualWorkspace.workspaceFolders:[];if(t+i>n.length)return!1;let s=n.slice(0);s.splice(t,i,...o.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(n,s,tn,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,o).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 o=this.getWorkspaceFolder(i,!0);if(!o)return r;void 0===t&&this._actualWorkspace&&(t=this._actualWorkspace.folders.length>1);let n=(0,eN.relativePath)(o.uri,i);return t&&o.name&&(n=`${o.name}/${n}`),n}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,o=ef.CancellationToken.None){this._logService.trace(`extHostWorkspace#findFiles: fileSearch, extension: ${r.value}, entryPoint: findFiles`);let n="",s=!0;return null===t?s=!1:void 0!==t&&(n="string"==typeof t?t:t.pattern),this._findFilesImpl({type:"include",value:e},{exclude:[n],maxResults:i,useExcludeSettings:s?eb.ExcludeSettingOptions.FilesExclude:eb.ExcludeSettingOptions.None,useIgnoreFiles:{local:!1}},o)}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 o=r.map(i=>{let r=th(t.exclude),o={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},n=tu(e6.GlobPattern.from(i)),s=n?.folder;return"include"===e.type?o.includePattern=n?.pattern:o.filePattern=n?.pattern,{folder:s,options:o}});return this._findFilesBase(o,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)),o=new Map;for(let e of i){let t=r.getComparisonKey(e);o.has(t)||o.set(t,e)}return Array.from(o.values())}findTextInFiles2(e,t,i,r=ef.CancellationToken.None){this._logService.trace(`extHostWorkspace#findTextInFiles2: textSearch, extension: ${i.value}, entryPoint: findTextInFiles2`);let o=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}},n=(t?.include?.map(e=>o(e))??[o(void 0)]).filter(e=>!!e),s=new eH.DisposableStore,a=s.add(new ey.Emitter),l=this.findTextInFilesBase(e,n,(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 o=this._requestIdProvider.getNext(),n=!1;if(r.onCancellationRequested(e=>{n=!0}),this._activeSearchCallbacks[o]=e=>{if(n)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,o,r)||{})??[]);return delete this._activeSearchCallbacks[o],i.reduce((e,t)=>({limitHit:e?.limitHit||(t?.limitHit??!1),message:[e?.message??[],t?.message??[]].flat()}),{})??{limitHit:!1}}catch(e){throw delete this._activeSearchCallbacks[o],e}}async findTextInFiles(e,t,i,r,o=ef.CancellationToken.None){this._logService.trace(`extHostWorkspace#findTextInFiles: textSearch, extension: ${r.value}, entryPoint: findTextInFiles`);let n=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:n,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})},o)}$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 o=await r.provideEditSessionIdentity(i,t);if(this._logService.info("Provider returned edit session identifier: ",o),o)return o}async $provideEditSessionIdentityMatch(e,t,i,r){this._logService.info("Getting edit session identifier for workspaceFolder",e);let o=await this.resolveWorkspaceFolder(eD.URI.revive(e));if(!o)return void this._logService.warn("Unable to resolve workspace folder");this._logService.info("Invoking #provideEditSessionIdentity for workspaceFolder",o);let n=this._editSessionIdentityProviders.get(o.uri.scheme);if(this._logService.info(`Provider for scheme ${o.uri.scheme} is defined: `,!!n),!n)return;let s=await n.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 o=function(e){t.call(i,e)};return o.extension=e,this._onWillCreateEditSessionIdentityEvent.event(o,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 o=await r.provideCanonicalUri?.(eD.URI.revive(e),t,i);if(o)return o}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),o=await this._proxy.$resolveDecoding(i,r),n=(await (0,e7.toDecodeStream)((0,eF.bufferToStream)(eF.VSBuffer.wrap(e)),{...o,acceptTextOnly:!0,overwriteEncoding:e=>null===e||e===o.preferredEncoding?Promise.resolve(o.preferredEncoding):this._proxy.$validateDetectedEncoding(i,e,r)})).stream;return(0,e9.consumeStream)(n,e=>e.join(""))}async encode(e,t){let[i,r]=this.toEncodeDecodeParameters(t),{encoding:o,addBOM:n}=await this._proxy.$resolveEncoding(i,r);if(o===e7.UTF8&&!n)return eF.VSBuffer.fromString(e).buffer;let s=await (0,e7.toEncodeReadable)((0,te.stringToSnapshot)(e),o,{addBOM:n});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 o=r.map(e=>({uri:e,rank:(0,e0.count)(e.path,"/")})),n=(0,eY.groupBy)(o,(e,t)=>e.rank-t.rank||(0,e0.compare)(e.uri.path,t.uri.path)),s=[];t:for(let e of n){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:o,extensionDescription:n}=this._provider.get(e);return await Promise.all(t.map(async e=>{try{let{uri:t,id:s}=e,a=await Promise.resolve(o.provideFileDecoration(eD.URI.revive(t),i));if(!a)return;try{eh.FileDecoration.validate(a),a.badge&&"string"!=typeof a.badge&&(0,tp.checkProposedApiEnabled)(n,"codiconDecoration"),r[s]=[a.propagate,a.tooltip,a.badge,a.color]}catch(e){this._logService.warn(`INVALID decoration from extension '${n.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)||{},o=this._toReadonlyValue(this._configuration.getValue(e,r,this._extHostWorkspace.workspace));e&&this._validateConfigurationAccess(e,r,i?.identifier);let n={has:e=>void 0!==tS(o,e),get:(t,n)=>{this._validateConfigurationAccess(e?`${e}.${t}`:t,r,i?.identifier);let s=tS(o,t);if(void 0===s)s=n;else{let e,i=(t,r)=>{if((0,eK.isObject)(t)){let n,s=()=>{e=e||(0,tv.deepClone)(o),n=n||tS(e,r)};return new Proxy(t,{get:(t,o)=>{if("string"==typeof o&&"tojson"===o.toLowerCase())return s(),()=>n;if(e)return(n=n||tS(e,r))[o];let a=t[o];return"string"==typeof o?i(a,`${r}.${o}`):a},set:(e,t,i)=>(s(),n&&(n[t]=i),!0),deleteProperty:(e,t)=>(s(),n&&delete n[t],!0),defineProperty:(e,t,i)=>(s(),n&&Object.defineProperty(n,t,i),!0)})}return Array.isArray(t)?(0,tv.deepClone)(t):t};s=i(s,t)}return s},update:(t,i,o,n)=>{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}}(o);return void 0!==i?this._proxy.$updateConfigurationOption(s,t,i,r,n):this._proxy.$removeConfigurationOption(s,t,r,n)},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 o&&(0,tv.mixin)(n,o,!1),Object.freeze(n)}_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),o=i?`[${i.value}] `:"";if(tC.ConfigurationScope.RESOURCE===r){void 0===t?.resource&&this._logService.warn(`${o}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(`${o}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 o=t;return{enumerable:!0,configurable:!1,get:()=>o,set(t){if(!i(o,t)){let i=o;o=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 o=(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:()=>o.parent instanceof tH?void 0:o.parent},children:{value:(0,tR.createTestItemChildren)(o,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 o,n;e.listener?.({op:tR.TestItemEventOp.DocumentSynced}),(o=i)===(n=t)||o&&n&&o.isEqual(n)||(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)}))}})(o,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(),o=new tB(t,i,e,this._outputLogger,this._inLoggingOnlyMode,this.getBuiltInCommonProperties(e),{isUsageEnabled:r.isUsageEnabled,isErrorsEnabled:r.isErrorsEnabled}),n=this._telemetryLoggers.get(e.identifier.value)??[];return this._telemetryLoggers.set(e.identifier.value,[...n,o]),o.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 o=!1;for(let e of r)e.ignoreUnhandledExtHostErrors||(e.logError(t),o=!0);return o}};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,o,n,s){this._extension=i,this._logger=r,this._inLoggingOnlyMode=o,this._commonProperties=n,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,[]),o=Error("string"==typeof r.message?r.message:void 0,{cause:r.cause});o.stack="string"==typeof r.stack?r.stack:void 0,o.name="string"==typeof r.name?r.name:"unknown",t=this.mixInCommonPropsAndCleanData(t||{}),this._inLoggingOnlyMode||this._sender.sendErrorData(o,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,o,n){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:o,extension:n}),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,o=(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(o):o,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:o,thisArg:n,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 o.apply(n,t)}catch(o){if(e===this.converter.delegatingCommandId){let i=this.converter.getActualCommand(...t);i&&(e=i.command)}if((0,eg.isCancellationError)(o)||this._logService.error(o,e,r.extension?.identifier),!i)throw o;if(r.extension?.identifier){let e=this.#i.onExtensionError(r.extension.identifier,o);this._logService.trace("forwarded error to extension?",e,r.extension?.identifier)}throw new class extends Error{constructor(){super((0,tq.toErrorMessage)(o)),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,o){this.id=e,this.internalId=t,this.description=i,this.args=r,this.result=o}}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,o,n,s,a,l=!0){super(t,i,r,o),this._proxy=e,this._languageId=n,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,o=t.end.line,n=[];n.push(this._lines[r].substring(t.start.character));for(let e=r+1;e<o;e++)n.push(this._lines[e]);return n.push(this._lines[o].substring(0,t.end.character)),n.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 o=(0,t9.getWordAtText)(i.character+1,(0,t9.ensureValidWordDefinition)(t),this._lines[i.line],0);if(o)return new ti.Range(i.line,o.startColumn-1,i.line,o.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 o=this;this.value={get tabSize(){return o._tabSize},set tabSize(value){o._setTabSize(value)},get indentSize(){return o._indentSize},set indentSize(value){o._setIndentSize(value)},get insertSpaces(){return o._insertSpaces},set insertSpaces(value){o._setInsertSpaces(value)},get cursorStyle(){return o._cursorStyle},set cursorStyle(value){o._setCursorStyle(value)},get lineNumbers(){return o._lineNumbers},set lineNumbers(value){o._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,o,n,s,a){this.id=e,this._proxy=t,this._logService=i,this._disposed=!1,this._hasDecorationsForKey=new Set,this._selections=o,this._options=new il(this._proxy,this.id,n,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,o,n={undoStopBefore:!0,undoStopAfter:!0}){let s;if(l._disposed)return Promise.reject(Error("TextEditor#insertSnippet not possible on closed editors"));if(!o||Array.isArray(o)&&0===o.length)s=l._selections.map(e=>e6.Range.from(e));else if(o instanceof tY.Position){let{lineNumber:e,column:t}=e6.Position.from(o);s=[{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}]}else if(o instanceof ti.Range)s=[e6.Range.from(o)];else for(let e of(s=[],o))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===n.keepWhitespace&&(n.keepWhitespace=!1),t.$tryInsertSnippet(e,r.value.version,i.value,s,n)},setDecorations(i,r){let o=0===r.length;(!o||l._hasDecorationsForKey.has(i.key))&&(o?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 o=Array(4*r.length);for(let e=0,t=r.length;e<t;e++){let t=r[e];o[4*e]=t.start.line+1,o[4*e+1]=t.start.character+1,o[4*e+2]=t.end.line+1,o[4*e+3]=t.end.character+1}return t.$trySetDecorationsFast(e,i.key,o)}}))},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 o=this;this.value={get name(){return o._name||""},get processId(){return o._pidPromise},get creationOptions(){return o._creationOptions},get exitStatus(){return o._exitStatus},get state(){return o._state},get selection(){return o._selection},get shellIntegration(){return o.shellIntegration},sendText(e,t=!0){o._checkDisposed(),o._proxy.$sendText(o._id,e,t)},show(e){o._checkDisposed(),o._proxy.$show(o._id,e)},hide(){o._checkDisposed(),o._proxy.$hide(o._id)},dispose(){o._disposed||(o._disposed=!0,o._proxy.$dispose(o._id))},get dimensions(){if(void 0===o._cols||void 0===o._rows)return;return{columns:o._cols,rows:o._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,o,n){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(o)?o.id:void 0,location:t?.location||this._serializeParentTerminal(e,i),isTransient:!0,shellIntegrationNonce:n??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),o=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,o);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 o={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},n=new ix(this._proxy,e,o,i);this._terminals.push(n),this._onDidOpenTerminal.fire(n.value),n.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 o=await r.provideTerminalCompletions(this.activeTerminal,t,i);if(null==o)return;let n=ib.isWindows&&this.activeTerminal.state?.shell!==i_.WindowsShellType.GitBash?"\\":"/";return e6.TerminalCompletionList.from(o,n)}$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 o=await r.provideTerminalQuickFixes(t,i);if(null===o||Array.isArray(o)&&0===o.length)return;let n=new im.DisposableStore;if(this._lastQuickFixCommands.value=n,!Array.isArray(o))return o?e6.TerminalQuickFix.from(o,this._extHostCommands.converter,n):void 0;let s=[];for(let e of o){let t=e6.TerminalQuickFix.from(e,this._extHostCommands.converter,n);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 o=new ef.CancellationTokenSource;this._terminalLinkCancellationSource.set(e,o);let n=[],s={terminal:i.value,line:t},a=[];for(let e of this._linkProviders)a.push(eU.Promises.withAsyncBody(async t=>{o.token.onCancellationRequested(()=>t({provider:e,links:[]}));let i=await e.provideTerminalLinks(s,o.token)||[];o.token.isCancellationRequested||t({provider:e,links:i})}));let l=await Promise.all(a);if(o.token.isCancellationRequested)return[];let c=new Map;for(let e of l)e&&e.links.length>0&&n.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),n}$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),o=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!==o.applyAtProcessCreation||r.options?.applyAtShellIntegration!==o.applyAtShellIntegration||r.scope?.workspaceFolder?.index!==t.scope?.workspaceFolder?.index){let i=this.getKey(e,t.scope),r={variable:e,...t,options:o};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},(o=A||(A={})).from=function(e){if(null!=e)return e},o.to=function(e){if(null!=e)return e},(n=M||(M={})).from=function(e){if(null!=e)return e},n.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 o=I.from(e.definition);if(r=e.scope?"number"==typeof e.scope?e.scope:e.scope.uri:eh.TaskScope.Workspace,o&&r)return{_id:e._id,definition:o,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,o;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 n=I.to(e.definition);if(e.source&&(o=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),!n||!o)return;let s=new eh.Task(n,o,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,o,n,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=o,this._terminalService=n,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 o=await this.getTaskExecution(e),n=this._terminalService.getTerminalById(t)?.value;o&&(o.terminal=n),this._onDidExecuteTask.fire({execution:o})}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=[],o=(0,eU.asPromise)(()=>i.provider.provideTasks(ef.CancellationToken.None)).then(e=>this.provideTasksInternal(t,r,i,e));return new Promise(e=>{o.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 o=await i.provider.resolveTask(r,ef.CancellationToken.None);if(!o)return;this.checkDeprecation(o,i);let n=U.from(o,i.extension);if(!n)throw Error("Unexpected: Task cannot be resolved.");if(o.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(n.execution)&&await this.addCustomExecution(n,o,!0),await this.resolveTaskInternal(n)}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,o,n,s,a){super(e,t,i,r,o,n,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 o=[];if(r)for(let n of r){if(this.checkDeprecation(n,i),!n.definition||!e[n.definition.type]){let e=n.source?n.source:"No task source";this._logService.warn(`The task [${e}, ${n.name}] uses an undefined task type. The task will be ignored in the future.`)}let r=U.from(n,i.extension);r&&N.is(r.execution)?(o.push(r),t.push(this.addCustomExecution(r,n,!0))):this._logService.warn("Only custom execution tasks supported.")}return{tasks:o,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),o=this._extHostTabGroups.filter(e=>r.removed.includes(e.groupId)).map(e=>e.apiObject),n=[],s=[];this._extHostTabGroups=e.map(e=>{let t=new iG(e,()=>this._activeGroupId);return r.added.includes(t.groupId)?n.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:n,closed:o,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,o,n){this.activationFailed=e,this.activationFailedError=t,this.activationTimes=i,this.module=r,this.exports=o,this.disposable=n}}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 o=this._operations.get(r);if(o){i.push(o);continue}if(this._isHostExtension(r)){i.push(this._handleActivationRequest({id:this._globalRegistry.getExtensionDescription(r).identifier,reason:e.reason}));continue}let n=this._registry.getExtensionDescription(r);if(n){if(!n.main&&!n.browser)continue;i.push(this._handleActivationRequest({id:n.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 o=new i5(e.id,t,e.reason,i,r,this._host,this._logService);return this._operations.set(e.id,o),o}_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,o,n,s){this._id=e,this._displayName=t,this._reason=i,this._deps=r,this._value=o,this._host=n,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,o=await this._proxy.$initializeExtensionStorage(e,t);return o&&(r=this.safeParseValue(e,t,o)),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 ro=e.i(299051),rn=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:o,location:n,cancellable:s}=t,a={label:e.displayName||e.name,id:e.identifier.value};return this._proxy.$startProgress(r,{location:e6.ProgressLocation.from(n),title:o,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:o,location:n,cancellable:s}=t;return this._proxy.$startProgress(r,{location:e6.ProgressLocation.from(n),title:o,source:e,cancellable:s},void 0).catch(eg.onUnexpectedExternalError),this._withProgress(r,i,!!s)}_withProgress(e,t,i){let r,o;i&&(r=new ef.CancellationTokenSource,this._mapHandleToCancellationSource.set(e,r));let n=e=>{this._proxy.$progressEnd(e),this._mapHandleToCancellationSource.delete(e),r?.dispose()};try{o=t(new ry(this._proxy,e),i&&r?r.token:ef.CancellationToken.None)}catch(t){throw n(e),t}return o.then(t=>n(e),t=>n(e)),o}$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,o,n,s){this._initData=t,this._extHostWindow=i,this._extHostUrls=r,this._extHostProgress=o,this._extHostLoggerService=n,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 o,n=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(" "):"";o=`${n} ${t} challenge:${e} ${r} ${s}`}else{let e=[...i].sort().join(" ");o=`${n} ${t} ${e} ${s}`}return await this._getSessionTaskSingler.getOrCreate(o,async()=>{await this._proxy.$ensureProvider(t);let o=e.displayName||e.name;return this._proxy.$getSession(t,i,n,o,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 o=i.onDidChangeSessions(t=>this._proxy.$sendDidChangeSessions(e,t));this._authenticationProviders.set(e,{label:t,provider:i,disposable:o,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 o=r.provider;if("function"==typeof o.getSessionsFromChallenges)return i.authorizationServer=eD.URI.revive(i.authorizationServer),await o.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 o=r.provider;if("function"==typeof o.createSessionFromChallenges)return i.authorizationServer=eD.URI.revive(i.authorizationServer),await o.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,o,n){if(!r){let n=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,o=e.client_secret}catch(e){this._logService.warn(`Dynamic registration failed for ${n.toString()}: ${e.message}. Prompting user for client ID and client secret...`)}if(!r){this._logService.info(`Prompting user for client registration details for ${n.toString()}`);let e=await this._proxy.$promptForClientRegistration(n.toString());if(!e)throw Error("User did not provide client details");r=e.clientId,o=e.clientSecret,this._logService.info(`User provided client registration for ${n.toString()}`),o?this._logService.trace(`User provided client secret for ${n.toString()}`):this._logService.trace(`User did not provide client secret for ${n.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,o,this._onDidDynamicAuthProviderTokensChange,n||[]);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,o,n,s,a,l,c,d,u,h){this._extHostWindow=e,this._extHostUrls=t,this._initData=i,this._extHostProgress=r,this._proxy=n,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=o.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=>n.$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(" "),o=this._tokenStore.sessions.filter(e=>(0,eY.equals)([...e.scopes].sort(),i));if(this._logger.info(`Found ${o.length} sessions for scopes: ${r}`),o.length){let e=[],t=[],n=new Map(this._tokenStore.tokens.map(e=>[e.access_token,e]));for(let i of o){let o=n.get(i.accessToken);if(o&&o.expires_in){let n=Date.now(),s=1e3*o.expires_in;if(n>o.created_at+s-3e5){if(this._logger.info(`Token for session ${i.id} is about to expire, refreshing...`),t.push(o),!o.refresh_token){this._logger.warn(`No refresh token available for scopes ${i.scopes.join(" ")}. Throwing away token.`);continue}try{let t=await this.exchangeRefreshTokenForToken(o.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}),o=this._tokenStore.sessions.filter(e=>(0,eY.equals)([...e.scopes].sort(),i))),this._logger.info(`Found ${o.length} sessions for scopes: ${r}`),o}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,o;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 n=this.generateRandomString(64),s=await this.generateCodeChallenge(n),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{o=(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(o,n,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 o=new URLSearchParams;o.append("client_id",this._clientId),o.append("grant_type","authorization_code"),o.append("code",e),o.append("redirect_uri",i),o.append("code_verifier",t),this._resourceMetadata?.resource&&o.append("resource",this._resourceMetadata.resource),this._clientSecret&&o.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: ${o.toString()}`);try{r=await fetch(this._serverMetadata.token_endpoint,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:o.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 n=await r.json();if((0,rc.isAuthorizationTokenResponse)(n))return this._logger.info("Successfully exchanged authorization code for token."),n;if((0,rc.isAuthorizationErrorResponse)(n)&&n.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(n)}`)}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=[],o=[];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)||o.push(t);(r.length>0||o.length>0)&&(this._logger.trace(`Sessions changed: added ${r.length}, removed ${o.length}`),this._onDidChangeSessions.fire({added:r,removed:o,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 o=await r.provider.provideLanguageModelChatInformation(t,i)??[],n=o.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<n.length;e++)this._localModels.set(n[e].identifier,{metadata:n[e].metadata,info:o[e]});return n}async $startChatRequest(e,t,i,r,o,n){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;n.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),{...o,modelOptions:o.modelOptions??{},requestInitiator:eI.ExtensionIdentifier.toKey(i),toolMode:o.toolMode??eh.LanguageModelChatToolMode.Auto},h,n)}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 o=this._languageModelProviders.get(r.metadata.vendor);return o?Promise.resolve(o.provider.provideTokenCount(r.info,t,i)):Promise.resolve(0)}async getDefaultLanguageModel(e,t){let i;for(let[r,o]of(t&&await this.selectLanguageModels(e,{}),this._localModels))if(o.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 o=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(!o._localModels.has(t))throw eh.LanguageModelError.NotFound(t);return o._computeTokenLength(t,e,i??ef.CancellationToken.None)},sendRequest(i,r,n){if(!o._localModels.has(t))throw eh.LanguageModelError.NotFound(t);return o._sendChatRequest(e,t,i,r??{},n??ef.CancellationToken.None)}}}return i}async selectLanguageModels(e,t){let i=await this._proxy.$selectChatModels({...t,extension:e.identifier}),r=[],o=i.map(t=>this.getLanguageModelByIdentifier(e,t));for(let e of(await Promise.all(o)))e&&r.push(e);return r}async _sendChatRequest(e,t,i,r,o){let n=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(n),r,o)}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 o=rl.INTERNAL_AUTH_PROVIDER_PREFIX+t.identifier.value;if(await this._extHostAuthentication.getSession(e,o,[],{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,o,[],{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:o}of e){let e=this._modelAccessList.get(i)??new eI.ExtensionIdentifierSet;if(e.has(r)!==o){o?e.add(r):e.delete(r),this._modelAccessList.set(i,e);let n={from:i,to:r};t.push(n),this._onDidChangeModelAccess.fire(n)}}}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{#o;constructor(e,t){this.disposables=new eH.DisposableStore,this._id=eI.ExtensionIdentifier.toKey(e.identifier),this.#o=t,this.onDidChange=ey.Event.map(ey.Event.filter(this.#o.onDidChangePassword,e=>e.extensionId===this._id),e=>({key:e.key}),this.disposables)}dispose(){this.disposables.dispose()}get(e){return this.#o.get(this._id,e)}store(e,t){return this.#o.store(this._id,e,t)}delete(e){return this.#o.delete(this._id,e)}keys(){return this.#o.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:o}=t;if(this.isDefaultLanguage)return(0,e0.format2)(i,r??{});let n=i;o&&o.length>0&&(n+=`/${Array.isArray(o)?o.join(""):o}`);let s=this.bundleCache.get(e)?.contents[n];return s||this.logService.warn(`Using default string since no string found in i18n bundle that has the key: ${n}`),(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),o=JSON.parse(r);t=e.isBuiltin?o.contents?.bundle:o}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,o,n,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=o,this._logService=n,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 ro.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 o=rK(e,t);this._mainThreadTelemetryProxy.$publicLog2("extensionActivationTimes",{...o,...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 o=this._isESM(e),n=new iY.DisposableStore,s=new i0(t.startup);return Promise.all([o?this._loadESMModule(e,(0,eN.joinPath)(e.extensionLocation,r),s):this._loadCommonJSModule(e,(0,eN.joinPath)(e.extensionLocation,r),s),this._loadExtensionContext(e,n)]).then(t=>((0,iJ.mark)(`code/extHost/willActivateExtension/${e.identifier.value}`),K._callActivate(this._logService,e.identifier,t[0],t[1],n,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)),o=t.add(new i9(e.identifier.value,!1,this._storage)),n=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,o.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:o,secrets:n,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,o,n){return i=i||{activate:void 0,deactivate:void 0},this._callActivateOptional(e,t,i,r,n).then(e=>new i1(!1,null,n.build(),i,e,(0,iY.toDisposable)(()=>{o.dispose(),(0,iY.dispose)(r.subscriptions)})))}static _callActivateOptional(e,t,i,r,o){if("function"!=typeof i.activate)return Promise.resolve(i);try{o.activateCallStart(),e.trace(`ExtensionService#_callActivateOptional ${t.value}`);let n=i.activate.apply(globalThis,[r]);return o.activateCallStop(),o.activateResolveStart(),Promise.resolve(n).then(e=>(o.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 o of t.activationEvents??[])if("onStartupFinished"===o)if(Date.now()-i>50){this._activateAllStartupFinishedDeferred(e,r);break}else this._activateOneStartupFinished(t,o)}})}_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)},o=await (0,rI.checkActivateWorkspaceContainsExtension)(r,t);if(o)return this._activateById(t.identifier,{startup:!0,extensionId:t.identifier,activationEvent:o.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),o=await (r?this._loadESMModule(null,t,new i0(!1)):this._loadCommonJSModule(null,t,new i0(!1)));if(!o||"function"!=typeof o.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)))},n=(0,eN.originalFSPath)(t),s=o.run(n,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,o,n,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:n,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/${n}`),r=await s.resolve(a,{resolveAttempt:t,execServer:o}),(0,iJ.mark)(`code/extHost/didResolveAuthorityOK/${n}`),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/${n}`),!(o=await s.resolveExecServer?.(a,{resolveAttempt:t,execServer:o})))throw new eh.RemoteAuthorityResolverError(`Exec server was not available for ${a}`,rt.RemoteAuthorityResolverErrorCode.NoResolverFound);(0,iJ.mark)(`code/extHost/didResolveExecServerOK/${n}`)}}catch(e){return(0,iJ.mark)(`code/extHost/didResolveAuthorityError/${n}`),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),n={authority:e,connectTo:new rt.ManagedRemoteConnection(t),connectionToken:r.connectionToken}):n={authority:e,connectTo:new rt.WebSocketRemoteConnection(r.host,r.port),connectionToken:r.connectionToken},{type:"ok",value:{authority:n,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 o=await (0,eU.asPromise)(()=>i.getCanonicalURI(r));return o||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 o=new iX.ExtensionDescriptionRegistry(e,t.getAllExtensionDescriptions());o.deltaExtensions(r.toAdd,r.toRemove);let n=new eI.ExtensionIdentifierSet(i.getAllExtensionDescriptions().map(e=>e.identifier));for(let e of r.myToRemove)n.delete(e);for(let e of r.myToAdd)n.add(e);let s=rQ(o,n);return{globalRegistry:o,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,rn.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{#n;#s;#a;constructor(e,t,i,r,o){this.#n=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=o}get isActive(){return this.#n.isActivated(this.#a)}get exports(){if("none"!==this.packageJSON.api&&!this.isFromDifferentExtensionHost)return this.#n.getExtensionExports(this.#a)}async activate(){if(this.isFromDifferentExtensionHost)throw Error("Cannot activate foreign extension");return await this.#n.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 or(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 o=new r0.DisposableStore,n=o.add(new tU(t,i,this.editors));n.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:n.root.children,get label(){return i},set label(value){i=value,n.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,o,n,l)=>{let c=(0,rh.hash)(e);for(;s.has(c);)c++;return new on(this.proxy,s,a,this.defaultProfilesChangedEmitter.event,t,c,e,i,r,o,n,l)},createTestItem:(e,i,r)=>new t$(t,e,i,r),createTestRun:(i,r,o=!0)=>this.runTracker.createTestRun(e,t,n,i,r,o),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){n.resolveHandler=fn},get resolveHandler(){return n.resolveHandler},dispose:()=>{o.dispose()}},u={controller:d,collection:n,profiles:s,extension:e,activeProfiles:a};return l.$registerTestController(t,i,c()),o.add((0,r0.toDisposable)(()=>l.$unregisterTestController(t))),this.controllers.set(t,u),o.add((0,r0.toDisposable)(()=>this.controllers.delete(t))),o.add(n.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 o=e6.Position.to(t),n=[];return await Promise.all([...this.controllers.values()].map(async e=>{let t;try{t=await e.relatedCodeProvider?.provideRelatedTests?.(r.document,o,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)n.push(tT.TestId.fromExtHostTestItem(i,e.controller.id).toString());e.collection.flushDiff()}})),n}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 o=await i.relatedCodeProvider?.provideRelatedCode?.(r.actual,t);return o?.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 o=new Map,n=r.filter(t=>!e.activeProfiles.has(t)),s=[...e.activeProfiles].filter(e=>!r.includes(e));for(let t of n)o.set(t,!0),e.activeProfiles.add(t);for(let t of s)o.set(t,!1),e.activeProfiles.delete(t);o.size&&t.set(i,o)}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 o=[];return(await Promise.all([...this.followupProviders].map(async n=>{try{let s=await n.provideFollowup(i,r,e.taskIndex,e.messageIndex,t);s&&(o=o.concat(s))}catch(e){this.logService.error("Error thrown while providing followup for test message",e)}})),t.isCancellationRequested)?[]:o.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:o,profiles:n,extension:s}=r,a=n.get(e.profileId);if(!a)return{};let l=e.testIds.map(e=>o.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,oe.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,o,n){super(),this.dto=e,this.proxy=t,this.logService=i,this.profile=r,this.extension=o,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(n));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,[,o]=tT.TestId.fromString(e).path,n=this.publishedCoverage.get(e);if(!n)return[];let{report:s,extIds:a}=n,l=this.tasks.get(o);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)(),o=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))},n=(e,o)=>{let n=o instanceof Array?o.map(e6.TestMessage.from):[e6.TestMessage.from(o)];if(e.uri&&e.range){let t={range:e6.Range.from(e.range),uri:e.uri};for(let e of n)e.location=e.location||t}this.proxy.$appendTestMessagesInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),n)},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 o=e instanceof r2.FileCoverage?e.includesTests:[];if(o.length)for(let e of o)this.ensureTestIsKnown(e);let n=e.uri.toString(),a=new tT.TestId([t,r,n]).toString();this.publishedCoverage.set(a,{report:e,extIds:o.map(e=>tT.TestId.fromExtHostTestItem(e,i).toString())}),this.proxy.$appendCoverage(t,r,e6.TestCoverage.fromFile(i,a,e))},enqueued:o(e=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Queued)}),skipped:o(e=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Skipped)}),started:o(e=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Running)}),errored:o((e,o,s)=>{n(e,o),this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Errored,s)}),failed:o((e,o,s)=>{n(e,o),this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,i).toString(),r1.TestResultState.Failed,s)}),passed:o((e,i)=>{this.proxy.$updateTestStateInRun(t,r,tT.TestId.fromExtHostTestItem(e,this.dto.controllerId).toString(),r1.TestResultState.Passed,i)}),appendOutput:(e,o,n)=>{s||(n&&this.ensureTestIsKnown(n),this.proxy.$appendOutputToRun(t,r,eF.VSBuffer.fromString(e),o&&e6.location.from(o),n&&tT.TestId.fromExtHostTestItem(n,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,o){return this.getTracker(t,i,r,e,o)}cancelRunById(e,t){this.trackedById.get(e)?.cancel(t)}cancelAllRuns(){for(let e of this.tracked.values())e.cancel()}createTestRun(e,t,i,r,o,n){let s=this.tracked.get(r);if(s)return s.createRun(o);let a=oe.fromPublic(t,i,r,n),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:n});let c=this.getTracker(r,a,r.profile,e);return ey.Event.once(c.onEnd)(()=>{this.proxy.$finishedExtensionTestRun(a.id)}),c.createRun(o)}getTracker(e,t,i,r,o){let n=new r8(t,this.proxy,this.logService,i,r,o);return this.tracked.set(e,n),this.trackedById.set(n.id,n),n}}let r9=e=>{if(e.profile){if(!(e.profile instanceof on))throw Error("TestRunRequest.profile is not an instance created from TestController.createRunProfile");return e.profile}};class oe{static fromPublic(e,t,i,r){return new oe(e,(0,tJ.generateUuid)(),r,t)}static fromInternal(e,t){return new oe(e.controllerId,e.runId,!0,t)}constructor(e,t,i,r){this.controllerId=e,this.id=t,this.isPersisted=i,this.colllection=r}}class ot{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 oi 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 ot(this.changeEmitter)}}class or{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 oi({asCanonicalUri:e=>e});return this.proxy.$subscribeToDiffs(),{observers:0,tests:e}}}let oo=(e,t,i,r)=>{i?Object.assign(i,r):t.$updateTestRunConfig(e.controllerId,e.profileId,r)};class on extends r2.TestRunProfileBase{#e;#l;#c;#d;#u;get label(){return this._label}set label(e){e!==this._label&&(this._label=e,oo(this,this.#e,this.#d,{label:e}))}get supportsContinuousRun(){return this._supportsContinuousRun}set supportsContinuousRun(e){e!==this._supportsContinuousRun&&(this._supportsContinuousRun=e,oo(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),oo(this,this.#e,this.#d,{isDefault:e}))}get tag(){return this._tag}set tag(e){e?.id!==this._tag?.id&&(this._tag=e,oo(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,oo(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,o,n,s,a,l,c=!1,d,u=!1){super(o,n,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(n,this);const h=e6.TestRunProfileKind.from(a);c&&i.add(n),this.#d={profileId:n,controllerId:o,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 os=eH,oa=e.i(595996),ol=e.i(82648),oc=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 od=Object.values(Y).filter(e=>"string"==typeof e);class ou extends oc.ErrorNoTelemetry{constructor(e,t){super(t),this.variable=e}}e.s(["VariableError",0,ou,"VariableKind",0,Y,"allVariableKinds",0,od],108462);var oh=e.i(989115);class og{constructor(e,t,i,r){this._contributedVariables=new Map,this.resolvableVariables=new Set(od),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=oh.ConfigurationResolverExpression.parse(i);for(let i of r.unresolved()){let o=await this.evaluateSingleVariable(i,t?.uri,e);void 0!==o&&r.resolve(i,String(o))}return r.toObject()}async resolveAsync(e,t){let i=oh.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 o={env:void 0!==i?this.prepareEnv(i):await this._envVariablesPromise,userHome:void 0!==i?void 0:await this._userHomePromise},{name:n,arg:s}=e,a=t=>{let i=this._context.getFilePath();if(i)return(0,ol.normalizeDriveLetter)(i);throw new ou(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,ol.normalizeDriveLetter)(e)}throw new ou(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 ou(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 ou(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 ou(e,(0,e1.localize)(13827,"Variable {0} can not be resolved. Please open a folder.",e))};switch(n){case"env":if(s){if(o.env){let e=o.env[ib.isWindows?s.toLowerCase():s];if((0,eK.isString)(e))return e}return""}throw new ou(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 ou(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 ou(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 ou(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 ou(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 ou(Y.ExtensionInstallFolder,(0,e1.localize)(13833,"Variable {0} can not be resolved because no extension name is given.",e.id));default:switch(n){case"workspaceRoot":case"workspaceFolder":{let e=c(Y.WorkspaceFolder);return e?(0,ol.normalizeDriveLetter)(this.fsPath(e)):void 0}case"cwd":{if(!t&&!s)return(0,oa.cwd)();let e=c(Y.Cwd);return e?(0,ol.normalizeDriveLetter)(this.fsPath(e)):void 0}case"workspaceRootFolderName":case"workspaceFolderBasename":{let e=c(Y.WorkspaceFolderBasename);return e?(0,ol.normalizeDriveLetter)((0,tg.basename)(this.fsPath(e))):void 0}case"userHome":if(o.userHome)return o.userHome;throw new ou(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 ou(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 ou(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,o){if(i&&r){let n=void 0===o?r[i]:r[o+":"+i];if("string"==typeof n)return n;throw new ou(e,(0,e1.localize)(13838,"Variable {0} can not be resolved because the command has no value.",t))}return t}}e.s(["AbstractVariableResolverService",0,og],545341);let op=(0,eR.createDecorator)("IExtHostVariableResolverProvider");class om extends og{constructor(e,t,i,r,o,n,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=n.folders.filter(t=>t.name===e);if(t&&t.length>0)return t[0].uri},getWorkspaceFolderCount:()=>n.folders.length,getConfigurationValue:(e,t)=>o.getConfiguration(void 0,e).get(t),getAppRoot:()=>(0,oa.cwd)(),getExecPath:()=>oa.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(oa.env))}}let of=class extends os.Disposable{constructor(e,t,i,r,o){super(),this.extensionService=e,this.workspaceService=t,this.editorService=i,this.configurationService=r,this.editorTabs=o,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 om(this.extensionService,this.workspaceService,this.editorService,this.editorTabs,e,t,this.homeDir())})}getResolver(){return this._resolver.value}homeDir(){}};of=(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)],of);let ov=(0,eR.createDecorator)("IExtHostDebugService"),o_=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,o,n,s,a){super(),this._workspaceService=t,this._extensionService=i,this._configurationService=r,this._editorTabs=o,this._variableResolver=n,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 oC(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),o=this.extensionVisKey(r,t);if(this._debugVisualizationProviders.has(o))throw Error(`A debug visualization provider with id '${t}' is already registered`);return this._debugVisualizationTrees.set(o,i),this._debugServiceProxy.$registerDebugVisualizerTree(o,!!i.editItem),(0,iq.toDisposable)(()=>{this._debugServiceProxy.$unregisterDebugVisualizerTree(o),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:o,extensionId:n}=i;if(r.visualization||(i.v=r=await o.resolveDebugVisualization?.(r,t)||r),!r.visualization)throw Error(`No visualization returned from resolveDebugVisualization in '${o}'`);return this.serializeVisualization(n,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 o=this.hydrateVisualizationContext(i),n=this.extensionVisKey(e,t),s=this._debugVisualizationProviders.get(n);if(!o||!s)return[];let a=await s.provideDebugVisualization(o,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),o=this.extensionVisKey(r,t);if(this._debugVisualizationProviders.has(o))throw Error(`A debug visualization provider with id '${t}' is already registered`);return this._debugVisualizationProviders.set(o,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),o=t.filter(e=>e instanceof eh.DataBreakpoint).map(e=>e.id);return this._debugServiceProxy.$unregisterBreakpoints(i,r,o)}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 ob(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 o=this.createDebugAdapter(t,r);if(!o)throw Error(`Couldn't create a debug adapter for type '${r.type}'.`);return this._debugAdapters.set(e,o),this.getDebugAdapterTrackers(r).then(t=>(t&&this._debugAdaptersTrackers.set(e,t),o.onMessage(async n=>{if("request"===n.type&&"handshake"===n.command){let e=n,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)},o.sendResponse(t);else throw Error("no signer")}catch(e){t.success=!1,t.message=e.message,o.sendResponse(t)}}else{t&&t.onDidSendMessage&&t.onDidSendMessage(n);try{n=(0,iz.convertToVSCPaths)(n,!0)}catch(t){let e=n.type+"_"+(n.command??n.event??"");throw this._telemetryProxy.$publicLog2("debugProtocolMessageError",{type:e,from:r.type}),t}i._debugServiceProxy.$acceptDAMessage(e,n)}}),o.onError(i=>{t&&t.onError&&t.onError(i),this._debugServiceProxy.$acceptDAError(e,i.name,i.message,i.stack)}),o.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(),o.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 o=await this.getFolder(t);return r.provideDebugConfigurations(o,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 o=this.getConfigProviderByHandle(e);if(!o)throw Error("no DebugConfigurationProvider found");if(!o.resolveDebugConfiguration)throw Error("DebugConfigurationProvider has no method resolveDebugConfiguration");let n=await this.getFolder(t);return o.resolveDebugConfiguration(n,i,r)})}$resolveDebugConfigurationWithSubstitutedVariables(e,t,i,r){return(0,eU.asPromise)(async()=>{let o=this.getConfigProviderByHandle(e);if(!o)throw Error("no DebugConfigurationProvider found");if(!o.resolveDebugConfigurationWithSubstitutedVariables)throw Error("DebugConfigurationProvider has no method resolveDebugConfigurationWithSubstitutedVariables");let n=await this.getFolder(t);return o.resolveDebugConfigurationWithSubstitutedVariables(n,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 oS(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 oy(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}}};o_=(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,op),(0,ek.__param)(6,t2),(0,ek.__param)(7,r4)],o_);class oy{constructor(e,t,i,r,o,n,s){this._debugServiceProxy=e,this._id=t,this._type=i,this._name=r,this._workspaceFolder=o,this._configuration=n,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 oC{constructor(e){this.value=Object.freeze({append(t){e.$appendDebugConsole(t)},appendLine(e){this.append(e+"\n")}})}}class oS{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 ob 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 ow=class extends o_{constructor(e,t,i,r,o,n,s,a){super(e,t,i,r,o,n,s,a)}};ow=(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,op),(0,ek.__param)(6,t2),(0,ek.__param)(7,r4)],ow);var ox=e.i(786091);class oD{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 oE{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 ok=eX;class oT extends ok.TernarySearchTree{constructor(e,t,i=()=>!1){super(new ok.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 oR{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,ox.parse)(e.includePattern),this.maxResults=e.maxResults||void 0,this.exists=e.exists,this.activeCancellationTokens=new Set,this.globalExcludePattern=e.excludePattern&&(0,ox.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 o=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(o,{base:e,basename:i})}),this.doSearch(t,o).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,o=e.map(e=>this.getSearchOptionsForFolder(e)),n=this.provider instanceof oD?this.sessionLifecycle?.tokenSource.token:this.sessionLifecycle?.obj,s={folderOptions:o,maxResults:this.config.maxResults??e5.DEFAULT_MAX_SEARCH_RESULTS,session:n},a=new oT(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),o=i.elapsed(),n=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 o=(0,tg.basename)(e.path);this.matchFile(t,{base:i.folder,relativePath:r,basename:o});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:o,postProcessTime:n.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 o=(0,tg.basename)(r),n=(0,tg.dirname)(r),s=e[n];s||(s=e[n]=[],i(n)),s.push({base:t,relativePath:r,basename:o})}(i)}matchDirectoryTree({rootEntries:e,pathToEntries:t},i,r){let o=this,n=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,n!==u?a:void 0))continue;let h=t[d];if(h)e(h);else{if(d===n)continue;o.matchFile(r,c)}if(o.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 oP{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 oI{constructor(){this.sessions=new Map}static{this.BATCH_SIZE=512}fileSearch(e,t,i,r){let o=this.getSessionTokenSource(e.cacheKey),n=new oR(e,t,o),s=0,a=e=>{s+=e.length,i(e.map(e=>this.rawMatchToSearchItem(e)))};return this.doSearch(n,oI.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 oP),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 o=r.onCancellationRequested(()=>{e.cancel()}),n=[];return e.search(e=>{e&&(n.push(e),t>0&&n.length>=t&&(i(n),n=[]))}).then(e=>(n.length&&i(n),o.dispose(),e),e=>(n.length&&i(n),o.dispose(),Promise.reject(e)))}}class oA{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||[],o=new ef.CancellationTokenSource(t);return new Promise((t,n)=>{this.collector=new oM(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,o.cancel(),e=this.trimResultToSize(e,this.query.maxResults-this.resultCount));let r=this.resultSize(e);this.resultCount+=r;let n=e instanceof eb.TextSearchMatch2;(r>0||!n)&&this.collector.add(e,t)}};this.doSearch(r,a,o.token,i).then(e=>{o.dispose(),this.collector.flush(),t({limitHit:this.isLimitHit||e?.limitHit,messages:this.getMessagesFromResults(e),stats:{type:this.processType}})},e=>{o.dispose(),n(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 o;let n,s=new oT(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,o=(0,eN.relativePath)(i.folder,e.uri);if(o){let n=i.queryTester.includedInQuery(o,(0,tg.basename)(o),r);(0,eU.isThenable)(n)?a.push(n.then(r=>{r&&t(e,i.folderIdx)})):n&&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),n=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:(o=this.queryProviderPair.query.contentPattern).isCaseSensitive||!1,isRegExp:o.isRegExp||!1,isWordMatch:o.isWordMatch||!1,isMultiline:o.isMultiline||!1,pattern:o.pattern},c,l,i),a.length&&await Promise.all(a),n}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 oM{constructor(e){this._onResult=e,this._currentFolderIdx=-1,this._currentFileMatch=null,this._batchedCollector=new oL(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 oL{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<oL.START_BATCH_AFTER_COUNT||this.batchSize>=this.maxBatchSize?this.flush():this.timeoutHandle||(this.timeoutHandle=setTimeout(()=>{this.flush()},oL.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 oF=(0,eR.createDecorator)("IExtHostSearch"),oO=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 oI}_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 oE(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 oD(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 o=oN(i),n=this._fileSearchProvider.get(e);if(n)return this._fileSearchManager.fileSearch(o,n,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 o=this._textSearchProvider.get(e);if(!o||!o.provideTextSearchResults)throw Error(`Unknown Text Search Provider ${e}`);let n=oN(i);return this.createTextSearchManager(n,o).search(i=>this._proxy.$handleTextMatch(e,t,i),r)}$provideAITextSearchResults(e,t,i,r){let o=this._aiTextSearchProvider.get(e);if(!o||!o.provideAITextSearchResults)throw Error(`Unknown AI Text Search Provider ${e}`);let n=oN(i);return this.createAITextSearchManager(n,o).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 oA({query:e,provider:t},{readdir:e=>Promise.resolve([]),toCanonicalName:e=>e},"textSearchProvider")}createAITextSearchManager(e,t){return new oA({query:e,provider:t},{readdir:e=>Promise.resolve([]),toCanonicalName:e=>e},"aiTextSearchProvider")}};function oN(e){return{...e,...{folderQueries:e.folderQueries&&e.folderQueries.map(o$),extraFileResources:e.extraFileResources&&e.extraFileResources.map(e=>eD.URI.revive(e))}}}function o$(e){return(0,e8.revive)(e)}oO=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,e3),(0,ek.__param)(2,eM.ILogService)],oO);var oH=ew;let oU=class extends oH.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 oW(this._proxy,e,t,i)}};oU=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService)],oU);class oW extends oH.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 oq=eH;let oj=(0,eR.createDecorator)("IExtHostTerminalShellIntegration"),oz=class extends oq.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,oq.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,o=this._activeShellIntegrations.get(e);o||(o=new oK(i.value,t,this._onDidStartTerminalShellExecution),this._activeShellIntegrations.set(e,o),o.store.add(i.onWillDispose(()=>this._activeShellIntegrations.get(e)?.dispose())),o.store.add(o.onDidRequestShellExecution(t=>this._proxy.$executeCommand(e,t))),o.store.add(o.onDidRequestEndExecution(e=>this._onDidEndTerminalShellExecution.fire(e))),o.store.add(o.onDidRequestChangeShellIntegration(e=>this._onDidChangeTerminalShellIntegration.fire(e))),i.shellIntegration=o.value),this._onDidChangeTerminalShellIntegration.fire({terminal:r,shellIntegration:o.value})}$shellExecutionStart(e,t,i,r,o,n){this._activeShellIntegrations.has(e)||this.$shellIntegrationChange(e,t),this._activeShellIntegrations.get(e)?.startShellExecution({value:i,confidence:r,isTrusted:o},this._convertCwdToUri(n))}$shellExecutionEnd(e,t,i,r,o){this._activeShellIntegrations.get(e)?.endShellExecution({value:t,confidence:i,isTrusted:r},o)}$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}};oz=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,iw)],oz);class oK extends oq.Disposable{get currentExecution(){return this._currentExecution}constructor(e,t,i){super(),this._terminal=e,this._onDidStartTerminalShellExecution=i,this._pendingExecutions=[],this.store=this._register(new oq.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 o=e;if(i)for(let e of i)!e.match(/["'`]/)&&e.match(/\s/)?o+=` "${e}"`:o+=` ${e}`;r._onDidRequestShellExecution.fire(o);let n={value:o,confidence:eh.TerminalShellExecutionCommandLineConfidence.High,isTrusted:!0};return r.requestNewShellExecution(n,r._cwd).value}}}requestNewShellExecution(e,t){let i=new oV(e,t??this._cwd);return oG(e.value).length>1&&(this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:oG(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=oQ(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 o=oQ(oG(r.value.commandLine.value),e);if(o){this._currentExecutionProperties={isMultiLine:!0,unresolvedCommandLines:o.unresolvedCommandLines},i=r,this._pendingExecutions.splice(t,1);break}}else i=this._pendingExecutions.shift();i||(i=new oV(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 oV{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 oB}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 oB extends oq.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 oG(e){return e.split("\n").map(e=>e.trim()).filter(e=>e.length>0)}function oQ(e,t){if(0===e.length)return!1;let i=[...e],r=oG(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 oJ=eH;(_=X||(X={}))[_.CR=13]="CR",_[_.LF=10]="LF",_[_.COLON=58]="COLON",_[_.SPACE=32]="SPACE";class oY{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),o=-1===i?r:-1===r?i:Math.min(i,r);if(-1===o)break;let n="";for(let e of this.buffer)n+=this.decoder.decode(e,{stream:!0});n+=this.decoder.decode(e.subarray(t,o)),this.processLine(n),this.buffer.length=0,t=o+(e[o]===X.CR&&e[o+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 oX=e.i(183866),oZ=e.i(367835),o0=e.i(701575),o1=e.i(585883),o2=e.i(237867);let o6=(0,eR.createDecorator)("IExtHostMpcService"),o3=(0,oX.vObj)({label:(0,oX.vString)(),version:(0,oX.vOptionalProp)((0,oX.vString)()),metadata:(0,oX.vOptionalProp)((0,oX.vObj)({capabilities:(0,oX.vOptionalProp)((0,oX.vObjAny)()),serverInfo:(0,oX.vOptionalProp)((0,oX.vObjAny)()),tools:(0,oX.vOptionalProp)((0,oX.vArray)((0,oX.vObj)({availability:(0,oX.vNumber)(),definition:(0,oX.vObjAny)()})))})),authentication:(0,oX.vOptionalProp)((0,oX.vObj)({providerId:(0,oX.vString)(),scopes:(0,oX.vArray)((0,oX.vString)())}))}),o4=class extends oJ.Disposable{constructor(e,t,i,r,o){super(),this._logService=t,this._extHostInitData=i,this._workspaceService=r,this._variableResolver=o,this._initialProviderPromises=new Set,this._sseEventSources=this._register(new oJ.DisposableMap),this._unresolvedMcpServers=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadMcp)}$startMcp(e,t){this._startMcp(e,o1.McpServerLaunch.fromSerialized(t.launch),t.defaultCwd&&eD.URI.revive(t.defaultCwd),t.errorOnUserInteraction)}_startMcp(e,t,i,r){if(t.type===o1.McpServerTransportType.HTTP)return void this._sseEventSources.set(e,new o8(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 o=await i.provider.resolveMcpServerDefinition(r,ef.CancellationToken.None);return o?e6.McpServerDefinition.from(o):void 0}registerMcpConfigurationProvider(e,t,i){let r=new oJ.DisposableStore,o=e.contributes?.mcpServerDefinitionProviders?.find(e=>e.id===t);if(!o)throw Error(`MCP configuration providers must be registered in the contributes.mcpServerDefinitionProviders array within your package.json, but "${t}" was not`);let n={id:(0,o1.extensionPrefixedIdentifier)(e.identifier,t),isTrustedByDefault:!0,label:o?.label??e.displayName??e.name,scope:o0.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(n.id,{servers:t??[],provider:i});let r=[];for(let i of t??[]){let t,o=eI.ExtensionIdentifier.toKey(e.identifier)+"/"+i.label;if(r.some(e=>e.id===o)){let e=2;for(;r.some(t=>t.id===o+e);)e++;o+=e}o3.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?o1.McpServerStaticToolAvailability.Dynamic:o1.McpServerStaticToolAvailability.Initial,definition:e.definition}))}),r.push({id:o,label:i.label,cacheNonce:i.version||"$$NONE",staticMetadata:t,launch:e6.McpServerDefinition.from(i)})}this._proxy.$upsertMcpCollection(n,r)};r.add((0,oJ.toDisposable)(()=>{this._unresolvedMcpServers.delete(n.id),this._proxy.$deleteMcpCollection(n.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}};o4=(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,op)],o4),(y=Z||(Z={}))[y.Unknown=0]="Unknown",y[y.Http=1]="Http",y[y.SSE=2]="SSE";let o5=[301,302,303,307,308];class o8 extends oJ.Disposable{constructor(e,t,i,r,o){super(),this._id=e,this._launch=t,this._proxy=i,this._logService=r,this._errorOnUserInteraction=o,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,oJ.toDisposable)(()=>{this._abortCtrl.abort(),this._cts.dispose(!0)})),this._proxy.$onDidChangeState(this._id,{state:o1.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:o1.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:o1.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 o=await this._fetchWithAuthRetry(this._launch.uri.toString(!0),{method:"POST",headers:r,body:i},r),n=this._mode.value===Z.Unknown,s=o.headers.get("Mcp-Session-Id");if(s&&(this._mode={value:Z.Http,sessionId:s}),this._mode.value===Z.Unknown&&o.status>=400&&o.status<500&&!o7(o.status)){this._log(ew.LogLevel.Info,`${o.status} status sending message to ${this._launch.uri}, will attempt to fall back to legacy SSE`),this._sseFallbackWithMessage(e);return}if(o.status>=300){let e=this._mode.value===Z.Http&&!!this._mode.sessionId&&(400===o.status||404===o.status);this._proxy.$onDidChangeState(this._id,{state:o1.McpConnectionState.Kind.Error,message:`${o.status} status sending message to ${this._launch.uri}: ${await this._getErrText(o)}`+(e?"; will retry with new session ID":""),shouldRetry:e});return}this._mode.value===Z.Unknown&&(this._mode={value:Z.Http,sessionId:void 0}),n&&this._attachStreamableBackchannel(),await this._handleSuccessfulStreamableHttp(o,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 oY(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 o=new oY(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(o,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:o1.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:o1.McpConnectionState.Kind.Error,message:`Error connecting to ${this._launch.uri} as SSE: ${e}`});return}let r=new oY(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,oJ.toDisposable)(()=>t.cancel())),this._doSSE(r,e).catch(e=>{this._proxy.$onDidChangeState(this._id,{state:o1.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 o=await this._fetch(e,{method:"POST",headers:r,body:i});o.status>=300&&this._log(ew.LogLevel.Warning,`${o.status} status sending message to ${this._postEndpoint}: ${await this._getErrText(o)}`)}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},o=await this._proxy.$getTokenFromServerMetadata(this._id,r,{errorOnUserInteraction:i,forceNewRegistration:t?.forceNewRegistration});o&&(e.Authorization=`Bearer ${o}`)}catch(e){if(o1.UserInteractionRequiredError.is(e))throw this._proxy.$onDidChangeState(this._id,{state:o1.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(o1.UserInteractionRequiredError.is(e))throw this._proxy.$onDidChangeState(this._id,{state:o1.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),o=await r();if(o7(o.status)&&(this._authMetadata?this._authMetadata.update(o)&&(await this._addAuthHeader(i),i.Authorization&&(t.headers=i,o=await r())):(this._authMetadata=await ne(e,o,{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,o=await r()))),i.Authorization&&o7(o.status)){let e=await this._getErrText(o);this._log(ew.LogLevel.Info,`Received ${o.status} status with Authorization header, retrying with new auth registration. Error details: ${e||"no additional details"}`),await this._addAuthHeader(i,{forceNewRegistration:!0}),o=await r()}return o}async _fetch(e,t){let i;if(t.headers["user-agent"]=`${oZ.default.nameLong}/${oZ.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"}),o5.includes(i.status));e++){let e=i.headers.get("location");if(!e)break;let o=new URL(e,r).toString();this._log(ew.LogLevel.Trace,`Redirect (${i.status}) from ${r} to ${o}`),r=o,(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 o7(e){return 401===e||403===e}class o9{constructor(e,t,i,r,o,n){this.authorizationServer=e,this.serverMetadata=t,this.resourceMetadata=i,this.telemetry=o,this._log=n,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 ne(e,t,i){let r,o,n,{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 o=e.headers.get("WWW-Authenticate");for(let e of(0,rc.parseWWWAuthenticateHeader)(o))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":o2.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,(o=t.authorization_servers?.[0])?(l(ew.LogLevel.Info,`Using auth server metadata url: ${o}`),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,n=t}catch(e){l(ew.LogLevel.Warning,`Could not fetch resource metadata: ${String(e)}`)}let g=new URL(t.url).origin,p={};o||(o=g,p={...Object.fromEntries(s),"MCP-Protocol-Version":o2.MCP.LATEST_PROTOCOL_VERSION});try{l(ew.LogLevel.Debug,`Fetching auth server metadata for: ${o} ...`);let{metadata:e,discoveryUrl:t,errors:i}=await (0,rc.fetchAuthorizationServerMetadata)(o,{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 o9(eD.URI.parse(o),e,n,h,{resourceMetadataSource:c,serverMetadataSource:r},l)}catch(e){l(ew.LogLevel.Warning,`Error populating auth server metadata for ${o}: ${String(e)}`)}let m=(0,rc.getDefaultMetadataForUrl)(new URL(g));return l(ew.LogLevel.Info,"Using default auth metadata"),new o9(eD.URI.parse(g),m,n,h,{resourceMetadataSource:c,serverMetadataSource:ev.McpAuthServerMetadataSource.Default},l)}var nt=eH;let ni=(0,eR.createDecorator)("IExtHostDataChannels");class nr extends nt.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,oU,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)(ov,ow,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)(oF,oO,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)(oj,oz,eT.InstantiationType.Eager),(0,eT.registerSingleton)(rn.IExtHostTunnelService,rn.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)(op,of,eT.InstantiationType.Eager),(0,eT.registerSingleton)(o6,o4,eT.InstantiationType.Eager),(0,eT.registerSingleton)(ni,class{constructor(){this._channels=new Map}createDataChannel(e,t){(0,tp.checkProposedApiEnabled)(e,"dataChannels");let i=this._channels.get(t);return i||(i=new nr(t),this._channels.set(t,i)),i}$onDidReceiveData(e,t){let i=this._channels.get(e);i&&i._fireDidReceiveData(t)}},eT.InstantiationType.Eager);var no=e.i(481205),nn=e.i(955612),ns=e.i(526097),na=e.i(37305);let nl=class extends na.LogService{constructor(e,t,i){const r=i.remote.isRemote?"remoteexthost":e?"workerexthost":"exthost",o=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:o}))}};nl=(0,ek.__decorate)([(0,ek.__param)(1,eM.ILoggerService),(0,ek.__param)(2,ej.IExtHostInitDataService)],nl);class nc{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),o=e.get(tQ),n=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 o="";for(let e of t)o+=`
22
+ at ${e.toString()}`,r=e.getFileName(),!i&&r&&(i=c.findSubstr(eD.URI.file(r)));let n=`${e.name||"Error"}: ${e.message||""}${o}`;return d.set(e,{extensionIdentifier:i?.identifier,stack:n}),n}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&&n.report(e.name,t,`${e.message}
23
+ FROM: ${e.stack}`)}else{s.$onExtensionRuntimeError(i,r);let n=o.onExtensionError(i,e);t.trace("forwarded error to extension?",n,i)}}),eg.errorHandler.addListener(e=>{a.$onUnexpectedError(e)})}}class nd{constructor(e,t,i,r,o){this._hostUtils=i,this._rpcProtocol=new no.RPCProtocol(e,null,r),t=nd._transform(t,this._rpcProtocol);const n=new ro.ServiceCollection(...(0,eT.getSingletonServiceDescriptors)());n.set(ej.IExtHostInitDataService,{_serviceBrand:void 0,...t,messagePorts:o}),n.set(eP.IExtHostRpcService,new eP.ExtHostRpcService(this._rpcProtocol)),n.set(e3,new e4(r)),n.set(rq,i),n.set(eM.ILogService,new ns.SyncDescriptor(nl,[!0],!0)),n.set(eM.ILoggerService,new ns.SyncDescriptor(oU,[],!0));const s=new nn.InstantiationService(n,!0);ib.isWebWorker&&s.invokeFunction(nc.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(nc.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 nu=e.i(596436);e.i(467724);var nh=e.i(981399),ng=e.i(536766),np=e.i(399362),nm=e.i(370973),nf=e.i(176876),nv=e.i(347589),n_=e.i(991307),ny=e.i(689318),nC=e.i(821788);class nS{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 nb{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 o=this._settingsSearchProviders.get(e);if(!o)throw Error("Settings search provider not found");let n=new rs.Progress(t=>{this._proxy.$handleSearchResult(e,e6.AiSettingsSearch.fromSettingsSearchResult(t))});return o.provideSettingsSearchResults(t,i,n,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 nw=e.i(772649),nx=e.i(373776),nD=e.i(568101),nE=e.i(750596),nk=e.i(102143);let nT=[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.",nP(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 nE.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.",nP(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.",nP(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.",nP(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.",nI)),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.",nI)),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.",nI)),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.",nI)),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.",nI)),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.",nI)),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.",nI)),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.",nI)),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.",nP(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.",nP(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.",nP(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.",nP(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,nx.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,nx.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)=>nP(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)=>nP(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 nk.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.",nP(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 nR{static register(e){nT.forEach(e.registerApiCommand,e),this._registerValidateWhenClausesCommand(e)}static _registerValidateWhenClausesCommand(e){e.registerCommand(!1,"_validateWhenClauses",nD.validateWhenClauses)}}function nP(e){return t=>{if(Array.isArray(t))return t.map(e)}}function nI(e){if(!Array.isArray(e))return;let t=[];for(let i of e)(0,nw.isLocationLink)(i)?t.push(e6.DefinitionLink.to(i)):t.push(e6.location.to(i));return t}let nA=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)}};nA=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService)],nA);var nM=eH,nL=e.i(723250),nF=e.i(941001),nO=e.i(778116),nN=e.i(723525);class n${constructor(e,t,i,r,o){this._extension=e,this._request=t,this._proxy=i,this._commandsConverter=r,this._sessionDisposables=o,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 o=[],n=[];function t(e,t){if(1===o.push(void 0!==t?[e,t]:e)&&queueMicrotask(()=>{let e=n;n=[],i._proxy.$handleProgressChunk(i._request.requestId,o).finally(()=>{e.forEach(e=>e())}),o.length=0}),void 0!==t)return new Promise(e=>{n.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 o=r++,n=t(e,o);Promise.all([n,i({report:e=>{n.then(()=>{nN.MarkdownString.isMarkdownString(e.value)?t(e6.ChatResponseWarningPart.from(e),o):t(e6.ChatResponseReferencePart.from(e),o)})}})]).then(([e,i])=>{t(e6.ChatTaskResult.from(i),o)})}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 o=new eh.ChatResponseMarkdownWithVulnerabilitiesPart(t,r);return s(e6.ChatResponseMarkdownWithVulnerabilitiesPart.from(o)),this},codeblockUri(t,r){e(this.codeblockUri),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let o=new eh.ChatResponseCodeblockUriPart(t,r);return s(e6.ChatResponseCodeblockUriPart.from(o)),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,o){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,o);i=[e6.ChatResponseReferencePart.from(e)]}i.forEach(e=>s(e))}}else{let e=new eh.ChatResponseReferencePart(t,r,o);s(e6.ChatResponseReferencePart.from(e))}return this},codeCitation(t,r,o){e(this.codeCitation),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let n=new eh.ChatResponseCodeCitationPart(t,r,o);s(e6.ChatResponseCodeCitationPart.from(n))},textEdit(t,r){e(this.textEdit),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let o=new eh.ChatResponseTextEditPart(t,r);return o.isDone=!0===r||void 0,s(e6.ChatResponseTextEditPart.from(o)),this},notebookEdit(t,r){e(this.notebookEdit),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let o=new eh.ChatResponseNotebookEditPart(t,r);return s(e6.ChatResponseNotebookEditPart.from(o)),this},async externalEdit(i,o){e(this.externalEdit);let n=Array.isArray(i)?i:[i],s=r++,a=(0,tJ.generateUuid)();await t({kind:"externalEdits",start:!0,resources:n,undoStopId:a},s);try{return await o(),a}finally{await t({kind:"externalEdits",start:!1,resources:n,undoStopId:a},s)}},confirmation(t,r,o,n){e(this.confirmation),(0,tp.checkProposedApiEnabled)(i._extension,"chatParticipantAdditions");let a=new eh.ChatResponseConfirmationPart(t,r,o,n);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,nM.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 nH extends nM.Disposable{static{this._idPool=0}static{this._participantDetectionProviderIdPool=0}static{this._relatedFilesProviderIdPool=0}static{this._customAgentsProviderIdPool=0}constructor(e,t,i,r,o,n,s,a){super(),this._logService=t,this._commands=i,this._documents=r,this._editorsAndDocuments=o,this._languageModels=n,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 nM.DisposableResourceMap),this._completionDisposables=this._register(new nM.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=nH._idPool++,o=new nq(e,t,this._proxy,r,i);return this._agents.set(r,o),this._proxy.$registerAgent(r,e.identifier,t,{},void 0),o.apiAgent}createDynamicChatAgent(e,t,i,r){let o=nH._idPool++,n=new nq(e,t,this._proxy,o,r);return this._agents.set(o,n),this._proxy.$registerAgent(o,e.identifier,t,{isSticky:!0},i),n.apiAgent}registerChatParticipantDetectionProvider(e,t){let i=nH._participantDetectionProviderIdPool++;return this._participantDetectionProviders.set(i,new nU(e,t)),this._proxy.$registerChatParticipantDetectionProvider(i),(0,nM.toDisposable)(()=>{this._participantDetectionProviders.delete(i),this._proxy.$unregisterChatParticipantDetectionProvider(i)})}registerRelatedFilesProvider(e,t,i){let r=nH._relatedFilesProviderIdPool++;return this._relatedFilesProviders.set(r,new nW(e,t)),this._proxy.$registerRelatedFilesProvider(r,i),(0,nM.toDisposable)(()=>{this._relatedFilesProviders.delete(r),this._proxy.$unregisterRelatedFilesProvider(r)})}registerCustomAgentsProvider(e,t){let i=nH._customAgentsProviderIdPool++;this._customAgentsProviders.set(i,{extension:e,provider:t}),this._proxy.$registerCustomAgentsProvider(i,e.identifier);let r=new nM.DisposableStore;return t.onDidChangeCustomAgents&&r.add(t.onDidChangeCustomAgents(()=>{this._proxy.$onDidChangeCustomAgents(i)})),r.add((0,nM.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 o=e6.ChatRequestDraft.to(t);return await r.provider.provideRelatedFiles(o,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,o){let n=this._participantDetectionProviders.get(e);if(!n)return;let{request:s,location:a,history:l}=await this._createRequest(t,i,n.extension),c=await this.getModelForRequest(s,n.extension),d=e6.ChatAgentRequest.to(s,a,c,this.getDiagnosticsWhenEnabled(n.extension),this.getToolsForRequest(n.extension,s.userSelectedTools),n.extension,this._logService);return n.provider.provideParticipantDetection(d,{history:l},{participants:r.participants,location:e6.ChatLocation.to(r.location)},o)}async _createRequest(e,t,i){let r,o=(0,e8.revive)(e),n=await this.prepareHistoryTurns(i,o.agentId,t);if(o.locationData?.type===nO.ChatAgentLocation.EditorInline){let e=this._documents.getDocument(o.locationData.document),t=this._editorsAndDocuments.getEditor(o.locationData.id);r=new eh.ChatRequestEditorData(t.value,e,e6.Selection.to(o.locationData.selection),e6.Range.to(o.locationData.wholeRange))}else if(o.locationData?.type===nO.ChatAgentLocation.Notebook){let e=this._documents.getDocument(o.locationData.sessionInputUri);r=new eh.ChatRequestNotebookData(e)}return{request:o,location:r,history: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}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 o,n,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 nM.DisposableStore,this._sessionDisposables.set(c.sessionResource,h)),o=new n$(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);n={requestId:t.requestId,extRequest:p,extension:s.extension},this._inFlightRequests.add(n),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,o.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:o?.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:o?.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{n&&this._inFlightRequests.delete(n),o?.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 o of i.history){let i=e6.ChatAgentResult.to(o.result),n=t===o.request.agentId||nj(o.request.agentId)&&nj(t)?i:{...i,metadata:void 0},s=[],a=[];for(let t of o.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")?o.request.editedFileEvents:void 0,c=new eh.ChatRequestTurn(o.request.message,o.request.command,s,o.request.agentId,a,l,o.request.requestId);r.push(c);let d=(0,eY.coalesce)(o.response.map(e=>e6.ChatResponsePart.toContent(e,this._commands.converter)));r.push(new eh.ChatResponseTurn(d,n,o.request.agentId,o.request.command))}return r}$releaseSession(e){let t=eD.URI.revive(e);this._sessionDisposables.deleteAndDispose(t);let i=nF.LocalChatSessionUri.parseLocalSessionId(t);i&&this._onDidDisposeChatSession.fire(i)}async $provideFollowups(e,t,i,r,o){let n=this._agents.get(t);if(!n)return Promise.resolve([]);let s=(0,e8.revive)(e),a=await this.prepareHistoryTurns(n.extension,n.id,r),l=e6.ChatAgentResult.to(i);return(await n.provideFollowups(l,{history:a},o)).filter(e=>{let t=!e.participant||id.Iterable.some(this._agents.values(),t=>t.id===e.participant&&eI.ExtensionIdentifier.equals(t.extension.identifier,n.extension.identifier));return t||this._logService.warn(`[@${n.id}] ChatFollowup refers to an unknown participant: ${e.participant}`),t}).map(e=>e6.ChatFollowup.from(e,s))}$acceptFeedback(e,t,i){let r,o=this._agents.get(e);if(!o)return;let n=e6.ChatAgentResult.to(t);switch(i.direction){case nL.ChatAgentVoteDirection.Down:r=eh.ChatResultFeedbackKind.Unhelpful;break;case nL.ChatAgentVoteDirection.Up:r=eh.ChatResultFeedbackKind.Helpful}let s={result:n,kind:r,unhelpfulReason:(0,tp.isProposedApiEnabled)(o.extension,"chatParticipantAdditions")?i.reason:void 0};o.acceptFeedback(Object.freeze(s))}$acceptAction(e,t,i){let r=this._agents.get(e);if(!r||"vote"===i.action.kind)return;let o=e6.ChatAgentUserActionEvent.to(t,i,this._commands.converter);o&&r.acceptAction(Object.freeze(o))}async $invokeCompletionProvider(e,t,i){let r=this._agents.get(e);if(!r)return[];let o=this._completionDisposables.get(e);return o?o.clear():(o=new nM.DisposableStore,this._completionDisposables.set(e,o)),(await r.invokeCompletionProvider(t,i)).map(e=>e6.ChatAgentCompletionItem.from(e,this._commands.converter,o))}async $provideChatTitle(e,t,i){let r=this._agents.get(e);if(!r)return;let o=await this.prepareHistoryTurns(r.extension,r.id,{history:t});return await r.provideTitle({history:o},i)}async $provideChatSummary(e,t,i){let r=this._agents.get(e);if(!r)return;let o=await this.prepareHistoryTurns(r.extension,r.id,{history:t});return await r.provideSummary({history:o},i)}}class nU{constructor(e,t){this.extension=e,this.provider=t}}class nW{constructor(e,t){this.extension=e,this.provider=t}}class nq{constructor(e,t,i,r,o){this.extension=e,this.id=t,this._proxy=i,this._handle=r,this._requestHandler=o,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 nj(e){return e.startsWith("github.copilot")}class nz{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,o){let n=this._renderers.get(e);if(!n)throw Error(`No chat output renderer registered for: ${e}`);let s=this.webviews.createNewWebview(r,{},n.extension);return n.renderer.renderChatOutput(Object.freeze({mime:t,value:i.buffer}),s,{},o)}}var nK=eH,nV=e.i(288628),nB=e.i(33670);class nG{constructor(e,t,i,r,o,n){this.session=e,this.extension=t,this.proxy=r,this.commandsConverter=o,this.sessionDisposables=n,this._stream=new n$(t,i,r,o,n)}get activeResponseStream(){return this._stream}getActiveRequestStream(e){return new n$(this.extension,e,this.proxy,this.commandsConverter,this.sessionDisposables)}}let nQ=class extends nK.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++,o=new nK.DisposableStore;return this._chatSessionItemProviders.set(r,{provider:i,extension:e,disposable:o,sessionType:t}),this._proxy.$registerChatSessionItemProvider(r,t),i.onDidChangeChatSessionItems&&o.add(i.onDidChangeChatSessionItems(()=>{this._proxy.$onDidChangeChatSessionItems(r)})),i.onDidCommitChatSessionItem&&o.add(i.onDidCommitChatSessionItem(e=>{let{original:t,modified:i}=e;this._proxy.$onDidCommitChatSessionItem(r,t.resource,i.resource)})),{dispose:()=>{this._chatSessionItemProviders.delete(r),o.dispose(),this._proxy.$unregisterChatSessionItemProvider(r)}}}registerChatSessionContentProvider(e,t,i,r,o){let n=this._nextChatSessionContentProviderHandle++,s=new nK.DisposableStore;return this._chatSessionContentProviders.set(n,{provider:r,extension:e,capabilities:o,disposable:s}),this._proxy.$registerChatSessionContentProvider(n,t),r.onDidChangeChatSessionOptions&&s.add(r.onDidChangeChatSessionOptions(e=>{this._proxy.$onDidChangeChatSessionOptions(n,e.resource,e.updates)})),r.onDidChangeChatSessionProviderOptions&&s.add(r.onDidChangeChatSessionProviderOptions(()=>{this._proxy.$onDidChangeChatSessionProviderOptions(n)})),new eh.Disposable(()=>{this._chatSessionContentProviders.delete(n),s.dispose(),this._proxy.$unregisterChatSessionContentProvider(n)})}convertChatSessionStatus(e){if(void 0!==e)switch(e){case 0:return nV.ChatSessionStatus.Failed;case 1:return nV.ChatSessionStatus.Completed;case 2:return nV.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 o=[];for(let e of r)this._sessionItems.set(e.resource,e),o.push(this.convertChatSessionItem(i.sessionType,e));return o}async $provideChatSessionContent(e,t,i){let r=this._chatSessionContentProviders.get(e);if(!r)throw Error(`No provider for handle ${e}`);let o=eD.URI.revive(t),n=await r.provider.provideChatSessionContent(o,i);if(i.isCancellationRequested)throw new eg.CancellationError;let s=new nK.DisposableStore,a=ee._sessionHandlePool++,l=o.toString(),c=new nG(n,r.extension,{sessionResource:o,requestId:"ongoing",agentId:l,message:"",variables:{variables:[]},location:nO.ChatAgentLocation.Chat},{$handleProgressChunk:(t,i)=>this._proxy.$handleProgressChunk(e,o,t,i),$handleAnchorResolve:(t,i,r)=>{this._proxy.$handleAnchorResolve(e,o,t,i,r)}},this.commands.converter,s),d=s.add(new ef.CancellationTokenSource);this._extHostChatSessions.set(o,{sessionObj:c,disposeCts:d}),n.activeResponseCallback&&Promise.resolve(n.activeResponseCallback(c.activeResponseStream.apiObject,d.token)).finally(()=>{this._proxy.$handleProgressComplete(e,o,"ongoing")});let{capabilities:u}=r;return{id:a+"",resource:eD.URI.revive(o),hasActiveResponseCallback:!!n.activeResponseCallback,hasRequestHandler:!!n.requestHandler,supportsInterruption:!!u?.supportsInterruptions,options:n.options,history:n.history.map(e=>e instanceof eh.ChatRequestTurn?this.convertRequestTurn(e):this.convertResponseTurn(e,s))}}async $provideHandleOptionsChange(e,t,i,r){let o=eD.URI.revive(t),n=this._chatSessionContentProviders.get(e);if(!n)return void this._logService.warn(`No provider for handle ${e}`);if(!n.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 n.provider.provideHandleOptionsChange(o,e,r)}catch(t){this._logService.error(`Error calling provideHandleOptionsChange for handle ${e}, sessionResource ${o}:`,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,o){let n=this._extHostChatSessions.get(eD.URI.revive(t));if(!n||!n.sessionObj.session.requestHandler)return{};let s=e6.ChatAgentRequest.to(i,void 0,await this.getModelForRequest(i,n.sessionObj.extension),[],new Map,n.sessionObj.extension,this._logService),a=n.sessionObj.getActiveRequestStream(i);return await n.sessionObj.session.requestHandler(s,{history:r},a.apiObject,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}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 nB.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:nw.SymbolKind.Property,icon:nw.SymbolKinds.toIcon(nw.SymbolKind.Property),kind:"symbol",range:i}}if(eD.URI.isUri(t)&&e.name.startsWith("prompt:")&&e.id.startsWith(nB.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,o=r&&eD.URI.isUri(t)&&t.path.endsWith("/");return{id:e.id,name:e.name,value:t,modelDescription:e.modelDescription,range:i,kind:o?"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}}};nQ=ee=(0,ek.__decorate)([(0,ek.__param)(2,eP.IExtHostRpcService),(0,ek.__param)(3,eM.ILogService)],nQ);class nJ{constructor(e){this._items=new Map,this._proxy=e.getProxy(ev.MainContext.MainThreadChatStatus)}createChatStatusItem(e,t){var i,r;let o=(i=e.identifier,r=t,`${eI.ExtensionIdentifier.toKey(i)}.${r}`);if(this._items.has(o))throw Error(`Chat status item '${t}' already exists`);let n={id:o,title:"",description:"",detail:""},s=!1,a=!1,l=()=>{if(s)throw Error("Chat status item is disposed");a&&this._proxy.$setEntry(t,n)},c=Object.freeze({id:t,get title(){return n.title},set title(value){n.title=value,l()},get description(){return n.description},set description(value){n.description=value,l()},get detail(){return n.detail},set detail(value){n.detail=value,l()},show:()=>{a=!0,l()},hide:()=>{a=!1,this._proxy.$disposeEntry(t)},dispose:()=>{s=!0,this._proxy.$disposeEntry(t),this._items.delete(o)}});return this._items.set(o,c),c}}class nY{constructor(e){const t=e.getProxy(ev.MainContext.MainThreadClipboard);this.value=Object.freeze({readText:()=>t.$readText(),writeText:e=>t.$writeText(e)})}}var nX=e.i(331508);class nZ{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,o){let n;for(let t of this._editors.getVisibleTextEditors(!0))if(t.value===e){n=t;break}if(!n)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,nX.asWebviewUri)(e,s._remoteInfo)}get cspSource(){return nX.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,n.id,n.value.document.uri,t+1,i,r||{},o.identifier,o.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 n0{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 o={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)})}},n={location:t.location,chatRequestId:t.chatRequestId,chatRequestModel:t.chatRequestModel,chatSessionId:t.chatSessionResource?nF.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(n,o,i)??null}registerMappedEditsProvider(e,t){let i=n0._providerHandlePool++;return this._proxy.$registerCodeMapperProvider(i,e.displayName??e.name),this.providers.set(i,t),{dispose:()=>this._proxy.$unregisterCodeMapperProvider(i)}}}var n1=eH,n2=e.i(956711),n6=e.i(539222);class n3{#h;#e;#g;#p;#m;#f;#v;#_;#y;#C;#S;#b;constructor(e,t,i,r,o,n,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=o,this.#f=n,this.#S=n4(n),this.#b=function(e){try{let t=(0,n2.normalizeVersion)((0,n2.parseVersion)(e.engines.vscode));if(!t)return!1;return t.majorBase<1||1===t.majorBase&&t.minorBase<60}catch{return!1}}(n),this.#g=s}#w;dispose(){this.#y=!0,this.#w.fire(),this.#w.dispose(),this._onMessageEmitter.dispose()}asWebviewUri(e){return this.#C=!0,(0,nX.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+" "+nX.webviewGenericCspSource}return nX.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,n7(this.#f,this.#m,e)),this.#_=e}async postMessage(e){if(this.#y)return!1;let t=(0,n6.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,o,n,s,a)=>{let l=eD.URI.from({scheme:n||"file",path:decodeURIComponent(s)}),c=(0,nX.asWebviewUri)(l,{isRemote:t,authority:i}).toString();return`${r}${c}${a}`}).replace(/(["'])(?:vscode-webview-resource):(\/\/[^\s\/'"]+\/([^\s\/'"]+?)(?=\/))?([^\s'"]+?)(["'])/gi,(e,r,o,n,s,a)=>{let l=eD.URI.from({scheme:n||"file",path:decodeURIComponent(s)}),c=(0,nX.asWebviewUri)(l,{isRemote:t,authority:i}).toString();return`${r}${c}${a}`})}}function n4(e){try{let t=(0,n2.normalizeVersion)((0,n2.parseVersion)(e.engines.vscode));return!!t&&t.majorBase>=1&&t.minorBase>=57}catch{return!1}}class n5 extends n1.Disposable{constructor(e,t,i,r,o){super(),this.remoteInfo=t,this.workspace=i,this._logService=r,this._deprecationService=o,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,n6.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 o=new n3(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,o);let n=o._onDidDispose(()=>{n.dispose(),this.deleteWebview(e)});return o}deleteWebview(e){this._webviews.delete(e)}getWebview(e){return this._webviews.get(e)}}function n8(e){return{id:e.identifier,location:e.extensionLocation}}function n7(e,t,i){var r,o;return{enableCommandUris:i.enableCommandUris,enableScripts:i.enableScripts,enableForms:i.enableForms,portMapping:i.portMapping,localResourceRoots:i.localResourceRoots||(r=e,o=t,[...(o?.getWorkspaceFolders()||[]).map(e=>e.uri),r.extensionLocation])}}class n9{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(){n9.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 n9("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 o=new se(t,i);return this._documents.set(r,o),o}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,o){this._extHostDocuments=t,this._extensionStoragePaths=i,this._extHostWebview=r,this._extHostWebviewPanels=o,this._editorProviders=new si,this._documents=new st,this._proxy=e.getProxy(ev.MainContext.MainThreadCustomEditors)}registerCustomEditorProvider(e,t,i,r){let o=new eH.DisposableStore;return"function"==typeof i.resolveCustomTextEditor?(o.add(this._editorProviders.addTextProvider(t,e,i)),this._proxy.$registerTextEditorProvider(n8(e),t,r.webviewOptions||{},{supportsMove:!!i.moveCustomTextEditor},n4(e))):(o.add(this._editorProviders.addCustomProvider(t,e,i)),so(i)&&o.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(n8(e),t,r.webviewOptions||{},!!r.supportsMultipleEditorsPerDocument,n4(e))),eh.Disposable.from(o,new eh.Disposable(()=>{this._proxy.$unregisterEditorProvider(t)}))}async $createCustomDocument(e,t,i,r,o){let n,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},o);return so(s.provider)&&this._extensionStoragePaths&&(n=this._extensionStoragePaths.workspaceValue(s.extension)??this._extensionStoragePaths.globalValue(s.extension)),this._documents.add(t,l,n),{editable:so(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:o}=this.getCustomDocumentEntry(t,r);this._documents.delete(t,o),o.dispose()}async $resolveCustomEditor(e,t,i,r,o,n){let s=this._editorProviders.get(i);if(!s)throw Error(`No provider found for '${i}'`);let a=e6.ViewColumn.to(o),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,n)}case et.Text:{let e=this._extHostDocuments.getDocument(d);return s.provider.resolveCustomTextEditor(e,c,n)}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 o=this._extHostWebviewPanels.getWebviewPanel(e);if(!o)throw Error("No webview found");let n=eD.URI.revive(t),s=this._extHostDocuments.getDocument(n);await r.provider.moveCustomTextEditor(s,o,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),o=this.getCustomEditorProvider(t);await o.revertCustomDocument(r.document,i),r.disposeBackup()}async $onSave(e,t,i){let r=this.getCustomDocumentEntry(t,e),o=this.getCustomEditorProvider(t);await o.saveCustomDocument(r.document,i),r.disposeBackup()}async $onSaveAs(e,t,i,r){let o=this.getCustomDocumentEntry(t,e);return this.getCustomEditorProvider(t).saveCustomDocumentAs(o.document,eD.URI.revive(i),r)}async $backup(e,t,i){let r=this.getCustomDocumentEntry(t,e),o=this.getCustomEditorProvider(t),n=await o.backupCustomDocument(r.document,{destination:r.getNewBackupUri()},i);return r.updateBackup(n),n.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||!so(i))throw Error("Custom document is not editable");return i}}function so(e){return!!e.onDidChangeCustomDocument}var sn=e.i(362787),ss=e.i(495101);class sa{#e;#x;#D;constructor(e,t,i,r,o,n,s,a){this._name=e,this._owner=t,this._maxDiagnosticsTotal=i,this._maxDiagnosticsPerFile=r,this._modelVersionIdProvider=o,this._isDisposed=!1,this._maxDiagnosticsTotal=Math.max(r,i),this.#D=new eV.ResourceMap(e=>n.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,o]=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,[])),o){let t=this.#D.get(e);t?.push(...(0,eY.coalesce)(o))}else{let t=this.#D.get(e);t&&(t.length=0)}}}if(this.#x.fire(i),!this.#e)return;let r=[],o=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 o=0;o<4;o++)for(let n of i)if(n.severity===r[o]&&t.push({...e6.Diagnostic.from(n),modelVersionId:this._modelVersionIdProvider(e)})===this._maxDiagnosticsPerFile)break i;t.push({severity:sn.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]),(o+=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:o,_onDidChangeDiagnostics:n,_logService:s,_fileSystemInfoService:a,_extHostDocumentsAndEditors:l}=this,c=new class{$changeMany(t,i){o.$changeMany(t,i),s.trace("[DiagnosticCollection] change many (extension, owner, uris)",e.value,t,0===i.length?"CLEARING":i)}$clear(t){o.$clear(t),s.trace("[DiagnosticCollection] remove all (extension, owner)",e.value,t)}dispose(){o.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,n),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 o=e.get(i.toString());void 0===o&&(o=t.length,e.set(i.toString(),o),t.push([i,[]])),t[o][1]=t[o][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 o;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;o&&await o;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(()=>{o===i&&(o=void 0)});o=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 o={dispose:this._callbacks.push([t,i,e])};return Array.isArray(r)&&r.push(o),o}}async $participateInSave(e,t){let i=eD.URI.revive(e),r=!1,o=setTimeout(()=>r=!0,this._thresholds.timeout),n=[];try{for(let e of[...this._callbacks]){if(r)break;let o=this._documents.getDocument(i),s=await this._deliverEventAsyncAndBlameBadListeners(e,{document:o,reason:e6.TextDocumentSaveReason.to(t)});n.push(s)}}finally{clearTimeout(o)}return n}_deliverEventAsyncAndBlameBadListeners([e,t,i],r){let o=this._badListeners.get(e);return"number"==typeof o&&o>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 o=[],n=Date.now(),{document:s,reason:a}=r,{version:l}=s,c=Object.freeze({document:s,reason:a,waitUntil(e){if(Object.isFrozen(o))throw(0,eg.illegalState)("waitUntil can not be called async");o.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(o).then(i=>{this._logService.debug(`onWillSaveTextDocument-listener from extension '${e.identifier.value}' finished after ${Date.now()-n}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:o}of i)t.edits.push({resource:s.uri,versionId:void 0,textEdit:{range:o&&e6.Range.from(o),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,o=eD.URI.revive(e),n=this._documentsAndEditors.getDocument(o);if(!n)throw Error("unknown document");n._acceptIsDirty(i),n.onEvents(t),t.isUndoing?r=eh.TextDocumentChangeReason.Undo:t.isRedoing&&(r=eh.TextDocumentChangeReason.Redo),this._onDidChangeDocument.fire((0,tv.deepFreeze)({document:n.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:n.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 o=await this._proxy.$computeEmbeddings(e,t,i);if(o.length!==t.length)throw Error();if(r){if(1!==o.length)throw Error();return o[0]}return o}async $provideEmbeddings(e,t,i){let r=this._provider.get(e);if(!r)return[];let o=await r.provider.provideEmbeddings(t,i);return o||[]}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 o=await r.provideEmbeddingVector(t,i);if(!o)throw Error("Embedding vector provider returned undefined");return o}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=[],o=sf.State.LastKnownState,n=sf.State.LastKnownState;for(let s of i){let i=e?(0,e0.commonPrefixLength)(e,s):0;for(t=0===i?sf.State.Start:n;i<s.length;i++)i+1===s.length?(o=n,n=sf.State.BeforeColon):n+=1,r.push([t,s.toUpperCase().charCodeAt(i),n]),r.push([t,s.toLowerCase().charCodeAt(i),n]),t=n;e=s,n=o}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 o;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 n=this._handlePool++;this._linkProvider.add(t),this._registeredSchemes.add(t),this._fsProvider.set(n,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&&(o={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(n,t,s,o).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:o,type:n}=r;if(o.scheme===t){switch(n){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:o,type:e})}}this._proxy.$onFileSystemChange(n,i)});return(0,eH.toDisposable)(()=>{a.dispose(),this._linkProvider.delete(t),this._registeredSchemes.delete(t),this._fsProvider.delete(n),this._proxy.$unregisterProvider(n)})}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:o,permissions:n}=e;return{type:t,ctime:i,mtime:r,size:o,permissions:n}}$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 o=this._getFsProvider(e);if(!o.copy)throw Error('FileSystemProvider does not implement "copy"');return Promise.resolve(o.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 o=this._getFsProvider(e).watch(eD.URI.revive(i),r);this._watches.set(t,o)}$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 o=this._getFsProvider(e);if(!o.read)throw Error('FileSystemProvider does not implement "read"');let n=eF.VSBuffer.alloc(r);return Promise.resolve(o.read(t,i,n.buffer,0,r)).then(e=>n.slice(0,e))}$write(e,t,i,r){let o=this._getFsProvider(e);if(!o.write)throw Error('FileSystemProvider does not implement "write"');return Promise.resolve(o.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,o,n,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,ox.parse)(s,{ignoreCase:l}),d="string"==typeof s,u=n(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,o,s,a,!1),this._onDidCreate,this._onDidChange,this._onDidDelete,u)}ensureWatching(e,t,i,r,o,n,s){let a,l,c=eh.Disposable.from();if("string"==typeof o||n.ignoreChangeEvents&&n.ignoreCreateEvents&&n.ignoreDeleteEvents)return c;let d=e.getProxy(ev.MainContext.MainThreadFileSystemEventService),u=!1;(o.pattern.includes(ox.GLOBSTAR)||o.pattern.includes(ox.GLOB_SPLIT))&&(u=!0);let h=[];if(s)(n.ignoreChangeEvents||n.ignoreCreateEvents||n.ignoreDeleteEvents)&&(a=ep.FileChangeFilter.UPDATED|ep.FileChangeFilter.ADDED|ep.FileChangeFilter.DELETED,n.ignoreChangeEvents&&(a&=~ep.FileChangeFilter.UPDATED),n.ignoreCreateEvents&&(a&=~ep.FileChangeFilter.ADDED),n.ignoreDeleteEvents&&(a&=~ep.FileChangeFilter.DELETED));else if(u&&0===h.length){let e=t.getWorkspaceFolder(eD.URI.revive(o.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(o.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,"/")}/${ox.GLOBSTAR}`;l||(l=[]),l.push((g=e.uri.fsPath,"string"!=typeof t||t.startsWith(ox.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,o.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,o,n){return new sx(this._mainContext,t,i,e,r,this._onFileSystemEvent.event,e6.GlobPattern.from(o),n)}$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,o)=>{let n=function(e){i.call(r,e)};return n.extension=e,t.event(n,void 0,o)}}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 o=new Set,n=[];if(await e.fireAsync(t,r,async(e,t)=>{let r=Date.now(),s=await Promise.resolve(e);s instanceof sw.WorkspaceEdit&&(n.push([t.extension,s]),o.add(t.extension.displayName??t.extension.identifier.value)),Date.now()-r>i&&this._logService.warn("SLOW file-participant",t.extension.identifier)}),r.isCancellationRequested||0===n.length)return;let s={edits:[]};for(let[,e]of n){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(o)}}}class sk{constructor(e,t,i,r,o){this._extHostNotebooks=t,this._textDocumentsAndEditors=i,this._commands=r;const n=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(o.debug("[ExtHostInteractive] open iw with notebook editor id",e.notebookEditorId),void 0!==e.notebookEditorId){let t=this._extHostNotebooks.getEditorById(e.notebookEditorId);return o.debug("[ExtHostInteractive] notebook editor found",t.id),{notebookUri:eD.URI.revive(e.notebookUri),inputUri:eD.URI.revive(e.inputUri),notebookEditor:t.apiEditor}}return o.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(n)}$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,o,n){this._documents=e,this._commands=t,this._provider=i,this._extension=r,this._extTelemetry=o,this._logService=n,this._cache=new n9("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 o=this._cache.add(r),n=new sR.DisposableStore;this._disposables.set(o,n);let s={cacheId:o,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:[o,e],range:e6.Range.from(r[e].range),command:this._commands.toInternal(r[e].command,n)})}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 o=e.cacheId&&this._disposables.get(e.cacheId[0]);if(o){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,o),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),o=e6.Position.to(t);return sL(await this._provider.provideDefinition(r,o,i))}}class sO{constructor(e,t){this._documents=e,this._provider=t}async provideDeclaration(e,t,i){let r=this._documents.getDocument(e),o=e6.Position.to(t);return sL(await this._provider.provideDeclaration(r,o,i))}}class sN{constructor(e,t){this._documents=e,this._provider=t}async provideImplementation(e,t,i){let r=this._documents.getDocument(e),o=e6.Position.to(t);return sL(await this._provider.provideImplementation(r,o,i))}}class s${constructor(e,t){this._documents=e,this._provider=t}async provideTypeDefinition(e,t,i){let r=this._documents.getDocument(e),o=e6.Position.to(t);return sL(await this._provider.provideTypeDefinition(r,o,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 o,n=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};o=await this._provider.provideHover(n,s,r,a)}else o=await this._provider.provideHover(n,s,r);if(!o||(0,eY.isFalsyOrEmpty)(o.contents))return;o.range||(o.range=n.getWordRangeAtPosition(s)),o.range||(o.range=new ti.Range(s,s));let a=e6.Hover.from(o),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,o),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),o=e6.Position.to(t),n=await this._provider.provideEvaluatableExpression(r,o,i);if(n)return e6.EvaluatableExpression.from(n)}}class sW{constructor(e,t){this._documents=e,this._provider=t}async provideInlineValues(e,t,i,r){let o=this._documents.getDocument(e),n=await this._provider.provideInlineValues(o,e6.Range.to(t),e6.InlineValueContext.to(i),r);if(Array.isArray(n))return n.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),o=e6.Position.to(t),n=await this._provider.provideDocumentHighlights(r,o,i);if(Array.isArray(n))return n.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 o=this._documents.getDocument(e),n=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(o,s,n,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),o=e6.Position.to(t),n=await this._provider.provideLinkedEditingRanges(r,o,i);if(n&&Array.isArray(n.ranges))return{ranges:(0,eY.coalesce)(n.ranges.map(e6.Range.from)),wordPattern:n.wordPattern}}}class sK{constructor(e,t){this._documents=e,this._provider=t}async provideReferences(e,t,i,r){let o=this._documents.getDocument(e),n=e6.Position.to(t),s=await this._provider.provideReferences(o,n,i,r);if(Array.isArray(s))return s.map(e6.location.from)}}class sV{static{this._maxCodeActionsPerFile=1e3}constructor(e,t,i,r,o,n,s){this._documents=e,this._commands=t,this._diagnostics=i,this._provider=r,this._logService=o,this._extension=n,this._apiDeprecation=s,this._cache=new n9("CodeAction"),this._disposables=new Map}async provideCodeActions(e,t,i,r){let o=this._documents.getDocument(e),n=sP.Selection.isISelection(t)?e6.Selection.to(t):e6.Range.to(t),s=[];for(let t of this._diagnostics.getDiagnostics(e))if(n.intersection(t.range)&&s.push(t)>sV._maxCodeActionsPerFile)break;let a={diagnostics:s,only:i.only?new nk.CodeActionKind(i.only):void 0,triggerKind:e6.CodeActionTriggerKind.to(i.trigger)},l=await this._provider.provideCodeActions(o,n,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,[o,n]=e,s=this._cache.get(o,n);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(o);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,o){this._proxy=e,this._documents=t,this._provider=i,this._handle=r,this._extension=o,this._editsCache=new n9("DocumentPasteEdit.edits")}async prepareDocumentPaste(e,t,i,r){if(!this._provider.prepareDocumentPaste)return;this._cachedPrepare=void 0;let o=this._documents.getDocument(e),n=t.map(e=>e6.Range.to(e)),s=e6.DataTransfer.toDataTransfer(i,()=>{throw new eg.NotImplementedError});if(await this._provider.prepareDocumentPaste(o,n,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,o,n){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:o.only?new eh.DocumentDropOrPasteEditKind(o.only):void 0,triggerKind:o.triggerKind},n);if(!d||n.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,o=this._editsCache.get(i,r);if(!o||!this._provider.resolveDocumentPasteEdit)return{};let n=await this._provider.resolveDocumentPasteEdit(o,t)??o;return{insertText:n.insertText,additionalEdit:n.additionalEdit?e6.WorkspaceEdit.from(n.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),o=await this._provider.provideDocumentFormattingEdits(r,t,i);if(Array.isArray(o))return o.map(e6.TextEdit.from)}}class sQ{constructor(e,t){this._documents=e,this._provider=t}async provideDocumentRangeFormattingEdits(e,t,i,r){let o=this._documents.getDocument(e),n=e6.Range.to(t),s=await this._provider.provideDocumentRangeFormattingEdits(o,n,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 o=this._documents.getDocument(e),n=t.map(e6.Range.to),s=await this._provider.provideDocumentRangesFormattingEdits(o,n,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,o){let n=this._documents.getDocument(e),s=e6.Position.to(t),a=await this._provider.provideOnTypeFormattingEdits(n,s,i,r,o);if(Array.isArray(a))return a.map(e6.TextEdit.from)}}class sY{constructor(e,t){this._provider=e,this._logService=t,this._cache=new n9("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),o={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}o.symbols.push({...e6.WorkspaceSymbol.from(t),cacheId:[r,e]})}return o}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 o=this._documents.getDocument(e),n=e6.Position.to(t);try{let e=await this._provider.provideRenameEdits(o,n,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),o=e6.Position.to(t);try{let e,t,n=await this._provider.prepareRename(r,o,i);if(ti.Range.isRange(n)?(e=n,t=r.getText(n)):(0,eK.isObject)(n)&&(e=n.range,t=n.placeholder),!e||!t)return;if(e.start.line>o.line||e.end.line<o.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={[nw.NewSymbolNameTriggerKind.Invoke]:eh.NewSymbolNameTriggerKind.Invoke,[nw.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 o=this._documents.getDocument(e),n=e6.Range.to(t);try{let e=sZ.languageTriggerKindToVSCodeTriggerKind[i],t=await this._provider.provideNewSymbolNames(o,n,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),o=0!==t?this._previousResults.get(t):null,n="string"==typeof o?.resultId&&"function"==typeof this._provider.provideDocumentSemanticTokensEdits?await this._provider.provideDocumentSemanticTokensEdits(r,o.resultId,i):await this._provider.provideDocumentSemanticTokens(r,i);return(o&&this._previousResults.delete(t),n)?(n=s1._fixProvidedSemanticTokens(n),this._send(s1._convertToEdits(o,n),n)):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,o=t.data,n=o.length,s=0,a=Math.min(r,n);for(;s<a&&i[s]===o[s];)s++;if(s===r&&s===n)return new eh.SemanticTokensEdits([],t.resultId);let l=0,c=a-s;for(;l<c&&i[r-l-1]===o[n-l-1];)l++;return new eh.SemanticTokensEdits([{start:s,deleteCount:r-s-l,data:o.subarray(s,n-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,nx.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,nx.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),o=await this._provider.provideDocumentRangeSemanticTokens(r,e6.Range.to(t),i);return o?this._send(o):null}_send(e){return(0,nx.encodeSemanticTokensDto)({id:0,type:"full",data:e.data})}}class s6{static supportsResolving(e){return"function"==typeof e.resolveCompletionItem}constructor(e,t,i,r,o){this._documents=e,this._commands=t,this._provider=i,this._apiDeprecation=r,this._extension=o,this._cache=new n9("CompletionItem"),this._disposables=new Map}async provideCompletionItems(e,t,i,r){let o=this._documents.getDocument(e),n=e6.Position.to(t),s=o.getWordRangeAtPosition(n)||new ti.Range(n,n),a=s.with({end:n}),l=new tj.StopWatch,c=await this._provider.provideCompletionItems(o,n,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),o=await this._provider.resolveCompletionItem(i,t);if(!o)return;let n=this._convertCompletionItem(o,e);return(r[ev.ISuggestDataDtoField.insertText]!==n[ev.ISuggestDataDtoField.insertText]||r[ev.ISuggestDataDtoField.insertTextRules]!==n[ev.ISuggestDataDtoField.insertTextRules])&&this._apiDeprecation.report("CompletionItem.insertText",this._extension,"extension MAY NOT change 'insertText' of a CompletionItem during resolve"),r[ev.ISuggestDataDtoField.commandIdent]===n[ev.ISuggestDataDtoField.commandIdent]&&r[ev.ISuggestDataDtoField.commandId]===n[ev.ISuggestDataDtoField.commandId]&&(0,tv.equals)(r[ev.ISuggestDataDtoField.commandArguments],n[ev.ISuggestDataDtoField.commandArguments])||this._apiDeprecation.report("CompletionItem.command",this._extension,"extension MAY NOT change 'command' of a CompletionItem during resolve"),{...r,[ev.ISuggestDataDtoField.documentation]:n[ev.ISuggestDataDtoField.documentation],[ev.ISuggestDataDtoField.detail]:n[ev.ISuggestDataDtoField.detail],[ev.ISuggestDataDtoField.additionalTextEdits]:n[ev.ISuggestDataDtoField.additionalTextEdits],[ev.ISuggestDataDtoField.insertText]:n[ev.ISuggestDataDtoField.insertText],[ev.ISuggestDataDtoField.insertTextRules]:n[ev.ISuggestDataDtoField.insertTextRules],[ev.ISuggestDataDtoField.commandIdent]:n[ev.ISuggestDataDtoField.commandIdent],[ev.ISuggestDataDtoField.commandId]:n[ev.ISuggestDataDtoField.commandId],[ev.ISuggestDataDtoField.commandArguments]:n[ev.ISuggestDataDtoField.commandArguments]}}releaseCompletionItems(e){this._disposables.get(e)?.dispose(),this._disposables.delete(e),this._cache.delete(e)}_convertCompletionItem(e,t,i,r){let o,n=this._disposables.get(t[0]);if(!n)throw Error("DisposableStore is missing...");let s=this._commands.toInternal(e.command,n),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?nw.CompletionItemInsertTextRule.KeepWhitespace:nw.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]|=nw.CompletionItemInsertTextRule.InsertAsSnippet),e.textEdit?o=e.textEdit.range:e.range&&(o=e.range),ti.Range.isRange(o)?a[ev.ISuggestDataDtoField.range]=e6.Range.from(o):!o||i?.isEqual(o.inserting)&&r?.isEqual(o.replacing)||(a[ev.ISuggestDataDtoField.range]={insert:e6.Range.from(o.inserting),replace:e6.Range.from(o.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={[nw.InlineCompletionTriggerKind.Automatic]:eh.InlineCompletionTriggerKind.Automatic,[nw.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 o,n=this._documents.getDocument(e),s=e6.Position.to(t),a=await this._provider.provideInlineCompletionItems(n,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(){o?.dispose()},items:l,list:c}),languageId:n.languageId,items:l.map((e,t)=>{let i,r;e.command&&(o||(o=new sR.DisposableStore),i=this._commands.toInternal(e.command,o)),e.action&&(o||(o=new sR.DisposableStore),r=this._commands.toInternal(e.action,o));let n=e.insertText;return{insertText:void 0===n?void 0:"string"==typeof n?n:{snippet:n.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):nw.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=>(o||(o=new sR.DisposableStore),e6.CompletionCommand.from(e,this._commands,o))),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 o=this._references.get(e)?.items[t];o&&this._provider.handleDidPartiallyAcceptCompletionItem&&this._isAdditionsProposedApiEnabled&&(this._provider.handleDidPartiallyAcceptCompletionItem(o,i),this._provider.handleDidPartiallyAcceptCompletionItem(o,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 n9("SignatureHelp")}async provideSignatureHelp(e,t,i,r){let o=this._documents.getDocument(e),n=e6.Position.to(t),s=this.reviveContext(i),a=await this._provider.provideSignatureHelp(o,n,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,o){this._documents=e,this._commands=t,this._provider=i,this._logService=r,this._extension=o,this._cache=new n9("InlayHints"),this._disposables=new Map}async provideInlayHints(e,t,i){let r=this._documents.getDocument(e),o=e6.Range.to(t),n=await this._provider.provideInlayHints(r,o,i);if(!Array.isArray(n)||0===n.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(n);this._disposables.set(s,new sR.DisposableStore);let a={hints:[],cacheId:s};for(let e=0;e<n.length;e++)this._isValidInlayHint(n[e],o)&&a.hints.push(this._convertInlayHint(n[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 o of(r.label=t,e.label)){if(!o.value){console.warn("INVALID inlay hint, empty label part",this._extension.identifier.value);continue}let e={label:o.value,tooltip:e6.MarkdownString.fromStrict(o.tooltip)};tZ.Location.isLocation(o.location)&&(e.location=e6.location.from(o.location)),o.command&&(e.command=this._commands.toInternal(o.command,i)),t.push(e)}}return r}}class s7{constructor(e,t){this._documents=e,this._provider=t,this._cache=new n9("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 o=e6.DocumentLink.from(r[i]);o.cacheId=[e,i],t.links.push(o)}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),o=e6.Range.to(t.range),n=e6.Color.to(t.color),s=await this._provider.provideColorPresentations(n,{document:r,range:o},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),o=await this._provider.provideFoldingRanges(r,t,i);if(Array.isArray(o))return o.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),o=t.map(e6.Position.to),n=await this._provider.provideSelectionRanges(r,o,i);if(!(0,eY.isNonEmptyArray)(n))return[];if(n.length!==o.length)return this._logService.warn("BAD selection ranges, provider must return ranges for each position"),[];let s=[];for(let e=0;e<o.length;e++){let t=[];s.push(t);let i=o[e],r=n[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),o=e6.Position.to(t),n=await this._provider.prepareCallHierarchy(r,o,i);if(!n)return;let s=this._idPool.nextId();return(this._cache.set(s,new Map),Array.isArray(n))?n.map(e=>this._cacheAndConvertItem(s,e)):[this._cacheAndConvertItem(s,n)]}async provideCallsTo(e,t,i){let r=this._itemFromCache(e,t);if(!r)throw Error("missing call hierarchy item");let o=await this._provider.provideCallHierarchyIncomingCalls(r,i);if(o)return o.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 o=await this._provider.provideCallHierarchyOutgoingCalls(r,i);if(o)return o.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),o=e6.Position.to(t),n=await this._provider.prepareTypeHierarchy(r,o,i);if(!n)return;let s=this._idPool.nextId();return(this._cache.set(s,new Map),Array.isArray(n))?n.map(e=>this._cacheAndConvertItem(s,e)):[this._cacheAndConvertItem(s,n)]}async provideSupertypes(e,t,i){let r=this._itemFromCache(e,t);if(!r)throw Error("missing type hierarchy item");let o=await this._provider.provideTypeHierarchySupertypes(r,i);if(o)return o.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 o=await this._provider.provideTypeHierarchySubtypes(r,i);if(o)return o.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 ao{constructor(e,t,i,r,o){this._proxy=e,this._documents=t,this._provider=i,this._handle=r,this._extension=o,this._cache=new n9("DocumentDropEdit")}async provideDocumentOnDropEdits(e,t,i,r,o){let n=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(n,s,a,o);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,o=this._cache.get(i,r);if(!o||!this._provider.resolveDocumentDropEdit)return{};let n=await this._provider.resolveDocumentDropEdit(o,t)??o;return{additionalEdit:n.additionalEdit?e6.WorkspaceEdit.from(n.additionalEdit,void 0):void 0}}releaseDropEdits(e){this._cache.delete(e)}}class an{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,o,n,s,a){super(),this._uriTransformer=t,this._documents=i,this._commands=r,this._diagnostics=o,this._logService=n,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,o,n=!1){let s=this._adapter.get(e);if(!s||!(s.adapter instanceof t))return r;let a=Date.now();n||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(()=>{n||this._logService.trace(`[${s.extension.identifier.value}] provider DONE after ${Date.now()-a}ms`)}),ef.CancellationToken.isCancellationToken(o))?(0,eU.raceCancellationError)(l,o):l}_addNewAdapter(e,t){let i=this._nextHandle();return this._adapter.set(i,new an(e,t)),i}static _extLabel(e){return e.displayName||e.name}static _extId(e){return e.identifier.value}registerDocumentSymbolProvider(e,t,i,r){let o=this._addNewAdapter(new sA(this._documents,i),e),n=r&&r.label||as._extLabel(e);return this._proxy.$registerDocumentSymbolProvider(o,this._transformDocumentSelector(t,e),n),this._createDisposable(o)}$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(),o="function"==typeof i.onDidChangeCodeLenses?this._nextHandle():void 0;this._adapter.set(r,new an(new sM(this._documents,this._commands.converter,i,e,this._extensionTelemetry,this._logService),e)),this._proxy.$registerCodeLensSupport(r,this._transformDocumentSelector(t,e),o);let n=this._createDisposable(r);if(void 0!==o){let e=i.onDidChangeCodeLenses(e=>this._proxy.$emitCodeLensEvent(o));n=eh.Disposable.from(n,e)}return n}$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 o=this._addNewAdapter(new sH(this._documents,i),e);return this._proxy.$registerHoverProvider(o,this._transformDocumentSelector(t,e)),this._createDisposable(o)}$provideHover(e,t,i,r,o){return this._withAdapter(e,sH,e=>e.provideHover(eD.URI.revive(t),i,r,o),void 0,o)}$releaseHover(e,t){this._withAdapter(e,sH,e=>Promise.resolve(e.releaseHover(t)),void 0,void 0)}registerEvaluatableExpressionProvider(e,t,i,r){let o=this._addNewAdapter(new sU(this._documents,i),e);return this._proxy.$registerEvaluatableExpressionProvider(o,this._transformDocumentSelector(t,e)),this._createDisposable(o)}$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 o="function"==typeof i.onDidChangeInlineValues?this._nextHandle():void 0,n=this._addNewAdapter(new sW(this._documents,i),e);this._proxy.$registerInlineValuesProvider(n,this._transformDocumentSelector(t,e),o);let s=this._createDisposable(n);if(void 0!==o){let e=i.onDidChangeInlineValues(e=>this._proxy.$emitInlineValuesEvent(o));s=eh.Disposable.from(s,e)}return s}$provideInlineValues(e,t,i,r,o){return this._withAdapter(e,sW,e=>e.provideInlineValues(eD.URI.revive(t),i,r,o),void 0,o)}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,o){return this._withAdapter(e,sj,e=>e.provideMultiDocumentHighlights(eD.URI.revive(t),i,r.map(e=>eD.URI.revive(e)),o),void 0,o)}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 o=await e.provideLinkedEditingRanges(eD.URI.revive(t),i,r);if(o)return{ranges:o.ranges,wordPattern:o.wordPattern?as._serializeRegExp(o.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,o){return this._withAdapter(e,sK,e=>e.provideReferences(eD.URI.revive(t),i,r,o),void 0,o)}registerCodeActionProvider(e,t,i,r){let o=new sR.DisposableStore,n=this._addNewAdapter(new sV(this._documents,this._commands.converter,this._diagnostics,i,this._logService,e,this._apiDeprecation),e);return this._proxy.$registerCodeActionSupport(n,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,o)}))},as._extLabel(e),as._extId(e),!!i.resolveCodeAction),o.add(this._createDisposable(n)),o}$provideCodeActions(e,t,i,r,o){return this._withAdapter(e,sV,e=>e.provideCodeActions(eD.URI.revive(t),i,r,o),void 0,o)}$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,o=this._addNewAdapter(new sQ(this._documents,i),e);return this._proxy.$registerRangeFormattingSupport(o,this._transformDocumentSelector(t,e),e.identifier,e.displayName||e.name,r),this._createDisposable(o)}$provideDocumentRangeFormattingEdits(e,t,i,r,o){return this._withAdapter(e,sQ,e=>e.provideDocumentRangeFormattingEdits(eD.URI.revive(t),i,r,o),void 0,o)}$provideDocumentRangesFormattingEdits(e,t,i,r,o){return this._withAdapter(e,sQ,e=>e.provideDocumentRangesFormattingEdits(eD.URI.revive(t),i,r,o),void 0,o)}registerOnTypeFormattingEditProvider(e,t,i,r){let o=this._addNewAdapter(new sJ(this._documents,i),e);return this._proxy.$registerOnTypeFormattingSupport(o,this._transformDocumentSelector(t,e),r,e.identifier),this._createDisposable(o)}$provideOnTypeFormattingEdits(e,t,i,r,o,n){return this._withAdapter(e,sJ,e=>e.provideOnTypeFormattingEdits(eD.URI.revive(t),i,r,o,n),void 0,n)}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,o){return this._withAdapter(e,sX,e=>e.provideRenameEdits(eD.URI.revive(t),i,r,o),void 0,o)}$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,o){return this._withAdapter(e,sZ,e=>e.provideNewSymbolNames(eD.URI.revive(t),i,r,o),void 0,o)}registerDocumentSemanticTokensProvider(e,t,i,r){let o=this._addNewAdapter(new s1(this._documents,i),e),n="function"==typeof i.onDidChangeSemanticTokens?this._nextHandle():void 0;this._proxy.$registerDocumentSemanticTokensProvider(o,this._transformDocumentSelector(t,e),r,n);let s=this._createDisposable(o);if(n){let e=i.onDidChangeSemanticTokens(e=>this._proxy.$emitDocumentSemanticTokensEvent(n));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 o=this._addNewAdapter(new s2(this._documents,i),e),n="function"==typeof i.onDidChangeSemanticTokens?this._nextHandle():void 0;this._proxy.$registerDocumentRangeSemanticTokensProvider(o,this._transformDocumentSelector(t,e),r,n);let s=this._createDisposable(o);if(n){let e=i.onDidChangeSemanticTokens(e=>this._proxy.$emitDocumentRangeSemanticTokensEvent(n));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 o=this._addNewAdapter(new s6(this._documents,this._commands.converter,i,this._apiDeprecation,e),e);return this._proxy.$registerCompletionsProvider(o,this._transformDocumentSelector(t,e),r,s6.supportsResolving(i),e.identifier),this._createDisposable(o)}$provideCompletionItems(e,t,i,r,o){return this._withAdapter(e,s6,e=>e.provideCompletionItems(eD.URI.revive(t),i,r,o),void 0,o)}$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 o=new s3(e,this._documents,i,this._commands.converter),n=this._addNewAdapter(o,e),s=this._createDisposable(n),a=(0,tp.isProposedApiEnabled)(e,"inlineCompletionsAdditions")&&"function"==typeof i.onDidChange;if(a){let e=i.onDidChange(e=>this._proxy.$emitInlineCompletionsChange(n));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(n,o.modelInfo));s=eh.Disposable.from(s,e)}return this._proxy.$registerInlineCompletionsSupport(n,this._transformDocumentSelector(t,e),o.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,o.supportsSetModelId,o.modelInfo,l),s}$provideInlineCompletions(e,t,i,r,o){return this._withAdapter(e,s3,e=>e.provideInlineCompletions(eD.URI.revive(t),i,r,o),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,o){this._withAdapter(e,s3,async e=>{e.handlePartialAccept(t,i,r,o)},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 o=Array.isArray(r)?{triggerCharacters:r,retriggerCharacters:[]}:r,n=this._addNewAdapter(new s5(this._documents,i),e);return this._proxy.$registerSignatureHelpProvider(n,this._transformDocumentSelector(t,e),o),this._createDisposable(n)}$provideSignatureHelp(e,t,i,r,o){return this._withAdapter(e,s5,e=>e.provideSignatureHelp(eD.URI.revive(t),i,r,o),void 0,o)}$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,o=this._addNewAdapter(new s8(this._documents,this._commands.converter,i,this._logService,e),e);this._proxy.$registerInlayHintsProvider(o,this._transformDocumentSelector(t,e),"function"==typeof i.resolveInlayHint,r,as._extLabel(e));let n=this._createDisposable(o);if(void 0!==r){let e=i.onDidChangeInlayHints(e=>this._proxy.$emitInlayHintsEvent(r));n=eh.Disposable.from(n,e)}return n}$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(),o="function"==typeof i.onDidChangeFoldingRanges?this._nextHandle():void 0;this._adapter.set(r,new an(new ae(this._documents,i),e)),this._proxy.$registerFoldingRangeProvider(r,this._transformDocumentSelector(t,e),e.identifier,o);let n=this._createDisposable(r);if(void 0!==o){let e=i.onDidChangeFoldingRanges(()=>this._proxy.$emitFoldingRangeEvent(o));n=eh.Disposable.from(n,e)}return n}$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 o=this._nextHandle();return this._adapter.set(o,new an(new ao(this._proxy,this._documents,i,o,e),e)),this._proxy.$registerDocumentOnDropEditProvider(o,this._transformDocumentSelector(t,e),r?{supportsResolve:!!i.resolveDocumentDropEdit,dropMimeTypes:r.dropMimeTypes,providedDropKinds:r.providedDropEditKinds?.map(e=>e.value)}:void 0),this._createDisposable(o)}$provideDocumentOnDropEdits(e,t,i,r,o,n){return this._withAdapter(e,ao,e=>Promise.resolve(e.provideDocumentOnDropEdits(t,eD.URI.revive(i),r,o,n)),void 0,void 0)}$resolveDropEdit(e,t,i){return this._withAdapter(e,ao,e=>e.resolveDropEdit(t,i),{},void 0)}$releaseDocumentOnDropEdits(e,t){this._withAdapter(e,ao,e=>Promise.resolve(e.releaseDropEdits(t)),void 0,void 0)}registerDocumentPasteEditProvider(e,t,i,r){let o=this._nextHandle();return this._adapter.set(o,new an(new sB(this._proxy,this._documents,i,o,e),e)),this._proxy.$registerPasteEditProvider(o,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(o)}$prepareDocumentPaste(e,t,i,r,o){return this._withAdapter(e,sB,e=>e.prepareDocumentPaste(eD.URI.revive(t),i,r,o),void 0,o)}$providePasteEdits(e,t,i,r,o,n,s){return this._withAdapter(e,sB,e=>e.providePasteEdits(t,eD.URI.revive(i),r,o,n,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 o=this._nextHandle(),n={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(o,t,n),this._createDisposable(o)}$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 o;if(!e.context)throw Error("toolInvocationToken is required for this tool");let n=e.parameters,s=eD.URI.revive(n.uri),a=ac.CellUri.parse(s)?.notebook||s,l=this.chatService.getSession(nF.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:n.code,resource:a,markdownBeforeBlock:n.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;o=(0,rb.autorun)(i=>{let r=d.entries.read(i),o=r?.find(e=>e.modifiedURI.toString()===a.toString());o&&(o.isCurrentlyBeingModifiedBy.read(i)?t=!0:t&&e(!0))})}).finally(()=>{o.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,o){super(),this.writeOnly=e,this.includeDescription=t,this.chatTodoListService=i,this.logService=r,this.telemetryService=o}async invoke(e,t,i,r){let o=e.parameters,n=e.context?.sessionId??o.chatSessionId??"default";this.logService.debug(`ManageTodoListTool: Invoking with options ${JSON.stringify(o)}`);try{let e=this.writeOnly?"write":o.operation;if(!e)return{content:[{kind:"text",value:"Error: operation parameter is required"}]};if("read"===e)return this.handleReadOperation(nF.LocalChatSessionUri.forSession(n));if("write"===e)return this.handleWriteOperation(o,nF.LocalChatSessionUri.forSession(n));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,o=e.chatSessionId??r.chatSessionId??"default",n=this.chatTodoListService.getTodos(nF.LocalChatSessionUri.forSession(o));switch(this.writeOnly?"write":r.operation){case"write":r.todoList&&(i=this.generatePastTenseMessage(n,r.todoList));break;case"read":i=(0,e1.localize)(6072,"Read todo list")}let s=(r.todoList??n).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:o,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,o=t.findIndex(t=>t.id===e.id)+1;return(0,e1.localize)(6076,"Starting: *{0}* ({1}/{2})",e.title,o,i)}let o=t.filter(e=>{let t=i.get(e.id);return t&&"completed"!==t.status&&"completed"===e.status});if(o.length>0){let e=o[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 n=t.filter(e=>!i.has(e.id));return n.length>0?1===n.length?(0,e1.localize)(6078,"Added 1 todo"):(0,e1.localize)(6079,"Added {0} todos",n.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,nF.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),o=this.calculateTodoChanges(r,i);this.chatTodoListService.setTodos(t,i);let n=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."),o>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:n.notStartedCount,inProgressCount:n.inProgressCount,completedCount:n.completedCount,chatSessionId:(0,nF.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 o=0;o<r;o++){let r=e[o],n=t[o];(r.title!==n.title||(r.description??"")!==(n.description??"")||r.status!==n.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,ng.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=eo||(eo={});function aN(e,t){let i=function(e){switch(e){case er.instructions:return eo.INSTRUCTIONS_LOCATION_KEY;case er.prompt:return eo.PROMPT_LOCATIONS_KEY;case er.agent:return eo.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(),o=a$(i);void 0!==o&&r&&(e[r]=o)}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,o]of(!1!==i[r]&&e.push(r),Object.entries(i)))!1!==o&&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 o=a$(t);void 0!==o&&(r[i]=o)}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,o,n,s,a,l){this._enabledTools=e,this._promptsService=t,this._logService=i,this._labelService=r,this._configurationService=o,this._workspaceService=n,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},o=this._getContext(e);await this.addApplyingInstructions(i,o,e,r,t),await this._addReferencedInstructions(e,r,t),await this._addAgentInstructions(e,r,t);let n=await this._getInstructionsWithPatternsList(i,e,t);n&&(e.add(n),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,o){for(let{uri:n}of e){let e=await this._parseInstructionsFile(n,o);if(!e){this._logService.trace(`[InstructionsContextComputer] Unable to read: ${n}`);continue}let s=e.header?.applyTo;if(!s){this._logService.trace(`[InstructionsContextComputer] No 'applyTo' found: ${n}`);continue}if(t.instructions.has(n)){this._logService.trace(`[InstructionsContextComputer] Skipping already processed instruction file: ${n}`);continue}let a=this._matches(t.files,s);if(a){this._logService.trace(`[InstructionsContextComputer] Match for ${n} 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,nB.toPromptFileVariableEntry)(n,nB.PromptFileVariableKind.Instruction,e,!0)),r.applyingInstructionsCount++}else this._logService.trace(`[InstructionsContextComputer] No match for ${n} with ${s}`)}}_getContext(e){let t=new eV.ResourceSet,i=new eV.ResourceSet;for(let r of e.asArray())if((0,nB.isPromptFileVariableEntry)(r))i.add(r.value);else{let e=nB.IChatRequestVariableEntry.toUri(r);e&&t.add(e)}return{files:t,instructions:i}}async _addAgentInstructions(e,t,i){let r=this._configurationService.getValue(eo.USE_COPILOT_INSTRUCTION_FILES),o=this._configurationService.getValue(eo.USE_AGENT_MD);if(!r&&!o)return void this._logService.trace("[InstructionsContextComputer] No agent instructions files added (settings disabled).");let n=new nB.ChatRequestVariableSet;if(r){for(let e of(await this._promptsService.listCopilotInstructionsMDs(i)))n.add((0,nB.toPromptFileVariableEntry)(e,nB.PromptFileVariableKind.Instruction,(0,e1.localize)(5979,"Automatically attached as setting {0} is enabled",eo.USE_COPILOT_INSTRUCTION_FILES),!0)),t.agentInstructionsCount++,this._logService.trace(`[InstructionsContextComputer] copilot-instruction.md files added: ${e.toString()}`);await this._addReferencedInstructions(n,t,i)}if(o)for(let e of(await this._promptsService.listAgentMDs(i,!1)))n.add((0,nB.toPromptFileVariableEntry)(e,nB.PromptFileVariableKind.Instruction,(0,e1.localize)(5980,"Automatically attached as setting {0} is enabled",eo.USE_AGENT_MD),!0)),t.agentInstructionsCount++,this._logService.trace(`[InstructionsContextComputer] AGENTS.md files added: ${e.toString()}`);for(let t of n.asArray())e.add(t)}_matches(e,t){let i=(0,ox.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,ox.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"),o=this._getTool(al.VSCodeToolReference.runSubagent),n=[];if(r){let t=this._configurationService.getValue(eo.USE_NESTED_AGENT_MD)?this._promptsService.findAgentMDsInWorkspace(i):Promise.resolve([]);n.push("<instructions>"),n.push("Here is a list of instruction files that contain rules for modifying or creating new code."),n.push("These files are important for ensuring that the code is modified or created correctly."),n.push("Please make sure to follow the rules specified in these files when working with the codebase."),n.push(`If the file is not already available as attachment, use the ${r.variable} tool to acquire it.`),n.push("Make sure to acquire the instructions before making any changes to the code.");let o=!1;for(let{uri:t}of e){let e=await this._parseInstructionsFile(t,i);if(e){if(n.push("<instruction>"),e.header){let{description:i,applyTo:r}=e.header;i&&n.push(`<description>${i}</description>`),n.push(`<file>${aq(t)}</file>`),r&&n.push(`<applyTo>${r}</applyTo>`)}else n.push(`<file>${aq(t)}</file>`);n.push("</instruction>"),o=!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);n.push("<instruction>"),n.push(`<description>${i}</description>`),n.push(`<file>${aq(e)}</file>`),n.push("</instruction>"),o=!0}o?n.push("</instructions>","",""):n.length=0;let s=await this._promptsService.findAgentSkills(i);if(s&&s.length>0){for(let e of(n.push("<skills>"),n.push("Here is a list of skills that contain domain specific knowledge on a variety of topics."),n.push("Each skill comes with a description of the topic and a file path that contains the detailed instructions."),n.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))n.push("<skill>"),n.push(`<name>${e.name}</name>`),e.description&&n.push(`<description>${e.description}</description>`),n.push(`<file>${aq(e.uri)}</file>`),n.push("</skill>");n.push("</skills>","","")}}if(o&&this._configurationService.getValue(nO.ChatConfiguration.SubagentToolCustomAgents)){let e=await this._promptsService.getCustomAgents(i);if(e.length>0){for(let t of(n.push("<agents>"),n.push("Here is a list of agents that can be used when running a subagent."),n.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."),n.push(`Use the ${o.variable} tool with the agent name to run the subagent.`),e))!1!==t.infer&&(n.push("<agent>"),n.push(`<name>${t.name}</name>`),t.description&&n.push(`<description>${t.description}</description>`),t.argumentHint&&n.push(`<argumentHint>${t.argumentHint}</argumentHint>`),n.push("</agent>"));n.push("</agents>","","")}}if(0===n.length)return;let s=n.join("\n"),a=[],l=e=>{if(e){let t=s.indexOf(e.variable);for(;t>=0;)a.push((0,nB.toToolVariableEntry)(e.tool,new aU.OffsetRange(t,t+e.variable.length))),t=s.indexOf(e.variable,t+1)}};return l(r),l(o),(0,nB.toPromptTextVariableEntry)(s,!0,a)}async _addReferencedInstructions(e,t,i){let r=new eV.ResourceSet,o=[];for(let t of e.asArray())(0,nB.isPromptFileVariableEntry)(t)&&!r.has(t.value)&&(o.push(t.value),r.add(t.value));let n=o.pop();for(;n;){let s=await this._parseInstructionsFile(n,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)&&o.push(l);let i=(0,e1.localize)(5983,"Referenced by {0}",(0,eN.basename)(n));e.add((0,nB.toPromptFileVariableEntry)(l,nB.PromptFileVariableKind.InstructionReference,i,!0)),t.referencedInstructionsCount++,this._logService.trace(`[InstructionsContextComputer] ${l.toString()} added, referenced by ${n.toString()}`)}}}}n=o.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,nm.ILabelService),(0,ek.__param)(4,ay.IConfigurationService),(0,ek.__param)(5,np.IWorkspaceContextService),(0,ek.__param)(6,aM.IFileService),(0,ek.__param)(7,ng.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,o,n,s,a,l){super(),this.chatAgentService=e,this.chatService=t,this.chatModeService=i,this.languageModelToolsService=r,this.languageModelsService=o,this.logService=n,this.toolsService=s,this.configurationService=a,this.instantiationService=l,this.onDidUpdateToolData=ey.Event.filter(this.configurationService.onDidChangeConfiguration,e=>e.affectsConfiguration(nO.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(nO.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 o=e.parameters;if(this.logService.debug(`RunSubagentTool: Invoking with prompt: ${o.prompt.substring(0,100)}...`),!e.context)throw Error("toolInvocationToken is required for this tool");let n=this.chatService.getSession(e.context.sessionResource);if(!n)throw Error("Chat model not found for session");let s=n.getRequests().at(-1);try{let t,i=this.chatAgentService.getDefaultAgent(nO.ChatAgentLocation.Chat,nO.ChatModeKind.Agent);if(!i)return aj("Error: No default agent available");let a=e.modelId,l=e.userSelectedTools;if(o.agentName){let e=this.chatModeService.findModeByName(o.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 o=e.modeInstructions?.get();t=o&&{name:e.name.get(),content:o.content,toolReferences:this.toolsService.toToolReferences(o.toolReferences),metadata:o.metadata}}else this.logService.warn(`RunSubagentTool: Agent '${o.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:o.prompt,variables:{variables:u.asArray()},location:nO.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,n.acceptResponseProgress(s,{kind:"markdownContent",content:new s_.MarkdownString("```\n"),fromSubagent:!0})),n.acceptResponseProgress(s,t),"prepareToolInvocation"===t.kind&&(c.length=0)):"markdownContent"===t.kind&&(d&&(n.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 nB.ChatRequestVariableSet,o=this.instantiationService.createInstance(aW,i);return await o.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,o;super(),this.configurationService=i;const n=t.createInstance(af);this._register(e.registerTool(am,n));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(),o?.dispose();let t=u.getToolData();r=e.registerTool(t,u),o=h.addTool(t)};g(),this._register(u.onDidUpdateToolData(g)),this._register({dispose:()=>{r?.dispose(),o?.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=en||(en={}))[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 nD.RawContextKey("defaultExtensionViews",!0),new nD.RawContextKey("hasOutdatedExtensions",!1),new nD.RawContextKey("hasGallery",!1),new nD.RawContextKey("extensionsGalleryStatus",aX.ExtensionGalleryManifestStatus.Unavailable),new nD.RawContextKey("extensionResultListFocused ",!0),new nD.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 o=e.parameters;if(!o.keywords?.length&&!o.category&&!o.ids?.length)return{content:[{kind:"text",value:(0,e1.localize)(7880,"Please provide a category or keywords or ids to search for.")}]};let n=new Map,s=e=>{for(let t of e)t.deprecationInfo||t.isMalicious||n.set(t.identifier.id.toLowerCase(),{id:t.identifier.id,name:t.displayName,description:t.description,installed:t.state===en.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(o.ids?.length&&s(await this.extensionWorkbenchService.getExtensions(o.ids.map(e=>({id:e})),r)),o.keywords?.length)for(let e of o.keywords??[])if("featured"===e)await a("featured");else{let t=o.category?`category:"${o.category}"`:"";t=e?`${t} ${e}`.trim():t,await a(t)}else await a(`category:"${o.category}"`);let l=Array.from(n.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(o),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 o=(0,tJ.generateUuid)();i.tokenizationOptions&&this._tokenCountFuncs.set(o,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 n=await this._proxy.$invokeTool({toolId:t,callId:o,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=n instanceof tW.SerializableObjectWithBuffers?n.value:n;return e6.LanguageModelToolResult.to((0,e8.revive)(s))}finally{this._tokenCountFuncs.delete(o)}}$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 o={input:e.parameters,toolInvocationToken:(0,e8.revive)(e.context)};if((0,tp.isProposedApiEnabled)(r.extension,"chatParticipantPrivate")&&(o.chatRequestId=e.chatRequestId,o.chatInteractionId=e.chatInteractionId,o.chatSessionId=e.context?.sessionId,o.fromSubAgent=e.fromSubAgent),(0,tp.isProposedApiEnabled)(r.extension,"chatParticipantAdditions")&&e.modelId&&(o.model=await this.getModel(e.modelId,r.extension)),void 0!==e.tokenBudget&&(o.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 n=await (0,eU.raceCancellation)(Promise.resolve(r.tool.invoke(o,t,i)),t);if(!n)throw new eg.CancellationError;return e6.LanguageModelToolResult.from(n,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 o={input:t.parameters,chatRequestId:t.chatRequestId,chatSessionId:t.chatSessionId,chatInteractionId:t.chatInteractionId};if(r.tool.prepareInvocation){let e=await r.tool.prepareInvocation(o,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),o=await this._proxy.$tokensAtPosition(e.uri,r),n={type:eh.StandardTokenType.Other,range:e.getWordRangeAtPosition(t)??new ti.Range(t.line,t.character,t.line,t.character)};if(!o)return n;let s={range:e6.Range.to(o.range),type:e6.TokenType.to(o.type)};return s.range.contains(t)&&i===e.version?s:n}createLanguageStatusItem(e,t,i){let r,o=this._handlePool++,n=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(o,{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(),n.$removeLanguageStatus(o),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,o){let n,s={source:{identifier:e.identifier,label:e.displayName||e.name}};"string"==typeof r||r&&r.title?n=[r,...o]:(s.modal=r?.modal,s.useCustom=r?.useCustom,s.detail=r?.detail,n=o),s.useCustom&&(0,tp.checkProposedApiEnabled)(e,"resolvers");let a=[],l=!1;for(let t=0;t<n.length;t++){let i=n[t];if("string"==typeof i)a.push({title:i,handle:t,isCloseAffordance:!1});else if("object"==typeof i){let{title:r,isCloseAffordance:o}=i;a.push({title:r,isCloseAffordance:!!o,handle:t}),o&&(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 n[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),o=this._outputs.find(t=>t.id===e);if(o&&(t||(o.items.length=0),o.items.push(...r),o.items.length>1&&o.items.every(e=>(0,a5.isTextStreamMime)(e.mime)))){let e=new Map,t=[];o.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)}),o.items.length=0,t.forEach(t=>{let i=(0,ac.compressOutputItemStreams)(e.get(t));o.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,o){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=o.viewType,this._metadata=Object.freeze(o.metadata??Object.create(null)),this._spliceNotebookCells([[0,0,o.cells]],!0,void 0),this._versionId=o.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:[]},o=[];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),o.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),o.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),o.push({cell:this._cells[t.index].apiCell,document:this._cells[t.index].apiCell.document})):t.kind===ac.NotebookCellsChangeType.ChangeCellContent?o.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),o.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),o.push({cell:this._cells[t.index].apiCell,executionSummary:this._cells[t.index].apiCell.executionSummary}));let n=new Map;for(let e=0;e<o.length;e++){let t=o[e],i=n.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});n.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=[],o=[],n=[];if(e.reverse().forEach(e=>{let i=e[2].map(e=>{let i=new a7(this,this._textDocumentsAndEditors,e);return t||o.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))n.push(t.uri),s.deletedItems.push(t.apiCell);r.push(s)}),this._textDocumentsAndEditors.acceptDocumentsAndEditorsDelta({addedDocuments:o,removedDocuments:n}),i)for(let e of r)i.push(e.asApiEvent())}_moveCells(e,t,i,r){let o=this._cells.splice(e,t);for(let n of(this._cells.splice(i,0,...o),[new a8(e,t,o.map(e=>e.apiCell),[]),new a8(i,0,[],o)]))r.push(n.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,o,n,s){this.id=e,this._proxy=t,this.notebookData=i,this._visibleRanges=r,this._selections=o,this._viewColumn=n,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 lo 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 ln(e,t){let i=-1,r=[],o=[];return e.forEach(e=>{e.range.startLineNumber!==i&&o.length>0&&(r.push([...o]),o=[]),o.push(e),i=e.range.endLineNumber}),o.length>0&&r.push([...o]),r.map(e=>{let i=[],r=e[0].range.startLineNumber,o=e[e.length-1].range.endLineNumber;for(let e=r;e<=o;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,o,n,s){this._textDocumentsAndEditors=i,this._textDocuments=r,this._extHostFileSystem=o,this._extHostSearch=n,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 n9("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),o=r?.getCell(i);if(o)return o.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,o=la._notebookStatusBarItemProviderHandlePool++,n="function"==typeof i.onDidChangeCellStatusBarItems?la._notebookStatusBarItemProviderHandlePool++:void 0;return this._notebookStatusBarItemProviders.set(o,i),this._notebookProxy.$registerNotebookCellStatusBarItemProvider(o,n,t),void 0!==n&&(r=i.onDidChangeCellStatusBarItems(e=>this._notebookProxy.$emitCellStatusBarEvent(n))),new eh.Disposable(()=>{this._notebookStatusBarItemProviders.delete(o),this._notebookProxy.$unregisterNotebookCellStatusBarItemProvider(o,n),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,o=await this._notebookEditorsProxy.$tryShowNotebookDocument(e.uri,r,i),n=o&&this._editors.get(o)?.apiEditor;if(n)return n;if(o)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 o=this._notebookStatusBarItemProviders.get(e),n=eD.URI.revive(t),s=this._documents.get(n);if(!s||!o)return;let a=s.getCellFromIndex(i);if(!a)return;let l=await o.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,o){if((0,e0.isFalsyOrWhitespace)(t))throw Error("viewType cannot be empty or just whitespace");let n=this._handlePool++;return this._notebookSerializer.set(n,{viewType:t,serializer:i,options:r}),this._notebookProxy.$registerNotebookSerializer(n,{id:e.identifier,location:e.extensionLocation},t,e6.NotebookDocumentContentOptions.from(r),la._convertNotebookRegistrationData(e,o)),(0,eH.toDisposable)(()=>{this._notebookProxy.$unregisterNotebookSerializer(n)})}async $dataToNotebook(e,t,i){let r=this._notebookSerializer.get(e);if(!r)throw Error("NO serializer found");let o=await r.serializer.deserializeNotebook(t.buffer,i);return new tW.SerializableObjectWithBuffers(e6.NotebookData.from(o))}async $notebookToData(e,t,i){let r=this._notebookSerializer.get(e);if(!r)throw Error("NO serializer found");let o=await r.serializer.serializeNotebook(e6.NotebookData.to(t.value),i);return eF.VSBuffer.wrap(o)}async $saveNotebook(e,t,i,r,o){let n=eD.URI.revive(t),s=this._notebookSerializer.get(e);this.trace(`enter saveNotebook(versionId: ${i}, ${n.toString()})`);try{if(!s)throw new ll("NO serializer found");let e=this._documents.get(n);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(n.scheme))throw new ep.FileOperationError((0,e1.localize)(2698,"Unable to modify read-only file '{0}'",this._resourceForError(n)),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(n,r),o.isCancellationRequested)throw new eg.CancellationError;let a=await s.serializer.serializeNotebook(t,o);if(o.isCancellationRequested)throw new eg.CancellationError;this.trace(`serialized versionId: ${i} ${n.toString()}`),await this._extHostFileSystem.value.writeFile(n,a),this.trace(`Finished write versionId: ${i} ${n.toString()}`);let l=this._extHostFileSystem.getFileSystemProviderExtUri(n.scheme),c=await this._extHostFileSystem.value.stat(n),d={name:l.basename(n),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(n.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}, ${n.toString()})`),d}catch(e){if(e instanceof ep.FileOperationError)return{...e,message:e.message};throw e}}async $searchInNotebooks(e,t,i,r,o){let n=this._notebookSerializer.get(e)?.serializer;if(!n)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(o=>{let n={_reason:i._reason,folderQueries:i.folderQueries,includePattern:i.includePattern,excludePattern:i.excludePattern,maxResults:i.maxResults,type:e5.QueryType.File,filePattern:o};return this._extHostSearch.doInternalFileSearchWithCustomCallback(n,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,o,t);let l=new eV.ResourceMap,c=!1,d=Array.from(s).map(async e=>{let i=[];try{if(o.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 n.deserializeNotebook(i.buffer,o);if(o.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(o.isCancellationRequested)return;r.forEach((e,r)=>{let o=t.contentPattern.pattern,n=new lo(e.input,void 0,e.outputs),s=n.findInInputs(o),a=n.findInOutputs(o),l=a.flatMap(e=>ln(e.matches,e.textBuffer)).map((e,t)=>(e.webviewIndex=t,e));if(s.length>0||a.length>0){let e={index:r,contentResults:ln(s,n.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 o=function(e){t.call(i,e)};return o.extension=e,this._onWillSaveNotebookDocumentEvent.event(o,void 0,r)}}async $participateInSave(e,t,i){let r=eD.URI.revive(e),o=this._notebooksAndEditors.getNotebookDocument(r);if(!o)throw Error("Unable to resolve notebook document");let n=[];if(await this._onWillSaveNotebookDocumentEvent.fireAsync({notebook:o.apiNotebook,reason:e6.TextDocumentSaveReason.to(t)},i,async(e,t)=>{let r=Date.now(),o=await await Promise.resolve(e);Date.now()-r>this._thresholds.timeout&&this._logService.warn("onWillSaveNotebookDocument-listener from extension",t.extension.identifier),!i.isCancellationRequested&&o&&(o instanceof sw.WorkspaceEdit?n.push(o):this._logService.warn("onWillSaveNotebookDocument-listener from extension",t.extension.identifier,"ignored due to invalid data"))}),i.isCancellationRequested)return!1;if(0===n.length)return!0;let s={edits:[]};for(let e of n){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 o=this._notebooksAndEditors.getNotebookDocument(eD.URI.revive(e)).acceptModelChanged(t.value,i,r);this._onDidChangeNotebookDocument.fire(o)}$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,o){this._initData=t,this._extHostNotebook=i,this._commands=r,this._logService=o,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 n=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(n),this._commands.registerApiCommand(s)}createNotebookController(e,t,i,r,o,n){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:n?n.map(e6.NotebookRendererScript.from):[]},m=o??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,nX.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 o={dispose:()=>{this._kernelDetectionTask.delete(i),r._proxy.$removeKernelDetectionTask(i)}};return this._kernelDetectionTask.set(i,o),o}registerKernelSourceActionProvider(e,t,i){let r,o=this._kernelSourceActionProviderHandlePool++,n="function"==typeof i.onDidChangeNotebookKernelSourceActions?o:void 0,s=this;return this._kernelSourceActionProviders.set(o,i),this._logService.trace(`NotebookKernelSourceActionProvider[${o}], CREATED by ${e.identifier.value}`),this._proxy.$addKernelSourceActionProvider(o,o,t),void 0!==n&&(r=i.onDidChangeNotebookKernelSourceActions(e=>this._proxy.$emitNotebookKernelSourceActionsChangeEvent(n))),{dispose:()=>{this._kernelSourceActionProviders.delete(o),s._proxy.$removeKernelSourceActionProvider(o,o),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 o=this._extHostNotebook.getNotebookDocument(eD.URI.revive(t));i?r.associatedNotebooks.set(o.uri,!0):r.associatedNotebooks.delete(o.uri),this._logService.trace(`NotebookController[${e}] ASSOCIATE notebook`,o.uri.toString(),i),r.onDidChangeSelection.fire({selected:i,notebook:o.apiNotebook})}}async $executeCells(e,t,i){let r=this._kernelData.get(e);if(!r)return;let o=this._extHostNotebook.getNotebookDocument(eD.URI.revive(t)),n=[];for(let e of i){let t=o.getCell(e);t&&n.push(t.apiCell)}try{this._logService.trace(`NotebookController[${e}] EXECUTE cells`,o.uri.toString(),n.length),await r.controller.executeHandler.call(r.controller,n,o.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 o=this._extHostNotebook.getNotebookDocument(eD.URI.revive(t));if(r.controller.interruptHandler)await r.controller.interruptHandler.call(r.controller,o.apiNotebook);else for(let e of i){let t=o.getCell(e);t&&this._activeExecutions.get(t.uri)?.cancel()}if(r.controller.interruptHandler){let e=this._activeNotebookExecutions.get(o.uri);this._activeNotebookExecutions.delete(o.uri),i.length&&Array.isArray(e)&&e.length&&e.forEach(e=>e.dispose())}}async $provideVariables(e,t,i,r,o,n,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"===o?eh.NotebookVariablesRequestKind.Named:eh.NotebookVariablesRequestKind.Indexed,h=d.provideVariables(c.apiNotebook,a,u,n,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 o=this._extHostNotebook.getEditorById(t);r.onDidReceiveMessage.fire(Object.freeze({editor:o.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 o=r.onDidChangeState(()=>{r.state===ec.Resolved&&(r.dispose(),o.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 o=new lf(t,i,this._proxy),n=o.onDidChangeState(()=>{o.state===ed.Resolved&&(o.dispose(),n.dispose(),this._activeNotebookExecutions.delete(i.uri))});return this._activeNotebookExecutions.set(i.uri,[o,n]),o.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),o=this.validateAndConvertOutputs((0,eY.asArray)(e));return this.updateSoon({editType:lg.CellExecutionUpdateType.Output,cellHandle:r,append:i,outputs:o})}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 o;let n;if(e._state===ec.Resolved)throw Error("Cannot call resolve twice");e._state=ec.Resolved,e._onDidChangeState.fire(),e._collector.flush();let s=(o=r)?{name:o.name,message:o.message,stack:o.stack instanceof Array?o.stack.map(e=>({uri:e.uri,position:e.position,label:e.label})):o.stack,location:(n=o.location)?{startLineNumber:n.start.line,startColumn:n.start.character,endLineNumber:n.end.line,endColumn:n.end.character}:void 0,uri:o.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 o=this.handlers.get(e);if(!o)throw Error(`Unknown handler with id: ${e}`);return o.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),o=this.providers.get(e);return o?(0,eU.asPromise)(()=>o.provideOriginalResource(r,i)).then(e=>e||null):Promise.resolve(null)}registerQuickDiffProvider(e,t,i,r,o,n){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}`,o,n),{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],o=t.arguments[i];if(r!==o&&!(lx(r)&&lx(o)&&(r.scheme===eO.Schemas.file&&o.scheme===eO.Schemas.file&&ib.isLinux?r.toString()===o.toString():r.toString().toLowerCase()===o.toString().toLowerCase())))return r<o?-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,o){this._extension=e,this._sourceControlHandle=r,this._documentUri=o,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,o,n,s){this._proxy=e,this._commands=t,this._sourceControlHandle=i,this._id=r,this._label=o,this.multiDiffEditorEnableViewChanges=n,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 o=(0,tp.isProposedApiEnabled)(this._extension,"scmMultiDiffEditor"),n=o?e.multiDiffEditorOriginalUri:void 0,s=o?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,n,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,o,n,s,a,l,c){this._extension=e,this._commands=r,this._id=o,this._label=n,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:`${o}/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,o,n,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,o=new lM(this.#e,this._commands,this.handle,e,t,r,this._extension),n=ey.Event.once(o.onDidDispose)(()=>this.createdResourceGroups.delete(o));return this.createdResourceGroups.set(o,n),this.eventuallyAddResourceGroups(),o}eventuallyAddResourceGroups(){let e=[],t=[];for(let[i,r]of this.createdResourceGroups){r.dispose();let o=i.onDidUpdateResourceStates(()=>{this.updatedResourceGroups.add(i),this.eventuallyUpdateResourceStates()});ey.Event.once(i.onDidDispose)(()=>{this.updatedResourceGroups.delete(i),o.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 n=i._takeResourceStateSnapshot();n.length>0&&t.push([i.handle,n]),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),o=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),o}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,o,n,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,o,n,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 o=this._sourceControls.get(e);return o&&o.quickDiffProvider&&o.quickDiffProvider.provideOriginalResource?(0,eU.asPromise)(()=>o.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 o=this._sourceControls.get(e);return o&&o.secondaryQuickDiffProvider&&o.secondaryQuickDiffProvider.provideOriginalResource?(0,eU.asPromise)(()=>o.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 o=this._sourceControls.get(e);if(!o)return Promise.resolve(void 0);let n=o.getResourceGroup(t);return n?n.$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,o=await r?.resolveHistoryItem(t,i);return o?lk(o):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,o){try{let n=this._sourceControls.get(e)?.historyProvider;return await n?.resolveHistoryItemChangeRangeChatContext?.(t,i,r,o)??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,o=await r?.provideHistoryItemRefs(t,i);return o?.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,o=await r?.provideHistoryItems(t,i);return o?.map(e=>lk(e))??void 0}catch(e){this.logService.error("ExtHostSCM#$provideHistoryItems",e);return}}async $provideHistoryItemChanges(e,t,i,r){try{let o=this._sourceControls.get(e)?.historyProvider;return await o?.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 o=new eH.DisposableStore,n=new ef.CancellationTokenSource;this.sessions.set(t,n);let s=await r.provideSpeechToTextSession(n.token,i?{language:i}:void 0);s&&(o.add(s.onDidChange(e=>{n.token.isCancellationRequested||this.proxy.$emitSpeechToTextEvent(t,e)})),o.add(n.token.onCancellationRequested(()=>o.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 o=new eH.DisposableStore,n=new ef.CancellationTokenSource;this.sessions.set(t,n);let s=await r.provideTextToSpeechSession(n.token,i?{language:i}:void 0);s&&(this.synthesizers.set(t,s),o.add(s.onDidChange(e=>{n.token.isCancellationRequested||this.proxy.$emitTextToSpeechEvent(t,e)})),o.add(n.token.onCancellationRequested(()=>o.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,o=new ef.CancellationTokenSource;this.sessions.set(t,o);let n=await i.provideKeywordRecognitionSession(o.token);n&&(r.add(n.onDidChange(e=>{o.token.isCancellationRequested||this.proxy.$emitKeywordRecognitionEvent(t,e)})),r.add(o.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,o,n=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,o&&r){this._entryId=(0,eh.asStatusBarItemIdentifier)(r.identifier,o);const e=i.get(this._entryId);e&&(n=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=o,this._alignment=n,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 o=this._color;this._backgroundColor&&(o=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,o,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 o=new l$(this._proxy,this._commands,this._existingItems,e,t,i,r,()=>this._entries.delete(o.entryId));return this._entries.set(o.entryId,o),o}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 o=await this._proxy.$tryShowTextDocument(e.uri,r),n=o&&this._extHostDocumentsAndEditors.getEditor(o);if(n)return n.value;if(o)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,o=t.map(e=>{let t=eD.URI.revive(e.original),i=eD.URI.revive(e.modified),o=e.changes.map(e=>{let t,[i,r,o,n]=e;return t=i===r?eh.TextEditorChangeKind.Addition:o===n?eh.TextEditorChangeKind.Deletion:eh.TextEditorChangeKind.Modification,{original:{startLineNumber:i,endLineNumberExclusive:r},modified:{startLineNumber:o,endLineNumberExclusive:n},kind:t}});return Object.freeze({documentVersion:e.documentVersion,original:t,modified:i,changes:o,get isStale(){let t=r._extHostDocumentsAndEditors.getDocument(i);return t?.version!==e.documentVersion}})});i._acceptDiffInformation(o),this._onDidChangeTextEditorDiffInformation.fire({textEditor:i.value,diffInformation:o})}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 o=this._providers.get(e);return o?.provider.provideTimeline(eD.URI.revive(t),i,r)}registerTimelineProvider(e,t,i,r){let o,n=new eH.DisposableStore,s=this.convertTimelineItem(t.id,r,n).bind(this);t.onDidChange&&(o=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&&(n.clear(),a.get(t.id)?.clear());let o=await t.provideTimeline(e,i,r);if(null==o)return;let l=s(e,i);return{...o,source:t.id,items:o.items.map(l)}},dispose(){for(let e of a.values())e.get(t.id)?.clear();o?.dispose(),n.dispose()}},i)}convertTimelineItem(e,t,i){return(r,o)=>{let n;if(o?.cacheResults){let t=this._itemsBySourceAndUriMap.get(e);void 0===t&&(t=new Map,this._itemsBySourceAndUriMap.set(e,t));let i=lK(r);void 0===(n=t.get(i))&&(n=new Map,t.set(i,n))}return r=>{let o,s,a,l,{iconPath:c,...d}=r,u=`${e}|${r.id??r.timestamp}`;return n?.set(u,r),r.iconPath&&(c instanceof eh.ThemeIcon?a={id:c.id,color:c.color}:eD.URI.isUri(c)?(o=c,s=c):{light:o,dark:s}=c),nN.MarkdownString.isMarkdownString(d.tooltip)?l=e6.MarkdownString.from(d.tooltip):(0,eK.isString)(d.tooltip)?l=d.tooltip:nN.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:o,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(nN.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??[],o=t.dragAndDropController?.dragMimeTypes??[],n=!!t.dragAndDropController?.handleDrag,s=!!t.dragAndDropController?.handleDrop,a=this._createExtHostTreeView(e,t,i),l={showCollapseAll:!!t.showCollapseAll,canSelectMany:!!t.canSelectMany,dropMimeTypes:r,dragMimeTypes:o,hasHandleDrag:n,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 o=t[e],n=await i.getChildren(o);n&&r.push([e,...n])}return r}async $handleDrop(e,t,i,r,o,n,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,o,n),l.onDrop(c,r,o)}async _addAdditionalTransferItems(e,t,i,r,o){let n=this._treeDragAndDropService.removeDragOperationTransfer(o);if(n)(await n)?.forEach((t,i)=>{t&&e.set(i,t)});else if(o&&t.handleDrag){let n=t.handleDrag(i,e,r);this._treeDragAndDropService.addDragOperationTransfer(o,n),await n}return e}async $handleDrag(e,t,i,r){let o=this._treeViews.get(e);if(!o)return Promise.reject(new lB.NoTreeViewError(e));let n=await this._addAdditionalTransferItems(new eh.DataTransfer,o,t,r,i);if(n&&!r.isCancellationRequested)return e6.DataTransfer.from(n)}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,o,n){let s,a;if(super(),this._viewId=e,this._proxy=i,this._commands=r,this._logService=o,this._extension=n,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,n.contributes&&n.contributes.views)for(const t in n.contributes.views)for(const i of n.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 o=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}: ${o}`),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 o=r.changed.length,n=i.length;this._logService.debug(`[TreeView:${this._viewId}] refresh ${e} changed=${o} nodesToClear=${n} 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,o=!(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:o})),e=>this._logService.error(e)):this._proxy.$reveal(this._viewId,void 0,{select:i,focus:r,expand:o})}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 o=await this._dataProvider.getChildren(e);if(this._childrenFetchTokens.get(t)!==i)return;let n=e?this._nodes.get(e):void 0;if(r.token.isCancellationRequested)return;let s=(0,eY.coalesce)(o||[]),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,n):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 o=this._nodes.get(i);!o||o.parent&&t.has(o.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 o=this._elements.get(r);if(o){if(o!==e)throw Error((0,e1.localize)(2704,"Element with id {0} is already registered",t.id));let r=this._nodes.get(o);if(r){let o=this._createTreeNode(e,t,i);return this._updateNodeCache(e,o,r,i),r.dispose(),o}}}let o=this._createTreeNode(e,t,i);return this._addNodeToCache(e,o),this._addNodeToParentCache(o,i),o}_getTooltip(e){return nN.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),o=this._createHandle(e,t,i),n=this._getLightIconPath(t);return{item:{handle:o,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:n,iconDark:this._getDarkIconPath(t)||n,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},o,n){let s;if(t)return`${lY.ID_HANDLE_PREFIX}/${t}`;let a=lQ(i,this._extension),l=o?o.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(o)||[],g=0;do{if(s=`${l}/${g}:${d}`,n||!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 o=this._getChildrenNodes(r)||[],n=o.filter(e=>e.item.handle===i.item.handle)[0];n&&o.splice(o.indexOf(n),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 o=r.schemes.find(e=>!lX.supportedSchemes.has(e));if(o)throw Error(`Scheme '${o}' 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 o=eD.URI.revive(t);return r.canOpenExternalUri(o,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,o={}){var n;let s="object"==typeof r?r.viewColumn:r,a={viewColumn:e6.ViewColumn.from(s),preserveFocus:"object"==typeof r&&!!r.preserveFocus},l=n4(e),c=l1.newHandle();this._proxy.$createWebviewPanel(n8(e),c,t,{title:i,panelOptions:{enableFindWidget:(n=o).enableFindWidget,retainContextWhenHidden:n.retainContextWhenHidden},webviewOptions:n7(e,this.workspace,o),serializeBuffersForPostMessage:l},a);let d=this.webviews.createNewWebview(c,o,e);return this.createNewWebviewPanel(c,t,i,s,o,d,!0)}$onDidChangeWebviewPanelViewStates(e){let t=Object.keys(e);for(let i of(t.sort((t,i)=>{let r=e[t],o=e[i];return r.active?1:o.active?-1:r.visible-o.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:n4(e)}),new eh.Disposable(()=>{this._serializers.delete(t),this._proxy.$unregisterSerializer(t)})}async $deserializeWebviewPanel(e,t,i,r){let o=this._serializers.get(t);if(!o)throw Error(`No serializer found for '${t}'`);let{serializer:n,extension:s}=o,a=this.webviews.createNewWebview(e,i.webviewOptions,s),l=this.createNewWebviewPanel(e,t,i.title,r,i.panelOptions,a,i.active);await n.deserializeWebviewPanel(l,i.state)}createNewWebviewPanel(e,t,i,r,o,n,s){let a=new l0(e,this._proxy,n,{viewType:t,title:i,viewColumn:r,panelOptions:o,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,o,n){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=o,this.#N=n}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(n8(e),t,{retainContextWhenHidden:r?.retainContextWhenHidden,serializeBuffersForPostMessage:n4(e)}),new eh.Disposable(()=>{this._viewProviders.delete(t),this._proxy.$unregisterWebviewViewProvider(t)})}async $resolveWebviewView(e,t,i,r,o){let n=this._viewProviders.get(t);if(!n)throw Error(`No view provider found for '${t}'`);let{provider:s,extension:a}=n,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},o)}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)??[],o=[];for(let t of r){let i=this._addTrackedItem(e,t);o.push({handle:i,icon:t.icon,label:t.label,modelDescription:t.modelDescription,value:t.value})}return o}_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 o=await r.provideChatContextForResource({resource:eD.URI.revive(t.resource)},i);if(!o)return;let n={handle:this._addTrackedItem(e,o),icon:o.icon,label:o.label,modelDescription:o.modelDescription,value:t.withValue?o.value:void 0};if(t.withValue&&!n.value&&r.resolveChatContext){let e=await r.resolveChatContext(o,i);n.value=e?.value}return n}async _doResolve(e,t,i,r){let o=await e.resolveChatContext(i,r)??t;return{handle:t.handle,icon:o.icon,label:o.label,modelDescription:o.modelDescription,value:o.value}}async $resolveChatContext(e,t,i){let r=this._getProvider(e);if(!r.resolveChatContext)throw Error("resolveChatContext not implemented");let o=this._items.get(e)?.get(t.handle);if(!o)throw Error("Chat context item not found");return this._doResolve(r,t,o,i)}registerChatContextProvider(e,t,i){let r=this._handlePool++,o=new l4.DisposableStore;return this._listenForWorkspaceContextChanges(r,i,o),this._providers.set(r,{provider:i,disposables:o}),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),o.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++},o=await this._doResolve(t,i,e,ef.CancellationToken.None);r.push(o)}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),o=e.get(rB),n=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(rn.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(o6),E=e.get(ni);c.set(ev.ExtHostContext.ExtHostFileSystemInfo,i),c.set(ev.ExtHostContext.ExtHostLogLevelServiceShape,h),c.set(ev.ExtHostContext.ExtHostWorkspace,n),c.set(ev.ExtHostContext.ExtHostConfiguration,a),c.set(ev.ExtHostContext.ExtHostExtensionService,o),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(oj)),M=c.set(ev.ExtHostContext.ExtHostDebugService,e.get(ov)),L=c.set(ev.ExtHostContext.ExtHostSearch,e.get(oF)),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 nZ(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 n0(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 o{static{this._nextId=1}constructor(e,t){this._extension=e,this._onDidDispose=t,this._id=n._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 n extends o{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 o{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,o=ef.CancellationToken.None){this._onDidSelectItem=void 0;let n=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},o),l={};return Promise.race([a.then(()=>l),n]).then(t=>{if(t!==l)return n.then(t=>{let o=[];for(let i=0;i<t.length;i++){let r=t[i];"string"==typeof r?o.push({label:r,handle:i}):r.kind===eh.QuickPickItemKind.Separator?o.push({type:"separator",label:r.label}):(r.tooltip&&(0,tp.checkProposedApiEnabled)(e,"quickPickItemTooltip"),o.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,o),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 n(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 n&&i._fireDidChangeActive(t)}$onDidChangeSelection(e,t){let i=this._sessions.get(e);i instanceof n&&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 n&&r._fireDidTriggerItemButton(t,i)}$onDidHide(e){let t=this._sessions.get(e);t?._fireDidHide()}}(t,i)}(c,n,P)),er=c.set(ev.ExtHostContext.ExtHostSCM,new lF(c,P,$,g)),eo=c.set(ev.ExtHostContext.ExtHostQuickDiff,new lS(c,l)),en=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 o{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,o=i.getCommentByUniqueId(r);return o||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,o=e.commentUniqueId,n=i.getCommentByUniqueId(o);return n?("string"==typeof n.body?n.body=r:n.body=new nN.MarkdownString(r),n):e}return e}})}createCommentController(e,t,i){let r=new s(e,o.handlePool++,t,i);this._commentControllers.set(r.handle,r);let n=this._commentControllersByExtension.get(e.identifier)||[];return n.push(r),this._commentControllersByExtension.set(e.identifier,n),r.value}async $createCommentThreadTemplate(e,t,i,r){let o=this._commentControllers.get(e);o&&o.$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 o=this._commentControllers.get(e);if(!o||!o.commentingRangeProvider)return Promise.resolve(void 0);let n=await i.ensureDocumentData(eD.URI.revive(t));return(0,eU.asPromise)(async()=>{let e=await o.commentingRangeProvider?.provideCommentingRanges(n.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,o){let n=this._commentControllers.get(e);return n&&n.reactionHandler?(0,eU.asPromise)(()=>{let e=n.getCommentThread(t);if(e){let t=e.getCommentByUniqueId(r.uniqueIdInThread);if(void 0!==n&&t&&n.reactionHandler){var i;return n.reactionHandler(t,{label:(i=o).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 n{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,o,s,l,c,d,u){this._commentControllerHandle=t,this._id=i,this._uri=o,this._range=s,this._comments=l,this.extensionDescription=c,this._isTemplate=d,this.handle=n._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 nw.CommentThreadState.Resolved}return nw.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 nw.CommentThreadApplicability.Outdated}return nw.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 o=i?this._commentsMap.get(i):void 0;o??=this._commentsMap.get(this._comments[0]);let n=!0,s=!1;return t?.focus===eh.CommentThreadFocus.Reply?(s=!0,n=!1):t?.focus===eh.CommentThreadFocus.Comment&&(n=!1),r.$revealCommentThread(this._commentControllerHandle,this.handle,o,{preserveFocus:n,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,o){this._extension=e,this._handle=t,this._id=i,this._label=o,this._threads=new Map,r.$registerCommentController(this.handle,i,o,this._extension.identifier.value);const n=this;this.value=Object.freeze({id:n.id,label:n.label,get options(){return n.options},set options(options){n.options=options},get commentingRangeProvider(){return n.commentingRangeProvider},set commentingRangeProvider(commentingRangeProvider){n.commentingRangeProvider=commentingRangeProvider},get reactionHandler(){return n.reactionHandler},set reactionHandler(handler){n.reactionHandler=handler},get activeCommentThread(){return n.activeCommentThread},createCommentThread:(e,t,i)=>n.createCommentThread(e,t,i).value,dispose:()=>{n.dispose()}}),this._localDisposables=[],this._localDisposables.push({dispose:()=>{r.$unregisterCommentController(this.handle)}})}createCommentThread(e,t,i){let r=new n(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 n(this.id,this.handle,void 0,eD.URI.revive(e),e6.Range.to(t),[],this._extension,!0,i);return r.collapsibleState=nw.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 o=i.get(t);return o||(o=++e.commentHandle,i.set(t,o)),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:o,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 nw.CommentThreadCollapsibleState.Expanded;case eh.CommentThreadCollapsibleState.Collapsed:}return nw.CommentThreadCollapsibleState.Collapsed}return new o}(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 n5(c,t.remote,n,g,m)),eu=c.set(ev.ExtHostContext.ExtHostWebviewPanels,new l1(c,ed,n)),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 nz(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 nQ(P,x,c,g)),ez=c.set(ev.ExtHostContext.ExtHostChatAgents2,new nH(c,g,P,$,R,x,J,eN)),eK=c.set(ev.ExtHostContext.ExtHostChatContext,new l5(c)),eV=c.set(ev.ExtHostContext.ExtHostAiRelatedInformation,new nS(c)),eB=c.set(ev.ExtHostContext.ExtHostAiEmbeddingVector,new sm(c)),eG=c.set(ev.ExtHostContext.ExtHostAiSettingsSearch,new nb(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(o6));let e0=Object.values(ev.ExtHostContext);c.assertRegistered(e0);let e1=new nA(c,R),e2=new nY(c),e4=new a4(c,g),e5=new sc(c),e8=new nJ(c);return nR.register(P),function(e,a,l){function c(t){return(i,r,o)=>{let n=t(t=>{try{i.call(r,t)}catch(t){(0,eg.onUnexpectedExternalError)(new eI.ExtensionError(e.identifier,t,"FAILED to handle event"))}});return o?.push(n),n}}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"),n.getPath()},set rootPath(value){throw new eg.ReadonlyError("rootPath")},getWorkspaceFolder:e=>n.getWorkspaceFolder(e),get workspaceFolders(){return n.getWorkspaceFolders()},get name(){return n.name},set name(value){throw new eg.ReadonlyError("name")},get workspaceFile(){return n.workspaceFile},set workspaceFile(value){throw new eg.ReadonlyError("workspaceFile")},updateWorkspaceFolders:(t,i,...r)=>n.updateWorkspaceFolders(e,t,i||0,...r),onDidChangeWorkspaceFolders:function(e,t,i){return c(n.onDidChangeWorkspace)(e,t,i)},asRelativePath:(e,t)=>n.getRelativePath(e,t),findFiles:(t,i,r,o)=>n.findFiles(t,i,r,e.identifier,o),findFiles2:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"findFiles2"),n.findFiles2(t,i,e.identifier,r)),findTextInFiles:(t,i,r,o)=>{let s,a;return(0,tp.checkProposedApiEnabled)(e,"findTextInFiles"),"object"==typeof i?(s=i,a=r):(s={},a=i,o=r),n.findTextInFiles(t,s||{},a,e.identifier,o)},findTextInFiles2:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"findTextInFiles2"),(0,tp.checkProposedApiEnabled)(e,"textSearchProvider2"),n.findTextInFiles2(t,i,e.identifier,r)),save:e=>n.save(e),saveAs:e=>n.saveAs(e),saveAll:e=>n.saveAll(e),applyEdit:(t,i)=>e1.applyWorkspaceEdit(t,e,i),createFileSystemWatcher:(t,r,o,s)=>et.createFileSystemWatcher(n,l,i,e,t,{ignoreCreateEvents:!!r,ignoreChangeEvents:!!o,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,o)=>W.registerNotebookSerializer(e,t,i,r,(0,tp.isProposedApiEnabled)(e,"notebookLiveShare")?o: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,o)=>(0,eH.combinedDisposable)(ee.registerFileSystemProvider(e,t,i,o),r.addFileSystemProvider(t,i,o)),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"),o.registerRemoteAuthorityResolver(t,i)),registerResourceLabelFormatter:t=>((0,tp.checkProposedApiEnabled)(e,"resolvers"),ea.$registerResourceLabelFormatter(t)),getRemoteExecServer:t=>((0,tp.checkProposedApiEnabled)(e,"resolvers"),o.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 n.trusted},requestWorkspaceTrust:t=>((0,tp.checkProposedApiEnabled)(e,"workspaceTrust"),n.requestWorkspaceTrust(t)),onDidGrantWorkspaceTrust:(e,t,i)=>c(n.onDidGrantWorkspaceTrust)(e,t,i),registerEditSessionIdentityProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"editSessionIdentityProvider"),n.registerEditSessionIdentityProvider(t,i)),onWillCreateEditSessionIdentity:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"editSessionIdentityProvider"),c(n.getOnWillCreateEditSessionIdentityEvent(e))(t,i,r)),registerCanonicalUriProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"canonicalUriProvider"),n.registerCanonicalUriProvider(t,i)),getCanonicalUri:(t,i,r)=>((0,tp.checkProposedApiEnabled)(e,"canonicalUriProvider"),n.provideCanonicalUri(t,i,r)),decode:(e,t)=>n.decode(e,t),encode:(e,t)=>n.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,o)=>(o?.supportedAuthorizationServers&&(0,tp.checkProposedApiEnabled)(e,"authIssuers"),w.registerAuthenticationProvider(t,i,r,o))},commands:{registerCommand:(t,i,r)=>P.registerCommand(!0,t,i,r,void 0,e),registerTextEditorCommand:(t,i,r)=>P.registerCommand(!0,t,(...e)=>{let o=B.getActiveTextEditor();return o?o.edit(t=>{i.apply(r,[o,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 o=R.activeEditor(!0);if(!o)return void g.warn("Cannot execute "+t+" because there is no active text editor.");let n=await B.getDiffInformation(o.id);i.apply(r,[n,...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,o)=>((0,tp.checkProposedApiEnabled)(e,"chatSessionsProvider"),eW.registerChatSessionContentProvider(e,t,r,i,o)),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,nC.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(o,e.identifier,r,u,!1);if(i){let i=a.all.getExtensionDescription(t);if(i)return new rG(o,e.identifier,i,u,!0)}},get all(){let t=[];for(let i of a.mine.getAllExtensionDescriptions())t.push(new rG(o,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 n=!t.has(r.identifier);i.push(new rG(o,e.identifier,r,u,n))}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,ny.targetsNotebooks)(r)&&(i=W.notebookDocuments.find(e=>e.apiNotebook.getCells().find(e=>e.document===t))?.apiNotebook),(0,ny.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,...o)=>X.registerOnTypeFormattingEditProvider(e,d(t),i,[r].concat(o)),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,...o)=>"object"==typeof r?X.registerSignatureHelpProvider(e,d(t),i,r):X.registerSignatureHelpProvider(e,d(t),i,void 0===r?[]:[r,...o]),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,o,n)=>z.createNotebookController(e,t,i,r,o,(0,tp.isProposedApiEnabled)(e,"notebookMessaging")?n: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,o,n,s)=>((o||n||s)&&(0,tp.checkProposedApiEnabled)(e,"scmProviderOptions"),er.createSourceControl(e,t,i,r,o,n,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 o={...r,execution:r.execution};return t.call(i,o)},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 o=await (eD.URI.isUri(t)?Promise.resolve(h.openTextDocument(t)):Promise.resolve(t));return B.showTextDocument(o,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 o,n,s;return"string"==typeof t?(o=t,n=i,s=r):(n=t,s=i),eQ.createStatusBarEntry(e,o,n,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,o)=>eu.createWebviewPanel(e,t,i,r,o),createWebviewTextEditorInset:(t,i,r,o)=>((0,tp.checkProposedApiEnabled)(e,"editorInsets"),Q.createWebviewEditorInset(t,i,r,o,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,o,n)=>((0,tp.checkProposedApiEnabled)(e,"quickDiffProvider"),eo.registerQuickDiffProvider(e,d(t),i,r,o,n)),get tabGroups(){return C.tabGroups},registerShareProvider:(t,i)=>((0,tp.checkProposedApiEnabled)(e,"shareProvider"),en.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:nk.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:nN.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:nE.SymbolInformation,SymbolKind:nE.SymbolKind,SymbolTag:nE.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,o,n,s){this._apiFactory=e,this._extensionRegistry=t,this._instaService=i,this._extHostConfiguration=r,this._extHostExtensionService=o,this._initData=n,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,o]=t,n=eu.aliased.get(r);if(void 0!==n)return console.warn(`${r} as been renamed to ${n}, please update your imports`),i+n+o}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,o){this._apiFactory=e,this._extensionPaths=t,this._extensionRegistry=i,this._configProvider=r,this._logService=o,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 co=class extends cr{constructor(e,t){super(e,t)}_nativeConsoleLogMessage(e,t,i){t.apply(console,i)}};co=(0,ek.__decorate)([(0,ek.__param)(0,eP.IExtHostRpcService),(0,ek.__param)(1,ej.IExtHostInitDataService)],co);class cn 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(co),this._apiFactory=this._instaService.invokeFunction(l7),this._fakeModules=this._instaService.createInstance(cn,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 o;t=t.with({path:(r=t.path,(0,tg.extname)(r)?r:r+".js")});let n=e?.identifier.value;n&&performance.mark(`code/extHost/willFetchExtensionCode/${n}`);let s=eD.URI.revive(await this._mainThreadExtensionsProxy.$asBrowserUri(t)),a=await fetch(s.toString(!0));if(n&&performance.mark(`code/extHost/didFetchExtensionCode/${n}`),200!==a.status)throw Error(a.statusText);let l=await a.text(),c=`${t.toString(!0)}#vscode-extension`,d=`${l}
41
+ //# sourceURL=${c}`;try{o=Function("module","exports","require",d)}catch(e){throw n?console.error(`Loading code for extension ${n} 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(),n&&performance.mark(`code/extHost/willLoadExtensionCode/${n}`),o(h,u,g),h.exports!==u?h.exports:u}finally{n&&performance.mark(`code/extHost/didLoadExtensionCode/${n}`),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 o=t.getExtensionDescription(e);if(null==o)throw Error(`Extension ${e} does not exist or is disabled`);let n=this._extApiImpl.get(o.identifier);return null==n&&(n=this._apiFactory(o,r,i),this._extApiImpl.set(o.identifier,n)),n}},eT.InstantiationType.Eager),(0,eT.registerSingleton)(ri,rr,eT.InstantiationType.Eager),(0,eT.registerSingleton)(tQ,new ns.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,o,n,s,a,l,c,d,u){this.runningLocation=e,this.startup=t,this._initDataProvider=i,this._telemetryService=r,this._contextService=o,this._labelService=n,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 nu.BufferedEmitter,t=new nu.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 nd(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,ng.ITelemetryService),(0,ek.__param)(4,np.IWorkspaceContextService),(0,ek.__param)(5,nm.ILabelService),(0,ek.__param)(6,eM.ILogService),(0,ek.__param)(7,eM.ILoggerService),(0,ek.__param)(8,nf.IBrowserWorkbenchEnvironmentService),(0,ek.__param)(9,nv.IProductService),(0,ek.__param)(10,n_.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(nh.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:uo,ShellExecution:un,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:ho,NotebookCellOutputItem:hn,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:go,ChatLocation:gn,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:po}={version:oZ.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:nk.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:nN.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:nE.SymbolInformation,SymbolKind:nE.SymbolKind,SymbolTag:nE.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,gn,"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,go,"ChatResponseTurn2",0,g1,"ChatResponseWarningPart",0,h8,"ChatResultFeedbackKind",0,cH,"ChatSessionChangedFile",0,po,"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,ho,"NotebookCellOutputItem",0,hn,"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,uo,"SettingsSearchResultKind",0,g$,"ShellExecution",0,un,"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 o(e){return"function"==typeof e}function n(e){return Array.isArray(e)}function s(e){return e&&o(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=o,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.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 o extends r{static _oneOf(e){return e[Math.floor(e.length*Math.random())]}static _randomHex(){return o._oneOf(o._chars)}constructor(){super(""+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+"-"+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+"-4"+o._randomHex()+o._randomHex()+o._randomHex()+"-"+o._oneOf(o._timeHighBits)+o._randomHex()+o._randomHex()+o._randomHex()+"-"+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex()+o._randomHex())}}function n(){return new o}o._chars=["0","1","2","3","4","5","6","6","7","8","9","a","b","c","d","e","f"],o._timeHighBits=["8","9","a","b"],i.empty=new r("00000000-0000-0000-0000-000000000000"),i.v4=n;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 n().asHex()}},165969,(e,t,i)=>{"use strict";var r,o;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 n=e.r(663544),s=e.r(441296),a=e.r(217405),l=e.r(413807);class c extends n.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))},(o||(i.DynamicFeature=o={})).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++,n.workspace.textDocuments))if(n.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(n.languages.match(i,t)>0)return!0;return!1}constructor(e,t,i,r,o,s,a){super(e),this._event=t,this._type=i,this._middleware=r,this._createParams=o,this._textDocument=s,this._selectorFilter=a,this._selectors=new Map,this._onNotificationSent=new n.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(n.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&&n.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=o(e,i)),t instanceof RegExp&&(t=o(t,i));var r=n(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 o(e,t){var i=t.match(e);return i?i[0]:null}function n(e,t,i){var r,o,n,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=[],n=i.length;d>=0&&!a;)d==l?(r.push(d),l=i.indexOf(e,d+1)):1==r.length?a=[r.pop(),c]:((o=r.pop())<n&&(n=o,s=c),c=i.indexOf(t,d+1)),d=l<c&&l>=0?l:c;r.length&&(a=[n,s])}return a}t.exports=r,r.range=n},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,o){var n=[],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];n.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=[],o=r("{","}",t);if(!o)return t.split(",");var n=o.pre,s=o.body,a=o.post,l=n.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&&n.length<i;m++){var f=l+w[L]+d[m];(!o||C||f)&&n.push(f)}}return n})(e.split("\\\\").join(o).split("\\{").join(n).split("\\}").join(s).split("\\,").join(a).split("\\.").join(l),i,!0).map(d)};var o="\0SLASH"+Math.random()+"\0",n="\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(o).join("\\").split(n).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 o=e.r(203379);r.sep=o.sep;let n=Symbol("globstar **");r.GLOBSTAR=n;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,o,n)=>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,o)=>t(i,r,p(e,o));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,o)=>t.match(i,r,p(e,o)),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(n)?this._matchGlobstar(e,t,i,0,0):this._matchOne(e,t,i,0,0)}_matchGlobstar(e,t,i,r,o){let s=-1;for(let e=o;e<t.length;e++)if(t[e]===n){s=e;break}let a=-1;for(let e=t.length-1;e>=0;e--)if(t[e]===n){a=e;break}let l=t.slice(o,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===n?(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,o,n,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,o,i,0)&&n<this.maxGlobstarRecursion){let a=this._matchGlobStarBodySections(e,t,i+l.length,r+1,o,n+1,s);if(!1!==a)return a}let a=e[i];if("."===a||".."===a||!this.options.dot&&"."===a.charAt(0))return!1;i++}return o||null}_matchOne(e,t,i,r,o){let s,a,l,c;for(s=r,a=o,l=e.length,c=t.length;s<l&&a<c;s++,a++){let i;this.debug("matchOne loop");let r=t[a],o=e[s];if(this.debug(t,r,o),!1===r||r===n||("string"==typeof r?(i=o===r,this.debug("string match",r,o,i)):(i=o.match(r),this.debug("pattern match",r,o,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,o,s;f(e);let d=this.options;if("**"===e)if(!d.noglobstar)return n;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,n;t<e.length&&(n=e.charAt(t));t++){if(this.debug("%s %s %s %j",e,t,g,n),m){if("/"===n)return!1;u[n]&&(g+="\\"),g+=n,m=!1;continue}switch(n){case"/":return!1;case"\\":if(w&&"-"===e.charAt(t+1)){g+=n;continue}R(),m=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s %s %s %j <-- stateChar",e,t,g,n),w){this.debug(" in class"),"!"===n&&t===D+1&&(n="^"),g+=n;continue}if("*"===n&&"*"===i)continue;this.debug("call clearStateChar %j",i),R(),i=n,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+=(o=e).close,"!"===o.type&&b.push(Object.assign(o,{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+="\\"+n;continue}w=!0,D=t,x=g.length,g+=n;continue;case"]":if(t===D+1||!w){g+="\\"+n;continue}r=e.substring(D+1,t);try{RegExp("["+C(y(r))+"]"),g+=n}catch(e){g=g.substring(0,x)+"(?:$.)"}p=!0,w=!1;continue;default:R(),u[n]&&!("^"===n&&w)&&(g+="\\"),g+=n}}for(w&&(r=e.slice(D+1),s=this.parse(r,_),g=g.substring(0,x)+"\\["+s[0],p=p||s[1]),o=S.pop();o;o=S.pop()){let e;e=g.slice(o.reStart+o.open.length),this.debug("setting tail",g,o),e=e.replace(/((?:\\{2}){0,64})(\\?)\|/g,(e,t,i)=>(i||(i="\\"),t+t+i+"|")),this.debug("tail=%j\n %s",e,e,o,g);let t="*"===o.type?c:"?"===o.type?l:"\\"+o.type;p=!0,g=g.slice(0,o.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),o=g.slice(i.reStart,i.reEnd-8),n=g.slice(i.reEnd),s=g.slice(i.reEnd-8,i.reEnd)+n,a=r.split(")").length,l=r.split("(").length-a,c=n;for(let e=0;e<l;e++)c=c.replace(/\)[+*?]?/,"");let d=""===(n=c)&&t!==_?"(?:$|\\/)":"";g=r+o+n+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":"",o=e.map(e=>((e=e.map(e=>"string"==typeof e?e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):e===n?n:e._src).reduce((e,t)=>((e[e.length-1]!==n||t!==n)&&e.push(t),e),[])).forEach((t,r)=>{t===n&&e[r-1]!==n&&(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]=n))}),e.filter(e=>e!==n).join("/"))).join("|");o="^(?:"+o+")$",this.negate&&(o="^(?!"+o+").*$");try{this.regexp=new RegExp(o,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;"/"!==o.sep&&(e=e.split(o.sep).join("/")),e=e.split(g),this.debug(this.pattern,"split",e);let n=this.set;this.debug(this.pattern,"set",n);for(let t=e.length-1;t>=0&&!(i=e[t]);t--);for(let o=0;o<n.length;o++){let s=n[o],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,o,n,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=o||(i.DiagnosticPullMode=o={})).onType="onType",d.onSave="onSave",(u=n||(n={})).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,o=new Set(i);for(let e of t.values())i.has(e)?o.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(o.size>0){let e=new Set;for(let t of o)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,o=r.input;o instanceof p.TabInputText?e=o.uri:o instanceof p.TabInputTextDiff?e=o.modified:o instanceof p.TabInputCustom&&(e=o.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,[o,n,a]=t instanceof p.Uri?[t.toString(),t,i]:[t.uri.toString(),t.uri,t.version],l=r.get(o);return void 0===l&&(l={document:n,pulledVersion:a,resultId:void 0},r.set(o,l)),l}update(e,t,i,r){let o=e===s.document?this.documentPullStates:this.workspacePullStates,[n,a,l,c]=t instanceof p.Uri?[t.toString(),t,i,r]:[t.uri.toString(),t.uri,t.version,i],d=o.get(n);void 0===d?(d={document:a,pulledVersion:l,resultId:c},o.set(n,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,o=i?e:e.uri,a=o.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:n.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:n.outDated,document:e}),void 0===l&&t instanceof p.CancellationError)l={state:n.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(o);return}if(this.openRequests.delete(a),!this.tabs.isVisible(e))return void this.documentStates.unTrack(s.document,e);if(l.state===n.outDated)return;void 0!==i&&(i.kind===r.DocumentDiagnosticReportKind.full&&this.diagnostics.set(o,i.items),c.pulledVersion=t,c.resultId=i.resultId),l.state===n.reschedule&&this.pull(e)}else l.state===n.active?(l.tokenSource.cancel(),this.openRequests.set(a,{state:n.reschedule,document:l.document})):l.state===n.outDated&&this.openRequests.set(a,{state:n.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:n.reschedule,document:e}):this.pull(e,()=>{this.forget(s.document,e)}):(void 0!==r&&(r.state===n.active&&r.tokenSource.cancel(),this.openRequests.set(i,{state:n.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 o=(e,t,i)=>{let o={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,o,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:[]}},n=this.client.middleware;return n.provideDiagnostics?n.provideDiagnostics(e,t,i,o):o(e,t,i)}};return this.options.workspaceDiagnostics&&(e.provideWorkspaceDiagnostics=(e,t,i)=>{let o=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},n=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 o(i))}catch(e){this.client.error("Converting workspace diagnostics failed.",e)}i(t)}),a={identifier:this.options.identifier,previousResultIds:n(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 o(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===n.active&&t.tokenSource.cancel(),this.openRequests.set(e,{state:n.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},n=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(n,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,o.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,o.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 o=!1;i.setTestMode=function(){o=!0},i.clearTestMode=function(){o=!1};class n{constructor(e=15){this.yieldAfter=!0===o?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,o){if(0===e.length)return[];let s=Array(e.length),a=new n(o?.yieldAfter);function l(i){a.start();for(let r=i;r<e.length;r++)if(s[r]=t(e[r]),a.shouldYield())return o?.yieldCallback&&o.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,o){if(0===e.length)return[];let s=Array(e.length),a=new n(o?.yieldAfter);async function l(r){a.start();for(let n=r;n<e.length;n++)if(s[n]=await t(e[n],i),a.shouldYield())return o?.yieldCallback&&o.yieldCallback(),n+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,o){if(0===e.length)return;let s=new n(o?.yieldAfter);function a(i){s.start();for(let r=i;r<e.length;r++)if(t(e[r]),s.shouldYield())return o?.yieldCallback&&o.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 o extends r.CompletionItem{constructor(e){super(e)}}i.default=o},184037,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class o extends r.CodeLens{constructor(e){super(e)}}i.default=o},776453,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class o extends r.DocumentLink{constructor(e,t){super(e,t)}}i.default=o},755683,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class o extends r.CodeAction{constructor(e,t){super(e),this.data=t}}i.default=o},582182,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.ProtocolDiagnostic=i.DiagnosticCode=void 0;let o=e.r(663544),n=e.r(217405);(r||(i.DiagnosticCode=r={})).is=function(e){return null!=e&&(n.number(e.value)||n.string(e.value))&&n.string(e.target)};class s extends o.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 o extends r.CallHierarchyItem{constructor(e,t,i,r,o,n,s){super(e,t,i,r,o,n),void 0!==s&&(this.data=s)}}i.default=o},987722,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class o extends r.TypeHierarchyItem{constructor(e,t,i,r,o,n,s){super(e,t,i,r,o,n),void 0!==s&&(this.data=s)}}i.default=o},81723,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class o extends r.SymbolInformation{constructor(e,t,i,o,n){const s=!(o instanceof r.Uri);super(e,t,i,s?o:new r.Location(o,new r.Range(0,0,0,0))),this.hasRange=s,void 0!==n&&(this.data=n)}}i.default=o},256301,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0});let r=e.r(663544);class o extends r.InlayHint{constructor(e,t,i){super(e,t,i)}}i.default=o},743402,(e,t,i)=>{"use strict";var r;Object.defineProperty(i,"__esModule",{value:!0}),i.createConverter=void 0;let o=e.r(663544),n=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>n.uinteger.MAX_VALUE?n.uinteger.MAX_VALUE:e.line,character:e.character>n.uinteger.MAX_VALUE?n.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:n.Location.create(t(e.uri),w(e.range))}function D(e){switch(e){case o.DiagnosticSeverity.Error:return n.DiagnosticSeverity.Error;case o.DiagnosticSeverity.Warning:return n.DiagnosticSeverity.Warning;case o.DiagnosticSeverity.Information:return n.DiagnosticSeverity.Information;case o.DiagnosticSeverity.Hint:return n.DiagnosticSeverity.Hint}}function E(e){switch(e){case o.DiagnosticTag.Unnecessary:return n.DiagnosticTag.Unnecessary;case o.DiagnosticTag.Deprecated:return n.DiagnosticTag.Deprecated;default:return}}function k(e){return{message:e.message,location:x(e.location)}}function T(e){let i=n.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 o=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(o)?void 0!==r&&r.hasDiagnosticCode?i.code=o:(i.code=o.value,i.codeDescription={href:o.target}):i.code=o,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<=o.SymbolKind.TypeParameter?e+1:n.SymbolKind.Property}function L(e){return e}function F(e){return e.map(L)}async function O(e,t){let i=n.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]),n.CodeActionContext.create(await R(e.diagnostics,t),i,$(e.triggerKind)))}function $(e){switch(e){case o.CodeActionTriggerKind.Invoke:return n.CodeActionTriggerKind.Invoked;case o.CodeActionTriggerKind.Automatic:return n.CodeActionTriggerKind.Automatic;default:return}}function H(e){if(null!=e)return e.value}function U(e){let t=n.Command.create(e.title,e.command);return e.arguments&&(t.arguments=e.arguments),t}function W(e){let t=n.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:n.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 o.TextDocumentSaveReason.Manual:break;case o.TextDocumentSaveReason.AfterDelay:return n.TextDocumentSaveReason.AfterDelay;case o.TextDocumentSaveReason.FocusOut:return n.TextDocumentSaveReason.FocusOut}return n.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 o.CompletionTriggerKind.TriggerCharacter:return n.CompletionTriggerKind.TriggerCharacter;case o.CompletionTriggerKind.TriggerForIncompleteCompletions:return n.CompletionTriggerKind.TriggerForIncompleteCompletions;default:return n.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 o.SignatureHelpTriggerKind.Invoke:return n.SignatureHelpTriggerKind.Invoked;case o.SignatureHelpTriggerKind.TriggerCharacter:return n.SignatureHelpTriggerKind.TriggerCharacter;case o.SignatureHelpTriggerKind.ContentChange:return n.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 n.MarkupKind.PlainText:return{kind:e,value:t};case n.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,_=n.InsertTextFormat.PlainText,d.textEdit?(m=d.textEdit.newText,f=d.textEdit.range):d.insertText instanceof o.SnippetString?(_=n.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)?n.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===o.CompletionItemTag.Deprecated)return n.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(o.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=n.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=n.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]),n.CodeActionContext.create(P(e.diagnostics),t,$(e.triggerKind)))},asInlineValueContext:function(e){return null==e?e:n.InlineValueContext.create(e.frameId,w(e.stoppedLocation))},asCommand:U,asCodeLens:function(e){let t=n.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=n.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=n.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:n.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 o=e.r(663544),n=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=>o.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)n.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 o.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 n.DiagnosticTag.Unnecessary:return o.DiagnosticTag.Unnecessary;case n.DiagnosticTag.Deprecated:return o.DiagnosticTag.Deprecated;default:return}}function w(e){return e?new o.Position(e.line,e.character):void 0}function x(e){return e?new o.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 o.Range(e.start.line,e.start.character,e.end.line,e.end.character),t)}function E(e){if(null==e)return o.DiagnosticSeverity.Error;switch(e){case n.DiagnosticSeverity.Error:break;case n.DiagnosticSeverity.Warning:return o.DiagnosticSeverity.Warning;case n.DiagnosticSeverity.Information:return o.DiagnosticSeverity.Information;case n.DiagnosticSeverity.Hint:return o.DiagnosticSeverity.Hint}return o.DiagnosticSeverity.Error}function k(e){if(s.string(e))return e;switch(e.kind){case n.MarkupKind.Markdown:return T(e.value);case n.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 o.MarkdownString(e);else switch(e.kind){case n.MarkupKind.Markdown:r=new o.MarkdownString(e.value);break;case n.MarkupKind.PlainText:(r=new o.MarkdownString).appendText(e.value);break;default:(r=new o.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,n.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 o.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===n.CompletionItemTag.Deprecated)return o.CompletionItemTag.Deprecated}(i);void 0!==e&&t.push(e)}return t}(e.tags),g=(d=e,n.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,n.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===n.InsertTextFormat.Snippet?{text:new o.SnippetString(a),range:i,fromEdit:!0}:{text:a,range:i,fromEdit:!0}}if(e.insertText)if(r===n.InsertTextFormat.Snippet)return{text:new o.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,n.CompletionItemKind.Text<=u&&u<=n.CompletionItemKind.TypeParameter?[u-1,void 0]:[o.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(o.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===n.InsertTextMode.asIs&&(p.keepWhitespace=!0)),p}function I(e){if(e)return new o.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 o.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 o.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 o.ParameterInformation(e.label);return e.documentation&&(t.documentation=k(e.documentation)),t}function H(e){return e?new o.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(n.LocationLink.is(e[0]))return a.map(e,q,t);else return a.map(e,H,t);else if(n.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 o.DocumentHighlight(x(e.range));return s.number(e.kind)&&(t.kind=B(e.kind)),t}function B(e){switch(e){case n.DocumentHighlightKind.Text:break;case n.DocumentHighlightKind.Read:return o.DocumentHighlightKind.Read;case n.DocumentHighlightKind.Write:return o.DocumentHighlightKind.Write}return o.DocumentHighlightKind.Text}async function G(e,t){if(e)return a.map(e,X,t)}function Q(e){return e<=n.SymbolKind.TypeParameter?e-1:o.SymbolKind.Property}function J(e){return e===n.SymbolTag.Deprecated?o.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 o.Location(y(e.location.uri),x(i.range)),t):new o.SymbolInformation(e.name,Q(e.kind),e.containerName??"",new o.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 o.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(o.SymbolTag.Deprecated)||(e.tags=e.tags.concat(o.SymbolTag.Deprecated)):e.tags=[o.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 eo=new Map;function en(e){if(null==e)return;let t=eo.get(e);if(t)return t;let i=e.split(".");for(let e of(t=o.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=en(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 o.WorkspaceEdit;if(e.documentChanges){let i=e.documentChanges;await a.forEach(i,e=>{if(n.CreateFile.is(e))s.createFile(y(e.uri),e.options,r(e.annotationId));else if(n.RenameFile.is(e))s.renameFile(y(e.oldUri),y(e.newUri),e.options,r(e.annotationId));else if(n.DeleteFile.is(e))s.deleteFile(y(e.uri),e.options,r(e.annotationId));else if(n.TextDocumentEdit.is(e)){let t=y(e.textDocument.uri);for(let i of e.edits)n.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 o.Color(e.red,e.green,e.blue,e.alpha)}function eg(e){return new o.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 o.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 n.FoldingRangeKind.Comment:return o.FoldingRangeKind.Comment;case n.FoldingRangeKind.Imports:return o.FoldingRangeKind.Imports;case n.FoldingRangeKind.Region:return o.FoldingRangeKind.Region}}function e_(e){return new o.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 o.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 n.InlineValueText.is(e)?new o.InlineValueText(x(e.range),e.text):n.InlineValueVariableLookup.is(e)?new o.InlineValueVariableLookup(x(e.range),e.variableName,e.caseSensitiveLookup):new o.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 o.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 o.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 o.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 o.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 o.SemanticTokensEdits(e.edits.map(eL),e.resultId)}async function eO(e,t){if(null!=e)return new o.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 o.SnippetString(e.insertText.value),e.command&&(i=ei(e.command));let r=new o.InlineCompletionItem(t,x(e.range),i);return e.filterText&&(r.filterText=e.filterText),r}return eo.set(n.CodeActionKind.Empty,o.CodeActionKind.Empty),eo.set(n.CodeActionKind.QuickFix,o.CodeActionKind.QuickFix),eo.set(n.CodeActionKind.Refactor,o.CodeActionKind.Refactor),eo.set(n.CodeActionKind.RefactorExtract,o.CodeActionKind.RefactorExtract),eo.set(n.CodeActionKind.RefactorInline,o.CodeActionKind.RefactorInline),eo.set(n.CodeActionKind.RefactorRewrite,o.CodeActionKind.RefactorRewrite),eo.set(n.CodeActionKind.Source,o.CodeActionKind.Source),eo.set(n.CodeActionKind.SourceOrganizeImports,o.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 o.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:en,asCodeActionKinds:function(e){if(null!=e)return e.map(e=>en(e))},asCodeActionResult:function(e,t){return a.mapAsync(e,async e=>n.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 o.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(n.RelativePattern.is(e)){if(n.URI.is(e.baseUri))return new o.RelativePattern(y(e.baseUri),e.pattern);else if(n.WorkspaceFolder.is(e.baseUri)){let t=o.workspace.getWorkspaceFolder(y(e.baseUri.uri));return void 0!==t?new o.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 o.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),o=e.r(441296),n=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(o.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(o.WorkDoneProgressCancelNotification.type,{token:this._token})}),this.report(e),new Promise((e,t)=>{this._resolve=e,this._reject=t})})}report(e){if(this._infinite&&n.string(e.message))void 0!==this._progress&&this._progress.report({message:e.message});else if(n.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),o=e.r(564461),n=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=>o(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 o of i)if(null!==o&&"object"==typeof o||Array.isArray(o))r.push(e(t,o));else{if(o instanceof RegExp)throw Error("Can't transfer regular expressions to the server");r.push(o)}return r}{let r=Object.keys(i),o=Object.create(null);for(let n of r){let r=i[n];if(null!==r&&"object"==typeof r||Array.isArray(r))o[n]=e(t,r);else{if(r instanceof RegExp)throw Error("Can't transfer regular expressions to the server");o[n]=r}}return o}}(new Set,e)}function o(e,t){let o=n.NotebookCell.create(function(e){switch(e){case r.NotebookCellKind.Markup:return n.NotebookCellKind.Markup;case r.NotebookCellKind.Code:return n.NotebookCellKind.Code}}(e.kind),t.asUri(e.document.uri));return Object.keys(e.metadata).length>0&&(o.metadata=i(e.metadata)),void 0!==e.executionSummary&&a.number(e.executionSummary.executionOrder)&&a.boolean(e.executionSummary.success)&&(o.executionSummary={executionOrder:e.executionSummary.executionOrder,success:e.executionSummary.success}),o}e.asVersionedNotebookDocumentIdentifier=function(e,t){return{version:e.version,uri:t.asUri(e.uri)}},e.asNotebookDocument=function(e,r,o){let s=n.NotebookDocument.create(o.asUri(e.uri),e.notebookType,e.version,t(r,o));return Object.keys(e.metadata).length>0&&(s.metadata=i(e.metadata)),s},e.asNotebookCells=t,e.asMetadata=i,e.asNotebookCell=o,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),o=e.cells;o.structure&&(r.structure={array:{start:o.structure.array.start,deleteCount:o.structure.array.deleteCount,cells:void 0!==o.structure.array.cells?o.structure.array.cells.map(e=>p.c2p.asNotebookCell(e,t)):void 0},didOpen:void 0!==o.structure.didOpen?o.structure.didOpen.map(e=>t.asOpenTextDocumentParams(e.document).textDocument):void 0,didClose:void 0!==o.structure.didClose?o.structure.didClose.map(e=>t.asCloseTextDocumentParams(e.document).textDocument):void 0}),void 0!==o.data&&(r.data=o.data.map(e=>p.c2p.asNotebookCell(e,t))),void 0!==o.textContent&&(r.textContent=o.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,o,n,s;return e.kind===t.kind&&e.document.uri.toString()===t.document.uri.toString()&&e.document.languageId===t.document.languageId&&(r=e.executionSummary,r===(o=t.executionSummary)||void 0!==r&&void 0!==o&&r.executionOrder===o.executionOrder&&r.success===o.success&&(n=r.timing,n===(s=o.timing)||void 0!==n&&void 0!==s&&n.startTime===s.startTime&&n.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),o=Array.isArray(i);if(r!==o)return!1;if(r&&o){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),o=Object.keys(i);if(r.length!==o.length||(r.sort(),o.sort(),!e(r,o)))return!1;for(let o=0;o<r.length;o++){let n=r[o];if(!e(t[n],i[n]))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,o=t.length,n=0;for(;n<o&&n<r&&f(e[n],t[n],i);)n++;if(n<o&&n<r){let s=r-1,a=o-1;for(;s>=0&&a>=0&&f(e[s],t[a],i);)s--,a--;let l=s+1-n,c=n===a+1?void 0:t.slice(n,a+1);return void 0!==c?{start:n,deleteCount:l,cells:c}:{start:n,deleteCount:l}}return n<o?{start:n,deleteCount:0,cells:t.slice(n)}:n<r?{start:n,deleteCount:r-n}: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 o.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,o="string"==typeof e.notebook?void 0:e.notebook?.pattern;if(void 0!==e.cells)for(let n of e.cells)i.push(y(t,r,o,n.language));else i.push(y(t,r,o,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()),o=this.cellMatches(e,t);if(void 0!==i){let r=i.uris.has(t.document.uri.toString());if(o&&r||!o&&!r)return;if(o){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 o&&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,o=i.cells.findIndex(e=>e.document.uri.toString()===r.toString());if(-1!==o)if(0===o&&1===i.cells.length)this.doSendClose(e,i.cells).catch(()=>{});else{let t=i.cells.slice(),r=t.splice(o,1);this.doSendChange({notebook:e,cells:{structure:{array:{start:o,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 o=this.asNotebookDocumentChangeEvent(e.notebook,e,i,r);void 0!==o&&this.doSendChange(o,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(n.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(n.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(n.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(n.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 o;if(void 0!==t&&t.notebook!==e)throw Error("Notebook must be identical");let n={notebook:e};if(t?.metadata!==void 0&&(n.metadata=c.c2p.asMetadata(t.metadata)),t?.cellChanges!==void 0&&t.cellChanges.length>0){let e=[];for(let i of(o=new Set(r.map(e=>e.document.uri.toString())),t.cellChanges))o.has(i.cell.document.uri.toString())&&(void 0!==i.executionSummary||void 0!==i.metadata)&&e.push(i.cell);e.length>0&&(n.cells=n.cells??{},n.cells.data=e)}if((t?.contentChanges!==void 0&&t.contentChanges.length>0||void 0===t)&&void 0!==i&&void 0!==r){let e,t,o=i.cells,s=d.computeDiff(o,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(o.slice(s.start,s.start+s.deleteCount).map(e=>[e.document.uri.toString(),e]))).keys())))e.has(i)&&(t.delete(i),e.delete(i));n.cells=n.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)}n.cells.structure={array:s,didOpen:i,didClose:r}}}return Object.keys(n).length>1?n: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=n.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),o=e.r(441296),n=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(o.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},o=e.middleware.workspace;return o&&o.configuration?o.configuration(t,i,r):r(t,i)})}getConfiguration(e,t){let i=null;if(t){let o=t.lastIndexOf(".");if(-1===o)i=l(r.workspace.getConfiguration(void 0,e).get(t));else{let n=r.workspace.getConfiguration(t.substr(0,o),e);n&&(i=l(n.get(t.substr(o+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 o.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=n.string(e)?[e]:e)&&void 0!==t&&!i.some(e=>t.affectsConfiguration(e)))return;let r=async e=>void 0===e?this._client.sendNotification(o.DidChangeConfigurationNotification.type,{settings:null}):this._client.sendNotification(o.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 ${o.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 o=0;o<e.length;o++){let n=e[o],s=n.indexOf("."),a=null;if(a=s>=0?r.workspace.getConfiguration(n.substr(0,s),t).get(n.substr(s+1)):r.workspace.getConfiguration(void 0,t).get(n)){let t=e[o].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),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentEventFeature{constructor(e,t){super(e,r.workspace.onDidOpenTextDocument,o.DidOpenTextDocumentNotification.type,()=>e.middleware.didOpen,t=>e.code2ProtocolConverter.asOpenTextDocumentParams(t),e=>e,n.TextDocumentEventFeature.textDocumentFilter),this._syncedDocuments=t}get openDocuments(){return this._syncedDocuments.values()}fillClientCapabilities(e){(0,n.ensure)((0,n.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 o.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 n.TextDocumentEventFeature{constructor(e,t,i){super(e,r.workspace.onDidCloseTextDocument,o.DidCloseTextDocumentNotification.type,()=>e.middleware.didClose,t=>e.code2ProtocolConverter.asCloseTextDocumentParams(t),e=>e,n.TextDocumentEventFeature.textDocumentFilter),this._syncedDocuments=t,this._pendingTextDocumentChanges=i}get registrationType(){return o.DidCloseTextDocumentNotification.type}fillClientCapabilities(e){(0,n.ensure)((0,n.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 n.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=o.TextDocumentSyncKind.None}get onNotificationSent(){return this._onNotificationSent.event}get onPendingChangeAdded(){return this._onPendingChangeAdded.event}get syncKind(){return this._syncKind}get registrationType(){return o.DidChangeTextDocumentNotification.type}fillClientCapabilities(e){(0,n.ensure)((0,n.ensure)(e,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(e,t){let i=e.resolvedTextDocumentSync;t&&i&&void 0!==i.change&&i.change!==o.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,n=[];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===o.TextDocumentSyncKind.Incremental){let s=async e=>{let r=this._client.code2ProtocolConverter.asChangeTextDocumentParams(e,t,i);await this._client.sendNotification(o.DidChangeTextDocumentNotification.type,r),this.notificationSent(e.document,o.DidChangeTextDocumentNotification.type,r)};n.push(r.didChange?r.didChange(e,e=>s(e)):s(e))}else if(s.syncKind===o.TextDocumentSyncKind.Full){let t=async e=>{let t=e.document.uri.toString();this._pendingTextDocumentChanges.set(t,e.document),this._onPendingChangeAdded.fire()};n.push(r.didChange?r.didChange(e,e=>t(e)):t(e))}}return Promise.all(n).then(void 0,e=>{throw this._client.error(`Sending document notification ${o.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=o.TextDocumentSyncKind.None;else for(let e of(this._syncKind=o.TextDocumentSyncKind.None,this._changeData.values()))if(this.updateSyncKind(e.syncKind),this._syncKind===o.TextDocumentSyncKind.Full)break}clear(){this._pendingTextDocumentChanges.clear(),this._changeData.clear(),this._syncKind=o.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!==o.TextDocumentSyncKind.Full)switch(e){case o.TextDocumentSyncKind.Full:this._syncKind=e;break;case o.TextDocumentSyncKind.Incremental:this._syncKind===o.TextDocumentSyncKind.None&&(this._syncKind=o.TextDocumentSyncKind.Incremental)}}}i.DidChangeTextDocumentFeature=c;class d extends n.TextDocumentEventFeature{constructor(e){super(e,r.workspace.onWillSaveTextDocument,o.WillSaveTextDocumentNotification.type,()=>e.middleware.willSave,t=>e.code2ProtocolConverter.asWillSaveTextDocumentParams(t),e=>e.document,(e,t)=>n.TextDocumentEventFeature.textDocumentFilter(e,t.document))}get registrationType(){return o.WillSaveTextDocumentNotification.type}fillClientCapabilities(e){(0,n.ensure)((0,n.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 n.DynamicDocumentFeature{constructor(e){super(e),this._selectors=new Map}getDocumentSelectors(){return this._selectors.values()}get registrationType(){return o.WillSaveTextDocumentWaitUntilRequest.type}fillClientCapabilities(e){(0,n.ensure)((0,n.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(n.TextDocumentEventFeature.textDocumentFilter(this._selectors.values(),e.document)&&!this._client.hasDedicatedTextSynchronizationFeature(e.document)){let t=this._client.middleware,i=e=>this._client.sendRequest(o.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 n.TextDocumentEventFeature{constructor(e){super(e,r.workspace.onDidSaveTextDocument,o.DidSaveTextDocumentNotification.type,()=>e.middleware.didSave,t=>e.code2ProtocolConverter.asSaveTextDocumentParams(t,this._includeText),e=>e,n.TextDocumentEventFeature.textDocumentFilter),this._includeText=!1}get registrationType(){return o.DidSaveTextDocumentNotification.type}fillClientCapabilities(e){(0,n.ensure)((0,n.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),o=e.r(441296),n=e.r(165969),s=e.r(413807),a=[o.CompletionItemKind.Text,o.CompletionItemKind.Method,o.CompletionItemKind.Function,o.CompletionItemKind.Constructor,o.CompletionItemKind.Field,o.CompletionItemKind.Variable,o.CompletionItemKind.Class,o.CompletionItemKind.Interface,o.CompletionItemKind.Module,o.CompletionItemKind.Property,o.CompletionItemKind.Unit,o.CompletionItemKind.Value,o.CompletionItemKind.Enum,o.CompletionItemKind.Keyword,o.CompletionItemKind.Snippet,o.CompletionItemKind.Color,o.CompletionItemKind.File,o.CompletionItemKind.Reference,o.CompletionItemKind.Folder,o.CompletionItemKind.EnumMember,o.CompletionItemKind.Constant,o.CompletionItemKind.Struct,o.CompletionItemKind.Event,o.CompletionItemKind.Operator,o.CompletionItemKind.TypeParameter];class l extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.CompletionRequest.type),this.labelDetailsSupport=new Map}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.ensure)(e,"textDocument"),"completion");t.dynamicRegistration=!0,t.contextSupport=!0,t.completionItem={snippetSupport:!0,commitCharactersSupport:!0,documentationFormat:[o.MarkupKind.Markdown,o.MarkupKind.PlainText],deprecatedSupport:!0,preselectSupport:!0,tagSupport:{valueSet:[o.CompletionItemTag.Deprecated]},insertReplaceSupport:!0,resolveSupport:{properties:["documentation","detail","additionalTextEdits"]},insertTextModeSupport:{valueSet:[o.InsertTextMode.asIs,o.InsertTextMode.adjustIndentation]},labelDetailsSupport:!0},t.insertTextMode=o.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??[],n=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(o.CompletionRequest.type,s.code2ProtocolConverter.asCompletionParams(e,t,i),r).then(e=>r.isCancellationRequested?null:s.protocol2CodeConverter.asCompletionResult(e,n,r),e=>s.handleFailedRequest(o.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,n=this._client.middleware,s=(e,i)=>r.sendRequest(o.CompletionResolveRequest.type,r.code2ProtocolConverter.asCompletionItem(e,!!this.labelDetailsSupport.get(t)),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asCompletionItem(e),t=>r.handleFailedRequest(o.CompletionResolveRequest.type,i,t,e));return n.resolveCompletionItem?n.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),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.HoverRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.ensure)(e,"textDocument"),"hover");t.dynamicRegistration=!0,t.contentFormat=[o.MarkupKind.Markdown,o.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,n=(e,t,i)=>r.sendRequest(o.HoverRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asHover(e),e=>r.handleFailedRequest(o.HoverRequest.type,i,e,null)),s=r.middleware;return s.provideHover?s.provideHover(e,t,i,n):n(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),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.DefinitionRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.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,n=(e,t,i)=>r.sendRequest(o.DefinitionRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDefinitionResult(e,i),e=>r.handleFailedRequest(o.DefinitionRequest.type,i,e,null)),s=r.middleware;return s.provideDefinition?s.provideDefinition(e,t,i,n):n(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),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.SignatureHelpRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.ensure)(e,"textDocument"),"signatureHelp");t.dynamicRegistration=!0,t.signatureInformation={documentationFormat:[o.MarkupKind.Markdown,o.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 n=this._client,s=(e,t,i,r)=>n.sendRequest(o.SignatureHelpRequest.type,n.code2ProtocolConverter.asSignatureHelpParams(e,t,i),r).then(e=>r.isCancellationRequested?null:n.protocol2CodeConverter.asSignatureHelp(e,r),e=>n.handleFailedRequest(o.SignatureHelpRequest.type,r,e,null)),a=n.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 o=e.triggerCharacters||[];return r.languages.registerSignatureHelpProvider(i,t,...o)}{let o={triggerCharacters:e.triggerCharacters||[],retriggerCharacters:e.retriggerCharacters||[]};return r.languages.registerSignatureHelpProvider(i,t,o)}}}i.SignatureHelpFeature=a},568942,(e,t,i)=>{"use strict";Object.defineProperty(i,"__esModule",{value:!0}),i.DocumentHighlightFeature=void 0;let r=e.r(663544),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.DocumentHighlightRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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,n=(e,t,i)=>r.sendRequest(o.DocumentHighlightRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDocumentHighlights(e,i),e=>r.handleFailedRequest(o.DocumentHighlightRequest.type,i,e,null)),s=r.middleware;return s.provideDocumentHighlights?s.provideDocumentHighlights(e,t,i,n):n(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),o=e.r(441296),n=e.r(165969),s=e.r(413807);i.SupportedSymbolKinds=[o.SymbolKind.File,o.SymbolKind.Module,o.SymbolKind.Namespace,o.SymbolKind.Package,o.SymbolKind.Class,o.SymbolKind.Method,o.SymbolKind.Property,o.SymbolKind.Field,o.SymbolKind.Constructor,o.SymbolKind.Enum,o.SymbolKind.Interface,o.SymbolKind.Function,o.SymbolKind.Variable,o.SymbolKind.Constant,o.SymbolKind.String,o.SymbolKind.Number,o.SymbolKind.Boolean,o.SymbolKind.Array,o.SymbolKind.Object,o.SymbolKind.Key,o.SymbolKind.Null,o.SymbolKind.EnumMember,o.SymbolKind.Struct,o.SymbolKind.Event,o.SymbolKind.Operator,o.SymbolKind.TypeParameter],i.SupportedSymbolTags=[o.SymbolTag.Deprecated];class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.DocumentSymbolRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.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(o.DocumentSymbolRequest.type,i.code2ProtocolConverter.asDocumentSymbolParams(e),t);if(t.isCancellationRequested||null==r)return null;if(0===r.length)return[];{let e=r[0];if(o.DocumentSymbol.is(e))return await i.protocol2CodeConverter.asDocumentSymbols(r,t);return await i.protocol2CodeConverter.asSymbolInformations(r,t)}}catch(e){return i.handleFailedRequest(o.DocumentSymbolRequest.type,t,e,null)}},n=i.middleware;return n.provideDocumentSymbols?n.provideDocumentSymbols(e,t,r):r(e,t)}},n=void 0!==e.label?{label:e.label}:void 0;return[r.languages.registerDocumentSymbolProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i,n),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),o=e.r(441296),n=e.r(165969),s=e.r(775419),a=e.r(413807);class l extends n.WorkspaceFeature{constructor(e){super(e,o.WorkspaceSymbolRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.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(o.WorkspaceSymbolRequest.type,{query:e},t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asSymbolInformations(e,t),e=>i.handleFailedRequest(o.WorkspaceSymbolRequest.type,t,e,null)),n=i.middleware;return n.provideWorkspaceSymbols?n.provideWorkspaceSymbols(e,t,r):r(e,t)},resolveWorkspaceSymbol:!0===e.resolveProvider?(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(o.WorkspaceSymbolResolveRequest.type,i.code2ProtocolConverter.asWorkspaceSymbol(e),t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asSymbolInformation(e),e=>i.handleFailedRequest(o.WorkspaceSymbolResolveRequest.type,t,e,null)),n=i.middleware;return n.resolveWorkspaceSymbol?n.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),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.ReferencesRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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 n=this._client,s=(e,t,i,r)=>n.sendRequest(o.ReferencesRequest.type,n.code2ProtocolConverter.asReferenceParams(e,t,i),r).then(e=>r.isCancellationRequested?null:n.protocol2CodeConverter.asReferences(e,r),e=>n.handleFailedRequest(o.ReferencesRequest.type,r,e,null)),a=n.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),o=e.r(441296),n=e.r(413807),s=e.r(165969);class a extends s.TextDocumentLanguageFeature{constructor(e){super(e,o.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:[o.CodeActionKind.Empty,o.CodeActionKind.QuickFix,o.CodeActionKind.Refactor,o.CodeActionKind.RefactorExtract,o.CodeActionKind.RefactorInline,o.CodeActionKind.RefactorRewrite,o.CodeActionKind.Source,o.CodeActionKind.SourceOrganizeImports]}},t.honorsChangeAnnotations=!0}initialize(e,t){let i=this.getRegistrationOptions(t,e.codeActionProvider);i&&this.register({id:n.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i={provideCodeActions:(e,t,i,r)=>{let n=this._client,s=async(e,t,i,r)=>{let s={textDocument:n.code2ProtocolConverter.asTextDocumentIdentifier(e),range:n.code2ProtocolConverter.asRange(t),context:n.code2ProtocolConverter.asCodeActionContextSync(i)};return n.sendRequest(o.CodeActionRequest.type,s,r).then(e=>r.isCancellationRequested||null==e?null:n.protocol2CodeConverter.asCodeActionResult(e,r),e=>n.handleFailedRequest(o.CodeActionRequest.type,r,e,null))},a=n.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,n=async(e,t)=>i.sendRequest(o.CodeActionResolveRequest.type,i.code2ProtocolConverter.asCodeActionSync(e),t).then(r=>t.isCancellationRequested?e:i.protocol2CodeConverter.asCodeAction(r,t),r=>i.handleFailedRequest(o.CodeActionResolveRequest.type,t,r,e));return r.resolveCodeAction?r.resolveCodeAction(e,t,n):n(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),o=e.r(441296),n=e.r(413807),s=e.r(165969);class a extends s.TextDocumentLanguageFeature{constructor(e){super(e,o.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(o.CodeLensRefreshRequest.type,async()=>{for(let e of this.getAllProviders())e.onDidChangeCodeLensEmitter.fire()});let i=this.getRegistrationOptions(t,e.codeLensProvider);i&&this.register({id:n.generateUuid(),registerOptions:i})}registerLanguageProvider(e){let t=e.documentSelector,i=new r.EventEmitter,n={onDidChangeCodeLenses:i.event,provideCodeLenses:(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(o.CodeLensRequest.type,i.code2ProtocolConverter.asCodeLensParams(e),t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asCodeLenses(e,t),e=>i.handleFailedRequest(o.CodeLensRequest.type,t,e,null)),n=i.middleware;return n.provideCodeLenses?n.provideCodeLenses(e,t,r):r(e,t)},resolveCodeLens:e.resolveProvider?(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(o.CodeLensResolveRequest.type,i.code2ProtocolConverter.asCodeLens(e),t).then(r=>t.isCancellationRequested?e:i.protocol2CodeConverter.asCodeLens(r),r=>i.handleFailedRequest(o.CodeLensResolveRequest.type,t,r,e)),n=i.middleware;return n.resolveCodeLens?n.resolveCodeLens(e,t,r):r(e,t)}:void 0};return[r.languages.registerCodeLensProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),n),{provider:n,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 o=e.r(663544),n=e.r(441296),s=e.r(413807),a=e.r(165969);(r||(r={})).fromConfiguration=function(e){let t=o.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,n.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 o=this._client,s=(e,t,i)=>{let s={textDocument:o.code2ProtocolConverter.asTextDocumentIdentifier(e),options:o.code2ProtocolConverter.asFormattingOptions(t,r.fromConfiguration(e))};return o.sendRequest(n.DocumentFormattingRequest.type,s,i).then(e=>i.isCancellationRequested?null:o.protocol2CodeConverter.asTextEdits(e,i),e=>o.handleFailedRequest(n.DocumentFormattingRequest.type,i,e,null))},a=o.middleware;return a.provideDocumentFormattingEdits?a.provideDocumentFormattingEdits(e,t,i,s):s(e,t,i)}};return[o.languages.registerDocumentFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.DocumentFormattingFeature=l;class c extends a.TextDocumentLanguageFeature{constructor(e){super(e,n.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,o)=>{let s=this._client,a=(e,t,i,o)=>{let a={textDocument:s.code2ProtocolConverter.asTextDocumentIdentifier(e),range:s.code2ProtocolConverter.asRange(t),options:s.code2ProtocolConverter.asFormattingOptions(i,r.fromConfiguration(e))};return s.sendRequest(n.DocumentRangeFormattingRequest.type,a,o).then(e=>o.isCancellationRequested?null:s.protocol2CodeConverter.asTextEdits(e,o),e=>s.handleFailedRequest(n.DocumentRangeFormattingRequest.type,o,e,null))},l=s.middleware;return l.provideDocumentRangeFormattingEdits?l.provideDocumentRangeFormattingEdits(e,t,i,o,a):a(e,t,i,o)}};return e.rangesSupport&&(i.provideDocumentRangesFormattingEdits=(e,t,i,o)=>{let s=this._client,a=(e,t,i,o)=>{let a={textDocument:s.code2ProtocolConverter.asTextDocumentIdentifier(e),ranges:s.code2ProtocolConverter.asRanges(t),options:s.code2ProtocolConverter.asFormattingOptions(i,r.fromConfiguration(e))};return s.sendRequest(n.DocumentRangesFormattingRequest.type,a,o).then(e=>o.isCancellationRequested?null:s.protocol2CodeConverter.asTextEdits(e,o),e=>s.handleFailedRequest(n.DocumentRangesFormattingRequest.type,o,e,null))},l=s.middleware;return l.provideDocumentRangesFormattingEdits?l.provideDocumentRangesFormattingEdits(e,t,i,o,a):a(e,t,i,o)}),[o.languages.registerDocumentRangeFormattingEditProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),i),i]}}i.DocumentRangeFormattingFeature=c;class d extends a.TextDocumentLanguageFeature{constructor(e){super(e,n.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,o,s)=>{let a=this._client,l=(e,t,i,o,s)=>{let l={textDocument:a.code2ProtocolConverter.asTextDocumentIdentifier(e),position:a.code2ProtocolConverter.asPosition(t),ch:i,options:a.code2ProtocolConverter.asFormattingOptions(o,r.fromConfiguration(e))};return a.sendRequest(n.DocumentOnTypeFormattingRequest.type,l,s).then(e=>s.isCancellationRequested?null:a.protocol2CodeConverter.asTextEdits(e,s),e=>a.handleFailedRequest(n.DocumentOnTypeFormattingRequest.type,s,e,null))},c=a.middleware;return c.provideOnTypeFormattingEdits?c.provideOnTypeFormattingEdits(e,t,i,o,s,l):l(e,t,i,o,s)}},s=e.moreTriggerCharacter||[];return[o.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),o=e.r(441296),n=e.r(413807),s=e.r(217405),a=e.r(165969);class l extends a.TextDocumentLanguageFeature{constructor(e){super(e,o.RenameRequest.type)}fillClientCapabilities(e){let t=(0,a.ensure)((0,a.ensure)(e,"textDocument"),"rename");t.dynamicRegistration=!0,t.prepareSupport=!0,t.prepareSupportDefaultBehavior=o.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:n.generateUuid(),registerOptions:i}))}registerLanguageProvider(e){let t=e.documentSelector,i={provideRenameEdits:(e,t,i,r)=>{let n=this._client,s=(e,t,i,r)=>{let s={textDocument:n.code2ProtocolConverter.asTextDocumentIdentifier(e),position:n.code2ProtocolConverter.asPosition(t),newName:i};return n.sendRequest(o.RenameRequest.type,s,r).then(e=>r.isCancellationRequested?null:n.protocol2CodeConverter.asWorkspaceEdit(e,r),e=>n.handleFailedRequest(o.RenameRequest.type,r,e,null,!1))},a=n.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,n=(e,t,i)=>{let n={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),position:r.code2ProtocolConverter.asPosition(t)};return r.sendRequest(o.PrepareRenameRequest.type,n,i).then(e=>i.isCancellationRequested?null:o.Range.is(e)?r.protocol2CodeConverter.asRange(e):this.isDefaultBehavior(e)?!0===e.defaultBehavior?null:Promise.reject(Error("The element can't be renamed.")):e&&o.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,n):n(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),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.DocumentLinkRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.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(o.DocumentLinkRequest.type,i.code2ProtocolConverter.asDocumentLinkParams(e),t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asDocumentLinks(e,t),e=>i.handleFailedRequest(o.DocumentLinkRequest.type,t,e,null)),n=i.middleware;return n.provideDocumentLinks?n.provideDocumentLinks(e,t,r):r(e,t)},resolveDocumentLink:e.resolveProvider?(e,t)=>{let i=this._client,r=(e,t)=>i.sendRequest(o.DocumentLinkResolveRequest.type,i.code2ProtocolConverter.asDocumentLink(e),t).then(r=>t.isCancellationRequested?e:i.protocol2CodeConverter.asDocumentLink(r),r=>i.handleFailedRequest(o.DocumentLinkResolveRequest.type,t,r,e)),n=i.middleware;return n.resolveDocumentLink?n.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),o=e.r(441296),n=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 o.ExecuteCommandRequest.type}fillClientCapabilities(e){(0,s.ensure)((0,s.ensure)(e,"workspace"),"executeCommand").dynamicRegistration=!0}initialize(e){e.executeCommandProvider&&this.register({id:n.generateUuid(),registerOptions:Object.assign({},e.executeCommandProvider)})}register(e){let t=this._client,i=t.middleware,n=(e,i)=>t.sendRequest(o.ExecuteCommandRequest.type,{command:e,arguments:i}).then(void 0,e=>t.handleFailedRequest(o.ExecuteCommandRequest.type,void 0,e,void 0));if(e.registerOptions.commands){let t=[];for(let o of e.registerOptions.commands)t.push(r.commands.registerCommand(o,(...e)=>i.executeCommand?i.executeCommand(o,e,n):n(o,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),o=e.r(441296),n=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 o.DidChangeWatchedFilesNotification.type}fillClientCapabilities(e){(0,n.ensure)((0,n.ensure)(e,"workspace"),"didChangeWatchedFiles").dynamicRegistration=!0,(0,n.ensure)((0,n.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 n=!0,s=!0,a=!0;void 0!==i.kind&&null!==i.kind&&(n=(i.kind&o.WatchKind.Create)!=0,s=(i.kind&o.WatchKind.Change)!=0,a=(i.kind&o.WatchKind.Delete)!=0);let l=r.workspace.createFileSystemWatcher(e,!n,!s,!a);this.hookListeners(l,n,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,n){t&&e.onDidCreate(e=>this._notifyFileEvent({uri:this._client.code2ProtocolConverter.asUri(e),type:o.FileChangeType.Created}),null,n),i&&e.onDidChange(e=>this._notifyFileEvent({uri:this._client.code2ProtocolConverter.asUri(e),type:o.FileChangeType.Changed}),null,n),r&&e.onDidDelete(e=>this._notifyFileEvent({uri:this._client.code2ProtocolConverter.asUri(e),type:o.FileChangeType.Deleted}),null,n)}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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.DocumentColorRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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,n=(e,t,i)=>{let n={color:e,textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(t.document),range:r.code2ProtocolConverter.asRange(t.range)};return r.sendRequest(o.ColorPresentationRequest.type,n,i).then(e=>i.isCancellationRequested?null:this._client.protocol2CodeConverter.asColorPresentations(e,i),e=>r.handleFailedRequest(o.ColorPresentationRequest.type,i,e,null))},s=r.middleware;return s.provideColorPresentations?s.provideColorPresentations(e,t,i,n):n(e,t,i)},provideDocumentColors:(e,t)=>{let i=this._client,r=(e,t)=>{let r={textDocument:i.code2ProtocolConverter.asTextDocumentIdentifier(e)};return i.sendRequest(o.DocumentColorRequest.type,r,t).then(e=>t.isCancellationRequested?null:this._client.protocol2CodeConverter.asColorInformations(e,t),e=>i.handleFailedRequest(o.DocumentColorRequest.type,t,e,null))},n=i.middleware;return n.provideDocumentColors?n.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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.ImplementationRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.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,n=(e,t,i)=>r.sendRequest(o.ImplementationRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDefinitionResult(e,i),e=>r.handleFailedRequest(o.ImplementationRequest.type,i,e,null)),s=r.middleware;return s.provideImplementation?s.provideImplementation(e,t,i,n):n(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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.TypeDefinitionRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.ensure)(e,"textDocument"),"typeDefinition").dynamicRegistration=!0;let t=(0,n.ensure)((0,n.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,n=(e,t,i)=>r.sendRequest(o.TypeDefinitionRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDefinitionResult(e,i),e=>r.handleFailedRequest(o.TypeDefinitionRequest.type,i,e,null)),s=r.middleware;return s.provideTypeDefinition?s.provideTypeDefinition(e,t,i,n):n(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),o=e.r(663544),n=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 n.DidChangeWorkspaceFoldersNotification.type}fillInitializeParams(e){let t=o.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(n.WorkspaceFoldersRequest.type,e=>{let t=()=>{let e=o.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 ${n.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(n.DidChangeWorkspaceFoldersNotification.type,i)}register(e){let t=e.id,i=this._client,r=o.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 ${n.DidChangeWorkspaceFoldersNotification.type.method} failed`,e)})});this._listeners.set(t,r),this.sendInitialEvent(o.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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.FoldingRangeRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.ensure)(e,"textDocument"),"foldingRange");t.dynamicRegistration=!0,t.rangeLimit=5e3,t.lineFoldingOnly=!0,t.foldingRangeKind={valueSet:[o.FoldingRangeKind.Comment,o.FoldingRangeKind.Imports,o.FoldingRangeKind.Region]},t.foldingRange={collapsedText:!1},(0,n.ensure)((0,n.ensure)(e,"workspace"),"foldingRange").refreshSupport=!0}initialize(e,t){this._client.onRequest(o.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,n={onDidChangeFoldingRanges:i.event,provideFoldingRanges:(e,t,i)=>{let r=this._client,n=(e,t,i)=>{let n={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e)};return r.sendRequest(o.FoldingRangeRequest.type,n,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asFoldingRanges(e,i),e=>r.handleFailedRequest(o.FoldingRangeRequest.type,i,e,null))},s=r.middleware;return s.provideFoldingRanges?s.provideFoldingRanges(e,t,i,n):n(e,t,i)}};return[r.languages.registerFoldingRangeProvider(this._client.protocol2CodeConverter.asDocumentSelector(t),n),{provider:n,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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.DeclarationRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.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,n=(e,t,i)=>r.sendRequest(o.DeclarationRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asDeclarationResult(e,i),e=>r.handleFailedRequest(o.DeclarationRequest.type,i,e,null)),s=r.middleware;return s.provideDeclaration?s.provideDeclaration(e,t,i,n):n(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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.SelectionRangeRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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,n=async(e,t,i)=>{let n={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),positions:r.code2ProtocolConverter.asPositionsSync(t,i)};return r.sendRequest(o.SelectionRangeRequest.type,n,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asSelectionRanges(e,i),e=>r.handleFailedRequest(o.SelectionRangeRequest.type,i,e,null))},s=r.middleware;return s.provideSelectionRanges?s.provideSelectionRanges(e,t,i,n):n(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),o=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 o.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),o=e.r(441296),n=e.r(165969);class s{constructor(e){this.client=e,this.middleware=e.middleware}prepareCallHierarchy(e,t,i){let r=this.client,n=this.middleware,s=(e,t,i)=>{let n=r.code2ProtocolConverter.asTextDocumentPositionParams(e,t);return r.sendRequest(o.CallHierarchyPrepareRequest.type,n,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asCallHierarchyItems(e,i),e=>r.handleFailedRequest(o.CallHierarchyPrepareRequest.type,i,e,null))};return n.prepareCallHierarchy?n.prepareCallHierarchy(e,t,i,s):s(e,t,i)}provideCallHierarchyIncomingCalls(e,t){let i=this.client,r=this.middleware,n=(e,t)=>{let r={item:i.code2ProtocolConverter.asCallHierarchyItem(e)};return i.sendRequest(o.CallHierarchyIncomingCallsRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asCallHierarchyIncomingCalls(e,t),e=>i.handleFailedRequest(o.CallHierarchyIncomingCallsRequest.type,t,e,null))};return r.provideCallHierarchyIncomingCalls?r.provideCallHierarchyIncomingCalls(e,t,n):n(e,t)}provideCallHierarchyOutgoingCalls(e,t){let i=this.client,r=this.middleware,n=(e,t)=>{let r={item:i.code2ProtocolConverter.asCallHierarchyItem(e)};return i.sendRequest(o.CallHierarchyOutgoingCallsRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asCallHierarchyOutgoingCalls(e,t),e=>i.handleFailedRequest(o.CallHierarchyOutgoingCallsRequest.type,t,e,null))};return r.provideCallHierarchyOutgoingCalls?r.provideCallHierarchyOutgoingCalls(e,t,n):n(e,t)}}class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.CallHierarchyPrepareRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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),o=e.r(441296),n=e.r(165969),s=e.r(217405);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.SemanticTokensRegistrationType.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.ensure)(e,"textDocument"),"semanticTokens");t.dynamicRegistration=!0,t.tokenTypes=[o.SemanticTokenTypes.namespace,o.SemanticTokenTypes.type,o.SemanticTokenTypes.class,o.SemanticTokenTypes.enum,o.SemanticTokenTypes.interface,o.SemanticTokenTypes.struct,o.SemanticTokenTypes.typeParameter,o.SemanticTokenTypes.parameter,o.SemanticTokenTypes.variable,o.SemanticTokenTypes.property,o.SemanticTokenTypes.enumMember,o.SemanticTokenTypes.event,o.SemanticTokenTypes.function,o.SemanticTokenTypes.method,o.SemanticTokenTypes.macro,o.SemanticTokenTypes.keyword,o.SemanticTokenTypes.modifier,o.SemanticTokenTypes.comment,o.SemanticTokenTypes.string,o.SemanticTokenTypes.number,o.SemanticTokenTypes.regexp,o.SemanticTokenTypes.operator,o.SemanticTokenTypes.decorator],t.tokenModifiers=[o.SemanticTokenModifiers.declaration,o.SemanticTokenModifiers.definition,o.SemanticTokenModifiers.readonly,o.SemanticTokenModifiers.static,o.SemanticTokenModifiers.deprecated,o.SemanticTokenModifiers.abstract,o.SemanticTokenModifiers.async,o.SemanticTokenModifiers.modification,o.SemanticTokenModifiers.documentation,o.SemanticTokenModifiers.defaultLibrary],t.formats=[o.TokenFormat.Relative],t.requests={range:!0,full:{delta:!0}},t.multilineTokenSupport=!1,t.overlappingTokenSupport=!1,t.serverCancelSupport=!0,t.augmentsSyntaxTokens=!0,(0,n.ensure)((0,n.ensure)(e,"workspace"),"semanticTokens").refreshSupport=!0}initialize(e,t){this._client.onRequest(o.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,n=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,n=(e,t)=>{let r={textDocument:i.code2ProtocolConverter.asTextDocumentIdentifier(e)};return i.sendRequest(o.SemanticTokensRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asSemanticTokens(e,t),e=>i.handleFailedRequest(o.SemanticTokensRequest.type,t,e,null))};return r.provideDocumentSemanticTokens?r.provideDocumentSemanticTokens(e,t,n):n(e,t)},provideDocumentSemanticTokensEdits:n?(e,t,i)=>{let r=this._client,n=r.middleware,s=(e,t,i)=>{let n={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),previousResultId:t};return r.sendRequest(o.SemanticTokensDeltaRequest.type,n,i).then(async e=>i.isCancellationRequested?null:o.SemanticTokens.is(e)?await r.protocol2CodeConverter.asSemanticTokens(e,i):await r.protocol2CodeConverter.asSemanticTokensEdits(e,i),e=>r.handleFailedRequest(o.SemanticTokensDeltaRequest.type,i,e,null))};return n.provideDocumentSemanticTokensEdits?n.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,n=r.middleware,s=(e,t,i)=>{let n={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),range:r.code2ProtocolConverter.asRange(t)};return r.sendRequest(o.SemanticTokensRangeRequest.type,n,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asSemanticTokens(e,i),e=>r.handleFailedRequest(o.SemanticTokensRangeRequest.type,i,e,null))};return n.provideDocumentRangeSemanticTokens?n.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),o=e.r(564461),n=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,o){this._client=e,this._event=t,this._registrationType=i,this._clientCapability=r,this._serverCapability=o,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 o.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),o=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(o)){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===n.FileOperationPatternKind.file||e===r.FileType.Directory&&t.kind===n.FileOperationPatternKind.folder)return!0}else if(t.kind===n.FileOperationPatternKind.folder&&await l.getFileType(i)===r.FileType.Directory&&t.matcher.match(`${o}/`))return!0}return!1})),o=e.files.filter((e,t)=>i[t]);return{...e,files:o}}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,o,n,s){super(e,t,i,r,o),this._notificationType=i,this._accessUri=n,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,n.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,n.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,n.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,o,n,s){super(e,t,i,r,o),this._requestType=i,this._accessUri=n,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,n.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,n.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,n.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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.LinkedEditingRangeRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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,n=(e,t,i)=>r.sendRequest(o.LinkedEditingRangeRequest.type,r.code2ProtocolConverter.asTextDocumentPositionParams(e,t),i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asLinkedEditingRanges(e,i),e=>r.handleFailedRequest(o.LinkedEditingRangeRequest.type,i,e,null)),s=r.middleware;return s.provideLinkedEditingRange?s.provideLinkedEditingRange(e,t,i,n):n(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),o=e.r(441296),n=e.r(165969);class s{constructor(e){this.client=e,this.middleware=e.middleware}prepareTypeHierarchy(e,t,i){let r=this.client,n=this.middleware,s=(e,t,i)=>{let n=r.code2ProtocolConverter.asTextDocumentPositionParams(e,t);return r.sendRequest(o.TypeHierarchyPrepareRequest.type,n,i).then(e=>i.isCancellationRequested?null:r.protocol2CodeConverter.asTypeHierarchyItems(e,i),e=>r.handleFailedRequest(o.TypeHierarchyPrepareRequest.type,i,e,null))};return n.prepareTypeHierarchy?n.prepareTypeHierarchy(e,t,i,s):s(e,t,i)}provideTypeHierarchySupertypes(e,t){let i=this.client,r=this.middleware,n=(e,t)=>{let r={item:i.code2ProtocolConverter.asTypeHierarchyItem(e)};return i.sendRequest(o.TypeHierarchySupertypesRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asTypeHierarchyItems(e,t),e=>i.handleFailedRequest(o.TypeHierarchySupertypesRequest.type,t,e,null))};return r.provideTypeHierarchySupertypes?r.provideTypeHierarchySupertypes(e,t,n):n(e,t)}provideTypeHierarchySubtypes(e,t){let i=this.client,r=this.middleware,n=(e,t)=>{let r={item:i.code2ProtocolConverter.asTypeHierarchyItem(e)};return i.sendRequest(o.TypeHierarchySubtypesRequest.type,r,t).then(e=>t.isCancellationRequested?null:i.protocol2CodeConverter.asTypeHierarchyItems(e,t),e=>i.handleFailedRequest(o.TypeHierarchySubtypesRequest.type,t,e,null))};return r.provideTypeHierarchySubtypes?r.provideTypeHierarchySubtypes(e,t,n):n(e,t)}}class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.TypeHierarchyPrepareRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.InlineValueRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.ensure)(e,"textDocument"),"inlineValue").dynamicRegistration=!0,(0,n.ensure)((0,n.ensure)(e,"workspace"),"inlineValue").refreshSupport=!0}initialize(e,t){this._client.onRequest(o.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,n={onDidChangeInlineValues:i.event,provideInlineValues:(e,t,i,r)=>{let n=this._client,s=(e,t,i,r)=>{let s={textDocument:n.code2ProtocolConverter.asTextDocumentIdentifier(e),range:n.code2ProtocolConverter.asRange(t),context:n.code2ProtocolConverter.asInlineValueContext(i)};return n.sendRequest(o.InlineValueRequest.type,s,r).then(e=>r.isCancellationRequested?null:n.protocol2CodeConverter.asInlineValues(e,r),e=>n.handleFailedRequest(o.InlineValueRequest.type,r,e,null))},a=n.middleware;return a.provideInlineValues?a.provideInlineValues(e,t,i,r,s):s(e,t,i,r)}};return[this.registerProvider(t,n),{provider:n,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),o=e.r(441296),n=e.r(165969);class s extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.InlayHintRequest.type)}fillClientCapabilities(e){let t=(0,n.ensure)((0,n.ensure)(e,"textDocument"),"inlayHint");t.dynamicRegistration=!0,t.resolveSupport={properties:["tooltip","textEdits","label.tooltip","label.location","label.command"]},(0,n.ensure)((0,n.ensure)(e,"workspace"),"inlayHint").refreshSupport=!0}initialize(e,t){this._client.onRequest(o.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,n={onDidChangeInlayHints:i.event,provideInlayHints:(e,t,i)=>{let r=this._client,n=async(e,t,i)=>{let n={textDocument:r.code2ProtocolConverter.asTextDocumentIdentifier(e),range:r.code2ProtocolConverter.asRange(t)};try{let e=await r.sendRequest(o.InlayHintRequest.type,n,i);if(i.isCancellationRequested)return null;return r.protocol2CodeConverter.asInlayHints(e,i)}catch(e){return r.handleFailedRequest(o.InlayHintRequest.type,i,e,null)}},s=r.middleware;return s.provideInlayHints?s.provideInlayHints(e,t,i,n):n(e,t,i)}};return n.resolveInlayHint=!0===e.resolveProvider?(e,t)=>{let i=this._client,r=async(e,t)=>{try{let r=await i.sendRequest(o.InlayHintResolveRequest.type,i.code2ProtocolConverter.asInlayHint(e),t);if(t.isCancellationRequested)return null;let n=i.protocol2CodeConverter.asInlayHint(r,t);return t.isCancellationRequested?null:n}catch(e){return i.handleFailedRequest(o.InlayHintResolveRequest.type,t,e,null)}},n=i.middleware;return n.resolveInlayHint?n.resolveInlayHint(e,t,r):r(e,t)}:void 0,[this.registerProvider(t,n),{provider:n,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),o=e.r(441296),n=e.r(165969),s=e.r(413807);class a extends n.TextDocumentLanguageFeature{constructor(e){super(e,o.InlineCompletionRequest.type)}fillClientCapabilities(e){(0,n.ensure)((0,n.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 n=this._client,s=this._client.middleware,a=(e,t,i,r)=>n.sendRequest(o.InlineCompletionRequest.type,n.code2ProtocolConverter.asInlineCompletionParams(e,t,i),r).then(e=>r.isCancellationRequested?null:n.protocol2CodeConverter.asInlineCompletionResult(e,r),e=>n.handleFailedRequest(o.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,o,n,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),eo=e.r(590974),en=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=o||(i.ErrorAction=o={}))[g.Continue=1]="Continue",g[g.Shutdown=2]="Shutdown",(p=n||(i.CloseAction=n={}))[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:o.Continue}:{action:o.Shutdown}}closed(){return(this.restarts.push(Date.now()),this.restarts.length<=this.maxRestartCount)?{action:n.Restart}:this.restarts[this.restarts.length-1]-this.restarts[0]<=18e4?{action:n.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:n.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 o={isTrusted:!1,supportHtml:!1};void 0!==(i=i||{}).markdown&&(o.isTrusted=l.sanitizeIsTrusted(i.markdown.isTrusted),o.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:o,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 o,n;return 1===t.length?C.CancellationToken.is(t[0])?n=t[0]:o=t[0]:2===t.length&&(o=t[0],n=t[1]),r(e,o,n,(e,t,r)=>{let o=[];return void 0!==t&&o.push(t),void 0!==r&&o.push(r),i.sendRequest(e,...o)})}}onRequest(e,t){let i,r="string"==typeof e?e:e.method;this._requestHandlers.set(r,t);let o=this.activeConnection();return void 0!==o?(this._requestDisposables.set(r,o.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 o=await this.$start();r&&await this.sendPendingFullTextDocumentChanges(o),void 0!==i&&this._pendingOpenNotifications.delete(i);let n=this._clientOptions.middleware?.sendNotification;return n?n(e,o.sendNotification.bind(o),t):o.sendNotification(e,t)}onNotification(e,t){let i,r="string"==typeof e?e:e.method;this._notificationHandlers.set(r,t);let o=this.activeConnection();return void 0!==o?(this._notificationDisposables.set(r,o.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 o=this.activeConnection(),n=this._clientOptions.middleware?.handleWorkDoneProgress,s=C.WorkDoneProgress.is(e)&&void 0!==n?e=>{n(t,e,()=>i(e))}:i;return void 0!==o?(this._progressDisposables.set(t,o.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,o,n){this.outputChannel.appendLine(`[${i.padEnd(5)} - ${new Date().toLocaleTimeString()}] ${r}`),null!=o&&this.outputChannel.appendLine(this.data2String(o)),("force"===n||n&&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],o={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(o),!this._clientOptions.progressOnInitialization)return this.doInitialize(e,o);{let t=D.generateUuid(),i=new E.ProgressPart(e,t);o.workDoneToken=t;try{let t=await this.doInitialize(e,o);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,o]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,o));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)}),o=(async e=>(await e.shutdown(),await e.exit(),e))(i);return this._onStop=Promise.race([r,o]).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,o;let n,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,o=this._clientOptions.connectionOptions,n=new eu,(s=(0,C.createProtocolConnection)(e,t,n,o)).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:n.DoNotRestart};if(this.$state!==c.Stopping)try{e=await this._clientOptions.errorHandler.closed()}catch(e){}this._connection=void 0,e.action===n.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===n.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===o.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,o=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")),o=C.TraceFormat.fromString(i.get("trace.server.format","text")))}this._trace=r,this._traceFormat=o,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 eo.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 en.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 o=(0,k.ensure)(e,"general");for(let t of(o.staleRequestSupport={cancel:!0,retryOnContentModified:Array.from(ed.RequestsToCancelOnContentModified)},o.regularExpressions={engine:"ECMAScript",version:"ES2020"},o.markdown={parser:"marked",version:"1.1.0"},o.positionEncodings=["utf-16"],this._clientOptions.markdown.supportHtml&&(o.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 o=!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){o=!0;break}}}return o?Promise.resolve({applied:!1}):w.asPromise(y.workspace.applyEdit(i).then(e=>({applied:e})))}handleFailedRequest(e,t,i,r,o=!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,o),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 o=Object.getOwnPropertyDescriptor(t,i);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,o)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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,o(e.r(441296),i),o(e.r(165969),i);var n=e.r(986131);Object.defineProperty(i,"vsdiag",{enumerable:!0,get:function(){return n.vsdiag}}),Object.defineProperty(i,"DiagnosticPullMode",{enumerable:!0,get:function(){return n.DiagnosticPullMode}}),o(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 o=Object.getOwnPropertyDescriptor(t,i);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,o)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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 n=e.r(484871),s=e.r(443484);o(e.r(443484),i),o(e.r(484871),i);class a extends n.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 o(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=o,i.stringArray=function(e){return o(e)&&e.every(e=>r(e))}},257425,(e,t,i)=>{"use strict";var r,o,n,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);(n=r||(i.ErrorCodes=r={})).ParseError=-32700,n.InvalidRequest=-32600,n.MethodNotFound=-32601,n.InvalidParams=-32602,n.InternalError=-32603,n.jsonrpcReservedErrorRangeStart=-32099,n.serverErrorStart=-32099,n.MessageWriteError=-32099,n.MessageReadError=-32098,n.PendingResponseRejected=-32097,n.ConnectionInactive=-32096,n.ServerNotInitialized=-32002,n.UnknownErrorCode=-32001,n.jsonrpcReservedErrorRangeEnd=-32e3,n.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=o||(i.Message=o={})).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,o,n;Object.defineProperty(i,"__esModule",{value:!0}),i.LRUCache=i.LinkedMap=i.Touch=void 0,(n=o||(i.Touch=o={})).None=0,n.First=1,n.AsOld=n.First,n.Last=2,n.AsNew=n.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=o.None){let i=this._map.get(e);if(i)return t!==o.None&&this.touch(i,t),i.value}set(e,t,i=o.None){let r=this._map.get(e);if(r)r.value=t,i!==o.None&&this.touch(r,i);else{switch(r={key:e,value:t,next:void 0,previous:void 0},i){case o.None:this.addItemLast(r);break;case o.First:this.addItemFirst(r);break;case o.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===o.First||t===o.Last){if(t===o.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===o.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=o.AsNew){return super.get(e,t)}peek(e){return super.get(e,o.None)}set(e,t){return super.set(e,t,o.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 o(){if(void 0===r)throw Error("No runtime abstraction layer installed");return r}Object.defineProperty(i,"__esModule",{value:!0}),(o||(o={})).install=function(e){if(void 0===e)throw Error("No runtime abstraction layer provided");r=e},i.default=o},907260,(e,t,i)=>{"use strict";var r,o;let n;Object.defineProperty(i,"__esModule",{value:!0}),i.Emitter=i.Event=void 0;let s=e.r(540958);o=r||(i.Event=r={}),n={dispose(){}},o.None=function(){return n};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,o=this._callbacks.length;r<o;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 o=0,n=i.length;o<n;o++)try{t.push(i[o].apply(r[o],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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.CancellationTokenSource=i.CancellationToken=void 0;let n=e.r(540958),s=e.r(406346),a=e.r(907260);(o=r||(i.CancellationToken=r={})).None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:a.Event.None}),o.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:a.Event.None}),o.is=function(e){return e&&(e===o.None||e===o.Cancelled||s.boolean(e.isCancellationRequested)&&!!e.onCancellationRequested)};let l=Object.freeze(function(e,t){let i=(0,n.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.SharedArrayReceiverStrategy=i.SharedArraySenderStrategy=void 0;let n=e.r(686787);(o=r||(r={})).Continue=0,o.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 o=new Int32Array(i,0,1);Atomics.store(o,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 n.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.ReadableStreamMessageReader=i.AbstractMessageReader=i.MessageReader=void 0;let n=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,(o||(o={})).fromOptions=function(e){let t,i,r,o=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,o.set(i.name,i)),void 0!==e.contentDecoders)for(let t of e.contentDecoders)o.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,n.default)().applicationJson.decoder,s.set(r.name,r)),{charset:t,contentDecoder:i,contentDecoders:o,contentTypeDecoder:r,contentTypeDecoders:s}},i.ReadableStreamMessageReader=class extends c{constructor(e,t){super(),this.readable=e,this.options=o.fromOptions(t),this.buffer=(0,n.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,n.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,o;Object.defineProperty(i,"__esModule",{value:!0}),i.WriteableStreamMessageWriter=i.AbstractMessageWriter=i.MessageWriter=void 0;let n=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,(o||(o={})).fromOptions=function(e){return void 0===e||"string"==typeof e?{charset:e??"utf-8",contentTypeEncoder:(0,n.default)().applicationJson.encoder}:{charset:e.charset??"utf-8",contentEncoder:e.contentEncoder,contentTypeEncoder:e.contentTypeEncoder??(0,n.default)().applicationJson.encoder}},i.WriteableStreamMessageWriter=class extends c{constructor(e,t){super(),this.writable=e,this.options=o.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,o=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++}o+=e.byteLength,i++}if(4!==t)return;let n=this._read(o+r),s=new Map,a=this.toString(n,"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 o=i.substr(0,r),n=i.substr(r+1).trim();s.set(e?o.toLowerCase():o,n)}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 o=r.slice(0,e);t.set(o,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,o,n,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"),(o||(i.ProgressToken=o={})).is=function(e){return"string"==typeof e||"number"==typeof e},(n||(n={})).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 o(i,r,o){let n={jsonrpc:"2.0",id:e.id};i instanceof F.ResponseError?n.error=i.toJson():n.result=void 0===i?null:i,en(n,r,o),t.write(n).catch(()=>w.error("Sending response failed."))}function n(i,r,o){let n={jsonrpc:"2.0",id:e.id,error:i.toJson()};en(n,r,o),t.write(n).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: ${eo(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 n(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 n(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 n(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),o(t,e.method,h)},t=>{U.delete(a),t instanceof F.ResponseError?n(t,e.method,h):t&&L.string(t.message)?n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}):(U.delete(a),o(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},en(i,l,h),t.write(i).catch(()=>w.error("Sending response failed."))}}catch(t){U.delete(a),t instanceof F.ResponseError?o(t,e.method,h):t&&L.string(t.message)?n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed with message: ${t.message}`),e.method,h):n(new F.ResponseError(F.ErrorCodes.InternalError,`Request ${e.method} failed unexpectedly without providing any details.`),e.method,h)}}else n(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===n.type.method&&2===r.length&&o.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: ${eo(e.error.data)}
52
+
53
+ `:e.result?i=`Result: ${eo(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),o=P.get(r);if(F.Message.isRequest(o)){let n=g?.connectionStrategy,s=n&&n.cancelUndispatched?n.cancelUndispatched(o,Y):Y(o);if(s&&(void 0!==s.error||void 0!==s.result)){P.delete(r),U.delete(i),s.id=o.id,en(s,e.method,Date.now()),t.write(s).catch(()=>w.error("Sending response for canceled message failed."));return}}let n=U.get(i);if(void 0!==n){n.cancel(),es(e);return}A.add(i)}var i,o=P;F.Message.isRequest(e)?o.set(J(e.id),e):F.Message.isResponse(e)?o.set(null===(i=e.id)?"res-unknown-"+(++E).toString():"res-"+i.toString(),e):o.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 eo(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 en(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: ${eo(e.error.data)}
57
+
58
+ `:e.result?r=`Result: ${eo(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: ${eo(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,o;if(el(),L.string(e)){r=e;let t=i[0],n=0,s=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(n=1,s=t);let a=i.length,l=a-n;switch(l){case 0:o=void 0;break;case 1:o=eh(s,i[n]);break;default:if(s===F.ParameterStructures.byName)throw Error(`Received ${l} parameters for 'by Name' notification parameter structure.`);o=i.slice(n,a).map(e=>ec(e))}}else r=e.method,o=eg(e,i);let n={jsonrpc:"2.0",method:r,params:o};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&(e=n.params?`Params: ${eo(n.params)}
63
+
64
+ `:"No parameters provided.\n\n"),f.log(`Sending notification '${n.method}'.`,e)}else ea("send-notification",n);return t.write(n).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(n.type,{token:t,value:i}),onUnhandledProgress:B.event,sendRequest:(e,...i)=>{let r,o,n,s;if(el(),!X())throw Error("Call listen() first.");if(L.string(e)){r=e;let t=i[0],n=i[i.length-1],a=0,l=F.ParameterStructures.auto;F.ParameterStructures.is(t)&&(a=1,l=t);let c=i.length;$.CancellationToken.is(n)&&(c-=1,s=n);let d=c-a;switch(d){case 0:o=void 0;break;case 1:o=eh(l,i[a]);break;default:if(l===F.ParameterStructures.byName)throw Error(`Received ${d} parameters for 'by Name' request parameter structure.`);o=i.slice(a,c).map(e=>ec(e))}}else{r=e.method,o=eg(e,i);let t=e.numberOfParams;s=$.CancellationToken.is(i[t])?i[t]:void 0}let l=x++;s&&(n=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:o};if(W!==a.Off&&f)if(q===c.Text){let e;(W===a.Verbose||W===a.Compact)&&d.params&&(e=`Params: ${eo(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 o={method:r,timerStart:Date.now(),resolve:t=>{e(t),Q.sender.cleanup(l),n?.dispose()},reject:e=>{i(e),Q.sender.cleanup(l),n?.dispose()}};try{I.set(l,o),await t.write(d)}catch(e){throw I.delete(l),o.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,o=c.Text;void 0!==i&&(L.boolean(i)?r=i:(r=i.sendNotification||!1,o=i.traceFormat||c.Text)),W=e,q=o,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(n.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 o=e.r(869991);Object.defineProperty(i,"LinkedMap",{enumerable:!0,get:function(){return o.LinkedMap}}),Object.defineProperty(i,"LRUCache",{enumerable:!0,get:function(){return o.LRUCache}}),Object.defineProperty(i,"Touch",{enumerable:!0,get:function(){return o.Touch}});let n=e.r(763636);Object.defineProperty(i,"Disposable",{enumerable:!0,get:function(){return n.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 o extends r.AbstractMessageBuffer{constructor(e="utf-8"){super(e),this.asciiDecoder=new TextDecoder("ascii")}emptyBuffer(){return o.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)}}o.emptyBuffer=new Uint8Array(0);class n{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 o(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 n(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 o=Object.getOwnPropertyDescriptor(t,i);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,o)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),o=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 n=e.r(412392);o(e.r(412392),i);class s extends n.AbstractMessageReader{constructor(e){super(),this._onData=new n.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 n.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=n.NullLogger),n.ConnectionStrategy.is(r)&&(r={connectionStrategy:r}),(0,n.createMessageConnection)(e,t,i,r)}},611219,e=>{"use strict";let t,i,r,o;var n,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=e.i(344180),W=e.i(887836),q=e.i(764556);e.i(462506);let j=new Map;function z(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 K=e.i(60293),V=e.i(360112);let B=[{id:"copyPosition",label:"复制代码位置",contextMenuGroupId:"9_cutcopypaste",contextMenuOrder:10,run:(e,t)=>{let i=e.getModel(),r=e.getSelection();if(!i||!r)return;let o=z(i.uri.path,t),n=`${o||i.uri.path}:${r.startLineNumber}:${r.endLineNumber}`;navigator.clipboard.writeText(n).then(()=>{V.toast.success(`已复制: ${n}`)})}},{id:"addToFavorites",label:"添加到代码收藏",contextMenuGroupId:"9_cutcopypaste",contextMenuOrder:11,run:(e,t)=>{let i=e.getModel(),r=e.getSelection();if(!i||!r)return;let o=r.startLineNumber,n=r.startColumn,s=r.endLineNumber,a=r.endColumn,l=z(i.uri.path,t);if(!l)return;let c={startLineNumber:o,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>o?`${o}-${s}`:`${o}`;K.useCodeFavoritesStore.getState().setPendingFavorite({workspaceId:t.workspaceId,path:l,line:o,column:n,endLine:s,endColumn:a,label:`${u}:${h}`,snippet:d})}}];for(let e of B)j.set(e.id,e);e.i(340642);var G=e.i(564822),Q=e.i(691223),J=e.i(972846),Y=e.i(194228);let X=(0,e.i(433721).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 Z=e.i(720247),ee=e.i(775712),et=e.i(67013),ei=e.i(361031),er=e.i(940361),eo=e.i(209988),en=e.i(260218),es=e.i(244073),ea=e.i(359209),el=e.i(465458);let ec=({transform:e})=>({...e,y:0});function ed({file:e,isActive:t,boundDirs:i,commitDiffs:r,onClose:o,onClick:n,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}=(0,ee.useSortable)({id:e.path}),S={transform:et.CSS.Transform.toString(_),transition:y};return(0,U.jsxs)(er.ContextMenu,{children:[(0,U.jsx)(er.ContextMenuTrigger,{children:(0,U.jsxs)("div",{ref:f,style:S,...p,...m,className:(0,el.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:n,children:[e.pinned&&(0,U.jsx)(X,{size:10,className:"text-primary/70 shrink-0 -ml-1 mr-0.5"}),(0,Q.isCommitDiffPath)(e.path)?(0,U.jsx)(Y.GitCommitHorizontal,{size:14,className:"text-blue-500 shrink-0"}):(0,U.jsx)(ea.FileIconImg,{name:e.name}),e.modified&&!e.pinned&&(0,U.jsx)("span",{className:"size-1.5 rounded-full bg-orange-400 shrink-0"}),(0,U.jsx)("span",{className:"truncate max-w-32",children:(0,Q.isCommitDiffPath)(e.path)&&r[(0,Q.getCommitHashFromPath)(e.path)]?.message?.split("\n")[0]?.slice(0,30)||e.name}),(0,U.jsx)("button",{className:"ml-1 hover:bg-accent rounded p-0.5 cursor-pointer",onClick:t=>o(t,e),children:(0,U.jsx)(J.X,{className:"size-3"})})]})}),(0,U.jsxs)(er.ContextMenuContent,{children:[(0,U.jsx)(er.ContextMenuItem,{onClick:()=>l(e.path),children:g("revealInTree")}),(0,U.jsx)(er.ContextMenuItem,{onClick:()=>a(e.path),children:g("revealInFinder")}),(0,U.jsx)(er.ContextMenuSeparator,{}),(0,U.jsx)(er.ContextMenuItem,{onClick:()=>{var t;return s((t=e.path,0===i.length?t:i[0].replace(/\/+$/,"")+"/"+t))},children:g("copyFilePath")}),(0,U.jsx)(er.ContextMenuItem,{onClick:()=>s(e.path),children:g("copyRelativePath")}),(0,U.jsx)(er.ContextMenuSeparator,{}),(0,U.jsx)(er.ContextMenuItem,{onClick:()=>c(e.path),children:g(e.pinned?"unpin":"pin")}),(0,U.jsx)(er.ContextMenuItem,{onClick:()=>d(e.path),children:g("closeOthers")}),(0,U.jsx)(er.ContextMenuItem,{onClick:()=>u(e.path),children:g("closeLeft")}),(0,U.jsx)(er.ContextMenuItem,{onClick:()=>h(e.path),children:g("closeRight")})]})]})}function eu({workspaceId:e}){let{openFiles:t,activeFilePath:i,setActiveFile:r,closeFile:o,saveFile:n,setRevealPath:s,commitDiffs:a,togglePin:l,reorderFiles:c,closeOthers:d,closeToLeft:u,closeToRight:h}=(0,Q.useEditorStore)(),g=(0,ei.useWorkspaceStore)(e=>e.workspaces).find(t=>t.id===e),p=g?.boundDirs??[],m=(0,es.useTranslations)("editor"),[f,_]=(0,q.useState)(null),y=(0,Z.useSensors)((0,Z.useSensor)(Z.PointerSensor,{activationConstraint:{distance:5}}),(0,Z.useSensor)(Z.KeyboardSensor)),C=async e=>{await navigator.clipboard.writeText(e),V.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):o(e,i.path)},w=async()=>{f&&(await n(e,f.path),o(e,f.path),_(null))},x=(0,q.useCallback)(t=>{let{active:i,over:r}=t;if(!r||i.id===r.id)return;let o=Q.useEditorStore.getState().openFiles,n=o.findIndex(e=>e.path===String(i.id)),s=o.findIndex(e=>e.path===String(r.id));if(-1===n||-1===s)return;let a=(0,ee.arrayMove)(o,n,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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(Z.DndContext,{sensors:y,collisionDetection:Z.closestCenter,modifiers:[ec],onDragEnd:x,children:(0,U.jsx)(ee.SortableContext,{items:t.map(e=>e.path),strategy:ee.horizontalListSortingStrategy,children:(0,U.jsx)("div",{className:"flex items-center border-b bg-muted/30 overflow-x-auto",children:t.map(t=>(0,U.jsx)(ed,{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,U.jsx)(eo.Dialog,{open:!!f,onOpenChange:e=>!e&&_(null),children:(0,U.jsxs)(eo.DialogContent,{children:[(0,U.jsxs)(eo.DialogHeader,{children:[(0,U.jsx)(eo.DialogTitle,{children:m("saveChangesTitle")}),(0,U.jsx)(eo.DialogDescription,{children:m("saveChangesDesc",{name:f?.name??""})})]}),(0,U.jsxs)(eo.DialogFooter,{children:[(0,U.jsx)(en.Button,{variant:"outline",onClick:()=>_(null),children:m("cancel")}),(0,U.jsx)(en.Button,{variant:"destructive",onClick:()=>{f&&(o(e,f.path),_(null))},children:m("discardChanges")}),(0,U.jsx)(en.Button,{onClick:w,children:m("save")})]})]})})]})}var eh=e.i(917955);function eg({editorRef:e,workspaceId:t,isReadOnly:i,onToggleReadOnly:r,isFullscreen:o,onToggleFullscreen:n,wordWrap:s,onToggleWordWrap:a,minimap:l,onToggleMinimap:c}){let{saveFile:d,activeFilePath:u}=(0,Q.useEditorStore)(),h=(0,es.useTranslations)("editor"),g=t=>{requestAnimationFrame(()=>{let i=e.current;i&&(i.focus(),i.getAction(t)?.run())})};return(0,U.jsxs)("div",{className:"flex items-center h-7 border-b bg-background shrink-0",children:[(0,U.jsxs)(eh.DropdownMenu,{children:[(0,U.jsx)(eh.DropdownMenuTrigger,{className:"px-3 h-full text-xs hover:bg-accent outline-none cursor-default",children:h("menuFile")}),(0,U.jsx)(eh.DropdownMenuContent,{align:"start",sideOffset:0,children:(0,U.jsxs)(eh.DropdownMenuItem,{onClick:()=>u&&d(t,u),children:[h("menuSave"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌘S"})]})})]}),(0,U.jsxs)(eh.DropdownMenu,{children:[(0,U.jsx)(eh.DropdownMenuTrigger,{className:"px-3 h-full text-xs hover:bg-accent outline-none cursor-default",children:h("menuEdit")}),(0,U.jsxs)(eh.DropdownMenuContent,{align:"start",sideOffset:0,children:[(0,U.jsxs)(eh.DropdownMenuItem,{onClick:()=>g("undo"),children:[h("menuUndo"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌘Z"})]}),(0,U.jsxs)(eh.DropdownMenuItem,{onClick:()=>g("redo"),children:[h("menuRedo"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⇧⌘Z"})]}),(0,U.jsx)(eh.DropdownMenuSeparator,{}),(0,U.jsxs)(eh.DropdownMenuItem,{onClick:()=>g("editor.action.clipboardCutAction"),children:[h("menuCut"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌘X"})]}),(0,U.jsxs)(eh.DropdownMenuItem,{onClick:()=>g("editor.action.clipboardCopyAction"),children:[h("menuCopy"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌘C"})]}),(0,U.jsxs)(eh.DropdownMenuItem,{onClick:()=>g("editor.action.clipboardPasteAction"),children:[h("menuPaste"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌘V"})]}),(0,U.jsx)(eh.DropdownMenuSeparator,{}),(0,U.jsxs)(eh.DropdownMenuItem,{onClick:()=>g("actions.find"),children:[h("menuFind"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌘F"})]}),(0,U.jsxs)(eh.DropdownMenuItem,{disabled:i,onClick:()=>g("editor.action.startFindReplaceAction"),children:[h("menuReplace"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌥⌘F"})]})]})]}),(0,U.jsxs)(eh.DropdownMenu,{children:[(0,U.jsx)(eh.DropdownMenuTrigger,{className:"px-3 h-full text-xs hover:bg-accent outline-none cursor-default",children:h("menuView")}),(0,U.jsxs)(eh.DropdownMenuContent,{align:"start",sideOffset:0,children:[(0,U.jsxs)(eh.DropdownMenuItem,{onClick:n,children:[h(o?"exitFullscreen":"menuFullscreen"),(0,U.jsx)(eh.DropdownMenuShortcut,{children:"⌃⌘F"})]}),(0,U.jsx)(eh.DropdownMenuSeparator,{}),(0,U.jsx)(eh.DropdownMenuItem,{onClick:a,children:h(s?"disableWordWrap":"enableWordWrap")}),(0,U.jsx)(eh.DropdownMenuItem,{onClick:c,children:h(l?"disableMinimap":"enableMinimap")})]})]}),(0,U.jsx)("div",{className:"flex-1"}),(0,U.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 cursor-pointer",title:h(i?"enableEdit":"disableEdit"),children:i?"🔒":"✏️"})]})}var ep=e.i(950396),em=e.i(650654),ef=e.i(992764),ev=e.i(381253),e_=e.i(613812);function ey({diffs:e,message:t}){let[i,r]=(0,q.useState)(new Set);return 0===e.length?(0,U.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"No changes"}):(0,U.jsxs)("div",{className:"h-full overflow-auto",children:[(0,U.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,U.jsxs)("div",{className:"border-b last:border-b-0",children:[(0,U.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 cursor-pointer",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,U.jsx)(ef.ChevronRight,{size:13}):(0,U.jsx)(em.ChevronDown,{size:13}),(0,U.jsx)(ev.FileCode,{size:13,className:"text-muted-foreground shrink-0"}),(0,U.jsx)("span",{className:"truncate",children:e.path})]}),!t&&(0,U.jsx)("div",{className:"h-64",children:(0,U.jsx)(e_.DiffViewer,{oldContent:e.oldContent,newContent:e.newContent,path:e.path,isBinary:e.isBinary})})]},e.path)})]})}var eC=e.i(303867),eS=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 eb=e.i(680590);class ew{constructor(e,t,i){this._onDidChange=new eb.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 ex={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}},eD={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},eE=new ew("css",ex,eD),ek=new ew("scss",ex,eD),eT=new ew("less",ex,eD);function eR(){return e.A(771485)}eb.languages.onLanguage("less",()=>{eR().then(e=>e.setupMode(eT))}),eb.languages.onLanguage("scss",()=>{eR().then(e=>e.setupMode(ek))}),eb.languages.onLanguage("css",()=>{eR().then(e=>e.setupMode(eE))}),e.s(["cssDefaults",0,eE,"lessDefaults",0,eT,"scssDefaults",0,ek],312705);var eP=e.i(312705);class eI{constructor(e,t,i){this._onDidChange=new eb.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 eA={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 eM(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===eL,documentFormattingEdits:e===eL,documentRangeFormattingEdits:e===eL}}let eL="html",eF="handlebars",eO="razor",eN=ej(eL,eA,eM(eL)),e$=eN.defaults,eH=ej(eF,eA,eM(eF)),eU=eH.defaults,eW=ej(eO,eA,eM(eO)),eq=eW.defaults;function ej(t,i=eA,r=eM(t)){let o,n=new eI(t,i,r),s=eb.languages.onLanguage(t,async()=>{o=(await e.A(918487)).setupMode(n)});return{defaults:n,dispose(){s.dispose(),o?.dispose(),o=void 0}}}e.s(["handlebarDefaults",0,eU,"handlebarLanguageService",0,eH,"htmlDefaults",0,e$,"htmlLanguageService",0,eN,"razorDefaults",0,eq,"razorLanguageService",0,eW,"registerHTMLLanguageService",0,ej],994073);var ez=e.i(994073);let eK=new class{constructor(e,t,i){this._onDidChange=new eb.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 eV(){return e.A(134924)}eb.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),eb.languages.onLanguage("json",()=>{eV().then(e=>e.setupMode(eK))}),e.s(["getWorker",0,()=>eV().then(e=>e.getWorker()),"jsonDefaults",0,eK],632514);var eB=e.i(632514),eG=e.i(551959);let eQ={},eJ={};class eY{static getOrCreate(e){return eJ[e]||(eJ[e]=new eY(e)),eJ[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,eQ[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function eX(e){let t=e.id;eQ[t]=e,eb.languages.register(e);let i=eY.getOrCreate(t);eb.languages.registerTokensProviderFactory(t,{create:async()=>(await i.load()).language}),eb.languages.onLanguageEncountered(t,async()=>{let e=await i.load();eb.languages.setLanguageConfiguration(t,e.conf)})}eX({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>e.A(635811)}),eX({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>e.A(264749)}),eX({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>e.A(317605)}),eX({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>e.A(704590)}),eX({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>e.A(153742)}),eX({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>e.A(629448)}),eX({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>e.A(124011)}),eX({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>e.A(331538)}),eX({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>e.A(940085)}),eX({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>e.A(940085)}),eX({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>e.A(158993)}),eX({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>e.A(189140)}),eX({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>e.A(12065)}),eX({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>e.A(546118)}),eX({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>e.A(468355)}),eX({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>e.A(292453)}),eX({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>e.A(699591)}),eX({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>e.A(357037)}),eX({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>e.A(766246)}),eX({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>e.A(301403)}),eX({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>e.A(806910).then(e=>e.TagAutoInterpolationDollar)}),eX({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>e.A(806910).then(e=>e.TagAngleInterpolationDollar)}),eX({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>e.A(806910).then(e=>e.TagBracketInterpolationDollar)}),eX({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>e.A(806910).then(e=>e.TagAngleInterpolationBracket)}),eX({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>e.A(806910).then(e=>e.TagBracketInterpolationBracket)}),eX({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>e.A(806910).then(e=>e.TagAutoInterpolationDollar)}),eX({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>e.A(806910).then(e=>e.TagAutoInterpolationBracket)}),eX({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>e.A(961253)}),eX({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>e.A(264559)}),eX({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>e.A(30518)}),eX({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>e.A(768474)}),eX({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)}),eX({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>e.A(524721)}),eX({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>e.A(365570)}),eX({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>e.A(787804)}),eX({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>e.A(979480)}),eX({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>e.A(850064)}),eX({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>e.A(236120)}),eX({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>e.A(769302)}),eX({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>e.A(511259)}),eX({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>e.A(778189)}),eX({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>e.A(391583)}),eX({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>e.A(4206)}),eX({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>e.A(816552)}),eX({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>e.A(718384)}),eX({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>e.A(284913)}),eX({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>e.A(581714)}),eX({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>e.A(261034)}),eX({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>e.A(93611)}),eX({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>e.A(862727)}),eX({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>e.A(697377)}),eX({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>e.A(347750)}),eX({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>e.A(461792)}),eX({id:"pla",extensions:[".pla"],loader:()=>e.A(84791)}),eX({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>e.A(590375)}),eX({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>e.A(146984)}),eX({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>e.A(64443)}),eX({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>e.A(402493)}),eX({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>e.A(294884)}),eX({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>e.A(445468)}),eX({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>e.A(250392)}),eX({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>e.A(35431)}),eX({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>e.A(185498)}),eX({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>e.A(288688)}),eX({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>e.A(257081)}),eX({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>e.A(434615)}),eX({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>e.A(611325)}),eX({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>e.A(199304)}),eX({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>e.A(424725)}),eX({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)}),eX({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>e.A(440673)}),eX({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>e.A(647192)}),eX({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>e.A(30427)}),eX({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>e.A(509854)}),eX({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>e.A(641974)}),eX({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>e.A(66225)}),eX({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>e.A(252541)}),eX({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>e.A(769837)}),eX({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>e.A(215611)}),eX({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>e.A(316227)}),eX({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>e.A(316227)}),eX({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>e.A(240972)}),eX({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>e.A(216930)}),eX({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>e.A(755019)}),eX({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>e.A(717277)}),eX({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>e.A(308554)}),eX({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>e.A(943272)}),eX({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)}),eX({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>e.A(611958)});var eZ=Object.defineProperty,e0=(e,t,i)=>{let r;return(r="symbol"!=typeof t?t+"":t)in e?eZ(e,r,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[r]=i};(A||(A={})).create=function(e){return e};var e1=M||(M={});function e2(e){return -32099<=e&&e<=-32e3}e1.parseError=-32700,e1.invalidRequest=-32600,e1.methodNotFound=-32601,e1.invalidParams=-32602,e1.internalError=-32603,e1.isServerError=e2,e1.serverError=function(e){if(!e2(e))throw Error("Invalid range for a server error.");return e},e1.unexpectedServerError=-32e3,e1.isApplicationError=function(e){return!0},e1.applicationError=function(e){return e},e1.genericApplicationError=-320100;var e6=class{constructor(){e0(this,"listeners",new Set),e0(this,"event",e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},e3=class{constructor(e){e0(this,"_value"),e0(this,"eventEmitter"),this._value=e,this.eventEmitter=new e6}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 e4(e,t,i){return e instanceof Set?e.add(t):e.set(t,i),{dispose:()=>e.delete(t)}}var e5=class{constructor(){e0(this,"_state","none"),e0(this,"promise"),e0(this,"resolve",()=>{}),e0(this,"reject",()=>{}),this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}get state(){return this._state}},e8=(T=class{constructor(){e0(this,"_unprocessedMessages",[]),e0(this,"_messageListener"),e0(this,"id",T.id++),e0(this,"_state",new e3({state:"open"})),e0(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 e7(this,e??new e9)}},e0(T,"id",0),T),e7=class{constructor(e,t){e0(this,"baseStream"),e0(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()}`}},e9=class{log(e,t,i){console.log(`${"incoming"===t?"<-":"->"} [${e.toString()}] ${JSON.stringify(i)}`)}},te=class e{constructor(e){e0(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,o)=>i.handleRequest(e,t,r(o))}):void 0)})}},tt=class e{constructor(e,t,i){e0(this,"_stream"),e0(this,"_listener"),e0(this,"_logger"),e0(this,"_unprocessedResponses",new Map),e0(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 te(o=>{if(r)throw Error(`A channel to the stream ${t} was already constructed!`);return r=!0,new e(t,o,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:M.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:M.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()}};(n=L||(L={})).sAny=function(){return{deserializeFromJson:e=>({hasErrors:!1,value:e}),serializeToJson:e=>e}},n.sEmptyObject=function(){return{deserializeFromJson:e=>({hasErrors:!1,value:{}}),serializeToJson:e=>({})}},n.sVoidFromNull=function(){return{deserializeFromJson:e=>({hasErrors:!1,value:void 0}),serializeToJson:e=>null}};let ti=Symbol("OptionalMethodNotFound");var tr=class{contextualize(e){return new to(this,e)}},to=class extends tr{constructor(e,t){super(),e0(this,"underylingTypedChannel"),e0(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)))}},tn=class e extends tr{constructor(e,t={}){super(),e0(this,"channelCtor"),e0(this,"_requestSender"),e0(this,"_handler",new Map),e0(this,"_unknownNotificationHandler",new Set),e0(this,"_timeout"),e0(this,"sendExceptionDetails",!1),e0(this,"_logger"),e0(this,"listeningDeferred",new e5),e0(this,"onListening",this.listeningDeferred.promise),e0(this,"_requestDidErrorEventEmitter",new e6),e0(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(tt.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:M.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:M.invalidRequest,message:t,data:{method:e.method}}}}let o=r.requestType.paramsSerializer.deserializeFromJson(e.params);if(o.hasErrors){let t=`Got invalid params: ${o.errorMessage}`;return this._logger&&this._logger.debug({text:t,data:{requestObject:e,errorMessage:o.errorMessage}}),{error:{code:M.invalidParams,message:t,data:{errors:o.errorMessage}}}}{let n,s=o.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;n={error:{code:e.errorCode||M.genericApplicationError,message:e.errorMessage||"An error was returned",data:t}}}else n={result:r.requestType.resultSerializer.serializeToJson(e.ok)}}catch(t){t instanceof ta?n={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}}),n={error:{code:M.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${t}.`:"Server has thrown an unexpected exception"}})}return n}}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 o=r.value;for(let r of i.handlers)try{r(o,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 e4(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw Error(`Handler with method "${e.method}" already registered.`);return e4(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 e4(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);ts(r);let o=await this._requestSender.sendRequest({method:e.method,params:r},i);if("error"in o){let t;if(e.isOptional&&o.error.code===M.methodNotFound)return ti;if(void 0!==o.error.data){let i=e.errorSerializer.deserializeFromJson(o.error.data);if(i.hasErrors)throw Error(i.errorMessage);t=i.value}else t=void 0;let i=new ta(o.error.message,t,o.error.code);throw this._requestDidErrorEventEmitter.fire({error:i}),i}{let t=e.resultSerializer.deserializeFromJson(o.result);if(!t.hasErrors)return t.value;throw Error("Could not deserialize response: "+t.errorMessage+`
67
+
68
+ ${JSON.stringify(o,null,2)}`)}}async notify(e,t,i){if(!this.checkChannel(this._requestSender))throw Error();let r=e.paramsSerializer.serializeToJson(t);ts(r),this._requestSender.sendNotification({method:e.method,params:r},i)}};function ts(e){if(null!==e&&Array.isArray(e)&&"object"!=typeof e)throw Error("Invalid value! Only null, array and object is allowed.")}var ta=class e extends Error{constructor(t,i,r=M.genericApplicationError){super(t),e0(this,"data"),e0(this,"code"),this.data=i,this.code=r,Object.setPrototypeOf(this,e.prototype)}},tl=class e{constructor(e,t,i,r,o=!1){e0(this,"method"),e0(this,"paramsSerializer"),e0(this,"resultSerializer"),e0(this,"errorSerializer"),e0(this,"isOptional"),e0(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=i,this.errorSerializer=r,this.isOptional=o}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)}},tc=class e{constructor(e,t){e0(this,"method"),e0(this,"paramsSerializer"),e0(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(t){return new e(t,this.paramsSerializer)}};function td(e){return new tl((e||{}).method,L.sAny(),L.sAny(),L.sAny())}function tu(e){return new tc((e||{}).method,L.sAny())}let th=Symbol();var tg=(R=class{constructor(e){e0(this,"error"),e0(this,th),this.error=e}},e0(R,"factory",e=>new R(e)),R);function tp(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 tm=class e{constructor(e=[],t,i){e0(this,"tags"),e0(this,"server"),e0(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 o=this.buildCounterpart(e,i),n=this.registerHandlers(e,t,r,o);return{counterpart:o,dispose:()=>n.dispose()}}buildCounterpart(e,t){let i={};for(let[r,o]of Object.entries(t)){let t;t="request"===o.kind?o.isOptional?async(t,i)=>{void 0===t&&(t={});try{return await e.request(o,t,i)}catch(e){if(e&&e.code===M.methodNotFound)return ti;throw e}}:(t,i)=>(void 0===t&&(t={}),e.request(o,t,i)):(t,i)=>(void 0===t&&(t={}),e.notify(o,t,i)),i[r]=t}return i}registerHandlers(e,t,i,r){let o=[];for(let[n,s]of Object.entries(t))if("request"===s.kind){let t=i[n];if(!t)continue;let a=this.createRequestHandler(r,t);o.push(e.registerRequestHandler(s,a))}else{let t=i[n];t&&o.push(e.registerNotificationHandler(s,(e,i)=>{t(e,{context:i,counterpart:r})}))}return{dispose:()=>o.forEach(e=>e.dispose())}}createRequestHandler(e,t){return async(i,r,o)=>{let n=await t(i,{context:o,counterpart:e,newErr:tg.factory,requestId:r});return n instanceof tg?n.error:{ok:n}}}static getServerFromStream(e,t,i,r){let o=tn.fromTransport(t,i),{server:n}=e.getServer(o,r);return o.startListen(),{channel:o,server:n}}static registerServerToStream(e,t,i,r){let o=tn.fromTransport(t,i),{client:n}=e.registerServer(o,r);return o.startListen(),{channel:o,client:n}}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 tf=((s={}).Comment="comment",s.Imports="imports",s.Region="region",s),tv=((a={})[a.File=1]="File",a[a.Module=2]="Module",a[a.Namespace=3]="Namespace",a[a.Package=4]="Package",a[a.Class=5]="Class",a[a.Method=6]="Method",a[a.Property=7]="Property",a[a.Field=8]="Field",a[a.Constructor=9]="Constructor",a[a.Enum=10]="Enum",a[a.Interface=11]="Interface",a[a.Function=12]="Function",a[a.Variable=13]="Variable",a[a.Constant=14]="Constant",a[a.String=15]="String",a[a.Number=16]="Number",a[a.Boolean=17]="Boolean",a[a.Array=18]="Array",a[a.Object=19]="Object",a[a.Key=20]="Key",a[a.Null=21]="Null",a[a.EnumMember=22]="EnumMember",a[a.Struct=23]="Struct",a[a.Event=24]="Event",a[a.Operator=25]="Operator",a[a.TypeParameter=26]="TypeParameter",a),t_=((l={})[l.Deprecated=1]="Deprecated",l),ty=((c={})[c.Type=1]="Type",c[c.Parameter=2]="Parameter",c),tC=((d={})[d.None=0]="None",d[d.Full=1]="Full",d[d.Incremental=2]="Incremental",d),tS=((u={})[u.Text=1]="Text",u[u.Method=2]="Method",u[u.Function=3]="Function",u[u.Constructor=4]="Constructor",u[u.Field=5]="Field",u[u.Variable=6]="Variable",u[u.Class=7]="Class",u[u.Interface=8]="Interface",u[u.Module=9]="Module",u[u.Property=10]="Property",u[u.Unit=11]="Unit",u[u.Value=12]="Value",u[u.Enum=13]="Enum",u[u.Keyword=14]="Keyword",u[u.Snippet=15]="Snippet",u[u.Color=16]="Color",u[u.File=17]="File",u[u.Reference=18]="Reference",u[u.Folder=19]="Folder",u[u.EnumMember=20]="EnumMember",u[u.Constant=21]="Constant",u[u.Struct=22]="Struct",u[u.Event=23]="Event",u[u.Operator=24]="Operator",u[u.TypeParameter=25]="TypeParameter",u),tb=((h={})[h.Deprecated=1]="Deprecated",h),tw=((g={})[g.PlainText=1]="PlainText",g[g.Snippet=2]="Snippet",g),tx=((p={})[p.Text=1]="Text",p[p.Read=2]="Read",p[p.Write=3]="Write",p),tD=((m={}).Empty="",m.QuickFix="quickfix",m.Refactor="refactor",m.RefactorExtract="refactor.extract",m.RefactorInline="refactor.inline",m.RefactorRewrite="refactor.rewrite",m.Source="source",m.SourceOrganizeImports="source.organizeImports",m.SourceFixAll="source.fixAll",m),tE=((f={}).PlainText="plaintext",f.Markdown="markdown",f),tk=((_={})[_.Error=1]="Error",_[_.Warning=2]="Warning",_[_.Information=3]="Information",_[_.Hint=4]="Hint",_),tT=((y={})[y.Unnecessary=1]="Unnecessary",y[y.Deprecated=2]="Deprecated",y),tR=((C={})[C.Invoked=1]="Invoked",C[C.TriggerCharacter=2]="TriggerCharacter",C[C.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",C),tP=((S={})[S.Invoked=1]="Invoked",S[S.TriggerCharacter=2]="TriggerCharacter",S[S.ContentChange=3]="ContentChange",S),tI=((b={})[b.Invoked=1]="Invoked",b[b.Automatic=2]="Automatic",b),tA=((w={}).Relative="relative",w);var tM=class{constructor(e){this.method=e}};let tL={textDocumentImplementation:new tM("textDocument/implementation"),textDocumentTypeDefinition:new tM("textDocument/typeDefinition"),textDocumentDocumentColor:new tM("textDocument/documentColor"),textDocumentColorPresentation:new tM("textDocument/colorPresentation"),textDocumentFoldingRange:new tM("textDocument/foldingRange"),textDocumentDeclaration:new tM("textDocument/declaration"),textDocumentSelectionRange:new tM("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new tM("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new tM("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new tM("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new tM("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new tM("workspace/willCreateFiles"),workspaceWillRenameFiles:new tM("workspace/willRenameFiles"),workspaceWillDeleteFiles:new tM("workspace/willDeleteFiles"),textDocumentMoniker:new tM("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new tM("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new tM("textDocument/inlineValue"),textDocumentInlayHint:new tM("textDocument/inlayHint"),textDocumentDiagnostic:new tM("textDocument/diagnostic"),textDocumentInlineCompletion:new tM("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new tM("textDocument/willSaveWaitUntil"),textDocumentCompletion:new tM("textDocument/completion"),textDocumentHover:new tM("textDocument/hover"),textDocumentSignatureHelp:new tM("textDocument/signatureHelp"),textDocumentDefinition:new tM("textDocument/definition"),textDocumentReferences:new tM("textDocument/references"),textDocumentDocumentHighlight:new tM("textDocument/documentHighlight"),textDocumentDocumentSymbol:new tM("textDocument/documentSymbol"),textDocumentCodeAction:new tM("textDocument/codeAction"),workspaceSymbol:new tM("workspace/symbol"),textDocumentCodeLens:new tM("textDocument/codeLens"),textDocumentDocumentLink:new tM("textDocument/documentLink"),textDocumentFormatting:new tM("textDocument/formatting"),textDocumentRangeFormatting:new tM("textDocument/rangeFormatting"),textDocumentRangesFormatting:new tM("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new tM("textDocument/onTypeFormatting"),textDocumentRename:new tM("textDocument/rename"),workspaceExecuteCommand:new tM("workspace/executeCommand"),workspaceDidCreateFiles:new tM("workspace/didCreateFiles"),workspaceDidRenameFiles:new tM("workspace/didRenameFiles"),workspaceDidDeleteFiles:new tM("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new tM("workspace/didChangeConfiguration"),textDocumentDidOpen:new tM("textDocument/didOpen"),textDocumentDidChange:new tM("textDocument/didChange"),textDocumentDidClose:new tM("textDocument/didClose"),textDocumentDidSave:new tM("textDocument/didSave"),textDocumentWillSave:new tM("textDocument/willSave"),workspaceDidChangeWatchedFiles:new tM("workspace/didChangeWatchedFiles")},tF=(r=tp((x={server:{textDocumentImplementation:td({method:"textDocument/implementation"}),textDocumentTypeDefinition:td({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:td({method:"textDocument/documentColor"}),textDocumentColorPresentation:td({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:td({method:"textDocument/foldingRange"}),textDocumentDeclaration:td({method:"textDocument/declaration"}),textDocumentSelectionRange:td({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:td({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:td({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:td({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:td({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:td({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:td({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:td({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:td({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:td({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:td({method:"workspace/willDeleteFiles"}),textDocumentMoniker:td({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:td({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:td({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:td({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:td({method:"textDocument/inlineValue"}),textDocumentInlayHint:td({method:"textDocument/inlayHint"}),inlayHintResolve:td({method:"inlayHint/resolve"}),textDocumentDiagnostic:td({method:"textDocument/diagnostic"}),workspaceDiagnostic:td({method:"workspace/diagnostic"}),textDocumentInlineCompletion:td({method:"textDocument/inlineCompletion"}),initialize:td({method:"initialize"}),shutdown:td({method:"shutdown"}),textDocumentWillSaveWaitUntil:td({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:td({method:"textDocument/completion"}),completionItemResolve:td({method:"completionItem/resolve"}),textDocumentHover:td({method:"textDocument/hover"}),textDocumentSignatureHelp:td({method:"textDocument/signatureHelp"}),textDocumentDefinition:td({method:"textDocument/definition"}),textDocumentReferences:td({method:"textDocument/references"}),textDocumentDocumentHighlight:td({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:td({method:"textDocument/documentSymbol"}),textDocumentCodeAction:td({method:"textDocument/codeAction"}),codeActionResolve:td({method:"codeAction/resolve"}),workspaceSymbol:td({method:"workspace/symbol"}),workspaceSymbolResolve:td({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:td({method:"textDocument/codeLens"}),codeLensResolve:td({method:"codeLens/resolve"}),textDocumentDocumentLink:td({method:"textDocument/documentLink"}),documentLinkResolve:td({method:"documentLink/resolve"}),textDocumentFormatting:td({method:"textDocument/formatting"}),textDocumentRangeFormatting:td({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:td({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:td({method:"textDocument/onTypeFormatting"}),textDocumentRename:td({method:"textDocument/rename"}),textDocumentPrepareRename:td({method:"textDocument/prepareRename"}),workspaceExecuteCommand:td({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:tu({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:tu({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:tu({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:tu({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:tu({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:tu({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:tu({method:"notebookDocument/didChange"}),notebookDocumentDidSave:tu({method:"notebookDocument/didSave"}),notebookDocumentDidClose:tu({method:"notebookDocument/didClose"}),initialized:tu({method:"initialized"}),exit:tu({method:"exit"}),workspaceDidChangeConfiguration:tu({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:tu({method:"textDocument/didOpen"}),textDocumentDidChange:tu({method:"textDocument/didChange"}),textDocumentDidClose:tu({method:"textDocument/didClose"}),textDocumentDidSave:tu({method:"textDocument/didSave"}),textDocumentWillSave:tu({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:tu({method:"workspace/didChangeWatchedFiles"}),setTrace:tu({method:"$/setTrace"}),cancelRequest:tu({method:"$/cancelRequest"}),progress:tu({method:"$/progress"})},client:{workspaceWorkspaceFolders:td({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:td({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:td({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:td({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:td({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:td({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:td({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:td({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:td({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:td({method:"client/registerCapability"}).optional(),clientUnregisterCapability:td({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:td({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:td({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:td({method:"workspace/applyEdit"}).optional(),windowShowMessage:tu({method:"window/showMessage"}),windowLogMessage:tu({method:"window/logMessage"}),telemetryEvent:tu({method:"telemetry/event"}),textDocumentPublishDiagnostics:tu({method:"textDocument/publishDiagnostics"}),logTrace:tu({method:"$/logTrace"}),cancelRequest:tu({method:"$/cancelRequest"}),progress:tu({method:"$/progress"})}}).server),o=tp(x.client),new tm(x.tags||[],r,o));function tO(e,t){if(e.textModel!==t)throw Error(`Expected text model to be ${t}, but got ${e.textModel}`);return e}var tN=(P=class{constructor(){e0(this,"_store",new t$)}dispose(){this._store.dispose()}_register(e){if(e===this)throw Error("Cannot register a disposable on itself!");return this._store.add(e)}},e0(P,"None",Object.freeze({dispose(){}})),P),t$=(I=class{constructor(){e0(this,"_toDispose",new Set),e0(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?I.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}},e0(I,"DISABLE_DISPOSED_WARNING",!1),I);let tH=new Map([[tD.Empty,""],[tD.QuickFix,"quickfix"],[tD.Refactor,"refactor"],[tD.RefactorExtract,"refactor.extract"],[tD.RefactorInline,"refactor.inline"],[tD.RefactorRewrite,"refactor.rewrite"],[tD.Source,"source"],[tD.SourceOrganizeImports,"source.organizeImports"],[tD.SourceFixAll,"source.fixAll"]]),tU=new Map([[eb.languages.CodeActionTriggerType.Invoke,tI.Invoked],[eb.languages.CodeActionTriggerType.Auto,tI.Automatic]]),tW=new Map([[tS.Text,eb.languages.CompletionItemKind.Text],[tS.Method,eb.languages.CompletionItemKind.Method],[tS.Function,eb.languages.CompletionItemKind.Function],[tS.Constructor,eb.languages.CompletionItemKind.Constructor],[tS.Field,eb.languages.CompletionItemKind.Field],[tS.Variable,eb.languages.CompletionItemKind.Variable],[tS.Class,eb.languages.CompletionItemKind.Class],[tS.Interface,eb.languages.CompletionItemKind.Interface],[tS.Module,eb.languages.CompletionItemKind.Module],[tS.Property,eb.languages.CompletionItemKind.Property],[tS.Unit,eb.languages.CompletionItemKind.Unit],[tS.Value,eb.languages.CompletionItemKind.Value],[tS.Enum,eb.languages.CompletionItemKind.Enum],[tS.Keyword,eb.languages.CompletionItemKind.Keyword],[tS.Snippet,eb.languages.CompletionItemKind.Snippet],[tS.Color,eb.languages.CompletionItemKind.Color],[tS.File,eb.languages.CompletionItemKind.File],[tS.Reference,eb.languages.CompletionItemKind.Reference],[tS.Folder,eb.languages.CompletionItemKind.Folder],[tS.EnumMember,eb.languages.CompletionItemKind.EnumMember],[tS.Constant,eb.languages.CompletionItemKind.Constant],[tS.Struct,eb.languages.CompletionItemKind.Struct],[tS.Event,eb.languages.CompletionItemKind.Event],[tS.Operator,eb.languages.CompletionItemKind.Operator],[tS.TypeParameter,eb.languages.CompletionItemKind.TypeParameter]]),tq=new Map([[tb.Deprecated,eb.languages.CompletionItemTag.Deprecated]]);function tj(e){return tq.get(e)}let tz=new Map([[eb.languages.CompletionTriggerKind.Invoke,tR.Invoked],[eb.languages.CompletionTriggerKind.TriggerCharacter,tR.TriggerCharacter],[eb.languages.CompletionTriggerKind.TriggerForIncompleteCompletions,tR.TriggerForIncompleteCompletions]]),tK=new Map([[tw.Snippet,eb.languages.CompletionItemInsertTextRule.InsertAsSnippet]]),tV=new Map([[tv.File,eb.languages.SymbolKind.File],[tv.Module,eb.languages.SymbolKind.Module],[tv.Namespace,eb.languages.SymbolKind.Namespace],[tv.Package,eb.languages.SymbolKind.Package],[tv.Class,eb.languages.SymbolKind.Class],[tv.Method,eb.languages.SymbolKind.Method],[tv.Property,eb.languages.SymbolKind.Property],[tv.Field,eb.languages.SymbolKind.Field],[tv.Constructor,eb.languages.SymbolKind.Constructor],[tv.Enum,eb.languages.SymbolKind.Enum],[tv.Interface,eb.languages.SymbolKind.Interface],[tv.Function,eb.languages.SymbolKind.Function],[tv.Variable,eb.languages.SymbolKind.Variable],[tv.Constant,eb.languages.SymbolKind.Constant],[tv.String,eb.languages.SymbolKind.String],[tv.Number,eb.languages.SymbolKind.Number],[tv.Boolean,eb.languages.SymbolKind.Boolean],[tv.Array,eb.languages.SymbolKind.Array],[tv.Object,eb.languages.SymbolKind.Object],[tv.Key,eb.languages.SymbolKind.Key],[tv.Null,eb.languages.SymbolKind.Null],[tv.EnumMember,eb.languages.SymbolKind.EnumMember],[tv.Struct,eb.languages.SymbolKind.Struct],[tv.Event,eb.languages.SymbolKind.Event],[tv.Operator,eb.languages.SymbolKind.Operator],[tv.TypeParameter,eb.languages.SymbolKind.TypeParameter]]);function tB(e){return tV.get(e)??eb.languages.SymbolKind.File}let tG=new Map([[t_.Deprecated,eb.languages.SymbolTag.Deprecated]]),tQ=new Map([[tx.Text,eb.languages.DocumentHighlightKind.Text],[tx.Read,eb.languages.DocumentHighlightKind.Read],[tx.Write,eb.languages.DocumentHighlightKind.Write]]),tJ=new Map([[tf.Comment,eb.languages.FoldingRangeKind.Comment],[tf.Imports,eb.languages.FoldingRangeKind.Imports],[tf.Region,eb.languages.FoldingRangeKind.Region]]),tY=new Map([[eb.MarkerSeverity.Error,tk.Error],[eb.MarkerSeverity.Warning,tk.Warning],[eb.MarkerSeverity.Info,tk.Information],[eb.MarkerSeverity.Hint,tk.Hint]]),tX=new Map([[tk.Error,eb.MarkerSeverity.Error],[tk.Warning,eb.MarkerSeverity.Warning],[tk.Information,eb.MarkerSeverity.Info],[tk.Hint,eb.MarkerSeverity.Hint]]),tZ=new Map([[tT.Unnecessary,eb.MarkerTag.Unnecessary],[tT.Deprecated,eb.MarkerTag.Deprecated]]),t0=new Map([[eb.languages.SignatureHelpTriggerKind.Invoke,tP.Invoked],[eb.languages.SignatureHelpTriggerKind.TriggerCharacter,tP.TriggerCharacter],[eb.languages.SignatureHelpTriggerKind.ContentChange,tP.ContentChange]]);function t1(e){if(e)return{id:e.command,title:e.title,arguments:e.arguments}}let t2=new Map([[ty.Type,eb.languages.InlayHintKind.Type],[ty.Parameter,eb.languages.InlayHintKind.Parameter]]);function t6(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 t3(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 t4(e){var t;let i={severity:(t=e.severity)?tX.get(t)??eb.MarkerSeverity.Error:eb.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=>tZ.get(e)).filter(e=>void 0!==e)),e.relatedInformation&&(i.relatedInformation=e.relatedInformation.map(e=>({resource:eb.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 t5=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(tW.keys())},completionItem:{tagSupport:{valueSet:Array.from(tq.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentCompletion,!0,e=>eb.languages.registerCompletionItemProvider(t3(e.documentSelector),new t8(this._connection,e))))}},t8=class{constructor(e,t){e0(this,"resolveCompletionItem"),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCompletionItem=async(e,t)=>(t7(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 o;let n=this._client.bridge.translate(e,t),s=await this._client.server.textDocumentCompletion({textDocument:n.textDocument,position:n.position,context:i.triggerCharacter?{triggerKind:(o=i.triggerKind,tz.get(o)??tR.Invoked),triggerCharacter:i.triggerCharacter}:void 0});return s?{suggestions:(Array.isArray(s)?s:s.items).map(i=>{var r,o,s,a,l,c;let d,u,h;return{...(r=i,o=this._client.bridge,s=n,a=e,l=t,u=r.insertText||r.label,r.textEdit&&("range"in r.textEdit?(u=r.textEdit.newText,d=tO(o.translateBackRange(s.textDocument,r.textEdit.range),a).range):(u=r.textEdit.newText,d={insert:tO(o.translateBackRange(s.textDocument,r.textEdit.insert),a).range,replace:tO(o.translateBackRange(s.textDocument,r.textEdit.replace),a).range})),d||(d=eb.Range.fromPositions(l,l)),t7(h={label:r.label,kind:(c=r.kind)?tW.get(c)??eb.languages.CompletionItemKind.Text:eb.languages.CompletionItemKind.Text,insertText:u,sortText:r.sortText,filterText:r.filterText,preselect:r.preselect,commitCharacters:r.commitCharacters,range:d},r,o,s,a),h),_lspItem:i,_translated:n,_model:e}})}:{suggestions:[]}}};function t7(e,t,i,r,o){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 tK.get(e)}(t.insertTextFormat)),t.tags&&t.tags.length>0&&(e.tags=t.tags.map(tj).filter(e=>void 0!==e)),t.additionalTextEdits&&t.additionalTextEdits.length>0&&(e.additionalTextEdits=t.additionalTextEdits.map(e=>({range:tO(i.translateBackRange(r.textDocument,e.range),o).range,text:e.newText}))),t.command&&(e.command=t1(t.command))}var t9=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[tE.Markdown,tE.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentHover,!0,e=>eb.languages.registerHoverProvider(t3(e.documentSelector),new ie(this._connection,e))))}},ie=class{constructor(e,t){this._client=e,this._capabilities=t}async provideHover(e,t,i){var r;let o=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentHover({textDocument:o.textDocument,position:o.position});return n&&n.contents?{contents:Array.isArray(r=n.contents)?r.map(e=>it(e)):[it(r)],range:n.range?this._client.bridge.translateBackRange(o.textDocument,n.range).range:void 0}:null}};function it(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 ii=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{signatureHelp:{dynamicRegistration:!0,contextSupport:!0,signatureInformation:{documentationFormat:[tE.Markdown,tE.PlainText],parameterInformation:{labelOffsetSupport:!0},activeParameterSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentSignatureHelp,!0,e=>eb.languages.registerSignatureHelpProvider(t3(e.documentSelector),new ir(this._connection,e))))}},ir=class{constructor(e,t){e0(this,"signatureHelpTriggerCharacters"),e0(this,"signatureHelpRetriggerCharacters"),this._client=e,this._capabilities=t,this.signatureHelpTriggerCharacters=t.triggerCharacters,this.signatureHelpRetriggerCharacters=t.retriggerCharacters}async provideSignatureHelp(e,t,i,r){var o;let n=this._client.bridge.translate(e,t),s=await this._client.server.textDocumentSignatureHelp({textDocument:n.textDocument,position:n.position,context:{triggerKind:(o=r.triggerKind,t0.get(o)??tP.Invoked),triggerCharacter:r.triggerCharacter,isRetrigger:r.isRetrigger}});return s?{value:{signatures:s.signatures.map(e=>({label:e.label,documentation:io(e.documentation),parameters:e.parameters?.map(e=>({label:e.label,documentation:io(e.documentation)}))||[],activeParameter:e.activeParameter})),activeSignature:s.activeSignature||0,activeParameter:s.activeParameter||0},dispose:()=>{}}:null}};function io(e){if(e)return"string"==typeof e?e:{value:e.value,isTrusted:!0}}var is=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{definition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentDefinition,!0,e=>eb.languages.registerDefinitionProvider(t3(e.documentSelector),new ia(this._connection,e))))}},ia=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDefinition(e,t,i){let r=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentDefinition({textDocument:r.textDocument,position:r.position});return o?Array.isArray(o)?o.map(e=>t6(e,this._client)):t6(o,this._client):null}},il=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{declaration:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentDeclaration,!0,e=>eb.languages.registerDeclarationProvider(t3(e.documentSelector),new ic(this._connection,e))))}},ic=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDeclaration(e,t,i){let r=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentDeclaration({textDocument:r.textDocument,position:r.position});return o?Array.isArray(o)?o.map(e=>t6(e,this._client)):t6(o,this._client):null}},id=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{typeDefinition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentTypeDefinition,!0,e=>eb.languages.registerTypeDefinitionProvider(t3(e.documentSelector),new iu(this._connection,e))))}},iu=class{constructor(e,t){this._client=e,this._capabilities=t}async provideTypeDefinition(e,t,i){let r=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentTypeDefinition({textDocument:r.textDocument,position:r.position});return o?Array.isArray(o)?o.map(e=>t6(e,this._client)):t6(o,this._client):null}},ih=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{implementation:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentImplementation,!0,e=>eb.languages.registerImplementationProvider(t3(e.documentSelector),new ig(this._connection,e))))}},ig=class{constructor(e,t){this._client=e,this._capabilities=t}async provideImplementation(e,t,i){let r=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentImplementation({textDocument:r.textDocument,position:r.position});return o?Array.isArray(o)?o.map(e=>t6(e,this._client)):t6(o,this._client):null}},ip=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{references:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentReferences,!0,e=>eb.languages.registerReferenceProvider(t3(e.documentSelector),new im(this._connection,e))))}},im=class{constructor(e,t){this._client=e,this._capabilities=t}async provideReferences(e,t,i,r){let o=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentReferences({textDocument:o.textDocument,position:o.position,context:{includeDeclaration:i.includeDeclaration}});return n?n.map(e=>{let t=this._client.bridge.translateBackRange({uri:e.uri},e.range);return{uri:t.textModel.uri,range:t.range}}):null}},iv=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentHighlight:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentDocumentHighlight,!0,e=>eb.languages.registerDocumentHighlightProvider(t3(e.documentSelector),new i_(this._connection,e))))}},i_=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentHighlights(e,t,i){let r=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentDocumentHighlight({textDocument:r.textDocument,position:r.position});return o?o.map(e=>{var t;return{range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,kind:(t=e.kind)?tQ.get(t)??eb.languages.DocumentHighlightKind.Text:eb.languages.DocumentHighlightKind.Text}}):null}},iy=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentSymbol:{dynamicRegistration:!0,hierarchicalDocumentSymbolSupport:!0,symbolKind:{valueSet:Array.from(tV.keys())},tagSupport:{valueSet:[t_.Deprecated]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentDocumentSymbol,!0,e=>eb.languages.registerDocumentSymbolProvider(t3(e.documentSelector),new iC(this._connection,e))))}},iC=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentSymbols(e,t){let i=this._client.bridge.translate(e,new eb.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:tB(t.kind),tags:t.tags?.map(e=>tG.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:tB(t.kind),tags:t.tags?.map(e=>tG.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[]}},iS=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rename:{dynamicRegistration:!0,prepareSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentRename,!0,e=>eb.languages.registerRenameProvider(t3(e.documentSelector),new ib(this._connection,e))))}},ib=class{constructor(e,t){this._client=e,this._capabilities=t}async provideRenameEdits(e,t,i,r){let o=this._client.bridge.translate(e,t),n=await this._client.server.textDocumentRename({textDocument:o.textDocument,position:o.position,newName:i});return n?function(e,t){let i=[];if(e.changes)for(let r in e.changes)for(let o of e.changes[r]){let e=t.bridge.translateBackRange({uri:r},o.range);i.push({resource:e.textModel.uri,versionId:void 0,textEdit:{range:e.range,text:o.newText}})}if(e.documentChanges){for(let r of e.documentChanges)if("textDocument"in r){let e=r.textDocument.uri;for(let o of r.edits){let n=t.bridge.translateBackRange({uri:e},o.range);i.push({resource:n.textModel.uri,versionId:r.textDocument.version,textEdit:{range:n.range,text:o.newText}})}}}return{edits:i}}(n,this._client):null}async resolveRenameLocation(e,t,i){if(!this._capabilities.prepareProvider)return null;let r=this._client.bridge.translate(e,t),o=await this._client.server.textDocumentPrepareRename({textDocument:r.textDocument,position:r.position});if(!o)return null;if("range"in o&&"placeholder"in o)return{range:this._client.bridge.translateBackRange(r.textDocument,o.range).range,text:o.placeholder};if("defaultBehavior"in o);else if("start"in o&&"end"in o){let t=this._client.bridge.translateBackRange(r.textDocument,o).range;return{range:t,text:e.getValueInRange(t)}}return null}},iw=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeAction:{dynamicRegistration:!0,codeActionLiteralSupport:{codeActionKind:{valueSet:Array.from(tH.keys())}},isPreferredSupport:!0,disabledSupport:!0,dataSupport:!0,resolveSupport:{properties:["edit"]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentCodeAction,!0,e=>eb.languages.registerCodeActionProvider(t3(e.documentSelector),new ix(this._connection,e))))}},ix=class{constructor(e,t){e0(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=iD(t.edit,this._client)),t.command&&(e.command=t1(t.command))}return e})}async provideCodeActions(e,t,i,r){var o;let n=this._client.bridge.translate(e,t.getStartPosition()),s=await this._client.server.textDocumentCodeAction({textDocument:n.textDocument,range:this._client.bridge.translateRange(e,t),context:{diagnostics:i.markers.map(t=>{var i;return{range:this._client.bridge.translateRange(e,eb.Range.lift(t)),message:t.message,severity:(i=t.severity,tY.get(i)??tk.Error)}}),triggerKind:(o=i.trigger,tU.get(o)??tI.Invoked)}});return s?{actions:(Array.isArray(s)?s:[s]).map(e=>"title"in e&&!("kind"in e)?{title:e.title,command:t1(e)}:{title:e.title,kind:function(e){if(e)return tH.get(e)??e}(e.kind),isPreferred:e.isPreferred,disabled:e.disabled?.reason,edit:e.edit?iD(e.edit,this._client):void 0,command:t1(e.command),_lspAction:e}),dispose:()=>{}}:null}};function iD(e,t){let i=[];if(e.changes)for(let r in e.changes)for(let o of e.changes[r]){let e=t.bridge.translateBackRange({uri:r},o.range);i.push({resource:e.textModel.uri,versionId:void 0,textEdit:{range:e.range,text:o.newText}})}if(e.documentChanges){for(let r of e.documentChanges)if("textDocument"in r){let e=r.textDocument.uri;for(let o of r.edits){let n=t.bridge.translateBackRange({uri:e},o.range);i.push({resource:n.textModel.uri,versionId:r.textDocument.version??void 0,textEdit:{range:n.range,text:o.newText}})}}}return{edits:i}}var iE=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeLens:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentCodeLens,!0,e=>eb.languages.registerCodeLensProvider(t3(e.documentSelector),new ik(this._connection,e))))}},ik=class{constructor(e,t){this._client=e,this._capabilities=t}async provideCodeLenses(e,t){let i=this._client.bridge.translate(e,new eb.Position(1,1)),r=await this._client.server.textDocumentCodeLens({textDocument:i.textDocument});return r?{lenses:r.map(t=>({range:tO(this._client.bridge.translateBackRange(i.textDocument,t.range),e).range,command:t1(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}},iT=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentLink:{dynamicRegistration:!0,tooltipSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentDocumentLink,!0,e=>eb.languages.registerLinkProvider(t3(e.documentSelector),new iR(this._connection,e))))}},iR=class{constructor(e,t){this._client=e,this._capabilities=t}async provideLinks(e,t){let i=this._client.bridge.translate(e,new eb.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}},iP=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{formatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentFormatting,!0,e=>eb.languages.registerDocumentFormattingEditProvider(t3(e.documentSelector),new iI(this._connection,e))))}},iI=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentFormattingEdits(e,t,i){let r=this._client.bridge.translate(e,new eb.Position(1,1)),o=await this._client.server.textDocumentFormatting({textDocument:r.textDocument,options:{tabSize:t.tabSize,insertSpaces:t.insertSpaces}});return o?o.map(e=>({range:this._client.bridge.translateBackRange(r.textDocument,e.range).range,text:e.newText})):null}},iA=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rangeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentRangeFormatting,!0,e=>eb.languages.registerDocumentRangeFormattingEditProvider(t3(e.documentSelector),new iM(this._connection,e))))}},iM=class{constructor(e,t){this._client=e,this._capabilities=t}async provideDocumentRangeFormattingEdits(e,t,i,r){let o=this._client.bridge.translate(e,t.getStartPosition()),n=await this._client.server.textDocumentRangeFormatting({textDocument:o.textDocument,range:this._client.bridge.translateRange(e,t),options:{tabSize:i.tabSize,insertSpaces:i.insertSpaces}});return n?n.map(e=>({range:this._client.bridge.translateBackRange(o.textDocument,e.range).range,text:e.newText})):null}},iL=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{onTypeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentOnTypeFormatting,!0,e=>eb.languages.registerOnTypeFormattingEditProvider(t3(e.documentSelector),new iF(this._connection,e))))}},iF=class{constructor(e,t){e0(this,"autoFormatTriggerCharacters"),this._client=e,this._capabilities=t,this.autoFormatTriggerCharacters=[t.firstTriggerCharacter,...t.moreTriggerCharacter||[]]}async provideOnTypeFormattingEdits(e,t,i,r,o){let n=this._client.bridge.translate(e,t),s=await this._client.server.textDocumentOnTypeFormatting({textDocument:n.textDocument,position:n.position,ch:i,options:{tabSize:r.tabSize,insertSpaces:r.insertSpaces}});return s?s.map(e=>({range:this._client.bridge.translateBackRange(n.textDocument,e.range).range,text:e.newText})):null}},iO=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{foldingRange:{dynamicRegistration:!0,rangeLimit:5e3,lineFoldingOnly:!1,foldingRangeKind:{valueSet:[tf.Comment,tf.Imports,tf.Region]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentFoldingRange,!0,e=>eb.languages.registerFoldingRangeProvider(t3(e.documentSelector),new iN(this._connection,e))))}},iN=class{constructor(e,t){this._client=e,this._capabilities=t}async provideFoldingRanges(e,t,i){let r=this._client.bridge.translate(e,new eb.Position(1,1)),o=await this._client.server.textDocumentFoldingRange({textDocument:r.textDocument});return o?o.map(e=>({start:e.startLine+1,end:e.endLine+1,kind:function(e){if(e)return tJ.get(e)}(e.kind)})):null}},i$=class extends tN{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{selectionRange:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentSelectionRange,!0,e=>eb.languages.registerSelectionRangeProvider(t3(e.documentSelector),new iH(this._connection,e))))}},iH=class{constructor(e,t){this._client=e,this._capabilities=t}async provideSelectionRanges(e,t,i){let r=this._client.bridge.translate(e,t[0]),o=await this._client.server.textDocumentSelectionRange({textDocument:r.textDocument,positions:t.map(t=>this._client.bridge.translate(e,t).position)});return o?o.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}},iU=class extends tN{constructor(e){super(),e0(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(tF.client.workspaceInlayHintRefresh,async()=>{for(let e of this._providers)e.refresh();return{ok:null}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentInlayHint,!0,e=>{let t=new iW(this._connection,e);this._providers.add(t);let i=eb.languages.registerInlayHintsProvider(t3(e.documentSelector),t);return{dispose:()=>{this._providers.delete(t),i.dispose()}}}))}},iW=class{constructor(e,t){e0(this,"_onDidChangeInlayHints",new eb.Emitter),e0(this,"onDidChangeInlayHints",this._onDidChangeInlayHints.event),e0(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=iz(i.tooltip)),i.label!==e._lspInlayHint.label&&(e.label=ij(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()),o=await iq(async()=>await this._client.server.textDocumentInlayHint({textDocument:r.textDocument,range:this._client.bridge.translateRange(e,t)}));return o?{hints:o.map(t=>{var i;return{label:ij(t.label),position:tO(this._client.bridge.translateBack(r.textDocument,t.position),e).position,kind:(i=t.kind)?t2.get(i)??eb.languages.InlayHintKind.Type:eb.languages.InlayHintKind.Type,tooltip:iz(t.tooltip),paddingLeft:t.paddingLeft,paddingRight:t.paddingRight,textEdits:t.textEdits?.map(t=>({range:tO(this._client.bridge.translateBackRange(r.textDocument,t.range),e).range,text:t.newText})),_lspInlayHint:t,_targetUri:r.textDocument.uri}}),dispose:()=>{}}:null}};async function iq(e){for(let t=3;;t--)try{return await e()}catch(e){if("content modified"===e.message&&t>0)continue;throw e}}function ij(e){return"string"==typeof e?e:e.map(e=>{let t={label:e.value,tooltip:iz(e.tooltip),command:t1(e.command)};return e.location&&(t.location={uri:eb.Uri.parse(e.location.uri),range:new eb.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 iz(e){if(e)return"string"==typeof e?e:{value:e.value,isTrusted:!0}}var iK=class extends tN{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:[tA.Relative],overlappingTokenSupport:!1,multilineTokenSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentSemanticTokensFull,!0,e=>eb.languages.registerDocumentSemanticTokensProvider(t3(e.documentSelector),new iV(this._connection,e))))}},iV=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)),o=this._capabilities.full;if(t&&o&&"object"==typeof o&&o.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 n=await this._client.server.textDocumentSemanticTokensFull({textDocument:r.textDocument});return n?{resultId:n.resultId,data:new Uint32Array(n.data)}:null}async provideDocumentSemanticTokensEdits(e,t,i){return this.provideDocumentSemanticTokens(e,t,i)}},iB=class extends tN{constructor(e){super(),e0(this,"_diagnosticsMarkerOwner","lsp"),e0(this,"_pullDiagnosticProviders",new Map),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{publishDiagnostics:{relatedInformation:!0,tagSupport:{valueSet:[...tZ.keys()]},versionSupport:!0,codeDescriptionSupport:!0,dataSupport:!0},diagnostic:{dynamicRegistration:!0,relatedDocumentSupport:!0}}})),this._register(this._connection.connection.registerNotificationHandler(tF.client.textDocumentPublishDiagnostics,e=>this._handlePublishDiagnostics(e))),this._register(this._connection.capabilities.registerCapabilityHandler(tL.textDocumentDiagnostic,!0,e=>{let t=new t$;for(let i of eb.editor.getModels())this._addPullDiagnosticProvider(i,e,t);return t.add(eb.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 iG(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=>t4(e));eb.editor.setModelMarkers(i,this._diagnosticsMarkerOwner,r)}catch(e){console.debug(`Could not set diagnostics for ${t}:`,e)}}},iG=class extends tN{constructor(e,t,i,r){super(),e0(this,"_updateHandle"),e0(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 eb.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=>t4(e));eb.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=>t4(e));eb.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()}},iQ=class{constructor(e,t,i,r){this.server=e,this.bridge=t,this.capabilities=i,this.connection=r}},iJ=class extends tN{constructor(e){super(),e0(this,"_staticCapabilities",new Set),e0(this,"_dynamicFromStatic",i2.create()),e0(this,"_registrations",new Map),e0(this,"_serverCapabilities"),this._connection=e,this._register(this._connection.registerRequestHandler(tF.client.clientRegisterCapability,async e=>{for(let t of e.registrations){let e=i0(t.method),i=new iX(t.id,e,t.registerOptions,!1);this._registerCapabilityOptions(i)}return{ok:null}})),this._register(this._connection.registerRequestHandler(tF.client.clientUnregisterCapability,async e=>{for(let t of e.unregisterations){let e=i0(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 i1,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(tL))){let i=this._dynamicFromStatic.getOptions(t,e);i&&this._registerCapabilityOptions(new iX(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 o=i[r];if(void 0===o)continue;let n=t[r];if(void 0===n||"object"!=typeof o||null===o||"object"!=typeof n||null===n){t[r]=o;continue}e(n,o)}}(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 i1,this._registrations.set(e,r));let o=new iY(e,t,i);for(let e of(r.handlers.add(o),r.registrations.values()))(o.handleStaticCapability||!e.isFromStatic)&&e.handlerDisposables.set(o,i(e.options));return{dispose:()=>{for(let e of(r.handlers.delete(o),r.registrations.values())){let t=e.handlerDisposables.get(o);t&&(t.dispose(),e.handlerDisposables.delete(o))}}}}},iY=class{constructor(e,t,i){this.capability=e,this.handleStaticCapability=t,this.handler=i}},iX=class{constructor(e,t,i,r){e0(this,"handlerDisposables",new Map),this.id=e,this.capability=t,this.options=i,this.isFromStatic=r}};let iZ=new Map([...Object.values(tL)].map(e=>[e.method,e]));function i0(e){let t=iZ.get(e);if(!t)throw Error(`No capability found for method ${e}`);return t}var i1=class{constructor(){e0(this,"handlers",new Set),e0(this,"registrations",new Map)}},i2=class e{constructor(){e0(this,"_mappings",new Map)}static create(){let t=new e;return t.set(tL.textDocumentDidChange,e=>{if(void 0!==e.textDocumentSync)if("object"==typeof e.textDocumentSync)return{syncKind:e.textDocumentSync.change??tC.None,documentSelector:null};else return{syncKind:e.textDocumentSync,documentSelector:null}}),t.set(tL.textDocumentCompletion,e=>e.completionProvider),t.set(tL.textDocumentHover,e=>e.hoverProvider),t.set(tL.textDocumentSignatureHelp,e=>e.signatureHelpProvider),t.set(tL.textDocumentDefinition,e=>e.definitionProvider),t.set(tL.textDocumentReferences,e=>e.referencesProvider),t.set(tL.textDocumentDocumentHighlight,e=>e.documentHighlightProvider),t.set(tL.textDocumentDocumentSymbol,e=>e.documentSymbolProvider),t.set(tL.textDocumentCodeAction,e=>e.codeActionProvider),t.set(tL.textDocumentCodeLens,e=>e.codeLensProvider),t.set(tL.textDocumentDocumentLink,e=>e.documentLinkProvider),t.set(tL.textDocumentFormatting,e=>e.documentFormattingProvider),t.set(tL.textDocumentRangeFormatting,e=>e.documentRangeFormattingProvider),t.set(tL.textDocumentOnTypeFormatting,e=>e.documentOnTypeFormattingProvider),t.set(tL.textDocumentRename,e=>e.renameProvider),t.set(tL.textDocumentFoldingRange,e=>e.foldingRangeProvider),t.set(tL.textDocumentDeclaration,e=>e.declarationProvider),t.set(tL.textDocumentTypeDefinition,e=>e.typeDefinitionProvider),t.set(tL.textDocumentImplementation,e=>e.implementationProvider),t.set(tL.textDocumentDocumentColor,e=>e.colorProvider),t.set(tL.textDocumentSelectionRange,e=>e.selectionRangeProvider),t.set(tL.textDocumentLinkedEditingRange,e=>e.linkedEditingRangeProvider),t.set(tL.textDocumentPrepareCallHierarchy,e=>e.callHierarchyProvider),t.set(tL.textDocumentSemanticTokensFull,e=>e.semanticTokensProvider),t.set(tL.textDocumentInlayHint,e=>e.inlayHintProvider),t.set(tL.textDocumentInlineValue,e=>e.inlineValueProvider),t.set(tL.textDocumentDiagnostic,e=>e.diagnosticProvider),t.set(tL.textDocumentMoniker,e=>e.monikerProvider),t.set(tL.textDocumentPrepareTypeHierarchy,e=>e.typeHierarchyProvider),t.set(tL.workspaceSymbol,e=>e.workspaceSymbolProvider),t.set(tL.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)}},i6=class extends tN{constructor(e,t){super(),e0(this,"_managedModels",new Map),e0(this,"_managedModelsReverse",new Map),e0(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(tL.textDocumentDidChange,!0,e=>{if(this._started)return{dispose:()=>{}};for(let e of(this._started=!0,this._register(eb.editor.onDidCreateModel(e=>{this._getOrCreateManagedModel(e)})),eb.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 i3(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 eb.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 eb.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}}}},i3=class extends tN{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}})}})}},i4=class{constructor(e){e0(this,"_connection"),e0(this,"_capabilitiesRegistry"),e0(this,"_bridge"),e0(this,"_initPromise");const t=tn.fromTransport(e),i=tF.getServer(t,{});t.startListen(),this._capabilitiesRegistry=new iJ(t),this._bridge=new i6(i.server,this._capabilitiesRegistry),this._connection=new iQ(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 t$;return e.add(new t5(this._connection)),e.add(new t9(this._connection)),e.add(new ii(this._connection)),e.add(new is(this._connection)),e.add(new il(this._connection)),e.add(new id(this._connection)),e.add(new ih(this._connection)),e.add(new ip(this._connection)),e.add(new iv(this._connection)),e.add(new iy(this._connection)),e.add(new iS(this._connection)),e.add(new iw(this._connection)),e.add(new iE(this._connection)),e.add(new iT(this._connection)),e.add(new iP(this._connection)),e.add(new iA(this._connection)),e.add(new iL(this._connection)),e.add(new iO(this._connection)),e.add(new i$(this._connection)),e.add(new iU(this._connection)),e.add(new iK(this._connection)),e.add(new iB(this._connection)),e}},i5=null,i8=i5="u">typeof WebSocket?WebSocket:"u">typeof MozWebSocket?MozWebSocket:e.g.WebSocket||e.g.MozWebSocket,i7=class e extends e8{constructor(e){super(),e0(this,"socket"),e0(this,"errorEmitter",new e6),e0(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 i8(("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}`}},i9=class extends e8{constructor(e,t,i){super(),e0(this,"_windowLike"),e0(this,"_source"),e0(this,"_loadingState"),e0(this,"_disposed",!1),e0(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,i4,"WebSocketTransport",0,i7,"createTransportToIFrame",0,function(e){if("u"<typeof window)throw Error("call this function from the main browser thread");return new i9(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 i9(e)}],733757),e.i(733757),e.i(120276);let re=globalThis.MonacoEnvironment;re?.globalAPI&&(globalThis.monaco=eb),eb.languages.css=eP,eb.languages.html=ez,eb.languages.typescript=eG,eb.languages.json=eB;let rt=new Map;function ri(e,t,i){return i?eb.Uri.file(`${i.replace(/\/+$/,"")}/${t}`):eb.Uri.parse(`file:///workspace/${e}/${t}`)}var rr=e.i(185966);class ro extends rr.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 rn=e.i(861593),rs=e.i(69150),ra=e.i(840969),rl=e.i(654295),rc=e.i(865562),rd=e.i(611130),ru=e.i(693205),rh=e.i(802136),rg=e.i(798237),rp=e.i(478697),rm=e.i(79522),rf=e.i(347470);class rv extends rf.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 r_=e.i(130772),ry=e.i(604634),rC=e.i(600345),rS=e.i(772649),rb=e.i(58762),rw=e.i(429200),rx=e.i(305638),rD=e.i(98342),rE=e.i(326659),rk=e.i(49583),rT=e.i(20848),rR=e.i(561295),rP=e.i(830598),rI=e.i(746244),rA=e.i(343840),rM=e.i(281482),rL=rd;function rF(e){return"string"==typeof e}(D=F||(F={}))[D.None=0]="None",D[D.Open=1]="Open",D[D.Close=-1]="Close";function rO(e,t){return e.ignoreCase&&t?t.toLowerCase():t}function rN(e){return e.replace(/[&<>'"_]/g,"-")}function r$(e,t){return Error(`${e.languageId}: ${t}`)}function rH(e,t,i,r,o){let n=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,function(t,s,a,l,c,d,u,h,g){return a?"$":l?rO(e,i):c&&c<r.length?rO(e,r[c]):u&&e&&"string"==typeof e[u]?e[u]:(null===n&&(n=o.split(".")).unshift(o),d&&d<n.length)?rO(e,n[d]):""})}function rU(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 rW=e.i(731931);class rq{static{this._INSTANCE=new rq(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 rj(e,t);let i=rj.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let r=this._entries[i];return r||(r=new rj(e,t),this._entries[i]=r),r}}class rj{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 rj._equals(this,e)}push(e){return rq.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return rq.create(this.parent,e)}}class rz{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 rz(this.languageId,this.state)}}class rK{static{this._INSTANCE=new rK(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 rV(e,t);let i=rj.getStackElementId(e),r=this._entries[i];return r||(r=new rV(e,null),this._entries[i]=r),r}}class rV{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:rK.create(this.stack,this.embeddedLanguageData)}equals(e){return e instanceof rV&&!!this.stack.equals(e.stack)&&(null===this.embeddedLanguageData&&null===e.embeddedLanguageData||null!==this.embeddedLanguageData&&null!==e.embeddedLanguageData&&this.embeddedLanguageData.equals(e.embeddedLanguageData))}}class rB{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 rS.Token(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,r){let o=i.languageId,n=i.state,s=rS.TokenizationRegistry.get(o);if(!s)return this.enterLanguage(o),this.emit(r,""),n;let a=s.tokenize(e,t,n);if(0!==r)for(let e of a.tokens)this._tokens.push(new rS.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 rS.TokenizationResult(this._tokens,e)}}class rG{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=rR.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)|rR.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,o=t.length,n=null!==i?i.length:0;if(0===r&&0===o&&0===n)return new Uint32Array(0);if(0===r&&0===o)return i;if(0===o&&0===n)return e;let s=new Uint32Array(r+o+n);null!==e&&s.set(e);for(let e=0;e<o;e++)s[r+e]=t[e];return null!==i&&s.set(i,r+o),s}nestedLanguageTokenize(e,t,i,r){let o=i.languageId,n=i.state,s=rS.TokenizationRegistry.get(o);if(!s)return this.enterLanguage(o),this.emit(r,""),n;let a=s.tokenizeEncoded(e,t,n);if(0!==r)for(let e=0,t=a.tokens.length;e<t;e+=2)a.tokens[e]+=r;return this._prependTokens=rG._merge(this._prependTokens,this._tokens,a.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,a.endState}finalize(e){return new rS.EncodedTokenizationResult(rG._merge(this._prependTokens,this._tokens,null),[],e)}}let rQ=O=class extends rL.Disposable{constructor(e,t,i,r,o){super(),this._configurationService=o,this._languageService=e,this._standaloneThemeService=t,this._languageId=i,this._lexer=r,this._embeddedLanguages=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);let n=!1;this._register(rS.TokenizationRegistry.onDidChange(e=>{if(n)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&&(n=!0,rS.TokenizationRegistry.handleChange([this._languageId]),n=!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=rS.TokenizationRegistry.get(t);if(i){if(i instanceof O){let t=i.getLoadStatus();!1===t.loaded&&e.push(t.promise)}continue}rS.TokenizationRegistry.isResolved(t)||e.push(rS.TokenizationRegistry.getOrCreate(t))}return 0===e.length?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then(e=>void 0)}}getInitialState(){let e=rq.create(null,this._lexer.start);return rK.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,rx.nullTokenize)(this._languageId,i);let r=new rB,o=this._tokenize(e,t,i,r);return r.finalize(o)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return(0,rx.nullTokenizeEncoded)(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);let r=new rG(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,r);return r.finalize(o)}_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=rU(this._lexer,t.stack.state)))throw r$(this._lexer,"tokenizer state is not defined: "+t.stack.state);let r=-1,o=!1;for(let n of i){if(rF(n.action)||!("@pop"===n.action.nextEmbedded||n.action.hasEmbeddedEndInCases))continue;o=!0;let i=n.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||!n.matchOnlyAtLineStart)&&(-1===r||a<r)&&(r=a)}if(!o)throw r$(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return r}_nestedTokenize(e,t,i,r,o){let n=this._findLeavingNestedLanguageOffset(e,i);if(-1===n){let n=o.nestedLanguageTokenize(e,t,i.embeddedLanguageData,r);return rK.create(i.stack,new rz(i.embeddedLanguageData.languageId,n))}let s=e.substring(0,n);s.length>0&&o.nestedLanguageTokenize(s,!1,i.embeddedLanguageData,r);let a=e.substring(n);return this._myTokenize(a,t,i,r+n,o)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,r,o){o.enterLanguage(this._languageId);let n=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=rU(this._lexer,_)))throw r$(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)&&!rF(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?rH(this._lexer,S.token,C,y,_):S.token,S.nextEmbedded)if("@pop"===S.nextEmbedded){if(!l)throw r$(this._lexer,"cannot pop embedded language if not inside one");l=null}else if(l)throw r$(this._lexer,"cannot enter embedded language from within an embedded language");else w=rH(this._lexer,S.nextEmbedded,C,y,_);if(S.goBack&&(d=Math.max(0,d-S.goBack)),S.switchTo&&"string"==typeof S.switchTo){let e=rH(this._lexer,S.switchTo,C,y,_);if("@"===e[0]&&(e=e.substr(1)),rU(this._lexer,e))c=c.switchTo(e);else throw r$(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 r$(this._lexer,"action.transform not supported");else if(S.next)if("@push"===S.next)if(c.depth>=this._lexer.maxStack)throw r$(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 r$(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=rH(this._lexer,S.next,C,y,_);if("@"===e[0]&&(e=e.substr(1)),rU(this._lexer,e))c=c.push(e);else throw r$(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+": "+rH(this._lexer,S.log,C,y,_),console.log(`${g.languageId}: ${p}`))}if(null===x)throw r$(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(b));let D=i=>{let n=this._languageService.getLanguageIdByLanguageName(i)||this._languageService.getLanguageIdByMimeType(i)||i,s=this._getNestedEmbeddedLanguageData(n);if(!(d<a))return rK.create(c,s);{let i=e.substr(d);return this._nestedTokenize(i,t,rK.create(c,s),r+d,o)}};if(Array.isArray(x)){if(u&&u.groups.length>0)throw r$(this._lexer,"groups cannot be nested: "+this._safeRuleName(b));if(y.length!==x.length+1)throw r$(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 r$(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 r$(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(b));let e=null;if(rF(x)&&0===x.indexOf("@brackets")){let t=x.substr(9),i=function(e,t){if(!t)return null;for(let i of(t=rO(e,t),e.brackets))if(i.open===t)return{token:i.token,bracketType:F.Open};else if(i.close===t)return{token:i.token,bracketType:F.Close};return null}(this._lexer,C);if(!i)throw r$(this._lexer,"@brackets token returned but no bracket defined as: "+C);e=rN(i.token+t)}else e=rN(""===x?"":x+this._lexer.tokenPostfix);i<n&&o.emit(i+r,e)}if(null!==w)return D(w)}return rK.create(c,l)}_getNestedEmbeddedLanguageData(e){if(!this._languageService.isRegisteredLanguageId(e))return new rz(e,rx.NullState);e!==this._languageId&&(this._languageService.requestBasicLanguageFeatures(e),rS.TokenizationRegistry.getOrCreate(e),this._embeddedLanguages[e]=!0);let t=rS.TokenizationRegistry.get(e);return t?new rz(e,t.getInitialState()):new rz(e,rx.NullState)}};rQ=O=(0,rM.__decorate)([(0,rM.__param)(4,rW.IConfigurationService)],rQ);let rJ=(0,rT.createTrustedTypesPolicy)("standaloneColorizer",{createHTML:e=>e});class rY{static colorizeElement(e,t,i,r){let o=(r=r||{}).theme||"vs",n=r.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!n)return console.error("Mode not detected"),Promise.resolve();let s=t.getLanguageIdByMimeType(n)||n;e.setTheme(o);let a=i.firstChild?i.firstChild.nodeValue:"";return i.className+=" "+o,this.colorize(t,a||"",s,r).then(e=>{i.innerHTML=rJ?.createHTML(e)??e},e=>console.error(e))}static async colorize(e,t,i,r){var o,n,s,a;let l=e.languageIdCodec,c=4;r&&"number"==typeof r.tabSize&&(c=r.tabSize),(0,ru.startsWithUTF8BOM)(t)&&(t=t.substr(1));let d=(0,ru.splitLines)(t);if(!e.isRegisteredLanguageId(i))return rX(d,c,l);let u=await rS.TokenizationRegistry.getOrCreate(i);return u?(o=d,n=c,s=u,a=l,new Promise((e,t)=>{let i=()=>{let r=function(e,t,i,r){let o=[],n=i.getInitialState();for(let s=0,a=e.length;s<a;s++){let a=e[s],l=i.tokenizeEncoded(a,!0,n);rP.LineTokens.convertToEndOffset(l.tokens,a.length);let c=new rP.LineTokens(l.tokens,a,r),d=rA.ViewLineRenderingData.isBasicASCII(a,!0),u=rA.ViewLineRenderingData.containsRTL(a,d,!0),h=(0,rI.renderViewLine2)(new rI.RenderLineInput(!1,!0,a,!1,d,u,0,c.inflate(),[],t,0,0,0,0,-1,"none",!1,!1,null,null,0));(o=o.concat(h.html)).push("<br/>"),n=l.endState}return o.join("")}(o,n,s,a);if(s instanceof rQ){let e=s.getLoadStatus();if(!1===e.loaded)return void e.promise.then(i,t)}e(r)};i()})):rX(d,c,l)}static colorizeLine(e,t,i,r,o=4){let n=rA.ViewLineRenderingData.isBasicASCII(e,t),s=rA.ViewLineRenderingData.containsRTL(e,n,i);return(0,rI.renderViewLine2)(new rI.RenderLineInput(!1,!0,e,!1,n,s,0,r,[],o,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 o=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(r,e.mightContainNonBasicASCII(),e.mightContainRTL(),o,i)}}function rX(e,t,i){let r=[],o=(rR.FontStyle.None<<rR.MetadataConsts.FONT_STYLE_OFFSET|rR.ColorId.DefaultForeground<<rR.MetadataConsts.FOREGROUND_OFFSET|rR.ColorId.DefaultBackground<<rR.MetadataConsts.BACKGROUND_OFFSET)>>>0,n=new Uint32Array(2);n[0]=0,n[1]=o;for(let o=0,s=e.length;o<s;o++){let s=e[o];n[0]=s.length;let a=new rP.LineTokens(n,s,i),l=rA.ViewLineRenderingData.isBasicASCII(s,!0),c=rA.ViewLineRenderingData.containsRTL(s,l,!0),d=(0,rI.renderViewLine2)(new rI.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 rZ=e.i(922292),r0=e.i(487106),r1=e.i(18149),r2=e.i(686380),r6=e.i(318581),r3=e.i(568101),r4=e.i(84513),r5=e.i(206548),r8=e.i(65579),r7=e.i(781808),r9=e.i(58867),oe=rd;e.i(71224);var ot=e.i(488259),oi=e.i(650289),or=e.i(575129);e.i(698014),e.i(140331);var oo=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,or.registerColor)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,oi.localize)(209,"The background color of the diff editor's header")),(0,or.registerColor)("multiDiffEditor.background",oo.editorBackground,(0,oi.localize)(210,"The background color of the multi file diff editor")),(0,or.registerColor)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,oi.localize)(211,"The border color of the multi file diff editor"));var on=e.i(850887),os=e.i(984004),oa=e.i(155652),ol=rd,oc=e.i(2301),od=e.i(159868),ou=e.i(9753),oh=e.i(299051),og=e.i(25797),op=e.i(631524),om=e.i(623012),of=e.i(823288),ov=e.i(532816),o_=e.i(314122),oy=e.i(896344);class oC{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let oS=class extends ol.Disposable{constructor(e,t,i,r,o){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=r,this._viewModel=(0,ov.observableValue)(this,void 0),this._collapsed=(0,o_.derived)(this,e=>this._viewModel.read(e)?.collapsed.read(e)),this._editorContentHeight=(0,ov.observableValue)(this,500),this.contentHeight=(0,o_.derived)(this,e=>(this._collapsed.read(e)?0:this._editorContentHeight.read(e))+this._outerEditorHeight),this._modifiedContentWidth=(0,ov.observableValue)(this,0),this._modifiedWidth=(0,ov.observableValue)(this,0),this._originalContentWidth=(0,ov.observableValue)(this,0),this._originalWidth=(0,ov.observableValue)(this,0),this.maxScroll=(0,o_.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,on.h)("div.multiDiffEntry",[(0,on.h)("div.header@header",[(0,on.h)("div.header-content",[(0,on.h)("div.collapse-button@collapseButton"),(0,on.h)("div.file-path",[(0,on.h)("div.title.modified.show-file-icons@primaryPath",[]),(0,on.h)("div.status.deleted@status",["R"]),(0,on.h)("div.title.original.show-file-icons@secondaryPath",[])]),(0,on.h)("div.actions@actions")])]),(0,on.h)("div.editorParent",[(0,on.h)("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(op.DiffEditorWidget,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=(0,og.observableCodeEditor)(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=(0,og.observableCodeEditor)(this.editor.getOriginalEditor()).isFocused,this.isFocused=(0,o_.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 ol.DisposableStore),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const n=new os.Button(this._elements.collapseButton,{});this._register((0,oy.autorun)(e=>{n.element.className="",n.icon=this._collapsed.read(e)?oa.Codicon.chevronRight:oa.Codicon.chevronDown})),this._register(n.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,oy.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,of.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,oy.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(o.createScoped(this._elements.actions));const s=this._register(this._instantiationService.createChild(new oh.ServiceCollection([ou.IContextKeyService,this._contextKeyService])));this._register(s.createInstance(od.MenuWorkbenchToolBar,this._elements.actions,r2.MenuId.MultiDiffEditorFileToolbar,{actionRunner:this._register(new om.ActionRunnerWithContext(()=>this._viewModel.get()?.modifiedUri??this._viewModel.get()?.originalUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:e=>e.startsWith("navigation")},actionViewItemProvider:(e,t)=>(0,oc.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,of.globalTransaction)(e=>{this._viewModel.set(void 0,e),this.editor.setDiffModel(null,e),this._dataStore.clear()});let i=e.viewModel.documentDiffItem;if((0,of.globalTransaction)(r=>{this._resourceLabel?.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:void 0===e.viewModel.modifiedUri});let o=!1,n=!1,s=!1,a="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(a="R",o=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(a="A",s=!0):(a="D",n=!0),this._elements.status.classList.toggle("renamed",o),this._elements.status.classList.toggle("deleted",n),this._elements.status.classList.toggle("added",s),this._elements.status.innerText=a,this._resourceLabel2?.setUri(o?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 o=e.length-this._headerHeight,n=Math.max(0,Math.min(r.start-e.start,o));this._elements.header.style.transform=`translateY(${n}px)`,(0,of.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",n>0||i>0),this._elements.header.classList.toggle("collapsed",n===o)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};oS=(0,rM.__decorate)([(0,rM.__param)(3,ot.IInstantiationService),(0,rM.__param)(4,ou.IContextKeyService)],oS);var ob=e.i(235905),ow=e.i(46373),ox=e.i(454514),oD=e.i(237029),oE=e.i(619122),ok=rd,oT=e.i(920042),oR=e.i(103346),oP=e.i(340793),oI=e.i(704409),oA=e.i(955921);class oM{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 oL=e.i(229081);(0,rl.registerCss)(void 0);let oF=class extends ok.Disposable{constructor(e,t,i,r,o,n){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=r,this._parentContextKeyService=o,this._parentInstantiationService=n,this._scrollableElements=(0,on.h)("div.scrollContent",[(0,on.h)("div@content",{style:{overflow:"hidden"}}),(0,on.h)("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new oT.Scrollable({forceIntegerValues:!1,scheduleAtNextAnimationFrame:e=>(0,on.scheduleAtNextAnimationFrame)((0,on.getWindow)(this._element),e),smoothScrollDuration:100})),this._scrollableElement=this._register(new ow.SmoothScrollableElement(this._scrollableElements.root,{vertical:oT.ScrollbarVisibility.Auto,horizontal:oT.ScrollbarVisibility.Auto,useShadows:!1},this._scrollable)),this._elements=(0,on.h)("div.monaco-component.multiDiffEditor",{},[(0,on.h)("div",{},[this._scrollableElement.getDomNode()]),(0,on.h)("div.placeholder@placeholder",{},[(0,on.h)("div")])]),this._sizeObserver=this._register(new oA.ObservableElementSizeObserver(this._element,void 0)),this._objectPool=this._register(new oM(e=>{let t=this._instantiationService.createInstance(oS,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return t.setData(e),t})),this.scrollTop=(0,oL.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,oL.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=(0,o_.derived)(this,e=>{let t=this._viewModel.read(e);if(!t)return{items:[],getItem:e=>{throw new oE.BugIndicatingError}};let i=t.items.read(e),r=new Map;return{items:i.map(t=>{let i=e.store.add(new oO(t,this._objectPool,this.scrollLeft,e=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+e})})),o=this._lastDocStates?.[i.getKey()];return o&&(0,of.transaction)(e=>{i.setViewState(o,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,o_.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 oh.ServiceCollection([ou.IContextKeyService,this._contextKeyService]))),this._contextKeyService.createKey(oI.EditorContextKeys.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register((0,oy.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,ok.toDisposable)(()=>i.reset()))}}));const s=this._parentContextKeyService.createKey(oI.EditorContextKeys.multiDiffEditorAllCollapsed.key,!1);this._register((0,oy.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,oy.autorun)(e=>{let t=this._dimension.read(e);this._sizeObserver.observe(t)}));const a=(0,o_.derived)(e=>{if(this._viewItems.read(e).length>0)return;let t=this._viewModel.read(e);return!t||t.isLoading.read(e)?(0,oi.localize)(212,"Loading..."):(0,oi.localize)(213,"No Changed Files")});this._register((0,oy.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,oy.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),o=r,n=this._viewItems.read(e),s=(0,oD.findFirstMax)(n,(0,ox.compareBy)(t=>t.maxScroll.read(e).maxScroll,ox.numberComparator));s&&(o=r+s.maxScroll.read(e).maxScroll),this._scrollableElement.setScrollDimensions({width:r,height:t,scrollHeight:i,scrollWidth:o})})),e.replaceChildren(this._elements.root),this._register((0,ok.toDisposable)(()=>{e.replaceChildren()})),this._register((0,oy.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,oy.autorun)(e=>{(0,of.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 o,n,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 oE.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,o=i.getModel(),n=i.createDecorationsCollection([{range:r,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]),setTimeout(()=>{i.getModel()===o&&n.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,of.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 o=t[r];o.viewModel.collapsed.get()&&o.viewModel.collapsed.set(!1,void 0);let n=o.template.get()?.editor;if(n?.getDiffComputationResult()?.changes2?.length){let t=n.getModifiedEditor().getPosition()?.lineNumber||1,i=n.getDiffComputationResult().changes2;if("next"===e?i.some(e=>e.modified.startLineNumber>t):i.some(e=>e.modified.endLineNumberExclusive<=t))return void n.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,o=0,n=this._sizeObserver.height.read(e),s=oR.OffsetRange.ofStartAndLength(t,n),a=this._sizeObserver.width.read(e);for(let l of this._viewItems.read(e)){let c=l.contentHeight.read(e),d=Math.min(c,n),u=oR.OffsetRange.ofStartAndLength(r,d),h=oR.OffsetRange.ofStartAndLength(o,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=oR.OffsetRange.ofStartAndLength(t+i,n);l.render(u,e,a,r)}r+=d+this._spaceBetweenPx,o+=c+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};oF=(0,rM.__decorate)([(0,rM.__param)(4,ou.IContextKeyService),(0,rM.__param)(5,ot.IInstantiationService)],oF);class oO extends ok.Disposable{constructor(e,t,i,r){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=r,this._templateRef=this._register((0,ov.disposableObservableValue)(this,void 0)),this.contentHeight=(0,o_.derived)(this,e=>this._templateRef.read(e)?.object.contentHeight?.read(e)??this.viewModel.lastTemplateData.read(e).contentHeight),this.maxScroll=(0,o_.derived)(this,e=>this._templateRef.read(e)?.object.maxScroll.read(e)??{maxScroll:0,scrollWidth:0}),this.template=(0,o_.derived)(this,e=>this._templateRef.read(e)?.object),this._isHidden=(0,ov.observableValue)(this,!1),this._isFocused=(0,o_.derived)(this,e=>this.template.read(e)?.isFocused.read(e)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register((0,oy.autorun)(e=>{let t=this._scrollLeft.read(e);this._templateRef.read(e)?.object.setScrollLeft(t)})),this._register((0,oy.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,of.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(oP.Selection.liftSelection);this.viewModel.lastTemplateData.set({...i,selections:r},t);let o=this._templateRef.get();o&&r&&o.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,of.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 o=this._templateRef.get();if(!o){o=this._objectPool.getUnusedObj(new oC(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(o,void 0);let e=this.viewModel.lastTemplateData.get().selections;e&&o.object.editor.setSelections(e)}o.object.render(e,i,t,r)}}var oN=e.i(465376);let o$=class extends oe.Disposable{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=(0,ov.observableValue)(this,void 0),this._viewModel=(0,ov.observableValue)(this,void 0),this._widgetImpl=(0,o_.derived)(this,e=>e.store.add(this._instantiationService.createInstance((0,r9.readHotReloadableExport)(oF),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._activeControl=(0,o_.derived)(this,e=>this._widgetImpl.read(e).activeControl.read(e)),this.onDidChangeActiveControl=r7.Event.fromObservableLight(this._activeControl),this._register((0,oN.recomputeInitiallyAndOnChange)(this._widgetImpl))}reveal(e,t){this._widgetImpl.get().reveal(e,t)}createViewModel(e){return new ob.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()}};o$=(0,rM.__decorate)([(0,rM.__param)(2,ot.IInstantiationService)],o$);var oH=e.i(557941);function oU(e){let t=r0.StandaloneServices.get(r4.IKeybindingService);return t instanceof r0.StandaloneKeybindingService?t.addDynamicKeybindings(e.map(e=>({keybinding:e.keybinding,command:e.command,commandArgs:e.commandArgs,when:r3.ContextKeyExpr.deserialize(e.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),rd.Disposable.None)}(0,rl.registerCss)(void 0);var oW=e.i(144881),oq=e.i(166969),oj=e.i(841836),oz=e.i(407791),oK=e.i(535567);function oV(e,t){return"boolean"==typeof e?e:t}function oB(e,t){return"string"==typeof e?e:t}function oG(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 oQ(e,t,i){let r;t=t.replace(/@@/g,"\x01");let o=0;do r=!1,t=t.replace(/@(\w+)/g,function(i,o){r=!0;let n="";if("string"==typeof e[o])n=e[o];else if(e[o]&&e[o]instanceof RegExp)n=e[o].source;else if(void 0===e[o])throw r$(e,"language definition does not contain attribute '"+o+"', used at: "+t);else throw r$(e,"attribute reference '"+o+"' must be a string, used at: "+t);return n?"(?:"+n+")":""}),o++;while(r&&o<5)t=t.replace(/\x01/g,"@");let n=(e.ignoreCase?"i":"")+(e.unicode?"u":"");if(i&&t.match(/\$[sS](\d\d?)/g)){let i=null,r=null;return o=>{let s;return r&&i===o?r:(i=o,r=new RegExp((s=null,t.replace(/\$[sS](\d\d?)/g,function(t,i){return(null===s&&(s=o.split(".")).unshift(o),i&&i<s.length)?(0,ru.escapeRegExpCharacters)(rO(e,s[i])):""})),n))}}return new RegExp(t,n)}class oJ{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 r$(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=oQ(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 r$(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=F.Open;else if("@close"===r.bracket)e.bracket=F.Close;else throw r$(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+i);if(r.next)if("string"!=typeof r.next)throw r$(t,"the next state must be a string value in rule: "+i);else{let o=r.next;if(!/^(@pop|@push|@popall)$/.test(o)&&("@"===o[0]&&(o=o.substr(1)),0>o.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,rH(t,o,"",[],""))))throw r$(t,"the next state '"+r.next+"' is not defined in rule: "+i);e.next=o}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 o=[];for(let n=0,s=r.length;n<s;n++)o[n]=e(t,i,r[n]);return{group:o}}if(r.cases){let o=[],n=!1;for(let s in r.cases)if(r.cases.hasOwnProperty(s)){let a=e(t,i,r.cases[s]);"@default"===s||"@"===s||""===s?o.push({test:void 0,value:a,name:s}):"@eos"===s?o.push({test:function(e,t,i,r){return r},value:a,name:s}):o.push(function(e,t,i,r){let o,n=-1,s=i,a=i.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);a&&(a[3]&&(n=parseInt(a[3]),a[2]&&(n+=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=oG(c.split("|"),e.ignoreCase);o=function(e){return"~"===l?t(e):!t(e)}}else if("@"===l||"!@"===l){let i=e[c];if(!i)throw r$(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 r$(e,"the @ match target '"+c+"' must be an array of strings, in rule: "+t);let r=oG(i,e.ignoreCase);o=function(e){return"@"===l?r(e):!r(e)}}else if("~"===l||"!~"===l)if(0>c.indexOf("$")){let t=oQ(e,"^"+c+"$",!1);o=function(e){return"~"===l?t.test(e):!t.test(e)}}else o=function(t,i,r,o){return oQ(e,"^"+rH(e,c,i,r,o)+"$",!1).test(t)};else if(0>c.indexOf("$")){let t=rO(e,c);o=function(e){return"=="===l?e===t:e!==t}}else{let t=rO(e,c);o=function(i,r,o,n,s){let a=rH(e,t,r,o,n);return"=="===l?i===a:i!==a}}return -1===n?{name:i,value:r,test:function(e,t,i,r){return o(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,n);return o(s||"",e,t,i,r)}}}(t,i,s,a)),n||(n=!(0,oK.isString)(a)&&(a.hasEmbeddedEndInCases||["@pop","@popall"].includes(a.nextEmbedded||"")))}let s=t.defaultToken;return{hasEmbeddedEndInCases:n,test:function(e,t,i,r){for(let n of o)if(!n.test||n.test(e,t,i,r))return n.value;return s}}}else throw r$(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 oY(e,t){if(!t||"object"!=typeof t)throw Error("Monarch: expecting a language definition object");let i={languageId:e,includeLF:oV(t.includeLF,!1),noThrow:!1,maxStack:100,start:"string"==typeof t.start?t.start:null,ignoreCase:oV(t.ignoreCase,!1),unicode:oV(t.unicode,!1),tokenPostfix:oB(t.tokenPostfix,"."+e),defaultToken:oB(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 r$(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,o,n){for(let s of n){let n=s.include;if(n){if("string"!=typeof n)throw r$(i,"an 'include' attribute must be a string at: "+r);if("@"===n[0]&&(n=n.substr(1)),!t.tokenizer[n])throw r$(i,"include target '"+n+"' is not defined at: "+r);e(r+"."+n,o,t.tokenizer[n])}else{let e=new oJ(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 r$(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 r$(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=oV(s.matchOnlyAtLineStart,!1)),e.setRegex(t,s.regex),e.setAction(t,s.action)}o.push(e)}}}("tokenizer."+e,i.tokenizer[e],r)}if(i.usesEmbedded=t.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw r$(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 r$(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:rO(i,t.open),close:rO(i,t.close)});else throw r$(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 oX=e.i(495723);class oZ{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 o0.adaptTokenize(this._languageId,this._actual,e,i);throw Error("Not supported!")}tokenizeEncoded(e,t,i){let r=this._actual.tokenizeEncoded(e,i);return new rS.EncodedTokenizationResult(r.tokens,[],r.endState)}}class o0{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 o=0,n=e.length;o<n;o++){let n=e[o],s=n.startIndex;0===o?s=0:s<r&&(s=r),i[o]=new rS.Token(s,n.scopes,t),r=s}return i}static adaptTokenize(e,t,i,r){let o,n=t.tokenize(i,r),s=o0._toClassicTokens(n.tokens,e);return o=n.endState.equals(r)?r:n.endState,new rS.TokenizationResult(s,o)}tokenize(e,t,i){return o0.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){let i=e.encodeLanguageId(this._languageId),r=this._standaloneThemeService.getColorTheme().tokenTheme,o=[],n=0,s=0;for(let e=0,a=t.length;e<a;e++){let a=t[e],l=r.match(i,a.scopes)|rR.MetadataConsts.BALANCED_BRACKETS_MASK;if(n>0&&o[n-1]===l)continue;let c=a.startIndex;0===e?c=0:c<s&&(c=s),o[n++]=c,o[n++]=l,s=c}let a=new Uint32Array(n);for(let e=0;e<n;e++)a[e]=o[e];return a}tokenizeEncoded(e,t,i){let r,o=this._actual.tokenize(e,i),n=this._toBinaryTokens(this._languageService.languageIdCodec,o.tokens);return r=o.endState.equals(i)?i:o.endState,new rS.EncodedTokenizationResult(n,[],r)}}function o1(e){return e&&"function"==typeof e.then}function o2(e,t){return"tokenizeEncoded"in t?new oZ(e,t):new o0(e,t,r0.StandaloneServices.get(rb.ILanguageService),r0.StandaloneServices.get(r1.IStandaloneThemeService))}function o6(e,t){let i=new rS.LazyTokenizationSupport(async()=>{let i=await Promise.resolve(t.create());return i?"function"==typeof i.getInitialState?o2(e,i):new rQ(r0.StandaloneServices.get(rb.ILanguageService),r0.StandaloneServices.get(r1.IStandaloneThemeService),e,oY(e,i),r0.StandaloneServices.get(rW.IConfigurationService)):null});return rS.TokenizationRegistry.registerFactory(e,i)}var o3=e.i(264901),o4=e.i(322193);rs.EditorOptions.wrappingIndent.defaultValue=rs.WrappingIndent.None,rs.EditorOptions.glyphMargin.defaultValue=!1,rs.EditorOptions.autoIndent.defaultValue=rs.EditorAutoIndentStrategy.Advanced,rs.EditorOptions.overviewRulerLanes.defaultValue=2,o3.FormattingConflicts.setFormatterSelector((e,t,i)=>Promise.resolve(e[0]));let o5=(0,ra.createMonacoBaseAPI)();o5.editor={create:function(e,t,i){return r0.StandaloneServices.initialize(i||{}).createInstance(rZ.StandaloneEditor,e,t)},getEditors:function(){return r0.StandaloneServices.get(rm.ICodeEditorService).listCodeEditors()},getDiffEditors:function(){return r0.StandaloneServices.get(rm.ICodeEditorService).listDiffEditors()},onDidCreateEditor:function(e){return r0.StandaloneServices.get(rm.ICodeEditorService).onCodeEditorAdd(t=>{e(t)})},onDidCreateDiffEditor:function(e){return r0.StandaloneServices.get(rm.ICodeEditorService).onDiffEditorAdd(t=>{e(t)})},createDiffEditor:function(e,t,i){return r0.StandaloneServices.initialize(i||{}).createInstance(rZ.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 r6.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=r3.ContextKeyExpr.deserialize(e.precondition),i=new rd.DisposableStore;if(i.add(r6.CommandsRegistry.registerCommand(e.id,(i,...r)=>rp.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(r2.MenuRegistry.appendMenuItem(r2.MenuId.EditorContext,r))}if(Array.isArray(e.keybindings)){let r=r0.StandaloneServices.get(r4.IKeybindingService);if(r instanceof r0.StandaloneKeybindingService){let o=r3.ContextKeyExpr.and(t,r3.ContextKeyExpr.deserialize(e.keybindingContext));i.add(r.addDynamicKeybindings(e.keybindings.map(t=>({keybinding:t,command:e.id,when:o}))))}else console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService")}return i},addKeybindingRule:function(e){return oU([e])},addKeybindingRules:oU,createModel:function(e,t,i){let r=r0.StandaloneServices.get(rb.ILanguageService),o=r.getLanguageIdByMimeType(t)||t;return(0,rZ.createTextModel)(r0.StandaloneServices.get(rE.IModelService),r,e,o,i)},setModelLanguage:function(e,t){let i=r0.StandaloneServices.get(rb.ILanguageService),r=i.getLanguageIdByMimeType(t)||t||rw.PLAINTEXT_LANGUAGE_ID;e.setLanguage(i.createById(r))},setModelMarkers:function(e,t,i){e&&r0.StandaloneServices.get(r5.IMarkerService).changeOne(t,e.uri,i)},getModelMarkers:function(e){return r0.StandaloneServices.get(r5.IMarkerService).read(e)},removeAllMarkers:function(e){r0.StandaloneServices.get(r5.IMarkerService).changeAll(e,[])},onDidChangeMarkers:function(e){return r0.StandaloneServices.get(r5.IMarkerService).onMarkerChanged(e)},getModels:function(){return r0.StandaloneServices.get(rE.IModelService).getModels()},getModel:function(e){return r0.StandaloneServices.get(rE.IModelService).getModel(e)},onDidCreateModel:function(e){return r0.StandaloneServices.get(rE.IModelService).onModelAdded(e)},onWillDisposeModel:function(e){return r0.StandaloneServices.get(rE.IModelService).onModelRemoved(e)},onDidChangeModelLanguage:function(e){return r0.StandaloneServices.get(rE.IModelService).onModelLanguageChanged(t=>{e({model:t.model,oldLanguage:t.oldLanguageId})})},createWebWorker:function(e){var t;return t=r0.StandaloneServices.get(rE.IModelService),new rv(t,r0.StandaloneServices.get(oH.IWebWorkerService),e)},colorizeElement:function(e,t){let i=r0.StandaloneServices.get(rb.ILanguageService),r=r0.StandaloneServices.get(r1.IStandaloneThemeService);return rY.colorizeElement(r,i,e,t).then(()=>{r.registerEditorContainer(e)})},colorize:function(e,t,i){let r=r0.StandaloneServices.get(rb.ILanguageService);return r0.StandaloneServices.get(r1.IStandaloneThemeService).registerEditorContainer(rc.mainWindow.document.body),rY.colorize(r,e,t,i)},colorizeModelLine:function(e,t,i=4){return r0.StandaloneServices.get(r1.IStandaloneThemeService).registerEditorContainer(rc.mainWindow.document.body),rY.colorizeModelLine(e,t,i)},tokenize:function(e,t){let i;rS.TokenizationRegistry.getOrCreate(t);let r=(i=rS.TokenizationRegistry.get(t))||{getInitialState:()=>rx.NullState,tokenize:(e,i,r)=>(0,rx.nullTokenize)(t,r)},o=(0,ru.splitLines)(e),n=[],s=r.getInitialState();for(let e=0,t=o.length;e<t;e++){let t=o[e],i=r.tokenize(t,!0,s);n[e]=i.tokens,s=i.endState}return n},defineTheme:function(e,t){r0.StandaloneServices.get(r1.IStandaloneThemeService).defineTheme(e,t)},setTheme:function(e){r0.StandaloneServices.get(r1.IStandaloneThemeService).setTheme(e)},remeasureFonts:function(){rg.FontMeasurements.clearAllFontInfos()},registerCommand:function(e,t){return r6.CommandsRegistry.registerCommand({id:e,handler:t})},registerLinkOpener:function(e){return r0.StandaloneServices.get(r8.IOpenerService).registerOpener({open:async t=>("string"==typeof t&&(t=rh.URI.parse(t)),e.open(t))})},registerEditorOpener:function(e){return r0.StandaloneServices.get(rm.ICodeEditorService).registerCodeEditorOpenHandler(async(t,i,r)=>{let o;if(!i)return null;let n=t.options?.selection;return(n&&"number"==typeof n.endLineNumber&&"number"==typeof n.endColumn?o=n:n&&(o={lineNumber:n.startLineNumber,column:n.startColumn}),await e.openCodeEditor(i,t.resource,o))?i:null})},AccessibilitySupport:rk.AccessibilitySupport,ContentWidgetPositionPreference:rk.ContentWidgetPositionPreference,CursorChangeReason:rk.CursorChangeReason,DefaultEndOfLine:rk.DefaultEndOfLine,EditorAutoIndentStrategy:rk.EditorAutoIndentStrategy,EditorOption:rk.EditorOption,EndOfLinePreference:rk.EndOfLinePreference,EndOfLineSequence:rk.EndOfLineSequence,MinimapPosition:rk.MinimapPosition,MinimapSectionHeaderStyle:rk.MinimapSectionHeaderStyle,MouseTargetType:rk.MouseTargetType,OverlayWidgetPositionPreference:rk.OverlayWidgetPositionPreference,OverviewRulerLane:rk.OverviewRulerLane,GlyphMarginLane:rk.GlyphMarginLane,RenderLineNumbersType:rk.RenderLineNumbersType,RenderMinimap:rk.RenderMinimap,ScrollbarVisibility:rk.ScrollbarVisibility,ScrollType:rk.ScrollType,TextEditorCursorBlinkingStyle:rk.TextEditorCursorBlinkingStyle,TextEditorCursorStyle:rk.TextEditorCursorStyle,TrackedRangeStickiness:rk.TrackedRangeStickiness,WrappingIndent:rk.WrappingIndent,InjectedTextCursorStops:rk.InjectedTextCursorStops,PositionAffinity:rk.PositionAffinity,ShowLightbulbIconMode:rk.ShowLightbulbIconMode,TextDirection:rk.TextDirection,ConfigurationChangedEvent:rs.ConfigurationChangedEvent,BareFontInfo:ry.BareFontInfo,FontInfo:ry.FontInfo,TextModelResolvedOptions:rD.TextModelResolvedOptions,FindMatch:rD.FindMatch,ApplyUpdateResult:rs.ApplyUpdateResult,EditorZoom:r_.EditorZoom,createMultiFileDiffEditor:function(e,t){let i=r0.StandaloneServices.initialize(t||{});return new o$(e,{},i)},EditorType:rC.EditorType,EditorOptions:rs.EditorOptions},o5.languages={register:function(e){rw.ModesRegistry.registerLanguage(e)},getLanguages:function(){let e=[];return e.concat(rw.ModesRegistry.getLanguages())},onLanguage:function(e,t){return r0.StandaloneServices.withServices(()=>{let i=r0.StandaloneServices.get(rb.ILanguageService).onDidRequestRichLanguageFeatures(r=>{r===e&&(i.dispose(),t())});return i})},onLanguageEncountered:function(e,t){return r0.StandaloneServices.withServices(()=>{let i=r0.StandaloneServices.get(rb.ILanguageService).onDidRequestBasicLanguageFeatures(r=>{r===e&&(i.dispose(),t())});return i})},getEncodedLanguageId:function(e){return r0.StandaloneServices.get(rb.ILanguageService).languageIdCodec.encodeLanguageId(e)},setLanguageConfiguration:function(e,t){if(!r0.StandaloneServices.get(rb.ILanguageService).isRegisteredLanguageId(e))throw Error(`Cannot set configuration for unknown language ${e}`);return r0.StandaloneServices.get(oj.ILanguageConfigurationService).register(e,t,100)},setColorMap:function(e){let t=r0.StandaloneServices.get(r1.IStandaloneThemeService);if(e){let i=[null];for(let t=1,r=e.length;t<r;t++)i[t]=oW.Color.fromHex(e[t]);t.setColorMapOverride(i)}else t.setColorMapOverride(null)},registerTokensProviderFactory:o6,setTokensProvider:function(e,t){if(!r0.StandaloneServices.get(rb.ILanguageService).isRegisteredLanguageId(e))throw Error(`Cannot set tokens provider for unknown language ${e}`);return o1(t)?o6(e,{create:()=>t}):rS.TokenizationRegistry.register(e,o2(e,t))},setMonarchTokensProvider:function(e,t){return o1(t)?o6(e,{create:()=>t}):rS.TokenizationRegistry.register(e,new rQ(r0.StandaloneServices.get(rb.ILanguageService),r0.StandaloneServices.get(r1.IStandaloneThemeService),e,oY(e,t),r0.StandaloneServices.get(rW.IConfigurationService)))},registerReferenceProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).referenceProvider.register(e,t)},registerRenameProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).renameProvider.register(e,t)},registerNewSymbolNameProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).newSymbolNamesProvider.register(e,t)},registerCompletionItemProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).completionProvider.register(e,t)},registerSignatureHelpProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).signatureHelpProvider.register(e,t)},registerHoverProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).hoverProvider.register(e,{provideHover:async(e,i,r,o)=>{let n=e.getWordAtPosition(i);return Promise.resolve(t.provideHover(e,i,r,o)).then(e=>{if(e)return!e.range&&n&&(e.range=new oq.Range(i.lineNumber,n.startColumn,i.lineNumber,n.endColumn)),e.range||(e.range=new oq.Range(i.lineNumber,i.column,i.lineNumber,i.column)),e})}})},registerDocumentSymbolProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).documentSymbolProvider.register(e,t)},registerDocumentHighlightProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).documentHighlightProvider.register(e,t)},registerLinkedEditingRangeProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).linkedEditingRangeProvider.register(e,t)},registerDefinitionProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).definitionProvider.register(e,t)},registerImplementationProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).implementationProvider.register(e,t)},registerTypeDefinitionProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).typeDefinitionProvider.register(e,t)},registerCodeLensProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).codeLensProvider.register(e,t)},registerCodeActionProvider:function(e,t,i){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).codeActionProvider.register(e,{providedCodeActionKinds:i?.providedCodeActionKinds,documentation:i?.documentation,provideCodeActions:(e,i,r,o)=>{let n=r0.StandaloneServices.get(r5.IMarkerService).read({resource:e.uri}).filter(e=>oq.Range.areIntersectingOrTouching(e,i));return t.provideCodeActions(e,i,{markers:n,only:r.only,trigger:r.trigger},o)},resolveCodeAction:t.resolveCodeAction})},registerDocumentFormattingEditProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).documentFormattingEditProvider.register(e,t)},registerDocumentRangeFormattingEditProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).documentRangeFormattingEditProvider.register(e,t)},registerOnTypeFormattingEditProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).onTypeFormattingEditProvider.register(e,t)},registerLinkProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).linkProvider.register(e,t)},registerColorProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).colorProvider.register(e,t)},registerFoldingRangeProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).foldingRangeProvider.register(e,t)},registerDeclarationProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).declarationProvider.register(e,t)},registerSelectionRangeProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).selectionRangeProvider.register(e,t)},registerDocumentSemanticTokensProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).documentSemanticTokensProvider.register(e,t)},registerDocumentRangeSemanticTokensProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).documentRangeSemanticTokensProvider.register(e,t)},registerInlineCompletionsProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).inlineCompletionsProvider.register(e,t)},registerInlayHintsProvider:function(e,t){return r0.StandaloneServices.get(oz.ILanguageFeaturesService).inlayHintsProvider.register(e,t)},DocumentHighlightKind:rk.DocumentHighlightKind,CompletionItemKind:rk.CompletionItemKind,CompletionItemTag:rk.CompletionItemTag,CompletionItemInsertTextRule:rk.CompletionItemInsertTextRule,SymbolKind:rk.SymbolKind,SymbolTag:rk.SymbolTag,IndentAction:rk.IndentAction,CompletionTriggerKind:rk.CompletionTriggerKind,SignatureHelpTriggerKind:rk.SignatureHelpTriggerKind,InlayHintKind:rk.InlayHintKind,InlineCompletionTriggerKind:rk.InlineCompletionTriggerKind,CodeActionTriggerType:rk.CodeActionTriggerType,NewSymbolNameTag:rk.NewSymbolNameTag,NewSymbolNameTriggerKind:rk.NewSymbolNameTriggerKind,PartialAcceptTriggerKind:rk.PartialAcceptTriggerKind,HoverVerbosityAction:rk.HoverVerbosityAction,InlineCompletionEndOfLifeReasonKind:rk.InlineCompletionEndOfLifeReasonKind,InlineCompletionHintStyle:rk.InlineCompletionHintStyle,FoldingRangeKind:rS.FoldingRangeKind,SelectedSuggestionInfo:rS.SelectedSuggestionInfo,EditDeltaInfo:oX.EditDeltaInfo},o5.CancellationTokenSource,o5.Emitter,o5.KeyCode,o5.KeyMod,o5.Position,o5.Range,o5.Selection,o5.SelectionDirection,o5.MarkerSeverity,o5.MarkerTag,o5.Uri,o5.Token;let o8=o5.editor,o7=o5.languages,o9=(0,o4.getMonacoEnvironment)(),ne=globalThis;(o9?.globalAPI||"function"==typeof ne.define&&ne.define.amd)&&(ne.monaco=o5),void 0!==ne.require&&"function"==typeof ne.require.config&&ne.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 nt=e.i(106452);let ni=o7.onLanguage;o7.onLanguage=(e,t)=>(0,rn.withReadyServices)(()=>ni(e,t));let nr=o7.onLanguage;o7.onLanguageEncountered=(e,t)=>(0,rn.withReadyServices)(()=>nr(e,t)),o8.create=nt.createConfiguredEditor,o8.createDiffEditor=nt.createConfiguredDiffEditor,o8.createModelReference=nt.createModelReference,o8.writeFile=nt.writeFile;var no=e.i(290231),nn=e.i(22465),ns=e.i(467724),na=e.i(107043),nl=e.i(702320),nc=e.i(193409),nd=e.i(554250),nu=rd,nh=e.i(819593),ng=e.i(13306);let np=class extends nu.Disposable{constructor(e,t,i){super(),this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=this._register(new r7.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,nh.Position.isIPosition(t)?t:null,i):this._getValue(e,null,"string"==typeof t?t:void 0)}updateValue(e,t,i,r){let o=e?this.getLanguage(e,null):null,n=this.configurationService.inspect(t,{resource:e,overrideIdentifier:o});void 0===r&&(r=this.deriveConfigurationTarget(n,o));let s=o&&n.overrideIdentifiers?.includes(o)?o: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 ng.ConfigurationTarget.MEMORY;if(e.workspaceFolder?.override!==void 0)return ng.ConfigurationTarget.WORKSPACE_FOLDER;if(e.workspace?.override!==void 0)return ng.ConfigurationTarget.WORKSPACE;if(e.userRemote?.override!==void 0)return ng.ConfigurationTarget.USER_REMOTE;if(e.userLocal?.override!==void 0)return ng.ConfigurationTarget.USER_LOCAL}return e.memory?.value!==void 0?ng.ConfigurationTarget.MEMORY:e.workspaceFolder?.value!==void 0?ng.ConfigurationTarget.WORKSPACE_FOLDER:e.workspace?.value!==void 0?ng.ConfigurationTarget.WORKSPACE:e.userRemote?.value!==void 0?ng.ConfigurationTarget.USER_REMOTE:ng.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}]`)}}}};np=(0,rM.__decorate)([(0,rM.__param)(0,rW.IConfigurationService),(0,rM.__param)(1,rE.IModelService),(0,rM.__param)(2,rb.ILanguageService)],np);var nm=e.i(2267),nf=e.i(553638),nv=e.i(526097),n_=e.i(853457),ny=e.i(990091),nC=e.i(621826),nS=e.i(474320),nb=e.i(991307),nw=e.i(399362),nx=e.i(506986),nD=e.i(107700),nE=e.i(425024),nk=e.i(4160);let nT=".vscode",nR="settings",nP=`${nT}/${nR}.json`,nI="vscode://schemas/settings/workspace",nA=[nm.ConfigurationScope.APPLICATION,nm.ConfigurationScope.APPLICATION_MACHINE],nM=[nm.ConfigurationScope.MACHINE,nm.ConfigurationScope.WINDOW,nm.ConfigurationScope.RESOURCE,nm.ConfigurationScope.LANGUAGE_OVERRIDABLE,nm.ConfigurationScope.MACHINE_OVERRIDABLE],nL=[nm.ConfigurationScope.WINDOW,nm.ConfigurationScope.RESOURCE,nm.ConfigurationScope.LANGUAGE_OVERRIDABLE],nF=[nm.ConfigurationScope.APPLICATION,...nL],nO=[nm.ConfigurationScope.MACHINE,nm.ConfigurationScope.APPLICATION_MACHINE,nm.ConfigurationScope.WINDOW,nm.ConfigurationScope.RESOURCE,nm.ConfigurationScope.LANGUAGE_OVERRIDABLE,nm.ConfigurationScope.MACHINE_OVERRIDABLE],nN=[nm.ConfigurationScope.WINDOW,nm.ConfigurationScope.RESOURCE,nm.ConfigurationScope.LANGUAGE_OVERRIDABLE,nm.ConfigurationScope.MACHINE_OVERRIDABLE],n$=[nm.ConfigurationScope.RESOURCE,nm.ConfigurationScope.LANGUAGE_OVERRIDABLE,nm.ConfigurationScope.MACHINE_OVERRIDABLE],nH="tasks",nU="launch",nW=Object.create(null);nW[nH]=`${nT}/${nH}.json`,nW[nU]=`${nT}/${nU}.json`,nW.mcp=`${nT}/mcp.json`;let nq=Object.create(null);nq[nH]=`${nH}.json`,nq.mcp="mcp.json";let nj="workbench.settings.applyToAllProfiles";var nz=e.i(608326),nK=e.i(888961),nV=rd,nB=e.i(399119),nG=e.i(367835);let nQ=nC.Registry.as(nk.Extensions.JSONContribution),nJ=nC.Registry.as(nm.Extensions.Configuration),nY={type:"object",defaultSnippets:[{body:{title:"",properties:{}}}],properties:{title:{description:(0,oi.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,oi.localize)(2627,"When specified, gives the order of this category of settings relative to other categories."),type:"integer"},properties:{description:(0,oi.localize)(2628,"Description of the configuration properties."),type:"object",propertyNames:{pattern:"\\S+",patternErrorMessage:(0,oi.localize)(2629,"Property should not be empty.")},additionalProperties:{anyOf:[{title:(0,oi.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,oi.localize)(2631,"Configuration that can be configured only in the user settings."),(0,oi.localize)(2632,"Configuration that can be configured only in the user settings or only in the remote settings."),(0,oi.localize)(2633,"Configuration that can be configured in the user, remote or workspace settings."),(0,oi.localize)(2634,"Configuration that can be configured in the user, remote, workspace or folder settings."),(0,oi.localize)(2635,"Resource configuration that can be configured in language specific settings."),(0,oi.localize)(2636,"Machine configuration that can be configured also in workspace or folder settings.")],markdownDescription:(0,oi.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,oi.localize)(2638,"Descriptions for enum values")},markdownEnumDescriptions:{type:"array",items:{type:"string"},description:(0,oi.localize)(2639,"Descriptions for enum values in the markdown format.")},enumItemLabels:{type:"array",items:{type:"string"},markdownDescription:(0,oi.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,oi.localize)(2641,"The description in the markdown format.")},deprecationMessage:{type:"string",description:(0,oi.localize)(2642,"If set, the property is marked as deprecated and the given message is shown as an explanation.")},markdownDeprecationMessage:{type:"string",description:(0,oi.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,oi.localize)(2644,"The value will be shown in an inputbox."),(0,oi.localize)(2645,"The value will be shown in a textarea.")],default:"singlelineText",description:(0,oi.localize)(2646,"When specified, controls the presentation format of the string setting.")},order:{type:"integer",description:(0,oi.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,oi.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,oi.localize)(2649,"Accessibility settings"),(0,oi.localize)(2650,"Advanced settings are hidden by default in the Settings editor unless the user chooses to show advanced settings."),(0,oi.localize)(2651,"Experimental settings are subject to change and may be removed in future releases."),(0,oi.localize)(2652,"Preview settings can be used to try out new features before they are finalized."),(0,oi.localize)(2653,"Telemetry settings"),(0,oi.localize)(2654,"Settings that use online services")]},additionalItems:!0,markdownDescription:(0,oi.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`.")}}}]}}}},nX=nE.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"configurationDefaults",jsonSchema:{$ref:nm.configurationDefaultsSchemaId},canHandleResolver:!0});nX.setHandler((e,{added:i,removed:r})=>{t&&nJ.deltaConfiguration(t);let o=t={};if(queueMicrotask(()=>{t===o&&(nJ.deltaConfiguration(t),t=void 0)}),r.length){let e=r.map(e=>({overrides:(0,nD.deepClone)(e.value),source:{id:e.description.identifier.value,displayName:e.description.displayName}}));t.removedDefaults=e}if(i.length){let e=nJ.getConfigurationProperties(),r=[nm.ConfigurationScope.MACHINE_OVERRIDABLE,nm.ConfigurationScope.WINDOW,nm.ConfigurationScope.RESOURCE,nm.ConfigurationScope.LANGUAGE_OVERRIDABLE],o=i.map(t=>{let i=(0,nD.deepClone)(t.value);for(let o of Object.keys(i)){let n=e[o];if(n?.disallowConfigurationDefault){t.collector.warn((0,oi.localize)(2656,"Cannot register configuration defaults for '{0}'. This setting does not allow contributing configuration defaults.",o)),delete i[o];continue}if(!nm.OVERRIDE_PROPERTY_REGEX.test(o)&&n?.scope&&!r.includes(n.scope)){t.collector.warn((0,oi.localize)(2657,"Cannot register configuration defaults for '{0}'. Only defaults for machine-overridable, window, resource and language overridable scoped settings are supported.",o)),delete i[o];continue}}return{overrides:i,source:{id:t.description.identifier.value,displayName:t.description.displayName}}});t.addedDefaults=o}});let nZ=nE.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"configuration",deps:[nX],jsonSchema:{description:(0,oi.localize)(2658,"Contributes configuration settings."),oneOf:[nY,{type:"array",items:nY}]},canHandleResolver:!0}),n0=new nz.ExtensionIdentifierMap;nZ.setHandler((e,{added:i,removed:r})=>{if(t??={},r.length){let e=[];for(let t of r)e.push(...n0.get(t.description.identifier)||[]),n0.delete(t.description.identifier);t.removedConfigurations=e}let o=new Set;function n(e,t){let i=(0,nD.deepClone)(e);return i.title&&"string"!=typeof i.title&&t.collector.error((0,oi.localize)(2659,"'configuration.title' must be a string")),function e(t,i){let r=t.properties,n=nG.default.extensionConfigurationPolicy;if(r)for(let e in"object"!=typeof r&&(i.collector.error((0,oi.localize)(2660,"'configuration.properties' must be an object")),t.properties={}),r){let t=r[e],s=(0,nm.validateProperty)(e,t,i.description.identifier.value);if(s){delete r[e],i.collector.warn(s);continue}if(o.has(e)&&!nm.EXTENSION_UNIFICATION_EXTENSION_IDS.has(i.description.identifier.value.toLowerCase())){delete r[e],i.collector.warn((0,oi.localize)(2661,"Cannot register '{0}'. This property is already registered.",e));continue}if(!(0,oK.isObject)(t)){delete r[e],i.collector.error((0,oi.localize)(2662,"configuration.properties property '{0}' must be an object",e));continue}n?.[e]&&(t.policy=n?.[e]),t.tags?.some(e=>"onexp"===e.toLowerCase())&&(t.experiment={mode:"startup"}),o.add(e),t.scope=t.scope?(0,nm.parseScope)(t.scope.toString()):nm.ConfigurationScope.WINDOW}let s=t.allOf;if(s)for(let t of(i.collector.error((0,oi.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(n(e,t))):i.push(n(r,t)),n0.set(t.description.identifier,i),e.push(...i)}t.addedConfigurations=e}nJ.deltaConfiguration(t),t=void 0}),nQ.registerSchema("vscode://schemas/workspaceConfig",{allowComments:!0,allowTrailingCommas:!0,default:{folders:[{path:""}],settings:{}},required:["folders"],properties:{folders:{minItems:0,uniqueItems:!0,description:(0,oi.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,oi.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,oi.localize)(2666,"An optional name for the folder. ")}},required:["path"]},{properties:{uri:{type:"string",description:(0,oi.localize)(2667,"URI of the folder")},name:{type:"string",description:(0,oi.localize)(2666,"An optional name for the folder. ")}},required:["uri"]}]}},settings:{type:"object",default:{},description:(0,oi.localize)(2668,"Workspace settings"),$ref:nI},launch:{type:"object",default:{configurations:[],compounds:[]},description:(0,oi.localize)(2669,"Workspace launch configurations"),$ref:"vscode://schemas/launch"},tasks:{type:"object",default:{version:"2.0.0",tasks:[]},description:(0,oi.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,oi.localize)(2671,"Model Context Protocol server configurations"),$ref:"vscode://schemas/mcp"},extensions:{type:"object",default:{},description:(0,oi.localize)(2672,"Workspace extensions"),$ref:"vscode://schemas/extensions"},remoteAuthority:{type:"string",doNotSuggest:!0,description:(0,oi.localize)(2673,"The remote server where the workspace is located.")},transient:{type:"boolean",doNotSuggest:!0,description:(0,oi.localize)(2674,"A transient workspace will disappear when restarting or reloading.")}},errorMessage:(0,oi.localize)(2675,"Unknown workspace configuration property")});class n1 extends nV.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,nm.getAllConfigurationProperties)(t),r=i?Object.keys(i):[];return{data:{headers:[(0,oi.localize)(2676,"ID"),(0,oi.localize)(2677,"Description"),(0,oi.localize)(2678,"Default")],rows:r.sort((e,t)=>e.localeCompare(t)).map(e=>[new nB.MarkdownString().appendMarkdown(`\`${e}\``),i[e].markdownDescription?new nB.MarkdownString(i[e].markdownDescription,!1):i[e].description??"",new nB.MarkdownString().appendCodeblock("json",JSON.stringify((0,oK.isUndefined)(i[e].default)?(0,nm.getDefaultValue)(i[e].type):i[e].default,null,2))])},dispose:()=>{}}}}nC.Registry.as(nK.Extensions.ExtensionFeaturesRegistry).registerExtensionFeature({id:"configuration",label:(0,oi.localize)(2679,"Settings"),access:{canToggle:!1},renderer:new nv.SyncDescriptor(n1)});class n2 extends nV.Disposable{constructor(){super(...arguments),this.type="table"}shouldRender(e){return!!e.contributes?.configurationDefaults}render(e){let t=e.contributes?.configurationDefaults??{},i=[(0,oi.localize)(2680,"Languages"),(0,oi.localize)(2681,"Setting"),(0,oi.localize)(2682,"Override Value")],r=[];for(let e of Object.keys(t).sort((e,t)=>e.localeCompare(t))){let i=t[e];if(nm.OVERRIDE_PROPERTY_REGEX.test(e)){let t=(0,nm.overrideIdentifiersFromKey)(e),o=new nB.MarkdownString().appendMarkdown(`${t.join(", ")}`);for(let e of Object.keys(i).sort((e,t)=>e.localeCompare(t))){let t=[];t.push(o),t.push(new nB.MarkdownString().appendMarkdown(`\`${e}\``)),t.push(new nB.MarkdownString().appendCodeblock("json",JSON.stringify(i[e],null,2))),r.push(t)}}else{let t=[];t.push(""),t.push(new nB.MarkdownString().appendMarkdown(`\`${e}\``)),t.push(new nB.MarkdownString().appendCodeblock("json",JSON.stringify(i,null,2))),r.push(t)}}return{data:{headers:i,rows:r},dispose:()=>{}}}}nC.Registry.as(nK.Extensions.ExtensionFeaturesRegistry).registerExtensionFeature({id:"configurationDefaults",label:(0,oi.localize)(2683,"Settings Default Overrides"),access:{canToggle:!1},renderer:new nv.SyncDescriptor(n2)});var n6=e.i(697786),n3=e.i(683578),n4=e.i(578953),n5=rd,n8=e.i(216822),n7=e.i(975445),n9=e.i(693162),se=e.i(74304),st=e.i(428048),si=e.i(701575),sr=e.i(140889),so=e.i(927718),sn=r2,ss=e.i(856884),sa=e.i(51593),sl=e.i(770326);let sc=class extends n5.Disposable{constructor(e,t,i,r,o,n){super(),this.contextService=e,this.notificationService=t,this.fileService=i,this.quickInputService=r,this.hostService=o,this.storageService=n,this.findWorkspaces()}async findWorkspaces(){let e=this.contextService.getWorkspace().folders[0];if(!e||this.contextService.getWorkbenchState()!==n4.WorkbenchState.FOLDER||(0,so.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(n4.hasWorkspaceFileExtension);i.length>0&&this.doHandleWorkspaceFiles(e.uri,i)}}doHandleWorkspaceFiles(e,t){let i={id:"workspaces.dontPromptToOpen",scope:n8.NeverShowAgainScope.WORKSPACE,isSecondary:!0};if(1===t.length){let r=t[0];this.notificationService.prompt(sl.default.Info,(0,oi.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,oi.localize)(13580,"Open Workspace"),run:()=>this.hostService.openWindow([{workspaceUri:(0,n9.joinPath)(e,r)}])}],{neverShowAgain:i,priority:this.storageService.isNew(si.StorageScope.WORKSPACE)?n8.NotificationPriority.OPTIONAL:n8.NotificationPriority.SILENT})}else t.length>1&&this.notificationService.prompt(sl.default.Info,(0,oi.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,oi.localize)(13582,"Select Workspace"),run:()=>{this.quickInputService.pick(t.map(e=>({label:e})),{placeHolder:(0,oi.localize)(13583,"Select a workspace to open")}).then(t=>{t&&this.hostService.openWindow([{workspaceUri:(0,n9.joinPath)(e,t.label)}])})}}],{neverShowAgain:i,priority:this.storageService.isNew(si.StorageScope.WORKSPACE)?n8.NotificationPriority.OPTIONAL:n8.NotificationPriority.SILENT})}};sc=(0,rM.__decorate)([(0,rM.__param)(0,nw.IWorkspaceContextService),(0,rM.__param)(1,n7.INotificationService),(0,rM.__param)(2,nf.IFileService),(0,rM.__param)(3,st.IQuickInputService),(0,rM.__param)(4,se.IHostService),(0,rM.__param)(5,sr.IStorageService)],sc),nC.Registry.as(n6.Extensions.Workbench).registerWorkbenchContribution(sc,n3.LifecyclePhase.Eventually),(0,sn.registerAction2)(class extends sn.Action2{constructor(){super({id:"workbench.action.openWorkspaceFromEditor",title:(0,oi.localize2)(13580,"Open Workspace"),f1:!1,menu:{id:sn.MenuId.EditorContent,when:r3.ContextKeyExpr.and(ss.ResourceContextKey.Extension.isEqualTo(n4.WORKSPACE_SUFFIX),ss.ActiveEditorContext.isEqualTo(sa.TEXT_FILE_EDITOR_ID),ss.TemporaryWorkspaceContext.toNegated())}})}async run(e,t){let i=e.get(se.IHostService),r=e.get(nw.IWorkspaceContextService),o=e.get(n7.INotificationService);if(r.getWorkbenchState()===n4.WorkbenchState.WORKSPACE){let e=r.getWorkspace().configuration;if(e&&(0,n9.isEqual)(e,t))return void o.info((0,oi.localize)(13584,"This workspace is already open."))}return i.openWindow([{workspaceUri:t}])}});var sd=e.i(802186),su=rd,sh=e.i(590746),sg=n4,sp=e.i(737917),sm=e.i(378442),sf=sp;class sv extends sf.ConfigurationModelParser{constructor(e,t){super(e,t),this._folders=[],this._transient=!1,this._settingsModelParser=new sf.ConfigurationModelParser(e,t),this._launchModel=sf.ConfigurationModel.createEmptyModel(t),this._tasksModel=sf.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,oK.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,ng.toValuesTree)(i,e=>console.error(`Conflict in settings file ${this._name}: ${e}`)),r=Object.create(null);r[t]=e;let o=Object.keys(i).map(e=>`${t}.${e}`);return new sf.ConfigurationModel(r,o,[],void 0,this.logService)}return sf.ConfigurationModel.createEmptyModel(this.logService)}}class s_ extends sf.ConfigurationModelParser{constructor(e,t,i){super(e,i),this.scope=t}doParseRaw(e,t){let i=(0,ng.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 sy extends sf.Configuration{constructor(e,t,i,r,o,n,s,a,l,c,d){super(e,t,i,r,o,n,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 o=[];return o.push(...i.filter(e=>-1===t.indexOf(e))),o.push(...t.filter(e=>-1===i.indexOf(e))),o.push(...t.filter(t=>-1!==i.indexOf(t)&&(!(0,nD.equals)(this.getValue(t,{overrideIdentifier:r}),e.getValue(t,{overrideIdentifier:r}))||this._workspace&&this._workspace.folders.some(i=>!(0,nD.equals)(this.getValue(t,{resource:i.uri,overrideIdentifier:r}),e.getValue(t,{resource:i.uri,overrideIdentifier:r})))))),o},i=t(this.allKeys(),e.allKeys()),r=[];for(let i of(0,ox.distinct)([...this.allOverrideIdentifiers(),...e.allOverrideIdentifiers()])){let o=t(this.getAllKeysForOverrideIdentifier(i),e.getAllKeysForOverrideIdentifier(i),i);o.length&&r.push([i,o])}return{keys:i,overrides:r}}}var sC=e.i(95940),sS=e.i(292608),sb=e.i(242671),sw=e.i(170774),sx=e.i(386567),sD=e.i(652731),sE=e.i(905670),sk=e.i(362361),sT=e.i(509046),sR=e.i(315380),sP=e.i(17607),sI=oE,sA=e.i(951129);(E=N||(N={}))[E.ERROR_UNKNOWN_KEY=0]="ERROR_UNKNOWN_KEY",E[E.ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION=1]="ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION",E[E.ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE=2]="ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE",E[E.ERROR_INVALID_FOLDER_CONFIGURATION=3]="ERROR_INVALID_FOLDER_CONFIGURATION",E[E.ERROR_INVALID_USER_TARGET=4]="ERROR_INVALID_USER_TARGET",E[E.ERROR_INVALID_WORKSPACE_TARGET=5]="ERROR_INVALID_WORKSPACE_TARGET",E[E.ERROR_INVALID_FOLDER_TARGET=6]="ERROR_INVALID_FOLDER_TARGET",E[E.ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION=7]="ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION",E[E.ERROR_NO_WORKSPACE_OPENED=8]="ERROR_NO_WORKSPACE_OPENED",E[E.ERROR_CONFIGURATION_FILE_DIRTY=9]="ERROR_CONFIGURATION_FILE_DIRTY",E[E.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE=10]="ERROR_CONFIGURATION_FILE_MODIFIED_SINCE",E[E.ERROR_INVALID_CONFIGURATION=11]="ERROR_INVALID_CONFIGURATION",E[E.ERROR_POLICY_CONFIGURATION=12]="ERROR_POLICY_CONFIGURATION",E[E.ERROR_INTERNAL=13]="ERROR_INTERNAL";class sM extends sI.ErrorNoTelemetry{constructor(e,t){super(e),this.code=t}}(k=$||($={}))[k.USER_LOCAL=1]="USER_LOCAL",k[k.USER_REMOTE=2]="USER_REMOTE",k[k.WORKSPACE=3]="WORKSPACE",k[k.WORKSPACE_FOLDER=4]="WORKSPACE_FOLDER";let sL=class{constructor(e,t,i,r,o,n,s,a,l,c,d,u,h){this.remoteSettingsResource=e,this.configurationService=t,this.contextService=i,this.userDataProfileService=r,this.userDataProfilesService=o,this.fileService=n,this.textModelResolverService=s,this.textFileService=a,this.notificationService=l,this.preferencesService=c,this.editorService=d,this.uriIdentityService=u,this.filesConfigurationService=h,this.queue=new sh.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(N.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 o=this.getEdits(e,t.getValue(),i)[0];if(o){let i;try{i=this.filesConfigurationService.enableAutoSaveAfterShortDelay(t.uri),this.applyEditsToBuffer(o,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===sD.FileOperationResult.FILE_MODIFIED_SINCE)throw this.toConfigurationEditingError(N.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE,t.target,t);throw new sM((0,oi.localize)(13758,"Error while writing to {0}. {1}",this.stringifyTarget(t.target),e.message),N.ERROR_INTERNAL)}}applyEditsToBuffer(e,t){let i=t.getPositionAt(e.offset),r=t.getPositionAt(e.offset+e.length),o=new oq.Range(i.lineNumber,i.column,r.lineNumber,r.column),n=t.getValueInRange(o);if(e.content!==n){let r=n?sR.EditOperation.replace(o,e.content):sR.EditOperation.insert(i,e.content);return t.pushEditOperations([new oP.Selection(i.lineNumber,i.column,i.lineNumber,i.column)],[r],()=>[]),!0}return!1}getEdits({value:e,jsonPath:t},i,r){return t.length?(0,sb.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 N.ERROR_INVALID_CONFIGURATION:this.onInvalidConfigurationError(e,t);break;case N.ERROR_CONFIGURATION_FILE_DIRTY:this.onConfigurationFileDirtyError(e,t,i);break;case N.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===nH?(0,oi.localize)(13759,"Open Tasks Configuration"):t.workspaceStandAloneConfigurationKey===nU?(0,oi.localize)(13760,"Open Launch Configuration"):"mcp"===t.workspaceStandAloneConfigurationKey?(0,oi.localize)(13761,"Open MCP Configuration"):null;i?this.notificationService.prompt(sl.default.Error,e.message,[{label:i,run:()=>this.openFile(t.resource)}]):this.notificationService.prompt(sl.default.Error,e.message,[{label:(0,oi.localize)(13762,"Open Settings"),run:()=>this.openSettings(t)}])}onConfigurationFileDirtyError(e,t,i){let r=t.workspaceStandAloneConfigurationKey===nH?(0,oi.localize)(13759,"Open Tasks Configuration"):t.workspaceStandAloneConfigurationKey===nU?(0,oi.localize)(13760,"Open Launch Configuration"):null;r?this.notificationService.prompt(sl.default.Error,e.message,[{label:(0,oi.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(sl.default.Error,e.message,[{label:(0,oi.localize)(13763,"Save and Retry"),run:()=>this.writeConfiguration(t.target,{key:t.key,value:t.value},{handleDirtyFile:"save",scopes:i})},{label:(0,oi.localize)(13762,"Open Settings"),run:()=>this.openSettings(t)}])}openSettings(e){let t={jsonEditor:!0};switch(e.target){case $.USER_LOCAL:this.preferencesService.openUserSettings(t);break;case $.USER_REMOTE:this.preferencesService.openRemoteSettings(t);break;case $.WORKSPACE:this.preferencesService.openWorkspaceSettings(t);break;case $.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 sM(this.toErrorMessage(e,t,i),e)}toErrorMessage(e,t,i){switch(e){case N.ERROR_POLICY_CONFIGURATION:return(0,oi.localize)(13764,"Unable to write {0} because it is configured in system policy.",i.key);case N.ERROR_UNKNOWN_KEY:return(0,oi.localize)(13765,"Unable to write to {0} because {1} is not a registered configuration.",this.stringifyTarget(t),i.key);case N.ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION:return(0,oi.localize)(13766,"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",i.key);case N.ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE:return(0,oi.localize)(13767,"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",i.key);case N.ERROR_INVALID_FOLDER_CONFIGURATION:return(0,oi.localize)(13768,"Unable to write to Folder Settings because {0} does not support the folder resource scope.",i.key);case N.ERROR_INVALID_USER_TARGET:return(0,oi.localize)(13769,"Unable to write to User Settings because {0} does not support for global scope.",i.key);case N.ERROR_INVALID_WORKSPACE_TARGET:return(0,oi.localize)(13770,"Unable to write to Workspace Settings because {0} does not support for workspace scope in a multi folder workspace.",i.key);case N.ERROR_INVALID_FOLDER_TARGET:return(0,oi.localize)(13771,"Unable to write to Folder Settings because no resource is provided.");case N.ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION:return(0,oi.localize)(13772,"Unable to write to Language Settings because {0} is not a resource language setting.",i.key);case N.ERROR_NO_WORKSPACE_OPENED:return(0,oi.localize)(13773,"Unable to write to {0} because no workspace is opened. Please open a workspace first and try again.",this.stringifyTarget(t));case N.ERROR_INVALID_CONFIGURATION:if(i.workspaceStandAloneConfigurationKey===nH)return(0,oi.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===nU)return(0,oi.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,oi.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 $.USER_LOCAL:return(0,oi.localize)(13777,"Unable to write into user settings. Please open the user settings to correct errors/warnings in it and try again.");case $.USER_REMOTE:return(0,oi.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 $.WORKSPACE:return(0,oi.localize)(13779,"Unable to write into workspace settings. Please open the workspace settings to correct errors/warnings in the file and try again.");case $.WORKSPACE_FOLDER:{let e="<<unknown>>";if(i.resource){let t=this.contextService.getWorkspaceFolder(i.resource);t&&(e=t.name)}return(0,oi.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 N.ERROR_CONFIGURATION_FILE_DIRTY:if(i.workspaceStandAloneConfigurationKey===nH)return(0,oi.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===nU)return(0,oi.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,oi.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 $.USER_LOCAL:return(0,oi.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 $.USER_REMOTE:return(0,oi.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 $.WORKSPACE:return(0,oi.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 $.WORKSPACE_FOLDER:{let e="<<unknown>>";if(i.resource){let t=this.contextService.getWorkspaceFolder(i.resource);t&&(e=t.name)}return(0,oi.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 N.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE:if(i.workspaceStandAloneConfigurationKey===nH)return(0,oi.localize)(13788,"Unable to write into tasks configuration file because the content of the file is newer.");if(i.workspaceStandAloneConfigurationKey===nU)return(0,oi.localize)(13789,"Unable to write into launch configuration file because the content of the file is newer.");if("mcp"===i.workspaceStandAloneConfigurationKey)return(0,oi.localize)(13790,"Unable to write into MCP configuration file because the content of the file is newer.");switch(t){case $.USER_LOCAL:return(0,oi.localize)(13791,"Unable to write into user settings because the content of the file is newer.");case $.USER_REMOTE:return(0,oi.localize)(13792,"Unable to write into remote user settings because the content of the file is newer.");case $.WORKSPACE:return(0,oi.localize)(13793,"Unable to write into workspace settings because the content of the file is newer.");case $.WORKSPACE_FOLDER:return(0,oi.localize)(13794,"Unable to write into folder settings because the content of the file is newer.")}case N.ERROR_INTERNAL:return(0,oi.localize)(13795,"Unable to write to {0} because of an internal error.",this.stringifyTarget(t))}}stringifyTarget(e){switch(e){case $.USER_LOCAL:return(0,oi.localize)(13796,"User Settings");case $.USER_REMOTE:return(0,oi.localize)(13797,"Remote User Settings");case $.WORKSPACE:return(0,oi.localize)(13798,"Workspace Settings");case $.WORKSPACE_FOLDER:return(0,oi.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)===nH?'{\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,sS.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(N.ERROR_POLICY_CONFIGURATION,e,t);let o=nC.Registry.as(nm.Extensions.Configuration).getConfigurationProperties(),n=o[t.key]?.scope;if(!t.workspaceStandAloneConfigurationKey&&0>this.configurationService.keys().default.indexOf(t.key)&&!nm.OVERRIDE_PROPERTY_REGEX.test(t.key)&&void 0!==t.value)throw this.toConfigurationEditingError(N.ERROR_UNKNOWN_KEY,e,t);if(t.workspaceStandAloneConfigurationKey&&t.workspaceStandAloneConfigurationKey!==nH&&"mcp"!==t.workspaceStandAloneConfigurationKey&&(e===$.USER_LOCAL||e===$.USER_REMOTE))throw this.toConfigurationEditingError(N.ERROR_INVALID_USER_TARGET,e,t);if((e===$.WORKSPACE||e===$.WORKSPACE_FOLDER)&&this.contextService.getWorkbenchState()===n4.WorkbenchState.EMPTY)throw this.toConfigurationEditingError(N.ERROR_NO_WORKSPACE_OPENED,e,t);if(e===$.WORKSPACE&&!t.workspaceStandAloneConfigurationKey&&!nm.OVERRIDE_PROPERTY_REGEX.test(t.key)){if(n&&nA.includes(n))throw this.toConfigurationEditingError(N.ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION,e,t);if(n===nm.ConfigurationScope.MACHINE)throw this.toConfigurationEditingError(N.ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE,e,t)}if(e===$.WORKSPACE_FOLDER){if(!t.resource)throw this.toConfigurationEditingError(N.ERROR_INVALID_FOLDER_TARGET,e,t);if(!t.workspaceStandAloneConfigurationKey&&!nm.OVERRIDE_PROPERTY_REGEX.test(t.key)&&void 0!==n&&!n$.includes(n))throw this.toConfigurationEditingError(N.ERROR_INVALID_FOLDER_CONFIGURATION,e,t)}if(r.overrideIdentifiers?.length&&n!==nm.ConfigurationScope.LANGUAGE_OVERRIDABLE)throw this.toConfigurationEditingError(N.ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION,e,t);if(!t.resource)throw this.toConfigurationEditingError(N.ERROR_INVALID_FOLDER_TARGET,e,t);if(i&&this.textFileService.isDirty(t.resource))throw this.toConfigurationEditingError(N.ERROR_CONFIGURATION_FILE_DIRTY,e,t)}getConfigurationEditOperation(e,t,i){if(t.key){let r=e===$.USER_LOCAL?nq:nW;for(let o of Object.keys(r)){let n=this.getConfigurationFileResource(e,o,r[o],i.resource,void 0);if(t.key===o){let i=this.isWorkspaceConfigurationResource(n)?[o]:[];return{key:i[i.length-1],jsonPath:i,value:t.value,resource:n??void 0,workspaceStandAloneConfigurationKey:o,target:e}}let s=`${o}.`;if(0===t.key.indexOf(s)){let i=this.isWorkspaceConfigurationResource(n)?[o,t.key.substring(s.length)]:[t.key.substring(s.length)];return{key:i[i.length-1],jsonPath:i,value:t.value,resource:n??void 0,workspaceStandAloneConfigurationKey:o,target:e}}}}let r=t.key,o=nC.Registry.as(nm.Extensions.Configuration).getConfigurationProperties(),n=o[r]?.scope,s=i.overrideIdentifiers?.length?[(0,nm.keyFromOverrideIdentifiers)(i.overrideIdentifiers),r]:[r];if(e===$.USER_LOCAL||e===$.USER_REMOTE)return{key:r,jsonPath:s,value:t.value,resource:this.getConfigurationFileResource(e,r,"",null,n)??void 0,target:e};let a=this.getConfigurationFileResource(e,r,nP,i.resource,n);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,o){if(e===$.USER_LOCAL)return t===nH?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===$.USER_REMOTE)return this.remoteSettingsResource;let n=this.contextService.getWorkbenchState();if(n!==n4.WorkbenchState.EMPTY){let t=this.contextService.getWorkspace();if(e===$.WORKSPACE){if(n===n4.WorkbenchState.WORKSPACE)return t.configuration??null;if(n===n4.WorkbenchState.FOLDER)return t.folders[0].toResource(i)}if(e===$.WORKSPACE_FOLDER&&r){let e=this.contextService.getWorkspaceFolder(r);if(e)return e.toResource(i)}}return null}};sL=(0,rM.__decorate)([(0,rM.__param)(1,sx.IWorkbenchConfigurationService),(0,rM.__param)(2,nw.IWorkspaceContextService),(0,rM.__param)(3,sP.IUserDataProfileService),(0,rM.__param)(4,nb.IUserDataProfilesService),(0,rM.__param)(5,nf.IFileService),(0,rM.__param)(6,sE.ITextModelService),(0,rM.__param)(7,sw.ITextFileService),(0,rM.__param)(8,n7.INotificationService),(0,rM.__param)(9,sT.IPreferencesService),(0,rM.__param)(10,sk.IEditorService),(0,rM.__param)(11,nS.IUriIdentityService),(0,rM.__param)(12,sA.IFilesConfigurationService)],sL);var sF=rd,sO=sp,sN=e.i(182504),s$=sm;class sH extends s$.DefaultConfiguration{static{this.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY="DefaultOverridesCacheExists"}constructor(e,t,i){super(i),this.configurationCache=e,this.configurationRegistry=nC.Registry.as(nm.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,oK.isEmptyObject)(this.cachedConfigurationDefaultsOverrides)}initializeCachedConfigurationDefaultsOverrides(){return this.initiaizeCachedConfigurationDefaultsOverridesPromise||(this.initiaizeCachedConfigurationDefaultsOverridesPromise=(async()=>{try{if(localStorage.getItem(sH.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY)){let e=await this.configurationCache.read(this.cacheKey);e&&(this.cachedConfigurationDefaultsOverrides=JSON.parse(e))}}catch(e){}this.cachedConfigurationDefaultsOverrides=(0,oK.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())nm.OVERRIDE_PROPERTY_REGEX.test(t)||void 0===i.value||(e[t]=i.value);try{Object.keys(e).length?(localStorage.setItem(sH.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY,"yes"),await this.configurationCache.write(this.cacheKey,JSON.stringify(e))):(localStorage.removeItem(sH.DEFAULT_OVERRIDES_CACHE_EXISTS_KEY),await this.configurationCache.remove(this.cacheKey))}catch(e){}}}class sU extends sO.UserSettings{constructor(e,t,i,r){super(e.defaultProfile.settingsResource,{scopes:nA,skipUnregistered:!0},i.extUri,t,r),this._onDidChangeConfiguration=this._register(new r7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._register(this.onDidChange(()=>this.reloadConfigurationScheduler.schedule())),this.reloadConfigurationScheduler=this._register(new sh.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(nj),i=Array.isArray(t)?t:[];return this.parseOptions.include||i.length?this.reparse({...this.parseOptions,include:i}):e}}class sW extends sF.Disposable{get hasTasksLoaded(){return this.userConfiguration.value instanceof sq}constructor(e,t,i,r,o,n,s){super(),this.settingsResource=e,this.tasksResource=t,this.mcpResource=i,this.configurationParseOptions=r,this.fileService=o,this.uriIdentityService=n,this.logService=s,this._onDidChangeConfiguration=this._register(new r7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this.userConfiguration=this._register(new sF.MutableDisposable),this.userConfigurationChangeDisposable=this._register(new sF.MutableDisposable),this.userConfiguration.value=new sO.UserSettings(e,this.configurationParseOptions,n.extUri,this.fileService,s),this.userConfigurationChangeDisposable.value=this.userConfiguration.value.onDidChange(()=>this.reloadConfigurationScheduler.schedule()),this.reloadConfigurationScheduler=this._register(new sh.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([nH,this.tasksResource]),this.mcpResource&&i.push(["mcp",this.mcpResource]);let r=new sq(t.toString(),this.settingsResource,i,this.configurationParseOptions,this.fileService,this.uriIdentityService,this.logService),o=await r.loadConfiguration(e);return this.userConfiguration.value=r,this.userConfigurationChangeDisposable.value&&(this.userConfigurationChangeDisposable.value=this.userConfiguration.value.onDidChange(()=>this.reloadConfigurationScheduler.schedule())),o}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 sq extends sF.Disposable{constructor(e,t,i,r,o,n,s){super(),this.settingsResource=t,this.standAloneConfigurationResources=i,this.fileService=o,this.uriIdentityService=n,this.logService=s,this._onDidChange=this._register(new r7.Emitter),this.onDidChange=this._onDidChange.event,this.allResources=[this.settingsResource,...this.standAloneConfigurationResources.map(([,e])=>e)],this._register((0,sF.combinedDisposable)(...this.allResources.map(e=>(0,sF.combinedDisposable)(this.fileService.watch(n.extUri.dirname(e)),this.fileService.watch(e))))),this._folderSettingsModelParser=new sO.ConfigurationModelParser(e,s),this._folderSettingsParseOptions=r,this._standAloneConfigurations=[],this._cache=sO.ConfigurationModel.createEmptyModel(this.logService),this._register(r7.Event.debounce(r7.Event.any(r7.Event.filter(this.fileService.onDidFilesChange,e=>this.handleFileChangesEvent(e)),r7.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,oE.getErrorMessage)(t)}`),t.fileOperationResult!==sD.FileOperationResult.FILE_NOT_FOUND&&t.fileOperationResult!==sD.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 s_(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,nD.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),sD.FileChangeType.DELETED)))}handleFileOperationEvent(e){return!!((e.isOperation(sD.FileOperation.CREATE)||e.isOperation(sD.FileOperation.COPY)||e.isOperation(sD.FileOperation.DELETE)||e.isOperation(sD.FileOperation.WRITE))&&this.allResources.some(t=>this.uriIdentityService.extUri.isEqual(e.resource,t))||e.isOperation(sD.FileOperation.DELETE)&&this.allResources.some(t=>this.uriIdentityService.extUri.isEqual(e.resource,this.uriIdentityService.extUri.dirname(t))))}}class sj extends sF.Disposable{constructor(e,t,i,r,o,n){super(),this._userConfigurationInitializationPromise=null,this._onDidChangeConfiguration=this._register(new r7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onDidInitialize=this._register(new r7.Emitter),this.onDidInitialize=this._onDidInitialize.event,this._fileService=i,this._userConfiguration=this._cachedConfiguration=new sK(e,t,{scopes:nO},n),o.getEnvironment().then(async e=>{if(e){let t=this._register(new sz(e.settingsPath,{scopes:nO},this._fileService,r,n));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 sz)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:nO})}getRestrictedSettings(){return this._userConfiguration.getRestrictedSettings()}onDidUserConfigurationChange(e){this.updateCache(),this._onDidChangeConfiguration.fire(e)}async updateCache(){if(this._userConfiguration instanceof sz){let e;try{e=await this._userConfiguration.resolveContent()}catch(e){if(e.fileOperationResult!==sD.FileOperationResult.FILE_NOT_FOUND)return}await this._cachedConfiguration.updateConfiguration(e)}}}class sz extends sF.Disposable{constructor(e,t,i,r,o){super(),this.configurationResource=e,this.fileService=i,this.uriIdentityService=r,this.logService=o,this._onDidChangeConfiguration=this._register(new r7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this.fileWatcherDisposable=this._register(new sF.MutableDisposable),this.directoryWatcherDisposable=this._register(new sF.MutableDisposable),this.parser=new sO.ConfigurationModelParser(this.configurationResource.toString(),o),this.parseOptions=t,this._register(i.onDidFilesChange(e=>this.handleFileChangesEvent(e))),this._register(i.onDidRunOperation(e=>this.handleFileOperationEvent(e))),this.reloadConfigurationScheduler=this._register(new sh.RunOnceScheduler(()=>this.reload().then(e=>this._onDidChangeConfiguration.fire(e)),50)),this._register((0,sF.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 sO.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,sD.FileChangeType.ADDED)?(t=!0,this.onResourceExists(!0)):e.contains(this.configurationResource,sD.FileChangeType.DELETED)?(t=!0,this.onResourceExists(!1)):e.contains(this.configurationResource,sD.FileChangeType.UPDATED)&&(t=!0),t&&this.reloadConfigurationScheduler.schedule()}handleFileOperationEvent(e){(e.isOperation(sD.FileOperation.CREATE)||e.isOperation(sD.FileOperation.COPY)||e.isOperation(sD.FileOperation.DELETE)||e.isOperation(sD.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 sK extends sF.Disposable{constructor(e,t,i,r){super(),this.configurationCache=t,this._onDidChange=this._register(new r7.Emitter),this.onDidChange=this._onDidChange.event,this.key={type:"user",key:e},this.parser=new sO.ConfigurationModelParser("CachedRemoteUserConfiguration",r),this.parseOptions=i,this.configurationModel=sO.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 sV extends sF.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 sF.DisposableStore),this._workspaceIdentifier=null,this._isWorkspaceTrusted=!1,this._onDidUpdateConfiguration=this._register(new r7.Emitter),this.onDidUpdateConfiguration=this._onDidUpdateConfiguration.event,this._initialized=!1,this.fileService=t,this._workspaceConfiguration=this._cachedConfiguration=new sG(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 sB(this.fileService,this.uriIdentityService,this.logService))),await this.reload()}async reload(){this._workspaceIdentifier&&await this._workspaceConfiguration.load(this._workspaceIdentifier,{scopes:nN,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:nN,skipRestricted:this.isUntrusted()}),this.getConfiguration()}getRestrictedSettings(){return this._workspaceConfiguration.getRestrictedSettings()}async waitAndInitialize(e){if(await (0,sD.whenProviderRegistered)(e.configPath,this.fileService),!(this._workspaceConfiguration instanceof sB)){let t=this._register(new sB(this.fileService,this.uriIdentityService,this.logService));await t.load(e,{scopes:nN,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 sB){let e=await this._workspaceConfiguration.resolveContent(this._workspaceIdentifier);await this._cachedConfiguration.updateWorkspace(this._workspaceIdentifier,e)}}}class sB extends sF.Disposable{constructor(e,t,i){super(),this.fileService=e,this.logService=i,this._workspaceIdentifier=null,this._onDidChange=this._register(new r7.Emitter),this.onDidChange=this._onDidChange.event,this.workspaceConfigurationModelParser=new sv("",i),this.workspaceSettings=sO.ConfigurationModel.createEmptyModel(i),this._register(r7.Event.any(r7.Event.filter(this.fileService.onDidFilesChange,e=>!!this._workspaceIdentifier&&e.contains(this._workspaceIdentifier.configPath)),r7.Event.filter(this.fileService.onDidRunOperation,e=>!!this._workspaceIdentifier&&(e.isOperation(sD.FileOperation.CREATE)||e.isOperation(sD.FileOperation.COPY)||e.isOperation(sD.FileOperation.DELETE)||e.isOperation(sD.FileOperation.WRITE))&&t.extUri.isEqual(e.resource,this._workspaceIdentifier.configPath)))(()=>this.reloadConfigurationScheduler.schedule())),this.reloadConfigurationScheduler=this._register(new sh.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 sv(this._workspaceIdentifier.id,this.logService),(0,sF.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):sF.Disposable.None}}class sG{constructor(e,t){this.configurationCache=e,this.logService=t,this.onDidChange=r7.Event.None,this.workspaceConfigurationModelParser=new sv("",t),this.workspaceSettings=sO.ConfigurationModel.createEmptyModel(t)}async load(e,t){try{let i=this.getKey(e),r=await this.configurationCache.read(i),o=JSON.parse(r);o.content&&(this.workspaceConfigurationModelParser=new sv(i.key,this.logService),this.workspaceConfigurationModelParser.parse(o.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 sQ{constructor(e,t,i,r,o){this.configurationCache=r,this.logService=o,this.onDidChange=r7.Event.None,this.key={type:"folder",key:(0,sN.hash)((0,n9.joinPath)(e,t).toString()).toString(16)},this._folderSettingsModelParser=new sO.ConfigurationModelParser("CachedFolderConfiguration",o),this._folderSettingsParseOptions=i,this._standAloneConfigurations=[],this.configurationModel=sO.ConfigurationModel.createEmptyModel(o)}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===nR)this._folderSettingsModelParser.parse(t[e],this._folderSettingsParseOptions);else{let i=new s_(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[nR]=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 sJ extends sF.Disposable{constructor(e,t,i,r,o,n,s,a,l){super(),this.workspaceFolder=t,this.workbenchState=r,this.workspaceTrusted=o,this.configurationCache=l,this._onDidChange=this._register(new r7.Emitter),this.onDidChange=this._onDidChange.event,this.scopes=n4.WorkbenchState.WORKSPACE===this.workbenchState?n$:nN,this.configurationFolder=s.extUri.joinPath(t.uri,i),this.cachedFolderConfiguration=new sQ(t.uri,i,{scopes:this.scopes,skipRestricted:this.isUntrusted()},l,a),e&&this.configurationCache.needsCaching(t.uri)?(this.folderConfiguration=this.cachedFolderConfiguration,(0,sD.whenProviderRegistered)(t.uri,n).then(()=>{this.folderConfiguration=this._register(this.createFileServiceBasedConfiguration(n,s,a)),this._register(this.folderConfiguration.onDidChange(e=>this.onDidFolderConfigurationChange())),this.onDidFolderConfigurationChange()})):(this.folderConfiguration=this._register(this.createFileServiceBasedConfiguration(n,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,`${nR}.json`),o=[nH,nU,"mcp"].map(e=>[e,t.extUri.joinPath(this.configurationFolder,`${e}.json`)]);return new sq(this.configurationFolder.toString(),r,o,{scopes:this.scopes,skipRestricted:this.isUntrusted()},e,t,i)}async updateCache(){if(this.configurationCache.needsCaching(this.configurationFolder)&&this.folderConfiguration instanceof sq){let[e,t]=await this.folderConfiguration.resolveContents();this.cachedFolderConfiguration.updateConfiguration(e,t)}}}var sY=e.i(40577),sX=e.i(772383),sZ=e.i(278725),s0=e.i(431110),s1=e.i(168363),s2=e.i(981399),s6=e.i(967602),s3=e.i(169315),s4=e.i(254686),s5=e.i(803777);function s8(e,t){return e.isDefault||e.useDefaultFlags?.settings?t?nF:void 0:t?nL:nM}class s7 extends sg.Workspace{constructor(){super(...arguments),this.initialized=!1}}class s9 extends su.Disposable{get restrictedSettings(){return this._restrictedSettings}constructor({remoteAuthority:e,configurationCache:t},i,r,o,n,s,a,l,c){if(super(),this.userDataProfileService=r,this.userDataProfilesService=o,this.fileService=n,this.remoteAgentService=s,this.uriIdentityService=a,this.logService=l,this.initialized=!1,this.applicationConfiguration=null,this.remoteUserConfiguration=null,this._onDidChangeConfiguration=this._register(new r7.Emitter),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeWorkspaceFolders=this._register(new r7.Emitter),this.onWillChangeWorkspaceFolders=this._onWillChangeWorkspaceFolders.event,this._onDidChangeWorkspaceFolders=this._register(new r7.Emitter),this.onDidChangeWorkspaceFolders=this._onDidChangeWorkspaceFolders.event,this._onDidChangeWorkspaceName=this._register(new r7.Emitter),this.onDidChangeWorkspaceName=this._onDidChangeWorkspaceName.event,this._onDidChangeWorkbenchState=this._register(new r7.Emitter),this.onDidChangeWorkbenchState=this._onDidChangeWorkbenchState.event,this.isWorkspaceTrusted=!0,this._restrictedSettings={default:[]},this._onDidChangeRestrictedSettings=this._register(new r7.Emitter),this.onDidChangeRestrictedSettings=this._onDidChangeRestrictedSettings.event,this.configurationRegistry=nC.Registry.as(nm.Extensions.Configuration),this.initRemoteUserConfigurationBarrier=new sh.Barrier,this.completeWorkspaceBarrier=new sh.Barrier,this.defaultConfiguration=this._register(new sH(t,i,l)),this.policyConfiguration=c instanceof s3.NullPolicyService?new sm.NullPolicyConfiguration:this._register(new sm.PolicyConfiguration(this.defaultConfiguration,c,l)),this.configurationCache=t,this._configuration=new sy(this.defaultConfiguration.configurationModel,this.policyConfiguration.configurationModel,sp.ConfigurationModel.createEmptyModel(l),sp.ConfigurationModel.createEmptyModel(l),sp.ConfigurationModel.createEmptyModel(l),sp.ConfigurationModel.createEmptyModel(l),new sd.ResourceMap,sp.ConfigurationModel.createEmptyModel(l),new sd.ResourceMap,this.workspace,l),this.applicationConfigurationDisposables=this._register(new su.DisposableStore),this.createApplicationConfiguration(),this.localUserConfiguration=this._register(new sW(r.currentProfile.settingsResource,r.currentProfile.tasksResource,r.currentProfile.mcpResource,{scopes:s8(r.currentProfile,!!e)},n,a,l)),this.cachedFolderConfigs=new sd.ResourceMap,this._register(this.localUserConfiguration.onDidChangeConfiguration(e=>this.onLocalUserConfigurationChanged(e))),e){const i=this.remoteUserConfiguration=this._register(new sj(e,t,n,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 sV(t,n,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 sh.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 sU(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?sg.WorkbenchState.WORKSPACE:1===this.workspace.folders.length?sg.WorkbenchState.FOLDER:sg.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 sg.WorkbenchState.FOLDER:{let t;return rh.URI.isUri(e)?t=e:(0,sg.isSingleFolderWorkspaceIdentifier)(e)&&(t=e.uri),rh.URI.isUri(t)&&this.uriIdentityService.extUri.isEqual(t,this.workspace.folders[0].uri)}case sg.WorkbenchState.WORKSPACE:return(0,sg.isWorkspaceIdentifier)(e)&&this.workspace.id===e.id}return!1}async doUpdateFolders(e,t,i){if(this.getWorkbenchState()!==sg.WorkbenchState.WORKSPACE||e.length+t.length===0)return Promise.resolve(void 0);let r=!1,o=this.getWorkspace().folders,n=o.map(e=>e.raw).filter((e,i)=>!(0,sC.isStoredWorkspaceFolder)(e)||!this.contains(t,o[i].uri));if(r=o.length!==n.length,e.length){let t=this.getWorkspace().configuration,s=this.uriIdentityService.extUri.dirname(t),a=(o=(0,sC.toWorkspaceFolders)(n,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,sC.getStoredWorkspaceFolder)(e,!1,t.name,s,this.uriIdentityService.extUri))}}l.length>0&&(r=!0,"number"==typeof i&&i>=0&&i<n.length?(n=n.slice(0)).splice(i,0,...l):n=[...n,...l])}return r?this.setFolders(n):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(s4.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,ng.isConfigurationOverrides)(e)?e:(0,ng.isConfigurationOverrides)(t)?t:void 0;return this._configuration.getValue(i,r)}async updateValue(e,t,i,r,o){let n=(0,ng.isConfigurationUpdateOverrides)(i)?i:(0,ng.isConfigurationOverrides)(i)?{resource:i.resource,overrideIdentifiers:i.overrideIdentifier?[i.overrideIdentifier]:void 0}:void 0,s=n?r:i,a=s?[s]:[];if(n?.overrideIdentifiers&&(n.overrideIdentifiers=(0,ox.distinct)(n.overrideIdentifiers),n.overrideIdentifiers=n.overrideIdentifiers.length?n.overrideIdentifiers:void 0),!a.length){if(n?.overrideIdentifiers&&n.overrideIdentifiers.length>1)throw Error("Configuration Target is required while updating the value for multiple override identifiers");let i=this.inspect(e,{resource:n?.resource,overrideIdentifier:n?.overrideIdentifiers?n.overrideIdentifiers[0]:void 0});a.push(...this.deriveConfigurationTargets(e,t,i)),(0,nD.equals)(t,i.defaultValue)&&1===a.length&&(a[0]===ng.ConfigurationTarget.USER||a[0]===ng.ConfigurationTarget.USER_LOCAL)&&(t=void 0)}await sh.Promises.settled(a.map(i=>this.writeConfigurationValue(e,t,i,n,o)))}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,sg.isWorkspaceFolder)(e))return void await this.reloadWorkspaceFolderConfiguration(e);switch(e){case ng.ConfigurationTarget.DEFAULT:this.reloadDefaultConfiguration();return;case ng.ConfigurationTarget.USER:{let{local:e,remote:t}=await this.reloadUserConfiguration();await this.loadConfiguration(this._configuration.applicationConfiguration,e,t,!0);return}case ng.ConfigurationTarget.USER_LOCAL:await this.reloadLocalUserConfiguration();return;case ng.ConfigurationTarget.USER_REMOTE:await this.reloadRemoteUserConfiguration();return;case ng.ConfigurationTarget.WORKSPACE:case ng.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,sY.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,sY.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()===sg.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,ox.distinct)(r)).length&&this.triggerConfigurationChange({keys:r,overrides:[]},{data:t,workspace:this.workspace},ng.ConfigurationTarget.WORKSPACE)}}acquireInstantiationService(e){this.instantiationService=e}isSettingAppliedForAllProfiles(e){let t=this.configurationRegistry.getConfigurationProperties()[e]?.scope;if(t&&nA.includes(t))return!0;let i=this.getValue(nj)??[];return Array.isArray(i)&&i.includes(e)}async createWorkspace(e){return(0,sg.isWorkspaceIdentifier)(e)?this.createMultiFolderWorkspace(e):(0,sg.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,sC.toWorkspaceFolders)(this.workspaceConfiguration.getFolders(),t,this.uriIdentityService.extUri),r=new s7(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 s7(e.id,[(0,sg.toWorkspaceFolder)(e.uri)],!1,null,e=>this.uriIdentityService.extUri.ignorePathCasing(e));return t.initialized=!0,t}createEmptyWorkspace(e){let t=new s7(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,o=!!this.workspace,n=[];if(o?(i=this.getWorkbenchState(),r=this.workspace.configuration?this.workspace.configuration.fsPath:void 0,n=this.workspace.folders,this.workspace.update(e)):this.workspace=e,await this.initializeConfiguration(t),o){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 o=this.compareFolders(n,this.workspace.folders);o&&(o.added.length||o.removed.length||o.changed.length)&&(await this.handleWillChangeWorkspaceFolders(o,!1),this._onDidChangeWorkspaceFolders.fire(o))}this.localUserConfiguration.hasTasksLoaded||this._register((0,on.runWhenWindowIdle)(rc.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 o=e[r],n=0;for(n=0;n<t.length&&o.uri.toString()!==t[n].uri.toString();n++);n<t.length?(r!==n||o.name!==t[n].name)&&i.changed.push(o):i.removed.push(o)}return i}async initializeConfiguration(e){await this.defaultConfiguration.initialize();let t=this.policyConfiguration.initialize(),i=this.applicationConfiguration?this.applicationConfiguration.initialize():Promise.resolve(sp.ConfigurationModel.createEmptyModel(this.logService)),r=async()=>{(0,sY.mark)("code/willInitUserConfiguration");let e=await Promise.all([this.localUserConfiguration.initialize(),this.remoteUserConfiguration?this.remoteUserConfiguration.initialize():Promise.resolve(sp.ConfigurationModel.createEmptyModel(this.logService))]);if(this.applicationConfiguration){let t=await i;e[0]=this.localUserConfiguration.reparse({exclude:t.getValue(nj)})}return(0,sY.mark)("code/didInitUserConfiguration"),e},[,o,[n,s]]=await Promise.all([t,i,r()]);(0,sY.mark)("code/willInitWorkspaceConfiguration"),await this.loadConfiguration(o,n,s,e),(0,sY.mark)("code/didInitWorkspaceConfiguration")}reloadDefaultConfiguration(){this.onDefaultConfigurationChanged(this.defaultConfiguration.reload())}async reloadApplicationConfiguration(e){if(!this.applicationConfiguration)return sp.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 sp.ConfigurationModel.createEmptyModel(this.logService)}async reloadWorkspaceConfiguration(){let e=this.getWorkbenchState();return e===sg.WorkbenchState.FOLDER?this.onWorkspaceFolderConfigurationChanged(this.workspace.folders[0]):e===sg.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 sd.ResourceMap;let o=this.workspace.folders,n=await this.loadFolderConfigurations(o),s=this.getWorkspaceConfigurationModel(n),a=new sd.ResourceMap;n.forEach((e,t)=>a.set(o[t].uri,e));let l=this._configuration;if(this._configuration=new sy(this.defaultConfiguration.configurationModel,this.policyConfiguration.configurationModel,e,t,i,s,a,sp.ConfigurationModel.createEmptyModel(this.logService),new sd.ResourceMap,this.workspace,this.logService),this.initialized=!0,r){let e=this._configuration.compare(l);this.triggerConfigurationChange(e,{data:l.toData(),workspace:this.workspace},ng.ConfigurationTarget.WORKSPACE)}this.updateRestrictedSettings()}getWorkspaceConfigurationModel(e){switch(this.getWorkbenchState()){case sg.WorkbenchState.FOLDER:return e[0];case sg.WorkbenchState.WORKSPACE:return this.workspaceConfiguration.getConfiguration();default:return sp.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:s8(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(nj)})),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()===sg.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},ng.ConfigurationTarget.DEFAULT),this.updateRestrictedSettings()}}onPolicyConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.compareAndUpdatePolicyConfiguration(e);this.triggerConfigurationChange(i,t,ng.ConfigurationTarget.DEFAULT)}onApplicationConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.applicationConfiguration.getValue(nj)??[],r=this._configuration.compareAndUpdateApplicationConfiguration(e),o=this.getValue(nj)??[],n=this.configurationRegistry.getConfigurationProperties(),s=[];for(let e of r.keys){let t=n[e]?.scope;if(t&&nA.includes(t)){if(s.push(e),e===nj){for(let e of i)o.includes(e)||s.push(e);for(let e of o)i.includes(e)||s.push(e)}}else o.includes(e)&&s.push(e)}r.keys=s,r.keys.includes(nj)&&this._configuration.updateLocalUserConfiguration(this.localUserConfiguration.reparse({exclude:o})),this.triggerConfigurationChange(r,t,ng.ConfigurationTarget.USER)}onLocalUserConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.compareAndUpdateLocalUserConfiguration(e);this.triggerConfigurationChange(i,t,ng.ConfigurationTarget.USER)}onRemoteUserConfigurationChanged(e){let t={data:this._configuration.toData(),workspace:this.workspace},i=this._configuration.compareAndUpdateRemoteUserConfiguration(e);this.triggerConfigurationChange(i,t,ng.ConfigurationTarget.USER)}async onWorkspaceConfigurationChanged(e){if(this.workspace&&this.workspace.configuration){let t=(0,sC.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,ox.delta)(i,this._restrictedSettings.default,(e,t)=>e.localeCompare(t));e.push(...r.added,...r.removed);let o=(this.applicationConfiguration?.getRestrictedSettings()||[]).sort((e,t)=>e.localeCompare(t)),n=(0,ox.delta)(o,this._restrictedSettings.application||[],(e,t)=>e.localeCompare(t));e.push(...n.added,...n.removed);let s=this.localUserConfiguration.getRestrictedSettings().sort((e,t)=>e.localeCompare(t)),a=(0,ox.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,ox.delta)(l,this._restrictedSettings.userRemote||[],(e,t)=>e.localeCompare(t));e.push(...c.added,...c.removed);let d=new sd.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 o=this._restrictedSettings.workspaceFolder?.get(t.uri)||[],n=(0,ox.delta)(r,o,(e,t)=>e.localeCompare(t));e.push(...n.added,...n.removed)}let u=this.getWorkbenchState()===sg.WorkbenchState.WORKSPACE?this.workspaceConfiguration.getRestrictedSettings().sort((e,t)=>e.localeCompare(t)):this.workspace.folders[0]&&d.get(this.workspace.folders[0].uri)||[],h=(0,ox.delta)(u,this._restrictedSettings.workspace||[],(e,t)=>e.localeCompare(t));e.push(...h.added,...h.removed),e.length&&(this._restrictedSettings={default:i,application:o.length?o: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},o=this._configuration.compareAndUpdateWorkspaceConfiguration(t),n=this.compareFolders(this.workspace.folders,e);if(n.added.length||n.removed.length||n.changed.length){this.workspace.folders=e;let t=await this.onFoldersChanged();await this.handleWillChangeWorkspaceFolders(n,i),this.triggerConfigurationChange(t,r,ng.ConfigurationTarget.WORKSPACE_FOLDER),this._onDidChangeWorkspaceFolders.fire(n)}else this.triggerConfigurationChange(o,r,ng.ConfigurationTarget.WORKSPACE);this.updateRestrictedSettings()}async handleWillChangeWorkspaceFolders(e,t){let i=[];this._onWillChangeWorkspaceFolders.fire({join(e){i.push(e)},changes:e,fromCache:t});try{await sh.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()===sg.WorkbenchState.FOLDER){let e=this._configuration.compareAndUpdateWorkspaceConfiguration(t);this.triggerConfigurationChange((0,sp.mergeChanges)(r,e),i,ng.ConfigurationTarget.WORKSPACE)}else this.triggerConfigurationChange(r,i,ng.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,sp.mergeChanges)(...e)}loadFolderConfigurations(e){return Promise.all([...e.map(e=>{let t=this.cachedFolderConfigs.get(e.uri);return t||(t=new sJ(!this.initialized,e,nT,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,s0.toErrorMessage)(e)}`)}t.push(i)}return t}async writeConfigurationValue(e,t,i,r,o){if(!this.instantiationService)throw Error("Cannot write configuration because the configuration service is not yet ready to accept writes.");if(i===ng.ConfigurationTarget.DEFAULT)throw Error("Invalid configuration target");if(i===ng.ConfigurationTarget.MEMORY){let o={data:this._configuration.toData(),workspace:this.workspace};this._configuration.updateValue(e,t,r),this.triggerConfigurationChange({keys:r?.overrideIdentifiers?.length?[(0,nm.keyFromOverrideIdentifiers)(r.overrideIdentifiers),e]:[e],overrides:r?.overrideIdentifiers?.length?r.overrideIdentifiers.map(t=>[t,[e]]):[]},o,i);return}let n=this.toEditableConfigurationTarget(i,e);if(!n||n===$.USER_REMOTE&&!this.remoteUserConfiguration)throw Error("Invalid configuration target");if(r?.overrideIdentifiers?.length&&r.overrideIdentifiers.length>1){let e=this.getConfigurationModelForEditableConfigurationTarget(n,r.resource);if(e){let t=r.overrideIdentifiers.sort(),i=e.overrides.find(e=>(0,ox.equals)([...e.identifiers].sort(),t));i&&(r.overrideIdentifiers=i.identifiers)}}switch(this.configurationEditing=this.configurationEditing??this.createConfigurationEditingService(this.instantiationService),await (await this.configurationEditing).writeConfiguration(n,{key:e,value:t},{scopes:r,...o}),n){case $.USER_LOCAL:this.applicationConfiguration&&this.isSettingAppliedForAllProfiles(e)?await this.reloadApplicationConfiguration():await this.reloadLocalUserConfiguration();return;case $.USER_REMOTE:return this.reloadRemoteUserConfiguration().then(()=>void 0);case $.WORKSPACE:return this.reloadWorkspaceConfiguration();case $.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(sL,t)}getConfigurationModelForEditableConfigurationTarget(e,t){switch(e){case $.USER_LOCAL:return this._configuration.localUserConfiguration;case $.USER_REMOTE:return this._configuration.remoteUserConfiguration;case $.WORKSPACE:return this._configuration.workspaceConfiguration;case $.WORKSPACE_FOLDER:return t?this._configuration.folderConfigurations.get(t):void 0}}getConfigurationModel(e,t){switch(e){case ng.ConfigurationTarget.USER_LOCAL:return this._configuration.localUserConfiguration;case ng.ConfigurationTarget.USER_REMOTE:return this._configuration.remoteUserConfiguration;case ng.ConfigurationTarget.WORKSPACE:return this._configuration.workspaceConfiguration;case ng.ConfigurationTarget.WORKSPACE_FOLDER:return t?this._configuration.folderConfigurations.get(t):void 0;default:return}}deriveConfigurationTargets(e,t,i){if((0,nD.equals)(t,i.value))return[];let r=[];return(void 0!==i.workspaceFolderValue&&r.push(ng.ConfigurationTarget.WORKSPACE_FOLDER),void 0!==i.workspaceValue&&r.push(ng.ConfigurationTarget.WORKSPACE),void 0!==i.userRemoteValue&&r.push(ng.ConfigurationTarget.USER_REMOTE),void 0!==i.userLocalValue&&r.push(ng.ConfigurationTarget.USER_LOCAL),void 0!==i.applicationValue&&r.push(ng.ConfigurationTarget.APPLICATION),void 0===t)?r:[r[0]||ng.ConfigurationTarget.USER]}triggerConfigurationChange(e,t,i){if(e.keys.length){i!==ng.ConfigurationTarget.DEFAULT&&this.logService.debug(`Configuration keys changed in ${(0,ng.ConfigurationTargetToString)(i)} target`,...e.keys);let r=new sp.ConfigurationChangeEvent(e,t,this._configuration,this.workspace,this.logService);r.source=i,this._onDidChangeConfiguration.fire(r)}}toEditableConfigurationTarget(e,t){if(e===ng.ConfigurationTarget.APPLICATION)return $.USER_LOCAL;if(e===ng.ConfigurationTarget.USER){if(this.remoteUserConfiguration){let e=this.configurationRegistry.getConfigurationProperties()[t]?.scope;if(e===nm.ConfigurationScope.MACHINE||e===nm.ConfigurationScope.MACHINE_OVERRIDABLE||e===nm.ConfigurationScope.APPLICATION_MACHINE||void 0!==this.inspect(t).userRemoteValue)return $.USER_REMOTE}return $.USER_LOCAL}return e===ng.ConfigurationTarget.USER_LOCAL?$.USER_LOCAL:e===ng.ConfigurationTarget.USER_REMOTE?$.USER_REMOTE:e===ng.ConfigurationTarget.WORKSPACE?$.WORKSPACE:e===ng.ConfigurationTarget.WORKSPACE_FOLDER?$.WORKSPACE_FOLDER:null}}let ae=class extends su.Disposable{constructor(e,t,i,r,o){super(),this.workspaceContextService=e,this.environmentService=t,this.workspaceTrustManagementService=i,r.whenInstalledExtensionsRegistered().then(()=>{this.registerConfigurationSchemas();let e=nC.Registry.as(nm.Extensions.Configuration),t=this._register(new sh.Delayer(50));this._register(r7.Event.any(e.onDidUpdateConfiguration,e.onDidSchemaChange,i.onDidChangeTrust)(()=>t.trigger(()=>this.registerConfigurationSchemas(),o.phase===n3.LifecyclePhase.Eventually?void 0:2500)))})}registerConfigurationSchemas(){let e={properties:nm.allSettings.properties,patternProperties:nm.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},t=this.environmentService.remoteAuthority?{properties:Object.assign({},nm.applicationSettings.properties,nm.windowSettings.properties,nm.resourceSettings.properties),patternProperties:nm.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0}:e,i={properties:Object.assign({},nm.machineSettings.properties,nm.machineOverridableSettings.properties,nm.windowSettings.properties,nm.resourceSettings.properties),patternProperties:nm.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},r={properties:Object.assign({},nm.applicationMachineSettings.properties,nm.machineSettings.properties,nm.machineOverridableSettings.properties,nm.windowSettings.properties,nm.resourceSettings.properties),patternProperties:nm.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},o={properties:Object.assign({},this.checkAndFilterPropertiesRequiringTrust(nm.machineOverridableSettings.properties),this.checkAndFilterPropertiesRequiringTrust(nm.windowSettings.properties),this.checkAndFilterPropertiesRequiringTrust(nm.resourceSettings.properties)),patternProperties:nm.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},n={properties:Object.keys(nm.allSettings.properties).reduce((e,t)=>(e[t]=Object.assign({deprecationMessage:void 0},nm.allSettings.properties[t]),e),{}),patternProperties:Object.keys(nm.allSettings.patternProperties).reduce((e,t)=>(e[t]=Object.assign({deprecationMessage:void 0},nm.allSettings.patternProperties[t]),e),{}),additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},s=sg.WorkbenchState.WORKSPACE===this.workspaceContextService.getWorkbenchState()?{properties:Object.assign({},this.checkAndFilterPropertiesRequiringTrust(nm.machineOverridableSettings.properties),this.checkAndFilterPropertiesRequiringTrust(nm.resourceSettings.properties)),patternProperties:nm.allSettings.patternProperties,additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0}:o,a={type:"object",description:(0,oi.localize)(13756,"Contribute defaults for configurations"),properties:Object.assign({},this.filterDefaultOverridableProperties(nm.machineOverridableSettings.properties),this.filterDefaultOverridableProperties(nm.windowSettings.properties),this.filterDefaultOverridableProperties(nm.resourceSettings.properties)),patternProperties:{[nm.OVERRIDE_PROPERTY_PATTERN]:{type:"object",default:{},$ref:nm.resourceLanguageSettingsSchemaId}},additionalProperties:!1};this.registerSchemas({defaultSettingsSchema:n,userSettingsSchema:t,profileSettingsSchema:i,machineSettingsSchema:r,workspaceSettingsSchema:o,folderSettingsSchema:s,configDefaultsSchema:a})}registerSchemas(e){let t=nC.Registry.as(nk.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(nI,e.workspaceSettingsSchema),t.registerSchema("vscode://schemas/settings/folder",e.folderSettingsSchema),t.registerSchema(nm.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}};ae=(0,rM.__decorate)([(0,rM.__param)(0,nw.IWorkspaceContextService),(0,rM.__param)(1,sX.IWorkbenchEnvironmentService),(0,rM.__param)(2,s1.IWorkspaceTrustManagementService),(0,rM.__param)(3,s2.IExtensionService),(0,rM.__param)(4,sZ.ILifecycleService)],ae);let at=class extends su.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=nC.Registry.as(nm.Extensions.Configuration),this.throttler=this._register(new sh.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(ng.ConfigurationTarget.DEFAULT)}}async processExperimentalSettings(e,t){let i={},r=this.configurationRegistry.getConfigurationProperties();for(let o of e){let e=r[o];if(e?.experiment&&!(!t&&this.processedExperimentalSettings.has(o))){this.processedExperimentalSettings.add(o),"auto"===e.experiment.mode&&this.autoExperimentalSettings.add(o);try{let t=await this.workbenchAssignmentService.getTreatment(e.experiment.name??`config.${o}`);(0,oK.isUndefined)(t)||(0,nD.equals)(t,e.default)||(i[o]=t)}catch(e){}}}Object.keys(i).length&&this.configurationRegistry.registerDefaultConfigurations([{overrides:i}])}};at=(0,rM.__decorate)([(0,rM.__param)(0,s6.IWorkbenchAssignmentService),(0,rM.__param)(1,s2.IExtensionService),(0,rM.__param)(2,rW.IConfigurationService),(0,rM.__param)(3,n_.ILogService)],at),nC.Registry.as(n6.Extensions.Workbench).registerWorkbenchContribution(ae,n3.LifecyclePhase.Restored),(0,n6.registerWorkbenchContribution2)(at.ID,at,n6.WorkbenchPhase.BlockRestore),nC.Registry.as(nm.Extensions.Configuration).registerConfiguration({...s5.workbenchConfigurationNodeBase,properties:{[nj]:{type:"array",description:(0,oi.localize)(13757,"Configure settings to be applied for all profiles."),default:[],scope:nm.ConfigurationScope.APPLICATION,additionalProperties:!0,uniqueItems:!0}}});class ai{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 ar({type:e,key:t},this.cacheHome,this.fileService),this.cachedConfigurations.set(i,r)),r}}class ar{constructor({type:e,key:t},i,r){this.fileService=r,this.cachedConfigurationFolderResource=(0,n9.joinPath)(i,"CachedConfigurations",e,t),this.cachedConfigurationFileResource=(0,n9.joinPath)(this.cachedConfigurationFolderResource,"workspaces"===e?"workspace.json":"configuration.json"),this.queue=new sh.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,na.VSBuffer.fromString(e))})}async remove(){try{await this.queue.queue(()=>this.fileService.del(this.cachedConfigurationFolderResource,{recursive:!0,useTrash:!1}))}catch(e){if(e.fileOperationResult!==sD.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 ao=e.i(436771),an=e.i(354244);e.i(157255);let as=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===an.OperatingSystem.Linux||r===an.OperatingSystem.Macintosh?"\n":"\r\n"}getOS(e){let t=an.OS,i=this.environmentService.remoteAuthority;if(i&&e&&e.scheme!==nl.Schemas.file){let e=`resource.authority.os.${i}`;t=this.remoteEnvironment?this.remoteEnvironment.os:this.storageService.getNumber(e,si.StorageScope.WORKSPACE,an.OS),this.storageService.store(e,t,si.StorageScope.WORKSPACE,si.StorageTarget.MACHINE)}return t}};as=(0,rM.__decorate)([(0,rM.__param)(0,rW.IConfigurationService),(0,rM.__param)(1,ao.IRemoteAgentService),(0,rM.__param)(2,sX.IWorkbenchEnvironmentService),(0,rM.__param)(3,sr.IStorageService)],as);var aa=e.i(431153),al=e.i(846960),ac=e.i(324726),ad=e.i(193391),au=rd;let ah=class extends au.Disposable{constructor(e,t,i,r,o,n,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=o,this.fileService=n,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=[nl.Schemas.file];this.environmentService.remoteAuthority&&e.unshift(nl.Schemas.vscodeRemote);let t=await this.fileDialogService.showSaveDialog({saveLabel:(0,oi.localize)(14660,"Save"),title:(0,oi.localize)(14661,"Save Workspace"),filters:n4.WORKSPACE_FILTER,defaultUri:(0,n9.joinPath)(await this.fileDialogService.defaultWorkspacePath(),this.getNewWorkspaceName()),availableFileSystems:e});if(t)return(0,n4.hasWorkspaceFileExtension)(t)||(t=t.with({path:`${t.path}.${n4.WORKSPACE_EXTENSION}`})),t}getNewWorkspaceName(){let e=this.getCurrentWorkspaceIdentifier()?.configPath;if(e&&(0,n4.isSavedWorkspace)(e,this.environmentService))return(0,n9.basename)(e);let t=this.contextService.getWorkspace().folders.at(0);return t?`${(0,n9.basename)(t.uri)}.${n4.WORKSPACE_EXTENSION}`:`workspace.${n4.WORKSPACE_EXTENSION}`}async updateFolders(e,t,i,r){let o=this.contextService.getWorkspace().folders,n=[];"number"==typeof t&&(n=o.slice(e,e+t).map(e=>e.uri));let s=[];Array.isArray(i)&&(s=i.map(e=>({uri:(0,n9.removeTrailingPathSeparator)(e.uri),name:e.name})));let a=n.length>0,l=s.length>0;if(l||a)return l&&!a?this.doAddFolders(s,e,r):a&&!l?this.removeFolders(n):this.includesSingleFolderWorkspace(n)?this.createAndEnterWorkspace(s):this.contextService.getWorkbenchState()!==n4.WorkbenchState.WORKSPACE?this.doAddFolders(s,e,r):this.doUpdateFolders(s,n,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,n9.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!==n4.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,ox.distinct)(i,e=>this.uriIdentityService.extUri.getComparisonKey(e.uri)),r===n4.WorkbenchState.EMPTY&&0===i.length||r===n4.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()===n4.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,n9.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,n4.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,n4.isUntitledWorkspace)(i,this.environmentService),o=await this.fileService.readFile(i),n=(0,sC.rewriteWorkspaceFileForNewLocation)(o.value.toString(),i,r,t,this.uriIdentityService.extUri);await this.textFileService.create([{resource:t,value:n,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:ad.SaveReason.EXPLICIT});if(await this.fileService.exists(t))return;let r=(0,sC.rewriteWorkspaceFileForNewLocation)(JSON.stringify({folders:[]},null," "),t,!1,t,this.uriIdentityService.extUri);await this.textFileService.create([{resource:t,value:r}])}handleWorkspaceConfigurationEditingError(e){e.code===aa.JSONEditingErrorCode.ERROR_INVALID_FILE?this.onInvalidWorkspaceConfigurationFileError():this.notificationService.error(e.message)}onInvalidWorkspaceConfigurationFileError(){let e=(0,oi.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(sl.default.Error,e,[{label:(0,oi.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()===n4.WorkbenchState.FOLDER&&await this.migrateWorkspaceSettings(t),await this.configurationService.initialize(t),this.workspacesService.enterWorkspace(e)}migrateWorkspaceSettings(e){return this.doCopyWorkspaceSettings(e,e=>e.scope===nm.ConfigurationScope.WINDOW)}copyWorkspaceSettings(e){return this.doCopyWorkspaceSettings(e)}doCopyWorkspaceSettings(e,t){let i=nC.Registry.as(nm.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()!==n4.WorkbenchState.EMPTY&&this.workspaceTrustManagementService.isWorkspaceTrusted()&&await this.workspaceTrustManagementService.setUrisTrust([e],!0)}getCurrentWorkspaceIdentifier(){let e=(0,n4.toWorkspaceIdentifier)(this.contextService.getWorkspace());if((0,n4.isWorkspaceIdentifier)(e))return e}};ah=(0,rM.__decorate)([(0,rM.__param)(0,s4.IJSONEditingService),(0,rM.__param)(1,nw.IWorkspaceContextService),(0,rM.__param)(2,sx.IWorkbenchConfigurationService),(0,rM.__param)(3,n7.INotificationService),(0,rM.__param)(4,al.ICommandService),(0,rM.__param)(5,nf.IFileService),(0,rM.__param)(6,sw.ITextFileService),(0,rM.__param)(7,nx.IWorkspacesService),(0,rM.__param)(8,sX.IWorkbenchEnvironmentService),(0,rM.__param)(9,ac.IFileDialogService),(0,rM.__param)(10,ac.IDialogService),(0,rM.__param)(11,se.IHostService),(0,rM.__param)(12,nS.IUriIdentityService),(0,rM.__param)(13,s1.IWorkspaceTrustManagementService),(0,rM.__param)(14,nb.IUserDataProfilesService),(0,rM.__param)(15,sP.IUserDataProfileService)],ah);var ag=rd,ap=e.i(775937);let am=class extends ag.Disposable{static{H=this}static{this.RECENTLY_OPENED_KEY="recently.opened"}constructor(e,t,i,r,o,n){super(),this.storageService=e,this.contextService=t,this.logService=i,this.fileService=r,this.environmentService=o,this.uriIdentityService=n,this._onRecentlyOpenedChange=this._register(new r7.Emitter),this.onDidChangeRecentlyOpened=this._onRecentlyOpenedChange.event,this.addWorkspaceToRecentlyOpened(),this.registerListeners()}registerListeners(){this._register(this.storageService.onDidChangeValue(si.StorageScope.APPLICATION,H.RECENTLY_OPENED_KEY,this._store)(()=>this._onRecentlyOpenedChange.fire())),this._register(this.contextService.onDidChangeWorkspaceFolders(e=>this.onDidChangeWorkspaceFolders(e)))}onDidChangeWorkspaceFolders(e){if((0,n4.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 n4.WorkbenchState.FOLDER:this.addRecentlyOpened([{folderUri:e.folders[0].uri,remoteAuthority:t}]);break;case n4.WorkbenchState.WORKSPACE:this.addRecentlyOpened([{workspace:{id:e.id,configPath:e.configuration},remoteAuthority:t}])}}async getRecentlyOpened(){let e=this.storageService.get(H.RECENTLY_OPENED_KEY,si.StorageScope.APPLICATION);if(e){let t=(0,sC.restoreRecentlyOpened)(JSON.parse(e),this.logService);return t.workspaces=t.workspaces.filter(e=>!((0,sC.isRecentFolder)(e)&&e.folderUri.scheme===nl.Schemas.file&&!(0,n4.isTemporaryWorkspace)(this.contextService.getWorkspace())||(0,sC.isRecentWorkspace)(e)&&(0,n4.isTemporaryWorkspace)(e.workspace.configPath))),t}return{workspaces:[],files:[]}}async addRecentlyOpened(e){let t=await this.getRecentlyOpened();for(let i of e)(0,sC.isRecentFile)(i)?(this.doRemoveRecentlyOpened(t,[i.fileUri]),t.files.unshift(i)):((0,sC.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,sC.isRecentFolder)(e)?e.folderUri.toString():e.workspace.configPath.toString())))}async saveRecentlyOpened(e){return this.storageService.store(H.RECENTLY_OPENED_KEY,JSON.stringify((0,sC.toStoreData)(e)),si.StorageScope.APPLICATION,si.StorageTarget.USER)}async clearRecentlyOpened(){this.storageService.remove(H.RECENTLY_OPENED_KEY,si.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,n9.joinPath)(this.environmentService.untitledWorkspacesHome,`Untitled-${i}.${n4.WORKSPACE_EXTENSION}`),o=[];if(e)for(let t of e)o.push((0,sC.getStoredWorkspaceFolder)(t.uri,!0,t.name,this.environmentService.untitledWorkspacesHome,this.uriIdentityService.extUri));return await this.fileService.writeFile(r,na.VSBuffer.fromString(JSON.stringify({folders:o,remoteAuthority:t},null," "))),this.getWorkspaceIdentifier(r)}async deleteUntitledWorkspace(e){try{await this.fileService.del(e.configPath)}catch(e){if(e.fileOperationResult!==sD.FileOperationResult.FILE_NOT_FOUND)throw e}}async getWorkspaceIdentifier(e){return(0,ap.getWorkspaceIdentifier)(e)}async getDirtyWorkspaces(){return[]}};am=H=(0,rM.__decorate)([(0,rM.__param)(0,sr.IStorageService),(0,rM.__param)(1,nw.IWorkspaceContextService),(0,rM.__param)(2,n_.ILogService),(0,rM.__param)(3,nf.IFileService),(0,rM.__param)(4,sX.IWorkbenchEnvironmentService),(0,rM.__param)(5,nS.IUriIdentityService)],am);var af=e.i(973265),av=e.i(370973),a_=e.i(751753),ay=e.i(163731),aC=e.i(108462),aS=e.i(989115),ab=e.i(545341);let aw="configResolveInputLru";class ax extends ab.AbstractVariableResolverService{static{this.INPUT_OR_COMMAND_VARIABLES_PATTERN=/\${((input|command):(.*?))}/g}constructor(e,t,i,r,o,n,s,a,l,c,d){super({getFolderUri:e=>{let t=n.getWorkspace().folders.filter(t=>t.name===e).pop();return t?t.uri:void 0},getWorkspaceFolderCount:()=>n.getWorkspace().folders.length,getConfigurationValue:(e,t)=>r.getValue(t,e?{resource:e}:{}),getAppRoot:()=>e.getAppRoot(),getExecPath:()=>e.getExecPath(),getFilePath:()=>{let e=ad.EditorResourceAccessor.getOriginalUri(i.activeEditor,{supportSideBySide:ad.SideBySideEditor.PRIMARY,filterByScheme:[nl.Schemas.file,nl.Schemas.vscodeUserData,this.pathService.defaultUriScheme]});if(e)return this.labelService.getUriLabel(e,{noPrefix:!0})},getWorkspaceFolderPathForFile:()=>{let e=ad.EditorResourceAccessor.getOriginalUri(i.activeEditor,{supportSideBySide:ad.SideBySideEditor.PRIMARY,filterByScheme:[nl.Schemas.file,nl.Schemas.vscodeUserData,this.pathService.defaultUriScheme]});if(!e)return;let t=n.getWorkspaceFolder(e);if(t)return this.labelService.getUriLabel(t.uri,{noPrefix:!0})},getSelectedText:()=>{let e=i.activeTextEditorControl,t=null;if((0,ay.isCodeEditor)(e))t=e;else if((0,ay.isDiffEditor)(e)){let i=e.getOriginalEditor(),r=e.getModifiedEditor();t=i.hasWidgetFocus()?i:r}let r=t?.getModel(),o=t?.getSelection();if(r&&o)return r.getValueInRange(o)},getLineNumber:()=>{let e=i.activeTextEditorControl;if((0,ay.isCodeEditor)(e)){let t=e.getSelection();if(t)return String(t.positionLineNumber)}},getColumnNumber:()=>{let e=i.activeTextEditorControl;if((0,ay.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=o,this.quickInputService=s,this.labelService=a,this.pathService=l,this.storageService=d,this.userInputAccessQueue=new sh.Queue,this.resolvableVariables.add("command"),this.resolvableVariables.add("input")}async resolveWithInteractionReplace(e,t,i,r,o){let n=aS.ConfigurationResolverExpression.parse(t);return await this.resolveWithInteraction(e,n,i,r,o),n.toObject()}async resolveWithInteraction(e,t,i,r,o){let n=aS.ConfigurationResolverExpression.parse(t);for(let t of n.unresolved()){let s;if("command"===t.name){let e=(r?r[t.arg]:void 0)||t.arg,i=await this.commandService.executeCommand(e,n.toObject());if(!(0,oK.isUndefinedOrNull)(i)){if("string"!=typeof i)throw new aC.VariableError(aC.VariableKind.Command,(0,oi.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,o),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;n.resolve(t,s)}return new Map(a_.Iterable.map(n.resolved(),([e,t])=>[e.inner,t.value]))}async resolveInputs(e,t,i){let r;if(!t)return;let o=e?{resource:e.uri}:{},n=this.configurationService.inspect(t,o);if(n)switch(i){case ng.ConfigurationTarget.MEMORY:r=n.memoryValue?.inputs;break;case ng.ConfigurationTarget.DEFAULT:r=n.defaultValue?.inputs;break;case ng.ConfigurationTarget.USER:r=n.userValue?.inputs;break;case ng.ConfigurationTarget.USER_LOCAL:r=n.userLocalValue?.inputs;break;case ng.ConfigurationTarget.USER_REMOTE:r=n.userRemoteValue?.inputs;break;case ng.ConfigurationTarget.APPLICATION:r=n.applicationValue?.inputs;break;case ng.ConfigurationTarget.WORKSPACE:r=n.workspaceValue?.inputs;break;case ng.ConfigurationTarget.WORKSPACE_FOLDER:default:r=n.workspaceFolderValue?.inputs}return r??this.configurationService.getValue(t,o)?.inputs}readInputLru(){let e=this.storageService.get(aw,si.StorageScope.WORKSPACE),t=new sd.LRUCache(5);try{e&&t.fromJSON(JSON.parse(e))}catch{}return t}storeInputLru(e){this.storageService.store(aw,JSON.stringify(e.toJSON()),si.StorageScope.WORKSPACE,si.StorageTarget.MACHINE)}async showUserInput(e,t,i,r){if(!i)throw new aC.VariableError(aC.VariableKind.Input,(0,oi.localize)(13802,"Variable '{0}' must be defined in an '{1}' section of the debug or task configuration.",t,"inputs"));let o=i.filter(e=>e.id===t).pop();if(o){let i=e=>{throw new aC.VariableError(aC.VariableKind.Input,(0,oi.localize)(13803,"Input variable '{0}' is of type '{1}' and must include '{2}'.",t,o.type,e))},n=this.readInputLru(),s=`${e}.${t}`,a=n.get(s);switch(o.type){case"promptString":{(0,oK.isString)(o.description)||i("description");let e={prompt:o.description,ignoreFocusLost:!0,value:r?.[`input:${t}`]??a??o.default};return o.password&&(e.password=o.password),this.userInputAccessQueue.queue(()=>this.quickInputService.input(e)).then(e=>("string"!=typeof e||o.password||this.storeInputLru(n.set(s,e)),void 0!==e?{value:e,input:o}:void 0))}case"pickString":{if((0,oK.isString)(o.description)||i("description"),Array.isArray(o.options))for(let e of o.options)(0,oK.isString)(e)||(0,oK.isString)(e.value)||i("value");else i("options");let e=[];for(let i of o.options){let n=(0,oK.isString)(i)?i:i.value,s=(0,oK.isString)(i)?void 0:i.label,l={label:s?`${s}: ${n}`:n,value:n},c=r?.[`input:${t}`]??a??o.default;n===o.default?(l.description=(0,oi.localize)(13804,"(Default)"),e.unshift(l)):n===c?e.unshift(l):e.push(l)}let l={placeHolder:o.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(n.set(s,t)),{value:t,input:o}}})}case"command":return(0,oK.isString)(o.command)||i("command"),this.userInputAccessQueue.queue(()=>this.commandService.executeCommand(o.command,o.args)).then(e=>{if("string"==typeof e||(0,oK.isUndefinedOrNull)(e))return{value:e,input:o};throw new aC.VariableError(aC.VariableKind.Input,(0,oi.localize)(13805,"Cannot substitute input variable '{0}' because command '{1}' did not return a result of type string.",t,o.command))});default:throw new aC.VariableError(aC.VariableKind.Input,(0,oi.localize)(13806,"Input variable '{0}' can only be of type 'promptString', 'pickString', or 'command'.",t))}}throw new aC.VariableError(aC.VariableKind.Input,(0,oi.localize)(13807,"Undefined input variable '{0}' encountered. Remove or define '{0}' to continue.",t))}}var aD=e.i(292035);let aE=class extends ax{constructor(e,t,i,r,o,n,s,a,l){super({getAppRoot:()=>void 0,getExecPath:()=>void 0},Promise.resolve(Object.create(null)),e,t,i,r,o,n,s,a,l)}};aE=(0,rM.__decorate)([(0,rM.__param)(0,sk.IEditorService),(0,rM.__param)(1,rW.IConfigurationService),(0,rM.__param)(2,al.ICommandService),(0,rM.__param)(3,nw.IWorkspaceContextService),(0,rM.__param)(4,st.IQuickInputService),(0,rM.__param)(5,av.ILabelService),(0,rM.__param)(6,aD.IPathService),(0,rM.__param)(7,s2.IExtensionService),(0,rM.__param)(8,sr.IStorageService)],aE);var ak=e.i(703175),aT=e.i(68629),aR=e.i(130722),aP=e.i(425761),aI=e.i(63876);let aA=rh.URI.from({scheme:nl.Schemas.vscodeUserData,path:"/User/settings.json"});async function aM(e,t,i=aA){await (0,aT.initFile)(i,e,t)}nC.Registry.as(nm.Extensions.Configuration);let aL=class extends s9{constructor(e,t,i,r,o,n,s,a){super({configurationCache:new ai([nl.Schemas.file,nl.Schemas.vscodeUserData,nl.Schemas.tmp],e,r),remoteAuthority:(0,aI.getWorkbenchConstructionOptions)().remoteAuthority},e,t,i,r,o,n,s,a)}};aL=(0,rM.__decorate)([(0,rM.__param)(0,sX.IWorkbenchEnvironmentService),(0,rM.__param)(1,sP.IUserDataProfileService),(0,rM.__param)(2,nb.IUserDataProfilesService),(0,rM.__param)(3,nf.IFileService),(0,rM.__param)(4,ao.IRemoteAgentService),(0,rM.__param)(5,nS.IUriIdentityService),(0,rM.__param)(6,n_.ILogService),(0,rM.__param)(7,ny.IPolicyService)],aL);class aF extends ah{constructor(){super(...arguments),this.enterWorkspace=aP.unsupported}}(0,aR.registerServiceInitializePreParticipant)(async e=>{let t=e.get(nw.IWorkspaceContextService);t.acquireInstantiationService(e.get(ot.IInstantiationService));let r=i??(0,aI.getWorkspaceIdentifier)();if(rh.URI.isUri(r)){let i=r.with({path:"/workspace.code-workspace"});try{let t=e.get(nf.IFileService);await t.createFolder(r),await t.writeFile(i,na.VSBuffer.fromString(JSON.stringify({folders:[{path:r.path}]})))}catch{}await t.initialize({id:(0,nc.generateUuid)(),configPath:i})}else await t.initialize(r)});let aO=(0,aP.memoizedConstructor)(aL);var aN=e.i(698107),a$=no;let aH=5*sD.ByteSize.MB,aU=class extends a$.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 sh.ThrottledDelayer(100),this.initializePromise=this.initialize()}async flush(){if(!this.buffer)return;await this.initializePromise;let e=await this.loadContent();e.length>aH&&(await this.fileService.writeFile(this.getBackupResource(),na.VSBuffer.fromString(e)),e=""),this.buffer&&(e+=this.buffer,this.buffer="",await this.fileService.writeFile(this.resource,na.VSBuffer.fromString(e)))}async initialize(){try{await this.fileService.createFile(this.resource)}catch(e){if(e.fileOperationResult!==sD.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,n9.joinPath)((0,n9.dirname)(this.resource),`${(0,n9.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 a$.LogLevel.Debug:return"debug";case a$.LogLevel.Error:return"error";case a$.LogLevel.Info:return"info";case a$.LogLevel.Trace:return"trace";case a$.LogLevel.Warning:return"warning"}return""}};aU=(0,rM.__decorate)([(0,rM.__param)(3,nf.IFileService)],aU);class aW extends a$.AbstractLoggerService{constructor(e,t,i){super(e,t),this.fileService=i}doCreateLogger(e,t,i){let r=new aN.BufferLogger(t);return(0,sD.whenProviderRegistered)(e,this.fileService).then(()=>r.logger=new aU(e,r.getLevel(),!!i?.donotUseFormatters,this.fileService)),r}}var aq=e.i(37305),aj=e.i(253642),az=e.i(753062),aK=e.i(885277),aV=rd;let aB=class extends aV.Disposable{constructor(e,t,i,r,o){super(),this.environmentService=e,this.fileService=t,this.jsonEditingService=i,this.logService=r,this.loggerService=o,this._onDidChangeDefaultLogLevels=this._register(new r7.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,nD.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 o=i.extensions.find(([e])=>e===t);for(let{resource:n}of(o?o[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(n)===r&&this.loggerService.setLogLevel(n,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,no.getLogLevel)(this.environmentService)}async _writeLogLevelsToArgv(e){let t=[];for(let[i,r]of((0,oK.isUndefined)(e.default)||t.push((0,no.LogLevelToString)(e.default)),e.extensions??[]))t.push(`${i}=${(0,no.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=aK.EXTENSION_IDENTIFIER_WITH_LOG_REGEX.exec(t);if(i&&i[1]&&i[2]){let t=(0,no.parseLogLevel)(i[2]);(0,oK.isUndefined)(t)||e.extensions?.push([i[1].toLowerCase(),t])}else{let i=(0,no.parseLogLevel)(t);(0,oK.isUndefined)(i)||(e.default=i)}}return!(0,oK.isUndefined)(e.default)||e.extensions?.length?e:void 0}async _readLogLevelsFromArgv(){try{let e=await this.fileService.readFile(this.environmentService.argvResource),t=(0,sS.parse)(e.value.toString());return(0,oK.isString)(t["log-level"])?[t["log-level"]]:Array.isArray(t["log-level"])?t["log-level"]:[]}catch(e){(0,sD.toFileOperationResult)(e)!==sD.FileOperationResult.FILE_NOT_FOUND&&this.logService.error(e)}return[]}_getDefaultLogLevelFromEnv(){return(0,no.getLogLevel)(this.environmentService)}_getExtensionsDefaultLogLevelsFromEnv(){let e=[];for(let[t,i]of this.environmentService.extensionLogLevel??[]){let r=(0,no.parseLogLevel)(i);(0,oK.isUndefined)(r)||e.push([t,r])}return e}};aB=(0,rM.__decorate)([(0,rM.__param)(0,sX.IWorkbenchEnvironmentService),(0,rM.__param)(1,nf.IFileService),(0,rM.__param)(2,s4.IJSONEditingService),(0,rM.__param)(3,n_.ILogService),(0,rM.__param)(4,n_.ILoggerService)],aB);var aG=e.i(669827),aQ=e.i(884425);let aJ=(0,oi.localize)(0,"Window");var aY=e.i(262072),aX=r2,aZ=e.i(701898),a0=e.i(558493),a1=e.i(812491),a2=e.i(536367);let a6=class extends aZ.Action{static{this.ID="workbench.action.setLogLevel"}static{this.TITLE=(0,oi.localize2)(8589,"Set Log Level...")}constructor(e,t,i,r,o,n){super(e,t),this.quickInputService=i,this.loggerService=r,this.outputService=o,this.defaultLogLevelsService=n}async run(){let e=await this.selectLogLevelOrChannel();null!==e&&((0,no.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 o=(0,a0.isSingleSourceOutputChannelDescriptor)(e)?[e.source]:(0,a0.isMultiSourceOutputChannelDescriptor)(e)?e.source:[];if(!o.length)continue;let n=o.reduce((e,t)=>Math.min(e,this.loggerService.getLogLevel(t.resource)??r),r),s={id:e.id,label:e.label,description:n!==r?this.getLabel(n):void 0,channel:e};e.extensionId?t.push(s):i.push(s)}let o=[];return o.push({type:"separator",label:(0,oi.localize)(8590,"All")}),o.push(...this.getLogLevelEntries(e.default,this.loggerService.getLogLevel(),!0)),t.length&&(o.push({type:"separator",label:(0,oi.localize)(8591,"Extension Logs")}),o.push(...t.sort((e,t)=>e.label.localeCompare(t.label)))),o.push({type:"separator",label:(0,oi.localize)(8592,"Logs")}),o.push(...i.sort((e,t)=>e.label.localeCompare(t.label))),new Promise((e,t)=>{let i,r=new rd.DisposableStore,n=r.add(this.quickInputService.createQuickPick({useSeparators:!0}));n.placeholder=(0,oi.localize)(8593,"Set Log Level"),n.items=o,r.add(n.onDidTriggerItemButton(e=>{n.hide(),this.defaultLogLevelsService.setDefaultLogLevel(e.item.level)})),r.add(n.onDidAccept(e=>{i=n.selectedItems[0],n.hide()})),r.add(n.onDidHide(()=>{let t=i?i.level??i:null;r.dispose(),e(t)})),n.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 o,n=new rd.DisposableStore,s=n.add(this.quickInputService.createQuickPick());s.placeholder=e?(0,oi.localize)(8594," {0}: Select log level",e?.label):(0,oi.localize)(8595,"Select log level"),s.items=r,s.activeItems=r.filter(e=>e.level===this.loggerService.getLogLevel()),n.add(s.onDidTriggerItemButton(t=>{s.hide(),this.defaultLogLevelsService.setDefaultLogLevel(t.item.level,e.channel.extensionId)})),n.add(s.onDidAccept(e=>{o=s.selectedItems[0],s.hide()})),n.add(s.onDidHide(()=>{o&&this.outputService.setLogLevel(e.channel,o.level),n.dispose(),t()})),s.show()})}getLogLevelEntries(e,t,i){let r=i?{iconClass:a2.ThemeIcon.asClassName(oa.Codicon.checkAll),tooltip:(0,oi.localize)(8596,"Set as Default Log Level")}:void 0;return[{label:this.getLabel(no.LogLevel.Trace,t),level:no.LogLevel.Trace,description:this.getDescription(no.LogLevel.Trace,e),buttons:r&&e!==no.LogLevel.Trace?[r]:void 0},{label:this.getLabel(no.LogLevel.Debug,t),level:no.LogLevel.Debug,description:this.getDescription(no.LogLevel.Debug,e),buttons:r&&e!==no.LogLevel.Debug?[r]:void 0},{label:this.getLabel(no.LogLevel.Info,t),level:no.LogLevel.Info,description:this.getDescription(no.LogLevel.Info,e),buttons:r&&e!==no.LogLevel.Info?[r]:void 0},{label:this.getLabel(no.LogLevel.Warning,t),level:no.LogLevel.Warning,description:this.getDescription(no.LogLevel.Warning,e),buttons:r&&e!==no.LogLevel.Warning?[r]:void 0},{label:this.getLabel(no.LogLevel.Error,t),level:no.LogLevel.Error,description:this.getDescription(no.LogLevel.Error,e),buttons:r&&e!==no.LogLevel.Error?[r]:void 0},{label:this.getLabel(no.LogLevel.Off,t),level:no.LogLevel.Off,description:this.getDescription(no.LogLevel.Off,e),buttons:r&&e!==no.LogLevel.Off?[r]:void 0}]}getLabel(e,t){let i=(0,no.LogLevelToLocalizedString)(e).value;return e===t?`$(check) ${i}`:i}getDescription(e,t){return t===e?(0,oi.localize)(8597,"Default"):void 0}};a6=(0,rM.__decorate)([(0,rM.__param)(2,st.IQuickInputService),(0,rM.__param)(3,n_.ILoggerService),(0,rM.__param)(4,a1.IOutputService),(0,rM.__param)(5,aG.IDefaultLogLevelsService)],a6),class extends aZ.Action{static{this.ID="workbench.action.openSessionLogFile"}static{this.TITLE=(0,oi.localize2)(8598,"Open Window Log File (Session)...")}constructor(e,t,i,r,o,n){super(e,t),this.environmentService=i,this.fileService=r,this.quickInputService=o,this.editorService=n}async run(){let e=await this.quickInputService.pick(this.getSessions().then(e=>e.map((e,t)=>({id:e.toString(),label:(0,n9.basename)(e),description:0===t?(0,oi.localize)(8599,"Current"):void 0}))),{canPickMany:!1,placeHolder:(0,oi.localize)(8600,"Select Session")});if(e){let t=await this.quickInputService.pick(this.getLogFiles(rh.URI.parse(e.id)).then(e=>e.map(e=>({id:e.toString(),label:(0,n9.basename)(e)}))),{canPickMany:!1,placeHolder:(0,oi.localize)(8601,"Select Log file")});if(t)return this.editorService.openEditor({resource:rh.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,n9.dirname)(e));return i.children&&t.push(...i.children.filter(t=>!(0,n9.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 a3=rd;(0,aX.registerAction2)(class extends aX.Action2{constructor(){super({id:a6.ID,title:a6.TITLE,category:aY.Categories.Developer,f1:!0})}run(e){let t=e.get(ot.IInstantiationService).createInstance(a6,a6.ID,a6.TITLE.value);return t.run().finally(()=>t.dispose())}}),(0,aX.registerAction2)(class extends aX.Action2{constructor(){super({id:"workbench.action.setDefaultLogLevel",title:(0,oi.localize2)(8586,"Set Default Log Level"),category:aY.Categories.Developer})}run(e,t,i){return e.get(aG.IDefaultLogLevelsService).setDefaultLogLevel(t,i)}});let a4=class extends a3.Disposable{constructor(e,t,i){super(),this.loggerService=e,this.contextKeyService=t,this.uriIdentityService=i,this.contextKeys=new sd.CounterSet,this.outputChannelRegistry=nC.Registry.as(a0.Extensions.OutputChannels);const r=no.CONTEXT_LOG_LEVEL.bindTo(t);r.set((0,no.LogLevelToString)(e.getLogLevel())),this._register(e.onDidChangeLogLevel(t=>{(0,no.isLogLevel)(t)&&r.set((0,no.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(r7.Event.filter(t.onDidChangeContext,e=>e.affectsSome(this.contextKeys))(()=>this.onDidChangeContext()))}onDidAddLoggers(e){for(let t of e){if(t.when){let e=r3.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(r3.ContextKeyExpr.deserialize(e.when))?this.registerLogChannel(e):this.deregisterLogChannel(e))}onDidRemoveLoggers(e){for(let t of e){if(t.when){let e=r3.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,a0.isSingleSourceOutputChannelDescriptor)(t)&&this.uriIdentityService.extUri.isEqual(t.source.resource,e.resource))return;let i=this.outputChannelRegistry.getChannel(e.id),r=i&&(0,a0.isSingleSourceOutputChannelDescriptor)(i)&&i.source.resource.scheme===nl.Schemas.vscodeRemote?this.loggerService.getRegisteredLogger(i.source.resource):void 0;r&&this.deregisterLogChannel(r);let o=i&&e.resource.scheme===nl.Schemas.vscodeRemote,n=o?`${e.id}.remote`:e.id,s=o?(0,oi.localize)(8587,"{0} (Remote)",e.name??e.id):e.name??e.id;this.outputChannelRegistry.registerChannel({id:n,label:s,source:{resource:e.resource},log:!0,extensionId:e.extensionId})}registerCompoundLogChannel(e,t,i){let r=this.outputChannelRegistry.getChannel(e),o={resource:i.resource,name:i.name??i.id};r?(0,a0.isMultiSourceOutputChannelDescriptor)(r)&&!r.source.some(({resource:e})=>this.uriIdentityService.extUri.isEqual(e,i.resource))&&this.outputChannelRegistry.updateChannelSources(e,[...r.source,o]):this.outputChannelRegistry.registerChannel({id:e,label:t,log:!0,source:[o]})}deregisterLogChannel(e){if(e.group){let t=this.outputChannelRegistry.getChannel(e.group.id);t&&(0,a0.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,aX.registerAction2)(class extends aX.Action2{constructor(){super({id:az.showWindowLogActionId,title:(0,oi.localize2)(8588,"Show Window Log"),category:aY.Categories.Developer,f1:!0})}async run(e){e.get(a1.IOutputService).showChannel(az.windowLogId)}}))}};a4=(0,rM.__decorate)([(0,rM.__param)(0,n_.ILoggerService),(0,rM.__param)(1,ou.IContextKeyService),(0,rM.__param)(2,nS.IUriIdentityService)],a4),nC.Registry.as(n6.Extensions.Workbench).registerWorkbenchContribution(a4,n3.LifecyclePhase.Restored);let a5=class extends aW{constructor(e,t,i){super(e??(0,no.getLogLevel)(i),aI.logsPath,t)}};a5=(0,rM.__decorate)([(0,rM.__param)(1,nf.IFileService),(0,rM.__param)(2,aj.IEnvironmentService)],a5);let a8=[],a7=class extends aq.LogService{constructor(e,t){super(e.createLogger(t.logFile,{id:az.windowLogId,name:aJ}),a8)}};a7=(0,rM.__decorate)([(0,rM.__param)(0,n_.ILoggerService),(0,rM.__param)(1,sX.IWorkbenchEnvironmentService)],a7);var a9=rd,le=e.i(132485),lt=e.i(445152),li=e.i(935868),lr=e.i(935144),lo=rd,ln=e.i(565280);let ls=class extends lo.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 ln.MultiModelEditStackElement&&e.setDelegate(this);for(let e of t.future)e instanceof ln.MultiModelEditStackElement&&e.setDelegate(this)}}))}prepareUndoRedo(e){let t=e.getMissingModels();return 0===t.length?lo.Disposable.None:Promise.all(t.map(async e=>{try{return await this._textModelService.createModelReference(e)}catch(e){return lo.Disposable.None}})).then(e=>({dispose:()=>(0,lo.dispose)(e)}))}};ls=(0,rM.__decorate)([(0,rM.__param)(0,rE.IModelService),(0,rM.__param)(1,sE.ITextModelService),(0,rM.__param)(2,lr.IUndoRedoService)],ls);var la=e.i(141103);let ll=class extends a9.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=rh.URI.parse(e);if(i.scheme===nl.Schemas.inMemory){if(!this.modelService.getModel(i))throw Error(`Unable to resolve inMemory resource ${e}`);let t=this.instantiationService.createInstance(le.TextResourceEditorModel,i);if(this.ensureResolvedModel(t,e))return t}if(i.scheme===nl.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:lt.TextFileResolveReason.REFERENCE});if(this.ensureResolvedModel(t,e))return t}if(this.providers.has(i.scheme)){await this.resolveTextModelContent(e);let t=this.instantiationService.createInstance(le.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){rh.URI.parse(e).scheme!==nl.Schemas.inMemory&&(this.modelsToDispose.add(e),(async()=>{try{let i=await t;if(!this.modelsToDispose.has(e)||(i instanceof li.TextFileEditorModel?await this.textFileService.files.canDispose(i):i instanceof la.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,a9.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=rh.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}`)}};ll=(0,rM.__decorate)([(0,rM.__param)(0,ot.IInstantiationService),(0,rM.__param)(1,sw.ITextFileService),(0,rM.__param)(2,nf.IFileService),(0,rM.__param)(3,rE.IModelService)],ll);let lc=class extends a9.Disposable{get resourceModelCollection(){return this._resourceModelCollection||(this._resourceModelCollection=this.instantiationService.createInstance(ll)),this._resourceModelCollection}get asyncModelCollection(){return this._asyncModelCollection||(this._asyncModelCollection=new a9.AsyncReferenceCollection(this.resourceModelCollection)),this._asyncModelCollection}constructor(e,t,i,r,o){super(),this.instantiationService=e,this.fileService=t,this.undoRedoService=i,this.modelService=r,this.uriIdentityService=o,this._resourceModelCollection=void 0,this._asyncModelCollection=void 0,this._register(new ls(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===nl.Schemas.untitled||e.scheme===nl.Schemas.inMemory||this.resourceModelCollection.hasTextModelContentProvider(e.scheme)}};lc=(0,rM.__decorate)([(0,rM.__param)(0,ot.IInstantiationService),(0,rM.__param)(1,nf.IFileService),(0,rM.__param)(2,lr.IUndoRedoService),(0,rM.__param)(3,rE.IModelService),(0,rM.__param)(4,nS.IUriIdentityService)],lc);let ld=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}},lu=()=>{"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},lh=(e,t)=>{if(void 0!==t)for(let[i,r]of Object.entries(t))e[i]=r},lg=async(e,t,i,r)=>{r?.info("Received open editor call with parameters: ",e,t,i)};class lp{url;options;constructor(e,t){this.url=e,this.options=t}}let lm=e=>{let t=lu();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)},lf=t=>{lm({workerLoaders:{editorWorkerService:()=>new lp(new e.U(e.r(310336)),{type:"module"}),extensionHostWorkerMain:()=>new lp(new e.U(e.r(969663)),{type:"module"}),TextMateWorker:()=>new lp(new e.U(e.r(859546)),{type:"module"}),OutputLinkDetectionWorker:void 0,LanguageDetectionWorker:void 0,NotebookEditorWorker:void 0,LocalFileSearchWorker:void 0},logger:t})};var lv=e.i(663544);e.i(610504);class l_{logger=new no.ConsoleLogger;extensionRegisterResults=new Map;disposableStore=new rd.DisposableStore;apiConfig;constructor(e){this.apiConfig={...e,serviceOverrides:e.serviceOverrides??{},logLevel:e.logLevel??no.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):lm({logger:this.logger})}performErrorHandling=e=>{throw lu().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;lh(this.apiConfig.serviceOverrides,{...r(),...t(),...i()})}else{let t=(await e.A(963197)).default;lh(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=lu();if("ViewsService"===t){let t=(await e.A(974099)).default;lh(this.apiConfig.serviceOverrides,{...t(this.apiConfig.viewsConfig.openEditorFunc??lg)}),i.viewServiceType="ViewsService"}else if("WorkbenchService"===t){let t=(await e.A(924017)).default;lh(this.apiConfig.serviceOverrides,{...t()}),i.viewServiceType="WorkbenchService"}else{let t=(await e.A(872082)).default;lh(this.apiConfig.serviceOverrides,{...t(this.apiConfig.viewsConfig.openEditorFunc??lg)}),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:lv.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 aM(this.apiConfig.userConfiguration.json)}async supplyRequiredServices(){return{...(i=void 0,{...(0,aT.default)(),[rW.IConfigurationService.toString()]:new nv.SyncDescriptor(aO,[],!0),[nw.IWorkspaceContextService.toString()]:new nv.SyncDescriptor(aO,[],!0),[nd.ITextResourceConfigurationService.toString()]:new nv.SyncDescriptor(np,[],!0),[af.IWorkspaceEditingService.toString()]:new nv.SyncDescriptor(aF,[],!0),[nx.IWorkspacesService.toString()]:new nv.SyncDescriptor(am,[],!0),[nd.ITextResourcePropertiesService.toString()]:new nv.SyncDescriptor(as,[],!0),[ak.IConfigurationResolverService.toString()]:new nv.SyncDescriptor(aE,[],!0)}),...{...(0,aQ.default)(),[n_.ILoggerService.toString()]:new nv.SyncDescriptor(a5,[void 0],!0),[n_.ILogService.toString()]:new nv.SyncDescriptor(a7,[],!0),[aG.IDefaultLogLevelsService.toString()]:new nv.SyncDescriptor(aB,[],!0)},...{[sE.ITextModelService.toString()]:new nv.SyncDescriptor(lc,[],!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"),o=Object.keys(e).includes("viewsService");t&&!i&&this.performErrorHandling('"theme" service requires "textmate" service. Please add it to the "userServices".'),r&&!o&&this.performErrorHandling('"markers" service requires "views" service. Please add it to the "userServices".')}async initAllServices(t){let i=await this.supplyRequiredServices();if(lh(i,this.apiConfig.serviceOverrides),this.apiConfig.advanced?.loadExtensionServices===void 0||!0===this.apiConfig.advanced.loadExtensionServices){let{default:t}=await e.A(473446);lh(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,rn.initialize)(i,this.apiConfig.viewsConfig.htmlContainer,this.apiConfig.workspaceConfig,this.apiConfig.envOptions):await (0,rn.initialize)(i,void 0,this.apiConfig.workspaceConfig,this.apiConfig.envOptions),(0,oE.setUnexpectedErrorHandler)(e=>{this.logger.getLevel()!==no.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,nn.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,nn.registerExtension)(t,ns.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],ld(t[1])));return i.whenReady()}}markGlobalInit(){this.logger.debug("markGlobalInit");let e=lu();e.vscodeApiGlobalInitAwait=new Promise(t=>{e.vscodeApiGlobalInitResolve=t})}markGlobalInitDone(){let e=lu();e.vscodeApiGlobalInitResolve?.(),e.vscodeApiInitialised=!0,e.vscodeApiGlobalInitAwait=void 0,e.vscodeApiGlobalInitResolve=void 0,this.logger.debug("markGlobalInitDone")}async start(e){let t=lu();!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 rd.DisposableStore}}var ly=e.i(269213),lC=ly;class lS extends lC.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 lb=ly;class lw extends lb.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 lx=e.i(437122),lD=e.i(523592);let lE=new Map,lk=null;function lT(e,t){let i,r;if(lE.has(e))return;let o=new WebSocket(((i=new URL("/ws/lsp/typescript",(0,lD.getActiveServerUrl)()??window.location.origin)).protocol="https:"===i.protocol?"wss:":"ws:",i.searchParams.set("workspaceId",e),(r=(0,lx.getToken)())&&i.searchParams.set("token",r),i.toString()));o.onopen=async()=>{console.info("[monaco-language-client] TypeScript websocket opened",{workspaceId:e,workspaceRoot:t}),await (lk||(lk=new l_({$type:"classic",viewsConfig:{$type:"EditorService"},userConfiguration:{json:JSON.stringify({"editor.wordBasedSuggestions":"off","typescript.tsserver.useSyntaxServer":"auto"})},monacoWorkerFactory:lf}).start({caller:"agent-spaces-monaco-language-client"})));let i={send:e=>o.send(e),onMessage:e=>{o.onmessage=t=>e(t.data)},onError:e=>{o.onerror=t=>{Object.hasOwn(t,"message")&&e(t.message)}},onClose:e=>{o.onclose=t=>e(t.code,t.reason)},dispose:()=>o.close()},r={reader:new lS(i),writer:new lw(i)},n=new ro({id:`typescript-${e}`,name:"TypeScript Language Server",clientOptions:{documentSelector:[{language:"typescript",scheme:"file"},{language:"javascript",scheme:"file"}],workspaceFolder:{index:0,name:e,uri:t?lv.Uri.file(t):lv.Uri.parse(`file:///workspace/${e}`)},errorHandler:{error:()=>({action:rr.ErrorAction.Continue}),closed:()=>({action:rr.CloseAction.DoNotRestart})}},messageTransports:r});lE.set(e,n),n.start().catch(t=>{console.warn("[monaco-language-client] failed to start TypeScript client:",t),lE.delete(e),o.close()})},o.onerror=()=>{console.warn("[monaco-language-client] TypeScript language server websocket failed")},o.onclose=()=>{let t=lE.get(e);lE.delete(e),t?.stop()}}function lR(e,t,i,r){if(!e)return null;let o=(i||r||"").replace(/\/+$/,"");if(o&&e.path.startsWith(`${o}/`))return decodeURIComponent(e.path.slice(o.length+1));var n=e.path;if(!n)return null;let s=`/workspace/${t}/`;if(n.startsWith(s))return decodeURIComponent(n.slice(s.length));let a=`/${t}/`;return n.startsWith(a)?decodeURIComponent(n.slice(a.length)):null}let lP=["",".tsx",".ts",".jsx",".js",".mjs",".cjs",".json"],lI=["index.tsx","index.ts","index.jsx","index.js","index.mjs","index.cjs","index.json"];async function lA(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 lM(e,t){for(let i of lP){let r=`${t}${i}`;if(await lA(e,r))return r}for(let i of lI){let r=`${t}/${i}`;if(await lA(e,r))return r}return null}async function lL(e,t,i){if(!i.startsWith(".")&&!i.startsWith("@/"))return null;let r=t.split("/").slice(0,-1).join("/"),o=t.split("/").lastIndexOf("src"),n=o>=0?t.split("/").slice(0,o+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("@/")?`${n}/${i.slice(2)}`:`${r}/${i}`);return s?lM(e,s):null}async function lF(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 lO(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 lN(e){let t=e?.getDomNode(),i=document.activeElement;t&&i instanceof HTMLElement&&t.contains(i)&&i.blur()}function l$(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 o=t.getWordAtPosition({lineNumber:i.startLineNumber,column:i.startColumn});return!!o&&o.word===r&&i.startColumn===o.startColumn&&i.endColumn===o.endColumn}function lH(e){let t=e?.getModel(),i=e?.getSelection(),r=e?.getDomNode();if(!e||!t||!i||!r||!l$(e))return null;let o=e.getScrolledVisiblePosition({lineNumber:i.endLineNumber,column:i.endColumn}),n=r.getBoundingClientRect(),s=t.getValueInRange(i);return{x:o?n.left+o.left:n.left+n.width/2,y:o?n.top+o.top+o.height:n.top+n.height/2,selectedText:s,canNavigate:!0}}function lU(e){let t=e?.getPosition();e&&t&&e.setSelections([{selectionStartLineNumber:t.lineNumber,selectionStartColumn:t.column,positionLineNumber:t.lineNumber,positionColumn:t.column}],"agentSpaces.mobileContextMenu")}function lW({activeContent:e,wordWrap:t,mobileSelectionMode:i,mobileReadonlyMenu:r,mobileSelectionPreMetrics:o,mobileSelectionPreRef:n,mobileReadonlyMenuRef:s,onContextMenu:a,onEnterSelectionMode:l,onCloseSelectionMode:c,onCopySelection:d,onRunEditorAction:u,onRunBuiltinAction:h}){return(0,U.jsxs)(U.Fragment,{children:[i?(0,U.jsx)("pre",{ref:n,className:"absolute inset-0 z-20 m-0 overflow-auto bg-background py-2 text-foreground select-text",style:{paddingLeft:o?.contentLeft??0,paddingRight:o?.contentRight??0,fontFamily:o?.fontFamily,fontWeight:o?.fontWeight,fontSize:o?.fontSize,lineHeight:o?`${o.lineHeight}px`:void 0,letterSpacing:o?.letterSpacing,fontFeatureSettings:o?.fontFeatureSettings,fontVariationSettings:o?.fontVariationSettings,whiteSpace:t?"pre-wrap":"pre",overflowWrap:t?"anywhere":"normal"},onContextMenu:a,children:e}):null,r?(0,U.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,U.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent cursor-pointer",onClick:l,children:"选择模式"}),(0,U.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent cursor-pointer",onClick:d,children:"复制代码"}),r.canNavigate?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent cursor-pointer",onClick:()=>u("editor.action.revealDefinition"),children:"Go to Definition"}),(0,U.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent cursor-pointer",onClick:()=>u("editor.action.goToReferences"),children:"Go to References"})]}):null,B.map(e=>(0,U.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent cursor-pointer",onClick:()=>h(e.id),children:e.label},e.id)),i?(0,U.jsx)("button",{type:"button",className:"flex w-full items-center rounded-sm px-2 py-1.5 text-left text-sm hover:bg-accent cursor-pointer",onClick:c,children:"完成"}):null]}):null]})}var lq=e.i(555060);function lj(){let e=(0,es.useTranslations)("editor");return(0,U.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:e("loadingEditor")})}let lz=(0,W.default)(()=>e.A(863812).then(e=>e.default),{loadableGenerated:{modules:[158480]},ssr:!1,loading:()=>(0,U.jsx)(lj,{})}),lK=!1;e.s(["CodeEditor",0,function({workspaceId:e}){lK||(lK=!0,window.addEventListener("unhandledrejection",e=>{(e.reason?.name==="Canceled"||"Canceled"===String(e.reason))&&e.preventDefault()}));let{openFiles:t,modifiedFileContents:i,activeFilePath:r,updateContent:o,saveFile:n,refreshFile:s,jumpToPosition:a,pendingJump:l,clearPendingJump:c,commitDiffs:d}=(0,Q.useEditorStore)(),{resolvedTheme:u}=(0,ep.useTheme)(),h=(0,es.useTranslations)("editor"),g=(0,G.useIsMobile)(),p=(0,ei.useWorkspaceStore)(t=>t.workspaces.find(t=>t.id===e)?.boundDirs?.[0]),m=(0,q.useRef)(null),f=(0,q.useRef)(null),_=(0,q.useRef)(null),y=(0,q.useRef)([]),C=(0,q.useRef)([]),S=(0,q.useRef)([]),[b,w]=(0,q.useState)(!0),[x,D]=(0,q.useState)(!1),[E,k]=(0,q.useState)(()=>"true"===localStorage.getItem("editor-word-wrap")),[T,R]=(0,q.useState)(()=>"true"===localStorage.getItem("editor-minimap")),[P,I]=(0,q.useState)(0),[A,M]=(0,q.useState)(0),[L,F]=(0,q.useState)(!0),O=t.find(e=>e.path===r),N=O?i[O.path]??O.content:"",$=!!r&&(0,Q.isCommitDiffPath)(r),H=$&&r?d[(0,Q.getCommitHashFromPath)(r)]:null,W=O?.mediaType??(r?(0,Q.getMediaType)(r):null),z="image"===W||"video"===W||"audio"===W||"svg"===W||"markdown"===W,J="svg"===W||"markdown"===W,Y=r&&W?`/api/workspaces/${e}/files/content?path=${encodeURIComponent(r)}&raw=true`:null;(0,q.useEffect)(()=>{F(!0)},[r]);let X=function({editorRef:e,monacoRef:t,activeContent:i,workspaceId:r,workspaceRoot:o,isMobile:n,isReadOnly:s,isCommitDiff:a,hasActiveFile:l,editorReadyTick:c,wordWrap:d}){let u=(0,q.useRef)(null),h=(0,q.useRef)(null),g=(0,q.useRef)(null),p=(0,q.useRef)(null),m=(0,q.useRef)(null),f=(0,q.useRef)(!1),_=(0,q.useRef)(!1),y=(0,q.useRef)(!1),[C,S]=(0,q.useState)(!1),[b,w]=(0,q.useState)(null),[x,D]=(0,q.useState)(null),E=n&&s&&!a&&l,k=(0,q.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,q.useCallback)(()=>{let e=g.current;e&&(window.clearTimeout(e.timer),g.current=null)},[]),R=(0,q.useCallback)(()=>{null!=p.current&&(window.clearTimeout(p.current),p.current=null)},[]),P=(0,q.useCallback)(()=>{null!=m.current&&(window.clearTimeout(m.current),m.current=null)},[]),I=(0,q.useCallback)(t=>{E&&!C&&(t.preventDefault(),t.stopPropagation(),lN(e.current),w({x:t.clientX,y:t.clientY,selectedText:"",canNavigate:l$(e.current)}))},[e,C,E]),A=(0,q.useCallback)(()=>{f.current||E&&!C&&lN(e.current)},[e,C,E]),M=(0,q.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),o=i?.getSelection();if(o&&r?.position&&!o.isEmpty()&&o.containsPosition(r.position)){t.preventDefault(),t.stopPropagation();let e=lH(i);e&&w(e);return}w(null),T();let n=t.clientX,s=t.clientY;g.current={x:n,y:s,timer:window.setTimeout(()=>{lN(e.current),w({x:n,y:s,selectedText:"",canNavigate:l$(i)}),g.current=null},520)}},[T,e,C,E]),L=(0,q.useCallback)(e=>{!E||h.current?.contains(e.target)||(w(null),M(e))},[M,E]),F=(0,q.useCallback)(e=>{let t=g.current;!t||Math.hypot(e.clientX-t.x,e.clientY-t.y)>10&&T()},[T]),O=(0,q.useCallback)(()=>{T()},[T]),N=(0,q.useCallback)(t=>{if(!C)return;let i=window.getSelection(),r=i?.toString()??"";if(!r)return void w(null);let o=u.current,n=i?.rangeCount?i.getRangeAt(0):null;if(o&&n&&o.contains(n.commonAncestorContainer)){let t=document.createRange();t.selectNodeContents(o),t.setEnd(n.startContainer,n.startOffset);let i=document.createRange();i.selectNodeContents(o),i.setEnd(n.endContainer,n.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=n?.getBoundingClientRect();w({x:s?s.left+s.width/2:window.innerWidth/2,y:s?s.bottom:window.innerHeight/2,selectedText:r,canNavigate:l$(e.current)})},[e,C]),$=(0,q.useCallback)(()=>{R(),w(null),p.current=window.setTimeout(()=>{p.current=null,N(!0)},1400)},[R,N]),H=(0,q.useCallback)(e=>{C&&(e.preventDefault(),e.stopPropagation(),$())},[C,$]),U=(0,q.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,q.useCallback)(async()=>{let e=b?.selectedText||i;e&&(await navigator.clipboard.writeText(e),V.toast.success(b?.selectedText?"已复制选中文本":"已复制代码"),k())},[i,k,b]),j=(0,q.useCallback)(t=>{let i=e.current,n=B.find(e=>e.id===t);i&&n&&(n.run(i,{workspaceId:r,workspaceRoot:o}),k())},[k,e,r,o]),z=(0,q.useCallback)(t=>{let i=e.current;if(!i)return;let r=i.getSelection(),o=r?.getStartPosition()??i.getPosition();w(null),P(),_.current=!0,y.current=!0,f.current=!0,o&&(i.setSelections([{selectionStartLineNumber:o.lineNumber,selectionStartColumn:o.column,positionLineNumber:o.lineNumber,positionColumn:o.column}],"agentSpaces.mobileContextMenu"),i.setPosition(o)),i.focus(),requestAnimationFrame(()=>{for(let r of(i.trigger("agentSpaces.mobileContextMenu",t,void 0),[250,700,1200]))window.setTimeout(()=>{lU(e.current),w(null)},r);window.setTimeout(()=>{lU(e.current),w(null),f.current=!1,_.current=!1,y.current=!1,lN(e.current)},1600)})},[P,e]);return(0,q.useEffect)(()=>{E||(k(),T())},[T,k,E]),(0,q.useEffect)(()=>{if(!C)return;let e=()=>{window.setTimeout(()=>{N(!1),$()},0)};return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[C,$,N]),(0,q.useEffect)(()=>{if(!C)return;let e=u.current;e&&x&&(e.scrollLeft=x.scrollLeft,e.scrollTop=x.scrollTop)},[C,x]),(0,q.useEffect)(()=>{let t=e.current;if(!t||!E||C)return void P();let i=t.onDidChangeCursorSelection(()=>{(P(),_.current)?w(null):l$(t)?m.current=window.setTimeout(()=>{m.current=null;let e=lH(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:z,runMobileBuiltinAction:j,handleMobileSelectionContextMenu:H}}({editorRef:m,monacoRef:f,activeContent:N,workspaceId:e,workspaceRoot:p,isMobile:g,isReadOnly:b,isCommitDiff:$,hasActiveFile:!!O,editorReadyTick:P,wordWrap:E}),Z=(0,q.useCallback)(()=>{r&&n(e,r)},[r,n,e]),ee=(0,q.useRef)(Z);(0,q.useEffect)(()=>{ee.current=Z},[Z]);let et=(0,q.useCallback)((e,t)=>{e.updateOptions({readOnly:t})},[]),er=(0,q.useCallback)((t,i)=>{!function(e,t,i,r){for(let e of i)e.dispose();i.length=0;let{activeFilePath:o,workspaceId:n,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,o??null),l=lR(t,n,s,r);if(!l)return console.warn("[monaco-navigation] failed to map target uri",{uri:t.toString(),workspaceRoot:s,inferredRoot:r,activeFilePath:o}),!1;let c=lR(e.getModel()?.uri,n,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,o=r?await lL(n,c,r):null;if(o&&o!==c){let t=i?.getWordAtPosition(e.getPosition()??{lineNumber:d,column:u||1})?.word,s=t?await lF(n,o):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`)],o=e.split(/\r?\n/);for(let e=0;e<o.length;e+=1){let i=o[e];for(let o of r){let r=o.exec(i);if(!r||null==r.index)continue;let n=r[1]?i.indexOf(r[1],r.index):r.index;if(!(n<0))return{line:e+1,column:n+1,endColumn:n+t.length+1}}}return null}(s,t):null;return console.info("[monaco-navigation] resolved import target",{specifier:r,sourcePath:c,resolvedPath:o,symbolName:t,symbolPosition:l}),window.setTimeout(()=>{a(n,o,l?.line??1,l?.column??1,l?.line,l?.endColumn).then(()=>{console.info("[monaco-navigation] jumped to resolved import target",{resolvedPath:o})})},0),!0}}return d?c===l?(e.setPosition({lineNumber:d,column:u||1}),e.revealLineInCenter(d)):window.setTimeout(()=>{a(n,l,d,u)},0):await Q.useEditorStore.getState().openFile(n,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:()=>{Q.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]),eo=(0,q.useCallback)((t,i)=>{for(let r of(m.current=t,f.current=i,p&&lT(e,p),et(t,b),er(t,i),C.current))r.dispose();C.current=function(e,t){let i=[];for(let r of j.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:()=>ee.current()})},[b,er,et,e,p]);(0,q.useEffect)(()=>{m.current&&p&&lT(e,p)},[e,p]),(0,q.useEffect)(()=>{m.current&&f.current&&er(m.current,f.current)},[er]),(0,q.useEffect)(()=>()=>{let t;(t=lE.get(e))&&(lE.delete(e),t.stop())},[e]),(0,q.useEffect)(()=>()=>{for(let e of y.current)e.dispose();for(let e of(y.current=[],C.current))e.dispose();C.current=[],S.current=[]},[]);let en=(0,K.useCodeFavoritesStore)(e=>e.favorites);(0,q.useEffect)(()=>{let t=m.current,i=f.current;if(!t||!i||!r){t&&(S.current=t.deltaDecorations(S.current,[]));return}let o=en.filter(t=>t.path===r&&t.workspaceId===e);if(0===o.length){S.current=t.deltaDecorations(S.current,[]);return}let n=o.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,n)},[r,en,e,P]),(0,q.useEffect)(()=>{if(!r||!O||O.modified||$)return;let t=setInterval(()=>{s(e,r)},3e3);return()=>clearInterval(t)},[O,r,O?.modified,$,e,s]),(0,q.useEffect)(()=>{let e=m.current;e&&et(e,b)},[b,et]),(0,q.useEffect)(()=>{X.pendingNavigationSelectionCleanup.current&&window.setTimeout(()=>{X.pendingNavigationSelectionCleanup.current&&(lU(m.current),X.closeMobileSelectionMode())},0)},[r,P,X]),(0,q.useEffect)(()=>{let e=m.current;e&&e.updateOptions({wordWrap:E?"on":"off"})},[E]),(0,q.useEffect)(()=>{let e=m.current;e&&e.updateOptions({minimap:{enabled:T}})},[T]),(0,q.useEffect)(()=>{O&&r&&function(e,t,i,r){let o=i??"",n=ri(e,t,r),s=eb.editor.getModel(n);if(s)s.getValue()!==o&&s.setValue(o);else{let e,i;s=eb.editor.createModel(o,(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"),n)}rt.set(t,s)}(e,r,N,p)},[O,r,N,e,p]),(0,q.useEffect)(()=>{if(!l||!r||l.path!==r||!m.current)return;let{line:t,column:i,endLine:o,endColumn:n,path:s}=l,a=m.current,d=a.getModel(),u=ri(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=o?Math.min(Math.max(1,o),d.getLineCount()):h,_=n?Math.min(Math.max(1,n),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 ea=r?ri(e,r,p).toString():void 0;return(0,U.jsxs)("div",{className:`flex flex-col h-full ${x?"fixed inset-0 z-50 bg-background":""}`,children:[(0,U.jsx)(eu,{workspaceId:e}),(0,U.jsx)(eg,{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,U.jsx)("div",{ref:_,className:"relative flex-1 min-h-0",...X.containerProps,children:$&&H?(0,U.jsx)(ey,{diffs:H.diffs,message:H.message}):z&&L&&(Y||"markdown"===W)?(0,U.jsxs)("div",{className:"relative flex justify-center h-full bg-muted/20 overflow-auto p-4",children:[J&&(0,U.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 cursor-pointer",title:h("switchToCode"),children:[(0,U.jsx)(eC.Code,{size:14}),h("code")]}),"image"===W&&(0,U.jsx)("img",{src:Y,alt:O?.name,className:"max-w-full max-h-full object-contain"}),"video"===W&&(0,U.jsx)("video",{src:Y,controls:!0,className:"max-w-full max-h-full"}),"audio"===W&&(0,U.jsxs)("div",{className:"flex flex-col items-center gap-4",children:[(0,U.jsx)("div",{className:"text-muted-foreground text-sm",children:O?.name}),(0,U.jsx)("audio",{src:Y,controls:!0})]}),"svg"===W&&(0,U.jsx)("img",{src:Y,alt:O?.name,className:"max-w-full max-h-full object-contain"}),"markdown"===W&&N&&(0,U.jsx)("div",{className:"prose prose-sm dark:prose-invert max-w-none w-full max-w-4xl mx-auto",children:(0,U.jsx)(lq.Markdown,{content:N,workspaceId:e})})]}):O&&J&&!L?(0,U.jsxs)("div",{className:"relative flex flex-col h-full",children:[(0,U.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 cursor-pointer",title:h("switchToPreview"),children:[(0,U.jsx)(eS.Eye,{size:14}),h("preview")]}),(0,U.jsx)(lz,{height:"100%",language:lO(O.path),value:N,path:ea,onChange:(t,i)=>{if(i.isFlush)return;let r=lR(m.current?.getModel()?.uri,e,p);r&&r===O.path&&o(r,t||"")},onMount:eo,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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(lz,{height:"100%",language:lO(O.path),value:N,path:ea,onChange:(t,i)=>{if(i.isFlush)return;let r=lR(m.current?.getModel()?.uri,e,p);r&&r===O.path&&o(r,t||"")},onMount:eo,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"}),X.showMobileReadonlyOverlay?(0,U.jsx)(lW,{activeContent:N,wordWrap:E,mobileSelectionMode:X.mobileSelectionMode,mobileReadonlyMenu:X.mobileReadonlyMenu,mobileSelectionPreMetrics:X.mobileSelectionPreMetrics,mobileSelectionPreRef:X.mobileSelectionPreRef,mobileReadonlyMenuRef:X.mobileReadonlyMenuRef,onContextMenu:X.handleMobileSelectionContextMenu,onEnterSelectionMode:X.enterMobileSelectionMode,onCloseSelectionMode:X.closeMobileSelectionMode,onCopySelection:X.copyMobileSelection,onRunEditorAction:X.runMobileEditorAction,onRunBuiltinAction:X.runMobileBuiltinAction}):null]}):(0,U.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))}]);