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.
Files changed (221) hide show
  1. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/LICENSE +1 -1
  2. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/PKG-INFO +45 -5
  3. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/README.md +44 -4
  4. rpr_cli-0.1.2/changelogs/mui_v9.txt +2178 -0
  5. rpr_cli-0.1.2/src/rpr/__init__.py +1 -0
  6. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/packages.py +36 -67
  7. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/cli.py +8 -1
  8. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/api.py +5 -8
  9. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/domain.py +3 -18
  10. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/engine.py +3 -2
  11. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/storybook.py +23 -44
  12. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/ui.py +67 -47
  13. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/init.py +46 -22
  14. rpr_cli-0.1.2/src/rpr/commands/refresh.py +65 -0
  15. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/sync.py +3 -1
  16. rpr_cli-0.1.2/src/rpr/dependencies.py +145 -0
  17. rpr_cli-0.1.2/src/rpr/dependency_manifest_data.py +306 -0
  18. rpr_cli-0.1.2/src/rpr/manifest_refresh.py +130 -0
  19. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/all.instructions.md +5 -6
  20. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/frontend.instructions.md +13 -1
  21. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/rust-engine.instructions.md +1 -1
  22. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_check.py +38 -79
  23. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_api.py +2 -1
  24. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_domain.py +7 -22
  25. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_engine.py +4 -2
  26. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_storybook.py +16 -2
  27. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_generate_ui.py +38 -11
  28. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_init.py +50 -1
  29. rpr_cli-0.1.2/tests/test_refresh.py +53 -0
  30. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_sync.py +30 -3
  31. rpr_cli-0.1.1/src/rpr/__init__.py +0 -1
  32. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/.github/agents/story.agent.md +0 -0
  33. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/.github/workflows/publish-pypi.yml +0 -0
  34. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/.gitignore +0 -0
  35. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/CLAUDE.md +0 -0
  36. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/GEMINI.md +0 -0
  37. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/all.instructions.md +0 -0
  38. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/api.instructions.md +0 -0
  39. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/domain.instructions.md +0 -0
  40. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/frontend.instructions.md +0 -0
  41. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/rust-engine.instructions.md +0 -0
  42. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/setup-guide.instructions.md +0 -0
  43. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/tooling-setup.instructions.md +0 -0
  44. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/instructions/tooling.instructions.md +0 -0
  45. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/README.md +0 -0
  46. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/api/main.py +0 -0
  47. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/domain/base-repo.md +0 -0
  48. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/domain/base_entity.md +0 -0
  49. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/frontend/api.service.ts +0 -0
  50. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/Sample-dot-github/scaffolds/frontend/useStateNavigation.ts +0 -0
  51. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/code-map.md +0 -0
  52. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/nx_uv_setup.md +0 -0
  53. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/patch_output.py +0 -0
  54. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/pyproject.toml +0 -0
  55. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/Cargo.lock +0 -0
  56. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/Cargo.toml +0 -0
  57. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/pyproject.toml +0 -0
  58. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/rpr_parser.pyi +0 -0
  59. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/config/container.rs +0 -0
  60. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/config/mod.rs +0 -0
  61. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/config/settings.rs +0 -0
  62. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/graph.rs +0 -0
  63. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/lib.rs +0 -0
  64. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/dtos/mod.rs +0 -0
  65. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/entities/mod.rs +0 -0
  66. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/entities/users.rs +0 -0
  67. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/models/mod.rs +0 -0
  68. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/parse.rs +0 -0
  69. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/repos/base.rs +0 -0
  70. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/repos/mod.rs +0 -0
  71. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/repos/users.rs +0 -0
  72. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/resolve.rs +0 -0
  73. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/src/walker.rs +0 -0
  74. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/rpr-parser/uv.lock +0 -0
  75. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/special_files.md +0 -0
  76. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/__init__.py +0 -0
  77. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/approval.py +0 -0
  78. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/bootstrap.py +0 -0
  79. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/client.py +0 -0
  80. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/control.py +0 -0
  81. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/mock.py +0 -0
  82. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/runtime.py +0 -0
  83. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/session.py +0 -0
  84. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/__init__.py +0 -0
  85. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/base.py +0 -0
  86. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/mutating.py +0 -0
  87. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/readonly.py +0 -0
  88. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/agent/tools/registry.py +0 -0
  89. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/__init__.py +0 -0
  90. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/catalog.py +0 -0
  91. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/chat_service.py +0 -0
  92. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/checks.py +0 -0
  93. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/cli_adapter.py +0 -0
  94. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/completer.py +0 -0
  95. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/conversation_service.py +0 -0
  96. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/prompt_service.py +0 -0
  97. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/selector.py +0 -0
  98. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/application/shell.py +0 -0
  99. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/__init__.py +0 -0
  100. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/base.py +0 -0
  101. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/instructions.py +0 -0
  102. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/checks/workspace.py +0 -0
  103. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/__init__.py +0 -0
  104. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/add.py +0 -0
  105. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/chat.py +0 -0
  106. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/check.py +0 -0
  107. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/generate/__init__.py +0 -0
  108. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/map.py +0 -0
  109. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/commands/settings.py +0 -0
  110. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/context.py +0 -0
  111. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/__init__.py +0 -0
  112. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/base.py +0 -0
  113. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/claude.py +0 -0
  114. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/copilot.py +0 -0
  115. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/cursor.py +0 -0
  116. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/generators/gemini.py +0 -0
  117. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/__init__.py +0 -0
  118. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/architecture.py +0 -0
  119. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/chains.py +0 -0
  120. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/classifier.py +0 -0
  121. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/coverage.py +0 -0
  122. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/dependencies.py +0 -0
  123. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/extractor.py +0 -0
  124. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/graph.py +0 -0
  125. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/output.py +0 -0
  126. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/responsibility.py +0 -0
  127. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/topology.py +0 -0
  128. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/map/walker.py +0 -0
  129. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/base_entity.md +0 -0
  130. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/base_repo.md +0 -0
  131. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/container.md +0 -0
  132. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/domain/settings.md +0 -0
  133. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/api.instructions.md +0 -0
  134. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/domain.instructions.md +0 -0
  135. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/setup-guide.instructions.md +0 -0
  136. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/tooling-setup.instructions.md +0 -0
  137. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/instructions/tooling.instructions.md +0 -0
  138. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/js_special_files/fetch.service.md +0 -0
  139. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/js_special_files/sticky-navigation.md +0 -0
  140. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/domain_container.md +0 -0
  141. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/domain_settings.md +0 -0
  142. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/dto_util.md +0 -0
  143. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/encrypted_column.md +0 -0
  144. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/mapper_util.md +0 -0
  145. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/scaffolds/special_files/partial_update.md +0 -0
  146. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/templates/__init__.py +0 -0
  147. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/templates/registry.py +0 -0
  148. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/__init__.py +0 -0
  149. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/console.py +0 -0
  150. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/markdown.py +0 -0
  151. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/prompt_session.py +0 -0
  152. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/renderers.py +0 -0
  153. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/ui/theme.py +0 -0
  154. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/src/rpr/workspace.py +0 -0
  155. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/README.md +0 -0
  156. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/00-bootstrap-cli.md +0 -0
  157. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/01-rpr-init.md +0 -0
  158. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/02-rpr-generate-domain.md +0 -0
  159. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/03-rpr-generate-api.md +0 -0
  160. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/04-rpr-generate-ui.md +0 -0
  161. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/05-rpr-generate-engine.md +0 -0
  162. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/06-rpr-generate-storybook.md +0 -0
  163. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/07-rpr-sync-rules.md +0 -0
  164. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/08-rpr-add-template.md +0 -0
  165. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/09-rpr-check.md +0 -0
  166. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/10-rpr-domain-config.md +0 -0
  167. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/18-rpr-terminal-ui-foundation.md +0 -0
  168. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/19-rpr-markdown-rendering.md +0 -0
  169. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/20-rpr-chat-repl.md +0 -0
  170. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/21-rpr-agent-tool-loop.md +0 -0
  171. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/22-rpr-chat-tui.md +0 -0
  172. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/23-rpr-chat-unified-command-shell.md +0 -0
  173. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/24-rpr-async-chat-runtime-and-services.md +0 -0
  174. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/25-rpr-prompt-service-and-conversation-lifecycle.md +0 -0
  175. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/26-rpr-shared-command-catalog.md +0 -0
  176. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/27-rpr-slash-command-selection-panel.md +0 -0
  177. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/28-rpr-chat-cancellable-and-multiline-input.md +0 -0
  178. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/chat/29-rpr-file-context-selection.md +0 -0
  179. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/11-rpr-map-command.md +0 -0
  180. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/12-rpr-map-file-walker.md +0 -0
  181. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/13-rpr-map-rust-engine.md +0 -0
  182. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/13a-rpr-map-gitignore.md +0 -0
  183. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/14-rpr-map-graph-builder.md +0 -0
  184. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/15-rpr-map-analysis-bridge.md +0 -0
  185. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/16-rpr-map-layer-classifier.md +0 -0
  186. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17-rpr-map-output.md +0 -0
  187. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17a-rpr-map-directory-topology.md +0 -0
  188. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17b-rpr-map-architecture-assessment.md +0 -0
  189. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17c-rpr-map-representative-chains.md +0 -0
  190. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/completed/map/17d-rpr-map-multi-resolution-output.md +0 -0
  191. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/map/30-rpr-map-directory-view-and-cycle-detection.md +0 -0
  192. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/map/31-rpr-map-coupling-hotspots-and-verdict-reasoning.md +0 -0
  193. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/stories/map/32-rpr-map-dependencies-responsibilities-and-test-coverage.md +0 -0
  194. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/__init__.py +0 -0
  195. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_add.py +0 -0
  196. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_architecture.py +0 -0
  197. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_architecture_unwrapped.py +0 -0
  198. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_catalog.py +0 -0
  199. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_chat.py +0 -0
  200. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_chat_service.py +0 -0
  201. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_completer.py +0 -0
  202. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_context.py +0 -0
  203. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map.py +0 -0
  204. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_chains.py +0 -0
  205. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_classifier.py +0 -0
  206. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_coverage.py +0 -0
  207. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_dependencies.py +0 -0
  208. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_extractor.py +0 -0
  209. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_graph.py +0 -0
  210. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_output.py +0 -0
  211. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_responsibility.py +0 -0
  212. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_topology.py +0 -0
  213. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_map_walker.py +0 -0
  214. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_packaging.py +0 -0
  215. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_prompt_session.py +0 -0
  216. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_rpr_parser_stub.py +0 -0
  217. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_selector.py +0 -0
  218. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_settings.py +0 -0
  219. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/tests/test_ui.py +0 -0
  220. {rpr_cli-0.1.1 → rpr_cli-0.1.2}/update_output.py +0 -0
  221. {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.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
- Scaffold a complete monorepo or add new apps and libraries.
56
+ Create a new NX + UV monorepo, then add apps and packages as needed.
57
57
 
58
58
  ```bash
59
- rpr init my-app # Scaffold a new monorepo (NX + UV)
60
- rpr generate domain my-app # Add a domain package (shared logic & types)
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 + application
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
- Scaffold a complete monorepo or add new apps and libraries.
41
+ Create a new NX + UV monorepo, then add apps and packages as needed.
42
42
 
43
43
  ```bash
44
- rpr init my-app # Scaffold a new monorepo (NX + UV)
45
- rpr generate domain my-app # Add a domain package (shared logic & types)
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 + application
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.