@shllg/emend 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +144 -2
  3. package/bin/emend +27 -0
  4. package/dist/emend.mjs +83479 -0
  5. package/dist/publish-worker.mjs +55744 -0
  6. package/dist/skills/emend-feedback/SKILL.md +242 -0
  7. package/dist/skills/emend-publish/SKILL.md +82 -0
  8. package/dist/skills/emend-review/SKILL.md +404 -0
  9. package/dist/skills/emend-review/references/manifest.md +272 -0
  10. package/dist/web/assets/App-DmCsRMr_.js +4 -0
  11. package/dist/web/assets/DiffPane-DV6oIbim.js +238 -0
  12. package/dist/web/assets/abap-CLvhMVsD.js +1 -0
  13. package/dist/web/assets/actionscript-3-Cs6JJXT5.js +1 -0
  14. package/dist/web/assets/ada-X3Y2mlq2.js +1 -0
  15. package/dist/web/assets/ahk-DwADkxyd.js +1 -0
  16. package/dist/web/assets/ahk2-_6rzW9BS.js +1 -0
  17. package/dist/web/assets/andromeeda-vGVdxbeo.js +1 -0
  18. package/dist/web/assets/angular-html-BswFT_28.js +1 -0
  19. package/dist/web/assets/angular-html-DOLkzBtu.js +1 -0
  20. package/dist/web/assets/angular-ts-DOMhGxLQ.js +1 -0
  21. package/dist/web/assets/apache-U0d_L8uA.js +1 -0
  22. package/dist/web/assets/apex-KFGFyKwG.js +1 -0
  23. package/dist/web/assets/apl-Dio8Ke0X.js +1 -0
  24. package/dist/web/assets/app-Bzpxikx1.js +10 -0
  25. package/dist/web/assets/app-DItdWcRc.css +2 -0
  26. package/dist/web/assets/applescript-CCn79oCD.js +1 -0
  27. package/dist/web/assets/ara-4CJ0cIlV.js +1 -0
  28. package/dist/web/assets/asciidoc-SCjQUq34.js +1 -0
  29. package/dist/web/assets/asm-Cmm7eHzH.js +1 -0
  30. package/dist/web/assets/astro-CN6YWUG3.js +1 -0
  31. package/dist/web/assets/aurora-x-CDeNXAV0.js +1 -0
  32. package/dist/web/assets/awk-BWXHIvNe.js +1 -0
  33. package/dist/web/assets/ayu-dark-DluEY0Gj.js +1 -0
  34. package/dist/web/assets/ayu-light-C3h-C4tm.js +1 -0
  35. package/dist/web/assets/ayu-mirage-Bqwy1Gya.js +1 -0
  36. package/dist/web/assets/ballerina-B7ZEbQpA.js +1 -0
  37. package/dist/web/assets/bat-C7sJWglS.js +1 -0
  38. package/dist/web/assets/bat-HFWzIrao.js +1 -0
  39. package/dist/web/assets/beancount-C2IN4Vk8.js +1 -0
  40. package/dist/web/assets/berry-DKpUyyne.js +1 -0
  41. package/dist/web/assets/bibtex-Conh3HYz.js +1 -0
  42. package/dist/web/assets/bibtex-DUQXB5kJ.js +1 -0
  43. package/dist/web/assets/bicep-CUHmPFLl.js +1 -0
  44. package/dist/web/assets/bird2-CYIUgYqB.js +1 -0
  45. package/dist/web/assets/blade-BrDpNfUX.js +1 -0
  46. package/dist/web/assets/bsl-gRq8cI6V.js +1 -0
  47. package/dist/web/assets/c-Cz4nF6n_.js +1 -0
  48. package/dist/web/assets/c-SSSlmE39.js +1 -0
  49. package/dist/web/assets/c3-D0apG41V.js +1 -0
  50. package/dist/web/assets/cadence-CQ2zXKGN.js +1 -0
  51. package/dist/web/assets/cairo-D66nqRlU.js +1 -0
  52. package/dist/web/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
  53. package/dist/web/assets/catppuccin-latte-CtsyrtPq.js +1 -0
  54. package/dist/web/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
  55. package/dist/web/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
  56. package/dist/web/assets/chapel-C1sUNn9S.js +1 -0
  57. package/dist/web/assets/clarity-CtfBBspg.js +1 -0
  58. package/dist/web/assets/clojure-CAE6QLVB.js +1 -0
  59. package/dist/web/assets/clojure-zIjcJonk.js +1 -0
  60. package/dist/web/assets/cmake-Cpsd-0Y4.js +1 -0
  61. package/dist/web/assets/cmake-T_kMSWuN.js +1 -0
  62. package/dist/web/assets/cobol-BvqUwMCV.js +1 -0
  63. package/dist/web/assets/codeowners-C8r90Shi.js +1 -0
  64. package/dist/web/assets/codeql-oeQT6MSM.js +1 -0
  65. package/dist/web/assets/coffee-BSYIIMkB.js +1 -0
  66. package/dist/web/assets/coffee-NEqv5HL5.js +1 -0
  67. package/dist/web/assets/common-lisp-Cv5bFMCO.js +1 -0
  68. package/dist/web/assets/coq-CGaSfhwR.js +1 -0
  69. package/dist/web/assets/core-DeNxjJfs.js +4 -0
  70. package/dist/web/assets/core-Do9T5j9E.js +1 -0
  71. package/dist/web/assets/core-pJdRfnbv.js +1 -0
  72. package/dist/web/assets/cpp-BDT6bThX.js +1 -0
  73. package/dist/web/assets/cpp-vothkh01.js +1 -0
  74. package/dist/web/assets/crystal-DEF7AEJQ.js +1 -0
  75. package/dist/web/assets/csharp-B3DbjJyj.js +1 -0
  76. package/dist/web/assets/csharp-CFKDkFDZ.js +1 -0
  77. package/dist/web/assets/css-BGIxQoYs.js +1 -0
  78. package/dist/web/assets/css-DgaLhXQH.js +1 -0
  79. package/dist/web/assets/csv-B_R7vXwK.js +1 -0
  80. package/dist/web/assets/csv-k4CB9lhx.js +1 -0
  81. package/dist/web/assets/cue-CE9AQfxI.js +1 -0
  82. package/dist/web/assets/cypher-ClKdZ_lG.js +1 -0
  83. package/dist/web/assets/d-qD-0Kul2.js +1 -0
  84. package/dist/web/assets/dark-plus-Cs2F2srj.js +1 -0
  85. package/dist/web/assets/dart-DjhkpiWP.js +1 -0
  86. package/dist/web/assets/dart-_dH3dQdM.js +1 -0
  87. package/dist/web/assets/dax-BkyTk9wS.js +1 -0
  88. package/dist/web/assets/desktop-Dlh5hvp9.js +1 -0
  89. package/dist/web/assets/diff-CR4ZX0DC.js +1 -0
  90. package/dist/web/assets/diff-counts-BjEBBpbE.js +95 -0
  91. package/dist/web/assets/diff-counts-CdprTo7g.css +1 -0
  92. package/dist/web/assets/diff-eeGLjE2V.js +1 -0
  93. package/dist/web/assets/docker-CAzcIhYn.js +1 -0
  94. package/dist/web/assets/docker-D0LTq72f.js +1 -0
  95. package/dist/web/assets/dotenv-CuH5my32.js +1 -0
  96. package/dist/web/assets/dracula-BHWKrbxM.js +1 -0
  97. package/dist/web/assets/dracula-soft-5eyTD99u.js +1 -0
  98. package/dist/web/assets/dream-maker-DW3nJb8Q.js +1 -0
  99. package/dist/web/assets/edge-B_SBzXGF.js +1 -0
  100. package/dist/web/assets/elixir-BL8v4QDr.js +1 -0
  101. package/dist/web/assets/elixir-BN3BkYei.js +1 -0
  102. package/dist/web/assets/elm-CC1TmzeR.js +1 -0
  103. package/dist/web/assets/emacs-lisp-DR2vtWaj.js +1 -0
  104. package/dist/web/assets/engine-javascript-DKxkqixV.js +141 -0
  105. package/dist/web/assets/engine-javascript-DgfjoSY2.js +141 -0
  106. package/dist/web/assets/erb-BjlLGk-_.js +1 -0
  107. package/dist/web/assets/erlang-CCXss5H6.js +1 -0
  108. package/dist/web/assets/erlang-ir39Pet8.js +1 -0
  109. package/dist/web/assets/everforest-dark-sB-x3p7T.js +1 -0
  110. package/dist/web/assets/everforest-light-Df2xbC6M.js +1 -0
  111. package/dist/web/assets/fennel-DQxkIbk2.js +1 -0
  112. package/dist/web/assets/fish-BJitypiv.js +1 -0
  113. package/dist/web/assets/fluent-C03EYrpw.js +1 -0
  114. package/dist/web/assets/fortran-fixed-form-1cK5gXa1.js +1 -0
  115. package/dist/web/assets/fortran-free-form-C5q_0aPq.js +1 -0
  116. package/dist/web/assets/fortran-free-form-uHOymLAb.js +1 -0
  117. package/dist/web/assets/fsharp-C37UASp4.js +1 -0
  118. package/dist/web/assets/fsharp-SO2Zcqp5.js +1 -0
  119. package/dist/web/assets/gdresource-LxjHb83i.js +1 -0
  120. package/dist/web/assets/gdscript-CJEqcM-5.js +1 -0
  121. package/dist/web/assets/gdscript-DJFPOtzS.js +1 -0
  122. package/dist/web/assets/gdshader-BNp4G147.js +1 -0
  123. package/dist/web/assets/gdshader-kiBtQlv1.js +1 -0
  124. package/dist/web/assets/genie-CV2tkWYe.js +1 -0
  125. package/dist/web/assets/gherkin-DExj1W_8.js +1 -0
  126. package/dist/web/assets/git-commit-BAuDFD-1.js +1 -0
  127. package/dist/web/assets/git-commit-DaNUDv1O.js +1 -0
  128. package/dist/web/assets/git-rebase-Bh7mDoAc.js +1 -0
  129. package/dist/web/assets/git-rebase-qxk4jQ_Z.js +1 -0
  130. package/dist/web/assets/github-dark-C-LZuMrd.js +1 -0
  131. package/dist/web/assets/github-dark-default-DXG-b-1a.js +1 -0
  132. package/dist/web/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
  133. package/dist/web/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
  134. package/dist/web/assets/github-light-EUqPIrTm.js +1 -0
  135. package/dist/web/assets/github-light-default-BXViO-2h.js +1 -0
  136. package/dist/web/assets/github-light-high-contrast-B68TUdTA.js +1 -0
  137. package/dist/web/assets/gleam-CSRkHgEL.js +1 -0
  138. package/dist/web/assets/glimmer-js-CIdbWayl.js +1 -0
  139. package/dist/web/assets/glimmer-ts-B16xCo2k.js +1 -0
  140. package/dist/web/assets/glsl-CaPTrB3a.js +1 -0
  141. package/dist/web/assets/glsl-D01ELkOo.js +1 -0
  142. package/dist/web/assets/gn-CAXYAgV-.js +1 -0
  143. package/dist/web/assets/gnuplot-7GGW24-e.js +1 -0
  144. package/dist/web/assets/go-CC6EVc1J.js +1 -0
  145. package/dist/web/assets/go-CFMhVTkq.js +1 -0
  146. package/dist/web/assets/graphql-BZEhxNwM.js +1 -0
  147. package/dist/web/assets/graphql-DEIChqxY.js +1 -0
  148. package/dist/web/assets/groovy-Dj7WCBJM.js +1 -0
  149. package/dist/web/assets/groovy-_MokPXAr.js +1 -0
  150. package/dist/web/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
  151. package/dist/web/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
  152. package/dist/web/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
  153. package/dist/web/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
  154. package/dist/web/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
  155. package/dist/web/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
  156. package/dist/web/assets/hack-C30D-q0p.js +1 -0
  157. package/dist/web/assets/haml-BU6KMePS.js +1 -0
  158. package/dist/web/assets/haml-C1zHJAQt.js +1 -0
  159. package/dist/web/assets/handlebars-WZCg7K7Q.js +1 -0
  160. package/dist/web/assets/handlebars-g-3gLrXt.js +1 -0
  161. package/dist/web/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2 +0 -0
  162. package/dist/web/assets/hanken-grotesk-latin-wght-italic-ChtpyDsL.woff2 +0 -0
  163. package/dist/web/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2 +0 -0
  164. package/dist/web/assets/haskell-D8IpX4py.js +1 -0
  165. package/dist/web/assets/hastToHtml-ptNQFKyE.js +3 -0
  166. package/dist/web/assets/haxe-B0BMDyun.js +1 -0
  167. package/dist/web/assets/haxe-CD8O8Ul0.js +1 -0
  168. package/dist/web/assets/hcl-Dh228itO.js +1 -0
  169. package/dist/web/assets/hjson-CxZEssPk.js +1 -0
  170. package/dist/web/assets/hlsl-DQJgUA8P.js +1 -0
  171. package/dist/web/assets/hlsl-ajL2FB-w.js +1 -0
  172. package/dist/web/assets/horizon-CE9ld1lL.js +1 -0
  173. package/dist/web/assets/horizon-bright-DSNQnXHK.js +1 -0
  174. package/dist/web/assets/houston-CsvMBhTu.js +1 -0
  175. package/dist/web/assets/html-BCy9P6D2.js +1 -0
  176. package/dist/web/assets/html-DSw1lh5G.js +1 -0
  177. package/dist/web/assets/html-derivative-DyzJkWO6.js +1 -0
  178. package/dist/web/assets/html-derivative-ekTk9Unt.js +1 -0
  179. package/dist/web/assets/http-BjrBtiM6.js +1 -0
  180. package/dist/web/assets/hurl-B4P9s9G3.js +1 -0
  181. package/dist/web/assets/hxml-DPF7XkXa.js +1 -0
  182. package/dist/web/assets/hy-CZbG8q4J.js +1 -0
  183. package/dist/web/assets/imba-DsUTQ-LC.js +1 -0
  184. package/dist/web/assets/ini-0B7NLFlx.js +1 -0
  185. package/dist/web/assets/ini-DiZ1IqbV.js +1 -0
  186. package/dist/web/assets/java-BtIQNnN0.js +1 -0
  187. package/dist/web/assets/java-_ATy9zCa.js +1 -0
  188. package/dist/web/assets/javascript-BzbQS41l.js +1 -0
  189. package/dist/web/assets/javascript-CpIGwZ_Y.js +1 -0
  190. package/dist/web/assets/jinja-dRcm23Ea.js +1 -0
  191. package/dist/web/assets/jison-D3aJooqo.js +1 -0
  192. package/dist/web/assets/json-B88Oqtu5.js +1 -0
  193. package/dist/web/assets/json-C3WlssX3.js +1 -0
  194. package/dist/web/assets/json5-BR5RXkoi.js +1 -0
  195. package/dist/web/assets/jsonc-BzJ54Uh_.js +1 -0
  196. package/dist/web/assets/jsonc-dcnCvL0G.js +1 -0
  197. package/dist/web/assets/jsonl-CmCQp5Yx.js +1 -0
  198. package/dist/web/assets/jsonnet-CJTPZ8u_.js +1 -0
  199. package/dist/web/assets/jssm-DXw9l8Rf.js +1 -0
  200. package/dist/web/assets/jsx-C4yDKi0A.js +1 -0
  201. package/dist/web/assets/jsx-D3KKoC5L.js +1 -0
  202. package/dist/web/assets/jsx-runtime-BwolrYx8.js +1 -0
  203. package/dist/web/assets/julia-C8a5hZkp.js +1 -0
  204. package/dist/web/assets/julia-hqywDEUR.js +1 -0
  205. package/dist/web/assets/just-CP_wDfXI.js +1 -0
  206. package/dist/web/assets/kanagawa-dragon-Bozd7klA.js +1 -0
  207. package/dist/web/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
  208. package/dist/web/assets/kanagawa-wave-BML5mF2J.js +1 -0
  209. package/dist/web/assets/kdl-CsD5j6eV.js +1 -0
  210. package/dist/web/assets/kotlin-DhhofPvG.js +1 -0
  211. package/dist/web/assets/kusto-C7mF5XQf.js +1 -0
  212. package/dist/web/assets/langs-XfjJeIZX.js +2 -0
  213. package/dist/web/assets/laserwave-C_8bwKvT.js +1 -0
  214. package/dist/web/assets/latex-B_Ztlc7G.js +1 -0
  215. package/dist/web/assets/latex-Bn9nYtub.js +1 -0
  216. package/dist/web/assets/lean-CewbzKMR.js +1 -0
  217. package/dist/web/assets/less-B64L-FWb.js +1 -0
  218. package/dist/web/assets/less-CXhFgJ4v.js +1 -0
  219. package/dist/web/assets/lib-6HYXi0_j.js +9 -0
  220. package/dist/web/assets/light-plus-DVQuIRkW.js +1 -0
  221. package/dist/web/assets/liquid-CQNtsgCr.js +1 -0
  222. package/dist/web/assets/llvm-DqHOMS-s.js +1 -0
  223. package/dist/web/assets/log-Bu1ZtrH6.js +1 -0
  224. package/dist/web/assets/log-BvtJ4bSl.js +1 -0
  225. package/dist/web/assets/logo-Cluzi2Zq.js +1 -0
  226. package/dist/web/assets/lua-DjuecEsk.js +1 -0
  227. package/dist/web/assets/lua-fPRBWD-V.js +1 -0
  228. package/dist/web/assets/luau-VGWVLoqX.js +1 -0
  229. package/dist/web/assets/make-B54cR2A1.js +1 -0
  230. package/dist/web/assets/make-URElk0GJ.js +1 -0
  231. package/dist/web/assets/markdown-CboqBxpY.js +1 -0
  232. package/dist/web/assets/markdown-CjQmuOi1.js +1 -0
  233. package/dist/web/assets/marko-DPS0EkZ1.js +1 -0
  234. package/dist/web/assets/martian-mono-latin-ext-standard-normal-DeTdBbNh.woff2 +0 -0
  235. package/dist/web/assets/martian-mono-latin-standard-normal-1TqSgyfh.woff2 +0 -0
  236. package/dist/web/assets/material-theme-Bm3Qr25_.js +1 -0
  237. package/dist/web/assets/material-theme-darker-2IIEA8gg.js +1 -0
  238. package/dist/web/assets/material-theme-lighter-uhdI0v04.js +1 -0
  239. package/dist/web/assets/material-theme-ocean-CHQ94UKr.js +1 -0
  240. package/dist/web/assets/material-theme-palenight-B5W6OYN7.js +1 -0
  241. package/dist/web/assets/matlab-D7qyCx1q.js +1 -0
  242. package/dist/web/assets/mdc-C6srEd4p.js +1 -0
  243. package/dist/web/assets/mdx-DQZ5AkYe.js +1 -0
  244. package/dist/web/assets/mermaid-BxpfTIzt.js +1 -0
  245. package/dist/web/assets/mermaid-frame-CynTjgCI.js +4255 -0
  246. package/dist/web/assets/min-dark-BSWPekZh.js +1 -0
  247. package/dist/web/assets/min-light-DDpmG2fV.js +1 -0
  248. package/dist/web/assets/mipsasm-BMqwQI7S.js +1 -0
  249. package/dist/web/assets/mojo-fg40_ntQ.js +1 -0
  250. package/dist/web/assets/monokai-BscAjiQZ.js +1 -0
  251. package/dist/web/assets/moonbit-D9W784E_.js +1 -0
  252. package/dist/web/assets/move-BYnGhZoM.js +1 -0
  253. package/dist/web/assets/narrat-_X_XdTYD.js +1 -0
  254. package/dist/web/assets/nextflow-groovy-C770ykRh.js +1 -0
  255. package/dist/web/assets/nextflow-groovy-D5vAge1Z.js +1 -0
  256. package/dist/web/assets/nextflow-uA5IJerx.js +1 -0
  257. package/dist/web/assets/nginx-BxRBJ-Af.js +1 -0
  258. package/dist/web/assets/night-owl-DhmEMT88.js +1 -0
  259. package/dist/web/assets/night-owl-light-eJ-hLW7d.js +1 -0
  260. package/dist/web/assets/nim-DN3EGtL-.js +1 -0
  261. package/dist/web/assets/nim-ZjzS1dcU.js +1 -0
  262. package/dist/web/assets/nix-IvuFDN5E.js +1 -0
  263. package/dist/web/assets/nord-Cb4Vim4T.js +1 -0
  264. package/dist/web/assets/nsis-CjNLYCLg.js +1 -0
  265. package/dist/web/assets/nushell--0fT3PI1.js +1 -0
  266. package/dist/web/assets/objective-c-CsonrGpd.js +1 -0
  267. package/dist/web/assets/objective-c-D_ECFp-D.js +1 -0
  268. package/dist/web/assets/objective-cpp-BsSzOQcm.js +1 -0
  269. package/dist/web/assets/ocaml-BuP2SoBQ.js +1 -0
  270. package/dist/web/assets/ocaml-D6dNsUd0.js +1 -0
  271. package/dist/web/assets/odin-B1RWQWA5.js +1 -0
  272. package/dist/web/assets/one-dark-pro-C6YyR8OD.js +1 -0
  273. package/dist/web/assets/one-light-D7Lr4KcI.js +1 -0
  274. package/dist/web/assets/openscad-BUDT5pXO.js +1 -0
  275. package/dist/web/assets/org-BRAbLUOJ.js +1 -0
  276. package/dist/web/assets/pairing-secret-YzFjEOKw.js +2 -0
  277. package/dist/web/assets/parse.worker-DkIMf7Rx.js +23 -0
  278. package/dist/web/assets/pascal-4ZHwLPI5.js +1 -0
  279. package/dist/web/assets/perl-Ciba4h2-.js +1 -0
  280. package/dist/web/assets/perl-sgZsTtaf.js +1 -0
  281. package/dist/web/assets/php-D9QpVhjP.js +1 -0
  282. package/dist/web/assets/php-DBfnyu6d.js +1 -0
  283. package/dist/web/assets/pierre-dark-CpLgRqie.js +1 -0
  284. package/dist/web/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +1 -0
  285. package/dist/web/assets/pierre-dark-soft-kZQmAZld.js +1 -0
  286. package/dist/web/assets/pierre-dark-tritanopia-CpjhbsIL.js +1 -0
  287. package/dist/web/assets/pierre-dark-vibrant-CpQYzh95.js +1 -0
  288. package/dist/web/assets/pierre-light-CoaEpmwp.js +1 -0
  289. package/dist/web/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +1 -0
  290. package/dist/web/assets/pierre-light-soft-lWLdNTOI.js +1 -0
  291. package/dist/web/assets/pierre-light-tritanopia-CEbqgOJL.js +1 -0
  292. package/dist/web/assets/pierre-light-vibrant-D80Fkn33.js +1 -0
  293. package/dist/web/assets/pkl-ot-7Btpt.js +1 -0
  294. package/dist/web/assets/plastic-DQwYfKfQ.js +1 -0
  295. package/dist/web/assets/plsql-DGHpHOYJ.js +1 -0
  296. package/dist/web/assets/po-BiJDBrnU.js +1 -0
  297. package/dist/web/assets/poimandres-DRFjx7u4.js +1 -0
  298. package/dist/web/assets/polar-C7UOKdEL.js +1 -0
  299. package/dist/web/assets/postcss-D_Wz94rJ.js +1 -0
  300. package/dist/web/assets/postcss-DkKB82OS.js +1 -0
  301. package/dist/web/assets/powerquery-DNMTfnFr.js +1 -0
  302. package/dist/web/assets/powershell-Blb2ISmZ.js +1 -0
  303. package/dist/web/assets/powershell-CItYMEtV.js +1 -0
  304. package/dist/web/assets/preload-helper-BLdHbfdN.js +1 -0
  305. package/dist/web/assets/prisma-DMgNhnYS.js +1 -0
  306. package/dist/web/assets/prolog-iXnhIJG7.js +1 -0
  307. package/dist/web/assets/proto-DB4EqR-F.js +1 -0
  308. package/dist/web/assets/pug-C_nSP9Mg.js +1 -0
  309. package/dist/web/assets/pug-nGRwXpob.js +1 -0
  310. package/dist/web/assets/puppet-CDv2pdJW.js +1 -0
  311. package/dist/web/assets/purescript-9MfHhQsQ.js +1 -0
  312. package/dist/web/assets/python-C5TF47hQ.js +1 -0
  313. package/dist/web/assets/python-CzFU0dpx.js +1 -0
  314. package/dist/web/assets/qml-BxleM7bJ.js +1 -0
  315. package/dist/web/assets/qmldir-DCQb3MpD.js +1 -0
  316. package/dist/web/assets/qss-Fe1Jh2GI.js +1 -0
  317. package/dist/web/assets/r-BXEss897.js +1 -0
  318. package/dist/web/assets/r-DWzjseEo.js +1 -0
  319. package/dist/web/assets/racket-DcIDlBhZ.js +1 -0
  320. package/dist/web/assets/raku-BtFKomnU.js +1 -0
  321. package/dist/web/assets/raku-Cj6OV6qV.js +1 -0
  322. package/dist/web/assets/razor-UAq-8THt.js +1 -0
  323. package/dist/web/assets/rbs-C0MpOrj4.js +1 -0
  324. package/dist/web/assets/red-CYlAq2b0.js +1 -0
  325. package/dist/web/assets/reg-CRGYupPL.js +1 -0
  326. package/dist/web/assets/regexp-BWpGejPw.js +1 -0
  327. package/dist/web/assets/regexp-wOX-4MEz.js +1 -0
  328. package/dist/web/assets/rel-BtDbiS_P.js +1 -0
  329. package/dist/web/assets/riscv-Ckw8ddFX.js +1 -0
  330. package/dist/web/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  331. package/dist/web/assets/ron-VUp2lXgN.js +1 -0
  332. package/dist/web/assets/rose-pine-aMsaMD1D.js +1 -0
  333. package/dist/web/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
  334. package/dist/web/assets/rose-pine-moon-DO-qXg-I.js +1 -0
  335. package/dist/web/assets/rosmsg-CAekHB0j.js +1 -0
  336. package/dist/web/assets/rst-BCaXiUC4.js +1 -0
  337. package/dist/web/assets/ruby-C4ARPOX3.js +1 -0
  338. package/dist/web/assets/ruby-Dl3oLoVp.js +1 -0
  339. package/dist/web/assets/rust-Ch0zZBV0.js +1 -0
  340. package/dist/web/assets/rust-DBZE5Si3.js +1 -0
  341. package/dist/web/assets/sas-BowjnAvi.js +1 -0
  342. package/dist/web/assets/sass-DXrisJhu.js +1 -0
  343. package/dist/web/assets/scala-CTTBu_35.js +1 -0
  344. package/dist/web/assets/scala-o2NiCLJc.js +1 -0
  345. package/dist/web/assets/scheme-DQCgrYNe.js +1 -0
  346. package/dist/web/assets/scss-CWs8DVSa.js +1 -0
  347. package/dist/web/assets/scss-D3wBkj3d.js +1 -0
  348. package/dist/web/assets/sdbl-CpzYUp7e.js +1 -0
  349. package/dist/web/assets/sdbl-CyKdwm0B.js +1 -0
  350. package/dist/web/assets/shaderlab-DY7g_Ava.js +1 -0
  351. package/dist/web/assets/shellscript-CVTB3cr6.js +1 -0
  352. package/dist/web/assets/shellscript-CqHdAlCp.js +1 -0
  353. package/dist/web/assets/shellsession-DDrivR0a.js +1 -0
  354. package/dist/web/assets/shiki-Ci4cdHsM-CaeoOzAb.js +15 -0
  355. package/dist/web/assets/shiki-Clxf4L3p.js +4 -0
  356. package/dist/web/assets/slack-dark-DnToyrRv.js +1 -0
  357. package/dist/web/assets/slack-ochin-B2OO5cIa.js +1 -0
  358. package/dist/web/assets/smalltalk-BHpQb5nM.js +1 -0
  359. package/dist/web/assets/smithy-Dgaz7aur.js +1 -0
  360. package/dist/web/assets/snazzy-light-4G7pJPwS.js +1 -0
  361. package/dist/web/assets/solarized-dark-b97czJOk.js +1 -0
  362. package/dist/web/assets/solarized-light-DFPxpIYQ.js +1 -0
  363. package/dist/web/assets/solidity-Bj7E1mRn.js +1 -0
  364. package/dist/web/assets/soy-CUUUw2U6.js +1 -0
  365. package/dist/web/assets/sparql-Dy5Sx-zJ.js +1 -0
  366. package/dist/web/assets/splunk-BC2Px7Mm.js +1 -0
  367. package/dist/web/assets/sql-CNu3Or2W.js +1 -0
  368. package/dist/web/assets/sql-CfM2IJm3.js +1 -0
  369. package/dist/web/assets/ssh-config-BgfXC-Er.js +1 -0
  370. package/dist/web/assets/stata-Dj4sbAEx.js +1 -0
  371. package/dist/web/assets/stylus-LiTfbrWi.js +1 -0
  372. package/dist/web/assets/stylus-y-ZXgJGq.js +1 -0
  373. package/dist/web/assets/surrealql-NoXzmj18.js +1 -0
  374. package/dist/web/assets/svelte-BaCIHHWd.js +1 -0
  375. package/dist/web/assets/swift-CCLoYZtx.js +1 -0
  376. package/dist/web/assets/swift-DQ24oLw9.js +1 -0
  377. package/dist/web/assets/synthwave-84-nFMaYfgc.js +1 -0
  378. package/dist/web/assets/system-verilog-DFpyZzg3.js +1 -0
  379. package/dist/web/assets/system-verilog-Dp2k_mze.js +1 -0
  380. package/dist/web/assets/systemd-BxMlprV5.js +1 -0
  381. package/dist/web/assets/talonscript-CohzipZa.js +1 -0
  382. package/dist/web/assets/tasl-DMoTqEGO.js +1 -0
  383. package/dist/web/assets/tcl-CZd0xW_V.js +1 -0
  384. package/dist/web/assets/templ-BfgLc4ra.js +1 -0
  385. package/dist/web/assets/terraform-DswuEJGm.js +1 -0
  386. package/dist/web/assets/tex-C9L8xJex.js +1 -0
  387. package/dist/web/assets/tex-CNYz7bLJ.js +1 -0
  388. package/dist/web/assets/themes-DmprMKgK.js +2 -0
  389. package/dist/web/assets/tokyo-night-oM2G3aXe.js +1 -0
  390. package/dist/web/assets/toml-CcmNWLt0.js +1 -0
  391. package/dist/web/assets/ts-tags-DLz2GTd3.js +1 -0
  392. package/dist/web/assets/tsv-sltzmVWM.js +1 -0
  393. package/dist/web/assets/tsx-BOvsFOI6.js +1 -0
  394. package/dist/web/assets/tsx-CGosfAUg.js +1 -0
  395. package/dist/web/assets/turtle-CQ9kcy0m.js +1 -0
  396. package/dist/web/assets/turtle-CcN57yC0.js +1 -0
  397. package/dist/web/assets/twig-HaHkB3PH.js +1 -0
  398. package/dist/web/assets/twig-lMQ09cjh.js +1 -0
  399. package/dist/web/assets/typescript-Bb1J8qyy.js +1 -0
  400. package/dist/web/assets/typescript-j_1H8WHN.js +1 -0
  401. package/dist/web/assets/typespec-BGhR2SqG.js +1 -0
  402. package/dist/web/assets/typst-DDNSzYFN.js +1 -0
  403. package/dist/web/assets/unused-diff-backend-D509CnpY.js +1 -0
  404. package/dist/web/assets/unwrapDefault-ByDmBtHB.js +1 -0
  405. package/dist/web/assets/v-DBj4K9d_.js +1 -0
  406. package/dist/web/assets/vala-zf12oZj6.js +1 -0
  407. package/dist/web/assets/vb-3nVziYZS.js +1 -0
  408. package/dist/web/assets/vb-CP6Ec8nh.js +1 -0
  409. package/dist/web/assets/verilog-1j7BQk-h.js +1 -0
  410. package/dist/web/assets/verilog-kL8Dwv27.js +1 -0
  411. package/dist/web/assets/vesper-DdrHHSXu.js +1 -0
  412. package/dist/web/assets/vhdl-BroJfC0k.js +1 -0
  413. package/dist/web/assets/viml-DvXPmvsu.js +1 -0
  414. package/dist/web/assets/vitesse-black-fwtXNY1n.js +1 -0
  415. package/dist/web/assets/vitesse-dark-BZCL-v6S.js +1 -0
  416. package/dist/web/assets/vitesse-light-VbXTXTou.js +1 -0
  417. package/dist/web/assets/vue-html-CGMs_6qn.js +1 -0
  418. package/dist/web/assets/vue-qH43U_rv.js +1 -0
  419. package/dist/web/assets/vue-vine-6XI2pIvQ.js +1 -0
  420. package/dist/web/assets/vyper-CgoNMtux.js +1 -0
  421. package/dist/web/assets/wasm-ByWQv1Qj.js +1 -0
  422. package/dist/web/assets/wenyan-C8pVoKbM.js +1 -0
  423. package/dist/web/assets/wgsl-BsKzXJz4.js +1 -0
  424. package/dist/web/assets/wikitext-ClFFjSW2.js +1 -0
  425. package/dist/web/assets/wit-DdvCle-K.js +1 -0
  426. package/dist/web/assets/wolfram-DLL8P-h_.js +1 -0
  427. package/dist/web/assets/worker-DL-XNG9N.js +13 -0
  428. package/dist/web/assets/worker-registries-DNgFn7hx.js +1 -0
  429. package/dist/web/assets/xml-DuKfbPI6.js +1 -0
  430. package/dist/web/assets/xml-WY0zc4PG.js +1 -0
  431. package/dist/web/assets/xsl-CW58cerL.js +1 -0
  432. package/dist/web/assets/xsl-Czhm44Ae.js +1 -0
  433. package/dist/web/assets/yaml-DDA_XMNu.js +1 -0
  434. package/dist/web/assets/yaml-DijMHRDA.js +1 -0
  435. package/dist/web/assets/zenscript-BnlCZFoB.js +1 -0
  436. package/dist/web/assets/zig-B7sSDI6F.js +1 -0
  437. package/dist/web/assets/zig-cFafUZna.js +1 -0
  438. package/dist/web/icons/apple-touch-icon.png +0 -0
  439. package/dist/web/icons/icon-192.png +0 -0
  440. package/dist/web/icons/icon-512.png +0 -0
  441. package/dist/web/index.html +20 -0
  442. package/dist/web/licenses/hanken-grotesk-OFL.txt +93 -0
  443. package/dist/web/licenses/martian-mono-OFL.txt +93 -0
  444. package/dist/web/manifest.webmanifest +13 -0
  445. package/dist/web/mermaid-frame.html +13 -0
  446. package/dist/web/sw.js +1 -0
  447. package/package.json +31 -3
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 shllg
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,145 @@
1
- # Temporary Holding Version
1
+ # emend
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Open-source, local-first review for work done by coding agents: plans, docs and code. Read the
4
+ agent's writeup next to its diff, comment on any of it, press Send, and the waiting agent gets your
5
+ feedback. emend starts on your machine with one command. Machines can attach to a hub, so that you
6
+ review from any device, your phone included.
7
+
8
+ [VISION.md](https://github.com/shllg/emend/blob/main/VISION.md) says what emend is for, and what it
9
+ is not.
10
+
11
+ emend grew out of [hunk-review-skill](https://github.com/vendis-ai/hunk-review-skill), which stays
12
+ maintained alongside it.
13
+
14
+ ## Requirements
15
+
16
+ Linux or macOS, Node.js 24.18 or newer and git 2.44 or newer.
17
+
18
+ ## Quick start (one machine)
19
+
20
+ On macOS, install Node.js and git from Homebrew first:
21
+
22
+ ```sh
23
+ brew install node git
24
+ ```
25
+
26
+ Then install emend, start it and add its skills:
27
+
28
+ ```sh
29
+ npm install -g @shllg/emend
30
+ emend --version
31
+ emend service install
32
+ emend
33
+ claude plugin marketplace add shllg/emend@release
34
+ claude plugin install emend@emend
35
+ emend skills install
36
+ ```
37
+
38
+ With mise activated in your shell, install with `mise use -g npm:@shllg/emend` instead of the
39
+ `npm` line. `emend service install` runs the server at login, which is recommended. `emend` prints a
40
+ one-time sign-in link. The two `claude plugin` lines add the skills to Claude Code, and
41
+ `emend skills install` adds them for Codex and other agents that read `~/.agents/skills`.
42
+
43
+ If `node --version` is older than 24.18 or `git --version` older than 2.44, as on many Linux
44
+ distributions and with Apple's git on macOS, follow step 1 of
45
+ [local.md](https://github.com/shllg/emend/blob/release/docs/setup/local.md#1-install-nodejs-and-git)
46
+ first. If your agents run in a sandbox, read
47
+ [Use with sandboxed agents](https://github.com/shllg/emend#use-with-sandboxed-agents) next.
48
+
49
+ The full walkthrough, with a prompt that lets Claude Code or Codex do it with you, is
50
+ [docs/setup/local.md](https://github.com/shllg/emend/blob/release/docs/setup/local.md).
51
+
52
+ ## Pick your setup
53
+
54
+ Each setup has its own page for Linux and macOS, with a copy-paste prompt for your agent.
55
+ [docs/setup.md](https://github.com/shllg/emend/blob/release/docs/setup.md) is the index, with the
56
+ one-prompt setup.
57
+
58
+ | Setup | Suits you if |
59
+ |---|---|
60
+ | [One machine](https://github.com/shllg/emend/blob/release/docs/setup/local.md) | You try emend or review agent work on the machine where the agents run. |
61
+ | [Your own hub on Tailscale](https://github.com/shllg/emend/blob/release/docs/setup/hub-tailscale.md) | You have an always-on machine and want to review from your phone and other devices. |
62
+ | [Attach more machines](https://github.com/shllg/emend/blob/release/docs/setup/attach.md) | You run a hub and want the agents on your other machines to publish to it. |
63
+ | [Set up your agents](https://github.com/shllg/emend/blob/release/docs/setup/agents.md) | emend runs and you want Claude Code, Codex or others to use it, sandbox rules included. |
64
+ | [Update](https://github.com/shllg/emend/blob/release/docs/setup/update.md) | A new version is out. |
65
+ | [Troubleshooting](https://github.com/shllg/emend/blob/release/docs/setup/troubleshooting.md) | A setup or update step fails. |
66
+ | A hub on your own network (a LAN address or your own HTTPS proxy) | Not supported yet; planned. Today Tailscale is the supported way to reach a hub from other devices. |
67
+
68
+ ## Update
69
+
70
+ ```sh
71
+ npm install -g @shllg/emend@latest
72
+ claude plugin marketplace update emend
73
+ claude plugin update emend@emend
74
+ ```
75
+
76
+ With mise, run `mise upgrade npm:@shllg/emend` instead of the `npm` line. If you installed the
77
+ service, run `emend service install` again; it keeps its options. If you ran `emend skills install`
78
+ before, run it again. Then restart Claude Code. After `brew upgrade node` or `mise upgrade node`,
79
+ run `emend service install` again too.
80
+
81
+ [docs/setup/update.md](https://github.com/shllg/emend/blob/release/docs/setup/update.md) covers the
82
+ order for a hub and its machines, Node.js upgrades and the phone app.
83
+
84
+ ## Use with sandboxed agents
85
+
86
+ Inside an agent's sandbox, `emend publish`, `wait`, `feedback` and `reply` cannot reach the
87
+ emend server or write its state folder, and emend prints a line that points here. Step 3 of
88
+ [docs/setup/agents.md](https://github.com/shllg/emend/blob/release/docs/setup/agents.md#3-use-with-sandboxed-agents)
89
+ says how to let exactly these four commands leave the sandbox, once per machine. Read what that
90
+ allows, and when not to add it, before you do: these commands then run with your full rights.
91
+ Add them only when `emend` on your `PATH` is an install no agent can write, never a development
92
+ checkout. The rules never cover `pair`, `attach` or `detach`, so an agent cannot pair a device or
93
+ attach your machine to a hub.
94
+
95
+ ## Uninstall
96
+
97
+ Remove what a setup added with its Undo section: [one machine](https://github.com/shllg/emend/blob/release/docs/setup/local.md#undo)
98
+ and [your agents](https://github.com/shllg/emend/blob/release/docs/setup/agents.md#undo). The Undo
99
+ sections of the hub and attach pages cover those setups.
100
+
101
+ ## Usage
102
+
103
+ [docs/usage.md](https://github.com/shllg/emend/blob/release/docs/usage.md) covers `emend config`
104
+ and publishing docs for review.
105
+
106
+ ## Development
107
+
108
+ A checkout installs the same way as a release: `pnpm install:local` builds the committed `HEAD` in
109
+ a temporary folder, packs it and installs the package. Use a clone that no agent or tool writes to,
110
+ review a change before you pull it, and run the command again after each pull.
111
+
112
+ ```sh
113
+ pnpm install
114
+ pnpm install:local
115
+ ```
116
+
117
+ If you linked `apps/emend/bin/emend` into a folder on your `PATH` before (the earlier development
118
+ steps and `install.sh` did), remove that link, and stop every emend server that runs from a
119
+ checkout: `pgrep -af '[e]mend.mjs serve'` lists them with their paths (`pgrep -lf` on macOS).
120
+ Otherwise the commands your agents run outside their sandbox, and the server that serves the review
121
+ app, run the checkout's build, which agents can change.
122
+
123
+ With mise on your `PATH`, the package goes to a folder in mise's data folder that `mise link`
124
+ registers as `npm:@shllg/emend@local`; pass `--npm` to use `npm install -g` instead. If `emend` is
125
+ not on your `PATH` yet, the command prints the folder to add. It also restarts an installed
126
+ service, so the new build runs.
127
+
128
+ For Claude Code, add the checkout as a plugin marketplace instead of the GitHub one, never both:
129
+
130
+ ```text
131
+ /plugin marketplace add <path to your checkout>
132
+ /plugin install emend@emend
133
+ ```
134
+
135
+ Claude Code reads the skills from the checkout's `plugin/` folder, uncommitted changes included. A
136
+ pulled change takes effect at the next session start or after `/reload-plugins`. For other agents,
137
+ run `emend skills install` once; its links point into the installed package.
138
+
139
+ `pnpm verify` runs every check. [AGENTS.md](https://github.com/shllg/emend/blob/main/AGENTS.md)
140
+ holds the working rules. Maintainers: [docs/releasing.md](https://github.com/shllg/emend/blob/main/docs/releasing.md)
141
+ holds the release policy and checklist.
142
+
143
+ ## License
144
+
145
+ MIT. See [LICENSE](https://github.com/shllg/emend/blob/main/LICENSE).
package/bin/emend ADDED
@@ -0,0 +1,27 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ script="$0"
5
+ hops=0
6
+ while :; do
7
+ directory=$(CDPATH= cd -P -- "$(dirname -- "$script")" && pwd)
8
+ script="$directory/$(basename -- "$script")"
9
+ [ -L "$script" ] || break
10
+ if [ "$hops" -ge 40 ]; then
11
+ printf 'emend: too many levels of symlinks\n' >&2
12
+ exit 1
13
+ fi
14
+ hops=$((hops + 1))
15
+ link=$(readlink "$script")
16
+ case "$link" in
17
+ /*) script="$link" ;;
18
+ *) script="$directory/$link" ;;
19
+ esac
20
+ done
21
+
22
+ if [ ! -f "$directory/../dist/emend.mjs" ]; then
23
+ printf 'emend: not built; run pnpm build in the emend checkout\n' >&2
24
+ exit 1
25
+ fi
26
+
27
+ exec node "$directory/../dist/emend.mjs" "$@"