agent-framework-lib 0.8.1.post8__tar.gz → 0.8.2.post2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. {agent_framework_lib-0.8.1.post8/agent_framework_lib.egg-info → agent_framework_lib-0.8.2.post2}/PKG-INFO +47 -6
  2. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/README.md +44 -5
  3. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/__init__.py +49 -68
  4. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/base.py +4 -0
  5. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -1
  6. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +62 -30
  7. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +18 -6
  8. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/sse_wrapper.py +6 -14
  9. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/translation_layer.py +17 -8
  10. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/models.py +10 -6
  11. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/providers/__init__.py +2 -0
  12. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/providers/elasticsearch_provider.py +11 -10
  13. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/providers/postgres_provider.py +2 -5
  14. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/capabilities/resolver.py +2 -6
  15. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/activity_formatter.py +1 -3
  16. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/agent_interface.py +0 -1
  17. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/agent_provider.py +3 -8
  18. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/base_agent.py +17 -15
  19. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/context_budget.py +67 -58
  20. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/context_summarizer.py +31 -24
  21. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/implementation_validator.py +135 -118
  22. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/knowledge_state.py +2 -6
  23. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/loop_detector.py +8 -20
  24. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/model_clients.py +325 -294
  25. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/model_config.py +221 -202
  26. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/model_router.py +4 -4
  27. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/scratchpad_compressor.py +55 -39
  28. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/state_manager.py +104 -83
  29. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/step_display_config.py +3 -5
  30. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/implementations/budget_aware_agent.py +10 -16
  31. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/implementations/llamaindex_agent.py +64 -33
  32. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/implementations/llamaindex_memory_adapter.py +177 -155
  33. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/implementations/microsoft_agent.py +78 -73
  34. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/__init__.py +4 -10
  35. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/agent_mixin.py +43 -45
  36. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/base.py +36 -43
  37. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/manager.py +86 -117
  38. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/personalization.py +4 -12
  39. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/providers/__init__.py +2 -2
  40. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/providers/graphiti_provider.py +8 -8
  41. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/providers/memori_provider.py +45 -62
  42. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/tools.py +11 -20
  43. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +41 -48
  44. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/elasticsearch_logging.py +105 -96
  45. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/error_handling.py +268 -222
  46. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/error_logging.py +184 -179
  47. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/llm_auto_instrumentor.py +2 -6
  48. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/observability_manager.py +1 -2
  49. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/otel_logging_handler.py +10 -15
  50. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/otel_metrics_recorder.py +13 -1
  51. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/performance_monitor.py +251 -213
  52. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/progress_tracker.py +128 -111
  53. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/resource_manager.py +143 -91
  54. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/streaming_latency_tracer.py +5 -6
  55. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/token_counter.py +4 -3
  56. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/processing/ai_content_management.py +402 -381
  57. agent_framework_lib-0.8.2.post2/agent_framework/processing/markdown_converter.py +1165 -0
  58. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/processing/multimodal_integration.py +183 -161
  59. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/session/elasticsearch_session_storage.py +1 -3
  60. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/agent_mixin.py +1 -3
  61. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/base.py +1 -1
  62. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/scripts/create_and_register.py +1 -3
  63. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/scripts/register_to_storage.py +24 -5
  64. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +2 -6
  65. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/code_format/format_python.py +3 -5
  66. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/csv/create_csv.py +1 -5
  67. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/csv/read_csv.py +3 -7
  68. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/csv/transform_csv.py +7 -17
  69. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +2 -0
  70. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +2 -0
  71. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +1 -3
  72. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/excel/create_excel.py +4 -1
  73. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/file/create_file.py +1 -3
  74. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/file/list_files.py +8 -6
  75. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/file/read_file.py +4 -10
  76. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/file_access/download_to_local.py +9 -5
  77. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/image_gen/create_image.py +33 -49
  78. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/image_gen/generate_image.py +25 -15
  79. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +5 -12
  80. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +30 -52
  81. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/table/table_to_image.py +2 -6
  82. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +1 -3
  83. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/word/create_word.py +20 -17
  84. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/custom_skill_manager.py +5 -4
  85. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/discovery_prompt.py +19 -0
  86. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/markdown_loader.py +11 -11
  87. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/storage/__init__.py +16 -16
  88. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/storage/file_storages.py +21 -10
  89. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/storage/file_system_management.py +1146 -940
  90. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/storage/storage_optimizer.py +158 -151
  91. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/subagents/executor.py +55 -43
  92. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/subagents/retrigger.py +12 -12
  93. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/subagents/spawn_tool.py +2 -6
  94. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/base.py +24 -23
  95. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/html_content_analyzer.py +3 -5
  96. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/multimodal_tools.py +212 -165
  97. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/shell_tool.py +2 -6
  98. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/web_search_tool.py +6 -4
  99. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/utils/__init__.py +12 -12
  100. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/utils/path_utils.py +83 -73
  101. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/utils/session_title_generator.py +1 -1
  102. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/utils/special_blocks.py +31 -27
  103. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/admin_models.py +1 -3
  104. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/admin_services.py +1 -3
  105. agent_framework_lib-0.8.2.post2/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +386 -0
  106. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/README.md +44 -5
  107. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/agent_example_multi_skills.py +2 -3
  108. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/agent_with_file_storage.py +30 -35
  109. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2/agent_framework/web/docs}/examples/agent_with_mcp.py +42 -52
  110. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/agent_with_memory.py +70 -85
  111. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/agent_with_memory_hybrid.py +2 -4
  112. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2/agent_framework/web/docs}/examples/custom_framework_agent.py +315 -320
  113. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/documentation_generator.py +129 -139
  114. agent_framework_lib-0.8.2.post2/agent_framework/web/gitnexus_client.py +345 -0
  115. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/helper_agent.py +674 -45
  116. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/otel_tracing_middleware.py +20 -14
  117. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/server.py +128 -29
  118. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/skills_router.py +2 -6
  119. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/artefacts.py +7 -5
  120. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/client.py +49 -14
  121. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/context.py +3 -9
  122. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/cursor.py +4 -4
  123. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/poller.py +16 -5
  124. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/router.py +76 -34
  125. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/session.py +15 -12
  126. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2/agent_framework_lib.egg-info}/PKG-INFO +47 -6
  127. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework_lib.egg-info/SOURCES.txt +3 -1
  128. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework_lib.egg-info/requires.txt +3 -0
  129. agent_framework_lib-0.8.2.post2/docs/GITNEXUS_USER_GUIDE.md +386 -0
  130. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_example_multi_skills.py +2 -3
  131. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_exemple_test.py +5 -7
  132. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_training_with_apo.py +67 -75
  133. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_with_file_storage.py +30 -35
  134. {agent_framework_lib-0.8.1.post8/agent_framework/web/docs → agent_framework_lib-0.8.2.post2}/examples/agent_with_mcp.py +42 -52
  135. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_with_memory_hybrid.py +2 -4
  136. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/biagenttest.py +55 -45
  137. {agent_framework_lib-0.8.1.post8/agent_framework/web/docs → agent_framework_lib-0.8.2.post2}/examples/custom_framework_agent.py +315 -320
  138. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/workspace_test_agent.py +1 -1
  139. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/pyproject.toml +6 -1
  140. agent_framework_lib-0.8.1.post8/agent_framework/chart_generation/llm_refinement_loop.py +0 -425
  141. agent_framework_lib-0.8.1.post8/agent_framework/processing/markdown_converter.py +0 -978
  142. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/ARCHITECTURE.md +0 -0
  143. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/LICENSE +0 -0
  144. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/MANIFEST.in +0 -0
  145. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/__init__.py +0 -0
  146. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/__init__.py +0 -0
  147. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/a2a_router.py +0 -0
  148. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
  149. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/capabilities/__init__.py +0 -0
  150. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/__init__.py +0 -0
  151. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/elasticsearch_config_provider.py +0 -0
  152. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/models.py +0 -0
  153. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/provider_calibration.py +0 -0
  154. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/core/streaming_parts_accumulator.py +0 -0
  155. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/implementations/__init__.py +0 -0
  156. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/memory/config.py +0 -0
  157. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/__init__.py +0 -0
  158. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/api_timing_tracker.py +0 -0
  159. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/llm_metrics.py +0 -0
  160. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
  161. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
  162. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/metrics_aggregator.py +0 -0
  163. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/metrics_config.py +0 -0
  164. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/otel_instrumentor.py +0 -0
  165. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/otel_setup.py +0 -0
  166. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
  167. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/timing_tracker.py +0 -0
  168. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/monitoring/tracing_context.py +0 -0
  169. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/notifications/__init__.py +0 -0
  170. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/notifications/hub.py +0 -0
  171. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/processing/__init__.py +0 -0
  172. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/processing/rich_content_validation.py +0 -0
  173. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/py.typed +0 -0
  174. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/session/__init__.py +0 -0
  175. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/session/session_storage.py +0 -0
  176. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/__init__.py +0 -0
  177. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/__init__.py +0 -0
  178. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
  179. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/chart/SKILL.md +0 -0
  180. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
  181. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
  182. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
  183. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
  184. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
  185. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
  186. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
  187. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/file_access/SKILL.md +0 -0
  188. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
  189. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
  190. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
  191. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +0 -0
  192. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
  193. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +0 -0
  194. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +0 -0
  195. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -0
  196. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +0 -0
  197. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
  198. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +0 -0
  199. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
  200. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
  201. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
  202. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/skills/tools.py +0 -0
  203. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/subagents/__init__.py +0 -0
  204. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/subagents/message_injector.py +0 -0
  205. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/subagents/message_queue.py +0 -0
  206. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/__init__.py +0 -0
  207. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/activity_callback.py +0 -0
  208. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/adaptive_pdf_css.py +0 -0
  209. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/pdf_image_scaler.py +0 -0
  210. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/sizing_config.py +0 -0
  211. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/tools/web_fetch_tool.py +0 -0
  212. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/utils/post_install.py +0 -0
  213. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/utils/source_detector.py +0 -0
  214. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/__init__.py +0 -0
  215. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/admin_auth.py +0 -0
  216. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/admin_router.py +0 -0
  217. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/api_timing_middleware.py +0 -0
  218. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
  219. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
  220. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
  221. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
  222. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
  223. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/Dockerfile +0 -0
  224. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/GETTING_STARTED.md +0 -0
  225. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
  226. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
  227. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
  228. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/api-reference.md +0 -0
  229. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/configuration.md +0 -0
  230. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/docker-compose.yml +0 -0
  231. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/agent_with_memory_graphiti.py +0 -0
  232. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/agent_with_memory_simple.py +0 -0
  233. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/simple_agent.py +0 -0
  234. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/examples/skills_demo_agent.py +0 -0
  235. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/docs/installation-guide.md +0 -0
  236. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/helper_ui.html +0 -0
  237. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/modern_ui.html +0 -0
  238. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
  239. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
  240. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/web/test_app.html +0 -0
  241. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/__init__.py +0 -0
  242. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/config.py +0 -0
  243. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/memory.py +0 -0
  244. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/models.py +0 -0
  245. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/preferences.py +0 -0
  246. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework/workspace/subscription.py +0 -0
  247. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
  248. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework_lib.egg-info/entry_points.txt +0 -0
  249. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/agent_framework_lib.egg-info/top_level.txt +0 -0
  250. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/A2A_GUIDE.md +0 -0
  251. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
  252. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/ARCHITECTURE_DIAGRAM.md +0 -0
  253. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
  254. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
  255. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/CREATING_AGENTS.md +0 -0
  256. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
  257. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/DOCKER_SETUP.md +0 -0
  258. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +0 -0
  259. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
  260. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/FILE_STORAGE_GUIDE.md +0 -0
  261. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/GETTING_STARTED.md +0 -0
  262. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/HISTORY_MESSAGE_FORMAT.md +0 -0
  263. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
  264. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/MEMORY_INSTALLATION.md +0 -0
  265. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
  266. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/MULTIMODAL_TOOLS_GUIDE.md +0 -0
  267. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/OBSERVABILITY_GUIDE.md +0 -0
  268. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/PYPI_PUBLISHING.md +0 -0
  269. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/QA_STREAMING_LATENCY.md +0 -0
  270. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/SCREENSHOTS_GUIDE.md +0 -0
  271. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
  272. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/SSE_NOTIFICATIONS_GUIDE.md +0 -0
  273. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
  274. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
  275. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/WORKSPACE_INTEGRATION.md +0 -0
  276. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/api-reference.md +0 -0
  277. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/configuration.md +0 -0
  278. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/framework_audit_remarques.md +0 -0
  279. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/index.md +0 -0
  280. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/docs/installation-guide.md +0 -0
  281. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/README.md +0 -0
  282. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_context_budget_test.py +0 -0
  283. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_with_custom_tools_file_storage.py +0 -0
  284. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_with_memory_graphiti.py +0 -0
  285. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_with_memory_simple.py +0 -0
  286. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/agent_with_personalization.py +0 -0
  287. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/dependencies/docker-compose.yaml +0 -0
  288. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/pyproject.toml +0 -0
  289. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/simple_agent.py +0 -0
  290. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/examples/skills_demo_agent.py +0 -0
  291. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/setup.cfg +0 -0
  292. {agent_framework_lib-0.8.1.post8 → agent_framework_lib-0.8.2.post2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-framework-lib
3
- Version: 0.8.1.post8
3
+ Version: 0.8.2.post2
4
4
  Summary: A comprehensive Python framework for building and serving conversational AI agents with FastAPI
5
5
  Author-email: Sebastian Pavel <sebastian@cinco.ai>, Elliott Girard <elliott.girard@icloud.com>
6
6
  Maintainer-email: Sebastian Pavel <sebastian@cinco.ai>
@@ -89,6 +89,8 @@ Provides-Extra: excel
89
89
  Requires-Dist: openpyxl>=3.1.0; extra == "excel"
90
90
  Provides-Extra: drawio
91
91
  Requires-Dist: drawpyo>=0.1.0; extra == "drawio"
92
+ Provides-Extra: gitnexus
93
+ Requires-Dist: httpx>=0.27.0; extra == "gitnexus"
92
94
  Provides-Extra: dev
93
95
  Requires-Dist: pytest>=8.4.0; extra == "dev"
94
96
  Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
@@ -186,7 +188,7 @@ uv add agent-framework-lib[llamaindex,mcp]
186
188
  uv add agent-framework-lib[all]
187
189
  ```
188
190
 
189
- **Available extras:** `llamaindex`, `mcp`, `mongodb`, `elasticsearch`, `postgresql`, `s3`, `minio`, `gcp`, `multimodal`, `memory`, `memori`, `graphiti`, `graphiti-falkordb`, `graphiti-neo4j`, `graphiti-all`, `observability`, `monitoring`, `websearch`, `dev`, `all`
191
+ **Available extras:** `llamaindex`, `mcp`, `gitnexus`, `mongodb`, `elasticsearch`, `postgresql`, `s3`, `minio`, `gcp`, `multimodal`, `memory`, `memori`, `graphiti`, `graphiti-falkordb`, `graphiti-neo4j`, `graphiti-all`, `observability`, `monitoring`, `websearch`, `dev`, `all`
190
192
 
191
193
  **Optional: System Dependencies**
192
194
 
@@ -245,35 +247,74 @@ The framework includes a built-in AI assistant that helps you create agents! Acc
245
247
 
246
248
  **Features:**
247
249
  - 🧠 Deep knowledge of framework documentation, examples, and source code
248
- - 🔍 Search tools for docs and examples
250
+ - 🔍 **GitNexus-powered code intelligence** - 12937 symbols, 36668 relationships, 300 execution flows
249
251
  - 💡 Code generation assistance
250
252
  - 📚 Indexed knowledge base (30+ files)
251
253
  - 🗄️ Persistent knowledge graph (FalkorDB) - survives server restarts
254
+ - 🔎 Hybrid search (semantic + structural + text fallback)
252
255
 
253
256
  **Access:** `http://localhost:8000/helper`
254
257
 
258
+ ### GitNexus Setup (Recommended)
259
+
260
+ For the best experience, install and run GitNexus to enable semantic code search:
261
+
262
+ ```bash
263
+ # 1. Install and index the codebase
264
+ ./scripts/setup_gitnexus.sh
265
+
266
+ # 2. Start the GitNexus server
267
+ ./scripts/start_gitnexus_server.sh
268
+
269
+ # 3. Verify it's running
270
+ curl http://localhost:4747/health
271
+ ```
272
+
273
+ The helper agent will automatically use GitNexus if available, with graceful fallback to text search if not running.
274
+
275
+ **What GitNexus enables:**
276
+ - Semantic code search across the entire framework
277
+ - Full symbol context (callers, callees, imports, dependencies)
278
+ - Execution flow tracing (300 end-to-end code paths)
279
+ - Impact analysis and relationship queries
280
+
281
+ 📖 **[User Guide](docs/GITNEXUS_USER_GUIDE.md)** - Complete guide for using GitNexus features with the Helper Agent
282
+
283
+ **Optional dependencies:**
284
+ ```bash
285
+ # Install GitNexus support
286
+ uv add agent-framework-lib[gitnexus]
287
+ ```
288
+
255
289
  The helper agent indexes:
256
290
  - All documentation (`docs/*.md`)
257
291
  - All examples (`examples/*.py`)
292
+ - All builtin skills (`agent_framework/skills/builtin/skills/*/SKILL.md`)
258
293
  - Core framework source (tools, storage, memory, session management)
259
294
 
260
295
  **Re-indexing:** If you update documentation or examples, trigger a re-index:
261
296
  ```bash
297
+ # Re-index knowledge base
262
298
  curl -X POST http://localhost:8000/helper/reindex
299
+
300
+ # Re-index GitNexus (after code changes)
301
+ npx gitnexus analyze --embeddings
263
302
  ```
264
303
 
265
304
  **Model Configuration:**
266
305
 
267
- By default, the helper agent uses Claude (if `ANTHROPIC_API_KEY` is set) or GPT-5.2 (if `OPENAI_API_KEY` is set). You can override this with:
306
+ By default, the helper agent uses Claude (if `ANTHROPIC_API_KEY` is set) or GPT-5.4 (if `OPENAI_API_KEY` is set). You can override this with:
268
307
 
269
308
  ```env
270
309
  # Force a specific model (useful if your Anthropic key has reached its limit)
271
- HELPER_AGENT_MODEL=gpt-5.2
310
+ HELPER_AGENT_MODEL=gpt-5.4
272
311
  ```
273
312
 
274
313
  **Example questions:**
275
314
  - "How do I create an agent with memory?"
276
- - "Show me how to use PDF tools"
315
+ - "Show me the execution flow for skill loading"
316
+ - "What calls the MemoryProvider class?"
317
+ - "Find all code related to authentication"
277
318
  - "What's the difference between Memori and Graphiti?"
278
319
  - "How do I configure S3 storage?"
279
320
  - "Search the web for LlamaIndex best practices"
@@ -36,7 +36,7 @@ uv add agent-framework-lib[llamaindex,mcp]
36
36
  uv add agent-framework-lib[all]
37
37
  ```
38
38
 
39
- **Available extras:** `llamaindex`, `mcp`, `mongodb`, `elasticsearch`, `postgresql`, `s3`, `minio`, `gcp`, `multimodal`, `memory`, `memori`, `graphiti`, `graphiti-falkordb`, `graphiti-neo4j`, `graphiti-all`, `observability`, `monitoring`, `websearch`, `dev`, `all`
39
+ **Available extras:** `llamaindex`, `mcp`, `gitnexus`, `mongodb`, `elasticsearch`, `postgresql`, `s3`, `minio`, `gcp`, `multimodal`, `memory`, `memori`, `graphiti`, `graphiti-falkordb`, `graphiti-neo4j`, `graphiti-all`, `observability`, `monitoring`, `websearch`, `dev`, `all`
40
40
 
41
41
  **Optional: System Dependencies**
42
42
 
@@ -95,35 +95,74 @@ The framework includes a built-in AI assistant that helps you create agents! Acc
95
95
 
96
96
  **Features:**
97
97
  - 🧠 Deep knowledge of framework documentation, examples, and source code
98
- - 🔍 Search tools for docs and examples
98
+ - 🔍 **GitNexus-powered code intelligence** - 12937 symbols, 36668 relationships, 300 execution flows
99
99
  - 💡 Code generation assistance
100
100
  - 📚 Indexed knowledge base (30+ files)
101
101
  - 🗄️ Persistent knowledge graph (FalkorDB) - survives server restarts
102
+ - 🔎 Hybrid search (semantic + structural + text fallback)
102
103
 
103
104
  **Access:** `http://localhost:8000/helper`
104
105
 
106
+ ### GitNexus Setup (Recommended)
107
+
108
+ For the best experience, install and run GitNexus to enable semantic code search:
109
+
110
+ ```bash
111
+ # 1. Install and index the codebase
112
+ ./scripts/setup_gitnexus.sh
113
+
114
+ # 2. Start the GitNexus server
115
+ ./scripts/start_gitnexus_server.sh
116
+
117
+ # 3. Verify it's running
118
+ curl http://localhost:4747/health
119
+ ```
120
+
121
+ The helper agent will automatically use GitNexus if available, with graceful fallback to text search if not running.
122
+
123
+ **What GitNexus enables:**
124
+ - Semantic code search across the entire framework
125
+ - Full symbol context (callers, callees, imports, dependencies)
126
+ - Execution flow tracing (300 end-to-end code paths)
127
+ - Impact analysis and relationship queries
128
+
129
+ 📖 **[User Guide](docs/GITNEXUS_USER_GUIDE.md)** - Complete guide for using GitNexus features with the Helper Agent
130
+
131
+ **Optional dependencies:**
132
+ ```bash
133
+ # Install GitNexus support
134
+ uv add agent-framework-lib[gitnexus]
135
+ ```
136
+
105
137
  The helper agent indexes:
106
138
  - All documentation (`docs/*.md`)
107
139
  - All examples (`examples/*.py`)
140
+ - All builtin skills (`agent_framework/skills/builtin/skills/*/SKILL.md`)
108
141
  - Core framework source (tools, storage, memory, session management)
109
142
 
110
143
  **Re-indexing:** If you update documentation or examples, trigger a re-index:
111
144
  ```bash
145
+ # Re-index knowledge base
112
146
  curl -X POST http://localhost:8000/helper/reindex
147
+
148
+ # Re-index GitNexus (after code changes)
149
+ npx gitnexus analyze --embeddings
113
150
  ```
114
151
 
115
152
  **Model Configuration:**
116
153
 
117
- By default, the helper agent uses Claude (if `ANTHROPIC_API_KEY` is set) or GPT-5.2 (if `OPENAI_API_KEY` is set). You can override this with:
154
+ By default, the helper agent uses Claude (if `ANTHROPIC_API_KEY` is set) or GPT-5.4 (if `OPENAI_API_KEY` is set). You can override this with:
118
155
 
119
156
  ```env
120
157
  # Force a specific model (useful if your Anthropic key has reached its limit)
121
- HELPER_AGENT_MODEL=gpt-5.2
158
+ HELPER_AGENT_MODEL=gpt-5.4
122
159
  ```
123
160
 
124
161
  **Example questions:**
125
162
  - "How do I create an agent with memory?"
126
- - "Show me how to use PDF tools"
163
+ - "Show me the execution flow for skill loading"
164
+ - "What calls the MemoryProvider class?"
165
+ - "Find all code related to authentication"
127
166
  - "What's the difference between Memori and Graphiti?"
128
167
  - "How do I configure S3 storage?"
129
168
  - "Search the web for LlamaIndex best practices"
@@ -23,16 +23,16 @@ Key Components:
23
23
  Example Usage:
24
24
  ```python
25
25
  from agent_framework import AgentInterface, create_basic_agent_server
26
-
26
+
27
27
  class MyAgent(AgentInterface):
28
28
  async def handle_message(self, session_id: str, agent_input):
29
29
  return StructuredAgentOutput(response_text="Hello!")
30
-
30
+
31
31
  # Start server
32
32
  create_basic_agent_server(MyAgent, port=8000)
33
33
  ```
34
34
 
35
- Version: 0.8.1
35
+ Version: 0.8.2
36
36
  Author: Cinco AI Team
37
37
  License: MIT
38
38
  """
@@ -48,29 +48,29 @@ logger = logging.getLogger(__name__)
48
48
  def _auto_setup_dependencies() -> None:
49
49
  """
50
50
  Automatically check and install required dependencies at import time.
51
-
51
+
52
52
  This runs synchronously when the package is first imported, ensuring
53
53
  Playwright browsers and Deno are available before any async tools try to use them.
54
-
54
+
55
55
  Set AGENT_FRAMEWORK_SKIP_AUTO_SETUP=1 to disable this behavior.
56
56
  """
57
57
  if os.environ.get("AGENT_FRAMEWORK_SKIP_AUTO_SETUP", "").lower() in ("1", "true", "yes"):
58
58
  return
59
-
59
+
60
60
  # Only run once per process
61
61
  global _AUTO_SETUP_DONE
62
62
  if "_AUTO_SETUP_DONE" in globals() and _AUTO_SETUP_DONE:
63
63
  return
64
64
  _AUTO_SETUP_DONE = True
65
-
65
+
66
66
  try:
67
67
  from .utils.post_install import ensure_playwright_browsers, ensure_deno
68
-
68
+
69
69
  # Check/install Playwright (silent if already installed)
70
70
  success, error = ensure_playwright_browsers()
71
71
  if not success and error:
72
72
  logger.warning(f"Playwright setup: {error}")
73
-
73
+
74
74
  # Check/install Deno (silent if already installed)
75
75
  success, message, deno_path = ensure_deno()
76
76
  if not success and message:
@@ -79,7 +79,7 @@ def _auto_setup_dependencies() -> None:
79
79
  # Success but with PATH instructions
80
80
  logger.info(f"Deno: {message}")
81
81
  logger.info(f"Deno will be available via: {deno_path}")
82
-
82
+
83
83
  except Exception as e:
84
84
  # Don't fail the import if setup fails - tools will show errors when used
85
85
  logger.debug(f"Auto-setup skipped: {e}")
@@ -88,7 +88,7 @@ def _auto_setup_dependencies() -> None:
88
88
  # Track if auto-setup has been done
89
89
  _AUTO_SETUP_DONE = False
90
90
 
91
- __version__ = "0.8.1"
91
+ __version__ = "0.8.2"
92
92
  __author__ = "Cinco AI Team"
93
93
  __license__ = "MIT"
94
94
  __email__ = "sebastian@cinco.ai"
@@ -157,19 +157,19 @@ from .session.session_storage import (
157
157
 
158
158
  # File system management (consolidated)
159
159
  from .storage.file_system_management import (
160
- FileStorageManager,
161
- FileStorageFactory,
160
+ FileStorageManager,
161
+ FileStorageFactory,
162
162
  process_file_inputs,
163
163
  process_response_file_links,
164
164
  get_download_url,
165
- get_file_processing_summary,
166
- FileInputMixin
165
+ get_file_processing_summary,
166
+ FileInputMixin,
167
167
  )
168
168
  from .storage.file_storages import (
169
169
  FileStorageInterface,
170
170
  MetadataStorageInterface,
171
- FileMetadata,
172
- LocalFileStorage
171
+ FileMetadata,
172
+ LocalFileStorage,
173
173
  )
174
174
 
175
175
  # Optional file storage backends (only available if dependencies are installed)
@@ -196,13 +196,11 @@ __all__ = [
196
196
  # Version info
197
197
  "__version__",
198
198
  "__author__",
199
-
200
199
  # Core interfaces
201
200
  "AgentInterface",
202
- "StructuredAgentInput",
201
+ "StructuredAgentInput",
203
202
  "StructuredAgentOutput",
204
203
  "AgentConfig",
205
-
206
204
  # Base implementations
207
205
  "BaseAgent",
208
206
  "LlamaIndexAgent",
@@ -210,16 +208,15 @@ __all__ = [
210
208
  "StateManager",
211
209
  "AgentIdentity",
212
210
  "AgentManager",
213
-
214
211
  # Input/Output types
215
212
  "TextInputPart",
216
- "ImageUrlInputPart",
213
+ "ImageUrlInputPart",
217
214
  "FileDataInputPart",
218
215
  "AgentInputPartUnion",
219
216
  "TextOutputPart",
220
217
  "TextOutputStreamPart",
221
218
  "JsonOutputPart",
222
- "YamlOutputPart",
219
+ "YamlOutputPart",
223
220
  "FileContentOutputPart",
224
221
  "FileReferenceInputPart",
225
222
  "FileReferenceOutputPart",
@@ -231,87 +228,77 @@ __all__ = [
231
228
  "FileDownloadLinkOutputPart",
232
229
  "ImageOutputPart",
233
230
  "AgentOutputPartUnion",
234
-
235
231
  # Utility functions
236
232
  "consolidate_text_parts",
237
233
  "strip_technical_details",
238
-
239
234
  # Model configuration
240
235
  "ModelConfigManager",
241
- "ModelProvider",
236
+ "ModelProvider",
242
237
  "model_config",
243
238
  "ModelClientFactory",
244
239
  "client_factory",
245
-
246
240
  # Session storage
247
241
  "SessionStorageInterface",
248
242
  "SessionStorageFactory",
249
243
  "SessionData",
250
244
  "MessageData",
251
- "MessageInsight",
245
+ "MessageInsight",
252
246
  "MessageMetadata",
253
247
  "AgentLifecycleData",
254
248
  "MemorySessionStorage",
255
249
  "MongoDBSessionStorage",
256
250
  "history_message_to_message_data",
257
251
  "message_data_to_history_message",
258
-
259
252
  # File storage implementations (consolidated)
260
253
  "FileStorageInterface",
261
254
  "MetadataStorageInterface",
262
- "FileMetadata",
255
+ "FileMetadata",
263
256
  "LocalFileStorage",
264
257
  "S3FileStorage",
265
258
  "MinIOFileStorage",
266
259
  "S3_AVAILABLE",
267
260
  "MINIO_AVAILABLE",
268
-
269
261
  # File system management (consolidated)
270
262
  "FileStorageManager",
271
- "FileStorageFactory",
263
+ "FileStorageFactory",
272
264
  "process_file_inputs",
273
265
  "get_file_processing_summary",
274
266
  "FileInputMixin",
275
-
276
267
  # Server
277
268
  "app",
278
269
  "start_server",
279
-
280
270
  # Utilities
281
271
  "get_deno_command",
282
-
283
272
  # Convenience functions
284
273
  "create_basic_agent_server",
285
274
  ]
286
275
 
276
+
287
277
  # Quick start function for convenience
288
278
  def create_basic_agent_server(
289
- agent_class: type[AgentInterface],
290
- host: str = "0.0.0.0",
291
- port: int = 8000,
292
- reload: bool = False
279
+ agent_class: type[AgentInterface], host: str = "0.0.0.0", port: int = 8000, reload: bool = False
293
280
  ) -> None:
294
281
  """
295
282
  Quick start function to create and run an agent server.
296
-
283
+
297
284
  This function allows external projects to quickly start an agent server
298
285
  without needing to create their own server.py file or set environment variables.
299
-
286
+
300
287
  Args:
301
288
  agent_class: The agent class that implements AgentInterface
302
289
  host: Host to bind the server to (default: "0.0.0.0")
303
290
  port: Port to run the server on (default: 8000)
304
291
  reload: Whether to enable auto-reload for development (default: False)
305
- Note: When reload=True, the agent class is temporarily stored in an
292
+ Note: When reload=True, the agent class is temporarily stored in an
306
293
  environment variable to survive module reloads.
307
-
294
+
308
295
  Returns:
309
296
  None (starts the server and blocks)
310
-
297
+
311
298
  Raises:
312
299
  ImportError: If uvicorn is not available
313
300
  ValueError: If agent_class does not implement AgentInterface
314
-
301
+
315
302
  Example:
316
303
  >>> from agent_framework import create_basic_agent_server, AgentInterface
317
304
  >>> from my_agent import MyAgent
@@ -323,17 +310,16 @@ def create_basic_agent_server(
323
310
  raise ImportError(
324
311
  "uvicorn is required to run the server. Install it with: uv add uvicorn"
325
312
  ) from e
326
-
313
+
327
314
  # Validate that agent_class implements AgentInterface
328
315
  if not issubclass(agent_class, AgentInterface):
329
- raise ValueError(
330
- f"agent_class must implement AgentInterface, got {agent_class.__name__}"
331
- )
332
-
316
+ raise ValueError(f"agent_class must implement AgentInterface, got {agent_class.__name__}")
317
+
333
318
  # Store the agent class globally for immediate use
334
319
  from .web import server
320
+
335
321
  server._GLOBAL_AGENT_CLASS = agent_class
336
-
322
+
337
323
  # If reload is enabled, also store in environment variable to survive reloads
338
324
  # We use the class's module and name to recreate the import path
339
325
  if reload:
@@ -341,37 +327,32 @@ def create_basic_agent_server(
341
327
  class_name = agent_class.__name__
342
328
  agent_class_path = f"{module_name}:{class_name}"
343
329
  os.environ["AGENT_CLASS_PATH"] = agent_class_path
344
- logger.info(f"[create_basic_agent_server] Reload enabled. Set AGENT_CLASS_PATH={agent_class_path}")
345
-
346
- logger.info(f"[create_basic_agent_server] Starting server for {agent_class.__name__} on {host}:{port}")
330
+ logger.info(
331
+ f"[create_basic_agent_server] Reload enabled. Set AGENT_CLASS_PATH={agent_class_path}"
332
+ )
333
+
334
+ logger.info(
335
+ f"[create_basic_agent_server] Starting server for {agent_class.__name__} on {host}:{port}"
336
+ )
347
337
  logger.info(f"[create_basic_agent_server] Reload: {reload}")
348
338
 
349
339
  # Ensure AGENT_HOST and AGENT_PORT are in the environment so that
350
340
  # subprocesses (e.g. skill scripts via ShellTool) can reach this server.
351
341
  os.environ["AGENT_HOST"] = host
352
342
  os.environ["AGENT_PORT"] = str(port)
353
-
343
+
354
344
  # When reload=True, uvicorn requires an import string, not the app object directly
355
345
  if reload:
356
346
  # Use the agent_framework.web.server:app import string for reload mode
357
- uvicorn.run(
358
- "agent_framework.web.server:app",
359
- host=host,
360
- port=port,
361
- reload=reload
362
- )
347
+ uvicorn.run("agent_framework.web.server:app", host=host, port=port, reload=reload)
363
348
  else:
364
349
  # Import the app after setting the global variable for non-reload mode
365
350
  from .web.server import app
351
+
366
352
  # For non-reload mode, we can pass the app object directly
367
- uvicorn.run(
368
- app,
369
- host=host,
370
- port=port,
371
- reload=reload
372
- )
353
+ uvicorn.run(app, host=host, port=port, reload=reload)
373
354
 
374
355
 
375
356
  # Run auto-setup when package is imported
376
357
  # This ensures Playwright browsers and Deno are installed before any async tools need them
377
- _auto_setup_dependencies()
358
+ _auto_setup_dependencies()
@@ -11,6 +11,7 @@ logger = logging.getLogger(__name__)
11
11
 
12
12
  class A2ATaskProviderError(Exception):
13
13
  """Base exception for task provider errors."""
14
+
14
15
  def __init__(self, message: str, code: int = -32603):
15
16
  super().__init__(message)
16
17
  self.code = code
@@ -18,6 +19,7 @@ class A2ATaskProviderError(Exception):
18
19
 
19
20
  class TaskNotFoundError(A2ATaskProviderError):
20
21
  """Raised when a task ID is not found."""
22
+
21
23
  def __init__(self, task_id: str):
22
24
  super().__init__(f"Task not found: {task_id}", code=-32001)
23
25
  self.task_id = task_id
@@ -25,6 +27,7 @@ class TaskNotFoundError(A2ATaskProviderError):
25
27
 
26
28
  class TaskNotCancelableError(A2ATaskProviderError):
27
29
  """Raised when trying to cancel a task in a terminal state."""
30
+
28
31
  def __init__(self, task_id: str, current_state: str):
29
32
  super().__init__(
30
33
  f"Task {task_id} is in terminal state '{current_state}' and cannot be canceled",
@@ -36,6 +39,7 @@ class TaskNotCancelableError(A2ATaskProviderError):
36
39
 
37
40
  class TaskTerminalStateError(A2ATaskProviderError):
38
41
  """Raised when trying to update a task already in a terminal state."""
42
+
39
43
  def __init__(self, task_id: str, current_state: str):
40
44
  super().__init__(
41
45
  f"Task {task_id} is in terminal state '{current_state}' and cannot be modified",
@@ -48,7 +48,6 @@ class AgentCardBuilder:
48
48
  }
49
49
  return card
50
50
 
51
-
52
51
  def _resolve_url(
53
52
  self,
54
53
  injected_url: str | None = None,
@@ -9,12 +9,42 @@ from typing import Any
9
9
 
10
10
  logger = logging.getLogger(__name__)
11
11
 
12
- _STOP_WORDS = frozenset({
13
- "the", "and", "for", "with", "from", "that", "this", "are", "was",
14
- "will", "can", "has", "have", "been", "not", "but", "all", "any",
15
- "each", "more", "also", "into", "over", "such", "than", "its",
16
- "about", "between", "through", "during", "before", "after",
17
- })
12
+ _STOP_WORDS = frozenset(
13
+ {
14
+ "the",
15
+ "and",
16
+ "for",
17
+ "with",
18
+ "from",
19
+ "that",
20
+ "this",
21
+ "are",
22
+ "was",
23
+ "will",
24
+ "can",
25
+ "has",
26
+ "have",
27
+ "been",
28
+ "not",
29
+ "but",
30
+ "all",
31
+ "any",
32
+ "each",
33
+ "more",
34
+ "also",
35
+ "into",
36
+ "over",
37
+ "such",
38
+ "than",
39
+ "its",
40
+ "about",
41
+ "between",
42
+ "through",
43
+ "during",
44
+ "before",
45
+ "after",
46
+ }
47
+ )
18
48
 
19
49
 
20
50
  class AgentCardSkillBuilder:
@@ -85,12 +115,14 @@ class AgentCardSkillBuilder:
85
115
  joined = "; ".join(descriptions)
86
116
  description = self._truncate_description(joined, len(framework_skills))
87
117
 
88
- return [{
89
- "id": "framework-capabilities",
90
- "name": "Framework Capabilities",
91
- "description": description,
92
- "tags": names,
93
- }]
118
+ return [
119
+ {
120
+ "id": "framework-capabilities",
121
+ "name": "Framework Capabilities",
122
+ "description": description,
123
+ "tags": names,
124
+ }
125
+ ]
94
126
  except Exception:
95
127
  logger.warning("Failed to build framework skill from registry")
96
128
  return [self._make_default_framework_skill()]
@@ -108,12 +140,14 @@ class AgentCardSkillBuilder:
108
140
 
109
141
  result = []
110
142
  for server_key in mcp_params:
111
- result.append({
112
- "id": f"mcp-{server_key}",
113
- "name": f"MCP: {server_key}",
114
- "description": f"MCP server: {server_key}",
115
- "tags": ["mcp", server_key],
116
- })
143
+ result.append(
144
+ {
145
+ "id": f"mcp-{server_key}",
146
+ "name": f"MCP: {server_key}",
147
+ "description": f"MCP server: {server_key}",
148
+ "tags": ["mcp", server_key],
149
+ }
150
+ )
117
151
  return result
118
152
 
119
153
  def _build_tool_skills(self, agent_instance: Any) -> list[dict]:
@@ -128,16 +162,16 @@ class AgentCardSkillBuilder:
128
162
  for tool in agent_tools:
129
163
  try:
130
164
  tool_name = (
131
- getattr(tool, "__name__", None)
132
- or getattr(tool, "name", None)
133
- or str(tool)
165
+ getattr(tool, "__name__", None) or getattr(tool, "name", None) or str(tool)
166
+ )
167
+ result.append(
168
+ {
169
+ "id": f"tool-{tool_name}",
170
+ "name": tool_name,
171
+ "description": f"Tool: {tool_name}",
172
+ "tags": ["tool", tool_name],
173
+ }
134
174
  )
135
- result.append({
136
- "id": f"tool-{tool_name}",
137
- "name": tool_name,
138
- "description": f"Tool: {tool_name}",
139
- "tags": ["tool", tool_name],
140
- })
141
175
  except Exception:
142
176
  logger.warning("Failed to build skill for tool %s", tool)
143
177
  return result
@@ -192,9 +226,7 @@ class AgentCardSkillBuilder:
192
226
  break
193
227
  return tags
194
228
 
195
- def _truncate_description(
196
- self, description: str, total_skills: int = 0
197
- ) -> str:
229
+ def _truncate_description(self, description: str, total_skills: int = 0) -> str:
198
230
  """Truncates description to MAX_FRAMEWORK_DESC_LENGTH with suffix.
199
231
 
200
232
  Args: