ompchamber 0.3.0 → 0.5.0

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 (256) hide show
  1. package/README.md +17 -10
  2. package/dist/client/index.html +1 -1
  3. package/dist/client/static/css/index.5291f58223.css +2 -0
  4. package/dist/client/static/js/async/{1k.544adbf77d.js → 1k.5974df3b87.js} +2 -2
  5. package/dist/client/static/js/async/3j.357c80ff38.js +2 -0
  6. package/dist/client/static/js/async/{3y.22075aa079.js → 3y.ededeebde8.js} +5 -5
  7. package/dist/client/static/js/async/51.95bcae98af.js +2 -0
  8. package/dist/client/static/js/async/6.f034c9b528.js +1 -0
  9. package/dist/client/static/js/async/a.e05da304c8.js +10 -0
  10. package/dist/client/static/js/async/ar.1e14da5588.js +1 -0
  11. package/dist/client/static/js/async/ct.b74928f7a3.js +1 -0
  12. package/dist/client/static/js/async/dc.6dc4b0a04b.js +2 -0
  13. package/dist/client/static/js/async/fw.6a51998a8e.js +6 -0
  14. package/dist/client/static/js/async/g.7a4bbd4798.js +2 -0
  15. package/dist/client/static/js/async/g.7a4bbd4798.js.LICENSE.txt +11 -0
  16. package/dist/client/static/js/async/{k.e878dd350f.js → k.7466330d1a.js} +2 -2
  17. package/dist/client/static/js/async/katex-vendor.de6a87c308.js +1 -0
  18. package/dist/client/static/js/async/kc.bbdb35b771.js +1 -0
  19. package/dist/client/static/js/async/l6.c56640c205.js +1 -0
  20. package/dist/client/static/js/async/{m.3fc017a055.js → m.4b29d34f93.js} +3 -3
  21. package/dist/client/static/js/async/{og.ae7acf03ac.js → og.634fba99ac.js} +2 -2
  22. package/dist/client/static/js/async/q.7fb4d2f374.js +21 -0
  23. package/dist/client/static/js/async/rd.cb6bf495bb.js +2 -0
  24. package/dist/client/static/js/async/rf.d626afc367.js +2 -0
  25. package/dist/client/static/js/async/s.413c2a4683.js +2 -0
  26. package/dist/client/static/js/async/s.413c2a4683.js.LICENSE.txt +6 -0
  27. package/dist/client/static/js/async/sy.d16be843a7.js +94 -0
  28. package/dist/client/static/js/async/t.cb3fcf8615.js +1 -0
  29. package/dist/client/static/js/async/ud.3065bfee31.js +2 -0
  30. package/dist/client/static/js/async/uf.46ad6209fa.js +2 -0
  31. package/dist/client/static/js/async/uf.46ad6209fa.js.LICENSE.txt +6 -0
  32. package/dist/client/static/js/async/v.7d28d3c241.js +34 -0
  33. package/dist/client/static/js/async/v0.394ed37c6b.js +2 -0
  34. package/dist/client/static/js/async/v0.394ed37c6b.js.LICENSE.txt +6 -0
  35. package/dist/client/static/js/async/vt.42416b707d.js +1 -0
  36. package/dist/client/static/js/async/vy.bbe114c4e0.js +2 -0
  37. package/dist/client/static/js/async/vy.bbe114c4e0.js.LICENSE.txt +6 -0
  38. package/dist/client/static/js/async/xw.ae67ba06fd.js +31 -0
  39. package/dist/client/static/js/async/xw.ae67ba06fd.js.LICENSE.txt +4 -0
  40. package/dist/client/static/js/async/yg.35bebd6d0c.js +149 -0
  41. package/dist/client/static/js/async/yv.2fa22f009a.js +1 -0
  42. package/dist/client/static/js/index.0ac93ee878.js +33 -0
  43. package/dist/client/static/js/index.0ac93ee878.js.LICENSE.txt +4 -0
  44. package/dist/client/static/js/{markdown-vendor.9da142c67b.js → markdown-vendor.71e43278b3.js} +1 -1
  45. package/dist/client/static/js/uy.5f791144ce.js +139 -0
  46. package/package.json +2 -2
  47. package/src/cli/lib/args.js +1 -0
  48. package/src/cli/lib/commands/serve.js +7 -0
  49. package/src/client/App.tsx +22 -5
  50. package/src/client/components/common/MarkdownRenderer.tsx +36 -0
  51. package/src/client/components/layout/desktop-layout/index.tsx +1 -1
  52. package/src/client/components/layout/session-sidebar/Modals.tsx +1 -1
  53. package/src/client/components/mobile/LayoutWrapper.tsx +1 -1
  54. package/src/client/components/settings/LazyModal.tsx +46 -0
  55. package/src/client/components/settings/Modal.tsx +1 -1
  56. package/src/client/components/workspace/chat-timeline/EmptyWorkspacePrompt.tsx +43 -29
  57. package/src/client/components/workspace/chat-timeline/MessageItem.tsx +15 -69
  58. package/src/client/components/workspace/chat-timeline/MessageList.tsx +47 -66
  59. package/src/client/components/workspace/chat-timeline/RunFooter.tsx +60 -0
  60. package/src/client/components/workspace/chat-timeline/SubagentView.tsx +37 -21
  61. package/src/client/components/workspace/chat-timeline/ToolCallCard.tsx +22 -4
  62. package/src/client/components/workspace/chat-timeline/index.tsx +3 -6
  63. package/src/client/components/workspace/chat-timeline/tool-renderers/panels/Edit.tsx +15 -19
  64. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/EnvelopeHeader.tsx +46 -0
  65. package/src/client/components/workspace/chat-timeline/tool-renderers/shared/FallbackOutput.tsx +18 -68
  66. package/src/client/components/workspace/file-explorer/TreeItem.tsx +16 -4
  67. package/src/client/components/workspace/file-explorer/index.tsx +6 -0
  68. package/src/client/data/models/catalog.ts +8 -0
  69. package/src/client/data/samples/dialogue-session.ts +1 -1
  70. package/src/client/data/samples/sample-tools/other.ts +1 -1
  71. package/src/client/hooks/chat/omp/index.ts +9 -10
  72. package/src/client/hooks/chat/omp/revalidation-throttle.ts +6 -5
  73. package/src/client/hooks/chat/timeline/actions.ts +1 -2
  74. package/src/client/hooks/chat/timeline/index.ts +5 -0
  75. package/src/client/hooks/chat/timeline/send.ts +2 -3
  76. package/src/client/hooks/chat/timeline/session-load.ts +3 -4
  77. package/src/client/hooks/ui/syntax-ready.ts +16 -3
  78. package/src/client/main.tsx +2 -5
  79. package/src/client/stubs/elkjs.ts +37 -0
  80. package/src/client/tailwind.css +10 -0
  81. package/src/server/index.ts +53 -0
  82. package/src/server/lib/fs/git-ignore.ts +49 -0
  83. package/src/server/lib/models/provider-registry.server.ts +44 -20
  84. package/src/server/lib/omp/core/cli.ts +3 -2
  85. package/src/server/lib/omp/core/startup.ts +64 -0
  86. package/src/server/lib/omp/rpc/constants.ts +10 -0
  87. package/src/server/lib/omp/rpc/lifecycle.test.ts +138 -0
  88. package/src/server/lib/omp/rpc/manager.ts +32 -4
  89. package/src/server/lib/omp/rpc/process.ts +1 -1
  90. package/src/server/lib/omp/rpc/session-commands.ts +32 -9
  91. package/src/server/lib/omp/rpc/session-registry.ts +3 -2
  92. package/src/server/lib/omp/rpc/subagent-liveness.test.ts +62 -0
  93. package/src/server/lib/omp/rpc/subagent-liveness.ts +100 -0
  94. package/src/server/lib/omp/session/messages.test.ts +112 -0
  95. package/src/server/lib/omp/session/messages.ts +6 -5
  96. package/src/server/mock.server.ts +6 -12
  97. package/src/server/routes/agent/command.ts +34 -16
  98. package/src/server/routes/chat/stream.ts +13 -30
  99. package/src/server/routes/fs/read.ts +15 -7
  100. package/src/server/routes/models/root.ts +5 -1
  101. package/src/shared/lib/chat/notice-row.test.ts +89 -0
  102. package/src/shared/lib/chat/notice-row.ts +78 -0
  103. package/src/shared/lib/chat/omp/abort.ts +41 -0
  104. package/src/shared/lib/chat/stream-service.ts +0 -76
  105. package/src/shared/lib/chat/timeline/omp-callbacks.test.ts +154 -0
  106. package/src/shared/lib/chat/timeline/omp-callbacks.ts +36 -7
  107. package/src/shared/lib/chat/timeline/run-footer.test.ts +84 -0
  108. package/src/shared/lib/chat/timeline/run-footer.ts +96 -0
  109. package/src/shared/lib/chat/tool-output.test.ts +91 -0
  110. package/src/shared/lib/chat/tool-output.ts +54 -0
  111. package/src/shared/lib/chat/xml-envelope.ts +158 -0
  112. package/src/shared/lib/code/highlighter-lazy.ts +106 -0
  113. package/src/shared/lib/code/highlighter.ts +31 -52
  114. package/src/shared/lib/code/syntax-highlight.test.ts +36 -1
  115. package/src/shared/lib/code/syntax-highlight.ts +17 -3
  116. package/src/shared/lib/format/time.ts +19 -0
  117. package/src/shared/lib/fs/paths.ts +19 -0
  118. package/src/shared/lib/markdown/fira-code-fonts.css +51 -0
  119. package/src/shared/lib/markdown/katex-fonts.css +20 -0
  120. package/src/shared/lib/markdown/katex.ts +101 -0
  121. package/src/shared/lib/markdown/marked.ts +23 -14
  122. package/src/shared/lib/markdown/math.test.ts +109 -0
  123. package/src/shared/lib/markdown/mermaid.ts +6 -0
  124. package/src/shared/lib/markdown/sanitize.ts +48 -2
  125. package/src/shared/lib/omp/session/mapper.ts +11 -3
  126. package/src/shared/lib/omp/session/messages-map.ts +12 -12
  127. package/src/shared/types/chat.ts +3 -1
  128. package/src/shared/types/fs.ts +3 -0
  129. package/dist/client/static/css/g.f36aa429fa.css +0 -1
  130. package/dist/client/static/css/index.a0f07455bd.css +0 -2
  131. package/dist/client/static/css/katex-vendor.ca3a0600e8.css +0 -1
  132. package/dist/client/static/font/KaTeX_AMS-Regular.1608a09b4a.woff +0 -0
  133. package/dist/client/static/font/KaTeX_AMS-Regular.4aafdb685c.ttf +0 -0
  134. package/dist/client/static/font/KaTeX_Caligraphic-Bold.b67709187b.woff +0 -0
  135. package/dist/client/static/font/KaTeX_Caligraphic-Bold.cce5b8ecea.ttf +0 -0
  136. package/dist/client/static/font/KaTeX_Caligraphic-Regular.07ef19e7b0.ttf +0 -0
  137. package/dist/client/static/font/KaTeX_Caligraphic-Regular.dad44a7fc6.woff +0 -0
  138. package/dist/client/static/font/KaTeX_Fraktur-Bold.9f256b8593.woff +0 -0
  139. package/dist/client/static/font/KaTeX_Fraktur-Bold.b18f59e1d1.ttf +0 -0
  140. package/dist/client/static/font/KaTeX_Fraktur-Regular.7c1871215e.woff +0 -0
  141. package/dist/client/static/font/KaTeX_Fraktur-Regular.ed38e79f57.ttf +0 -0
  142. package/dist/client/static/font/KaTeX_Main-Bold.b74a1a8b2c.ttf +0 -0
  143. package/dist/client/static/font/KaTeX_Main-Bold.d181c4650d.woff +0 -0
  144. package/dist/client/static/font/KaTeX_Main-BoldItalic.70d8b0a530.ttf +0 -0
  145. package/dist/client/static/font/KaTeX_Main-BoldItalic.e3f82f9d27.woff +0 -0
  146. package/dist/client/static/font/KaTeX_Main-Italic.47373d1e51.ttf +0 -0
  147. package/dist/client/static/font/KaTeX_Main-Italic.9024d815ba.woff +0 -0
  148. package/dist/client/static/font/KaTeX_Main-Regular.7f51fe0340.woff +0 -0
  149. package/dist/client/static/font/KaTeX_Main-Regular.b7f8fe9b5f.ttf +0 -0
  150. package/dist/client/static/font/KaTeX_Math-BoldItalic.a879cf8383.ttf +0 -0
  151. package/dist/client/static/font/KaTeX_Math-BoldItalic.f1035d8d5d.woff +0 -0
  152. package/dist/client/static/font/KaTeX_Math-Italic.5295ba483a.woff +0 -0
  153. package/dist/client/static/font/KaTeX_Math-Italic.939bc64440.ttf +0 -0
  154. package/dist/client/static/font/KaTeX_SansSerif-Bold.94e1e8dc5f.ttf +0 -0
  155. package/dist/client/static/font/KaTeX_SansSerif-Bold.bf59d231c3.woff +0 -0
  156. package/dist/client/static/font/KaTeX_SansSerif-Italic.7c9bc82b17.woff +0 -0
  157. package/dist/client/static/font/KaTeX_SansSerif-Italic.b4c20c84d8.ttf +0 -0
  158. package/dist/client/static/font/KaTeX_SansSerif-Regular.740484788f.woff +0 -0
  159. package/dist/client/static/font/KaTeX_SansSerif-Regular.d4d7ba4804.ttf +0 -0
  160. package/dist/client/static/font/KaTeX_Script-Regular.0750571032.woff +0 -0
  161. package/dist/client/static/font/KaTeX_Script-Regular.fe9cbbe1a0.ttf +0 -0
  162. package/dist/client/static/font/KaTeX_Size1-Regular.e1e279cbdd.woff +0 -0
  163. package/dist/client/static/font/KaTeX_Size1-Regular.fabc004aab.ttf +0 -0
  164. package/dist/client/static/font/KaTeX_Size2-Regular.577270225e.woff +0 -0
  165. package/dist/client/static/font/KaTeX_Size2-Regular.d6b476ecd3.ttf +0 -0
  166. package/dist/client/static/font/KaTeX_Size3-Regular.9acaf01c64.woff +0 -0
  167. package/dist/client/static/font/KaTeX_Size3-Regular.a144ef5840.ttf +0 -0
  168. package/dist/client/static/font/KaTeX_Size4-Regular.7a996c9da2.woff +0 -0
  169. package/dist/client/static/font/KaTeX_Size4-Regular.fbccdabe0a.ttf +0 -0
  170. package/dist/client/static/font/KaTeX_Typewriter-Regular.6258592bdc.woff +0 -0
  171. package/dist/client/static/font/KaTeX_Typewriter-Regular.d97aaf4a1e.ttf +0 -0
  172. package/dist/client/static/font/fira-code-cyrillic-400-normal.5971438a4a.woff2 +0 -0
  173. package/dist/client/static/font/fira-code-cyrillic-400-normal.9bb7bfea9c.woff +0 -0
  174. package/dist/client/static/font/fira-code-cyrillic-500-normal.5486265b18.woff2 +0 -0
  175. package/dist/client/static/font/fira-code-cyrillic-500-normal.89f92bfb31.woff +0 -0
  176. package/dist/client/static/font/fira-code-cyrillic-600-normal.2805b497e5.woff +0 -0
  177. package/dist/client/static/font/fira-code-cyrillic-600-normal.86e0df22a3.woff2 +0 -0
  178. package/dist/client/static/font/fira-code-cyrillic-700-normal.505a88f22a.woff +0 -0
  179. package/dist/client/static/font/fira-code-cyrillic-700-normal.76f5e8d2e2.woff2 +0 -0
  180. package/dist/client/static/font/fira-code-cyrillic-ext-400-normal.3c4b15e57d.woff2 +0 -0
  181. package/dist/client/static/font/fira-code-cyrillic-ext-400-normal.61323debaa.woff +0 -0
  182. package/dist/client/static/font/fira-code-cyrillic-ext-500-normal.0f34210f2a.woff2 +0 -0
  183. package/dist/client/static/font/fira-code-cyrillic-ext-500-normal.2497cfa1aa.woff +0 -0
  184. package/dist/client/static/font/fira-code-cyrillic-ext-600-normal.40fce94af9.woff2 +0 -0
  185. package/dist/client/static/font/fira-code-cyrillic-ext-600-normal.6c8774b829.woff +0 -0
  186. package/dist/client/static/font/fira-code-cyrillic-ext-700-normal.4b742eb865.woff +0 -0
  187. package/dist/client/static/font/fira-code-cyrillic-ext-700-normal.e75eb4fccc.woff2 +0 -0
  188. package/dist/client/static/font/fira-code-greek-400-normal.bb900468b6.woff2 +0 -0
  189. package/dist/client/static/font/fira-code-greek-400-normal.be76e699ba.woff +0 -0
  190. package/dist/client/static/font/fira-code-greek-500-normal.176c9fb001.woff2 +0 -0
  191. package/dist/client/static/font/fira-code-greek-500-normal.d2c596136b.woff +0 -0
  192. package/dist/client/static/font/fira-code-greek-600-normal.490c3deed7.woff +0 -0
  193. package/dist/client/static/font/fira-code-greek-600-normal.7df14376d9.woff2 +0 -0
  194. package/dist/client/static/font/fira-code-greek-700-normal.c82b6072fc.woff2 +0 -0
  195. package/dist/client/static/font/fira-code-greek-700-normal.d5f2b2917b.woff +0 -0
  196. package/dist/client/static/font/fira-code-greek-ext-400-normal.4849a79781.woff +0 -0
  197. package/dist/client/static/font/fira-code-greek-ext-400-normal.7f5bfc4538.woff2 +0 -0
  198. package/dist/client/static/font/fira-code-greek-ext-500-normal.aaccca4075.woff2 +0 -0
  199. package/dist/client/static/font/fira-code-greek-ext-500-normal.e383181256.woff +0 -0
  200. package/dist/client/static/font/fira-code-greek-ext-600-normal.78cb4bff8e.woff +0 -0
  201. package/dist/client/static/font/fira-code-greek-ext-600-normal.d6c93d54f9.woff2 +0 -0
  202. package/dist/client/static/font/fira-code-greek-ext-700-normal.57ec7c92d9.woff +0 -0
  203. package/dist/client/static/font/fira-code-greek-ext-700-normal.8fafdae5e8.woff2 +0 -0
  204. package/dist/client/static/font/fira-code-latin-400-normal.973295532b.woff +0 -0
  205. package/dist/client/static/font/fira-code-latin-500-normal.7ae2be8fb8.woff +0 -0
  206. package/dist/client/static/font/fira-code-latin-600-normal.1dbbe5bc27.woff +0 -0
  207. package/dist/client/static/font/fira-code-latin-700-normal.497a70148b.woff +0 -0
  208. package/dist/client/static/font/fira-code-latin-ext-400-normal.9dfae29aaf.woff +0 -0
  209. package/dist/client/static/font/fira-code-latin-ext-400-normal.e534ae46e2.woff2 +0 -0
  210. package/dist/client/static/font/fira-code-latin-ext-500-normal.24c7b781b0.woff +0 -0
  211. package/dist/client/static/font/fira-code-latin-ext-500-normal.aad44ab072.woff2 +0 -0
  212. package/dist/client/static/font/fira-code-latin-ext-600-normal.7bed0f2f7e.woff +0 -0
  213. package/dist/client/static/font/fira-code-latin-ext-600-normal.c509a7c9f1.woff2 +0 -0
  214. package/dist/client/static/font/fira-code-latin-ext-700-normal.6c66c8b0a9.woff2 +0 -0
  215. package/dist/client/static/font/fira-code-latin-ext-700-normal.88f64e2822.woff +0 -0
  216. package/dist/client/static/font/fira-code-symbols2-400-normal.97d3f4b17c.woff +0 -0
  217. package/dist/client/static/font/fira-code-symbols2-500-normal.b06f1a06e4.woff +0 -0
  218. package/dist/client/static/font/fira-code-symbols2-600-normal.304b653b93.woff +0 -0
  219. package/dist/client/static/font/fira-code-symbols2-700-normal.d8ce0ad586.woff +0 -0
  220. package/dist/client/static/js/async/3j.a2fcea99be.js +0 -2
  221. package/dist/client/static/js/async/51.1938cec320.js +0 -2
  222. package/dist/client/static/js/async/6.7929428505.js +0 -1
  223. package/dist/client/static/js/async/69.a18a10882f.js +0 -1
  224. package/dist/client/static/js/async/a.bce4542392.js +0 -1
  225. package/dist/client/static/js/async/ar.9dc8b1992a.js +0 -2
  226. package/dist/client/static/js/async/bi.cbfe8eaa8e.js +0 -1
  227. package/dist/client/static/js/async/ct.38d9da8a5a.js +0 -1
  228. package/dist/client/static/js/async/fw.fb1a08b92d.js +0 -6
  229. package/dist/client/static/js/async/l6.45f3b62e15.js +0 -1
  230. package/dist/client/static/js/async/q.0b6fb9bf8d.js +0 -21
  231. package/dist/client/static/js/async/rd.b77011ab7f.js +0 -2
  232. package/dist/client/static/js/async/rf.cfbde7f744.js +0 -2
  233. package/dist/client/static/js/async/s.c7d521a8ae.js +0 -2
  234. package/dist/client/static/js/async/sy.7345abcd67.js +0 -94
  235. package/dist/client/static/js/async/t.0dcb01dfde.js +0 -1
  236. package/dist/client/static/js/async/v.5c7a4b087b.js +0 -1
  237. package/dist/client/static/js/async/vu.311f1d202c.js +0 -34
  238. package/dist/client/static/js/async/yg.9bd4e09ecb.js +0 -149
  239. package/dist/client/static/js/async/yv.593a3f7d54.js +0 -1
  240. package/dist/client/static/js/g.124fba0826.js +0 -139
  241. package/dist/client/static/js/index.907fd4670e.js +0 -68
  242. package/dist/client/static/js/katex-vendor.95e48cf65a.js +0 -1
  243. package/src/shared/lib/chat/order.ts +0 -40
  244. /package/dist/client/static/js/async/{1k.544adbf77d.js.LICENSE.txt → 1k.5974df3b87.js.LICENSE.txt} +0 -0
  245. /package/dist/client/static/js/async/{3j.a2fcea99be.js.LICENSE.txt → 3j.357c80ff38.js.LICENSE.txt} +0 -0
  246. /package/dist/client/static/js/async/{3y.22075aa079.js.LICENSE.txt → 3y.ededeebde8.js.LICENSE.txt} +0 -0
  247. /package/dist/client/static/js/async/{51.1938cec320.js.LICENSE.txt → 51.95bcae98af.js.LICENSE.txt} +0 -0
  248. /package/dist/client/static/js/async/{ar.9dc8b1992a.js.LICENSE.txt → a.e05da304c8.js.LICENSE.txt} +0 -0
  249. /package/dist/client/static/js/async/{fw.fb1a08b92d.js.LICENSE.txt → dc.6dc4b0a04b.js.LICENSE.txt} +0 -0
  250. /package/dist/client/static/js/async/{m.3fc017a055.js.LICENSE.txt → fw.6a51998a8e.js.LICENSE.txt} +0 -0
  251. /package/dist/client/static/js/async/{q.0b6fb9bf8d.js.LICENSE.txt → m.4b29d34f93.js.LICENSE.txt} +0 -0
  252. /package/dist/client/static/js/async/{rf.cfbde7f744.js.LICENSE.txt → q.7fb4d2f374.js.LICENSE.txt} +0 -0
  253. /package/dist/client/static/js/async/{rd.b77011ab7f.js.LICENSE.txt → rd.cb6bf495bb.js.LICENSE.txt} +0 -0
  254. /package/dist/client/static/js/async/{s.c7d521a8ae.js.LICENSE.txt → rf.d626afc367.js.LICENSE.txt} +0 -0
  255. /package/dist/client/static/js/{index.907fd4670e.js.LICENSE.txt → async/ud.3065bfee31.js.LICENSE.txt} +0 -0
  256. /package/dist/client/static/js/{g.124fba0826.js.LICENSE.txt → uy.5f791144ce.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["ct"],{rF(e,n,a){a.r(n);var t=a("Gd");let i=Object.freeze(JSON.parse('{"displayName":"Lua","name":"lua","patterns":[{"begin":"\\\\b(?:(local)\\\\s+)?(function)\\\\b(?![,:])","beginCaptures":{"1":{"name":"keyword.local.lua"},"2":{"name":"keyword.control.lua"}},"end":"(?<=[-\\\\]\\"\')\\\\[{}])","name":"meta.function.lua","patterns":[{"include":"#comment"},{"begin":"(\\\\()","beginCaptures":{"1":{"name":"punctuation.definition.parameters.begin.lua"}},"end":"(\\\\))|(?=[-\\\\]\\"\'\\\\[{}])|(?<!\\\\.)\\\\.(?!\\\\.)","endCaptures":{"1":{"name":"punctuation.definition.parameters.finish.lua"}},"name":"meta.parameter.lua","patterns":[{"include":"#comment"},{"captures":{"1":{"name":"constant.language.lua"},"2":{"name":"variable.parameter.function.lua"}},"match":"(\\\\.{3})\\\\s*([A-Z_a-z][0-9A-Z_a-z]*)"},{"match":"[A-Z_a-z][0-9A-Z_a-z]*","name":"variable.parameter.function.lua"},{"match":",","name":"punctuation.separator.arguments.lua"},{"begin":":","beginCaptures":{"0":{"name":"punctuation.separator.arguments.lua"}},"end":"(?=[),])","patterns":[{"include":"#emmydoc.type"}]}]},{"match":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b\\\\s*(?=:)","name":"entity.name.class.lua"},{"match":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b","name":"entity.name.function.lua"}]},{"match":"(?<![.\\\\w\\\\d])0[Xx]\\\\h+(\\\\.\\\\h*)?([Ee]-?\\\\d*)?([Pp][-+]\\\\d+)?","name":"constant.numeric.float.hexadecimal.lua"},{"match":"(?<![.\\\\w\\\\d])0[Xx]\\\\.\\\\h+([Ee]-?\\\\d*)?([Pp][-+]\\\\d+)?","name":"constant.numeric.float.hexadecimal.lua"},{"match":"(?<![.\\\\w\\\\d])0[Xx]\\\\h+(?![.0-9EPep])","name":"constant.numeric.integer.hexadecimal.lua"},{"match":"(?<![.\\\\w\\\\d])\\\\d+(\\\\.\\\\d*)?([Ee]-?\\\\d*)?","name":"constant.numeric.float.lua"},{"match":"(?<![.\\\\w\\\\d])\\\\.\\\\d+([Ee]-?\\\\d*)?","name":"constant.numeric.float.lua"},{"match":"(?<![.\\\\w\\\\d])\\\\d+(?![.0-9EPep])","name":"constant.numeric.integer.lua"},{"include":"#string"},{"captures":{"1":{"name":"punctuation.definition.comment.lua"}},"match":"\\\\A(#!).*$\\\\n?","name":"comment.line.shebang.lua"},{"include":"#comment"},{"captures":{"1":{"name":"keyword.control.goto.lua"},"2":{"name":"string.tag.lua"}},"match":"\\\\b(goto)\\\\s+([A-Z_a-z][0-9A-Z_a-z]*)"},{"captures":{"1":{"name":"punctuation.section.embedded.begin.lua"},"2":{"name":"punctuation.section.embedded.end.lua"}},"match":"(::)\\\\s*[A-Z_a-z][0-9A-Z_a-z]*\\\\s*(::)","name":"string.tag.lua"},{"captures":{"0":{"name":"storage.type.attribute.lua"}},"match":"<\\\\s*(c(?:onst|lose))\\\\s*>"},{"match":"<[*A-Z_a-z][-*.0-9A-Z_a-z]*>","name":"storage.type.generic.lua"},{"match":"\\\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\\\b","name":"keyword.control.lua"},{"match":"\\\\b(local)\\\\b","name":"keyword.local.lua"},{"captures":{"1":{"name":"keyword.global.lua"}},"match":"^\\\\s*(global)\\\\b(?!\\\\s*=)"},{"match":"\\\\b(function)\\\\b(?![,:])","name":"keyword.control.lua"},{"match":"(?<![^.]\\\\.|:)\\\\b(false|nil(?!:)|true|_ENV|_G|_VERSION|math\\\\.(pi|huge|maxinteger|mininteger)|utf8\\\\.charpattern|io\\\\.(std(?:in|out|err))|package\\\\.(config|cpath|loaded|loaders|path|preload|searchers))\\\\b|(?<!\\\\.)\\\\.{3}(?!\\\\.)","name":"constant.language.lua"},{"match":"(?<![^.]\\\\.|:)\\\\b(self)\\\\b","name":"variable.language.self.lua"},{"match":"(?<![^.]\\\\.|:)\\\\b(assert|collectgarbage|dofile|error|getfenv|getmetatable|ipairs|load|loadfile|loadstring|module|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|unpack|xpcall)\\\\b(?!\\\\s*=(?!=))","name":"support.function.lua"},{"match":"(?<![^.]\\\\.|:)\\\\b(async)\\\\b(?!\\\\s*=(?!=))","name":"entity.name.tag.lua"},{"match":"(?<![^.]\\\\.|:)\\\\b(coroutine\\\\.(create|isyieldable|close|resume|running|status|wrap|yield)|string\\\\.(byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)|table\\\\.(concat|create|insert|maxn|move|pack|remove|sort|unpack)|math\\\\.(abs|acos|asin|atan2?|ceil|cosh?|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pow|rad|random|randomseed|sinh?|sqrt|tanh?|tointeger|type)|io\\\\.(close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|os\\\\.(clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\\\.(loadlib|seeall|searchpath)|debug\\\\.(debug|[gs]etfenv|[gs]ethook|getinfo|[gs]etlocal|[gs]etmetatable|getregistry|[gs]etupvalue|[gs]etuservalue|set[Cc]stacklimit|traceback|upvalueid|upvaluejoin)|bit32\\\\.(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)|utf8\\\\.(char|codes|codepoint|len|offset))\\\\b(?!\\\\s*=(?!=))","name":"support.function.library.lua"},{"match":"\\\\b(\\\\|\\\\||&&|!)\\\\b","name":"keyword.operator.lua"},{"match":"\\\\b(and|or|not)\\\\b","name":"keyword.operator.logical.lua"},{"match":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(?=\\\\s*(?:[\\"\'({]|\\\\[\\\\[))","name":"support.function.any-method.lua"},{"match":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(?=\\\\s*\\\\??:)","name":"entity.name.class.lua"},{"match":"(?<=[^.]\\\\.|:)\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(?!\\\\s*=\\\\s*\\\\b(function)\\\\b)","name":"entity.other.attribute.lua"},{"match":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(?!\\\\s*=\\\\s*\\\\b(function)\\\\b)","name":"variable.other.lua"},{"match":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(?=\\\\s*=\\\\s*\\\\b(function)\\\\b)","name":"entity.name.function.lua"},{"match":"[-#%*+/^]|==?|~=|!=|<=?|>=?|(?<!\\\\.)\\\\.{2}(?!\\\\.)","name":"keyword.operator.lua"}],"repository":{"comment":{"patterns":[{"begin":"(^[\\\\t ]+)?(?=--)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.lua"}},"end":"(?!\\\\G)((?!^)[\\\\t ]+\\\\n)?","endCaptures":{"1":{"name":"punctuation.whitespace.comment.trailing.lua"}},"patterns":[{"begin":"--\\\\[(=*)\\\\[@@@","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.lua"}},"end":"(--)?]\\\\1]","endCaptures":{"0":{"name":"punctuation.definition.comment.end.lua"}},"name":"","patterns":[{"include":"source.lua"}]},{"begin":"--\\\\[(=*)\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.lua"}},"end":"(--)?]\\\\1]","endCaptures":{"0":{"name":"punctuation.definition.comment.end.lua"}},"name":"comment.block.lua","patterns":[{"include":"#emmydoc"},{"include":"#ldoc_tag"}]},{"begin":"----","beginCaptures":{"0":{"name":"punctuation.definition.comment.lua"}},"end":"\\\\n","name":"comment.line.double-dash.lua"},{"begin":"---","beginCaptures":{"0":{"name":"punctuation.definition.comment.lua"}},"end":"\\\\n","name":"comment.line.double-dash.documentation.lua","patterns":[{"include":"#emmydoc"},{"include":"#ldoc_tag"}]},{"begin":"--","beginCaptures":{"0":{"name":"punctuation.definition.comment.lua"}},"end":"\\\\n","name":"comment.line.double-dash.lua","patterns":[{"include":"#ldoc_tag"}]}]},{"begin":"/\\\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.lua"}},"end":"\\\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.lua"}},"name":"comment.block.lua","patterns":[{"include":"#emmydoc"},{"include":"#ldoc_tag"}]}]},"emmydoc":{"patterns":[{"begin":"(?<=---)[\\\\t ]*@class","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"match":"\\\\b([*A-Z_a-z][-*.0-9A-Z_a-z]*)","name":"support.class.lua"},{"match":"[,:]","name":"keyword.operator.lua"}]},{"begin":"(?<=---)[\\\\t ]*@enum","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"begin":"\\\\b([*A-Z_a-z][-*.0-9A-Z_a-z]*)","beginCaptures":{"0":{"name":"variable.lua"}},"end":"(?=\\\\n)"}]},{"begin":"(?<=---)[\\\\t ]*@type","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"include":"#emmydoc.type"}]},{"begin":"(?<=---)[\\\\t ]*@alias","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"begin":"\\\\b([*A-Z_a-z][-*.0-9A-Z_a-z]*)","beginCaptures":{"0":{"name":"variable.lua"}},"end":"(?=[\\\\n#])","patterns":[{"include":"#emmydoc.type"}]}]},{"begin":"(?<=---)[\\\\t ]*(@operator)\\\\s*(\\\\b[a-z]+)?","beginCaptures":{"1":{"name":"storage.type.annotation.lua"},"2":{"name":"support.function.library.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"include":"#emmydoc.type"}]},{"begin":"(?<=---)[\\\\t ]*@cast","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"begin":"\\\\b([*A-Z_a-z][-*.0-9A-Z_a-z]*)","beginCaptures":{"0":{"name":"variable.other.lua"}},"end":"(?=\\\\n)","patterns":[{"include":"#emmydoc.type"},{"match":"([+-|])","name":"keyword.operator.lua"}]}]},{"begin":"(?<=---)[\\\\t ]*@param","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"begin":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b(\\\\??)","beginCaptures":{"1":{"name":"entity.name.variable.lua"},"2":{"name":"keyword.operator.lua"}},"end":"(?=[\\\\n#])","patterns":[{"include":"#emmydoc.type"}]}]},{"begin":"(?<=---)[\\\\t ]*@return","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"match":"\\\\?","name":"keyword.operator.lua"},{"include":"#emmydoc.type"}]},{"begin":"(?<=---)[\\\\t ]*@field","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"begin":"(\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b|(\\\\[))(\\\\??)","beginCaptures":{"2":{"name":"entity.name.variable.lua"},"3":{"name":"keyword.operator.lua"}},"end":"(?=[\\\\n#])","patterns":[{"include":"#string"},{"include":"#emmydoc.type"},{"match":"]","name":"keyword.operator.lua"}]}]},{"begin":"(?<=---)[\\\\t ]*@generic","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"begin":"\\\\b([A-Z_a-z][0-9A-Z_a-z]*)\\\\b","beginCaptures":{"0":{"name":"storage.type.generic.lua"}},"end":"(?=\\\\n)|(,)","endCaptures":{"0":{"name":"keyword.operator.lua"}},"patterns":[{"match":":","name":"keyword.operator.lua"},{"include":"#emmydoc.type"}]}]},{"begin":"(?<=---)[\\\\t ]*@vararg","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"include":"#emmydoc.type"}]},{"begin":"(?<=---)[\\\\t ]*@overload","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"include":"#emmydoc.type"}]},{"begin":"(?<=---)[\\\\t ]*@deprecated","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])"},{"begin":"(?<=---)[\\\\t ]*@meta","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])"},{"begin":"(?<=---)[\\\\t ]*@private","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])"},{"begin":"(?<=---)[\\\\t ]*@protected","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])"},{"begin":"(?<=---)[\\\\t ]*@package","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])"},{"begin":"(?<=---)[\\\\t ]*@version","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"match":"\\\\b(5\\\\.1|5\\\\.2|5\\\\.3|5\\\\.4|JIT)\\\\b","name":"support.class.lua"},{"match":"[,<>]","name":"keyword.operator.lua"}]},{"begin":"(?<=---)[\\\\t ]*@see","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"match":"\\\\b([*A-Z_a-z][-*.0-9A-Z_a-z]*)","name":"support.class.lua"},{"match":"#","name":"keyword.operator.lua"}]},{"begin":"(?<=---)[\\\\t ]*@diagnostic","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"begin":"([-0-9A-Z_a-z]+)[\\\\t ]*(:)?","beginCaptures":{"1":{"name":"keyword.other.unit"},"2":{"name":"keyword.operator.unit"}},"end":"(?=\\\\n)","patterns":[{"match":"\\\\b([*A-Z_a-z][-0-9A-Z_a-z]*)","name":"support.class.lua"},{"match":",","name":"keyword.operator.lua"}]}]},{"begin":"(?<=---)[\\\\t ]*@module","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"include":"#string"}]},{"match":"(?<=---)[\\\\t ]*@(async|nodiscard)","name":"storage.type.annotation.lua"},{"begin":"(?<=---)\\\\|\\\\s*[+>]?","beginCaptures":{"0":{"name":"storage.type.annotation.lua"}},"end":"(?=[\\\\n#@])","patterns":[{"include":"#string"}]}]},"emmydoc.type":{"patterns":[{"begin":"\\\\bfun\\\\b","beginCaptures":{"0":{"name":"keyword.control.lua"}},"end":"(?=[#\\\\s])","patterns":[{"match":"[](),:<>?\\\\[][\\\\t ]*","name":"keyword.operator.lua"},{"match":"([A-Z_a-z][-*.0-9A-Z_a-z]*)(?<!,)[\\\\t ]*(?=\\\\??:)","name":"entity.name.variable.lua"},{"include":"#emmydoc.type"},{"include":"#string"}]},{"match":"<[*A-Z_a-z][-*.0-9A-Z_a-z]*>","name":"storage.type.generic.lua"},{"match":"\\\\basync\\\\b","name":"entity.name.tag.lua"},{"match":"[,:?`{|}][\\\\t ]*","name":"keyword.operator.lua"},{"begin":"(?=[\\"\'*.A-\\\\[_a-z])","end":"(?=[#),:?|}\\\\s])","patterns":[{"match":"([-\\\\]*,.0-9<>A-\\\\[_a-z]+)(?<!,)[\\\\t ]*","name":"support.type.lua"},{"match":"(\\\\.\\\\.\\\\.)[\\\\t ]*","name":"constant.language.lua"},{"include":"#string"}]}]},"escaped_char":{"patterns":[{"match":"\\\\\\\\[\\\\n\\"\'\\\\\\\\abfnrtv]","name":"constant.character.escape.lua"},{"match":"\\\\\\\\z[\\\\t\\\\n ]*","name":"constant.character.escape.lua"},{"match":"\\\\\\\\\\\\d{1,3}","name":"constant.character.escape.byte.lua"},{"match":"\\\\\\\\x\\\\h\\\\h","name":"constant.character.escape.byte.lua"},{"match":"\\\\\\\\u\\\\{\\\\h+}","name":"constant.character.escape.unicode.lua"},{"match":"\\\\\\\\.","name":"invalid.illegal.character.escape.lua"}]},"ldoc_tag":{"captures":{"1":{"name":"punctuation.definition.block.tag.ldoc"},"2":{"name":"storage.type.class.ldoc"}},"match":"\\\\G[\\\\t ]*(@)(alias|annotation|author|charset|class|classmod|comment|constructor|copyright|description|example|export|factory|field|file|fixme|function|include|lfunction|license|local|module|name|param|pragma|private|raise|release|return|script|section|see|set|static|submodule|summary|tfield|thread|tparam|treturn|todo|topic|type|usage|warning|within)\\\\b"},"string":{"patterns":[{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.lua"}},"end":"\'[\\\\t ]*|(?=\\\\n)","endCaptures":{"0":{"name":"punctuation.definition.string.end.lua"}},"name":"string.quoted.single.lua","patterns":[{"include":"#escaped_char"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.lua"}},"end":"\\"[\\\\t ]*|(?=\\\\n)","endCaptures":{"0":{"name":"punctuation.definition.string.end.lua"}},"name":"string.quoted.double.lua","patterns":[{"include":"#escaped_char"}]},{"begin":"`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.lua"}},"end":"`[\\\\t ]*|(?=\\\\n)","endCaptures":{"0":{"name":"punctuation.definition.string.end.lua"}},"name":"string.quoted.double.lua"},{"begin":"(?<=\\\\.cdef)\\\\s*(\\\\[(=*)\\\\[)","beginCaptures":{"0":{"name":"string.quoted.other.multiline.lua"},"1":{"name":"punctuation.definition.string.begin.lua"}},"contentName":"meta.embedded.lua","end":"(]\\\\2])[\\\\t ]*","endCaptures":{"0":{"name":"string.quoted.other.multiline.lua"},"1":{"name":"punctuation.definition.string.end.lua"}},"patterns":[{"include":"source.c"}]},{"begin":"(?\x3c!--)\\\\[(=*)\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.lua"}},"end":"]\\\\1][\\\\t ]*","endCaptures":{"0":{"name":"punctuation.definition.string.end.lua"}},"name":"string.quoted.other.multiline.lua"}]}},"scopeName":"source.lua","embeddedLangs":["c"]}'));n.default=[...t.default,i]},eV(e,n,a){a.r(n),a.d(n,{default:()=>h});var t=a("w1"),i=a("lK"),r=a("d2");let u=Object.freeze(JSON.parse('{"displayName":"Ruby Haml","fileTypes":["haml","html.haml"],"foldingStartMarker":"^\\\\s*([-#%.:=\\\\w].*)\\\\s$","foldingStopMarker":"^\\\\s*$","name":"haml","patterns":[{"begin":"^(\\\\s*)==","contentName":"string.quoted.double.ruby","end":"$\\\\n*","patterns":[{"include":"#interpolated_ruby"}]},{"begin":"^(\\\\s*):ruby","end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"source.ruby.embedded.filter.haml","patterns":[{"include":"source.ruby"}]},{"captures":{"1":{"name":"punctuation.definition.prolog.haml"}},"match":"^(!!!)($|\\\\s.*)","name":"meta.prolog.haml"},{"begin":"^(\\\\s*):javascript","end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"js.haml","patterns":[{"include":"source.js"}]},{"begin":"^(\\\\s*)%script","end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"js.inline.haml","patterns":[{"include":"source.js"}]},{"begin":"^(\\\\s*):ruby$","end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"source.ruby.embedded.filter.haml","patterns":[{"include":"source.ruby"}]},{"captures":{"1":{"name":"punctuation.section.comment.haml"}},"match":"^(\\\\s*)(/\\\\[[^]].*?$\\\\n?)","name":"comment.line.slash.haml"},{"begin":"^(\\\\s*)(-#|/|-\\\\s*/\\\\*+)","beginCaptures":{"2":{"name":"punctuation.section.comment.haml"}},"end":"^(?!\\\\1\\\\s+|\\\\n)","name":"comment.block.haml","patterns":[{"include":"text.haml"}]},{"begin":"^\\\\s*(?:((%)([-:\\\\w]+))|(?=[#.]))","captures":{"1":{"name":"meta.tag.haml"},"2":{"name":"punctuation.definition.tag.haml"},"3":{"name":"entity.name.tag.haml"}},"end":"$|(?![#(.\\\\[{]|&amp;|[-=~]|!=|&=|/)","patterns":[{"begin":"==","contentName":"string.quoted.double.ruby","end":"$\\\\n?","patterns":[{"include":"#interpolated_ruby"}]},{"captures":{"1":{"name":"entity.other.attribute-name.class"}},"match":"(\\\\.[-:\\\\w]+)","name":"meta.selector.css"},{"captures":{"1":{"name":"entity.other.attribute-name.id"}},"match":"(#[-\\\\w]+)","name":"meta.selector.css"},{"begin":"(?<!#)\\\\{(?=.*(,|(do)|[{|}]|(#.*)|\\\\R)\\\\s*)","end":"\\\\s*}(?!\\\\s*,)(?!\\\\s*\\\\|)(?!#\\\\{.*})","name":"meta.section.attributes.haml","patterns":[{"include":"source.ruby"},{"include":"#continuation"},{"include":"#rubyline"}]},{"begin":"\\\\(","end":"\\\\)","name":"meta.section.attributes.plain.haml","patterns":[{"match":"([-\\\\w]+)","name":"constant.other.symbol.ruby"},{"match":"=","name":"punctuation"},{"include":"#variables"},{"begin":"\\"","end":"\\"","name":"string.quoted.double.ruby","patterns":[{"match":"\\\\\\\\(x\\\\h{2}|[012][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)","name":"constant.character.escape.ruby"},{"include":"#interpolated_ruby"}]},{"include":"#interpolated_ruby"}]},{"begin":"\\\\[(?=.+([],\\\\[|]|(#.*))\\\\s*)","end":"\\\\s*](?!.*(?!#\\\\[)])","name":"meta.section.object.haml","patterns":[{"include":"source.ruby"},{"include":"#continuation"},{"include":"#rubyline"}]},{"include":"#interpolated_ruby_line"},{"include":"#rubyline"},{"match":"/","name":"punctuation.terminator.tag.haml"}]},{"begin":"^(\\\\s*):(ruby|opal)$","end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"source.ruby.embedded.filter.haml","patterns":[{"include":"source.ruby"}]},{"begin":"^(\\\\s*):ruby$","end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"source.ruby.embedded.filter.haml","patterns":[{"include":"source.ruby"}]},{"begin":"^(\\\\s*):(s(?:tyle|ass))$","end":"^(?=\\\\1\\\\s+|$\\\\n*)","name":"source.sass.embedded.filter.haml","patterns":[{"include":"source.sass"}]},{"begin":"^(\\\\s*):coffee(script)?","end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"source.coffee.embedded.filter.haml","patterns":[{"include":"source.coffee"}]},{"begin":"^(\\\\s*):plain$","end":"^(?=\\\\1\\\\s+|$\\\\n*)","name":"text.plain.embedded.filter.haml","patterns":[{"include":"text.plain"}]},{"begin":"^(\\\\s*)(:ruby)","beginCaptures":{"2":{"name":"keyword.control.filter.haml"}},"end":"(?m:(?<=\\\\n)(?!\\\\1\\\\s+|$\\\\n*))","name":"source.ruby.embedded.filter.haml","patterns":[{"include":"source.ruby"}]},{"begin":"^(\\\\s*)(:sass)","beginCaptures":{"2":{"name":"keyword.control.filter.haml"}},"end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"source.embedded.filter.sass","patterns":[{"include":"source.sass"}]},{"begin":"^(\\\\s*):(s(?:tyles|ass))$","end":"^(?=\\\\1\\\\s+|$\\\\n*)","name":"source.sass.embedded.filter.haml","patterns":[{"include":"source.sass"}]},{"begin":"^(\\\\s*):plain$","end":"^(?=\\\\1\\\\s+|$\\\\n*)","name":"text.plain.embedded.filter.haml","patterns":[{"include":"text.plain"}]},{"captures":{"1":{"name":"meta.escape.haml"}},"match":"^\\\\s*(\\\\.)"},{"begin":"^\\\\s*(?=[-=~]|!=|&=)","end":"$","patterns":[{"include":"#interpolated_ruby_line"},{"include":"#rubyline"}]},{"begin":"^(\\\\s*)(:php)","captures":{"2":{"name":"entity.name.tag.haml"}},"end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"meta.embedded.php","patterns":[{"include":"text.html.php#language"}]},{"begin":"^(\\\\s*)(:markdown)","captures":{"2":{"name":"entity.name.tag.haml"}},"end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"meta.embedded.markdown","patterns":[{"include":"text.html.markdown"}]},{"begin":"^(\\\\s*)(:(css|styles?))$","captures":{"2":{"name":"entity.name.tag.haml"}},"end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"meta.embedded.css","patterns":[{"include":"source.css"}]},{"begin":"^(\\\\s*)(:sass)$","captures":{"2":{"name":"entity.name.tag.haml"}},"end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"meta.embedded.sass","patterns":[{"include":"source.sass"}]},{"begin":"^(\\\\s*)(:scss)$","captures":{"2":{"name":"entity.name.tag.haml"}},"end":"^(?!\\\\1\\\\s+|$\\\\n*)","name":"meta.embedded.scss","patterns":[{"include":"source.scss"}]}],"repository":{"continuation":{"captures":{"1":{"name":"punctuation.separator.continuation.haml"}},"match":"(\\\\|)\\\\s*\\\\n"},"interpolated_ruby":{"patterns":[{"captures":{"0":{"name":"punctuation.section.embedded.ruby"},"1":{"name":"source.ruby.embedded.source.empty"}},"match":"#\\\\{(})","name":"source.ruby.embedded.source"},{"begin":"#\\\\{","captures":{"0":{"name":"punctuation.section.embedded.ruby"}},"end":"(})","name":"source.ruby.embedded.source","patterns":[{"include":"#nest_curly_and_self"},{"include":"source.ruby"}]},{"include":"#variables"}]},"interpolated_ruby_line":{"begin":"!?==","contentName":"string.source.ruby.embedded.haml","end":"$","name":"meta.line.ruby.interpolated.haml","patterns":[{"include":"#interpolated_ruby"},{"include":"source.ruby#escaped_char"}]},"nest_curly_and_self":{"patterns":[{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#nest_curly_and_self"},{"include":"source.ruby"}]}]},"rubyline":{"begin":"(&amp|!)?([-=~])","contentName":"source.ruby.embedded.haml","end":"((do|\\\\{)( \\\\|[*.]+\\\\|)?)$|$|^(?!.*\\\\|\\\\s*)$\\\\n?","endCaptures":{"1":{"name":"source.ruby.embedded.html"},"2":{"name":"keyword.control.ruby.start-block"}},"name":"meta.line.ruby.haml","patterns":[{"captures":{"1":{"name":"keyword.control.php"}},"match":"\\\\s+((elseif|foreach|switch|declare|default|use))(?=[(\\\\s])"},{"captures":{"1":{"name":"keyword.control.import.include.php"}},"match":"\\\\s+((?:requir|includ)e_once)(?=[(\\\\s])"},{"match":"\\\\s+(catch|try|throw|exception|finally|die)(?=[(\\\\s]|\\\\n*)","name":"keyword.control.exception.php"},{"captures":{"1":{"name":"storage.type.function.php"}},"match":"\\\\s+(function\\\\s*)((?=\\\\())"},{"captures":{"1":{"name":"keyword.control.php"}},"match":"\\\\s+(use\\\\s*)((?=\\\\())"},{"match":"([,<|]|do|\\\\{)\\\\s*(#.*)?$\\\\n*","name":"source.ruby","patterns":[{"include":"#rubyline"}]},{"match":"#.*$","name":"comment.line.number-sign.ruby"},{"include":"source.ruby"},{"include":"#continuation"}]},"variables":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#@)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.instance.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#@@)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.class.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#\\\\$)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.global.ruby"}]}},"scopeName":"text.haml","embeddedLangs":["javascript","css"],"embeddedLangsLazy":["ruby","sass","coffee","markdown"]}'));var s=[...i.default,...r.default,u],c=a("rDW"),o=a("le"),m=a("ok"),d=a("gB"),l=a("Gd"),p=a("kJ"),b=a("rF"),y=a("n1");let g=Object.freeze(JSON.parse('{"displayName":"Ruby","name":"ruby","patterns":[{"captures":{"1":{"name":"keyword.control.class.ruby"},"2":{"name":"entity.name.type.class.ruby"},"5":{"name":"punctuation.separator.namespace.ruby"},"7":{"name":"punctuation.separator.inheritance.ruby"},"8":{"name":"entity.other.inherited-class.ruby"},"11":{"name":"punctuation.separator.namespace.ruby"}},"match":"\\\\b(class)\\\\s+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)\\\\s*((<)\\\\s*(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*))?","name":"meta.class.ruby"},{"captures":{"1":{"name":"keyword.control.module.ruby"},"2":{"name":"entity.name.type.module.ruby"},"5":{"name":"punctuation.separator.namespace.ruby"}},"match":"\\\\b(module)\\\\s+(([0-9A-Z_a-z]+)((::)[0-9A-Z_a-z]+)*)","name":"meta.module.ruby"},{"captures":{"1":{"name":"keyword.control.class.ruby"},"2":{"name":"punctuation.separator.inheritance.ruby"}},"match":"\\\\b(class)\\\\s*(<<)\\\\s*","name":"meta.class.ruby"},{"match":"(?<!\\\\.)\\\\belse(\\\\s)+if\\\\b","name":"invalid.deprecated.ruby"},{"captures":{"1":{"name":"variable.ruby"},"2":{"name":"keyword.operator.assignment.augmented.ruby"}},"match":"^\\\\s*([_a-z][0-9A-Z_a-z]*)\\\\s*((&&|\\\\|\\\\|)=)"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"},"4":{"name":"keyword.operator.assignment.augmented.ruby"}},"match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([_a-z][0-9A-Z_a-z]*)\\\\s*((&&|\\\\|\\\\|)=)"},{"captures":{"1":{"name":"variable.ruby"},"2":{"name":"keyword.operator.assignment.augmented.ruby"}},"match":"^\\\\s*([_a-z][0-9A-Z_a-z]*)\\\\s*(([-%*+/]|\\\\*\\\\*|[\\\\&^|]|<<|>>)=)"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"},"4":{"name":"keyword.operator.assignment.augmented.ruby"}},"match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([_a-z][0-9A-Z_a-z]*)\\\\s*(([-%*+/]|\\\\*\\\\*|[\\\\&^|]|<<|>>)=)"},{"captures":{"1":{"name":"variable.ruby"}},"match":"^\\\\s*([_a-z][0-9A-Z_a-z]*)\\\\s*(?==[^=>])"},{"captures":{"1":{"name":"keyword.control.ruby"},"3":{"name":"variable.ruby"}},"match":"(?<!\\\\.)\\\\b(case|if|elsif|unless|until|while)\\\\b\\\\s*(\\\\()*?\\\\s*([_a-z][0-9A-Z_a-z]*)\\\\s*=[^=>]"},{"captures":{"1":{"name":"punctuation.definition.constant.hashkey.ruby"}},"match":"(?>[A-Z_a-z]\\\\w*[!?]?)(:)(?!:)","name":"constant.language.symbol.hashkey.ruby"},{"captures":{"1":{"name":"punctuation.definition.constant.ruby"}},"match":"(?<!:)(:)(?>[A-Z_a-z]\\\\w*[!?]?)(?=\\\\s*=>)","name":"constant.language.symbol.hashkey.ruby"},{"match":"(?<!\\\\.)\\\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\\\b(?![!?])","name":"keyword.control.ruby"},{"match":"(?<!\\\\.)\\\\bdo\\\\b","name":"keyword.control.start-block.ruby"},{"match":"(?<=\\\\{)(\\\\s+)","name":"meta.syntax.ruby.start-block"},{"match":"(?<!\\\\.)\\\\b(alias|alias_method|break|next|redo|retry|return|super|undef|yield)\\\\b(?![!?])|\\\\bdefined\\\\?|\\\\b(block_given|iterator)\\\\?","name":"keyword.control.pseudo-method.ruby"},{"match":"\\\\bnil\\\\b(?![!?])","name":"constant.language.nil.ruby"},{"match":"\\\\b(true|false)\\\\b(?![!?])","name":"constant.language.boolean.ruby"},{"match":"\\\\b(__(FILE|LINE)__)\\\\b(?![!?])","name":"variable.language.ruby"},{"match":"\\\\bself\\\\b(?![!?])","name":"variable.language.self.ruby"},{"match":"\\\\b(initialize|new|loop|include|extend|prepend|raise|fail|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\\\b(?![!?])","name":"keyword.other.special-method.ruby"},{"begin":"\\\\b(?<!\\\\.|::)(require(?:|_relative))\\\\b(?![!?])","captures":{"1":{"name":"keyword.other.special-method.ruby"}},"end":"$|(?=[#}])","name":"meta.require.ruby","patterns":[{"include":"$self"}]},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(@)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.instance.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(@@)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.class.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(\\\\$)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.global.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(\\\\$)([!\\\\&\'+@`]|\\\\d+|[\\"$*,./:-?\\\\\\\\_~]|-[0FIadilpv])","name":"variable.other.readwrite.global.pre-defined.ruby"},{"begin":"\\\\b(ENV)\\\\[","beginCaptures":{"1":{"name":"variable.other.constant.ruby"}},"end":"]","name":"meta.environment-variable.ruby","patterns":[{"include":"$self"}]},{"match":"\\\\b[A-Z]\\\\w*(?=((\\\\.|::)[A-Za-z]|\\\\[))","name":"support.class.ruby"},{"match":"\\\\b((abort|at_exit|autoload|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|printf??|proc|putc|puts|rand|readlines??|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)\\\\b(?![!?])|autoload\\\\?|exit!)","name":"support.function.kernel.ruby"},{"match":"\\\\b[A-Z_]\\\\w*\\\\b","name":"variable.other.constant.ruby"},{"begin":"(->)\\\\(","beginCaptures":{"1":{"name":"support.function.kernel.ruby"}},"end":"\\\\)","patterns":[{"begin":"(?=[\\\\&*A-Z_a-z])","end":"(?=[),])","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"begin":"(?=def\\\\b)(?<=^|\\\\s)(def)\\\\s+((?>[A-Z_a-z]\\\\w*(?>\\\\.|::))?(?>[A-Z_a-z]\\\\w*(?>[!?]|=(?!>))?|===?|!=|>[=>]?|<=>|<[<=]?|[%\\\\&/`|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[]=?))\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.control.def.ruby"},"2":{"name":"entity.name.function.ruby"},"3":{"name":"punctuation.definition.parameters.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.parameters.ruby"}},"name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?=[\\\\&*A-Z_a-z])","end":"(?=[),])","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"begin":"(?=def\\\\b)(?<=^|\\\\s)(def)\\\\s+((?>[A-Z_a-z]\\\\w*(?>\\\\.|::))?(?>[A-Z_a-z]\\\\w*(?>[!?]|=(?!>))?|===?|!=|>[=>]?|<=>|<[<=]?|[%\\\\&/`|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[]=?))[\\\\t ](?=[\\\\t ]*[^#;\\\\s])","beginCaptures":{"1":{"name":"keyword.control.def.ruby"},"2":{"name":"entity.name.function.ruby"}},"end":"(?=;)|(?<=[]!\\"\')?`}\\\\w])(?=\\\\s*#|\\\\s*$)","name":"meta.function.method.with-arguments.ruby","patterns":[{"begin":"(?=[\\\\&*A-Z_a-z])","end":"(?=[,;]|\\\\s*#|\\\\s*$)","patterns":[{"include":"#method_parameters"}]},{"include":"#method_parameters"}]},{"captures":{"1":{"name":"keyword.control.def.ruby"},"3":{"name":"entity.name.function.ruby"}},"match":"(?=def\\\\b)(?<=^|\\\\s)(def)\\\\b(\\\\s+((?>[A-Z_a-z]\\\\w*(?>\\\\.|::))?(?>[A-Z_a-z]\\\\w*(?>[!?]|=(?!>))?|===?|!=|>[=>]?|<=>|<[<=]?|[%\\\\&/`|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[]=?)))?","name":"meta.function.method.without-arguments.ruby"},{"match":"\\\\b(\\\\d(?>_?\\\\d)*(\\\\.(?![^\\\\s\\\\d])(?>_?\\\\d)*)?([Ee][-+]?\\\\d(?>_?\\\\d)*)?|0(?:[Xx]\\\\h(?>_?\\\\h)*|[Oo]?[0-7](?>_?[0-7])*|[Bb][01](?>_?[01])*|[Dd]\\\\d(?>_?\\\\d)*))\\\\b","name":"constant.numeric.ruby"},{"begin":":\'","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"\'","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[\'\\\\\\\\]","name":"constant.character.escape.ruby"}]},{"begin":":\\"","beginCaptures":{"0":{"name":"punctuation.section.symbol.begin.ruby"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.section.symbol.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"match":"(?<!\\\\()/=","name":"keyword.operator.assignment.augmented.ruby"},{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\'","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.single.ruby","patterns":[{"match":"\\\\\\\\[\'\\\\\\\\]","name":"constant.character.escape.ruby"}]},{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.double.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?<!\\\\.)`","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"`","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?<![)\\\\w])((/))(?![*+?])(?!\\\\s*$)(?=(?:\\\\\\\\/|[^/])*+/[eimnosux]*\\\\s*(?:[]#),.:?}]|\\\\|\\\\||&&|<=>|=>|==|=~|!~|!=|;|$|if|else|elsif|then|do|end|unless|while|until|or|and))","captures":{"1":{"name":"string.regexp.interpolated.ruby"},"2":{"name":"punctuation.section.regexp.ruby"}},"contentName":"string.regexp.interpolated.ruby","end":"((/[eimnosux]*))","patterns":[{"include":"#regex_sub"}]},{"begin":"%r\\\\{","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"}[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},{"begin":"%r\\\\[","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"][eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},{"begin":"%r\\\\(","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"\\\\)[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},{"begin":"%r<","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":">[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},{"begin":"%r(\\\\W)","beginCaptures":{"0":{"name":"punctuation.section.regexp.begin.ruby"}},"end":"\\\\1[eimnosux]*","endCaptures":{"0":{"name":"punctuation.section.regexp.end.ruby"}},"name":"string.regexp.interpolated.ruby","patterns":[{"include":"#regex_sub"}]},{"begin":"%I\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%I\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%I<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%I\\\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%I(\\\\W)","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%i\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[]\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%i\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[)\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%i<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[>\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%i\\\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[\\\\\\\\}]","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%i(\\\\W)","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\."}]},{"begin":"%W\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%W\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%W<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%W\\\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%W(\\\\W)","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%w\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[]\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%w\\\\(","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[)\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%w<","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[>\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%w\\\\{","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[\\\\\\\\}]","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%w(\\\\W)","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\."}]},{"begin":"%[Qx]?\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},{"begin":"%[Qx]?\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},{"begin":"%[Qx]?\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},{"begin":"%[Qx]?<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},{"begin":"%[Qx](\\\\W)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%([^=\\\\w\\\\s])","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.interpolated.ruby","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"%q\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[)\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%q<","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[>\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%q\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[]\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%q\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\[\\\\\\\\}]","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%q(\\\\W)","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.string.end.ruby"}},"name":"string.quoted.other.ruby","patterns":[{"match":"\\\\\\\\."}]},{"begin":"%s\\\\(","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[)\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_parens"}]},{"begin":"%s<","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":">","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[>\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_ltgt"}]},{"begin":"%s\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[]\\\\\\\\]","name":"constant.character.escape.ruby"},{"include":"#nest_brackets"}]},{"begin":"%s\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\[\\\\\\\\}]","name":"constant.character.escape.ruby"},{"include":"#nest_curly"}]},{"begin":"%s(\\\\W)","beginCaptures":{"0":{"name":"punctuation.definition.symbol.begin.ruby"}},"end":"\\\\1","endCaptures":{"0":{"name":"punctuation.definition.symbol.end.ruby"}},"name":"constant.language.symbol.ruby","patterns":[{"match":"\\\\\\\\."}]},{"captures":{"1":{"name":"punctuation.definition.constant.ruby"}},"match":"(?<!:)(:)(?>[$A-Z_a-z]\\\\w*(?>[!?]|=(?![=>]))?|===?|<=>|>[=>]?|<[<=]?|[%\\\\&/`|]|\\\\*\\\\*?|=?~|[-+]@?|\\\\[]=?|@@?[A-Z_a-z]\\\\w*)","name":"constant.language.symbol.ruby"},{"begin":"^=begin","captures":{"0":{"name":"punctuation.definition.comment.ruby"}},"end":"^=end","name":"comment.block.documentation.ruby"},{"include":"#yard"},{"begin":"(^[\\\\t ]+)?(?=#)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.ruby"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.ruby"}},"end":"\\\\n","name":"comment.line.number-sign.ruby"}]},{"match":"(?<!\\\\w)\\\\?(\\\\\\\\(x\\\\h{1,2}(?!\\\\h)\\\\b|0[0-7]{0,2}(?![0-7])\\\\b|[^0CMx])|(\\\\\\\\[CM]-)+\\\\w|[^\\\\\\\\\\\\s])","name":"constant.numeric.ruby"},{"begin":"^__END__\\\\n","captures":{"0":{"name":"string.unquoted.program-block.ruby"}},"contentName":"text.plain","end":"(?=not)impossible","patterns":[{"begin":"(?=<?xml|<(?i:html\\\\b)|!DOCTYPE (?i:html\\\\b))","end":"(?=not)impossible","name":"text.html.embedded.ruby","patterns":[{"include":"text.html.basic"}]}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)HTML)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)HTML)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.html","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)HTML)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"text.html","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"text.html.basic"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)HTML)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)HAML)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)HAML)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.haml","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)HAML)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"text.haml","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"text.haml"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)HAML)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)XML)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)XML)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.xml","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)XML)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"text.xml","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"text.xml"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)XML)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)SQL)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)SQL)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.sql","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)SQL)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.sql","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.sql"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)SQL)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)G(?:RAPHQL|QL))\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)G(?:RAPHQL|QL))$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.graphql","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)G(?:RAPHQL|QL))\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.graphql","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.graphql"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)G(?:RAPHQL|QL))\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)CSS)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)CSS)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.css","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)CSS)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.css","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.css"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)CSS)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)CPP)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)CPP)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.cpp","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)CPP)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.cpp","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.cpp"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)CPP)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)C)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)C)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.c","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)C)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.c","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.c"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)C)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)J(?:S|AVASCRIPT))\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)J(?:S|AVASCRIPT))$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.js","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)J(?:S|AVASCRIPT))\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.js","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.js"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)J(?:S|AVASCRIPT))\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)JQUERY)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)JQUERY)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.js.jquery","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)JQUERY)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.js.jquery","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.js.jquery"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)JQUERY)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)SH(?:|ELL))\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)SH(?:|ELL))$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.shell","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)SH(?:|ELL))\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.shell","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.shell"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)SH(?:|ELL))\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)LUA)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)LUA)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.lua","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)LUA)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.lua","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.lua"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)LUA)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)RUBY)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)RUBY)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.ruby","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)RUBY)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.ruby","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.ruby"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)RUBY)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)YA?ML)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)YA?ML)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.yaml","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)YA?ML)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"source.yaml","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"source.yaml"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)YA?ML)\\\\s*$)"}]},{"begin":"(?=(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)SLIM)\\\\b\\\\1))","end":"^\\\\s*((?:[_\\\\w]+_|)SLIM)$\\\\n?","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"name":"meta.embedded.block.slim","patterns":[{"begin":"(?><<[-~]?([\\"\'`]?)((?:[_\\\\w]+_|)SLIM)\\\\b\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"text.slim","patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"text.slim"},{"include":"#escaped_char"}],"while":"^(?!\\\\s*((?:[_\\\\w]+_|)SLIM)\\\\s*$)"}]},{"begin":"(?>=\\\\s*<<([\\"\'`]?)(\\\\w+)\\\\1)","beginCaptures":{"0":{"name":"string.definition.begin.ruby"}},"contentName":"string.unquoted.heredoc.ruby","end":"^\\\\2$","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?>((<<[-~]?([\\"\'`]?)(\\\\w+)\\\\3,\\\\s?)*<<[-~]?([\\"\'`]?)(\\\\w+)\\\\5))(.*)","beginCaptures":{"1":{"name":"string.definition.begin.ruby"},"7":{"patterns":[{"include":"source.ruby"}]}},"contentName":"string.unquoted.heredoc.ruby","end":"^\\\\s*\\\\6$","endCaptures":{"0":{"name":"string.definition.end.ruby"}},"patterns":[{"include":"#heredoc"},{"include":"#interpolated_ruby"},{"include":"#escaped_char"}]},{"begin":"(?<=\\\\{|\\\\{\\\\s+|[^$0-:@-Z_a-z]do|^do|[^$0-:@-Z_a-z]do\\\\s+|^do\\\\s+)(\\\\|)","captures":{"1":{"name":"punctuation.separator.variable.ruby"}},"end":"(?<!\\\\|)(\\\\|)(?!\\\\|)","name":"meta.block.parameters.ruby","patterns":[{"begin":"(?![(,|\\\\s])","end":"(?=,|\\\\|\\\\s*)","patterns":[{"captures":{"1":{"name":"storage.type.variable.ruby"},"2":{"name":"variable.other.block.ruby"}},"match":"\\\\G((?:&|\\\\*\\\\*?)?)([A-Z_a-z][_\\\\w]*)"}]},{"match":",","name":"punctuation.separator.variable.ruby"}]},{"match":"=>","name":"punctuation.separator.key-value"},{"match":"->","name":"support.function.kernel.ruby"},{"match":"<<=|%=|&{1,2}=|\\\\*=|\\\\*\\\\*=|\\\\+=|-=|\\\\^=|\\\\|{1,2}=|<<","name":"keyword.operator.assignment.augmented.ruby"},{"match":"<=>|<(?![<=])|>(?![<=>])|<=|>=|===?|=~|!=|!~|(?<=[\\\\t ])\\\\?","name":"keyword.operator.comparison.ruby"},{"match":"(?<!\\\\.)\\\\b(and|not|or)\\\\b(?![!?])","name":"keyword.operator.logical.ruby"},{"match":"(?<=^|[\\\\t !])!|&&|\\\\|\\\\||\\\\^","name":"keyword.operator.logical.ruby"},{"captures":{"1":{"name":"keyword.operator.logical.ruby"}},"match":"(&\\\\.)\\\\s*(?![A-Z])"},{"match":"([%\\\\&]|\\\\*\\\\*|[-*+/])","name":"keyword.operator.arithmetic.ruby"},{"match":"=","name":"keyword.operator.assignment.ruby"},{"match":"[|~]|>>","name":"keyword.operator.other.ruby"},{"match":";","name":"punctuation.separator.statement.ruby"},{"match":",","name":"punctuation.separator.object.ruby"},{"captures":{"1":{"name":"punctuation.separator.namespace.ruby"}},"match":"(::)\\\\s*(?=[A-Z])"},{"captures":{"1":{"name":"punctuation.separator.method.ruby"}},"match":"(\\\\.|::)\\\\s*(?![A-Z])"},{"match":":","name":"punctuation.separator.other.ruby"},{"match":"\\\\{","name":"punctuation.section.scope.begin.ruby"},{"match":"}","name":"punctuation.section.scope.end.ruby"},{"match":"\\\\[","name":"punctuation.section.array.begin.ruby"},{"match":"]","name":"punctuation.section.array.end.ruby"},{"match":"[()]","name":"punctuation.section.function.ruby"},{"begin":"(?<=[^.]\\\\.|::)(?=[A-Za-z][!0-9?A-Z_a-z]*[^!0-9?A-Z_a-z])","end":"(?<=[!0-9?A-Z_a-z])(?=[^!0-9?A-Z_a-z])","name":"meta.function-call.ruby","patterns":[{"match":"([A-Za-z][!0-9?A-Z_a-z]*)(?=[^!0-9?A-Z_a-z])","name":"entity.name.function.ruby"}]},{"begin":"([A-Za-z]\\\\w*[!?]?)(\\\\()","beginCaptures":{"1":{"name":"entity.name.function.ruby"},"2":{"name":"punctuation.section.function.ruby"}},"end":"(\\\\))","endCaptures":{"1":{"name":"punctuation.section.function.ruby"}},"name":"meta.function-call.ruby","patterns":[{"include":"$self"}]}],"repository":{"escaped_char":{"match":"\\\\\\\\(?:[0-7]{1,3}|x[A-Fa-f\\\\d]{1,2}|.)","name":"constant.character.escape.ruby"},"heredoc":{"begin":"^<<[-~]?\\\\w+","end":"$","patterns":[{"include":"$self"}]},"interpolated_ruby":{"patterns":[{"begin":"#\\\\{","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.ruby"}},"contentName":"source.ruby","end":"}","endCaptures":{"0":{"name":"punctuation.section.embedded.end.ruby"}},"name":"meta.embedded.line.ruby","patterns":[{"include":"#nest_curly_and_self"},{"include":"$self"}]},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#@)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.instance.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#@@)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.class.ruby"},{"captures":{"1":{"name":"punctuation.definition.variable.ruby"}},"match":"(#\\\\$)[A-Z_a-z]\\\\w*","name":"variable.other.readwrite.global.ruby"}]},"method_parameters":{"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"#params"},{"include":"$self"}],"repository":{"braces":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.section.scope.begin.ruby"}},"end":"}","endCaptures":{"0":{"name":"punctuation.section.scope.end.ruby"}},"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"$self"}]},"brackets":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.section.array.begin.ruby"}},"end":"]","endCaptures":{"0":{"name":"punctuation.section.array.end.ruby"}},"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"$self"}]},"params":{"captures":{"1":{"name":"storage.type.variable.ruby"},"2":{"name":"constant.other.symbol.hashkey.parameter.function.ruby"},"3":{"name":"punctuation.definition.constant.ruby"},"4":{"name":"variable.parameter.function.ruby"}},"match":"\\\\G(&|\\\\*\\\\*?)?(?:([A-Z_a-z]\\\\w*[!?]?(:))|([A-Z_a-z]\\\\w*))"},"parens":{"begin":"\\\\(","beginCaptures":{"0":{"name":"punctuation.section.function.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.section.function.end.ruby"}},"patterns":[{"include":"#parens"},{"include":"#braces"},{"include":"#brackets"},{"include":"$self"}]}}},"nest_brackets":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#nest_brackets"}]},"nest_brackets_i":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_brackets_i"}]},"nest_brackets_r":{"begin":"\\\\[","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"]","patterns":[{"include":"#regex_sub"},{"include":"#nest_brackets_r"}]},"nest_curly":{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#nest_curly"}]},"nest_curly_and_self":{"patterns":[{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#nest_curly_and_self"}]},{"include":"$self"}]},"nest_curly_i":{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_curly_i"}]},"nest_curly_r":{"begin":"\\\\{","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"}","patterns":[{"include":"#regex_sub"},{"include":"#nest_curly_r"}]},"nest_ltgt":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#nest_ltgt"}]},"nest_ltgt_i":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_ltgt_i"}]},"nest_ltgt_r":{"begin":"<","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":">","patterns":[{"include":"#regex_sub"},{"include":"#nest_ltgt_r"}]},"nest_parens":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#nest_parens"}]},"nest_parens_i":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"include":"#nest_parens_i"}]},"nest_parens_r":{"begin":"\\\\(","captures":{"0":{"name":"punctuation.section.scope.ruby"}},"end":"\\\\)","patterns":[{"include":"#regex_sub"},{"include":"#nest_parens_r"}]},"regex_sub":{"patterns":[{"include":"#interpolated_ruby"},{"include":"#escaped_char"},{"captures":{"1":{"name":"punctuation.definition.arbitrary-repetition.ruby"},"3":{"name":"punctuation.definition.arbitrary-repetition.ruby"}},"match":"(\\\\{)\\\\d+(,\\\\d+)?(})","name":"string.regexp.arbitrary-repetition.ruby"},{"begin":"\\\\[(?:\\\\^?])?","captures":{"0":{"name":"punctuation.definition.character-class.ruby"}},"end":"]","name":"string.regexp.character-class.ruby","patterns":[{"include":"#escaped_char"}]},{"begin":"\\\\(\\\\?#","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.ruby"}},"end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.comment.end.ruby"}},"name":"comment.line.number-sign.ruby","patterns":[{"include":"#escaped_char"}]},{"begin":"\\\\(","captures":{"0":{"name":"punctuation.definition.group.ruby"}},"end":"\\\\)","name":"string.regexp.group.ruby","patterns":[{"include":"#regex_sub"}]},{"begin":"(?<=^|\\\\s)(#)\\\\s(?=[-\\\\t !,.0-9?A-Za-z[^\\\\x00-\\\\x7F]]*$)","beginCaptures":{"1":{"name":"punctuation.definition.comment.ruby"}},"end":"$\\\\n?","endCaptures":{"0":{"name":"punctuation.definition.comment.ruby"}},"name":"comment.line.number-sign.ruby"}]},"yard":{"patterns":[{"include":"#yard_comment"},{"include":"#yard_param_types"},{"include":"#yard_option"},{"include":"#yard_tag"},{"include":"#yard_types"},{"include":"#yard_directive"},{"include":"#yard_see"},{"include":"#yard_macro_attribute"}]},"yard_comment":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(abstract|api|author|deprecated|example|macro|note|overload|since|todo|version)(?=\\\\s|$)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"}},"contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_continuation":{"match":"^\\\\s*#","name":"punctuation.definition.comment.ruby"},"yard_directive":{"begin":"^(\\\\s*)(#)(\\\\s*)(@!)(endgroup|group|method|parse|scope|visibility)(\\\\s+((\\\\[).+(])))?(?=\\\\s)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"}},"contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_macro_attribute":{"begin":"^(\\\\s*)(#)(\\\\s*)(@!)(attribute|macro)(\\\\s+((\\\\[).+(])))?(?=\\\\s)(\\\\s+([_a-z]\\\\w*:?))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"11":{"name":"comment.line.parameter.yard.ruby"}},"contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_option":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(option)(?=\\\\s)(?>\\\\s+([_a-z]\\\\w*:?))?(?>\\\\s+((\\\\[).+(])))?(?>\\\\s+((\\\\S*)))?(?>\\\\s+((\\\\().+(\\\\))))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"6":{"name":"comment.line.parameter.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"10":{"name":"comment.line.keyword.yard.ruby"},"11":{"name":"comment.line.hashkey.yard.ruby"},"12":{"name":"comment.line.defaultvalue.yard.ruby"},"13":{"name":"comment.line.punctuation.yard.ruby"},"14":{"name":"comment.line.punctuation.yard.ruby"}},"contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_param_types":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(attr|attr_reader|attr_writer|yieldparam|param)(?=\\\\s)(?>\\\\s+(?>([_a-z]\\\\w*:?)|((\\\\[).+(]))))?(?>\\\\s+(?>((\\\\[).+(]))|([_a-z]\\\\w*:?)))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"6":{"name":"comment.line.parameter.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"},"10":{"name":"comment.line.type.yard.ruby"},"11":{"name":"comment.line.punctuation.yard.ruby"},"12":{"name":"comment.line.punctuation.yard.ruby"},"13":{"name":"comment.line.parameter.yard.ruby"}},"contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_see":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(see)(?=\\\\s)(\\\\s+(.+?))?(?=\\\\s|$)","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.parameter.yard.ruby"}},"contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]},"yard_tag":{"captures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"}},"match":"^(\\\\s*)(#)(\\\\s*)(@)(private)$","name":"comment.line.number-sign.ruby"},"yard_types":{"begin":"^(\\\\s*)(#)(\\\\s*)(@)(raise|return|yield(?:return)?)(?=\\\\s)(\\\\s+((\\\\[).+(])))?","beginCaptures":{"2":{"name":"punctuation.definition.comment.ruby"},"4":{"name":"comment.line.keyword.punctuation.yard.ruby"},"5":{"name":"comment.line.keyword.yard.ruby"},"7":{"name":"comment.line.type.yard.ruby"},"8":{"name":"comment.line.punctuation.yard.ruby"},"9":{"name":"comment.line.punctuation.yard.ruby"}},"contentName":"comment.line.string.yard.ruby","end":"^(?!\\\\s*#\\\\3\\\\s{2,}|\\\\s*#\\\\s*$)","name":"comment.line.number-sign.ruby","patterns":[{"include":"#yard"},{"include":"#yard_continuation"}]}},"scopeName":"source.ruby","embeddedLangs":["html","haml","xml","sql","graphql","css","cpp","c","javascript","shellscript","lua","yaml"],"aliases":["rb"]}'));var h=[...t.default,...s,...c.default,...o.default,...m.default,...r.default,...d.default,...l.default,...i.default,...p.A,...b.default,...y.default,g]},rDW(e,n,a){a.r(n);var t=a("lj");let i=Object.freeze(JSON.parse('{"displayName":"XML","name":"xml","patterns":[{"begin":"(<\\\\?)\\\\s*([-0-9A-Z_a-z]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"}},"end":"(\\\\?>)","name":"meta.tag.preprocessor.xml","patterns":[{"match":" ([-A-Za-z]+)","name":"entity.other.attribute-name.xml"},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},{"begin":"(<!)(DOCTYPE)\\\\s+([:A-Z_a-z][-.0-:A-Z_a-z]*)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.doctype.xml"},"3":{"name":"variable.language.documentroot.xml"}},"end":"\\\\s*(>)","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"include":"#comments"},{"begin":"(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\\\s[^>]*)?></\\\\2>)","beginCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.xml"},"3":{"name":"entity.name.tag.namespace.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(>)(</)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(>)","endCaptures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"punctuation.definition.tag.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"entity.name.tag.namespace.xml"},"5":{"name":"punctuation.separator.namespace.xml"},"6":{"name":"entity.name.tag.localname.xml"},"7":{"name":"punctuation.definition.tag.xml"}},"name":"meta.tag.no-content.xml","patterns":[{"include":"#tagStuff"}]},{"begin":"(</?)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"entity.name.tag.namespace.xml"},"3":{"name":"entity.name.tag.xml"},"4":{"name":"punctuation.separator.namespace.xml"},"5":{"name":"entity.name.tag.localname.xml"}},"end":"(/?>)","name":"meta.tag.xml","patterns":[{"include":"#tagStuff"}]},{"include":"#entity"},{"include":"#bare-ampersand"},{"begin":"<%@","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java-props.embedded.xml","patterns":[{"match":"page|include|taglib","name":"keyword.other.page-props.xml"}]},{"begin":"<%[!=]?(?!--)","beginCaptures":{"0":{"name":"punctuation.section.embedded.begin.xml"}},"end":"(?!--)%>","endCaptures":{"0":{"name":"punctuation.section.embedded.end.xml"}},"name":"source.java.embedded.xml","patterns":[{"include":"source.java"}]},{"begin":"<!\\\\[CDATA\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"]]>","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"(<!)(ENTITY)\\\\s+(%\\\\s+)?([:A-Z_a-z][-.0-:A-Z_a-z]*)(\\\\s+(?:SYSTEM|PUBLIC)\\\\s+)?","captures":{"1":{"name":"punctuation.definition.tag.xml"},"2":{"name":"keyword.other.entity.xml"},"3":{"name":"punctuation.definition.entity.xml"},"4":{"name":"variable.language.entity.xml"},"5":{"name":"keyword.other.entitytype.xml"}},"end":"(>)","patterns":[{"include":"#doublequotedString"},{"include":"#singlequotedString"}]},"bare-ampersand":{"match":"&","name":"invalid.illegal.bad-ampersand.xml"},"comments":{"patterns":[{"begin":"<%--","captures":{"0":{"name":"punctuation.definition.comment.xml"},"end":"--%>","name":"comment.block.xml"}},{"begin":"\x3c!--","captures":{"0":{"name":"punctuation.definition.comment.xml"}},"end":"--\x3e","name":"comment.block.xml","patterns":[{"begin":"--(?!>)","captures":{"0":{"name":"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]},"doublequotedString":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.double.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"entity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(&)([:A-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\\\h+)(;)","name":"constant.character.entity.xml"},"internalSubset":{"begin":"(\\\\[)","captures":{"1":{"name":"punctuation.definition.constant.xml"}},"end":"(])","name":"meta.internalsubset.xml","patterns":[{"include":"#EntityDecl"},{"include":"#parameterEntity"},{"include":"#comments"}]},"parameterEntity":{"captures":{"1":{"name":"punctuation.definition.constant.xml"},"3":{"name":"punctuation.definition.constant.xml"}},"match":"(%)([:A-Z_a-z][-.0-:A-Z_a-z]*)(;)","name":"constant.character.parameter-entity.xml"},"singlequotedString":{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.xml"}},"end":"\'","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.quoted.single.xml","patterns":[{"include":"#entity"},{"include":"#bare-ampersand"}]},"tagStuff":{"patterns":[{"captures":{"1":{"name":"entity.other.attribute-name.namespace.xml"},"2":{"name":"entity.other.attribute-name.xml"},"3":{"name":"punctuation.separator.namespace.xml"},"4":{"name":"entity.other.attribute-name.localname.xml"}},"match":"(?:^|\\\\s+)(?:([-.\\\\w]+)((:)))?([-.:\\\\w]+)\\\\s*="},{"include":"#doublequotedString"},{"include":"#singlequotedString"}]}},"scopeName":"text.xml","embeddedLangs":["java"]}'));n.default=[...t.default,i]},n1(e,n,a){a.r(n),n.default=[Object.freeze(JSON.parse('{"displayName":"YAML","fileTypes":["yaml","yml","rviz","reek","clang-format","yaml-tmlanguage","syntax","sublime-syntax"],"firstLineMatch":"^%YAML( ?1.\\\\d+)?","name":"yaml","patterns":[{"include":"#comment"},{"include":"#property"},{"include":"#directive"},{"match":"^---","name":"entity.other.document.begin.yaml"},{"match":"^\\\\.{3}","name":"entity.other.document.end.yaml"},{"include":"#node"}],"repository":{"block-collection":{"patterns":[{"include":"#block-sequence"},{"include":"#block-mapping"}]},"block-mapping":{"patterns":[{"include":"#block-pair"}]},"block-node":{"patterns":[{"include":"#prototype"},{"include":"#block-scalar"},{"include":"#block-collection"},{"include":"#flow-scalar-plain-out"},{"include":"#flow-node"}]},"block-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"1":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=\\\\?)|^ *(:)|(:)","endCaptures":{"1":{"name":"punctuation.separator.key-value.mapping.yaml"},"2":{"name":"invalid.illegal.expected-newline.yaml"}},"name":"meta.block-mapping.yaml","patterns":[{"include":"#block-node"}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&\'*,:>?@\\\\[`{|}\\\\s]|[-:?]\\\\S)([^:\\\\s]|:\\\\S|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&\'*,:>?@\\\\[`{|}\\\\s]|[-:?]\\\\S","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},{"match":":(?=\\\\s|$)","name":"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{"begin":"(?:(\\\\|)|(>))([1-9])?([-+])?(.*\\\\n?)","beginCaptures":{"1":{"name":"keyword.control.flow.block-scalar.literal.yaml"},"2":{"name":"keyword.control.flow.block-scalar.folded.yaml"},"3":{"name":"constant.numeric.indentation-indicator.yaml"},"4":{"name":"storage.modifier.chomping-indicator.yaml"},"5":{"patterns":[{"include":"#comment"},{"match":".+","name":"invalid.illegal.expected-comment-or-newline.yaml"}]}},"end":"^(?=\\\\S)|(?!\\\\G)","patterns":[{"begin":"^( +)(?! )","end":"^(?!\\\\1|\\\\s*$)","name":"string.unquoted.block.yaml"}]},"block-sequence":{"match":"(-)(?!\\\\S)","name":"punctuation.definition.block.sequence.item.yaml"},"comment":{"begin":"(?:^([\\\\t ]*)|[\\\\t ]+)(?=#\\\\p{print}*$)","beginCaptures":{"1":{"name":"punctuation.whitespace.comment.leading.yaml"}},"end":"(?!\\\\G)","patterns":[{"begin":"#","beginCaptures":{"0":{"name":"punctuation.definition.comment.yaml"}},"end":"\\\\n","name":"comment.line.number-sign.yaml"}]},"directive":{"begin":"^%","beginCaptures":{"0":{"name":"punctuation.definition.directive.begin.yaml"}},"end":"(?=$|[\\\\t ]+($|#))","name":"meta.directive.yaml","patterns":[{"captures":{"1":{"name":"keyword.other.directive.yaml.yaml"},"2":{"name":"constant.numeric.yaml-version.yaml"}},"match":"\\\\G(YAML)[\\\\t ]+(\\\\d+\\\\.\\\\d+)"},{"captures":{"1":{"name":"keyword.other.directive.tag.yaml"},"2":{"name":"storage.type.tag-handle.yaml"},"3":{"name":"support.type.tag-prefix.yaml"}},"match":"\\\\G(TAG)(?:[\\\\t ]+(!(?:[-0-9A-Za-z]*!)?)(?:[\\\\t ]+(!(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])*|(?![]!,\\\\[{}])(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+))?)?"},{"captures":{"1":{"name":"support.other.directive.reserved.yaml"},"2":{"name":"string.unquoted.directive-name.yaml"},"3":{"name":"string.unquoted.directive-parameter.yaml"}},"match":"\\\\G(\\\\w+)(?:[\\\\t ]+(\\\\w+)(?:[\\\\t ]+(\\\\w+))?)?"},{"match":"\\\\S+","name":"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{"captures":{"1":{"name":"keyword.control.flow.alias.yaml"},"2":{"name":"punctuation.definition.alias.yaml"},"3":{"name":"variable.other.alias.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"((\\\\*))([^],/\\\\[{}\\\\s]+)([^],}\\\\s]\\\\S*)?"},"flow-collection":{"patterns":[{"include":"#flow-sequence"},{"include":"#flow-mapping"}]},"flow-mapping":{"begin":"\\\\{","beginCaptures":{"0":{"name":"punctuation.definition.mapping.begin.yaml"}},"end":"}","endCaptures":{"0":{"name":"punctuation.definition.mapping.end.yaml"}},"name":"meta.flow-mapping.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.mapping.yaml"},{"include":"#flow-pair"}]},"flow-node":{"patterns":[{"include":"#prototype"},{"include":"#flow-alias"},{"include":"#flow-collection"},{"include":"#flow-scalar"}]},"flow-pair":{"patterns":[{"begin":"\\\\?","beginCaptures":{"0":{"name":"punctuation.definition.key-value.begin.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.explicit.yaml","patterns":[{"include":"#prototype"},{"include":"#flow-pair"},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","beginCaptures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","patterns":[{"include":"#flow-value"}]}]},{"begin":"(?=(?:[^-\\\\]!\\"#%\\\\&\'*,:>?@\\\\[`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s])([^],:\\\\[{}\\\\s]|:[^],\\\\[{}\\\\s]|\\\\s+(?![#\\\\s]))*\\\\s*:(\\\\s|$))","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"meta.flow-pair.key.yaml","patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&\'*,:>?@\\\\[`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","beginCaptures":{"0":{"name":"entity.name.tag.yaml"}},"contentName":"entity.name.tag.yaml","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},{"include":"#flow-node"},{"begin":":(?=\\\\s|$|[],\\\\[{}])","captures":{"0":{"name":"punctuation.separator.key-value.mapping.yaml"}},"end":"(?=[],}])","name":"meta.flow-pair.yaml","patterns":[{"include":"#flow-value"}]}]},"flow-scalar":{"patterns":[{"include":"#flow-scalar-double-quoted"},{"include":"#flow-scalar-single-quoted"},{"include":"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{"begin":"\\"","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\\"","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.double.yaml","patterns":[{"match":"\\\\\\\\([ \\"/0LN\\\\\\\\_abefnprtv]|x\\\\d\\\\d|u\\\\d{4}|U\\\\d{8})","name":"constant.character.escape.yaml"},{"match":"\\\\\\\\\\\\n","name":"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{"patterns":[{"include":"#flow-scalar-plain-in-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&\'*,:>?@\\\\[`{|}\\\\s]|[-:?][^],\\\\[{}\\\\s]","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])","name":"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$)|\\\\s*:[],\\\\[{}]|\\\\s*[],\\\\[{}])"}]},"flow-scalar-plain-out":{"patterns":[{"include":"#flow-scalar-plain-out-implicit-type"},{"begin":"[^-\\\\]!\\"#%\\\\&\'*,:>?@\\\\[`{|}\\\\s]|[-:?]\\\\S","end":"(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))","name":"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{"patterns":[{"captures":{"1":{"name":"constant.language.null.yaml"},"2":{"name":"constant.language.boolean.yaml"},"3":{"name":"constant.numeric.integer.yaml"},"4":{"name":"constant.numeric.float.yaml"},"5":{"name":"constant.other.timestamp.yaml"},"6":{"name":"constant.language.value.yaml"},"7":{"name":"constant.language.merge.yaml"}},"match":"(?:(null|Null|NULL|~)|([Yy]|yes|Yes|YES|[Nn]|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)|([-+]?0b[01_]+|[-+]?0[0-7_]+|[-+]?(?:0|[1-9][0-9_]*)|[-+]?0x[_\\\\h]+|[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)|([-+]?(?:[0-9][0-9_]*)?\\\\.[.0-9]*(?:[Ee][-+][0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*|[-+]?\\\\.(?:inf|Inf|INF)|\\\\.(?:nan|NaN|NAN))|(\\\\d{4}-\\\\d{2}-\\\\d{2}|\\\\d{4}-\\\\d{1,2}-\\\\d{1,2}(?:[Tt]|[\\\\t ]+)\\\\d{1,2}:\\\\d{2}:\\\\d{2}(?:\\\\.\\\\d*)?(?:[\\\\t ]*Z|[-+]\\\\d{1,2}(?::\\\\d{1,2})?)?)|(=)|(<<))(?=\\\\s*$|\\\\s+#|\\\\s*:(\\\\s|$))"}]},"flow-scalar-single-quoted":{"begin":"\'","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.yaml"}},"end":"\'(?!\')","endCaptures":{"0":{"name":"punctuation.definition.string.end.yaml"}},"name":"string.quoted.single.yaml","patterns":[{"match":"\'\'","name":"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{"begin":"\\\\[","beginCaptures":{"0":{"name":"punctuation.definition.sequence.begin.yaml"}},"end":"]","endCaptures":{"0":{"name":"punctuation.definition.sequence.end.yaml"}},"name":"meta.flow-sequence.yaml","patterns":[{"include":"#prototype"},{"match":",","name":"punctuation.separator.sequence.yaml"},{"include":"#flow-pair"},{"include":"#flow-node"}]},"flow-value":{"patterns":[{"begin":"\\\\G(?![],}])","end":"(?=[],}])","name":"meta.flow-pair.value.yaml","patterns":[{"include":"#flow-node"}]}]},"node":{"patterns":[{"include":"#block-node"}]},"property":{"begin":"(?=[!\\\\&])","end":"(?!\\\\G)","name":"meta.property.yaml","patterns":[{"captures":{"1":{"name":"keyword.control.property.anchor.yaml"},"2":{"name":"punctuation.definition.anchor.yaml"},"3":{"name":"entity.name.type.anchor.yaml"},"4":{"name":"invalid.illegal.character.anchor.yaml"}},"match":"\\\\G((&))([^],/\\\\[{}\\\\s]+)(\\\\S+)?"},{"match":"\\\\G!(?:<(?:%\\\\h{2}|[]!#$\\\\&-;=?-\\\\[_a-z~])+>|(?:[-0-9A-Za-z]*!)?(?:%\\\\h{2}|[#$\\\\&-+\\\\--;=?-Z_a-z~])+|)(?=[\\\\t ]|$)","name":"storage.type.tag-handle.yaml"},{"match":"\\\\S+","name":"invalid.illegal.tag-handle.yaml"}]},"prototype":{"patterns":[{"include":"#comment"},{"include":"#property"}]}},"scopeName":"source.yaml","aliases":["yml"]}'))]}}]);
