PraisonAI 4.6.146__tar.gz → 4.6.147__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.146 → praisonai-4.6.147}/PKG-INFO +6 -4
- {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/PKG-INFO +6 -4
- {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/SOURCES.txt +28 -9
- {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/requires.txt +5 -3
- praisonai-4.6.147/praisonai/README.md +5 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_bootstrap.py +16 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/auto.py +127 -69
- praisonai-4.6.147/praisonai/cli/commands/train.py +11 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/configuration/config.schema.json +1 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inc/models.py +79 -1
- praisonai-4.6.147/praisonai/public/fantasy.svg +3 -0
- praisonai-4.6.147/praisonai/public/game.svg +3 -0
- praisonai-4.6.147/praisonai/public/movie.svg +3 -0
- praisonai-4.6.147/praisonai/public/thriller.svg +3 -0
- praisonai-4.6.147/praisonai/scheduler/README.md +274 -0
- praisonai-4.6.147/praisonai/setup/config.yaml +60 -0
- praisonai-4.6.147/praisonai/setup/setup_conda_env.py +14 -0
- praisonai-4.6.147/praisonai/train/__init__.py +14 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/train.py +5 -4
- praisonai-4.6.147/praisonai/train_vision.py +14 -0
- praisonai-4.6.147/praisonai/ui/README.md +21 -0
- praisonai-4.6.147/praisonai/ui/config/chainlit.md +1 -0
- praisonai-4.6.147/praisonai/ui/config/translations/bn.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/en-US.json +229 -0
- praisonai-4.6.147/praisonai/ui/config/translations/gu.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/he-IL.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/hi.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/kn.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/ml.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/mr.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/ta.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/te.json +231 -0
- praisonai-4.6.147/praisonai/ui/config/translations/zh-CN.json +229 -0
- praisonai-4.6.147/praisonai/ui/public/fantasy.svg +3 -0
- praisonai-4.6.147/praisonai/ui/public/game.svg +3 -0
- praisonai-4.6.147/praisonai/ui/public/logo_dark.png +0 -0
- praisonai-4.6.147/praisonai/ui/public/logo_light.png +0 -0
- praisonai-4.6.147/praisonai/ui/public/movie.svg +3 -0
- praisonai-4.6.147/praisonai/ui/public/praison.css +3 -0
- praisonai-4.6.147/praisonai/ui/public/thriller.svg +3 -0
- praisonai-4.6.147/praisonai/ui/tools.md +133 -0
- praisonai-4.6.147/praisonai/upload_vision.py +14 -0
- praisonai-4.6.147/praisonai/version.py +1 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/pyproject.toml +9 -4
- praisonai-4.6.146/praisonai/cli/commands/train.py +0 -613
- praisonai-4.6.146/praisonai/setup/setup_conda_env.py +0 -25
- praisonai-4.6.146/praisonai/train/__init__.py +0 -77
- praisonai-4.6.146/praisonai/train/_ollama.py +0 -97
- praisonai-4.6.146/praisonai/train/agents/__init__.py +0 -94
- praisonai-4.6.146/praisonai/train/agents/grader.py +0 -63
- praisonai-4.6.146/praisonai/train/agents/hook.py +0 -320
- praisonai-4.6.146/praisonai/train/agents/models.py +0 -328
- praisonai-4.6.146/praisonai/train/agents/orchestrator.py +0 -394
- praisonai-4.6.146/praisonai/train/agents/storage.py +0 -282
- praisonai-4.6.146/praisonai/train/llm/__init__.py +0 -23
- praisonai-4.6.146/praisonai/train/llm/trainer.py +0 -587
- praisonai-4.6.146/praisonai/train_vision.py +0 -333
- praisonai-4.6.146/praisonai/upload_vision.py +0 -141
- praisonai-4.6.146/praisonai/version.py +0 -1
- {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/dependency_links.txt +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/entry_points.txt +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/PraisonAI.egg-info/top_level.txt +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/README.md +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/__main__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_approval_spec.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_async_bridge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/api_md.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/docs_extractor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/docs_generator.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/generator.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/python_docs_extractor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/python_extractor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/rust_docs_extractor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/rust_extractor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/topic_normalizer.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/ts_docs_extractor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_dev/parity/typescript_extractor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_entrypoint.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_framework_availability.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_lazy_cache.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_logging.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/_safe_loader.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/safe_edit.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/server.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/acp/session.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/readers.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/rerankers.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/retrievers.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/adapters/vector_stores.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/agent_scheduler.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/agents_generator.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/api/agent_invoke.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/api/call.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/app/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/app/agentos.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/async_agent_scheduler.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/audit/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/audit/agent_centric.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/bots/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/benchmark.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/cdp_agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/cdp_utils.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/diagnostics.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/launcher.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/playwright_agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/profiling.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/protocol.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/report.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/server.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/sessions.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/browser/video.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/a2a.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/assistants.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/audio.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/batches.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/completions.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/container_files.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/containers.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/embeddings.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/files.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/fine_tuning.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/guardrails.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/images.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/mcp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/messages.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/moderations.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/ocr.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/passthrough.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/rag.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/realtime.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/rerank.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/responses.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/search.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/skills.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/vector_store_files.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/vector_stores.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/capabilities/videos.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/claw/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/_paths.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/_shim.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/_warnings.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/approval_backend.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/branding.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/acp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/agents.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/attach.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/audit.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/auth.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/batch.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/benchmark.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/bot.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/browser.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/call.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/chat.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/checkpoint.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/claw.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/code.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/command.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/commit.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/completion.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/context.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/daemon.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/dashboard.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/debug.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/deploy.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/diag.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/docs.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/doctor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/endpoints.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/environment.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/eval.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/examples.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/flow.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/gateway.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/github.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/hooks.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/identity.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/init.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/kanban.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/knowledge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/langextract.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/langfuse.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/loop.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/lsp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/managed.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/mcp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/memory.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/mint_link.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/models.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/n8n.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/obs.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/onboard.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/package.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/pairing.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/paths.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/permissions.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/plugins.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/port.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/profile.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/publish.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/rag.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/realtime.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/recipe.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/replay.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/research.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/retrieval.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/rules.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/run.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/sandbox.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/schedule.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/serve.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/session.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/setup.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/skills.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/standardise.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/templates.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/test.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/todo.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/traces.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/tracker.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/ui.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/up.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/validate.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/version.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/commands/workflow.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/config_loader.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/configuration/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/execution/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/fallback_schema.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/acp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/agent_scheduler.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/agent_tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/approval.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/background.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/bots_cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/deploy.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/endpoints.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/eval.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/gateway.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/ollama.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/onboard.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/persistence.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/recipe.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/recipe_optimizer.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/sandbox_cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/serve.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/templates.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/tui/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/tui/app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/features/workflow.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/interactive/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/interactive/async_tui.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/interactive/core.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/langfuse_client.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/direct_prompt.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/dispatch/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/dispatch/argparse_builder.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/dispatch/legacy_dispatch.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/framework_run.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/inbuilt_tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/interactive_legacy.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/subcommand_handlers.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/legacy/workflow_commands.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/main.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/output/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/schedule_cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/schema_provider.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/session/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/state/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/ui/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/unified_schema.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli/utils/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/cli_backends/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/agent_tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/diff/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/diff/diff_strategy.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/apply_diff.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/execute_command.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/list_files.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/read_file.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/search_replace.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/tools/write_file.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/file_utils.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/ignore_utils.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/code/utils/text_utils.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/config/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/config/schema.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/config/validator.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/_storage_path.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/artifact_store.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/history_store.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/queue.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/setup.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/context/terminal_logger.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/daemon/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/db/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/db/adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/api.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/docker.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/doctor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/main.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/models.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/_registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/aws.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/azure.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/providers/gcp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/deploy/schema.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/a2u_server.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/discovery.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/a2a.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/a2u.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/agents_api.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/mcp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/openai_compat.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/recipe.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/providers/tools_mcp.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/endpoints/server.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/client.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/components/PraisonAI/praisonai_agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/components/PraisonAI/praisonai_agents.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/components/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/converter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/flow/helpers.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/_config_builder.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/autogen_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/crewai_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/praisonai_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/validators.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/framework_adapters/workflow_framework.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/gateway/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inc/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/inc/config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/approvals_bridge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/hooks_query.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/kanban_bridge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/schedules_runner.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/usage_bridge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/bridges/workflows_service.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/context_files.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/gateway_host.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/host_app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/pages/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/pages/bot_health.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integration/pages/workflow_runs.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_cli_loaders.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_session_info.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_tool_aliases.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/_unified_registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/backend_registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/claude_code.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/codex_cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/daytona.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/docker.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/e2b.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/flyio.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/local.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/compute/modal_compute.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/cursor_cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/db_session_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/gemini_cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/hosted_agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/local_agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/managed_agents.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/managed_local.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/integrations/sandboxed_agent.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/executor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/models.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/path_validation.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/router.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/server.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/jobs/store.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/kanban/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/catalogue.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/credentials.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/env.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/gateways.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/llm/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/agents.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/capabilities.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/cli_tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/extended_capabilities.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/knowledge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/memory.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/prompts.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/resources.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/adapters/tools_bridge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/api_key.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/oauth.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/oidc.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/auth/scopes.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/elicitation.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/icons.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/recipe_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/recipe_cli.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/sampling.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/server.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/tasks.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/tool_index.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/transports/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/transports/http_stream.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/mcp_server/transports/stdio.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/client.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/converter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/preview.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/n8n/reverse_converter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/hooks.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/langextract.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/observability/langfuse.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/_valkey_client.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/_sql_base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/_sqlite_base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/async_mysql.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/async_postgres.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/async_sqlite.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/json_store.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/mysql.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/postgres.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/singlestore.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/sqlite.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/supabase.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/surrealdb.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/sync_sqlite.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/conversation/turso.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/factory.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/hooks/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/hooks/agent_hooks.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/cassandra.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/chroma.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/clickhouse.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/cosmosdb_vector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/couchbase.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/lancedb.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/langchain_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/lightrag_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/llamaindex_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/milvus.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/mongodb_vector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/pgvector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/pinecone.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/qdrant.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/redis_vector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/singlestore_vector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/surrealdb_vector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/upstash_vector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/valkey_vector.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/knowledge/weaviate.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/migrations/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/migrations/manager.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/orchestrator.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/async_mongodb.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/dynamodb.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/firestore.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/gcs.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/memory.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/mongodb.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/redis.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/upstash.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/state/valkey.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/test_all_backends.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/test_registry_lazy.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/persistence/tests/test_valkey_backends.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/profiler.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/push/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/push/client.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/push/transports.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/bridge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/core.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/exceptions.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/history.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/models.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/operations.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/policy.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/runtime.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/security.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/serve.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/recipe/server.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/analyzer.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/applier.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/judge.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/plan.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/player.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/reader.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/storage.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/replay/writer.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/runtime/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/runtime/__main__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/_compat.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/_registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/_shell.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/daytona.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/docker.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/e2b.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/modal.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/sandlock.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/ssh.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/sandbox/subprocess.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/_base_scheduler.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/_delivery.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/_dispatch.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/agent_scheduler.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/async_agent_scheduler.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/base.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/blueprint_catalogue.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/condition_gate.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/daemon_manager.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/deployment.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/executor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/run_policy.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/shared.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/state_manager.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/suggestion_engine.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/scheduler/yaml_loader.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/audit.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/injection.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/security/protected.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup/build.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup/post_install.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/setup.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/ai_generator.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/dedupe.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/discovery.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/drift.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/engine.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/enhanced_templates.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/example_verifier.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/manifest.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/models.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/reports.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/templates.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/undo_redo.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/standardise/validator.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/dynamodb_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/mongodb_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/postgresql_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/redis_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/storage/valkey_adapter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/batch_source.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/cli_docs_source.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/discovery.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/docs_source.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/examples_source.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/executor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/models.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/report_viewer.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/reporter.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/suite_runner/runner.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/cache.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/dependency_checker.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/discovery.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/loader.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/resolver.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/security.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/tool_override.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/templates/tools_doctor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tool_registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tool_resolver.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/audio.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/glob_tool.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/grep_tool.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/kanban_tools.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/multiedit.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/tools/skill_manage.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/_aiui_datastore.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/_external_agents.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/callbacks.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/context.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui/database_config.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_agents/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_agents/default_app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_bot/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_bot/default_app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_chat/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_chat/default_app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_dashboard/default_app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_realtime/__init__.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/praisonai/ui_realtime/default_app.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/setup.cfg +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_agents_playbook.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_approval_system.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_basic.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_cli_features.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_custom_tools_fix.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_double_api_fix.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_n8n_agent_invoke.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_n8n_cli_feature.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_n8n_integration.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_phase2_refactor.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_recipe.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_registry.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_runner.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/tests/test_sandboxed_agent_compatibility.py +0 -0
- {praisonai-4.6.146 → praisonai-4.6.147}/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.147
|
|
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,10 @@ 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.150
|
|
15
|
+
Requires-Dist: praisonai-code>=0.0.46
|
|
16
|
+
Requires-Dist: praisonai-bot>=0.0.31
|
|
17
|
+
Requires-Dist: praisonai-train>=0.0.2
|
|
17
18
|
Requires-Dist: python-dotenv>=0.19.0
|
|
18
19
|
Requires-Dist: litellm<2,>=1.83.14
|
|
19
20
|
Requires-Dist: PyYAML>=6.0
|
|
@@ -81,6 +82,7 @@ Requires-Dist: flaml[automl]>=2.3.1; extra == "call"
|
|
|
81
82
|
Requires-Dist: pyngrok>=1.4.0; extra == "call"
|
|
82
83
|
Requires-Dist: rich; extra == "call"
|
|
83
84
|
Provides-Extra: train
|
|
85
|
+
Requires-Dist: praisonai-train[llm]; extra == "train"
|
|
84
86
|
Provides-Extra: crewai
|
|
85
87
|
Requires-Dist: crewai>=0.157.0; extra == "crewai"
|
|
86
88
|
Requires-Dist: praisonai-tools>=0.1.0; extra == "crewai"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PraisonAI
|
|
3
|
-
Version: 4.6.
|
|
3
|
+
Version: 4.6.147
|
|
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,10 @@ 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.150
|
|
15
|
+
Requires-Dist: praisonai-code>=0.0.46
|
|
16
|
+
Requires-Dist: praisonai-bot>=0.0.31
|
|
17
|
+
Requires-Dist: praisonai-train>=0.0.2
|
|
17
18
|
Requires-Dist: python-dotenv>=0.19.0
|
|
18
19
|
Requires-Dist: litellm<2,>=1.83.14
|
|
19
20
|
Requires-Dist: PyYAML>=6.0
|
|
@@ -81,6 +82,7 @@ Requires-Dist: flaml[automl]>=2.3.1; extra == "call"
|
|
|
81
82
|
Requires-Dist: pyngrok>=1.4.0; extra == "call"
|
|
82
83
|
Requires-Dist: rich; extra == "call"
|
|
83
84
|
Provides-Extra: train
|
|
85
|
+
Requires-Dist: praisonai-train[llm]; extra == "train"
|
|
84
86
|
Provides-Extra: crewai
|
|
85
87
|
Requires-Dist: crewai>=0.157.0; extra == "crewai"
|
|
86
88
|
Requires-Dist: praisonai-tools>=0.1.0; extra == "crewai"
|
|
@@ -6,6 +6,7 @@ PraisonAI.egg-info/dependency_links.txt
|
|
|
6
6
|
PraisonAI.egg-info/entry_points.txt
|
|
7
7
|
PraisonAI.egg-info/requires.txt
|
|
8
8
|
PraisonAI.egg-info/top_level.txt
|
|
9
|
+
praisonai/README.md
|
|
9
10
|
praisonai/__init__.py
|
|
10
11
|
praisonai/__main__.py
|
|
11
12
|
praisonai/_approval_spec.py
|
|
@@ -485,6 +486,10 @@ praisonai/persistence/tests/__init__.py
|
|
|
485
486
|
praisonai/persistence/tests/test_all_backends.py
|
|
486
487
|
praisonai/persistence/tests/test_registry_lazy.py
|
|
487
488
|
praisonai/persistence/tests/test_valkey_backends.py
|
|
489
|
+
praisonai/public/fantasy.svg
|
|
490
|
+
praisonai/public/game.svg
|
|
491
|
+
praisonai/public/movie.svg
|
|
492
|
+
praisonai/public/thriller.svg
|
|
488
493
|
praisonai/push/__init__.py
|
|
489
494
|
praisonai/push/client.py
|
|
490
495
|
praisonai/push/transports.py
|
|
@@ -523,6 +528,7 @@ praisonai/sandbox/modal.py
|
|
|
523
528
|
praisonai/sandbox/sandlock.py
|
|
524
529
|
praisonai/sandbox/ssh.py
|
|
525
530
|
praisonai/sandbox/subprocess.py
|
|
531
|
+
praisonai/scheduler/README.md
|
|
526
532
|
praisonai/scheduler/__init__.py
|
|
527
533
|
praisonai/scheduler/_base_scheduler.py
|
|
528
534
|
praisonai/scheduler/_delivery.py
|
|
@@ -546,6 +552,7 @@ praisonai/security/injection.py
|
|
|
546
552
|
praisonai/security/protected.py
|
|
547
553
|
praisonai/setup/__init__.py
|
|
548
554
|
praisonai/setup/build.py
|
|
555
|
+
praisonai/setup/config.yaml
|
|
549
556
|
praisonai/setup/post_install.py
|
|
550
557
|
praisonai/setup/setup_conda_env.py
|
|
551
558
|
praisonai/standardise/__init__.py
|
|
@@ -598,21 +605,33 @@ praisonai/tools/kanban_tools.py
|
|
|
598
605
|
praisonai/tools/multiedit.py
|
|
599
606
|
praisonai/tools/skill_manage.py
|
|
600
607
|
praisonai/train/__init__.py
|
|
601
|
-
praisonai/
|
|
602
|
-
praisonai/train/agents/__init__.py
|
|
603
|
-
praisonai/train/agents/grader.py
|
|
604
|
-
praisonai/train/agents/hook.py
|
|
605
|
-
praisonai/train/agents/models.py
|
|
606
|
-
praisonai/train/agents/orchestrator.py
|
|
607
|
-
praisonai/train/agents/storage.py
|
|
608
|
-
praisonai/train/llm/__init__.py
|
|
609
|
-
praisonai/train/llm/trainer.py
|
|
608
|
+
praisonai/ui/README.md
|
|
610
609
|
praisonai/ui/_aiui_datastore.py
|
|
611
610
|
praisonai/ui/_external_agents.py
|
|
612
611
|
praisonai/ui/callbacks.py
|
|
613
612
|
praisonai/ui/context.py
|
|
614
613
|
praisonai/ui/database_config.py
|
|
614
|
+
praisonai/ui/tools.md
|
|
615
615
|
praisonai/ui/components/aicoder.py
|
|
616
|
+
praisonai/ui/config/chainlit.md
|
|
617
|
+
praisonai/ui/config/translations/bn.json
|
|
618
|
+
praisonai/ui/config/translations/en-US.json
|
|
619
|
+
praisonai/ui/config/translations/gu.json
|
|
620
|
+
praisonai/ui/config/translations/he-IL.json
|
|
621
|
+
praisonai/ui/config/translations/hi.json
|
|
622
|
+
praisonai/ui/config/translations/kn.json
|
|
623
|
+
praisonai/ui/config/translations/ml.json
|
|
624
|
+
praisonai/ui/config/translations/mr.json
|
|
625
|
+
praisonai/ui/config/translations/ta.json
|
|
626
|
+
praisonai/ui/config/translations/te.json
|
|
627
|
+
praisonai/ui/config/translations/zh-CN.json
|
|
628
|
+
praisonai/ui/public/fantasy.svg
|
|
629
|
+
praisonai/ui/public/game.svg
|
|
630
|
+
praisonai/ui/public/logo_dark.png
|
|
631
|
+
praisonai/ui/public/logo_light.png
|
|
632
|
+
praisonai/ui/public/movie.svg
|
|
633
|
+
praisonai/ui/public/praison.css
|
|
634
|
+
praisonai/ui/public/thriller.svg
|
|
616
635
|
praisonai/ui_agents/__init__.py
|
|
617
636
|
praisonai/ui_agents/default_app.py
|
|
618
637
|
praisonai/ui_bot/__init__.py
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
rich>=13.7
|
|
2
2
|
markdown>=3.5
|
|
3
3
|
pyparsing>=3.0.0
|
|
4
|
-
praisonaiagents>=1.6.
|
|
5
|
-
praisonai-code>=0.0.
|
|
6
|
-
praisonai-bot>=0.0.
|
|
4
|
+
praisonaiagents>=1.6.150
|
|
5
|
+
praisonai-code>=0.0.46
|
|
6
|
+
praisonai-bot>=0.0.31
|
|
7
|
+
praisonai-train>=0.0.2
|
|
7
8
|
python-dotenv>=0.19.0
|
|
8
9
|
litellm<2,>=1.83.14
|
|
9
10
|
PyYAML>=6.0
|
|
@@ -213,6 +214,7 @@ sandlock>=0.1.0
|
|
|
213
214
|
asyncssh>=2.14.0
|
|
214
215
|
|
|
215
216
|
[train]
|
|
217
|
+
praisonai-train[llm]
|
|
216
218
|
|
|
217
219
|
[turso]
|
|
218
220
|
libsql-experimental>=0.0.50
|
|
@@ -43,3 +43,19 @@ def ensure_praisonai_bot() -> None:
|
|
|
43
43
|
root = str(bot_src)
|
|
44
44
|
if root not in sys.path:
|
|
45
45
|
sys.path.insert(0, root)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def ensure_praisonai_train() -> None:
|
|
49
|
+
"""Ensure ``praisonai_train`` can be imported in monorepo dev layouts."""
|
|
50
|
+
try:
|
|
51
|
+
import praisonai_train # noqa: F401
|
|
52
|
+
return
|
|
53
|
+
except ImportError:
|
|
54
|
+
pass
|
|
55
|
+
|
|
56
|
+
wrapper_src = Path(__file__).resolve().parents[1] # .../src/praisonai
|
|
57
|
+
train_src = wrapper_src.parent / "praisonai-train"
|
|
58
|
+
if (train_src / "praisonai_train").is_dir():
|
|
59
|
+
root = str(train_src)
|
|
60
|
+
if root not in sys.path:
|
|
61
|
+
sys.path.insert(0, root)
|
|
@@ -367,65 +367,64 @@ class BaseAutoGenerator:
|
|
|
367
367
|
# Resolve LLM endpoint configuration from environment variables
|
|
368
368
|
from praisonai.llm.config import build_config_list
|
|
369
369
|
self.config_list = config_list or build_config_list(include_api_type=False)
|
|
370
|
-
self.
|
|
371
|
-
self._async_openai_client = None # lazy, per-instance async client
|
|
370
|
+
self._core_client = None # lazy, per-instance core OpenAIClient
|
|
372
371
|
self._client_lock = threading.Lock()
|
|
373
|
-
|
|
374
|
-
def
|
|
375
|
-
"""Get or create the
|
|
372
|
+
|
|
373
|
+
def _get_core_client(self):
|
|
374
|
+
"""Get or create the core-owned ``OpenAIClient`` for this instance.
|
|
375
|
+
|
|
376
|
+
The OpenAI leg of the structured-completion ladder is owned by the core
|
|
377
|
+
SDK (``praisonaiagents.llm.openai_client.OpenAIClient``), which manages
|
|
378
|
+
sync/async client construction, lifecycle, and the
|
|
379
|
+
``beta.chat.completions.parse`` structured-output path. The wrapper
|
|
380
|
+
delegates to it rather than maintaining a parallel copy.
|
|
376
381
|
|
|
377
382
|
Lazy-init AND snapshot the client under the same lock so the returned
|
|
378
|
-
local reference survives a concurrent close() that nulls the
|
|
379
|
-
closing the shutdown-during-request race
|
|
383
|
+
local reference survives a concurrent close()/aclose() that nulls the
|
|
384
|
+
attribute, closing the shutdown-during-request race.
|
|
380
385
|
"""
|
|
381
386
|
with self._client_lock:
|
|
382
|
-
client = self.
|
|
387
|
+
client = self._core_client
|
|
383
388
|
if client is None:
|
|
384
389
|
try:
|
|
385
|
-
from
|
|
390
|
+
from praisonaiagents.llm.openai_client import OpenAIClient
|
|
386
391
|
except ImportError as e:
|
|
387
392
|
raise ImportError("Install with: pip install openai") from e
|
|
388
393
|
cfg = self.config_list[0]
|
|
389
|
-
client = self.
|
|
394
|
+
client = self._core_client = OpenAIClient(
|
|
390
395
|
api_key=cfg.get("api_key") or os.environ.get("OPENAI_API_KEY"),
|
|
391
396
|
base_url=cfg.get("base_url"),
|
|
392
397
|
)
|
|
393
398
|
return client
|
|
394
399
|
|
|
395
400
|
def close(self):
|
|
396
|
-
"""Close the
|
|
401
|
+
"""Close the core OpenAI client if it exists."""
|
|
397
402
|
if not hasattr(self, '_client_lock'):
|
|
398
403
|
return # Object was never fully initialized
|
|
399
404
|
# Snapshot under the lock, close OUTSIDE it, and only null the attribute
|
|
400
405
|
# after a successful close so a failed close can be retried.
|
|
401
406
|
with self._client_lock:
|
|
402
|
-
client = getattr(self, '
|
|
407
|
+
client = getattr(self, '_core_client', None)
|
|
403
408
|
if client is not None:
|
|
404
409
|
client.close()
|
|
405
410
|
with self._client_lock:
|
|
406
|
-
if getattr(self, '
|
|
407
|
-
self.
|
|
408
|
-
|
|
411
|
+
if getattr(self, '_core_client', None) is client:
|
|
412
|
+
self._core_client = None
|
|
413
|
+
|
|
409
414
|
async def aclose(self):
|
|
410
|
-
"""Close
|
|
415
|
+
"""Close the core OpenAI client if it exists."""
|
|
411
416
|
if not hasattr(self, '_client_lock'):
|
|
412
417
|
return # Object was never fully initialized
|
|
413
|
-
# Snapshot under the lock, close OUTSIDE it, and only null
|
|
414
|
-
# after
|
|
418
|
+
# Snapshot under the lock, close OUTSIDE it, and only null the attribute
|
|
419
|
+
# after a successful close so a failed close can be retried.
|
|
415
420
|
with self._client_lock:
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
await asyncio.to_thread(sync_client.close)
|
|
420
|
-
with self._client_lock:
|
|
421
|
-
if getattr(self, '_openai_client', None) is sync_client:
|
|
422
|
-
self._openai_client = None
|
|
423
|
-
if async_client is not None:
|
|
424
|
-
await async_client.close()
|
|
421
|
+
client = getattr(self, '_core_client', None)
|
|
422
|
+
if client is not None:
|
|
423
|
+
await client.aclose()
|
|
425
424
|
with self._client_lock:
|
|
426
|
-
if getattr(self, '
|
|
427
|
-
self.
|
|
428
|
-
|
|
425
|
+
if getattr(self, '_core_client', None) is client:
|
|
426
|
+
self._core_client = None
|
|
427
|
+
|
|
429
428
|
def __enter__(self):
|
|
430
429
|
return self
|
|
431
430
|
|
|
@@ -440,27 +439,73 @@ class BaseAutoGenerator:
|
|
|
440
439
|
await self.aclose()
|
|
441
440
|
return False
|
|
442
441
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
442
|
+
async def _structured_via_registered_provider(
|
|
443
|
+
self,
|
|
444
|
+
response_model: Type[T],
|
|
445
|
+
messages: List[Dict],
|
|
446
|
+
model_name: str,
|
|
447
|
+
**kwargs,
|
|
448
|
+
):
|
|
449
|
+
"""Delegate structured completion to a user-registered LLM provider.
|
|
450
|
+
|
|
451
|
+
Consults ``praisonai.llm.registry`` so a provider registered via
|
|
452
|
+
``register_llm_provider(...)`` becomes reachable from AutoGenerator (and
|
|
453
|
+
every generator inheriting from it). Only providers that are (a) NOT a
|
|
454
|
+
built-in litellm/gateway prefix and (b) opt in by exposing an async
|
|
455
|
+
``generate_structured(response_model, messages, **kwargs)`` are used;
|
|
456
|
+
everything else returns ``None`` so the existing LiteLLM/OpenAI ladder
|
|
457
|
+
runs unchanged. Never raises for registry issues — returns ``None``.
|
|
450
458
|
"""
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
459
|
+
if "/" not in model_name:
|
|
460
|
+
return None
|
|
461
|
+
provider_id = model_name.split("/", 1)[0].lower()
|
|
462
|
+
# Built-in prefixes keep the fast, direct LiteLLM/OpenAI ladder below and
|
|
463
|
+
# are never resolved through the registry — reuse the SAME set as
|
|
464
|
+
# PraisonAIModel._is_registered_provider() so both hot paths agree on
|
|
465
|
+
# which providers are "registered" (a custom "openai"/"anthropic"
|
|
466
|
+
# registration must not hijack the built-in path here).
|
|
467
|
+
try:
|
|
468
|
+
from praisonai.inc.models import _BUILTIN_MODEL_PREFIXES
|
|
469
|
+
except ImportError:
|
|
470
|
+
_BUILTIN_MODEL_PREFIXES = frozenset(
|
|
471
|
+
{"openai", "groq", "cohere", "ollama",
|
|
472
|
+
"anthropic", "google", "openrouter"}
|
|
473
|
+
)
|
|
474
|
+
if provider_id in _BUILTIN_MODEL_PREFIXES:
|
|
475
|
+
return None
|
|
476
|
+
try:
|
|
477
|
+
from praisonai.llm import create_llm_provider, has_llm_provider
|
|
478
|
+
except ImportError:
|
|
479
|
+
return None
|
|
480
|
+
# Forward the selected generator's config so a provider that needs it for
|
|
481
|
+
# generate_structured() authenticates correctly — mirrors what
|
|
482
|
+
# PraisonAIModel passes. Preserve provider-specific fields (e.g.
|
|
483
|
+
# aws_region, timeout, model_kwargs) but drop empty credential entries so
|
|
484
|
+
# a provider's own credential chain is not shadowed by empty values.
|
|
485
|
+
cfg = self.config_list[0]
|
|
486
|
+
provider_config = {
|
|
487
|
+
k: v
|
|
488
|
+
for k, v in cfg.items()
|
|
489
|
+
if k != "model" and not (k in ("api_key", "base_url") and not v)
|
|
490
|
+
}
|
|
491
|
+
try:
|
|
492
|
+
if not has_llm_provider(provider_id):
|
|
493
|
+
return None
|
|
494
|
+
provider = create_llm_provider(
|
|
495
|
+
model_name, config=provider_config or None
|
|
496
|
+
)
|
|
497
|
+
except Exception as exc:
|
|
498
|
+
logger.debug(
|
|
499
|
+
"Registered provider lookup for %r failed (%s); "
|
|
500
|
+
"using built-in completion ladder.", model_name, exc
|
|
501
|
+
)
|
|
502
|
+
return None
|
|
503
|
+
generate_structured = getattr(provider, "generate_structured", None)
|
|
504
|
+
if not callable(generate_structured):
|
|
505
|
+
return None
|
|
506
|
+
return await _maybe_await(
|
|
507
|
+
generate_structured(response_model, messages, **kwargs)
|
|
508
|
+
)
|
|
464
509
|
|
|
465
510
|
async def _completion_impl(
|
|
466
511
|
self,
|
|
@@ -480,6 +525,16 @@ class BaseAutoGenerator:
|
|
|
480
525
|
"""
|
|
481
526
|
model_name = self.config_list[0]['model']
|
|
482
527
|
|
|
528
|
+
# Extension point: if the model resolves to a user-registered provider
|
|
529
|
+
# (praisonai.llm.registry) that opts in by exposing generate_structured,
|
|
530
|
+
# delegate to it so custom providers (e.g. "bedrock/...") take effect
|
|
531
|
+
# here. Built-in providers are untouched and keep the ladder below.
|
|
532
|
+
registered = await self._structured_via_registered_provider(
|
|
533
|
+
response_model, messages, model_name, **kwargs
|
|
534
|
+
)
|
|
535
|
+
if registered is not None:
|
|
536
|
+
return registered
|
|
537
|
+
|
|
483
538
|
# Try LiteLLM first (preferred - supports 100+ providers)
|
|
484
539
|
if is_available("litellm"):
|
|
485
540
|
try:
|
|
@@ -513,27 +568,30 @@ class BaseAutoGenerator:
|
|
|
513
568
|
"falling back to OpenAI SDK.", e
|
|
514
569
|
)
|
|
515
570
|
|
|
516
|
-
# Fallback to OpenAI
|
|
571
|
+
# Fallback to the core-owned OpenAI client (uses beta.chat.completions.parse).
|
|
572
|
+
# Delegating to praisonaiagents.llm.openai_client.OpenAIClient keeps the
|
|
573
|
+
# OpenAI structured-output path in a single, core-owned place instead of a
|
|
574
|
+
# parallel wrapper copy that can silently drift from core.
|
|
517
575
|
if is_available("openai"):
|
|
518
|
-
client = (
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
576
|
+
client = self._get_core_client()
|
|
577
|
+
# The async path awaits the core coroutine directly. The sync path
|
|
578
|
+
# offloads the blocking core call via asyncio.to_thread so it never
|
|
579
|
+
# blocks the bridge event loop this coroutine runs on.
|
|
580
|
+
if is_async:
|
|
581
|
+
return await client.aparse_structured_output(
|
|
582
|
+
messages=messages,
|
|
583
|
+
response_format=response_model,
|
|
584
|
+
model=model_name,
|
|
585
|
+
**kwargs,
|
|
586
|
+
)
|
|
587
|
+
return await asyncio.to_thread(
|
|
588
|
+
lambda: client.parse_structured_output(
|
|
589
|
+
messages=messages,
|
|
590
|
+
response_format=response_model,
|
|
591
|
+
model=model_name,
|
|
592
|
+
**kwargs,
|
|
593
|
+
)
|
|
535
594
|
)
|
|
536
|
-
return response.choices[0].message.parsed
|
|
537
595
|
|
|
538
596
|
# Neither available - raise helpful error
|
|
539
597
|
raise ImportError(
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""C10 shim: implementation moved to ``praisonai_train.cli.commands.train``."""
|
|
2
|
+
|
|
3
|
+
import sys as _sys
|
|
4
|
+
|
|
5
|
+
from praisonai._bootstrap import ensure_praisonai_train
|
|
6
|
+
|
|
7
|
+
ensure_praisonai_train()
|
|
8
|
+
|
|
9
|
+
import praisonai_train.cli.commands.train as _impl
|
|
10
|
+
|
|
11
|
+
_sys.modules[__name__] = _impl
|
|
@@ -11,6 +11,13 @@ logger = logging.getLogger(__name__)
|
|
|
11
11
|
# Constants
|
|
12
12
|
LOCAL_SERVER_API_KEY_PLACEHOLDER = "not-needed"
|
|
13
13
|
|
|
14
|
+
# Provider prefixes handled directly by the built-in ladder in this module.
|
|
15
|
+
# Any prefix NOT in this set is delegated to praisonai.llm.registry so that
|
|
16
|
+
# user-registered providers (register_llm_provider(...)) take effect here.
|
|
17
|
+
_BUILTIN_MODEL_PREFIXES = frozenset(
|
|
18
|
+
{"openai", "groq", "cohere", "ollama", "anthropic", "google", "openrouter"}
|
|
19
|
+
)
|
|
20
|
+
|
|
14
21
|
def _is_module_available(module_name: str) -> bool:
|
|
15
22
|
"""Safely check if a module spec is importable.
|
|
16
23
|
|
|
@@ -107,7 +114,13 @@ class PraisonAIModel:
|
|
|
107
114
|
"api.openai.com" not in self.base_url)
|
|
108
115
|
if is_local:
|
|
109
116
|
self.api_key = LOCAL_SERVER_API_KEY_PLACEHOLDER
|
|
110
|
-
|
|
117
|
+
|
|
118
|
+
# A user-registered provider (llm.registry) owns its own credential
|
|
119
|
+
# resolution, so defer the OpenAI-key requirement to it rather than
|
|
120
|
+
# failing here for e.g. "bedrock/..." that isn't a built-in prefix.
|
|
121
|
+
if not self.api_key and self._is_registered_provider():
|
|
122
|
+
return
|
|
123
|
+
|
|
111
124
|
if not self.api_key:
|
|
112
125
|
raise ValueError(
|
|
113
126
|
f"{self.api_key_var} environment variable is required for the default OpenAI service. "
|
|
@@ -115,6 +128,62 @@ class PraisonAIModel:
|
|
|
115
128
|
)
|
|
116
129
|
|
|
117
130
|
|
|
131
|
+
def _is_registered_provider(self):
|
|
132
|
+
"""Return True if the model's provider prefix is a user-registered one.
|
|
133
|
+
|
|
134
|
+
A non-built-in prefix (e.g. "bedrock/") that has been registered via
|
|
135
|
+
``register_llm_provider`` should be resolved through the registry rather
|
|
136
|
+
than the built-in ladder. Never raises.
|
|
137
|
+
"""
|
|
138
|
+
if "/" not in self.model:
|
|
139
|
+
return False
|
|
140
|
+
provider_id = self.model.split("/", 1)[0].lower()
|
|
141
|
+
if provider_id in _BUILTIN_MODEL_PREFIXES:
|
|
142
|
+
return False
|
|
143
|
+
try:
|
|
144
|
+
from praisonai.llm import has_llm_provider
|
|
145
|
+
return bool(has_llm_provider(provider_id))
|
|
146
|
+
except Exception: # pragma: no cover - defensive
|
|
147
|
+
return False
|
|
148
|
+
|
|
149
|
+
def _resolve_registered_provider(self):
|
|
150
|
+
"""Resolve a user-registered LLM provider from ``praisonai.llm.registry``.
|
|
151
|
+
|
|
152
|
+
Consults the extension point advertised in ``llm/registry.py`` so that
|
|
153
|
+
``register_llm_provider("bedrock", BedrockProvider)`` becomes visible to
|
|
154
|
+
every framework adapter that goes through ``PraisonAIModel``. Only
|
|
155
|
+
providers NOT covered by the built-in ladder below are resolved here;
|
|
156
|
+
built-ins keep their existing fast, direct-SDK behaviour. Returns the
|
|
157
|
+
resolved provider instance, or ``None`` when the prefix is not a
|
|
158
|
+
registered provider (so the built-in ladder runs). If the prefix IS a
|
|
159
|
+
registered provider but its construction fails, the error is propagated
|
|
160
|
+
rather than masked behind the uncredentialed built-in OpenAI path.
|
|
161
|
+
"""
|
|
162
|
+
if not self._is_registered_provider():
|
|
163
|
+
return None
|
|
164
|
+
try:
|
|
165
|
+
from praisonai.llm import create_llm_provider
|
|
166
|
+
except Exception as exc: # pragma: no cover - defensive
|
|
167
|
+
logger.debug(
|
|
168
|
+
"Registry import for %r failed (%s); "
|
|
169
|
+
"falling back to built-in resolution.", self.model, exc
|
|
170
|
+
)
|
|
171
|
+
return None
|
|
172
|
+
# Only pass credentials that were actually resolved. Injecting
|
|
173
|
+
# ``api_key: None``/``base_url: ""`` would let a provider treat a
|
|
174
|
+
# present-but-empty key as an explicit credential and skip its own
|
|
175
|
+
# environment/credential chain (Greptile P2).
|
|
176
|
+
config = {}
|
|
177
|
+
if self.api_key:
|
|
178
|
+
config["api_key"] = self.api_key
|
|
179
|
+
if self.base_url:
|
|
180
|
+
config["base_url"] = self.base_url
|
|
181
|
+
# The provider is registered, so a construction failure is a real error
|
|
182
|
+
# for the user's chosen provider — surface it rather than silently
|
|
183
|
+
# continuing into the uncredentialed built-in OpenAI ladder, which would
|
|
184
|
+
# otherwise mask the cause behind a misleading auth error (Greptile P1).
|
|
185
|
+
return create_llm_provider(self.model, config=config or None)
|
|
186
|
+
|
|
118
187
|
def get_model(self):
|
|
119
188
|
"""
|
|
120
189
|
Returns an instance of the native SDK client with the configured parameters.
|
|
@@ -125,6 +194,15 @@ class PraisonAIModel:
|
|
|
125
194
|
Returns:
|
|
126
195
|
Client: An instance of the native SDK client (OpenAI, Anthropic, etc.)
|
|
127
196
|
"""
|
|
197
|
+
# Extension point: honour user-registered providers (llm.registry) before
|
|
198
|
+
# the built-in ladder so custom providers (e.g. "bedrock/...") take effect.
|
|
199
|
+
registered = self._resolve_registered_provider()
|
|
200
|
+
if registered is not None:
|
|
201
|
+
get_client = getattr(registered, "get_client", None)
|
|
202
|
+
if callable(get_client):
|
|
203
|
+
return get_client()
|
|
204
|
+
return registered
|
|
205
|
+
|
|
128
206
|
if self.model.startswith("google/"):
|
|
129
207
|
if GOOGLE_GENAI_AVAILABLE:
|
|
130
208
|
genai = _get_google_genai()
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M840.5 798.2L662.3 599.5l-151 173.7-173.7-173.7-167.7 201c-21 30.4 0.9 71.8 37.9 71.6l594.7-3.3c36.2-0.1 57.8-40.3 38-70.6z" fill="#FFB89A" /><path d="M741.6 647.3l-52.3-47.7c-12.2-11.2-31.2-10.3-42.4 1.9s-10.3 31.2 1.9 42.4l52.3 47.7c5.8 5.3 13 7.8 20.2 7.8 8.1 0 16.2-3.3 22.2-9.8 11.2-12.1 10.3-31.1-1.9-42.3zM631.2 546.5c-12.4-11-31.4-9.8-42.3 2.6l-98.8 111.7-171-165.7L87.9 724.7c-11.8 11.7-11.8 30.7-0.1 42.4 5.9 5.9 13.6 8.9 21.3 8.9 7.6 0 15.3-2.9 21.1-8.7l189.4-188.1 173.8 168.5L633.8 589c11-12.5 9.8-31.5-2.6-42.5z" fill="#33CC99" /><path d="M721.3 342.8m-35.1 0a35.1 35.1 0 1 0 70.2 0 35.1 35.1 0 1 0-70.2 0Z" fill="#33CC99" /><path d="M743.2 175.1H191.6c-70.6 0-128.3 57.7-128.3 128.3v499.2c0 70.6 57.7 128.3 128.3 128.3h551.5c70.6 0 128.3-57.7 128.3-128.3V303.5c0.1-70.6-57.7-128.4-128.2-128.4z m68.3 627.6c0 18.1-7.1 35.2-20.1 48.2-13 13-30.1 20.1-48.2 20.1H191.6c-18.1 0-35.2-7.1-48.2-20.1-13-13-20.1-30.1-20.1-48.2V303.5c0-18.1 7.1-35.2 20.1-48.2 13-13 30.1-20.1 48.2-20.1h551.5c18.1 0 35.2 7.1 48.2 20.1 13 13 20.1 30.1 20.1 48.2v499.2z" fill="#45484C" /><path d="M799.7 90.9H237.2c-16.6 0-30 13.4-30 30s13.4 30 30 30h562.4c26.1 0 50.8 10.3 69.4 28.9 18.6 18.6 28.9 43.3 28.9 69.4v482.4c0 16.6 13.4 30 30 30s30-13.4 30-30V249.2C958 161.9 887 90.9 799.7 90.9z" fill="#45484C" /></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M570.2 842c-50.6 0-278.7-180-278.7-401.9 0-58.8-2.9-133.1-1-183.9-50.8 3.2-91.4 45.7-91.4 97.3v272.1c37.4 194.7 137.5 334 255.2 334 69.5 0 132.9-48.6 180.9-128.5-20.8 7.1-42.6 10.9-65 10.9z" fill="#FFB89A" /><path d="M926.1 191.8C900.5 74.1 817.9 62.1 704.9 62.1c-29.1 0-60.3 0.8-93 0.8-36 0-70.5-1.1-102.5-1.1-109.7 0-189.8 12.5-201.3 123.7-20.4 198.3 30 617.1 306.1 617.1S939 414.3 926.1 191.8z m-76.9 268.5c-9.5 47.9-22.3 90.8-38.1 127.7-16.8 39.2-37 71.4-60 95.8-37.3 39.5-82.1 58.7-137 58.7-53.4 0-97.6-20.1-134.9-61.6-45.5-50.5-79.8-131.5-99-234.2-15.6-83.5-20.3-178.9-12.4-255.2 1.8-17.3 5.7-30.7 11.6-39.8 4.4-6.8 10.1-11.7 18.7-15.8 25.8-12.5 70.8-14.2 111.4-14.2 15 0 30.7 0.2 47.3 0.5 17.8 0.3 36.2 0.6 55.2 0.6 17.2 0 33.9-0.2 50-0.4 15.1-0.2 29.3-0.4 43.1-0.4 44.5 0 89.5 1.8 118 15.1 15.9 7.4 33.4 20.8 43.6 63 2.6 53.3 3.6 153.5-17.5 260.2z" fill="#4E5155" /><path d="M532 841.7c-32.5 22.3-70.6 33.7-113.2 33.7-29.7 0-57.3-6-82.1-17.7-23.2-11-44.7-27.4-63.9-48.7-46-50.9-80.3-131.3-99.2-232.4-15.1-80.6-19.6-172.9-12-246.8 3-29.5 12-50.2 27.5-63.2 14.2-12 35.1-19.2 65.8-22.9 16.5-2 28.2-16.9 26.3-33.3-2-16.5-16.9-28.2-33.3-26.3-42.9 5.1-73.8 16.7-97.4 36.5-27.9 23.5-43.8 57.2-48.5 103-8.2 79.3-3.4 178.1 12.7 264 9.7 51.9 23.4 99.4 40.6 141.2 19.8 48.1 44.4 88.6 73 120.4 51.6 57.2 115.7 86.2 190.6 86.2 55 0 104.5-14.9 147.2-44.2 13.7-9.4 17.1-28.1 7.7-41.7-9.4-13.7-28.1-17.2-41.8-7.8z" fill="#4E5155" /><path d="M519.7 248.5c-16.6 0-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3c0-16.6-13.5-30-30-30zM299.5 385.5c0-16.6-13.4-30-30-30s-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3zM754.6 248.5c-16.6 0-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3c0-16.6-13.4-30-30-30zM716.7 554.5c0-16.6-13.4-30-30-30H551v30c0 58.5 38.1 123.7 92.8 123.7 22.9 0 45-11.9 62.2-33.6 10.3-13 8.1-31.9-4.9-42.1-13-10.3-31.9-8.1-42.1 4.9-5.3 6.7-11.1 10.9-15.1 10.9-4.3 0-11.9-5.1-19.1-16.4-3.3-5.3-6.2-11.2-8.4-17.4h70.4c16.4 0 29.9-13.4 29.9-30zM401.6 704c-25.4 0-46.1-24.2-46.1-53.9 0-16.6-13.4-30-30-30s-30 13.4-30 30c0 62.8 47.6 113.9 106.1 113.9 16.6 0 30-13.4 30-30s-13.5-30-30-30z" fill="#33CC99" /></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M861.9 383.8H218.1c-36.4 0-66.1-29.8-66.1-66.1V288c0-36.4 29.8-66.1 66.1-66.1h643.8c36.4 0 66.1 29.8 66.1 66.1v29.7c0 36.3-29.8 66.1-66.1 66.1z" fill="#FFB89A" /><path d="M822.9 129.2H199.8c-77.2 0-140.4 63.2-140.4 140.4v487.2c0 77.2 63.2 140.4 140.4 140.4h623.1c77.2 0 140.4-63.2 140.4-140.4V269.6c0-77.2-63.2-140.4-140.4-140.4z m80.4 177H760.4L864.6 201c5.4 3.3 10.4 7.3 15 11.8 15.3 15.3 23.7 35.4 23.7 56.8v36.6z m-673.3 0l104-117h61.3l-109.1 117H230z m247.4-117h169.2L532 306.2H368.3l109.1-117z m248.8 0h65.6L676 306.2h-60l112.5-114.8-2.3-2.2zM143 212.9c15.3-15.3 35.4-23.7 56.8-23.7h53.9l-104 117h-30.4v-36.5c0.1-21.4 8.5-41.5 23.7-56.8z m736.6 600.7c-15.3 15.3-35.4 23.7-56.8 23.7h-623c-21.3 0-41.5-8.4-56.8-23.7-15.3-15.3-23.7-35.4-23.7-56.8V366.2h783.9v390.6c0.1 21.3-8.3 41.5-23.6 56.8z" fill="#45484C" /><path d="M400.5 770.6V430.9L534.1 508c14.3 8.3 19.3 26.6 11 41-8.3 14.3-26.6 19.3-41 11l-43.6-25.2v131.8l114.1-65.9-7.5-4.3c-14.3-8.3-19.3-26.6-11-41 8.3-14.3 26.6-19.3 41-11l97.5 56.3-294.1 169.9z" fill="#33CC99" /></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M188.3 766.5a94.4 135.8 0 1 0 188.8 0 94.4 135.8 0 1 0-188.8 0Z" fill="#FFB89A" /><path d="M931.5 397s0-0.1 0 0c-34.2-82.6-119.3-141-218.8-141-129.7 0-234.9 99.3-234.9 221.9 0 52.1 19.1 100.1 50.9 138 1 14.5 1.8 29.1 1.8 43.6 0 148.5 98.1 269 219.2 269 121 0 219.2-120.4 219.2-269 0-70.1-1.7-214.7-37.4-262.5z m-36.6 347.5c-8.7 25.3-21.1 47.9-36.8 67.1-29.8 36.5-68.3 56.7-108.5 56.7s-78.7-20.1-108.5-56.7c-15.7-19.2-28-41.8-36.8-67.1-9.3-26.9-13.9-55.5-13.9-85.1 0-16.8-1-33.5-2-47.7l-1.3-19.5-12.6-15c-24.1-28.6-36.8-63-36.8-99.3 0-89.3 78.5-161.9 174.9-161.9 36.4 0 71.4 10.3 101 29.7 28.4 18.7 65.5 81.7 65.5 81.7s17.9 27.5 24.7 98.2c4.5 46.5 5 95.9 5 133.8 0.1 29.6-4.6 58.2-13.9 85.1zM377.1 219.9c-51.8 0-93.8 42-93.8 93.8s42 93.8 93.8 93.8 93.8-42 93.8-93.8-42-93.8-93.8-93.8z m0 127.5c-18.6 0-33.8-15.2-33.8-33.8 0-18.6 15.2-33.8 33.8-33.8 18.6 0 33.8 15.2 33.8 33.8 0 18.7-15.1 33.8-33.8 33.8z" fill="#45484C" /><path d="M521.2 206.7m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M653 156.4m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M781.9 158.4m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M909 206.7m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M263.9 602.7c44.7 0 81 31.5 81 70.3 0 20.9-10.2 35.9-18.7 44.8l-15.9 19.7-0.5 27.2c0.7 7.2 0.6 16.9 0.6 24.7v4.8c0 33.7-27.4 61.2-61.2 61.2-14.9 0-33.3-9.6-48.1-25-15.2-15.9-24.6-35.9-24.6-52.3v-3.2c0-12.7 0-36.2 1-60.2 1.4-33 7.4-57.3 7.4-57.3 3.9-14.7 13.4-28.2 26.8-38 14.8-11 32.8-16.7 52.2-16.7m0-60c-66.4 0-122 42.4-137 99.4-10.9 23-10.4 112.6-10.4 135.9 0 66.9 65.8 137.3 132.7 137.3 66.9 0 121.2-54.3 121.2-121.2 0-9.2 0.3-23-0.8-34.9 22-23 35.4-53.2 35.4-86.3-0.1-71.9-63.2-130.2-141.1-130.2zM444.4 559.9c-26.4 0-47.8 21.4-47.8 47.8s21.4 47.8 47.8 47.8 47.8-21.4 47.8-47.8-21.4-47.8-47.8-47.8zM377.1 494.5c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5c0-15.3-12.3-27.5-27.5-27.5zM288.1 471.5c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5-12.4-27.5-27.5-27.5zM188.3 477.9c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5-12.3-27.5-27.5-27.5zM100.6 538.4c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5c-0.1-15.2-12.4-27.5-27.5-27.5z" fill="#45484C" /><path d="M670.1 584.6c-41.4 0-80.2-20.3-103.9-54.3-9.5-13.6-6.2-32.3 7.4-41.8 13.6-9.5 32.3-6.2 41.8 7.4 12.5 17.9 33 28.6 54.7 28.6 36.8 0 66.7-29.9 66.7-66.7 0-19.8-8.7-38.4-23.9-51.2-12.7-10.6-14.4-29.6-3.7-42.3s29.6-14.4 42.3-3.7c28.9 24.2 45.4 59.6 45.4 97.2-0.1 70-56.9 126.8-126.8 126.8z" fill="#33CC99" /><path d="M853 556.4c-26 0-49.6-14.5-60.1-36.9-7-15-0.6-32.9 14.4-39.9s32.9-0.6 39.9 14.4c0.3 0.6 2.2 2.4 5.8 2.4 1.2 0 2.3-0.2 3.3-0.6 15.5-5.9 32.8 1.8 38.7 17.3 5.9 15.5-1.8 32.8-17.3 38.7-7.9 3.1-16.2 4.6-24.7 4.6z" fill="#33CC99" /></svg>
|