rpr-cli 0.1.22__tar.gz → 0.1.23__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 (222) hide show
  1. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/PKG-INFO +1 -1
  2. rpr_cli-0.1.23/src/rpr/__init__.py +1 -0
  3. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/generate/storybook.py +5 -5
  4. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/generate/ui.py +5 -5
  5. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/init.py +2 -1
  6. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/dependencies.py +16 -0
  7. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/dependency_manifest_data.py +6 -11
  8. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/manifest_refresh.py +6 -2
  9. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_generate_storybook.py +17 -17
  10. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_refresh.py +10 -4
  11. rpr_cli-0.1.22/src/rpr/__init__.py +0 -1
  12. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/.github/agents/story.agent.md +0 -0
  13. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/.github/workflows/publish-pypi.yml +0 -0
  14. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/.gitignore +0 -0
  15. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/CLAUDE.md +0 -0
  16. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/GEMINI.md +0 -0
  17. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/LICENSE +0 -0
  18. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/README.md +0 -0
  19. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/all.instructions.md +0 -0
  20. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/api.instructions.md +0 -0
  21. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/domain.instructions.md +0 -0
  22. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/frontend.instructions.md +0 -0
  23. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/rust-engine.instructions.md +0 -0
  24. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/setup-guide.instructions.md +0 -0
  25. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/tooling-setup.instructions.md +0 -0
  26. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/instructions/tooling.instructions.md +0 -0
  27. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/scaffolds/README.md +0 -0
  28. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/scaffolds/api/main.py +0 -0
  29. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/scaffolds/domain/base-repo.md +0 -0
  30. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/scaffolds/domain/base_entity.md +0 -0
  31. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/scaffolds/frontend/api.service.ts +0 -0
  32. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/Sample-dot-github/scaffolds/frontend/useStateNavigation.ts +0 -0
  33. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/changelogs/mui_v9.txt +0 -0
  34. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/code-map.md +0 -0
  35. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/nx_uv_setup.md +0 -0
  36. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/patch_output.py +0 -0
  37. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/pyproject.toml +0 -0
  38. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/Cargo.lock +0 -0
  39. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/Cargo.toml +0 -0
  40. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/pyproject.toml +0 -0
  41. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/rpr_parser.pyi +0 -0
  42. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/config/container.rs +0 -0
  43. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/config/mod.rs +0 -0
  44. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/config/settings.rs +0 -0
  45. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/graph.rs +0 -0
  46. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/lib.rs +0 -0
  47. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/models/dtos/mod.rs +0 -0
  48. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/models/entities/mod.rs +0 -0
  49. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/models/entities/users.rs +0 -0
  50. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/models/mod.rs +0 -0
  51. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/parse.rs +0 -0
  52. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/repos/base.rs +0 -0
  53. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/repos/mod.rs +0 -0
  54. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/repos/users.rs +0 -0
  55. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/resolve.rs +0 -0
  56. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/src/walker.rs +0 -0
  57. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/rpr-parser/uv.lock +0 -0
  58. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/special_files.md +0 -0
  59. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/__init__.py +0 -0
  60. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/approval.py +0 -0
  61. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/bootstrap.py +0 -0
  62. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/client.py +0 -0
  63. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/control.py +0 -0
  64. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/mock.py +0 -0
  65. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/runtime.py +0 -0
  66. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/session.py +0 -0
  67. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/tools/__init__.py +0 -0
  68. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/tools/base.py +0 -0
  69. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/tools/mutating.py +0 -0
  70. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/tools/readonly.py +0 -0
  71. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/agent/tools/registry.py +0 -0
  72. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/__init__.py +0 -0
  73. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/catalog.py +0 -0
  74. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/chat_service.py +0 -0
  75. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/checks.py +0 -0
  76. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/cli_adapter.py +0 -0
  77. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/completer.py +0 -0
  78. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/conversation_service.py +0 -0
  79. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/prompt_service.py +0 -0
  80. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/selector.py +0 -0
  81. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/application/shell.py +0 -0
  82. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/checks/__init__.py +0 -0
  83. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/checks/base.py +0 -0
  84. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/checks/instructions.py +0 -0
  85. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/checks/packages.py +0 -0
  86. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/checks/workspace.py +0 -0
  87. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/cli.py +0 -0
  88. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/__init__.py +0 -0
  89. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/add.py +0 -0
  90. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/chat.py +0 -0
  91. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/check.py +0 -0
  92. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/generate/__init__.py +0 -0
  93. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/generate/api.py +0 -0
  94. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/generate/domain.py +0 -0
  95. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/generate/engine.py +0 -0
  96. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/map.py +0 -0
  97. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/refresh.py +0 -0
  98. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/settings.py +0 -0
  99. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/commands/sync.py +0 -0
  100. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/context.py +0 -0
  101. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/generators/__init__.py +0 -0
  102. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/generators/base.py +0 -0
  103. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/generators/claude.py +0 -0
  104. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/generators/copilot.py +0 -0
  105. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/generators/cursor.py +0 -0
  106. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/generators/gemini.py +0 -0
  107. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/generators/github.py +0 -0
  108. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/__init__.py +0 -0
  109. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/architecture.py +0 -0
  110. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/chains.py +0 -0
  111. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/classifier.py +0 -0
  112. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/coverage.py +0 -0
  113. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/dependencies.py +0 -0
  114. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/extractor.py +0 -0
  115. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/graph.py +0 -0
  116. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/output.py +0 -0
  117. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/responsibility.py +0 -0
  118. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/topology.py +0 -0
  119. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/map/walker.py +0 -0
  120. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/domain/base_entity.md +0 -0
  121. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/domain/base_repo.md +0 -0
  122. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/domain/container.md +0 -0
  123. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/domain/settings.md +0 -0
  124. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/all.instructions.md +0 -0
  125. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/api.instructions.md +0 -0
  126. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/domain.instructions.md +0 -0
  127. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/frontend.instructions.md +0 -0
  128. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/rust-engine.instructions.md +0 -0
  129. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/setup-guide.instructions.md +0 -0
  130. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/tooling-setup.instructions.md +0 -0
  131. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/instructions/tooling.instructions.md +0 -0
  132. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/js_special_files/fetch.service.md +0 -0
  133. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/js_special_files/sticky-navigation.md +0 -0
  134. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/special_files/domain_container.md +0 -0
  135. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/special_files/domain_settings.md +0 -0
  136. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/special_files/dto_util.md +0 -0
  137. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/special_files/encrypted_column.md +0 -0
  138. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/special_files/mapper_util.md +0 -0
  139. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/scaffolds/special_files/partial_update.md +0 -0
  140. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/templates/__init__.py +0 -0
  141. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/templates/registry.py +0 -0
  142. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/ui/__init__.py +0 -0
  143. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/ui/console.py +0 -0
  144. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/ui/markdown.py +0 -0
  145. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/ui/prompt_session.py +0 -0
  146. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/ui/renderers.py +0 -0
  147. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/ui/theme.py +0 -0
  148. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/src/rpr/workspace.py +0 -0
  149. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/README.md +0 -0
  150. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/00-bootstrap-cli.md +0 -0
  151. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/01-rpr-init.md +0 -0
  152. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/02-rpr-generate-domain.md +0 -0
  153. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/03-rpr-generate-api.md +0 -0
  154. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/04-rpr-generate-ui.md +0 -0
  155. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/05-rpr-generate-engine.md +0 -0
  156. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/06-rpr-generate-storybook.md +0 -0
  157. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/07-rpr-sync-rules.md +0 -0
  158. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/08-rpr-add-template.md +0 -0
  159. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/09-rpr-check.md +0 -0
  160. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/10-rpr-domain-config.md +0 -0
  161. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/18-rpr-terminal-ui-foundation.md +0 -0
  162. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/19-rpr-markdown-rendering.md +0 -0
  163. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/20-rpr-chat-repl.md +0 -0
  164. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/21-rpr-agent-tool-loop.md +0 -0
  165. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/22-rpr-chat-tui.md +0 -0
  166. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/23-rpr-chat-unified-command-shell.md +0 -0
  167. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/24-rpr-async-chat-runtime-and-services.md +0 -0
  168. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/25-rpr-prompt-service-and-conversation-lifecycle.md +0 -0
  169. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/26-rpr-shared-command-catalog.md +0 -0
  170. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/27-rpr-slash-command-selection-panel.md +0 -0
  171. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/28-rpr-chat-cancellable-and-multiline-input.md +0 -0
  172. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/chat/29-rpr-file-context-selection.md +0 -0
  173. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/11-rpr-map-command.md +0 -0
  174. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/12-rpr-map-file-walker.md +0 -0
  175. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/13-rpr-map-rust-engine.md +0 -0
  176. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/13a-rpr-map-gitignore.md +0 -0
  177. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/14-rpr-map-graph-builder.md +0 -0
  178. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/15-rpr-map-analysis-bridge.md +0 -0
  179. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/16-rpr-map-layer-classifier.md +0 -0
  180. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/17-rpr-map-output.md +0 -0
  181. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/17a-rpr-map-directory-topology.md +0 -0
  182. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/17b-rpr-map-architecture-assessment.md +0 -0
  183. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/17c-rpr-map-representative-chains.md +0 -0
  184. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/completed/map/17d-rpr-map-multi-resolution-output.md +0 -0
  185. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/map/30-rpr-map-directory-view-and-cycle-detection.md +0 -0
  186. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/map/31-rpr-map-coupling-hotspots-and-verdict-reasoning.md +0 -0
  187. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/stories/map/32-rpr-map-dependencies-responsibilities-and-test-coverage.md +0 -0
  188. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/__init__.py +0 -0
  189. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_add.py +0 -0
  190. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_architecture.py +0 -0
  191. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_architecture_unwrapped.py +0 -0
  192. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_catalog.py +0 -0
  193. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_chat.py +0 -0
  194. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_chat_service.py +0 -0
  195. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_check.py +0 -0
  196. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_completer.py +0 -0
  197. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_context.py +0 -0
  198. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_generate_api.py +0 -0
  199. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_generate_domain.py +0 -0
  200. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_generate_engine.py +0 -0
  201. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_generate_ui.py +0 -0
  202. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_init.py +0 -0
  203. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map.py +0 -0
  204. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_chains.py +0 -0
  205. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_classifier.py +0 -0
  206. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_coverage.py +0 -0
  207. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_dependencies.py +0 -0
  208. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_extractor.py +0 -0
  209. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_graph.py +0 -0
  210. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_output.py +0 -0
  211. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_responsibility.py +0 -0
  212. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_topology.py +0 -0
  213. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_map_walker.py +0 -0
  214. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_packaging.py +0 -0
  215. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_prompt_session.py +0 -0
  216. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_rpr_parser_stub.py +0 -0
  217. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_selector.py +0 -0
  218. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_settings.py +0 -0
  219. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_sync.py +0 -0
  220. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/tests/test_ui.py +0 -0
  221. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/update_output.py +0 -0
  222. {rpr_cli-0.1.22 → rpr_cli-0.1.23}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rpr-cli
