praisonai-code 0.0.46__tar.gz → 0.0.48__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 (314) hide show
  1. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/PKG-INFO +1 -1
  2. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/__init__.py +1 -1
  3. praisonai_code-0.0.48/praisonai_code/_browser_bridge.py +35 -0
  4. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/app.py +16 -1
  5. praisonai_code-0.0.46/praisonai_code/cli/commands/browser.py → praisonai_code-0.0.48/praisonai_code/cli/commands/browser_tool.py +20 -20
  6. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/help_categories.py +1 -0
  7. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/praison_ai.py +6 -4
  8. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/PKG-INFO +1 -1
  9. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/SOURCES.txt +2 -1
  10. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/pyproject.toml +1 -1
  11. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/README.md +0 -0
  12. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/__main__.py +0 -0
  13. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_bot_bridge.py +0 -0
  14. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_framework_availability.py +0 -0
  15. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_logging.py +0 -0
  16. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_registry.py +0 -0
  17. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_safe_loader.py +0 -0
  18. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_train_bridge.py +0 -0
  19. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_version.py +0 -0
  20. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_wrapper_bridge.py +0 -0
  21. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/__init__.py +0 -0
  22. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_forward_shim.py +0 -0
  23. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_paths.py +0 -0
  24. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_warnings.py +0 -0
  25. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_wrapper_reexport.py +0 -0
  26. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/approval_backend.py +0 -0
  27. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/branding.py +0 -0
  28. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/__init__.py +0 -0
  29. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/acp.py +0 -0
  30. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/agent.py +0 -0
  31. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/agents.py +0 -0
  32. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/attach.py +0 -0
  33. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/auth.py +0 -0
  34. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/benchmark.py +0 -0
  35. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/call.py +0 -0
  36. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/chat.py +0 -0
  37. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/checkpoint.py +0 -0
  38. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/code.py +0 -0
  39. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/command.py +0 -0
  40. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/commit.py +0 -0
  41. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/completion.py +0 -0
  42. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/config.py +0 -0
  43. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/daemon.py +0 -0
  44. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/debug.py +0 -0
  45. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/deploy.py +0 -0
  46. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/diag.py +0 -0
  47. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/doctor.py +0 -0
  48. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/endpoints.py +0 -0
  49. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/environment.py +0 -0
  50. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/eval.py +0 -0
  51. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/github.py +0 -0
  52. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/hooks.py +0 -0
  53. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/init.py +0 -0
  54. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/loop.py +0 -0
  55. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/lsp.py +0 -0
  56. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/memory.py +0 -0
  57. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/models.py +0 -0
  58. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/obs.py +0 -0
  59. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/package.py +0 -0
  60. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/paths.py +0 -0
  61. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/permissions.py +0 -0
  62. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/plugins.py +0 -0
  63. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/port.py +0 -0
  64. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/publish.py +0 -0
  65. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/registry.py +0 -0
  66. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/research.py +0 -0
  67. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/retrieval.py +0 -0
  68. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/rules.py +0 -0
  69. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/run.py +0 -0
  70. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/sandbox.py +0 -0
  71. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/serve.py +0 -0
  72. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/session.py +0 -0
  73. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/setup.py +0 -0
  74. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/skills.py +0 -0
  75. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/templates.py +0 -0
  76. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/test.py +0 -0
  77. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/todo.py +0 -0
  78. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/tools.py +0 -0
  79. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/traces.py +0 -0
  80. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/tracker.py +0 -0
  81. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/ui.py +0 -0
  82. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/uninstall.py +0 -0
  83. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/up.py +0 -0
  84. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/upgrade.py +0 -0
  85. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/version.py +0 -0
  86. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/workflow.py +0 -0
  87. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/config_loader.py +0 -0
  88. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/__init__.py +0 -0
  89. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/config.schema.json +0 -0
  90. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/credentials.py +0 -0
  91. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/loader.py +0 -0
  92. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/model_resolver.py +0 -0
  93. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/oauth.py +0 -0
  94. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/paths.py +0 -0
  95. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/resolver.py +0 -0
  96. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/schema.py +0 -0
  97. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/__init__.py +0 -0
  98. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/core.py +0 -0
  99. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/profiler.py +0 -0
  100. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/request.py +0 -0
  101. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/result.py +0 -0
  102. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/fallback_schema.py +0 -0
  103. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/__init__.py +0 -0
  104. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_approval_bridge.py +0 -0
  105. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_endpoint_registry.py +0 -0
  106. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_search_registry.py +0 -0
  107. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/action_orchestrator.py +0 -0
  108. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/agents.py +0 -0
  109. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/at_mentions.py +0 -0
  110. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/audit_cli.py +0 -0
  111. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/auto_memory.py +0 -0
  112. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/auto_mode.py +0 -0
  113. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/autonomy_mode.py +0 -0
  114. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/base.py +0 -0
  115. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/benchmark.py +0 -0
  116. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/capabilities.py +0 -0
  117. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/checkpoints.py +0 -0
  118. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/cli_profiler.py +0 -0
  119. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/code_intelligence.py +0 -0
  120. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/compaction.py +0 -0
  121. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/compare.py +0 -0
  122. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/config_hierarchy.py +0 -0
  123. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/context_manager.py +0 -0
  124. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/cost_tracker.py +0 -0
  125. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/csv_test_runner.py +0 -0
  126. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/custom_definitions.py +0 -0
  127. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/debug.py +0 -0
  128. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/diag.py +0 -0
  129. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/display_jsonl.py +0 -0
  130. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/__init__.py +0 -0
  131. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/__init__.py +0 -0
  132. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/_wrapper_checks.py +0 -0
  133. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/acp_checks.py +0 -0
  134. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/bot_checks.py +0 -0
  135. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/config_checks.py +0 -0
  136. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/db_checks.py +0 -0
  137. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/env_checks.py +0 -0
  138. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/gateway_checks.py +0 -0
  139. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/lsp_checks.py +0 -0
  140. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/mcp_checks.py +0 -0
  141. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/memory_checks.py +0 -0
  142. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/network_checks.py +0 -0
  143. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/obs_checks.py +0 -0
  144. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/packaging_checks.py +0 -0
  145. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/performance_checks.py +0 -0
  146. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/permissions_checks.py +0 -0
  147. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/runtime_checks.py +0 -0
  148. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/runtime_migration_checks.py +0 -0
  149. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/selftest_checks.py +0 -0
  150. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/serve_checks.py +0 -0
  151. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/skills_checks.py +0 -0
  152. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/tools_checks.py +0 -0
  153. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/engine.py +0 -0
  154. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/formatters.py +0 -0
  155. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/handler.py +0 -0
  156. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/models.py +0 -0
  157. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/registry.py +0 -0
  158. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/endpoints.py +0 -0
  159. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/examples.py +0 -0
  160. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/external_agents.py +0 -0
  161. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/fast_context.py +0 -0
  162. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/file_history.py +0 -0
  163. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/flow_display.py +0 -0
  164. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/git_attribution.py +0 -0
  165. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/git_integration.py +0 -0
  166. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/guardrail.py +0 -0
  167. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/handoff.py +0 -0
  168. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/hooks.py +0 -0
  169. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/hybrid_workflow.py +0 -0
  170. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/image.py +0 -0
  171. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_core_headless.py +0 -0
  172. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_runtime.py +0 -0
  173. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_test_harness.py +0 -0
  174. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_tools.py +0 -0
  175. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_tui.py +0 -0
  176. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/job_workflow.py +0 -0
  177. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/jobs.py +0 -0
  178. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/knowledge.py +0 -0
  179. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/knowledge_cli.py +0 -0
  180. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/lite.py +0 -0
  181. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/logs.py +0 -0
  182. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/lsp_cli.py +0 -0
  183. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/lsp_diagnostics.py +0 -0
  184. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/mcp.py +0 -0
  185. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/message_queue.py +0 -0
  186. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/metrics.py +0 -0
  187. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/migrate.py +0 -0
  188. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/migration_flow.py +0 -0
  189. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/migration_spec.py +0 -0
  190. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/n8n.py +0 -0
  191. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/observability.py +0 -0
  192. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/output_modes.py +0 -0
  193. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/output_style.py +0 -0
  194. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/package.py +0 -0
  195. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/performance.py +0 -0
  196. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/__init__.py +0 -0
  197. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/core.py +0 -0
  198. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/optimizations.py +0 -0
  199. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/suite.py +0 -0
  200. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/__init__.py +0 -0
  201. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/manager.py +0 -0
  202. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/models.py +0 -0
  203. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/persistence.py +0 -0
  204. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/scheduler.py +0 -0
  205. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/worker.py +0 -0
  206. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/recipe_creator.py +0 -0
  207. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/recipe_prompts.py +0 -0
  208. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/registry.py +0 -0
  209. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/repo_map.py +0 -0
  210. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/router.py +0 -0
  211. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/safe_shell.py +0 -0
  212. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/sandbox_executor.py +0 -0
  213. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/sdk_knowledge.py +0 -0
  214. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/self_manage.py +0 -0
  215. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/session.py +0 -0
  216. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/session_checkpoints.py +0 -0
  217. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/setup/__init__.py +0 -0
  218. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/setup/handler.py +0 -0
  219. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/setup/templates.py +0 -0
  220. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/skills.py +0 -0
  221. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/slash_commands.py +0 -0
  222. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/telemetry.py +0 -0
  223. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/thinking.py +0 -0
  224. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/todo.py +0 -0
  225. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tools.py +0 -0
  226. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/__init__.py +0 -0
  227. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/cli.py +0 -0
  228. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/config.py +0 -0
  229. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/debug.py +0 -0
  230. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/events.py +0 -0
  231. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/mock_provider.py +0 -0
  232. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/orchestrator.py +0 -0
  233. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/__init__.py +0 -0
  234. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/help.py +0 -0
  235. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/main.py +0 -0
  236. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/queue.py +0 -0
  237. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/session.py +0 -0
  238. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/settings.py +0 -0
  239. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/session_store.py +0 -0
  240. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/__init__.py +0 -0
  241. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/chat.py +0 -0
  242. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/command_popup.py +0 -0
  243. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/composer.py +0 -0
  244. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/file_popup.py +0 -0
  245. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/queue_panel.py +0 -0
  246. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/status.py +0 -0
  247. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/tool_panel.py +0 -0
  248. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/wizard.py +0 -0
  249. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/workflow.py +0 -0
  250. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/yaml_utils.py +0 -0
  251. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/__init__.py +0 -0
  252. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/async_tui.py +0 -0
  253. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/command_registry.py +0 -0
  254. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/config.py +0 -0
  255. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/core.py +0 -0
  256. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/events.py +0 -0
  257. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/frontends/__init__.py +0 -0
  258. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/frontends/rich_frontend.py +0 -0
  259. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/frontends/textual_frontend.py +0 -0
  260. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/praison_io.py +0 -0
  261. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/repl.py +0 -0
  262. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/split_tui.py +0 -0
  263. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/tui_app.py +0 -0
  264. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/__init__.py +0 -0
  265. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/env_security.py +0 -0
  266. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/prompt_dispatch.py +0 -0
  267. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/main.py +0 -0
  268. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/output/__init__.py +0 -0
  269. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/output/console.py +0 -0
  270. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/output/event_bridge.py +0 -0
  271. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/schedule_cli.py +0 -0
  272. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/schema_provider.py +0 -0
  273. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/session/__init__.py +0 -0
  274. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/session/resume.py +0 -0
  275. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/session/unified.py +0 -0
  276. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/__init__.py +0 -0
  277. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/identifiers.py +0 -0
  278. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/project_sessions.py +0 -0
  279. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/sessions.py +0 -0
  280. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/__init__.py +0 -0
  281. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/config.py +0 -0
  282. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/events.py +0 -0
  283. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/mg_backend.py +0 -0
  284. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/plain.py +0 -0
  285. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/rich_backend.py +0 -0
  286. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/unified_schema.py +0 -0
  287. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/utils/env_utils.py +0 -0
  288. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/utils/project.py +0 -0
  289. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/utils/stdin.py +0 -0
  290. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli_backends/__init__.py +0 -0
  291. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli_backends/claude.py +0 -0
  292. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli_backends/registry.py +0 -0
  293. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/__init__.py +0 -0
  294. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/multi_agent.csv +0 -0
  295. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/refactor.csv +0 -0
  296. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/smoke.csv +0 -0
  297. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/tools.csv +0 -0
  298. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/__init__.py +0 -0
  299. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/catalogue.py +0 -0
  300. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/config.py +0 -0
  301. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/credentials.py +0 -0
  302. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/env.py +0 -0
  303. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/__init__.py +0 -0
  304. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/__main__.py +0 -0
  305. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/client.py +0 -0
  306. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/descriptor.py +0 -0
  307. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/server.py +0 -0
  308. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/tool_registry.py +0 -0
  309. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/tool_resolver.py +0 -0
  310. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/dependency_links.txt +0 -0
  311. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/entry_points.txt +0 -0
  312. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/requires.txt +0 -0
  313. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/top_level.txt +0 -0
  314. {praisonai_code-0.0.46 → praisonai_code-0.0.48}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praisonai-code
