rpr-cli 0.1.1__tar.gz → 0.1.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.
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/LICENSE +1 -1
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/PKG-INFO +45 -5
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/README.md +44 -4
- rpr_cli-0.1.2/changelogs/mui_v9.txt +2178 -0
- rpr_cli-0.1.2/src/rpr/__init__.py +1 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/packages.py +36 -67
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/cli.py +8 -1
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/api.py +5 -8
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/domain.py +3 -18
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/engine.py +3 -2
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/storybook.py +23 -44
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/ui.py +67 -47
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/init.py +46 -22
- rpr_cli-0.1.2/src/rpr/commands/refresh.py +65 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/sync.py +3 -1
- rpr_cli-0.1.2/src/rpr/dependencies.py +145 -0
- rpr_cli-0.1.2/src/rpr/dependency_manifest_data.py +306 -0
- rpr_cli-0.1.2/src/rpr/manifest_refresh.py +130 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/all.instructions.md +5 -6
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/frontend.instructions.md +13 -1
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/rust-engine.instructions.md +1 -1
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_check.py +38 -79
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_api.py +2 -1
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_domain.py +7 -22
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_engine.py +4 -2
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_storybook.py +16 -2
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_ui.py +38 -11
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_init.py +50 -1
- rpr_cli-0.1.2/tests/test_refresh.py +53 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_sync.py +30 -3
- rpr_cli-0.1.1/src/rpr/__init__.py +0 -1
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/.github/agents/story.agent.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/.github/workflows/publish-pypi.yml +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/.gitignore +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/CLAUDE.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/GEMINI.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/all.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/api.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/domain.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/frontend.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/rust-engine.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/setup-guide.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/tooling-setup.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/tooling.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/README.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/api/main.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/domain/base-repo.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/domain/base_entity.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/frontend/api.service.ts +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/frontend/useStateNavigation.ts +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/code-map.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/nx_uv_setup.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/patch_output.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/pyproject.toml +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/Cargo.lock +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/Cargo.toml +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/pyproject.toml +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/rpr_parser.pyi +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/config/container.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/config/mod.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/config/settings.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/graph.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/lib.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/dtos/mod.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/entities/mod.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/entities/users.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/mod.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/parse.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/repos/base.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/repos/mod.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/repos/users.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/resolve.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/walker.rs +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/uv.lock +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/special_files.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/approval.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/bootstrap.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/client.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/control.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/mock.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/runtime.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/session.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/base.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/mutating.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/readonly.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/registry.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/catalog.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/chat_service.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/checks.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/cli_adapter.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/completer.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/conversation_service.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/prompt_service.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/selector.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/shell.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/base.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/instructions.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/workspace.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/add.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/chat.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/check.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/map.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/settings.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/context.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/base.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/claude.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/copilot.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/cursor.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/gemini.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/architecture.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/chains.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/classifier.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/coverage.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/dependencies.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/extractor.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/graph.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/output.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/responsibility.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/topology.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/walker.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/base_entity.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/base_repo.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/container.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/settings.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/api.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/domain.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/setup-guide.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/tooling-setup.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/tooling.instructions.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/js_special_files/fetch.service.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/js_special_files/sticky-navigation.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/domain_container.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/domain_settings.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/dto_util.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/encrypted_column.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/mapper_util.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/partial_update.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/templates/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/templates/registry.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/console.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/markdown.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/prompt_session.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/renderers.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/theme.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/workspace.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/README.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/00-bootstrap-cli.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/01-rpr-init.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/02-rpr-generate-domain.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/03-rpr-generate-api.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/04-rpr-generate-ui.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/05-rpr-generate-engine.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/06-rpr-generate-storybook.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/07-rpr-sync-rules.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/08-rpr-add-template.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/09-rpr-check.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/10-rpr-domain-config.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/18-rpr-terminal-ui-foundation.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/19-rpr-markdown-rendering.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/20-rpr-chat-repl.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/21-rpr-agent-tool-loop.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/22-rpr-chat-tui.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/23-rpr-chat-unified-command-shell.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/24-rpr-async-chat-runtime-and-services.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/25-rpr-prompt-service-and-conversation-lifecycle.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/26-rpr-shared-command-catalog.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/27-rpr-slash-command-selection-panel.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/28-rpr-chat-cancellable-and-multiline-input.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/29-rpr-file-context-selection.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/11-rpr-map-command.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/12-rpr-map-file-walker.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/13-rpr-map-rust-engine.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/13a-rpr-map-gitignore.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/14-rpr-map-graph-builder.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/15-rpr-map-analysis-bridge.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/16-rpr-map-layer-classifier.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17-rpr-map-output.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17a-rpr-map-directory-topology.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17b-rpr-map-architecture-assessment.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17c-rpr-map-representative-chains.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17d-rpr-map-multi-resolution-output.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/map/30-rpr-map-directory-view-and-cycle-detection.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/map/31-rpr-map-coupling-hotspots-and-verdict-reasoning.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/map/32-rpr-map-dependencies-responsibilities-and-test-coverage.md +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/__init__.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_add.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_architecture.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_architecture_unwrapped.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_catalog.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_chat.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_chat_service.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_completer.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_context.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_chains.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_classifier.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_coverage.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_dependencies.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_extractor.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_graph.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_output.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_responsibility.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_topology.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_walker.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_packaging.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_prompt_session.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_rpr_parser_stub.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_selector.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_settings.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_ui.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/update_output.py +0 -0
- {rpr_cli-0.1.1 → rpr_cli-0.1.2}/uv.lock +0 -0
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rpr-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: RPR CLI -- React Python Rust monorepo scaffolding orchestrator
|
|
5
5
|
License-Expression: MIT
|
|
6
6
|
License-File: LICENSE
|
|
@@ -53,17 +53,51 @@ uv add ../project-getting-started/dist/rpr_cli-*.whl
|
|
|
53
53
|
|
|
54
54
|
### 🚀 Scaffolding & Generation
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
Create a new NX + UV monorepo, then add apps and packages as needed.
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
rpr init my-app #
|
|
60
|
-
|
|
59
|
+
rpr init my-app # Create/init my-app with root NX + UV tooling and AI instructions
|
|
60
|
+
cd my-app
|
|
61
|
+
rpr generate domain my-app # Add a Python domain package
|
|
61
62
|
rpr generate api my-app # Add a FastAPI application
|
|
62
|
-
rpr generate ui my-app # Add a React UI library
|
|
63
|
+
rpr generate ui my-app # Add a React UI library and web app
|
|
63
64
|
rpr generate engine my-app # Add a Rust/PyO3 computation engine
|
|
64
65
|
rpr generate storybook # Add Storybook for UI component development
|
|
65
66
|
```
|
|
66
67
|
|
|
68
|
+
`rpr init <project-name>` creates the project directory when it does not exist. If the directory already exists and is not an NX workspace, RPR initializes Git and runs `nx init` inside that directory.
|
|
69
|
+
|
|
70
|
+
By default, `rpr init` scaffolds the root workspace and AI instructions only. To create project components during initialization, repeat `--scaffold`:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
rpr init todo-list --scaffold domain
|
|
74
|
+
rpr init todo-list --scaffold api --domain-migrations
|
|
75
|
+
rpr init todo-list --scaffold api --scaffold web --domain-migrations
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Available scaffolds are:
|
|
79
|
+
|
|
80
|
+
- `instructions`: AI instruction files for Cursor, Copilot, Claude Code, and Gemini.
|
|
81
|
+
- `domain`: Python DDD package at `packages/python/domain`.
|
|
82
|
+
- `api`: FastAPI app at `apps/<name>-api`; also scaffolds `domain`.
|
|
83
|
+
- `ui`: React UI library at `packages/node/<name>-ui`.
|
|
84
|
+
- `web`: React web app at `apps/<name>-web`; also scaffolds `ui`.
|
|
85
|
+
- `storybook`: Storybook host package; requires or scaffolds `ui`.
|
|
86
|
+
- `engine`: Rust/PyO3 package at `packages/python/<name>-engine`.
|
|
87
|
+
|
|
88
|
+
### Dependency Placement
|
|
89
|
+
|
|
90
|
+
RPR keeps dependencies close to the package that uses them.
|
|
91
|
+
|
|
92
|
+
- Root Python tooling such as Ruff, pytest, pyright, pre-commit, and maturin lives in the root `pyproject.toml`.
|
|
93
|
+
- Domain runtime dependencies such as `sqlmodel`, `asyncpg`, `pydantic-settings`, and optional `alembic` are added to `packages/python/domain/pyproject.toml`.
|
|
94
|
+
- API runtime dependencies such as `fastapi`, `uvicorn`, and the workspace domain package are added to `apps/<name>-api/pyproject.toml`.
|
|
95
|
+
- Node dependencies are written to the relevant package-level `package.json` files, and `npm install` runs from the root workspace.
|
|
96
|
+
|
|
97
|
+
Python dependency changes are made with `uv` so they are tracked in `pyproject.toml`. Node dependency changes are made through npm workspace package metadata and root `npm install`.
|
|
98
|
+
|
|
99
|
+
The scaffold version manifest that powers generated dependency specs and the synced AI tech-stack overview lives in `src/rpr/dependency_manifest_data.py`. Refresh it from upstream registries with `rpr refresh manifest` when you want the repo-owned defaults to move forward.
|
|
100
|
+
|
|
67
101
|
### 🧠 AI Instructions & Code Templates
|
|
68
102
|
|
|
69
103
|
Sync project context to your favorite AI tools and add common code patterns.
|
|
@@ -104,6 +138,7 @@ There is no separate `--tui` mode. The unified shell is the default chat experie
|
|
|
104
138
|
Keep your project healthy and explore its structure.
|
|
105
139
|
|
|
106
140
|
```bash
|
|
141
|
+
rpr refresh manifest # Refresh the scaffold dependency manifest from npm, PyPI, and crates.io
|
|
107
142
|
rpr check # Inspect project health and report setup status
|
|
108
143
|
rpr map # Generate a structured code map of your project
|
|
109
144
|
rpr settings # Inspect persisted shell settings
|
|
@@ -118,6 +153,8 @@ Persisted settings currently include:
|
|
|
118
153
|
- `approval_mode`: default chat approval mode (`ask`, `auto-readonly`, `auto-all`)
|
|
119
154
|
- `startup_help`: whether chat shows slash-command guidance on startup
|
|
120
155
|
|
|
156
|
+
`rpr refresh manifest` is a repo-maintenance command. It rewrites `src/rpr/dependency_manifest_data.py`, which feeds scaffold dependency versions in `rpr generate ...` and the versioned overview text produced by `rpr sync rules`. Use `--dry-run` to preview the manifest rewrite without writing the file.
|
|
157
|
+
|
|
121
158
|
### ⚙️ Common Flags
|
|
122
159
|
|
|
123
160
|
Most commands support these global flags:
|
|
@@ -128,9 +165,12 @@ Most commands support these global flags:
|
|
|
128
165
|
Example:
|
|
129
166
|
|
|
130
167
|
```bash
|
|
168
|
+
rpr init my-app --scaffold domain --dry-run
|
|
131
169
|
rpr generate api my-app --dry-run
|
|
132
170
|
```
|
|
133
171
|
|
|
172
|
+
Dry runs print the commands RPR would execute, the files/directories it would create or update, and the package dependencies it would add with their target scope.
|
|
173
|
+
|
|
134
174
|
The `check` command also supports:
|
|
135
175
|
|
|
136
176
|
- `--json`: Output machine-readable JSON for CI/CD integration.
|
|
@@ -38,17 +38,51 @@ uv add ../project-getting-started/dist/rpr_cli-*.whl
|
|
|
38
38
|
|
|
39
39
|
### 🚀 Scaffolding & Generation
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Create a new NX + UV monorepo, then add apps and packages as needed.
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
rpr init my-app #
|
|
45
|
-
|
|
44
|
+
rpr init my-app # Create/init my-app with root NX + UV tooling and AI instructions
|
|
45
|
+
cd my-app
|
|
46
|
+
rpr generate domain my-app # Add a Python domain package
|
|
46
47
|
rpr generate api my-app # Add a FastAPI application
|
|
47
|
-
rpr generate ui my-app # Add a React UI library
|
|
48
|
+
rpr generate ui my-app # Add a React UI library and web app
|
|
48
49
|
rpr generate engine my-app # Add a Rust/PyO3 computation engine
|
|
49
50
|
rpr generate storybook # Add Storybook for UI component development
|
|
50
51
|
```
|
|
51
52
|
|
|
53
|
+
`rpr init <project-name>` creates the project directory when it does not exist. If the directory already exists and is not an NX workspace, RPR initializes Git and runs `nx init` inside that directory.
|
|
54
|
+
|
|
55
|
+
By default, `rpr init` scaffolds the root workspace and AI instructions only. To create project components during initialization, repeat `--scaffold`:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
rpr init todo-list --scaffold domain
|
|
59
|
+
rpr init todo-list --scaffold api --domain-migrations
|
|
60
|
+
rpr init todo-list --scaffold api --scaffold web --domain-migrations
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Available scaffolds are:
|
|
64
|
+
|
|
65
|
+
- `instructions`: AI instruction files for Cursor, Copilot, Claude Code, and Gemini.
|
|
66
|
+
- `domain`: Python DDD package at `packages/python/domain`.
|
|
67
|
+
- `api`: FastAPI app at `apps/<name>-api`; also scaffolds `domain`.
|
|
68
|
+
- `ui`: React UI library at `packages/node/<name>-ui`.
|
|
69
|
+
- `web`: React web app at `apps/<name>-web`; also scaffolds `ui`.
|
|
70
|
+
- `storybook`: Storybook host package; requires or scaffolds `ui`.
|
|
71
|
+
- `engine`: Rust/PyO3 package at `packages/python/<name>-engine`.
|
|
72
|
+
|
|
73
|
+
### Dependency Placement
|
|
74
|
+
|
|
75
|
+
RPR keeps dependencies close to the package that uses them.
|
|
76
|
+
|
|
77
|
+
- Root Python tooling such as Ruff, pytest, pyright, pre-commit, and maturin lives in the root `pyproject.toml`.
|
|
78
|
+
- Domain runtime dependencies such as `sqlmodel`, `asyncpg`, `pydantic-settings`, and optional `alembic` are added to `packages/python/domain/pyproject.toml`.
|
|
79
|
+
- API runtime dependencies such as `fastapi`, `uvicorn`, and the workspace domain package are added to `apps/<name>-api/pyproject.toml`.
|
|
80
|
+
- Node dependencies are written to the relevant package-level `package.json` files, and `npm install` runs from the root workspace.
|
|
81
|
+
|
|
82
|
+
Python dependency changes are made with `uv` so they are tracked in `pyproject.toml`. Node dependency changes are made through npm workspace package metadata and root `npm install`.
|
|
83
|
+
|
|
84
|
+
The scaffold version manifest that powers generated dependency specs and the synced AI tech-stack overview lives in `src/rpr/dependency_manifest_data.py`. Refresh it from upstream registries with `rpr refresh manifest` when you want the repo-owned defaults to move forward.
|
|
85
|
+
|
|
52
86
|
### 🧠 AI Instructions & Code Templates
|
|
53
87
|
|
|
54
88
|
Sync project context to your favorite AI tools and add common code patterns.
|
|
@@ -89,6 +123,7 @@ There is no separate `--tui` mode. The unified shell is the default chat experie
|
|
|
89
123
|
Keep your project healthy and explore its structure.
|
|
90
124
|
|
|
91
125
|
```bash
|
|
126
|
+
rpr refresh manifest # Refresh the scaffold dependency manifest from npm, PyPI, and crates.io
|
|
92
127
|
rpr check # Inspect project health and report setup status
|
|
93
128
|
rpr map # Generate a structured code map of your project
|
|
94
129
|
rpr settings # Inspect persisted shell settings
|
|
@@ -103,6 +138,8 @@ Persisted settings currently include:
|
|
|
103
138
|
- `approval_mode`: default chat approval mode (`ask`, `auto-readonly`, `auto-all`)
|
|
104
139
|
- `startup_help`: whether chat shows slash-command guidance on startup
|
|
105
140
|
|
|
141
|
+
`rpr refresh manifest` is a repo-maintenance command. It rewrites `src/rpr/dependency_manifest_data.py`, which feeds scaffold dependency versions in `rpr generate ...` and the versioned overview text produced by `rpr sync rules`. Use `--dry-run` to preview the manifest rewrite without writing the file.
|
|
142
|
+
|
|
106
143
|
### ⚙️ Common Flags
|
|
107
144
|
|
|
108
145
|
Most commands support these global flags:
|
|
@@ -113,9 +150,12 @@ Most commands support these global flags:
|
|
|
113
150
|
Example:
|
|
114
151
|
|
|
115
152
|
```bash
|
|
153
|
+
rpr init my-app --scaffold domain --dry-run
|
|
116
154
|
rpr generate api my-app --dry-run
|
|
117
155
|
```
|
|
118
156
|
|
|
157
|
+
Dry runs print the commands RPR would execute, the files/directories it would create or update, and the package dependencies it would add with their target scope.
|
|
158
|
+
|
|
119
159
|
The `check` command also supports:
|
|
120
160
|
|
|
121
161
|
- `--json`: Output machine-readable JSON for CI/CD integration.
|