agent-framework-lib 0.8.10__tar.gz → 0.8.12__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.10/agent_framework_lib.egg-info → agent_framework_lib-0.8.12}/PKG-INFO +19 -8
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/README.md +13 -2
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/model_clients.py +37 -1
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/implementations/llamaindex_agent.py +36 -0
- agent_framework_lib-0.8.12/agent_framework/web/docs/Dockerfile +19 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/server.py +73 -95
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework_lib.egg-info}/PKG-INFO +19 -8
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework_lib.egg-info/SOURCES.txt +1 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework_lib.egg-info/requires.txt +6 -6
- agent_framework_lib-0.8.12/docs/AGENT_RUNTIME_IMAGE.md +71 -0
- {agent_framework_lib-0.8.10/agent_framework/web → agent_framework_lib-0.8.12}/docs/GETTING_STARTED.md +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web → agent_framework_lib-0.8.12}/docs/api-reference.md +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web → agent_framework_lib-0.8.12}/docs/configuration.md +7 -7
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/agent_example_multi_skills.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/agent_with_file_storage.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/agent_with_mcp.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/agent_with_memory_graphiti.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/agent_with_memory_hybrid.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/agent_with_memory_simple.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/custom_framework_agent.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/simple_agent.py +1 -1
- {agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/examples/skills_demo_agent.py +1 -1
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/pyproject.toml +12 -11
- agent_framework_lib-0.8.10/agent_framework/web/docs/Dockerfile +0 -57
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/ARCHITECTURE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/LICENSE +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/MANIFEST.in +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/base.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/a2a_router.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/sse_wrapper.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/endpoints/translation_layer.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/models.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/providers/elasticsearch_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/a2a/providers/postgres_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/capabilities/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/capabilities/resolver.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/audit.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/config.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/crypto.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/git_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/herdr_client.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/models.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/orchestrator.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/store.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/code_delivery/tools.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/activity_formatter.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/agent_interface.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/agent_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/base_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/context_budget.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/context_summarizer.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/elasticsearch_config_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/execution_controller.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/implementation_validator.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/interruption_message.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/knowledge_state.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/loop_detector.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/model_config.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/model_router.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/models.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/prompt_builder.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/provider_calibration.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/scratchpad_compressor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/scratchpad_serializer.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/state_manager.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/step_display_config.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/streaming_parts_accumulator.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/implementations/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/implementations/budget_aware_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/implementations/llamaindex_memory_adapter.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/implementations/microsoft_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/base.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/config.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/hypothesis_engine.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/implicit_feedback.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/manager.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/personalization.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/providers/graphiti_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/providers/memori_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/response_lessons.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/tools.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/memory/work_patterns.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/api_timing_tracker.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/elasticsearch_logging.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/error_handling.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/error_logging.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/llm_auto_instrumentor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/llm_metrics.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/metrics_aggregator.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/metrics_config.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/observability_manager.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/otel_instrumentor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/otel_logging_handler.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/otel_setup.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/performance_monitor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/progress_tracker.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/resource_manager.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/timing_tracker.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/token_counter.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/monitoring/tracing_context.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/notifications/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/notifications/hub.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/notifications/webhook_notifier.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/processing/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/processing/ai_content_management.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/processing/markdown_converter.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/processing/multimodal_integration.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/processing/rich_content_validation.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/py.typed +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/authz.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/file_view_token.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/input_guard.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/openshell_policy.yaml +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/pii_redactor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/sandbox.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/sandbox_provider.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/secret_redactor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/shell_env.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/security/upload_token.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/session/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/session/elasticsearch_session_storage.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/session/session_storage.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/base.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/scripts/create_and_register.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/scripts/register_to_storage.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/chart/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/chart/vendor_chart.umd.min.js +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/code_delivery/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/code_format/format_python.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/csv/create_csv.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/csv/read_csv.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/csv/transform_csv.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/excel/create_excel.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/file/create_file.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/file/list_files.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/file/read_file.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/file_access/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/file_access/download_to_local.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/image_gen/create_image.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/mermaid/vendor_mermaid.umd.min.js +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/powerpoint/templates/Big Data Infographics.pptx +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/powerpoint/templates/Executive Design Pitch Deck.pptx +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/powerpoint/templates/Management Consulting Toolkit.pptx +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/powerpoint/templates/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/powerpoint/templates/generate_templates.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/skill_creator/skill_api.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/table/table_to_image.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/builtin/skills/word/create_word.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/custom_skill_manager.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/discovery_prompt.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/markdown_loader.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/skills/tools.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/storage/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/storage/file_storages.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/storage/file_system_management.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/storage/storage_optimizer.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/subagents/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/subagents/executor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/subagents/message_injector.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/subagents/message_queue.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/subagents/retrigger.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/subagents/spawn_tool.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/activity_callback.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/adaptive_pdf_css.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/base.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/html_content_analyzer.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/multimodal_tools.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/pdf_image_scaler.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/shell_tool.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/sizing_config.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/web_fetch_tool.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/tools/web_search_tool.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/utils/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/utils/path_utils.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/utils/post_install.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/utils/session_title_generator.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/utils/source_detector.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/utils/special_blocks.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/admin_auth.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/admin_models.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/admin_router.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/admin_services.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/api_timing_middleware.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web}/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/README.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web}/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web}/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/docker-compose.yml +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/examples/agent_with_memory.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework/web/docs}/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/documentation_generator.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/gitnexus_client.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/helper_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/helper_ui.html +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/modern_ui.html +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/otel_tracing_middleware.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/skills_router.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/web/test_app.html +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/builder.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/chat_completion.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/context.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/decorators.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/engine.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/errors.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/monitoring.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/runner.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/state.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/core/types.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/implementations/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/implementations/langgraph_engine.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/server/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/server/router.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workflow/server/schemas.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/__init__.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/artefacts.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/client.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/config.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/context.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/cursor.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/memory.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/models.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/poller.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/preferences.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/router.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/session.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/workspace/subscription.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework_lib.egg-info/entry_points.txt +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework_lib.egg-info/top_level.txt +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/ARCHITECTURE_DIAGRAM.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/CANCEL_AND_INTERRUPT_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/DEEPEVAL_TEST_REPORT.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/DIAGNOSTIC_SANDBOX_SKILLS.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/FILE_STORAGE_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/HISTORY_MESSAGE_FORMAT.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/MULTIMODAL_TOOLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/OBSERVABILITY_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/OPENSHELL_GATEWAY_HOST_SETUP.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/PYPI_PUBLISHING.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/QA_STREAMING_LATENCY.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/SCREENSHOTS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/SECRETS_MANAGEMENT.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/SECURITY_HARDENING.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/SSE_NOTIFICATIONS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/framework_audit_remarques.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/helper_agent.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/index.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/README.md +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/agent_context_budget_test.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/agent_exemple_test.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/agent_training_with_apo.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/agent_with_custom_tools_file_storage.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/agent_with_personalization.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/biagenttest.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/dependencies/docker-compose.yaml +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/pyproject.toml +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/test_work_patterns_live.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/workflow_engine_example.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/examples/workspace_test_agent.py +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/setup.cfg +0 -0
- {agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/setup.py +0 -0
{agent_framework_lib-0.8.10/agent_framework_lib.egg-info → agent_framework_lib-0.8.12}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-framework-lib
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.12
|
|
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>
|
|
@@ -12,7 +12,7 @@ Project-URL: Documentation, https://github.com/Cinco-AI/AgentFramework/blob/main
|
|
|
12
12
|
Project-URL: Changelog, https://github.com/Cinco-AI/AgentFramework/blob/main/docs/CHANGELOG.md
|
|
13
13
|
Project-URL: Bug Tracker, https://github.com/Cinco-AI/AgentFramework/issues
|
|
14
14
|
Project-URL: Source Code, https://github.com/Cinco-AI/AgentFramework
|
|
15
|
-
Keywords: ai,agents,fastapi,llamaindex,framework,conversational-ai,multi-agent,llm,openai,gemini,chatbot,session-management,framework-agnostic
|
|
15
|
+
Keywords: ai,agents,fastapi,llamaindex,framework,conversational-ai,multi-agent,llm,openai>=2.45,<3,anthropic>=1.5,<2,gemini,chatbot,session-management,framework-agnostic
|
|
16
16
|
Classifier: Development Status :: 4 - Beta
|
|
17
17
|
Classifier: Intended Audience :: Developers
|
|
18
18
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -57,10 +57,10 @@ Requires-Dist: httpx>=0.28.1
|
|
|
57
57
|
Requires-Dist: cryptography>=42.0.0
|
|
58
58
|
Requires-Dist: beautifulsoup4>=4.12.0
|
|
59
59
|
Requires-Dist: llama-index>=0.14.16
|
|
60
|
-
Requires-Dist: llama-index-core>=0.14.
|
|
60
|
+
Requires-Dist: llama-index-core>=0.14.24
|
|
61
61
|
Requires-Dist: llama-index-workflows>=2.16.0
|
|
62
|
-
Requires-Dist: llama-index-llms-openai>=0.7.
|
|
63
|
-
Requires-Dist: llama-index-llms-anthropic>=0.
|
|
62
|
+
Requires-Dist: llama-index-llms-openai>=0.7.10
|
|
63
|
+
Requires-Dist: llama-index-llms-anthropic>=0.12.0
|
|
64
64
|
Requires-Dist: llama-index-llms-google-genai>=0.1.0
|
|
65
65
|
Requires-Dist: graphiti-core>=0.24.3
|
|
66
66
|
Requires-Dist: tiktoken>=0.8.0
|
|
@@ -79,11 +79,11 @@ Provides-Extra: security
|
|
|
79
79
|
Requires-Dist: llm-guard>=0.3.0; extra == "security"
|
|
80
80
|
Provides-Extra: llamaindex
|
|
81
81
|
Requires-Dist: llama-index>=0.14.16; extra == "llamaindex"
|
|
82
|
-
Requires-Dist: llama-index-core>=0.14.
|
|
82
|
+
Requires-Dist: llama-index-core>=0.14.24; extra == "llamaindex"
|
|
83
83
|
Requires-Dist: llama-index-workflows>=2.16.0; extra == "llamaindex"
|
|
84
|
-
Requires-Dist: llama-index-llms-openai>=0.7.
|
|
84
|
+
Requires-Dist: llama-index-llms-openai>=0.7.10; extra == "llamaindex"
|
|
85
85
|
Requires-Dist: llama-index-llms-google-genai>=0.1.0; extra == "llamaindex"
|
|
86
|
-
Requires-Dist: llama-index-llms-anthropic>=0.
|
|
86
|
+
Requires-Dist: llama-index-llms-anthropic>=0.12.0; extra == "llamaindex"
|
|
87
87
|
Provides-Extra: langgraph
|
|
88
88
|
Requires-Dist: langgraph>=0.2.0; extra == "langgraph"
|
|
89
89
|
Provides-Extra: mcp
|
|
@@ -325,6 +325,17 @@ HELPER_AGENT_MODEL=gpt-5.4
|
|
|
325
325
|
- "How do I configure S3 storage?"
|
|
326
326
|
- "Search the web for LlamaIndex best practices"
|
|
327
327
|
|
|
328
|
+
## 📦 Image de runtime des agents
|
|
329
|
+
|
|
330
|
+
Pour **déployer** un agent, partez de l'image officielle — Chromium Playwright, Deno, git, root,
|
|
331
|
+
sandbox locale déjà en place (sinon l'agent ne peut ni rendre un PNG ni installer quoi que ce soit) :
|
|
332
|
+
|
|
333
|
+
```dockerfile
|
|
334
|
+
FROM ghcr.io/komus-ai/agent-framework-runtime:0.8.12
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Détails, publication et visibilité GHCR : [docs/AGENT_RUNTIME_IMAGE.md](docs/AGENT_RUNTIME_IMAGE.md).
|
|
338
|
+
|
|
328
339
|
## 🐳 Docker Development Environment
|
|
329
340
|
|
|
330
341
|
For local development, use Docker Compose to run all external services (Elasticsearch, MongoDB, PostgreSQL, FalkorDB, MinIO):
|
{agent_framework_lib-0.8.10/agent_framework/web/docs → agent_framework_lib-0.8.12}/README.md
RENAMED
|
@@ -167,6 +167,17 @@ HELPER_AGENT_MODEL=gpt-5.4
|
|
|
167
167
|
- "How do I configure S3 storage?"
|
|
168
168
|
- "Search the web for LlamaIndex best practices"
|
|
169
169
|
|
|
170
|
+
## 📦 Image de runtime des agents
|
|
171
|
+
|
|
172
|
+
Pour **déployer** un agent, partez de l'image officielle — Chromium Playwright, Deno, git, root,
|
|
173
|
+
sandbox locale déjà en place (sinon l'agent ne peut ni rendre un PNG ni installer quoi que ce soit) :
|
|
174
|
+
|
|
175
|
+
```dockerfile
|
|
176
|
+
FROM ghcr.io/komus-ai/agent-framework-runtime:0.8.12
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Détails, publication et visibilité GHCR : [docs/AGENT_RUNTIME_IMAGE.md](docs/AGENT_RUNTIME_IMAGE.md).
|
|
180
|
+
|
|
170
181
|
## 🐳 Docker Development Environment
|
|
171
182
|
|
|
172
183
|
For local development, use Docker Compose to run all external services (Elasticsearch, MongoDB, PostgreSQL, FalkorDB, MinIO):
|
|
@@ -272,7 +283,7 @@ ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
|
|
|
272
283
|
GEMINI_API_KEY=your-gemini-key
|
|
273
284
|
|
|
274
285
|
# Model Configuration
|
|
275
|
-
DEFAULT_MODEL=
|
|
286
|
+
DEFAULT_MODEL=claude-haiku-4-5-20251001
|
|
276
287
|
|
|
277
288
|
# Multi-Model Routing (Auto Mode)
|
|
278
289
|
DEFAULT_MODEL_MODE=auto # "auto" or specific model name
|
|
@@ -419,7 +430,7 @@ class MyAgent(LlamaIndexAgent):
|
|
|
419
430
|
)
|
|
420
431
|
# Default model config (can be overridden per session)
|
|
421
432
|
self.default_temperature = 0.7
|
|
422
|
-
self.default_model = "
|
|
433
|
+
self.default_model = "claude-haiku-4-5-20251001"
|
|
423
434
|
```
|
|
424
435
|
|
|
425
436
|
**Runtime Configuration:**
|
{agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework/core/model_clients.py
RENAMED
|
@@ -182,6 +182,36 @@ def _patch_openai_client_for_sanitization(llm: Any) -> None:
|
|
|
182
182
|
logger.info("[OpenAI Sanitizer] Patched LlamaIndex OpenAI LLM for cross-provider compatibility")
|
|
183
183
|
|
|
184
184
|
|
|
185
|
+
def register_anthropic_model_with_llamaindex(model_name: str | None) -> bool:
|
|
186
|
+
"""Ajoute ``model_name`` à la table ``CLAUDE_MODELS`` de llama-index si elle l'ignore.
|
|
187
|
+
|
|
188
|
+
``llama_index.llms.anthropic`` lève ``ValueError("Unknown model: …")`` dans
|
|
189
|
+
``metadata`` pour tout id absent de sa table (figée à sa version) — même si l'API
|
|
190
|
+
Anthropic l'accepte. La fenêtre de contexte vient de ``ModelContextRegistry``
|
|
191
|
+
(repli : 200k). Retourne True si un enregistrement a été fait.
|
|
192
|
+
"""
|
|
193
|
+
if not model_name:
|
|
194
|
+
return False
|
|
195
|
+
try:
|
|
196
|
+
from llama_index.llms.anthropic import utils as li_utils
|
|
197
|
+
except ImportError:
|
|
198
|
+
return False
|
|
199
|
+
table = getattr(li_utils, "CLAUDE_MODELS", None)
|
|
200
|
+
if not isinstance(table, dict) or model_name in table:
|
|
201
|
+
return False
|
|
202
|
+
from .context_budget import ModelContextRegistry
|
|
203
|
+
|
|
204
|
+
context_window = ModelContextRegistry.CONTEXT_WINDOWS.get(model_name) or 200_000
|
|
205
|
+
table[model_name] = context_window
|
|
206
|
+
logger.info(
|
|
207
|
+
"[ModelClientFactory] modèle %s inconnu de llama-index-llms-anthropic : enregistré "
|
|
208
|
+
"(fenêtre %d)",
|
|
209
|
+
model_name,
|
|
210
|
+
context_window,
|
|
211
|
+
)
|
|
212
|
+
return True
|
|
213
|
+
|
|
214
|
+
|
|
185
215
|
_SAMPLING_DROP_WARNED: set[tuple[str, str]] = set()
|
|
186
216
|
|
|
187
217
|
|
|
@@ -1069,6 +1099,12 @@ class ModelClientFactory:
|
|
|
1069
1099
|
f"[ModelClientFactory] Creating LlamaIndex Anthropic LLM for model: {params['model']}"
|
|
1070
1100
|
)
|
|
1071
1101
|
|
|
1102
|
+
# Les modèles inconnus de llama-index (table CLAUDE_MODELS figée à sa version) font
|
|
1103
|
+
# lever `Unknown model` au premier accès à `llm.metadata` — constaté en prod le
|
|
1104
|
+
# 15/09/2026 avec claude-opus-5 sous llama-index-llms-anthropic 0.11.8. On complète
|
|
1105
|
+
# sa table à l'exécution depuis notre registre de fenêtres de contexte.
|
|
1106
|
+
register_anthropic_model_with_llamaindex(params["model"])
|
|
1107
|
+
|
|
1072
1108
|
# Try with all parameters
|
|
1073
1109
|
try:
|
|
1074
1110
|
llm = Anthropic(**params)
|
|
@@ -1312,7 +1348,7 @@ def _resolve_call_params(
|
|
|
1312
1348
|
temperature if temperature is not None else model_params.get("temperature", 0.7)
|
|
1313
1349
|
)
|
|
1314
1350
|
effective_max_tokens = max_tokens if max_tokens is not None else model_params.get("max_tokens")
|
|
1315
|
-
return cast(str, model), effective_temperature, effective_max_tokens
|
|
1351
|
+
return cast("str", model), effective_temperature, effective_max_tokens
|
|
1316
1352
|
|
|
1317
1353
|
|
|
1318
1354
|
async def execute_chat_completion(
|
|
@@ -166,6 +166,18 @@ class _StreamingActivityAccumulator:
|
|
|
166
166
|
self._activities.clear()
|
|
167
167
|
|
|
168
168
|
|
|
169
|
+
def _short_error_text(error: Any, limit: int = 200) -> str:
|
|
170
|
+
"""Résumé court et lisible d'une exception ou d'un message d'erreur (jamais `None`)."""
|
|
171
|
+
if error is None:
|
|
172
|
+
return ""
|
|
173
|
+
text = str(error).strip()
|
|
174
|
+
if not text or text == "None":
|
|
175
|
+
return type(error).__name__ if isinstance(error, BaseException) else ""
|
|
176
|
+
# Les listes de modèles connus etc. sont interminables : on coupe à la première ligne.
|
|
177
|
+
text = text.splitlines()[0].strip()
|
|
178
|
+
return text if len(text) <= limit else text[: limit - 1] + "…"
|
|
179
|
+
|
|
180
|
+
|
|
169
181
|
class LlamaIndexAgent(BaseAgent):
|
|
170
182
|
"""
|
|
171
183
|
Concrete implementation of BaseAgent for LlamaIndex framework.
|
|
@@ -1182,6 +1194,30 @@ class LlamaIndexAgent(BaseAgent):
|
|
|
1182
1194
|
if event_type in {"StopEvent", "StartEvent"}:
|
|
1183
1195
|
return None
|
|
1184
1196
|
|
|
1197
|
+
# Échec du workflow (WorkflowFailedEvent, …) : message lisible plutôt que le
|
|
1198
|
+
# nom de la classe avec un payload `None` (retour Elliott, 15/09/2026).
|
|
1199
|
+
if "Failed" in event_type or "Error" in event_type:
|
|
1200
|
+
detail = None
|
|
1201
|
+
for attr in ("error", "exception", "message", "reason", "msg"):
|
|
1202
|
+
detail = getattr(event, attr, None)
|
|
1203
|
+
if detail:
|
|
1204
|
+
break
|
|
1205
|
+
detail_text = _short_error_text(detail)
|
|
1206
|
+
return {
|
|
1207
|
+
"type": "activity",
|
|
1208
|
+
"content": (
|
|
1209
|
+
f"Le traitement a échoué : {detail_text}"
|
|
1210
|
+
if detail_text
|
|
1211
|
+
else "Le traitement a échoué (erreur interne de l'agent)."
|
|
1212
|
+
),
|
|
1213
|
+
"metadata": {
|
|
1214
|
+
"source": "llamaindex_agent",
|
|
1215
|
+
"event_type": event_type,
|
|
1216
|
+
"error": detail_text,
|
|
1217
|
+
"timestamp": datetime.now().isoformat(),
|
|
1218
|
+
},
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1185
1221
|
# Fallback: concise other event
|
|
1186
1222
|
event_str = str(event)
|
|
1187
1223
|
if len(event_str) > 800 or "ChatMessage(" in event_str or "tool_kwargs=" in event_str:
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Exemple : déployer un agent basé sur agent-framework-lib.
|
|
2
|
+
# Base = image de runtime officielle (Chromium Playwright, Deno, git, root, sandbox locale) :
|
|
3
|
+
# voir docs/AGENT_RUNTIME_IMAGE.md. Ne repartez PAS de python:*-slim à la main : vous
|
|
4
|
+
# retomberiez sur une sandbox sans libs Chromium ni droits (export PNG impossible).
|
|
5
|
+
FROM ghcr.io/komus-ai/agent-framework-runtime:0.8.12
|
|
6
|
+
|
|
7
|
+
WORKDIR /app
|
|
8
|
+
|
|
9
|
+
# Deps figées par uv.lock (pas de résolution à neuf au build).
|
|
10
|
+
COPY pyproject.toml uv.lock ./
|
|
11
|
+
RUN uv export --frozen --no-dev --no-emit-project --no-hashes -o /tmp/requirements.txt \
|
|
12
|
+
&& uv pip install --system -r /tmp/requirements.txt
|
|
13
|
+
|
|
14
|
+
# Code de l'agent.
|
|
15
|
+
COPY src ./src
|
|
16
|
+
RUN uv pip install --system --no-deps .
|
|
17
|
+
|
|
18
|
+
# Contrat Mozart : 0.0.0.0:8000 + GET /health (healthcheck déjà défini dans l'image de base).
|
|
19
|
+
CMD ["python", "-m", "your_agent.main"]
|
|
@@ -1308,8 +1308,7 @@ async def lifespan(app: FastAPI):
|
|
|
1308
1308
|
|
|
1309
1309
|
sandbox_reaper_task = asyncio.create_task(_sandbox_reaper_loop())
|
|
1310
1310
|
logger.info(
|
|
1311
|
-
"[SANDBOX] lifecycle GC active (boot_purge=%s, reap every %ds, "
|
|
1312
|
-
"idle>%ds, max=%d)",
|
|
1311
|
+
"[SANDBOX] lifecycle GC active (boot_purge=%s, reap every %ds, idle>%ds, max=%d)",
|
|
1313
1312
|
_boot_purge,
|
|
1314
1313
|
_reap_interval,
|
|
1315
1314
|
_reap_idle,
|
|
@@ -2677,6 +2676,23 @@ async def handle_message_endpoint(
|
|
|
2677
2676
|
# --- NEW STREAMING ENDPOINT --- >
|
|
2678
2677
|
|
|
2679
2678
|
|
|
2679
|
+
def _stream_error_notice(exc: Exception, provider_label: str) -> str:
|
|
2680
|
+
"""Message utilisateur pour une erreur de streaming non transitoire.
|
|
2681
|
+
|
|
2682
|
+
Une ligne de cause, courte (les messages du SDK peuvent lister des dizaines de
|
|
2683
|
+
modèles) : assez pour comprendre, pas de trace technique.
|
|
2684
|
+
"""
|
|
2685
|
+
raw = str(exc).strip()
|
|
2686
|
+
detail = raw.splitlines()[0].strip() if raw else type(exc).__name__
|
|
2687
|
+
if len(detail) > 160:
|
|
2688
|
+
detail = detail[:159] + "…"
|
|
2689
|
+
return (
|
|
2690
|
+
"⚠️ Une erreur technique a interrompu ma réponse. Réessayez dans un instant ; "
|
|
2691
|
+
"si le problème persiste, signalez-le à un administrateur.\n\n"
|
|
2692
|
+
f"Détail ({provider_label}) : {detail}"
|
|
2693
|
+
)
|
|
2694
|
+
|
|
2695
|
+
|
|
2680
2696
|
def _is_provider_overloaded_error(exc: Exception) -> bool:
|
|
2681
2697
|
"""Détecte si l'exception est une erreur de surcharge du provider LLM."""
|
|
2682
2698
|
error_str = str(exc).lower()
|
|
@@ -2831,7 +2847,6 @@ async def handle_stream_endpoint(
|
|
|
2831
2847
|
file_count = sum(1 for p in agent_input.parts if isinstance(p, FileDataInputPart))
|
|
2832
2848
|
|
|
2833
2849
|
if has_files and hasattr(request.app.state, "file_storage_manager"):
|
|
2834
|
-
|
|
2835
2850
|
# Process files: decode, convert to markdown, store, etc.
|
|
2836
2851
|
process_files_start = time.perf_counter()
|
|
2837
2852
|
async with tracer.preprocessing_span("process_files", {"file_count": file_count}):
|
|
@@ -3877,125 +3892,88 @@ async def handle_stream_endpoint(
|
|
|
3877
3892
|
with suppress(Exception):
|
|
3878
3893
|
await metrics_aggregator.finalize()
|
|
3879
3894
|
|
|
3880
|
-
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3895
|
+
# Toute erreur de streaming est renvoyée comme un MESSAGE d'agent normal
|
|
3896
|
+
# (même format qu'une réponse) : le front l'affiche tel quel, au lieu d'un
|
|
3897
|
+
# « WorkflowFailedEvent / None » illisible (retour Elliott, 15/09/2026).
|
|
3898
|
+
# Surcharge transitoire du fournisseur → message dédié ; sinon message
|
|
3899
|
+
# générique avec un résumé court de la cause.
|
|
3900
|
+
overloaded_model = None
|
|
3901
|
+
with suppress(Exception):
|
|
3902
|
+
overloaded_model = await agent_instance.get_current_model(session_id)
|
|
3903
|
+
provider_label = _provider_display_name(overloaded_model)
|
|
3889
3904
|
|
|
3905
|
+
if _is_provider_overloaded_error(e):
|
|
3890
3906
|
overloaded_message = (
|
|
3891
3907
|
f"⚠️ {provider_label} rencontre actuellement un problème de serveur "
|
|
3892
3908
|
"et est temporairement indisponible. Réessayez dans quelques instants, "
|
|
3893
3909
|
"ou sélectionnez un modèle d'un autre fournisseur."
|
|
3894
3910
|
)
|
|
3911
|
+
else:
|
|
3912
|
+
overloaded_message = _stream_error_notice(e, provider_label)
|
|
3895
3913
|
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
if not final_agent_response:
|
|
3899
|
-
try:
|
|
3900
|
-
end_time_err = datetime.now(timezone.utc)
|
|
3901
|
-
processing_time_err = (end_time_err - start_time).total_seconds() * 1000
|
|
3902
|
-
overloaded_response = StructuredAgentOutput(
|
|
3903
|
-
response_text=overloaded_message,
|
|
3904
|
-
parts=[TextOutputPart(text=overloaded_message)],
|
|
3905
|
-
)
|
|
3906
|
-
await _persist_agent_response_to_storage(
|
|
3907
|
-
user_id=user_id,
|
|
3908
|
-
session_id=session_id,
|
|
3909
|
-
interaction_id=interaction_id,
|
|
3910
|
-
agent_response_obj=overloaded_response,
|
|
3911
|
-
processing_time_ms=processing_time_err,
|
|
3912
|
-
model_used=overloaded_model,
|
|
3913
|
-
selection_mode=None,
|
|
3914
|
-
agent_id=agent_identity.agent_id,
|
|
3915
|
-
agent_type=agent_identity.agent_type,
|
|
3916
|
-
)
|
|
3917
|
-
logger.info(
|
|
3918
|
-
f"[STREAM] Persisted provider-overloaded notice as agent response "
|
|
3919
|
-
f"- interaction_id={interaction_id}"
|
|
3920
|
-
)
|
|
3921
|
-
except Exception as persist_err:
|
|
3922
|
-
logger.error(
|
|
3923
|
-
f"[STREAM] Failed to persist provider-overloaded notice "
|
|
3924
|
-
f"- interaction_id={interaction_id}, error={persist_err}"
|
|
3925
|
-
)
|
|
3926
|
-
|
|
3927
|
-
# Émet le message comme une réponse d'agent normale.
|
|
3928
|
-
overloaded_sse = SessionMessageResponse(
|
|
3929
|
-
response_text=overloaded_message,
|
|
3930
|
-
parts=[TextOutputPart(text=overloaded_message)],
|
|
3931
|
-
session_id=session_id,
|
|
3932
|
-
user_id=user_id,
|
|
3933
|
-
correlation_id=msg_request_body.correlation_id,
|
|
3934
|
-
interaction_id=interaction_id,
|
|
3935
|
-
agent_id=agent_identity.agent_id,
|
|
3936
|
-
agent_type=agent_identity.agent_type,
|
|
3937
|
-
model_used=overloaded_model,
|
|
3938
|
-
)
|
|
3939
|
-
overloaded_json = json.dumps(
|
|
3940
|
-
overloaded_sse.model_dump(), ensure_ascii=False, separators=(",", ":")
|
|
3941
|
-
)
|
|
3942
|
-
yield f"data: {overloaded_json}\n\n".encode().decode("utf-8")
|
|
3943
|
-
|
|
3944
|
-
# Clôture le stream comme une fin normale (idle + done).
|
|
3945
|
-
yield _sse_execution_state_event("idle")
|
|
3946
|
-
done_message = {
|
|
3947
|
-
"status": "done",
|
|
3948
|
-
"session_id": session_id,
|
|
3949
|
-
"interaction_id": interaction_id,
|
|
3950
|
-
"model_used": overloaded_model,
|
|
3951
|
-
"model_routed": overloaded_model,
|
|
3952
|
-
"selection_mode": None,
|
|
3953
|
-
}
|
|
3954
|
-
done_line = f"data: {json.dumps(done_message, ensure_ascii=False, separators=(',', ':'))}\n\n"
|
|
3955
|
-
yield done_line.encode("utf-8").decode("utf-8")
|
|
3956
|
-
return
|
|
3957
|
-
|
|
3958
|
-
# --- Cas d'erreur générique (non transitoire) ---
|
|
3959
|
-
error_message = "An error occurred during processing."
|
|
3960
|
-
error_payload = {"error": error_message}
|
|
3961
|
-
|
|
3962
|
-
# Persister le message d'erreur si aucune réponse partielle n'a été sauvegardée
|
|
3914
|
+
# Persiste comme réponse d'agent (visible dans l'historique) seulement
|
|
3915
|
+
# si aucune réponse partielle n'a déjà été sauvegardée plus haut.
|
|
3963
3916
|
if not final_agent_response:
|
|
3964
3917
|
try:
|
|
3965
3918
|
end_time_err = datetime.now(timezone.utc)
|
|
3966
3919
|
processing_time_err = (end_time_err - start_time).total_seconds() * 1000
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
error_response = StructuredAgentOutput(
|
|
3971
|
-
response_text=error_message,
|
|
3972
|
-
parts=[TextOutputPart(text=error_message)],
|
|
3920
|
+
overloaded_response = StructuredAgentOutput(
|
|
3921
|
+
response_text=overloaded_message,
|
|
3922
|
+
parts=[TextOutputPart(text=overloaded_message)],
|
|
3973
3923
|
)
|
|
3974
3924
|
await _persist_agent_response_to_storage(
|
|
3975
3925
|
user_id=user_id,
|
|
3976
3926
|
session_id=session_id,
|
|
3977
3927
|
interaction_id=interaction_id,
|
|
3978
|
-
agent_response_obj=
|
|
3928
|
+
agent_response_obj=overloaded_response,
|
|
3979
3929
|
processing_time_ms=processing_time_err,
|
|
3980
|
-
model_used=
|
|
3930
|
+
model_used=overloaded_model,
|
|
3981
3931
|
selection_mode=None,
|
|
3982
3932
|
agent_id=agent_identity.agent_id,
|
|
3983
3933
|
agent_type=agent_identity.agent_type,
|
|
3984
3934
|
)
|
|
3985
3935
|
logger.info(
|
|
3986
|
-
f"[STREAM] Persisted
|
|
3936
|
+
f"[STREAM] Persisted provider-overloaded notice as agent response "
|
|
3987
3937
|
f"- interaction_id={interaction_id}"
|
|
3988
3938
|
)
|
|
3989
3939
|
except Exception as persist_err:
|
|
3990
3940
|
logger.error(
|
|
3991
|
-
f"[STREAM] Failed to persist
|
|
3941
|
+
f"[STREAM] Failed to persist provider-overloaded notice "
|
|
3992
3942
|
f"- interaction_id={interaction_id}, error={persist_err}"
|
|
3993
3943
|
)
|
|
3994
3944
|
|
|
3995
|
-
|
|
3996
|
-
|
|
3945
|
+
# Émet le message comme une réponse d'agent normale.
|
|
3946
|
+
overloaded_sse = SessionMessageResponse(
|
|
3947
|
+
response_text=overloaded_message,
|
|
3948
|
+
parts=[TextOutputPart(text=overloaded_message)],
|
|
3949
|
+
session_id=session_id,
|
|
3950
|
+
user_id=user_id,
|
|
3951
|
+
correlation_id=msg_request_body.correlation_id,
|
|
3952
|
+
interaction_id=interaction_id,
|
|
3953
|
+
agent_id=agent_identity.agent_id,
|
|
3954
|
+
agent_type=agent_identity.agent_type,
|
|
3955
|
+
model_used=overloaded_model,
|
|
3956
|
+
)
|
|
3957
|
+
overloaded_json = json.dumps(
|
|
3958
|
+
overloaded_sse.model_dump(), ensure_ascii=False, separators=(",", ":")
|
|
3959
|
+
)
|
|
3960
|
+
yield f"data: {overloaded_json}\n\n".encode().decode("utf-8")
|
|
3961
|
+
|
|
3962
|
+
# Clôture le stream comme une fin normale (idle + done).
|
|
3963
|
+
yield _sse_execution_state_event("idle")
|
|
3964
|
+
done_message = {
|
|
3965
|
+
"status": "done",
|
|
3966
|
+
"session_id": session_id,
|
|
3967
|
+
"interaction_id": interaction_id,
|
|
3968
|
+
"model_used": overloaded_model,
|
|
3969
|
+
"model_routed": overloaded_model,
|
|
3970
|
+
"selection_mode": None,
|
|
3971
|
+
}
|
|
3972
|
+
done_line = (
|
|
3973
|
+
f"data: {json.dumps(done_message, ensure_ascii=False, separators=(',', ':'))}\n\n"
|
|
3997
3974
|
)
|
|
3998
|
-
yield
|
|
3975
|
+
yield done_line.encode("utf-8").decode("utf-8")
|
|
3976
|
+
return
|
|
3999
3977
|
|
|
4000
3978
|
except (GeneratorExit, asyncio.CancelledError) as disconnect_err:
|
|
4001
3979
|
# GeneratorExit: client closed the SSE connection
|
|
@@ -6532,9 +6510,9 @@ async def submit_message_feedback_endpoint(
|
|
|
6532
6510
|
# Store/update feedback
|
|
6533
6511
|
session_data.metadata["feedback"]["messages"][request.message_id] = request.feedback
|
|
6534
6512
|
feedback_timestamp = datetime.now(timezone.utc).isoformat()
|
|
6535
|
-
session_data.metadata["feedback"]["messages"][
|
|
6536
|
-
|
|
6537
|
-
|
|
6513
|
+
session_data.metadata["feedback"]["messages"][f"{request.message_id}_timestamp"] = (
|
|
6514
|
+
feedback_timestamp
|
|
6515
|
+
)
|
|
6538
6516
|
|
|
6539
6517
|
# Save updated session data
|
|
6540
6518
|
await session_storage.save_session(user_id, request.session_id, session_data)
|
{agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12/agent_framework_lib.egg-info}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-framework-lib
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.12
|
|
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>
|
|
@@ -12,7 +12,7 @@ Project-URL: Documentation, https://github.com/Cinco-AI/AgentFramework/blob/main
|
|
|
12
12
|
Project-URL: Changelog, https://github.com/Cinco-AI/AgentFramework/blob/main/docs/CHANGELOG.md
|
|
13
13
|
Project-URL: Bug Tracker, https://github.com/Cinco-AI/AgentFramework/issues
|
|
14
14
|
Project-URL: Source Code, https://github.com/Cinco-AI/AgentFramework
|
|
15
|
-
Keywords: ai,agents,fastapi,llamaindex,framework,conversational-ai,multi-agent,llm,openai,gemini,chatbot,session-management,framework-agnostic
|
|
15
|
+
Keywords: ai,agents,fastapi,llamaindex,framework,conversational-ai,multi-agent,llm,openai>=2.45,<3,anthropic>=1.5,<2,gemini,chatbot,session-management,framework-agnostic
|
|
16
16
|
Classifier: Development Status :: 4 - Beta
|
|
17
17
|
Classifier: Intended Audience :: Developers
|
|
18
18
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -57,10 +57,10 @@ Requires-Dist: httpx>=0.28.1
|
|
|
57
57
|
Requires-Dist: cryptography>=42.0.0
|
|
58
58
|
Requires-Dist: beautifulsoup4>=4.12.0
|
|
59
59
|
Requires-Dist: llama-index>=0.14.16
|
|
60
|
-
Requires-Dist: llama-index-core>=0.14.
|
|
60
|
+
Requires-Dist: llama-index-core>=0.14.24
|
|
61
61
|
Requires-Dist: llama-index-workflows>=2.16.0
|
|
62
|
-
Requires-Dist: llama-index-llms-openai>=0.7.
|
|
63
|
-
Requires-Dist: llama-index-llms-anthropic>=0.
|
|
62
|
+
Requires-Dist: llama-index-llms-openai>=0.7.10
|
|
63
|
+
Requires-Dist: llama-index-llms-anthropic>=0.12.0
|
|
64
64
|
Requires-Dist: llama-index-llms-google-genai>=0.1.0
|
|
65
65
|
Requires-Dist: graphiti-core>=0.24.3
|
|
66
66
|
Requires-Dist: tiktoken>=0.8.0
|
|
@@ -79,11 +79,11 @@ Provides-Extra: security
|
|
|
79
79
|
Requires-Dist: llm-guard>=0.3.0; extra == "security"
|
|
80
80
|
Provides-Extra: llamaindex
|
|
81
81
|
Requires-Dist: llama-index>=0.14.16; extra == "llamaindex"
|
|
82
|
-
Requires-Dist: llama-index-core>=0.14.
|
|
82
|
+
Requires-Dist: llama-index-core>=0.14.24; extra == "llamaindex"
|
|
83
83
|
Requires-Dist: llama-index-workflows>=2.16.0; extra == "llamaindex"
|
|
84
|
-
Requires-Dist: llama-index-llms-openai>=0.7.
|
|
84
|
+
Requires-Dist: llama-index-llms-openai>=0.7.10; extra == "llamaindex"
|
|
85
85
|
Requires-Dist: llama-index-llms-google-genai>=0.1.0; extra == "llamaindex"
|
|
86
|
-
Requires-Dist: llama-index-llms-anthropic>=0.
|
|
86
|
+
Requires-Dist: llama-index-llms-anthropic>=0.12.0; extra == "llamaindex"
|
|
87
87
|
Provides-Extra: langgraph
|
|
88
88
|
Requires-Dist: langgraph>=0.2.0; extra == "langgraph"
|
|
89
89
|
Provides-Extra: mcp
|
|
@@ -325,6 +325,17 @@ HELPER_AGENT_MODEL=gpt-5.4
|
|
|
325
325
|
- "How do I configure S3 storage?"
|
|
326
326
|
- "Search the web for LlamaIndex best practices"
|
|
327
327
|
|
|
328
|
+
## 📦 Image de runtime des agents
|
|
329
|
+
|
|
330
|
+
Pour **déployer** un agent, partez de l'image officielle — Chromium Playwright, Deno, git, root,
|
|
331
|
+
sandbox locale déjà en place (sinon l'agent ne peut ni rendre un PNG ni installer quoi que ce soit) :
|
|
332
|
+
|
|
333
|
+
```dockerfile
|
|
334
|
+
FROM ghcr.io/komus-ai/agent-framework-runtime:0.8.12
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Détails, publication et visibilité GHCR : [docs/AGENT_RUNTIME_IMAGE.md](docs/AGENT_RUNTIME_IMAGE.md).
|
|
338
|
+
|
|
328
339
|
## 🐳 Docker Development Environment
|
|
329
340
|
|
|
330
341
|
For local development, use Docker Compose to run all external services (Elasticsearch, MongoDB, PostgreSQL, FalkorDB, MinIO):
|
{agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework_lib.egg-info/SOURCES.txt
RENAMED
|
@@ -292,6 +292,7 @@ agent_framework_lib.egg-info/requires.txt
|
|
|
292
292
|
agent_framework_lib.egg-info/top_level.txt
|
|
293
293
|
docs/A2A_GUIDE.md
|
|
294
294
|
docs/ACTIVITY_OUTPUT_PART.md
|
|
295
|
+
docs/AGENT_RUNTIME_IMAGE.md
|
|
295
296
|
docs/ARCHITECTURE_DIAGRAM.md
|
|
296
297
|
docs/BUILTIN_SKILLS_REFERENCE.md
|
|
297
298
|
docs/CANCEL_AND_INTERRUPT_FRONTEND.md
|
{agent_framework_lib-0.8.10 → agent_framework_lib-0.8.12}/agent_framework_lib.egg-info/requires.txt
RENAMED
|
@@ -22,10 +22,10 @@ httpx>=0.28.1
|
|
|
22
22
|
cryptography>=42.0.0
|
|
23
23
|
beautifulsoup4>=4.12.0
|
|
24
24
|
llama-index>=0.14.16
|
|
25
|
-
llama-index-core>=0.14.
|
|
25
|
+
llama-index-core>=0.14.24
|
|
26
26
|
llama-index-workflows>=2.16.0
|
|
27
|
-
llama-index-llms-openai>=0.7.
|
|
28
|
-
llama-index-llms-anthropic>=0.
|
|
27
|
+
llama-index-llms-openai>=0.7.10
|
|
28
|
+
llama-index-llms-anthropic>=0.12.0
|
|
29
29
|
llama-index-llms-google-genai>=0.1.0
|
|
30
30
|
graphiti-core>=0.24.3
|
|
31
31
|
tiktoken>=0.8.0
|
|
@@ -94,11 +94,11 @@ langgraph>=0.2.0
|
|
|
94
94
|
|
|
95
95
|
[llamaindex]
|
|
96
96
|
llama-index>=0.14.16
|
|
97
|
-
llama-index-core>=0.14.
|
|
97
|
+
llama-index-core>=0.14.24
|
|
98
98
|
llama-index-workflows>=2.16.0
|
|
99
|
-
llama-index-llms-openai>=0.7.
|
|
99
|
+
llama-index-llms-openai>=0.7.10
|
|
100
100
|
llama-index-llms-google-genai>=0.1.0
|
|
101
|
-
llama-index-llms-anthropic>=0.
|
|
101
|
+
llama-index-llms-anthropic>=0.12.0
|
|
102
102
|
|
|
103
103
|
[mcp]
|
|
104
104
|
llama-index-tools-mcp>=0.4.0
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Image de runtime des agents — `ghcr.io/komus-ai/agent-framework-runtime`
|
|
2
|
+
|
|
3
|
+
Image de base **officielle** pour tout agent construit sur `agent-framework-lib`. Elle règle une fois
|
|
4
|
+
pour toutes ce que chaque agent redécouvrait dans sa propre image : la sandbox « castrée ».
|
|
5
|
+
|
|
6
|
+
## Pourquoi
|
|
7
|
+
|
|
8
|
+
Constaté sur Nexo (dev, 15/09/2026) : image `python:3.13-slim` maison, utilisateur non-root.
|
|
9
|
+
Au démarrage la lib tente d'installer les libs système de Chromium (`playwright install-deps`) et
|
|
10
|
+
Deno ; sans root → « apt-get not found », sans `unzip` → Deno échoue. Résultat : l'agent ne peut pas
|
|
11
|
+
exporter un diagramme mermaid en PNG, et répond « je n'ai pas les droits root/sudo ». Corriger le
|
|
12
|
+
Dockerfile de Nexo n'aurait réparé que Nexo.
|
|
13
|
+
|
|
14
|
+
## Contenu
|
|
15
|
+
|
|
16
|
+
| Composant | Détail |
|
|
17
|
+
|---|---|
|
|
18
|
+
| Python 3.13 + `uv` | base `python:3.13-slim` |
|
|
19
|
+
| `agent-framework-lib[llamaindex]==<version>` | même version que le tag de l'image |
|
|
20
|
+
| Chromium Playwright + libs système | `playwright install --with-deps chromium` (rendu PNG, captures) |
|
|
21
|
+
| Deno | `~/.deno` (là où la lib le cherche) + `/usr/local/bin/deno` |
|
|
22
|
+
| git, unzip, curl, ca-certificates | skill code-delivery, installeurs, healthcheck Mozart |
|
|
23
|
+
| `SHELL_SANDBOX_PROVIDER=local` | pas d'OpenShell ; le shell tourne dans le conteneur |
|
|
24
|
+
| **root** | à dessein : l'agent installe ce dont il a besoin (`apt-get`, `pip`, `npm`…) |
|
|
25
|
+
|
|
26
|
+
L'isolation est celle du conteneur (réseau, pas de socket Docker, pas de volume hôte). Si un
|
|
27
|
+
déploiement exige un utilisateur non-root, l'agent le pose dans son propre Dockerfile — mais il perd
|
|
28
|
+
alors l'installation à chaud.
|
|
29
|
+
|
|
30
|
+
Tags : `ghcr.io/komus-ai/agent-framework-runtime:<version>` (= version PyPI) et `:latest`.
|
|
31
|
+
Architectures : `linux/amd64`, `linux/arm64` (VM Mozart Scaleway = arm64).
|
|
32
|
+
|
|
33
|
+
## Utilisation dans un agent
|
|
34
|
+
|
|
35
|
+
```dockerfile
|
|
36
|
+
FROM ghcr.io/komus-ai/agent-framework-runtime:0.8.12
|
|
37
|
+
|
|
38
|
+
WORKDIR /app
|
|
39
|
+
# Deps figées par uv.lock (jamais de résolution à neuf au build : cf. incident anthropic 1.5.0).
|
|
40
|
+
COPY pyproject.toml uv.lock ./
|
|
41
|
+
RUN uv export --frozen --no-dev --no-emit-project --no-hashes -o /tmp/requirements.txt \
|
|
42
|
+
&& uv pip install --system -r /tmp/requirements.txt
|
|
43
|
+
COPY src ./src
|
|
44
|
+
RUN uv pip install --system --no-deps .
|
|
45
|
+
|
|
46
|
+
CMD ["python", "-m", "mon_agent.main"]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Le pin `agent-framework-lib==<version>` de l'agent et le tag de l'image doivent être identiques :
|
|
50
|
+
l'agent réinstalle ses deps depuis son lock, l'image fournit le système (Chromium, Deno, git).
|
|
51
|
+
|
|
52
|
+
## Publication
|
|
53
|
+
|
|
54
|
+
- Automatique : workflow `.github/workflows/runtime-image.yml` sur tag `v*.*.*`, après attente de la
|
|
55
|
+
version sur PyPI.
|
|
56
|
+
- Manuelle : `gh workflow run runtime-image.yml -f version=0.8.12` (version déjà sur PyPI).
|
|
57
|
+
- **Visibilité** : un paquet GHCR est privé par défaut. Mozart construit les images d'agents avec le
|
|
58
|
+
CLI Docker du conteneur `mozart-server`, sans identifiants GHCR → le paquet doit être **public**
|
|
59
|
+
(GitHub → Packages → `agent-framework-runtime` → Package settings → Change visibility). À faire une
|
|
60
|
+
fois, à la première publication.
|
|
61
|
+
|
|
62
|
+
## Vérifier une image
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
docker run --rm ghcr.io/komus-ai/agent-framework-runtime:0.8.12 sh -c '
|
|
66
|
+
whoami; deno --version | head -1; python -c "
|
|
67
|
+
from playwright.sync_api import sync_playwright
|
|
68
|
+
with sync_playwright() as p:
|
|
69
|
+
b = p.chromium.launch(headless=True); pg = b.new_page(); pg.set_content(\"<h1>ok</h1>\"); pg.screenshot(path=\"/tmp/t.png\"); b.close()
|
|
70
|
+
print(\"chromium OK\")"'
|
|
71
|
+
```
|
{agent_framework_lib-0.8.10/agent_framework/web → agent_framework_lib-0.8.12}/docs/api-reference.md
RENAMED
|
@@ -658,7 +658,7 @@ Get model configuration information (legacy endpoint).
|
|
|
658
658
|
**Response:**
|
|
659
659
|
```json
|
|
660
660
|
{
|
|
661
|
-
"default_model": "
|
|
661
|
+
"default_model": "claude-haiku-4-5-20251001",
|
|
662
662
|
"configuration_status": {
|
|
663
663
|
"openai_configured": true,
|
|
664
664
|
"anthropic_configured": false,
|