3
- Version: 0.0.46
3
+ Version: 0.0.48
4
4
  Summary: Agentic terminal CLI for PraisonAI — the terminal-native agent (run, chat, code, runtime, cli backends) extracted from the praisonai wrapper.
5
5
  Author: Mervin Praison
6
6
  License: MIT
@@ -12,6 +12,6 @@ the remaining terminal-agent modules, with PEP 562 shims left behind at the
12
12
  old ``praisonai.*`` paths for backward compatibility.
13
13
  """
14
14
 
15
- __version__ = "0.0.46"
15
+ __version__ = "0.0.48"
16
16
 
17
17
  __all__ = ["__version__"]
@@ -0,0 +1,35 @@
1
+ """Lazy access to ``praisonai-browser`` from ``praisonai-code``."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib
6
+ from types import ModuleType
7
+ from typing import Any, TypeVar
8
+
9
+ T = TypeVar("T")
10
+
11
+ _INSTALL_HINT = "Install the browser package: pip install praisonai-browser"
12
+
13
+
14
+ def browser_package_available() -> bool:
15
+ import importlib.util
16
+
17
+ return importlib.util.find_spec("praisonai_browser") is not None
18
+
19
+
20
+ def import_browser_module(name: str) -> ModuleType:
21
+ if not name.startswith("praisonai_browser"):
22
+ raise ValueError(f"Expected praisonai_browser module name, got {name!r}")
23
+ try:
24
+ return importlib.import_module(name)
25
+ except ImportError as exc:
26
+ raise ImportError(f"{name} requires praisonai-browser. {_INSTALL_HINT}") from exc
27
+
28
+
29
+ def optional_browser_attr(module_name: str, attr: str, default: T | None = None) -> Any | T | None:
30
+ if not browser_package_available():
31
+ return default
32
+ try:
33
+ return getattr(import_browser_module(module_name), attr)
34
+ except (ImportError, AttributeError):
35
+ return default
@@ -228,7 +228,8 @@ _LAZY_COMMANDS: Dict[str, Tuple[str, str, str]] = {
228
228
  "mint_link": (".commands.mint_link", "app", "Generate gateway magic links"),
229
229
  "dashboard": (".commands.dashboard", "app", "Unified Dashboard (Flow + Claw + UI)"),
230
230
 
231
- "browser": (".commands.browser", "app", "Browser control for agent automation"),
231
+ "browser": (".commands.browser", "app", "Browser automation (extension bridge, CDP, Playwright)"),
232
+ "browser-tool": (".commands.browser_tool", "app", "praisonai-tools browser automation (snapshot/click/navigate)"),
232
233
  "plugins": (".commands.plugins", "app", "Plugin management and inspection"),
233
234
  "sandbox": (".commands.sandbox", "app", "Sandbox container management"),
234
235
  "flow": (".commands.flow", "app", "Visual workflow builder (Langflow)"),
@@ -293,6 +294,13 @@ _TRAIN_RESIDENT_COMMANDS = frozenset({
293
294
  "train",
294
295
  })
295
296
 
297
+ # C11: Browser automation commands implemented in ``praisonai_browser.cli.commands.*``.
298
+ # ``get_command()`` loads them via ``praisonai_browser.cli.commands.{name}`` when the
299
+ # browser package is installed; standalone ``praisonai-code`` hides them from ``--help``.
300
+ _BROWSER_RESIDENT_COMMANDS = frozenset({
301
+ "browser",
302
+ })
303
+
296
304
  # Backward-compatible alias (C7.1 name).
297
305
  _WRAPPER_COMMANDS = _WRAPPER_RESIDENT_COMMANDS
298
306
 
@@ -306,6 +314,7 @@ _SPECIAL_COMMANDS = {
306
314
  from praisonai_code._wrapper_bridge import wrapper_available
307
315
  from praisonai_code._bot_bridge import bot_package_available
308
316
  from praisonai_code._train_bridge import train_package_available
317
+ from praisonai_code._browser_bridge import browser_package_available
309
318
 
310
319
 
311
320
  class LazyCommandGroup(TyperGroup):
@@ -322,11 +331,13 @@ class LazyCommandGroup(TyperGroup):
322
331
  wrapper_ok = wrapper_available()
323
332
  bot_ok = bot_package_available()
324
333
  train_ok = train_package_available()
334
+ browser_ok = browser_package_available()
325
335
  commands.update(
326
336
  name for name in _LAZY_COMMANDS
327
337
  if (wrapper_ok or name not in _WRAPPER_RESIDENT_COMMANDS)
328
338
  and (bot_ok or name not in _BOT_RESIDENT_COMMANDS)
329
339
  and (train_ok or name not in _TRAIN_RESIDENT_COMMANDS)
340
+ and (browser_ok or name not in _BROWSER_RESIDENT_COMMANDS)
330
341
  )
331
342
  commands.update(_SPECIAL_COMMANDS.keys())
332
343
 
@@ -376,6 +387,10 @@ class LazyCommandGroup(TyperGroup):
376
387
  if not train_package_available():
377
388
  return None
378
389
  module = importlib.import_module(f"praisonai_train.cli.commands.{name}")
390
+ elif name in _BROWSER_RESIDENT_COMMANDS:
391
+ if not browser_package_available():
392
+ return None
393
+ module = importlib.import_module(f"praisonai_browser.cli.commands.{name}")
379
394
  elif name in _WRAPPER_RESIDENT_COMMANDS:
380
395
  if not wrapper_available():
381
396
  return None
@@ -23,8 +23,8 @@ def browser_status(
23
23
  """Check browser status.
24
24
 
25
25
  Examples:
26
- praisonai browser status
27
- praisonai browser --profile chrome status
26
+ praisonai browser-tool status
27
+ praisonai browser-tool --profile chrome status
28
28
  """
29
29
  try:
30
30
  from rich.console import Console
@@ -54,8 +54,8 @@ def browser_open(
54
54
  """Open a URL in the browser.
55
55
 
56
56
  Examples:
57
- praisonai browser open https://example.com
58
- praisonai browser open https://example.com --headless
57
+ praisonai browser-tool open https://example.com
58
+ praisonai browser-tool open https://example.com --headless
59
59
  """
60
60
  try:
61
61
  from praisonai_tools import BrowserBaseTool
@@ -83,8 +83,8 @@ def browser_snapshot(
83
83
  """Take a snapshot of the current page.
84
84
 
85
85
  Examples:
86
- praisonai browser snapshot
87
- praisonai browser snapshot --output snapshot.txt
86
+ praisonai browser-tool snapshot
87
+ praisonai browser-tool snapshot --output snapshot.txt
88
88
  """
89
89
  try:
90
90
  from praisonai_tools import BrowserBaseTool
@@ -119,8 +119,8 @@ def browser_screenshot(
119
119
  """Take a screenshot of the current page.
120
120
 
121
121
  Examples:
122
- praisonai browser screenshot
123
- praisonai browser screenshot --output page.png --full-page
122
+ praisonai browser-tool screenshot
123
+ praisonai browser-tool screenshot --output page.png --full-page
124
124
  """
125
125
  try:
126
126
  from praisonai_tools import BrowserBaseTool
@@ -153,8 +153,8 @@ def browser_click(
153
153
  """Click an element on the page.
154
154
 
155
155
  Examples:
156
- praisonai browser click "#submit-button"
157
- praisonai browser click "ref:123" --double
156
+ praisonai browser-tool click "#submit-button"
157
+ praisonai browser-tool click "ref:123" --double
158
158
  """
159
159
  try:
160
160
  from praisonai_tools import BrowserBaseTool
@@ -182,8 +182,8 @@ def browser_type(
182
182
  """Type text into an element.
183
183
 
184
184
  Examples:
185
- praisonai browser type "#search-input" "hello world"
186
- praisonai browser type "#search-input" "hello world" --submit
185
+ praisonai browser-tool type "#search-input" "hello world"
186
+ praisonai browser-tool type "#search-input" "hello world" --submit
187
187
  """
188
188
  try:
189
189
  from praisonai_tools import BrowserBaseTool
@@ -209,7 +209,7 @@ def browser_navigate(
209
209
  """Navigate to a URL.
210
210
 
211
211
  Examples:
212
- praisonai browser navigate https://example.com
212
+ praisonai browser-tool navigate https://example.com
213
213
  """
214
214
  try:
215
215
  from praisonai_tools import BrowserBaseTool
@@ -234,8 +234,8 @@ def browser_profiles(
234
234
  """List available browser profiles.
235
235
 
236
236
  Examples:
237
- praisonai browser profiles
238
- praisonai browser profiles --json
237
+ praisonai browser-tool profiles
238
+ praisonai browser-tool profiles --json
239
239
  """
240
240
  profiles = [
241
241
  {"name": "default", "description": "Default browser profile"},
@@ -272,7 +272,7 @@ def browser_callback(ctx: typer.Context):
272
272
  help_text = """
273
273
  [bold cyan]PraisonAI Browser - Browser Control for Agent Automation[/bold cyan]
274
274
 
275
- Control browsers for agent automation with: praisonai browser <command>
275
+ Control browsers for agent automation with: praisonai browser-tool <command>
276
276
 
277
277
  [bold]Commands:[/bold]
278
278
  [green]status[/green] Check browser status
@@ -285,10 +285,10 @@ Control browsers for agent automation with: praisonai browser <command>
285
285
  [green]profiles[/green] List browser profiles
286
286
 
287
287
  [bold]Examples:[/bold]
288
- praisonai browser status
289
- praisonai browser open https://example.com
290
- praisonai browser snapshot --output page.txt
291
- praisonai browser click "#submit-button"
288
+ praisonai browser-tool status
289
+ praisonai browser-tool open https://example.com
290
+ praisonai browser-tool snapshot --output page.txt
291
+ praisonai browser-tool click "#submit-button"
292
292
  """
293
293
  try:
294
294
  from rich import print as rprint
@@ -96,6 +96,7 @@ COMMAND_CATEGORIES: dict[str, str] = {
96
96
  "workflow": CATEGORY_TOOLS,
97
97
  "mcp": CATEGORY_TOOLS,
98
98
  "browser": CATEGORY_TOOLS,
99
+ "browser-tool": CATEGORY_TOOLS,
99
100
  "commit": CATEGORY_TOOLS,
100
101
  "docs": CATEGORY_TOOLS,
101
102
 
@@ -1506,10 +1506,12 @@ class PraisonAI:
1506
1506
  sys.exit(exit_code)
1507
1507
 
1508
1508
  elif args.command == 'browser':
1509
- # Browser agent command - delegate to browser CLI Typer app
1510
- # Uses sys.argv replacement for proper arg passthrough (matches profile command pattern)
1511
- from praisonai_code._wrapper_bridge import import_wrapper_module
1512
- _mod = import_wrapper_module('praisonai.browser.cli')
1509
+ # C11: Browser automation delegate to praisonai-browser CLI
1510
+ from praisonai_code._browser_bridge import browser_package_available, import_browser_module
1511
+ if not browser_package_available():
1512
+ print("Browser package not installed. pip install praisonai-browser")
1513
+ sys.exit(1)
1514
+ _mod = import_browser_module('praisonai_browser.cli.app')
1513
1515
  browser_app = getattr(_mod, 'app')
1514
1516
  import sys as _sys
1515
1517
  _sys.argv = ['praisonai', 'browser'] + unknown_args
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praisonai-code
3
- Version: 0.0.46
3
+ Version: 0.0.48
4
4
  Summary: Agentic terminal CLI for PraisonAI — the terminal-native agent (run, chat, code, runtime, cli backends) extracted from the praisonai wrapper.
5
5
  Author: Mervin Praison
6
6
  License: MIT
@@ -3,6 +3,7 @@ pyproject.toml
3
3
  praisonai_code/__init__.py
4
4
  praisonai_code/__main__.py
5
5
  praisonai_code/_bot_bridge.py
6
+ praisonai_code/_browser_bridge.py
6
7
  praisonai_code/_framework_availability.py
7
8
  praisonai_code/_logging.py
8
9
  praisonai_code/_registry.py
@@ -40,7 +41,7 @@ praisonai_code/cli/commands/agents.py
40
41
  praisonai_code/cli/commands/attach.py
41
42
  praisonai_code/cli/commands/auth.py
42
43
  praisonai_code/cli/commands/benchmark.py
43
- praisonai_code/cli/commands/browser.py
44
+ praisonai_code/cli/commands/browser_tool.py
44
45
  praisonai_code/cli/commands/call.py
45
46
  praisonai_code/cli/commands/chat.py
46
47
  praisonai_code/cli/commands/checkpoint.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "praisonai-code"
3
- version = "0.0.46"
3
+ version = "0.0.48"
4
4
  description = "Agentic terminal CLI for PraisonAI — the terminal-native agent (run, chat, code, runtime, cli backends) extracted from the praisonai wrapper."
5
5
  readme = "README.md"
6
6
  license = {text = "MIT"}