bijux-cli 0.3.2__tar.gz → 0.3.3__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 (396) hide show
  1. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/Cargo.lock +3 -3
  2. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/Cargo.toml +2 -2
  3. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/PKG-INFO +1 -1
  4. bijux_cli-0.3.3/crates/bijux-cli/src/interface/cli/dispatch/delegation.rs +83 -0
  5. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/dispatch.rs +21 -22
  6. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/interfaces/documented_env_surface.rs +9 -2
  7. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/mod.rs +1 -0
  8. bijux_cli-0.3.3/crates/bijux-cli/tests/integration/cli/root/official_product_routes.rs +123 -0
  9. bijux_cli-0.3.2/crates/bijux-cli/src/interface/cli/dispatch/delegation.rs +0 -46
  10. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/README.md +0 -0
  11. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/Cargo.toml +0 -0
  12. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/README.md +0 -0
  13. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/build.rs +0 -0
  14. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/contracts/official_product_namespace_registry.json +0 -0
  15. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/config.rs +0 -0
  16. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/diagnostics.rs +0 -0
  17. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/install.rs +0 -0
  18. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/kernel.rs +0 -0
  19. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/mod.rs +0 -0
  20. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/output.rs +0 -0
  21. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/parser.rs +0 -0
  22. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/plugins.rs +0 -0
  23. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/repl.rs +0 -0
  24. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/routing.rs +0 -0
  25. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/runtime.rs +0 -0
  26. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/telemetry.rs +0 -0
  27. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/api/version.rs +0 -0
  28. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/bin/bijux.rs +0 -0
  29. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/bootstrap/mod.rs +0 -0
  30. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/bootstrap/repl.rs +0 -0
  31. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/bootstrap/run.rs +0 -0
  32. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/bootstrap/wiring.rs +0 -0
  33. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/command.rs +0 -0
  34. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/config.rs +0 -0
  35. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/diagnostics.rs +0 -0
  36. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/envelope.rs +0 -0
  37. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/execution.rs +0 -0
  38. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/marker.rs +0 -0
  39. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/mod.rs +0 -0
  40. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/plugin.rs +0 -0
  41. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/product_mount.rs +0 -0
  42. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/query.rs +0 -0
  43. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/contracts/schema.rs +0 -0
  44. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/config/error.rs +0 -0
  45. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/config/mod.rs +0 -0
  46. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/config/operations.rs +0 -0
  47. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/config/serialization.rs +0 -0
  48. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/config/service.rs +0 -0
  49. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/config/storage.rs +0 -0
  50. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/config/validation.rs +0 -0
  51. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/diagnostics/mod.rs +0 -0
  52. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/diagnostics/parity_status.rs +0 -0
  53. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/diagnostics/routing_inventory.rs +0 -0
  54. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/diagnostics/state_diagnostics.rs +0 -0
  55. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/diagnostics/state_paths.rs +0 -0
  56. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/history/mod.rs +0 -0
  57. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/history/operations.rs +0 -0
  58. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/compatibility.rs +0 -0
  59. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/completion.rs +0 -0
  60. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/diagnostics.rs +0 -0
  61. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/io.rs +0 -0
  62. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/metadata.rs +0 -0
  63. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/mod.rs +0 -0
  64. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/paths.rs +0 -0
  65. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/query.rs +0 -0
  66. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/install/state.rs +0 -0
  67. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/memory/mod.rs +0 -0
  68. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/memory/operations.rs +0 -0
  69. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/mod.rs +0 -0
  70. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/constants.rs +0 -0
  71. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/diagnostics.rs +0 -0
  72. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/discovery.rs +0 -0
  73. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/entrypoint.rs +0 -0
  74. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/errors.rs +0 -0
  75. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/manifest.rs +0 -0
  76. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/mod.rs +0 -0
  77. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/models.rs +0 -0
  78. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/operations.rs +0 -0
  79. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/registry.rs +0 -0
  80. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/runtime.rs +0 -0
  81. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/features/plugins/scaffold.rs +0 -0
  82. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/infrastructure/env.rs +0 -0
  83. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/infrastructure/fs_store.rs +0 -0
  84. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/infrastructure/mod.rs +0 -0
  85. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/infrastructure/process.rs +0 -0
  86. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/infrastructure/serde_json_codec.rs +0 -0
  87. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/infrastructure/state_store.rs +0 -0
  88. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/dispatch/help.rs +0 -0
  89. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/dispatch/policy.rs +0 -0
  90. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/dispatch/route_exec.rs +0 -0
  91. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/dispatch/suggest.rs +0 -0
  92. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/cli.rs +0 -0
  93. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/config.rs +0 -0
  94. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/history.rs +0 -0
  95. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/install.rs +0 -0
  96. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/memory.rs +0 -0
  97. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/mod.rs +0 -0
  98. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/plugins.rs +0 -0
  99. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/handlers/root.rs +0 -0
  100. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/help.rs +0 -0
  101. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/mod.rs +0 -0
  102. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/cli/parser.rs +0 -0
  103. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/mod.rs +0 -0
  104. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/completion.rs +0 -0
  105. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/diagnostics.rs +0 -0
  106. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/execution.rs +0 -0
  107. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/history.rs +0 -0
  108. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/mod.rs +0 -0
  109. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/reference.rs +0 -0
  110. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/session.rs +0 -0
  111. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/interface/repl/types.rs +0 -0
  112. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/kernel/mod.rs +0 -0
  113. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/kernel/pipeline.rs +0 -0
  114. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/kernel/policy.rs +0 -0
  115. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/kernel/tests.rs +0 -0
  116. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/lib.rs +0 -0
  117. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/routing/catalog.rs +0 -0
  118. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/routing/mod.rs +0 -0
  119. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/routing/model.rs +0 -0
  120. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/routing/parser.rs +0 -0
  121. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/routing/registry.rs +0 -0
  122. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/argv.rs +0 -0
  123. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/error.rs +0 -0
  124. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/mod.rs +0 -0
  125. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/output.rs +0 -0
  126. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/paths.rs +0 -0
  127. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/telemetry.rs +0 -0
  128. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/time.rs +0 -0
  129. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/src/shared/version.rs +0 -0
  130. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/boundaries/architecture_boundaries.rs +0 -0
  131. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/boundaries/cli_kernel_domain_boundaries.rs +0 -0
  132. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/boundaries/config_architecture_boundaries.rs +0 -0
  133. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/boundaries/mod.rs +0 -0
  134. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/boundaries/python_bridge_ownership_boundaries.rs +0 -0
  135. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/boundaries/runtime_query_architecture_boundaries.rs +0 -0
  136. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/interfaces/mod.rs +0 -0
  137. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/interfaces/query_interfaces.rs +0 -0
  138. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/mod.rs +0 -0
  139. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/ownership/mod.rs +0 -0
  140. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/ownership/plugin_template_contracts.rs +0 -0
  141. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/ownership/python_e2e_equivalence_coverage.rs +0 -0
  142. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/ownership/release_contracts.rs +0 -0
  143. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/ownership/release_tree_contracts.rs +0 -0
  144. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture/ownership/runtime_control_plane_boundaries.rs +0 -0
  145. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/architecture.rs +0 -0
  146. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/fixtures/coverage/python_e2e_equivalence_inventory.json +0 -0
  147. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/fixtures/routing/cli_subcommands.txt +0 -0
  148. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/fixtures/routing/invalid_command_suggestions.json +0 -0
  149. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/fixtures/routing/parse_cases.json +0 -0
  150. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/fixtures/routing/plugin_namespace_commands.txt +0 -0
  151. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/fixtures/routing/python_documented_commands.txt +0 -0
  152. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/fixtures/routing/rust_routed_root_commands.txt +0 -0
  153. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_clear_text.txt +0 -0
  154. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_export_json_compact.txt +0 -0
  155. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_export_text.txt +0 -0
  156. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_export_yaml_pretty.txt +0 -0
  157. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_get_json_compact.txt +0 -0
  158. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_get_json_pretty.txt +0 -0
  159. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_get_text.txt +0 -0
  160. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_get_yaml_pretty.txt +0 -0
  161. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_reload_text.txt +0 -0
  162. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_root_json_compact.txt +0 -0
  163. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_root_json_pretty.txt +0 -0
  164. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_root_text.txt +0 -0
  165. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_root_yaml_pretty.txt +0 -0
  166. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_set_json_compact.txt +0 -0
  167. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_set_json_pretty.txt +0 -0
  168. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_set_text.txt +0 -0
  169. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_set_yaml_pretty.txt +0 -0
  170. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/config_unset_text.txt +0 -0
  171. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_audit.txt +0 -0
  172. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli.txt +0 -0
  173. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_config_get.txt +0 -0
  174. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_config_set.txt +0 -0
  175. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_paths.txt +0 -0
  176. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_plugins_doctor.txt +0 -0
  177. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_plugins_inspect.txt +0 -0
  178. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_plugins_install.txt +0 -0
  179. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_plugins_list.txt +0 -0
  180. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_plugins_scaffold.txt +0 -0
  181. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_plugins_uninstall.txt +0 -0
  182. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_self_test.txt +0 -0
  183. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_cli_status.txt +0 -0
  184. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_completion.txt +0 -0
  185. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_config.txt +0 -0
  186. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_docs.txt +0 -0
  187. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_doctor.txt +0 -0
  188. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_history.txt +0 -0
  189. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_inspect.txt +0 -0
  190. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_memory.txt +0 -0
  191. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins.txt +0 -0
  192. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_doctor.txt +0 -0
  193. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_explain.txt +0 -0
  194. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_install.txt +0 -0
  195. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_reserved_names.txt +0 -0
  196. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_scaffold.txt +0 -0
  197. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_schema.txt +0 -0
  198. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_uninstall.txt +0 -0
  199. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_plugins_where.txt +0 -0
  200. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_repl.txt +0 -0
  201. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_root.txt +0 -0
  202. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_root_no_color.txt +0 -0
  203. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_status.txt +0 -0
  204. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/help_version.txt +0 -0
  205. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/history_root_json.txt +0 -0
  206. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/history_root_text.txt +0 -0
  207. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/history_root_yaml.txt +0 -0
  208. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/inspect_json.txt +0 -0
  209. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/inspect_text.txt +0 -0
  210. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/inspect_yaml.txt +0 -0
  211. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/memory_list_text.txt +0 -0
  212. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/memory_list_yaml.txt +0 -0
  213. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/plugin_scaffold_python_minimal_files.txt +0 -0
  214. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/plugin_scaffold_rust_minimal_files.txt +0 -0
  215. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/golden/cli_surface/repl_command_reference.txt +0 -0
  216. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/data/parity/python_baseline/README.md +0 -0
  217. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/adversarial_fs_process_minimized_cases/config_missing_parent_set.json +0 -0
  218. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/adversarial_fs_process_minimized_cases/history_directory_path.json +0 -0
  219. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/adversarial_fs_process_minimized_cases/plugin_list_broken_registry.json +0 -0
  220. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_corruption_minimized_cases/list_truncated_config.json +0 -0
  221. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_corruption_minimized_cases/load_malformed_source.json +0 -0
  222. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_corruption_minimized_cases/set_invalid_assignment.json +0 -0
  223. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_minimized_cases/README.md +0 -0
  224. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_minimized_cases/case_001_malformed_line.env +0 -0
  225. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_minimized_cases/case_002_duplicate_key.env +0 -0
  226. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_minimized_cases/case_003_quoted_and_escape.env +0 -0
  227. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/config_minimized_cases/case_004_null_byte.env +0 -0
  228. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_scaffold_minimized_cases/README.md +0 -0
  229. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_scaffold_minimized_cases/case_001_python_ok.argv +0 -0
  230. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_scaffold_minimized_cases/case_002_rust_ok.argv +0 -0
  231. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_scaffold_minimized_cases/case_003_reserved_fail.argv +0 -0
  232. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_scaffold_minimized_cases/case_004_parent_path_fail.argv +0 -0
  233. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_state_corruption_minimized_cases/history_mixed_entries.json +0 -0
  234. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_state_corruption_minimized_cases/memory_wrong_type.json +0 -0
  235. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/plugin_state_corruption_minimized_cases/plugin_registry_broken.json +0 -0
  236. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/state_corruption_minimized_cases/config_partial_write.json +0 -0
  237. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/state_corruption_minimized_cases/history_wrong_shape.json +0 -0
  238. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/state_corruption_minimized_cases/registry_truncated.json +0 -0
  239. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/state_race_minimized_cases/read_write_mix.json +0 -0
  240. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/minimized_cases/state_race_minimized_cases/two_writer_same_key.json +0 -0
  241. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_interesting_inputs/README.md +0 -0
  242. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_interesting_inputs/alias_namespace_cases.txt +0 -0
  243. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_interesting_inputs/flag_order_cases.txt +0 -0
  244. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_interesting_inputs/root_and_help_cases.txt +0 -0
  245. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_minimized_cases/README.md +0 -0
  246. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_minimized_cases/case_001_repeated_pretty.argv +0 -0
  247. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_minimized_cases/case_002_conflicting_format.argv +0 -0
  248. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_minimized_cases/case_003_external_namespace_route.argv +0 -0
  249. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_minimized_cases/case_004_huge_token.argv +0 -0
  250. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/parser/parser_minimized_cases/case_005_confusable_help.argv +0 -0
  251. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/routing/route_minimized_cases/README.md +0 -0
  252. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/routing/route_minimized_cases/case_001_normalized_collision.txt +0 -0
  253. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/routing/route_minimized_cases/case_002_alias_root_collisions.txt +0 -0
  254. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/fuzz/routing/route_minimized_cases/case_003_mixed_registration_order.txt +0 -0
  255. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_core_parity.rs +0 -0
  256. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_deep_behavior_matrix.rs +0 -0
  257. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_export_load_parity.rs +0 -0
  258. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_fuzz_regressions.rs +0 -0
  259. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_fuzz_targets.rs +0 -0
  260. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_get_parity.rs +0 -0
  261. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_get_performance.rs +0 -0
  262. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_key_value_parity.rs +0 -0
  263. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_mutation_matrix.rs +0 -0
  264. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_mutation_parity.rs +0 -0
  265. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_parity.rs +0 -0
  266. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_python_compatibility.rs +0 -0
  267. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_read_matrix.rs +0 -0
  268. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_root_listing.rs +0 -0
  269. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_root_parity.rs +0 -0
  270. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_set_parity.rs +0 -0
  271. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/config_source_precedence_matrix.rs +0 -0
  272. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/config/mod.rs +0 -0
  273. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/diagnostics/mod.rs +0 -0
  274. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/history/history_command_matrix.rs +0 -0
  275. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/history/history_deep_behavior_extra.rs +0 -0
  276. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/history/history_parity.rs +0 -0
  277. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/history/mod.rs +0 -0
  278. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/memory/memory_command_matrix.rs +0 -0
  279. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/memory/memory_deep_behavior_extra.rs +0 -0
  280. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/memory/memory_parity.rs +0 -0
  281. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/memory/mod.rs +0 -0
  282. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/mod.rs +0 -0
  283. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/mod.rs +0 -0
  284. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_cli_lifecycle.rs +0 -0
  285. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_command_parity.rs +0 -0
  286. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_discovery_determinism_matrix.rs +0 -0
  287. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_failure_injection.rs +0 -0
  288. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_failure_rollback_matrix.rs +0 -0
  289. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_lifecycle_matrix.rs +0 -0
  290. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_namespace_law.rs +0 -0
  291. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_scaffold_fuzz_regressions.rs +0 -0
  292. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_scaffold_fuzz_targets.rs +0 -0
  293. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/plugins/plugin_scaffold_minimal.rs +0 -0
  294. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/adversarial_fs_process_campaign_regressions.rs +0 -0
  295. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/adversarial_fs_process_campaigns.rs +0 -0
  296. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/config_corruption_campaign_regressions.rs +0 -0
  297. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/config_corruption_hardening.rs +0 -0
  298. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/deterministic_hostile_state_matrix.rs +0 -0
  299. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/history_memory_resilience_hardening.rs +0 -0
  300. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/history_write_resilience.rs +0 -0
  301. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/install_ambiguity_hardening.rs +0 -0
  302. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/mod.rs +0 -0
  303. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/performance_realism_hardening.rs +0 -0
  304. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/plugin_state_corruption_campaign_regressions.rs +0 -0
  305. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/randomized_config_corruption_campaigns.rs +0 -0
  306. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/randomized_plugin_state_corruption_campaigns.rs +0 -0
  307. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/randomized_state_corruption_harness.rs +0 -0
  308. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/randomized_state_corruption_regressions.rs +0 -0
  309. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/state_race_campaign_regressions.rs +0 -0
  310. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/resilience/state_race_campaigns.rs +0 -0
  311. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/bin_core_integration.rs +0 -0
  312. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/cli_command_matrix.rs +0 -0
  313. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/cross_surface_equivalence.rs +0 -0
  314. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/flag_normalization_matrix.rs +0 -0
  315. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/install_command.rs +0 -0
  316. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/parser_invalid_utf8_argv.rs +0 -0
  317. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/precedence_matrix.rs +0 -0
  318. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/python_command_port_parity.rs +0 -0
  319. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/cli/root/root_command_matrix.rs +0 -0
  320. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/mod.rs +0 -0
  321. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/mod.rs +0 -0
  322. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/repl_completion_extra.rs +0 -0
  323. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/repl_execution_law_extra.rs +0 -0
  324. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/repl_hostile_session_extra.rs +0 -0
  325. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/repl_hostile_session_hardening.rs +0 -0
  326. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/repl_startup_performance_budget.rs +0 -0
  327. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/transcript_cases.rs +0 -0
  328. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration/repl/transcript_parity.rs +0 -0
  329. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/integration.rs +0 -0
  330. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/contracts/command_tree_snapshot.rs +0 -0
  331. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/contracts/config_domain_types.rs +0 -0
  332. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/contracts/envelope_compatibility.rs +0 -0
  333. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/contracts/mod.rs +0 -0
  334. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/contracts/schema_snapshots.rs +0 -0
  335. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/contracts/serde_roundtrip.rs +0 -0
  336. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/command_tree_diff_report.rs +0 -0
  337. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/legacy_forms_regression.rs +0 -0
  338. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/mod.rs +0 -0
  339. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/route_fuzz_regressions.rs +0 -0
  340. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/route_fuzz_targets.rs +0 -0
  341. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/route_inspection_output.rs +0 -0
  342. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/route_law_consistency.rs +0 -0
  343. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/laws/routing_fixture_sets.rs +0 -0
  344. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/mod.rs +0 -0
  345. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/flag_normalization_property.proptest-regressions +0 -0
  346. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/flag_normalization_property.rs +0 -0
  347. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/mod.rs +0 -0
  348. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/normalization_property.rs +0 -0
  349. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/parser_abuse.rs +0 -0
  350. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/parser_fixtures.rs +0 -0
  351. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/parser_fuzz.rs +0 -0
  352. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/parser_fuzz_regressions.rs +0 -0
  353. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/parser_fuzz_targets.rs +0 -0
  354. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/parser/parser_intent.rs +0 -0
  355. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/registry/maintainer_inventory_boundaries.rs +0 -0
  356. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/registry/maintainer_routing_identity_boundaries.rs +0 -0
  357. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/registry/mod.rs +0 -0
  358. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/registry/query_interfaces.rs +0 -0
  359. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/registry/registry_namespace_policy.rs +0 -0
  360. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/registry/registry_resolution.rs +0 -0
  361. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/snapshots/command_tree.txt +0 -0
  362. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/snapshots/error_envelope_v1.schema.json +0 -0
  363. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/snapshots/output_envelope_v1.schema.json +0 -0
  364. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing/snapshots/plugin_manifest_v2.schema.json +0 -0
  365. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli/tests/routing.rs +0 -0
  366. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/Cargo.toml +0 -0
  367. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/README.md +0 -0
  368. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/src/bindings.rs +0 -0
  369. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/src/compatibility.rs +0 -0
  370. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/src/conversions.rs +0 -0
  371. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/src/lib.rs +0 -0
  372. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/bridge_binary_parity_report.rs +0 -0
  373. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/bridge_bindings.rs +0 -0
  374. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/bridge_conversion_fuzz_regressions.rs +0 -0
  375. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/bridge_conversion_fuzz_targets.rs +0 -0
  376. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/bridge_conversion_law_extra.rs +0 -0
  377. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/bridge_execution_law_extra.rs +0 -0
  378. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/bridge_surface_parity_matrix.rs +0 -0
  379. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/config_compatibility.rs +0 -0
  380. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/fuzz/bridge_conversion_minimized_cases/README.md +0 -0
  381. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/fuzz/bridge_conversion_minimized_cases/case_001_error_minimal.json +0 -0
  382. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/fuzz/bridge_conversion_minimized_cases/case_002_success_minimal.json +0 -0
  383. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/maintainer_leakage_boundaries.rs +0 -0
  384. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/python/test_packaging_contracts.py +0 -0
  385. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/python/test_runtime_parity.py +0 -0
  386. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/python/test_runtime_resilience.py +0 -0
  387. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/python/test_stable_release_compatibility.py +0 -0
  388. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/python_packaging_ownership.rs +0 -0
  389. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/crates/bijux-cli-python/tests/runtime_entrypoint_unity.rs +0 -0
  390. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/pyproject.toml +0 -0
  391. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/python/bijux_cli_py/__init__.py +0 -0
  392. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/python/bijux_cli_py/__main__.py +0 -0
  393. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/python/bijux_cli_py/_exceptions.py +0 -0
  394. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/python/bijux_cli_py/_facade.py +0 -0
  395. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/python/bijux_cli_py/cli.py +0 -0
  396. {bijux_cli-0.3.2 → bijux_cli-0.3.3}/python/bijux_cli_py/compat.py +0 -0
