@a9n-shoji/rvw 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 (442) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/LICENSE +21 -0
  3. package/README.md +305 -0
  4. package/SECURITY.md +27 -0
  5. package/dist/cli-THIRD_PARTY_NOTICES.txt +1073 -0
  6. package/dist/cli.mjs +34989 -0
  7. package/dist/cli.mjs.map +7 -0
  8. package/dist/web/THIRD_PARTY_NOTICES.txt +5302 -0
  9. package/dist/web/assets/DocumentViewer-Bpo61duW.js +1560 -0
  10. package/dist/web/assets/MarkdownImagePlaceholder-6RCNwzwM.js +36 -0
  11. package/dist/web/assets/WalkthroughViewer-B5mozyWo.js +2 -0
  12. package/dist/web/assets/abap-CLvhMVsD.js +1 -0
  13. package/dist/web/assets/abnfDiagram-N423BO3Z-BK5Jn86N.js +1 -0
  14. package/dist/web/assets/actionscript-3-Cs6JJXT5.js +1 -0
  15. package/dist/web/assets/ada-C5qYipkI.js +1 -0
  16. package/dist/web/assets/ahk-CA9gdOdF.js +1 -0
  17. package/dist/web/assets/ahk2-_6rzW9BS.js +1 -0
  18. package/dist/web/assets/andromeeda-vGVdxbeo.js +1 -0
  19. package/dist/web/assets/angular-html-B8mrqUL5.js +1 -0
  20. package/dist/web/assets/angular-ts-Bzix210W.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-Dhin1L29.js +1 -0
  24. package/dist/web/assets/applescript-CCn79oCD.js +1 -0
  25. package/dist/web/assets/ara-4CJ0cIlV.js +1 -0
  26. package/dist/web/assets/arc-Pry-7G1_.js +1 -0
  27. package/dist/web/assets/architecture-TIHT7OUA-CNniK53V.js +1 -0
  28. package/dist/web/assets/architectureDiagram-T3A2C74G-C4e8BOKi.js +36 -0
  29. package/dist/web/assets/array-BifhSqXX.js +1 -0
  30. package/dist/web/assets/asciidoc-SCjQUq34.js +1 -0
  31. package/dist/web/assets/asm-Cmm7eHzH.js +1 -0
  32. package/dist/web/assets/astro-B-4NNgOP.js +1 -0
  33. package/dist/web/assets/aurora-x-CDeNXAV0.js +1 -0
  34. package/dist/web/assets/awk-BWXHIvNe.js +1 -0
  35. package/dist/web/assets/ayu-dark-DluEY0Gj.js +1 -0
  36. package/dist/web/assets/ayu-light-C3h-C4tm.js +1 -0
  37. package/dist/web/assets/ayu-mirage-Bqwy1Gya.js +1 -0
  38. package/dist/web/assets/ballerina-B7ZEbQpA.js +1 -0
  39. package/dist/web/assets/bat-qdxAdBWQ.js +1 -0
  40. package/dist/web/assets/beancount-D-usSTwE.js +1 -0
  41. package/dist/web/assets/berry-DKpUyyne.js +1 -0
  42. package/dist/web/assets/bibtex-Ci_nEsc7.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-C6Gedziy.js +1 -0
  46. package/dist/web/assets/blockDiagram-VBNYF7ZC-vGkPzqEX.js +132 -0
  47. package/dist/web/assets/bsl-_VjlB9mv.js +1 -0
  48. package/dist/web/assets/c-iCihek07.js +1 -0
  49. package/dist/web/assets/c3-D0apG41V.js +1 -0
  50. package/dist/web/assets/c4Diagram-5PPSVZJV-CFw7KfN7.js +10 -0
  51. package/dist/web/assets/cadence-CQ2zXKGN.js +1 -0
  52. package/dist/web/assets/cairo-DLTphjLi.js +1 -0
  53. package/dist/web/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
  54. package/dist/web/assets/catppuccin-latte-CtsyrtPq.js +1 -0
  55. package/dist/web/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
  56. package/dist/web/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
  57. package/dist/web/assets/channel-D9mpRLqV.js +1 -0
  58. package/dist/web/assets/chapel-DmtgEXO_.js +1 -0
  59. package/dist/web/assets/chunk-2GRJ4B5K-CGyf7P1B.js +1 -0
  60. package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  61. package/dist/web/assets/chunk-4I5QYGJK-B9gVU0IX.js +1 -0
  62. package/dist/web/assets/chunk-5RXB4S5H-CxKRHj4A.js +231 -0
  63. package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  64. package/dist/web/assets/chunk-6Q2QTUOP-wTr3poCO.js +88 -0
  65. package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  66. package/dist/web/assets/chunk-7Z6QIM7H-DO3-rKs9.js +10 -0
  67. package/dist/web/assets/chunk-GF5L2VYU-Hf7UNoHx.js +206 -0
  68. package/dist/web/assets/chunk-I66GZJ75-BsgBf6m-.js +127 -0
  69. package/dist/web/assets/chunk-JQJVKLGR-C8FDquLg.js +156 -0
  70. package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  71. package/dist/web/assets/chunk-KBJHAD2P-32ugraBx.js +1 -0
  72. package/dist/web/assets/chunk-KEIR6QF5-BICK3FdT.js +161 -0
  73. package/dist/web/assets/chunk-NSK5VX7P-BRGpsxOZ.js +2 -0
  74. package/dist/web/assets/chunk-QR6OTTB3-C1LfXMA9.js +62 -0
  75. package/dist/web/assets/chunk-RYQCIY6F-BsoV8yK2.js +1 -0
  76. package/dist/web/assets/chunk-UBXNYLIW-CjykxAbY.js +1 -0
  77. package/dist/web/assets/chunk-W5SLKNZC-DTzd_oWg.js +1 -0
  78. package/dist/web/assets/chunk-WRU74C26-BOKlupGY.js +70 -0
  79. package/dist/web/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
  80. package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  81. package/dist/web/assets/clarity-CtfBBspg.js +1 -0
  82. package/dist/web/assets/classDiagram-JCYQIIEL-1i-imYTn.js +1 -0
  83. package/dist/web/assets/classDiagram-v2-OCEON4UE-1i-imYTn.js +1 -0
  84. package/dist/web/assets/clojure-DqKBuwfJ.js +1 -0
  85. package/dist/web/assets/cmake-Bj61d0ZC.js +1 -0
  86. package/dist/web/assets/cobol-Cw2-KvLW.js +1 -0
  87. package/dist/web/assets/codeowners-C8r90Shi.js +1 -0
  88. package/dist/web/assets/codeql-oeQT6MSM.js +1 -0
  89. package/dist/web/assets/coffee-CiiSLhB6.js +1 -0
  90. package/dist/web/assets/common-lisp-Cv5bFMCO.js +1 -0
  91. package/dist/web/assets/coq-DuBRPxYg.js +1 -0
  92. package/dist/web/assets/cose-bilkent-JH36ORCC-lJEhNiw_.js +1 -0
  93. package/dist/web/assets/cpp-71xkOQct.js +1 -0
  94. package/dist/web/assets/crystal-DGPAtLeY.js +1 -0
  95. package/dist/web/assets/csharp-oqKa8noW.js +1 -0
  96. package/dist/web/assets/css-CNuuLpMC.js +1 -0
  97. package/dist/web/assets/csv-Dx-8-gkx.js +1 -0
  98. package/dist/web/assets/cue-CE9AQfxI.js +1 -0
  99. package/dist/web/assets/cynefin-VYW2F7L2-FyhSpENE.js +1 -0
  100. package/dist/web/assets/cynefinDiagram-MW4NZA55-uFUTQ3i8.js +62 -0
  101. package/dist/web/assets/cypher-ClKdZ_lG.js +1 -0
  102. package/dist/web/assets/cytoscape.esm-B-NFISlW.js +321 -0
  103. package/dist/web/assets/d-qD-0Kul2.js +1 -0
  104. package/dist/web/assets/dagre-Buvkdvvj.js +1 -0
  105. package/dist/web/assets/dagre-VZM6K2ZE-BlESSHVb.js +4 -0
  106. package/dist/web/assets/dark-plus-Cs2F2srj.js +1 -0
  107. package/dist/web/assets/dart-CnvKMtbv.js +1 -0
  108. package/dist/web/assets/dax-BkyTk9wS.js +1 -0
  109. package/dist/web/assets/defaultLocale-BFoDCU3G.js +1 -0
  110. package/dist/web/assets/desktop-Dlh5hvp9.js +1 -0
  111. package/dist/web/assets/diagram-7IWD3JNH-CVtjyPlA.js +30 -0
  112. package/dist/web/assets/diagram-B4RE2ZJO-B3alEF-G.js +3 -0
  113. package/dist/web/assets/diagram-LBJQPF4R-Dz-CRzSx.js +24 -0
  114. package/dist/web/assets/diagram-Q27KOJAE-B7x_WZC5.js +24 -0
  115. package/dist/web/assets/diagram-UB23O5K3-Di7vh04u.js +41 -0
  116. package/dist/web/assets/diff-woXpYk--.js +1 -0
  117. package/dist/web/assets/dist-v5Q1xZ2K.js +1 -0
  118. package/dist/web/assets/docker-IyjqRm3v.js +1 -0
  119. package/dist/web/assets/dotenv-_5a1GRtc.js +1 -0
  120. package/dist/web/assets/dracula-BHWKrbxM.js +1 -0
  121. package/dist/web/assets/dracula-soft-5eyTD99u.js +1 -0
  122. package/dist/web/assets/dream-maker-DW3nJb8Q.js +1 -0
  123. package/dist/web/assets/ebnfDiagram-BXEA7PRR-CVXtwzOH.js +1 -0
  124. package/dist/web/assets/edge-DCY0a-ow.js +1 -0
  125. package/dist/web/assets/elixir-DP304Xio.js +1 -0
  126. package/dist/web/assets/elm-o4NJxfws.js +1 -0
  127. package/dist/web/assets/emacs-lisp-c_oH4hRZ.js +1 -0
  128. package/dist/web/assets/erDiagram-JOGREHBK-C73ySvzv.js +85 -0
  129. package/dist/web/assets/erb-C7MPl934.js +1 -0
  130. package/dist/web/assets/erlang-Cphh6RMH.js +1 -0
  131. package/dist/web/assets/eventmodeling-45OFAUF4-lqF-K7-h.js +1 -0
  132. package/dist/web/assets/everforest-dark-sB-x3p7T.js +1 -0
  133. package/dist/web/assets/everforest-light-Df2xbC6M.js +1 -0
  134. package/dist/web/assets/fennel-DQxkIbk2.js +1 -0
  135. package/dist/web/assets/fish-BJitypiv.js +1 -0
  136. package/dist/web/assets/flowDiagram-UKHOOZJN-BjY-fuKE.js +1 -0
  137. package/dist/web/assets/fluent-C03EYrpw.js +1 -0
  138. package/dist/web/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
  139. package/dist/web/assets/fortran-free-form-CYNrtFtB.js +1 -0
  140. package/dist/web/assets/fsharp-D13ZGOAj.js +1 -0
  141. package/dist/web/assets/ganttDiagram-PKOTCBZU-DnFdkwyo.js +292 -0
  142. package/dist/web/assets/gdresource-xMC7jr7x.js +1 -0
  143. package/dist/web/assets/gdscript-DYvRD3hg.js +1 -0
  144. package/dist/web/assets/gdshader-CBce3t8t.js +1 -0
  145. package/dist/web/assets/genie-CV2tkWYe.js +1 -0
  146. package/dist/web/assets/gherkin-DExj1W_8.js +1 -0
  147. package/dist/web/assets/git-commit-BSykSTBG.js +1 -0
  148. package/dist/web/assets/git-rebase-BDPpS8w6.js +1 -0
  149. package/dist/web/assets/gitGraph-TEB2WS4Q-D9IlUiGc.js +1 -0
  150. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-C8RcHadx.js +106 -0
  151. package/dist/web/assets/github-dark-C-LZuMrd.js +1 -0
  152. package/dist/web/assets/github-dark-default-DXG-b-1a.js +1 -0
  153. package/dist/web/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
  154. package/dist/web/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
  155. package/dist/web/assets/github-light-EUqPIrTm.js +1 -0
  156. package/dist/web/assets/github-light-default-BXViO-2h.js +1 -0
  157. package/dist/web/assets/github-light-high-contrast-B68TUdTA.js +1 -0
  158. package/dist/web/assets/gleam-CSRkHgEL.js +1 -0
  159. package/dist/web/assets/glimmer-js-BONyzAsu.js +1 -0
  160. package/dist/web/assets/glimmer-ts-f9c0GCOe.js +1 -0
  161. package/dist/web/assets/glsl-D5MA2a_X.js +1 -0
  162. package/dist/web/assets/gn-ilITqXS6.js +1 -0
  163. package/dist/web/assets/gnuplot-7GGW24-e.js +1 -0
  164. package/dist/web/assets/go-rLFTqkRN.js +1 -0
  165. package/dist/web/assets/graphlib-DS17s2tU.js +1 -0
  166. package/dist/web/assets/graphql-Ctjuxyvl.js +1 -0
  167. package/dist/web/assets/groovy-CacY0gHj.js +1 -0
  168. package/dist/web/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
  169. package/dist/web/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
  170. package/dist/web/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
  171. package/dist/web/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
  172. package/dist/web/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
  173. package/dist/web/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
  174. package/dist/web/assets/hack-Dh_ZLRbs.js +1 -0
  175. package/dist/web/assets/haml-CwEpbK1d.js +1 -0
  176. package/dist/web/assets/handlebars-ryMP1rBR.js +1 -0
  177. package/dist/web/assets/haskell-D8IpX4py.js +1 -0
  178. package/dist/web/assets/haxe-C8oCnwJJ.js +1 -0
  179. package/dist/web/assets/hcl-Dh228itO.js +1 -0
  180. package/dist/web/assets/hjson-CxZEssPk.js +1 -0
  181. package/dist/web/assets/hlsl-Cvrh5tZx.js +1 -0
  182. package/dist/web/assets/horizon-CE9ld1lL.js +1 -0
  183. package/dist/web/assets/horizon-bright-DSNQnXHK.js +1 -0
  184. package/dist/web/assets/houston-CsvMBhTu.js +1 -0
  185. package/dist/web/assets/html-XwrE-1r6.js +1 -0
  186. package/dist/web/assets/html-derivative-i4STDFnl.js +1 -0
  187. package/dist/web/assets/http-kmH8AyfE.js +1 -0
  188. package/dist/web/assets/hurl-DCZHXKU4.js +1 -0
  189. package/dist/web/assets/hxml-Dcm88srW.js +1 -0
  190. package/dist/web/assets/hy-CZbG8q4J.js +1 -0
  191. package/dist/web/assets/imba-DsUTQ-LC.js +1 -0
  192. package/dist/web/assets/index-B8_aim9s.css +1 -0
  193. package/dist/web/assets/index-BWaG4LjN.js +355 -0
  194. package/dist/web/assets/info-DKCQHKI2-D8vjRWaN.js +1 -0
  195. package/dist/web/assets/infoDiagram-6WML65LV-JfN0KNPZ.js +2 -0
  196. package/dist/web/assets/ini-B5eOa1yu.js +1 -0
  197. package/dist/web/assets/init-C-OQMol4.js +1 -0
  198. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-C2AwcyHY.js +70 -0
  199. package/dist/web/assets/java-DdHNQ9hk.js +1 -0
  200. package/dist/web/assets/javascript-obGGvMPs.js +1 -0
  201. package/dist/web/assets/jinja-B-tLrNsM.js +1 -0
  202. package/dist/web/assets/jison-CBjhYtSs.js +1 -0
  203. package/dist/web/assets/journeyDiagram-NVQOT4AX-spVPyB4C.js +139 -0
  204. package/dist/web/assets/json-DAgxKhMr.js +1 -0
  205. package/dist/web/assets/json5-BR5RXkoi.js +1 -0
  206. package/dist/web/assets/jsonc-CYpm1nAK.js +1 -0
  207. package/dist/web/assets/jsonl-CmCQp5Yx.js +1 -0
  208. package/dist/web/assets/jsonnet-CJTPZ8u_.js +1 -0
  209. package/dist/web/assets/jssm-DXw9l8Rf.js +1 -0
  210. package/dist/web/assets/jsx-gTgmArGx.js +1 -0
  211. package/dist/web/assets/julia-CXJVy74_.js +1 -0
  212. package/dist/web/assets/just-B9Xn_Dp4.js +1 -0
  213. package/dist/web/assets/kanagawa-dragon-Bozd7klA.js +1 -0
  214. package/dist/web/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
  215. package/dist/web/assets/kanagawa-wave-BML5mF2J.js +1 -0
  216. package/dist/web/assets/kanban-definition-27J2QSJJ-DovZ9YwS.js +89 -0
  217. package/dist/web/assets/katex-CXMH3UgJ.js +257 -0
  218. package/dist/web/assets/kdl-CsD5j6eV.js +1 -0
  219. package/dist/web/assets/kotlin-DhhofPvG.js +1 -0
  220. package/dist/web/assets/kusto-C7mF5XQf.js +1 -0
  221. package/dist/web/assets/laserwave-C_8bwKvT.js +1 -0
  222. package/dist/web/assets/latex-o9DRzaEe.js +1 -0
  223. package/dist/web/assets/lean-CewbzKMR.js +1 -0
  224. package/dist/web/assets/less-DVTAwKKz.js +1 -0
  225. package/dist/web/assets/light-plus-DVQuIRkW.js +1 -0
  226. package/dist/web/assets/line-CLgOPnWr.js +1 -0
  227. package/dist/web/assets/linear-DmucvK78.js +1 -0
  228. package/dist/web/assets/liquid-G0MH4h_m.js +1 -0
  229. package/dist/web/assets/llvm-DqHOMS-s.js +1 -0
  230. package/dist/web/assets/log-BNLmms1o.js +1 -0
  231. package/dist/web/assets/logo-Cluzi2Zq.js +1 -0
  232. package/dist/web/assets/lua-FONpmTUP.js +1 -0
  233. package/dist/web/assets/luau-C2pBCSgt.js +1 -0
  234. package/dist/web/assets/make-Dixweg8N.js +1 -0
  235. package/dist/web/assets/map-BaFkSB1l.js +1 -0
  236. package/dist/web/assets/markdown-BYOwaDjH.js +1 -0
  237. package/dist/web/assets/marko-DV5GrDmo.js +1 -0
  238. package/dist/web/assets/material-theme-Bm3Qr25_.js +1 -0
  239. package/dist/web/assets/material-theme-darker-2IIEA8gg.js +1 -0
  240. package/dist/web/assets/material-theme-lighter-uhdI0v04.js +1 -0
  241. package/dist/web/assets/material-theme-ocean-CHQ94UKr.js +1 -0
  242. package/dist/web/assets/material-theme-palenight-B5W6OYN7.js +1 -0
  243. package/dist/web/assets/matlab-D7qyCx1q.js +1 -0
  244. package/dist/web/assets/mdc-BKfPFPZw.js +1 -0
  245. package/dist/web/assets/mdx-DQZ5AkYe.js +1 -0
  246. package/dist/web/assets/mermaid-BxpfTIzt.js +1 -0
  247. package/dist/web/assets/mermaid-parser.core-DyixRB1x.js +7 -0
  248. package/dist/web/assets/mermaid.core-BqpBcETK.js +42 -0
  249. package/dist/web/assets/min-dark-BSWPekZh.js +1 -0
  250. package/dist/web/assets/min-light-DDpmG2fV.js +1 -0
  251. package/dist/web/assets/mindmap-definition-FAOFIHXS-BbPO8pns.js +96 -0
  252. package/dist/web/assets/mipsasm-BMqwQI7S.js +1 -0
  253. package/dist/web/assets/mojo-CFuIV2fl.js +1 -0
  254. package/dist/web/assets/monokai-B_bV9PQ9.js +1 -0
  255. package/dist/web/assets/moonbit-DgjMoLWr.js +1 -0
  256. package/dist/web/assets/move-BYnGhZoM.js +1 -0
  257. package/dist/web/assets/narrat-_X_XdTYD.js +1 -0
  258. package/dist/web/assets/nextflow-BJtWHP5T.js +1 -0
  259. package/dist/web/assets/nextflow-groovy-DJMQeKeT.js +1 -0
  260. package/dist/web/assets/nginx-BTMw9COX.js +1 -0
  261. package/dist/web/assets/night-owl-DhmEMT88.js +1 -0
  262. package/dist/web/assets/night-owl-light-eJ-hLW7d.js +1 -0
  263. package/dist/web/assets/nim-B6yJ_yaC.js +1 -0
  264. package/dist/web/assets/nix-IvuFDN5E.js +1 -0
  265. package/dist/web/assets/nord-Cb4Vim4T.js +1 -0
  266. package/dist/web/assets/nsis-CjNLYCLg.js +1 -0
  267. package/dist/web/assets/nushell-DHYfO66s.js +1 -0
  268. package/dist/web/assets/objective-c-D1A_Heim.js +1 -0
  269. package/dist/web/assets/objective-cpp-BsSzOQcm.js +1 -0
  270. package/dist/web/assets/ocaml-O90oeIOV.js +1 -0
  271. package/dist/web/assets/odin-B1RWQWA5.js +1 -0
  272. package/dist/web/assets/one-dark-pro-CLwyXe_n.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/ordinal-BDEzSJ7C.js +1 -0
  276. package/dist/web/assets/org-Ddi8Gs6E.js +1 -0
  277. package/dist/web/assets/packet-7NZHBO7P-aNovgfCM.js +1 -0
  278. package/dist/web/assets/pascal-4ZHwLPI5.js +1 -0
  279. package/dist/web/assets/path-fybaL0A-.js +1 -0
  280. package/dist/web/assets/pegDiagram-VL7TDLO6-2e4z4Op-.js +1 -0
  281. package/dist/web/assets/perl-DEgXgjuC.js +1 -0
  282. package/dist/web/assets/php-B9UPq-vz.js +1 -0
  283. package/dist/web/assets/pie-RZYD4A2V-DNId-ti0.js +1 -0
  284. package/dist/web/assets/pieDiagram-7S7Q4E2Y-D5ZE6kTv.js +39 -0
  285. package/dist/web/assets/pierre-dark-CpLgRqie.js +1 -0
  286. package/dist/web/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +1 -0
  287. package/dist/web/assets/pierre-dark-soft-kZQmAZld.js +1 -0
  288. package/dist/web/assets/pierre-dark-tritanopia-CpjhbsIL.js +1 -0
  289. package/dist/web/assets/pierre-dark-vibrant-CpQYzh95.js +1 -0
  290. package/dist/web/assets/pierre-light-CoaEpmwp.js +1 -0
  291. package/dist/web/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +1 -0
  292. package/dist/web/assets/pierre-light-soft-lWLdNTOI.js +1 -0
  293. package/dist/web/assets/pierre-light-tritanopia-CEbqgOJL.js +1 -0
  294. package/dist/web/assets/pierre-light-vibrant-D80Fkn33.js +1 -0
  295. package/dist/web/assets/pkl-ot-7Btpt.js +1 -0
  296. package/dist/web/assets/plastic-DQwYfKfQ.js +1 -0
  297. package/dist/web/assets/plsql-DGHpHOYJ.js +1 -0
  298. package/dist/web/assets/po-BiJDBrnU.js +1 -0
  299. package/dist/web/assets/poimandres-DRFjx7u4.js +1 -0
  300. package/dist/web/assets/polar-C7UOKdEL.js +1 -0
  301. package/dist/web/assets/postcss-BXeXVLqQ.js +1 -0
  302. package/dist/web/assets/powerquery-DNMTfnFr.js +1 -0
  303. package/dist/web/assets/powershell-CCSX75yM.js +1 -0
  304. package/dist/web/assets/prisma-DMgNhnYS.js +1 -0
  305. package/dist/web/assets/prolog-iXnhIJG7.js +1 -0
  306. package/dist/web/assets/proto-DB4EqR-F.js +1 -0
  307. package/dist/web/assets/pug-DkgDHZci.js +1 -0
  308. package/dist/web/assets/puppet-CDv2pdJW.js +1 -0
  309. package/dist/web/assets/purescript-9MfHhQsQ.js +1 -0
  310. package/dist/web/assets/python-gzcpVVnB.js +1 -0
  311. package/dist/web/assets/qml-_a-QhfPD.js +1 -0
  312. package/dist/web/assets/qmldir-DCQb3MpD.js +1 -0
  313. package/dist/web/assets/qss-Fe1Jh2GI.js +1 -0
  314. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-BwxDvFqg.js +7 -0
  315. package/dist/web/assets/r-BHcO8Vjq.js +1 -0
  316. package/dist/web/assets/racket-DcIDlBhZ.js +1 -0
  317. package/dist/web/assets/radar-I7S5WNFK-C2R9CqOg.js +1 -0
  318. package/dist/web/assets/railroad-3IZDKUUU-BcNatsBm.js +1 -0
  319. package/dist/web/assets/railroad-abnf-AHOZXSZD-BZPZwTjc.js +1 -0
  320. package/dist/web/assets/railroad-ebnf-EBAXGLYW-CpdNBsnS.js +1 -0
  321. package/dist/web/assets/railroad-peg-LSFZ7HO6-R8jDubES.js +1 -0
  322. package/dist/web/assets/railroadDiagram-AXF67PYL-CGJ_SZmV.js +1 -0
  323. package/dist/web/assets/raku-B3gFvitq.js +1 -0
  324. package/dist/web/assets/razor-BMJ0eI3p.js +1 -0
  325. package/dist/web/assets/rbs-C0MpOrj4.js +1 -0
  326. package/dist/web/assets/red-DX1BQOs8.js +1 -0
  327. package/dist/web/assets/reg-CRGYupPL.js +1 -0
  328. package/dist/web/assets/regexp-DR20uMnK.js +1 -0
  329. package/dist/web/assets/rel-BtDbiS_P.js +1 -0
  330. package/dist/web/assets/requirementDiagram-LRYGKXZP-BedGrIx6.js +84 -0
  331. package/dist/web/assets/riscv-Ckw8ddFX.js +1 -0
  332. package/dist/web/assets/rolldown-runtime-hePW80VL.js +1 -0
  333. package/dist/web/assets/ron-VUp2lXgN.js +1 -0
  334. package/dist/web/assets/rose-pine-aMsaMD1D.js +1 -0
  335. package/dist/web/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
  336. package/dist/web/assets/rose-pine-moon-DO-qXg-I.js +1 -0
  337. package/dist/web/assets/rosmsg-CAekHB0j.js +1 -0
  338. package/dist/web/assets/rough.esm-Dy-Kn_BL.js +1 -0
  339. package/dist/web/assets/rst-BQCbfb9V.js +1 -0
  340. package/dist/web/assets/ruby-B8JcIHv0.js +1 -0
  341. package/dist/web/assets/rust-Cfkwpbl8.js +1 -0
  342. package/dist/web/assets/sankeyDiagram-W5VNT64P-zK0XX_8d.js +40 -0
  343. package/dist/web/assets/sas-CBpMWA2M.js +1 -0
  344. package/dist/web/assets/sass-DXrisJhu.js +1 -0
  345. package/dist/web/assets/scala-BiFt_7mu.js +1 -0
  346. package/dist/web/assets/scheme-DQCgrYNe.js +1 -0
  347. package/dist/web/assets/scss-YesllqfO.js +1 -0
  348. package/dist/web/assets/sdbl-bTVj8UrX.js +1 -0
  349. package/dist/web/assets/sequenceDiagram-SI44F4Z6-DbI4quME.js +162 -0
  350. package/dist/web/assets/shaderlab-TOUzSsQk.js +1 -0
  351. package/dist/web/assets/shellscript-Da78Ox-3.js +1 -0
  352. package/dist/web/assets/shellsession-CVsQGYfZ.js +1 -0
  353. package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  354. package/dist/web/assets/slack-dark-DnToyrRv.js +1 -0
  355. package/dist/web/assets/slack-ochin-B2OO5cIa.js +1 -0
  356. package/dist/web/assets/smalltalk-BHpQb5nM.js +1 -0
  357. package/dist/web/assets/smithy-Dgaz7aur.js +1 -0
  358. package/dist/web/assets/snazzy-light-4G7pJPwS.js +1 -0
  359. package/dist/web/assets/solarized-dark-UdsmMDCL.js +1 -0
  360. package/dist/web/assets/solarized-light-C1IUL_tW.js +1 -0
  361. package/dist/web/assets/solidity-Bj7E1mRn.js +1 -0
  362. package/dist/web/assets/soy-DEd-qcad.js +1 -0
  363. package/dist/web/assets/sparql-D_iOobhT.js +1 -0
  364. package/dist/web/assets/splunk-BC2Px7Mm.js +1 -0
  365. package/dist/web/assets/sql-DdD7vxS4.js +1 -0
  366. package/dist/web/assets/src-B6xuSHsQ.js +1 -0
  367. package/dist/web/assets/ssh-config-BgfXC-Er.js +1 -0
  368. package/dist/web/assets/stata-CMv7m7Gi.js +1 -0
  369. package/dist/web/assets/stateDiagram-OKZ733FA-5dL9K4ba.js +1 -0
  370. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-ChRa8APT.js +1 -0
  371. package/dist/web/assets/stylus-B6D30XZt.js +1 -0
  372. package/dist/web/assets/surrealql-BZoq2lXR.js +1 -0
  373. package/dist/web/assets/svelte-Bj3Hmc9F.js +1 -0
  374. package/dist/web/assets/swift-CyEgAFGc.js +1 -0
  375. package/dist/web/assets/swimlanes-SLNWSIFB-CnNbnSFl.js +2 -0
  376. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-QmkQO3yp.js +8 -0
  377. package/dist/web/assets/synthwave-84-nFMaYfgc.js +1 -0
  378. package/dist/web/assets/system-verilog-Dh5ihWbf.js +1 -0
  379. package/dist/web/assets/systemd-BxMlprV5.js +1 -0
  380. package/dist/web/assets/talonscript-CohzipZa.js +1 -0
  381. package/dist/web/assets/tasl-DMoTqEGO.js +1 -0
  382. package/dist/web/assets/tcl-CZd0xW_V.js +1 -0
  383. package/dist/web/assets/templ-TjxbArHn.js +1 -0
  384. package/dist/web/assets/terraform-DswuEJGm.js +1 -0
  385. package/dist/web/assets/tex-BK-H2Wn4.js +1 -0
  386. package/dist/web/assets/timeline-definition-Z64GVDOM-ht7Pc9Lh.js +120 -0
  387. package/dist/web/assets/tokyo-night-oM2G3aXe.js +1 -0
  388. package/dist/web/assets/toml-CcmNWLt0.js +1 -0
  389. package/dist/web/assets/treeView-QDETBFTQ-B-GVm6gh.js +1 -0
  390. package/dist/web/assets/treemap-6X3UGDF4-DZ5ImJjV.js +1 -0
  391. package/dist/web/assets/ts-tags-Cc5do7zu.js +1 -0
  392. package/dist/web/assets/tsv-sltzmVWM.js +1 -0
  393. package/dist/web/assets/tsx-CUOciP0b.js +1 -0
  394. package/dist/web/assets/turtle-ByJddavk.js +1 -0
  395. package/dist/web/assets/twig-BVSnuTf-.js +1 -0
  396. package/dist/web/assets/typescript-BydbNFcO.js +1 -0
  397. package/dist/web/assets/typespec-BRdr0IET.js +1 -0
  398. package/dist/web/assets/typst-DI99ib-x.js +1 -0
  399. package/dist/web/assets/v-DBj4K9d_.js +1 -0
  400. package/dist/web/assets/vala-zf12oZj6.js +1 -0
  401. package/dist/web/assets/vb-DOwzaHZ0.js +1 -0
  402. package/dist/web/assets/vennDiagram-T6HMQDX7-DVnsZuuc.js +34 -0
  403. package/dist/web/assets/verilog-B2gwz-sJ.js +1 -0
  404. package/dist/web/assets/vesper-DdrHHSXu.js +1 -0
  405. package/dist/web/assets/vhdl-BroJfC0k.js +1 -0
  406. package/dist/web/assets/viml-DvXPmvsu.js +1 -0
  407. package/dist/web/assets/vitesse-black-fwtXNY1n.js +1 -0
  408. package/dist/web/assets/vitesse-dark-BZCL-v6S.js +1 -0
  409. package/dist/web/assets/vitesse-light-VbXTXTou.js +1 -0
  410. package/dist/web/assets/vue-BNQF7r6F.js +1 -0
  411. package/dist/web/assets/vue-html-DkKkQnZL.js +1 -0
  412. package/dist/web/assets/vue-vine-DFaKYU4X.js +1 -0
  413. package/dist/web/assets/vyper-CgoNMtux.js +1 -0
  414. package/dist/web/assets/wardley-OPB4EBWU-CLk0x8RD.js +1 -0
  415. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BgtlhJqk.js +78 -0
  416. package/dist/web/assets/wasm-BnjxR4X6.js +1 -0
  417. package/dist/web/assets/wasm-ByWQv1Qj.js +1 -0
  418. package/dist/web/assets/wenyan-C8pVoKbM.js +1 -0
  419. package/dist/web/assets/wgsl-BsKzXJz4.js +1 -0
  420. package/dist/web/assets/wikitext-ClFFjSW2.js +1 -0
  421. package/dist/web/assets/wit-DdvCle-K.js +1 -0
  422. package/dist/web/assets/wolfram-DLL8P-h_.js +1 -0
  423. package/dist/web/assets/xml-BlnrEAEy.js +1 -0
  424. package/dist/web/assets/xsl-BOPS8gLt.js +1 -0
  425. package/dist/web/assets/xychartDiagram-ELKLHX3M-CXEN46LP.js +7 -0
  426. package/dist/web/assets/yaml-Du_6cdrH.js +1 -0
  427. package/dist/web/assets/zenscript-BnlCZFoB.js +1 -0
  428. package/dist/web/assets/zig-CMLA9XwU.js +1 -0
  429. package/dist/web/index.html +15 -0
  430. package/migrations/001_initial.sql +96 -0
  431. package/migrations/002_commit_model.sql +120 -0
  432. package/migrations/003_editable_comment_posts.sql +36 -0
  433. package/migrations/004_walkthroughs.sql +25 -0
  434. package/migrations/005_walkthrough_comments.sql +53 -0
  435. package/migrations/006_theme_preference.sql +2 -0
  436. package/migrations/007_file_level_walkthrough_references.sql +24 -0
  437. package/migrations/008_walkthrough_line_comments.sql +62 -0
  438. package/package.json +92 -0
  439. package/skills/rvw/SKILL.md +133 -0
  440. package/skills/rvw/agents/openai.yaml +4 -0
  441. package/skills/rvw-walkthrough/SKILL.md +106 -0
  442. package/skills/rvw-walkthrough/agents/openai.yaml +4 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,22 @@
