@shinsa/darwin-arm64 0.0.0 → 1.0.0-canary.53

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 (781) hide show
  1. package/bin/shinsa +4 -0
  2. package/package.json +22 -1
  3. package/plugin/.claude-plugin/plugin.json +5 -0
  4. package/plugin/skills/evidence/SKILL.md +175 -0
  5. package/plugin/skills/handover/SKILL.md +143 -0
  6. package/plugin/skills/review/SKILL.md +125 -0
  7. package/web/android-chrome-192x192.png +0 -0
  8. package/web/android-chrome-512x512.png +0 -0
  9. package/web/apple-touch-icon.png +0 -0
  10. package/web/assets/ABCArealMonoVariable-DpNhOIcz.woff2 +0 -0
  11. package/web/assets/ABCArealVariable-B-OUA419.woff2 +0 -0
  12. package/web/assets/abap-BdImnpbu.js +1 -0
  13. package/web/assets/abap-Dg923wIy.js +1 -0
  14. package/web/assets/actionscript-3-8WTK4YD2.js +1 -0
  15. package/web/assets/actionscript-3-CoDkCxhg.js +1 -0
  16. package/web/assets/ada-CTi7YQtL.js +1 -0
  17. package/web/assets/ada-bCR0ucgS.js +1 -0
  18. package/web/assets/andromeeda-C-bfsIs1.js +1 -0
  19. package/web/assets/andromeeda-C4gqWexZ.js +1 -0
  20. package/web/assets/angular-html-CU67Zn6k.js +1 -0
  21. package/web/assets/angular-html-D2R1pe45.js +1 -0
  22. package/web/assets/angular-ts-BDmYQnhm.js +1 -0
  23. package/web/assets/angular-ts-BwZT4LLn.js +1 -0
  24. package/web/assets/apache-PcO-DBxQ.js +1 -0
  25. package/web/assets/apache-Pmp26Uib.js +1 -0
  26. package/web/assets/apex-CnCu5_gb.js +1 -0
  27. package/web/assets/apex-D8_7TLub.js +1 -0
  28. package/web/assets/apl-B4CMkyY2.js +1 -0
  29. package/web/assets/apl-DkfyvC6M.js +1 -0
  30. package/web/assets/apl-dKokRX4l.js +1 -0
  31. package/web/assets/applescript-Co6uUVPk.js +1 -0
  32. package/web/assets/applescript-Ds_W2jPS.js +1 -0
  33. package/web/assets/ara-BRHolxvo.js +1 -0
  34. package/web/assets/ara-C1--7J61.js +1 -0
  35. package/web/assets/asciiarmor-Df11BRmG.js +1 -0
  36. package/web/assets/asciidoc-Ve4PFQV2.js +1 -0
  37. package/web/assets/asciidoc-nTfEFGxb.js +1 -0
  38. package/web/assets/asm-CTFRnVOM.js +1 -0
  39. package/web/assets/asm-D_Q5rh1f.js +1 -0
  40. package/web/assets/asn1-EdZsLKOL.js +1 -0
  41. package/web/assets/asterisk-B-8jnY81.js +1 -0
  42. package/web/assets/astro-CbQHKStN.js +1 -0
  43. package/web/assets/astro-DtPAdMss.js +1 -0
  44. package/web/assets/aurora-x-Bp-Yupxr.js +1 -0
  45. package/web/assets/aurora-x-D-2ljcwZ.js +1 -0
  46. package/web/assets/awk-CrWgQKhV.js +1 -0
  47. package/web/assets/awk-DMzUqQB5.js +1 -0
  48. package/web/assets/ayu-dark-BZqFIPPA.js +1 -0
  49. package/web/assets/ayu-dark-DYE7WIF3.js +1 -0
  50. package/web/assets/ayu-light-BA47KaF1.js +1 -0
  51. package/web/assets/ayu-light-uCS3aZnO.js +1 -0
  52. package/web/assets/ayu-mirage-32ctXXKs.js +1 -0
  53. package/web/assets/ayu-mirage-C61zB6r0.js +1 -0
  54. package/web/assets/ballerina-BFfxhgS-.js +1 -0
  55. package/web/assets/ballerina-a0yOSyc5.js +1 -0
  56. package/web/assets/bat-B0cHNp6s.js +1 -0
  57. package/web/assets/bat-BkioyH1T.js +1 -0
  58. package/web/assets/beancount-dPJi_gci.js +1 -0
  59. package/web/assets/beancount-k_qm7-4y.js +1 -0
  60. package/web/assets/berry-CVKoklHx.js +1 -0
  61. package/web/assets/berry-uYugtg8r.js +1 -0
  62. package/web/assets/bibtex-CHM0blh-.js +1 -0
  63. package/web/assets/bibtex-DRcCXNgM.js +1 -0
  64. package/web/assets/bicep-Bmn6On1c.js +1 -0
  65. package/web/assets/bicep-jWz-hQ8I.js +1 -0
  66. package/web/assets/bird2-DPOp833l.js +1 -0
  67. package/web/assets/bird2-DaGXIRGu.js +1 -0
  68. package/web/assets/blade-D4QpJJKB.js +1 -0
  69. package/web/assets/blade-QlWdzBxO.js +1 -0
  70. package/web/assets/brainfuck-C4LP7Hcl.js +1 -0
  71. package/web/assets/bsl-BO_Y6i37.js +1 -0
  72. package/web/assets/bsl-jNujDQK2.js +1 -0
  73. package/web/assets/c-BG-tZi7o.js +1 -0
  74. package/web/assets/c-BIGW1oBm.js +1 -0
  75. package/web/assets/c3-Fcb8_HKm.js +1 -0
  76. package/web/assets/c3-eo99z4R2.js +1 -0
  77. package/web/assets/cadence-BuaeHeSu.js +1 -0
  78. package/web/assets/cadence-Bv_4Rxtq.js +1 -0
  79. package/web/assets/cairo-BYiDgOF2.js +1 -0
  80. package/web/assets/cairo-KRGpt6FW.js +1 -0
  81. package/web/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  82. package/web/assets/catppuccin-frappe-DuvesqGE.js +1 -0
  83. package/web/assets/catppuccin-latte-BwRyHOL6.js +1 -0
  84. package/web/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  85. package/web/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  86. package/web/assets/catppuccin-macchiato-Shdv-gD7.js +1 -0
  87. package/web/assets/catppuccin-mocha-B4av5j2V.js +1 -0
  88. package/web/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  89. package/web/assets/clarity-CC_0IFDj.js +1 -0
  90. package/web/assets/clarity-D53aC0YG.js +1 -0
  91. package/web/assets/clike-B9uivgTg.js +1 -0
  92. package/web/assets/clojure-BMjYHr_A.js +1 -0
  93. package/web/assets/clojure-KnfDkB_V.js +1 -0
  94. package/web/assets/clojure-P80f7IUj.js +1 -0
  95. package/web/assets/cmake-BQqOBYOt.js +1 -0
  96. package/web/assets/cmake-D1j8_8rp.js +1 -0
  97. package/web/assets/cmake-bh2MLnkv.js +1 -0
  98. package/web/assets/cobol-CWcv1MsR.js +1 -0
  99. package/web/assets/cobol-dIXRVV9Y.js +1 -0
  100. package/web/assets/cobol-nwyudZeR.js +1 -0
  101. package/web/assets/code-CGlJliRV.js +8 -0
  102. package/web/assets/code-diff-view-emXWhxt3.js +186 -0
  103. package/web/assets/code-editor-BLlD9Sek.js +5 -0
  104. package/web/assets/codeowners-Bp6g37R7.js +1 -0
  105. package/web/assets/codeowners-CtwIM3TN.js +1 -0
  106. package/web/assets/codeql-D164juXQ.js +1 -0
  107. package/web/assets/codeql-DsOJ9woJ.js +1 -0
  108. package/web/assets/coffee-Bk-z6oI_.js +1 -0
  109. package/web/assets/coffee-Ch7k5sss.js +1 -0
  110. package/web/assets/coffeescript-S37ZYGWr.js +1 -0
  111. package/web/assets/commands-C30s37KG.js +14 -0
  112. package/web/assets/common-lisp-Cg-RD9OK.js +1 -0
  113. package/web/assets/common-lisp-DXc9XcIM.js +1 -0
  114. package/web/assets/commonlisp-DBKNyK5s.js +1 -0
  115. package/web/assets/coq-BBL5-mG4.js +1 -0
  116. package/web/assets/coq-DkFqJrB1.js +1 -0
  117. package/web/assets/core-CDk6ockR.js +4 -0
  118. package/web/assets/cpp-C0lzDePx.js +1 -0
  119. package/web/assets/cpp-CofmeUqb.js +1 -0
  120. package/web/assets/crystal-Bhade0k2.js +1 -0
  121. package/web/assets/crystal-SjHAIU92.js +1 -0
  122. package/web/assets/crystal-tKQVLTB8.js +1 -0
  123. package/web/assets/csharp-B7nLXyi8.js +1 -0
  124. package/web/assets/csharp-COcwbKMJ.js +1 -0
  125. package/web/assets/css-BnMrqG3P.js +1 -0
  126. package/web/assets/css-DPfMkruS.js +1 -0
  127. package/web/assets/css-PZBBrkI0.js +1 -0
  128. package/web/assets/csv-D5aBhKLr.js +1 -0
  129. package/web/assets/csv-fuZLfV_i.js +1 -0
  130. package/web/assets/cue-D82EKSYY.js +1 -0
  131. package/web/assets/cue-WCin6O4e.js +1 -0
  132. package/web/assets/cypher-COkxafJQ.js +1 -0
  133. package/web/assets/cypher-C_CwsFkJ.js +1 -0
  134. package/web/assets/cypher-DYQk2G82.js +1 -0
  135. package/web/assets/d-85-TOEBH.js +1 -0
  136. package/web/assets/d-DVc-yF-l.js +1 -0
  137. package/web/assets/d-pRatUO7H.js +1 -0
  138. package/web/assets/dark-plus-C3mMm8J8.js +1 -0
  139. package/web/assets/dark-plus-D0x4Yx-C.js +1 -0
  140. package/web/assets/dart-CF10PKvl.js +1 -0
  141. package/web/assets/dart-YLd5yyRs.js +1 -0
  142. package/web/assets/dax-CEL-wOlO.js +1 -0
  143. package/web/assets/dax-oldcCaJg.js +1 -0
  144. package/web/assets/desktop-BmXAJ9_W.js +1 -0
  145. package/web/assets/desktop-DZfyBMgF.js +1 -0
  146. package/web/assets/diff-D97Zzqfu.js +1 -0
  147. package/web/assets/diff-DbItnlRl.js +1 -0
  148. package/web/assets/diff-jW5kmiru.js +1 -0
  149. package/web/assets/docker-BcOcwvcX.js +1 -0
  150. package/web/assets/docker-DG9neUKd.js +1 -0
  151. package/web/assets/dockerfile-BKs6k2Af.js +1 -0
  152. package/web/assets/dotenv-Bea-FkXq.js +1 -0
  153. package/web/assets/dotenv-Da5cRb03.js +1 -0
  154. package/web/assets/dracula-BzJJZx-M.js +1 -0
  155. package/web/assets/dracula-J135E_M2.js +1 -0
  156. package/web/assets/dracula-soft-BXkSAIEj.js +1 -0
  157. package/web/assets/dracula-soft-LK7eZfHV.js +1 -0
  158. package/web/assets/dream-maker-BtqSS_iP.js +1 -0
  159. package/web/assets/dream-maker-DAHQwpwp.js +1 -0
  160. package/web/assets/dtd-DF_7sFjM.js +1 -0
  161. package/web/assets/dylan-DwRh75JA.js +1 -0
  162. package/web/assets/ebnf-CDyGwa7X.js +1 -0
  163. package/web/assets/ecl-Cabwm37j.js +1 -0
  164. package/web/assets/edge-BkV0erSs.js +1 -0
  165. package/web/assets/edge-zt3dU95k.js +1 -0
  166. package/web/assets/eiffel-CnydiIhH.js +1 -0
  167. package/web/assets/elixir-CDX3lj18.js +1 -0
  168. package/web/assets/elixir-JolcG37e.js +1 -0
  169. package/web/assets/elm-BjIDgKzz.js +1 -0
  170. package/web/assets/elm-DbKCFpqz.js +1 -0
  171. package/web/assets/elm-vLlmbW-K.js +1 -0
  172. package/web/assets/emacs-lisp-C9XAeP06.js +1 -0
  173. package/web/assets/emacs-lisp-DMBh55R4.js +1 -0
  174. package/web/assets/engine-javascript-B-MSK8a4.js +141 -0
  175. package/web/assets/engine-oniguruma-DQf0HSoH.js +1 -0
  176. package/web/assets/erb-B12qg9BL.js +1 -0
  177. package/web/assets/erb-rsjdL4fB.js +1 -0
  178. package/web/assets/erlang-BNw1qcRV.js +1 -0
  179. package/web/assets/erlang-DNeY46SW.js +1 -0
  180. package/web/assets/erlang-DsQrWhSR.js +1 -0
  181. package/web/assets/everforest-dark-BFqi-w3D.js +1 -0
  182. package/web/assets/everforest-dark-BgDCqdQA.js +1 -0
  183. package/web/assets/everforest-light-C8M2exoo.js +1 -0
  184. package/web/assets/everforest-light-DBOenRr_.js +1 -0
  185. package/web/assets/factor-kuTfRLto.js +1 -0
  186. package/web/assets/fcl-Kvtd6kyn.js +1 -0
  187. package/web/assets/fennel-BYunw83y.js +1 -0
  188. package/web/assets/fennel-DBMsxtrh.js +1 -0
  189. package/web/assets/fish-BvzEVeQv.js +1 -0
  190. package/web/assets/fish-BxskpYPN.js +1 -0
  191. package/web/assets/fluent-Bwo2XpEt.js +1 -0
  192. package/web/assets/fluent-C4IJs8-o.js +1 -0
  193. package/web/assets/forth-Ffai-XNe.js +1 -0
  194. package/web/assets/fortran-DYz_wnZ1.js +1 -0
  195. package/web/assets/fortran-fixed-form-CkoXwp7k.js +1 -0
  196. package/web/assets/fortran-fixed-form-DFFnVrrY.js +1 -0
  197. package/web/assets/fortran-free-form-BxgE0vQu.js +1 -0
  198. package/web/assets/fortran-free-form-DB5N_DgY.js +1 -0
  199. package/web/assets/fsharp-CXgrBDvD.js +1 -0
  200. package/web/assets/fsharp-DRAF1jsN.js +1 -0
  201. package/web/assets/gas-Bneqetm1.js +1 -0
  202. package/web/assets/gdresource-BD-1uzY7.js +1 -0
  203. package/web/assets/gdresource-BOOCDP_w.js +1 -0
  204. package/web/assets/gdscript-C3mT4Uym.js +1 -0
  205. package/web/assets/gdscript-C5YyOfLZ.js +1 -0
  206. package/web/assets/gdshader-DkwncUOv.js +1 -0
  207. package/web/assets/gdshader-G7X6ysY3.js +1 -0
  208. package/web/assets/genie-D0YGMca9.js +1 -0
  209. package/web/assets/genie-DSsjfZMX.js +1 -0
  210. package/web/assets/gherkin-Cl2Fw-_0.js +1 -0
  211. package/web/assets/gherkin-DyxjwDmM.js +1 -0
  212. package/web/assets/gherkin-heZmZLOM.js +1 -0
  213. package/web/assets/git-commit-CJPsQObV.js +1 -0
  214. package/web/assets/git-commit-F4YmCXRG.js +1 -0
  215. package/web/assets/git-rebase-DeZqv4fp.js +1 -0
  216. package/web/assets/git-rebase-r7XF79zn.js +1 -0
  217. package/web/assets/github-dark-DEMA7cls.js +1 -0
  218. package/web/assets/github-dark-DHJKELXO.js +1 -0
  219. package/web/assets/github-dark-default-CecffVCw.js +1 -0
  220. package/web/assets/github-dark-default-Cuk6v7N8.js +1 -0
  221. package/web/assets/github-dark-dimmed-BUVApZRJ.js +1 -0
  222. package/web/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  223. package/web/assets/github-dark-high-contrast-Bgie-zSp.js +1 -0
  224. package/web/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  225. package/web/assets/github-light-DAi9KRSo.js +1 -0
  226. package/web/assets/github-light-DlbDZuKJ.js +1 -0
  227. package/web/assets/github-light-default-CoJo_M8V.js +1 -0
  228. package/web/assets/github-light-default-D7oLnXFd.js +1 -0
  229. package/web/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  230. package/web/assets/github-light-high-contrast-QIWGb0Pe.js +1 -0
  231. package/web/assets/gleam-BeBqoPwE.js +1 -0
  232. package/web/assets/gleam-BspZqrRM.js +1 -0
  233. package/web/assets/glimmer-js-BuyKUjfV.js +1 -0
  234. package/web/assets/glimmer-js-Rg0-pVw9.js +1 -0
  235. package/web/assets/glimmer-ts-D9iniPFN.js +1 -0
  236. package/web/assets/glimmer-ts-U6CK756n.js +1 -0
  237. package/web/assets/glsl-BOG9l2nV.js +1 -0
  238. package/web/assets/glsl-DplSGwfg.js +1 -0
  239. package/web/assets/gn-Dxr0sSUf.js +1 -0
  240. package/web/assets/gn-n2N0HUVH.js +1 -0
  241. package/web/assets/gnuplot-CtW3R_Hz.js +1 -0
  242. package/web/assets/gnuplot-DdkO51Og.js +1 -0
  243. package/web/assets/go-BBr2UQCn.js +1 -0
  244. package/web/assets/go-CxLEBnE3.js +1 -0
  245. package/web/assets/graphql-B6XHM4uj.js +1 -0
  246. package/web/assets/graphql-ChdNCCLP.js +1 -0
  247. package/web/assets/groovy-D9Dt4D0W.js +1 -0
  248. package/web/assets/groovy-DFxE31Qs.js +1 -0
  249. package/web/assets/groovy-gcz8RCvz.js +1 -0
  250. package/web/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  251. package/web/assets/gruvbox-dark-hard-CVAXEe8V.js +1 -0
  252. package/web/assets/gruvbox-dark-medium-DY_qlPYa.js +1 -0
  253. package/web/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  254. package/web/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  255. package/web/assets/gruvbox-dark-soft-Cq4JVvbh.js +1 -0
  256. package/web/assets/gruvbox-light-hard-BJT-doEQ.js +1 -0
  257. package/web/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  258. package/web/assets/gruvbox-light-medium-C4PlNM3V.js +1 -0
  259. package/web/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  260. package/web/assets/gruvbox-light-soft-CaUKsQRi.js +1 -0
  261. package/web/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  262. package/web/assets/hack-CaT9iCJl.js +1 -0
  263. package/web/assets/hack-Cxa-FaZ4.js +1 -0
  264. package/web/assets/haml-2e0EI6Is.js +1 -0
  265. package/web/assets/haml-B8DHNrY2.js +1 -0
  266. package/web/assets/handlebars-BL8al0AC.js +1 -0
  267. package/web/assets/handlebars-CojHdNmS.js +1 -0
  268. package/web/assets/haskell-BfdhR_WN.js +1 -0
  269. package/web/assets/haskell-Cw1EW3IL.js +1 -0
  270. package/web/assets/haskell-Df6bDoY_.js +1 -0
  271. package/web/assets/haxe-CzTSHFRz.js +1 -0
  272. package/web/assets/haxe-DVIybFAS.js +1 -0
  273. package/web/assets/haxe-H-WmDvRZ.js +1 -0
  274. package/web/assets/hcl-B6OePqme.js +1 -0
  275. package/web/assets/hcl-BWvSN4gD.js +1 -0
  276. package/web/assets/highlights-C4XY7AzZ.js +4 -0
  277. package/web/assets/hjson-D2jn7IRw.js +1 -0
  278. package/web/assets/hjson-D5-asLiD.js +1 -0
  279. package/web/assets/hlsl-D3lLCCz7.js +1 -0
  280. package/web/assets/hlsl-MKeth5V9.js +1 -0
  281. package/web/assets/horizon-BUw7H-hv.js +1 -0
  282. package/web/assets/horizon-CYww_A_a.js +1 -0
  283. package/web/assets/horizon-bright-CSTgqtGf.js +1 -0
  284. package/web/assets/horizon-bright-Cn-bp-IR.js +1 -0
  285. package/web/assets/houston-DD-gVVvF.js +1 -0
  286. package/web/assets/houston-DnULxvSX.js +1 -0
  287. package/web/assets/html-DOf0XnR2.js +1 -0
  288. package/web/assets/html-GMplVEZG.js +1 -0
  289. package/web/assets/html-derivative-BFtXZ54Q.js +1 -0
  290. package/web/assets/html-derivative-DfCZ6Hio.js +1 -0
  291. package/web/assets/http-CG3jvXcS.js +1 -0
  292. package/web/assets/http-DBlCnlav.js +1 -0
  293. package/web/assets/http-jrhK8wxY.js +1 -0
  294. package/web/assets/hurl-CxQrh4RI.js +1 -0
  295. package/web/assets/hurl-irOxFIW8.js +1 -0
  296. package/web/assets/hxml-Bvhsp5Yf.js +1 -0
  297. package/web/assets/hxml-CkS3Eie7.js +1 -0
  298. package/web/assets/hy-DFXneXwc.js +1 -0
  299. package/web/assets/hy-DI6mCUnw.js +1 -0
  300. package/web/assets/idl-BEugSyMb.js +1 -0
  301. package/web/assets/imba-D-Pk5S0X.js +1 -0
  302. package/web/assets/imba-DGztddWO.js +1 -0
  303. package/web/assets/index-B8i_Npwx.js +1 -0
  304. package/web/assets/index-BO5QshFZ.js +1 -0
  305. package/web/assets/index-BTJDQCx7.js +7 -0
  306. package/web/assets/index-BeO3HZi8.js +1 -0
  307. package/web/assets/index-Bg8XC6PL.js +1 -0
  308. package/web/assets/index-BnCsEcV1.js +1 -0
  309. package/web/assets/index-Bqsc65tu.js +1 -0
  310. package/web/assets/index-BrHERoQu.js +13 -0
  311. package/web/assets/index-Bs28LYAL.js +1 -0
  312. package/web/assets/index-BvwOxJUs.js +1 -0
  313. package/web/assets/index-CO3ht2SW.js +1 -0
  314. package/web/assets/index-CO9A4S-f.js +165 -0
  315. package/web/assets/index-CWD5WvZ2.js +1 -0
  316. package/web/assets/index-Cf5v_iOJ.js +6 -0
  317. package/web/assets/index-Cl1kAC6E.js +1 -0
  318. package/web/assets/index-Cy4rJbGi.js +1 -0
  319. package/web/assets/index-DGti80WN.js +1 -0
  320. package/web/assets/index-DLyEuPU2.css +1 -0
  321. package/web/assets/index-DYQMUdQi.js +1 -0
  322. package/web/assets/index-DdqggMxb.js +1 -0
  323. package/web/assets/index-Dl6dJHXS.js +1 -0
  324. package/web/assets/index-DrrGDZIg.js +9 -0
  325. package/web/assets/index-DsCq3C1F.js +1 -0
  326. package/web/assets/index-DuIGzFZE.js +2 -0
  327. package/web/assets/index-ErfaDdfx.js +1 -0
  328. package/web/assets/index-HGQTBwgf.js +3 -0
  329. package/web/assets/index-UKKSElMc.js +1 -0
  330. package/web/assets/index-iaWp4Wyt.js +428 -0
  331. package/web/assets/ini-BEwlwnbL.js +1 -0
  332. package/web/assets/ini-Dix3pTmg.js +1 -0
  333. package/web/assets/java-BTDmaRNO.js +1 -0
  334. package/web/assets/java-CylS5w8V.js +1 -0
  335. package/web/assets/javascript-WyGyM1wV.js +1 -0
  336. package/web/assets/javascript-iXu5QeM3.js +1 -0
  337. package/web/assets/javascript-wDzz0qaB.js +1 -0
  338. package/web/assets/jinja-4LBKfQ-Z.js +1 -0
  339. package/web/assets/jinja-D0mZ3q2r.js +1 -0
  340. package/web/assets/jison-B9XHrcYJ.js +1 -0
  341. package/web/assets/jison-wvAkD_A8.js +1 -0
  342. package/web/assets/json-B8JryHcM.js +1 -0
  343. package/web/assets/json-Cp-IABpG.js +1 -0
  344. package/web/assets/json5-C9tS-k6U.js +1 -0
  345. package/web/assets/json5-Cdatmj9n.js +1 -0
  346. package/web/assets/jsonc-CvUCa1o5.js +1 -0
  347. package/web/assets/jsonc-Des-eS-w.js +1 -0
  348. package/web/assets/jsonl-9I_GBd5L.js +1 -0
  349. package/web/assets/jsonl-DcaNXYhu.js +1 -0
  350. package/web/assets/jsonnet-DFQXde-d.js +1 -0
  351. package/web/assets/jsonnet-XoenQ2oc.js +1 -0
  352. package/web/assets/jssm-C2t-YnRu.js +1 -0
  353. package/web/assets/jssm-CWE2S0Z5.js +1 -0
  354. package/web/assets/jsx-8cLv2Six.js +1 -0
  355. package/web/assets/jsx-g9-lgVsj.js +1 -0
  356. package/web/assets/julia-C1oINnwa.js +1 -0
  357. package/web/assets/julia-CxzCAyBv.js +1 -0
  358. package/web/assets/julia-DuME0IfC.js +1 -0
  359. package/web/assets/just-Bo3fV9RY.js +1 -0
  360. package/web/assets/just-Cw27pwNe.js +1 -0
  361. package/web/assets/kanagawa-dragon-Br5yho-4.js +1 -0
  362. package/web/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  363. package/web/assets/kanagawa-lotus-CWkNqswW.js +1 -0
  364. package/web/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  365. package/web/assets/kanagawa-wave-DNPk6o89.js +1 -0
  366. package/web/assets/kanagawa-wave-DWedfzmr.js +1 -0
  367. package/web/assets/kdl-CMbyIXjQ.js +1 -0
  368. package/web/assets/kdl-DV7GczEv.js +1 -0
  369. package/web/assets/kotlin-BQy537ds.js +1 -0
  370. package/web/assets/kotlin-BdnUsdx6.js +1 -0
  371. package/web/assets/kusto-B_y0uMaZ.js +1 -0
  372. package/web/assets/kusto-DZf3V79B.js +1 -0
  373. package/web/assets/langs-DOWgTvGd.js +2 -0
  374. package/web/assets/laserwave-CFOgL8KP.js +1 -0
  375. package/web/assets/laserwave-DUszq2jm.js +1 -0
  376. package/web/assets/latex-CWtU0Tv5.js +1 -0
  377. package/web/assets/latex-CZAhoKip.js +1 -0
  378. package/web/assets/lean-BZvkOJ9d.js +1 -0
  379. package/web/assets/lean-C4RHkN41.js +1 -0
  380. package/web/assets/less-B1dDrJ26.js +1 -0
  381. package/web/assets/less-XNfgnZC7.js +1 -0
  382. package/web/assets/light-plus-B7mTdjB0.js +1 -0
  383. package/web/assets/light-plus-DhAxFHZq.js +1 -0
  384. package/web/assets/liquid-DFlqVvG0.js +1 -0
  385. package/web/assets/liquid-DYVedYrR.js +1 -0
  386. package/web/assets/livescript-BwQOo05w.js +1 -0
  387. package/web/assets/llvm-BJRUtCev.js +1 -0
  388. package/web/assets/llvm-DjAJT7YJ.js +1 -0
  389. package/web/assets/loader-9-6I9GLG.js +1 -0
  390. package/web/assets/log-2UxHyX5q.js +1 -0
  391. package/web/assets/log-CcaF_xNv.js +1 -0
  392. package/web/assets/logo-BtOb2qkB.js +1 -0
  393. package/web/assets/logo-D9WQLoKQ.js +1 -0
  394. package/web/assets/lua-8Av-h-ns.js +1 -0
  395. package/web/assets/lua-BaeVxFsk.js +1 -0
  396. package/web/assets/lua-VAEuO923.js +1 -0
  397. package/web/assets/luau-BTSFCcFb.js +1 -0
  398. package/web/assets/luau-C-HG3fhB.js +1 -0
  399. package/web/assets/make-CHLpvVh8.js +1 -0
  400. package/web/assets/make-DXVx14cr.js +1 -0
  401. package/web/assets/markdown-Cvjx9yec.js +1 -0
  402. package/web/assets/markdown-DX-TNHnc.js +1 -0
  403. package/web/assets/marko-CnJfTvn9.js +1 -0
  404. package/web/assets/marko-DiIoNBFw.js +1 -0
  405. package/web/assets/material-theme-D5KoaKCx.js +1 -0
  406. package/web/assets/material-theme-DqJqL2R6.js +1 -0
  407. package/web/assets/material-theme-darker-BfHTSMKl.js +1 -0
  408. package/web/assets/material-theme-darker-W_3qP7EH.js +1 -0
  409. package/web/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  410. package/web/assets/material-theme-lighter-D9JaVzxs.js +1 -0
  411. package/web/assets/material-theme-ocean-CuOk3Xta.js +1 -0
  412. package/web/assets/material-theme-ocean-CyktbL80.js +1 -0
  413. package/web/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  414. package/web/assets/material-theme-palenight-DKy8WuJj.js +1 -0
  415. package/web/assets/mathematica-DTrFuWx2.js +1 -0
  416. package/web/assets/matlab-D7o27uSR.js +1 -0
  417. package/web/assets/matlab-DzreyMvm.js +1 -0
  418. package/web/assets/mbox-CNhZ1qSd.js +1 -0
  419. package/web/assets/mdc-BMNejdWA.js +1 -0
  420. package/web/assets/mdc-D_DpLax5.js +1 -0
  421. package/web/assets/mdx-C2fqO2XY.js +1 -0
  422. package/web/assets/mdx-Cmh6b_Ma.js +1 -0
  423. package/web/assets/mermaid-Cwy4Up_p.js +1 -0
  424. package/web/assets/mermaid-mWjccvbQ.js +1 -0
  425. package/web/assets/min-dark-CafNBF8u.js +1 -0
  426. package/web/assets/min-dark-Dy_aLcWh.js +1 -0
  427. package/web/assets/min-light-CTRr51gU.js +1 -0
  428. package/web/assets/min-light-_grBxJgO.js +1 -0
  429. package/web/assets/mipsasm-CKIfxQSi.js +1 -0
  430. package/web/assets/mipsasm-yE_Aqo9y.js +1 -0
  431. package/web/assets/mirc-CjQqDB4T.js +1 -0
  432. package/web/assets/mllike-CXdrOF99.js +1 -0
  433. package/web/assets/modelica-Dc1JOy9r.js +1 -0
  434. package/web/assets/mojo-M6pJPbMk.js +1 -0
  435. package/web/assets/mojo-rZm6bMo-.js +1 -0
  436. package/web/assets/monokai-CdVLaXlQ.js +1 -0
  437. package/web/assets/monokai-D4h5O-jR.js +1 -0
  438. package/web/assets/moonbit-CR8uFLGd.js +1 -0
  439. package/web/assets/moonbit-_H4v1dQx.js +1 -0
  440. package/web/assets/move-CyYMWVy5.js +1 -0
  441. package/web/assets/move-IF9eRakj.js +1 -0
  442. package/web/assets/mscgen-BA5vi2Kp.js +1 -0
  443. package/web/assets/mumps-BT43cFF4.js +1 -0
  444. package/web/assets/narrat-DRg8JJMk.js +1 -0
  445. package/web/assets/narrat-DXUZ_ZkW.js +1 -0
  446. package/web/assets/nextflow-BPolriEg.js +1 -0
  447. package/web/assets/nextflow-Zz6hmt5N.js +1 -0
  448. package/web/assets/nextflow-groovy-BeH2EWoN.js +1 -0
  449. package/web/assets/nextflow-groovy-pQRwk_Jg.js +1 -0
  450. package/web/assets/nginx-BpAMiNFr.js +1 -0
  451. package/web/assets/nginx-DSXkacNc.js +1 -0
  452. package/web/assets/nginx-DdIZxoE0.js +1 -0
  453. package/web/assets/night-owl-BQqHEEnY.js +1 -0
  454. package/web/assets/night-owl-C39BiMTA.js +1 -0
  455. package/web/assets/night-owl-light-CMTm3GFP.js +1 -0
  456. package/web/assets/night-owl-light-PcYqxiSn.js +1 -0
  457. package/web/assets/nim-CVrawwO9.js +1 -0
  458. package/web/assets/nim-e2z2kCcq.js +1 -0
  459. package/web/assets/nix-Ckjrpg0r.js +1 -0
  460. package/web/assets/nix-CwoSXNpI.js +1 -0
  461. package/web/assets/nord-21HrTSIF.js +1 -0
  462. package/web/assets/nord-Ddv68eIx.js +1 -0
  463. package/web/assets/nsis-LY0VT_u5.js +1 -0
  464. package/web/assets/ntriples-BfvgReVJ.js +1 -0
  465. package/web/assets/nushell-Cz2AlsmD.js +1 -0
  466. package/web/assets/nushell-DtHLcZf1.js +1 -0
  467. package/web/assets/objective-c-BoaBTdtz.js +1 -0
  468. package/web/assets/objective-c-DXmwc3jG.js +1 -0
  469. package/web/assets/objective-cpp-CLxacb5B.js +1 -0
  470. package/web/assets/objective-cpp-DstR8hNy.js +1 -0
  471. package/web/assets/ocaml-C0hk2d4L.js +1 -0
  472. package/web/assets/ocaml-DTbn2Hv7.js +1 -0
  473. package/web/assets/octave-Ck1zUtKM.js +1 -0
  474. package/web/assets/odin-BBf5iR-q.js +1 -0
  475. package/web/assets/odin-Bxc4S6Xn.js +1 -0
  476. package/web/assets/one-dark-pro-BhKceDNE.js +1 -0
  477. package/web/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  478. package/web/assets/one-light-C3Wv6jpd.js +1 -0
  479. package/web/assets/one-light-jLTs6gNg.js +1 -0
  480. package/web/assets/openscad-C4EeE6gA.js +1 -0
  481. package/web/assets/openscad-CXHpNBsb.js +1 -0
  482. package/web/assets/oz-BzwKVEFT.js +1 -0
  483. package/web/assets/pascal--L3eBynH.js +1 -0
  484. package/web/assets/pascal-D93ZcfNL.js +1 -0
  485. package/web/assets/pascal-Sr-XLSE6.js +1 -0
  486. package/web/assets/perl-C0TMdlhV.js +1 -0
  487. package/web/assets/perl-C95KruZl.js +1 -0
  488. package/web/assets/perl-CdXCOZ3F.js +1 -0
  489. package/web/assets/php-B4Kqya17.js +1 -0
  490. package/web/assets/php-Dhbhpdrm.js +1 -0
  491. package/web/assets/pierre-dark-CyvmCCZW.js +1 -0
  492. package/web/assets/pierre-dark-VKo95ZgA.js +1 -0
  493. package/web/assets/pierre-dark-protanopia-deuteranopia-9NA1cYBf.js +1 -0
  494. package/web/assets/pierre-dark-protanopia-deuteranopia-Rgc0TwpF.js +1 -0
  495. package/web/assets/pierre-dark-soft-7QOAm_IF.js +1 -0
  496. package/web/assets/pierre-dark-soft-BHGpRqa4.js +1 -0
  497. package/web/assets/pierre-dark-tritanopia-Beq2gCRQ.js +1 -0
  498. package/web/assets/pierre-dark-tritanopia-DgRbsqLz.js +1 -0
  499. package/web/assets/pierre-dark-vibrant-BC460iGc.js +1 -0
  500. package/web/assets/pierre-dark-vibrant-BWBVywrn.js +1 -0
  501. package/web/assets/pierre-light-480U9XYS.js +1 -0
  502. package/web/assets/pierre-light-BVSW-Xev.js +1 -0
  503. package/web/assets/pierre-light-protanopia-deuteranopia-CaVOBURG.js +1 -0
  504. package/web/assets/pierre-light-protanopia-deuteranopia-DS2cemZ4.js +1 -0
  505. package/web/assets/pierre-light-soft-BsJo76K9.js +1 -0
  506. package/web/assets/pierre-light-soft-CVdyfjmI.js +1 -0
  507. package/web/assets/pierre-light-tritanopia-B4_gpKOM.js +1 -0
  508. package/web/assets/pierre-light-tritanopia-DkLkAQhg.js +1 -0
  509. package/web/assets/pierre-light-vibrant-CuV07qLW.js +1 -0
  510. package/web/assets/pierre-light-vibrant-DdTDNdfJ.js +1 -0
  511. package/web/assets/pig-CevX1Tat.js +1 -0
  512. package/web/assets/pkl-CRusufhw.js +1 -0
  513. package/web/assets/pkl-u5AG7uiY.js +1 -0
  514. package/web/assets/plastic-3e1v2bzS.js +1 -0
  515. package/web/assets/plastic-NAeKviv3.js +1 -0
  516. package/web/assets/plsql-ChMvpjG-.js +1 -0
  517. package/web/assets/plsql-Dbm3tV2N.js +1 -0
  518. package/web/assets/po-BTJTHyun.js +1 -0
  519. package/web/assets/po-LG0lFwH4.js +1 -0
  520. package/web/assets/poimandres-CS3Unz2-.js +1 -0
  521. package/web/assets/poimandres-DxtD-TUE.js +1 -0
  522. package/web/assets/polar-C0HS_06l.js +1 -0
  523. package/web/assets/polar-DjOs3GWb.js +1 -0
  524. package/web/assets/postcss-CXtECtnM.js +1 -0
  525. package/web/assets/postcss-GRRkWn2F.js +1 -0
  526. package/web/assets/powerquery-CEu0bR-o.js +1 -0
  527. package/web/assets/powerquery-DHf-dtTS.js +1 -0
  528. package/web/assets/powershell-CFHJl5sT.js +1 -0
  529. package/web/assets/powershell-DXrKVo3G.js +1 -0
  530. package/web/assets/powershell-Dpen1YoG.js +1 -0
  531. package/web/assets/prisma-Dd19v3D-.js +1 -0
  532. package/web/assets/prisma-Dgf8IN_C.js +1 -0
  533. package/web/assets/prolog-9JcfiY6I.js +1 -0
  534. package/web/assets/prolog-CbFg5uaA.js +1 -0
  535. package/web/assets/properties-C78fOPTZ.js +1 -0
  536. package/web/assets/proto-C7zT0LnQ.js +1 -0
  537. package/web/assets/proto-dqx_Sj2i.js +1 -0
  538. package/web/assets/protobuf-ChK-085T.js +1 -0
  539. package/web/assets/pug-CGlum2m_.js +1 -0
  540. package/web/assets/pug-CoOVtr4u.js +1 -0
  541. package/web/assets/pug-DeIclll2.js +1 -0
  542. package/web/assets/puppet-BMWR74SV.js +1 -0
  543. package/web/assets/puppet-DMA9R1ak.js +1 -0
  544. package/web/assets/puppet-Di57VbSS.js +1 -0
  545. package/web/assets/purescript-BgpM7rDH.js +1 -0
  546. package/web/assets/purescript-CklMAg4u.js +1 -0
  547. package/web/assets/python-B6Ihcp-E.js +1 -0
  548. package/web/assets/python-B6aJPvgy.js +1 -0
  549. package/web/assets/python-BuPzkPfP.js +1 -0
  550. package/web/assets/q-pXgVlZs6.js +1 -0
  551. package/web/assets/qml-3beO22l8.js +1 -0
  552. package/web/assets/qml-DmGQGbca.js +1 -0
  553. package/web/assets/qmldir-C8lEn-DE.js +1 -0
  554. package/web/assets/qmldir-DXd9s5XC.js +1 -0
  555. package/web/assets/qss-B7NnhfIi.js +1 -0
  556. package/web/assets/qss-IeuSbFQv.js +1 -0
  557. package/web/assets/quick-open-lyvmOWdN.js +3 -0
  558. package/web/assets/r-1ts4xG1r.js +1 -0
  559. package/web/assets/r-B6wPVr8A.js +1 -0
  560. package/web/assets/r-Dspwwk_N.js +1 -0
  561. package/web/assets/racket-BqYA7rlc.js +1 -0
  562. package/web/assets/racket-CeDx7KO2.js +1 -0
  563. package/web/assets/raku-BMJwmrCS.js +1 -0
  564. package/web/assets/raku-DXvB9xmW.js +1 -0
  565. package/web/assets/razor-BaMsy-R7.js +1 -0
  566. package/web/assets/razor-Uh8Bk_45.js +1 -0
  567. package/web/assets/red-CXrvuCEp.js +1 -0
  568. package/web/assets/red-bN70gL4F.js +1 -0
  569. package/web/assets/reg-C-SQnVFl.js +1 -0
  570. package/web/assets/reg-Cvyu2Gnx.js +1 -0
  571. package/web/assets/regexp-CDVJQ6XC.js +1 -0
  572. package/web/assets/regexp-DK-WlHNu.js +1 -0
  573. package/web/assets/rel-BlqNHz8k.js +1 -0
  574. package/web/assets/rel-C3B-1QV4.js +1 -0
  575. package/web/assets/riscv-BM1_JUlF.js +1 -0
  576. package/web/assets/riscv-C5dpdlr7.js +1 -0
  577. package/web/assets/ron-D8l8udqQ.js +1 -0
  578. package/web/assets/ron-j5NfrB3z.js +1 -0
  579. package/web/assets/rose-pine-D8FAFHem.js +1 -0
  580. package/web/assets/rose-pine-dawn-BASY_2xG.js +1 -0
  581. package/web/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  582. package/web/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  583. package/web/assets/rose-pine-moon-Dy-VLyzr.js +1 -0
  584. package/web/assets/rose-pine-qdsjHGoJ.js +1 -0
  585. package/web/assets/rosmsg-BJDFO7_C.js +1 -0
  586. package/web/assets/rosmsg-ZkSIzPhc.js +1 -0
  587. package/web/assets/rpm-CTu-6PCP.js +1 -0
  588. package/web/assets/rst-BrH8l1NY.js +1 -0
  589. package/web/assets/rst-C371KPjr.js +1 -0
  590. package/web/assets/ruby-BK5aLJev.js +1 -0
  591. package/web/assets/ruby-DusoydGj.js +1 -0
  592. package/web/assets/ruby-Dw2BHqvy.js +1 -0
  593. package/web/assets/rust-B1yitclQ.js +1 -0
  594. package/web/assets/rust-CxuBE0J8.js +1 -0
  595. package/web/assets/sas-B4kiWyti.js +1 -0
  596. package/web/assets/sas-DtSHuIwI.js +1 -0
  597. package/web/assets/sas-cz2c8ADy.js +1 -0
  598. package/web/assets/sass-Cj5Yp3dK.js +1 -0
  599. package/web/assets/sass-bfEVHPJ8.js +1 -0
  600. package/web/assets/scala-C151Ov-r.js +1 -0
  601. package/web/assets/scala-Dtw19ca_.js +1 -0
  602. package/web/assets/scheme-C41bIUwD.js +1 -0
  603. package/web/assets/scheme-C98Dy4si.js +1 -0
  604. package/web/assets/scheme-OJppFQF3.js +1 -0
  605. package/web/assets/scss-DxBkwadj.js +1 -0
  606. package/web/assets/scss-OYdSNvt2.js +1 -0
  607. package/web/assets/sdbl-CvZs3G9c.js +1 -0
  608. package/web/assets/sdbl-DVxCFoDh.js +1 -0
  609. package/web/assets/shaderlab-CEJedz68.js +1 -0
  610. package/web/assets/shaderlab-Dg9Lc6iA.js +1 -0
  611. package/web/assets/shell-CjFT_Tl9.js +1 -0
  612. package/web/assets/shellscript-DgJyDXW6.js +1 -0
  613. package/web/assets/shellscript-Yzrsuije.js +1 -0
  614. package/web/assets/shellsession-BADoaaVG.js +1 -0
  615. package/web/assets/shellsession-DSlzxnCM.js +1 -0
  616. package/web/assets/shiki-CVQNxRdp.js +2 -0
  617. package/web/assets/sieve-C3Gn_uJK.js +1 -0
  618. package/web/assets/simple-mode-GW_nhZxv.js +1 -0
  619. package/web/assets/slack-dark-B_rKnIg6.js +1 -0
  620. package/web/assets/slack-dark-BthQWCQV.js +1 -0
  621. package/web/assets/slack-ochin-DqwNpetd.js +1 -0
  622. package/web/assets/slack-ochin-ZXM6bUvf.js +1 -0
  623. package/web/assets/smalltalk-B9IHbYt7.js +1 -0
  624. package/web/assets/smalltalk-BERRCDM3.js +1 -0
  625. package/web/assets/smalltalk-CnHTOXQT.js +1 -0
  626. package/web/assets/snazzy-light-Bw305WKR.js +1 -0
  627. package/web/assets/snazzy-light-DZPhPzZb.js +1 -0
  628. package/web/assets/solarized-dark-BZway46k.js +1 -0
  629. package/web/assets/solarized-dark-DXbdFlpD.js +1 -0
  630. package/web/assets/solarized-light-0RO1u5Jj.js +1 -0
  631. package/web/assets/solarized-light-L9t79GZl.js +1 -0
  632. package/web/assets/solidity-B3CjIuAd.js +1 -0
  633. package/web/assets/solidity-rGO070M0.js +1 -0
  634. package/web/assets/solr-DehyRSwq.js +1 -0
  635. package/web/assets/soy-BSb8SaP0.js +1 -0
  636. package/web/assets/soy-Brmx7dQM.js +1 -0
  637. package/web/assets/sparql-BJh4JEw-.js +1 -0
  638. package/web/assets/sparql-DkYu6x3z.js +1 -0
  639. package/web/assets/sparql-rVzFXLq3.js +1 -0
  640. package/web/assets/splunk-BtCnVYZw.js +1 -0
  641. package/web/assets/splunk-h-bNAnbk.js +1 -0
  642. package/web/assets/spreadsheet-BCZA_wO0.js +1 -0
  643. package/web/assets/sql-BLtJtn59.js +1 -0
  644. package/web/assets/sql-BbONfI8K.js +1 -0
  645. package/web/assets/sql-D0XecflT.js +1 -0
  646. package/web/assets/ssh-config-CywOjoXH.js +1 -0
  647. package/web/assets/ssh-config-_ykCGR6B.js +1 -0
  648. package/web/assets/stata-BH5u7GGu.js +1 -0
  649. package/web/assets/stata-BKjsT8qe.js +1 -0
  650. package/web/assets/stex-C3f8Ysf7.js +1 -0
  651. package/web/assets/stream-tokenizer-0HVbXfzq.js +4 -0
  652. package/web/assets/stylus-B533Al4x.js +1 -0
  653. package/web/assets/stylus-BEDo0Tqx.js +1 -0
  654. package/web/assets/stylus-CIg617SB.js +1 -0
  655. package/web/assets/surrealql-2KNEnAt7.js +1 -0
  656. package/web/assets/surrealql-Bq5Q-fJD.js +1 -0
  657. package/web/assets/svelte-C_ipcX3V.js +1 -0
  658. package/web/assets/svelte-xaxjcSSP.js +1 -0
  659. package/web/assets/swift-BzpIVaGY.js +1 -0
  660. package/web/assets/swift-D82vCrfD.js +1 -0
  661. package/web/assets/swift-tEesUtni.js +1 -0
  662. package/web/assets/synthwave-84-CbfX1IO0.js +1 -0
  663. package/web/assets/synthwave-84-DWUGC1Lz.js +1 -0
  664. package/web/assets/system-verilog-CnnmHF94.js +1 -0
  665. package/web/assets/system-verilog-Qdm_1g2q.js +1 -0
  666. package/web/assets/systemd-4A_iFExJ.js +1 -0
  667. package/web/assets/systemd-DKMPPZjB.js +1 -0
  668. package/web/assets/talonscript-CkByrt1z.js +1 -0
  669. package/web/assets/talonscript-eRuyeYHl.js +1 -0
  670. package/web/assets/tasl-B9CVvjfG.js +1 -0
  671. package/web/assets/tasl-QIJgUcNo.js +1 -0
  672. package/web/assets/tcl-Bq9dbVAF.js +1 -0
  673. package/web/assets/tcl-DVfN8rqt.js +1 -0
  674. package/web/assets/tcl-dwOrl1Do.js +1 -0
  675. package/web/assets/templ-BVTOctZ7.js +1 -0
  676. package/web/assets/templ-P3uqSqPl.js +1 -0
  677. package/web/assets/terraform-BETggiCN.js +1 -0
  678. package/web/assets/terraform-CAp711iT.js +1 -0
  679. package/web/assets/tex-BHxF5DMe.js +1 -0
  680. package/web/assets/tex-idrVyKtj.js +1 -0
  681. package/web/assets/textile-CnDTJFAw.js +1 -0
  682. package/web/assets/themes-DY1IkrqM.js +2 -0
  683. package/web/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  684. package/web/assets/tiki-DGYXhP31.js +1 -0
  685. package/web/assets/tokenize.worker-Cgg-YDUo.js +12 -0
  686. package/web/assets/tokyo-night-hegEt444.js +1 -0
  687. package/web/assets/tokyo-night-rFhgOD-L.js +1 -0
  688. package/web/assets/toml-Bm5Em-hy.js +1 -0
  689. package/web/assets/toml-Ms459DBw.js +1 -0
  690. package/web/assets/toml-vGWfd6FD.js +1 -0
  691. package/web/assets/troff-wAsdV37c.js +1 -0
  692. package/web/assets/ts-tags-C-gylFal.js +1 -0
  693. package/web/assets/ts-tags-zn1MmPIZ.js +1 -0
  694. package/web/assets/tsv-BFtm7NXx.js +1 -0
  695. package/web/assets/tsv-B_m7g4N7.js +1 -0
  696. package/web/assets/tsx-COt5Ahok.js +1 -0
  697. package/web/assets/tsx-D6116Ycy.js +1 -0
  698. package/web/assets/ttcn-CfJYG6tj.js +1 -0
  699. package/web/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  700. package/web/assets/turtle-B1tBg_DP.js +1 -0
  701. package/web/assets/turtle-BsS91CYL.js +1 -0
  702. package/web/assets/turtle-DpRhbQZY.js +1 -0
  703. package/web/assets/twig-DNn4PbVi.js +1 -0
  704. package/web/assets/twig-DuP5mDZ4.js +1 -0
  705. package/web/assets/typescript-BPQ3VLAy.js +1 -0
  706. package/web/assets/typescript-BqvgUolh.js +1 -0
  707. package/web/assets/typespec-BGHnOYBU.js +1 -0
  708. package/web/assets/typespec-DhK7u29_.js +1 -0
  709. package/web/assets/typst-DHCkPAjA.js +1 -0
  710. package/web/assets/typst-Dfd71gQj.js +1 -0
  711. package/web/assets/v-BH76v7br.js +1 -0
  712. package/web/assets/v-BcVCzyr7.js +1 -0
  713. package/web/assets/vala-CsfeWuGM.js +1 -0
  714. package/web/assets/vala-z59IxkFd.js +1 -0
  715. package/web/assets/vb-4AxSLKIU.js +1 -0
  716. package/web/assets/vb-CmGdzxic.js +1 -0
  717. package/web/assets/vb-D17OF-Vu.js +1 -0
  718. package/web/assets/vbscript-BuJXcnF6.js +1 -0
  719. package/web/assets/velocity-D8B20fx6.js +1 -0
  720. package/web/assets/verilog-BQ8w6xss.js +1 -0
  721. package/web/assets/verilog-C6RDOZhf.js +1 -0
  722. package/web/assets/verilog-LfQUkHDc.js +1 -0
  723. package/web/assets/vesper-DU1UobuO.js +1 -0
  724. package/web/assets/vesper-DXdoX7tc.js +1 -0
  725. package/web/assets/vhdl-CeAyd5Ju.js +1 -0
  726. package/web/assets/vhdl-DJCsFYgn.js +1 -0
  727. package/web/assets/vhdl-lSbBsy5d.js +1 -0
  728. package/web/assets/viml-CJc9bBzg.js +1 -0
  729. package/web/assets/viml-pbKHW3Ia.js +1 -0
  730. package/web/assets/vitesse-black-B2Lmt1K7.js +1 -0
  731. package/web/assets/vitesse-black-Bkuqu6BP.js +1 -0
  732. package/web/assets/vitesse-dark-BXGlYFEP.js +1 -0
  733. package/web/assets/vitesse-dark-D0r3Knsf.js +1 -0
  734. package/web/assets/vitesse-light-CVO1_9PV.js +1 -0
  735. package/web/assets/vitesse-light-DFUEw_1q.js +1 -0
  736. package/web/assets/vue-D2k0BAl5.js +1 -0
  737. package/web/assets/vue-DN_0RTcg.js +1 -0
  738. package/web/assets/vue-html-AaS7Mt5G.js +1 -0
  739. package/web/assets/vue-html-zEfNEgpj.js +1 -0
  740. package/web/assets/vue-vine-CQOfvN7w.js +1 -0
  741. package/web/assets/vue-vine-D9eCaTqi.js +1 -0
  742. package/web/assets/vyper-CDx5xZoG.js +1 -0
  743. package/web/assets/vyper-DpazWNpx.js +1 -0
  744. package/web/assets/wasm-CFi-k9--.js +1 -0
  745. package/web/assets/wasm-CG6Dc4jp.js +1 -0
  746. package/web/assets/wasm-MzD3tlZU.js +1 -0
  747. package/web/assets/webidl-ZXfAyPTL.js +1 -0
  748. package/web/assets/wenyan-BV7otONQ.js +1 -0
  749. package/web/assets/wenyan-CYFFG9DK.js +1 -0
  750. package/web/assets/wgsl-CxjTZs-b.js +1 -0
  751. package/web/assets/wgsl-Dx-B1_4e.js +1 -0
  752. package/web/assets/wikitext-BhOHFoWU.js +1 -0
  753. package/web/assets/wikitext-Bx2qct8O.js +1 -0
  754. package/web/assets/wit-5i3qLPDT.js +1 -0
  755. package/web/assets/wit-DDW3hD69.js +1 -0
  756. package/web/assets/wolfram-lXgVvXCa.js +1 -0
  757. package/web/assets/wolfram-pu21K997.js +1 -0
  758. package/web/assets/xml-BkAJuBCc.js +1 -0
  759. package/web/assets/xml-sdJ4AIDG.js +1 -0
  760. package/web/assets/xquery-DzFWVndE.js +1 -0
  761. package/web/assets/xsl-C6UUWSil.js +1 -0
  762. package/web/assets/xsl-CtQFsRM5.js +1 -0
  763. package/web/assets/yacas-BJ4BC0dw.js +1 -0
  764. package/web/assets/yaml-Bopit2L3.js +1 -0
  765. package/web/assets/yaml-Buea-lGh.js +1 -0
  766. package/web/assets/z80-Hz9HOZM7.js +1 -0
  767. package/web/assets/zenscript-BIAKq-aR.js +1 -0
  768. package/web/assets/zenscript-DVFEvuxE.js +1 -0
  769. package/web/assets/zig-VOosw3JB.js +1 -0
  770. package/web/assets/zig-bSFrHQ7n.js +1 -0
  771. package/web/favicon-16x16.png +0 -0
  772. package/web/favicon-32x32.png +0 -0
  773. package/web/favicon.ico +0 -0
  774. package/web/index.html +22 -0
  775. package/web/samples/evidence/checks.txt +2 -0
  776. package/web/samples/evidence/contrast.md +6 -0
  777. package/web/samples/evidence/disabled-rows.md +1 -0
  778. package/web/samples/evidence/settings-dark-after.png +0 -0
  779. package/web/samples/evidence/settings-dark-before.png +0 -0
  780. package/web/samples/evidence/tab-group-tests.txt +10 -0
  781. package/web/samples/evidence/tabs-scroll.webm +0 -0
