agent-framework-lib 0.8.7.post7__tar.gz → 0.8.8.post2__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.
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/ARCHITECTURE.md +2 -2
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/LICENSE +1 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/MANIFEST.in +10 -2
- {agent_framework_lib-0.8.7.post7/agent_framework_lib.egg-info → agent_framework_lib-0.8.8.post2}/PKG-INFO +34 -31
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/README.md +30 -30
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/__init__.py +44 -4
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/base.py +2 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/a2a_router.py +19 -7
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +18 -6
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/translation_layer.py +29 -4
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/models.py +8 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/providers/elasticsearch_provider.py +3 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/providers/postgres_provider.py +8 -2
- agent_framework_lib-0.8.8.post2/agent_framework/capabilities/resolver.py +319 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/config.py +27 -25
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/crypto.py +3 -2
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/git_provider.py +4 -7
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/herdr_client.py +81 -44
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/orchestrator.py +23 -47
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/store.py +7 -13
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/tools.py +1 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/base_agent.py +97 -4
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/prompt_builder.py +2 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/providers/graphiti_provider.py +60 -6
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/notifications/webhook_notifier.py +81 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/processing/markdown_converter.py +39 -2
- agent_framework_lib-0.8.8.post2/agent_framework/py.typed +2 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/__init__.py +51 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/authz.py +191 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/file_view_token.py +199 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/input_guard.py +316 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/openshell_policy.yaml +60 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/pii_redactor.py +125 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/sandbox.py +223 -0
- agent_framework_lib-0.8.8.post2/agent_framework/security/sandbox_provider.py +662 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/security/secret_redactor.py +70 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/security/shell_env.py +21 -7
- agent_framework_lib-0.8.8.post2/agent_framework/security/upload_token.py +175 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/session/elasticsearch_session_storage.py +18 -6
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/session/session_storage.py +132 -21
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/base.py +28 -3
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/scripts/create_and_register.py +8 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/scripts/register_to_storage.py +24 -2
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +6 -1
- agent_framework_lib-0.8.8.post2/agent_framework/skills/builtin/skills/csv/create_csv.py +105 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/file_access/download_to_local.py +7 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/image_gen/create_image.py +4 -2
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +33 -5
- agent_framework_lib-0.8.8.post2/agent_framework/skills/builtin/skills/mermaid/vendor_mermaid.umd.min.js +2024 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +10 -3
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +5 -5
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +8 -4
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/skill_creator/skill_api.py +5 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +14 -2
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/custom_skill_manager.py +98 -9
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/markdown_loader.py +1 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/storage/file_storages.py +44 -2
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/storage/storage_optimizer.py +9 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/multimodal_tools.py +19 -5
- agent_framework_lib-0.8.8.post2/agent_framework/tools/shell_tool.py +986 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/web_fetch_tool.py +7 -3
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/web_search_tool.py +11 -4
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/utils/post_install.py +357 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/admin_auth.py +16 -3
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2/agent_framework/web}/docs/DOCKER_SETUP.md +108 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/Dockerfile +8 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2/agent_framework/web}/docs/MEMORY_INSTALLATION.md +11 -11
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/README.md +30 -30
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/helper_ui.html +121 -121
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/modern_ui.html +71 -41
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/server.py +1034 -69
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/skills_router.py +177 -73
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/test_app.html +504 -504
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2/agent_framework_lib.egg-info}/PKG-INFO +34 -31
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework_lib.egg-info/SOURCES.txt +12 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework_lib.egg-info/requires.txt +4 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/ACTIVITY_OUTPUT_PART.md +10 -10
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/ARCHITECTURE_DIAGRAM.md +9 -9
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +35 -35
- agent_framework_lib-0.8.8.post2/docs/DIAGNOSTIC_SANDBOX_SKILLS.md +298 -0
- {agent_framework_lib-0.8.7.post7/agent_framework/web → agent_framework_lib-0.8.8.post2}/docs/DOCKER_SETUP.md +108 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +16 -17
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/FILE_DOWNLOAD_LINKS.md +1 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/FILE_STORAGE_GUIDE.md +13 -13
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/HISTORY_MESSAGE_FORMAT.md +7 -7
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +58 -58
- {agent_framework_lib-0.8.7.post7/agent_framework/web → agent_framework_lib-0.8.8.post2}/docs/MEMORY_INSTALLATION.md +11 -11
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/MODIFICATIONS_CONCURRENCE.md +9 -9
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/MULTIMODAL_TOOLS_GUIDE.md +27 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/OBSERVABILITY_GUIDE.md +73 -10
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/PYPI_PUBLISHING.md +3 -3
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/QA_STREAMING_LATENCY.md +6 -6
- agent_framework_lib-0.8.8.post2/docs/SECRETS_MANAGEMENT.md +189 -0
- agent_framework_lib-0.8.8.post2/docs/SECURITY_HARDENING.md +176 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +48 -48
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/SSE_NOTIFICATIONS_GUIDE.md +2 -2
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/framework_audit_remarques.md +1 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/README.md +5 -5
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/dependencies/docker-compose.yaml +1 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/pyproject.toml +1 -1
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/pyproject.toml +9 -1
- agent_framework_lib-0.8.7.post7/agent_framework/capabilities/resolver.py +0 -174
- agent_framework_lib-0.8.7.post7/agent_framework/py.typed +0 -2
- agent_framework_lib-0.8.7.post7/agent_framework/security/__init__.py +0 -17
- agent_framework_lib-0.8.7.post7/agent_framework/skills/builtin/skills/csv/create_csv.py +0 -57
- agent_framework_lib-0.8.7.post7/agent_framework/tools/shell_tool.py +0 -559
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/endpoints/sse_wrapper.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/capabilities/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/audit.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/code_delivery/models.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/activity_formatter.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/agent_interface.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/agent_provider.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/context_budget.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/context_summarizer.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/elasticsearch_config_provider.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/execution_controller.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/implementation_validator.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/interruption_message.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/knowledge_state.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/loop_detector.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/model_clients.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/model_config.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/model_router.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/models.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/provider_calibration.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/scratchpad_compressor.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/scratchpad_serializer.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/state_manager.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/step_display_config.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/core/streaming_parts_accumulator.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/implementations/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/implementations/budget_aware_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/implementations/llamaindex_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/implementations/llamaindex_memory_adapter.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/implementations/microsoft_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/base.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/config.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/hypothesis_engine.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/implicit_feedback.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/manager.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/personalization.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/providers/memori_provider.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/response_lessons.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/tools.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/memory/work_patterns.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/api_timing_tracker.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/elasticsearch_logging.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/error_handling.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/error_logging.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/llm_auto_instrumentor.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/llm_metrics.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/metrics_aggregator.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/metrics_config.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/observability_manager.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/otel_instrumentor.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/otel_logging_handler.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/otel_setup.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/performance_monitor.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/progress_tracker.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/resource_manager.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/timing_tracker.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/token_counter.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/monitoring/tracing_context.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/notifications/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/notifications/hub.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/processing/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/processing/ai_content_management.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/processing/multimodal_integration.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/processing/rich_content_validation.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/session/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/chart/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/chart/vendor_chart.umd.min.js +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/code_delivery/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/code_format/format_python.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/csv/read_csv.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/csv/transform_csv.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/excel/create_excel.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/file/create_file.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/file/list_files.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/file/read_file.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/file_access/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/image_gen/generate_image.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/powerpoint/templates/Big Data Infographics.pptx +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/powerpoint/templates/Executive Design Pitch Deck.pptx +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/powerpoint/templates/Management Consulting Toolkit.pptx +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/powerpoint/templates/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/powerpoint/templates/generate_templates.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/table/table_to_image.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/builtin/skills/word/create_word.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/discovery_prompt.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/skills/tools.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/storage/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/storage/file_system_management.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/subagents/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/subagents/executor.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/subagents/message_injector.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/subagents/message_queue.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/subagents/retrigger.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/subagents/spawn_tool.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/activity_callback.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/adaptive_pdf_css.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/base.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/html_content_analyzer.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/pdf_image_scaler.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/tools/sizing_config.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/utils/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/utils/path_utils.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/utils/session_title_generator.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/utils/source_detector.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/utils/special_blocks.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/admin_models.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/admin_router.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/admin_services.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/api_timing_middleware.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/docker-compose.yml +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/agent_with_memory.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/documentation_generator.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/gitnexus_client.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/helper_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/web/otel_tracing_middleware.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/__init__.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/artefacts.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/client.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/config.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/context.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/cursor.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/memory.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/models.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/poller.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/preferences.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/router.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/session.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/workspace/subscription.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework_lib.egg-info/entry_points.txt +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework_lib.egg-info/top_level.txt +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/CANCEL_AND_INTERRUPT_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/DEEPEVAL_TEST_REPORT.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/SCREENSHOTS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/helper_agent.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/index.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_context_budget_test.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_exemple_test.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_training_with_apo.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_with_custom_tools_file_storage.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/agent_with_personalization.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/biagenttest.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/test_work_patterns_live.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/examples/workspace_test_agent.py +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/setup.cfg +0 -0
- {agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/setup.py +0 -0
|
@@ -286,9 +286,9 @@ sequenceDiagram
|
|
|
286
286
|
Server->>Proxy: handle_message(input)
|
|
287
287
|
Proxy->>Agent: handle_message(input)
|
|
288
288
|
Agent-->>Proxy: returns response
|
|
289
|
-
|
|
289
|
+
|
|
290
290
|
Note over Proxy, StateManager: Automatic State Persistence
|
|
291
|
-
|
|
291
|
+
|
|
292
292
|
Proxy->>Agent: get_state()
|
|
293
293
|
Agent->>StateManager: compress_state(...)
|
|
294
294
|
Agent-->>Proxy: returns new_state
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
|
@@ -11,9 +11,17 @@ include docs/*.md
|
|
|
11
11
|
# Include type information
|
|
12
12
|
include agent_framework/py.typed
|
|
13
13
|
|
|
14
|
+
# Include the strict OpenShell sandbox policy (egress-deny + FS lockdown)
|
|
15
|
+
recursive-include agent_framework/security *.yaml
|
|
16
|
+
|
|
14
17
|
# Include PowerPoint templates embedded with the powerpoint skill
|
|
15
18
|
recursive-include agent_framework/skills/builtin/skills/powerpoint/templates *.pptx
|
|
16
19
|
|
|
20
|
+
# Include vendored JS libraries inlined by skills for OFFLINE rendering
|
|
21
|
+
# (chart: vendor_chart.umd.min.js, mermaid: vendor_mermaid.umd.min.js). These
|
|
22
|
+
# ship in the wheel via package-data; this keeps source distributions in parity.
|
|
23
|
+
recursive-include agent_framework/skills/builtin/skills *.js
|
|
24
|
+
|
|
17
25
|
# Include HTML templates and static files from the main package
|
|
18
26
|
include agent_framework/test_app.html
|
|
19
27
|
include agent_framework/*.html
|
|
@@ -72,10 +80,10 @@ recursive-exclude */node_modules *
|
|
|
72
80
|
|
|
73
81
|
# Exclude other development directories
|
|
74
82
|
prune .git
|
|
75
|
-
prune .vscode
|
|
83
|
+
prune .vscode
|
|
76
84
|
prune .cursor
|
|
77
85
|
prune specs
|
|
78
86
|
prune .venv
|
|
79
87
|
prune node_modules
|
|
80
88
|
prune mcp-server
|
|
81
|
-
prune examples/node_modules
|
|
89
|
+
prune examples/node_modules
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-framework-lib
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.8.post2
|
|
4
4
|
Summary: A comprehensive Python framework for building and serving conversational AI agents with FastAPI
|
|
5
5
|
Author-email: Sebastian Pavel <sebastian@cinco.ai>, Elliott Girard <elliott.girard@icloud.com>
|
|
6
6
|
Maintainer-email: Sebastian Pavel <sebastian@cinco.ai>
|
|
@@ -74,6 +74,9 @@ Requires-Dist: python-pptx>=1.0.0
|
|
|
74
74
|
Requires-Dist: python-docx>=1.1.0
|
|
75
75
|
Requires-Dist: jsonschema>=4.20.0
|
|
76
76
|
Requires-Dist: pymupdf>=1.27.2.2
|
|
77
|
+
Requires-Dist: sqlglot>=30.9.0
|
|
78
|
+
Provides-Extra: security
|
|
79
|
+
Requires-Dist: llm-guard>=0.3.0; extra == "security"
|
|
77
80
|
Provides-Extra: llamaindex
|
|
78
81
|
Requires-Dist: llama-index>=0.14.16; extra == "llamaindex"
|
|
79
82
|
Requires-Dist: llama-index-core>=0.14.16; extra == "llamaindex"
|
|
@@ -361,25 +364,25 @@ class MyAgent(LlamaIndexAgent):
|
|
|
361
364
|
name="Calculator Agent",
|
|
362
365
|
description="A helpful calculator assistant that can perform basic math operations."
|
|
363
366
|
)
|
|
364
|
-
|
|
367
|
+
|
|
365
368
|
def get_agent_prompt(self) -> str:
|
|
366
369
|
"""Define your agent's behavior and personality."""
|
|
367
370
|
return "You are a helpful calculator assistant."
|
|
368
|
-
|
|
371
|
+
|
|
369
372
|
def get_agent_tools(self) -> List[callable]:
|
|
370
373
|
"""Define the tools your agent can use.
|
|
371
|
-
|
|
374
|
+
|
|
372
375
|
Tools are automatically converted to LlamaIndex FunctionTool instances.
|
|
373
376
|
The function name becomes the tool name, and the docstring becomes the description.
|
|
374
377
|
"""
|
|
375
378
|
def add(a: float, b: float) -> float:
|
|
376
379
|
"""Add two numbers together."""
|
|
377
380
|
return a + b
|
|
378
|
-
|
|
381
|
+
|
|
379
382
|
def multiply(a: float, b: float) -> float:
|
|
380
383
|
"""Multiply two numbers together."""
|
|
381
384
|
return a * b
|
|
382
|
-
|
|
385
|
+
|
|
383
386
|
# Just return the functions - automatic conversion to FunctionTool
|
|
384
387
|
return [add, multiply]
|
|
385
388
|
|
|
@@ -461,16 +464,16 @@ class OpsMangedAgent(LlamaIndexAgent):
|
|
|
461
464
|
name="Ops Managed Agent",
|
|
462
465
|
description="An agent configured via Elasticsearch."
|
|
463
466
|
)
|
|
464
|
-
|
|
467
|
+
|
|
465
468
|
@classmethod
|
|
466
469
|
def get_use_remote_config(cls) -> bool:
|
|
467
470
|
"""Enable Elasticsearch-only configuration."""
|
|
468
471
|
return True
|
|
469
|
-
|
|
472
|
+
|
|
470
473
|
def get_agent_prompt(self) -> str:
|
|
471
474
|
# Fallback prompt if ES config not available
|
|
472
475
|
return "You are a helpful assistant."
|
|
473
|
-
|
|
476
|
+
|
|
474
477
|
def get_agent_tools(self) -> list:
|
|
475
478
|
return []
|
|
476
479
|
```
|
|
@@ -592,10 +595,10 @@ Custom tools extend your agent's capabilities. The tool name and docstring are c
|
|
|
592
595
|
```python
|
|
593
596
|
def get_weather(city: str) -> str:
|
|
594
597
|
"""Get the current weather for a specific city.
|
|
595
|
-
|
|
598
|
+
|
|
596
599
|
Args:
|
|
597
600
|
city: The name of the city to get weather for
|
|
598
|
-
|
|
601
|
+
|
|
599
602
|
Returns:
|
|
600
603
|
A description of the current weather
|
|
601
604
|
"""
|
|
@@ -632,29 +635,29 @@ class MyAgent(LlamaIndexAgent):
|
|
|
632
635
|
description="A helpful assistant with custom tools."
|
|
633
636
|
)
|
|
634
637
|
self.file_storage = None
|
|
635
|
-
|
|
638
|
+
|
|
636
639
|
async def _ensure_file_storage(self):
|
|
637
640
|
if self.file_storage is None:
|
|
638
641
|
self.file_storage = await FileStorageFactory.create_storage_manager()
|
|
639
|
-
|
|
642
|
+
|
|
640
643
|
async def configure_session(self, session_configuration):
|
|
641
644
|
await self._ensure_file_storage()
|
|
642
645
|
self._user_id = session_configuration.get('user_id', 'default_user')
|
|
643
646
|
self._session_id = session_configuration.get('session_id')
|
|
644
647
|
await super().configure_session(session_configuration)
|
|
645
|
-
|
|
648
|
+
|
|
646
649
|
def get_agent_tools(self):
|
|
647
650
|
storage = self.file_storage
|
|
648
651
|
user_id = self._user_id
|
|
649
652
|
session_id = self._session_id
|
|
650
|
-
|
|
653
|
+
|
|
651
654
|
async def store_result(param1: str, param2: int) -> str:
|
|
652
655
|
"""Process data and store results.
|
|
653
|
-
|
|
656
|
+
|
|
654
657
|
Args:
|
|
655
658
|
param1: Description of first parameter
|
|
656
659
|
param2: Description of second parameter
|
|
657
|
-
|
|
660
|
+
|
|
658
661
|
Returns:
|
|
659
662
|
Result description
|
|
660
663
|
"""
|
|
@@ -666,7 +669,7 @@ class MyAgent(LlamaIndexAgent):
|
|
|
666
669
|
content=result.encode()
|
|
667
670
|
)
|
|
668
671
|
return f"Result stored with ID: {file_id}"
|
|
669
|
-
|
|
672
|
+
|
|
670
673
|
return [store_result]
|
|
671
674
|
```
|
|
672
675
|
|
|
@@ -710,12 +713,12 @@ class MyAgent(LlamaIndexAgent):
|
|
|
710
713
|
)
|
|
711
714
|
self.mcp_tools = []
|
|
712
715
|
self._mcp_initialized = False
|
|
713
|
-
|
|
716
|
+
|
|
714
717
|
async def _initialize_mcp_tools(self):
|
|
715
718
|
"""Load tools from MCP servers."""
|
|
716
719
|
if self._mcp_initialized:
|
|
717
720
|
return
|
|
718
|
-
|
|
721
|
+
|
|
719
722
|
# Configure your MCP server
|
|
720
723
|
mcp_configs = [
|
|
721
724
|
{
|
|
@@ -724,29 +727,29 @@ class MyAgent(LlamaIndexAgent):
|
|
|
724
727
|
"env": {"FILESYSTEM_ROOT": "/path/to/workspace"}
|
|
725
728
|
}
|
|
726
729
|
]
|
|
727
|
-
|
|
730
|
+
|
|
728
731
|
for config in mcp_configs:
|
|
729
732
|
client = BasicMCPClient(
|
|
730
733
|
config["command"],
|
|
731
734
|
args=config["args"],
|
|
732
735
|
env=config.get("env", {})
|
|
733
736
|
)
|
|
734
|
-
|
|
737
|
+
|
|
735
738
|
# Load tools from the MCP server
|
|
736
739
|
mcp_tool_spec = McpToolSpec(client=client)
|
|
737
740
|
tools = await mcp_tool_spec.to_tool_list_async()
|
|
738
741
|
self.mcp_tools.extend(tools)
|
|
739
|
-
|
|
742
|
+
|
|
740
743
|
self._mcp_initialized = True
|
|
741
|
-
|
|
744
|
+
|
|
742
745
|
async def initialize_agent(self, model_name, system_prompt, tools, **kwargs):
|
|
743
746
|
# Load MCP tools before initializing agent
|
|
744
747
|
await self._initialize_mcp_tools()
|
|
745
|
-
|
|
748
|
+
|
|
746
749
|
# Combine with other tools
|
|
747
750
|
all_tools = self.get_agent_tools()
|
|
748
751
|
await super().initialize_agent(model_name, system_prompt, all_tools, **kwargs)
|
|
749
|
-
|
|
752
|
+
|
|
750
753
|
def get_agent_tools(self):
|
|
751
754
|
# Return built-in tools + MCP tools
|
|
752
755
|
return self.mcp_tools
|
|
@@ -844,13 +847,13 @@ class MyMemoryAgent(LlamaIndexAgent):
|
|
|
844
847
|
name="Memory Agent",
|
|
845
848
|
description="An agent with long-term memory."
|
|
846
849
|
)
|
|
847
|
-
|
|
850
|
+
|
|
848
851
|
def get_agent_prompt(self) -> str:
|
|
849
852
|
return "You are a helpful assistant that remembers user preferences."
|
|
850
|
-
|
|
853
|
+
|
|
851
854
|
def get_agent_tools(self) -> list:
|
|
852
855
|
return []
|
|
853
|
-
|
|
856
|
+
|
|
854
857
|
def get_memory_config(self):
|
|
855
858
|
"""Enable memory - just override this method!"""
|
|
856
859
|
return MemoryConfig.memori_simple(
|
|
@@ -929,11 +932,11 @@ class MySkillsAgent(LlamaIndexAgent):
|
|
|
929
932
|
description="An agent with on-demand capabilities."
|
|
930
933
|
)
|
|
931
934
|
# Built-in markdown skills are automatically registered by BaseAgent.__init__
|
|
932
|
-
|
|
935
|
+
|
|
933
936
|
def get_agent_prompt(self) -> str:
|
|
934
937
|
# Skills discovery prompt is automatically appended by BaseAgent
|
|
935
938
|
return "You are a helpful assistant."
|
|
936
|
-
|
|
939
|
+
|
|
937
940
|
def get_agent_tools(self) -> list:
|
|
938
941
|
# Skill tools are auto-loaded - no need to add them manually!
|
|
939
942
|
return [] # Only return custom tools specific to your agent
|
|
@@ -208,25 +208,25 @@ class MyAgent(LlamaIndexAgent):
|
|
|
208
208
|
name="Calculator Agent",
|
|
209
209
|
description="A helpful calculator assistant that can perform basic math operations."
|
|
210
210
|
)
|
|
211
|
-
|
|
211
|
+
|
|
212
212
|
def get_agent_prompt(self) -> str:
|
|
213
213
|
"""Define your agent's behavior and personality."""
|
|
214
214
|
return "You are a helpful calculator assistant."
|
|
215
|
-
|
|
215
|
+
|
|
216
216
|
def get_agent_tools(self) -> List[callable]:
|
|
217
217
|
"""Define the tools your agent can use.
|
|
218
|
-
|
|
218
|
+
|
|
219
219
|
Tools are automatically converted to LlamaIndex FunctionTool instances.
|
|
220
220
|
The function name becomes the tool name, and the docstring becomes the description.
|
|
221
221
|
"""
|
|
222
222
|
def add(a: float, b: float) -> float:
|
|
223
223
|
"""Add two numbers together."""
|
|
224
224
|
return a + b
|
|
225
|
-
|
|
225
|
+
|
|
226
226
|
def multiply(a: float, b: float) -> float:
|
|
227
227
|
"""Multiply two numbers together."""
|
|
228
228
|
return a * b
|
|
229
|
-
|
|
229
|
+
|
|
230
230
|
# Just return the functions - automatic conversion to FunctionTool
|
|
231
231
|
return [add, multiply]
|
|
232
232
|
|
|
@@ -308,16 +308,16 @@ class OpsMangedAgent(LlamaIndexAgent):
|
|
|
308
308
|
name="Ops Managed Agent",
|
|
309
309
|
description="An agent configured via Elasticsearch."
|
|
310
310
|
)
|
|
311
|
-
|
|
311
|
+
|
|
312
312
|
@classmethod
|
|
313
313
|
def get_use_remote_config(cls) -> bool:
|
|
314
314
|
"""Enable Elasticsearch-only configuration."""
|
|
315
315
|
return True
|
|
316
|
-
|
|
316
|
+
|
|
317
317
|
def get_agent_prompt(self) -> str:
|
|
318
318
|
# Fallback prompt if ES config not available
|
|
319
319
|
return "You are a helpful assistant."
|
|
320
|
-
|
|
320
|
+
|
|
321
321
|
def get_agent_tools(self) -> list:
|
|
322
322
|
return []
|
|
323
323
|
```
|
|
@@ -439,10 +439,10 @@ Custom tools extend your agent's capabilities. The tool name and docstring are c
|
|
|
439
439
|
```python
|
|
440
440
|
def get_weather(city: str) -> str:
|
|
441
441
|
"""Get the current weather for a specific city.
|
|
442
|
-
|
|
442
|
+
|
|
443
443
|
Args:
|
|
444
444
|
city: The name of the city to get weather for
|
|
445
|
-
|
|
445
|
+
|
|
446
446
|
Returns:
|
|
447
447
|
A description of the current weather
|
|
448
448
|
"""
|
|
@@ -479,29 +479,29 @@ class MyAgent(LlamaIndexAgent):
|
|
|
479
479
|
description="A helpful assistant with custom tools."
|
|
480
480
|
)
|
|
481
481
|
self.file_storage = None
|
|
482
|
-
|
|
482
|
+
|
|
483
483
|
async def _ensure_file_storage(self):
|
|
484
484
|
if self.file_storage is None:
|
|
485
485
|
self.file_storage = await FileStorageFactory.create_storage_manager()
|
|
486
|
-
|
|
486
|
+
|
|
487
487
|
async def configure_session(self, session_configuration):
|
|
488
488
|
await self._ensure_file_storage()
|
|
489
489
|
self._user_id = session_configuration.get('user_id', 'default_user')
|
|
490
490
|
self._session_id = session_configuration.get('session_id')
|
|
491
491
|
await super().configure_session(session_configuration)
|
|
492
|
-
|
|
492
|
+
|
|
493
493
|
def get_agent_tools(self):
|
|
494
494
|
storage = self.file_storage
|
|
495
495
|
user_id = self._user_id
|
|
496
496
|
session_id = self._session_id
|
|
497
|
-
|
|
497
|
+
|
|
498
498
|
async def store_result(param1: str, param2: int) -> str:
|
|
499
499
|
"""Process data and store results.
|
|
500
|
-
|
|
500
|
+
|
|
501
501
|
Args:
|
|
502
502
|
param1: Description of first parameter
|
|
503
503
|
param2: Description of second parameter
|
|
504
|
-
|
|
504
|
+
|
|
505
505
|
Returns:
|
|
506
506
|
Result description
|
|
507
507
|
"""
|
|
@@ -513,7 +513,7 @@ class MyAgent(LlamaIndexAgent):
|
|
|
513
513
|
content=result.encode()
|
|
514
514
|
)
|
|
515
515
|
return f"Result stored with ID: {file_id}"
|
|
516
|
-
|
|
516
|
+
|
|
517
517
|
return [store_result]
|
|
518
518
|
```
|
|
519
519
|
|
|
@@ -557,12 +557,12 @@ class MyAgent(LlamaIndexAgent):
|
|
|
557
557
|
)
|
|
558
558
|
self.mcp_tools = []
|
|
559
559
|
self._mcp_initialized = False
|
|
560
|
-
|
|
560
|
+
|
|
561
561
|
async def _initialize_mcp_tools(self):
|
|
562
562
|
"""Load tools from MCP servers."""
|
|
563
563
|
if self._mcp_initialized:
|
|
564
564
|
return
|
|
565
|
-
|
|
565
|
+
|
|
566
566
|
# Configure your MCP server
|
|
567
567
|
mcp_configs = [
|
|
568
568
|
{
|
|
@@ -571,29 +571,29 @@ class MyAgent(LlamaIndexAgent):
|
|
|
571
571
|
"env": {"FILESYSTEM_ROOT": "/path/to/workspace"}
|
|
572
572
|
}
|
|
573
573
|
]
|
|
574
|
-
|
|
574
|
+
|
|
575
575
|
for config in mcp_configs:
|
|
576
576
|
client = BasicMCPClient(
|
|
577
577
|
config["command"],
|
|
578
578
|
args=config["args"],
|
|
579
579
|
env=config.get("env", {})
|
|
580
580
|
)
|
|
581
|
-
|
|
581
|
+
|
|
582
582
|
# Load tools from the MCP server
|
|
583
583
|
mcp_tool_spec = McpToolSpec(client=client)
|
|
584
584
|
tools = await mcp_tool_spec.to_tool_list_async()
|
|
585
585
|
self.mcp_tools.extend(tools)
|
|
586
|
-
|
|
586
|
+
|
|
587
587
|
self._mcp_initialized = True
|
|
588
|
-
|
|
588
|
+
|
|
589
589
|
async def initialize_agent(self, model_name, system_prompt, tools, **kwargs):
|
|
590
590
|
# Load MCP tools before initializing agent
|
|
591
591
|
await self._initialize_mcp_tools()
|
|
592
|
-
|
|
592
|
+
|
|
593
593
|
# Combine with other tools
|
|
594
594
|
all_tools = self.get_agent_tools()
|
|
595
595
|
await super().initialize_agent(model_name, system_prompt, all_tools, **kwargs)
|
|
596
|
-
|
|
596
|
+
|
|
597
597
|
def get_agent_tools(self):
|
|
598
598
|
# Return built-in tools + MCP tools
|
|
599
599
|
return self.mcp_tools
|
|
@@ -691,13 +691,13 @@ class MyMemoryAgent(LlamaIndexAgent):
|
|
|
691
691
|
name="Memory Agent",
|
|
692
692
|
description="An agent with long-term memory."
|
|
693
693
|
)
|
|
694
|
-
|
|
694
|
+
|
|
695
695
|
def get_agent_prompt(self) -> str:
|
|
696
696
|
return "You are a helpful assistant that remembers user preferences."
|
|
697
|
-
|
|
697
|
+
|
|
698
698
|
def get_agent_tools(self) -> list:
|
|
699
699
|
return []
|
|
700
|
-
|
|
700
|
+
|
|
701
701
|
def get_memory_config(self):
|
|
702
702
|
"""Enable memory - just override this method!"""
|
|
703
703
|
return MemoryConfig.memori_simple(
|
|
@@ -776,11 +776,11 @@ class MySkillsAgent(LlamaIndexAgent):
|
|
|
776
776
|
description="An agent with on-demand capabilities."
|
|
777
777
|
)
|
|
778
778
|
# Built-in markdown skills are automatically registered by BaseAgent.__init__
|
|
779
|
-
|
|
779
|
+
|
|
780
780
|
def get_agent_prompt(self) -> str:
|
|
781
781
|
# Skills discovery prompt is automatically appended by BaseAgent
|
|
782
782
|
return "You are a helpful assistant."
|
|
783
|
-
|
|
783
|
+
|
|
784
784
|
def get_agent_tools(self) -> list:
|
|
785
785
|
# Skill tools are auto-loaded - no need to add them manually!
|
|
786
786
|
return [] # Only return custom tools specific to your agent
|
{agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/__init__.py
RENAMED
|
@@ -32,7 +32,7 @@ Example Usage:
|
|
|
32
32
|
create_basic_agent_server(MyAgent, port=8000)
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Version: 0.8.
|
|
35
|
+
Version: 0.8.8
|
|
36
36
|
Author: Cinco AI Team
|
|
37
37
|
License: MIT
|
|
38
38
|
"""
|
|
@@ -95,7 +95,11 @@ def _auto_setup_dependencies() -> None:
|
|
|
95
95
|
def _run_auto_setup() -> None:
|
|
96
96
|
"""Perform the actual dependency checks/installs (idempotent, cached)."""
|
|
97
97
|
try:
|
|
98
|
-
from .utils.post_install import
|
|
98
|
+
from .utils.post_install import (
|
|
99
|
+
ensure_deno,
|
|
100
|
+
ensure_openshell,
|
|
101
|
+
ensure_playwright_browsers,
|
|
102
|
+
)
|
|
99
103
|
|
|
100
104
|
# Check/install Playwright (silent if already installed)
|
|
101
105
|
success, error = ensure_playwright_browsers()
|
|
@@ -111,6 +115,20 @@ def _run_auto_setup() -> None:
|
|
|
111
115
|
logger.info(f"Deno: {message}")
|
|
112
116
|
logger.info(f"Deno will be available via: {deno_path}")
|
|
113
117
|
|
|
118
|
+
# Bootstrap the OpenShell per-session shell sandbox (CLI + gateway +
|
|
119
|
+
# image). Best-effort: on failure the shell degrades to the local path
|
|
120
|
+
# with a runtime warning. This is what makes the strong sandbox work
|
|
121
|
+
# from just `pip install` + launching an agent (no manual steps).
|
|
122
|
+
ok, msg = ensure_openshell()
|
|
123
|
+
if ok:
|
|
124
|
+
logger.info("OpenShell per-session sandbox ready")
|
|
125
|
+
elif msg:
|
|
126
|
+
logger.warning(
|
|
127
|
+
"OpenShell sandbox unavailable (%s) — shell_exec will use the "
|
|
128
|
+
"degraded local path until fixed.",
|
|
129
|
+
msg,
|
|
130
|
+
)
|
|
131
|
+
|
|
114
132
|
except Exception as e:
|
|
115
133
|
# Don't fail the import if setup fails - tools will show errors when used
|
|
116
134
|
logger.debug(f"Auto-setup skipped: {e}")
|
|
@@ -220,8 +238,14 @@ except ImportError:
|
|
|
220
238
|
# Utilities
|
|
221
239
|
from .utils import get_deno_command
|
|
222
240
|
|
|
223
|
-
|
|
224
|
-
|
|
241
|
+
|
|
242
|
+
# Server application — exposed lazily via module __getattr__ (see below).
|
|
243
|
+
# Importing ``.web.server`` eagerly constructs the FastAPI ``app`` at package
|
|
244
|
+
# import time, which boots the whole server and emits ``[SERVER]`` logs to
|
|
245
|
+
# stdout. Skills run ``python -m agent_framework...`` INSIDE the sandbox, where
|
|
246
|
+
# that stdout pollution corrupts the JSON the skill prints (JSONDecodeError →
|
|
247
|
+
# flaky skills). Deferring the import keeps ``import agent_framework`` cheap and
|
|
248
|
+
# stdout clean; ``app``/``start_server`` still resolve on first access.
|
|
225
249
|
|
|
226
250
|
|
|
227
251
|
# Convenience imports for common use cases
|
|
@@ -307,6 +331,22 @@ __all__ = [
|
|
|
307
331
|
]
|
|
308
332
|
|
|
309
333
|
|
|
334
|
+
_LAZY_SERVER_ATTRS = frozenset({"app", "start_server"})
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
def __getattr__(name: str):
|
|
338
|
+
"""Resolve ``app``/``start_server`` lazily from ``.web.server``.
|
|
339
|
+
|
|
340
|
+
Deferred so that ``import agent_framework`` does not boot the FastAPI app
|
|
341
|
+
(and pollute stdout) — critical for skills running inside the sandbox.
|
|
342
|
+
"""
|
|
343
|
+
if name in _LAZY_SERVER_ATTRS:
|
|
344
|
+
from .web import server as _server
|
|
345
|
+
|
|
346
|
+
return getattr(_server, name)
|
|
347
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
348
|
+
|
|
349
|
+
|
|
310
350
|
# Quick start function for convenience
|
|
311
351
|
def create_basic_agent_server(
|
|
312
352
|
agent_class: type[AgentInterface], host: str = "0.0.0.0", port: int = 8000, reload: bool = False
|
{agent_framework_lib-0.8.7.post7 → agent_framework_lib-0.8.8.post2}/agent_framework/a2a/base.py
RENAMED
|
@@ -74,6 +74,7 @@ class A2ATaskProvider(ABC):
|
|
|
74
74
|
message_id: str,
|
|
75
75
|
agent_id: str,
|
|
76
76
|
metadata: dict | None = None,
|
|
77
|
+
owner: str | None = None,
|
|
77
78
|
) -> A2ATask:
|
|
78
79
|
"""Create a new task entry.
|
|
79
80
|
|
|
@@ -84,6 +85,7 @@ class A2ATaskProvider(ABC):
|
|
|
84
85
|
message_id: Framework message ID that triggered this task.
|
|
85
86
|
agent_id: Agent identifier.
|
|
86
87
|
metadata: Optional extra metadata.
|
|
88
|
+
owner: Optional authenticated principal that owns the task.
|
|
87
89
|
|
|
88
90
|
Returns:
|
|
89
91
|
The created A2ATask.
|
|
@@ -57,9 +57,17 @@ def create_a2a_router(app_state: Any, task_provider: Any) -> APIRouter:
|
|
|
57
57
|
# Mutable container for the injected URL from /a2a/config
|
|
58
58
|
injected_url_store: dict[str, str | None] = {"url": None}
|
|
59
59
|
|
|
60
|
+
# Lazy import of auth dependency to avoid circular imports with server.py.
|
|
61
|
+
# Done inside the factory (called at server startup, after server.py is fully
|
|
62
|
+
# imported) so there is no import cycle.
|
|
63
|
+
from agent_framework.web.server import get_current_user
|
|
64
|
+
|
|
60
65
|
@router.get("/.well-known/agent.json")
|
|
61
66
|
async def get_agent_card() -> dict:
|
|
62
|
-
"""Return the A2A Agent Card.
|
|
67
|
+
"""Return the A2A Agent Card.
|
|
68
|
+
|
|
69
|
+
Public discovery endpoint per the A2A protocol: no authentication.
|
|
70
|
+
"""
|
|
63
71
|
env_url = os.getenv("A2A_PUBLIC_URL")
|
|
64
72
|
return agent_card_builder.build(
|
|
65
73
|
agent_instance,
|
|
@@ -68,13 +76,17 @@ def create_a2a_router(app_state: Any, task_provider: Any) -> APIRouter:
|
|
|
68
76
|
)
|
|
69
77
|
|
|
70
78
|
@router.post("/a2a")
|
|
71
|
-
async def handle_jsonrpc(
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
async def handle_jsonrpc(
|
|
80
|
+
request: Request,
|
|
81
|
+
_user: str = Depends(get_current_user),
|
|
82
|
+
) -> JSONResponse:
|
|
83
|
+
"""Dispatch incoming JSON-RPC 2.0 requests.
|
|
75
84
|
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
Requires authentication before any JSON-RPC processing when auth is
|
|
86
|
+
active; in dev-mode the principal resolves to "anonymous".
|
|
87
|
+
"""
|
|
88
|
+
raw_body = await request.body()
|
|
89
|
+
return await dispatcher.dispatch(raw_body, app_state, principal=_user)
|
|
78
90
|
|
|
79
91
|
@router.post("/a2a/config")
|
|
80
92
|
async def update_config(
|
|
@@ -35,12 +35,17 @@ class JSONRPCDispatcher:
|
|
|
35
35
|
"""
|
|
36
36
|
self._translation_layer = translation_layer
|
|
37
37
|
|
|
38
|
-
async def dispatch(
|
|
38
|
+
async def dispatch(
|
|
39
|
+
self, raw_body: bytes, app_state: Any, principal: str | None = None
|
|
40
|
+
) -> JSONResponse | StreamingResponse:
|
|
39
41
|
"""Parse and dispatch a JSON-RPC request.
|
|
40
42
|
|
|
41
43
|
Args:
|
|
42
44
|
raw_body: Raw HTTP body bytes.
|
|
43
45
|
app_state: FastAPI app.state for context.
|
|
46
|
+
principal: Authenticated principal that issued the request, used to
|
|
47
|
+
record task ownership at creation. None when unauthenticated
|
|
48
|
+
(e.g. dev-mode).
|
|
44
49
|
|
|
45
50
|
Returns:
|
|
46
51
|
JSONResponse for sync methods, StreamingResponse for message/stream.
|
|
@@ -60,13 +65,16 @@ class JSONRPCDispatcher:
|
|
|
60
65
|
|
|
61
66
|
request_id = request.id
|
|
62
67
|
|
|
63
|
-
return await self._route_method(request)
|
|
68
|
+
return await self._route_method(request, principal)
|
|
64
69
|
|
|
65
|
-
async def _route_method(
|
|
70
|
+
async def _route_method(
|
|
71
|
+
self, request: JSONRPCRequest, principal: str | None = None
|
|
72
|
+
) -> JSONResponse | StreamingResponse:
|
|
66
73
|
"""Route to the appropriate translation layer method.
|
|
67
74
|
|
|
68
75
|
Args:
|
|
69
76
|
request: Validated JSON-RPC request.
|
|
77
|
+
principal: Authenticated principal that issued the request.
|
|
70
78
|
|
|
71
79
|
Returns:
|
|
72
80
|
Response from the handler.
|
|
@@ -83,7 +91,9 @@ class JSONRPCDispatcher:
|
|
|
83
91
|
return self._error_response(
|
|
84
92
|
request_id, INVALID_PARAMS, "Invalid params", {"details": str(e)}
|
|
85
93
|
)
|
|
86
|
-
result = await self._translation_layer.handle_message_send(
|
|
94
|
+
result = await self._translation_layer.handle_message_send(
|
|
95
|
+
send_params, request_id, principal=principal
|
|
96
|
+
)
|
|
87
97
|
return self._success_response(request_id, result)
|
|
88
98
|
|
|
89
99
|
elif method == "message/stream":
|
|
@@ -94,7 +104,7 @@ class JSONRPCDispatcher:
|
|
|
94
104
|
request_id, INVALID_PARAMS, "Invalid params", {"details": str(e)}
|
|
95
105
|
)
|
|
96
106
|
generator = await self._translation_layer.handle_message_stream(
|
|
97
|
-
stream_params, request_id
|
|
107
|
+
stream_params, request_id, principal=principal
|
|
98
108
|
)
|
|
99
109
|
return StreamingResponse(generator, media_type="text/event-stream")
|
|
100
110
|
|
|
@@ -105,7 +115,9 @@ class JSONRPCDispatcher:
|
|
|
105
115
|
return self._error_response(
|
|
106
116
|
request_id, INVALID_PARAMS, "Invalid params", {"details": str(e)}
|
|
107
117
|
)
|
|
108
|
-
result = await self._translation_layer.handle_tasks_get(
|
|
118
|
+
result = await self._translation_layer.handle_tasks_get(
|
|
119
|
+
get_params, request_id, principal=principal
|
|
120
|
+
)
|
|
109
121
|
return self._success_response(request_id, result)
|
|
110
122
|
|
|
111
123
|
elif method == "tasks/cancel":
|