1
+ # Changelog
2
+
3
+ 公開releaseごとの利用者向け変更を記録します。package versionとAgent向けprotocol versionは独立して
4
+ 管理し、machine contractのbreaking changeはprotocol versionにも明記します。
5
+
6
+ ## [Unreleased]
7
+
8
+ ## [0.1.0] - 2026-08-17
9
+
10
+ ### Added
11
+
12
+ - GitHub Pull Requestのcommit履歴、変更箇所、repository全体を読むローカルWeb viewer
13
+ - PR本文、file、code line、Walkthroughへのローカルcommentと未解決/解決済みthread
14
+ - Git commitへ固定したMarkdown、code reference、Mermaid bindingのWalkthrough
15
+ - Codex / Claude Codeで共通利用する`rvw`と`rvw-walkthrough` Skill installer
16
+ - `rvw://`参照を扱うversioned JSON CLI protocol
17
+ - CLI、Web assets、database migrations、bundled Skillsを含むglobal-install package
18
+
19
+ ### Security
20
+
21
+ - localhost限定server、Host / Origin検証、sanitized Markdown / Mermaid rendering
22
+ - runtime依存をCLIへbundleし、install時に追加のruntime dependency treeを解決しない配布形式
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 a9n-shoji
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 ADDED
@@ -0,0 +1,305 @@
1
+ # rvw
2
+
3
+ `rvw`は、AIや人間が実装したGitHub Pull Requestを、差分だけでなく変更後のsoftware全体として
4
+ 人間が理解するためのローカルviewerです。PRの意図、Git commit、変更箇所、選択commit時点の
5
+ repository全体を行き来し、PR本文、変更されたコード、変更されていない関連コードへコメントできます。
6
+ Agentが実装やarchitectureの説明を提示した場合は、説明を独立したtabに残したまま、inline linkや
7
+ Mermaid図から人間が選んだcodeだけを開けます。文書は最大2ペインへ並べられるため、
8
+ 説明と実装、callerとdefinition、Markdown previewとcodeを同時に読めます。
9
+
10
+ diffは変更を見つける入口であり、レビュー対象の境界ではありません。人間が結果を読み、影響を追い、
11
+ 次に直すべきことを判断します。Codex / Claude Codeは、その判断を同梱された共通Skillと`rvw` CLI
12
+ protocolで受け取り、実装へ反映します。`rvw`自身はAIを起動せず、コードを編集しません。
13
+
14
+ ```text
15
+ Agentが実装
16
+
17
+ Git commit / GitHub Pull Request
18
+
19
+ Agentが任意でcommit固定のWalkthroughを提示
20
+
21
+ rvwで意図・説明・変更・repository全体を読む
22
+
23
+ 人間が理解し、コードへコメントする
24
+
25
+ Skill + CLI protocol
26
+
27
+ Agentが次の実装へ反映
28
+ ```
29
+
30
+ この考え方とプロダクト境界は[Product principles](docs/product-principles.md)にまとめています。
31
+
32
+ ## 必要なもの
33
+
34
+ - Node.js 24.15.0以上
35
+ - Git
36
+ - [GitHub CLI](https://cli.github.com/)(`gh auth login`と`gh auth setup-git`を完了済み)
37
+ - PRのbase repository clone、またはそのcloneから作ったGit worktree
38
+
39
+ head fork側だけのclone、GitHub Enterprise、Closed / merged PRはPhase 1の対象外です。初回登録と同期にはGitHub接続が必要ですが、登録済みPRは保持済みGit objectとSQLite cacheからofflineでも開けます。
40
+
41
+ ## インストール
42
+
43
+ npm registryからglobal installします。非scopedの`rvw` packageは別のプロジェクトなので、必ずscopeを
44
+ 含めます。
45
+
46
+ ```bash
47
+ npm install --global @a9n-shoji/rvw
48
+ rvw doctor
49
+ ```
50
+
51
+ `rvw doctor`がGit、GitHub CLI認証、repository、database migration、databaseの実書き込み、Agent
52
+ transport疎通を確認します。registryへまだ存在しない開発checkoutを試す場合は、sourceで
53
+ `pnpm install --frozen-lockfile && pnpm build && pnpm link --global`を実行します。
54
+
55
+ レビューしたいrepositoryへ移動して起動します。
56
+
57
+ ```bash
58
+ cd /path/to/base-repository-clone
59
+ rvw open https://github.com/owner/repository/pull/123
60
+ ```
61
+
62
+ 現在branchに対応するPRならURLを省略できます。
63
+
64
+ ```bash
65
+ rvw open
66
+ ```
67
+
68
+ serverは`127.0.0.1`の空きportだけへbindします。通常の`rvw open`はviewerを開き、最初のtab接続を確認してから端末へ制御を返します。serverはbackgroundで動き、最後のtabを閉じると短い猶予後に停止します。リロード中や別tabが残っている間は停止しません。
69
+
70
+ serverを端末に接続したままにする場合は`rvw open --foreground`を使います。ブラウザを開かずに検証する場合は`rvw open --no-open`を使います。どちらもCtrl+Cで停止します。一度登録したPRは、完全URLまたは全登録PRで一意な番号を指定すればrepository外のdirectoryからも開けます。
71
+
72
+ ## 変更を理解する
73
+
74
+ 初回openでPRのcommit履歴と最新PR本文を取得します。以後は保持済み状態を先に表示し、viewer起動後または最上部の`...` menuにある`GitHubと同期`で最新状態を取得します。独自の版取り込み操作はありません。
75
+
76
+ 基本の読み方は次のとおりです。
77
+
78
+ 1. `Pull Request.md`で、最後に同期できたPRの意図と説明を読む。
79
+ 2. 変更ファイルとcommit rangeで、どこがどの順序で変わったかを把握する。
80
+ 3. 全文、全ファイル、repository検索、開いた文書のtabを使い、変更されていないcaller、設定、test、documentまで辿る。
81
+ 4. PR全体、PR本文、変更file、変更されていないfile、コード行へコメントする。
82
+ 5. comment参照をAgentへ渡し、修正後のcommitを同じ文脈で読み直す。
83
+
84
+ viewerはこの流れのために次を提供します。
85
+
86
+ - `Pull Request.md`、変更ファイル、全ファイル
87
+ - 開いた文書を保持するタブ、最大2つの横ペイン、横幅をdrag調整できるsidebar / pane divider
88
+ - タブのdrag & drop、ペインmenu、sidebarからの`Cmd` / `Ctrl`+clickによる右ペイン表示
89
+ - repository内Markdown全文のPreview既定とSource / Preview切り替え(差分がある変更表示は通常のdiff、見出しlinkと同じcommitの相対画像を含む)
90
+ - 全文、選択した連続commit範囲の差分
91
+ - split / stacked diff、syntax highlight、行・範囲選択
92
+ - `@pierre/vscode-icons`による全画面共通の言語/tooling file icon
93
+ - ファイル名fuzzy検索、Gitによるrealtime全文fixed-string検索(case / whole-word、file grouping、行jump)
94
+ - PR全体、PR本文、ファイル全体、行範囲、Walkthrough全体へのコメント
95
+ - 未解決/解決済み、返信、Outdated追跡
96
+ - Agentへ渡す一件・一覧・複数選択した`rvw://comment/<uuid>`参照のコピー
97
+ - Agentが提示したWalkthrough、exact code reference、選択可能なMermaid node
98
+ - Walkthrough commentをAgentが読むときの、元の説明本文とcode referenceの同時取得
99
+ - 同じ参照を保ったWalkthroughの改善と、確認付きの不要Walkthrough削除
100
+
101
+ 各commitはcommit message、short SHA、commit日時で選択できます。一件はclick、連続範囲は一覧をdragするだけで両端を含めて選べ、`PR全体`と`最新だけ`のshortcutも利用できます。範囲のlatest側がheadならtop barに`最新`を表示します。`Pull Request.md`は選択commitにかかわらず常に最新です。
102
+
103
+ 全文表示と全ファイルtreeが通常のrepository reading surfaceです。変更表示は同じcommit範囲へ
104
+ 変更箇所を重ねるlensとして働きます。diff外のfileを開いても比較条件は変わらず、そのcommitの
105
+ 全文を表示して`差分なし · 全文表示`と明示します。
106
+
107
+ ## Agentの説明を人間の順序で検証する
108
+
109
+ 外部Agentは`rvw-walkthrough` SkillとCLIを使い、実装説明を一つのcommitへ固定してrvwへ提示できます。
110
+
111
+ ```bash
112
+ rvw walkthrough publish --stdin --json
113
+ ```
114
+
115
+ 説明はMarkdown、`rvw-ref:<id>` link、typedな`path + 任意のline range`、任意のMermaid node bindingから
116
+ 構成されます。参照は意味のある複数行range、単行、またはfile全体を指せます。rvwは登録時にcommit、
117
+ path、指定された行範囲を検証します。publishしてもbrowserは開かれず、
118
+ active tabやscroll位置も変わりません。人間がviewerのWalkthroughを開き、必要なreferenceを選んだ
119
+ 時だけ、exact sourceがdocument tabへ開き、行指定があれば範囲全体が強調されます。`Cmd` / `Ctrl`を押しながら選べば
120
+ 操作元と反対のペインへ開きます。説明tabは残るため、
121
+ 複数のclaimと実装を任意の順序・任意のタイミングで往復できます。
122
+
123
+ Walkthrough本文のinline referenceとMermaid node linkは維持しますが、同じ参照を横や下へ列挙する
124
+ `Code references` indexとsidebar上の参照件数は表示しません。そのため、本文linkと、本文中に実在する
125
+ flowchart/classDiagram nodeへのMermaid bindingのどちらからも使われないreferenceはpublish/update時に
126
+ 拒否します。存在しないnode名だけをbindingへ宣言しても使用済みにはなりません。
127
+
128
+ Mermaidの描画はflowchartだけに限定せず、class、sequence、state、ERなどbundled Mermaidが対応する
129
+ 記法を受け付けます。code referenceとの要素bindingはflowchartとclass diagramをE2Eで保証し、
130
+ SVG上の要素構造が異なる他の記法は描画とinteractionを分けて扱います。
131
+
132
+ これはin-app AI chatではありません。説明と図はAgentのclaimで、commit済みcodeが検証対象の正本です。
133
+ Walkthroughにはローカルな版履歴を持たせません。説明全体へのfeedbackはstableなWalkthrough IDへ残るため、
134
+ Agentは現在内容を読み、同じ`rvw://walkthrough/<uuid>`を更新して分かりやすくできます。更新後もコメントは
135
+ 同じ説明へ残り、viewerはpollで本文、参照、titleを再取得します。不要なWalkthroughはviewerの削除action、
136
+ または削除件数を確認したCLIで、紐づくコメントと返信を含めて削除できます。
137
+
138
+ ## Codex / Claude Code Skills
139
+
140
+ アプリ本体からローカルSkillをインストールします。一度のinstallで、コメント処理用の`rvw`と
141
+ Walkthroughのpublish・改善・削除用の`rvw-walkthrough`が入ります。Skill名と内容はCodex / Claude Codeで共通で、
142
+ platform指定は配置先だけを選びます。
143
+
144
+ ```bash
145
+ rvw skill install codex
146
+ rvw skill install claude
147
+ rvw skill status
148
+ ```
149
+
150
+ 既定の配置先は次です。
151
+
152
+ - Codex: `~/.agents/skills/rvw`、`~/.agents/skills/rvw-walkthrough`
153
+ - Claude Code: `~/.claude/skills/rvw`、`~/.claude/skills/rvw-walkthrough`
154
+
155
+ rvwがインストールしたSkillには同梱版digestを記録します。`skill status --json`と`doctor --json`は、
156
+ 管理済みの旧版なら`updateAvailable: true`、ローカル編集なら`locallyModified: true`、記録のない差異なら
157
+ `state: "unmanaged-difference"`として区別します。自動では上書きしないため、内容を確認したうえで
158
+ `--force`を指定してください。package smokeやカスタム配置にはplatformを明示して
159
+ `rvw skill status codex --target <SKILLS_ROOT>`のように指定します。
160
+ 以前の開発版が配置した`rvw-codex` / `rvw-claude` directoryは、local変更を消さないため自動削除しません。
161
+ 内容を確認してから手動で取り除いてください。
162
+
163
+ コメント対応では、Agentへviewerからコピーしたコメント参照を渡すか、対象PRの未解決コメント全体を
164
+ 確認するよう依頼します。
165
+
166
+ ```text
167
+ rvw Skillを使って、次のコメントを確認してください。
168
+
169
+ rvw://comment/00000000-0000-4000-8000-000000000000
170
+ ```
171
+
172
+ ```text
173
+ rvw Skillを使って、https://github.com/owner/repository/pull/123 の未解決コメントを確認してください。
174
+ ```
175
+
176
+ Walkthroughを作る場合は、説明したい対象をセッションへ伝えて`rvw-walkthrough` Skillを使います。
177
+ Skillは文書の見出しや説明順序を固定せず、セッションが作った説明をcommit固定のreference付きartifactとして
178
+ 検証してpublishします。Walkthrough全体へのコメントから説明を改善する場合は、現在内容を取得して同じURIを
179
+ 更新し、重複した「改訂版」を追加しません。
180
+
181
+ 二つのSkillはSQLiteを直接読まず、`rvw protocol --json`、`rvw comment ... --json`、
182
+ `rvw walkthrough get/update/publish/delete ... --json`、`rvw pr sync --stdin --json`だけを利用します。
183
+ ローカルDBやrepositoryへアクセスできないCloud Agentは対象外です。
184
+
185
+ ## 復旧
186
+
187
+ まず`rvw doctor --json`でGit、GitHub CLI認証、現在のrepository、DB pathを確認してください。初回登録や
188
+ 同期だけが失敗する場合は`gh auth status`とnetworkを確認します。登録済みPRはofflineでも開けます。
189
+
190
+ force-push前に観測したhead commitはimmutable refで保持するため、旧コメントの参照元として読めます。Git refとSQLiteの不整合は部分修復せず、削除件数を確認後、正式な復旧手段としてresetします。
191
+
192
+ ```bash
193
+ rvw pr reset https://github.com/owner/repository/pull/123 --json
194
+ rvw pr reset https://github.com/owner/repository/pull/123 --yes --json
195
+ ```
196
+
197
+ resetは対象PRのコメント、返信、コメント対象、Walkthrough、code reference、
198
+ `refs/rvw/pr/<number>/...`を削除し、現在のGitHub状態からcacheとhead refを再構築します。
199
+ バックアップや旧コメント移行は行わず、元に戻せません。
200
+
201
+ ## CLI protocol
202
+
203
+ 機械向けコマンドはstdoutへJSONだけを出します。
204
+
205
+ ```bash
206
+ rvw protocol --json
207
+ rvw agent ping --json
208
+ rvw agent status --json
209
+ rvw pr refresh <PR_REF> --json
210
+ rvw comment list <PR_REF> --state unresolved --limit 50 --offset 0 --json
211
+ rvw comment get <COMMENT_URI> --json
212
+ rvw comment get <COMMENT_URI> --include-pr-body --json
213
+ rvw comment get <COMMENT_URI> --live --json
214
+ rvw comment reply <COMMENT_URI> --stdin --json
215
+ rvw comment resolve <COMMENT_URI> --json
216
+ rvw comment reopen <COMMENT_URI> --json
217
+ rvw walkthrough get <WALKTHROUGH_URI> --json
218
+ rvw walkthrough publish --stdin --json
219
+ rvw walkthrough update <WALKTHROUGH_URI> --stdin --json
220
+ rvw walkthrough delete <WALKTHROUGH_URI> --json
221
+ rvw walkthrough delete <WALKTHROUGH_URI> --yes --json
222
+ rvw pr sync --stdin --json [--repository <PATH>] [--allow-untracked]
223
+ rvw pr attach <PR_REF> --repository <PATH> --json
224
+ ```
225
+
226
+ `--stdin` commandはEOFまでJSONを読みます。改行だけでは終了しないため、processから呼ぶ場合は送信後に
227
+ stdinをcloseし、shellではpipe、quoted heredoc、input redirectionのいずれかを使います。起動済みの
228
+ 対話commandへJSONと改行だけを送るとEOF待ちになります。
229
+
230
+ `comment list`は未解決を既定として`unresolved` / `resolved` / `all`をページング列挙し、各threadの
231
+ root post preview、post件数、最新head時点のOutdated判定を返します。`hasMore`なら`nextOffset`から
232
+ 続けて取得し、完全なthreadは`comment get`で読みます。listと通常の`comment get`はPR本文を省略し、
233
+ 本文が必要な場合だけ`comment get --include-pr-body`で最新の同期済み本文を取得します。複数threadを
234
+ 扱うAgentは同じPR本文を一度だけ取得し、そのPRの全threadで共有します。
235
+ `comment get`は最新PRのtitle、base/head、serviceが導出したplacement、対象commitのbounded source
236
+ excerptを返すため、AgentはOID比較でOutdatedを推測しません。
237
+
238
+ `comment get --live`はGitHubの現在値とcacheの差をread-onlyで確認し、DBを更新しません。`pr sync`はGitHub上の最新PR状態を取得し、任意の`commentUpdates`を同じSQLite transactionで反映します。保存先がdirtyでも同じrepositoryのcleanなworktreeを`--repository`で選べ、確認済みの未追跡fileだけは`--allow-untracked`で許可できます。local branchがGitHub headより単にbehindな場合や最終同期後にforce-pushされた場合はcheckoutを変更せず同期します。`pr sync`と`comment reply`は冪等ではないため、結果が不明な場合はコメントを再取得してから再試行してください。
239
+
240
+ `rvw agent ping/status --json`はsocket path、接続結果とOS error詳細、期待/接続先DB、選択transport、
241
+ fallback理由を表示します。人向け出力にも同じ診断項目を表示します。`RVW_AGENT_SOCKET_PATH`を明示した場合は
242
+ そのsocketを必須とし、接続失敗やDB不一致をdirect
243
+ databaseへfallbackせずerrorにします。未指定時だけ、request送信前の接続失敗をdirect databaseへ
244
+ fallbackできます。
245
+
246
+ 詳細は[CLI protocol](docs/cli-protocol.md)と[実装仕様](docs/implementation-spec.md)を参照してください。
247
+
248
+ ## 0.x compatibility
249
+
250
+ CLI command / flag、`rvw://` URI、machine-readable JSON protocol、bundled Skillとのprotocolは、0.xでも
251
+ 互換性を意識するsurfaceです。breaking changeが必要な場合はprotocol versionを進め、同梱Skillと文書を
252
+ 同じreleaseで更新します。SQLite schema、data directory内layout、`src/` moduleはpublic APIではなく、
253
+ 直接操作・importする前提を置きません。詳しくは[0.x compatibility](docs/compatibility.md)を参照してください。
254
+ 最初のpublic protocolはversion 1とし、公開後はversion番号を再利用しません。
255
+
256
+ ## Issues and contributions
257
+
258
+ bug reportとfeature suggestionは[GitHub Issues](https://github.com/a9n-shoji/rvw/issues)で歓迎します。
259
+ 個人で保守しているため応答や修正時期は保証せず、Pull Requestは原則として募集していません。詳しくは
260
+ [Contributing](CONTRIBUTING.md)を参照してください。security issueはpublic Issueへ書かず、
261
+ [Security policy](SECURITY.md)の案内に従ってください。
262
+
263
+ maintainer向けのversion、tag、npm staged publishing、障害対応手順は
264
+ [npm release runbook](docs/releasing.md)にまとめています。
265
+
266
+ ## 開発
267
+
268
+ ```bash
269
+ pnpm install --frozen-lockfile
270
+ pnpm check
271
+ pnpm test
272
+ pnpm test:e2e
273
+ pnpm build
274
+ pnpm test:package
275
+ ```
276
+
277
+ 通常テストは実Git binaryとfake GitHub adapterを使い、GitHub認証やnetworkを必要としません。
278
+ `test:package`はclean buildと実tarball作成を行い、一時directoryへinstallしてrepository checkout外から
279
+ CLI、migration、frontend、bundled Skillをsmoke testします。CIはmacOS、Linux、Windowsでpackage smokeを
280
+ 実行しますが、通常CIからnpmへ公開しません。
281
+
282
+ ## データとセキュリティ
283
+
284
+ SQLite DBはOSのユーザーデータdirectoryに保存され、`rvw doctor --json`の`databasePath`で実際の場所を
285
+ 確認できます。DBにはlocal repository path、同期済みPR metadata/body、コメント、Walkthrough、theme
286
+ 設定を保存します。review対象repositoryには旧sourceを保持する`refs/rvw/` Git refを作成します。GitHub
287
+ credentialはGitHub CLIが管理し、rvwのDBへコピーしません。
288
+
289
+ 既定DBのdirectory/fileは新規作成時だけ`0700` / `0600`へ設定し、既存pathはownerとmodeを検証して
290
+ 安全ならchmodしません。明示的に管理する別pathは`RVW_DATABASE_PATH`で指定でき、この場合rvwは既存pathを
291
+ chmodしません。存在しないdirectory/fileは作成時のmodeだけで`0700` / `0600`にし、既存pathが推奨modeで
292
+ なければ`doctor --json`にwarningを表示します。通常起動したviewerは`0700`の一時directory内へ
293
+ `0600`のdatabase別Unix socketを提供し、Agent CLIは可能ならそのprocessへ
294
+ 書き込みを依頼するため、AgentへDB directoryの直接write権限を渡す必要がありません。同じsocketでは
295
+ atomicなowner lockを取得した一つのNode processだけがlistenし、owner終了後にfollowerが引き継ぎます。
296
+ `rvw doctor --json`はmode/ownerだけでなくwrite transactionとAgent疎通も報告します。
297
+
298
+ ローカルHTTP serverは`127.0.0.1`だけへbindしてHost / Originを検証し、write APIは
299
+ `application/json`だけを受理し、CORSを有効にしません。コメントと返信はplain UTF-8 textです。
300
+ CLIとfrontend bundleに含まれる第三者softwareのlicenseはpackage内の
301
+ `dist/cli-THIRD_PARTY_NOTICES.txt`と`dist/web/THIRD_PARTY_NOTICES.txt`へbuild時に収録します。
302
+
303
+ ## License
304
+
305
+ [MIT](LICENSE)
package/SECURITY.md ADDED
@@ -0,0 +1,27 @@
1
+ # Security Policy
2
+
3
+ ## Supported versions
4
+
5
+ 公開後は、最新の0.x releaseをbest effortで扱います。古いreleaseへの修正や応答期限は保証しません。
6
+
7
+ ## Reporting a vulnerability
8
+
9
+ 脆弱性の詳細、exploit、credential、private repositoryの情報をpublic Issueへ投稿しないでください。
10
+
11
+ GitHub repositoryの`Security` tabに`Report a vulnerability`が表示される場合は、GitHub Private
12
+ Vulnerability Reportingから報告してください。表示されない場合、現在このrepositoryには公開できる
13
+ private連絡先がありません。機密情報をIssueへ移さず、maintainerがprivate reportingを有効にするまで
14
+ 詳細の送信を控えてください。
15
+
16
+ 報告には、影響、再現条件、影響するversion、可能なら最小の再現手順を含めてください。特に次の境界は
17
+ security上重要です。
18
+
19
+ - local repository、Git object、filesystem path
20
+ - GitHub CLI authentication
21
+ - `127.0.0.1` serverのHost / Origin検証
22
+ - Markdown、HTML、Mermaid、repository内画像のrendering
23
+ - SQLite databaseとmigration
24
+ - bundled SkillとAgent向けCLI protocol
25
+
26
+ 受領確認、修正、公開のSLAは設けていません。検証中の情報は、修正版または回避策を用意する前にpublicへ
27
+ 出さないようお願いします。