rdstudio 0.2.0__tar.gz
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.
- rdstudio-0.2.0/.gitignore +35 -0
- rdstudio-0.2.0/LICENSE +21 -0
- rdstudio-0.2.0/PKG-INFO +201 -0
- rdstudio-0.2.0/README.md +188 -0
- rdstudio-0.2.0/pyproject.toml +43 -0
- rdstudio-0.2.0/src/rdstudio/__init__.py +3 -0
- rdstudio-0.2.0/src/rdstudio/_node/rdstudio.mjs +59351 -0
- rdstudio-0.2.0/src/rdstudio/brief.py +46 -0
- rdstudio-0.2.0/src/rdstudio/build.py +218 -0
- rdstudio-0.2.0/src/rdstudio/classify.py +131 -0
- rdstudio-0.2.0/src/rdstudio/cli.py +369 -0
- rdstudio-0.2.0/src/rdstudio/config.py +115 -0
- rdstudio-0.2.0/src/rdstudio/gitlog.py +92 -0
- rdstudio-0.2.0/src/rdstudio/launcher.py +63 -0
- rdstudio-0.2.0/src/rdstudio/learner.py +187 -0
- rdstudio-0.2.0/src/rdstudio/mcp_server.py +313 -0
- rdstudio-0.2.0/src/rdstudio/okf.py +775 -0
- rdstudio-0.2.0/src/rdstudio/procedures.py +233 -0
- rdstudio-0.2.0/src/rdstudio/references.py +228 -0
- rdstudio-0.2.0/src/rdstudio/reports.py +75 -0
- rdstudio-0.2.0/src/rdstudio/scaffold.py +227 -0
- rdstudio-0.2.0/src/rdstudio/scopes.py +162 -0
- rdstudio-0.2.0/src/rdstudio/search.py +149 -0
- rdstudio-0.2.0/src/rdstudio/serve.py +214 -0
- rdstudio-0.2.0/src/rdstudio/store.py +161 -0
- rdstudio-0.2.0/src/rdstudio/templates/agents/critic.md +20 -0
- rdstudio-0.2.0/src/rdstudio/templates/agents/librarian.md +21 -0
- rdstudio-0.2.0/src/rdstudio/templates/agents/searcher.md +21 -0
- rdstudio-0.2.0/src/rdstudio/templates/agents_section.md +31 -0
- rdstudio-0.2.0/src/rdstudio/templates/claude_section.md +3 -0
- rdstudio-0.2.0/src/rdstudio/templates/knowledge/overview.md +20 -0
- rdstudio-0.2.0/src/rdstudio/templates/knowledge/tasks/bootstrap-knowledge-base.md +45 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/decision/SKILL.md +47 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/handoff/SKILL.md +18 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/ingest-ref/SKILL.md +32 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/lint-okf/SKILL.md +15 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/promote/SKILL.md +25 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/question/SKILL.md +33 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/record-okf/SKILL.md +61 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/report/SKILL.md +46 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/report/template.html +74 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/search-okf/SKILL.md +36 -0
- rdstudio-0.2.0/src/rdstudio/templates/skills/task/SKILL.md +51 -0
- rdstudio-0.2.0/src/rdstudio/web/app.js +140 -0
- rdstudio-0.2.0/src/rdstudio/web/fonts.css +48 -0
- rdstudio-0.2.0/src/rdstudio/web/icon-192.png +0 -0
- rdstudio-0.2.0/src/rdstudio/web/icon-512.png +0 -0
- rdstudio-0.2.0/src/rdstudio/web/index.html +109 -0
- rdstudio-0.2.0/src/rdstudio/web/js/data.js +125 -0
- rdstudio-0.2.0/src/rdstudio/web/js/diagrams.js +116 -0
- rdstudio-0.2.0/src/rdstudio/web/js/graph.js +396 -0
- rdstudio-0.2.0/src/rdstudio/web/js/knowledge.js +212 -0
- rdstudio-0.2.0/src/rdstudio/web/js/layout-worker.js +15 -0
- rdstudio-0.2.0/src/rdstudio/web/js/layout.js +226 -0
- rdstudio-0.2.0/src/rdstudio/web/js/learn.js +83 -0
- rdstudio-0.2.0/src/rdstudio/web/js/map.js +1293 -0
- rdstudio-0.2.0/src/rdstudio/web/js/markdown.js +173 -0
- rdstudio-0.2.0/src/rdstudio/web/js/pages.js +219 -0
- rdstudio-0.2.0/src/rdstudio/web/js/procedures.js +262 -0
- rdstudio-0.2.0/src/rdstudio/web/js/settings.js +95 -0
- rdstudio-0.2.0/src/rdstudio/web/js/util.js +99 -0
- rdstudio-0.2.0/src/rdstudio/web/report.css +35 -0
- rdstudio-0.2.0/src/rdstudio/web/report.js +104 -0
- rdstudio-0.2.0/src/rdstudio/web/style.css +566 -0
- rdstudio-0.2.0/src/rdstudio/web/sw.js +166 -0
- rdstudio-0.2.0/src/rdstudio/web/themes/cyber.css +139 -0
- rdstudio-0.2.0/src/rdstudio/web/themes/map.css +133 -0
- rdstudio-0.2.0/src/rdstudio/web/themes/notebook.css +134 -0
- rdstudio-0.2.0/src/rdstudio/web/themes/space.css +135 -0
- rdstudio-0.2.0/src/rdstudio/web/themes/studio.css +110 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/d3.min.js +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/atkinson-hyperlegible-next-latin-ext-wght-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/atkinson-hyperlegible-next-latin-ext-wght-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/atkinson-hyperlegible-next-latin-wght-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/atkinson-hyperlegible-next-latin-wght-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/caveat-latin-wght-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/ibm-plex-sans-latin-wght-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/ibm-plex-sans-latin-wght-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/inter-latin-opsz-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/inter-latin-opsz-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/jetbrains-mono-latin-wght-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/literata-latin-ext-opsz-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/literata-latin-ext-opsz-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/literata-latin-opsz-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/literata-latin-opsz-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/source-sans-3-latin-wght-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/source-sans-3-latin-wght-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/source-serif-4-latin-opsz-italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/fonts/source-serif-4-latin-opsz-normal.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/hljs/github-dark.min.css +10 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/hljs/github.min.css +10 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/hljs/highlight.min.js +1262 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/hljs/julia.min.js +18 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/hljs/latex.min.js +33 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/hljs/matlab.min.js +15 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/auto-render.min.js +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/katex.min.css +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/katex/katex.min.js +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/atkinson-hyperlegible-next-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/caveat-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/d3-7.9.0.txt +13 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/highlightjs-cdn-assets-11.12.0.txt +29 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/ibm-plex-mono-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/ibm-plex-sans-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/inter-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/jetbrains-mono-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/katex-0.18.7.txt +21 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/literata-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/markdown-it-15.0.2.txt +22 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/markdown-it-footnote-4.0.0.txt +22 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/markdown-it-texmath-1.0.0.txt +21 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/mermaid-12.0.0.txt +21 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/source-sans-3-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/source-serif-4-OFL.txt +93 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/vega-6.4.0.txt +27 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/vega-embed-7.2.0.txt +27 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/licenses/vega-lite-6.4.3.txt +27 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/markdown-it-footnote.min.js +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/markdown-it.min.js +14 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/abnfDiagram-DGLNOSUI.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/architecture-7GRP2DOG-HF4J73XS.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/architectureDiagram-IU6H5EVY.mjs +36 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/blockDiagram-FSX6DT2V.mjs +140 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/c4Diagram-YNRVYILN.mjs +38 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-22SYA5HA.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-2FTYKNOQ.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-36VM3LGA.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-3SEI7E7V.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-3T2MNPEU.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-44AU3KAP.mjs +174 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-4MZOTL6B.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-52IMQVNL.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-5NYYYZGL.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-BOZ75642.mjs +15 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-CVBX6EWK.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-D36F7FYG.mjs +14 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-DEGLBX6O.mjs +213 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-F6PIGZHG.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-FE53TMRB.mjs +133 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-FNR2RGIF.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-GDOATIN3.mjs +32 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-H7BX327W.mjs +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-HI3EPXIC.mjs +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-JCBDXJ5W.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-JGXDHUYS.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-L2B47AAZ.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-LIEGGFIX.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-LLWYPJEZ.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-MFYRHTYG.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-MIE3LDYP.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-MLQVGYRW.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-MNT3HHAC.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-NRRTYJAG.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-OCMJQKYE.mjs +10 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-PKJCTQEK.mjs +339 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-QADHU5CF.mjs +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-QVIEFLGF.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-QX7LGXZU.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-R2KH53MI.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-RXM7Z7NK.mjs +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-S4TE5DX6.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-SDIBIOXT.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-TDFULVG6.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-TECWHJ6D.mjs +62 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-TINYC7RT.mjs +70 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-V3KJR4XU.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-VTMXW4ES.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-Y5NT6LW5.mjs +88 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-Y5O5OPKC.mjs +3 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-YZG4BXY6.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/chunk-ZZ52EIBP.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/classDiagram-v2-VV4INRHB.mjs +217 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/cose-bilkent-MSIMRU2B.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/cynefin-OW5HDTMX-KMPDV6GS.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/cynefinDiagram-KTGLXFXK.mjs +62 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/dagre-QJJCSHY4.mjs +4 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/diagram-2ZIM67RP.mjs +3 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/diagram-FYHH5O6R.mjs +24 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/diagram-LYLDACMS.mjs +200 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/diagram-TYT3HRBC.mjs +24 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/diagram-XVIN6YVD.mjs +30 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/diagram-ZO2NLLYC.mjs +41 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/ebnfDiagram-TU3FGH35.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/elk-GHAXNSLK.mjs +27 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/erDiagram-XID3VV23.mjs +99 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/eventmodeling-NTZA5JFV-P5QJSWSK.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/flowDiagram-WPHQAKTU.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/ganttDiagram-QACGSKG6.mjs +292 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/gitGraph-4MIJSDKK-V5NEQQYP.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/gitGraphDiagram-EB76O4HC.mjs +106 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/info-A6RAGUB7-IGBHH2L7.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/infoDiagram-343ZKIDN.mjs +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/ishikawaDiagram-UEEU5D75.mjs +70 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/journeyDiagram-4QTZOVLF.mjs +139 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/kanban-definition-VEJL4RG2.mjs +89 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/katex-QVRI4OIV.mjs +257 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/mindmap-definition-C5K5ZT7T.mjs +96 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/packet-AYTQ26CC-PJTKDECJ.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/pegDiagram-FHIILVJB.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/pie-WAS4IAKB-U3JFQXZN.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/pieDiagram-S76BU6V7.mjs +39 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/quadrantDiagram-HZBLWUZE.mjs +7 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/radar-RG4KPBEZ-7T2UW32D.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/railroad-74A4TZTK-DZY7ARDL.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/railroad-abnf-HS5TGJTU-LWS535ZK.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/railroad-ebnf-LZEXJU2U-EA3S4ZFM.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/railroad-peg-WCYAUIDC-DUKZONPX.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/railroadDiagram-R6RP3MQ2.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/requirementDiagram-SGBABQV6.mjs +84 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/sankeyDiagram-IM6M5BOW.mjs +40 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/sequenceDiagram-FGJOIFJ2.mjs +169 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/sizeCapture-ERV5D3W5.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/stateDiagram-v2-6KDGCZ5J.mjs +291 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/swimlanes-OJBUSBEF.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/swimlanesDiagram-LNXYTHDW.mjs +8 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/timeline-definition-7G6YQRTY.mjs +120 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/treeView-Q6P3EWNA-AABPVERA.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/treemap-WGGIJYW6-F2JSY3V3.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/usecaseDiagram-6Y6TMLBO.mjs +383 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/vennDiagram-6RODYPCK.mjs +34 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/wardley-WFR3VGLG-EIT5NWVN.mjs +1 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/wardleyDiagram-RFZKLAPA.mjs +78 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/chunks/mermaid.esm.min/xychartDiagram-TWWI2QJZ.mjs +7 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/mermaid/mermaid.esm.min.mjs +14 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/texmath.js +368 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/vega/vega-embed.min.js +7 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/vega/vega-lite.min.js +2 -0
- rdstudio-0.2.0/src/rdstudio/web/vendor/vega/vega.min.js +1 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
.venv/
|
|
5
|
+
*.egg-info/
|
|
6
|
+
dist/
|
|
7
|
+
build/
|
|
8
|
+
|
|
9
|
+
# Local reference papers (downloaded copies; not redistributed)
|
|
10
|
+
reference/papers/
|
|
11
|
+
|
|
12
|
+
# Editor / OS
|
|
13
|
+
.DS_Store
|
|
14
|
+
*.swp
|
|
15
|
+
|
|
16
|
+
# rdstudio build output
|
|
17
|
+
.rdstudio/
|
|
18
|
+
|
|
19
|
+
# Benchmark bundles and results (bench/run.py)
|
|
20
|
+
.bench/
|
|
21
|
+
|
|
22
|
+
# TypeScript packages
|
|
23
|
+
node_modules/
|
|
24
|
+
|
|
25
|
+
# The bundled Node command line, built at release (npm run bundle --workspace rdstudio)
|
|
26
|
+
src/rdstudio/_node/
|
|
27
|
+
|
|
28
|
+
# Release staging (mise run release:npm, and the release workflow)
|
|
29
|
+
.release/
|
|
30
|
+
npm-dist/
|
|
31
|
+
# The SvelteKit app
|
|
32
|
+
app/.svelte-kit/
|
|
33
|
+
app/build/
|
|
34
|
+
app/static/
|
|
35
|
+
# openapi.json and src/lib/api/ are generated (npm run generate) but committed, so builds need no server.
|
rdstudio-0.2.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lachlan Stewart
|
|
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.
|
rdstudio-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: rdstudio
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Agentic research and development studio: OKF knowledge bundles, a read-only dashboard, MCP and skills.
|
|
5
|
+
Author: Lachlan Stewart
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Requires-Python: >=3.11
|
|
8
|
+
Requires-Dist: markdown-it-py>=4.2.0
|
|
9
|
+
Requires-Dist: mcp>=2.2.0
|
|
10
|
+
Requires-Dist: nodejs-wheel-binaries>=24.19
|
|
11
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
|
|
14
|
+
# rdstudio
|
|
15
|
+
|
|
16
|
+
A knowledge base, dashboard and agent toolkit for research projects, which you
|
|
17
|
+
add to any repository. You and your agents write notes, decisions, tasks and
|
|
18
|
+
procedures as markdown in `knowledge/`, and a local dashboard lets you browse
|
|
19
|
+
them.
|
|
20
|
+
|
|
21
|
+
**[See a live preview](https://lachlanjs.github.io/rdstudio/)**: the dashboard
|
|
22
|
+
for rdstudio's own knowledge base, rebuilt on every push to `main`.
|
|
23
|
+
|
|
24
|
+
## Requirements
|
|
25
|
+
|
|
26
|
+
- Python 3.11+ and [uv](https://docs.astral.sh/uv/)
|
|
27
|
+
- git
|
|
28
|
+
- An agent harness: [Claude Code](https://claude.com/claude-code) and
|
|
29
|
+
[OpenCode](https://opencode.ai) are set up automatically; others that read
|
|
30
|
+
`AGENTS.md` and support MCP can use the same files
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
uv tool install rdstudio # from PyPI; `uv tool upgrade rdstudio` later
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
or, with Node 24 or later, `npm install -g rdstudio` (or run it without
|
|
39
|
+
installing: `npx rdstudio init`). Either way you get the same program: its
|
|
40
|
+
command line runs on Node, which the Python package brings along as a
|
|
41
|
+
dependency, so there is nothing else to install. `rdstudio-py` runs the older
|
|
42
|
+
Python command line, which does the same things, while it lasts.
|
|
43
|
+
|
|
44
|
+
To work on rdstudio itself, clone the repository, run `mise run setup`, then
|
|
45
|
+
`uv tool install --editable . --force` inside it. Releases are made by pushing
|
|
46
|
+
a version tag (see `knowledge/procedures/release.md`).
|
|
47
|
+
|
|
48
|
+
## Use it in a project
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
cd my-project
|
|
52
|
+
rdstudio init --human human:<your-name>
|
|
53
|
+
rdstudio serve # dashboard at http://localhost:8000
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`init` writes `AGENTS.md` (with `CLAUDE.md` importing it), skills in
|
|
57
|
+
`.claude/skills/`, subagents for both harnesses, and MCP settings in `.mcp.json`
|
|
58
|
+
and `opencode.json`. Then open Claude Code or OpenCode in the project and ask
|
|
59
|
+
it to work through the bootstrap task. The agent agrees a structure for the
|
|
60
|
+
knowledge base with you and fills in the first notes.
|
|
61
|
+
|
|
62
|
+
## Everyday commands
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
rdstudio verify <concept-id> # mark a note as checked by you
|
|
66
|
+
rdstudio check # check the knowledge base's format
|
|
67
|
+
rdstudio path <concept-id> # what to read first, from links rated "requires"
|
|
68
|
+
rdstudio --help # everything else
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Open the dashboard on your other devices
|
|
72
|
+
|
|
73
|
+
Keep `rdstudio serve` on localhost and let Tailscale put it on your tailnet
|
|
74
|
+
over HTTPS, where only your devices can reach it (and a phone can install it as
|
|
75
|
+
a full-screen app):
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
rdstudio serve --port 8003
|
|
79
|
+
tailscale serve --bg --https=8003 http://127.0.0.1:8003
|
|
80
|
+
# open https://<machine>.<tailnet>.ts.net:8003/ on any device signed in to your tailnet
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
`--bg` keeps it across restarts; `tailscale serve --https=8003 off` removes it.
|
|
84
|
+
Use one port per project. `rdstudio serve --host 0.0.0.0` also works, but
|
|
85
|
+
serves plain HTTP to your whole network.
|
|
86
|
+
|
|
87
|
+
Over HTTPS (or on localhost) the dashboard keeps a copy of itself and of the
|
|
88
|
+
notes in the browser: after the first visit it reopens at once, even over a
|
|
89
|
+
slow tunnel, and it can be read offline. Only changed notes are fetched again.
|
|
90
|
+
Add `?nosw` to the address to bypass the copy.
|
|
91
|
+
|
|
92
|
+
## Optional
|
|
93
|
+
|
|
94
|
+
- **Global knowledge base** shared across projects: `rdstudio global init ~/knowledge`
|
|
95
|
+
- **papis references:** add this to `rdstudio.toml`:
|
|
96
|
+
|
|
97
|
+
```toml
|
|
98
|
+
[references]
|
|
99
|
+
backend = "papis"
|
|
100
|
+
library = "<library name>"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
- **Map settings:** the Map tab's Tuning panel adjusts layout and routing;
|
|
104
|
+
put values you like under `[map]` in `rdstudio.toml` to make them the
|
|
105
|
+
project's defaults (see `knowledge/design/map-view.md`).
|
|
106
|
+
- **Learner record:** a private record of what you study, kept outside the
|
|
107
|
+
project (`rdstudio learner` shows where). Off until you add this to
|
|
108
|
+
`~/.config/rdstudio/config.toml`:
|
|
109
|
+
|
|
110
|
+
```toml
|
|
111
|
+
[learner]
|
|
112
|
+
enabled = true
|
|
113
|
+
# path = "~/knowledge/learning" # optional: somewhere versioned and private
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
- **Static site:** `rdstudio export <dir>` writes a snapshot that any static
|
|
117
|
+
host can serve (see below).
|
|
118
|
+
|
|
119
|
+
## Publish to GitHub Pages
|
|
120
|
+
|
|
121
|
+
Anything you publish is public, including commit authors and messages in the
|
|
122
|
+
Changes tab.
|
|
123
|
+
|
|
124
|
+
1. In the repository's settings on GitHub, open **Pages** and set the source to
|
|
125
|
+
**GitHub Actions**.
|
|
126
|
+
2. Add `.github/workflows/knowledge-pages.yml`:
|
|
127
|
+
|
|
128
|
+
```yaml
|
|
129
|
+
name: Publish knowledge dashboard
|
|
130
|
+
on:
|
|
131
|
+
push:
|
|
132
|
+
branches: [main]
|
|
133
|
+
workflow_dispatch:
|
|
134
|
+
permissions:
|
|
135
|
+
contents: read
|
|
136
|
+
pages: write
|
|
137
|
+
id-token: write
|
|
138
|
+
concurrency:
|
|
139
|
+
group: pages
|
|
140
|
+
cancel-in-progress: true
|
|
141
|
+
jobs:
|
|
142
|
+
build:
|
|
143
|
+
runs-on: ubuntu-latest
|
|
144
|
+
steps:
|
|
145
|
+
- uses: actions/checkout@v7
|
|
146
|
+
with:
|
|
147
|
+
fetch-depth: 0 # full history, for the Changes tab
|
|
148
|
+
- uses: astral-sh/setup-uv@v7
|
|
149
|
+
- run: uvx --from git+https://github.com/lachlanjs/rdstudio@v0.1.0 rdstudio export _site
|
|
150
|
+
- uses: actions/upload-pages-artifact@v5
|
|
151
|
+
with:
|
|
152
|
+
path: _site
|
|
153
|
+
deploy:
|
|
154
|
+
needs: build
|
|
155
|
+
runs-on: ubuntu-latest
|
|
156
|
+
environment:
|
|
157
|
+
name: github-pages
|
|
158
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
159
|
+
steps:
|
|
160
|
+
- id: deployment
|
|
161
|
+
uses: actions/deploy-pages@v5
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
If rdstudio is a dev dependency of the project, use `uv run rdstudio export
|
|
165
|
+
_site` instead of the `uvx` line. For other static hosts, run the same export
|
|
166
|
+
and upload `_site/`.
|
|
167
|
+
|
|
168
|
+
## Develop rdstudio
|
|
169
|
+
|
|
170
|
+
Tasks live in `mise.toml`; run them with `mise run <task>` (`mise tasks` lists
|
|
171
|
+
them), or run the command each one names.
|
|
172
|
+
|
|
173
|
+
```sh
|
|
174
|
+
mise run setup # Node 24 (mise), Python and npm dependencies, Chromium for the benchmarks
|
|
175
|
+
mise run test # the Python tests, then the TypeScript packages
|
|
176
|
+
mise run core:test # the TypeScript core against the conformance fixtures
|
|
177
|
+
mise run core:agree ~/notes/knowledge # do the Python and TypeScript cores agree on a bundle?
|
|
178
|
+
mise run bench # load and map benchmarks, written to .bench/results/
|
|
179
|
+
mise run bench:compare .bench/results/a.json .bench/results/b.json
|
|
180
|
+
mise run bench:synth field /tmp/field # a synthetic project of about 1,300 notes
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The benchmarks build and serve the differential geometry test bed (set
|
|
184
|
+
`RDSTUDIO_BENCH_DG` to its folder) and synthetic projects from one subject up
|
|
185
|
+
to a whole field, then time the first map and a fixed pan and zoom in headless
|
|
186
|
+
Chromium, as a desktop and as a phone. Compare any change that could affect
|
|
187
|
+
speed against a baseline. The platform plan is in
|
|
188
|
+
`knowledge/design/platform.md`.
|
|
189
|
+
|
|
190
|
+
The TypeScript core (`packages/core`) and command line (`packages/cli`) are
|
|
191
|
+
replacing the Python ones; `fixtures/` holds the contract both keep (see
|
|
192
|
+
`fixtures/README.md`), and `mise run agree` runs every comparison between the
|
|
193
|
+
two: the core on real bundles, every command's output, every file `build`,
|
|
194
|
+
`export` and `init` write, the notes after the same writes, and the MCP
|
|
195
|
+
server's tools and replies. In a checkout, `rdstudio` runs the TypeScript
|
|
196
|
+
sources directly; `mise run bundle` builds the single file a release ships.
|
|
197
|
+
|
|
198
|
+
## Licence
|
|
199
|
+
|
|
200
|
+
MIT. The bundled libraries and fonts keep their own licences, which are in
|
|
201
|
+
`src/rdstudio/web/vendor/licenses/`.
|
rdstudio-0.2.0/README.md
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# rdstudio
|
|
2
|
+
|
|
3
|
+
A knowledge base, dashboard and agent toolkit for research projects, which you
|
|
4
|
+
add to any repository. You and your agents write notes, decisions, tasks and
|
|
5
|
+
procedures as markdown in `knowledge/`, and a local dashboard lets you browse
|
|
6
|
+
them.
|
|
7
|
+
|
|
8
|
+
**[See a live preview](https://lachlanjs.github.io/rdstudio/)**: the dashboard
|
|
9
|
+
for rdstudio's own knowledge base, rebuilt on every push to `main`.
|
|
10
|
+
|
|
11
|
+
## Requirements
|
|
12
|
+
|
|
13
|
+
- Python 3.11+ and [uv](https://docs.astral.sh/uv/)
|
|
14
|
+
- git
|
|
15
|
+
- An agent harness: [Claude Code](https://claude.com/claude-code) and
|
|
16
|
+
[OpenCode](https://opencode.ai) are set up automatically; others that read
|
|
17
|
+
`AGENTS.md` and support MCP can use the same files
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
uv tool install rdstudio # from PyPI; `uv tool upgrade rdstudio` later
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
or, with Node 24 or later, `npm install -g rdstudio` (or run it without
|
|
26
|
+
installing: `npx rdstudio init`). Either way you get the same program: its
|
|
27
|
+
command line runs on Node, which the Python package brings along as a
|
|
28
|
+
dependency, so there is nothing else to install. `rdstudio-py` runs the older
|
|
29
|
+
Python command line, which does the same things, while it lasts.
|
|
30
|
+
|
|
31
|
+
To work on rdstudio itself, clone the repository, run `mise run setup`, then
|
|
32
|
+
`uv tool install --editable . --force` inside it. Releases are made by pushing
|
|
33
|
+
a version tag (see `knowledge/procedures/release.md`).
|
|
34
|
+
|
|
35
|
+
## Use it in a project
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
cd my-project
|
|
39
|
+
rdstudio init --human human:<your-name>
|
|
40
|
+
rdstudio serve # dashboard at http://localhost:8000
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
`init` writes `AGENTS.md` (with `CLAUDE.md` importing it), skills in
|
|
44
|
+
`.claude/skills/`, subagents for both harnesses, and MCP settings in `.mcp.json`
|
|
45
|
+
and `opencode.json`. Then open Claude Code or OpenCode in the project and ask
|
|
46
|
+
it to work through the bootstrap task. The agent agrees a structure for the
|
|
47
|
+
knowledge base with you and fills in the first notes.
|
|
48
|
+
|
|
49
|
+
## Everyday commands
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
rdstudio verify <concept-id> # mark a note as checked by you
|
|
53
|
+
rdstudio check # check the knowledge base's format
|
|
54
|
+
rdstudio path <concept-id> # what to read first, from links rated "requires"
|
|
55
|
+
rdstudio --help # everything else
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Open the dashboard on your other devices
|
|
59
|
+
|
|
60
|
+
Keep `rdstudio serve` on localhost and let Tailscale put it on your tailnet
|
|
61
|
+
over HTTPS, where only your devices can reach it (and a phone can install it as
|
|
62
|
+
a full-screen app):
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
rdstudio serve --port 8003
|
|
66
|
+
tailscale serve --bg --https=8003 http://127.0.0.1:8003
|
|
67
|
+
# open https://<machine>.<tailnet>.ts.net:8003/ on any device signed in to your tailnet
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`--bg` keeps it across restarts; `tailscale serve --https=8003 off` removes it.
|
|
71
|
+
Use one port per project. `rdstudio serve --host 0.0.0.0` also works, but
|
|
72
|
+
serves plain HTTP to your whole network.
|
|
73
|
+
|
|
74
|
+
Over HTTPS (or on localhost) the dashboard keeps a copy of itself and of the
|
|
75
|
+
notes in the browser: after the first visit it reopens at once, even over a
|
|
76
|
+
slow tunnel, and it can be read offline. Only changed notes are fetched again.
|
|
77
|
+
Add `?nosw` to the address to bypass the copy.
|
|
78
|
+
|
|
79
|
+
## Optional
|
|
80
|
+
|
|
81
|
+
- **Global knowledge base** shared across projects: `rdstudio global init ~/knowledge`
|
|
82
|
+
- **papis references:** add this to `rdstudio.toml`:
|
|
83
|
+
|
|
84
|
+
```toml
|
|
85
|
+
[references]
|
|
86
|
+
backend = "papis"
|
|
87
|
+
library = "<library name>"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
- **Map settings:** the Map tab's Tuning panel adjusts layout and routing;
|
|
91
|
+
put values you like under `[map]` in `rdstudio.toml` to make them the
|
|
92
|
+
project's defaults (see `knowledge/design/map-view.md`).
|
|
93
|
+
- **Learner record:** a private record of what you study, kept outside the
|
|
94
|
+
project (`rdstudio learner` shows where). Off until you add this to
|
|
95
|
+
`~/.config/rdstudio/config.toml`:
|
|
96
|
+
|
|
97
|
+
```toml
|
|
98
|
+
[learner]
|
|
99
|
+
enabled = true
|
|
100
|
+
# path = "~/knowledge/learning" # optional: somewhere versioned and private
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
- **Static site:** `rdstudio export <dir>` writes a snapshot that any static
|
|
104
|
+
host can serve (see below).
|
|
105
|
+
|
|
106
|
+
## Publish to GitHub Pages
|
|
107
|
+
|
|
108
|
+
Anything you publish is public, including commit authors and messages in the
|
|
109
|
+
Changes tab.
|
|
110
|
+
|
|
111
|
+
1. In the repository's settings on GitHub, open **Pages** and set the source to
|
|
112
|
+
**GitHub Actions**.
|
|
113
|
+
2. Add `.github/workflows/knowledge-pages.yml`:
|
|
114
|
+
|
|
115
|
+
```yaml
|
|
116
|
+
name: Publish knowledge dashboard
|
|
117
|
+
on:
|
|
118
|
+
push:
|
|
119
|
+
branches: [main]
|
|
120
|
+
workflow_dispatch:
|
|
121
|
+
permissions:
|
|
122
|
+
contents: read
|
|
123
|
+
pages: write
|
|
124
|
+
id-token: write
|
|
125
|
+
concurrency:
|
|
126
|
+
group: pages
|
|
127
|
+
cancel-in-progress: true
|
|
128
|
+
jobs:
|
|
129
|
+
build:
|
|
130
|
+
runs-on: ubuntu-latest
|
|
131
|
+
steps:
|
|
132
|
+
- uses: actions/checkout@v7
|
|
133
|
+
with:
|
|
134
|
+
fetch-depth: 0 # full history, for the Changes tab
|
|
135
|
+
- uses: astral-sh/setup-uv@v7
|
|
136
|
+
- run: uvx --from git+https://github.com/lachlanjs/rdstudio@v0.1.0 rdstudio export _site
|
|
137
|
+
- uses: actions/upload-pages-artifact@v5
|
|
138
|
+
with:
|
|
139
|
+
path: _site
|
|
140
|
+
deploy:
|
|
141
|
+
needs: build
|
|
142
|
+
runs-on: ubuntu-latest
|
|
143
|
+
environment:
|
|
144
|
+
name: github-pages
|
|
145
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
146
|
+
steps:
|
|
147
|
+
- id: deployment
|
|
148
|
+
uses: actions/deploy-pages@v5
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
If rdstudio is a dev dependency of the project, use `uv run rdstudio export
|
|
152
|
+
_site` instead of the `uvx` line. For other static hosts, run the same export
|
|
153
|
+
and upload `_site/`.
|
|
154
|
+
|
|
155
|
+
## Develop rdstudio
|
|
156
|
+
|
|
157
|
+
Tasks live in `mise.toml`; run them with `mise run <task>` (`mise tasks` lists
|
|
158
|
+
them), or run the command each one names.
|
|
159
|
+
|
|
160
|
+
```sh
|
|
161
|
+
mise run setup # Node 24 (mise), Python and npm dependencies, Chromium for the benchmarks
|
|
162
|
+
mise run test # the Python tests, then the TypeScript packages
|
|
163
|
+
mise run core:test # the TypeScript core against the conformance fixtures
|
|
164
|
+
mise run core:agree ~/notes/knowledge # do the Python and TypeScript cores agree on a bundle?
|
|
165
|
+
mise run bench # load and map benchmarks, written to .bench/results/
|
|
166
|
+
mise run bench:compare .bench/results/a.json .bench/results/b.json
|
|
167
|
+
mise run bench:synth field /tmp/field # a synthetic project of about 1,300 notes
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
The benchmarks build and serve the differential geometry test bed (set
|
|
171
|
+
`RDSTUDIO_BENCH_DG` to its folder) and synthetic projects from one subject up
|
|
172
|
+
to a whole field, then time the first map and a fixed pan and zoom in headless
|
|
173
|
+
Chromium, as a desktop and as a phone. Compare any change that could affect
|
|
174
|
+
speed against a baseline. The platform plan is in
|
|
175
|
+
`knowledge/design/platform.md`.
|
|
176
|
+
|
|
177
|
+
The TypeScript core (`packages/core`) and command line (`packages/cli`) are
|
|
178
|
+
replacing the Python ones; `fixtures/` holds the contract both keep (see
|
|
179
|
+
`fixtures/README.md`), and `mise run agree` runs every comparison between the
|
|
180
|
+
two: the core on real bundles, every command's output, every file `build`,
|
|
181
|
+
`export` and `init` write, the notes after the same writes, and the MCP
|
|
182
|
+
server's tools and replies. In a checkout, `rdstudio` runs the TypeScript
|
|
183
|
+
sources directly; `mise run bundle` builds the single file a release ships.
|
|
184
|
+
|
|
185
|
+
## Licence
|
|
186
|
+
|
|
187
|
+
MIT. The bundled libraries and fonts keep their own licences, which are in
|
|
188
|
+
`src/rdstudio/web/vendor/licenses/`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "rdstudio"
|
|
3
|
+
version = "0.2.0"
|
|
4
|
+
description = "Agentic research and development studio: OKF knowledge bundles, a read-only dashboard, MCP and skills."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
authors = [{ name = "Lachlan Stewart" }]
|
|
8
|
+
dependencies = [
|
|
9
|
+
"markdown-it-py>=4.2.0",
|
|
10
|
+
"mcp>=2.2.0",
|
|
11
|
+
"nodejs-wheel-binaries>=24.19",
|
|
12
|
+
"pyyaml>=6.0.3",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[project.scripts]
|
|
16
|
+
rdstudio = "rdstudio.launcher:main" # the Node command line (see launcher.py)
|
|
17
|
+
rdstudio-py = "rdstudio.cli:main" # the Python one, while it lasts
|
|
18
|
+
|
|
19
|
+
[build-system]
|
|
20
|
+
requires = ["hatchling"]
|
|
21
|
+
build-backend = "hatchling.build"
|
|
22
|
+
|
|
23
|
+
[tool.hatch.build.targets.wheel]
|
|
24
|
+
packages = ["src/rdstudio"]
|
|
25
|
+
# The bundled Node program is built at release (npm run bundle) and not committed.
|
|
26
|
+
artifacts = ["src/rdstudio/_node/*.mjs"]
|
|
27
|
+
|
|
28
|
+
[tool.hatch.build.targets.sdist]
|
|
29
|
+
# Only the Python package (the TypeScript sources are on GitHub and npm), and
|
|
30
|
+
# the bundle, since uv builds the wheel from this archive.
|
|
31
|
+
only-include = ["src/rdstudio", "README.md", "LICENSE"]
|
|
32
|
+
artifacts = ["src/rdstudio/_node/*.mjs"]
|
|
33
|
+
|
|
34
|
+
[tool.pytest.ini_options]
|
|
35
|
+
testpaths = ["tests"]
|
|
36
|
+
|
|
37
|
+
[dependency-groups]
|
|
38
|
+
bench = [
|
|
39
|
+
"playwright>=1.63.0",
|
|
40
|
+
]
|
|
41
|
+
dev = [
|
|
42
|
+
"pytest>=9.1.1",
|
|
43
|
+
]
|