@@ -0,0 +1,2 @@
1
+ /*! LICENSE: dc.6dc4b0a04b.js.LICENSE.txt */
2
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["dc"],{wA(e,t,n){var a=n("j"),r=n("H"),l=n("rm"),i=n("Go"),s=n("t3"),o=n("Ir"),c=n("z"),d=n("oj");function p(e){let{rootPath:t,activeRepo:n,onSelectRepo:p}=e,[h,x]=(0,r.J0)(!1),[m,f]=(0,r.J0)(["."]),[u,b]=(0,r.J0)(!1),[k,y]=(0,r.J0)(""),g=(0,r.li)(null),v=function(e){if(!e)return"workspace root";let t=e.replace(/\\/g,"/").split("/").filter(Boolean);return t.length>0?t[t.length-1]:"workspace root"}(t),N=e=>"."===e?v:e,Y=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n=new URLSearchParams({reposOnly:"1"});t&&n.set("root",t),e&&n.set("rescan","1"),n.set("t",String(Date.now()));let a=await fetch(`/api/fs/git?${n.toString()}`).then(e=>e.json()).catch(()=>null);a&&Array.isArray(a.repos)&&(f(a.repos),a.reposPending?b(!0):b(!1))};(0,r.vJ)(()=>{h&&Y()},[h,t]),(0,r.vJ)(()=>{if(!u)return;let e=new URLSearchParams({reposOnly:"1"});t&&e.set("root",t);let n=setInterval(async()=>{let t=await fetch(`/api/fs/git?${e.toString()}`).then(e=>e.json()).catch(()=>null);t&&!t.reposPending&&Array.isArray(t.repos)&&(f(t.repos),b(!1))},1500);return()=>clearInterval(n)},[u,t]),(0,d.W)(g,()=>x(!1));let w=m.filter(e=>!k.trim()||N(e).toLowerCase().includes(k.toLowerCase()));return(0,a.FD)("div",{className:"relative",ref:g,children:[(0,a.FD)("button",{type:"button",onClick:()=>x(!h),title:"Switch git project",className:"flex items-center space-x-1.5 hover:bg-ink/5 px-2 py-1 rounded transition-colors text-xs text-ink/80 font-medium",children:[(0,a.Y)(l.A,{size:12,className:"text-ink/60"}),(0,a.Y)("span",{className:"truncate max-w-[110px]",children:"."===n?v:n.split("/").pop()}),(0,a.Y)(i.A,{size:12,className:"text-ink/40"})]}),h&&(0,a.FD)("div",{className:"absolute top-full left-0 mt-1 w-52 bg-paper border border-ink/20 rounded-md shadow-lg z-50 flex flex-col overflow-hidden text-xs",children:[(0,a.FD)("div",{className:"px-2 py-1.5 border-b border-ink/10 flex items-center space-x-1.5",children:[(0,a.Y)(s.A,{size:11,className:"text-ink/40 flex-shrink-0"}),(0,a.Y)("input",{type:"text",value:k,onChange:e=>y(e.currentTarget.value),placeholder:"Search repos...",title:"Search repositories",className:"w-full bg-transparent outline-none text-xs text-ink placeholder-ink/40",autoFocus:!0}),k&&(0,a.Y)("button",{type:"button",onClick:()=>y(""),title:"Clear search",className:"text-ink/40 hover:text-ink flex-shrink-0",children:"×"}),(0,a.Y)("button",{type:"button",onClick:()=>void Y(!0),title:"Refresh nested repos",disabled:u,className:"text-ink/40 hover:text-ink flex-shrink-0 transition-colors disabled:opacity-40 disabled:hover:text-ink/40",children:(0,a.Y)(o.A,{size:11,className:u?"animate-spin":""})})]}),(0,a.Y)("div",{className:"max-h-48 scrollbar-overlay-container scrollbar-overlay-static py-1",children:0===w.length?(0,a.Y)("div",{className:"px-3 py-2 text-ink/40 italic",children:"No repos found"}):w.map(e=>(0,a.FD)("button",{type:"button",onClick:()=>{p(e),x(!1),y("")},title:N(e),className:"w-full text-left px-3 py-2 hover:bg-ink/5 flex items-center justify-between transition-colors",children:[(0,a.Y)("span",{className:"truncate",children:N(e)}),n===e&&(0,a.Y)(c.A,{size:12,className:"text-ink"})]},e))})]})]})}n.d(t,{I:()=>p})},fy(e,t,n){n.d(t,{FileExplorer:()=>j});var a=n("j"),r=n("H"),l=n("n"),i=n("t3"),s=n("wA"),o=n("Go"),c=n("Nf"),d=n("X"),p=n("ob"),h=n("G"),x=n("bH"),m=n("YOg"),f=n("q"),u=n("b0"),b=n("hw");let k=(0,n("y").A)({name:"pen",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],aliases:["edit-2"]});var y=n("mO"),g=n("S");function v(e){let{x:t,y:n,isFolder:r,hasGitStatus:l,onAction:i,menuRef:s}=e,o=r?220:l?285:255,c="u">typeof window?Math.max(10,Math.min(t,window.innerWidth-190-12)):t,d="u">typeof window?Math.max(10,Math.min(n,window.innerHeight-o-12)):n;return(0,h.d5)((0,a.Y)("div",{className:"fixed inset-0 z-50 bg-ink/20",onClick:()=>i("close"),onContextMenu:e=>{e.preventDefault(),i("close")},children:(0,a.FD)("div",{ref:s,className:"fixed z-50 bg-paper border border-ink/15 shadow-2xl rounded-lg py-1 min-w-[185px] text-xs text-ink font-sans",style:{top:d,left:c},onClick:e=>e.stopPropagation(),children:[!r&&(0,a.FD)(a.FK,{children:[(0,a.FD)("button",{onClick:()=>i("view"),className:"w-full text-left px-3 py-1.5 hover:bg-ink/5 flex items-center space-x-2 transition-colors",children:[(0,a.Y)(x.A,{size:13,className:"text-ink/60"}),(0,a.Y)("span",{children:"View"})]}),l&&(0,a.FD)("button",{onClick:()=>i("diff"),className:"w-full text-left px-3 py-1.5 hover:bg-ink/5 flex items-center space-x-2 transition-colors text-ink",children:[(0,a.Y)(m.A,{size:13,className:"text-warning"}),(0,a.Y)("span",{className:"font-medium",children:"Open in Diff Panel"})]})]}),(0,a.FD)("button",{onClick:()=>i("explorer"),className:"w-full text-left px-3 py-1.5 hover:bg-ink/5 flex items-center space-x-2 transition-colors",children:[(0,a.Y)(f.A,{size:13,className:"text-ink/60"}),(0,a.Y)("span",{children:"Go to Explorer"})]}),(0,a.Y)("div",{className:"my-1 border-t border-ink/10"}),(0,a.FD)("button",{onClick:()=>i("copy_path"),className:"w-full text-left px-3 py-1.5 hover:bg-ink/5 flex items-center space-x-2 transition-colors",children:[(0,a.Y)(u.A,{size:13,className:"text-ink/60"}),(0,a.Y)("span",{children:"Copy Path"})]}),(0,a.FD)("button",{onClick:()=>i("copy_relative"),className:"w-full text-left px-3 py-1.5 hover:bg-ink/5 flex items-center space-x-2 transition-colors",children:[(0,a.Y)(u.A,{size:13,className:"text-ink/60"}),(0,a.Y)("span",{children:"Copy Relative Path"})]}),(0,a.Y)("div",{className:"my-1 border-t border-ink/10"}),(0,a.FD)("button",{onClick:()=>i("history"),className:"w-full text-left px-3 py-1.5 hover:bg-ink/5 flex items-center space-x-2 transition-colors",children:[(0,a.Y)(b.A,{size:13,className:"text-ink/60"}),(0,a.Y)("span",{children:"Show Git History"})]}),(0,a.Y)("div",{className:"my-1 border-t border-ink/10"}),(0,a.FD)("button",{onClick:()=>i("rename"),className:"w-full text-left px-3 py-1.5 hover:bg-ink/5 flex items-center space-x-2 transition-colors",children:[(0,a.Y)(k,{size:13,className:"text-ink/60"}),(0,a.Y)("span",{children:"Rename"})]}),(0,a.FD)("button",{onClick:()=>i("delete"),className:"w-full text-left px-3 py-1.5 hover:bg-error/10 text-error flex items-center space-x-2 transition-colors",children:[(0,a.Y)(y.A,{size:13,className:"text-error"}),(0,a.Y)("span",{children:"Delete"})]})]})}),document.body)}function N(e){let{fileName:t,isFolder:n,isLoading:r,onCancel:l,onConfirm:i}=e;return(0,h.d5)((0,a.Y)("div",{className:"fixed inset-0 bg-ink/20 z-[100] flex items-center justify-center p-4 backdrop-blur-sm",children:(0,a.FD)("div",{className:"bg-paper rounded shadow-xl p-4 w-full max-w-sm border border-ink/10 font-sans",children:[(0,a.FD)("h3",{className:"font-semibold text-ink mb-2 text-sm",children:["Delete ",n?"Folder":"File"]}),(0,a.FD)("p",{className:"text-xs text-ink/70 mb-4",children:["Are you sure you want to delete ",(0,a.Y)("span",{className:"font-mono bg-canvas px-1 rounded",children:t}),"? This action cannot be undone."]}),(0,a.FD)("div",{className:"flex justify-end space-x-2",children:[(0,a.Y)("button",{onClick:l,className:"px-3 py-1.5 text-xs text-ink hover:bg-ink/5 rounded transition-colors",disabled:r,children:"Cancel"}),(0,a.Y)("button",{onClick:i,className:"px-3 py-1.5 text-xs bg-error text-white rounded hover:bg-error/90 transition-colors flex items-center",disabled:r,children:r?"Deleting...":"Delete"})]})]})}),document.body)}function Y(e){let{isFolder:t,renameValue:n,originalPath:r,isLoading:l,onChange:i,onCancel:s,onSubmit:o}=e;return(0,h.d5)((0,a.Y)("div",{className:"fixed inset-0 bg-ink/20 z-[100] flex items-center justify-center p-4 backdrop-blur-sm",children:(0,a.FD)("form",{onSubmit:o,className:"bg-paper rounded shadow-xl p-4 w-full max-w-sm border border-ink/10 font-sans",children:[(0,a.FD)("h3",{className:"font-semibold text-ink mb-3 text-sm",children:["Rename ",t?"Folder":"File"]}),(0,a.Y)("input",{autoFocus:!0,type:"text",value:n,onChange:e=>i(e.currentTarget.value),className:"w-full bg-paper border border-ink/20 rounded px-2 py-1.5 text-xs font-mono focus:outline-none focus:border-ink mb-4"}),(0,a.FD)("div",{className:"flex justify-end space-x-2",children:[(0,a.Y)("button",{type:"button",onClick:s,className:"px-3 py-1.5 text-xs text-ink hover:bg-ink/5 rounded transition-colors",disabled:l,children:"Cancel"}),(0,a.Y)("button",{type:"submit",className:"px-3 py-1.5 text-xs bg-ink text-canvas rounded hover:bg-ink/90 transition-colors flex items-center",disabled:l||!n.trim()||n===r,children:l?"Renaming...":"Rename"})]})]})}),document.body)}function w(e){let{filePath:t,fetcherState:n,fetcherData:r,onClose:i}=e;return(0,h.d5)((0,a.Y)("div",{className:"fixed inset-0 bg-ink/20 z-[100] flex items-center justify-center p-4 backdrop-blur-sm",children:(0,a.FD)("div",{className:"bg-paper rounded-lg shadow-xl w-full max-w-4xl border border-ink/10 flex flex-col max-h-[85vh]",children:[(0,a.FD)("div",{className:"flex items-center justify-between p-4 border-b border-ink/10",children:[(0,a.FD)("h3",{className:"text-sm font-semibold text-ink flex items-center space-x-2",children:[(0,a.Y)(b.A,{size:16,className:"text-ink/60"}),(0,a.FD)("span",{children:["Git History: ",(0,a.Y)("span",{className:"font-mono font-normal opacity-80",children:t})]})]}),(0,a.Y)("button",{onClick:i,className:"p-1 hover:bg-ink/5 rounded text-ink/60 transition-colors",children:(0,a.Y)(g.A,{size:14})})]}),(0,a.Y)("div",{className:"flex-1 scrollbar-overlay-container scrollbar-overlay-static bg-paper p-2",children:"idle"===n?r?.type==="history"?r.data.length>0?(0,a.FD)("table",{className:"w-full text-left border-collapse text-[11px]",children:[(0,a.Y)("thead",{className:"bg-canvas sticky top-0 z-10 border-b border-ink/10",children:(0,a.FD)("tr",{children:[(0,a.Y)("th",{className:"px-3 py-2 font-semibold text-ink/70 rounded-tl",children:"Description"}),(0,a.Y)("th",{className:"px-3 py-2 font-semibold text-ink/70 w-32",children:"Date"}),(0,a.Y)("th",{className:"px-3 py-2 font-semibold text-ink/70 w-32",children:"Author"}),(0,a.Y)("th",{className:"px-3 py-2 font-semibold text-ink/70 w-24 text-right rounded-tr",children:"Commit"})]})}),(0,a.Y)("tbody",{className:"divide-y divide-ink/5",children:r.data.map((e,t)=>(0,a.FD)("tr",{className:"hover:bg-ink/[0.03] transition-colors group bg-paper",children:[(0,a.Y)("td",{className:"px-3 py-2 text-ink",children:e.message?(0,a.Y)("span",{className:"font-medium text-ink/90 group-hover:text-ink",children:e.message}):null}),(0,a.Y)("td",{className:"px-3 py-2 text-ink/60 whitespace-nowrap font-mono text-[10.5px]",children:e.time}),(0,a.Y)("td",{className:"px-3 py-2 text-ink/70 whitespace-nowrap truncate max-w-[120px]",children:e.author}),(0,a.Y)("td",{className:"px-3 py-2 text-right",children:e.hash?(0,a.Y)("span",{className:"font-mono text-ink/50 group-hover:text-ink font-semibold transition-colors bg-canvas px-1.5 py-0.5 rounded border border-ink/10",children:e.hash}):null})]},t))})]}):(0,a.Y)("div",{className:"p-8 text-center text-ink/40 font-mono text-xs",children:"No commit history found for this file."}):r?.error?(0,a.Y)("div",{className:"p-8 text-center text-error font-mono text-xs",children:r.error}):(0,a.Y)("div",{className:"p-8 text-center text-ink/40 font-mono text-xs",children:"Loading history..."}):(0,a.FD)("div",{className:"p-8 text-center text-ink/40 font-mono text-xs flex items-center justify-center space-x-2",children:[(0,a.Y)(l.A,{size:14,className:"animate-spin"}),(0,a.Y)("span",{children:"Loading history..."})]})})]})}),document.body)}var F=n("LQ"),D=n("pH"),C=n("oj");function A(e){let{file:t,rootPath:n,basePath:l,repo:i,onLoadChildren:s,onOpenFile:h,onActionComplete:x,expandedPaths:m,onToggleFolder:f,gitFileMap:u,gitFolderMap:b}=e,k="folder"===t.type,[y,g]=(0,r.J0)(!1),[z,S]=(0,r.J0)(!1),J=(0,d.L)(),[P,j]=(0,r.J0)(!1),[L,M]=(0,r.J0)(null),$=(0,r.li)(null),[R,H]=(0,r.J0)(!1),[T,E]=(0,r.J0)(!1),[O,G]=(0,r.J0)(!1),[_,I]=(0,r.J0)(t.path),V=Array.isArray(t.children)?t.children:[],B=(t.path||"").replace(/^\/+/,""),U=k?void 0:u?.get(B)||u?.get(t.path),W=U?(0,F.R)(U.status,U.staged):null,K=k?b?.get(B)||b?.get(t.path):null,Q=!!W,X=!0===t.ignored,q=m?m.has(t.path):y,Z=void 0!==t.forceExpanded?t.forceExpanded:q;(0,r.vJ)(()=>{j(!0)},[]),(0,r.vJ)(()=>{k&&m&&g(m.has(t.path))},[m,t.path,k]),(0,r.vJ)(()=>{k&&Z&&(!t.children||0===t.children.length)&&s&&!z&&(S(!0),Promise.resolve(s(t.path)).finally(()=>S(!1)))},[k,Z,t.children,t.path,s]),(0,C.W)($,()=>M(null)),(0,r.vJ)(()=>{"idle"===J.state&&J.data&&J.data.success&&!J.data.type&&(H(!1),E(!1),x())},[J.state,J.data]);let ee=e=>{i&&"."!==i&&e.append("repo",i),n&&e.append("root",n),J.submit(e,{method:"post",action:"/api/fs/action"})};return(0,a.FD)("div",{children:[(0,a.FD)("div",{className:"flex items-center space-x-1.5 py-1 px-2 hover:bg-ink/5 cursor-pointer rounded group",onClick:e=>{if(e.stopPropagation(),k){let e=!Z;g(e),void 0!==t.forceExpanded&&(t.forceExpanded=void 0),f?.(t.path,e),e&&s&&(!t.children||0===t.children.length)&&(S(!0),Promise.resolve(s(t.path)).finally(()=>S(!1)))}else h&&h({...t,root:n,repo:i||"."})},onContextMenu:e=>{e.preventDefault(),e.stopPropagation(),M({x:e.clientX,y:e.clientY})},children:[k?Z?(0,a.Y)(o.A,{size:12,className:"flex-shrink-0 text-ink/40"}):(0,a.Y)(c.A,{size:12,className:"flex-shrink-0 text-ink/40"}):(0,a.Y)("span",{className:"w-3 flex-shrink-0"}),(0,a.Y)(p.o,{name:t.name,isFolder:k,isOpen:Z,size:12,className:`flex-shrink-0${X?" opacity-40":""}`}),(0,a.Y)("span",{className:`truncate min-w-0 flex-1 ${W?W.colorClass:K?K.colorClass:X?"text-ink/40":""}`,title:X?`${t.path} — git-ignored`:void 0,children:t.name}),W&&(0,a.Y)("span",{className:`font-mono text-[9px] font-bold px-1 rounded flex-shrink-0 ${W.colorClass}`,title:`Git: ${W.label}`,children:W.charStatus}),K&&(0,a.Y)("span",{className:`w-1.5 h-1.5 rounded-full flex-shrink-0 ${K.hasDeleted?"bg-error":K.hasModified||K.hasStaged?"bg-info":"bg-success"}`,title:`${K.count} changed file${K.count>1?"s":""}`})]}),Z&&z&&(0,a.Y)("div",{className:"ml-3 border-l border-ink/10 pl-3 py-0.5 text-[10px] text-ink/30",children:"Loading…"}),Z&&!z&&V.length>0&&(0,a.Y)("div",{className:"ml-3 border-l border-ink/10 pl-1",children:V.map(e=>(0,a.Y)(A,{file:e,rootPath:n,basePath:l,repo:i,onLoadChildren:s,onOpenFile:h,onActionComplete:x,expandedPaths:m,onToggleFolder:f,gitFileMap:u,gitFolderMap:b},e.id))}),P&&L&&(0,a.Y)(v,{x:L.x,y:L.y,isFolder:k,hasGitStatus:Q,onAction:e=>{if(M(null),"view"===e)h&&h({...t,root:n,repo:i||"."});else if("diff"===e)window.dispatchEvent(new CustomEvent("omp:open-diff",{detail:{file:t.path,staged:U?.staged||U?.status&&" "!==U.status[0]&&"?"!==U.status[0],status:W?.charStatus||"M",repo:i||".",root:n}}));else if("explorer"===e){let e=new FormData;e.append("actionType","open_explorer"),e.append("path",t.path),ee(e)}else if("copy_path"===e){let e,n;(0,D.l)((e=t.path.replace(/^(?:\.?[/\\])+/,"").replace(/[/\\]+$/,""),(n=(l??"").replace(/[/\\]+$/,""))?e?`${n}${n.includes("\\")&&!n.includes("/")?"\\":"/"}${e}`:n:e))}else if("copy_relative"===e)(0,D.l)(t.path);else if("history"===e){G(!0);let e=new FormData;e.append("actionType","git_history"),e.append("path",t.path),ee(e)}else"rename"===e?(I(t.path),H(!0)):"delete"===e&&E(!0)}}),P&&T&&(0,a.Y)(N,{fileName:t.name,isFolder:k,isLoading:"idle"!==J.state,onCancel:()=>E(!1),onConfirm:()=>{let e=new FormData;e.append("actionType","delete"),e.append("path",t.path),ee(e)}}),P&&R&&(0,a.Y)(Y,{isFolder:k,renameValue:_,originalPath:t.path,isLoading:"idle"!==J.state,onChange:I,onCancel:()=>H(!1),onSubmit:e=>{e.preventDefault();let n=new FormData;n.append("actionType","rename"),n.append("path",t.path),n.append("newPath",_),ee(n)}}),P&&O&&(0,a.Y)(w,{filePath:t.path,fetcherState:J.state,fetcherData:J.data,onClose:()=>G(!1)})]})}var z=n("jo"),S=n("FL"),J=n("so"),P=n("Af");function j(e){let{className:t="",enabled:n=!0,rootPath:o,onOpenFile:c,refreshKey:d=0,onRefresh:p}=e,[h,x]=(0,r.J0)([]),[m,f]=(0,r.J0)(""),[u,b]=(0,S.bL)("files.searchQuery",""),[k,y]=(0,r.J0)(!1),[g,v,N]=(0,S.bL)("files.expandedPaths",[]),[Y,w]=(0,r.J0)(()=>new Set(g)),F=(0,r.li)({}),[D,C]=(0,S.bL)("files.activeRepo","."),{isScrolling:j,handleScroll:L}=(0,z.K)(),{fileMap:M,folderMap:$,refreshGitStatus:R}=(0,J.e)(o,D,d,n);(0,r.vJ)(()=>{N&&w(e=>{let t=new Set(g);return e.size===t.size&&Array.from(t).every(t=>e.has(t))?e:t})},[N,g]);let H=e=>{let t=new URLSearchParams;return o&&t.set("root",o),D&&"."!==D&&t.set("repo",D),e&&t.set("path",e),t.set("t",String(Date.now())),`/api/fs/dir?${t.toString()}`},T=e=>{n&&(e?.silent||y(!0),fetch(H()).then(e=>e.json()).then(e=>{"string"==typeof e.root&&f(e.root),Array.isArray(e.files)&&x(function e(t,n,a){return t.map(t=>{if("folder"!==t.type)return t;let r=n[t.path],l=a.has(t.path);return r?{...t,children:e(r,n,a),is_expanded:+!!l}:t})}(e.files,F.current,Y))}).catch(()=>{}).finally(()=>{e?.silent||y(!1)}))};(0,r.vJ)(()=>{N&&T()},[d,o,n,D,N]),(0,P.n)(()=>T({silent:!0}),n&&N),(0,P.w)(()=>T({silent:!0}),n&&N);let E=e=>fetch(H(e)).then(e=>e.json()).then(t=>{Array.isArray(t.files)&&(F.current[e]=t.files,x(n=>(function e(t,n,a){return t.map(t=>{if(t.path===n)return{...t,children:a,is_expanded:1};if(Array.isArray(t.children)){let r=e(t.children,n,a);if(r!==t.children)return{...t,children:r}}return t})})(n,e,t.files)))}).catch(()=>{}),O=(e,t)=>{let n=new Set(Y);t?n.add(e):n.delete(e),w(n),v(Array.from(n))};if(!n)return(0,a.Y)("div",{className:`flex flex-col h-full bg-paper items-center justify-center text-ink/40 ${t}`,children:(0,a.Y)("span",{className:"text-xs font-mono",children:"No session selected"})});let G=(()=>{if(!u.trim())return h;let e=u.toLowerCase(),t=n=>{let a=n.name.toLowerCase().includes(e);if("folder"===n.type){let e=(n.children||[]).map(t).filter(Boolean);return a||e.length>0?{...n,children:a&&0===e.length?n.children:e,forceExpanded:!0}:null}return a?n:null};return h.map(t).filter(Boolean)})(),_=()=>{R(),p?p():T()};return(0,a.FD)("div",{className:`flex flex-col h-full bg-paper ${t}`,children:[(0,a.FD)("div",{className:"p-3 border-b border-ink/10 flex flex-col space-y-2",children:[(0,a.FD)("div",{className:"flex items-center justify-between",children:[(0,a.Y)(s.I,{rootPath:o,activeRepo:D,onSelectRepo:e=>{e!==D&&(F.current={},w(new Set),v([]),C(e))}}),(0,a.Y)("button",{onClick:_,className:"p-1.5 text-ink/40 hover:text-ink hover:bg-ink/5 rounded transition-colors",title:"Refresh",children:(0,a.Y)(l.A,{size:14,className:k?"animate-spin":""})})]}),(0,a.FD)("div",{className:"relative",children:[(0,a.Y)(i.A,{size:14,className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-ink/40"}),(0,a.Y)("input",{type:"text",placeholder:"Search files...",value:u,onChange:e=>b(e.currentTarget.value),className:"w-full bg-canvas border border-ink/20 rounded pl-8 pr-3 py-1.5 text-xs focus:outline-none focus:border-ink transition-colors text-ink placeholder-ink/40"})]})]}),(0,a.Y)("div",{className:`flex-1 scrollbar-overlay-container p-2 font-mono text-[11px] text-ink/80 ${(0,z.p)(j)}`,onContextMenu:e=>e.preventDefault(),onScroll:L,children:k&&0===G.length?(0,a.Y)("div",{className:"p-4 text-center text-ink/40",children:"Loading files..."}):0===G.length?(0,a.Y)("div",{className:"p-4 text-center text-ink/40",children:"No files found"}):G.map(e=>(0,a.Y)(A,{file:e,rootPath:o,basePath:m,repo:D,onLoadChildren:E,onOpenFile:c,onActionComplete:_,expandedPaths:Y,onToggleFolder:O,gitFileMap:M,gitFolderMap:$},e.id))})]})}},rm(e,t,n){let a=(0,n("y").A)({name:"folder-git-2",size:24,node:[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]});n.d(t,{},{A:a})},YOg(e,t,n){let a=(0,n("y").A)({name:"git-compare",size:24,node:[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]]});n.d(t,{},{A:a})}}]);
@@ -0,0 +1,6 @@
1
+ /*! LICENSE: fw.6a51998a8e.js.LICENSE.txt */
2
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["fw"],{wA(e,t,r){var n=r("j"),l=r("H"),i=r("rm"),o=r("Go"),c=r("t3"),a=r("Ir"),s=r("z"),u=r("oj");function d(e){let{rootPath:t,activeRepo:r,onSelectRepo:d}=e,[m,h]=(0,l.J0)(!1),[b,f]=(0,l.J0)(["."]),[p,x]=(0,l.J0)(!1),[g,w]=(0,l.J0)(""),v=(0,l.li)(null),k=function(e){if(!e)return"workspace root";let t=e.replace(/\\/g,"/").split("/").filter(Boolean);return t.length>0?t[t.length-1]:"workspace root"}(t),y=e=>"."===e?k:e,N=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=new URLSearchParams({reposOnly:"1"});t&&r.set("root",t),e&&r.set("rescan","1"),r.set("t",String(Date.now()));let n=await fetch(`/api/fs/git?${r.toString()}`).then(e=>e.json()).catch(()=>null);n&&Array.isArray(n.repos)&&(f(n.repos),n.reposPending?x(!0):x(!1))};(0,l.vJ)(()=>{m&&N()},[m,t]),(0,l.vJ)(()=>{if(!p)return;let e=new URLSearchParams({reposOnly:"1"});t&&e.set("root",t);let r=setInterval(async()=>{let t=await fetch(`/api/fs/git?${e.toString()}`).then(e=>e.json()).catch(()=>null);t&&!t.reposPending&&Array.isArray(t.repos)&&(f(t.repos),x(!1))},1500);return()=>clearInterval(r)},[p,t]),(0,u.W)(v,()=>h(!1));let C=b.filter(e=>!g.trim()||y(e).toLowerCase().includes(g.toLowerCase()));return(0,n.FD)("div",{className:"relative",ref:v,children:[(0,n.FD)("button",{type:"button",onClick:()=>h(!m),title:"Switch git project",className:"flex items-center space-x-1.5 hover:bg-ink/5 px-2 py-1 rounded transition-colors text-xs text-ink/80 font-medium",children:[(0,n.Y)(i.A,{size:12,className:"text-ink/60"}),(0,n.Y)("span",{className:"truncate max-w-[110px]",children:"."===r?k:r.split("/").pop()}),(0,n.Y)(o.A,{size:12,className:"text-ink/40"})]}),m&&(0,n.FD)("div",{className:"absolute top-full left-0 mt-1 w-52 bg-paper border border-ink/20 rounded-md shadow-lg z-50 flex flex-col overflow-hidden text-xs",children:[(0,n.FD)("div",{className:"px-2 py-1.5 border-b border-ink/10 flex items-center space-x-1.5",children:[(0,n.Y)(c.A,{size:11,className:"text-ink/40 flex-shrink-0"}),(0,n.Y)("input",{type:"text",value:g,onChange:e=>w(e.currentTarget.value),placeholder:"Search repos...",title:"Search repositories",className:"w-full bg-transparent outline-none text-xs text-ink placeholder-ink/40",autoFocus:!0}),g&&(0,n.Y)("button",{type:"button",onClick:()=>w(""),title:"Clear search",className:"text-ink/40 hover:text-ink flex-shrink-0",children:"×"}),(0,n.Y)("button",{type:"button",onClick:()=>void N(!0),title:"Refresh nested repos",disabled:p,className:"text-ink/40 hover:text-ink flex-shrink-0 transition-colors disabled:opacity-40 disabled:hover:text-ink/40",children:(0,n.Y)(a.A,{size:11,className:p?"animate-spin":""})})]}),(0,n.Y)("div",{className:"max-h-48 scrollbar-overlay-container scrollbar-overlay-static py-1",children:0===C.length?(0,n.Y)("div",{className:"px-3 py-2 text-ink/40 italic",children:"No repos found"}):C.map(e=>(0,n.FD)("button",{type:"button",onClick:()=>{d(e),h(!1),w("")},title:y(e),className:"w-full text-left px-3 py-2 hover:bg-ink/5 flex items-center justify-between transition-colors",children:[(0,n.Y)("span",{className:"truncate",children:y(e)}),r===e&&(0,n.Y)(s.A,{size:12,className:"text-ink"})]},e))})]})]})}r.d(t,{I:()=>d})},RF(e,t,r){r.d(t,{TerminalPanel:()=>D});var n=r("j"),l=r("H"),i=r("FL"),o=r("As");let c=["bun --version","bun run build","git status -s"];var a=r("N"),s=r("t"),u=r("wA");function d(e){let{isRunning:t,rootPath:r,activeRepo:l,onSelectRepo:i,bunVersion:o,nodeVersion:c}=e;return(0,n.FD)("div",{className:"h-10 px-3 border-b border-ink/10 bg-paper flex items-center justify-between flex-shrink-0 select-none",children:[(0,n.FD)("div",{className:"flex items-center space-x-2 min-w-0",children:[(0,n.FD)("div",{className:"flex items-center space-x-1.5",children:[(0,n.Y)(a.A,{size:14,className:"text-ink/80 flex-shrink-0"}),(0,n.Y)("span",{className:"text-xs font-semibold tracking-wider text-ink uppercase",children:"Terminal"})]}),t&&(0,n.FD)("span",{className:"inline-flex items-center space-x-1 px-1.5 py-0.5 rounded text-[10px] font-mono bg-warning/10 text-warning border border-warning/20 animate-pulse",children:[(0,n.Y)(s.A,{size:10,className:"animate-spin"}),(0,n.Y)("span",{className:"hidden xs:inline",children:"RUNNING"})]}),(0,n.Y)(u.I,{rootPath:r,activeRepo:l,onSelectRepo:i})]}),o&&(0,n.FD)("span",{className:"hidden sm:flex items-center space-x-2 text-[10px] font-mono text-ink/40 flex-shrink-0",children:[(0,n.FD)("span",{children:["Bun ",o]}),c&&(0,n.FD)("span",{children:["Node ",c]})]})]})}var m=r("XT");let h=[{label:"bun build",cmd:"bun run build"},{label:"bun test",cmd:"bun test"},{label:"git status",cmd:"git status -s"},{label:"git diff",cmd:"git diff"},{label:"ls -la",cmd:"ls -la"},{label:"pwd",cmd:"pwd"},{label:"bun -v",cmd:"bun --version"}];function b(e){let{onSelectCommand:t,disabled:r}=e;return(0,n.FD)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-1.5 bg-paper border-b border-ink/10 flex-shrink-0",children:[(0,n.FD)("div",{className:"flex items-center space-x-1 text-[10px] font-mono text-ink/50 uppercase tracking-wider flex-shrink-0 select-none",children:[(0,n.Y)(m.A,{size:11,className:"text-warning"}),(0,n.Y)("span",{children:"Quick:"})]}),h.map(e=>(0,n.Y)("button",{type:"button",disabled:r,onClick:()=>t(e.cmd),className:"px-2 py-0.5 rounded text-[10px] font-mono bg-canvas hover:bg-ink/5 active:bg-ink/10 text-ink/80 hover:text-ink border border-ink/15 transition-all whitespace-nowrap disabled:opacity-40 cursor-pointer shadow-2xs",children:e.label},e.cmd))]})}var f=r("s8"),p=r("DTR");function x(e){let{value:t,onChange:r,onSubmit:i,onKeyDown:o,onCancel:c,isRunning:a}=e,s=(0,l.li)(null);return(0,l.vJ)(()=>{s.current?.focus()},[]),(0,n.FD)("form",{onSubmit:e=>{e.preventDefault(),a||i()},className:"p-2 border-t border-ink/10 bg-paper flex items-center space-x-2 flex-shrink-0",children:[(0,n.FD)("div",{className:"flex items-center space-x-2 flex-1 min-w-0 bg-canvas border border-ink/20 rounded-lg px-2.5 py-1.5 focus-within:border-ink/50 focus-within:ring-1 focus-within:ring-ink/10 transition-all",children:[(0,n.Y)("span",{className:"text-warning font-mono text-xs select-none font-bold",children:"$"}),(0,n.Y)("input",{ref:s,type:"text",value:t,onChange:e=>r(e.currentTarget.value),onKeyDown:o,disabled:a,placeholder:a?"Command is executing in live session...":"bun run build, git status, ls -la...",className:"flex-1 bg-transparent font-mono text-xs text-ink placeholder:text-ink/40 outline-none min-w-0"}),(0,n.Y)("span",{className:"hidden sm:inline-block text-[10px] font-mono text-ink/40 select-none",children:"↑↓ history"})]}),a?(0,n.FD)("button",{type:"button",onClick:c,className:"px-2.5 py-1.5 rounded-lg bg-error text-white hover:bg-error/90 active:scale-95 transition-all flex items-center space-x-1 cursor-pointer shadow-xs font-mono text-xs",title:"Interrupt process (Ctrl+C)",children:[(0,n.Y)(f.A,{size:12,fill:"currentColor"}),(0,n.Y)("span",{className:"hidden xs:inline text-[10px]",children:"Stop"})]}):(0,n.Y)("button",{type:"submit",disabled:!t.trim(),className:"p-2 rounded-lg bg-ink text-paper hover:bg-ink/85 active:scale-95 transition-all flex items-center justify-center disabled:opacity-40 disabled:pointer-events-none cursor-pointer shadow-xs",title:"Execute command (Enter)",children:(0,n.Y)(p.A,{size:13})})]})}var g=r("G"),w=r("zi"),v=r("C7q"),k=r("SS");let y={background:"#f4f1ea",foreground:"#141310",cursor:"#141310",cursorAccent:"#f4f1ea",selectionBackground:"#ded8ce",selectionForeground:"#141310",black:"#141310",red:"#c8321e",green:"#047857",yellow:"#b45309",blue:"#1d4ed8",magenta:"#9333ea",cyan:"#0284c7",white:"#faf8f3",brightBlack:"#78716c",brightRed:"#dc2626",brightGreen:"#059669",brightYellow:"#d97706",brightBlue:"#2563eb",brightMagenta:"#a855f7",brightCyan:"#0ea5e9",brightWhite:"#292524"},N={background:"#21252b",foreground:"#abb2bf",cursor:"#528bff",cursorAccent:"#21252b",selectionBackground:"#3e4451",selectionForeground:"#abb2bf",black:"#282c34",red:"#e06c75",green:"#98c379",yellow:"#e5c07b",blue:"#61afef",magenta:"#c678dd",cyan:"#56b6c2",white:"#abb2bf",brightBlack:"#5c6370",brightRed:"#e06c75",brightGreen:"#98c379",brightYellow:"#e5c07b",brightBlue:"#61afef",brightMagenta:"#c678dd",brightCyan:"#56b6c2",brightWhite:"#ffffff"},C={device:{char:{width:9,height:17,left:0,top:0},cell:{width:9,height:17},canvas:{width:0,height:0}},css:{canvas:{width:0,height:0},cell:{width:9,height:17}}},Y="",S=(0,g.Rf)((e,t)=>{let{onCommandSubmit:c,cwd:a}=e,{isDark:s}=function(){let e=(0,v.g)(),[t,r]=(0,l.J0)(()=>"u">typeof document&&(document.documentElement.dataset.theme||document.documentElement.getAttribute("data-theme"))||"paper"),n="one-dark-pro-soft"===t||"noir"===t||"dark"===t;(0,l.vJ)(()=>{if("u"<typeof document)return;let e=()=>{let e=document.documentElement.dataset.theme||document.documentElement.getAttribute("data-theme")||"paper";r(e);let t=document.querySelector('meta[name="theme-color"]');t&&t.setAttribute("content","one-dark-pro-soft"===e?"#282c34":"#faf8f3")};e();let t=new MutationObserver(t=>{for(let r of t)"attributes"===r.type&&("data-theme"===r.attributeName||"class"===r.attributeName)&&e()});t.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme","class"]});let n=t=>{t.detail?r(t.detail):e()};return window.addEventListener("omp:theme-changed",n),()=>{t.disconnect(),window.removeEventListener("omp:theme-changed",n)}},[]);let i=(0,l.hb)(t=>{"u">typeof document&&(document.documentElement.dataset.theme=t,r(t),e({theme:t}),window.dispatchEvent(new CustomEvent("omp:theme-changed",{detail:t})))},[e]),o=(0,l.hb)(()=>{i(n?"paper":"one-dark-pro-soft")},[n,i]);return{theme:t,isDark:n,setTheme:i,toggleTheme:o}}(),u=(0,l.li)(null),d=(0,l.li)(null),m=(0,l.li)(null),h=(0,l.li)(""),b=(0,l.li)([]),[f,p]=(0,l.J0)(!1),x=(0,l.li)(c),{recordOutput:g,clearOutput:S}=function(e){let{sessionId:t,ready:r}=(0,o.O)(),[,n]=(0,i.bL)("terminal.output",""),c=(0,l.li)(n);c.current=n;let a=(0,l.li)(r);a.current=r;let s=(0,l.li)(0),u=(0,l.li)(null),d=(0,l.li)(null),m=(0,l.hb)(e=>{if((Y+=e).length>25e4&&(Y=Y.slice(-2e5)),!a.current)return;let t=Date.now();t-s.current<1e3||(s.current=t,c.current(Y.length<=8e3?Y:Y.slice(-8e3)))},[]),h=(0,l.hb)(()=>{Y="",a.current&&(s.current=Date.now(),c.current(""))},[]);return(0,l.vJ)(()=>{if(!r||u.current===t)return;let n=null!==d.current;u.current=t,d.current=t;let l=(0,k.WV)(t,"terminal.output");if(void 0===l&&!n)return;Y=l??"";let i=e.current;i&&(i.clear(),l?(i.write(l),i.scrollToBottom()):i.write("\x1b[33m$\x1b[0m "))},[r,t,e]),{recordOutput:m,clearOutput:h}}(d);(0,l.vJ)(()=>{d.current&&(d.current.options.theme=s?N:y,d.current.refresh(0,d.current.rows-1))},[s]),(0,l.vJ)(()=>{x.current=c},[c]);let D=(0,l.hb)(()=>{d.current&&(d.current.scrollToBottom(),p(!1))},[]),A=(0,l.hb)(()=>{d.current?.scrollToTop()},[]),F=(0,l.hb)(e=>{d.current?.scrollLines(e)},[]);return(0,l.Yn)(t,()=>({write:e=>{if(g(e),d.current){let t=d.current,r=t.buffer.active.viewportY===t.buffer.active.baseY;t.write(e,()=>{r&&t.scrollToBottom()})}else b.current.push(e)},writeln:e=>{if(g(e+"\r\n"),d.current){let t=d.current,r=t.buffer.active.viewportY===t.buffer.active.baseY;t.writeln(e,()=>{r&&t.scrollToBottom()})}else b.current.push(e+"\r\n")},clear:()=>{S(),d.current?(d.current.clear(),d.current.write("\r\x1b[33m$\x1b[0m "),g("\r\x1b[33m$\x1b[0m "),p(!1)):b.current=[]},focus:()=>{d.current?.focus()},scrollToBottom:D,scrollToTop:A,scrollLines:F})),(0,l.vJ)(()=>{let e=!0,t=null,n=null,l=null,i=null,o=null,c=null,a=null,f=null,w=()=>{if(!e||!t||!n||!u.current)return;let r=u.current;if(!(r.clientWidth<=0)&&!(r.clientHeight<=0))try{let e=t._core,r=e?._renderService;if(!r)return;let l=r.dimensions;if(!l?.css?.cell?.width||!l?.css?.cell?.height)return;n.fit()}catch{}};return async function(){if(!u.current||!e)return;let v=await r.e("f").then(r.bind(r,"JX")),k=await r.e("xn").then(r.bind(r,"r3")),D=v.Terminal||v.default?.Terminal||v.default,A=k.FitAddon||k.default?.FitAddon||k.default;if(!D||!A||!u.current||!e)return;try{let e=A?.prototype;if(e&&!e.__safePatched){e.__safePatched=!0;let t=e.proposeDimensions;e.proposeDimensions=function(){try{let e=this._terminal?._core;if(!e?._renderService)return;let r=e._renderService.dimensions;if(!r?.css?.cell?.width||!r?.css?.cell?.height)return;return t?.call(this)}catch{return}}}}catch{}let F=new D({cursorBlink:!0,cursorStyle:"block",fontSize:12,lineHeight:1.25,fontFamily:"'Fira Code', Menlo, Monaco, 'Courier New', monospace",theme:s?N:y,convertEol:!0,scrollback:1e4,scrollSensitivity:1.5,fastScrollSensitivity:5,smoothScrollDuration:0,allowProposedApi:!0});F.open(u.current);try{let e=F?._core;if(e?._renderService){let t=Object.getPrototypeOf(e._renderService),r=Object.getOwnPropertyDescriptor(t,"dimensions");if(r?.get&&!t.__safePatched){t.__safePatched=!0;let e=r.get;Object.defineProperty(t,"dimensions",{get(){try{if(!this._renderer?.value)return C;return e.call(this)}catch{return C}},configurable:!0,enumerable:!0})}}}catch{}let $=new A;F.loadAddon($),t=F,n=$,d.current=F,m.current=$,a=requestAnimationFrame(()=>{e&&w()}),F.attachCustomKeyEventHandler(e=>(function(e,t){if("keydown"!==t.type)return!0;if(t.shiftKey){if("PageUp"===t.key)return e.scrollPages(-1),!1;if("PageDown"===t.key)return e.scrollPages(1),!1;if("Home"===t.key)return e.scrollToTop(),!1;if("End"===t.key)return e.scrollToBottom(),!1;if("ArrowUp"===t.key)return e.scrollLines(-1),!1;if("ArrowDown"===t.key)return e.scrollLines(1),!1}return!0})(F,e)),o=F.onScroll(()=>{let e=F.buffer.active;p(e.viewportY<e.baseY)});let E=Y;if(E)F.write(E);else{let e="\x1b[1;33m[OMPChamber Realtime Terminal]\x1b[0m\r\n\x1b[90mStream connected. Live xterm canvas active.\x1b[0m\r\n\r\n\x1b[33m$\x1b[0m ";F.write(e),g(e)}if(b.current.length>0){for(let e of b.current)F.write(e);b.current=[],F.scrollToBottom()}i=F.onData(e=>{if("\r"===e){let e=h.current.trim();F.write("\r\n"),h.current="",e&&x.current?(g(e+"\r\n"),x.current(e,{fromXterm:!0})):(F.write("\x1b[33m$\x1b[0m "),g("\r\n\x1b[33m$\x1b[0m "))}else""===e||"\b"===e?h.current.length>0&&(h.current=h.current.slice(0,-1),F.write("\b \b")):"\x03"===e?(h.current="",F.write("^C\r\n\x1b[33m$\x1b[0m "),g("^C\r\n\x1b[33m$\x1b[0m ")):"\f"===e?(S(),F.clear(),F.write("\x1b[33m$\x1b[0m "),g("\x1b[33m$\x1b[0m ")):e>=" "&&(h.current+=e,F.write(e))});let R=0,T=u.current,L=e=>{1===e.touches.length&&(R=e.touches[0].clientY)},J=e=>{if(1===e.touches.length){let t=R-e.touches[0].clientY;Math.abs(t)>=16&&(F.scrollLines(Math.trunc(t/16)),R=e.touches[0].clientY)}};T&&(T.addEventListener("touchstart",L,{passive:!0}),T.addEventListener("touchmove",J,{passive:!0}),f=()=>{T.removeEventListener("touchstart",L),T.removeEventListener("touchmove",J)}),l=new ResizeObserver(()=>{c&&clearTimeout(c),c=setTimeout(()=>{w()},35)}),T&&l.observe(T)}(),()=>{e=!1,null!==a&&cancelAnimationFrame(a),null!==c&&clearTimeout(c),f?.(),i?.dispose(),o?.dispose(),l?.disconnect();try{n?.dispose()}catch{}try{t?.dispose()}catch{}d.current=null,m.current=null}},[]),(0,n.FD)("div",{className:"relative flex-1 w-full h-full bg-canvas overflow-hidden",children:[(0,n.Y)("div",{ref:u,className:"w-full h-full cursor-text p-1.5",style:{height:"100%",width:"100%"}}),f&&(0,n.FD)("button",{type:"button",onClick:D,className:"absolute bottom-3 right-4 z-20 flex items-center space-x-1.5 px-2.5 py-1 bg-paper hover:bg-canvas text-ink border border-ink/20 rounded-full shadow-lg text-[11px] font-mono transition-all animate-fade-in cursor-pointer active:scale-95",title:"Scroll to latest output (Shift+End)",children:[(0,n.Y)(w.A,{size:12,className:"text-warning"}),(0,n.Y)("span",{children:"Latest"})]})]})});function D(e){let{className:t="",enabled:r=!0,rootPath:a,showHeader:s=!0}=e,u=(0,l.li)(null),[m,h]=(0,i.bL)("terminal.activeRepo","."),{terminalInput:f,setTerminalInput:p,isRunning:g,cwd:w,systemInfo:v,executeCommand:k,cancelRunningCommand:y,handleKeyDown:N}=function(e){let[t,r]=(0,l.J0)([]),[n,a]=(0,i.bL)("terminal.input",""),[s,u]=(0,l.J0)(!1),[d,m]=(0,i.bL)("terminal.cwd","."),[h,b]=(0,i.bL)("terminal.commandHistory",c),[f,p]=(0,l.J0)(-1),[x,g]=(0,l.J0)({bunVersion:"",nodeVersion:"",gitBranch:"main"}),w=(0,l.li)(null),v=(0,l.li)(e?.onStreamChunk);v.current=e?.onStreamChunk;let k=(0,l.li)(e?.onCommandStart);k.current=e?.onCommandStart;let y=(0,l.li)(e?.onCommandEnd);y.current=e?.onCommandEnd;let N=(0,l.li)(e?.onClear);N.current=e?.onClear;let C=(0,l.li)(e?.root);C.current=e?.root;let Y=(0,l.li)(e?.root),S=(0,l.li)(e?.repo);S.current=e?.repo;let D=(0,l.li)(e?.repo),{sessionId:A,ready:F}=(0,o.O)(),$=(0,l.li)(A),E=(0,l.li)(!0);(0,l.vJ)(()=>{if($.current!==A&&($.current=A,E.current=!0),!F||!E.current)return;let e=setTimeout(()=>{E.current=!1},0);return()=>clearTimeout(e)},[A,F]),(0,l.vJ)(()=>{let t=e?.root,n=e?.repo;(Y.current!==t||D.current!==n)&&(Y.current=t,D.current=n,E.current||(m("."),r([]),N.current?.()));let l=t?`?root=${encodeURIComponent(t)}`:"",i=n&&"."!==n?`&repo=${encodeURIComponent(n)}`:"";fetch(`/api/terminal/run${l}${i}`).then(e=>e.json()).then(e=>{e&&e.bunVersion&&g({bunVersion:e.bunVersion??"",nodeVersion:e.nodeVersion??"",gitBranch:e.gitBranch||"main"})}).catch(()=>{})},[e?.root,e?.repo]);let R=(0,l.hb)(()=>{r([])},[]),T=(0,l.hb)(async(e,t)=>{let l=(void 0!==e?e:n).trim();if(!l||s)return;if("clear"===l||"cls"===l){r([]),a(""),p(-1),N.current?.();return}let i=`cmd-${Date.now()}-${Math.random().toString(36).substring(2,6)}`,o=new Date().toLocaleTimeString();b(e=>e[e.length-1]===l?e:[...e,l]),p(-1),a(""),u(!0),k.current?.(l,t);let c=new AbortController;w.current=c;let h="",f=0,x=d;try{let e=C.current?`&root=${encodeURIComponent(C.current)}`:"",t=S.current&&"."!==S.current?`&repo=${encodeURIComponent(S.current)}`:"",r=`/api/terminal/stream?cmd=${encodeURIComponent(l)}&cwd=${encodeURIComponent(d)}${e}${t}`,n=await fetch(r,{signal:c.signal});if(!n.body)throw Error("Streaming not supported by browser");let i=n.body.getReader(),o=new TextDecoder,a="";for(;;){let{value:e,done:t}=await i.read();if(t)break;let r=(a+=o.decode(e,{stream:!0})).split("\n");a=r.pop()||"";let n="message";for(let e of r){let t=e.trim();if(t.startsWith("event:"))n=t.slice(6).trim();else if(t.startsWith("data:")){let e=t.slice(5).trim();try{let t=JSON.parse(e);if("data"===n&&t.text){let e=t.text.replace(/\r?\n/g,"\r\n");h+=e,v.current?.(e)}else"exit"===n&&(f="number"==typeof t.exitCode?t.exitCode:0,t.cwd&&t.cwd!==d&&(x=t.cwd,m(t.cwd)))}catch{}}}}}catch(e){if("AbortError"===e.name){f=130;let e="\r\n^C (Interrupted)\r\n";h+=e,v.current?.(e)}else{f=1;let t=`\r
3
+ \x1b[31mError: ${e.message||"Execution failed"}\x1b[0m\r
4
+ `;h+=t,v.current?.(t)}}finally{u(!1),w.current=null,y.current?.(f,x),r(e=>{var t;return(t=[...e,{id:i,command:l,stdout:h,exitCode:f,timestamp:o,cwd:x}]).length>50?t.slice(-50):t})}},[n,s,d,A]),L=(0,l.hb)(()=>{w.current&&w.current.abort()},[]),J=(0,l.hb)(e=>{if("ArrowUp"===e.key)e.preventDefault(),0!==h.length&&p(e=>{let t=-1===e?h.length-1:Math.max(0,e-1);return a(h[t]||""),t});else if("ArrowDown"===e.key){if(e.preventDefault(),-1===f)return;p(e=>{let t=e+1;return t>=h.length?(a(""),-1):(a(h[t]||""),t)})}else"c"===e.key&&e.ctrlKey?s&&L():"l"===e.key&&e.ctrlKey&&(e.preventDefault(),R(),N.current?.())},[h,f,s,L,R,A]);return{terminalLogs:t,terminalInput:n,setTerminalInput:a,isRunning:s,cwd:d,systemInfo:x,executeCommand:T,clearLogs:R,cancelRunningCommand:L,handleKeyDown:J}}({onStreamChunk:(0,l.hb)(e=>{u.current?.write(e)},[]),onCommandStart:(0,l.hb)((e,t)=>{t?.fromXterm||u.current?.write(`\r\x1b[K\x1b[33m$\x1b[0m \x1b[1m${e}\x1b[0m\r
5
+ `)},[]),onCommandEnd:(0,l.hb)((e,t)=>{0!==e&&130!==e&&u.current?.write(`\x1b[31m[exit ${e}]\x1b[0m\r
6
+ `),u.current?.write("\x1b[33m$\x1b[0m ")},[]),onClear:(0,l.hb)(()=>{u.current?.clear()},[]),root:r?a:void 0,repo:m}),C=(0,l.hb)((e,t)=>{k(e,t)},[k]);return r?(0,n.FD)("div",{className:`flex flex-col h-full w-full bg-paper text-ink overflow-hidden ${t}`,children:[s&&(0,n.Y)(d,{isRunning:g,rootPath:a,activeRepo:m,onSelectRepo:h,bunVersion:v.bunVersion,nodeVersion:v.nodeVersion}),(0,n.Y)(b,{onSelectCommand:k,disabled:g}),(0,n.Y)("div",{className:"flex-1 w-full min-h-0 bg-canvas overflow-hidden",children:(0,n.Y)(S,{ref:u,cwd:w,onCommandSubmit:C})}),(0,n.Y)(x,{value:f,onChange:p,onSubmit:()=>k(),onKeyDown:N,onCancel:y,isRunning:g})]}):(0,n.Y)("div",{className:`flex flex-col h-full bg-paper items-center justify-center text-ink/40 ${t}`,children:(0,n.Y)("span",{className:"text-xs font-mono",children:"No session selected"})})}S.displayName="RealtimeXtermView"},C7q(e,t,r){var n=r("H"),l=r("So");function i(){return(0,n.hb)(e=>{(0,l.l1)(e)},[])}r.d(t,{g:()=>i})},DTR(e,t,r){let n=(0,r("y").A)({name:"corner-down-left",size:24,node:[["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}],["path",{d:"m9 10-5 5 5 5",key:"1kshq7"}]]});r.d(t,{},{A:n})},rm(e,t,r){let n=(0,r("y").A)({name:"folder-git-2",size:24,node:[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]});r.d(t,{},{A:n})}}]);
@@ -0,0 +1,2 @@
1
+ /*! LICENSE: g.7a4bbd4798.js.LICENSE.txt */
2
+ "use strict";(self.rspackChunkompchamber=self.rspackChunkompchamber||[]).push([["g"],{Wh(e,t,n){n.d(t,{MobileLayoutWrapper:()=>eR});var s=n("j"),i=n("H"),a=n("s"),l=n("NO"),r=n("y");let o=(0,r.A)({name:"menu",size:24,node:[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]});var c=n("Go"),d=n("r"),p=n("z"),h=n("se"),x=n("oj"),m=n("SS"),u=n("K"),f=n("FE"),b=n("R2"),g=n("U8");function k(e){let{activeSessionTitle:t,activeSessionId:n,onOpenSessionSidebar:a,onOpenRightSidebar:l,onNewSession:r,onSelectSession:k}=e,{folders:v}=(0,u.k)(),N=(0,f.H)(),[Y,w]=(0,i.J0)(!1),[y,F]=(0,i.J0)(!1),[D,S]=(0,i.J0)(null),C=(0,i.li)(null);(0,x.W)(C,()=>w(!1));let A=(0,i.li)(null);(0,x.W)(A,()=>F(!1)),(0,i.vJ)(()=>{if(!n)return void S(null);let e=!1;return fetch(`/api/telemetry/context?sessionId=${encodeURIComponent(String(n))}`).then(e=>e.ok?e.json():null).then(t=>{e||S(t?.telemetry??null)}).catch(()=>{e||S(null)}),()=>{e=!0}},[n]);let z=(0,i.Kr)(()=>{let e=Date.now(),t=[];for(let n of v)for(let s of n.sessions??[]){if(1===s.is_archived)continue;let i=(0,m.R7)(String(s.id)),a=s.updated_at?Date.parse(s.updated_at):0,l=void 0!==i&&e-i<=6e5?i:a;void 0!==i&&e-i>6e5||t.push({id:s.id,title:s.title,folderName:n.name,modified:l})}return t.sort((e,t)=>t.modified-e.modified).slice(0,10)},[v]),j=t?t.charAt(0).toUpperCase()+t.slice(1):"New session";return(0,s.FD)("header",{className:"flex-shrink-0 bg-canvas border-b border-ink/10 flex items-center justify-between px-3 z-20 titlebar-drag-region select-none",style:{height:"calc(3.5rem + env(safe-area-inset-top, 0px))",paddingLeft:"max(0.75rem, env(safe-area-inset-left, 0px), env(titlebar-area-x, 0px))",paddingRight:"max(0.75rem, env(safe-area-inset-right, 0px), calc(100vw - env(titlebar-area-width, 100vw)))",paddingTop:"env(safe-area-inset-top, 0px)"},children:[(0,s.FD)("div",{className:"flex items-center space-x-2 min-w-0 titlebar-no-drag",children:[(0,s.Y)("button",{type:"button",onClick:a,className:"p-1.5 rounded-lg hover:bg-ink/5 active:bg-ink/10 text-ink transition-colors flex-shrink-0",title:"Open Sessions","aria-label":"Open Sessions",children:(0,s.Y)(o,{size:20,strokeWidth:2})}),(0,s.FD)("span",{className:"relative font-bold text-sm tracking-tight flex items-center flex-shrink-0",children:[(0,s.Y)("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-orange-600 to-amber-500 font-extrabold text-[15px] tracking-tighter",children:"OMP"}),(0,s.Y)("span",{className:"ml-[1px] text-ink",children:"Chamber"}),(0,s.Y)("span",{className:"absolute -top-0.5 -right-1.5 flex",children:(0,s.Y)(b.c,{status:N})})]}),(0,s.Y)("span",{className:"text-ink/25 font-light text-xs flex-shrink-0 select-none",children:"/"}),(0,s.FD)("div",{className:"relative min-w-0",ref:C,children:[(0,s.FD)("button",{type:"button",onClick:()=>w(!Y),className:"flex items-center space-x-1 text-xs font-semibold text-ink hover:text-ink/80 transition-colors py-1 max-w-[150px] min-w-0",title:j,children:[(0,s.Y)("span",{className:"truncate",children:j}),(0,s.Y)(c.A,{size:13,className:"text-ink/50 flex-shrink-0"})]}),Y&&(0,s.FD)("div",{className:"absolute top-full left-0 mt-1.5 w-72 max-w-[calc(100vw-1.5rem)] bg-paper border border-ink/15 rounded-xl shadow-lg z-50 p-2 text-xs",children:[(0,s.FD)("button",{type:"button",onClick:()=>{r(),w(!1)},className:"w-full text-left px-3 py-2 rounded-lg bg-ink text-canvas flex items-center space-x-2 font-medium mb-1.5 active:scale-98",children:[(0,s.Y)(d.A,{size:14}),(0,s.Y)("span",{children:"Start New Session"})]}),(0,s.Y)("div",{className:"px-2 py-1 text-[10px] uppercase font-bold text-ink/40",children:"Recent Sessions"}),(0,s.Y)("div",{className:"max-h-64 scrollbar-overlay-container scrollbar-overlay-static space-y-0.5",children:0===z.length?(0,s.Y)("div",{className:"px-2.5 py-2 text-ink/40 italic",children:"No sessions yet"}):z.map(e=>(0,s.FD)("button",{type:"button",onClick:()=>{k(e.id),w(!1)},className:`w-full text-left px-2.5 py-1.5 rounded-lg flex items-center justify-between space-x-2 transition-colors ${String(n)===String(e.id)?"bg-ink/10 font-semibold text-ink":"hover:bg-ink/5 text-ink/80"}`,children:[(0,s.FD)("span",{className:"min-w-0 flex flex-col",children:[(0,s.Y)("span",{className:"truncate",children:e.title?e.title.charAt(0).toUpperCase()+e.title.slice(1):"Untitled"}),(0,s.Y)("span",{className:"truncate text-[10px] text-ink/40 font-mono",children:e.folderName})]}),String(n)===String(e.id)&&(0,s.Y)(p.A,{size:12,className:"flex-shrink-0"})]},e.id))})]})]})]}),(0,s.FD)("div",{className:"flex items-center space-x-1 text-ink",children:[(0,s.FD)("div",{className:"relative flex items-center",ref:A,children:[(0,s.Y)("button",{type:"button",onClick:()=>F(!y),className:"w-8 h-8 rounded-lg hover:bg-ink/5 active:bg-ink/10 flex items-center justify-center text-ink transition-colors cursor-pointer",title:"Context usage","aria-label":"Context usage",children:(0,s.Y)("span",{className:"w-4 h-4 rounded-full border-[1.5px] border-ink/60 hover:border-ink transition-colors"})}),y&&(0,s.FD)("div",{className:"absolute top-full right-0 mt-2 w-56 bg-paper border border-ink/20 rounded-xl shadow-xl z-50 p-3 text-xs font-mono",children:[(0,s.FD)("div",{className:"font-semibold text-ink font-sans pb-1.5 border-b border-ink/10 flex items-center justify-between",children:[(0,s.Y)("span",{children:"Context"}),D&&D.messagesCount>0&&(0,s.Y)("span",{className:"w-1.5 h-1.5 rounded-full bg-success"})]}),D&&0!==D.messagesCount?(0,s.FD)("div",{className:"pt-2 space-y-1.5 text-[11px] text-ink/80",children:[(0,s.FD)("div",{className:"flex justify-between gap-2",children:[(0,s.Y)("span",{className:"text-ink/50",children:"Model:"}),(0,s.Y)("span",{className:"truncate",children:D.modelName||"—"})]}),(0,s.FD)("div",{className:"flex justify-between",children:[(0,s.Y)("span",{className:"text-ink/50",children:"Context:"}),(0,s.FD)("span",{children:[(0,g.Rk)(D.contextUsed)??"0"," / ",(0,g.Rk)(D.contextLimit)??"0"," (",D.contextPercent,"%)"]})]}),(0,s.FD)("div",{className:"flex justify-between",children:[(0,s.Y)("span",{className:"text-ink/50",children:"Messages:"}),(0,s.Y)("span",{children:D.messagesCount})]}),(0,s.FD)("div",{className:"flex justify-between",children:[(0,s.Y)("span",{className:"text-ink/50",children:"Cost:"}),(0,s.Y)("span",{children:D.costFormatted})]}),"number"==typeof D.cacheHitAverage&&(0,s.FD)("div",{className:"flex justify-between",children:[(0,s.Y)("span",{className:"text-ink/50",children:"Cache hit:"}),(0,s.FD)("span",{children:[D.cacheHitAverage.toFixed(1),"%"]})]})]}):(0,s.Y)("div",{className:"pt-2 text-[11px] text-ink/50 italic font-sans",children:"Session not started"})]})]}),(0,s.Y)("button",{type:"button",onClick:l,className:"w-8 h-8 rounded-lg hover:bg-ink/5 active:bg-ink/10 flex items-center justify-center text-ink transition-colors cursor-pointer",title:"Right Panel","aria-label":"Open Right Panel",children:(0,s.Y)(h.A,{size:18,strokeWidth:1.8})})]})]})}var v=n("j5");function N(e){let{activeSessionId:t,onSelectSession:n,onNewSession:a,onOpenSessionSidebar:l,onOpenRightSidebar:r,appSettings:o={}}=e,{folders:c}=(0,u.k)(),[d,p]=(0,i.J0)(null),h=(0,i.Kr)(()=>{if(!t)return"New session";for(let e of c){let n=e.sessions?.find(e=>String(e.id)===String(t));if(n)return n.title}return null},[t,c]);return(0,s.FD)("div",{className:"flex flex-col h-full w-full bg-canvas text-ink relative",children:[(0,s.Y)(k,{activeSessionTitle:d||h||"New session",activeSessionId:t,onOpenSessionSidebar:l,onOpenRightSidebar:r,onNewSession:a,onSelectSession:n}),(0,s.Y)("div",{className:"flex-1 min-h-0",children:(0,s.Y)(v.E,{appSettings:o,onSessionTitle:p,variant:"mobile"})})]})}var Y=n("S");function w(e){let{onClose:t}=e;return(0,s.FD)("div",{className:"border-b border-ink/10 flex items-center justify-between px-3.5 flex-shrink-0 bg-canvas titlebar-drag-region select-none",style:{height:"calc(3.5rem + env(safe-area-inset-top, 0px))",paddingLeft:"max(0.875rem, env(safe-area-inset-left, 0px), env(titlebar-area-x, 0px))",paddingRight:"max(0.875rem, env(safe-area-inset-right, 0px))",paddingTop:"env(safe-area-inset-top, 0px)"},children:[(0,s.FD)("div",{className:"flex items-center space-x-2.5 titlebar-no-drag",children:[(0,s.FD)("span",{className:"font-bold text-sm tracking-tight flex items-center",children:[(0,s.Y)("span",{className:"text-transparent bg-clip-text bg-gradient-to-r from-orange-600 to-amber-500 font-extrabold text-[16px] tracking-tighter",children:"OMP"}),(0,s.Y)("span",{className:"ml-[1px] text-ink font-bold text-sm",children:"Chamber"})]}),(0,s.Y)("span",{className:"text-ink/25 text-xs select-none",children:"/"}),(0,s.Y)("span",{className:"text-[11px] font-semibold text-ink/60 uppercase tracking-wider font-mono",children:"Sessions"})]}),(0,s.Y)("button",{type:"button",onClick:t,className:"w-9 h-9 rounded-xl hover:bg-ink/5 active:bg-ink/10 text-ink flex items-center justify-center transition-colors cursor-pointer titlebar-no-drag",title:"Close sidebar","aria-label":"Close sidebar",children:(0,s.Y)(Y.A,{size:19,strokeWidth:2})})]})}var y=n("D"),F=n("O");let D=(0,r.A)({name:"arrow-up-down",size:24,node:[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]});var S=n("p7"),C=n("t3"),A=n("E");function z(e){let{searchQuery:t,sortOption:n,optionsOpen:i,showArchived:a,optionsRef:l,onNewSession:r,onNewWorkspace:o,onScheduler:c,onToggleOptions:h,onSortChange:x,onResetSort:m,onToggleArchived:u,onHideArchived:f,onSearchChange:b,onClearSearch:g}=e;return(0,s.FD)("div",{className:"p-3 border-b border-ink/10 flex flex-col space-y-2.5 flex-shrink-0 bg-canvas",children:[(0,s.FD)("div",{className:"flex items-center space-x-2",children:[(0,s.FD)("button",{type:"button",onClick:r,className:"flex-1 h-9.5 flex items-center justify-center space-x-2 px-3.5 rounded-xl bg-ink text-canvas hover:bg-ink/90 active:scale-[0.98] text-xs font-semibold transition-all shadow-xs",children:[(0,s.Y)(d.A,{size:15,strokeWidth:2.4}),(0,s.Y)("span",{children:"New Session"})]}),(0,s.Y)("button",{type:"button",onClick:o,className:"w-9.5 h-9.5 rounded-xl border border-ink/15 bg-paper hover:bg-ink/5 active:scale-95 text-ink/80 hover:text-ink flex items-center justify-center transition-all flex-shrink-0 cursor-pointer shadow-xs",title:"New Workspace","aria-label":"New Workspace",children:(0,s.Y)(y.A,{size:16,strokeWidth:1.8})}),(0,s.Y)("button",{type:"button",onClick:c,className:"w-9.5 h-9.5 rounded-xl border border-ink/15 bg-paper hover:bg-ink/5 active:scale-95 text-ink/80 hover:text-ink flex items-center justify-center transition-all flex-shrink-0 cursor-pointer shadow-xs",title:"Schedule Task","aria-label":"Schedule Task",children:(0,s.Y)(F.A,{size:16,strokeWidth:1.8})}),(0,s.FD)("div",{className:"relative flex-shrink-0",ref:l,children:[(0,s.Y)("button",{type:"button",onClick:h,className:`w-9.5 h-9.5 rounded-xl border active:scale-95 flex items-center justify-center transition-all cursor-pointer shadow-xs ${i||"A-Z"!==n||a?"bg-ink/10 text-ink border-ink/30":"border-ink/15 bg-paper hover:bg-ink/5 text-ink/80 hover:text-ink"}`,title:"Sort & Filter","aria-label":"Sort & Filter",children:(0,s.Y)(D,{size:15,strokeWidth:1.8})}),i&&(0,s.FD)("div",{className:"absolute right-0 top-full mt-2 w-52 bg-paper border border-ink/15 rounded-xl shadow-xl z-50 p-2 text-xs",children:[(0,s.Y)(A.i,{variant:"mobile",sortOption:n,onSortChange:x}),(0,s.Y)("div",{className:"border-t border-ink/10 my-1.5"}),(0,s.Y)("div",{className:"px-2 py-1 text-[10px] uppercase font-bold text-ink/40 font-mono",children:"Filter"}),(0,s.FD)("button",{type:"button",onClick:u,className:`w-full text-left px-2.5 py-1.5 rounded-lg flex items-center justify-between transition-colors ${a?"bg-amber-500/15 text-amber-950 font-semibold":"hover:bg-ink/5 text-ink/80"}`,children:[(0,s.FD)("span",{className:"flex items-center space-x-1.5",children:[(0,s.Y)(S.A,{size:13}),(0,s.Y)("span",{children:"Show Archived"})]}),a&&(0,s.Y)(p.A,{size:13})]})]})]})]}),(0,s.FD)("div",{className:"relative flex items-center",children:[(0,s.Y)(C.A,{size:14,className:"absolute left-3 text-ink/40"}),(0,s.Y)("input",{type:"text",value:t,onChange:e=>b(e.currentTarget.value),placeholder:"Search workspaces & sessions...",className:"w-full bg-paper border border-ink/15 rounded-xl pl-8 pr-8 py-2 text-xs text-ink placeholder-ink/40 focus:outline-none focus:border-ink/40 transition-colors font-mono"}),t&&(0,s.Y)("button",{type:"button",onClick:g,className:"absolute right-2.5 text-ink/40 hover:text-ink p-1","aria-label":"Clear search",children:(0,s.Y)(Y.A,{size:13})})]}),(a||"A-Z"!==n)&&(0,s.FD)("div",{className:"flex items-center space-x-1.5 flex-wrap gap-y-1 pt-0.5",children:["A-Z"!==n&&(0,s.FD)("span",{className:"inline-flex items-center space-x-1 bg-ink/5 border border-ink/10 text-ink/80 rounded-lg px-2 py-0.5 text-[10px] font-mono",children:[(0,s.FD)("span",{children:["Sort: ",n.replace("_"," ")]}),(0,s.Y)("button",{type:"button",onClick:m,className:"hover:text-ink ml-0.5",title:"Reset sort",children:(0,s.Y)(Y.A,{size:10})})]}),a&&(0,s.FD)("span",{className:"inline-flex items-center space-x-1 bg-amber-500/15 border border-amber-500/25 text-amber-900 rounded-lg px-2 py-0.5 text-[10px] font-mono",children:[(0,s.Y)(S.A,{size:10}),(0,s.Y)("span",{children:"Archived"}),(0,s.Y)("button",{type:"button",onClick:f,className:"hover:text-amber-950 ml-0.5",title:"Hide archived",children:(0,s.Y)(Y.A,{size:10})})]})]})]})}var j=n("qn"),T=n("vZ"),$=n("Sj"),O=n("Nf"),P=n("t"),W=n("b"),R=n("HZ"),E=n("P6");function J(e){let{session:t,isActive:n,status:i,timeAgo:a,showTreeGlyph:l=!1,onSelect:r,onArchive:o,onRename:c}=e,{isEditing:d,draft:h,setDraft:x,inputRef:m,startRename:u,handleKeyDown:f,handleBlur:b}=(0,E.B)(t.title,c);return d?(0,s.Y)("div",{className:"w-full rounded-lg flex items-center bg-ink/10",children:(0,s.Y)("input",{ref:m,autoFocus:!0,value:h,onChange:e=>x(e.currentTarget.value),onKeyDown:f,onBlur:b,className:"flex-1 min-w-0 mx-2 my-1.5 bg-paper border border-ink/25 rounded px-2 py-1 text-xs text-ink outline-none focus:border-ink/50"})}):(0,s.FD)("div",{className:`w-full rounded-lg flex items-center transition-colors ${n?"bg-ink/10 font-medium text-ink":"hover:bg-ink/5 text-ink/85"}`,children:[(0,s.FD)("button",{type:"button",onClick:r,className:"flex-1 text-left px-3 py-2 flex items-center justify-between min-w-0",children:[(0,s.FD)("div",{className:"flex items-center space-x-1.5 min-w-0 pr-2",children:[(0,s.FD)("span",{className:"w-4 flex-shrink-0 flex items-center justify-center",children:["stream"===i&&(0,s.Y)(P.A,{size:13,className:"text-ink/50 animate-spin"}),("finish"===i||"abort"===i||"error"===i)&&(0,s.Y)(p.A,{size:13,className:"text-ink/50"})]}),l&&(0,s.Y)("span",{className:"text-ink/40 text-xs flex-shrink-0 font-mono",children:">"}),(0,s.Y)("span",{className:"text-xs truncate leading-snug",children:t.title.charAt(0).toUpperCase()+t.title.slice(1)})]}),(0,s.Y)("span",{className:"text-[11px] text-ink/45 font-mono flex-shrink-0 ml-2",children:a??""})]}),c&&(0,s.Y)("button",{type:"button",onClick:u,title:"Rename session",className:"flex-shrink-0 p-2 text-ink/35 hover:text-ink rounded-lg cursor-pointer",children:(0,s.Y)(W.A,{size:14})}),(0,s.Y)("button",{type:"button",onClick:o,title:1===t.is_archived?"Unarchive session":"Archive session",className:"flex-shrink-0 p-2 mr-1 text-ink/35 hover:text-ink rounded-lg cursor-pointer",children:1===t.is_archived?(0,s.Y)(R.A,{size:14}):(0,s.Y)(S.A,{size:14})})]})}var M=n("C4"),U=n("NR"),I=n("U"),L=n("A");function K(e){let{folder:t,activeSessionId:n,onSelectSession:a,isExpanded:l,onToggleExpand:r,showArchived:o=!1,sessionStatus:d={}}=e,{visibleCount:p,showMore:h}=(0,U.y)(),{refresh:m}=(0,u.k)(),[f,b]=(0,i.J0)(!1),g=(0,i.li)(null),{confirmDelete:k,requestDelete:v,cancelDelete:N,handlePin:Y,handleDelete:w,handleArchive:y,handleRename:F}=(0,I.C)(t,m);(0,x.W)(g,()=>{b(!1),N()});let D=(t.sessions||[]).filter(e=>o?1===e.is_archived:1!==e.is_archived),S=D.slice(0,p),C=(0,L.x)(t.icon);return(0,s.FD)("div",{className:"mb-4",children:[(0,s.FD)("div",{onClick:r,className:"flex items-center justify-between px-3 py-2 cursor-pointer hover:bg-ink/5 rounded-lg select-none transition-colors",children:[(0,s.FD)("div",{className:"flex items-center space-x-2 min-w-0",children:[t.customIconUrl?(0,s.Y)("img",{src:t.customIconUrl,alt:"",className:"w-[15px] h-[15px] rounded-xs object-contain flex-shrink-0",referrerPolicy:"no-referrer"}):"chat"===t.iconType?(0,s.Y)(j.A,{size:15,className:"text-ink/80 flex-shrink-0"}):(0,s.Y)(C,{size:15,className:"text-ink/80 flex-shrink-0",style:{color:t.accentColor||void 0}}),(0,s.Y)("span",{className:"text-sm font-semibold text-ink truncate",children:t.name})]}),(0,s.FD)("div",{className:"flex items-center space-x-2 text-xs text-ink/60",children:[(0,s.Y)("span",{className:"font-mono text-[11px] text-ink/70",children:D.length}),t.project_path&&(0,s.Y)(T.A,{size:13,className:"text-ink/50 ml-1"}),(0,s.FD)("div",{className:"relative flex items-center",ref:g,onClick:e=>e.stopPropagation(),children:[(0,s.Y)("button",{type:"button",onClick:e=>{e.stopPropagation(),b(e=>!e)},className:"p-1.5 rounded-lg hover:bg-ink/10 active:bg-ink/15 text-ink/60 hover:text-ink",title:"Workspace options","aria-label":`Options for ${t.name}`,children:(0,s.Y)($.A,{size:15})}),f&&(0,s.Y)("div",{className:"absolute right-0 top-full mt-1 w-48 bg-paper border border-ink/15 rounded-lg shadow-lg z-50 py-1 text-xs",children:(0,s.Y)(M.t,{variant:"mobile",isPinned:t.isPinned,confirmDelete:k,onPin:()=>{Y(),b(!1)},onDelete:()=>{w(),b(!1)},onRequestDelete:v,onCancelDelete:N})})]}),l?(0,s.Y)(c.A,{size:14}):(0,s.Y)(O.A,{size:14})]})]}),l&&(0,s.FD)("div",{className:"mt-0.5 space-y-0.5 pl-2",children:[S.map(e=>(0,s.Y)(J,{session:e,isActive:String(n)===String(e.id),status:d[String(e.id)],timeAgo:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Date.now();if(null==e||""===e)return null;let n="number"==typeof e?e:Date.parse(e);if(Number.isNaN(n))return null;let s=Math.round((t-n)/1e3);if(s<45)return"now";let i=Math.round(s/60);if(i<60)return`${i}m`;let a=Math.round(i/60);if(a<24)return`${a}h`;let l=Math.round(a/24);if(l<7)return`${l}d`;let r=Math.round(l/7);if(r<5)return`${r}w`;let o=new Date(n),c=o.getFullYear()===new Date(t).getFullYear(),d=o.getDate(),p=o.toLocaleString("en-US",{month:"short"});return c?`${d} ${p}`:`${d} ${p} ${o.getFullYear()}`}(e.updated_at??e.created_at),onSelect:()=>a(e.id),onArchive:()=>y(e),onRename:String(e.id).startsWith("new-")?void 0:t=>void F(e,t)},e.id)),D.length>p&&(0,s.FD)("button",{type:"button",onClick:h,className:"w-full text-left px-3 py-2 text-xs text-ink/60 hover:text-ink flex items-center space-x-1.5",children:[(0,s.Y)(c.A,{size:12,className:"w-4 flex-shrink-0"}),(0,s.FD)("span",{children:["Show more sessions (",D.length-p,")"]})]})]})]})}var H=n("jo");function B(e){let{folders:t,activeSessionId:n,expandedFolders:i,showArchived:a,sessionStatus:l,isScrolling:r,onScroll:o,onSelectSession:c,onToggleFolder:d}=e;return(0,s.Y)("div",{onScroll:o,className:`flex-1 scrollbar-overlay-container p-3 ${(0,H.p)(r)}`,children:0===t.length?(0,s.Y)("div",{className:"text-center py-12 text-xs text-ink/50 italic",children:"No matching sessions found"}):t.map(e=>(0,s.Y)(K,{folder:e,activeSessionId:n,onSelectSession:c,isExpanded:i[e.id]??!0,onToggleExpand:()=>d(e.id),showArchived:a,sessionStatus:l},e.id))})}var _=n("vB"),Z=n("wU"),q=n("mX"),G=n("P");function V(e){let{onSettings:t,onAbout:n,updateAvailable:i,onUpdateClick:a,onDesktopToggle:l}=e;return(0,s.FD)("div",{className:"px-3 pt-3 border-t border-ink/10 flex items-center justify-between flex-shrink-0 bg-canvas text-xs text-ink/60",style:{paddingBottom:"max(0.75rem, env(safe-area-inset-bottom, 0px))"},children:[(0,s.FD)("div",{className:"flex items-center space-x-3",children:[(0,s.FD)("button",{type:"button",onClick:t,className:"flex items-center space-x-1 hover:text-ink transition-colors",children:[(0,s.Y)(_.A,{size:14}),(0,s.Y)("span",{children:"Settings"})]}),(0,s.FD)("button",{type:"button",onClick:n,className:"flex items-center space-x-1 hover:text-ink transition-colors",children:[(0,s.Y)(Z.A,{size:14}),(0,s.Y)("span",{children:"About"})]}),l&&(0,s.FD)("button",{type:"button",onClick:l,className:"flex items-center space-x-1 hover:text-ink transition-colors",title:"Switch to desktop view",children:[(0,s.Y)(q.A,{size:14}),(0,s.Y)("span",{children:"Desktop"})]})]}),(0,s.FD)("div",{className:"flex items-center gap-2",children:[(0,s.FD)("span",{className:"font-mono text-[10px] text-ink/40",children:["v",G.rE]}),i&&(0,s.Y)("button",{type:"button",onClick:a,className:"px-2 py-0.5 rounded-full border border-ink/20 text-[10px] font-semibold text-ink hover:border-ink/40",children:"update"})]})]})}var X=n("wu"),Q=n("g"),ee=n("oZ"),et=n("DO"),en=n("z4");let es=[3,2];function ei(){return(0,s.Y)("div",{className:"flex-1 p-3 space-y-4","aria-hidden":"true",children:es.map((e,t)=>(0,s.FD)("div",{className:"space-y-2",children:[(0,s.FD)("div",{className:"flex items-center gap-2 px-1 py-2",children:[(0,s.Y)("span",{className:"w-4 h-4 rounded-sm animate-pulse bg-ink/10"}),(0,s.Y)("span",{className:"h-3 w-24 rounded animate-pulse bg-ink/10"})]}),Array.from({length:e},(e,t)=>(0,s.FD)("div",{className:"flex items-center gap-2 rounded px-2 py-2",children:[(0,s.Y)("span",{className:"w-4 h-4 rounded-full animate-pulse bg-ink/10"}),(0,s.Y)("span",{className:"h-3 rounded animate-pulse bg-ink/10",style:{width:`${58-t%3*12}%`}})]},t))]},t))})}function ea(e){let{activeSessionId:t,onSelectSession:n,onNewSession:a,onCreateFolder:l,onClose:r,onDesktopToggle:o,appSettings:c={}}=e,{folders:d,initializing:p,searchQuery:h,setSearchQuery:m,showArchived:u,setShowArchived:f,optionsOpen:b,setOptionsOpen:g,sortOption:k,handleSortChange:v,processedFolders:N,sessionStatus:Y,handleSelectSession:y}=(0,en.K)(c,{onSelectSession:n,onAfterSelect:r}),[F,D]=(0,i.J0)({1:!0,2:!0,3:!0}),[S,C]=(0,i.J0)(!1),[A,j]=(0,i.J0)(!1),[T,$]=(0,i.J0)(!1),O=(0,et.M)(),{toasts:P,pushToast:W,dismissToast:R}=(0,ee.Y)(),E=(0,i.li)(null);(0,x.W)(E,()=>g(!1));let{isScrolling:J,handleScroll:M}=(0,H.K)();return(0,i.vJ)(()=>{D(Object.fromEntries(d.map(e=>[e.id,e.isExpanded])))},[d]),(0,s.FD)("div",{className:"flex flex-col h-full w-full bg-canvas text-ink relative select-none",children:[(0,s.Y)(w,{onClose:r}),(0,s.Y)(z,{searchQuery:h,sortOption:k,optionsOpen:b,showArchived:u,optionsRef:E,onNewSession:()=>{a(),r()},onNewWorkspace:()=>C(!0),onScheduler:()=>j(!0),onToggleOptions:()=>g(!b),onSortChange:v,onResetSort:()=>v("A-Z"),onToggleArchived:()=>{f(!u),g(!1)},onHideArchived:()=>f(!1),onSearchChange:m,onClearSearch:()=>m("")}),p?(0,s.Y)(ei,{}):(0,s.Y)(B,{folders:N,activeSessionId:t,expandedFolders:F,showArchived:u,sessionStatus:Y,isScrolling:J,onScroll:M,onSelectSession:y,onToggleFolder:e=>{D(t=>({...t,[e]:!t[e]}));let t=d.find(t=>t.id===e),n=!(F[e]??t?.isExpanded??!0);fetch(`/api/folders/${e}/toggle`,{method:"POST",body:new URLSearchParams({isExpanded:String(n)})}).then(t=>{if(!t.ok)throw Error(`HTTP ${t.status}`);window.dispatchEvent(new CustomEvent("omp:workspace-updated",{detail:{folderId:e}}))}).catch(e=>{console.error("Failed to save mobile workspace state:",e)})}}),(0,s.Y)(V,{onSettings:()=>window.dispatchEvent(new CustomEvent("omp:open-settings",{detail:{}})),onAbout:()=>$(!0),onDesktopToggle:o,updateAvailable:O.hasUpdate,onUpdateClick:()=>{$(!0),O.check()}}),(0,s.Y)(Q.xV,{isOpen:S,onClose:()=>C(!1),onCreate:l}),(0,s.Y)(Q.Lo,{isOpen:A,onClose:()=>j(!1)}),(0,s.Y)(Q.VT,{isOpen:T,onClose:()=>$(!1),updates:O,onToast:W}),(0,s.Y)(X.y,{toasts:P,onDismiss:R})]})}var el=n("G"),er=n("Asb"),eo=n("oE"),ec=n("N"),ed=n("Oj"),ep=n("lW"),eh=n("SJ"),ex=n("nG"),em=n("so");function eu(e){let{enabled:t=!0,rootPath:n,refreshKey:a=0,onRefresh:l,onOpenFile:r,onClose:o}=e,[c,d]=(0,i.J0)("files"),{changes:p}=(0,em.e)(n,".",a,t,15e3),h=p.length>0;return(0,s.FD)("div",{className:"flex flex-col h-full w-full bg-paper text-ink relative select-none",children:[(0,s.FD)("div",{className:"border-b border-ink/10 flex items-center justify-between px-3 flex-shrink-0 bg-canvas",style:{height:"calc(3.5rem + env(safe-area-inset-top, 0px))",paddingTop:"env(safe-area-inset-top, 0px)",paddingLeft:"max(0.75rem, env(safe-area-inset-left, 0px))",paddingRight:"max(0.75rem, env(safe-area-inset-right, 0px))"},children:[(0,s.FD)("div",{className:"flex items-center space-x-1.5 overflow-x-auto no-scrollbar py-1",children:[(0,s.FD)("button",{type:"button",onClick:()=>d("files"),className:`flex items-center transition-all cursor-pointer ${"files"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"Files Explorer",children:[(0,s.Y)(er.A,{size:14,className:"flex-shrink-0"}),"files"===c&&(0,s.Y)("span",{children:"Files"})]}),(0,s.FD)("button",{type:"button",onClick:()=>d("search"),className:`flex items-center transition-all cursor-pointer ${"search"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"Search Workspace",children:[(0,s.Y)(C.A,{size:14,className:"flex-shrink-0"}),"search"===c&&(0,s.Y)("span",{children:"Search"})]}),(0,s.FD)("button",{type:"button",onClick:()=>d("git"),className:`relative flex items-center transition-all cursor-pointer ${"git"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"GIT",children:[(0,s.Y)(T.A,{size:14,className:"flex-shrink-0"}),"git"===c&&(0,s.Y)("span",{className:"tracking-wide",children:"GIT"}),h&&(0,s.Y)("span",{className:"absolute top-1 right-1 w-1.5 h-1.5 rounded-full bg-info",title:"Uncommitted changes"})]}),(0,s.FD)("button",{type:"button",onClick:()=>d("context"),className:`flex items-center transition-all cursor-pointer ${"context"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"Context & Telemetry",children:[(0,s.Y)(eo.A,{size:14,className:"flex-shrink-0"}),"context"===c&&(0,s.Y)("span",{children:"Context"})]}),(0,s.FD)("button",{type:"button",onClick:()=>d("terminal"),className:`flex items-center transition-all cursor-pointer ${"terminal"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"Bun Terminal",children:[(0,s.Y)(ec.A,{size:14,className:"flex-shrink-0"}),"terminal"===c&&(0,s.Y)("span",{children:"Terminal"})]}),(0,s.FD)("button",{type:"button",onClick:()=>d("user-browser"),className:`flex items-center transition-all cursor-pointer ${"user-browser"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"Browser (Anda)",children:[(0,s.Y)(ed.A,{size:14,className:"flex-shrink-0"}),"user-browser"===c&&(0,s.Y)("span",{children:"Browser"})]}),(0,s.FD)("button",{type:"button",onClick:()=>d("browser"),className:`flex items-center transition-all cursor-pointer ${"browser"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"Browser Agent",children:[(0,s.Y)(ep.A,{size:14,className:"flex-shrink-0"}),"browser"===c&&(0,s.Y)("span",{children:"Agent"})]}),(0,s.FD)("button",{type:"button",onClick:()=>d("usage"),className:`flex items-center transition-all cursor-pointer ${"usage"===c?"space-x-1.5 px-3 py-1.5 rounded-lg text-xs font-semibold bg-ink text-canvas shadow-sm":"p-2 rounded-lg text-ink/70 hover:bg-ink/5"}`,title:"Usage",children:[(0,s.Y)(eh.A,{size:14,className:"flex-shrink-0"}),"usage"===c&&(0,s.Y)("span",{children:"Usage"})]})]}),(0,s.Y)("button",{type:"button",onClick:o,className:"p-1.5 rounded-lg hover:bg-ink/5 active:bg-ink/10 text-ink transition-colors flex-shrink-0 ml-2",title:"Close right sidebar","aria-label":"Close right sidebar",children:(0,s.Y)(Y.A,{size:20,strokeWidth:1.8})})]}),(0,s.Y)("div",{className:"flex-1 min-h-0 overflow-hidden relative",style:{paddingBottom:"env(safe-area-inset-bottom, 0px)"},children:t?(0,s.Y)(s.FK,{children:(0,s.FD)(el.tY,{fallback:(0,s.Y)("div",{className:"h-full flex items-center justify-center text-ink/40",children:(0,s.Y)("span",{className:"text-xs font-mono",children:"Loading…"})}),children:["files"===c&&(0,s.Y)(ex.gI,{className:"h-full w-full",enabled:t,rootPath:n,refreshKey:a,onRefresh:l,onOpenFile:r}),"search"===c&&(0,s.Y)(ex.N1,{className:"h-full w-full",enabled:t,rootPath:n}),"git"===c&&(0,s.Y)(ex.nR,{className:"h-full w-full",enabled:t,rootPath:n,refreshKey:a}),"context"===c&&(0,s.Y)(ex.ov,{className:"h-full w-full",enabled:t,refreshKey:a,onClose:o}),"terminal"===c&&(0,s.Y)(ex.Bz,{className:"h-full w-full",enabled:t,rootPath:n,showHeader:!1}),"user-browser"===c&&(0,s.Y)(ex.M,{className:"h-full w-full"}),"browser"===c&&(0,s.Y)(ex.XL,{className:"h-full w-full",active:!0}),"usage"===c&&(0,s.Y)(ex.WE,{className:"h-full w-full"})]})}):(0,s.Y)("div",{className:"h-full flex items-center justify-center text-ink/40",children:(0,s.Y)("span",{className:"text-xs font-mono",children:"No session selected"})})})]})}var ef=n("E6"),eb=n("rK"),eg=n("HO"),ek=n("Kv"),ev=n("Soe"),eN=n("bH"),eY=n("yh"),ew=n("hj"),ey=n("na"),eF=n("b0"),eD=n("tC"),eS=n("ob");function eC(e){let{fileName:t,isMarkdown:n,isPreview:i,wordWrap:a,copied:l,onClose:r,onTogglePreview:o,onToggleWrap:c,onZoomOut:d,onZoomIn:h,onCopy:x,onDownload:m}=e;return(0,s.FD)("header",{className:"bg-canvas border-b border-ink/10 flex items-center justify-between px-3 flex-shrink-0",style:{height:"calc(3rem + env(safe-area-inset-top, 0px))",paddingTop:"env(safe-area-inset-top, 0px)",paddingLeft:"max(0.75rem, env(safe-area-inset-left, 0px))",paddingRight:"max(0.75rem, env(safe-area-inset-right, 0px))"},children:[(0,s.FD)("div",{className:"flex items-center space-x-2 min-w-0 pr-2",children:[(0,s.Y)("button",{type:"button",onClick:r,className:"p-1.5 rounded-lg hover:bg-ink/10 text-ink transition-colors active:scale-90 flex-shrink-0 cursor-pointer",title:"Close editor","aria-label":"Close editor",children:(0,s.Y)(ek.A,{size:18,strokeWidth:2})}),(0,s.FD)("div",{className:"flex items-center space-x-1.5 truncate",children:[(0,s.Y)(eS.o,{name:t,size:15,className:"flex-shrink-0"}),(0,s.Y)("span",{className:"font-semibold text-xs text-ink truncate",children:t})]})]}),(0,s.FD)("div",{className:"flex items-center space-x-1 text-ink/70 flex-shrink-0",children:[n&&(0,s.Y)("button",{type:"button",onClick:o,className:`p-1.5 rounded hover:bg-ink/10 transition-colors cursor-pointer ${i?"bg-ink text-canvas":""}`,title:i?"View code":"Preview markdown",children:i?(0,s.Y)(ev.A,{size:15}):(0,s.Y)(eN.A,{size:15})}),(0,s.Y)("button",{type:"button",onClick:c,className:`p-1.5 rounded hover:bg-ink/10 transition-colors cursor-pointer ${a?"text-ink":""}`,title:"Toggle word wrap",children:(0,s.Y)(eY.A,{size:15})}),(0,s.Y)("button",{type:"button",onClick:d,className:"p-1.5 rounded hover:bg-ink/10 transition-colors cursor-pointer",title:"Decrease font size",children:(0,s.Y)(ew.A,{size:15})}),(0,s.Y)("button",{type:"button",onClick:h,className:"p-1.5 rounded hover:bg-ink/10 transition-colors cursor-pointer",title:"Increase font size",children:(0,s.Y)(ey.A,{size:15})}),(0,s.Y)("button",{type:"button",onClick:x,className:"p-1.5 rounded hover:bg-ink/10 transition-colors cursor-pointer",title:"Copy content",children:l?(0,s.Y)(p.A,{size:15,className:"text-success"}):(0,s.Y)(eF.A,{size:15})}),(0,s.Y)("button",{type:"button",onClick:m,className:"p-1.5 rounded hover:bg-ink/10 transition-colors cursor-pointer",title:"Download file",children:(0,s.Y)(eD.A,{size:15})})]})]})}var eA=n("XY");function ez(e){let{file:t,onClose:n,onFileSaved:a}=e,[l,r]=(0,i.J0)(t.name.endsWith(".md")),[o,c]=(0,i.J0)(12),[d,p]=(0,i.J0)(!0),{isScrolling:h,handleScroll:x}=(0,H.K)(),m=t.name.endsWith(".md"),u=(0,eA.n)(t,{reportLoadError:!0,flushOnUnmount:!0,reportSaveError:!0,downloadMimeType:"text/plain;charset=utf-8",onFileSaved:a}),f=u.content,b=u.language,g=f.split("\n").length;return(0,s.FD)("div",{className:"fixed inset-x-0 top-0 h-dvh z-[60] bg-paper flex flex-col font-mono text-xs select-none",children:[(0,s.Y)(eC,{fileName:t.name,isMarkdown:m,isPreview:l,wordWrap:d,copied:u.copied,onClose:n,onTogglePreview:()=>r(!l),onToggleWrap:()=>p(!d),onZoomOut:()=>c(e=>Math.max(10,e-1)),onZoomIn:()=>c(e=>Math.min(18,e+1)),onCopy:u.copy,onDownload:u.download}),(0,s.Y)("div",{onScroll:x,className:`flex-1 min-h-0 overflow-auto relative bg-paper text-ink select-text ${(0,H.p)(h)}`,children:u.isLoading?(0,s.FD)("div",{className:"flex items-center justify-center h-full text-ink/40 text-xs gap-2",children:[(0,s.Y)(P.A,{size:14,className:"animate-spin"}),(0,s.Y)("span",{children:"Loading file content..."})]}):u.loadError?(0,s.FD)("div",{className:"flex flex-col items-center justify-center h-full gap-2 px-6 text-center",children:[(0,s.Y)(ef.A,{size:20,className:"text-error"}),(0,s.FD)("span",{className:"text-xs text-error font-sans",children:["Could not read ",t.name]}),(0,s.Y)("span",{className:"text-[11px] text-ink/50 font-mono break-all",children:u.loadError})]}):m&&l?(0,s.Y)("div",{className:"p-4 bg-paper text-ink min-h-full font-sans prose prose-sm max-w-none",children:(0,s.Y)(eb.T,{content:f})}):(0,s.Y)(eg.P,{value:f,onValueChange:u.onChange,language:b,wordWrap:d,rootClassName:"flex min-h-full bg-paper",gutterClassName:"w-10 py-3 pr-2 select-none text-right text-[10px] text-ink/30 bg-canvas border-r border-ink/10 font-mono leading-[20px] flex-shrink-0",editorWrapperClassName:"flex-1 p-3 overflow-x-auto min-w-0 bg-paper text-ink code-surface",editorClassName:"focus:outline-none",editorStyle:{fontFamily:"monospace",fontSize:`${o}px`,lineHeight:"20px",backgroundColor:"transparent",minHeight:"100%",color:"var(--theme-ink)"}})}),(0,s.FD)("footer",{className:"bg-canvas border-t border-ink/10 px-3 flex items-center justify-between text-[10px] text-ink/60 flex-shrink-0 font-mono",style:{height:"calc(1.75rem + env(safe-area-inset-bottom, 0px))",paddingBottom:"env(safe-area-inset-bottom, 0px)",paddingLeft:"max(0.75rem, env(safe-area-inset-left, 0px))",paddingRight:"max(0.75rem, env(safe-area-inset-right, 0px))"},children:[(0,s.FD)("div",{className:"flex items-center space-x-3",children:[(0,s.FD)("span",{children:[g," lines"]}),(0,s.FD)("span",{children:[f.length," chars"]}),(0,s.Y)("span",{className:"uppercase",children:b})]}),(0,s.FD)("div",{className:"flex items-center space-x-2",children:["saving"===u.saveStatus&&(0,s.FD)(s.FK,{children:[(0,s.Y)(P.A,{size:10,className:"animate-spin"}),(0,s.Y)("span",{children:"Saving…"})]}),"saved"===u.saveStatus&&(0,s.FD)(s.FK,{children:[(0,s.Y)("span",{className:"w-1.5 h-1.5 rounded-full bg-success"}),(0,s.Y)("span",{children:"Saved"})]}),"error"===u.saveStatus&&(0,s.FD)(s.FK,{children:[(0,s.Y)("span",{className:"w-1.5 h-1.5 rounded-full bg-error"}),(0,s.Y)("span",{className:"text-error",children:"Save failed"})]}),"idle"===u.saveStatus&&t.path&&(0,s.Y)("span",{className:"truncate max-w-[140px]",children:t.path})]})]})]})}var ej=n("Xg"),eT=n("LQ");function e$(e){let{diff:t,onClose:n,onFileSaved:i}=e,a=t.path.split("/").pop()||t.path,l=!!t.staged,r=t.status||"M",o=(0,eT.R)(r,l);return(0,s.FD)("div",{className:"fixed inset-x-0 top-0 h-dvh z-[60] bg-paper flex flex-col",children:[(0,s.FD)("header",{className:"bg-canvas border-b border-ink/10 flex items-center justify-between px-3 flex-shrink-0",style:{height:"calc(3rem + env(safe-area-inset-top, 0px))",paddingTop:"env(safe-area-inset-top, 0px)",paddingLeft:"max(0.75rem, env(safe-area-inset-left, 0px))",paddingRight:"max(0.75rem, env(safe-area-inset-right, 0px))"},children:[(0,s.FD)("div",{className:"flex items-center space-x-2 min-w-0 pr-2",children:[(0,s.Y)("button",{type:"button",onClick:n,className:"p-1.5 -ml-1 rounded-lg hover:bg-ink/5 active:bg-ink/10 text-ink transition-colors flex-shrink-0",title:"Back","aria-label":"Close diff",children:(0,s.Y)(ek.A,{size:18,strokeWidth:1.9})}),(0,s.Y)(eS.o,{name:a,size:14,className:"flex-shrink-0"}),(0,s.Y)("span",{className:"font-mono text-xs text-ink font-medium truncate",title:t.path,children:a})]}),(0,s.FD)("span",{className:`px-1.5 py-0.5 text-[10px] font-mono font-semibold rounded border flex-shrink-0 ${o.badgeBgClass}`,children:[o.charStatus," ",o.label]})]}),(0,s.Y)("div",{className:"flex-1 min-h-0",children:(0,s.Y)(ej.M,{className:"h-full",filePath:t.path,status:r,isStaged:l,root:t.root,repo:t.repo||".",onFileSaved:i})})]})}var eO=n("u"),eP=n("Gb"),eW=n("wm");function eR(e){let{onDesktopToggle:t,appSettings:n={}}=e,{folders:r}=(0,u.k)(),[o,c]=(0,a.o)(),d=o.get("sessionId"),p=d?Number.isNaN(Number(d))?d:Number(d):null,h=o.get("folderId"),x=h?Number.isNaN(Number(h))?h:Number(h):null,[m,f]=(0,i.J0)("main"),[b,g]=(0,i.J0)(null),[k,v]=(0,i.J0)(null),[Y,w]=(0,i.J0)(0),[y,F]=(0,i.J0)(!1),[D,S]=(0,i.J0)("appearance"),[C,A]=(0,i.J0)(!1),z=(0,i.hb)(()=>w(e=>e+1),[]),{folder:j}=(0,eP.t)(r,p),T=j??(x?r.find(e=>String(e.id)===String(x))??null:null),$=T?.project_path??null,O=!!T;(0,l.sY)("omp:open-file",e=>{if(!e.detail||!e.detail.path)return;let t=e.detail.path.replace(/^\/+/,"");g({name:e.detail.name||t.split("/").pop()||"file",path:t,content:e.detail.content,root:e.detail.root})}),(0,l.sY)("omp:open-diff",e=>{let t=e.detail;t?.file&&v({path:t.file.replace(/^\/+/,""),status:t.status,staged:t.staged,repo:t.repo,root:t.root??$??void 0})}),(0,l.sY)("omp:open-settings",e=>{let t=e.detail;S(t?.category??"appearance"),A(!!t?.autoOpenAdd),F(!0)});let P=e=>{c(t=>(t.set("sessionId",e.toString()),t.has("subagent")&&t.delete("subagent"),t),{replace:!0}),f("main")},W=()=>{let e=(0,eW.l)(r,d,x??void 0);e&&(0,eW.r)(e),c(e=>{let t=e.get("sessionId"),n=new URLSearchParams(e);if(n.set("sessionId",`new-${Date.now()}`),t){let e=r.find(e=>e.sessions?.some(e=>String(e.id)===String(t)));e&&n.set("folderId",e.id.toString())}return n},{replace:!0}),f("main")},R=async e=>{let t=await fetch("/api/folders",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),n=await t.json().catch(()=>({}));if(!t.ok||!n.success)throw Error(n.error||`HTTP ${t.status}`);window.location.reload()},E=(0,i.hb)(e=>{let t=(e?.path||"").replace(/^\/+/,"");g({name:e?.name||t.split("/").pop()||"file",path:t,content:e?.content,root:e?.root??$??void 0})},[$]);return(0,s.FD)("div",{className:"flex flex-col h-dvh w-screen overflow-hidden bg-canvas text-ink font-sans selection:bg-ink selection:text-canvas relative",children:[(0,s.Y)("div",{className:`flex-1 min-h-0 w-full ${"main"===m?"block":"hidden"}`,children:(0,s.Y)(N,{activeSessionId:p,onSelectSession:P,onNewSession:W,onOpenSessionSidebar:()=>f("session"),onOpenRightSidebar:()=>f("right"),appSettings:n})}),(0,s.Y)("div",{className:`flex-1 min-h-0 w-full ${"session"===m?"block":"hidden"}`,children:(0,s.Y)(ea,{activeSessionId:p,onSelectSession:P,onNewSession:W,onCreateFolder:R,onClose:()=>f("main"),onDesktopToggle:t,appSettings:n})}),"right"===m&&(0,s.Y)("div",{className:"flex-1 min-h-0 w-full",children:(0,s.Y)(eu,{enabled:O,rootPath:$??void 0,refreshKey:Y,onRefresh:z,onOpenFile:E,onClose:()=>f("main")})}),b&&(0,s.Y)(ez,{file:b,onClose:()=>g(null),onFileSaved:z}),k&&(0,s.Y)(e$,{diff:k,onClose:()=>v(null),onFileSaved:z}),(0,s.Y)(eO.b,{isOpen:y,onClose:()=>{F(!1),A(!1)},initialCategory:D,autoOpenAddProvider:C,appSettings:n})]})}},qn(e,t,n){let s=(0,n("y").A)({name:"message-square",size:24,node:[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]});n.d(t,{},{A:s})},mX(e,t,n){let s=(0,n("y").A)({name:"monitor",size:24,node:[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]});n.d(t,{},{A:s})}}]);
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+
6
+ /**
7
+ * @license lucide-preact v1.47.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */