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.
Files changed (314) hide show
  1. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/PKG-INFO +30 -23
  2. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/README.md +30 -23
  3. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/app.py +32 -3
  4. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/PKG-INFO +30 -23
  5. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/pyproject.toml +1 -1
  6. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/__init__.py +0 -0
  7. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/__init__.py +0 -0
  8. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/_forward_shim.py +0 -0
  9. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/_paths.py +0 -0
  10. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/_warnings.py +0 -0
  11. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/approval_backend.py +0 -0
  12. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/branding.py +0 -0
  13. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/__init__.py +0 -0
  14. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/acp.py +0 -0
  15. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/agent.py +0 -0
  16. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/agents.py +0 -0
  17. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/app.py +0 -0
  18. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/attach.py +0 -0
  19. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/audit.py +0 -0
  20. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/auth.py +0 -0
  21. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/batch.py +0 -0
  22. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/benchmark.py +0 -0
  23. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/browser.py +0 -0
  24. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/call.py +0 -0
  25. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/chat.py +0 -0
  26. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/checkpoint.py +0 -0
  27. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/code.py +0 -0
  28. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/command.py +0 -0
  29. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/commit.py +0 -0
  30. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/completion.py +0 -0
  31. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/config.py +0 -0
  32. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/context.py +0 -0
  33. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/daemon.py +0 -0
  34. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/debug.py +0 -0
  35. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/deploy.py +0 -0
  36. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/diag.py +0 -0
  37. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/docs.py +0 -0
  38. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/doctor.py +0 -0
  39. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/endpoints.py +0 -0
  40. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/environment.py +0 -0
  41. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/eval.py +0 -0
  42. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/examples.py +0 -0
  43. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/flow.py +0 -0
  44. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/github.py +0 -0
  45. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/hooks.py +0 -0
  46. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/init.py +0 -0
  47. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/knowledge.py +0 -0
  48. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/langextract.py +0 -0
  49. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/langfuse.py +0 -0
  50. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/loop.py +0 -0
  51. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/lsp.py +0 -0
  52. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/managed.py +0 -0
  53. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/mcp.py +0 -0
  54. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/memory.py +0 -0
  55. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/models.py +0 -0
  56. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/n8n.py +0 -0
  57. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/obs.py +0 -0
  58. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/package.py +0 -0
  59. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/paths.py +0 -0
  60. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/permissions.py +0 -0
  61. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/plugins.py +0 -0
  62. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/port.py +0 -0
  63. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/profile.py +0 -0
  64. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/publish.py +0 -0
  65. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/rag.py +0 -0
  66. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/realtime.py +0 -0
  67. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/recipe.py +0 -0
  68. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/registry.py +0 -0
  69. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/replay.py +0 -0
  70. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/research.py +0 -0
  71. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/retrieval.py +0 -0
  72. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/rules.py +0 -0
  73. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/run.py +0 -0
  74. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/sandbox.py +0 -0
  75. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/schedule.py +0 -0
  76. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/serve.py +0 -0
  77. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/session.py +0 -0
  78. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/setup.py +0 -0
  79. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/skills.py +0 -0
  80. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/standardise.py +0 -0
  81. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/templates.py +0 -0
  82. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/test.py +0 -0
  83. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/todo.py +0 -0
  84. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/tools.py +0 -0
  85. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/traces.py +0 -0
  86. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/tracker.py +0 -0
  87. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/train.py +0 -0
  88. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/ui.py +0 -0
  89. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/up.py +0 -0
  90. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/validate.py +0 -0
  91. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/version.py +0 -0
  92. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/commands/workflow.py +0 -0
  93. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/config_loader.py +0 -0
  94. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/__init__.py +0 -0
  95. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/config.schema.json +0 -0
  96. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/credentials.py +0 -0
  97. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/loader.py +0 -0
  98. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/model_resolver.py +0 -0
  99. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/oauth.py +0 -0
  100. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/paths.py +0 -0
  101. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/resolver.py +0 -0
  102. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/configuration/schema.py +0 -0
  103. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/__init__.py +0 -0
  104. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/core.py +0 -0
  105. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/profiler.py +0 -0
  106. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/request.py +0 -0
  107. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/execution/result.py +0 -0
  108. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/fallback_schema.py +0 -0
  109. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/__init__.py +0 -0
  110. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/_endpoint_registry.py +0 -0
  111. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/_search_registry.py +0 -0
  112. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/acp.py +0 -0
  113. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/action_orchestrator.py +0 -0
  114. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/agent_scheduler.py +0 -0
  115. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/agent_tools.py +0 -0
  116. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/agents.py +0 -0
  117. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/at_mentions.py +0 -0
  118. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/audit_cli.py +0 -0
  119. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/auto_memory.py +0 -0
  120. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/auto_mode.py +0 -0
  121. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/autonomy_mode.py +0 -0
  122. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/background.py +0 -0
  123. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/base.py +0 -0
  124. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/benchmark.py +0 -0
  125. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/capabilities.py +0 -0
  126. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/checkpoints.py +0 -0
  127. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/cli_profiler.py +0 -0
  128. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/code_intelligence.py +0 -0
  129. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/compaction.py +0 -0
  130. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/compare.py +0 -0
  131. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/config_hierarchy.py +0 -0
  132. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/context_manager.py +0 -0
  133. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/cost_tracker.py +0 -0
  134. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/csv_test_runner.py +0 -0
  135. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/custom_definitions.py +0 -0
  136. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/debug.py +0 -0
  137. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/deploy.py +0 -0
  138. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/diag.py +0 -0
  139. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/display_jsonl.py +0 -0
  140. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/__init__.py +0 -0
  141. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/__init__.py +0 -0
  142. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/acp_checks.py +0 -0
  143. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/bot_checks.py +0 -0
  144. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/config_checks.py +0 -0
  145. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/db_checks.py +0 -0
  146. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/env_checks.py +0 -0
  147. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/gateway_checks.py +0 -0
  148. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/lsp_checks.py +0 -0
  149. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/mcp_checks.py +0 -0
  150. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/memory_checks.py +0 -0
  151. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/network_checks.py +0 -0
  152. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/obs_checks.py +0 -0
  153. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/packaging_checks.py +0 -0
  154. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/performance_checks.py +0 -0
  155. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/permissions_checks.py +0 -0
  156. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/runtime_checks.py +0 -0
  157. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/runtime_migration_checks.py +0 -0
  158. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/selftest_checks.py +0 -0
  159. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/serve_checks.py +0 -0
  160. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/skills_checks.py +0 -0
  161. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/checks/tools_checks.py +0 -0
  162. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/engine.py +0 -0
  163. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/formatters.py +0 -0
  164. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/handler.py +0 -0
  165. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/models.py +0 -0
  166. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/doctor/registry.py +0 -0
  167. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/endpoints.py +0 -0
  168. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/eval.py +0 -0
  169. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/examples.py +0 -0
  170. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/external_agents.py +0 -0
  171. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/fast_context.py +0 -0
  172. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/file_history.py +0 -0
  173. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/flow_display.py +0 -0
  174. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/git_attribution.py +0 -0
  175. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/git_integration.py +0 -0
  176. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/guardrail.py +0 -0
  177. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/handoff.py +0 -0
  178. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/hooks.py +0 -0
  179. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/hybrid_workflow.py +0 -0
  180. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/image.py +0 -0
  181. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_core_headless.py +0 -0
  182. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_runtime.py +0 -0
  183. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_test_harness.py +0 -0
  184. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_tools.py +0 -0
  185. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/interactive_tui.py +0 -0
  186. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/job_workflow.py +0 -0
  187. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/jobs.py +0 -0
  188. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/knowledge.py +0 -0
  189. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/knowledge_cli.py +0 -0
  190. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/lite.py +0 -0
  191. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/logs.py +0 -0
  192. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/lsp_cli.py +0 -0
  193. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/lsp_diagnostics.py +0 -0
  194. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/mcp.py +0 -0
  195. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/message_queue.py +0 -0
  196. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/metrics.py +0 -0
  197. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/migrate.py +0 -0
  198. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/migration_flow.py +0 -0
  199. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/migration_spec.py +0 -0
  200. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/n8n.py +0 -0
  201. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/observability.py +0 -0
  202. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/ollama.py +0 -0
  203. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/output_modes.py +0 -0
  204. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/output_style.py +0 -0
  205. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/package.py +0 -0
  206. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/performance.py +0 -0
  207. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/persistence.py +0 -0
  208. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/__init__.py +0 -0
  209. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/core.py +0 -0
  210. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/optimizations.py +0 -0
  211. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/profiler/suite.py +0 -0
  212. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/__init__.py +0 -0
  213. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/manager.py +0 -0
  214. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/models.py +0 -0
  215. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/persistence.py +0 -0
  216. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/scheduler.py +0 -0
  217. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/queue/worker.py +0 -0
  218. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe.py +0 -0
  219. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe_creator.py +0 -0
  220. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe_optimizer.py +0 -0
  221. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/recipe_prompts.py +0 -0
  222. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/registry.py +0 -0
  223. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/repo_map.py +0 -0
  224. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/router.py +0 -0
  225. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/safe_shell.py +0 -0
  226. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/sandbox_cli.py +0 -0
  227. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/sandbox_executor.py +0 -0
  228. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/sdk_knowledge.py +0 -0
  229. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/session.py +0 -0
  230. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/session_checkpoints.py +0 -0
  231. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/setup/__init__.py +0 -0
  232. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/setup/handler.py +0 -0
  233. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/setup/templates.py +0 -0
  234. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/skills.py +0 -0
  235. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/slash_commands.py +0 -0
  236. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/telemetry.py +0 -0
  237. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/templates.py +0 -0
  238. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/thinking.py +0 -0
  239. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/todo.py +0 -0
  240. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tools.py +0 -0
  241. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/__init__.py +0 -0
  242. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/app.py +0 -0
  243. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/cli.py +0 -0
  244. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/config.py +0 -0
  245. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/debug.py +0 -0
  246. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/events.py +0 -0
  247. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/mock_provider.py +0 -0
  248. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/orchestrator.py +0 -0
  249. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/__init__.py +0 -0
  250. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/help.py +0 -0
  251. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/main.py +0 -0
  252. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/queue.py +0 -0
  253. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/session.py +0 -0
  254. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/screens/settings.py +0 -0
  255. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/session_store.py +0 -0
  256. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/__init__.py +0 -0
  257. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/chat.py +0 -0
  258. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/command_popup.py +0 -0
  259. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/composer.py +0 -0
  260. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/file_popup.py +0 -0
  261. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/queue_panel.py +0 -0
  262. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/status.py +0 -0
  263. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/tui/widgets/tool_panel.py +0 -0
  264. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/wizard.py +0 -0
  265. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/workflow.py +0 -0
  266. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/features/yaml_utils.py +0 -0
  267. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/__init__.py +0 -0
  268. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/async_tui.py +0 -0
  269. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/config.py +0 -0
  270. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/core.py +0 -0
  271. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/events.py +0 -0
  272. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/frontends/__init__.py +0 -0
  273. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/frontends/rich_frontend.py +0 -0
  274. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/frontends/textual_frontend.py +0 -0
  275. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/praison_io.py +0 -0
  276. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/repl.py +0 -0
  277. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/split_tui.py +0 -0
  278. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/interactive/tui_app.py +0 -0
  279. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/langfuse_client.py +0 -0
  280. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/main.py +0 -0
  281. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/output/__init__.py +0 -0
  282. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/output/console.py +0 -0
  283. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/output/event_bridge.py +0 -0
  284. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/schedule_cli.py +0 -0
  285. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/schema_provider.py +0 -0
  286. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/session/__init__.py +0 -0
  287. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/session/resume.py +0 -0
  288. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/session/unified.py +0 -0
  289. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/__init__.py +0 -0
  290. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/identifiers.py +0 -0
  291. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/project_sessions.py +0 -0
  292. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/state/sessions.py +0 -0
  293. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/__init__.py +0 -0
  294. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/config.py +0 -0
  295. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/events.py +0 -0
  296. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/mg_backend.py +0 -0
  297. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/plain.py +0 -0
  298. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/ui/rich_backend.py +0 -0
  299. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/unified_schema.py +0 -0
  300. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/utils/env_utils.py +0 -0
  301. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli/utils/project.py +0 -0
  302. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli_backends/__init__.py +0 -0
  303. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli_backends/claude.py +0 -0
  304. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/cli_backends/registry.py +0 -0
  305. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/__init__.py +0 -0
  306. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/__main__.py +0 -0
  307. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/client.py +0 -0
  308. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/descriptor.py +0 -0
  309. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code/runtime/server.py +0 -0
  310. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/SOURCES.txt +0 -0
  311. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/dependency_links.txt +0 -0
  312. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/requires.txt +0 -0
  313. {praisonai_code-0.0.2 → praisonai_code-0.0.3}/praisonai_code.egg-info/top_level.txt +0 -0
  314. {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.2
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
- Migration in progress. `runtime/` and `cli_backends/` have moved into
34
- `praisonai_code` (step C1); the remaining terminal-agent modules follow
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
- > **Migration note (C1):** `cli_backends/registry.py` still imports
62
- > `PluginRegistry` from the `praisonai` main package (same "keep main-package
63
- > import" pattern as `runtime/descriptor.py`'s `from praisonai.version`).
64
- > `praisonai-code` is wired via an editable path dependency and `praisonai` is
65
- > always present at runtime during migration, so this residual back-import is a
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 (development)
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` is **not** published standalone to PyPI during migration;
81
- `praisonai` remains the user-facing install.
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
- Migration in progress. `runtime/` and `cli_backends/` have moved into
12
- `praisonai_code` (step C1); the remaining terminal-agent modules follow
13
- incrementally in steps C2–C6 (see issue #2512):
14
-
15
- | Step | Scope |
16
- |------|-------|
17
- | C0 | Scaffold |
18
- | C1 | `runtime/` + `cli_backends/` |
19
- | C2 | `interactive/`, `execution/`, `ui/`, `output/`, `state/` |
20
- | C3 | Agentic commands |
21
- | C4 | Agentic features |
22
- | C5 | `main.py`, `app.py`, config/session/utils + shims |
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
- > **Migration note (C1):** `cli_backends/registry.py` still imports
40
- > `PluginRegistry` from the `praisonai` main package (same "keep main-package
41
- > import" pattern as `runtime/descriptor.py`'s `from praisonai.version`).
42
- > `praisonai-code` is wired via an editable path dependency and `praisonai` is
43
- > always present at runtime during migration, so this residual back-import is a
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 (development)
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` is **not** published standalone to PyPI during migration;
59
- `praisonai` remains the user-facing install.
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
- commands.update(_LAZY_COMMANDS.keys())
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
- module = importlib.import_module(module_path, __package__)
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.2
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
- Migration in progress. `runtime/` and `cli_backends/` have moved into
34
- `praisonai_code` (step C1); the remaining terminal-agent modules follow
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
- > **Migration note (C1):** `cli_backends/registry.py` still imports
62
- > `PluginRegistry` from the `praisonai` main package (same "keep main-package
63
- > import" pattern as `runtime/descriptor.py`'s `from praisonai.version`).
64
- > `praisonai-code` is wired via an editable path dependency and `praisonai` is
65
- > always present at runtime during migration, so this residual back-import is a
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 (development)
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` is **not** published standalone to PyPI during migration;
81
- `praisonai` remains the user-facing install.
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.2"
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"}