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.
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/PKG-INFO +1 -1
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/__init__.py +1 -1
- praisonai_code-0.0.48/praisonai_code/_browser_bridge.py +35 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/app.py +16 -1
- 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
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/help_categories.py +1 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/praison_ai.py +6 -4
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/PKG-INFO +1 -1
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/SOURCES.txt +2 -1
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/pyproject.toml +1 -1
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/README.md +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/__main__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_bot_bridge.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_framework_availability.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_logging.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_safe_loader.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_train_bridge.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_version.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/_wrapper_bridge.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_forward_shim.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_paths.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_warnings.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/_wrapper_reexport.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/approval_backend.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/branding.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/acp.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/agent.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/agents.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/attach.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/auth.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/benchmark.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/call.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/chat.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/checkpoint.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/code.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/command.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/commit.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/completion.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/config.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/daemon.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/debug.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/deploy.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/diag.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/doctor.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/endpoints.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/environment.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/eval.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/github.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/hooks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/init.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/loop.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/lsp.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/memory.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/models.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/obs.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/package.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/paths.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/permissions.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/plugins.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/port.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/publish.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/research.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/retrieval.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/rules.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/run.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/sandbox.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/serve.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/session.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/setup.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/skills.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/templates.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/test.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/todo.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/tools.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/traces.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/tracker.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/ui.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/uninstall.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/up.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/upgrade.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/version.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/commands/workflow.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/config_loader.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/config.schema.json +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/credentials.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/loader.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/model_resolver.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/oauth.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/paths.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/resolver.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/schema.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/core.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/profiler.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/request.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/execution/result.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/fallback_schema.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_approval_bridge.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_endpoint_registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_search_registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/action_orchestrator.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/agents.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/at_mentions.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/audit_cli.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/auto_memory.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/auto_mode.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/autonomy_mode.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/base.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/benchmark.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/capabilities.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/checkpoints.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/cli_profiler.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/code_intelligence.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/compaction.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/compare.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/config_hierarchy.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/context_manager.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/cost_tracker.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/csv_test_runner.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/custom_definitions.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/debug.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/diag.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/display_jsonl.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/_wrapper_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/acp_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/bot_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/config_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/db_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/env_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/gateway_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/lsp_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/mcp_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/memory_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/network_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/obs_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/packaging_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/performance_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/permissions_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/runtime_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/runtime_migration_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/selftest_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/serve_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/skills_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/checks/tools_checks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/engine.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/formatters.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/handler.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/models.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/endpoints.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/examples.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/external_agents.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/fast_context.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/file_history.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/flow_display.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/git_attribution.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/git_integration.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/guardrail.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/handoff.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/hooks.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/hybrid_workflow.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/image.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_core_headless.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_runtime.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_test_harness.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_tools.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/interactive_tui.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/job_workflow.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/jobs.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/knowledge.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/knowledge_cli.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/lite.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/logs.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/lsp_cli.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/lsp_diagnostics.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/mcp.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/message_queue.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/metrics.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/migrate.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/migration_flow.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/migration_spec.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/n8n.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/observability.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/output_modes.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/output_style.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/package.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/performance.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/core.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/optimizations.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/profiler/suite.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/manager.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/models.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/persistence.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/scheduler.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/queue/worker.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/recipe_creator.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/recipe_prompts.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/repo_map.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/router.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/safe_shell.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/sandbox_executor.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/sdk_knowledge.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/self_manage.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/session.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/session_checkpoints.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/setup/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/setup/handler.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/setup/templates.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/skills.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/slash_commands.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/telemetry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/thinking.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/todo.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tools.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/cli.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/config.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/debug.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/events.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/mock_provider.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/orchestrator.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/help.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/main.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/queue.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/session.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/screens/settings.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/session_store.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/chat.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/command_popup.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/composer.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/file_popup.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/queue_panel.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/status.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/tui/widgets/tool_panel.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/wizard.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/workflow.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/yaml_utils.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/async_tui.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/command_registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/config.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/core.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/events.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/frontends/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/frontends/rich_frontend.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/frontends/textual_frontend.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/praison_io.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/repl.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/split_tui.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/interactive/tui_app.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/env_security.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/legacy/prompt_dispatch.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/main.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/output/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/output/console.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/output/event_bridge.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/schedule_cli.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/schema_provider.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/session/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/session/resume.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/session/unified.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/identifiers.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/project_sessions.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/state/sessions.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/config.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/events.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/mg_backend.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/plain.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/ui/rich_backend.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/unified_schema.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/utils/env_utils.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/utils/project.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/utils/stdin.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli_backends/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli_backends/claude.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli_backends/registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/multi_agent.csv +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/refactor.csv +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/smoke.csv +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/data/fixtures/interactive/tools.csv +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/catalogue.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/config.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/credentials.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/llm/env.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/__init__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/__main__.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/client.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/descriptor.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/runtime/server.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/tool_registry.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/tool_resolver.py +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/dependency_links.txt +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/entry_points.txt +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/requires.txt +0 -0
- {praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code.egg-info/top_level.txt +0 -0
- {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.
|
|
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
|
|
@@ -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
|
|
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
|
|
@@ -1506,10 +1506,12 @@ class PraisonAI:
|
|
|
1506
1506
|
sys.exit(exit_code)
|
|
1507
1507
|
|
|
1508
1508
|
elif args.command == 'browser':
|
|
1509
|
-
# Browser
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
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.
|
|
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/
|
|
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.
|
|
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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/__init__.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/config.schema.json
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/model_resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/configuration/resolver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_approval_bridge.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_endpoint_registry.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/_search_registry.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/action_orchestrator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/autonomy_mode.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/code_intelligence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/config_hierarchy.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/context_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/csv_test_runner.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/custom_definitions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/display_jsonl.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.46 → praisonai_code-0.0.48}/praisonai_code/cli/features/doctor/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|