praisonai-code 0.0.35__tar.gz → 0.0.37__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 (300) hide show
  1. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/PKG-INFO +1 -1
  2. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/__init__.py +1 -1
  3. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/_version.py +17 -9
  4. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/retrieval.py +43 -15
  5. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/capabilities.py +30 -1
  6. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/knowledge_cli.py +11 -1
  7. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/legacy/praison_ai.py +7 -0
  8. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code.egg-info/PKG-INFO +1 -1
  9. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/pyproject.toml +1 -1
  10. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/README.md +0 -0
  11. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/__main__.py +0 -0
  12. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/_bot_bridge.py +0 -0
  13. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/_framework_availability.py +0 -0
  14. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/_logging.py +0 -0
  15. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/_registry.py +0 -0
  16. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/_safe_loader.py +0 -0
  17. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/_wrapper_bridge.py +0 -0
  18. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/__init__.py +0 -0
  19. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/_forward_shim.py +0 -0
  20. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/_paths.py +0 -0
  21. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/_warnings.py +0 -0
  22. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/_wrapper_reexport.py +0 -0
  23. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/app.py +0 -0
  24. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/approval_backend.py +0 -0
  25. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/branding.py +0 -0
  26. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/__init__.py +0 -0
  27. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/acp.py +0 -0
  28. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/agent.py +0 -0
  29. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/agents.py +0 -0
  30. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/attach.py +0 -0
  31. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/auth.py +0 -0
  32. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/benchmark.py +0 -0
  33. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/browser.py +0 -0
  34. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/call.py +0 -0
  35. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/chat.py +0 -0
  36. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/checkpoint.py +0 -0
  37. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/code.py +0 -0
  38. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/command.py +0 -0
  39. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/commit.py +0 -0
  40. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/completion.py +0 -0
  41. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/config.py +0 -0
  42. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/daemon.py +0 -0
  43. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/debug.py +0 -0
  44. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/deploy.py +0 -0
  45. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/diag.py +0 -0
  46. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/doctor.py +0 -0
  47. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/endpoints.py +0 -0
  48. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/environment.py +0 -0
  49. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/eval.py +0 -0
  50. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/github.py +0 -0
  51. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/hooks.py +0 -0
  52. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/init.py +0 -0
  53. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/loop.py +0 -0
  54. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/lsp.py +0 -0
  55. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/memory.py +0 -0
  56. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/models.py +0 -0
  57. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/obs.py +0 -0
  58. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/package.py +0 -0
  59. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/paths.py +0 -0
  60. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/permissions.py +0 -0
  61. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/plugins.py +0 -0
  62. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/port.py +0 -0
  63. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/publish.py +0 -0
  64. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/registry.py +0 -0
  65. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/research.py +0 -0
  66. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/rules.py +0 -0
  67. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/run.py +0 -0
  68. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/sandbox.py +0 -0
  69. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/serve.py +0 -0
  70. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/session.py +0 -0
  71. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/setup.py +0 -0
  72. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/skills.py +0 -0
  73. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/templates.py +0 -0
  74. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/test.py +0 -0
  75. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/todo.py +0 -0
  76. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/tools.py +0 -0
  77. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/traces.py +0 -0
  78. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/tracker.py +0 -0
  79. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/ui.py +0 -0
  80. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/up.py +0 -0
  81. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/version.py +0 -0
  82. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/commands/workflow.py +0 -0
  83. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/config_loader.py +0 -0
  84. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/__init__.py +0 -0
  85. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/config.schema.json +0 -0
  86. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/credentials.py +0 -0
  87. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/loader.py +0 -0
  88. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/model_resolver.py +0 -0
  89. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/oauth.py +0 -0
  90. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/paths.py +0 -0
  91. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/resolver.py +0 -0
  92. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/configuration/schema.py +0 -0
  93. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/execution/__init__.py +0 -0
  94. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/execution/core.py +0 -0
  95. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/execution/profiler.py +0 -0
  96. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/execution/request.py +0 -0
  97. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/execution/result.py +0 -0
  98. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/fallback_schema.py +0 -0
  99. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/__init__.py +0 -0
  100. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/_approval_bridge.py +0 -0
  101. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/_endpoint_registry.py +0 -0
  102. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/_search_registry.py +0 -0
  103. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/action_orchestrator.py +0 -0
  104. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/agents.py +0 -0
  105. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/at_mentions.py +0 -0
  106. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/audit_cli.py +0 -0
  107. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/auto_memory.py +0 -0
  108. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/auto_mode.py +0 -0
  109. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/autonomy_mode.py +0 -0
  110. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/base.py +0 -0
  111. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/benchmark.py +0 -0
  112. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/checkpoints.py +0 -0
  113. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/cli_profiler.py +0 -0
  114. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/code_intelligence.py +0 -0
  115. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/compaction.py +0 -0
  116. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/compare.py +0 -0
  117. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/config_hierarchy.py +0 -0
  118. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/context_manager.py +0 -0
  119. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/cost_tracker.py +0 -0
  120. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/csv_test_runner.py +0 -0
  121. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/custom_definitions.py +0 -0
  122. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/debug.py +0 -0
  123. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/diag.py +0 -0
  124. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/display_jsonl.py +0 -0
  125. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/__init__.py +0 -0
  126. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/__init__.py +0 -0
  127. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/_wrapper_checks.py +0 -0
  128. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/acp_checks.py +0 -0
  129. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/bot_checks.py +0 -0
  130. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/config_checks.py +0 -0
  131. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/db_checks.py +0 -0
  132. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/env_checks.py +0 -0
  133. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/gateway_checks.py +0 -0
  134. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/lsp_checks.py +0 -0
  135. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/mcp_checks.py +0 -0
  136. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/memory_checks.py +0 -0
  137. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/network_checks.py +0 -0
  138. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/obs_checks.py +0 -0
  139. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/packaging_checks.py +0 -0
  140. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/performance_checks.py +0 -0
  141. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/permissions_checks.py +0 -0
  142. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/runtime_checks.py +0 -0
  143. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/runtime_migration_checks.py +0 -0
  144. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/selftest_checks.py +0 -0
  145. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/serve_checks.py +0 -0
  146. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/skills_checks.py +0 -0
  147. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/checks/tools_checks.py +0 -0
  148. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/engine.py +0 -0
  149. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/formatters.py +0 -0
  150. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/handler.py +0 -0
  151. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/models.py +0 -0
  152. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/doctor/registry.py +0 -0
  153. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/examples.py +0 -0
  154. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/external_agents.py +0 -0
  155. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/fast_context.py +0 -0
  156. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/file_history.py +0 -0
  157. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/flow_display.py +0 -0
  158. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/git_attribution.py +0 -0
  159. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/git_integration.py +0 -0
  160. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/guardrail.py +0 -0
  161. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/handoff.py +0 -0
  162. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/hooks.py +0 -0
  163. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/hybrid_workflow.py +0 -0
  164. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/image.py +0 -0
  165. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/interactive_core_headless.py +0 -0
  166. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/interactive_runtime.py +0 -0
  167. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/interactive_test_harness.py +0 -0
  168. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/interactive_tools.py +0 -0
  169. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/interactive_tui.py +0 -0
  170. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/job_workflow.py +0 -0
  171. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/jobs.py +0 -0
  172. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/knowledge.py +0 -0
  173. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/lite.py +0 -0
  174. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/logs.py +0 -0
  175. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/lsp_cli.py +0 -0
  176. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/lsp_diagnostics.py +0 -0
  177. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/mcp.py +0 -0
  178. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/message_queue.py +0 -0
  179. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/metrics.py +0 -0
  180. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/migrate.py +0 -0
  181. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/migration_flow.py +0 -0
  182. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/migration_spec.py +0 -0
  183. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/n8n.py +0 -0
  184. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/observability.py +0 -0
  185. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/output_modes.py +0 -0
  186. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/output_style.py +0 -0
  187. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/package.py +0 -0
  188. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/performance.py +0 -0
  189. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/profiler/__init__.py +0 -0
  190. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/profiler/core.py +0 -0
  191. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/profiler/optimizations.py +0 -0
  192. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/profiler/suite.py +0 -0
  193. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/queue/__init__.py +0 -0
  194. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/queue/manager.py +0 -0
  195. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/queue/models.py +0 -0
  196. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/queue/persistence.py +0 -0
  197. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/queue/scheduler.py +0 -0
  198. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/queue/worker.py +0 -0
  199. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/recipe_creator.py +0 -0
  200. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/recipe_prompts.py +0 -0
  201. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/repo_map.py +0 -0
  202. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/router.py +0 -0
  203. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/safe_shell.py +0 -0
  204. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/sandbox_executor.py +0 -0
  205. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/sdk_knowledge.py +0 -0
  206. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/session.py +0 -0
  207. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/session_checkpoints.py +0 -0
  208. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/setup/__init__.py +0 -0
  209. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/setup/handler.py +0 -0
  210. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/setup/templates.py +0 -0
  211. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/skills.py +0 -0
  212. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/slash_commands.py +0 -0
  213. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/telemetry.py +0 -0
  214. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/thinking.py +0 -0
  215. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/todo.py +0 -0
  216. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tools.py +0 -0
  217. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/__init__.py +0 -0
  218. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/cli.py +0 -0
  219. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/config.py +0 -0
  220. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/debug.py +0 -0
  221. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/events.py +0 -0
  222. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/mock_provider.py +0 -0
  223. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/orchestrator.py +0 -0
  224. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/screens/__init__.py +0 -0
  225. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/screens/help.py +0 -0
  226. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/screens/main.py +0 -0
  227. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/screens/queue.py +0 -0
  228. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/screens/session.py +0 -0
  229. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/screens/settings.py +0 -0
  230. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/session_store.py +0 -0
  231. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/__init__.py +0 -0
  232. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/chat.py +0 -0
  233. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/command_popup.py +0 -0
  234. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/composer.py +0 -0
  235. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/file_popup.py +0 -0
  236. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/queue_panel.py +0 -0
  237. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/status.py +0 -0
  238. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/tui/widgets/tool_panel.py +0 -0
  239. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/wizard.py +0 -0
  240. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/workflow.py +0 -0
  241. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/features/yaml_utils.py +0 -0
  242. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/__init__.py +0 -0
  243. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/async_tui.py +0 -0
  244. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/config.py +0 -0
  245. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/core.py +0 -0
  246. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/events.py +0 -0
  247. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/frontends/__init__.py +0 -0
  248. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/frontends/rich_frontend.py +0 -0
  249. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/frontends/textual_frontend.py +0 -0
  250. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/praison_io.py +0 -0
  251. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/repl.py +0 -0
  252. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/split_tui.py +0 -0
  253. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/interactive/tui_app.py +0 -0
  254. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/legacy/__init__.py +0 -0
  255. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/legacy/env_security.py +0 -0
  256. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/legacy/prompt_dispatch.py +0 -0
  257. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/main.py +0 -0
  258. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/output/__init__.py +0 -0
  259. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/output/console.py +0 -0
  260. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/output/event_bridge.py +0 -0
  261. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/schedule_cli.py +0 -0
  262. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/schema_provider.py +0 -0
  263. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/session/__init__.py +0 -0
  264. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/session/resume.py +0 -0
  265. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/session/unified.py +0 -0
  266. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/state/__init__.py +0 -0
  267. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/state/identifiers.py +0 -0
  268. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/state/project_sessions.py +0 -0
  269. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/state/sessions.py +0 -0
  270. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/ui/__init__.py +0 -0
  271. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/ui/config.py +0 -0
  272. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/ui/events.py +0 -0
  273. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/ui/mg_backend.py +0 -0
  274. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/ui/plain.py +0 -0
  275. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/ui/rich_backend.py +0 -0
  276. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/unified_schema.py +0 -0
  277. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/utils/env_utils.py +0 -0
  278. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/utils/project.py +0 -0
  279. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli/utils/stdin.py +0 -0
  280. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli_backends/__init__.py +0 -0
  281. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli_backends/claude.py +0 -0
  282. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/cli_backends/registry.py +0 -0
  283. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/llm/__init__.py +0 -0
  284. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/llm/catalogue.py +0 -0
  285. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/llm/config.py +0 -0
  286. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/llm/credentials.py +0 -0
  287. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/llm/env.py +0 -0
  288. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/runtime/__init__.py +0 -0
  289. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/runtime/__main__.py +0 -0
  290. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/runtime/client.py +0 -0
  291. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/runtime/descriptor.py +0 -0
  292. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/runtime/server.py +0 -0
  293. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/tool_registry.py +0 -0
  294. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code/tool_resolver.py +0 -0
  295. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code.egg-info/SOURCES.txt +0 -0
  296. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code.egg-info/dependency_links.txt +0 -0
  297. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code.egg-info/entry_points.txt +0 -0
  298. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code.egg-info/requires.txt +0 -0
  299. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/praisonai_code.egg-info/top_level.txt +0 -0
  300. {praisonai_code-0.0.35 → praisonai_code-0.0.37}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praisonai-code