3
- Version: 0.1.22
3
+ Version: 0.1.23
4
4
  Summary: RPR CLI -- React Python Rust monorepo scaffolding orchestrator
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -0,0 +1 @@
1
+ __version__ = "0.1.23"
@@ -12,7 +12,7 @@ from rpr.context import RunContext
12
12
  from rpr.dependencies import (
13
13
  ROOT_STORYBOOK_DEV_DEPENDENCIES,
14
14
  STORYBOOK_DEV_DEPENDENCIES,
15
- npm_install_names,
15
+ npm_install_specs,
16
16
  npm_package_name,
17
17
  storybook_host_package_name,
18
18
  storybook_package_dependencies,
@@ -199,10 +199,10 @@ def _write_sb_package_json(ctx: RunContext, sb_root: Path, ui_pkg: str) -> None:
199
199
 
200
200
 
201
201
  def _install_storybook_dependencies(ctx: RunContext, ui_pkg: str) -> None:
202
- runtime = npm_install_names(storybook_package_dependencies(ui_pkg))
202
+ runtime = npm_install_specs(storybook_package_dependencies(ui_pkg))
203
203
  dev = [
204
- *npm_install_names(ROOT_STORYBOOK_DEV_DEPENDENCIES),
205
- *npm_install_names(STORYBOOK_DEV_DEPENDENCIES),
204
+ *npm_install_specs(ROOT_STORYBOOK_DEV_DEPENDENCIES),
205
+ *npm_install_specs(STORYBOOK_DEV_DEPENDENCIES),
206
206
  ]
207
207
  if runtime:
208
208
  ctx.run_command(["npm", "i", *sorted(set(runtime))], cwd=ctx.project_dir)
@@ -371,7 +371,7 @@ const config: StorybookConfig = {{
371
371
  stories: [
372
372
  "../../{ui_pkg}/src/**/*.stories.@(ts|tsx)",
373
373
  ],
374
- addons: ["@storybook/addon-essentials"],
374
+ addons: [],
375
375
  framework: {{
376
376
  name: "@storybook/react-vite",
377
377
  options: {{}},
@@ -14,7 +14,7 @@ from rpr.dependencies import (
14
14
  UI_LIBRARY_DEV_DEPENDENCIES,
15
15
  WEB_APP_DEV_DEPENDENCIES,
16
16
  node_project_name,
17
- npm_install_names,
17
+ npm_install_specs,
18
18
  ui_package_name,
19
19
  web_app_dependencies,
20
20
  web_package_name,
@@ -154,11 +154,11 @@ def _install_ui_dependencies(
154
154
  runtime: list[str] = []
155
155
  dev: list[str] = []
156
156
  if include_library:
157
- runtime.extend(npm_install_names(UI_LIBRARY_DEPENDENCIES))
158
- dev.extend(npm_install_names(UI_LIBRARY_DEV_DEPENDENCIES))
157
+ runtime.extend(npm_install_specs(UI_LIBRARY_DEPENDENCIES))
158
+ dev.extend(npm_install_specs(UI_LIBRARY_DEV_DEPENDENCIES))
159
159
  if include_web:
160
- runtime.extend(npm_install_names(web_app_dependencies(ui_pkg_name)))
161
- dev.extend(npm_install_names(WEB_APP_DEV_DEPENDENCIES))
160
+ runtime.extend(npm_install_specs(web_app_dependencies(ui_pkg_name)))
161
+ dev.extend(npm_install_specs(WEB_APP_DEV_DEPENDENCIES))
162
162
 
163
163
  if runtime:
164
164
  ctx.run_command(["npm", "i", *sorted(set(runtime))], cwd=ctx.project_dir)
@@ -16,6 +16,7 @@ from rpr.context import RunContext
16
16
  from rpr.dependencies import (
17
17
  ROOT_NODE_DEV_DEPENDENCIES,
18
18
  node_project_name,
19
+ npm_install_specs,
19
20
  npm_install_names,
20
21
  npm_package_name,
21
22
  python_package_name,
@@ -846,7 +847,7 @@ def init(
846
847
  dev=npm_install_names(ROOT_NODE_DEV_DEPENDENCIES),
847
848
  )
848
849
  ctx.run_command(
849
- ["npm", "i", "-D", *npm_install_names(ROOT_NODE_DEV_DEPENDENCIES)],
850
+ ["npm", "i", "-D", *npm_install_specs(ROOT_NODE_DEV_DEPENDENCIES)],
850
851
  cwd=project_dir,
851
852
  )
852
853
 
@@ -132,6 +132,22 @@ def npm_install_names(dependencies: Mapping[str, str] | list[str]) -> list[str]:
132
132
  return list(dependencies)
133
133
 
134
134
 
135
+ def npm_install_specs(dependencies: Mapping[str, str] | list[str]) -> list[str]:
136
+ if not isinstance(dependencies, Mapping):
137
+ return list(dependencies)
138
+
139
+ specs: list[str] = []
140
+ for name, value in dependencies.items():
141
+ specifier = str(value)
142
+ if specifier.startswith(("file:", "workspace:")):
143
+ continue
144
+ if specifier:
145
+ specs.append(f"{name}@{specifier}")
146
+ else:
147
+ specs.append(name)
148
+ return specs
149
+
150
+
135
151
  def api_runtime_dependencies(name: str) -> list[str]:
136
152
  return [python_project_name(name, "domain"), *API_RUNTIME_BASE_DEPENDENCIES]
137
153
 
@@ -161,20 +161,15 @@ MANIFEST = {
161
161
  },
162
162
  },
163
163
  "storybook_dev_dependencies": {
164
- "@storybook/addon-essentials": {
165
- "registry": "npm",
166
- "specifier": "latest",
167
- "strategy": "latest",
168
- },
169
164
  "@storybook/react": {
170
165
  "registry": "npm",
171
- "specifier": "latest",
172
- "strategy": "latest",
166
+ "specifier": "^10.3.6",
167
+ "strategy": "pinned-major",
173
168
  },
174
169
  "@storybook/react-vite": {
175
170
  "registry": "npm",
176
- "specifier": "latest",
177
- "strategy": "latest",
171
+ "specifier": "^10.3.6",
172
+ "strategy": "pinned-major",
178
173
  },
179
174
  "@vitejs/plugin-react": {
180
175
  "registry": "npm",
@@ -193,8 +188,8 @@ MANIFEST = {
193
188
  },
194
189
  "storybook": {
195
190
  "registry": "npm",
196
- "specifier": "latest",
197
- "strategy": "latest",
191
+ "specifier": "^10.3.6",
192
+ "strategy": "pinned-major",
198
193
  },
199
194
  "typescript": {
200
195
  "registry": "npm",
@@ -9,7 +9,9 @@ from urllib.parse import quote
9
9
  from urllib.request import Request, urlopen
10
10
 
11
11
  RegistryName = Literal["npm", "pypi", "cratesio"]
12
- RefreshStrategy = Literal["caret", "minimum", "exact", "major-range", "latest"]
12
+ RefreshStrategy = Literal[
13
+ "caret", "minimum", "exact", "major-range", "latest", "pinned-major"
14
+ ]
13
15
  Manifest = dict[str, dict[str, dict[str, str]]]
14
16
 
15
17
  _USER_AGENT = "rpr-cli/0.1.1 (+https://github.com/)"
@@ -79,6 +81,8 @@ def refresh_dependency_manifest(
79
81
  continue
80
82
 
81
83
  package = entry.get("package", dependency)
84
+ if strategy == "pinned-major":
85
+ continue
82
86
  if strategy == "latest":
83
87
  latest_version = "latest"
84
88
  new_specifier = _format_specifier(
@@ -155,4 +159,4 @@ def _next_major(version: str) -> int:
155
159
  match = re.match(r"^(\d+)", version)
156
160
  if match is None:
157
161
  raise ManifestRefreshError(f"Cannot determine next major version for {version}")
158
- return int(match.group(1)) + 1
162
+ return int(match.group(1)) + 1
@@ -84,7 +84,8 @@ def test_generate_storybook_scaffolds_host_package_and_starter_story(monkeypatch
84
84
  "storybook build -c packages/node/sb/.storybook -o dist/storybook"
85
85
  )
86
86
  assert "../../my-app-ui/src/**/*.stories.@(ts|tsx)" in sb_main
87
- assert "@storybook/addon-essentials" in sb_main
87
+ assert "@storybook/addon-essentials" not in sb_main
88
+ assert "addons: []" in sb_main
88
89
  assert "ThemeProvider" in sb_preview
89
90
  assert 'import { appTheme } from "@my-app/ui";' in sb_preview
90
91
  assert "createTheme" not in sb_preview
@@ -98,11 +99,11 @@ def test_generate_storybook_scaffolds_host_package_and_starter_story(monkeypatch
98
99
  "cmd": [
99
100
  "npm",
100
101
  "i",
101
- "@emotion/react",
102
- "@emotion/styled",
103
- "@mui/material",
104
- "react",
105
- "react-dom",
102
+ "@emotion/react@latest",
103
+ "@emotion/styled@latest",
104
+ "@mui/material@latest",
105
+ "react-dom@latest",
106
+ "react@latest",
106
107
  ],
107
108
  "cwd": Path.cwd(),
108
109
  "supports_dry_run": False,
@@ -112,17 +113,16 @@ def test_generate_storybook_scaffolds_host_package_and_starter_story(monkeypatch
112
113
  "npm",
113
114
  "i",
114
115
  "-D",
115
- "@nx/storybook",
116
- "@storybook/addon-essentials",
117
- "@storybook/react",
118
- "@storybook/react-vite",
119
- "@types/react",
120
- "@types/react-dom",
121
- "@vitejs/plugin-react",
122
- "storybook",
123
- "typescript",
124
- "vite",
125
- "vitest",
116
+ "@nx/storybook@latest",
117
+ "@storybook/react-vite@^10.3.6",
118
+ "@storybook/react@^10.3.6",
119
+ "@types/react-dom@latest",
120
+ "@types/react@latest",
121
+ "@vitejs/plugin-react@latest",
122
+ "storybook@^10.3.6",
123
+ "typescript@latest",
124
+ "vite@latest",
125
+ "vitest@latest",
126
126
  ],
127
127
  "cwd": Path.cwd(),
128
128
  "supports_dry_run": False,
@@ -18,7 +18,9 @@ def test_refresh_manifest_preserves_latest_dependency_policy(
18
18
  manifest_path.write_text(original)
19
19
  fetch_calls: list[tuple[str, str]] = []
20
20
 
21
- def fake_fetch_latest_version(registry: str, package: str, *, timeout: float = 10.0) -> str:
21
+ def fake_fetch_latest_version(
22
+ registry: str, package: str, *, timeout: float = 10.0
23
+ ) -> str:
22
24
  fetch_calls.append((registry, package))
23
25
  return "9.9.9"
24
26
 
@@ -35,12 +37,16 @@ def test_refresh_manifest_preserves_latest_dependency_policy(
35
37
  assert fetch_calls == []
36
38
 
37
39
 
38
- def test_refresh_manifest_dry_run_does_not_write_file(monkeypatch, tmp_path: Path) -> None:
40
+ def test_refresh_manifest_dry_run_does_not_write_file(
41
+ monkeypatch, tmp_path: Path
42
+ ) -> None:
39
43
  manifest_path = tmp_path / "dependency_manifest_data.py"
40
44
  original = render_dependency_manifest_module(get_dependency_manifest())
41
45
  manifest_path.write_text(original)
42
46
 
43
- def fake_fetch_latest_version(registry: str, package: str, *, timeout: float = 10.0) -> str:
47
+ def fake_fetch_latest_version(
48
+ registry: str, package: str, *, timeout: float = 10.0
49
+ ) -> str:
44
50
  return "9.9.9"
45
51
 
46
52
  monkeypatch.setattr("rpr.commands.refresh.MANIFEST_DATA_PATH", manifest_path)
@@ -51,4 +57,4 @@ def test_refresh_manifest_dry_run_does_not_write_file(monkeypatch, tmp_path: Pat
51
57
  result = runner.invoke(app, ["refresh", "manifest", "--dry-run"])
52
58
 
53
59
  assert result.exit_code == 0, result.stdout
54
- assert manifest_path.read_text() == original
60
+ assert manifest_path.read_text() == original
@@ -1 +0,0 @@
1
- __version__ = "0.1.22"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes