PraisonAI 3.0.0__py3-none-any.whl
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/__init__.py +54 -0
- praisonai/__main__.py +15 -0
- praisonai/acp/__init__.py +54 -0
- praisonai/acp/config.py +159 -0
- praisonai/acp/server.py +587 -0
- praisonai/acp/session.py +219 -0
- praisonai/adapters/__init__.py +50 -0
- praisonai/adapters/readers.py +395 -0
- praisonai/adapters/rerankers.py +315 -0
- praisonai/adapters/retrievers.py +394 -0
- praisonai/adapters/vector_stores.py +409 -0
- praisonai/agent_scheduler.py +337 -0
- praisonai/agents_generator.py +903 -0
- praisonai/api/call.py +292 -0
- praisonai/auto.py +1197 -0
- praisonai/capabilities/__init__.py +275 -0
- praisonai/capabilities/a2a.py +140 -0
- praisonai/capabilities/assistants.py +283 -0
- praisonai/capabilities/audio.py +320 -0
- praisonai/capabilities/batches.py +469 -0
- praisonai/capabilities/completions.py +336 -0
- praisonai/capabilities/container_files.py +155 -0
- praisonai/capabilities/containers.py +93 -0
- praisonai/capabilities/embeddings.py +158 -0
- praisonai/capabilities/files.py +467 -0
- praisonai/capabilities/fine_tuning.py +293 -0
- praisonai/capabilities/guardrails.py +182 -0
- praisonai/capabilities/images.py +330 -0
- praisonai/capabilities/mcp.py +190 -0
- praisonai/capabilities/messages.py +270 -0
- praisonai/capabilities/moderations.py +154 -0
- praisonai/capabilities/ocr.py +217 -0
- praisonai/capabilities/passthrough.py +204 -0
- praisonai/capabilities/rag.py +207 -0
- praisonai/capabilities/realtime.py +160 -0
- praisonai/capabilities/rerank.py +165 -0
- praisonai/capabilities/responses.py +266 -0
- praisonai/capabilities/search.py +109 -0
- praisonai/capabilities/skills.py +133 -0
- praisonai/capabilities/vector_store_files.py +334 -0
- praisonai/capabilities/vector_stores.py +304 -0
- praisonai/capabilities/videos.py +141 -0
- praisonai/chainlit_ui.py +304 -0
- praisonai/chat/__init__.py +106 -0
- praisonai/chat/app.py +125 -0
- praisonai/cli/__init__.py +26 -0
- praisonai/cli/app.py +213 -0
- praisonai/cli/commands/__init__.py +75 -0
- praisonai/cli/commands/acp.py +70 -0
- praisonai/cli/commands/completion.py +333 -0
- praisonai/cli/commands/config.py +166 -0
- praisonai/cli/commands/debug.py +142 -0
- praisonai/cli/commands/diag.py +55 -0
- praisonai/cli/commands/doctor.py +166 -0
- praisonai/cli/commands/environment.py +179 -0
- praisonai/cli/commands/lsp.py +112 -0
- praisonai/cli/commands/mcp.py +210 -0
- praisonai/cli/commands/profile.py +457 -0
- praisonai/cli/commands/run.py +228 -0
- praisonai/cli/commands/schedule.py +150 -0
- praisonai/cli/commands/serve.py +97 -0
- praisonai/cli/commands/session.py +212 -0
- praisonai/cli/commands/traces.py +145 -0
- praisonai/cli/commands/version.py +101 -0
- praisonai/cli/configuration/__init__.py +18 -0
- praisonai/cli/configuration/loader.py +353 -0
- praisonai/cli/configuration/paths.py +114 -0
- praisonai/cli/configuration/schema.py +164 -0
- praisonai/cli/features/__init__.py +268 -0
- praisonai/cli/features/acp.py +236 -0
- praisonai/cli/features/action_orchestrator.py +546 -0
- praisonai/cli/features/agent_scheduler.py +773 -0
- praisonai/cli/features/agent_tools.py +474 -0
- praisonai/cli/features/agents.py +375 -0
- praisonai/cli/features/at_mentions.py +471 -0
- praisonai/cli/features/auto_memory.py +182 -0
- praisonai/cli/features/autonomy_mode.py +490 -0
- praisonai/cli/features/background.py +356 -0
- praisonai/cli/features/base.py +168 -0
- praisonai/cli/features/capabilities.py +1326 -0
- praisonai/cli/features/checkpoints.py +338 -0
- praisonai/cli/features/code_intelligence.py +652 -0
- praisonai/cli/features/compaction.py +294 -0
- praisonai/cli/features/compare.py +534 -0
- praisonai/cli/features/cost_tracker.py +514 -0
- praisonai/cli/features/debug.py +810 -0
- praisonai/cli/features/deploy.py +517 -0
- praisonai/cli/features/diag.py +289 -0
- praisonai/cli/features/doctor/__init__.py +63 -0
- praisonai/cli/features/doctor/checks/__init__.py +24 -0
- praisonai/cli/features/doctor/checks/acp_checks.py +240 -0
- praisonai/cli/features/doctor/checks/config_checks.py +366 -0
- praisonai/cli/features/doctor/checks/db_checks.py +366 -0
- praisonai/cli/features/doctor/checks/env_checks.py +543 -0
- praisonai/cli/features/doctor/checks/lsp_checks.py +199 -0
- praisonai/cli/features/doctor/checks/mcp_checks.py +349 -0
- praisonai/cli/features/doctor/checks/memory_checks.py +268 -0
- praisonai/cli/features/doctor/checks/network_checks.py +251 -0
- praisonai/cli/features/doctor/checks/obs_checks.py +328 -0
- praisonai/cli/features/doctor/checks/performance_checks.py +235 -0
- praisonai/cli/features/doctor/checks/permissions_checks.py +259 -0
- praisonai/cli/features/doctor/checks/selftest_checks.py +322 -0
- praisonai/cli/features/doctor/checks/serve_checks.py +426 -0
- praisonai/cli/features/doctor/checks/skills_checks.py +231 -0
- praisonai/cli/features/doctor/checks/tools_checks.py +371 -0
- praisonai/cli/features/doctor/engine.py +266 -0
- praisonai/cli/features/doctor/formatters.py +310 -0
- praisonai/cli/features/doctor/handler.py +397 -0
- praisonai/cli/features/doctor/models.py +264 -0
- praisonai/cli/features/doctor/registry.py +239 -0
- praisonai/cli/features/endpoints.py +1019 -0
- praisonai/cli/features/eval.py +560 -0
- praisonai/cli/features/external_agents.py +231 -0
- praisonai/cli/features/fast_context.py +410 -0
- praisonai/cli/features/flow_display.py +566 -0
- praisonai/cli/features/git_integration.py +651 -0
- praisonai/cli/features/guardrail.py +171 -0
- praisonai/cli/features/handoff.py +185 -0
- praisonai/cli/features/hooks.py +583 -0
- praisonai/cli/features/image.py +384 -0
- praisonai/cli/features/interactive_runtime.py +585 -0
- praisonai/cli/features/interactive_tools.py +380 -0
- praisonai/cli/features/interactive_tui.py +603 -0
- praisonai/cli/features/jobs.py +632 -0
- praisonai/cli/features/knowledge.py +531 -0
- praisonai/cli/features/lite.py +244 -0
- praisonai/cli/features/lsp_cli.py +225 -0
- praisonai/cli/features/mcp.py +169 -0
- praisonai/cli/features/message_queue.py +587 -0
- praisonai/cli/features/metrics.py +211 -0
- praisonai/cli/features/n8n.py +673 -0
- praisonai/cli/features/observability.py +293 -0
- praisonai/cli/features/ollama.py +361 -0
- praisonai/cli/features/output_style.py +273 -0
- praisonai/cli/features/package.py +631 -0
- praisonai/cli/features/performance.py +308 -0
- praisonai/cli/features/persistence.py +636 -0
- praisonai/cli/features/profile.py +226 -0
- praisonai/cli/features/profiler/__init__.py +81 -0
- praisonai/cli/features/profiler/core.py +558 -0
- praisonai/cli/features/profiler/optimizations.py +652 -0
- praisonai/cli/features/profiler/suite.py +386 -0
- praisonai/cli/features/profiling.py +350 -0
- praisonai/cli/features/queue/__init__.py +73 -0
- praisonai/cli/features/queue/manager.py +395 -0
- praisonai/cli/features/queue/models.py +286 -0
- praisonai/cli/features/queue/persistence.py +564 -0
- praisonai/cli/features/queue/scheduler.py +484 -0
- praisonai/cli/features/queue/worker.py +372 -0
- praisonai/cli/features/recipe.py +1723 -0
- praisonai/cli/features/recipes.py +449 -0
- praisonai/cli/features/registry.py +229 -0
- praisonai/cli/features/repo_map.py +860 -0
- praisonai/cli/features/router.py +466 -0
- praisonai/cli/features/sandbox_executor.py +515 -0
- praisonai/cli/features/serve.py +829 -0
- praisonai/cli/features/session.py +222 -0
- praisonai/cli/features/skills.py +856 -0
- praisonai/cli/features/slash_commands.py +650 -0
- praisonai/cli/features/telemetry.py +179 -0
- praisonai/cli/features/templates.py +1384 -0
- praisonai/cli/features/thinking.py +305 -0
- praisonai/cli/features/todo.py +334 -0
- praisonai/cli/features/tools.py +680 -0
- praisonai/cli/features/tui/__init__.py +83 -0
- praisonai/cli/features/tui/app.py +580 -0
- praisonai/cli/features/tui/cli.py +566 -0
- praisonai/cli/features/tui/debug.py +511 -0
- praisonai/cli/features/tui/events.py +99 -0
- praisonai/cli/features/tui/mock_provider.py +328 -0
- praisonai/cli/features/tui/orchestrator.py +652 -0
- praisonai/cli/features/tui/screens/__init__.py +50 -0
- praisonai/cli/features/tui/screens/main.py +245 -0
- praisonai/cli/features/tui/screens/queue.py +174 -0
- praisonai/cli/features/tui/screens/session.py +124 -0
- praisonai/cli/features/tui/screens/settings.py +148 -0
- praisonai/cli/features/tui/widgets/__init__.py +56 -0
- praisonai/cli/features/tui/widgets/chat.py +261 -0
- praisonai/cli/features/tui/widgets/composer.py +224 -0
- praisonai/cli/features/tui/widgets/queue_panel.py +200 -0
- praisonai/cli/features/tui/widgets/status.py +167 -0
- praisonai/cli/features/tui/widgets/tool_panel.py +248 -0
- praisonai/cli/features/workflow.py +720 -0
- praisonai/cli/legacy.py +236 -0
- praisonai/cli/main.py +5559 -0
- praisonai/cli/schedule_cli.py +54 -0
- praisonai/cli/state/__init__.py +31 -0
- praisonai/cli/state/identifiers.py +161 -0
- praisonai/cli/state/sessions.py +313 -0
- praisonai/code/__init__.py +93 -0
- praisonai/code/agent_tools.py +344 -0
- praisonai/code/diff/__init__.py +21 -0
- praisonai/code/diff/diff_strategy.py +432 -0
- praisonai/code/tools/__init__.py +27 -0
- praisonai/code/tools/apply_diff.py +221 -0
- praisonai/code/tools/execute_command.py +275 -0
- praisonai/code/tools/list_files.py +274 -0
- praisonai/code/tools/read_file.py +206 -0
- praisonai/code/tools/search_replace.py +248 -0
- praisonai/code/tools/write_file.py +217 -0
- praisonai/code/utils/__init__.py +46 -0
- praisonai/code/utils/file_utils.py +307 -0
- praisonai/code/utils/ignore_utils.py +308 -0
- praisonai/code/utils/text_utils.py +276 -0
- praisonai/db/__init__.py +64 -0
- praisonai/db/adapter.py +531 -0
- praisonai/deploy/__init__.py +62 -0
- praisonai/deploy/api.py +231 -0
- praisonai/deploy/docker.py +454 -0
- praisonai/deploy/doctor.py +367 -0
- praisonai/deploy/main.py +327 -0
- praisonai/deploy/models.py +179 -0
- praisonai/deploy/providers/__init__.py +33 -0
- praisonai/deploy/providers/aws.py +331 -0
- praisonai/deploy/providers/azure.py +358 -0
- praisonai/deploy/providers/base.py +101 -0
- praisonai/deploy/providers/gcp.py +314 -0
- praisonai/deploy/schema.py +208 -0
- praisonai/deploy.py +185 -0
- praisonai/endpoints/__init__.py +53 -0
- praisonai/endpoints/a2u_server.py +410 -0
- praisonai/endpoints/discovery.py +165 -0
- praisonai/endpoints/providers/__init__.py +28 -0
- praisonai/endpoints/providers/a2a.py +253 -0
- praisonai/endpoints/providers/a2u.py +208 -0
- praisonai/endpoints/providers/agents_api.py +171 -0
- praisonai/endpoints/providers/base.py +231 -0
- praisonai/endpoints/providers/mcp.py +263 -0
- praisonai/endpoints/providers/recipe.py +206 -0
- praisonai/endpoints/providers/tools_mcp.py +150 -0
- praisonai/endpoints/registry.py +131 -0
- praisonai/endpoints/server.py +161 -0
- praisonai/inbuilt_tools/__init__.py +24 -0
- praisonai/inbuilt_tools/autogen_tools.py +117 -0
- praisonai/inc/__init__.py +2 -0
- praisonai/inc/config.py +96 -0
- praisonai/inc/models.py +155 -0
- praisonai/integrations/__init__.py +56 -0
- praisonai/integrations/base.py +303 -0
- praisonai/integrations/claude_code.py +270 -0
- praisonai/integrations/codex_cli.py +255 -0
- praisonai/integrations/cursor_cli.py +195 -0
- praisonai/integrations/gemini_cli.py +222 -0
- praisonai/jobs/__init__.py +67 -0
- praisonai/jobs/executor.py +425 -0
- praisonai/jobs/models.py +230 -0
- praisonai/jobs/router.py +314 -0
- praisonai/jobs/server.py +186 -0
- praisonai/jobs/store.py +203 -0
- praisonai/llm/__init__.py +66 -0
- praisonai/llm/registry.py +382 -0
- praisonai/mcp_server/__init__.py +152 -0
- praisonai/mcp_server/adapters/__init__.py +74 -0
- praisonai/mcp_server/adapters/agents.py +128 -0
- praisonai/mcp_server/adapters/capabilities.py +168 -0
- praisonai/mcp_server/adapters/cli_tools.py +568 -0
- praisonai/mcp_server/adapters/extended_capabilities.py +462 -0
- praisonai/mcp_server/adapters/knowledge.py +93 -0
- praisonai/mcp_server/adapters/memory.py +104 -0
- praisonai/mcp_server/adapters/prompts.py +306 -0
- praisonai/mcp_server/adapters/resources.py +124 -0
- praisonai/mcp_server/adapters/tools_bridge.py +280 -0
- praisonai/mcp_server/auth/__init__.py +48 -0
- praisonai/mcp_server/auth/api_key.py +291 -0
- praisonai/mcp_server/auth/oauth.py +460 -0
- praisonai/mcp_server/auth/oidc.py +289 -0
- praisonai/mcp_server/auth/scopes.py +260 -0
- praisonai/mcp_server/cli.py +852 -0
- praisonai/mcp_server/elicitation.py +445 -0
- praisonai/mcp_server/icons.py +302 -0
- praisonai/mcp_server/recipe_adapter.py +573 -0
- praisonai/mcp_server/recipe_cli.py +824 -0
- praisonai/mcp_server/registry.py +703 -0
- praisonai/mcp_server/sampling.py +422 -0
- praisonai/mcp_server/server.py +490 -0
- praisonai/mcp_server/tasks.py +443 -0
- praisonai/mcp_server/transports/__init__.py +18 -0
- praisonai/mcp_server/transports/http_stream.py +376 -0
- praisonai/mcp_server/transports/stdio.py +132 -0
- praisonai/persistence/__init__.py +84 -0
- praisonai/persistence/config.py +238 -0
- praisonai/persistence/conversation/__init__.py +25 -0
- praisonai/persistence/conversation/async_mysql.py +427 -0
- praisonai/persistence/conversation/async_postgres.py +410 -0
- praisonai/persistence/conversation/async_sqlite.py +371 -0
- praisonai/persistence/conversation/base.py +151 -0
- praisonai/persistence/conversation/json_store.py +250 -0
- praisonai/persistence/conversation/mysql.py +387 -0
- praisonai/persistence/conversation/postgres.py +401 -0
- praisonai/persistence/conversation/singlestore.py +240 -0
- praisonai/persistence/conversation/sqlite.py +341 -0
- praisonai/persistence/conversation/supabase.py +203 -0
- praisonai/persistence/conversation/surrealdb.py +287 -0
- praisonai/persistence/factory.py +301 -0
- praisonai/persistence/hooks/__init__.py +18 -0
- praisonai/persistence/hooks/agent_hooks.py +297 -0
- praisonai/persistence/knowledge/__init__.py +26 -0
- praisonai/persistence/knowledge/base.py +144 -0
- praisonai/persistence/knowledge/cassandra.py +232 -0
- praisonai/persistence/knowledge/chroma.py +295 -0
- praisonai/persistence/knowledge/clickhouse.py +242 -0
- praisonai/persistence/knowledge/cosmosdb_vector.py +438 -0
- praisonai/persistence/knowledge/couchbase.py +286 -0
- praisonai/persistence/knowledge/lancedb.py +216 -0
- praisonai/persistence/knowledge/langchain_adapter.py +291 -0
- praisonai/persistence/knowledge/lightrag_adapter.py +212 -0
- praisonai/persistence/knowledge/llamaindex_adapter.py +256 -0
- praisonai/persistence/knowledge/milvus.py +277 -0
- praisonai/persistence/knowledge/mongodb_vector.py +306 -0
- praisonai/persistence/knowledge/pgvector.py +335 -0
- praisonai/persistence/knowledge/pinecone.py +253 -0
- praisonai/persistence/knowledge/qdrant.py +301 -0
- praisonai/persistence/knowledge/redis_vector.py +291 -0
- praisonai/persistence/knowledge/singlestore_vector.py +299 -0
- praisonai/persistence/knowledge/surrealdb_vector.py +309 -0
- praisonai/persistence/knowledge/upstash_vector.py +266 -0
- praisonai/persistence/knowledge/weaviate.py +223 -0
- praisonai/persistence/migrations/__init__.py +10 -0
- praisonai/persistence/migrations/manager.py +251 -0
- praisonai/persistence/orchestrator.py +406 -0
- praisonai/persistence/state/__init__.py +21 -0
- praisonai/persistence/state/async_mongodb.py +200 -0
- praisonai/persistence/state/base.py +107 -0
- praisonai/persistence/state/dynamodb.py +226 -0
- praisonai/persistence/state/firestore.py +175 -0
- praisonai/persistence/state/gcs.py +155 -0
- praisonai/persistence/state/memory.py +245 -0
- praisonai/persistence/state/mongodb.py +158 -0
- praisonai/persistence/state/redis.py +190 -0
- praisonai/persistence/state/upstash.py +144 -0
- praisonai/persistence/tests/__init__.py +3 -0
- praisonai/persistence/tests/test_all_backends.py +633 -0
- praisonai/profiler.py +1214 -0
- praisonai/recipe/__init__.py +134 -0
- praisonai/recipe/bridge.py +278 -0
- praisonai/recipe/core.py +893 -0
- praisonai/recipe/exceptions.py +54 -0
- praisonai/recipe/history.py +402 -0
- praisonai/recipe/models.py +266 -0
- praisonai/recipe/operations.py +440 -0
- praisonai/recipe/policy.py +422 -0
- praisonai/recipe/registry.py +849 -0
- praisonai/recipe/runtime.py +214 -0
- praisonai/recipe/security.py +711 -0
- praisonai/recipe/serve.py +859 -0
- praisonai/recipe/server.py +613 -0
- praisonai/scheduler/__init__.py +45 -0
- praisonai/scheduler/agent_scheduler.py +552 -0
- praisonai/scheduler/base.py +124 -0
- praisonai/scheduler/daemon_manager.py +225 -0
- praisonai/scheduler/state_manager.py +155 -0
- praisonai/scheduler/yaml_loader.py +193 -0
- praisonai/scheduler.py +194 -0
- praisonai/setup/__init__.py +1 -0
- praisonai/setup/build.py +21 -0
- praisonai/setup/post_install.py +23 -0
- praisonai/setup/setup_conda_env.py +25 -0
- praisonai/setup.py +16 -0
- praisonai/templates/__init__.py +116 -0
- praisonai/templates/cache.py +364 -0
- praisonai/templates/dependency_checker.py +358 -0
- praisonai/templates/discovery.py +391 -0
- praisonai/templates/loader.py +564 -0
- praisonai/templates/registry.py +511 -0
- praisonai/templates/resolver.py +206 -0
- praisonai/templates/security.py +327 -0
- praisonai/templates/tool_override.py +498 -0
- praisonai/templates/tools_doctor.py +256 -0
- praisonai/test.py +105 -0
- praisonai/train.py +562 -0
- praisonai/train_vision.py +306 -0
- praisonai/ui/agents.py +824 -0
- praisonai/ui/callbacks.py +57 -0
- praisonai/ui/chainlit_compat.py +246 -0
- praisonai/ui/chat.py +532 -0
- praisonai/ui/code.py +717 -0
- praisonai/ui/colab.py +474 -0
- praisonai/ui/colab_chainlit.py +81 -0
- praisonai/ui/components/aicoder.py +284 -0
- praisonai/ui/context.py +283 -0
- praisonai/ui/database_config.py +56 -0
- praisonai/ui/db.py +294 -0
- praisonai/ui/realtime.py +488 -0
- praisonai/ui/realtimeclient/__init__.py +756 -0
- praisonai/ui/realtimeclient/tools.py +242 -0
- praisonai/ui/sql_alchemy.py +710 -0
- praisonai/upload_vision.py +140 -0
- praisonai/version.py +1 -0
- praisonai-3.0.0.dist-info/METADATA +3493 -0
- praisonai-3.0.0.dist-info/RECORD +393 -0
- praisonai-3.0.0.dist-info/WHEEL +5 -0
- praisonai-3.0.0.dist-info/entry_points.txt +4 -0
- praisonai-3.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Agents Adapter
|
|
3
|
+
|
|
4
|
+
Maps PraisonAI agent operations to MCP tools.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import logging
|
|
8
|
+
from typing import Optional
|
|
9
|
+
|
|
10
|
+
from ..registry import register_tool
|
|
11
|
+
|
|
12
|
+
logger = logging.getLogger(__name__)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def register_agent_tools() -> None:
|
|
16
|
+
"""Register agent-related MCP tools."""
|
|
17
|
+
|
|
18
|
+
@register_tool("praisonai.agent.chat")
|
|
19
|
+
def agent_chat(
|
|
20
|
+
message: str,
|
|
21
|
+
model: str = "gpt-4o-mini",
|
|
22
|
+
instructions: Optional[str] = None,
|
|
23
|
+
) -> str:
|
|
24
|
+
"""Chat with a PraisonAI agent."""
|
|
25
|
+
try:
|
|
26
|
+
from praisonaiagents import Agent
|
|
27
|
+
|
|
28
|
+
agent = Agent(
|
|
29
|
+
instructions=instructions or "You are a helpful assistant.",
|
|
30
|
+
llm=model,
|
|
31
|
+
)
|
|
32
|
+
result = agent.chat(message)
|
|
33
|
+
return str(result)
|
|
34
|
+
except ImportError:
|
|
35
|
+
return "Error: praisonaiagents not installed"
|
|
36
|
+
except Exception as e:
|
|
37
|
+
return f"Error: {e}"
|
|
38
|
+
|
|
39
|
+
@register_tool("praisonai.agent.run")
|
|
40
|
+
def agent_run(
|
|
41
|
+
task: str,
|
|
42
|
+
model: str = "gpt-4o-mini",
|
|
43
|
+
instructions: Optional[str] = None,
|
|
44
|
+
) -> str:
|
|
45
|
+
"""Run a task with a PraisonAI agent."""
|
|
46
|
+
try:
|
|
47
|
+
from praisonaiagents import Agent
|
|
48
|
+
|
|
49
|
+
agent = Agent(
|
|
50
|
+
instructions=instructions or "You are a helpful assistant.",
|
|
51
|
+
llm=model,
|
|
52
|
+
)
|
|
53
|
+
result = agent.start(task)
|
|
54
|
+
return str(result)
|
|
55
|
+
except ImportError:
|
|
56
|
+
return "Error: praisonaiagents not installed"
|
|
57
|
+
except Exception as e:
|
|
58
|
+
return f"Error: {e}"
|
|
59
|
+
|
|
60
|
+
@register_tool("praisonai.workflow.run")
|
|
61
|
+
def workflow_run(
|
|
62
|
+
yaml_content: str,
|
|
63
|
+
) -> str:
|
|
64
|
+
"""Run a workflow from YAML definition."""
|
|
65
|
+
try:
|
|
66
|
+
import yaml
|
|
67
|
+
from praisonai.agents_generator import AgentsGenerator
|
|
68
|
+
|
|
69
|
+
# Parse YAML to validate
|
|
70
|
+
yaml.safe_load(yaml_content)
|
|
71
|
+
|
|
72
|
+
# Write to temp file and run
|
|
73
|
+
import tempfile
|
|
74
|
+
with tempfile.NamedTemporaryFile(mode='w', suffix='.yaml', delete=False) as f:
|
|
75
|
+
f.write(yaml_content)
|
|
76
|
+
temp_path = f.name
|
|
77
|
+
|
|
78
|
+
generator = AgentsGenerator(
|
|
79
|
+
agent_file=temp_path,
|
|
80
|
+
framework="praisonai",
|
|
81
|
+
)
|
|
82
|
+
result = generator.generate_crew_and_kickoff()
|
|
83
|
+
return str(result)
|
|
84
|
+
except Exception as e:
|
|
85
|
+
return f"Error: {e}"
|
|
86
|
+
|
|
87
|
+
@register_tool("praisonai.workflow.run_file")
|
|
88
|
+
def workflow_run_file(
|
|
89
|
+
file_path: str,
|
|
90
|
+
) -> str:
|
|
91
|
+
"""Run a workflow from YAML file path."""
|
|
92
|
+
try:
|
|
93
|
+
from praisonai.agents_generator import AgentsGenerator
|
|
94
|
+
|
|
95
|
+
generator = AgentsGenerator(
|
|
96
|
+
agent_file=file_path,
|
|
97
|
+
framework="praisonai",
|
|
98
|
+
)
|
|
99
|
+
result = generator.generate_crew_and_kickoff()
|
|
100
|
+
return str(result)
|
|
101
|
+
except Exception as e:
|
|
102
|
+
return f"Error: {e}"
|
|
103
|
+
|
|
104
|
+
@register_tool("praisonai.research.run")
|
|
105
|
+
def research_run(
|
|
106
|
+
topic: str,
|
|
107
|
+
depth: str = "medium",
|
|
108
|
+
) -> str:
|
|
109
|
+
"""Run deep research on a topic."""
|
|
110
|
+
try:
|
|
111
|
+
from praisonaiagents import Agent
|
|
112
|
+
|
|
113
|
+
instructions = f"""You are a research agent. Conduct thorough research on the given topic.
|
|
114
|
+
Research depth: {depth}
|
|
115
|
+
Provide comprehensive findings with sources where possible."""
|
|
116
|
+
|
|
117
|
+
agent = Agent(
|
|
118
|
+
instructions=instructions,
|
|
119
|
+
llm="gpt-4o",
|
|
120
|
+
)
|
|
121
|
+
result = agent.start(f"Research the following topic thoroughly: {topic}")
|
|
122
|
+
return str(result)
|
|
123
|
+
except ImportError:
|
|
124
|
+
return "Error: praisonaiagents not installed"
|
|
125
|
+
except Exception as e:
|
|
126
|
+
return f"Error: {e}"
|
|
127
|
+
|
|
128
|
+
logger.info("Registered agent MCP tools")
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Capabilities Adapter
|
|
3
|
+
|
|
4
|
+
Maps PraisonAI capabilities (audio, images, embeddings, etc.) to MCP tools.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import logging
|
|
8
|
+
from typing import List, Optional
|
|
9
|
+
|
|
10
|
+
from ..registry import register_tool
|
|
11
|
+
|
|
12
|
+
logger = logging.getLogger(__name__)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def register_capability_tools() -> None:
|
|
16
|
+
"""Register all capability-based MCP tools."""
|
|
17
|
+
|
|
18
|
+
# Audio tools
|
|
19
|
+
@register_tool("praisonai.audio.transcribe")
|
|
20
|
+
def audio_transcribe(
|
|
21
|
+
file_path: str,
|
|
22
|
+
model: str = "whisper-1",
|
|
23
|
+
language: Optional[str] = None,
|
|
24
|
+
) -> str:
|
|
25
|
+
"""Transcribe audio file to text."""
|
|
26
|
+
from praisonai.capabilities import transcribe
|
|
27
|
+
result = transcribe(file=file_path, model=model, language=language)
|
|
28
|
+
return result.text if hasattr(result, "text") else str(result)
|
|
29
|
+
|
|
30
|
+
@register_tool("praisonai.audio.speech")
|
|
31
|
+
def audio_speech(
|
|
32
|
+
text: str,
|
|
33
|
+
model: str = "tts-1",
|
|
34
|
+
voice: str = "alloy",
|
|
35
|
+
) -> str:
|
|
36
|
+
"""Convert text to speech."""
|
|
37
|
+
from praisonai.capabilities import speech
|
|
38
|
+
result = speech(input=text, model=model, voice=voice)
|
|
39
|
+
return f"Audio generated: {result}"
|
|
40
|
+
|
|
41
|
+
# Image tools
|
|
42
|
+
@register_tool("praisonai.images.generate")
|
|
43
|
+
def images_generate(
|
|
44
|
+
prompt: str,
|
|
45
|
+
model: str = "dall-e-3",
|
|
46
|
+
size: str = "1024x1024",
|
|
47
|
+
n: int = 1,
|
|
48
|
+
) -> str:
|
|
49
|
+
"""Generate images from text prompt."""
|
|
50
|
+
from praisonai.capabilities import image_generate
|
|
51
|
+
result = image_generate(prompt=prompt, model=model, size=size, n=n)
|
|
52
|
+
if hasattr(result, "data"):
|
|
53
|
+
urls = [img.url for img in result.data if hasattr(img, "url")]
|
|
54
|
+
return f"Generated {len(urls)} image(s): {urls}"
|
|
55
|
+
return str(result)
|
|
56
|
+
|
|
57
|
+
# Embedding tools
|
|
58
|
+
@register_tool("praisonai.embed.create")
|
|
59
|
+
def embed_create(
|
|
60
|
+
text: str,
|
|
61
|
+
model: str = "text-embedding-3-small",
|
|
62
|
+
) -> str:
|
|
63
|
+
"""Create text embeddings."""
|
|
64
|
+
from praisonai.capabilities import embed
|
|
65
|
+
result = embed(input=text, model=model)
|
|
66
|
+
if hasattr(result, "data") and result.data:
|
|
67
|
+
return f"Embedding created with {len(result.data[0].embedding)} dimensions"
|
|
68
|
+
return str(result)
|
|
69
|
+
|
|
70
|
+
# Moderation tools
|
|
71
|
+
@register_tool("praisonai.moderate.check")
|
|
72
|
+
def moderate_check(text: str) -> str:
|
|
73
|
+
"""Check content for policy violations."""
|
|
74
|
+
from praisonai.capabilities import moderate
|
|
75
|
+
result = moderate(input=text)
|
|
76
|
+
if hasattr(result, "results") and result.results:
|
|
77
|
+
flagged = result.results[0].flagged
|
|
78
|
+
return f"Content flagged: {flagged}"
|
|
79
|
+
return str(result)
|
|
80
|
+
|
|
81
|
+
# Chat completion
|
|
82
|
+
@register_tool("praisonai.chat.completion")
|
|
83
|
+
def chat_completion(
|
|
84
|
+
message: str,
|
|
85
|
+
model: str = "gpt-4o-mini",
|
|
86
|
+
system_prompt: Optional[str] = None,
|
|
87
|
+
) -> str:
|
|
88
|
+
"""Generate chat completion."""
|
|
89
|
+
from praisonai.capabilities import chat_completion
|
|
90
|
+
messages = []
|
|
91
|
+
if system_prompt:
|
|
92
|
+
messages.append({"role": "system", "content": system_prompt})
|
|
93
|
+
messages.append({"role": "user", "content": message})
|
|
94
|
+
result = chat_completion(model=model, messages=messages)
|
|
95
|
+
if hasattr(result, "choices") and result.choices:
|
|
96
|
+
return result.choices[0].message.content
|
|
97
|
+
return str(result)
|
|
98
|
+
|
|
99
|
+
# Rerank
|
|
100
|
+
@register_tool("praisonai.rerank")
|
|
101
|
+
def rerank_documents(
|
|
102
|
+
query: str,
|
|
103
|
+
documents: List[str],
|
|
104
|
+
model: str = "rerank-english-v2.0",
|
|
105
|
+
top_n: int = 5,
|
|
106
|
+
) -> str:
|
|
107
|
+
"""Rerank documents by relevance to query."""
|
|
108
|
+
from praisonai.capabilities import rerank
|
|
109
|
+
result = rerank(query=query, documents=documents, model=model, top_n=top_n)
|
|
110
|
+
return str(result)
|
|
111
|
+
|
|
112
|
+
# RAG
|
|
113
|
+
@register_tool("praisonai.rag.query")
|
|
114
|
+
def rag_query(
|
|
115
|
+
query: str,
|
|
116
|
+
collection: str = "default",
|
|
117
|
+
) -> str:
|
|
118
|
+
"""Query RAG knowledge base."""
|
|
119
|
+
from praisonai.capabilities import rag_query
|
|
120
|
+
result = rag_query(query=query, collection=collection)
|
|
121
|
+
return str(result)
|
|
122
|
+
|
|
123
|
+
# Search
|
|
124
|
+
@register_tool("praisonai.search")
|
|
125
|
+
def search_web(query: str) -> str:
|
|
126
|
+
"""Search the web."""
|
|
127
|
+
from praisonai.capabilities import search
|
|
128
|
+
result = search(query=query)
|
|
129
|
+
return str(result)
|
|
130
|
+
|
|
131
|
+
# Guardrails
|
|
132
|
+
@register_tool("praisonai.guardrails.check")
|
|
133
|
+
def guardrails_check(
|
|
134
|
+
text: str,
|
|
135
|
+
guardrail_name: str = "default",
|
|
136
|
+
) -> str:
|
|
137
|
+
"""Apply guardrail to text."""
|
|
138
|
+
from praisonai.capabilities import apply_guardrail
|
|
139
|
+
result = apply_guardrail(text=text, guardrail_name=guardrail_name)
|
|
140
|
+
return str(result)
|
|
141
|
+
|
|
142
|
+
logger.info("Registered capability MCP tools")
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def register_all_tools() -> None:
|
|
146
|
+
"""Register all MCP tools from all adapters."""
|
|
147
|
+
register_capability_tools()
|
|
148
|
+
|
|
149
|
+
# Import and register other adapters
|
|
150
|
+
try:
|
|
151
|
+
from .agents import register_agent_tools
|
|
152
|
+
register_agent_tools()
|
|
153
|
+
except ImportError:
|
|
154
|
+
logger.debug("Agent tools adapter not available")
|
|
155
|
+
|
|
156
|
+
try:
|
|
157
|
+
from .memory import register_memory_tools
|
|
158
|
+
register_memory_tools()
|
|
159
|
+
except ImportError:
|
|
160
|
+
logger.debug("Memory tools adapter not available")
|
|
161
|
+
|
|
162
|
+
try:
|
|
163
|
+
from .knowledge import register_knowledge_tools
|
|
164
|
+
register_knowledge_tools()
|
|
165
|
+
except ImportError:
|
|
166
|
+
logger.debug("Knowledge tools adapter not available")
|
|
167
|
+
|
|
168
|
+
logger.info("All MCP tools registered")
|