3
- Version: 0.0.35
3
+ Version: 0.0.37
4
4
  Summary: Agentic terminal CLI for PraisonAI — the terminal-native agent (run, chat, code, runtime, cli backends) extracted from the praisonai wrapper.
5
5
  Author: Mervin Praison
6
6
  License: MIT
@@ -12,6 +12,6 @@ the remaining terminal-agent modules, with PEP 562 shims left behind at the
12
12
  old ``praisonai.*`` paths for backward compatibility.
13
13
  """
14
14
 
15
- __version__ = "0.0.35"
15
+ __version__ = "0.0.37"
16
16
 
17
17
  __all__ = ["__version__"]
@@ -18,17 +18,25 @@ def get_package_version() -> str:
18
18
 
19
19
 
20
20
  def get_wrapper_version() -> Optional[str]:
21
- """Return the installed ``praisonai`` wrapper version, if present."""
21
+ """Return the installed ``praisonai`` wrapper version, if present.
22
+
23
+ Prefer the source ``praisonai.version.__version__`` (resolved lazily via the
24
+ wrapper bridge) so that editable installs report the same version as
25
+ ``praisonai --version`` even when the installed package metadata is stale.
26
+ Fall back to package metadata when the source module is unavailable.
27
+ """
28
+ try:
29
+ from praisonai_code._wrapper_bridge import import_wrapper_module
30
+
31
+ wrapper_version = getattr(import_wrapper_module("praisonai.version"), "__version__")
32
+
33
+ return str(wrapper_version)
34
+ except Exception:
35
+ pass
36
+
22
37
  try:
23
38
  from importlib.metadata import version
24
39
 
25
40
  return str(version("praisonai"))
26
41
  except Exception:
27
- try:
28
- from praisonai_code._wrapper_bridge import import_wrapper_module
29
- _mod = import_wrapper_module('praisonai.version')
30
- wrapper_version = getattr(_mod, '__version__')
31
-
32
- return str(wrapper_version)
33
- except Exception:
34
- return None
42
+ return None
@@ -221,17 +221,38 @@ def query_command(
221
221
  if hasattr(retrieval_config, key):
222
222
  setattr(retrieval_config, key, value)
223
223
 
224
- agent = Agent(
225
- name="QueryAgent",
226
- instructions="You are a helpful assistant that answers questions based on the provided knowledge.",
227
- knowledge=[], # Empty - we'll use existing indexed knowledge
228
- retrieval_config=retrieval_config,
229
- verbose=verbose,
230
- )
231
-
224
+ # Build Agent using only constructor params the installed
225
+ # praisonaiagents version actually supports. The Agent-first API
226
+ # consolidates RAG under knowledge=/_retrieval_config; it does not
227
+ # accept a retrieval_config= kwarg (see issue #2774).
228
+ import inspect
229
+ agent_kwargs = {
230
+ "name": "QueryAgent",
231
+ "instructions": "You are a helpful assistant that answers questions based on the provided knowledge.",
232
+ "knowledge": [], # Empty - we'll use existing indexed knowledge
233
+ }
234
+ try:
235
+ agent_params = inspect.signature(Agent.__init__).parameters
236
+ except (TypeError, ValueError):
237
+ agent_params = {}
238
+ if verbose:
239
+ console.print("[dim]Warning: could not inspect Agent signature; verbose flag may be ignored.[/dim]")
240
+ if "verbose" in agent_params:
241
+ agent_kwargs["verbose"] = verbose
242
+ elif "output" in agent_params:
243
+ agent_kwargs["output"] = "verbose" if verbose else None
244
+
245
+ agent = Agent(**agent_kwargs)
246
+
232
247
  agent._ensure_knowledge_processed = lambda: None
233
248
  from praisonaiagents.knowledge import Knowledge
234
- agent.knowledge = Knowledge(config=retrieval_config.to_knowledge_config(), verbose=verbose)
249
+ try:
250
+ agent.knowledge = Knowledge(config=retrieval_config.to_knowledge_config(), verbose=verbose)
251
+ except TypeError as e:
252
+ if "verbose" not in str(e):
253
+ raise
254
+ agent.knowledge = Knowledge(config=retrieval_config.to_knowledge_config())
255
+ agent._retrieval_config = retrieval_config
235
256
  agent._knowledge_processed = True
236
257
 
237
258
  if verbose:
@@ -331,16 +352,23 @@ def search_command(
331
352
 
332
353
  results = knowledge.search(query)
333
354
 
334
- if not results:
335
- console.print("[yellow]No results found.[/yellow]")
336
- return
337
-
338
- if isinstance(results, dict) and 'results' in results:
355
+ # Normalize search results to a list of dicts.
356
+ # Knowledge.search() may return a typed SearchResult dataclass,
357
+ # a legacy dict with a "results" key, or a plain list.
358
+ if hasattr(results, "to_legacy_format"):
359
+ result_list = results.to_legacy_format().get("results", [])
360
+ elif isinstance(results, dict) and 'results' in results:
339
361
  result_list = results['results']
340
362
  elif isinstance(results, list):
341
363
  result_list = results
342
- else:
364
+ elif results:
343
365
  result_list = [results]
366
+ else:
367
+ result_list = []
368
+
369
+ if not result_list:
370
+ console.print("[yellow]No results found.[/yellow]")
371
+ return
344
372
 
345
373
  table = Table(title=f"Search Results ({len(result_list[:top_k])} of {len(result_list)})")
346
374
  table.add_column("#", style="dim", width=3)
@@ -1234,7 +1234,36 @@ class CapabilitiesHandler:
1234
1234
 
1235
1235
  @staticmethod
1236
1236
  def handle_search(args, unknown_args):
1237
- """Handle search operations."""
1237
+ """Handle search operations.
1238
+
1239
+ By default this performs an OpenAI-style web search. If knowledge-base
1240
+ retrieval flags (``--collection``/``-c``, ``--top-k``/``-k`` or
1241
+ ``--hybrid``) are supplied, the command is delegated to the Typer
1242
+ retrieval CLI (``retrieval.search_command``) so that RAG queries work
1243
+ from the top-level ``praisonai search`` command.
1244
+ """
1245
+ retrieval_flags = {"--collection", "-c", "--top-k", "-k", "--hybrid"}
1246
+ if any(arg.split("=", 1)[0] in retrieval_flags for arg in unknown_args):
1247
+ try:
1248
+ from ..commands.retrieval import register_commands
1249
+ import typer as _typer
1250
+ except ImportError as e:
1251
+ print(f"ERROR: {e}")
1252
+ return 1
1253
+
1254
+ retrieval_app = _typer.Typer()
1255
+ register_commands(retrieval_app)
1256
+ try:
1257
+ retrieval_app(["search", *list(unknown_args)], standalone_mode=False)
1258
+ except SystemExit as e:
1259
+ return e.code if e.code else 0
1260
+ except _typer.Exit as e:
1261
+ return e.exit_code if e.exit_code else 0
1262
+ except Exception as e:
1263
+ print(f"Error: {e}")
1264
+ return 1
1265
+ return 0
1266
+
1238
1267
  parser = argparse.ArgumentParser(prog="praisonai search")
1239
1268
  parser.add_argument("query", help="Search query")
1240
1269
  parser.add_argument("--max-results", "-n", type=int, default=5, help="Max results")
@@ -179,7 +179,17 @@ def create_knowledge_app():
179
179
  limit=top_k * 3 if rerank or compress else top_k, # Fetch more for reranking
180
180
  )
181
181
 
182
- items = results.get("results", []) if isinstance(results, dict) else results
182
+ # Normalize search results to a list of dicts.
183
+ # Knowledge.search() may return a typed SearchResult dataclass,
184
+ # a legacy dict with a "results" key, or a plain list.
185
+ if hasattr(results, "to_legacy_format"):
186
+ items = results.to_legacy_format().get("results", [])
187
+ elif isinstance(results, dict):
188
+ items = results.get("results", [])
189
+ elif isinstance(results, list):
190
+ items = results
191
+ else:
192
+ items = []
183
193
 
184
194
  # Apply path filter
185
195
  if path_filter and items:
@@ -1641,6 +1641,13 @@ class PraisonAI:
1641
1641
  and not os.path.isfile(args.command)
1642
1642
  and not (args.command or "").lower().endswith((".yaml", ".yml"))
1643
1643
  ):
1644
+ # Guard: a lone command-like token (e.g. `praisonai show`) that is a
1645
+ # reserved verb or an obvious typo must NOT silently become a paid
1646
+ # one-shot LLM prompt. Fail fast with a hint instead.
1647
+ hint = _ab.classify_unknown_command(args.command, special_commands)
1648
+ if hint is not None:
1649
+ print(hint, file=sys.stderr)
1650
+ sys.exit(2)
1644
1651
  args.direct_prompt = args.command
1645
1652
  args.command = None
1646
1653
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: praisonai-code
3
- Version: 0.0.35
3
+ Version: 0.0.37
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "praisonai-code"
3
- version = "0.0.35"
3
+ version = "0.0.37"
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"}