rdc-cli 0.3.0__tar.gz → 0.3.2__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.
- rdc_cli-0.3.2/.commitlintrc.yml +2 -0
- rdc_cli-0.3.2/.githooks/pre-commit +7 -0
- rdc_cli-0.3.2/.githooks/pre-push +7 -0
- rdc_cli-0.3.2/.github/CODEOWNERS +1 -0
- rdc_cli-0.3.2/.github/workflows/aur.yml +63 -0
- rdc_cli-0.3.2/.github/workflows/ci.yml +183 -0
- rdc_cli-0.3.2/.github/workflows/commitlint.yml +27 -0
- rdc_cli-0.3.2/.github/workflows/docs.yml +127 -0
- rdc_cli-0.3.2/.gitignore +20 -0
- rdc_cli-0.3.2/.python-version +1 -0
- rdc_cli-0.3.2/.release-please-manifest.json +1 -0
- rdc_cli-0.3.2/Makefile +20 -0
- rdc_cli-0.3.2/PKG-INFO +207 -0
- rdc_cli-0.3.2/README.md +178 -0
- rdc_cli-0.3.2/SECURITY.md +6 -0
- rdc_cli-0.3.2/aur/PKGBUILD +97 -0
- rdc_cli-0.3.2/aur/stable/PKGBUILD +83 -0
- rdc_cli-0.3.2/docker/Dockerfile +44 -0
- rdc_cli-0.3.2/docs/cli-reference.md +8 -0
- rdc_cli-0.3.2/docs/index.md +35 -0
- rdc_cli-0.3.2/docs/install.md +63 -0
- rdc_cli-0.3.2/docs/usage.md +92 -0
- rdc_cli-0.3.2/docs/vfs.md +71 -0
- rdc_cli-0.3.2/docs-astro/astro.config.mjs +10 -0
- rdc_cli-0.3.2/docs-astro/package-lock.json +6482 -0
- rdc_cli-0.3.2/docs-astro/package.json +24 -0
- rdc_cli-0.3.2/docs-astro/public/favicon.svg +5 -0
- rdc_cli-0.3.2/docs-astro/src/components/Commands.astro +73 -0
- rdc_cli-0.3.2/docs-astro/src/components/Demo.astro +93 -0
- rdc_cli-0.3.2/docs-astro/src/components/Features.astro +116 -0
- rdc_cli-0.3.2/docs-astro/src/components/Footer.astro +39 -0
- rdc_cli-0.3.2/docs-astro/src/components/Hero.astro +109 -0
- rdc_cli-0.3.2/docs-astro/src/components/Install.astro +116 -0
- rdc_cli-0.3.2/docs-astro/src/components/Navbar.astro +69 -0
- rdc_cli-0.3.2/docs-astro/src/components/Philosophy.astro +80 -0
- rdc_cli-0.3.2/docs-astro/src/components/Terminal.astro +20 -0
- rdc_cli-0.3.2/docs-astro/src/components/ThemeSwitcher.astro +41 -0
- rdc_cli-0.3.2/docs-astro/src/data/stats.json +7 -0
- rdc_cli-0.3.2/docs-astro/src/layouts/Base.astro +37 -0
- rdc_cli-0.3.2/docs-astro/src/layouts/Docs.astro +98 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/ai-integration.astro +116 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/commands.astro +313 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/design.astro +191 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/examples.astro +362 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/index.astro +64 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/install.astro +64 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/usage.astro +95 -0
- rdc_cli-0.3.2/docs-astro/src/pages/docs/vfs.astro +82 -0
- rdc_cli-0.3.2/docs-astro/src/pages/index.astro +24 -0
- rdc_cli-0.3.2/docs-astro/src/styles/global.css +201 -0
- rdc_cli-0.3.2/docs-astro/tailwind.config.mjs +54 -0
- rdc_cli-0.3.2/docs-astro/tapes/pipeline.tape +41 -0
- rdc_cli-0.3.2/docs-astro/tapes/quickstart.tape +37 -0
- rdc_cli-0.3.2/docs-astro/tests/validate.mjs +185 -0
- rdc_cli-0.3.2/docs-astro/tsconfig.json +3 -0
- rdc_cli-0.3.2/mkdocs.yml +37 -0
- rdc_cli-0.3.2/mypy.ini +7 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-bugfix-remaining-blackbox/proposal.md +164 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-bugfix-remaining-blackbox/tasks.md +478 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-bugfix-remaining-blackbox/test-plan.md +562 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-code-maintainability/proposal.md +36 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-code-maintainability/tasks.md +55 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-code-maintainability/test-plan.md +42 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-docs-automation/proposal.md +95 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-docs-automation/tasks.md +185 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-docs-automation/test-plan.md +68 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-skill-auto-install/proposal.md +141 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-skill-auto-install/tasks.md +118 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-22-skill-auto-install/test-plan.md +134 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-23-docs-polish/proposal.md +66 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-23-docs-polish/tasks.md +32 -0
- rdc_cli-0.3.2/openspec/changes/2026-02-23-docs-polish/test-plan.md +48 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-bootstrap-foundation/proposal.md +15 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-bootstrap-foundation/tasks.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-bootstrap-foundation/test-plan.md +49 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-ci-hardening/proposal.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-ci-hardening/specs/ci/spec.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-ci-hardening/tasks.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-ci-hardening/test-plan.md +17 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-core-checks/proposal.md +13 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-core-checks/specs/foundation/spec.md +14 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-core-checks/tasks.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-core-checks/test-plan.md +43 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/proposal.md +13 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/specs/daemon/spec.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/tasks.md +8 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-protocol/test-plan.md +21 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-transport/proposal.md +13 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-transport/specs/daemon/spec.md +14 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-transport/tasks.md +11 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-daemon-transport/test-plan.md +18 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/proposal.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/specs/tooling/spec.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/tasks.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-fixtures-docker/test-plan.md +17 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-pixi-env/proposal.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-pixi-env/specs/tooling/spec.md +8 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-pixi-env/tasks.md +8 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-pixi-env/test-plan.md +16 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-session-skeleton/proposal.md +13 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-session-skeleton/specs/session/spec.md +19 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-session-skeleton/tasks.md +11 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-session-skeleton/test-plan.md +40 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-structure-refactor/design.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-structure-refactor/proposal.md +18 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-structure-refactor/specs/architecture/spec.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-structure-refactor/tasks.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-18-phase0-structure-refactor/test-plan.md +17 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-count-shadermap/proposal.md +39 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-count-shadermap/specs/daemon/spec.md +27 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-count-shadermap/tasks.md +24 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-count-shadermap/test-plan.md +51 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-daemon-replay/proposal.md +39 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/daemon/spec.md +44 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-daemon-replay/specs/foundation/spec.md +44 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-daemon-replay/tasks.md +38 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-daemon-replay/test-plan.md +49 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-draws-events/proposal.md +54 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-draws-events/specs/daemon/spec.md +32 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-draws-events/tasks.md +32 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-draws-events/test-plan.md +81 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-log/proposal.md +33 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-log/tasks.md +10 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-log/test-plan.md +37 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-pass-detail/proposal.md +43 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-pass-detail/tasks.md +10 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-pass-detail/test-plan.md +35 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-resources-passes/proposal.md +23 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-resources-passes/specs/daemon/spec.md +20 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-resources-passes/tasks.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-resources-passes/test-plan.md +25 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-shader-extended/proposal.md +41 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-shader-extended/tasks.md +57 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1-shader-extended/test-plan.md +47 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1.5-vfs/proposal.md +133 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1.5-vfs/tasks.md +114 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase1.5-vfs/test-plan.md +161 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-api-fix/proposal.md +116 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-api-fix/tasks.md +55 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-api-fix/test-plan.md +58 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-buffer-decode/proposal.md +69 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-buffer-decode/tasks.md +41 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-buffer-decode/test-plan.md +74 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-pipeline-state/proposal.md +82 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-pipeline-state/tasks.md +44 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-pipeline-state/test-plan.md +94 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-vfs-binary/proposal.md +230 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-vfs-binary/tasks.md +232 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-19-phase2-vfs-binary/test-plan.md +258 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-counters/proposal.md +145 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-counters/tasks.md +92 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-counters/test-plan.md +215 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-descriptors/proposal.md +104 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-descriptors/tasks.md +71 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-descriptors/test-plan.md +142 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-search/proposal.md +133 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-search/tasks.md +50 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-search/test-plan.md +86 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-usage/proposal.md +120 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-usage/tasks.md +77 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2-usage/test-plan.md +165 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/proposal.md +34 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/tasks.md +7 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-aur-pkgbuild/test-plan.md +35 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/proposal.md +34 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/tasks.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-cli-enhancements/test-plan.md +42 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/proposal.md +54 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/tasks.md +28 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-python-compat-ci/test-plan.md +63 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-release-ci/proposal.md +31 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-release-ci/tasks.md +7 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.5-release-ci/test-plan.md +42 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/proposal.md +29 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/tasks.md +8 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-daemon-crash/test-plan.md +40 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-output-quality/proposal.md +48 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-output-quality/tasks.md +30 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-output-quality/test-plan.md +69 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/proposal.md +49 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/tasks.md +12 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-pipeline-extended/test-plan.md +67 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-shader-api/proposal.md +55 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-shader-api/tasks.md +10 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-phase2.6-shader-api/test-plan.md +65 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-vfs-path-completion/proposal.md +47 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-vfs-path-completion/tasks.md +19 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-20-vfs-path-completion/test-plan.md +50 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/proposal.md +35 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/tasks.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-daemon-startup-timeout/test-plan.md +34 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/proposal.md +43 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/tasks.md +15 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-event-break-and-test-flaky/test-plan.md +42 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-pass-detection/proposal.md +93 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-pass-detection/tasks.md +27 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-pass-detection/test-plan.md +84 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/proposal.md +45 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/tasks.md +13 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-fix-vfs-pass-consistency/test-plan.md +47 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/proposal.md +193 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/tasks.md +138 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-phase2.7-bug-filters/test-plan.md +163 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/proposal.md +199 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/tasks.md +154 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-21-phase2.7-refactor-structure/test-plan.md +154 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/proposal.md +97 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/tasks.md +281 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-blackbox-bug-fixes/test-plan.md +219 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-ci-repo-hardening/proposal.md +36 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-ci-repo-hardening/tasks.md +45 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-ci-repo-hardening/test-plan.md +49 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-code-maintainability/proposal.md +36 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-code-maintainability/tasks.md +55 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-code-maintainability/test-plan.md +42 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-consistent-output-options/proposal.md +157 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-consistent-output-options/tasks.md +246 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-consistent-output-options/test-plan.md +222 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/proposal.md +108 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/tasks.md +13 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-diff-completeness/test-plan.md +140 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/proposal.md +129 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/tasks.md +71 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-shader-api-fix/test-plan.md +121 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/proposal.md +128 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/tasks.md +105 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-design-deviation-vfs-ls-long/test-plan.md +134 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-draws/proposal.md +105 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-draws/tasks.md +45 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-draws/test-plan.md +49 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-framebuffer/proposal.md +159 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-framebuffer/tasks.md +77 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-framebuffer/test-plan.md +117 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-infrastructure/proposal.md +170 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-infrastructure/tasks.md +43 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-infrastructure/test-plan.md +84 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-pipeline/proposal.md +165 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-pipeline/tasks.md +90 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-pipeline/test-plan.md +159 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-resources/proposal.md +111 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-resources/tasks.md +80 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-resources/test-plan.md +170 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-stats/proposal.md +106 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-stats/tasks.md +51 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-diff-stats/test-plan.md +86 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-image-compare/proposal.md +98 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-image-compare/tasks.md +9 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-image-compare/test-plan.md +49 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3a-script/proposal.md +177 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3a-script/tasks.md +92 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3a-script/test-plan.md +174 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/proposal.md +323 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/tasks.md +170 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3c-ci-assertions/test-plan.md +217 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3c-snapshot/proposal.md +91 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3c-snapshot/tasks.md +91 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase3c-snapshot/test-plan.md +128 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4a-shader-debug/proposal.md +332 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4a-shader-debug/tasks.md +100 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4a-shader-debug/test-plan.md +118 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/proposal.md +430 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/tasks.md +227 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4b-shader-edit-replay/test-plan.md +263 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4c-mesh-export/proposal.md +58 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4c-mesh-export/tasks.md +28 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4c-mesh-export/test-plan.md +39 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4c-overlay/proposal.md +113 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4c-overlay/tasks.md +54 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase4c-overlay/test-plan.md +128 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-debug-thread/proposal.md +130 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-debug-thread/tasks.md +40 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-debug-thread/test-plan.md +80 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-pick-pixel/proposal.md +137 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-pick-pixel/tasks.md +52 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-pick-pixel/test-plan.md +81 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-tex-stats/proposal.md +177 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-tex-stats/tasks.md +23 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-phase5-tex-stats/test-plan.md +93 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-robustness-hardening/proposal.md +111 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-robustness-hardening/tasks.md +143 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-robustness-hardening/test-plan.md +171 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-security-hardening-2/proposal.md +15 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-security-hardening-2/tasks.md +21 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-security-hardening-2/test-plan.md +29 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-worktree-isolation/proposal.md +71 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-worktree-isolation/tasks.md +18 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-22-worktree-isolation/test-plan.md +38 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-23-test-gpu-coverage/proposal.md +59 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-23-test-gpu-coverage/tasks.md +32 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-23-test-gpu-coverage/test-plan.md +75 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-23-test-mock-accuracy/proposal.md +53 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-23-test-mock-accuracy/tasks.md +34 -0
- rdc_cli-0.3.2/openspec/changes/archive/2026-02-23-test-mock-accuracy/test-plan.md +81 -0
- rdc_cli-0.3.2/openspec/specs/architecture/spec.md +13 -0
- rdc_cli-0.3.2/openspec/specs/ci/spec.md +23 -0
- rdc_cli-0.3.2/openspec/specs/daemon/spec.md +135 -0
- rdc_cli-0.3.2/openspec/specs/foundation/spec.md +18 -0
- rdc_cli-0.3.2/openspec/specs/packaging/spec.md +56 -0
- rdc_cli-0.3.2/openspec/specs/session/spec.md +23 -0
- rdc_cli-0.3.2/openspec/specs/tooling/spec.md +23 -0
- rdc_cli-0.3.2/pixi.lock +676 -0
- rdc_cli-0.3.2/pixi.toml +26 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/pyproject.toml +6 -2
- rdc_cli-0.3.2/release-please-config.json +34 -0
- rdc_cli-0.3.2/ruff.toml +9 -0
- rdc_cli-0.3.2/scripts/build-renderdoc.sh +82 -0
- rdc_cli-0.3.2/scripts/capture_fixture.sh +22 -0
- rdc_cli-0.3.2/scripts/e2e-test.sh +143 -0
- rdc_cli-0.3.2/scripts/ensure-renderdoc.sh +15 -0
- rdc_cli-0.3.2/scripts/gen-skill-ref.py +103 -0
- rdc_cli-0.3.2/scripts/gen-stats.py +55 -0
- rdc_cli-0.3.2/scripts/setup-renderdoc.sh +68 -0
- rdc_cli-0.3.2/scripts/verify-package.sh +80 -0
- rdc_cli-0.3.2/src/rdc/__init__.py +10 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/_skills/references/commands-quick-ref.md +125 -4
- rdc_cli-0.3.2/src/rdc/capture_core.py +168 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/cli.py +20 -0
- rdc_cli-0.3.2/src/rdc/commands/capture.py +187 -0
- rdc_cli-0.3.2/src/rdc/commands/capture_control.py +172 -0
- rdc_cli-0.3.2/src/rdc/commands/capturefile.py +70 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/snapshot.py +15 -4
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/daemon_server.py +2 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/framebuffer.py +38 -2
- rdc_cli-0.3.2/src/rdc/handlers/capturefile.py +115 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/debug.py +6 -4
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/pixel.py +12 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/query.py +22 -19
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/services/query_service.py +0 -27
- rdc_cli-0.3.2/src/rdc/target_state.py +83 -0
- rdc_cli-0.3.2/src/rdc/vfs/__init__.py +0 -0
- rdc_cli-0.3.2/src/rdc_cli.egg-info/PKG-INFO +207 -0
- rdc_cli-0.3.2/src/rdc_cli.egg-info/SOURCES.txt +509 -0
- rdc_cli-0.3.2/tests/conftest.py +82 -0
- rdc_cli-0.3.2/tests/fixtures/hello_triangle.rdc +0 -0
- rdc_cli-0.3.2/tests/fixtures/vkcube.rdc +0 -0
- rdc_cli-0.3.2/tests/fixtures/vkcube_validation.rdc +0 -0
- rdc_cli-0.3.2/tests/integration/test_daemon_handlers_real.py +2004 -0
- rdc_cli-0.3.2/tests/integration/test_mock_api_sync.py +129 -0
- rdc_cli-0.3.2/tests/integration/test_real_replay.py +114 -0
- rdc_cli-0.3.2/tests/integration/test_vulkan_samples.py +285 -0
- rdc_cli-0.3.2/tests/mocks/mock_renderdoc.py +1813 -0
- rdc_cli-0.3.2/tests/unit/test_adapter.py +62 -0
- rdc_cli-0.3.2/tests/unit/test_assert_ci_commands.py +684 -0
- rdc_cli-0.3.2/tests/unit/test_assert_image_command.py +115 -0
- rdc_cli-0.3.2/tests/unit/test_binary_daemon.py +389 -0
- rdc_cli-0.3.2/tests/unit/test_buffer_decode.py +516 -0
- rdc_cli-0.3.2/tests/unit/test_capture.py +256 -0
- rdc_cli-0.3.2/tests/unit/test_capture_control.py +210 -0
- rdc_cli-0.3.2/tests/unit/test_capture_core.py +262 -0
- rdc_cli-0.3.2/tests/unit/test_capturefile_commands.py +130 -0
- rdc_cli-0.3.2/tests/unit/test_capturefile_handlers.py +161 -0
- rdc_cli-0.3.2/tests/unit/test_ci_files.py +11 -0
- rdc_cli-0.3.2/tests/unit/test_cli.py +20 -0
- rdc_cli-0.3.2/tests/unit/test_cli_session_flag.py +107 -0
- rdc_cli-0.3.2/tests/unit/test_completion.py +50 -0
- rdc_cli-0.3.2/tests/unit/test_count_shadermap.py +425 -0
- rdc_cli-0.3.2/tests/unit/test_counters_commands.py +191 -0
- rdc_cli-0.3.2/tests/unit/test_counters_daemon.py +262 -0
- rdc_cli-0.3.2/tests/unit/test_daemon_crash_regression.py +175 -0
- rdc_cli-0.3.2/tests/unit/test_daemon_output_quality.py +244 -0
- rdc_cli-0.3.2/tests/unit/test_daemon_pipeline_extended.py +341 -0
- rdc_cli-0.3.2/tests/unit/test_daemon_server_unit.py +397 -0
- rdc_cli-0.3.2/tests/unit/test_daemon_shader_api_fix.py +572 -0
- rdc_cli-0.3.2/tests/unit/test_daemon_shader_extended.py +241 -0
- rdc_cli-0.3.2/tests/unit/test_daemon_transport.py +125 -0
- rdc_cli-0.3.2/tests/unit/test_debug_commands.py +777 -0
- rdc_cli-0.3.2/tests/unit/test_debug_handlers.py +929 -0
- rdc_cli-0.3.2/tests/unit/test_descriptors_daemon.py +206 -0
- rdc_cli-0.3.2/tests/unit/test_diff_alignment.py +267 -0
- rdc_cli-0.3.2/tests/unit/test_diff_command.py +534 -0
- rdc_cli-0.3.2/tests/unit/test_diff_draws.py +347 -0
- rdc_cli-0.3.2/tests/unit/test_diff_framebuffer.py +784 -0
- rdc_cli-0.3.2/tests/unit/test_diff_pipeline.py +507 -0
- rdc_cli-0.3.2/tests/unit/test_diff_resources.py +458 -0
- rdc_cli-0.3.2/tests/unit/test_diff_service.py +396 -0
- rdc_cli-0.3.2/tests/unit/test_diff_stats.py +738 -0
- rdc_cli-0.3.2/tests/unit/test_diff_summary.py +176 -0
- rdc_cli-0.3.2/tests/unit/test_discover.py +50 -0
- rdc_cli-0.3.2/tests/unit/test_doctor.py +58 -0
- rdc_cli-0.3.2/tests/unit/test_draws_daemon.py +168 -0
- rdc_cli-0.3.2/tests/unit/test_draws_events_cli.py +53 -0
- rdc_cli-0.3.2/tests/unit/test_draws_events_daemon.py +463 -0
- rdc_cli-0.3.2/tests/unit/test_events_commands.py +187 -0
- rdc_cli-0.3.2/tests/unit/test_export_commands.py +169 -0
- rdc_cli-0.3.2/tests/unit/test_export_overlay.py +112 -0
- rdc_cli-0.3.2/tests/unit/test_fix1_draws_pass_name.py +106 -0
- rdc_cli-0.3.2/tests/unit/test_fix2_vfs_intermediate_dirs.py +173 -0
- rdc_cli-0.3.2/tests/unit/test_fix3_friendly_pass_name.py +31 -0
- rdc_cli-0.3.2/tests/unit/test_formatters.py +90 -0
- rdc_cli-0.3.2/tests/unit/test_gen_skill_ref.py +66 -0
- rdc_cli-0.3.2/tests/unit/test_image_compare.py +154 -0
- rdc_cli-0.3.2/tests/unit/test_info_commands.py +415 -0
- rdc_cli-0.3.2/tests/unit/test_install_skill.py +73 -0
- rdc_cli-0.3.2/tests/unit/test_json_errors.py +208 -0
- rdc_cli-0.3.2/tests/unit/test_mesh_commands.py +149 -0
- rdc_cli-0.3.2/tests/unit/test_mesh_handler.py +187 -0
- rdc_cli-0.3.2/tests/unit/test_mock_capture_types.py +265 -0
- rdc_cli-0.3.2/tests/unit/test_mock_renderdoc.py +169 -0
- rdc_cli-0.3.2/tests/unit/test_output_options.py +64 -0
- rdc_cli-0.3.2/tests/unit/test_overlay_handler.py +178 -0
- rdc_cli-0.3.2/tests/unit/test_pick_pixel_commands.py +122 -0
- rdc_cli-0.3.2/tests/unit/test_pick_pixel_daemon.py +214 -0
- rdc_cli-0.3.2/tests/unit/test_pipeline_cli_phase27.py +258 -0
- rdc_cli-0.3.2/tests/unit/test_pipeline_commands.py +410 -0
- rdc_cli-0.3.2/tests/unit/test_pipeline_daemon.py +87 -0
- rdc_cli-0.3.2/tests/unit/test_pipeline_section_routing.py +334 -0
- rdc_cli-0.3.2/tests/unit/test_pipeline_shader.py +311 -0
- rdc_cli-0.3.2/tests/unit/test_pipeline_state.py +234 -0
- rdc_cli-0.3.2/tests/unit/test_pixel_history_commands.py +240 -0
- rdc_cli-0.3.2/tests/unit/test_pixel_history_daemon.py +247 -0
- rdc_cli-0.3.2/tests/unit/test_pixi_files.py +16 -0
- rdc_cli-0.3.2/tests/unit/test_protocol.py +35 -0
- rdc_cli-0.3.2/tests/unit/test_query_service.py +565 -0
- rdc_cli-0.3.2/tests/unit/test_resources_commands.py +253 -0
- rdc_cli-0.3.2/tests/unit/test_resources_filter.py +356 -0
- rdc_cli-0.3.2/tests/unit/test_script_command.py +199 -0
- rdc_cli-0.3.2/tests/unit/test_script_handler.py +178 -0
- rdc_cli-0.3.2/tests/unit/test_search.py +513 -0
- rdc_cli-0.3.2/tests/unit/test_session_commands.py +96 -0
- rdc_cli-0.3.2/tests/unit/test_session_service.py +185 -0
- rdc_cli-0.3.2/tests/unit/test_session_state.py +208 -0
- rdc_cli-0.3.2/tests/unit/test_shader_edit_commands.py +207 -0
- rdc_cli-0.3.2/tests/unit/test_shader_edit_handlers.py +286 -0
- rdc_cli-0.3.2/tests/unit/test_shader_preload.py +330 -0
- rdc_cli-0.3.2/tests/unit/test_skill_structure.py +61 -0
- rdc_cli-0.3.2/tests/unit/test_snapshot_command.py +280 -0
- rdc_cli-0.3.2/tests/unit/test_target_state.py +76 -0
- rdc_cli-0.3.2/tests/unit/test_tex_stats_commands.py +153 -0
- rdc_cli-0.3.2/tests/unit/test_tex_stats_handler.py +273 -0
- rdc_cli-0.3.2/tests/unit/test_tooling_files.py +31 -0
- rdc_cli-0.3.2/tests/unit/test_unix_helpers_commands.py +203 -0
- rdc_cli-0.3.2/tests/unit/test_usage_commands.py +188 -0
- rdc_cli-0.3.2/tests/unit/test_usage_daemon.py +144 -0
- rdc_cli-0.3.2/tests/unit/test_vfs_binary.py +143 -0
- rdc_cli-0.3.2/tests/unit/test_vfs_commands.py +639 -0
- rdc_cli-0.3.2/tests/unit/test_vfs_completion.py +139 -0
- rdc_cli-0.3.2/tests/unit/test_vfs_daemon.py +474 -0
- rdc_cli-0.3.2/tests/unit/test_vfs_formatter.py +87 -0
- rdc_cli-0.3.2/tests/unit/test_vfs_router.py +480 -0
- rdc_cli-0.3.2/tests/unit/test_vfs_tree_cache.py +645 -0
- rdc_cli-0.3.2/uv.lock +777 -0
- rdc_cli-0.3.0/PKG-INFO +0 -133
- rdc_cli-0.3.0/README.md +0 -104
- rdc_cli-0.3.0/src/rdc/__init__.py +0 -4
- rdc_cli-0.3.0/src/rdc/commands/capture.py +0 -62
- rdc_cli-0.3.0/src/rdc_cli.egg-info/PKG-INFO +0 -133
- rdc_cli-0.3.0/src/rdc_cli.egg-info/SOURCES.txt +0 -83
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/LICENSE +0 -0
- /rdc_cli-0.3.0/src/rdc/_skills/__init__.py → /rdc_cli-0.3.2/docs-astro/public/.nojekyll +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/setup.cfg +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/_skills/SKILL.md +0 -0
- {rdc_cli-0.3.0/src/rdc/vfs → rdc_cli-0.3.2/src/rdc/_skills}/__init__.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/_transport.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/adapter.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/_helpers.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/assert_ci.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/assert_image.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/completion.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/counters.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/debug.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/diff.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/doctor.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/events.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/export.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/info.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/install_skill.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/mesh.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/pick_pixel.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/pipeline.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/pixel.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/resources.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/script.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/search.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/session.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/shader_edit.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/tex_stats.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/unix_helpers.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/usage.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/commands/vfs.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/daemon_client.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/__init__.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/alignment.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/draws.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/pipeline.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/resources.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/stats.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/diff/summary.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/discover.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/formatters/json_fmt.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/formatters/options.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/formatters/tsv.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/__init__.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/_helpers.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/_types.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/buffer.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/core.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/descriptor.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/pipe_state.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/script.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/shader.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/shader_edit.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/texture.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/handlers/vfs.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/image_compare.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/protocol.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/services/__init__.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/services/diff_service.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/services/session_service.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/session_state.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/vfs/formatter.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/vfs/router.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc/vfs/tree_cache.py +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc_cli.egg-info/dependency_links.txt +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc_cli.egg-info/entry_points.txt +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc_cli.egg-info/requires.txt +0 -0
- {rdc_cli-0.3.0 → rdc_cli-0.3.2}/src/rdc_cli.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @BANANASJIM
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: AUR Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
paths: ["aur/PKGBUILD"]
|
|
7
|
+
tags: ["v*"]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
aur-git:
|
|
14
|
+
name: Publish rdc-cli-git
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
if: github.ref_type == 'branch'
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
19
|
+
|
|
20
|
+
- uses: KSXGitHub/github-actions-deploy-aur@9dfe151cf48f26a957bbd0379c120e79cb990e13 # v2.7.2
|
|
21
|
+
with:
|
|
22
|
+
pkgname: rdc-cli-git
|
|
23
|
+
pkgbuild: aur/PKGBUILD
|
|
24
|
+
commit_username: ${{ secrets.AUR_USERNAME }}
|
|
25
|
+
commit_email: ${{ secrets.AUR_EMAIL }}
|
|
26
|
+
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
|
27
|
+
commit_message: "Update PKGBUILD"
|
|
28
|
+
|
|
29
|
+
aur-stable:
|
|
30
|
+
name: Publish rdc-cli (stable)
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
if: github.ref_type == 'tag'
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
35
|
+
|
|
36
|
+
- name: Extract version
|
|
37
|
+
id: ver
|
|
38
|
+
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
|
|
39
|
+
|
|
40
|
+
- name: Compute tarball sha256
|
|
41
|
+
id: sha
|
|
42
|
+
env:
|
|
43
|
+
VERSION: ${{ steps.ver.outputs.version }}
|
|
44
|
+
run: |
|
|
45
|
+
SHA=$(curl -fsSL "https://github.com/BANANASJIM/rdc-cli/archive/refs/tags/v${VERSION}.tar.gz" | sha256sum | awk '{print $1}')
|
|
46
|
+
echo "sha256=${SHA}" >> "$GITHUB_OUTPUT"
|
|
47
|
+
|
|
48
|
+
- name: Patch PKGBUILD
|
|
49
|
+
env:
|
|
50
|
+
VERSION: ${{ steps.ver.outputs.version }}
|
|
51
|
+
SHA256: ${{ steps.sha.outputs.sha256 }}
|
|
52
|
+
run: |
|
|
53
|
+
sed -i "s/^pkgver=.*/pkgver=${VERSION}/" aur/stable/PKGBUILD
|
|
54
|
+
sed -i "s/'PLACEHOLDER'/'${SHA256}'/" aur/stable/PKGBUILD
|
|
55
|
+
|
|
56
|
+
- uses: KSXGitHub/github-actions-deploy-aur@9dfe151cf48f26a957bbd0379c120e79cb990e13 # v2.7.2
|
|
57
|
+
with:
|
|
58
|
+
pkgname: rdc-cli
|
|
59
|
+
pkgbuild: aur/stable/PKGBUILD
|
|
60
|
+
commit_username: ${{ secrets.AUR_USERNAME }}
|
|
61
|
+
commit_email: ${{ secrets.AUR_EMAIL }}
|
|
62
|
+
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
|
|
63
|
+
commit_message: "Update rdc-cli to v${{ steps.ver.outputs.version }}"
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master, main]
|
|
6
|
+
tags: ["v*"]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [master, main]
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: true
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
lint:
|
|
19
|
+
name: Lint (ruff)
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- name: Checkout
|
|
23
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
24
|
+
|
|
25
|
+
- name: Setup uv
|
|
26
|
+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
27
|
+
with:
|
|
28
|
+
enable-cache: true
|
|
29
|
+
|
|
30
|
+
- name: Setup Python
|
|
31
|
+
run: uv python install 3.12
|
|
32
|
+
|
|
33
|
+
- name: Sync deps
|
|
34
|
+
run: uv sync --extra dev
|
|
35
|
+
|
|
36
|
+
- name: Ruff check
|
|
37
|
+
run: uv run ruff check src tests
|
|
38
|
+
|
|
39
|
+
- name: Ruff format check
|
|
40
|
+
run: uv run ruff format --check src tests
|
|
41
|
+
|
|
42
|
+
- name: Verify skill reference is fresh
|
|
43
|
+
run: diff <(uv run python scripts/gen-skill-ref.py) src/rdc/_skills/references/commands-quick-ref.md
|
|
44
|
+
shell: bash
|
|
45
|
+
|
|
46
|
+
security:
|
|
47
|
+
name: Dependency audit
|
|
48
|
+
runs-on: ubuntu-latest
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
51
|
+
- uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
52
|
+
with:
|
|
53
|
+
enable-cache: true
|
|
54
|
+
- run: uv python install 3.12
|
|
55
|
+
- run: uv sync --extra dev
|
|
56
|
+
- run: uv run --with pip-audit pip-audit
|
|
57
|
+
|
|
58
|
+
typecheck:
|
|
59
|
+
name: Type check (mypy)
|
|
60
|
+
runs-on: ubuntu-latest
|
|
61
|
+
steps:
|
|
62
|
+
- name: Checkout
|
|
63
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
64
|
+
|
|
65
|
+
- name: Setup uv
|
|
66
|
+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
67
|
+
with:
|
|
68
|
+
enable-cache: true
|
|
69
|
+
|
|
70
|
+
- name: Setup Python
|
|
71
|
+
run: uv python install 3.12
|
|
72
|
+
|
|
73
|
+
- name: Sync deps
|
|
74
|
+
run: uv sync --extra dev
|
|
75
|
+
|
|
76
|
+
- name: Mypy
|
|
77
|
+
run: uv run mypy src
|
|
78
|
+
|
|
79
|
+
test:
|
|
80
|
+
name: Test (py${{ matrix.python-version }})
|
|
81
|
+
runs-on: ubuntu-latest
|
|
82
|
+
strategy:
|
|
83
|
+
fail-fast: false
|
|
84
|
+
matrix:
|
|
85
|
+
python-version: ["3.10", "3.12", "3.14"]
|
|
86
|
+
steps:
|
|
87
|
+
- name: Checkout
|
|
88
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
89
|
+
|
|
90
|
+
- name: Setup uv
|
|
91
|
+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
92
|
+
with:
|
|
93
|
+
enable-cache: true
|
|
94
|
+
|
|
95
|
+
- name: Setup Python
|
|
96
|
+
run: uv python install ${{ matrix.python-version }}
|
|
97
|
+
|
|
98
|
+
- name: Sync deps
|
|
99
|
+
run: uv sync --extra dev --python ${{ matrix.python-version }}
|
|
100
|
+
|
|
101
|
+
- name: Pytest + coverage
|
|
102
|
+
run: uv run --python ${{ matrix.python-version }} pytest tests/unit -v --cov=rdc --cov-report=term-missing --cov-fail-under=80
|
|
103
|
+
|
|
104
|
+
build-and-verify:
|
|
105
|
+
name: Build & verify (py${{ matrix.python-version }})
|
|
106
|
+
needs: [lint, typecheck, test]
|
|
107
|
+
runs-on: ubuntu-latest
|
|
108
|
+
strategy:
|
|
109
|
+
fail-fast: false
|
|
110
|
+
matrix:
|
|
111
|
+
python-version: ["3.10", "3.12", "3.14"]
|
|
112
|
+
steps:
|
|
113
|
+
- name: Checkout
|
|
114
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
115
|
+
|
|
116
|
+
- name: Setup uv
|
|
117
|
+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
118
|
+
with:
|
|
119
|
+
enable-cache: true
|
|
120
|
+
|
|
121
|
+
- name: Setup Python
|
|
122
|
+
run: uv python install ${{ matrix.python-version }}
|
|
123
|
+
|
|
124
|
+
- name: Build
|
|
125
|
+
run: uv build --python ${{ matrix.python-version }}
|
|
126
|
+
|
|
127
|
+
- name: Twine check
|
|
128
|
+
run: uvx twine check dist/*
|
|
129
|
+
|
|
130
|
+
- name: Check wheel contents
|
|
131
|
+
run: uvx check-wheel-contents dist/*.whl
|
|
132
|
+
|
|
133
|
+
- name: Create clean test venv
|
|
134
|
+
run: uv venv /tmp/test-env --python ${{ matrix.python-version }}
|
|
135
|
+
|
|
136
|
+
- name: Install wheel in clean venv
|
|
137
|
+
run: uv pip install dist/*.whl --python /tmp/test-env/bin/python
|
|
138
|
+
|
|
139
|
+
- name: Smoke test version
|
|
140
|
+
run: /tmp/test-env/bin/rdc --version
|
|
141
|
+
|
|
142
|
+
- name: Smoke test help
|
|
143
|
+
run: /tmp/test-env/bin/rdc --help
|
|
144
|
+
|
|
145
|
+
- name: Smoke test import
|
|
146
|
+
run: /tmp/test-env/bin/python -c "from rdc.cli import main"
|
|
147
|
+
|
|
148
|
+
- name: Upload dist artifacts
|
|
149
|
+
if: matrix.python-version == '3.12'
|
|
150
|
+
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
|
|
151
|
+
with:
|
|
152
|
+
name: dist
|
|
153
|
+
path: dist/
|
|
154
|
+
|
|
155
|
+
release:
|
|
156
|
+
name: Publish to PyPI + GitHub Release
|
|
157
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
158
|
+
needs: [build-and-verify]
|
|
159
|
+
runs-on: ubuntu-latest
|
|
160
|
+
environment: pypi
|
|
161
|
+
permissions:
|
|
162
|
+
id-token: write
|
|
163
|
+
contents: write
|
|
164
|
+
steps:
|
|
165
|
+
- name: Checkout
|
|
166
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
167
|
+
with:
|
|
168
|
+
fetch-depth: 0
|
|
169
|
+
|
|
170
|
+
- name: Download dist artifacts
|
|
171
|
+
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
|
172
|
+
with:
|
|
173
|
+
name: dist
|
|
174
|
+
path: dist/
|
|
175
|
+
|
|
176
|
+
- name: Publish to PyPI
|
|
177
|
+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
|
|
178
|
+
|
|
179
|
+
- name: Create GitHub Release
|
|
180
|
+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
|
|
181
|
+
with:
|
|
182
|
+
files: dist/*
|
|
183
|
+
generate_release_notes: true
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Commit Lint
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [master, main]
|
|
6
|
+
|
|
7
|
+
concurrency:
|
|
8
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
9
|
+
cancel-in-progress: true
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
pull-requests: read
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
commitlint:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout
|
|
20
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
21
|
+
with:
|
|
22
|
+
fetch-depth: 0
|
|
23
|
+
|
|
24
|
+
- name: Commitlint
|
|
25
|
+
uses: wagoid/commitlint-github-action@b948419dd99f3fd78a6548d48f94e3df7f6bf3ed # v6.2.1
|
|
26
|
+
with:
|
|
27
|
+
configFile: .commitlintrc.yml
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
name: Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags: ['v*']
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
|
|
11
|
+
concurrency:
|
|
12
|
+
group: gh-pages
|
|
13
|
+
cancel-in-progress: false
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
build-and-deploy:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout
|
|
20
|
+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
|
21
|
+
|
|
22
|
+
- name: Extract version from tag
|
|
23
|
+
id: version
|
|
24
|
+
run: |
|
|
25
|
+
if [[ "$GITHUB_REF_NAME" == v* ]]; then
|
|
26
|
+
echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
|
|
27
|
+
else
|
|
28
|
+
VER=$(grep -m1 '^version' pyproject.toml | sed 's/.*= *"\(.*\)"/\1/')
|
|
29
|
+
echo "version=${VER}-dev" >> "$GITHUB_OUTPUT"
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
- name: Set up uv
|
|
33
|
+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
|
|
34
|
+
with:
|
|
35
|
+
enable-cache: true
|
|
36
|
+
|
|
37
|
+
- name: Install Python dependencies
|
|
38
|
+
run: uv sync --extra dev
|
|
39
|
+
|
|
40
|
+
- name: Compute test stats
|
|
41
|
+
id: test_stats
|
|
42
|
+
run: |
|
|
43
|
+
TEST_COUNT=$(uv run pytest tests/unit --co 2>/dev/null \
|
|
44
|
+
| grep -oP '^\d+(?= tests? collected)' || echo "0")
|
|
45
|
+
COV_PCT=$(uv run pytest tests/unit --cov=rdc --cov-report=term-missing \
|
|
46
|
+
--no-header -rN -q 2>/dev/null \
|
|
47
|
+
| grep 'TOTAL' | awk '{print $NF}' || echo "")
|
|
48
|
+
echo "test_count=${TEST_COUNT}" >> "$GITHUB_OUTPUT"
|
|
49
|
+
echo "coverage=${COV_PCT}" >> "$GITHUB_OUTPUT"
|
|
50
|
+
|
|
51
|
+
- name: Generate stats.json
|
|
52
|
+
env:
|
|
53
|
+
DOC_VERSION: ${{ steps.version.outputs.version }}
|
|
54
|
+
TEST_COUNT: ${{ steps.test_stats.outputs.test_count }}
|
|
55
|
+
COVERAGE: ${{ steps.test_stats.outputs.coverage }}
|
|
56
|
+
run: |
|
|
57
|
+
mkdir -p docs-astro/src/data
|
|
58
|
+
uv run python scripts/gen-stats.py \
|
|
59
|
+
--version "$DOC_VERSION" \
|
|
60
|
+
--test-count "$TEST_COUNT" \
|
|
61
|
+
--coverage "$COVERAGE" \
|
|
62
|
+
> docs-astro/src/data/stats.json
|
|
63
|
+
cat docs-astro/src/data/stats.json
|
|
64
|
+
|
|
65
|
+
- name: Build mkdocs
|
|
66
|
+
run: uv run --with "mkdocs<2" --with mkdocs-material --with mkdocs-click mkdocs build -d _site
|
|
67
|
+
|
|
68
|
+
- name: Set up Node.js
|
|
69
|
+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
70
|
+
with:
|
|
71
|
+
node-version: 22
|
|
72
|
+
cache: npm
|
|
73
|
+
cache-dependency-path: docs-astro/package-lock.json
|
|
74
|
+
|
|
75
|
+
- name: Build Astro
|
|
76
|
+
run: |
|
|
77
|
+
cd docs-astro
|
|
78
|
+
npm ci
|
|
79
|
+
npm run build
|
|
80
|
+
|
|
81
|
+
- name: Merge mkdocs CLI reference into Astro output
|
|
82
|
+
run: |
|
|
83
|
+
mkdir -p docs-astro/dist/docs/cli-reference
|
|
84
|
+
cp -r _site/cli-reference/* docs-astro/dist/docs/cli-reference/
|
|
85
|
+
|
|
86
|
+
- name: Generate badge endpoint JSONs
|
|
87
|
+
run: |
|
|
88
|
+
mkdir -p docs-astro/dist/badges
|
|
89
|
+
python3 -c "
|
|
90
|
+
import json, pathlib
|
|
91
|
+
s = json.loads(pathlib.Path('docs-astro/src/data/stats.json').read_text())
|
|
92
|
+
badges = [
|
|
93
|
+
('commands', str(s.get('command_count', '?')), 'brightgreen'),
|
|
94
|
+
('tests', str(s.get('test_count', 0) or '?'), 'blue'),
|
|
95
|
+
('coverage', s.get('coverage', '') or '?', 'green'),
|
|
96
|
+
]
|
|
97
|
+
for name, message, color in badges:
|
|
98
|
+
pathlib.Path(f'docs-astro/dist/badges/{name}.json').write_text(
|
|
99
|
+
json.dumps({'schemaVersion': 1, 'label': name, 'message': message, 'color': color})
|
|
100
|
+
)
|
|
101
|
+
print('Badges generated:', [b[0] for b in badges])
|
|
102
|
+
"
|
|
103
|
+
|
|
104
|
+
- name: Deploy to gh-pages branch
|
|
105
|
+
env:
|
|
106
|
+
DOC_VERSION: ${{ steps.version.outputs.version }}
|
|
107
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
108
|
+
run: |
|
|
109
|
+
cd docs-astro/dist
|
|
110
|
+
git init -b gh-pages
|
|
111
|
+
git config user.name "github-actions[bot]"
|
|
112
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
113
|
+
git add .
|
|
114
|
+
git commit -m "deploy: v${DOC_VERSION}"
|
|
115
|
+
git push --force \
|
|
116
|
+
"https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git" \
|
|
117
|
+
HEAD:gh-pages
|
|
118
|
+
|
|
119
|
+
- name: Update repo metadata
|
|
120
|
+
env:
|
|
121
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
122
|
+
DOC_VERSION: ${{ steps.version.outputs.version }}
|
|
123
|
+
run: |
|
|
124
|
+
gh repo edit \
|
|
125
|
+
--description "Scriptable CLI for RenderDoc captures — built for terminal workflows, CI pipelines, and AI agents (v${DOC_VERSION})" \
|
|
126
|
+
|| true
|
|
127
|
+
gh repo edit --homepage "https://bananasjim.github.io/rdc-cli/" || true
|
rdc_cli-0.3.2/.gitignore
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.venv/
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.pyc
|
|
4
|
+
*.pyo
|
|
5
|
+
*.pyd
|
|
6
|
+
.pytest_cache/
|
|
7
|
+
.mypy_cache/
|
|
8
|
+
.ruff_cache/
|
|
9
|
+
.coverage
|
|
10
|
+
htmlcov/
|
|
11
|
+
build/
|
|
12
|
+
dist/
|
|
13
|
+
*.egg-info/
|
|
14
|
+
CLAUDE.md
|
|
15
|
+
tests/fixtures/vulkan_samples
|
|
16
|
+
.local/
|
|
17
|
+
.claude/*
|
|
18
|
+
!.claude/skills/
|
|
19
|
+
_site/
|
|
20
|
+
docs-astro/dist/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.14
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{".": "0.2.0"}
|
rdc_cli-0.3.2/Makefile
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
.PHONY: sync check lint format typecheck test
|
|
2
|
+
|
|
3
|
+
sync:
|
|
4
|
+
uv sync --extra dev
|
|
5
|
+
|
|
6
|
+
check: lint typecheck test
|
|
7
|
+
|
|
8
|
+
lint:
|
|
9
|
+
uv run ruff check src tests
|
|
10
|
+
uv run ruff format --check src tests
|
|
11
|
+
|
|
12
|
+
format:
|
|
13
|
+
uv run ruff format src tests
|
|
14
|
+
uv run ruff check --fix src tests
|
|
15
|
+
|
|
16
|
+
typecheck:
|
|
17
|
+
uv run mypy src
|
|
18
|
+
|
|
19
|
+
test:
|
|
20
|
+
uv run pytest tests -v --cov=rdc --cov-report=term-missing --cov-fail-under=80
|
rdc_cli-0.3.2/PKG-INFO
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: rdc-cli
|
|
3
|
+
Version: 0.3.2
|
|
4
|
+
Summary: Unix-friendly CLI for RenderDoc .rdc captures
|
|
5
|
+
Author: Jim
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Topic :: Multimedia :: Graphics
|
|
15
|
+
Requires-Python: >=3.10
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: click>=8.1
|
|
19
|
+
Requires-Dist: Pillow>=10.0
|
|
20
|
+
Requires-Dist: numpy>=1.24
|
|
21
|
+
Provides-Extra: rich
|
|
22
|
+
Requires-Dist: rich>=13.0; extra == "rich"
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
25
|
+
Requires-Dist: pytest-cov>=5.0; extra == "dev"
|
|
26
|
+
Requires-Dist: mypy>=1.10; extra == "dev"
|
|
27
|
+
Requires-Dist: ruff>=0.6; extra == "dev"
|
|
28
|
+
Dynamic: license-file
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
_____ _____ _____
|
|
32
|
+
| __ \| __ \ / ____|
|
|
33
|
+
| |__) | | | | |
|
|
34
|
+
| _ /| | | | |
|
|
35
|
+
| | \ \| |__| | |____
|
|
36
|
+
|_| \_\_____/ \_____| cli
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
[](https://pypi.org/project/rdc-cli/)
|
|
40
|
+
[](https://pypi.org/project/rdc-cli/)
|
|
41
|
+
[](LICENSE)
|
|
42
|
+
[](https://bananasjim.github.io/rdc-cli/)
|
|
43
|
+
[](https://bananasjim.github.io/rdc-cli/)
|
|
44
|
+
[](https://bananasjim.github.io/rdc-cli/)
|
|
45
|
+
|
|
46
|
+
**Turn RenderDoc captures into Unix text streams.** rdc-cli does not replace RenderDoc — it makes `.rdc` file contents accessible to `grep`, `awk`, `sort`, `diff`, `jq`, and AI agents.
|
|
47
|
+
|
|
48
|
+
**[Full documentation →](https://bananasjim.github.io/rdc-cli/)**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
rdc open scene.rdc
|
|
52
|
+
rdc draws | grep Shadow | sort -t$'\t' -k3 -rn | head -5 # top 5 shadow draws by tri count
|
|
53
|
+
rdc shader 142 ps | grep shadowMap # find shadow sampling in PS
|
|
54
|
+
rdc cat /draws/142/shader/ps/constants # inspect bound constants
|
|
55
|
+
rdc diff before.rdc after.rdc --draws | grep '~' # what changed between two frames?
|
|
56
|
+
rdc close
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Why rdc-cli?
|
|
60
|
+
|
|
61
|
+
RenderDoc is excellent at capturing GPU frames and replaying them interactively. But its GUI doesn't compose — you can't pipe a draw call list into `sort`, diff two captures in CI, or let an AI agent inspect shader state.
|
|
62
|
+
|
|
63
|
+
rdc-cli bridges that gap:
|
|
64
|
+
|
|
65
|
+
- **TSV by default** — every command outputs tab-separated text that pipes directly into Unix tools. Raw numbers, not human-friendly formatting (use `--table` for that).
|
|
66
|
+
- **VFS path namespace** — GPU state is navigable like a filesystem: `/draws/142/shader/ps`, `/passes/GBuffer/draws`, `/resources/88`. Explore with `ls`, read with `cat`.
|
|
67
|
+
- **Daemon architecture** — load the capture once, then query as many times as you want. No per-command startup cost.
|
|
68
|
+
- **Built for CI** — `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` with `diff(1)`-compatible exit codes (0=pass, 1=fail, 2=error).
|
|
69
|
+
- **AI-agent friendly** — structured output (`--json`, `--jsonl`), deterministic VFS paths, and a [Claude Code skill](https://bananasjim.github.io/rdc-cli/) for automated GPU frame analysis.
|
|
70
|
+
- **Escape hatch** — `rdc script` runs arbitrary Python inside the daemon with full access to the renderdoc module, for anything the CLI doesn't cover yet.
|
|
71
|
+
|
|
72
|
+
## Quick examples
|
|
73
|
+
|
|
74
|
+
**Explore a capture like a filesystem:**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
rdc ls / # top-level: draws, passes, resources, shaders, ...
|
|
78
|
+
rdc ls /draws/142 # what's inside this draw call?
|
|
79
|
+
rdc cat /draws/142/pipeline/om # output merger state
|
|
80
|
+
rdc tree /passes --depth 2 # pass structure at a glance
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Shader debugging — no GUI needed:**
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
rdc shader 142 ps # pixel shader disassembly
|
|
87
|
+
rdc shader 142 ps --constants # current constant buffer values
|
|
88
|
+
rdc debug pixel 142 400 300 --trace # step-by-step PS execution trace
|
|
89
|
+
rdc search "shadowMap" # grep across all shaders in the frame
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Export and scripting:**
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
rdc texture 5 -o albedo.png # export a texture
|
|
96
|
+
rdc rt 142 -o render.png # export render target
|
|
97
|
+
rdc buffer 88 -o verts.bin # export raw buffer
|
|
98
|
+
rdc snapshot 142 -o ./snap/ # pipeline + shaders + render targets
|
|
99
|
+
rdc draws --json | jq '.[] | select(.tri_count > 10000)' # filter with jq
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**CI assertions:**
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
rdc open frame.rdc
|
|
106
|
+
rdc assert-pixel 142 400 300 --expect "0.5 0.0 0.0 1.0" --tolerance 0.01
|
|
107
|
+
rdc assert-state 142 topology --expect TriangleList
|
|
108
|
+
rdc assert-image golden.png actual.png --threshold 0.001
|
|
109
|
+
rdc assert-clean --min-severity HIGH
|
|
110
|
+
rdc close
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Two-frame diff:**
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
rdc diff before.rdc after.rdc --shortstat # summary: draws ±N, resources ±N
|
|
117
|
+
rdc diff before.rdc after.rdc --draws # per-draw changes
|
|
118
|
+
rdc diff before.rdc after.rdc --framebuffer # pixel-level image diff
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Install
|
|
122
|
+
|
|
123
|
+
**PyPI** (recommended)
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
pipx install rdc-cli
|
|
127
|
+
# build renderdoc Python module (one-time, ~3 min, needs cmake/ninja/python3)
|
|
128
|
+
curl -fsSL https://raw.githubusercontent.com/BANANASJIM/rdc-cli/master/scripts/build-renderdoc.sh | bash
|
|
129
|
+
rdc doctor # verify installation
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**AUR** (Arch Linux — builds renderdoc Python module automatically)
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
yay -S rdc-cli-git
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**From source**
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
git clone https://github.com/BANANASJIM/rdc-cli.git
|
|
142
|
+
cd rdc-cli
|
|
143
|
+
pixi install && pixi run sync
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Commands
|
|
147
|
+
|
|
148
|
+
Run `rdc --help` for the full list, or `rdc <command> --help` for details. See the [full command reference](https://bananasjim.github.io/rdc-cli/docs/cli-reference/rdc/) for every option.
|
|
149
|
+
|
|
150
|
+
| Category | Commands |
|
|
151
|
+
|----------|----------|
|
|
152
|
+
| Session | `open`, `close`, `status`, `goto` |
|
|
153
|
+
| Inspection | `info`, `stats`, `events`, `draws`, `event`, `draw`, `log` |
|
|
154
|
+
| GPU state | `pipeline`, `bindings`, `shader`, `shaders`, `shader-map` |
|
|
155
|
+
| Debug | `debug pixel`, `debug vertex`, `debug thread`, `pixel`, `pick-pixel`, `tex-stats` |
|
|
156
|
+
| Shader edit | `shader-build`, `shader-replace`, `shader-restore`, `shader-restore-all`, `shader-encodings` |
|
|
157
|
+
| Resources | `resources`, `resource`, `passes`, `pass`, `usage` |
|
|
158
|
+
| Export | `texture`, `rt`, `buffer`, `mesh`, `snapshot` |
|
|
159
|
+
| Search | `search`, `counters` |
|
|
160
|
+
| Assertions | `assert-pixel`, `assert-state`, `assert-image`, `assert-count`, `assert-clean` |
|
|
161
|
+
| Diff | `diff` (with `--draws`, `--stats`, `--framebuffer`, `--pipeline`, etc.) |
|
|
162
|
+
| VFS | `ls`, `cat`, `tree` |
|
|
163
|
+
| Utility | `doctor`, `completion`, `capture`, `count`, `script`, `install-skill` |
|
|
164
|
+
|
|
165
|
+
All list commands output TSV. All commands support `--json`. Footer/summary goes to stderr — stdout is always clean data.
|
|
166
|
+
|
|
167
|
+
### Common options
|
|
168
|
+
|
|
169
|
+
Options available on most list/query commands (not every command supports all):
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
--json JSON output (all commands)
|
|
173
|
+
--jsonl streaming JSON, one object per line (list commands)
|
|
174
|
+
--no-header drop TSV header for awk/cut (list commands)
|
|
175
|
+
-q / --quiet IDs only for xargs (list commands)
|
|
176
|
+
--sort <field> sort by field (events, resources, shaders)
|
|
177
|
+
--limit <N> truncate rows (events, search)
|
|
178
|
+
--filter <pat> name glob filter (events)
|
|
179
|
+
-o <path> output to file (export commands)
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Shell completions
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
rdc completion bash > ~/.local/share/bash-completion/completions/rdc
|
|
186
|
+
rdc completion zsh > ~/.zfunc/_rdc
|
|
187
|
+
rdc completion fish > ~/.config/fish/completions/rdc.fish
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Development
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
pixi run sync # install deps + git hooks + renderdoc symlink
|
|
194
|
+
pixi run check # lint + typecheck + test
|
|
195
|
+
pixi run verify # full packaging verification
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
GPU integration tests require a real renderdoc module:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
export RENDERDOC_PYTHON_PATH=/path/to/renderdoc/build/lib
|
|
202
|
+
pixi run test-gpu
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## License
|
|
206
|
+
|
|
207
|
+
[MIT](LICENSE)
|