agent-framework-lib 0.8.3__tar.gz → 0.8.4__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.3/agent_framework_lib.egg-info → agent_framework_lib-0.8.4}/PKG-INFO +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/__init__.py +48 -45
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/__init__.py +5 -3
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/a2a_router.py +8 -3
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/models_jsonrpc.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/sse_wrapper.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/translation_layer.py +4 -5
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/providers/elasticsearch_provider.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/providers/postgres_provider.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/capabilities/__init__.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/capabilities/resolver.py +6 -3
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/__init__.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/agent_interface.py +4 -6
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/agent_provider.py +25 -27
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/base_agent.py +26 -18
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/context_budget.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/context_summarizer.py +4 -1
- agent_framework_lib-0.8.4/agent_framework/core/execution_controller.py +406 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/implementation_validator.py +10 -9
- agent_framework_lib-0.8.4/agent_framework/core/interruption_message.py +52 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/knowledge_state.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/loop_detector.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/model_clients.py +26 -21
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/model_config.py +35 -34
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/provider_calibration.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/scratchpad_compressor.py +2 -4
- agent_framework_lib-0.8.4/agent_framework/core/scratchpad_serializer.py +292 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/state_manager.py +21 -22
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/streaming_parts_accumulator.py +1 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/implementations/__init__.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/implementations/budget_aware_agent.py +14 -13
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/implementations/llamaindex_agent.py +64 -10
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/implementations/llamaindex_memory_adapter.py +112 -32
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/implementations/microsoft_agent.py +21 -19
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/__init__.py +14 -16
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/agent_mixin.py +14 -7
- agent_framework_lib-0.8.4/agent_framework/memory/hypothesis_engine.py +2671 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/implicit_feedback.py +25 -16
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/personalization.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/providers/memori_provider.py +2 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/response_lessons.py +36 -19
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/work_patterns.py +46 -36
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +14 -16
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/elasticsearch_logging.py +17 -17
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/error_handling.py +25 -24
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/error_logging.py +22 -26
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/llm_auto_instrumentor.py +6 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/otel_logging_handler.py +3 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/performance_monitor.py +30 -31
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/progress_tracker.py +27 -28
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/resource_manager.py +35 -42
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/token_counter.py +5 -5
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/notifications/__init__.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/notifications/hub.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/notifications/webhook_notifier.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/processing/ai_content_management.py +22 -26
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/processing/markdown_converter.py +25 -36
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/processing/multimodal_integration.py +12 -22
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/processing/rich_content_validation.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/session/elasticsearch_session_storage.py +20 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/session/session_storage.py +162 -221
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/__init__.py +3 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/scripts/create_and_register.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +14 -6
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/csv/create_csv.py +1 -3
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/csv/read_csv.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/csv/transform_csv.py +4 -5
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +1 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/file/create_file.py +1 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/file/read_file.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/image_gen/create_image.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/image_gen/generate_image.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +17 -6
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +454 -205
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/powerpoint/templates/__init__.py +2 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/powerpoint/templates/generate_templates.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/skill_creator/skill_api.py +2 -6
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/table/table_to_image.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/word/create_word.py +7 -9
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/custom_skill_manager.py +8 -5
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/markdown_loader.py +6 -3
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/tools.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/storage/__init__.py +8 -7
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/storage/file_storages.py +3 -9
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/storage/file_system_management.py +85 -134
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/storage/storage_optimizer.py +27 -29
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/subagents/executor.py +7 -8
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/subagents/message_injector.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/subagents/retrigger.py +3 -3
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/subagents/spawn_tool.py +5 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/__init__.py +5 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/html_content_analyzer.py +4 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/multimodal_tools.py +34 -35
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/shell_tool.py +51 -28
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/web_fetch_tool.py +5 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/web_search_tool.py +6 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/utils/__init__.py +9 -8
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/utils/path_utils.py +3 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/utils/post_install.py +2 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/utils/session_title_generator.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/utils/special_blocks.py +7 -8
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/__init__.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/admin_services.py +81 -81
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework/web}/docs/BUILTIN_SKILLS_REFERENCE.md +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework/web}/docs/CREATING_AGENTS.md +14 -14
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/GETTING_STARTED.md +54 -54
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework/web}/docs/TOOLS_AND_MCP_GUIDE.md +33 -33
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/examples/agent_with_file_storage.py +6 -7
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/examples/agent_with_mcp.py +8 -9
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/examples/agent_with_memory.py +3 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/examples/agent_with_memory_graphiti.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework/web/docs}/examples/agent_with_memory_hybrid.py +3 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework/web/docs}/examples/agent_with_memory_simple.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/examples/custom_framework_agent.py +18 -20
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework/web/docs}/examples/simple_agent.py +2 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework/web/docs}/examples/skills_demo_agent.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/installation-guide.md +7 -7
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/documentation_generator.py +40 -40
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/gitnexus_client.py +7 -15
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/helper_agent.py +9 -8
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/modern_ui.html +1904 -1592
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/otel_tracing_middleware.py +8 -10
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/server.py +616 -103
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/skills_router.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/__init__.py +9 -8
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/artefacts.py +6 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/context.py +4 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/cursor.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/memory.py +3 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/poller.py +9 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/preferences.py +1 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/router.py +12 -9
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/session.py +20 -10
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/subscription.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4/agent_framework_lib.egg-info}/PKG-INFO +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework_lib.egg-info/SOURCES.txt +7 -0
- {agent_framework_lib-0.8.3/agent_framework/web → agent_framework_lib-0.8.4}/docs/BUILTIN_SKILLS_REFERENCE.md +1 -1
- agent_framework_lib-0.8.4/docs/CANCEL_AND_INTERRUPT_FRONTEND.md +309 -0
- {agent_framework_lib-0.8.3/agent_framework/web → agent_framework_lib-0.8.4}/docs/CREATING_AGENTS.md +14 -14
- agent_framework_lib-0.8.4/docs/DEEPEVAL_TEST_REPORT.md +116 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/GETTING_STARTED.md +54 -54
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/MULTIMODAL_TOOLS_GUIDE.md +19 -19
- {agent_framework_lib-0.8.3/agent_framework/web → agent_framework_lib-0.8.4}/docs/TOOLS_AND_MCP_GUIDE.md +33 -33
- agent_framework_lib-0.8.4/docs/helper_agent.md +66 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/index.md +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/installation-guide.md +7 -7
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_context_budget_test.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_exemple_test.py +3 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_training_with_apo.py +7 -4
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_with_custom_tools_file_storage.py +8 -9
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_with_file_storage.py +6 -7
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_with_mcp.py +8 -9
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_with_memory_graphiti.py +2 -1
- {agent_framework_lib-0.8.3/agent_framework/web/docs → agent_framework_lib-0.8.4}/examples/agent_with_memory_hybrid.py +3 -2
- {agent_framework_lib-0.8.3/agent_framework/web/docs → agent_framework_lib-0.8.4}/examples/agent_with_memory_simple.py +2 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_with_personalization.py +1 -2
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/biagenttest.py +11 -11
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/custom_framework_agent.py +18 -20
- {agent_framework_lib-0.8.3/agent_framework/web/docs → agent_framework_lib-0.8.4}/examples/simple_agent.py +2 -2
- {agent_framework_lib-0.8.3/agent_framework/web/docs → agent_framework_lib-0.8.4}/examples/skills_demo_agent.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/test_work_patterns_live.py +6 -3
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/workspace_test_agent.py +8 -8
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/pyproject.toml +63 -36
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/setup.py +8 -9
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/ARCHITECTURE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/LICENSE +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/MANIFEST.in +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/README.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/base.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/models.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/activity_formatter.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/elasticsearch_config_provider.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/model_router.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/models.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/step_display_config.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/base.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/config.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/manager.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/providers/graphiti_provider.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/memory/tools.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/api_timing_tracker.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/llm_metrics.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/metrics_aggregator.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/metrics_config.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/observability_manager.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/otel_instrumentor.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/otel_setup.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/timing_tracker.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/monitoring/tracing_context.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/processing/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/py.typed +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/session/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/agent_mixin.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/base.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/scripts/register_to_storage.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/chart/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/code_format/format_python.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/excel/create_excel.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/file/list_files.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/file_access/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/file_access/download_to_local.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/powerpoint/templates/Big Data Infographics.pptx +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/powerpoint/templates/Executive Design Pitch Deck.pptx +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/powerpoint/templates/Management Consulting Toolkit.pptx +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/skills/discovery_prompt.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/subagents/__init__.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/subagents/message_queue.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/activity_callback.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/adaptive_pdf_css.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/base.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/pdf_image_scaler.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/tools/sizing_config.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/utils/source_detector.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/admin_auth.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/admin_models.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/admin_router.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/api_timing_middleware.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/Dockerfile +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/README.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/docker-compose.yml +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/docs/examples/agent_example_multi_skills.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/helper_ui.html +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/web/test_app.html +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/client.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/config.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/workspace/models.py +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework_lib.egg-info/entry_points.txt +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework_lib.egg-info/requires.txt +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework_lib.egg-info/top_level.txt +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/ARCHITECTURE_DIAGRAM.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/FILE_STORAGE_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/HISTORY_MESSAGE_FORMAT.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/OBSERVABILITY_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/PYPI_PUBLISHING.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/QA_STREAMING_LATENCY.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/SCREENSHOTS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/SSE_NOTIFICATIONS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/docs/framework_audit_remarques.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/README.md +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/agent_example_multi_skills.py +1 -1
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/dependencies/docker-compose.yaml +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/examples/pyproject.toml +0 -0
- {agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/setup.cfg +0 -0
{agent_framework_lib-0.8.3/agent_framework_lib.egg-info → agent_framework_lib-0.8.4}/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.4
|
|
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>
|
|
@@ -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.4
|
|
36
36
|
Author: Cinco AI Team
|
|
37
37
|
License: MIT
|
|
38
38
|
"""
|
|
@@ -41,6 +41,7 @@ import logging
|
|
|
41
41
|
import os
|
|
42
42
|
from typing import TYPE_CHECKING
|
|
43
43
|
|
|
44
|
+
|
|
44
45
|
# Create logger for this module
|
|
45
46
|
logger = logging.getLogger(__name__)
|
|
46
47
|
|
|
@@ -64,7 +65,7 @@ def _auto_setup_dependencies() -> None:
|
|
|
64
65
|
_AUTO_SETUP_DONE = True
|
|
65
66
|
|
|
66
67
|
try:
|
|
67
|
-
from .utils.post_install import
|
|
68
|
+
from .utils.post_install import ensure_deno, ensure_playwright_browsers
|
|
68
69
|
|
|
69
70
|
# Check/install Playwright (silent if already installed)
|
|
70
71
|
success, error = ensure_playwright_browsers()
|
|
@@ -88,99 +89,100 @@ def _auto_setup_dependencies() -> None:
|
|
|
88
89
|
# Track if auto-setup has been done
|
|
89
90
|
_AUTO_SETUP_DONE = False
|
|
90
91
|
|
|
91
|
-
__version__ = "0.8.
|
|
92
|
+
__version__ = "0.8.4"
|
|
92
93
|
__author__ = "Cinco AI Team"
|
|
93
94
|
__license__ = "MIT"
|
|
94
95
|
__email__ = "sebastian@cinco.ai"
|
|
95
96
|
|
|
96
97
|
# Core interfaces and base classes
|
|
97
98
|
from .core.agent_interface import (
|
|
99
|
+
AgentConfig,
|
|
100
|
+
AgentInputPartUnion,
|
|
98
101
|
AgentInterface,
|
|
102
|
+
AgentOutputPartUnion,
|
|
103
|
+
ChartJsOutputPart,
|
|
104
|
+
FileContentOutputPart,
|
|
105
|
+
FileDataInputPart,
|
|
106
|
+
FileDownloadLinkOutputPart,
|
|
107
|
+
FileReferenceInputPart,
|
|
108
|
+
FileReferenceOutputPart,
|
|
109
|
+
FormDefinitionOutputPart,
|
|
110
|
+
ImageOutputPart,
|
|
111
|
+
ImageUrlInputPart,
|
|
112
|
+
JsonOutputPart,
|
|
113
|
+
MermaidOutputPart,
|
|
114
|
+
OptionsBlockOutputPart,
|
|
99
115
|
StructuredAgentInput,
|
|
100
116
|
StructuredAgentOutput,
|
|
101
|
-
|
|
117
|
+
TableDataOutputPart,
|
|
102
118
|
# Input part types
|
|
103
119
|
TextInputPart,
|
|
104
|
-
ImageUrlInputPart,
|
|
105
|
-
FileDataInputPart,
|
|
106
|
-
AgentInputPartUnion,
|
|
107
120
|
# Output part types
|
|
108
121
|
TextOutputPart,
|
|
109
122
|
TextOutputStreamPart,
|
|
110
|
-
JsonOutputPart,
|
|
111
123
|
YamlOutputPart,
|
|
112
|
-
FileContentOutputPart,
|
|
113
|
-
FileReferenceInputPart,
|
|
114
|
-
FileReferenceOutputPart,
|
|
115
|
-
MermaidOutputPart,
|
|
116
|
-
ChartJsOutputPart,
|
|
117
|
-
TableDataOutputPart,
|
|
118
|
-
FormDefinitionOutputPart,
|
|
119
|
-
OptionsBlockOutputPart,
|
|
120
|
-
FileDownloadLinkOutputPart,
|
|
121
|
-
ImageOutputPart,
|
|
122
|
-
AgentOutputPartUnion,
|
|
123
124
|
# Utility functions
|
|
124
125
|
consolidate_text_parts,
|
|
125
126
|
strip_technical_details,
|
|
126
127
|
)
|
|
127
128
|
|
|
128
|
-
# Framework-agnostic base agent and implementations
|
|
129
|
-
from .core.base_agent import BaseAgent
|
|
130
|
-
from .implementations.llamaindex_agent import LlamaIndexAgent
|
|
131
|
-
from .implementations.microsoft_agent import MicrosoftAgent
|
|
132
|
-
|
|
133
|
-
# State management
|
|
134
|
-
from .core.state_manager import StateManager, AgentIdentity
|
|
135
|
-
|
|
136
129
|
# Agent provider
|
|
137
130
|
from .core.agent_provider import AgentManager
|
|
138
131
|
|
|
132
|
+
# Framework-agnostic base agent and implementations
|
|
133
|
+
from .core.base_agent import BaseAgent
|
|
134
|
+
from .core.model_clients import ModelClientFactory, client_factory
|
|
135
|
+
|
|
139
136
|
# Model configuration and clients
|
|
140
137
|
from .core.model_config import ModelConfigManager, ModelProvider, model_config
|
|
141
|
-
|
|
138
|
+
|
|
139
|
+
# State management
|
|
140
|
+
from .core.state_manager import AgentIdentity, StateManager
|
|
141
|
+
from .implementations.llamaindex_agent import LlamaIndexAgent
|
|
142
|
+
from .implementations.microsoft_agent import MicrosoftAgent
|
|
142
143
|
|
|
143
144
|
# Session storage
|
|
144
145
|
from .session.session_storage import (
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
SessionData,
|
|
146
|
+
AgentLifecycleData,
|
|
147
|
+
MemorySessionStorage,
|
|
148
148
|
MessageData,
|
|
149
149
|
MessageInsight,
|
|
150
150
|
MessageMetadata,
|
|
151
|
-
AgentLifecycleData,
|
|
152
|
-
MemorySessionStorage,
|
|
153
151
|
MongoDBSessionStorage,
|
|
152
|
+
SessionData,
|
|
153
|
+
SessionStorageFactory,
|
|
154
|
+
SessionStorageInterface,
|
|
154
155
|
history_message_to_message_data,
|
|
155
156
|
message_data_to_history_message,
|
|
156
157
|
)
|
|
158
|
+
from .storage.file_storages import (
|
|
159
|
+
FileMetadata,
|
|
160
|
+
FileStorageInterface,
|
|
161
|
+
LocalFileStorage,
|
|
162
|
+
MetadataStorageInterface,
|
|
163
|
+
)
|
|
157
164
|
|
|
158
165
|
# File system management (consolidated)
|
|
159
166
|
from .storage.file_system_management import (
|
|
160
|
-
|
|
167
|
+
FileInputMixin,
|
|
161
168
|
FileStorageFactory,
|
|
162
|
-
|
|
163
|
-
process_response_file_links,
|
|
169
|
+
FileStorageManager,
|
|
164
170
|
get_download_url,
|
|
165
171
|
get_file_processing_summary,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
from .storage.file_storages import (
|
|
169
|
-
FileStorageInterface,
|
|
170
|
-
MetadataStorageInterface,
|
|
171
|
-
FileMetadata,
|
|
172
|
-
LocalFileStorage,
|
|
172
|
+
process_file_inputs,
|
|
173
|
+
process_response_file_links,
|
|
173
174
|
)
|
|
174
175
|
|
|
176
|
+
|
|
175
177
|
# Optional file storage backends (only available if dependencies are installed)
|
|
176
178
|
try:
|
|
177
|
-
from .storage.file_storages import
|
|
179
|
+
from .storage.file_storages import S3_AVAILABLE, S3FileStorage
|
|
178
180
|
except ImportError:
|
|
179
181
|
S3FileStorage = None
|
|
180
182
|
S3_AVAILABLE = False
|
|
181
183
|
|
|
182
184
|
try:
|
|
183
|
-
from .storage.file_storages import
|
|
185
|
+
from .storage.file_storages import MINIO_AVAILABLE, MinIOFileStorage
|
|
184
186
|
except ImportError:
|
|
185
187
|
MinIOFileStorage = None
|
|
186
188
|
MINIO_AVAILABLE = False
|
|
@@ -191,6 +193,7 @@ from .utils import get_deno_command
|
|
|
191
193
|
# Server application
|
|
192
194
|
from .web.server import app, start_server
|
|
193
195
|
|
|
196
|
+
|
|
194
197
|
# Convenience imports for common use cases
|
|
195
198
|
__all__ = [
|
|
196
199
|
# Version info
|
|
@@ -9,15 +9,16 @@ The Task Store is a lightweight mapping layer: it links A2A task IDs
|
|
|
9
9
|
to existing framework sessions, without duplicating conversational content.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
from .models import A2ATask, TaskStatus
|
|
13
12
|
from .base import A2ATaskProvider
|
|
13
|
+
from .models import A2ATask, TaskStatus
|
|
14
14
|
from .providers import (
|
|
15
|
-
ElasticsearchTaskProvider,
|
|
16
|
-
PostgresTaskProvider,
|
|
17
15
|
ELASTICSEARCH_PROVIDER_AVAILABLE,
|
|
18
16
|
POSTGRES_PROVIDER_AVAILABLE,
|
|
17
|
+
ElasticsearchTaskProvider,
|
|
18
|
+
PostgresTaskProvider,
|
|
19
19
|
)
|
|
20
20
|
|
|
21
|
+
|
|
21
22
|
__all__ = [
|
|
22
23
|
"A2ATask",
|
|
23
24
|
"TaskStatus",
|
|
@@ -31,4 +32,5 @@ __all__ = [
|
|
|
31
32
|
|
|
32
33
|
from . import endpoints
|
|
33
34
|
|
|
35
|
+
|
|
34
36
|
__version__ = "0.1.0"
|
{agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/a2a/endpoints/a2a_router.py
RENAMED
|
@@ -4,17 +4,22 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import logging
|
|
6
6
|
import os
|
|
7
|
-
from typing import Any
|
|
7
|
+
from typing import TYPE_CHECKING, Any
|
|
8
8
|
|
|
9
9
|
from fastapi import APIRouter, Depends, HTTPException, Request
|
|
10
|
-
from fastapi.responses import JSONResponse
|
|
11
10
|
|
|
12
11
|
from .agent_card_builder import AgentCardBuilder
|
|
13
12
|
from .jsonrpc_dispatcher import JSONRPCDispatcher
|
|
14
|
-
from .models_jsonrpc import A2AConfigRequest
|
|
15
13
|
from .sse_wrapper import SSEWrapperA2A
|
|
16
14
|
from .translation_layer import A2ATranslationLayer
|
|
17
15
|
|
|
16
|
+
|
|
17
|
+
if TYPE_CHECKING:
|
|
18
|
+
from fastapi.responses import JSONResponse
|
|
19
|
+
|
|
20
|
+
from .models_jsonrpc import A2AConfigRequest
|
|
21
|
+
|
|
22
|
+
|
|
18
23
|
logger = logging.getLogger(__name__)
|
|
19
24
|
|
|
20
25
|
|
|
@@ -4,16 +4,12 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import logging
|
|
6
6
|
import uuid
|
|
7
|
-
from collections.abc import AsyncGenerator
|
|
8
7
|
from datetime import datetime, timezone
|
|
9
8
|
from typing import TYPE_CHECKING, Any
|
|
10
9
|
|
|
11
|
-
from ..base import
|
|
10
|
+
from ..base import TaskNotFoundError
|
|
12
11
|
from ..models import A2ATask, TaskStatus
|
|
13
12
|
from .models_jsonrpc import (
|
|
14
|
-
INTERNAL_ERROR,
|
|
15
|
-
TASK_NOT_CANCELABLE,
|
|
16
|
-
TASK_NOT_FOUND,
|
|
17
13
|
A2AArtifact,
|
|
18
14
|
A2AMessage,
|
|
19
15
|
A2APart,
|
|
@@ -24,7 +20,10 @@ from .models_jsonrpc import (
|
|
|
24
20
|
TaskGetParams,
|
|
25
21
|
)
|
|
26
22
|
|
|
23
|
+
|
|
27
24
|
if TYPE_CHECKING:
|
|
25
|
+
from collections.abc import AsyncGenerator
|
|
26
|
+
|
|
28
27
|
from ..base import A2ATaskProvider
|
|
29
28
|
from .sse_wrapper import SSEWrapperA2A
|
|
30
29
|
|
{agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/capabilities/resolver.py
RENAMED
|
@@ -8,10 +8,13 @@ import contextlib
|
|
|
8
8
|
import json
|
|
9
9
|
import logging
|
|
10
10
|
import os
|
|
11
|
-
from collections.abc import Iterator
|
|
12
11
|
from dataclasses import dataclass, field
|
|
13
12
|
from pathlib import Path
|
|
14
|
-
from typing import Any
|
|
13
|
+
from typing import TYPE_CHECKING, Any
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
if TYPE_CHECKING:
|
|
17
|
+
from collections.abc import Iterator
|
|
15
18
|
|
|
16
19
|
|
|
17
20
|
logger = logging.getLogger(__name__)
|
|
@@ -27,7 +30,7 @@ class CapabilitySet:
|
|
|
27
30
|
env_overrides: dict[str, str] = field(default_factory=dict)
|
|
28
31
|
|
|
29
32
|
@classmethod
|
|
30
|
-
def empty(cls) ->
|
|
33
|
+
def empty(cls) -> CapabilitySet:
|
|
31
34
|
"""Return an empty CapabilitySet (no capabilities authorized)."""
|
|
32
35
|
return cls()
|
|
33
36
|
|
{agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/agent_interface.py
RENAMED
|
@@ -95,9 +95,8 @@ class FileDataInputPart(BaseModel):
|
|
|
95
95
|
@classmethod
|
|
96
96
|
def validate_at_least_one_source(cls, data: Any) -> Any:
|
|
97
97
|
"""Ensure content_base64 is present."""
|
|
98
|
-
if isinstance(data, dict):
|
|
99
|
-
|
|
100
|
-
raise ValueError("content_base64 must be present")
|
|
98
|
+
if isinstance(data, dict) and "content_base64" not in data:
|
|
99
|
+
raise ValueError("content_base64 must be present")
|
|
101
100
|
return data
|
|
102
101
|
|
|
103
102
|
def set_binary_content(self, binary_data: bytes):
|
|
@@ -201,9 +200,8 @@ class MediaPartType(BaseModel):
|
|
|
201
200
|
@classmethod
|
|
202
201
|
def validate_at_least_one_source(cls, data: Any) -> Any:
|
|
203
202
|
"""Ensure either content or url is present."""
|
|
204
|
-
if isinstance(data, dict):
|
|
205
|
-
|
|
206
|
-
raise ValueError("Either content or url must be present")
|
|
203
|
+
if isinstance(data, dict) and not ("content" in data or "url" in data):
|
|
204
|
+
raise ValueError("Either content or url must be present")
|
|
207
205
|
return data
|
|
208
206
|
|
|
209
207
|
def set_binary_content(self, binary_data: bytes):
|
{agent_framework_lib-0.8.3 → agent_framework_lib-0.8.4}/agent_framework/core/agent_provider.py
RENAMED
|
@@ -12,22 +12,23 @@ Observability Integration:
|
|
|
12
12
|
- Uses StreamingLatencyTracer for granular preprocessing instrumentation
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
-
import logging
|
|
16
15
|
import asyncio
|
|
16
|
+
import logging
|
|
17
17
|
import uuid
|
|
18
|
+
from collections.abc import AsyncGenerator
|
|
18
19
|
from datetime import datetime, timezone
|
|
19
|
-
from typing import TYPE_CHECKING, Any
|
|
20
|
+
from typing import TYPE_CHECKING, Any
|
|
20
21
|
|
|
21
|
-
from .agent_interface import AgentInterface, StructuredAgentInput, StructuredAgentOutput
|
|
22
22
|
from agent_framework.core.model_config import model_config
|
|
23
|
-
|
|
24
|
-
from ..session.session_storage import AgentLifecycleData, SessionStorageInterface
|
|
23
|
+
|
|
25
24
|
from ..monitoring.streaming_latency_tracer import get_streaming_latency_tracer
|
|
25
|
+
from ..session.session_storage import AgentLifecycleData, SessionStorageInterface
|
|
26
|
+
from .agent_interface import AgentInterface, StructuredAgentInput, StructuredAgentOutput
|
|
27
|
+
from .state_manager import AgentIdentity, StateManager
|
|
26
28
|
|
|
27
29
|
|
|
28
30
|
if TYPE_CHECKING:
|
|
29
31
|
from ..monitoring.observability_manager import ObservabilityManager
|
|
30
|
-
from ..monitoring.tracing_context import APISpanContext
|
|
31
32
|
|
|
32
33
|
logger = logging.getLogger(__name__)
|
|
33
34
|
|
|
@@ -60,15 +61,15 @@ class _ManagedAgentProxy(AgentInterface):
|
|
|
60
61
|
"""
|
|
61
62
|
return getattr(self._real_agent, name)
|
|
62
63
|
|
|
63
|
-
async def get_metadata(self) ->
|
|
64
|
+
async def get_metadata(self) -> dict[str, Any]:
|
|
64
65
|
"""Passes the call to the real agent."""
|
|
65
66
|
return await self._real_agent.get_metadata()
|
|
66
67
|
|
|
67
|
-
async def get_system_prompt(self) ->
|
|
68
|
+
async def get_system_prompt(self) -> str | None:
|
|
68
69
|
"""Passes the call to the real agent."""
|
|
69
70
|
return await self._real_agent.get_system_prompt()
|
|
70
71
|
|
|
71
|
-
async def get_current_model(self, session_id: str) ->
|
|
72
|
+
async def get_current_model(self, session_id: str) -> str | None:
|
|
72
73
|
"""Passes the call to the real agent."""
|
|
73
74
|
return await self._real_agent.get_current_model(session_id)
|
|
74
75
|
|
|
@@ -82,17 +83,17 @@ class _ManagedAgentProxy(AgentInterface):
|
|
|
82
83
|
if hasattr(self._real_agent, "set_display_config_manager"):
|
|
83
84
|
self._real_agent.set_display_config_manager(manager)
|
|
84
85
|
|
|
85
|
-
def get_custom_tool_display_info(self) ->
|
|
86
|
+
def get_custom_tool_display_info(self) -> dict[str, Any]:
|
|
86
87
|
"""Passes the call to the real agent to get custom tool display info."""
|
|
87
88
|
if hasattr(self._real_agent, "get_custom_tool_display_info"):
|
|
88
89
|
return self._real_agent.get_custom_tool_display_info()
|
|
89
90
|
return {}
|
|
90
91
|
|
|
91
|
-
async def get_state(self) ->
|
|
92
|
+
async def get_state(self) -> dict[str, Any]:
|
|
92
93
|
"""Passes the call to the real agent."""
|
|
93
94
|
return await self._real_agent.get_state()
|
|
94
95
|
|
|
95
|
-
async def load_state(self, state:
|
|
96
|
+
async def load_state(self, state: dict[str, Any]):
|
|
96
97
|
"""Passes the call to the real agent."""
|
|
97
98
|
await self._real_agent.load_state(state)
|
|
98
99
|
|
|
@@ -182,8 +183,8 @@ class AgentManager:
|
|
|
182
183
|
|
|
183
184
|
def __init__(self, storage: SessionStorageInterface):
|
|
184
185
|
self._storage = storage
|
|
185
|
-
self._active_agents:
|
|
186
|
-
self._observability_manager:
|
|
186
|
+
self._active_agents: dict[str, AgentInterface] = {} # A cache for active agent instances
|
|
187
|
+
self._observability_manager: ObservabilityManager | None = None
|
|
187
188
|
|
|
188
189
|
def _get_observability_manager(self) -> "ObservabilityManager":
|
|
189
190
|
"""Get or create the ObservabilityManager instance.
|
|
@@ -198,7 +199,7 @@ class AgentManager:
|
|
|
198
199
|
return self._observability_manager
|
|
199
200
|
|
|
200
201
|
async def get_agent(
|
|
201
|
-
self, session_id: str, agent_class:
|
|
202
|
+
self, session_id: str, agent_class: type[AgentInterface], user_id: str = ""
|
|
202
203
|
) -> AgentInterface:
|
|
203
204
|
"""
|
|
204
205
|
Gets a fully initialized agent instance for a given session, wrapped in a
|
|
@@ -225,9 +226,7 @@ class AgentManager:
|
|
|
225
226
|
async with tracer.agent_span("inject_storage"):
|
|
226
227
|
if hasattr(real_agent, "set_session_storage"):
|
|
227
228
|
real_agent.set_session_storage(self._storage)
|
|
228
|
-
logger.debug(
|
|
229
|
-
f"AgentManager: Injected session storage into agent for memory support"
|
|
230
|
-
)
|
|
229
|
+
logger.debug("AgentManager: Injected session storage into agent for memory support")
|
|
231
230
|
|
|
232
231
|
# 2. Create agent identity before any other operations
|
|
233
232
|
agent_identity = StateManager.create_agent_identity(real_agent)
|
|
@@ -236,7 +235,6 @@ class AgentManager:
|
|
|
236
235
|
)
|
|
237
236
|
|
|
238
237
|
# Import model_config before using it
|
|
239
|
-
from agent_framework.core.model_config import model_config
|
|
240
238
|
|
|
241
239
|
# Check if agent uses remote config
|
|
242
240
|
use_remote_config = agent_class.get_use_remote_config()
|
|
@@ -329,7 +327,7 @@ class AgentManager:
|
|
|
329
327
|
else:
|
|
330
328
|
# Session has stored config but not from ES, merge it
|
|
331
329
|
logger.debug(
|
|
332
|
-
|
|
330
|
+
"AgentManager: Found existing session configuration, merging with dynamic config"
|
|
333
331
|
)
|
|
334
332
|
effective_config = dynamic_config.copy()
|
|
335
333
|
effective_config = self._merge_session_configs(effective_config, stored_config)
|
|
@@ -454,7 +452,7 @@ class AgentManager:
|
|
|
454
452
|
# Fallback: store full config if we can't get version info
|
|
455
453
|
session_data.session_configuration = effective_config
|
|
456
454
|
logger.warning(
|
|
457
|
-
|
|
455
|
+
"AgentManager: Could not get ES config version, storing full config"
|
|
458
456
|
)
|
|
459
457
|
except Exception as e:
|
|
460
458
|
logger.warning(
|
|
@@ -514,8 +512,8 @@ class AgentManager:
|
|
|
514
512
|
return proxy
|
|
515
513
|
|
|
516
514
|
def _merge_session_configs(
|
|
517
|
-
self, base_config:
|
|
518
|
-
) ->
|
|
515
|
+
self, base_config: dict[str, Any], session_config: dict[str, Any]
|
|
516
|
+
) -> dict[str, Any]:
|
|
519
517
|
"""
|
|
520
518
|
Merge session configuration with base configuration.
|
|
521
519
|
|
|
@@ -594,7 +592,7 @@ class AgentManager:
|
|
|
594
592
|
logger.error(f"AgentManager: Error updating session with agent identity: {e}")
|
|
595
593
|
|
|
596
594
|
async def _validate_agent_state_compatibility(
|
|
597
|
-
self, agent_identity: AgentIdentity, agent_state:
|
|
595
|
+
self, agent_identity: AgentIdentity, agent_state: dict[str, Any]
|
|
598
596
|
) -> bool:
|
|
599
597
|
"""
|
|
600
598
|
Validate that agent state is compatible with current agent identity.
|
|
@@ -608,9 +606,9 @@ class AgentManager:
|
|
|
608
606
|
self,
|
|
609
607
|
agent_identity: AgentIdentity,
|
|
610
608
|
event_type: str,
|
|
611
|
-
session_id:
|
|
612
|
-
user_id:
|
|
613
|
-
metadata:
|
|
609
|
+
session_id: str | None = None,
|
|
610
|
+
user_id: str | None = None,
|
|
611
|
+
metadata: dict[str, Any] | None = None,
|
|
614
612
|
) -> None:
|
|
615
613
|
"""Record an agent lifecycle event"""
|
|
616
614
|
try:
|
|
@@ -20,11 +20,13 @@ import logging
|
|
|
20
20
|
import os
|
|
21
21
|
import time
|
|
22
22
|
from abc import abstractmethod
|
|
23
|
-
from collections.abc import AsyncGenerator
|
|
24
23
|
from datetime import datetime, timezone
|
|
25
24
|
from typing import TYPE_CHECKING, Any
|
|
26
25
|
|
|
26
|
+
|
|
27
27
|
if TYPE_CHECKING:
|
|
28
|
+
from collections.abc import AsyncGenerator
|
|
29
|
+
|
|
28
30
|
from ..capabilities.resolver import CapabilitySet
|
|
29
31
|
from ..subagents.executor import SubagentExecutor
|
|
30
32
|
from ..subagents.message_queue import SessionMessageQueue
|
|
@@ -349,7 +351,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
349
351
|
"""
|
|
350
352
|
return None
|
|
351
353
|
|
|
352
|
-
def set_subagent_executor(self, executor:
|
|
354
|
+
def set_subagent_executor(self, executor: SubagentExecutor | None) -> None:
|
|
353
355
|
"""Inject or remove the shared SubagentExecutor.
|
|
354
356
|
|
|
355
357
|
Automatically extracts the SessionMessageQueue from the executor's
|
|
@@ -361,7 +363,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
361
363
|
else:
|
|
362
364
|
self._message_queue = None
|
|
363
365
|
|
|
364
|
-
def _create_subagent_spawn_tool(self) ->
|
|
366
|
+
def _create_subagent_spawn_tool(self) -> SubagentSpawnTool | None:
|
|
365
367
|
"""Create the SubagentSpawnTool if all conditions are met.
|
|
366
368
|
|
|
367
369
|
Returns None when the executor, capability_set, or the
|
|
@@ -683,7 +685,9 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
683
685
|
if meta and hasattr(meta, "name"):
|
|
684
686
|
name = meta.name
|
|
685
687
|
else:
|
|
686
|
-
name =
|
|
688
|
+
name = (
|
|
689
|
+
getattr(tool, "__name__", None) or getattr(tool, "name", None) or str(id(tool))
|
|
690
|
+
)
|
|
687
691
|
if name not in seen_names:
|
|
688
692
|
seen_names.add(name)
|
|
689
693
|
unique_tools.append(tool)
|
|
@@ -763,10 +767,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
763
767
|
self._current_spawn_depth = session_configuration["spawn_depth"]
|
|
764
768
|
|
|
765
769
|
# Use parent's session_id for file storage if configured (subagent file sharing)
|
|
766
|
-
|
|
767
|
-
self._file_storage_session_id = session_configuration["file_storage_session_id"]
|
|
768
|
-
else:
|
|
769
|
-
self._file_storage_session_id = None
|
|
770
|
+
self._file_storage_session_id = session_configuration.get("file_storage_session_id")
|
|
770
771
|
|
|
771
772
|
# --- Automatic personalization injection ---
|
|
772
773
|
# Activated when PERSONALIZATION_ENABLED=true (default) AND memory is available.
|
|
@@ -828,6 +829,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
828
829
|
work_profile_block = ""
|
|
829
830
|
try:
|
|
830
831
|
from ..memory.work_patterns import WorkPatternAnalyzer
|
|
832
|
+
|
|
831
833
|
wp_analyzer = WorkPatternAnalyzer(provider)
|
|
832
834
|
work_profile = await wp_analyzer.build_profile(
|
|
833
835
|
user_id=user_id,
|
|
@@ -837,13 +839,11 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
837
839
|
if work_profile.total_interactions >= 3:
|
|
838
840
|
directives = wp_analyzer.build_agent_directives(work_profile)
|
|
839
841
|
if directives:
|
|
840
|
-
work_profile_block =
|
|
841
|
-
"\n\n[Directives de travail]\n"
|
|
842
|
-
f"{directives}"
|
|
843
|
-
)
|
|
842
|
+
work_profile_block = "\n\n[Directives de travail]\n" f"{directives}"
|
|
844
843
|
logger.info(
|
|
845
844
|
"Work pattern directives injected for user=%s: %d interactions",
|
|
846
|
-
user_id,
|
|
845
|
+
user_id,
|
|
846
|
+
work_profile.total_interactions,
|
|
847
847
|
)
|
|
848
848
|
except Exception as e:
|
|
849
849
|
logger.debug("Work pattern injection skipped: %s", e)
|
|
@@ -851,7 +851,8 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
851
851
|
# --- Response Lessons (the key part) ---
|
|
852
852
|
lessons_block = ""
|
|
853
853
|
try:
|
|
854
|
-
from ..memory.response_lessons import
|
|
854
|
+
from ..memory.response_lessons import format_lessons_for_prompt, recall_lessons
|
|
855
|
+
|
|
855
856
|
lessons = await recall_lessons(provider, user_id, self.agent_id, limit=10)
|
|
856
857
|
if lessons:
|
|
857
858
|
formatted = format_lessons_for_prompt(lessons)
|
|
@@ -859,12 +860,15 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
859
860
|
lessons_block = f"\n\n[Leçons apprises — compléments à inclure automatiquement]\n{formatted}"
|
|
860
861
|
logger.info(
|
|
861
862
|
"Response lessons injected for user=%s: %d lessons",
|
|
862
|
-
user_id,
|
|
863
|
+
user_id,
|
|
864
|
+
len(lessons),
|
|
863
865
|
)
|
|
864
866
|
except Exception as e:
|
|
865
867
|
logger.debug("Response lessons injection skipped: %s", e)
|
|
866
868
|
|
|
867
|
-
preference_block =
|
|
869
|
+
preference_block = (
|
|
870
|
+
f"[User Preferences]\n{fact_lines}{work_profile_block}{lessons_block}"
|
|
871
|
+
)
|
|
868
872
|
|
|
869
873
|
prompt = self._session_system_prompt or ""
|
|
870
874
|
if "{{native_user_preferences}}" in prompt:
|
|
@@ -1112,7 +1116,9 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
1112
1116
|
if success:
|
|
1113
1117
|
logger.info(
|
|
1114
1118
|
"[MEMORY_STORE] Auto-stored interaction for user=%s "
|
|
1115
|
-
"(response_len=%d)",
|
|
1119
|
+
"(response_len=%d)",
|
|
1120
|
+
user_id,
|
|
1121
|
+
len(response_text),
|
|
1116
1122
|
)
|
|
1117
1123
|
else:
|
|
1118
1124
|
logger.warning(f"Failed to auto-store interaction for user {user_id}")
|
|
@@ -1507,7 +1513,9 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
1507
1513
|
if success:
|
|
1508
1514
|
logger.info(
|
|
1509
1515
|
"[MEMORY_STORE] Auto-stored streaming interaction for user=%s "
|
|
1510
|
-
"(response_len=%d)",
|
|
1516
|
+
"(response_len=%d)",
|
|
1517
|
+
user_id,
|
|
1518
|
+
len(final_text),
|
|
1511
1519
|
)
|
|
1512
1520
|
else:
|
|
1513
1521
|
logger.warning(
|