agent-framework-lib 0.8.10__tar.gz → 0.8.12__tar.gz

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