praisonai-code 0.0.2__tar.gz → 0.0.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.
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/PKG-INFO +30 -23
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/README.md +30 -23
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/app.py +32 -3
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/PKG-INFO +30 -23
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/pyproject.toml +1 -1
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/_forward_shim.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/_paths.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/_warnings.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/approval_backend.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/branding.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/acp.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/agent.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/agents.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/app.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/attach.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/audit.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/auth.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/batch.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/benchmark.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/browser.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/call.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/chat.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/checkpoint.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/code.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/command.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/commit.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/completion.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/config.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/context.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/daemon.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/debug.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/deploy.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/diag.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/docs.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/doctor.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/endpoints.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/environment.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/eval.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/examples.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/flow.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/github.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/hooks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/init.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/knowledge.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/langextract.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/langfuse.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/loop.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/lsp.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/managed.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/mcp.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/memory.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/models.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/n8n.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/obs.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/package.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/paths.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/permissions.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/plugins.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/port.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/profile.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/publish.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/rag.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/realtime.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/recipe.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/registry.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/replay.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/research.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/retrieval.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/rules.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/run.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/sandbox.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/schedule.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/serve.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/session.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/setup.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/skills.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/standardise.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/templates.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/test.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/todo.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/tools.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/traces.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/tracker.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/train.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/ui.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/up.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/validate.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/version.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/workflow.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/config_loader.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/config.schema.json +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/credentials.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/loader.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/model_resolver.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/oauth.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/paths.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/resolver.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/schema.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/core.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/profiler.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/request.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/result.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/fallback_schema.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/_endpoint_registry.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/_search_registry.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/acp.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/action_orchestrator.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/agent_scheduler.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/agent_tools.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/agents.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/at_mentions.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/audit_cli.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/auto_memory.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/auto_mode.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/autonomy_mode.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/background.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/base.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/benchmark.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/capabilities.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/checkpoints.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/cli_profiler.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/code_intelligence.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/compaction.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/compare.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/config_hierarchy.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/context_manager.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/cost_tracker.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/csv_test_runner.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/custom_definitions.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/debug.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/deploy.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/diag.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/display_jsonl.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/acp_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/bot_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/config_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/db_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/env_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/gateway_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/lsp_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/mcp_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/memory_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/network_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/obs_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/packaging_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/performance_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/permissions_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/runtime_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/runtime_migration_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/selftest_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/serve_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/skills_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/tools_checks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/engine.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/formatters.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/handler.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/models.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/registry.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/endpoints.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/eval.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/examples.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/external_agents.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/fast_context.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/file_history.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/flow_display.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/git_attribution.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/git_integration.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/guardrail.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/handoff.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/hooks.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/hybrid_workflow.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/image.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_core_headless.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_runtime.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_test_harness.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_tools.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_tui.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/job_workflow.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/jobs.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/knowledge.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/knowledge_cli.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/lite.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/logs.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/lsp_cli.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/lsp_diagnostics.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/mcp.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/message_queue.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/metrics.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/migrate.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/migration_flow.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/migration_spec.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/n8n.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/observability.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/ollama.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/output_modes.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/output_style.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/package.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/performance.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/persistence.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/core.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/optimizations.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/suite.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/manager.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/models.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/persistence.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/scheduler.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/worker.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe_creator.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe_optimizer.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe_prompts.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/registry.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/repo_map.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/router.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/safe_shell.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/sandbox_cli.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/sandbox_executor.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/sdk_knowledge.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/session.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/session_checkpoints.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/setup/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/setup/handler.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/setup/templates.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/skills.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/slash_commands.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/telemetry.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/templates.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/thinking.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/todo.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tools.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/app.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/cli.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/config.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/debug.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/events.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/mock_provider.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/orchestrator.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/help.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/main.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/queue.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/session.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/settings.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/session_store.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/chat.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/command_popup.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/composer.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/file_popup.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/queue_panel.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/status.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/tool_panel.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/wizard.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/workflow.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/yaml_utils.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/async_tui.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/config.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/core.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/events.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/frontends/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/frontends/rich_frontend.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/frontends/textual_frontend.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/praison_io.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/repl.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/split_tui.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/tui_app.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/langfuse_client.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/main.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/output/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/output/console.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/output/event_bridge.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/schedule_cli.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/schema_provider.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/session/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/session/resume.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/session/unified.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/identifiers.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/project_sessions.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/sessions.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/config.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/events.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/mg_backend.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/plain.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/rich_backend.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/unified_schema.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/utils/env_utils.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/utils/project.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli_backends/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli_backends/claude.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli_backends/registry.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/__init__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/__main__.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/client.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/descriptor.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/server.py +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/SOURCES.txt +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/dependency_links.txt +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/requires.txt +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/top_level.txt +0 -0
- {praisonai_code-0.0.2 → praisonai_code-0.0.3}/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.3
|
|
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
|
|
@@ -30,19 +30,18 @@ Agentic terminal CLI for PraisonAI — the terminal-native agent product
|
|
|
30
30
|
|
|
31
31
|
## Status
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
`
|
|
35
|
-
incrementally in steps C2–C6 (see issue #2512):
|
|
33
|
+
**C0–C5 complete.** C6 integration gate verified — see
|
|
34
|
+
`src/praisonai/tests/C6_VERIFICATION.md`.
|
|
36
35
|
|
|
37
|
-
| Step | Scope |
|
|
38
|
-
|
|
39
|
-
| C0 | Scaffold |
|
|
40
|
-
| C1 | `runtime/` + `cli_backends/` |
|
|
41
|
-
| C2 | `interactive/`, `execution/`, `ui/`, `output/`, `state/` |
|
|
42
|
-
| C3 | Agentic commands |
|
|
43
|
-
| C4 | Agentic features |
|
|
44
|
-
| C5 | `main.py`, `app.py`, config/session/utils + shims |
|
|
45
|
-
| C6 | Integration gate |
|
|
36
|
+
| Step | Scope | Status |
|
|
37
|
+
|------|-------|--------|
|
|
38
|
+
| C0 | Scaffold | Done |
|
|
39
|
+
| C1 | `runtime/` + `cli_backends/` | Done |
|
|
40
|
+
| C2 | `interactive/`, `execution/`, `ui/`, `output/`, `state/` | Done |
|
|
41
|
+
| C3 | Agentic commands | Done |
|
|
42
|
+
| C4 | Agentic features | Done |
|
|
43
|
+
| C5 | `main.py`, `app.py`, config/session/utils + shims | Done |
|
|
44
|
+
| C6 | Integration gate + sign-off | Done |
|
|
46
45
|
|
|
47
46
|
- `praisonai_code.runtime` — warm local runtime (daemon + thin client).
|
|
48
47
|
- `praisonai_code.cli_backends` — CLI backend implementations (e.g. Claude Code).
|
|
@@ -58,24 +57,32 @@ praisonai-code → depends on praisonaiagents (core SDK)
|
|
|
58
57
|
click, textual, PyYAML, python-dotenv, litellm, mcp, pydantic — see
|
|
59
58
|
`pyproject.toml`). The rules above govern the **inter-package** direction.
|
|
60
59
|
|
|
61
|
-
> **
|
|
62
|
-
>
|
|
63
|
-
>
|
|
64
|
-
>
|
|
65
|
-
>
|
|
66
|
-
> deliberate C1 tradeoff to be removed in a later step — not a standalone-publish
|
|
67
|
-
> guarantee yet.
|
|
60
|
+
> **C7 note:** Some modules still import the `praisonai` wrapper at runtime
|
|
61
|
+
> (~170 files). **Standalone `pip install praisonai-code` without `praisonai`
|
|
62
|
+
> is not fully supported yet.** Use `pip install praisonai` for production.
|
|
63
|
+
> Residual C1 back-imports: `runtime/descriptor.py` → `praisonai.version`;
|
|
64
|
+
> `cli_backends/registry.py` → `praisonai._registry`.
|
|
68
65
|
|
|
69
66
|
Backward compatibility is preserved via PEP 562 shims at the old
|
|
70
67
|
`praisonai.*` import paths, so `pip install praisonai` and
|
|
71
68
|
`from praisonai.cli.main import PraisonAI` keep working unchanged.
|
|
72
69
|
|
|
73
|
-
## Install
|
|
70
|
+
## Install
|
|
71
|
+
|
|
72
|
+
**Recommended (includes wrapper + bots/gateway):**
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install praisonai
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Development / monorepo:**
|
|
74
79
|
|
|
75
80
|
```bash
|
|
81
|
+
pip install -e src/praisonai-agents
|
|
76
82
|
pip install -e src/praisonai-code
|
|
83
|
+
pip install -e src/praisonai
|
|
77
84
|
python -c "import praisonai_code; print(praisonai_code.__version__)"
|
|
78
85
|
```
|
|
79
86
|
|
|
80
|
-
`praisonai-code`
|
|
81
|
-
|
|
87
|
+
**PyPI:** Published as `praisonai-code` after `praisonaiagents` in the
|
|
88
|
+
three-package release order (see `pypi-release.yml`).
|
|
@@ -8,19 +8,18 @@ Agentic terminal CLI for PraisonAI — the terminal-native agent product
|
|
|
8
8
|
|
|
9
9
|
## Status
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
`
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
|
|
|
22
|
-
|
|
|
23
|
-
| C6 | Integration gate |
|
|
11
|
+
**C0–C5 complete.** C6 integration gate verified — see
|
|
12
|
+
`src/praisonai/tests/C6_VERIFICATION.md`.
|
|
13
|
+
|
|
14
|
+
| Step | Scope | Status |
|
|
15
|
+
|------|-------|--------|
|
|
16
|
+
| C0 | Scaffold | Done |
|
|
17
|
+
| C1 | `runtime/` + `cli_backends/` | Done |
|
|
18
|
+
| C2 | `interactive/`, `execution/`, `ui/`, `output/`, `state/` | Done |
|
|
19
|
+
| C3 | Agentic commands | Done |
|
|
20
|
+
| C4 | Agentic features | Done |
|
|
21
|
+
| C5 | `main.py`, `app.py`, config/session/utils + shims | Done |
|
|
22
|
+
| C6 | Integration gate + sign-off | Done |
|
|
24
23
|
|
|
25
24
|
- `praisonai_code.runtime` — warm local runtime (daemon + thin client).
|
|
26
25
|
- `praisonai_code.cli_backends` — CLI backend implementations (e.g. Claude Code).
|
|
@@ -36,24 +35,32 @@ praisonai-code → depends on praisonaiagents (core SDK)
|
|
|
36
35
|
click, textual, PyYAML, python-dotenv, litellm, mcp, pydantic — see
|
|
37
36
|
`pyproject.toml`). The rules above govern the **inter-package** direction.
|
|
38
37
|
|
|
39
|
-
> **
|
|
40
|
-
>
|
|
41
|
-
>
|
|
42
|
-
>
|
|
43
|
-
>
|
|
44
|
-
> deliberate C1 tradeoff to be removed in a later step — not a standalone-publish
|
|
45
|
-
> guarantee yet.
|
|
38
|
+
> **C7 note:** Some modules still import the `praisonai` wrapper at runtime
|
|
39
|
+
> (~170 files). **Standalone `pip install praisonai-code` without `praisonai`
|
|
40
|
+
> is not fully supported yet.** Use `pip install praisonai` for production.
|
|
41
|
+
> Residual C1 back-imports: `runtime/descriptor.py` → `praisonai.version`;
|
|
42
|
+
> `cli_backends/registry.py` → `praisonai._registry`.
|
|
46
43
|
|
|
47
44
|
Backward compatibility is preserved via PEP 562 shims at the old
|
|
48
45
|
`praisonai.*` import paths, so `pip install praisonai` and
|
|
49
46
|
`from praisonai.cli.main import PraisonAI` keep working unchanged.
|
|
50
47
|
|
|
51
|
-
## Install
|
|
48
|
+
## Install
|
|
49
|
+
|
|
50
|
+
**Recommended (includes wrapper + bots/gateway):**
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install praisonai
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Development / monorepo:**
|
|
52
57
|
|
|
53
58
|
```bash
|
|
59
|
+
pip install -e src/praisonai-agents
|
|
54
60
|
pip install -e src/praisonai-code
|
|
61
|
+
pip install -e src/praisonai
|
|
55
62
|
python -c "import praisonai_code; print(praisonai_code.__version__)"
|
|
56
63
|
```
|
|
57
64
|
|
|
58
|
-
`praisonai-code`
|
|
59
|
-
|
|
65
|
+
**PyPI:** Published as `praisonai-code` after `praisonaiagents` in the
|
|
66
|
+
three-package release order (see `pypi-release.yml`).
|
|
@@ -202,6 +202,18 @@ _LAZY_COMMANDS: Dict[str, Tuple[str, str, str]] = {
|
|
|
202
202
|
"up": (".commands.up", "app", "🚀 Start unified PraisonAI stack (Langfuse + Langflow)"),
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
+
# Bot/channel commands that remain in the ``praisonai`` wrapper (not ``praisonai_code``).
|
|
206
|
+
_WRAPPER_COMMANDS = frozenset({
|
|
207
|
+
"bot",
|
|
208
|
+
"gateway",
|
|
209
|
+
"pairing",
|
|
210
|
+
"identity",
|
|
211
|
+
"onboard",
|
|
212
|
+
"kanban",
|
|
213
|
+
"dashboard",
|
|
214
|
+
"claw",
|
|
215
|
+
})
|
|
216
|
+
|
|
205
217
|
# Special commands that need custom handling
|
|
206
218
|
_SPECIAL_COMMANDS = {
|
|
207
219
|
"tui": (".features.tui.debug", "create_debug_app", "Interactive TUI and simulation"),
|
|
@@ -209,6 +221,12 @@ _SPECIAL_COMMANDS = {
|
|
|
209
221
|
}
|
|
210
222
|
|
|
211
223
|
|
|
224
|
+
def _wrapper_available() -> bool:
|
|
225
|
+
"""Return True when the ``praisonai`` wrapper package is importable."""
|
|
226
|
+
import importlib.util as _importlib_util
|
|
227
|
+
return _importlib_util.find_spec("praisonai") is not None
|
|
228
|
+
|
|
229
|
+
|
|
212
230
|
class LazyCommandGroup(TyperGroup):
|
|
213
231
|
"""Click Group that lazily loads subcommands from registry."""
|
|
214
232
|
|
|
@@ -217,8 +235,14 @@ class LazyCommandGroup(TyperGroup):
|
|
|
217
235
|
# Start with commands from parent (already registered commands)
|
|
218
236
|
commands = set(super().list_commands(ctx))
|
|
219
237
|
|
|
220
|
-
# Add lazy-loaded commands
|
|
221
|
-
|
|
238
|
+
# Add lazy-loaded commands. Wrapper-only commands are advertised only when
|
|
239
|
+
# the ``praisonai`` wrapper is installed, so a standalone ``praisonai-code``
|
|
240
|
+
# install does not surface commands it cannot resolve.
|
|
241
|
+
wrapper_ok = _wrapper_available()
|
|
242
|
+
commands.update(
|
|
243
|
+
name for name in _LAZY_COMMANDS
|
|
244
|
+
if wrapper_ok or name not in _WRAPPER_COMMANDS
|
|
245
|
+
)
|
|
222
246
|
commands.update(_SPECIAL_COMMANDS.keys())
|
|
223
247
|
|
|
224
248
|
# Add special inline commands
|
|
@@ -243,7 +267,12 @@ class LazyCommandGroup(TyperGroup):
|
|
|
243
267
|
if name in _LAZY_COMMANDS:
|
|
244
268
|
module_path, attr_name, _ = _LAZY_COMMANDS[name]
|
|
245
269
|
try:
|
|
246
|
-
|
|
270
|
+
if name in _WRAPPER_COMMANDS:
|
|
271
|
+
if not _wrapper_available():
|
|
272
|
+
return None
|
|
273
|
+
module = importlib.import_module(f"praisonai.cli.commands.{name}")
|
|
274
|
+
else:
|
|
275
|
+
module = importlib.import_module(module_path, __package__)
|
|
247
276
|
sub_app = getattr(module, attr_name)
|
|
248
277
|
if isinstance(sub_app, click.Command):
|
|
249
278
|
return sub_app
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: praisonai-code
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.3
|
|
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
|
|
@@ -30,19 +30,18 @@ Agentic terminal CLI for PraisonAI — the terminal-native agent product
|
|
|
30
30
|
|
|
31
31
|
## Status
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
`
|
|
35
|
-
incrementally in steps C2–C6 (see issue #2512):
|
|
33
|
+
**C0–C5 complete.** C6 integration gate verified — see
|
|
34
|
+
`src/praisonai/tests/C6_VERIFICATION.md`.
|
|
36
35
|
|
|
37
|
-
| Step | Scope |
|
|
38
|
-
|
|
39
|
-
| C0 | Scaffold |
|
|
40
|
-
| C1 | `runtime/` + `cli_backends/` |
|
|
41
|
-
| C2 | `interactive/`, `execution/`, `ui/`, `output/`, `state/` |
|
|
42
|
-
| C3 | Agentic commands |
|
|
43
|
-
| C4 | Agentic features |
|
|
44
|
-
| C5 | `main.py`, `app.py`, config/session/utils + shims |
|
|
45
|
-
| C6 | Integration gate |
|
|
36
|
+
| Step | Scope | Status |
|
|
37
|
+
|------|-------|--------|
|
|
38
|
+
| C0 | Scaffold | Done |
|
|
39
|
+
| C1 | `runtime/` + `cli_backends/` | Done |
|
|
40
|
+
| C2 | `interactive/`, `execution/`, `ui/`, `output/`, `state/` | Done |
|
|
41
|
+
| C3 | Agentic commands | Done |
|
|
42
|
+
| C4 | Agentic features | Done |
|
|
43
|
+
| C5 | `main.py`, `app.py`, config/session/utils + shims | Done |
|
|
44
|
+
| C6 | Integration gate + sign-off | Done |
|
|
46
45
|
|
|
47
46
|
- `praisonai_code.runtime` — warm local runtime (daemon + thin client).
|
|
48
47
|
- `praisonai_code.cli_backends` — CLI backend implementations (e.g. Claude Code).
|
|
@@ -58,24 +57,32 @@ praisonai-code → depends on praisonaiagents (core SDK)
|
|
|
58
57
|
click, textual, PyYAML, python-dotenv, litellm, mcp, pydantic — see
|
|
59
58
|
`pyproject.toml`). The rules above govern the **inter-package** direction.
|
|
60
59
|
|
|
61
|
-
> **
|
|
62
|
-
>
|
|
63
|
-
>
|
|
64
|
-
>
|
|
65
|
-
>
|
|
66
|
-
> deliberate C1 tradeoff to be removed in a later step — not a standalone-publish
|
|
67
|
-
> guarantee yet.
|
|
60
|
+
> **C7 note:** Some modules still import the `praisonai` wrapper at runtime
|
|
61
|
+
> (~170 files). **Standalone `pip install praisonai-code` without `praisonai`
|
|
62
|
+
> is not fully supported yet.** Use `pip install praisonai` for production.
|
|
63
|
+
> Residual C1 back-imports: `runtime/descriptor.py` → `praisonai.version`;
|
|
64
|
+
> `cli_backends/registry.py` → `praisonai._registry`.
|
|
68
65
|
|
|
69
66
|
Backward compatibility is preserved via PEP 562 shims at the old
|
|
70
67
|
`praisonai.*` import paths, so `pip install praisonai` and
|
|
71
68
|
`from praisonai.cli.main import PraisonAI` keep working unchanged.
|
|
72
69
|
|
|
73
|
-
## Install
|
|
70
|
+
## Install
|
|
71
|
+
|
|
72
|
+
**Recommended (includes wrapper + bots/gateway):**
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install praisonai
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Development / monorepo:**
|
|
74
79
|
|
|
75
80
|
```bash
|
|
81
|
+
pip install -e src/praisonai-agents
|
|
76
82
|
pip install -e src/praisonai-code
|
|
83
|
+
pip install -e src/praisonai
|
|
77
84
|
python -c "import praisonai_code; print(praisonai_code.__version__)"
|
|
78
85
|
```
|
|
79
86
|
|
|
80
|
-
`praisonai-code`
|
|
81
|
-
|
|
87
|
+
**PyPI:** Published as `praisonai-code` after `praisonaiagents` in the
|
|
88
|
+
three-package release order (see `pypi-release.yml`).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "praisonai-code"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.3"
|
|
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
|
|
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.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/config.schema.json
RENAMED
|
File without changes
|
{praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/model_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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/_endpoint_registry.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/_search_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
{praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/action_orchestrator.py
RENAMED
|
File without changes
|
{praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/agent_scheduler.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
|