package/bin/shinsa ADDED
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/bin/shinsa
3
+ size: 94396720 bytes
4
+ sha256: 23ba60423b8aae43829529fcca780d92045b56af2f313231ac02d2ba5c278233
package/package.json CHANGED
@@ -1 +1,22 @@
1
- {"name":"@shinsa/darwin-arm64","version":"0.0.0","description":"Placeholder. Install shinsa instead.","license":"AGPL-3.0-only","repository":{"type":"git","url":"git+https://github.com/shinsa-dev/shinsa.git"}}
1
+ {
2
+ "name": "@shinsa/darwin-arm64",
3
+ "version": "1.0.0-canary.53",
4
+ "description": "The Shinsa engine for darwin arm64. Install shinsa rather than this package.",
5
+ "license": "AGPL-3.0-only",
6
+ "homepage": "https://shinsa.dev",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/shinsa-dev/shinsa.git"
10
+ },
11
+ "os": [
12
+ "darwin"
13
+ ],
14
+ "cpu": [
15
+ "arm64"
16
+ ],
17
+ "files": [
18
+ "bin",
19
+ "plugin",
20
+ "web"
21
+ ]
22
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "shinsa",
3
+ "version": "0.1.0",
4
+ "description": "The rules every Shinsa agent follows: how to review, how to prove UI work, how to hand work over."
5
+ }
@@ -0,0 +1,175 @@
1
+ ---
2
+ name: evidence
3
+ description: How to prove user-facing work in Shinsa before the human reviews it: a before and after comparison of each view you changed at the right widths and themes, a short recording for behaviour, simulator captures for iOS, and the focused test run for logic. Use whenever your change is visible to a user, and as the reviewer when the evidence is missing or doubtful.
4
+ ---
5
+
6
+ # Evidence
7
+
8
+ The human reviews the evidence before the diff, in the review's Evidence section, as items, each with its kind: a
9
+ comparison (one view before and after, or in light and dark) side by side, a recording that plays in the image viewer,
10
+ a screenshot, a test or check run as the result and output of the check Shinsa ran, a note. "4 pieces of evidence" counts items, not files: a before and
11
+ its after are one comparison, and so are a view's light and dark shots. Without it they have to run your change
12
+ themselves, which is the work Shinsa exists to save. Attach every item with `attach_evidence`; Shinsa copies the files
13
+ into its own store (`<data>/evidence/<task id>/round-<n>/`), so a file you leave in `/tmp` is fine.
14
+
15
+ ## Which kind
16
+
17
+ | The change | Attach | Kind |
18
+ |---|---|---|
19
+ | A screen looks different | A comparison of each view you changed, the same view before and after, at 1280px and 390px wide, light and dark | `comparison` |
20
+ | One view in several states (empty, loading, error, filled) | One comparison with a part per state, each named by its `label` | `comparison` |
21
+ | Something moves or responds (a menu, a drag, a scroll, a form) | A recording of the flow, 5 to 20 seconds, at 1280px | `recording` |
22
+ | A new screen with nothing before it | Per width, its light and dark as one comparison, parts labelled `Light` and `Dark` | `comparison` |
23
+ | One view in light and dark | One comparison, never two screenshots: a part per theme, labelled `Light` and `Dark` | `comparison` |
24
+ | Logic, an API, a script | The focused test that fails without your change and passes with it, as a check you link | `test` |
25
+ | What a run cannot show (a failing run before the fix, a manual check, a measurement) | A short note in markdown | `note` |
26
+ | A preview deployment exists | Its URL | `preview` |
27
+ | The project has a service that shows the change (its dev server) | Its local preview: the URL `run_service` reports, with the path to the screen | `preview` |
28
+
29
+ Skip a width or a theme only when it cannot differ (a command's output has no theme), and say so in `detail`. A
30
+ comparison counts as the screenshots (or recordings) a plan asks for.
31
+
32
+ ## Fill the fields
33
+
34
+ - `title`: what it shows: "Settings, appearance section". Never a file name.
35
+ - `width`, `theme`: the viewport width in CSS pixels (1280, never the file's 2560), and `light` or `dark`. Shinsa
36
+ shows a shot at that width, so a 2x file stays sharp.
37
+ - `detail`: what to look at, in one sentence: "The muted labels now pass 4.5:1 contrast."
38
+ - A comparison takes `parts`, two to six files in order, each with its `path` and a `stage` (`before`, `after`) or a
39
+ short `label` ("Empty", "Loading", "Light", "Dark"):
40
+
41
+ ```json
42
+ { "kind": "comparison", "title": "Settings, appearance section", "width": 1280, "theme": "dark",
43
+ "parts": [{ "path": "/tmp/evidence/settings-before.png", "stage": "before" },
44
+ { "path": "/tmp/evidence/settings-after.png", "stage": "after" }] }
45
+ ```
46
+
47
+ Light and dark shots of one view are one comparison too, a part per theme named by its `label`, with no `theme`
48
+ on the comparison (the labels say it):
49
+
50
+ ```json
51
+ { "kind": "comparison", "title": "Review tab, a finding with its fix", "width": 1280,
52
+ "parts": [{ "path": "/tmp/evidence/review-light.png", "label": "Light" },
53
+ { "path": "/tmp/evidence/review-dark.png", "label": "Dark" }] }
54
+ ```
55
+
56
+ You take the before shot before you edit, so you may attach it on its own then (`kind: "screenshot"`,
57
+ `stage: "before"`) and its after later with the same `key` (`stage: "after"`): Shinsa shows the two as one
58
+ comparison.
59
+ - Give every item a `key` for what it shows (`settings-dark-900`); without one its title, width and theme are its key.
60
+ Evidence shows the work as it is now: when a later change alters a view, attach it again with the same key and it
61
+ replaces the earlier item (a new after keeps its before). Remove an item that no longer applies with
62
+ `remove_evidence` and a reason. The human sees only the current items; the old ones fold under Earlier versions.
63
+ - A `test` or `check` takes only `check`, the id of one of the task's checks (`c1`, as `read_task` lists them), and
64
+ an optional `detail`: `{ "kind": "test", "check": "c2", "detail": "Fails before the fix with the empty name." }`.
65
+ Shinsa shows that check's result and the output of its last run; never paste test output.
66
+ - Every other kind takes exactly one source: `path` for a file (absolute, or relative to the worktree), `text` for a
67
+ note, `url` for a preview.
68
+ - A note is markdown, rendered as it is in the chat: lists, code, links. Put measurements in a table, one row per
69
+ thing measured, and link the file you changed with a reference (`[theme.css](shinsa://file/src/theme.css#L12-L16)`)
70
+ so the human can open it. A test or check run is a linked check, never a note.
71
+
72
+ ```md
73
+ | Token | Before | After | Needs |
74
+ | --- | --- | --- | --- |
75
+ | Hint text (`--muted`) | 2.6:1 | 6.9:1 | 4.5:1 |
76
+ | Borders (`--border`) | 1.2:1 | 1.6:1 | none, decorative |
77
+ ```
78
+
79
+ ## Web UI
80
+
81
+ 1. Start the app the way the repository says (its CLAUDE.md, README, package scripts), on a free port, with its own
82
+ data or seed if it has one. Never stop or reuse a server you did not start, and stop yours when you are done.
83
+ 2. **Before shots first.** Capture the before shots before you edit anything a user sees. If you already changed the
84
+ code, capture them from a scratch checkout of the base: `git worktree add --detach /tmp/before <base commit>`,
85
+ install, run it on another port, capture, then `git worktree remove /tmp/before`.
86
+ 3. Capture at a device scale factor of 2: the human reviews on a Retina screen, where a shot with one pixel per CSS
87
+ pixel looks soft. A 1280px wide view is a 2560px wide file. Shinsa starts the Playwright MCP at that scale; take
88
+ its screenshots with `scale: "device"` (its default, `"css"`, halves them again). On the command line pass
89
+ `--device="Desktop Chrome HiDPI"` with your `--viewport-size`; in a script set `deviceScaleFactor: 2` on every page
90
+ and context.
91
+ 4. Capture with the browser tools you have (the Playwright MCP tools), or the Playwright command line for a single
92
+ page. Every browser you start runs headless: the human works on this machine, and a window that opens takes their
93
+ screen. Shinsa starts the Playwright MCP headless for you. In a script, launch with `headless: true`, never with
94
+ `headless: false` or `--headed`, and never open a page with `open` or in a desktop browser.
95
+
96
+ ```sh
97
+ bunx playwright screenshot --device="Desktop Chrome HiDPI" --viewport-size=1280,800 --color-scheme=dark \
98
+ --wait-for-timeout=500 http://localhost:5900/settings /tmp/evidence/settings-1280-dark-after.png
99
+ ```
100
+
101
+ For a page you must click through first, or a recording, write a short script and run it from a scratch folder,
102
+ so the repository's dependencies stay as they are:
103
+
104
+ ```sh
105
+ mkdir -p /tmp/evidence && cd /tmp/evidence && bun add playwright && bunx playwright install chromium
106
+ ```
107
+
108
+ ```ts
109
+ import { chromium } from 'playwright';
110
+
111
+ const browser = await chromium.launch({ headless: true });
112
+ for (const theme of ['light', 'dark'] as const) {
113
+ for (const width of [1280, 390]) {
114
+ const page = await browser.newPage({ viewport: { width, height: 800 }, deviceScaleFactor: 2, colorScheme: theme });
115
+ await page.goto('http://localhost:5900/settings');
116
+ await page.getByRole('button', { name: 'Appearance' }).click();
117
+ await page.screenshot({ path: `/tmp/evidence/settings-${width}-${theme}-after.png` });
118
+ await page.close();
119
+ }
120
+ }
121
+ const context = await browser.newContext({
122
+ viewport: { width: 1280, height: 800 },
123
+ deviceScaleFactor: 2,
124
+ recordVideo: { dir: '/tmp/evidence/video', size: { width: 2560, height: 1600 } },
125
+ });
126
+ const page = await context.newPage();
127
+ await page.goto('http://localhost:5900/settings');
128
+ await page.getByRole('button', { name: 'Appearance' }).click();
129
+ await context.close();
130
+ console.log(await page.video()?.path());
131
+ await browser.close();
132
+ ```
133
+
134
+ 5. Read the browser console on every page you captured. An error you introduced is a bug, not evidence.
135
+ 6. Look at every image before you attach it: the right screen, the change visible, nothing half loaded, and twice the
136
+ width you captured at (`sips -g pixelWidth` or `file` on the PNG).
137
+ 7. Attach each view's before and after as one comparison, each recording as a `recording`, with the fields above.
138
+
139
+ ## iOS
140
+
141
+ Build for a simulator with `xcodebuild`, install it with `xcrun simctl install`, launch it, and capture with
142
+ `xcrun simctl io <device> screenshot` and `xcrun simctl io <device> recordVideo`, light and dark
143
+ (`xcrun simctl ui <device> appearance dark`). They are in the device's own pixels, sharp already; use the device's
144
+ width in points as `width`.
145
+
146
+ ## Logic
147
+
148
+ Write the test that fails without your change and passes with it, and make it a check: in the plan's
149
+ `verification`, or with `check_changes` on the phase that adds it (the `handover` skill). Shinsa runs it after that
150
+ phase and keeps its output, so link it with `kind: "test"` and `check` (its id) instead of pasting the run. Run it once
151
+ before the fix yourself and attach that failing run as a `note` when it shows something the passing run does not.
152
+ Scope the check to the test that proves your change, never the whole suite: CI runs that on the pull request.
153
+
154
+ ## A local preview
155
+
156
+ When the project has services (`list_services`), the human can look at the change themselves on this machine. Before
157
+ the last hand-over, start each service that shows the change with `run_service` and leave it running: each run of a
158
+ task gets a port of its own, and the start reports the run's preview URL. Add the path to the screen to check and
159
+ attach it: `{ "kind": "preview", "url": "http://localhost:4123/tasks/SW-17", "title": "Task page, Services fact" }`.
160
+ Name that link as the first step of How to test. The preview stays up while the task waits for review and stops when
161
+ the task is finished, so never stop it yourself. No preview URL in the start's reply means the service has none set:
162
+ say so and attach the screenshots alone. When no service shows the change, add the one that would with
163
+ `add_service` (with its `preview_url`) and then start it.
164
+
165
+ ## As the reviewer
166
+
167
+ You did not write the change, so your evidence is independent. Check the agent's evidence against the diff: the
168
+ right screens, both themes, the states it claims. Where a user-visible claim has no evidence, or you doubt one,
169
+ capture your own the same way and attach it; the human sees it marked as from the agent review. You may run the app;
170
+ never edit the worktree.
171
+
172
+ ## When you cannot
173
+
174
+ If the app cannot run here (missing secrets, services, a device), say so plainly in your summary and attach what you
175
+ could: a test, a type check, a rendered component. Never claim something works that you did not see work.
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: handover
3
+ description: How to fill Shinsa's hand-over tools well (propose_plan, complete_phase, complete_fix, report_review, answer, report_diagnosis, submit_report, report_outcome, reshape_task). Use before you call any of them.
4
+ ---
5
+
6
+ # Handing work over
7
+
8
+ Each tool's schema already names its fields, their limits and what goes in them. This page is only what the schemas
9
+ cannot say: how to fill the fields well.
10
+
11
+ ## The plan (`propose_plan`)
12
+
13
+ - Phases are steps you build yourself, in order, each committed on its own: a clear end, not a role or a file.
14
+ - `verification` is the list of checks that prove the change (below). A change the user sees asks for `screenshot`
15
+ in `evidence`.
16
+ - Decide what you can from the code and say so in `approach`. `questions` are only for what the human must decide.
17
+ - When the steps do not fit the request, call `reshape_task` instead of planning.
18
+
19
+ ### The checks (`verification`)
20
+
21
+ A check is one command Shinsa runs for you after the phases it covers: a fact for the reviewer and the human, never
22
+ your claim. Choose them like evidence, for what this change touches, and scope each one:
23
+
24
+ ```json
25
+ [
26
+ { "label": "Transcript tests", "command": "bun test --cwd apps/engine test/agents/transcripts", "phases": [1, 2] },
27
+ { "label": "Web types", "command": "bun run --cwd apps/web check-types", "phases": [2] },
28
+ { "label": "Lint the changed files", "command": "bunx biome check apps/web/src/lib/chat", "phases": [2] }
29
+ ]
30
+ ```
31
+
32
+ - One test file or folder, one package's type check, the linter on the paths you change. Never the whole suite
33
+ (`bun test`, `npm test`, `vitest`, `pytest`, `go test ./...`, `bun run check` and the like): Shinsa refuses it, and
34
+ CI runs the whole suite on the pull request.
35
+ - Run each command once yourself before you plan it, from the repository root, where Shinsa runs it. Where each
36
+ package has its own test config (a monorepo), point the runner at the package (`bun test --cwd apps/engine …`): a
37
+ path that matches no test file is a broken check. A scoped run that misses the package's coverage floor passes;
38
+ the floor is CI's.
39
+ - Cover every piece of new logic with tests, and make those tests checks: Shinsa measures changed-line coverage
40
+ from them before review.
41
+ - The repository's own commands, when it has any, run once before review on their own; never list them.
42
+
43
+ ## A phase (`complete_phase`)
44
+
45
+ The human reviews the change as a walkthrough assembled from your phases, in plan order, and a reviewer adds where it
46
+ disagrees. You built it and know why it is the way it is, so you write the explanation.
47
+
48
+ - **spots**: the few lines that carry the idea, not the whole function. `why` says what could go wrong or which
49
+ judgement call it holds, never what the code does. Leave out boilerplate, renames, formatting and mechanical edits.
50
+ - **judgement_calls** matter more than the code: name every one a reader would ask about, with the alternatives you
51
+ rejected. Title each as the decision ("Poll instead of webhooks"), never "Decision 1"; title a risk the same way
52
+ ("Offsets shift during an export").
53
+ - **walkthrough** (last phase): whenever the change has structure or a flow, draw it in `flow` (or `approach` for
54
+ structure) as a text diagram in a fenced block, at most 72 columns, a few words beside each step. Reviewers read it
55
+ first. Skip it only for one small edit.
56
+
57
+ ```
58
+ complete_phase { spots } the Agent's hand-over
59
+ │
60
+ ▼
61
+ assembleReport ──► WorkReport one report, plan order
62
+ │
63
+ ▼
64
+ Review tab ──► Code tab a spot opens its lines
65
+ ```
66
+
67
+ - **testing.manual** starts from where to go (the preview URL, the local preview you attached, or the command that starts the app and its local URL),
68
+ then one concrete step each, then the edge cases worth trying (an empty field, a narrow window, a second tab). An
69
+ `expect` is concrete enough to tell pass from fail; "it works" is not a result. Link a file in an action as
70
+ `[duplicate.ts](shinsa://file/src/paywalls/duplicate.ts#L12-L20)`. Leave `manual` empty only when
71
+ nothing can be tried by hand, and say so in `automated`.
72
+ - **steps** are only what needs a person with production access. Do everything in the repository yourself first (code,
73
+ tests, docs, `.env.example`, the migration file). Name every variable and secret production does not have yet, give
74
+ the exact command, never a secret's value. Write the title and detail as markdown the human can act on: names,
75
+ variables and files in backticks, a dashboard as a link with its full URL, a task as its shinsa:// link. Only the human ticks a step; changing a step's title, detail, kind or
76
+ command asks them to do it again, so change one only when what they must do changed. Never put `pre_merge` or
77
+ `post_merge` in `reshape_task`.
78
+ - **watchdogs** watch the change after it merges, through data the tests never see (traces, logs, errors, analytics,
79
+ support messages); add one where the change sends something the world reads or writes, never for a refactor. Read
80
+ how the repository ships first: when the merge is not the release, set `starts: production` with a
81
+ `production_check`. Any MCP server you have can be the `source`, not only the data sources the last phase's prompt
82
+ lists, whose descriptions are hints: list them with `mcp_list` and check each that could hold the data with its own
83
+ tools (list its Workers or services, query the logs of the one the change touches) before you decide none does. Ask
84
+ with `source_request` (the data, the code that sends it and the servers you checked and why each falls short,
85
+ servers to connect) only when none reaches it; Shinsa refuses a suggestion of a server you already have unless the
86
+ evidence says “checked <server>” and why it falls short. The schedule fields are optional
87
+ and the settings fill the rest. An issue a check finds becomes a task forked from this one.
88
+
89
+ - **check_changes**: keep the checks current as you build. When a phase adds a file, a test or a package the checks
90
+ do not cover, add a check for it in that phase's hand-over, with a one-sentence `reason` the human reads. The
91
+ repository's own checks (`r1`…) are the human's. A failure your change caused comes back to you as a fix; one that
92
+ passes when its test files run alone, or already fails on the base branch, does not.
93
+
94
+ Attach evidence with `attach_evidence` before the last phase (the `evidence` skill): for a test or a check, link the
95
+ check by its id instead of pasting output.
96
+
97
+ ## A fix (`complete_fix`)
98
+
99
+ Shinsa runs again the failing checks and the checks of every phase whose files the fix changed. Name other checks the
100
+ fix touches in `checks`, and fix a check whose command was wrong or too wide with `check_changes`; never widen one to
101
+ the whole suite to make it pass. While you fix, run only the test files or folders the fix touches.
102
+
103
+ Evidence must show the work as it is after the fix: attach what the fix changed again with the same `key` (it
104
+ replaces the old item), remove what no longer applies with `remove_evidence`, and name in `evidence_kept` each earlier
105
+ item the fix touched that still holds.
106
+
107
+ When the fix answers something the human sent, it carries `reply` (Replying to the human, below).
108
+
109
+ Send `walkthrough` only when the fix changes the approach, the flow, a risk, the testing, the steps or the watchdogs. Each part you
110
+ send replaces that part whole, so send the full new list, not just the new item.
111
+
112
+ ## Replying to the human (`reply`)
113
+
114
+ `propose_plan`, `complete_phase`, `complete_fix`, `answer`, `report_diagnosis`, `submit_report` and `report_outcome`
115
+ take `reply`. When the hand-over follows something the human sent (feedback on a plan, a request at review, a
116
+ question, line comments, a follow-up, or a message while you work), `reply` is required; on a hand-over nobody asked
117
+ for, such as a first plan, it is refused. The human reads it above the plan, phase, fix or result, in the chat and on
118
+ the overview, so it must stand alone, and the rest of the hand-over stays the full plan or result, never a quote of
119
+ their request:
120
+
121
+ - `headline`: one sentence, what you did about their request.
122
+ - `points`: each thing they raised, in their order and their words cut short, marked `done`, `answered` (a question,
123
+ and the note is the answer) or `not_changed` (the note says why). Never mark a point done that you did not change.
124
+ - `next`: what they do now to see or try it, as numbered steps with exact commands in ```bash run blocks and full
125
+ links. Leave it out when there is nothing to do.
126
+
127
+ ## Review findings (`report_review`)
128
+
129
+ `blocking` is a bug, a missed requirement, a broken rule or a check the change makes fail (not one already failing
130
+ on main); the agent fixes it before the human reviews. `should_fix` is not proven broken but worth holding the merge
131
+ for; the human sees it with Fix chosen. `optional` is taste or polish; the human sees it with Dismiss chosen. One
132
+ finding per problem, each one you reproduced (the `review` skill).
133
+
134
+ ## Inquiries
135
+
136
+ `answer`, `report_diagnosis` and `submit_report` take `propose_change` only when what you found calls for a code
137
+ change; the human decides whether the task becomes it.
138
+
139
+ ## Copy
140
+
141
+ Sentence case, plain words, no em dashes, no exclamation marks, no filler, no markdown inside short fields. In a
142
+ Markdown field, a command the human runs themselves goes in a ```bash run block; commands in structured fields (a
143
+ `command` target, a step's `command`) are always runnable, so never fence them.
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: review
3
+ description: How a Shinsa reviewer judges a change before the human sees it. Use whenever you are the reviewer, or when you check your own work before `complete_phase` or `complete_fix`.
4
+ ---
5
+
6
+ # Reviewing a change
7
+
8
+ You are a signal for the human, never the approval. Your job is to catch what the human would otherwise have to send back, so the human's review is about judgement, not about mistakes.
9
+
10
+ A finding you cannot reproduce is a guess. A fix you have not watched fail without it is a hope. Keep both out of the report.
11
+
12
+ ## 1. Scope
13
+
14
+ - Your brief names the change: the branch against the default branch (`git diff $(git merge-base HEAD origin/<default>)`),
15
+ against the branch a stacked task sits on, or, in a later round, only that round's commits. Read every file in it.
16
+ - Read the request and the approved plan first. The change is judged against them, then against the repository rules.
17
+
18
+ ## 2. The checks, and what they miss
19
+
20
+ When you are the reviewer, Shinsa has already run the task's checks: the scoped commands the agent chose for each phase (a test file or folder, a package's type check, the linter on the changed paths) and the repository's own commands, once before review. Your brief lists each with its result. Nothing in them blocks, or you would not be reviewing. Look for what they miss:
21
+
22
+ - Code the change touches that no check covers: a changed module with no test among the checks, a package whose types no check runs. Run what covers it yourself, scoped to those files or that package (copy the commands from the workflows and package scripts), and report a failure as blocking.
23
+ - A check scoped so narrowly that it proves nothing about the change, or one that passes with and without it.
24
+ - Changed lines no test runs, when your brief lists coverage gaps.
25
+
26
+ CI runs the whole suite on the pull request after your review, so never run it yourself: other agents share this machine, and Shinsa refuses the command. A result marked "passed when re-run alone" passed; one marked "already failing on the base branch" fails on main too, so it is not the change's and does not count against it. A claim in a summary that something passes is not evidence. A check that fails because of the change is always a blocking finding.
27
+
28
+ ## 3. Rank every finding
29
+
30
+ Every finding gets one of three levels, named for what should happen to it:
31
+
32
+ - `blocking`: the agent fixes it before the human sees the review. The list below.
33
+ - `should_fix`: not proven broken, but the change is worse without the fix and you would hold the merge for it in a
34
+ colleague's pull request: an edge case nothing handles, untested logic that decides something, a helper the
35
+ repository already has re-implemented, a misleading name, message or doc. The human sees it with Fix chosen.
36
+ - `optional`: taste, polish or a small cleanup the change is fine without. The human sees it with Dismiss chosen.
37
+
38
+ The human trusts the default, so rank honestly: a `should_fix` is a request, an `optional` is a remark. When you are
39
+ unsure between the two, ask whether you would hold the merge for it.
40
+
41
+ ### What is blocking
42
+
43
+ - A bug: something that breaks, crashes, loses data, or behaves differently from the request.
44
+ - A missed requirement from the request or the plan.
45
+ - A broken repository rule (its CLAUDE.md, AGENTS.md, lint, conventions).
46
+ - Pattern drift that a rule names: new code that does something the repository already has a way to do, and does it
47
+ another way (see below).
48
+ - A check the change makes fail (not one already failing on main), a test that encodes the old behaviour, a test that
49
+ passes with and without the fix.
50
+ - UI work without evidence, or evidence that does not show the changed flow. Capture your own as the evidence skill
51
+ says, so the human has independent evidence either way. When you capture a view again in a later review, attach it
52
+ with the same `key` so it replaces your earlier shot, and remove your own that no longer applies.
53
+
54
+ Everything else is `should_fix` or `optional`. Do not report taste as blocking, and do not rank a real problem
55
+ `optional` because it is small.
56
+
57
+ ## 3a. Check the patterns
58
+
59
+ The checks catch what a tool can. Read the new code next to the code it sits beside and look for what only a reader
60
+ sees:
61
+
62
+ - A helper, hook, component or query re-implemented when the repository already has one that does the job. Find the
63
+ existing one (`grep` for its name and for the idea) and name it in the finding.
64
+ - A new way of doing what the repository does one way everywhere: error handling, naming, a data-loading pattern, the
65
+ folder a kind of file lives in, how tests are set up.
66
+ - A new dependency for something the repository already does without it.
67
+
68
+ When the repository's rules name the pattern (its CLAUDE.md, a conventions skill, a lint rule), the drift is a broken
69
+ rule and blocking. Otherwise it is `should_fix`, with the existing code to follow.
70
+
71
+ ## 4. Prove it
72
+
73
+ For each blocking finding, point to `file:line` and say what breaks and how you saw it. If you cannot make it happen, it is `should_fix` at most.
74
+
75
+ ## 5. Judge, do not obey
76
+
77
+ Earlier review comments, bots and your own instincts are input. Decide for each: valid, stale or a nitpick.
78
+
79
+ ## 6. Check the judgement calls
80
+
81
+ Your brief numbers the judgement calls the agent made. They are its claims about the change, not its reasoning: read
82
+ the code each is about and decide whether you would have made the same call. Where you would not, say why and what you
83
+ would do instead. A call that breaks the request or a rule is a blocking finding, not only a disagreement.
84
+
85
+ ## 7. Check the steps around the merge
86
+
87
+ Your brief lists the steps the agent left for the human before and after the merge. Check the list against the code:
88
+
89
+ - A new environment variable or secret the code reads, a migration file, a deploy, a config or feature flag, a
90
+ service to restart or a third-party setting the change needs, missing from the list: a blocking finding, naming
91
+ the step that is missing.
92
+ - A step an agent could have done in the repository (code, tests, docs, `.env.example`, the migration file itself): a
93
+ finding to do it instead.
94
+ - A step without the command or the place it needs, or one in the wrong order (`pre_merge` for something that needs
95
+ the merged code): `should_fix`.
96
+ - A secret's value written into a step: blocking.
97
+
98
+ ## 8. Check the guide for testing it
99
+
100
+ Your brief lists how the agent says to test the change: what the tests cover and the steps the human tries by hand.
101
+ Follow the steps you can from the worktree (start the app, open the URL, run the command, read the file).
102
+
103
+ - A step you cannot follow: a URL, file, command or screen that does not exist or does not lead where it says, or an
104
+ action too vague to do. A finding, anchored to the line the step is about.
105
+ - A step whose expected result is vague ("it works", "looks right") or does not match what you see. A finding.
106
+ - A user-visible change with no manual steps, or a guide that skips the edge case the change is about: `should_fix`.
107
+ - A claim in `automated` the tests do not back (a test file that does not exist or does not check what it says): a
108
+ blocking finding.
109
+
110
+ ## 9. Check what the tests miss
111
+
112
+ When the repository measures test coverage, your brief says how many of the changed lines the tests run, and lists
113
+ the files and line ranges (new-file line numbers) that no test runs. Read each of those ranges.
114
+
115
+ - Important new logic no test runs (a branch that decides something, error handling, a calculation, a migration): a
116
+ finding anchored to the range, blocking when a bug there would go unnoticed, `should_fix` otherwise.
117
+ - Leave trivial lines out: a log line, a type, a re-export, a guard that cannot fire.
118
+ - Coverage counts lines a test ran, not lines a test checked. A covered line with no assertion on its result is still
119
+ worth a `should_fix` when it matters.
120
+
121
+ ## Report
122
+
123
+ `report_review` with a `summary` (one or two sentences: what you checked and your overall view of the change) and the findings, most severe first, each with a `title` (what is wrong, in a few words), a `message` (what is wrong and why it matters) and a `fix` when you know what to change; an empty list when you found nothing; then `disagreements`, the judgement calls you would have made differently, by number. Nothing about what is fine. Then stop without restating the findings.
124
+
125
+ In a `message` or a `fix`, a command the human should run themselves (a migration, a sign-in) goes in a ```` ```bash run ```` block, which Shinsa gives a Run in terminal button; code you suggest and example commands go in a plain fence (```` ```ts ````, ```` ```bash ````), which can only be copied.
Binary file
Binary file
Binary file
@@ -0,0 +1 @@
1
+ const e=Object.freeze(JSON.parse('{"displayName":"ABAP","fileTypes":["abap","ABAP"],"foldingStartMarker":"/\\\\*\\\\*|\\\\{\\\\s*$","foldingStopMarker":"\\\\*\\\\*/|^\\\\s*}","name":"abap","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"^\\\\*.*\\\\n?","name":"comment.line.full.abap"},{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"\\".*\\\\n?","name":"comment.line.partial.abap"},{"match":"(?<!\\\\S)##.*?(?=([,.:\\\\s]))","name":"comment.line.pragma.abap"},{"match":"(?i)(?<=[-~\\\\s])(?<=[-=]>)([/_a-z][/-9_a-z]*)(?=\\\\s+(?:|[-*+/]|&&?)=\\\\s+)","name":"variable.other.abap"},{"match":"\\\\b[0-9]+(\\\\b|[,.])","name":"constant.numeric.abap"},{"match":"(?i)(^|\\\\s+)((P(?:UBLIC|RIVATE|ROTECTED))\\\\sSECTION)(?=\\\\s+|[.:])","name":"storage.modifier.class.abap"},{"begin":"(?<!\\\\\\\\)(\\\\|)(.*?)","beginCaptures":{"1":{"name":"constant.character.escape.abap"}},"end":"(?<!\\\\\\\\)(\\\\||(\\\\\\\\\\\\\\\\\\\\|))","endCaptures":{"1":{"name":"constant.character.escape.abap"}},"name":"string.interpolated.abap","patterns":[{"match":"(\\\\{ )|( })","name":"constant.character.escape"},{"match":"\\\\\\\\\\\\|","name":"constant.character.escape.abap"},{"match":"(?i)(?<=\\\\s)(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\\\\s=)","name":"entity.name.property.stringtemplate.abap"},{"match":"(?i)(?<==\\\\s)(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\\\\s)","name":"entity.value.property.stringtemplate.abap"}]},{"begin":"\'","end":"\'","name":"string.quoted.single.abap","patterns":[{"match":"\'\'","name":"constant.character.escape.abap"}]},{"begin":"`","end":"`","name":"string.quoted.single.abap","patterns":[{"match":"``","name":"constant.character.escape.abap"}]},{"begin":"(?i)^\\\\s*(class)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.block.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","name":"meta.block.begin.implementation.abap","patterns":[{"match":"(?i)(^|\\\\s+)(definition|implementation|public|inheriting\\\\s+from|final|deferred|abstract|shared\\\\s+memory\\\\s+enabled|(global|local)*\\\\s*friends|(create\\\\s+(p(?:ublic|rotected|rivate)))|for\\\\s+behavior\\\\s+of|for\\\\s+testing|risk\\\\s+level\\\\s+(critical|dangerous|harmless))|duration\\\\s(short|medium|long)(?=\\\\s+|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","contentName":"entity.name.type.block.abap","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(method)\\\\s(?:([/_a-z][/-9_a-z]*)~)?([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"},"3":{"name":"entity.name.function.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(BY(?:\\\\s+DATABASE(\\\\s+PROCEDURE|\\\\s+FUNCTION|\\\\s+GRAPH\\\\s+WORKSPACE)|\\\\s+KERNEL\\\\s+MODULE))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(FOR\\\\s+(HDB|LLANG))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=\\\\s)(OPTIONS\\\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\\\s+SYNTAX\\\\s+ERRORS))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(LANGUAGE\\\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"captures":{"1":{"name":"storage.modifier.method.abap"}},"match":"(?i)(?<=\\\\s)(USING)\\\\s+([/_a-z][/-9=>_a-z]*)+(?=\\\\s+|\\\\.)"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(INTERFACE)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(DEFERRED|PUBLIC)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"}]},{"begin":"(?i)^\\\\s*(FORM)\\\\s([/_a-z][-/-9?_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\\\s+|\\\\.)","name":"storage.modifier.form.abap"},{"include":"#abaptypes"},{"include":"#keywords_followed_by_braces"}]},{"match":"(?i)(end(?:class|method|form|interface))","name":"storage.type.block.end.abap"},{"match":"(?i)(<[A-Z_a-z][0-9A-Z_a-z]*>)","name":"variable.other.field.symbol.abap"},{"include":"#keywords"},{"include":"#abap_constants"},{"include":"#reserved_names"},{"include":"#operators"},{"include":"#builtin_functions"},{"include":"#abaptypes"},{"include":"#system_fields"},{"include":"#sql_functions"},{"include":"#sql_types"}],"repository":{"abap_constants":{"match":"(?i)(?<=\\\\s)(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=[,.\\\\s])","name":"constant.language.abap"},"abaptypes":{"patterns":[{"match":"(?i)\\\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|[cdfinptx])(?=[,.\\\\s])","name":"support.type.abap"},{"match":"(?i)\\\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=[,.\\\\s])","name":"keyword.control.simple.abap"}]},"arithmetic_operator":{"match":"(?i)(?<=\\\\s)([-*+]|\\\\*\\\\*|[%/]|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\\\s)","name":"keyword.control.simple.abap"},"builtin_functions":{"match":"(?i)(?<=\\\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\\\()","name":"entity.name.function.builtin.abap"},"comparison_operator":{"match":"(?i)(?<=\\\\s)([<>]|<=|>=|=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|[moz])(?=\\\\s)","name":"keyword.control.simple.abap"},"control_keywords":{"match":"(?i)(^|\\\\s)(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=[.:\\\\s])","name":"keyword.control.flow.abap"},"generic_names":{"match":"[A-Z_a-z][0-9A-Z_a-z]*"},"keywords":{"patterns":[{"include":"#main_keywords"},{"include":"#text_symbols"},{"include":"#control_keywords"},{"include":"#keywords_followed_by_braces"}]},"keywords_followed_by_braces":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"variable.other.abap"}},"match":"(?i)\\\\b(data|value|field-symbol|final|reference|resumable)\\\\((<?[/_a-z][/-9_a-z]*>?)\\\\)"},"logical_operator":{"match":"(?i)(?<=\\\\s)(not|or|and)(?=\\\\s)","name":"keyword.control.simple.abap"},"main_keywords":{"match":"(?i)(?<=^|\\\\s)(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|after|alias|aliases|all|allocate|amdp|analysis|analyzer|append|appending|application|archive|area|arithmetic|as|ascending|assert|assign|assigned|assigning|association|asynchronous|at|attributes|authority|authority-check|authorization|auto|back|background|backward|badi|base|before|begin|behavior|between|binary|bit|blanks??|blocks??|bound|boundaries|bounds|boxed|break|break-point|buffer|by|bypassing|byte|byte-order|call|calling|cast|casting|cds|centered|change|changing|channels|char-to-hex|character|check|checkbox|cid|circular|class|class-data|class-events|class-methods??|class-pool|cleanup|clear|clients??|clock|clone|close|cnt|code|collect|color|column|comments??|commit|common|communication|comparing|components??|compression|compute|concatenate|cond|condense|condition|connection|constants??|contexts??|controls??|conv|conversion|convert|copy|corresponding|count|country|cover|create|currency|current|cursor|customer-function|data|database|datainfo|dataset|date|daylight|ddl|deallocate|decimals|declarations|deep|default|deferred|define|delete|deleting|demand|descending|describe|destination|detail|determine|dialog|did|directory|discarding|display|display-mode|distance|distinct|divide|divide-corresponding|dummy|duplicates??|duration|during|dynpro|edit|editor-call|empty|enabled|enabling|encoding|end|end-enhancement-section|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|endenhancement|endexec|endfunction|endian|ending|endmodule|endprovide|endselect|endwith|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|equiv|errors|escape|escaping|events??|exact|except|exception|exception-table|exceptions|excluding|exec|execute|exists|exit|exit-command|expanding|explicit|exponent|export|exporting|extended|extension|extract|fail|failed|features|fetch|field|field-groups|field-symbols|fields|file|fill|filters??|final|find|first|first-line|fixed-point|flush|following|for|format|forward|found|frames??|free|from|full|function|function-pool|generate|get|giving|graph|groups??|handler??|hashed|having|headers??|heading|help-id|help-request|hide|hint|hold|hotspot|icon|id|identification|identifier|ignore|ignoring|immediately|implemented|implicit|import|importing|in|inactive|incl|includes??|including|increment|index|index-line|indicators|infotypes|inheriting|init|initial|initialization|inner|input|insert|instances??|intensified|interface|interface-pool|interfaces|internal|intervals|into|inverse|inverted-date|is|job|join|keep|keeping|kernel|keys??|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|legacy|length|let|levels??|like|line|line-count|line-selection|line-size|linefeed|lines|link|list|list-processing|listbox|load|load-of-program|locale??|locks??|log-point|logical|lower|mapped|mapping|margin|mark|mask|match|matchcode|maximum|members|memory|mesh|message|message-id|messages|messaging|methods??|mode|modif|modifier|modify|module|move|move-corresponding|multiply|multiply-corresponding|name|nametab|native|nested|nesting|new|new-line|new-page|new-section|next|no-display|no-extension|no-gaps??|no-grouping|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unicode|non-unique|number|objects??|objmgr|obligatory|occurences??|occurrences??|occurs|of|offset|on|only|open|optional|options??|order|others|out|outer|output|output-length|overflow|overlay|pack|package|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|process|program|property|protected|provide|push|pushbutton|put|query|queue-only|queueonly|quickinfo|radiobutton|raising|ranges??|read|read-only|received??|receiving|redefinition|reduce|ref|reference|refresh|regex|reject|renaming|replace|replacement|replacing|report|reported|request|requested|required|reserve|reset|resolution|respecting|response|restore|results??|resumable|resume|retry|return|returning|right|right-justified|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scan|screen|scroll|scroll-boundary|scrolling|search|seconds|section|select|select-options|selection|selection-screen|selection-sets??|selection-table|selections|send|separated??|session|set|shared|shift|shortdump|shortdump-id|sign|simple|simulation|single|size|skip|skipping|smart|some|sort|sortable|sorted|source|specified|split|spool|spots|sql|stable|stamp|standard|start-of-selection|starting|state|statements??|statics??|statusinfo|step|step-loop|stop|structures??|style|subkey|submatches|submit|subroutine|subscreen|substring|subtract|subtract-corresponding|suffix|sum|summary|supplied|supply|suppress|switch|symbol|syntax-check|syntax-trace|system-call|system-exceptions|tab|tabbed|tables??|tableview|tabstrip|target|tasks??|test|test-injection|test-seam|testing|text|textpool|then|throw|times??|title|titlebar|to|tokens|top-lines|top-of-page|trace-file|trace-table|trailing|transaction|transfer|transformation|translate|transporting|trmac|truncate|truncation|type|type-pools??|types|uline|unassign|unbounded|under|unicode|union|unique|unit|unix|unpack|until|unwind|up|update|upper|user|user-command|using|utf-8|uuid|valid|validate|value|value-request|values|vary|varying|version|via|visible|wait|when|where|windows??|with|with-heading|with-title|without|word|work|workspace|write|xml|zone)(?=[,.:\\\\s])","name":"keyword.control.simple.abap"},"operators":{"patterns":[{"include":"#other_operator"},{"include":"#arithmetic_operator"},{"include":"#comparison_operator"},{"include":"#logical_operator"}]},"other_operator":{"match":"(?<=\\\\s)(&&?|\\\\?=|\\\\+=|-=|/=|\\\\*=|&&=|&=)(?=\\\\s)","name":"keyword.control.simple.abap"},"reserved_names":{"match":"(?i)(?<=\\\\s)(me|super)(?=[,.\\\\s]|->)","name":"constant.language.abap"},"sql_functions":{"match":"(?i)(?<=\\\\s)(abap_system_timezone|abap_user_timezone|abs|add_days|add_months|allow_precision_loss|as_geo_json|avg|bintohex|cast|ceil|coalesce|concat_with_space|concat|corr_spearman|corr|count|currency_conversion|datn_add_days|datn_add_months|datn_days_between|dats_add_days|dats_add_months|dats_days_between|dats_from_datn|dats_is_valid|dats_tims_to_tstmp|dats_to_datn|dayname|days_between|dense_rank|division|div|extract_day|extract_hour|extract_minute|extract_month|extract_second|extract_year|first_value|floor|grouping|hextobin|initcap|instr|is_valid|lag|last_value|lead|left|length|like_regexpr|locate_regexpr_after|locate_regexpr|locate|lower|lpad|ltrim|max|median|min|mod|monthname|ntile|occurrences_regexpr|over|product|rank|replace_regexpr|replace|rigth|round|row_number|rpad|rtrim|stddev|string_agg|substring_regexpr|substring|sum|tims_from_timn|tims_is_valid|tims_to_timn|to_blob|to_clob|tstmp_add_seconds|tstmp_current_utctimestamp|tstmp_is_valid|tstmp_seconds_between|tstmp_to_dats|tstmp_to_dst|tstmp_to_tims|tstmpl_from_utcl|tstmpl_to_utcl|unit_conversion|upper|utcl_add_seconds|utcl_current|utcl_seconds_between|uuid|var|weekday)(?=\\\\()","name":"entity.name.function.sql.abap"},"sql_types":{"match":"(?i)(?<=\\\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=[()\\\\s])","name":"entity.name.type.sql.abap"},"system_fields":{"captures":{"1":{"name":"variable.language.abap"},"2":{"name":"variable.language.abap"}},"match":"(?i)\\\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=[.\\\\s])"},"text_symbols":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"constant.numeric.abap"}},"match":"(?i)(?<=^|\\\\s)(text)-([0-9A-Z]{1,3})(?=[,.:\\\\s])"}},"scopeName":"source.abap"}')),a=[e];export{a as default};
@@ -0,0 +1 @@
1
+ const e=Object.freeze(JSON.parse('{"displayName":"ABAP","fileTypes":["abap","ABAP"],"foldingStartMarker":"/\\\\*\\\\*|\\\\{\\\\s*$","foldingStopMarker":"\\\\*\\\\*/|^\\\\s*}","name":"abap","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"^\\\\*.*\\\\n?","name":"comment.line.full.abap"},{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"\\".*\\\\n?","name":"comment.line.partial.abap"},{"match":"(?<!\\\\S)##.*?(?=([,.:\\\\s]))","name":"comment.line.pragma.abap"},{"match":"(?i)(?<=[-~\\\\s])(?<=[-=]>)([/_a-z][/-9_a-z]*)(?=\\\\s+(?:|[-*+/]|&&?)=\\\\s+)","name":"variable.other.abap"},{"match":"\\\\b[0-9]+(\\\\b|[,.])","name":"constant.numeric.abap"},{"match":"(?i)(^|\\\\s+)((P(?:UBLIC|RIVATE|ROTECTED))\\\\sSECTION)(?=\\\\s+|[.:])","name":"storage.modifier.class.abap"},{"begin":"(?<!\\\\\\\\)(\\\\|)(.*?)","beginCaptures":{"1":{"name":"constant.character.escape.abap"}},"end":"(?<!\\\\\\\\)(\\\\||(\\\\\\\\\\\\\\\\\\\\|))","endCaptures":{"1":{"name":"constant.character.escape.abap"}},"name":"string.interpolated.abap","patterns":[{"match":"(\\\\{ )|( })","name":"constant.character.escape"},{"match":"\\\\\\\\\\\\|","name":"constant.character.escape.abap"},{"match":"(?i)(?<=\\\\s)(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\\\\s=)","name":"entity.name.property.stringtemplate.abap"},{"match":"(?i)(?<==\\\\s)(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\\\\s)","name":"entity.value.property.stringtemplate.abap"}]},{"begin":"\'","end":"\'","name":"string.quoted.single.abap","patterns":[{"match":"\'\'","name":"constant.character.escape.abap"}]},{"begin":"`","end":"`","name":"string.quoted.single.abap","patterns":[{"match":"``","name":"constant.character.escape.abap"}]},{"begin":"(?i)^\\\\s*(class)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.block.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","name":"meta.block.begin.implementation.abap","patterns":[{"match":"(?i)(^|\\\\s+)(definition|implementation|public|inheriting\\\\s+from|final|deferred|abstract|shared\\\\s+memory\\\\s+enabled|(global|local)*\\\\s*friends|(create\\\\s+(p(?:ublic|rotected|rivate)))|for\\\\s+behavior\\\\s+of|for\\\\s+testing|risk\\\\s+level\\\\s+(critical|dangerous|harmless))|duration\\\\s(short|medium|long)(?=\\\\s+|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","contentName":"entity.name.type.block.abap","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(method)\\\\s(?:([/_a-z][/-9_a-z]*)~)?([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"},"3":{"name":"entity.name.function.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(BY(?:\\\\s+DATABASE(\\\\s+PROCEDURE|\\\\s+FUNCTION|\\\\s+GRAPH\\\\s+WORKSPACE)|\\\\s+KERNEL\\\\s+MODULE))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(FOR\\\\s+(HDB|LLANG))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=\\\\s)(OPTIONS\\\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\\\s+SYNTAX\\\\s+ERRORS))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?i)(?<=^|\\\\s)(LANGUAGE\\\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"captures":{"1":{"name":"storage.modifier.method.abap"}},"match":"(?i)(?<=\\\\s)(USING)\\\\s+([/_a-z][/-9=>_a-z]*)+(?=\\\\s+|\\\\.)"},{"begin":"(?=[A-Z_a-z][0-9A-Z_a-z]*)","end":"(?![0-9A-Z_a-z])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?i)^\\\\s*(INTERFACE)\\\\s([/_a-z][/-9_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(DEFERRED|PUBLIC)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"}]},{"begin":"(?i)^\\\\s*(FORM)\\\\s([/_a-z][-/-9?_a-z]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?i)(?<=^|\\\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\\\s+|\\\\.)","name":"storage.modifier.form.abap"},{"include":"#abaptypes"},{"include":"#keywords_followed_by_braces"}]},{"match":"(?i)(end(?:class|method|form|interface))","name":"storage.type.block.end.abap"},{"match":"(?i)(<[A-Z_a-z][0-9A-Z_a-z]*>)","name":"variable.other.field.symbol.abap"},{"include":"#keywords"},{"include":"#abap_constants"},{"include":"#reserved_names"},{"include":"#operators"},{"include":"#builtin_functions"},{"include":"#abaptypes"},{"include":"#system_fields"},{"include":"#sql_functions"},{"include":"#sql_types"}],"repository":{"abap_constants":{"match":"(?i)(?<=\\\\s)(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|adabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=[,.\\\\s])","name":"constant.language.abap"},"abaptypes":{"patterns":[{"match":"(?i)\\\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|[cdfinptx])(?=[,.\\\\s])","name":"support.type.abap"},{"match":"(?i)\\\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=[,.\\\\s])","name":"keyword.control.simple.abap"}]},"arithmetic_operator":{"match":"(?i)(?<=\\\\s)([-*+]|\\\\*\\\\*|[%/]|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\\\s)","name":"keyword.control.simple.abap"},"builtin_functions":{"match":"(?i)(?<=\\\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\\\()","name":"entity.name.function.builtin.abap"},"comparison_operator":{"match":"(?i)(?<=\\\\s)([<>]|<=|>=|=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|[moz])(?=\\\\s)","name":"keyword.control.simple.abap"},"control_keywords":{"match":"(?i)(^|\\\\s)(at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=[.:\\\\s])","name":"keyword.control.flow.abap"},"generic_names":{"match":"[A-Z_a-z][0-9A-Z_a-z]*"},"keywords":{"patterns":[{"include":"#main_keywords"},{"include":"#text_symbols"},{"include":"#control_keywords"},{"include":"#keywords_followed_by_braces"}]},"keywords_followed_by_braces":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"variable.other.abap"}},"match":"(?i)\\\\b(data|value|field-symbol|final|reference|resumable)\\\\((<?[/_a-z][/-9_a-z]*>?)\\\\)"},"logical_operator":{"match":"(?i)(?<=\\\\s)(not|or|and)(?=\\\\s)","name":"keyword.control.simple.abap"},"main_keywords":{"match":"(?i)(?<=^|\\\\s)(abap-source|abstract|accept|accepting|access|according|action|activation|actual|add|add-corresponding|adjacent|after|alias|aliases|all|allocate|amdp|analysis|analyzer|append|appending|application|archive|area|arithmetic|as|ascending|assert|assign|assigned|assigning|association|asynchronous|at|attributes|authority|authority-check|authorization|auto|back|background|backward|badi|base|before|begin|behavior|between|binary|bit|blanks??|blocks??|bound|boundaries|bounds|boxed|break|break-point|buffer|by|bypassing|byte|byte-order|call|calling|cast|casting|cds|centered|change|changing|channels|char-to-hex|character|check|checkbox|cid|circular|class|class-data|class-events|class-methods??|class-pool|cleanup|clear|clients??|clock|clone|close|cnt|code|collect|color|column|comments??|commit|common|communication|comparing|components??|compression|compute|concatenate|cond|condense|condition|connection|constants??|contexts??|controls??|conv|conversion|convert|copy|corresponding|count|country|cover|create|currency|current|cursor|customer-function|data|database|datainfo|dataset|date|daylight|ddl|deallocate|decimals|declarations|deep|default|deferred|define|delete|deleting|demand|descending|describe|destination|detail|determine|dialog|did|directory|discarding|display|display-mode|distance|distinct|divide|divide-corresponding|dummy|duplicates??|duration|during|dynpro|edit|editor-call|empty|enabled|enabling|encoding|end|end-enhancement-section|end-of-definition|end-of-page|end-of-selection|end-test-injection|end-test-seam|endenhancement|endexec|endfunction|endian|ending|endmodule|endprovide|endselect|endwith|enhancement|enhancement-point|enhancement-section|enhancements|entities|entity|entries|entry|enum|equiv|errors|escape|escaping|events??|exact|except|exception|exception-table|exceptions|excluding|exec|execute|exists|exit|exit-command|expanding|explicit|exponent|export|exporting|extended|extension|extract|fail|failed|features|fetch|field|field-groups|field-symbols|fields|file|fill|filters??|final|find|first|first-line|fixed-point|flush|following|for|format|forward|found|frames??|free|from|full|function|function-pool|generate|get|giving|graph|groups??|handler??|hashed|having|headers??|heading|help-id|help-request|hide|hint|hold|hotspot|icon|id|identification|identifier|ignore|ignoring|immediately|implemented|implicit|import|importing|in|inactive|incl|includes??|including|increment|index|index-line|indicators|infotypes|inheriting|init|initial|initialization|inner|input|insert|instances??|intensified|interface|interface-pool|interfaces|internal|intervals|into|inverse|inverted-date|is|job|join|keep|keeping|kernel|keys??|keywords|kind|language|last|late|layout|leading|leave|left|left-justified|legacy|length|let|levels??|like|line|line-count|line-selection|line-size|linefeed|lines|link|list|list-processing|listbox|load|load-of-program|locale??|locks??|log-point|logical|lower|mapped|mapping|margin|mark|mask|match|matchcode|maximum|members|memory|mesh|message|message-id|messages|messaging|methods??|mode|modif|modifier|modify|module|move|move-corresponding|multiply|multiply-corresponding|name|nametab|native|nested|nesting|new|new-line|new-page|new-section|next|no-display|no-extension|no-gaps??|no-grouping|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unicode|non-unique|number|objects??|objmgr|obligatory|occurences??|occurrences??|occurs|of|offset|on|only|open|optional|options??|order|others|out|outer|output|output-length|overflow|overlay|pack|package|padding|page|parameter|parameter-table|parameters|part|partially|pcre|perform|performing|permissions|pf-status|places|pool|position|pragmas|preceding|precompiled|preferred|preserving|primary|print|print-control|private|privileged|procedure|process|program|property|protected|provide|push|pushbutton|put|query|queue-only|queueonly|quickinfo|radiobutton|raising|ranges??|read|read-only|received??|receiving|redefinition|reduce|ref|reference|refresh|regex|reject|renaming|replace|replacement|replacing|report|reported|request|requested|required|reserve|reset|resolution|respecting|response|restore|results??|resumable|resume|retry|return|returning|right|right-justified|rollback|rows|rp-provide-from-last|run|sap|sap-spool|save|saving|scan|screen|scroll|scroll-boundary|scrolling|search|seconds|section|select|select-options|selection|selection-screen|selection-sets??|selection-table|selections|send|separated??|session|set|shared|shift|shortdump|shortdump-id|sign|simple|simulation|single|size|skip|skipping|smart|some|sort|sortable|sorted|source|specified|split|spool|spots|sql|stable|stamp|standard|start-of-selection|starting|state|statements??|statics??|statusinfo|step|step-loop|stop|structures??|style|subkey|submatches|submit|subroutine|subscreen|substring|subtract|subtract-corresponding|suffix|sum|summary|supplied|supply|suppress|switch|symbol|syntax-check|syntax-trace|system-call|system-exceptions|tab|tabbed|tables??|tableview|tabstrip|target|tasks??|test|test-injection|test-seam|testing|text|textpool|then|throw|times??|title|titlebar|to|tokens|top-lines|top-of-page|trace-file|trace-table|trailing|transaction|transfer|transformation|translate|transporting|trmac|truncate|truncation|type|type-pools??|types|uline|unassign|unbounded|under|unicode|union|unique|unit|unix|unpack|until|unwind|up|update|upper|user|user-command|using|utf-8|uuid|valid|validate|value|value-request|values|vary|varying|version|via|visible|wait|when|where|windows??|with|with-heading|with-title|without|word|work|workspace|write|xml|zone)(?=[,.:\\\\s])","name":"keyword.control.simple.abap"},"operators":{"patterns":[{"include":"#other_operator"},{"include":"#arithmetic_operator"},{"include":"#comparison_operator"},{"include":"#logical_operator"}]},"other_operator":{"match":"(?<=\\\\s)(&&?|\\\\?=|\\\\+=|-=|/=|\\\\*=|&&=|&=)(?=\\\\s)","name":"keyword.control.simple.abap"},"reserved_names":{"match":"(?i)(?<=\\\\s)(me|super)(?=[,.\\\\s]|->)","name":"constant.language.abap"},"sql_functions":{"match":"(?i)(?<=\\\\s)(abap_system_timezone|abap_user_timezone|abs|add_days|add_months|allow_precision_loss|as_geo_json|avg|bintohex|cast|ceil|coalesce|concat_with_space|concat|corr_spearman|corr|count|currency_conversion|datn_add_days|datn_add_months|datn_days_between|dats_add_days|dats_add_months|dats_days_between|dats_from_datn|dats_is_valid|dats_tims_to_tstmp|dats_to_datn|dayname|days_between|dense_rank|division|div|extract_day|extract_hour|extract_minute|extract_month|extract_second|extract_year|first_value|floor|grouping|hextobin|initcap|instr|is_valid|lag|last_value|lead|left|length|like_regexpr|locate_regexpr_after|locate_regexpr|locate|lower|lpad|ltrim|max|median|min|mod|monthname|ntile|occurrences_regexpr|over|product|rank|replace_regexpr|replace|rigth|round|row_number|rpad|rtrim|stddev|string_agg|substring_regexpr|substring|sum|tims_from_timn|tims_is_valid|tims_to_timn|to_blob|to_clob|tstmp_add_seconds|tstmp_current_utctimestamp|tstmp_is_valid|tstmp_seconds_between|tstmp_to_dats|tstmp_to_dst|tstmp_to_tims|tstmpl_from_utcl|tstmpl_to_utcl|unit_conversion|upper|utcl_add_seconds|utcl_current|utcl_seconds_between|uuid|var|weekday)(?=\\\\()","name":"entity.name.function.sql.abap"},"sql_types":{"match":"(?i)(?<=\\\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=[()\\\\s])","name":"entity.name.type.sql.abap"},"system_fields":{"captures":{"1":{"name":"variable.language.abap"},"2":{"name":"variable.language.abap"}},"match":"(?i)\\\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=[.\\\\s])"},"text_symbols":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"constant.numeric.abap"}},"match":"(?i)(?<=^|\\\\s)(text)-([0-9A-Z]{1,3})(?=[,.:\\\\s])"}},"scopeName":"source.abap"}'));var a=[e];export{a as default};