agent-framework-lib 0.8.9.post3__tar.gz → 0.8.10__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/LICENSE +96 -0
- {agent_framework_lib-0.8.9.post3/agent_framework_lib.egg-info → agent_framework_lib-0.8.10}/PKG-INFO +5 -5
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/README.md +2 -2
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/base_agent.py +5 -6
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/context_budget.py +8 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/model_clients.py +89 -3
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/model_config.py +53 -3
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/model_router.py +8 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/scratchpad_compressor.py +5 -3
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/utils/session_title_generator.py +36 -23
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/agent_example_multi_skills.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/agent_with_file_storage.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/agent_with_mcp.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/agent_with_memory_graphiti.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/agent_with_memory_hybrid.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/agent_with_memory_simple.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/custom_framework_agent.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/simple_agent.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/examples/skills_demo_agent.py +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/helper_agent.py +9 -11
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework_lib.egg-info}/PKG-INFO +5 -5
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework_lib.egg-info/requires.txt +2 -2
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/ARCHITECTURE_DIAGRAM.md +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/GETTING_STARTED.md +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/api-reference.md +1 -1
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/configuration.md +7 -7
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/pyproject.toml +4 -4
- agent_framework_lib-0.8.9.post3/LICENSE +0 -21
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/ARCHITECTURE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/MANIFEST.in +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/base.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/a2a_router.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/sse_wrapper.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/endpoints/translation_layer.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/models.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/providers/elasticsearch_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/a2a/providers/postgres_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/capabilities/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/capabilities/resolver.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/audit.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/config.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/crypto.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/git_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/herdr_client.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/models.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/orchestrator.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/store.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/code_delivery/tools.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/activity_formatter.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/agent_interface.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/agent_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/context_summarizer.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/elasticsearch_config_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/execution_controller.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/implementation_validator.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/interruption_message.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/knowledge_state.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/loop_detector.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/models.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/prompt_builder.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/provider_calibration.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/scratchpad_serializer.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/state_manager.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/step_display_config.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/streaming_parts_accumulator.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/implementations/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/implementations/budget_aware_agent.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/implementations/llamaindex_agent.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/implementations/llamaindex_memory_adapter.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/implementations/microsoft_agent.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/base.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/config.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/hypothesis_engine.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/implicit_feedback.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/manager.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/personalization.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/providers/graphiti_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/providers/memori_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/response_lessons.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/tools.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/memory/work_patterns.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/api_timing_tracker.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/elasticsearch_logging.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/error_handling.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/error_logging.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/llm_auto_instrumentor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/llm_metrics.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/metrics_aggregator.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/metrics_config.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/observability_manager.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/otel_instrumentor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/otel_logging_handler.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/otel_setup.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/performance_monitor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/progress_tracker.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/resource_manager.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/timing_tracker.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/token_counter.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/monitoring/tracing_context.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/notifications/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/notifications/hub.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/notifications/webhook_notifier.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/processing/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/processing/ai_content_management.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/processing/markdown_converter.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/processing/multimodal_integration.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/processing/rich_content_validation.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/py.typed +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/authz.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/file_view_token.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/input_guard.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/openshell_policy.yaml +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/pii_redactor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/sandbox.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/sandbox_provider.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/secret_redactor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/shell_env.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/security/upload_token.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/session/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/session/elasticsearch_session_storage.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/session/session_storage.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/base.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/scripts/create_and_register.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/scripts/register_to_storage.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/chart/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/chart/vendor_chart.umd.min.js +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/code_delivery/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/code_format/format_python.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/csv/create_csv.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/csv/read_csv.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/csv/transform_csv.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/excel/create_excel.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/file/create_file.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/file/list_files.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/file/read_file.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/file_access/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/file_access/download_to_local.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/image_gen/create_image.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/mermaid/vendor_mermaid.umd.min.js +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/powerpoint/templates/Big Data Infographics.pptx +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/powerpoint/templates/Executive Design Pitch Deck.pptx +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/powerpoint/templates/Management Consulting Toolkit.pptx +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/powerpoint/templates/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/powerpoint/templates/generate_templates.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/skill_creator/skill_api.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/table/table_to_image.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/builtin/skills/word/create_word.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/custom_skill_manager.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/discovery_prompt.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/markdown_loader.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/skills/tools.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/storage/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/storage/file_storages.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/storage/file_system_management.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/storage/storage_optimizer.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/subagents/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/subagents/executor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/subagents/message_injector.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/subagents/message_queue.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/subagents/retrigger.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/subagents/spawn_tool.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/activity_callback.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/adaptive_pdf_css.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/base.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/html_content_analyzer.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/multimodal_tools.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/pdf_image_scaler.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/shell_tool.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/sizing_config.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/web_fetch_tool.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/tools/web_search_tool.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/utils/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/utils/path_utils.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/utils/post_install.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/utils/source_detector.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/utils/special_blocks.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/admin_auth.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/admin_models.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/admin_router.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/admin_services.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/api_timing_middleware.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/Dockerfile +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10/agent_framework/web/docs}/README.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/docker-compose.yml +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/examples/agent_with_memory.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/documentation_generator.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/gitnexus_client.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/helper_ui.html +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/modern_ui.html +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/otel_tracing_middleware.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/server.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/skills_router.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/web/test_app.html +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/builder.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/chat_completion.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/context.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/decorators.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/engine.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/errors.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/monitoring.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/runner.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/state.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/core/types.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/implementations/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/implementations/langgraph_engine.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/server/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/server/router.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workflow/server/schemas.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/__init__.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/artefacts.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/client.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/config.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/context.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/cursor.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/memory.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/models.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/poller.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/preferences.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/router.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/session.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/workspace/subscription.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework_lib.egg-info/SOURCES.txt +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework_lib.egg-info/entry_points.txt +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework_lib.egg-info/top_level.txt +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/CANCEL_AND_INTERRUPT_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/DEEPEVAL_TEST_REPORT.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/DIAGNOSTIC_SANDBOX_SKILLS.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/FILE_STORAGE_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/HISTORY_MESSAGE_FORMAT.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/MULTIMODAL_TOOLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/OBSERVABILITY_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/OPENSHELL_GATEWAY_HOST_SETUP.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/PYPI_PUBLISHING.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/QA_STREAMING_LATENCY.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/SCREENSHOTS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/SECRETS_MANAGEMENT.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/SECURITY_HARDENING.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/SSE_NOTIFICATIONS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/framework_audit_remarques.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/helper_agent.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/index.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/README.md +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/agent_context_budget_test.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/agent_exemple_test.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/agent_training_with_apo.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/agent_with_custom_tools_file_storage.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/agent_with_personalization.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/biagenttest.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/dependencies/docker-compose.yaml +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/pyproject.toml +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/test_work_patterns_live.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/workflow_engine_example.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/examples/workspace_test_agent.py +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/setup.cfg +0 -0
- {agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/setup.py +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# PolyForm Internal Use License 1.0.0
|
|
2
|
+
|
|
3
|
+
<https://polyformproject.org/licenses/internal-use/1.0.0>
|
|
4
|
+
|
|
5
|
+
## Acceptance
|
|
6
|
+
|
|
7
|
+
In order to get any license under these terms, you must agree
|
|
8
|
+
to them as both strict obligations and conditions to all
|
|
9
|
+
your licenses.
|
|
10
|
+
|
|
11
|
+
## Copyright License
|
|
12
|
+
|
|
13
|
+
The licensor grants you a copyright license for the software
|
|
14
|
+
to do everything you might do with the software that would
|
|
15
|
+
otherwise infringe the licensor's copyright in it for any
|
|
16
|
+
permitted purpose. However, you may only make changes or
|
|
17
|
+
new works based on the software according to [Changes and New
|
|
18
|
+
Works License](#changes-and-new-works-license), and you may
|
|
19
|
+
not distribute the software.
|
|
20
|
+
|
|
21
|
+
## Changes and New Works License
|
|
22
|
+
|
|
23
|
+
The licensor grants you an additional copyright license to
|
|
24
|
+
make changes and new works based on the software for any
|
|
25
|
+
permitted purpose.
|
|
26
|
+
|
|
27
|
+
## Patent License
|
|
28
|
+
|
|
29
|
+
The licensor grants you a patent license for the software that
|
|
30
|
+
covers patent claims the licensor can license, or becomes able
|
|
31
|
+
to license, that you would infringe by using the software.
|
|
32
|
+
|
|
33
|
+
## Fair Use
|
|
34
|
+
|
|
35
|
+
You may have "fair use" rights for the software under the
|
|
36
|
+
law. These terms do not limit them.
|
|
37
|
+
|
|
38
|
+
## Internal Business Use
|
|
39
|
+
|
|
40
|
+
Use of the software for the internal business operations of
|
|
41
|
+
you and your company is use for a permitted purpose.
|
|
42
|
+
|
|
43
|
+
## No Other Rights
|
|
44
|
+
|
|
45
|
+
These terms do not allow you to sublicense or transfer any of
|
|
46
|
+
your licenses to anyone else, or prevent the licensor from
|
|
47
|
+
granting licenses to anyone else. These terms do not imply
|
|
48
|
+
any other licenses.
|
|
49
|
+
|
|
50
|
+
## Patent Defense
|
|
51
|
+
|
|
52
|
+
If you make any written claim that the software infringes or
|
|
53
|
+
contributes to infringement of any patent, your patent license
|
|
54
|
+
for the software granted under these terms ends immediately. If
|
|
55
|
+
your company makes such a claim, your patent license ends
|
|
56
|
+
immediately for work on behalf of your company.
|
|
57
|
+
|
|
58
|
+
## Violations
|
|
59
|
+
|
|
60
|
+
The first time you are notified in writing that you have
|
|
61
|
+
violated any of these terms, or done anything with the software
|
|
62
|
+
not covered by your licenses, your licenses can nonetheless
|
|
63
|
+
continue if you come into full compliance with these terms,
|
|
64
|
+
and take practical steps to correct past violations, within
|
|
65
|
+
32 days of receiving notice. Otherwise, all your licenses
|
|
66
|
+
end immediately.
|
|
67
|
+
|
|
68
|
+
## No Liability
|
|
69
|
+
|
|
70
|
+
***As far as the law allows, the software comes as is, without
|
|
71
|
+
any warranty or condition, and the licensor will not be liable
|
|
72
|
+
to you for any damages arising out of these terms or the use
|
|
73
|
+
or nature of the software, under any kind of legal claim.***
|
|
74
|
+
|
|
75
|
+
## Definitions
|
|
76
|
+
|
|
77
|
+
The **licensor** is the individual or entity offering these
|
|
78
|
+
terms, and the **software** is the software the licensor makes
|
|
79
|
+
available under these terms.
|
|
80
|
+
|
|
81
|
+
**You** refers to the individual or entity agreeing to these
|
|
82
|
+
terms.
|
|
83
|
+
|
|
84
|
+
**Your company** is any legal entity, sole proprietorship,
|
|
85
|
+
or other kind of organization that you work for, plus all
|
|
86
|
+
organizations that have control over, are under the control of,
|
|
87
|
+
or are under common control with that organization. **Control**
|
|
88
|
+
means ownership of substantially all the assets of an entity,
|
|
89
|
+
or the power to direct its management and policies by vote,
|
|
90
|
+
contract, or otherwise. Control can be direct or indirect.
|
|
91
|
+
|
|
92
|
+
**Your licenses** are all the licenses granted to you for the
|
|
93
|
+
software under these terms.
|
|
94
|
+
|
|
95
|
+
**Use** means anything you do with the software requiring one
|
|
96
|
+
of your licenses.
|
{agent_framework_lib-0.8.9.post3/agent_framework_lib.egg-info → agent_framework_lib-0.8.10}/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.10
|
|
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>
|
|
@@ -60,7 +60,7 @@ Requires-Dist: llama-index>=0.14.16
|
|
|
60
60
|
Requires-Dist: llama-index-core>=0.14.16
|
|
61
61
|
Requires-Dist: llama-index-workflows>=2.16.0
|
|
62
62
|
Requires-Dist: llama-index-llms-openai>=0.7.9
|
|
63
|
-
Requires-Dist: llama-index-llms-anthropic>=0.11.
|
|
63
|
+
Requires-Dist: llama-index-llms-anthropic>=0.11.8
|
|
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
|
|
@@ -83,7 +83,7 @@ Requires-Dist: llama-index-core>=0.14.16; extra == "llamaindex"
|
|
|
83
83
|
Requires-Dist: llama-index-workflows>=2.16.0; extra == "llamaindex"
|
|
84
84
|
Requires-Dist: llama-index-llms-openai>=0.7.9; extra == "llamaindex"
|
|
85
85
|
Requires-Dist: llama-index-llms-google-genai>=0.1.0; extra == "llamaindex"
|
|
86
|
-
Requires-Dist: llama-index-llms-anthropic>=0.11.
|
|
86
|
+
Requires-Dist: llama-index-llms-anthropic>=0.11.8; extra == "llamaindex"
|
|
87
87
|
Provides-Extra: langgraph
|
|
88
88
|
Requires-Dist: langgraph>=0.2.0; extra == "langgraph"
|
|
89
89
|
Provides-Extra: mcp
|
|
@@ -430,7 +430,7 @@ ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
|
|
|
430
430
|
GEMINI_API_KEY=your-gemini-key
|
|
431
431
|
|
|
432
432
|
# Model Configuration
|
|
433
|
-
DEFAULT_MODEL=
|
|
433
|
+
DEFAULT_MODEL=claude-haiku-4-5-20251001
|
|
434
434
|
|
|
435
435
|
# Multi-Model Routing (Auto Mode)
|
|
436
436
|
DEFAULT_MODEL_MODE=auto # "auto" or specific model name
|
|
@@ -577,7 +577,7 @@ class MyAgent(LlamaIndexAgent):
|
|
|
577
577
|
)
|
|
578
578
|
# Default model config (can be overridden per session)
|
|
579
579
|
self.default_temperature = 0.7
|
|
580
|
-
self.default_model = "
|
|
580
|
+
self.default_model = "claude-haiku-4-5-20251001"
|
|
581
581
|
```
|
|
582
582
|
|
|
583
583
|
**Runtime Configuration:**
|
{agent_framework_lib-0.8.9.post3/agent_framework/web/docs → agent_framework_lib-0.8.10}/README.md
RENAMED
|
@@ -272,7 +272,7 @@ ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
|
|
|
272
272
|
GEMINI_API_KEY=your-gemini-key
|
|
273
273
|
|
|
274
274
|
# Model Configuration
|
|
275
|
-
DEFAULT_MODEL=
|
|
275
|
+
DEFAULT_MODEL=claude-haiku-4-5-20251001
|
|
276
276
|
|
|
277
277
|
# Multi-Model Routing (Auto Mode)
|
|
278
278
|
DEFAULT_MODEL_MODE=auto # "auto" or specific model name
|
|
@@ -419,7 +419,7 @@ class MyAgent(LlamaIndexAgent):
|
|
|
419
419
|
)
|
|
420
420
|
# Default model config (can be overridden per session)
|
|
421
421
|
self.default_temperature = 0.7
|
|
422
|
-
self.default_model = "
|
|
422
|
+
self.default_model = "claude-haiku-4-5-20251001"
|
|
423
423
|
```
|
|
424
424
|
|
|
425
425
|
**Runtime Configuration:**
|
{agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/base_agent.py
RENAMED
|
@@ -48,7 +48,7 @@ from .agent_interface import (
|
|
|
48
48
|
TextOutputPart,
|
|
49
49
|
TextOutputStreamPart,
|
|
50
50
|
)
|
|
51
|
-
from .model_config import model_config
|
|
51
|
+
from .model_config import FRAMEWORK_DEFAULT_MODEL, model_config
|
|
52
52
|
from .models import Tag
|
|
53
53
|
|
|
54
54
|
|
|
@@ -703,7 +703,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
703
703
|
)
|
|
704
704
|
if not candidate:
|
|
705
705
|
# Final fallback if nothing is configured
|
|
706
|
-
return
|
|
706
|
+
return FRAMEWORK_DEFAULT_MODEL
|
|
707
707
|
return candidate
|
|
708
708
|
|
|
709
709
|
def _ensure_agent_built(self):
|
|
@@ -1116,7 +1116,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
1116
1116
|
user_id,
|
|
1117
1117
|
work_profile.total_interactions,
|
|
1118
1118
|
)
|
|
1119
|
-
return "\n\n[Directives de travail]\n
|
|
1119
|
+
return f"\n\n[Directives de travail]\n{directives}"
|
|
1120
1120
|
except Exception as e:
|
|
1121
1121
|
logger.debug("Work pattern injection skipped: %s", e)
|
|
1122
1122
|
return ""
|
|
@@ -1241,7 +1241,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
1241
1241
|
if parts_text:
|
|
1242
1242
|
for i, text in enumerate(parts_text):
|
|
1243
1243
|
logger.info(
|
|
1244
|
-
f"[_build_full_query] Part {i+1} length: {len(text)} chars, preview: {text[:200]}..."
|
|
1244
|
+
f"[_build_full_query] Part {i + 1} length: {len(text)} chars, preview: {text[:200]}..."
|
|
1245
1245
|
)
|
|
1246
1246
|
|
|
1247
1247
|
# Add timestamp for temporal awareness
|
|
@@ -1353,8 +1353,7 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
1353
1353
|
|
|
1354
1354
|
if success:
|
|
1355
1355
|
logger.info(
|
|
1356
|
-
"[MEMORY_STORE] Auto-stored interaction for user=%s "
|
|
1357
|
-
"(response_len=%d)",
|
|
1356
|
+
"[MEMORY_STORE] Auto-stored interaction for user=%s (response_len=%d)",
|
|
1358
1357
|
user_id,
|
|
1359
1358
|
len(response_text),
|
|
1360
1359
|
)
|
|
@@ -45,9 +45,17 @@ class ModelContextRegistry:
|
|
|
45
45
|
"gpt-5.4": 1_050_000,
|
|
46
46
|
"gpt-5.5": 400_000,
|
|
47
47
|
"claude-opus-4-6": 200_000,
|
|
48
|
+
"claude-opus-4-7": 200_000,
|
|
48
49
|
"claude-opus-4-8": 200_000,
|
|
49
50
|
"claude-sonnet-4-6": 1_000_000,
|
|
50
51
|
"claude-opus-4-5-20251101": 200_000,
|
|
52
|
+
# Claude 5 (disponibles depuis juin-août 2026) : 1M de contexte.
|
|
53
|
+
"claude-sonnet-5": 1_000_000,
|
|
54
|
+
"claude-opus-5": 1_000_000,
|
|
55
|
+
"claude-fable-5": 1_000_000,
|
|
56
|
+
"claude-fable-5-1": 1_000_000,
|
|
57
|
+
"gpt-5.4-pro": 1_050_000,
|
|
58
|
+
"gpt-5.5-pro": 400_000,
|
|
51
59
|
"gemini-2.5-pro": 1_048_576,
|
|
52
60
|
"gemini-3.1-pro-preview": 1_048_576,
|
|
53
61
|
}
|
{agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/model_clients.py
RENAMED
|
@@ -5,13 +5,20 @@ Creates appropriate model clients (OpenAI, Anthropic, Gemini, etc.) based on mod
|
|
|
5
5
|
This module is framework-agnostic and uses native client libraries.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
import inspect
|
|
8
9
|
import json
|
|
9
10
|
import logging
|
|
10
11
|
import re
|
|
11
12
|
from typing import Any, cast
|
|
12
13
|
|
|
13
14
|
from .agent_interface import AgentConfig
|
|
14
|
-
from .model_config import
|
|
15
|
+
from .model_config import (
|
|
16
|
+
ANTHROPIC_SAMPLING_PARAMS,
|
|
17
|
+
ModelConfigManager,
|
|
18
|
+
ModelProvider,
|
|
19
|
+
anthropic_supports_sampling,
|
|
20
|
+
model_config,
|
|
21
|
+
)
|
|
15
22
|
|
|
16
23
|
|
|
17
24
|
logger = logging.getLogger(__name__)
|
|
@@ -175,6 +182,70 @@ def _patch_openai_client_for_sanitization(llm: Any) -> None:
|
|
|
175
182
|
logger.info("[OpenAI Sanitizer] Patched LlamaIndex OpenAI LLM for cross-provider compatibility")
|
|
176
183
|
|
|
177
184
|
|
|
185
|
+
_SAMPLING_DROP_WARNED: set[tuple[str, str]] = set()
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
def _callable_accepts_kwarg(fn: Any, name: str) -> bool | None:
|
|
189
|
+
"""True/False si la signature de ``fn`` tranche, None si on ne peut pas savoir.
|
|
190
|
+
|
|
191
|
+
``None`` (signature introuvable, ou ``**kwargs`` accepté) → on laisse passer :
|
|
192
|
+
c'est le cas des doubles de test (``AsyncMock``) et des SDK non introspectables.
|
|
193
|
+
"""
|
|
194
|
+
if fn is None:
|
|
195
|
+
return None
|
|
196
|
+
try:
|
|
197
|
+
params = inspect.signature(fn).parameters
|
|
198
|
+
except (TypeError, ValueError):
|
|
199
|
+
return None
|
|
200
|
+
if any(p.kind is inspect.Parameter.VAR_KEYWORD for p in params.values()):
|
|
201
|
+
return None
|
|
202
|
+
return name in params
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
def strip_unsupported_anthropic_kwargs(
|
|
206
|
+
create_fn: Any, kwargs: dict[str, Any], *, model: str | None = None
|
|
207
|
+
) -> dict[str, Any]:
|
|
208
|
+
"""Retire temperature / top_p / top_k quand le SDK ou le modèle ne les accepte plus.
|
|
209
|
+
|
|
210
|
+
Deux sources de vérité, cumulées :
|
|
211
|
+
1. **le modèle** — Claude Opus 4.7+, Sonnet 5, Opus 5, Fable 5 refusent le sampling
|
|
212
|
+
(``anthropic_supports_sampling``) ;
|
|
213
|
+
2. **le SDK** — ``anthropic`` >= 1.0 a retiré ces arguments de ``messages.create`` :
|
|
214
|
+
la signature réelle fait foi (introspection), ce qui couvre aussi les versions
|
|
215
|
+
futures sans mise à jour de liste.
|
|
216
|
+
|
|
217
|
+
Ne modifie pas ``kwargs`` en place. Journalise une fois par (paramètre, raison).
|
|
218
|
+
"""
|
|
219
|
+
present = [name for name in ANTHROPIC_SAMPLING_PARAMS if name in kwargs]
|
|
220
|
+
if not present:
|
|
221
|
+
return kwargs
|
|
222
|
+
|
|
223
|
+
reason: str | None = None
|
|
224
|
+
if not anthropic_supports_sampling(model):
|
|
225
|
+
reason = f"modèle {model} sans sampling"
|
|
226
|
+
else:
|
|
227
|
+
rejected = [name for name in present if _callable_accepts_kwarg(create_fn, name) is False]
|
|
228
|
+
if rejected:
|
|
229
|
+
present = rejected
|
|
230
|
+
reason = "absent de la signature du SDK anthropic installé"
|
|
231
|
+
|
|
232
|
+
if reason is None:
|
|
233
|
+
return kwargs
|
|
234
|
+
|
|
235
|
+
cleaned = {k: v for k, v in kwargs.items() if k not in present}
|
|
236
|
+
for name in present:
|
|
237
|
+
key = (name, reason)
|
|
238
|
+
if key not in _SAMPLING_DROP_WARNED:
|
|
239
|
+
_SAMPLING_DROP_WARNED.add(key)
|
|
240
|
+
logger.warning(
|
|
241
|
+
"[Anthropic] paramètre '%s' ignoré (%s) — valeur %r non envoyée",
|
|
242
|
+
name,
|
|
243
|
+
reason,
|
|
244
|
+
kwargs.get(name),
|
|
245
|
+
)
|
|
246
|
+
return cleaned
|
|
247
|
+
|
|
248
|
+
|
|
178
249
|
def _patch_anthropic_client_for_sanitization(llm: Any) -> None:
|
|
179
250
|
"""
|
|
180
251
|
Patch the LlamaIndex Anthropic LLM to sanitize messages before API calls.
|
|
@@ -262,9 +333,18 @@ def _patch_anthropic_client_for_sanitization(llm: Any) -> None:
|
|
|
262
333
|
original_create = messages_api.create
|
|
263
334
|
|
|
264
335
|
async def sanitizing_create(*args, **kwargs):
|
|
265
|
-
"""Wrapper that sanitizes messages before calling Anthropic API.
|
|
336
|
+
"""Wrapper that sanitizes messages before calling Anthropic API.
|
|
337
|
+
|
|
338
|
+
Also drops the sampling parameters (temperature / top_p / top_k) that the
|
|
339
|
+
installed SDK or the target model no longer accepts — llama-index still
|
|
340
|
+
sends ``temperature`` for pre-Claude-5 models, and ``anthropic`` >= 1.0
|
|
341
|
+
removed the argument from ``messages.create`` altogether.
|
|
342
|
+
"""
|
|
266
343
|
if "messages" in kwargs:
|
|
267
344
|
kwargs["messages"] = _sanitize_anthropic_messages(kwargs["messages"])
|
|
345
|
+
kwargs = strip_unsupported_anthropic_kwargs(
|
|
346
|
+
original_create, kwargs, model=kwargs.get("model")
|
|
347
|
+
)
|
|
268
348
|
return await original_create(*args, **kwargs)
|
|
269
349
|
|
|
270
350
|
messages_api.create = sanitizing_create
|
|
@@ -1430,7 +1510,9 @@ def _ensure_openai_json_keyword(
|
|
|
1430
1510
|
return messages
|
|
1431
1511
|
for msg in messages:
|
|
1432
1512
|
content = msg.get("content")
|
|
1433
|
-
text =
|
|
1513
|
+
text = (
|
|
1514
|
+
content if isinstance(content, str) else (str(content) if content is not None else "")
|
|
1515
|
+
)
|
|
1434
1516
|
if "json" in text.lower():
|
|
1435
1517
|
return messages
|
|
1436
1518
|
return list(messages) + [
|
|
@@ -1634,6 +1716,10 @@ async def _execute_anthropic(
|
|
|
1634
1716
|
create_kwargs["system"] = system_text
|
|
1635
1717
|
if output_config is not None:
|
|
1636
1718
|
create_kwargs["output_config"] = output_config
|
|
1719
|
+
# SDK anthropic >= 1.0 et modèles Claude >= Opus 4.7 : plus de temperature/top_p/top_k.
|
|
1720
|
+
create_kwargs = strip_unsupported_anthropic_kwargs(
|
|
1721
|
+
getattr(getattr(client, "messages", None), "create", None), create_kwargs, model=model
|
|
1722
|
+
)
|
|
1637
1723
|
|
|
1638
1724
|
if stream:
|
|
1639
1725
|
|
{agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/model_config.py
RENAMED
|
@@ -14,7 +14,7 @@ This module provides:
|
|
|
14
14
|
Environment Variables:
|
|
15
15
|
- OPENAI_API_KEY: OpenAI API key
|
|
16
16
|
- GEMINI_API_KEY: Google Gemini API key
|
|
17
|
-
- DEFAULT_MODEL: Default model to use (default: "
|
|
17
|
+
- DEFAULT_MODEL: Default model to use (default: "claude-haiku-4-5-20251001")
|
|
18
18
|
- OPENAI_MODELS: Comma-separated list of OpenAI model names
|
|
19
19
|
- GEMINI_MODELS: Comma-separated list of Gemini model names
|
|
20
20
|
- FALLBACK_PROVIDER: Provider to use when model provider is unknown
|
|
@@ -50,6 +50,12 @@ except ImportError:
|
|
|
50
50
|
logger = logging.getLogger(__name__)
|
|
51
51
|
|
|
52
52
|
|
|
53
|
+
# Modèle par défaut du framework quand rien n'est configuré (DEFAULT_MODEL absent,
|
|
54
|
+
# classifieur du routeur, titres de session, compresseur, agent d'aide…).
|
|
55
|
+
# Décision Komus 15/09/2026 : Claude Haiku 4.5 partout (rapide, peu cher, vision).
|
|
56
|
+
FRAMEWORK_DEFAULT_MODEL: Final[str] = "claude-haiku-4-5-20251001"
|
|
57
|
+
|
|
58
|
+
|
|
53
59
|
class ModelProvider(Enum):
|
|
54
60
|
"""
|
|
55
61
|
Supported model providers.
|
|
@@ -86,11 +92,18 @@ class ModelConfigManager:
|
|
|
86
92
|
"""
|
|
87
93
|
|
|
88
94
|
# Default model mappings (can be overridden by environment variables)
|
|
95
|
+
# Modèles constatés sur les comptes Komus le 15/09/2026 (GET /v1/models des deux
|
|
96
|
+
# fournisseurs). Un id absent d'ici reste routé par motif (« gpt », « claude »).
|
|
89
97
|
DEFAULT_OPENAI_MODELS: Final[list[str]] = [
|
|
90
98
|
"gpt-5.4-nano",
|
|
91
99
|
"gpt-5.4-mini",
|
|
92
100
|
"gpt-5.4",
|
|
101
|
+
"gpt-5.4-pro",
|
|
93
102
|
"gpt-5.5",
|
|
103
|
+
"gpt-5.5-pro",
|
|
104
|
+
"gpt-5.6-sol",
|
|
105
|
+
"gpt-5.6-terra",
|
|
106
|
+
"gpt-5.6-luna",
|
|
94
107
|
]
|
|
95
108
|
|
|
96
109
|
DEFAULT_ANTHROPIC_MODELS: Final[list[str]] = [
|
|
@@ -98,7 +111,12 @@ class ModelConfigManager:
|
|
|
98
111
|
"claude-sonnet-4-6",
|
|
99
112
|
"claude-opus-4-5-20251101",
|
|
100
113
|
"claude-opus-4-6",
|
|
114
|
+
"claude-opus-4-7",
|
|
101
115
|
"claude-opus-4-8",
|
|
116
|
+
"claude-sonnet-5",
|
|
117
|
+
"claude-opus-5",
|
|
118
|
+
"claude-fable-5",
|
|
119
|
+
"claude-fable-5-1",
|
|
102
120
|
]
|
|
103
121
|
|
|
104
122
|
DEFAULT_GEMINI_MODELS: Final[list[str]] = [
|
|
@@ -150,7 +168,7 @@ class ModelConfigManager:
|
|
|
150
168
|
self.gemini_api_key = os.getenv("GEMINI_API_KEY", "")
|
|
151
169
|
|
|
152
170
|
# Default model
|
|
153
|
-
self.default_model = os.getenv("DEFAULT_MODEL",
|
|
171
|
+
self.default_model = os.getenv("DEFAULT_MODEL", FRAMEWORK_DEFAULT_MODEL)
|
|
154
172
|
|
|
155
173
|
# Model mappings from environment (with fallbacks to defaults)
|
|
156
174
|
openai_models_str = os.getenv("OPENAI_MODELS", "")
|
|
@@ -532,7 +550,7 @@ class ModelConfigManager:
|
|
|
532
550
|
```python
|
|
533
551
|
model_config.register_agent_config("my-agent", {
|
|
534
552
|
"system_prompt": "You are a helpful assistant.",
|
|
535
|
-
"model_name": "
|
|
553
|
+
"model_name": "claude-haiku-4-5-20251001",
|
|
536
554
|
"model_config": {"temperature": 0.7, "max_tokens": 50000}
|
|
537
555
|
})
|
|
538
556
|
```
|
|
@@ -876,3 +894,35 @@ class ModelConfigManager:
|
|
|
876
894
|
|
|
877
895
|
# Global instance
|
|
878
896
|
model_config = ModelConfigManager()
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
# ---------------------------------------------------------------------------
|
|
900
|
+
# Anthropic : paramètres de sampling (temperature / top_p / top_k)
|
|
901
|
+
# ---------------------------------------------------------------------------
|
|
902
|
+
# Depuis Claude Opus 4.7 et toute la famille Claude 5, l'API Messages refuse
|
|
903
|
+
# ``temperature``/``top_p``/``top_k`` ; le SDK ``anthropic`` >= 1.0 (09/2026) les a
|
|
904
|
+
# retirés de ``messages.create`` pour TOUS les modèles (TypeError « unexpected keyword
|
|
905
|
+
# argument 'temperature' » constatée en prod le 15/09/2026 sur claude-sonnet-4-6).
|
|
906
|
+
# Les deux cas sont traités dans ``model_clients`` : règle par modèle ci-dessous +
|
|
907
|
+
# introspection de la signature du SDK.
|
|
908
|
+
ANTHROPIC_NO_SAMPLING_MODELS: Final[tuple[str, ...]] = (
|
|
909
|
+
"claude-opus-4-7",
|
|
910
|
+
"claude-opus-4-8",
|
|
911
|
+
"claude-sonnet-5",
|
|
912
|
+
"claude-opus-5",
|
|
913
|
+
"claude-fable-5",
|
|
914
|
+
)
|
|
915
|
+
|
|
916
|
+
ANTHROPIC_SAMPLING_PARAMS: Final[tuple[str, ...]] = ("temperature", "top_p", "top_k")
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
def anthropic_supports_sampling(model_name: str | None) -> bool:
|
|
920
|
+
"""True si le modèle Anthropic accepte encore temperature / top_p / top_k.
|
|
921
|
+
|
|
922
|
+
Correspondance par sous-chaîne (comme llama-index) : ``claude-fable-5-1`` et
|
|
923
|
+
``anthropic.claude-opus-5-…`` (Bedrock) tombent dans la règle. ``None`` → True.
|
|
924
|
+
"""
|
|
925
|
+
if not model_name:
|
|
926
|
+
return True
|
|
927
|
+
lowered = model_name.lower()
|
|
928
|
+
return not any(marker in lowered for marker in ANTHROPIC_NO_SAMPLING_MODELS)
|
{agent_framework_lib-0.8.9.post3 → agent_framework_lib-0.8.10}/agent_framework/core/model_router.py
RENAMED
|
@@ -138,14 +138,19 @@ class ModelRouter:
|
|
|
138
138
|
"gemini-3.1-flash-lite-preview",
|
|
139
139
|
]
|
|
140
140
|
DEFAULT_STANDARD_MODELS: list[str] = [
|
|
141
|
+
"claude-sonnet-5",
|
|
141
142
|
"claude-sonnet-4-6",
|
|
142
143
|
"gpt-5.4-mini",
|
|
143
144
|
"gemini-2.5-flash",
|
|
144
145
|
"gemini-3-flash-preview",
|
|
145
146
|
]
|
|
146
147
|
DEFAULT_ADVANCED_MODELS: list[str] = [
|
|
148
|
+
"claude-opus-5",
|
|
149
|
+
"claude-fable-5-1",
|
|
147
150
|
"claude-opus-4-8",
|
|
148
151
|
"gpt-5.5",
|
|
152
|
+
"gpt-5.5-pro",
|
|
153
|
+
"claude-sonnet-5",
|
|
149
154
|
"claude-sonnet-4-6",
|
|
150
155
|
"claude-opus-4-6",
|
|
151
156
|
"claude-opus-4-5-20251101",
|
|
@@ -193,7 +198,9 @@ class ModelRouter:
|
|
|
193
198
|
)
|
|
194
199
|
|
|
195
200
|
# Load classifier and default mode
|
|
196
|
-
|
|
201
|
+
from agent_framework.core.model_config import FRAMEWORK_DEFAULT_MODEL
|
|
202
|
+
|
|
203
|
+
self.classifier_model = os.getenv("AUTO_CLASSIFIER_MODEL", FRAMEWORK_DEFAULT_MODEL)
|
|
197
204
|
self.default_mode = os.getenv("DEFAULT_MODEL_MODE", "auto")
|
|
198
205
|
|
|
199
206
|
logger.info("[ModelRouter] Configuration loaded:")
|
|
@@ -20,6 +20,7 @@ from agent_framework.core.knowledge_state import (
|
|
|
20
20
|
ToolCallSignature,
|
|
21
21
|
ToolResultEntry,
|
|
22
22
|
)
|
|
23
|
+
from agent_framework.core.model_config import FRAMEWORK_DEFAULT_MODEL
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
if TYPE_CHECKING:
|
|
@@ -55,7 +56,7 @@ class ScratchpadCompressor:
|
|
|
55
56
|
self,
|
|
56
57
|
token_counter: TokenCounter,
|
|
57
58
|
summarizer: ContextSummarizer | None = None,
|
|
58
|
-
default_model: str =
|
|
59
|
+
default_model: str = FRAMEWORK_DEFAULT_MODEL,
|
|
59
60
|
) -> None:
|
|
60
61
|
self._token_counter = token_counter
|
|
61
62
|
self._summarizer = summarizer
|
|
@@ -326,9 +327,10 @@ class ScratchpadCompressor:
|
|
|
326
327
|
effective_model = model_name or self._default_model
|
|
327
328
|
if not effective_model:
|
|
328
329
|
logger.warning(
|
|
329
|
-
"model_name et default_model sont vides, utilisation de
|
|
330
|
+
"model_name et default_model sont vides, utilisation de %s en dernier recours",
|
|
331
|
+
FRAMEWORK_DEFAULT_MODEL,
|
|
330
332
|
)
|
|
331
|
-
effective_model =
|
|
333
|
+
effective_model = FRAMEWORK_DEFAULT_MODEL
|
|
332
334
|
if not scratchpad:
|
|
333
335
|
return scratchpad
|
|
334
336
|
|
|
@@ -12,7 +12,7 @@ Key Features:
|
|
|
12
12
|
|
|
13
13
|
Environment Variables:
|
|
14
14
|
- AUTO_GENERATE_SESSION_TITLES: Enable/disable auto-generation (default: "true")
|
|
15
|
-
- SESSION_TITLE_MODEL: LLM model for generation (default: "
|
|
15
|
+
- SESSION_TITLE_MODEL: LLM model for generation (default: "claude-haiku-4-5-20251001")
|
|
16
16
|
- SESSION_TITLE_MAX_TOKENS: Max tokens for title (default: 20)
|
|
17
17
|
- SESSION_TITLE_TEMPERATURE: LLM temperature (default: 0.3)
|
|
18
18
|
"""
|
|
@@ -21,7 +21,8 @@ import logging
|
|
|
21
21
|
import os
|
|
22
22
|
import re
|
|
23
23
|
|
|
24
|
-
from ..core.model_clients import
|
|
24
|
+
from ..core.model_clients import ModelClientFactory, execute_chat_completion
|
|
25
|
+
from ..core.model_config import FRAMEWORK_DEFAULT_MODEL, model_config
|
|
25
26
|
from ..session.session_storage import SessionStorageInterface
|
|
26
27
|
|
|
27
28
|
|
|
@@ -29,7 +30,7 @@ logger = logging.getLogger(__name__)
|
|
|
29
30
|
|
|
30
31
|
# Default configuration values
|
|
31
32
|
DEFAULT_AUTO_GENERATE = True
|
|
32
|
-
DEFAULT_MODEL =
|
|
33
|
+
DEFAULT_MODEL = FRAMEWORK_DEFAULT_MODEL
|
|
33
34
|
DEFAULT_MAX_TOKENS = 30 # Increased for better title generation
|
|
34
35
|
DEFAULT_TEMPERATURE = 0.3
|
|
35
36
|
DEFAULT_LABEL = "Nouvelle session"
|
|
@@ -84,7 +85,7 @@ class SessionTitleGenerator:
|
|
|
84
85
|
Initialize the session title generator.
|
|
85
86
|
|
|
86
87
|
Args:
|
|
87
|
-
model_name: LLM model to use for generation. Defaults to env var or
|
|
88
|
+
model_name: LLM model to use for generation. Defaults to env var or the framework model.
|
|
88
89
|
max_tokens: Maximum tokens for generated title. Defaults to env var or 20.
|
|
89
90
|
temperature: LLM temperature. Defaults to env var or 0.3.
|
|
90
91
|
auto_generate_enabled: Whether auto-generation is enabled. Defaults to env var or True.
|
|
@@ -311,10 +312,13 @@ class SessionTitleGenerator:
|
|
|
311
312
|
"""
|
|
312
313
|
effective_model = model_name or self.model_name
|
|
313
314
|
|
|
314
|
-
#
|
|
315
|
-
|
|
315
|
+
# Sans clé pour le fournisseur du modèle → extraction simple (pas d'appel LLM).
|
|
316
|
+
provider = model_config.get_provider_for_model(effective_model)
|
|
317
|
+
if not model_config.get_api_key_for_provider(provider):
|
|
316
318
|
logger.warning(
|
|
317
|
-
"[SessionTitleGenerator]
|
|
319
|
+
"[SessionTitleGenerator] No API key for %s (model %s), using simple extraction",
|
|
320
|
+
provider.value,
|
|
321
|
+
effective_model,
|
|
318
322
|
)
|
|
319
323
|
return self.extract_simple_title(user_message)
|
|
320
324
|
|
|
@@ -329,25 +333,34 @@ class SessionTitleGenerator:
|
|
|
329
333
|
client = self._client_factory.create_client(
|
|
330
334
|
model_name=effective_model or self.model_name
|
|
331
335
|
)
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
336
|
+
messages = [{"role": "user", "content": prompt}]
|
|
337
|
+
|
|
338
|
+
if hasattr(client, "chat"):
|
|
339
|
+
# SDK OpenAI : chemin historique (max_completion_tokens pour gpt-5-*).
|
|
340
|
+
completion_params: dict = {"model": effective_model, "messages": messages}
|
|
341
|
+
if effective_model.startswith("gpt-5"):
|
|
342
|
+
completion_params["max_completion_tokens"] = self.max_tokens
|
|
343
|
+
# gpt-5.x n'accepte que temperature=1 (défaut)
|
|
344
|
+
else:
|
|
345
|
+
completion_params["max_tokens"] = self.max_tokens
|
|
346
|
+
completion_params["temperature"] = self.temperature
|
|
347
|
+
response = await client.chat.completions.create(**completion_params)
|
|
348
|
+
raw_title = response.choices[0].message.content
|
|
343
349
|
else:
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
350
|
+
# Anthropic / Gemini : couche d'exécution neutre (gère les paramètres
|
|
351
|
+
# de sampling refusés par le SDK ou le modèle).
|
|
352
|
+
model_params = dict(getattr(client, "_model_params", None) or {})
|
|
353
|
+
model_params["model"] = effective_model
|
|
354
|
+
result = await execute_chat_completion(
|
|
355
|
+
client,
|
|
356
|
+
model_params,
|
|
357
|
+
messages,
|
|
358
|
+
max_tokens=self.max_tokens,
|
|
359
|
+
temperature=self.temperature,
|
|
360
|
+
)
|
|
361
|
+
raw_title = result.content
|
|
348
362
|
|
|
349
363
|
# Extract and sanitize the title
|
|
350
|
-
raw_title = response.choices[0].message.content
|
|
351
364
|
logger.debug(f"[SessionTitleGenerator] Raw LLM response: '{raw_title}'")
|
|
352
365
|
title = self.sanitize_title(raw_title)
|
|
353
366
|
|
|
@@ -211,7 +211,7 @@ def main() -> None:
|
|
|
211
211
|
print("=" * 60)
|
|
212
212
|
print("🚀 Starting Multi-Skills Agent Server")
|
|
213
213
|
print("=" * 60)
|
|
214
|
-
print(f"📊 Model: {os.getenv('DEFAULT_MODEL', '
|
|
214
|
+
print(f"📊 Model: {os.getenv('DEFAULT_MODEL', 'claude-haiku-4-5-20251001')}")
|
|
215
215
|
print("🎯 Skills: 12 built-in skills (tools auto-loaded)")
|
|
216
216
|
print(f"🌐 Server: http://localhost:{port}")
|
|
217
217
|
print(f"🎨 UI: http://localhost:{port}/ui")
|
|
@@ -159,7 +159,7 @@ def main():
|
|
|
159
159
|
print("=" * 60)
|
|
160
160
|
print("🚀 Starting File Storage Agent Server")
|
|
161
161
|
print("=" * 60)
|
|
162
|
-
print(f"📊 Model: {os.getenv('DEFAULT_MODEL', '
|
|
162
|
+
print(f"📊 Model: {os.getenv('DEFAULT_MODEL', 'claude-haiku-4-5-20251001')}")
|
|
163
163
|
print("🔧 Tools: create_file, list_files, read_file, create_pdf_from_markdown")
|
|
164
164
|
print("💾 Storage: Local filesystem (default)")
|
|
165
165
|
print(f"🌐 Server: http://localhost:{port}")
|
|
@@ -172,7 +172,7 @@ def main():
|
|
|
172
172
|
print("=" * 60)
|
|
173
173
|
print("🚀 Starting MCP Agent Server")
|
|
174
174
|
print("=" * 60)
|
|
175
|
-
print(f"📊 Model: {os.getenv('DEFAULT_MODEL', '
|
|
175
|
+
print(f"📊 Model: {os.getenv('DEFAULT_MODEL', 'claude-haiku-4-5-20251001')}")
|
|
176
176
|
print("🔧 Built-in Tools: greet")
|
|
177
177
|
print("🔌 MCP Server: filesystem (if configured)")
|
|
178
178
|
print(f"📁 MCP Directory: {os.getenv('MCP_FILESYSTEM_DIR', '~/mcp_workspace')}")
|