@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.
- package/CHANGELOG.md +22 -0
- package/LICENSE +21 -0
- package/README.md +305 -0
- package/SECURITY.md +27 -0
- package/dist/cli-THIRD_PARTY_NOTICES.txt +1073 -0
- package/dist/cli.mjs +34989 -0
- package/dist/cli.mjs.map +7 -0
- package/dist/web/THIRD_PARTY_NOTICES.txt +5302 -0
- package/dist/web/assets/DocumentViewer-Bpo61duW.js +1560 -0
- package/dist/web/assets/MarkdownImagePlaceholder-6RCNwzwM.js +36 -0
- package/dist/web/assets/WalkthroughViewer-B5mozyWo.js +2 -0
- package/dist/web/assets/abap-CLvhMVsD.js +1 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-BK5Jn86N.js +1 -0
- package/dist/web/assets/actionscript-3-Cs6JJXT5.js +1 -0
- package/dist/web/assets/ada-C5qYipkI.js +1 -0
- package/dist/web/assets/ahk-CA9gdOdF.js +1 -0
- package/dist/web/assets/ahk2-_6rzW9BS.js +1 -0
- package/dist/web/assets/andromeeda-vGVdxbeo.js +1 -0
- package/dist/web/assets/angular-html-B8mrqUL5.js +1 -0
- package/dist/web/assets/angular-ts-Bzix210W.js +1 -0
- package/dist/web/assets/apache-U0d_L8uA.js +1 -0
- package/dist/web/assets/apex-KFGFyKwG.js +1 -0
- package/dist/web/assets/apl-Dhin1L29.js +1 -0
- package/dist/web/assets/applescript-CCn79oCD.js +1 -0
- package/dist/web/assets/ara-4CJ0cIlV.js +1 -0
- package/dist/web/assets/arc-Pry-7G1_.js +1 -0
- package/dist/web/assets/architecture-TIHT7OUA-CNniK53V.js +1 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-C4e8BOKi.js +36 -0
- package/dist/web/assets/array-BifhSqXX.js +1 -0
- package/dist/web/assets/asciidoc-SCjQUq34.js +1 -0
- package/dist/web/assets/asm-Cmm7eHzH.js +1 -0
- package/dist/web/assets/astro-B-4NNgOP.js +1 -0
- package/dist/web/assets/aurora-x-CDeNXAV0.js +1 -0
- package/dist/web/assets/awk-BWXHIvNe.js +1 -0
- package/dist/web/assets/ayu-dark-DluEY0Gj.js +1 -0
- package/dist/web/assets/ayu-light-C3h-C4tm.js +1 -0
- package/dist/web/assets/ayu-mirage-Bqwy1Gya.js +1 -0
- package/dist/web/assets/ballerina-B7ZEbQpA.js +1 -0
- package/dist/web/assets/bat-qdxAdBWQ.js +1 -0
- package/dist/web/assets/beancount-D-usSTwE.js +1 -0
- package/dist/web/assets/berry-DKpUyyne.js +1 -0
- package/dist/web/assets/bibtex-Ci_nEsc7.js +1 -0
- package/dist/web/assets/bicep-CUHmPFLl.js +1 -0
- package/dist/web/assets/bird2-CYIUgYqB.js +1 -0
- package/dist/web/assets/blade-C6Gedziy.js +1 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-vGkPzqEX.js +132 -0
- package/dist/web/assets/bsl-_VjlB9mv.js +1 -0
- package/dist/web/assets/c-iCihek07.js +1 -0
- package/dist/web/assets/c3-D0apG41V.js +1 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-CFw7KfN7.js +10 -0
- package/dist/web/assets/cadence-CQ2zXKGN.js +1 -0
- package/dist/web/assets/cairo-DLTphjLi.js +1 -0
- package/dist/web/assets/catppuccin-frappe-C9Q5zVZY.js +1 -0
- package/dist/web/assets/catppuccin-latte-CtsyrtPq.js +1 -0
- package/dist/web/assets/catppuccin-macchiato-R8nAf1vR.js +1 -0
- package/dist/web/assets/catppuccin-mocha-DjuaAJKi.js +1 -0
- package/dist/web/assets/channel-D9mpRLqV.js +1 -0
- package/dist/web/assets/chapel-DmtgEXO_.js +1 -0
- package/dist/web/assets/chunk-2GRJ4B5K-CGyf7P1B.js +1 -0
- package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web/assets/chunk-4I5QYGJK-B9gVU0IX.js +1 -0
- package/dist/web/assets/chunk-5RXB4S5H-CxKRHj4A.js +231 -0
- package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web/assets/chunk-6Q2QTUOP-wTr3poCO.js +88 -0
- package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
- package/dist/web/assets/chunk-7Z6QIM7H-DO3-rKs9.js +10 -0
- package/dist/web/assets/chunk-GF5L2VYU-Hf7UNoHx.js +206 -0
- package/dist/web/assets/chunk-I66GZJ75-BsgBf6m-.js +127 -0
- package/dist/web/assets/chunk-JQJVKLGR-C8FDquLg.js +156 -0
- package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web/assets/chunk-KBJHAD2P-32ugraBx.js +1 -0
- package/dist/web/assets/chunk-KEIR6QF5-BICK3FdT.js +161 -0
- package/dist/web/assets/chunk-NSK5VX7P-BRGpsxOZ.js +2 -0
- package/dist/web/assets/chunk-QR6OTTB3-C1LfXMA9.js +62 -0
- package/dist/web/assets/chunk-RYQCIY6F-BsoV8yK2.js +1 -0
- package/dist/web/assets/chunk-UBXNYLIW-CjykxAbY.js +1 -0
- package/dist/web/assets/chunk-W5SLKNZC-DTzd_oWg.js +1 -0
- package/dist/web/assets/chunk-WRU74C26-BOKlupGY.js +70 -0
- package/dist/web/assets/chunk-XXDRQBXY-DqAYeljN.js +1 -0
- package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web/assets/clarity-CtfBBspg.js +1 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-1i-imYTn.js +1 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-1i-imYTn.js +1 -0
- package/dist/web/assets/clojure-DqKBuwfJ.js +1 -0
- package/dist/web/assets/cmake-Bj61d0ZC.js +1 -0
- package/dist/web/assets/cobol-Cw2-KvLW.js +1 -0
- package/dist/web/assets/codeowners-C8r90Shi.js +1 -0
- package/dist/web/assets/codeql-oeQT6MSM.js +1 -0
- package/dist/web/assets/coffee-CiiSLhB6.js +1 -0
- package/dist/web/assets/common-lisp-Cv5bFMCO.js +1 -0
- package/dist/web/assets/coq-DuBRPxYg.js +1 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-lJEhNiw_.js +1 -0
- package/dist/web/assets/cpp-71xkOQct.js +1 -0
- package/dist/web/assets/crystal-DGPAtLeY.js +1 -0
- package/dist/web/assets/csharp-oqKa8noW.js +1 -0
- package/dist/web/assets/css-CNuuLpMC.js +1 -0
- package/dist/web/assets/csv-Dx-8-gkx.js +1 -0
- package/dist/web/assets/cue-CE9AQfxI.js +1 -0
- package/dist/web/assets/cynefin-VYW2F7L2-FyhSpENE.js +1 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-uFUTQ3i8.js +62 -0
- package/dist/web/assets/cypher-ClKdZ_lG.js +1 -0
- package/dist/web/assets/cytoscape.esm-B-NFISlW.js +321 -0
- package/dist/web/assets/d-qD-0Kul2.js +1 -0
- package/dist/web/assets/dagre-Buvkdvvj.js +1 -0
- package/dist/web/assets/dagre-VZM6K2ZE-BlESSHVb.js +4 -0
- package/dist/web/assets/dark-plus-Cs2F2srj.js +1 -0
- package/dist/web/assets/dart-CnvKMtbv.js +1 -0
- package/dist/web/assets/dax-BkyTk9wS.js +1 -0
- package/dist/web/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/web/assets/desktop-Dlh5hvp9.js +1 -0
- package/dist/web/assets/diagram-7IWD3JNH-CVtjyPlA.js +30 -0
- package/dist/web/assets/diagram-B4RE2ZJO-B3alEF-G.js +3 -0
- package/dist/web/assets/diagram-LBJQPF4R-Dz-CRzSx.js +24 -0
- package/dist/web/assets/diagram-Q27KOJAE-B7x_WZC5.js +24 -0
- package/dist/web/assets/diagram-UB23O5K3-Di7vh04u.js +41 -0
- package/dist/web/assets/diff-woXpYk--.js +1 -0
- package/dist/web/assets/dist-v5Q1xZ2K.js +1 -0
- package/dist/web/assets/docker-IyjqRm3v.js +1 -0
- package/dist/web/assets/dotenv-_5a1GRtc.js +1 -0
- package/dist/web/assets/dracula-BHWKrbxM.js +1 -0
- package/dist/web/assets/dracula-soft-5eyTD99u.js +1 -0
- package/dist/web/assets/dream-maker-DW3nJb8Q.js +1 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-CVXtwzOH.js +1 -0
- package/dist/web/assets/edge-DCY0a-ow.js +1 -0
- package/dist/web/assets/elixir-DP304Xio.js +1 -0
- package/dist/web/assets/elm-o4NJxfws.js +1 -0
- package/dist/web/assets/emacs-lisp-c_oH4hRZ.js +1 -0
- package/dist/web/assets/erDiagram-JOGREHBK-C73ySvzv.js +85 -0
- package/dist/web/assets/erb-C7MPl934.js +1 -0
- package/dist/web/assets/erlang-Cphh6RMH.js +1 -0
- package/dist/web/assets/eventmodeling-45OFAUF4-lqF-K7-h.js +1 -0
- package/dist/web/assets/everforest-dark-sB-x3p7T.js +1 -0
- package/dist/web/assets/everforest-light-Df2xbC6M.js +1 -0
- package/dist/web/assets/fennel-DQxkIbk2.js +1 -0
- package/dist/web/assets/fish-BJitypiv.js +1 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-BjY-fuKE.js +1 -0
- package/dist/web/assets/fluent-C03EYrpw.js +1 -0
- package/dist/web/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
- package/dist/web/assets/fortran-free-form-CYNrtFtB.js +1 -0
- package/dist/web/assets/fsharp-D13ZGOAj.js +1 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-DnFdkwyo.js +292 -0
- package/dist/web/assets/gdresource-xMC7jr7x.js +1 -0
- package/dist/web/assets/gdscript-DYvRD3hg.js +1 -0
- package/dist/web/assets/gdshader-CBce3t8t.js +1 -0
- package/dist/web/assets/genie-CV2tkWYe.js +1 -0
- package/dist/web/assets/gherkin-DExj1W_8.js +1 -0
- package/dist/web/assets/git-commit-BSykSTBG.js +1 -0
- package/dist/web/assets/git-rebase-BDPpS8w6.js +1 -0
- package/dist/web/assets/gitGraph-TEB2WS4Q-D9IlUiGc.js +1 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-C8RcHadx.js +106 -0
- package/dist/web/assets/github-dark-C-LZuMrd.js +1 -0
- package/dist/web/assets/github-dark-default-DXG-b-1a.js +1 -0
- package/dist/web/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
- package/dist/web/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
- package/dist/web/assets/github-light-EUqPIrTm.js +1 -0
- package/dist/web/assets/github-light-default-BXViO-2h.js +1 -0
- package/dist/web/assets/github-light-high-contrast-B68TUdTA.js +1 -0
- package/dist/web/assets/gleam-CSRkHgEL.js +1 -0
- package/dist/web/assets/glimmer-js-BONyzAsu.js +1 -0
- package/dist/web/assets/glimmer-ts-f9c0GCOe.js +1 -0
- package/dist/web/assets/glsl-D5MA2a_X.js +1 -0
- package/dist/web/assets/gn-ilITqXS6.js +1 -0
- package/dist/web/assets/gnuplot-7GGW24-e.js +1 -0
- package/dist/web/assets/go-rLFTqkRN.js +1 -0
- package/dist/web/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/web/assets/graphql-Ctjuxyvl.js +1 -0
- package/dist/web/assets/groovy-CacY0gHj.js +1 -0
- package/dist/web/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
- package/dist/web/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
- package/dist/web/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
- package/dist/web/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
- package/dist/web/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
- package/dist/web/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
- package/dist/web/assets/hack-Dh_ZLRbs.js +1 -0
- package/dist/web/assets/haml-CwEpbK1d.js +1 -0
- package/dist/web/assets/handlebars-ryMP1rBR.js +1 -0
- package/dist/web/assets/haskell-D8IpX4py.js +1 -0
- package/dist/web/assets/haxe-C8oCnwJJ.js +1 -0
- package/dist/web/assets/hcl-Dh228itO.js +1 -0
- package/dist/web/assets/hjson-CxZEssPk.js +1 -0
- package/dist/web/assets/hlsl-Cvrh5tZx.js +1 -0
- package/dist/web/assets/horizon-CE9ld1lL.js +1 -0
- package/dist/web/assets/horizon-bright-DSNQnXHK.js +1 -0
- package/dist/web/assets/houston-CsvMBhTu.js +1 -0
- package/dist/web/assets/html-XwrE-1r6.js +1 -0
- package/dist/web/assets/html-derivative-i4STDFnl.js +1 -0
- package/dist/web/assets/http-kmH8AyfE.js +1 -0
- package/dist/web/assets/hurl-DCZHXKU4.js +1 -0
- package/dist/web/assets/hxml-Dcm88srW.js +1 -0
- package/dist/web/assets/hy-CZbG8q4J.js +1 -0
- package/dist/web/assets/imba-DsUTQ-LC.js +1 -0
- package/dist/web/assets/index-B8_aim9s.css +1 -0
- package/dist/web/assets/index-BWaG4LjN.js +355 -0
- package/dist/web/assets/info-DKCQHKI2-D8vjRWaN.js +1 -0
- package/dist/web/assets/infoDiagram-6WML65LV-JfN0KNPZ.js +2 -0
- package/dist/web/assets/ini-B5eOa1yu.js +1 -0
- package/dist/web/assets/init-C-OQMol4.js +1 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-C2AwcyHY.js +70 -0
- package/dist/web/assets/java-DdHNQ9hk.js +1 -0
- package/dist/web/assets/javascript-obGGvMPs.js +1 -0
- package/dist/web/assets/jinja-B-tLrNsM.js +1 -0
- package/dist/web/assets/jison-CBjhYtSs.js +1 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-spVPyB4C.js +139 -0
- package/dist/web/assets/json-DAgxKhMr.js +1 -0
- package/dist/web/assets/json5-BR5RXkoi.js +1 -0
- package/dist/web/assets/jsonc-CYpm1nAK.js +1 -0
- package/dist/web/assets/jsonl-CmCQp5Yx.js +1 -0
- package/dist/web/assets/jsonnet-CJTPZ8u_.js +1 -0
- package/dist/web/assets/jssm-DXw9l8Rf.js +1 -0
- package/dist/web/assets/jsx-gTgmArGx.js +1 -0
- package/dist/web/assets/julia-CXJVy74_.js +1 -0
- package/dist/web/assets/just-B9Xn_Dp4.js +1 -0
- package/dist/web/assets/kanagawa-dragon-Bozd7klA.js +1 -0
- package/dist/web/assets/kanagawa-lotus-BmuOG9ZW.js +1 -0
- package/dist/web/assets/kanagawa-wave-BML5mF2J.js +1 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-DovZ9YwS.js +89 -0
- package/dist/web/assets/katex-CXMH3UgJ.js +257 -0
- package/dist/web/assets/kdl-CsD5j6eV.js +1 -0
- package/dist/web/assets/kotlin-DhhofPvG.js +1 -0
- package/dist/web/assets/kusto-C7mF5XQf.js +1 -0
- package/dist/web/assets/laserwave-C_8bwKvT.js +1 -0
- package/dist/web/assets/latex-o9DRzaEe.js +1 -0
- package/dist/web/assets/lean-CewbzKMR.js +1 -0
- package/dist/web/assets/less-DVTAwKKz.js +1 -0
- package/dist/web/assets/light-plus-DVQuIRkW.js +1 -0
- package/dist/web/assets/line-CLgOPnWr.js +1 -0
- package/dist/web/assets/linear-DmucvK78.js +1 -0
- package/dist/web/assets/liquid-G0MH4h_m.js +1 -0
- package/dist/web/assets/llvm-DqHOMS-s.js +1 -0
- package/dist/web/assets/log-BNLmms1o.js +1 -0
- package/dist/web/assets/logo-Cluzi2Zq.js +1 -0
- package/dist/web/assets/lua-FONpmTUP.js +1 -0
- package/dist/web/assets/luau-C2pBCSgt.js +1 -0
- package/dist/web/assets/make-Dixweg8N.js +1 -0
- package/dist/web/assets/map-BaFkSB1l.js +1 -0
- package/dist/web/assets/markdown-BYOwaDjH.js +1 -0
- package/dist/web/assets/marko-DV5GrDmo.js +1 -0
- package/dist/web/assets/material-theme-Bm3Qr25_.js +1 -0
- package/dist/web/assets/material-theme-darker-2IIEA8gg.js +1 -0
- package/dist/web/assets/material-theme-lighter-uhdI0v04.js +1 -0
- package/dist/web/assets/material-theme-ocean-CHQ94UKr.js +1 -0
- package/dist/web/assets/material-theme-palenight-B5W6OYN7.js +1 -0
- package/dist/web/assets/matlab-D7qyCx1q.js +1 -0
- package/dist/web/assets/mdc-BKfPFPZw.js +1 -0
- package/dist/web/assets/mdx-DQZ5AkYe.js +1 -0
- package/dist/web/assets/mermaid-BxpfTIzt.js +1 -0
- package/dist/web/assets/mermaid-parser.core-DyixRB1x.js +7 -0
- package/dist/web/assets/mermaid.core-BqpBcETK.js +42 -0
- package/dist/web/assets/min-dark-BSWPekZh.js +1 -0
- package/dist/web/assets/min-light-DDpmG2fV.js +1 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-BbPO8pns.js +96 -0
- package/dist/web/assets/mipsasm-BMqwQI7S.js +1 -0
- package/dist/web/assets/mojo-CFuIV2fl.js +1 -0
- package/dist/web/assets/monokai-B_bV9PQ9.js +1 -0
- package/dist/web/assets/moonbit-DgjMoLWr.js +1 -0
- package/dist/web/assets/move-BYnGhZoM.js +1 -0
- package/dist/web/assets/narrat-_X_XdTYD.js +1 -0
- package/dist/web/assets/nextflow-BJtWHP5T.js +1 -0
- package/dist/web/assets/nextflow-groovy-DJMQeKeT.js +1 -0
- package/dist/web/assets/nginx-BTMw9COX.js +1 -0
- package/dist/web/assets/night-owl-DhmEMT88.js +1 -0
- package/dist/web/assets/night-owl-light-eJ-hLW7d.js +1 -0
- package/dist/web/assets/nim-B6yJ_yaC.js +1 -0
- package/dist/web/assets/nix-IvuFDN5E.js +1 -0
- package/dist/web/assets/nord-Cb4Vim4T.js +1 -0
- package/dist/web/assets/nsis-CjNLYCLg.js +1 -0
- package/dist/web/assets/nushell-DHYfO66s.js +1 -0
- package/dist/web/assets/objective-c-D1A_Heim.js +1 -0
- package/dist/web/assets/objective-cpp-BsSzOQcm.js +1 -0
- package/dist/web/assets/ocaml-O90oeIOV.js +1 -0
- package/dist/web/assets/odin-B1RWQWA5.js +1 -0
- package/dist/web/assets/one-dark-pro-CLwyXe_n.js +1 -0
- package/dist/web/assets/one-light-D7Lr4KcI.js +1 -0
- package/dist/web/assets/openscad-BUDT5pXO.js +1 -0
- package/dist/web/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/web/assets/org-Ddi8Gs6E.js +1 -0
- package/dist/web/assets/packet-7NZHBO7P-aNovgfCM.js +1 -0
- package/dist/web/assets/pascal-4ZHwLPI5.js +1 -0
- package/dist/web/assets/path-fybaL0A-.js +1 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-2e4z4Op-.js +1 -0
- package/dist/web/assets/perl-DEgXgjuC.js +1 -0
- package/dist/web/assets/php-B9UPq-vz.js +1 -0
- package/dist/web/assets/pie-RZYD4A2V-DNId-ti0.js +1 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-D5ZE6kTv.js +39 -0
- package/dist/web/assets/pierre-dark-CpLgRqie.js +1 -0
- package/dist/web/assets/pierre-dark-protanopia-deuteranopia-B35FxJx-.js +1 -0
- package/dist/web/assets/pierre-dark-soft-kZQmAZld.js +1 -0
- package/dist/web/assets/pierre-dark-tritanopia-CpjhbsIL.js +1 -0
- package/dist/web/assets/pierre-dark-vibrant-CpQYzh95.js +1 -0
- package/dist/web/assets/pierre-light-CoaEpmwp.js +1 -0
- package/dist/web/assets/pierre-light-protanopia-deuteranopia-0fSaH845.js +1 -0
- package/dist/web/assets/pierre-light-soft-lWLdNTOI.js +1 -0
- package/dist/web/assets/pierre-light-tritanopia-CEbqgOJL.js +1 -0
- package/dist/web/assets/pierre-light-vibrant-D80Fkn33.js +1 -0
- package/dist/web/assets/pkl-ot-7Btpt.js +1 -0
- package/dist/web/assets/plastic-DQwYfKfQ.js +1 -0
- package/dist/web/assets/plsql-DGHpHOYJ.js +1 -0
- package/dist/web/assets/po-BiJDBrnU.js +1 -0
- package/dist/web/assets/poimandres-DRFjx7u4.js +1 -0
- package/dist/web/assets/polar-C7UOKdEL.js +1 -0
- package/dist/web/assets/postcss-BXeXVLqQ.js +1 -0
- package/dist/web/assets/powerquery-DNMTfnFr.js +1 -0
- package/dist/web/assets/powershell-CCSX75yM.js +1 -0
- package/dist/web/assets/prisma-DMgNhnYS.js +1 -0
- package/dist/web/assets/prolog-iXnhIJG7.js +1 -0
- package/dist/web/assets/proto-DB4EqR-F.js +1 -0
- package/dist/web/assets/pug-DkgDHZci.js +1 -0
- package/dist/web/assets/puppet-CDv2pdJW.js +1 -0
- package/dist/web/assets/purescript-9MfHhQsQ.js +1 -0
- package/dist/web/assets/python-gzcpVVnB.js +1 -0
- package/dist/web/assets/qml-_a-QhfPD.js +1 -0
- package/dist/web/assets/qmldir-DCQb3MpD.js +1 -0
- package/dist/web/assets/qss-Fe1Jh2GI.js +1 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-BwxDvFqg.js +7 -0
- package/dist/web/assets/r-BHcO8Vjq.js +1 -0
- package/dist/web/assets/racket-DcIDlBhZ.js +1 -0
- package/dist/web/assets/radar-I7S5WNFK-C2R9CqOg.js +1 -0
- package/dist/web/assets/railroad-3IZDKUUU-BcNatsBm.js +1 -0
- package/dist/web/assets/railroad-abnf-AHOZXSZD-BZPZwTjc.js +1 -0
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-CpdNBsnS.js +1 -0
- package/dist/web/assets/railroad-peg-LSFZ7HO6-R8jDubES.js +1 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-CGJ_SZmV.js +1 -0
- package/dist/web/assets/raku-B3gFvitq.js +1 -0
- package/dist/web/assets/razor-BMJ0eI3p.js +1 -0
- package/dist/web/assets/rbs-C0MpOrj4.js +1 -0
- package/dist/web/assets/red-DX1BQOs8.js +1 -0
- package/dist/web/assets/reg-CRGYupPL.js +1 -0
- package/dist/web/assets/regexp-DR20uMnK.js +1 -0
- package/dist/web/assets/rel-BtDbiS_P.js +1 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-BedGrIx6.js +84 -0
- package/dist/web/assets/riscv-Ckw8ddFX.js +1 -0
- package/dist/web/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/dist/web/assets/ron-VUp2lXgN.js +1 -0
- package/dist/web/assets/rose-pine-aMsaMD1D.js +1 -0
- package/dist/web/assets/rose-pine-dawn-8PwUyIlP.js +1 -0
- package/dist/web/assets/rose-pine-moon-DO-qXg-I.js +1 -0
- package/dist/web/assets/rosmsg-CAekHB0j.js +1 -0
- package/dist/web/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist/web/assets/rst-BQCbfb9V.js +1 -0
- package/dist/web/assets/ruby-B8JcIHv0.js +1 -0
- package/dist/web/assets/rust-Cfkwpbl8.js +1 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-zK0XX_8d.js +40 -0
- package/dist/web/assets/sas-CBpMWA2M.js +1 -0
- package/dist/web/assets/sass-DXrisJhu.js +1 -0
- package/dist/web/assets/scala-BiFt_7mu.js +1 -0
- package/dist/web/assets/scheme-DQCgrYNe.js +1 -0
- package/dist/web/assets/scss-YesllqfO.js +1 -0
- package/dist/web/assets/sdbl-bTVj8UrX.js +1 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-DbI4quME.js +162 -0
- package/dist/web/assets/shaderlab-TOUzSsQk.js +1 -0
- package/dist/web/assets/shellscript-Da78Ox-3.js +1 -0
- package/dist/web/assets/shellsession-CVsQGYfZ.js +1 -0
- package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
- package/dist/web/assets/slack-dark-DnToyrRv.js +1 -0
- package/dist/web/assets/slack-ochin-B2OO5cIa.js +1 -0
- package/dist/web/assets/smalltalk-BHpQb5nM.js +1 -0
- package/dist/web/assets/smithy-Dgaz7aur.js +1 -0
- package/dist/web/assets/snazzy-light-4G7pJPwS.js +1 -0
- package/dist/web/assets/solarized-dark-UdsmMDCL.js +1 -0
- package/dist/web/assets/solarized-light-C1IUL_tW.js +1 -0
- package/dist/web/assets/solidity-Bj7E1mRn.js +1 -0
- package/dist/web/assets/soy-DEd-qcad.js +1 -0
- package/dist/web/assets/sparql-D_iOobhT.js +1 -0
- package/dist/web/assets/splunk-BC2Px7Mm.js +1 -0
- package/dist/web/assets/sql-DdD7vxS4.js +1 -0
- package/dist/web/assets/src-B6xuSHsQ.js +1 -0
- package/dist/web/assets/ssh-config-BgfXC-Er.js +1 -0
- package/dist/web/assets/stata-CMv7m7Gi.js +1 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-5dL9K4ba.js +1 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-ChRa8APT.js +1 -0
- package/dist/web/assets/stylus-B6D30XZt.js +1 -0
- package/dist/web/assets/surrealql-BZoq2lXR.js +1 -0
- package/dist/web/assets/svelte-Bj3Hmc9F.js +1 -0
- package/dist/web/assets/swift-CyEgAFGc.js +1 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-CnNbnSFl.js +2 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-QmkQO3yp.js +8 -0
- package/dist/web/assets/synthwave-84-nFMaYfgc.js +1 -0
- package/dist/web/assets/system-verilog-Dh5ihWbf.js +1 -0
- package/dist/web/assets/systemd-BxMlprV5.js +1 -0
- package/dist/web/assets/talonscript-CohzipZa.js +1 -0
- package/dist/web/assets/tasl-DMoTqEGO.js +1 -0
- package/dist/web/assets/tcl-CZd0xW_V.js +1 -0
- package/dist/web/assets/templ-TjxbArHn.js +1 -0
- package/dist/web/assets/terraform-DswuEJGm.js +1 -0
- package/dist/web/assets/tex-BK-H2Wn4.js +1 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-ht7Pc9Lh.js +120 -0
- package/dist/web/assets/tokyo-night-oM2G3aXe.js +1 -0
- package/dist/web/assets/toml-CcmNWLt0.js +1 -0
- package/dist/web/assets/treeView-QDETBFTQ-B-GVm6gh.js +1 -0
- package/dist/web/assets/treemap-6X3UGDF4-DZ5ImJjV.js +1 -0
- package/dist/web/assets/ts-tags-Cc5do7zu.js +1 -0
- package/dist/web/assets/tsv-sltzmVWM.js +1 -0
- package/dist/web/assets/tsx-CUOciP0b.js +1 -0
- package/dist/web/assets/turtle-ByJddavk.js +1 -0
- package/dist/web/assets/twig-BVSnuTf-.js +1 -0
- package/dist/web/assets/typescript-BydbNFcO.js +1 -0
- package/dist/web/assets/typespec-BRdr0IET.js +1 -0
- package/dist/web/assets/typst-DI99ib-x.js +1 -0
- package/dist/web/assets/v-DBj4K9d_.js +1 -0
- package/dist/web/assets/vala-zf12oZj6.js +1 -0
- package/dist/web/assets/vb-DOwzaHZ0.js +1 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-DVnsZuuc.js +34 -0
- package/dist/web/assets/verilog-B2gwz-sJ.js +1 -0
- package/dist/web/assets/vesper-DdrHHSXu.js +1 -0
- package/dist/web/assets/vhdl-BroJfC0k.js +1 -0
- package/dist/web/assets/viml-DvXPmvsu.js +1 -0
- package/dist/web/assets/vitesse-black-fwtXNY1n.js +1 -0
- package/dist/web/assets/vitesse-dark-BZCL-v6S.js +1 -0
- package/dist/web/assets/vitesse-light-VbXTXTou.js +1 -0
- package/dist/web/assets/vue-BNQF7r6F.js +1 -0
- package/dist/web/assets/vue-html-DkKkQnZL.js +1 -0
- package/dist/web/assets/vue-vine-DFaKYU4X.js +1 -0
- package/dist/web/assets/vyper-CgoNMtux.js +1 -0
- package/dist/web/assets/wardley-OPB4EBWU-CLk0x8RD.js +1 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-BgtlhJqk.js +78 -0
- package/dist/web/assets/wasm-BnjxR4X6.js +1 -0
- package/dist/web/assets/wasm-ByWQv1Qj.js +1 -0
- package/dist/web/assets/wenyan-C8pVoKbM.js +1 -0
- package/dist/web/assets/wgsl-BsKzXJz4.js +1 -0
- package/dist/web/assets/wikitext-ClFFjSW2.js +1 -0
- package/dist/web/assets/wit-DdvCle-K.js +1 -0
- package/dist/web/assets/wolfram-DLL8P-h_.js +1 -0
- package/dist/web/assets/xml-BlnrEAEy.js +1 -0
- package/dist/web/assets/xsl-BOPS8gLt.js +1 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-CXEN46LP.js +7 -0
- package/dist/web/assets/yaml-Du_6cdrH.js +1 -0
- package/dist/web/assets/zenscript-BnlCZFoB.js +1 -0
- package/dist/web/assets/zig-CMLA9XwU.js +1 -0
- package/dist/web/index.html +15 -0
- package/migrations/001_initial.sql +96 -0
- package/migrations/002_commit_model.sql +120 -0
- package/migrations/003_editable_comment_posts.sql +36 -0
- package/migrations/004_walkthroughs.sql +25 -0
- package/migrations/005_walkthrough_comments.sql +53 -0
- package/migrations/006_theme_preference.sql +2 -0
- package/migrations/007_file_level_walkthrough_references.sql +24 -0
- package/migrations/008_walkthrough_line_comments.sql +62 -0
- package/package.json +92 -0
- package/skills/rvw/SKILL.md +133 -0
- package/skills/rvw/agents/openai.yaml +4 -0
- package/skills/rvw-walkthrough/SKILL.md +106 -0
- 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
|
+
出さないようお願いします。
|