PraisonAI 4.6.129__tar.gz → 4.6.131__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {praisonai-4.6.129 → praisonai-4.6.131}/PKG-INFO +4 -4
- {praisonai-4.6.129 → praisonai-4.6.131}/PraisonAI.egg-info/PKG-INFO +4 -4
- {praisonai-4.6.129 → praisonai-4.6.131}/PraisonAI.egg-info/requires.txt +3 -3
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/agents_generator.py +32 -8
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/auto.py +85 -17
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/praisonai_adapter.py +7 -0
- praisonai-4.6.131/praisonai/framework_adapters/workflow_framework.py +85 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/jobs/executor.py +21 -2
- praisonai-4.6.131/praisonai/version.py +1 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/pyproject.toml +3 -3
- praisonai-4.6.129/praisonai/framework_adapters/workflow_framework.py +0 -51
- praisonai-4.6.129/praisonai/version.py +0 -1
- {praisonai-4.6.129 → praisonai-4.6.131}/PraisonAI.egg-info/SOURCES.txt +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/PraisonAI.egg-info/dependency_links.txt +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/PraisonAI.egg-info/entry_points.txt +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/PraisonAI.egg-info/top_level.txt +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/README.md +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/__main__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_approval_spec.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_async_bridge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_bootstrap.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/api_md.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/docs_extractor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/docs_generator.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/generator.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/python_extractor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/rust_extractor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/topic_normalizer.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_dev/parity/typescript_extractor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_entrypoint.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_framework_availability.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_lazy_cache.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_lockmap.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_logging.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/_safe_loader.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/acp/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/acp/config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/acp/safe_edit.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/acp/server.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/acp/session.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/adapters/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/adapters/readers.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/adapters/rerankers.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/adapters/retrievers.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/adapters/vector_stores.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/agent_scheduler.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/api/agent_invoke.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/api/call.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/app/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/app/agentos.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/async_agent_scheduler.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/audit/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/audit/agent_centric.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/bots/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/benchmark.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/cdp_agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/cdp_utils.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/diagnostics.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/launcher.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/playwright_agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/profiling.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/protocol.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/report.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/server.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/sessions.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/browser/video.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/a2a.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/assistants.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/audio.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/batches.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/completions.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/container_files.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/containers.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/embeddings.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/files.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/fine_tuning.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/guardrails.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/images.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/mcp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/messages.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/moderations.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/ocr.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/passthrough.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/rag.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/realtime.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/rerank.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/responses.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/search.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/skills.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/vector_store_files.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/vector_stores.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/capabilities/videos.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/claw/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/_paths.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/_shim.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/_warnings.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/approval_backend.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/branding.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/acp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/agents.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/attach.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/audit.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/auth.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/batch.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/benchmark.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/bot.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/browser.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/call.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/chat.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/checkpoint.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/claw.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/code.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/command.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/commit.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/completion.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/context.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/daemon.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/dashboard.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/debug.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/deploy.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/diag.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/docs.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/doctor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/endpoints.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/environment.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/eval.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/examples.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/flow.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/gateway.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/github.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/hooks.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/identity.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/init.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/kanban.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/knowledge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/langextract.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/langfuse.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/loop.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/lsp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/managed.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/mcp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/memory.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/mint_link.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/n8n.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/obs.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/onboard.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/package.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/pairing.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/paths.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/permissions.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/plugins.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/port.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/profile.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/publish.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/rag.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/realtime.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/recipe.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/replay.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/research.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/retrieval.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/rules.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/run.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/sandbox.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/schedule.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/serve.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/session.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/setup.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/skills.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/standardise.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/templates.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/test.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/todo.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/traces.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/tracker.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/train.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/ui.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/up.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/validate.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/version.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/commands/workflow.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/config_loader.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/configuration/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/configuration/config.schema.json +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/execution/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/fallback_schema.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/acp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/agent_scheduler.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/agent_tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/approval.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/background.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/bots_cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/deploy.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/endpoints.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/eval.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/gateway.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/ollama.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/onboard.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/persistence.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/recipe.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/recipe_optimizer.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/sandbox_cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/serve.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/templates.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/tui/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/tui/app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/features/workflow.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/interactive/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/interactive/async_tui.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/interactive/core.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/langfuse_client.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/direct_prompt.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/framework_run.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/interactive_legacy.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/legacy/workflow_commands.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/main.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/output/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/schedule_cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/schema_provider.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/session/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/state/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/ui/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/unified_schema.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli/utils/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/cli_backends/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/agent_tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/diff/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/diff/diff_strategy.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/tools/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/tools/apply_diff.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/tools/execute_command.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/tools/list_files.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/tools/read_file.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/tools/search_replace.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/tools/write_file.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/utils/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/utils/file_utils.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/utils/ignore_utils.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/code/utils/text_utils.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/config/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/config/schema.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/config/validator.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/_storage_path.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/artifact_store.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/history_store.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/queue.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/setup.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/context/terminal_logger.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/daemon/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/db/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/db/adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/api.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/docker.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/doctor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/main.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/providers/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/providers/_registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/providers/aws.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/providers/azure.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/providers/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/providers/gcp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/deploy/schema.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/a2u_server.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/discovery.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/a2a.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/a2u.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/agents_api.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/mcp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/openai_compat.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/recipe.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/providers/tools_mcp.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/endpoints/server.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/flow/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/flow/client.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/flow/components/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/flow/converter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/flow/helpers.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/_config_builder.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/autogen_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/crewai_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/framework_adapters/validators.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/gateway/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/inc/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/inc/config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/inc/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/bridges/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/bridges/approvals_bridge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/bridges/hooks_query.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/bridges/kanban_bridge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/bridges/schedules_runner.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/bridges/usage_bridge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/bridges/workflows_service.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/context_files.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/gateway_host.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/host_app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/pages/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/pages/bot_health.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integration/pages/workflow_runs.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/_session_info.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/_tool_aliases.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/_unified_registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/backend_registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/claude_code.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/codex_cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/compute/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/compute/daytona.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/compute/docker.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/compute/e2b.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/compute/flyio.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/compute/local.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/compute/modal_compute.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/cursor_cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/db_session_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/gemini_cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/hosted_agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/local_agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/managed_agents.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/managed_local.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/integrations/sandboxed_agent.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/jobs/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/jobs/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/jobs/path_validation.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/jobs/router.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/jobs/server.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/jobs/store.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/kanban/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/llm/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/llm/catalogue.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/llm/config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/llm/credentials.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/llm/env.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/llm/gateways.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/llm/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/agents.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/capabilities.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/knowledge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/memory.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/prompts.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/resources.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/auth/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/auth/api_key.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/auth/oauth.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/auth/oidc.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/auth/scopes.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/elicitation.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/icons.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/recipe_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/recipe_cli.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/sampling.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/server.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/tasks.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/tool_index.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/transports/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/transports/http_stream.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/mcp_server/transports/stdio.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/n8n/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/n8n/client.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/n8n/converter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/n8n/preview.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/n8n/reverse_converter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/observability/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/observability/hooks.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/observability/langextract.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/observability/langfuse.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/_valkey_client.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/_sql_base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/async_mysql.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/async_postgres.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/async_sqlite.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/json_store.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/mysql.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/postgres.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/singlestore.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/sqlite.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/supabase.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/surrealdb.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/conversation/turso.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/factory.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/hooks/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/hooks/agent_hooks.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/cassandra.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/chroma.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/clickhouse.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/couchbase.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/lancedb.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/milvus.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/pgvector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/pinecone.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/qdrant.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/redis_vector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/knowledge/weaviate.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/migrations/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/migrations/manager.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/orchestrator.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/async_mongodb.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/dynamodb.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/firestore.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/gcs.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/memory.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/mongodb.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/redis.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/upstash.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/state/valkey.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/tests/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/tests/test_all_backends.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/profiler.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/push/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/push/client.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/push/transports.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/bridge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/core.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/exceptions.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/history.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/operations.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/policy.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/runtime.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/security.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/serve.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/recipe/server.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/analyzer.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/applier.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/judge.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/plan.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/player.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/reader.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/storage.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/replay/writer.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/runtime/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/runtime/__main__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/_compat.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/_registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/_shell.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/daytona.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/docker.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/e2b.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/modal.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/sandlock.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/ssh.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/sandbox/subprocess.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/_base_scheduler.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/_dispatch.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/agent_scheduler.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/async_agent_scheduler.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/base.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/blueprint_catalogue.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/condition_gate.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/daemon_manager.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/deployment.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/executor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/run_policy.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/shared.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/state_manager.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/suggestion_engine.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/scheduler/yaml_loader.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/security/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/security/audit.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/security/injection.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/security/protected.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/setup/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/setup/build.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/setup/post_install.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/setup.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/ai_generator.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/dedupe.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/discovery.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/drift.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/engine.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/enhanced_templates.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/example_verifier.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/manifest.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/reports.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/templates.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/undo_redo.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/standardise/validator.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/storage/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/storage/dynamodb_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/storage/mongodb_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/storage/postgresql_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/storage/redis_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/storage/valkey_adapter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/batch_source.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/cli_docs_source.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/discovery.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/docs_source.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/examples_source.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/executor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/report_viewer.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/reporter.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/suite_runner/runner.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/cache.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/dependency_checker.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/discovery.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/loader.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/resolver.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/security.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/tool_override.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/templates/tools_doctor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tool_registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tool_resolver.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tools/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tools/audio.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tools/glob_tool.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tools/grep_tool.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tools/kanban_tools.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tools/multiedit.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/tools/skill_manage.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/_ollama.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/agents/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/agents/grader.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/agents/hook.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/agents/models.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/agents/orchestrator.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/agents/storage.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/llm/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train/llm/trainer.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/train_vision.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui/_aiui_datastore.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui/_external_agents.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui/callbacks.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui/context.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui/database_config.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_agents/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_agents/default_app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_bot/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_bot/default_app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_chat/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_chat/default_app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_dashboard/default_app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_realtime/__init__.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/ui_realtime/default_app.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/praisonai/upload_vision.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/setup.cfg +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_agents_playbook.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_approval_system.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_basic.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_cli_features.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_custom_tools_fix.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_double_api_fix.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_n8n_agent_invoke.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_n8n_cli_feature.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_n8n_integration.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_phase2_refactor.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_recipe.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_registry.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_runner.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_sandboxed_agent_compatibility.py +0 -0
- {praisonai-4.6.129 → praisonai-4.6.131}/tests/test_serve_features.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PraisonAI
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.131
|
|
4
4
|
Summary: PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration.
|
|
5
5
|
Author: Mervin Praison
|
|
6
6
|
License: MIT
|
|
@@ -11,9 +11,9 @@ Description-Content-Type: text/markdown
|
|
|
11
11
|
Requires-Dist: rich>=13.7
|
|
12
12
|
Requires-Dist: markdown>=3.5
|
|
13
13
|
Requires-Dist: pyparsing>=3.0.0
|
|
14
|
-
Requires-Dist: praisonaiagents>=1.6.
|
|
15
|
-
Requires-Dist: praisonai-code>=0.0.
|
|
16
|
-
Requires-Dist: praisonai-bot>=0.0.
|
|
14
|
+
Requires-Dist: praisonaiagents>=1.6.134
|
|
15
|
+
Requires-Dist: praisonai-code>=0.0.30
|
|
16
|
+
Requires-Dist: praisonai-bot>=0.0.15
|
|
17
17
|
Requires-Dist: python-dotenv>=0.19.0
|
|
18
18
|
Requires-Dist: litellm<2,>=1.83.14
|
|
19
19
|
Requires-Dist: PyYAML>=6.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PraisonAI
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.131
|
|
4
4
|
Summary: PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration.
|
|
5
5
|
Author: Mervin Praison
|
|
6
6
|
License: MIT
|
|
@@ -11,9 +11,9 @@ Description-Content-Type: text/markdown
|
|
|
11
11
|
Requires-Dist: rich>=13.7
|
|
12
12
|
Requires-Dist: markdown>=3.5
|
|
13
13
|
Requires-Dist: pyparsing>=3.0.0
|
|
14
|
-
Requires-Dist: praisonaiagents>=1.6.
|
|
15
|
-
Requires-Dist: praisonai-code>=0.0.
|
|
16
|
-
Requires-Dist: praisonai-bot>=0.0.
|
|
14
|
+
Requires-Dist: praisonaiagents>=1.6.134
|
|
15
|
+
Requires-Dist: praisonai-code>=0.0.30
|
|
16
|
+
Requires-Dist: praisonai-bot>=0.0.15
|
|
17
17
|
Requires-Dist: python-dotenv>=0.19.0
|
|
18
18
|
Requires-Dist: litellm<2,>=1.83.14
|
|
19
19
|
Requires-Dist: PyYAML>=6.0
|
|
@@ -596,7 +596,7 @@ class AgentsGenerator:
|
|
|
596
596
|
assert_framework_available(adapter.name)
|
|
597
597
|
|
|
598
598
|
# Validate cli_backend compatibility
|
|
599
|
-
self._validate_cli_backend_compatibility(config, adapter.name)
|
|
599
|
+
self._validate_cli_backend_compatibility(config, adapter.name, adapter=adapter)
|
|
600
600
|
|
|
601
601
|
# Initialize observability hooks
|
|
602
602
|
from .observability.hooks import init_observability
|
|
@@ -676,7 +676,7 @@ class AgentsGenerator:
|
|
|
676
676
|
|
|
677
677
|
return resolved_adapter
|
|
678
678
|
|
|
679
|
-
def _validate_cli_backend_compatibility(self, config, framework):
|
|
679
|
+
def _validate_cli_backend_compatibility(self, config, framework, *, adapter=None):
|
|
680
680
|
"""Validate that cli_backend and runtime are only used with compatible frameworks."""
|
|
681
681
|
# Check if any agent/role defines cli_backend or runtime
|
|
682
682
|
all_entities = {
|
|
@@ -712,7 +712,26 @@ class AgentsGenerator:
|
|
|
712
712
|
for provider_config in providers_config.values()
|
|
713
713
|
)
|
|
714
714
|
|
|
715
|
-
|
|
715
|
+
# Ask the adapter whether it supports runtime features instead of
|
|
716
|
+
# hardcoding a framework-name check. Third-party adapters can opt in by
|
|
717
|
+
# setting ``SUPPORTS_RUNTIME_FEATURES = True``. Fall back to resolving
|
|
718
|
+
# the adapter from the registry for callers that pass only a name.
|
|
719
|
+
if adapter is None:
|
|
720
|
+
try:
|
|
721
|
+
adapter = self._get_framework_adapter(framework)
|
|
722
|
+
except Exception:
|
|
723
|
+
adapter = None
|
|
724
|
+
if adapter is not None:
|
|
725
|
+
supports_runtime_features = bool(
|
|
726
|
+
getattr(adapter, "SUPPORTS_RUNTIME_FEATURES", False)
|
|
727
|
+
)
|
|
728
|
+
else:
|
|
729
|
+
# Adapter could not be resolved (e.g. minimal/mock generator without a
|
|
730
|
+
# registry): preserve the historical native-only behaviour.
|
|
731
|
+
supports_runtime_features = str(framework).lower() == "praisonai"
|
|
732
|
+
|
|
733
|
+
if (has_cli_backend or has_runtime or has_model_runtime or has_provider_runtime) \
|
|
734
|
+
and not supports_runtime_features:
|
|
716
735
|
runtime_features = []
|
|
717
736
|
if has_cli_backend:
|
|
718
737
|
runtime_features.append('cli_backend')
|
|
@@ -724,12 +743,17 @@ class AgentsGenerator:
|
|
|
724
743
|
runtime_features.append('providers.*.runtime_default')
|
|
725
744
|
|
|
726
745
|
features_str = ', '.join(runtime_features)
|
|
727
|
-
self
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
746
|
+
logger = getattr(self, "logger", None)
|
|
747
|
+
if logger is not None:
|
|
748
|
+
logger.error(
|
|
749
|
+
f"Runtime features ({features_str}) are not supported for framework='{framework}'. "
|
|
750
|
+
f"Remove these fields from your YAML or switch to a framework whose adapter "
|
|
751
|
+
f"sets SUPPORTS_RUNTIME_FEATURES = True (e.g. framework='praisonai')."
|
|
752
|
+
)
|
|
731
753
|
raise ValueError(
|
|
732
|
-
f"Runtime features
|
|
754
|
+
f"Runtime features ({features_str}) are not supported for framework='{framework}'. "
|
|
755
|
+
f"Use a framework whose adapter sets SUPPORTS_RUNTIME_FEATURES = True "
|
|
756
|
+
f"(e.g. framework='praisonai')."
|
|
733
757
|
)
|
|
734
758
|
|
|
735
759
|
def _validate_agents_config(self, config):
|
|
@@ -854,9 +854,14 @@ class AutoGenerator(BaseAutoGenerator):
|
|
|
854
854
|
if requires_tools_extra and not is_available("praisonai_tools"):
|
|
855
855
|
logger.warning(f"Tools are not available for {framework}. To use tools, install:\n {install_hint}")
|
|
856
856
|
|
|
857
|
+
# Retain the resolved adapter as the canonical dispatch object (mirrors
|
|
858
|
+
# AgentsGenerator, which stores self.framework_adapter). Downstream code
|
|
859
|
+
# can consult it instead of only carrying a bare framework string.
|
|
860
|
+
self._adapter = adapter
|
|
857
861
|
self.topic = topic
|
|
858
862
|
self.agent_file = agent_file
|
|
859
|
-
|
|
863
|
+
# Authoritative framework name comes from the adapter, not the raw arg.
|
|
864
|
+
self.framework = adapter.name or framework or "praisonai"
|
|
860
865
|
self.pattern = pattern
|
|
861
866
|
self.single_agent = single_agent
|
|
862
867
|
|
|
@@ -1019,14 +1024,65 @@ class AutoGenerator(BaseAutoGenerator):
|
|
|
1019
1024
|
|
|
1020
1025
|
return merged_data
|
|
1021
1026
|
|
|
1027
|
+
def _get_tool_resolver(self):
|
|
1028
|
+
"""Lazily construct the canonical ToolResolver (single source of truth).
|
|
1029
|
+
|
|
1030
|
+
Kept lazy so importing auto.py stays cheap and so a resolver-construction
|
|
1031
|
+
failure never blocks generation — callers fall back to keyword hints.
|
|
1032
|
+
"""
|
|
1033
|
+
resolver = getattr(self, "_tool_resolver", None)
|
|
1034
|
+
if resolver is None:
|
|
1035
|
+
try:
|
|
1036
|
+
from .tool_resolver import ToolResolver
|
|
1037
|
+
resolver = ToolResolver()
|
|
1038
|
+
except Exception as e: # pragma: no cover - defensive
|
|
1039
|
+
logger.debug("ToolResolver unavailable (%s); using keyword hints only.", e)
|
|
1040
|
+
resolver = False # sentinel: attempted, not available
|
|
1041
|
+
self._tool_resolver = resolver
|
|
1042
|
+
return resolver or None
|
|
1043
|
+
|
|
1044
|
+
def _available_tools(self) -> List[str]:
|
|
1045
|
+
"""Return the real, installed tool names from the canonical ToolResolver.
|
|
1046
|
+
|
|
1047
|
+
This is the single source of truth shared with AgentsGenerator. Returns
|
|
1048
|
+
an empty list if the resolver is unavailable so callers can fall back.
|
|
1049
|
+
"""
|
|
1050
|
+
resolver = self._get_tool_resolver()
|
|
1051
|
+
if resolver is None:
|
|
1052
|
+
return []
|
|
1053
|
+
try:
|
|
1054
|
+
return sorted(resolver.list_available().keys())
|
|
1055
|
+
except Exception as e: # pragma: no cover - defensive
|
|
1056
|
+
logger.debug("ToolResolver.list_available() failed (%s).", e)
|
|
1057
|
+
return []
|
|
1058
|
+
|
|
1022
1059
|
def discover_tools_for_topic(self) -> List[str]:
|
|
1023
1060
|
"""
|
|
1024
|
-
Discover appropriate tools for the topic
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1061
|
+
Discover appropriate tools for the topic.
|
|
1062
|
+
|
|
1063
|
+
Drives recommendations through the canonical ToolResolver (single source
|
|
1064
|
+
of truth) so only tools that are actually installed are surfaced. Keyword
|
|
1065
|
+
hints are used to prioritise, but the returned set is intersected with the
|
|
1066
|
+
real registry when it is available, avoiding recommendations for tools the
|
|
1067
|
+
user does not have. Falls back to keyword hints when the resolver cannot
|
|
1068
|
+
be constructed.
|
|
1028
1069
|
"""
|
|
1029
|
-
return
|
|
1070
|
+
return self._discover_tools_for_topic(self._available_tools())
|
|
1071
|
+
|
|
1072
|
+
def _discover_tools_for_topic(self, available: List[str]) -> List[str]:
|
|
1073
|
+
keyword_tools = get_tools_for_task(self.topic)
|
|
1074
|
+
if not available:
|
|
1075
|
+
# Resolver unavailable — preserve legacy keyword-only behaviour.
|
|
1076
|
+
return keyword_tools
|
|
1077
|
+
|
|
1078
|
+
available_set = set(available)
|
|
1079
|
+
# Prefer keyword-matched tools that actually exist, preserving order.
|
|
1080
|
+
prioritized = [t for t in keyword_tools if t in available_set]
|
|
1081
|
+
if prioritized:
|
|
1082
|
+
return prioritized
|
|
1083
|
+
# No keyword hit resolves to a real tool: surface the real registry so the
|
|
1084
|
+
# LLM plans only with tools the user can actually run.
|
|
1085
|
+
return available
|
|
1030
1086
|
|
|
1031
1087
|
def get_user_content(self):
|
|
1032
1088
|
"""
|
|
@@ -1055,19 +1111,31 @@ class AutoGenerator(BaseAutoGenerator):
|
|
|
1055
1111
|
|
|
1056
1112
|
workflow_guidance = pattern_guidance.get(self.pattern, pattern_guidance["sequential"])
|
|
1057
1113
|
|
|
1114
|
+
# Resolve the installed tool registry once (single source of truth) and
|
|
1115
|
+
# reuse it for both discovery and the prompt reference to avoid calling
|
|
1116
|
+
# ToolResolver.list_available() twice per invocation.
|
|
1117
|
+
available_tools = self._available_tools()
|
|
1118
|
+
|
|
1058
1119
|
# Get recommended tools based on task analysis
|
|
1059
|
-
recommended_tools = self.
|
|
1120
|
+
recommended_tools = self._discover_tools_for_topic(available_tools)
|
|
1060
1121
|
recommended_agent_count = recommend_agent_count(self.topic)
|
|
1061
1122
|
complexity = self.analyze_complexity(self.topic)
|
|
1062
|
-
|
|
1063
|
-
#
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1123
|
+
|
|
1124
|
+
# Prefer the real, installed tool registry so the LLM only plans with
|
|
1125
|
+
# tools the user can actually run. Fall back to the static category
|
|
1126
|
+
# reference when the resolver is unavailable.
|
|
1127
|
+
if available_tools:
|
|
1128
|
+
tools_header = "AVAILABLE TOOLS (installed)"
|
|
1129
|
+
tools_reference = "\n".join(f" - {t}" for t in available_tools)
|
|
1130
|
+
legacy_tools = ", ".join(available_tools)
|
|
1131
|
+
else:
|
|
1132
|
+
tools_header = "AVAILABLE TOOLS BY CATEGORY"
|
|
1133
|
+
all_tools_by_category = []
|
|
1134
|
+
for category, tools in TOOL_CATEGORIES.items():
|
|
1135
|
+
all_tools_by_category.append(f" {category}: {', '.join(tools)}")
|
|
1136
|
+
tools_reference = "\n".join(all_tools_by_category)
|
|
1137
|
+
# Also include legacy tools for backward compatibility
|
|
1138
|
+
legacy_tools = ", ".join(AVAILABLE_TOOLS)
|
|
1071
1139
|
|
|
1072
1140
|
user_content = f"""Analyze and generate a team structure for: "{self.topic}"
|
|
1073
1141
|
|
|
@@ -1100,7 +1168,7 @@ Each agent should have:
|
|
|
1100
1168
|
- 1 focused task with clear description and expected output
|
|
1101
1169
|
- Appropriate tools from the recommended list
|
|
1102
1170
|
|
|
1103
|
-
|
|
1171
|
+
{tools_header}:
|
|
1104
1172
|
{tools_reference}
|
|
1105
1173
|
|
|
1106
1174
|
LEGACY TOOLS (for backward compatibility):
|
|
@@ -32,6 +32,13 @@ class PraisonAIAdapter(BaseFrameworkAdapter):
|
|
|
32
32
|
# Native async path: arun() awaits team.astart() directly (no thread offload).
|
|
33
33
|
SUPPORTS_ASYNC = True
|
|
34
34
|
|
|
35
|
+
# Native PraisonAI is the only in-tree adapter that supports workflow YAML
|
|
36
|
+
# execution and runtime features (cli_backend / runtime / models.*.runtime /
|
|
37
|
+
# providers.*.runtime_default). Capability call sites read these flags
|
|
38
|
+
# instead of hardcoding ``framework == "praisonai"``.
|
|
39
|
+
SUPPORTS_WORKFLOW = True
|
|
40
|
+
SUPPORTS_RUNTIME_FEATURES = True
|
|
41
|
+
|
|
35
42
|
@property
|
|
36
43
|
def name(self) -> str:
|
|
37
44
|
"""Return adapter name."""
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"""Workflow YAML framework field validation."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
from typing import Any, Dict, Optional # noqa: F401
|
|
7
|
+
|
|
8
|
+
logger = logging.getLogger(__name__)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def validate_workflow_framework(
|
|
12
|
+
framework: Optional[str],
|
|
13
|
+
*,
|
|
14
|
+
source: str = "workflow YAML",
|
|
15
|
+
registry: Any = None,
|
|
16
|
+
) -> None:
|
|
17
|
+
"""
|
|
18
|
+
Warn then fail when a workflow file declares a framework whose adapter does
|
|
19
|
+
not advertise workflow support.
|
|
20
|
+
|
|
21
|
+
Instead of hardcoding ``framework == "praisonai"``, ask the adapter via its
|
|
22
|
+
``SUPPORTS_WORKFLOW`` capability flag. Third-party adapters registered via
|
|
23
|
+
the ``praisonai.framework_adapters`` entry-point group can opt in by setting
|
|
24
|
+
``SUPPORTS_WORKFLOW = True``. The native ``praisonai`` adapter sets it, so
|
|
25
|
+
behaviour is unchanged for existing configs.
|
|
26
|
+
"""
|
|
27
|
+
if not framework:
|
|
28
|
+
return
|
|
29
|
+
|
|
30
|
+
# Consult the adapter's capability flag. If resolution fails for any reason,
|
|
31
|
+
# fall back to the historical native-only behaviour.
|
|
32
|
+
try:
|
|
33
|
+
if registry is None:
|
|
34
|
+
from .registry import get_default_registry
|
|
35
|
+
|
|
36
|
+
registry = get_default_registry()
|
|
37
|
+
adapter = registry.create(framework)
|
|
38
|
+
if getattr(adapter, "SUPPORTS_WORKFLOW", False):
|
|
39
|
+
return
|
|
40
|
+
except Exception:
|
|
41
|
+
if str(framework).lower() == "praisonai":
|
|
42
|
+
return
|
|
43
|
+
|
|
44
|
+
# Discover the set of frameworks whose adapters advertise workflow support,
|
|
45
|
+
# so the guidance reflects capability flags rather than assuming praisonai
|
|
46
|
+
# is the only valid choice.
|
|
47
|
+
supported = ""
|
|
48
|
+
workflow_frameworks: list[str] = []
|
|
49
|
+
try:
|
|
50
|
+
from .registry import list_framework_choices
|
|
51
|
+
except ImportError:
|
|
52
|
+
# Only the registry module being unavailable is tolerated here; genuine
|
|
53
|
+
# discovery/initialization errors must surface rather than be masked as
|
|
54
|
+
# a simple unsupported-framework config mistake.
|
|
55
|
+
list_framework_choices = None # type: ignore[assignment]
|
|
56
|
+
|
|
57
|
+
if list_framework_choices is not None:
|
|
58
|
+
for name in list_framework_choices(include_unavailable=True):
|
|
59
|
+
try:
|
|
60
|
+
candidate = registry.create(name) if registry is not None else None
|
|
61
|
+
except Exception:
|
|
62
|
+
candidate = None
|
|
63
|
+
if (candidate is not None and getattr(candidate, "SUPPORTS_WORKFLOW", False)) \
|
|
64
|
+
or (candidate is None and str(name).lower() == "praisonai"):
|
|
65
|
+
workflow_frameworks.append(name)
|
|
66
|
+
if workflow_frameworks:
|
|
67
|
+
supported = (
|
|
68
|
+
f" Frameworks supporting workflow execution: "
|
|
69
|
+
f"{', '.join(sorted(set(workflow_frameworks)))}."
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
message = (
|
|
73
|
+
f"framework='{framework}' in {source} is not supported for workflow execution. "
|
|
74
|
+
"The workflow engine requires an adapter whose SUPPORTS_WORKFLOW flag is set "
|
|
75
|
+
"(the native 'praisonai' adapter does). "
|
|
76
|
+
"Use a non-workflow agents.yaml with a supported registered framework, "
|
|
77
|
+
f"or set framework: praisonai.{supported}"
|
|
78
|
+
)
|
|
79
|
+
logger.warning(message)
|
|
80
|
+
raise ValueError(message)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def framework_from_config(config: Dict[str, Any]) -> str:
|
|
84
|
+
"""Return normalised framework name from a parsed YAML config dict."""
|
|
85
|
+
return str(config.get("framework") or "praisonai").lower()
|
|
@@ -235,8 +235,11 @@ class JobExecutor:
|
|
|
235
235
|
await self._notify_progress(job)
|
|
236
236
|
|
|
237
237
|
try:
|
|
238
|
-
#
|
|
239
|
-
|
|
238
|
+
# Prefer the native praisonaiagents path when the framework's adapter
|
|
239
|
+
# advertises workflow support (SUPPORTS_WORKFLOW) rather than
|
|
240
|
+
# hardcoding ``framework == "praisonai"``. Third-party adapters that
|
|
241
|
+
# opt in are routed natively; everything else uses the legacy path.
|
|
242
|
+
if self._framework_supports_native(framework):
|
|
240
243
|
result = await self._run_praisonai_agents(job, agent_file)
|
|
241
244
|
else:
|
|
242
245
|
# Use legacy PraisonAI for crewai/autogen
|
|
@@ -252,6 +255,22 @@ class JobExecutor:
|
|
|
252
255
|
except Exception:
|
|
253
256
|
pass
|
|
254
257
|
|
|
258
|
+
@staticmethod
|
|
259
|
+
def _framework_supports_native(framework: str) -> bool:
|
|
260
|
+
"""Return True if the framework's adapter advertises workflow support.
|
|
261
|
+
|
|
262
|
+
Reads the adapter's ``SUPPORTS_WORKFLOW`` capability flag instead of
|
|
263
|
+
hardcoding ``framework == "praisonai"``. Falls back to the historical
|
|
264
|
+
native-only behaviour if adapter resolution fails.
|
|
265
|
+
"""
|
|
266
|
+
try:
|
|
267
|
+
from praisonai.framework_adapters.registry import get_default_registry
|
|
268
|
+
|
|
269
|
+
adapter = get_default_registry().create(framework)
|
|
270
|
+
return bool(getattr(adapter, "SUPPORTS_WORKFLOW", False))
|
|
271
|
+
except Exception:
|
|
272
|
+
return str(framework).lower() == "praisonai"
|
|
273
|
+
|
|
255
274
|
async def _run_recipe(self, job: Job) -> Any:
|
|
256
275
|
"""Run a recipe-based job."""
|
|
257
276
|
try:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "4.6.131"
|
|
@@ -12,9 +12,9 @@ dependencies = [
|
|
|
12
12
|
"rich>=13.7",
|
|
13
13
|
"markdown>=3.5",
|
|
14
14
|
"pyparsing>=3.0.0",
|
|
15
|
-
"praisonaiagents>=1.6.
|
|
16
|
-
"praisonai-code>=0.0.
|
|
17
|
-
"praisonai-bot>=0.0.
|
|
15
|
+
"praisonaiagents>=1.6.134",
|
|
16
|
+
"praisonai-code>=0.0.30",
|
|
17
|
+
"praisonai-bot>=0.0.15",
|
|
18
18
|
"python-dotenv>=0.19.0",
|
|
19
19
|
"litellm>=1.83.14,<2",
|
|
20
20
|
"PyYAML>=6.0",
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"""Workflow YAML framework field validation."""
|
|
2
|
-
|
|
3
|
-
from __future__ import annotations
|
|
4
|
-
|
|
5
|
-
import logging
|
|
6
|
-
from typing import Any, Dict, Optional
|
|
7
|
-
|
|
8
|
-
logger = logging.getLogger(__name__)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def validate_workflow_framework(
|
|
12
|
-
framework: Optional[str],
|
|
13
|
-
*,
|
|
14
|
-
source: str = "workflow YAML",
|
|
15
|
-
) -> None:
|
|
16
|
-
"""
|
|
17
|
-
Warn then fail when a workflow file declares a non-native framework.
|
|
18
|
-
|
|
19
|
-
Multi-framework workflow dispatch is not implemented; only agents.yaml
|
|
20
|
-
via AgentsGenerator supports framework != praisonai today.
|
|
21
|
-
"""
|
|
22
|
-
if not framework or str(framework).lower() == "praisonai":
|
|
23
|
-
return
|
|
24
|
-
|
|
25
|
-
supported = ""
|
|
26
|
-
try:
|
|
27
|
-
from .registry import list_framework_choices
|
|
28
|
-
except ImportError:
|
|
29
|
-
# Only the registry module being unavailable is tolerated here; genuine
|
|
30
|
-
# discovery/initialization errors must surface rather than be masked as
|
|
31
|
-
# a simple unsupported-framework config mistake.
|
|
32
|
-
list_framework_choices = None # type: ignore[assignment]
|
|
33
|
-
|
|
34
|
-
if list_framework_choices is not None:
|
|
35
|
-
choices = [f for f in list_framework_choices(include_unavailable=True) if f != "praisonai"]
|
|
36
|
-
if choices:
|
|
37
|
-
supported = f" Available registered frameworks: {', '.join(sorted(choices))}."
|
|
38
|
-
|
|
39
|
-
message = (
|
|
40
|
-
f"framework='{framework}' in {source} is not supported for workflow execution. "
|
|
41
|
-
"Native PraisonAI Workflow engine only supports framework='praisonai'. "
|
|
42
|
-
"Use a non-workflow agents.yaml with a supported registered framework, "
|
|
43
|
-
f"or set framework: praisonai.{supported}"
|
|
44
|
-
)
|
|
45
|
-
logger.warning(message)
|
|
46
|
-
raise ValueError(message)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def framework_from_config(config: Dict[str, Any]) -> str:
|
|
50
|
-
"""Return normalised framework name from a parsed YAML config dict."""
|
|
51
|
-
return str(config.get("framework") or "praisonai").lower()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "4.6.129"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|