@@ -66,7 +66,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
66
66
 
67
67
  [[package]]
68
68
  name = "bijux-cli"
69
- version = "0.3.2"
69
+ version = "0.3.3"
70
70
  dependencies = [
71
71
  "anyhow",
72
72
  "clap",
@@ -86,7 +86,7 @@ dependencies = [
86
86
 
87
87
  [[package]]
88
88
  name = "bijux-cli-python"
89
- version = "0.3.2"
89
+ version = "0.3.3"
90
90
  dependencies = [
91
91
  "bijux-cli",
92
92
  "pyo3",
@@ -96,7 +96,7 @@ dependencies = [
96
96
 
97
97
  [[package]]
98
98
  name = "bijux-dev-cli"
99
- version = "0.3.2"
99
+ version = "0.3.3"
100
100
  dependencies = [
101
101
  "anyhow",
102
102
  "bijux-cli",
@@ -3,7 +3,7 @@ members = ["crates/bijux-cli", "crates/bijux-cli-python"]
3
3
  resolver = "2"
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.2"
6
+ version = "0.3.3"
7
7
  edition = "2021"
8
8
  license = "Apache-2.0"
9
9
  repository = "https://github.com/bijux/bijux-cli"
@@ -14,7 +14,7 @@ rust-version = "1.85"
14
14
 
15
15
  [workspace.dependencies]
16
16
  anyhow = "1.0.100"
17
- bijux-cli = { version = "0.3.2", path = "crates/bijux-cli" }
17
+ bijux-cli = { version = "0.3.3", path = "crates/bijux-cli" }
18
18
  serde = { version = "1.0.228", features = ["derive"] }
19
19
  serde_json = { version = "1.0.145", default-features = false, features = ["std"] }
20
20
  serde_yaml = "0.9.34"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bijux-cli
3
- Version: 0.3.2
3
+ Version: 0.3.3
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -0,0 +1,83 @@
1
+ //! External runtime tool delegation helpers.
2
+
3
+ use std::process::Command;
4
+
5
+ use crate::contracts::known_bijux_tool;
6
+
7
+ use super::AppRunResult;
8
+
9
+ #[derive(Debug, Clone, PartialEq, Eq)]
10
+ struct DelegatedKnownToolCommand {
11
+ binary: String,
12
+ package_name: String,
13
+ command_surface: String,
14
+ forwarded_args: Vec<String>,
15
+ }
16
+
17
+ fn delegate_to_external_binary(
18
+ binary: &str,
19
+ package_name: &str,
20
+ command_surface: &str,
21
+ forwarded_args: &[String],
22
+ ) -> AppRunResult {
23
+ match Command::new(binary).args(forwarded_args).output() {
24
+ Ok(output) => AppRunResult {
25
+ exit_code: output.status.code().unwrap_or(1),
26
+ stdout: String::from_utf8_lossy(&output.stdout).into_owned(),
27
+ stderr: String::from_utf8_lossy(&output.stderr).into_owned(),
28
+ },
29
+ Err(error) => {
30
+ let message = format!(
31
+ "failed to run `{command_surface}` via `{binary}`: {error}\ninstall with `cargo install {package_name}` or `pip install {package_name}`\n"
32
+ );
33
+ AppRunResult { exit_code: 1, stdout: String::new(), stderr: message }
34
+ }
35
+ }
36
+ }
37
+
38
+ fn delegated_known_bijux_tool_command(argv: &[String]) -> Option<DelegatedKnownToolCommand> {
39
+ match argv.get(1).map(String::as_str) {
40
+ Some("dev") => {
41
+ let namespace = argv.get(2)?;
42
+ let tool = known_bijux_tool(namespace)?;
43
+ Some(DelegatedKnownToolCommand {
44
+ binary: tool.control_binary(),
45
+ package_name: tool.control_package(),
46
+ command_surface: format!("bijux dev {}", tool.namespace),
47
+ forwarded_args: argv[3..].to_vec(),
48
+ })
49
+ }
50
+ Some(namespace) => {
51
+ let tool = known_bijux_tool(namespace)?;
52
+ Some(DelegatedKnownToolCommand {
53
+ binary: tool.runtime_binary(),
54
+ package_name: tool.runtime_package(),
55
+ command_surface: format!("bijux {}", tool.namespace),
56
+ forwarded_args: argv[2..].to_vec(),
57
+ })
58
+ }
59
+ None => None,
60
+ }
61
+ }
62
+
63
+ pub(super) fn is_known_bijux_tool_route(path: &[String]) -> bool {
64
+ match path {
65
+ [dev, namespace, ..] => dev == "dev" && known_bijux_tool(namespace).is_some(),
66
+ [namespace, ..] => known_bijux_tool(namespace).is_some(),
67
+ [] => false,
68
+ }
69
+ }
70
+
71
+ pub(super) fn delegated_command_surface(argv: &[String]) -> Option<String> {
72
+ delegated_known_bijux_tool_command(argv).map(|command| command.command_surface)
73
+ }
74
+
75
+ pub(super) fn try_delegate_known_bijux_tool(argv: &[String]) -> Option<AppRunResult> {
76
+ let command = delegated_known_bijux_tool_command(argv)?;
77
+ Some(delegate_to_external_binary(
78
+ &command.binary,
79
+ &command.package_name,
80
+ &command.command_surface,
81
+ &command.forwarded_args,
82
+ ))
83
+ }
@@ -9,7 +9,7 @@ mod suggest;
9
9
  use anyhow::Result;
10
10
  use serde_json::json;
11
11
 
12
- use crate::contracts::{known_bijux_tool, OutputFormat};
12
+ use crate::contracts::OutputFormat;
13
13
  use crate::interface::cli::handlers::install as install_handler;
14
14
  use crate::interface::cli::help::render_command_help;
15
15
  use crate::interface::cli::parser::parse_intent;
@@ -234,25 +234,24 @@ fn run_app_inner(argv: &[String], telemetry: &TelemetrySpan) -> Result<AppRunRes
234
234
  }
235
235
  };
236
236
  let path_refs: Vec<&str> = path.iter().map(String::as_str).collect();
237
+ if delegation::is_known_bijux_tool_route(&path) {
238
+ let mut delegated_argv = vec!["bijux".to_string()];
239
+ delegated_argv.extend(path.clone());
240
+ delegated_argv.push("--help".to_string());
241
+ if let Some(delegated) = delegation::try_delegate_known_bijux_tool(&delegated_argv) {
242
+ let surface = delegation::delegated_command_surface(&delegated_argv)
243
+ .unwrap_or_else(|| path.join(" "));
244
+ let (target, target_truncated) = bounded_command(&surface);
245
+ telemetry.record(
246
+ "dispatch.delegated.help",
247
+ json!({"target": target, "target_truncated": target_truncated, "exit_code": delegated.exit_code}),
248
+ );
249
+ return Ok(delegated);
250
+ }
251
+ }
237
252
  if !is_known_help_topic(&path) {
238
253
  return Ok(unknown_help_topic_result(&path_refs.join(" "), telemetry));
239
254
  }
240
- if let Some(first) = path.first().map(String::as_str) {
241
- if known_bijux_tool(first).is_some() {
242
- let mut delegated_argv = vec!["bijux".to_string()];
243
- delegated_argv.extend(path.clone());
244
- delegated_argv.push("--help".to_string());
245
- if let Some(delegated) = delegation::try_delegate_known_bijux_tool(&delegated_argv)
246
- {
247
- let (target, target_truncated) = bounded_command(first);
248
- telemetry.record(
249
- "dispatch.delegated.help",
250
- json!({"target": target, "target_truncated": target_truncated, "exit_code": delegated.exit_code}),
251
- );
252
- return Ok(delegated);
253
- }
254
- }
255
- }
256
255
  let rendered = match render_command_help(&path_refs) {
257
256
  Ok(rendered) => rendered,
258
257
  Err(_) => return Ok(unknown_help_topic_result(&path_refs.join(" "), telemetry)),
@@ -275,10 +274,10 @@ fn run_app_inner(argv: &[String], telemetry: &TelemetrySpan) -> Result<AppRunRes
275
274
  }
276
275
 
277
276
  let has_help_flag = argv.iter().any(|arg| matches!(arg.as_str(), "--help" | "-h"));
278
- if has_help_flag && argv.get(1).is_some_and(|first| known_bijux_tool(first).is_some()) {
277
+ if has_help_flag && delegation::is_known_bijux_tool_route(&argv[1..]) {
279
278
  if let Some(delegated) = delegation::try_delegate_known_bijux_tool(argv) {
280
- let target_arg = argv.get(1).cloned().unwrap_or_default();
281
- let (target, target_truncated) = bounded_command(&target_arg);
279
+ let surface = delegation::delegated_command_surface(argv).unwrap_or_default();
280
+ let (target, target_truncated) = bounded_command(&surface);
282
281
  telemetry.record(
283
282
  "dispatch.delegated.help_flag",
284
283
  json!({"target": target, "target_truncated": target_truncated, "exit_code": delegated.exit_code}),
@@ -296,8 +295,8 @@ fn run_app_inner(argv: &[String], telemetry: &TelemetrySpan) -> Result<AppRunRes
296
295
  }
297
296
 
298
297
  if let Some(delegated) = delegation::try_delegate_known_bijux_tool(argv) {
299
- let target_arg = argv.get(1).cloned().unwrap_or_default();
300
- let (target, target_truncated) = bounded_command(&target_arg);
298
+ let surface = delegation::delegated_command_surface(argv).unwrap_or_default();
299
+ let (target, target_truncated) = bounded_command(&surface);
301
300
  telemetry.record(
302
301
  "dispatch.delegated.command",
303
302
  json!({"target": target, "target_truncated": target_truncated, "exit_code": delegated.exit_code}),
@@ -53,9 +53,17 @@ fn routed_runtime_reference_matches_current_binary_resolution_contract() {
53
53
  let doc = read_doc("docs/06-reference/integrations-and-routed-runtimes.md");
54
54
 
55
55
  assert!(doc.contains("bijux-dev-cli"), "maintainer binary documentation must stay explicit");
56
+ assert!(
57
+ doc.contains("`bijux dev <tool> ...`"),
58
+ "routed product control commands must remain documented explicitly"
59
+ );
56
60
  assert!(
57
61
  doc.contains("`bijux-dev-<tool>`"),
58
- "product control-plane binaries must remain documented explicitly"
62
+ "direct product control binaries must remain documented explicitly"
63
+ );
64
+ assert!(
65
+ doc.contains("`bijux <tool> ...`"),
66
+ "routed product runtime commands must remain documented explicitly"
59
67
  );
60
68
  assert!(
61
69
  doc.contains("`PATH`"),
@@ -63,7 +71,6 @@ fn routed_runtime_reference_matches_current_binary_resolution_contract() {
63
71
  );
64
72
 
65
73
  for unsupported in [
66
- "bijux dev ",
67
74
  "BIJUXCLI_ALLOWED_PRODUCT_BINS",
68
75
  "BIJUXCLI_PRODUCT_BIN_DIR",
69
76
  "BIJUXCLI_PRODUCT_BIN_DIRS",
@@ -6,6 +6,7 @@ mod cli_command_matrix;
6
6
  mod cross_surface_equivalence;
7
7
  mod flag_normalization_matrix;
8
8
  mod install_command;
9
+ mod official_product_routes;
9
10
  mod parser_invalid_utf8_argv;
10
11
  mod precedence_matrix;
11
12
  mod python_command_port_parity;
@@ -0,0 +1,123 @@
1
+ #![forbid(unsafe_code)]
2
+ //! Routed official product namespace delegation contracts.
3
+
4
+ use std::env;
5
+ use std::fs;
6
+ use std::path::{Path, PathBuf};
7
+ use std::process::{Command, Output};
8
+
9
+ use bijux_cli::contracts::known_bijux_tools;
10
+
11
+ fn run_with_env(args: &[&str], envs: &[(&str, &Path)]) -> Output {
12
+ let mut command = Command::new(env!("CARGO_BIN_EXE_bijux"));
13
+ command.args(args);
14
+ for (key, value) in envs {
15
+ command.env(key, value);
16
+ }
17
+ command.output().expect("binary should execute")
18
+ }
19
+
20
+ fn temp_dir(name: &str) -> PathBuf {
21
+ let root = env::temp_dir()
22
+ .join(format!("bijux-official-product-routes-{name}-{}", std::process::id()));
23
+ let _ = fs::remove_dir_all(&root);
24
+ fs::create_dir_all(&root).expect("mkdir temp");
25
+ root
26
+ }
27
+
28
+ #[cfg(unix)]
29
+ fn write_stub_binary(bin_dir: &Path, binary_name: &str) {
30
+ use std::os::unix::fs::PermissionsExt;
31
+
32
+ let script = format!("#!/bin/sh\nprintf 'stub:{binary_name}\\n'\nprintf 'args:%s\\n' \"$*\"\n");
33
+ let path = bin_dir.join(binary_name);
34
+ fs::write(&path, script).expect("write stub");
35
+ let mut permissions = fs::metadata(&path).expect("metadata").permissions();
36
+ permissions.set_mode(0o755);
37
+ fs::set_permissions(&path, permissions).expect("chmod");
38
+ }
39
+
40
+ #[cfg(windows)]
41
+ fn write_stub_binary(bin_dir: &Path, binary_name: &str) {
42
+ let script = format!("@echo off\r\necho stub:{binary_name}\r\necho args:%*\r\n");
43
+ fs::write(bin_dir.join(format!("{binary_name}.bat")), script).expect("write stub");
44
+ }
45
+
46
+ fn write_all_stubs(bin_dir: &Path) {
47
+ for tool in known_bijux_tools() {
48
+ write_stub_binary(bin_dir, tool.runtime_binary_name);
49
+ write_stub_binary(bin_dir, tool.control_binary_name);
50
+ }
51
+ }
52
+
53
+ #[test]
54
+ fn official_runtime_routes_delegate_to_runtime_binaries_for_every_reserved_namespace() {
55
+ let root = temp_dir("runtime");
56
+ let bin_dir = root.join("bin");
57
+ fs::create_dir_all(&bin_dir).expect("mkdir bin");
58
+ write_all_stubs(&bin_dir);
59
+
60
+ for tool in known_bijux_tools() {
61
+ let out = run_with_env(&[tool.namespace, "status"], &[("PATH", &bin_dir)]);
62
+ assert_eq!(
63
+ out.status.code(),
64
+ Some(0),
65
+ "runtime route should succeed for {}",
66
+ tool.namespace
67
+ );
68
+ assert!(
69
+ out.stderr.is_empty(),
70
+ "runtime route should keep stderr empty for {}",
71
+ tool.namespace
72
+ );
73
+ let stdout = String::from_utf8(out.stdout).expect("utf-8");
74
+ assert!(stdout.contains(&format!("stub:{}", tool.runtime_binary_name)));
75
+ assert!(stdout.contains("args:status"));
76
+ }
77
+ }
78
+
79
+ #[test]
80
+ fn official_control_routes_delegate_to_control_binaries_for_every_reserved_namespace() {
81
+ let root = temp_dir("control");
82
+ let bin_dir = root.join("bin");
83
+ fs::create_dir_all(&bin_dir).expect("mkdir bin");
84
+ write_all_stubs(&bin_dir);
85
+
86
+ for tool in known_bijux_tools() {
87
+ let out = run_with_env(&["dev", tool.namespace, "status"], &[("PATH", &bin_dir)]);
88
+ assert_eq!(
89
+ out.status.code(),
90
+ Some(0),
91
+ "control route should succeed for {}",
92
+ tool.namespace
93
+ );
94
+ assert!(
95
+ out.stderr.is_empty(),
96
+ "control route should keep stderr empty for {}",
97
+ tool.namespace
98
+ );
99
+ let stdout = String::from_utf8(out.stdout).expect("utf-8");
100
+ assert!(stdout.contains(&format!("stub:{}", tool.control_binary_name)));
101
+ assert!(stdout.contains("args:status"));
102
+ }
103
+ }
104
+
105
+ #[test]
106
+ fn help_routes_delegate_for_runtime_and_control_product_surfaces() {
107
+ let root = temp_dir("help");
108
+ let bin_dir = root.join("bin");
109
+ fs::create_dir_all(&bin_dir).expect("mkdir bin");
110
+ write_all_stubs(&bin_dir);
111
+
112
+ let runtime = run_with_env(&["help", "atlas"], &[("PATH", &bin_dir)]);
113
+ assert_eq!(runtime.status.code(), Some(0));
114
+ let runtime_stdout = String::from_utf8(runtime.stdout).expect("utf-8");
115
+ assert!(runtime_stdout.contains("stub:bijux-atlas"));
116
+ assert!(runtime_stdout.contains("args:--help"));
117
+
118
+ let control = run_with_env(&["help", "dev", "atlas"], &[("PATH", &bin_dir)]);
119
+ assert_eq!(control.status.code(), Some(0));
120
+ let control_stdout = String::from_utf8(control.stdout).expect("utf-8");
121
+ assert!(control_stdout.contains("stub:bijux-dev-atlas"));
122
+ assert!(control_stdout.contains("args:--help"));
123
+ }
@@ -1,46 +0,0 @@
1
- //! External runtime tool delegation helpers.
2
-
3
- use std::process::Command;
4
-
5
- use crate::contracts::known_bijux_tool;
6
-
7
- use super::AppRunResult;
8
-
9
- fn delegate_to_external_binary(
10
- binary: &str,
11
- package_name: &str,
12
- command_surface: &str,
13
- forwarded_args: &[String],
14
- ) -> AppRunResult {
15
- match Command::new(binary).args(forwarded_args).output() {
16
- Ok(output) => AppRunResult {
17
- exit_code: output.status.code().unwrap_or(1),
18
- stdout: String::from_utf8_lossy(&output.stdout).into_owned(),
19
- stderr: String::from_utf8_lossy(&output.stderr).into_owned(),
20
- },
21
- Err(error) => {
22
- let message = format!(
23
- "failed to run `{command_surface}` via `{binary}`: {error}\ninstall with `cargo install {package_name}` or `pip install {package_name}`\n"
24
- );
25
- AppRunResult { exit_code: 1, stdout: String::new(), stderr: message }
26
- }
27
- }
28
- }
29
-
30
- pub(super) fn try_delegate_known_bijux_tool(argv: &[String]) -> Option<AppRunResult> {
31
- let first = argv.get(1)?;
32
-
33
- if let Some(tool) = known_bijux_tool(first) {
34
- let runtime_binary = tool.runtime_binary();
35
- let runtime_package = runtime_binary.clone();
36
- let command_surface = format!("bijux {}", tool.namespace);
37
- return Some(delegate_to_external_binary(
38
- &runtime_binary,
39
- &runtime_package,
40
- &command_surface,
41
- &argv[2..],
42
- ));
43
- }
44
-
45
- None
46
- }
File without changes