agent-framework-lib 0.8.7.post5__tar.gz → 0.8.7.post7__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 (326) hide show
  1. {agent_framework_lib-0.8.7.post5/agent_framework_lib.egg-info → agent_framework_lib-0.8.7.post7}/PKG-INFO +2 -1
  2. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/code_delivery/__init__.py +9 -1
  3. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/code_delivery/audit.py +22 -0
  4. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/code_delivery/config.py +99 -3
  5. agent_framework_lib-0.8.7.post7/agent_framework/code_delivery/crypto.py +149 -0
  6. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/code_delivery/git_provider.py +44 -1
  7. agent_framework_lib-0.8.7.post7/agent_framework/code_delivery/herdr_client.py +355 -0
  8. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/code_delivery/orchestrator.py +352 -9
  9. agent_framework_lib-0.8.7.post7/agent_framework/code_delivery/store.py +408 -0
  10. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/code_delivery/tools.py +31 -2
  11. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/base_agent.py +52 -1
  12. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/__init__.py +9 -2
  13. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/scripts/create_and_register.py +7 -0
  14. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/chart/SKILL.md +27 -0
  15. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +18 -1
  16. agent_framework_lib-0.8.7.post7/agent_framework/skills/builtin/skills/chart/vendor_chart.umd.min.js +20 -0
  17. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/code_delivery/SKILL.md +21 -8
  18. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +60 -27
  19. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/image_gen/create_image.py +92 -19
  20. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +33 -5
  21. agent_framework_lib-0.8.7.post7/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +437 -0
  22. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/shell_tool.py +68 -7
  23. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/configuration.md +75 -0
  24. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/server.py +224 -0
  25. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7/agent_framework_lib.egg-info}/PKG-INFO +2 -1
  26. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework_lib.egg-info/SOURCES.txt +3 -0
  27. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework_lib.egg-info/requires.txt +1 -0
  28. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/configuration.md +75 -0
  29. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/pyproject.toml +4 -1
  30. agent_framework_lib-0.8.7.post5/agent_framework/code_delivery/herdr_client.py +0 -215
  31. agent_framework_lib-0.8.7.post5/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +0 -179
  32. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/ARCHITECTURE.md +0 -0
  33. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/LICENSE +0 -0
  34. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/MANIFEST.in +0 -0
  35. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/README.md +0 -0
  36. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/__init__.py +0 -0
  37. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/__init__.py +0 -0
  38. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/base.py +0 -0
  39. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/__init__.py +0 -0
  40. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/a2a_router.py +0 -0
  41. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
  42. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
  43. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +0 -0
  44. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
  45. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/sse_wrapper.py +0 -0
  46. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/endpoints/translation_layer.py +0 -0
  47. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/models.py +0 -0
  48. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/providers/__init__.py +0 -0
  49. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/providers/elasticsearch_provider.py +0 -0
  50. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/a2a/providers/postgres_provider.py +0 -0
  51. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/capabilities/__init__.py +0 -0
  52. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/capabilities/resolver.py +0 -0
  53. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/code_delivery/models.py +0 -0
  54. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/__init__.py +0 -0
  55. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/activity_formatter.py +0 -0
  56. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/agent_interface.py +0 -0
  57. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/agent_provider.py +0 -0
  58. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/context_budget.py +0 -0
  59. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/context_summarizer.py +0 -0
  60. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/elasticsearch_config_provider.py +0 -0
  61. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/execution_controller.py +0 -0
  62. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/implementation_validator.py +0 -0
  63. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/interruption_message.py +0 -0
  64. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/knowledge_state.py +0 -0
  65. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/loop_detector.py +0 -0
  66. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/model_clients.py +0 -0
  67. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/model_config.py +0 -0
  68. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/model_router.py +0 -0
  69. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/models.py +0 -0
  70. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/prompt_builder.py +0 -0
  71. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/provider_calibration.py +0 -0
  72. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/scratchpad_compressor.py +0 -0
  73. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/scratchpad_serializer.py +0 -0
  74. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/state_manager.py +0 -0
  75. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/step_display_config.py +0 -0
  76. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/core/streaming_parts_accumulator.py +0 -0
  77. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/implementations/__init__.py +0 -0
  78. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/implementations/budget_aware_agent.py +0 -0
  79. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/implementations/llamaindex_agent.py +0 -0
  80. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/implementations/llamaindex_memory_adapter.py +0 -0
  81. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/implementations/microsoft_agent.py +0 -0
  82. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/__init__.py +0 -0
  83. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/agent_mixin.py +0 -0
  84. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/base.py +0 -0
  85. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/config.py +0 -0
  86. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/hypothesis_engine.py +0 -0
  87. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/implicit_feedback.py +0 -0
  88. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/manager.py +0 -0
  89. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/personalization.py +0 -0
  90. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/providers/__init__.py +0 -0
  91. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/providers/graphiti_provider.py +0 -0
  92. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/providers/memori_provider.py +0 -0
  93. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/response_lessons.py +0 -0
  94. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/tools.py +0 -0
  95. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/memory/work_patterns.py +0 -0
  96. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/__init__.py +0 -0
  97. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/api_timing_tracker.py +0 -0
  98. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +0 -0
  99. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/elasticsearch_logging.py +0 -0
  100. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/error_handling.py +0 -0
  101. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/error_logging.py +0 -0
  102. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/llm_auto_instrumentor.py +0 -0
  103. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/llm_metrics.py +0 -0
  104. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
  105. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
  106. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/metrics_aggregator.py +0 -0
  107. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/metrics_config.py +0 -0
  108. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/observability_manager.py +0 -0
  109. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/otel_instrumentor.py +0 -0
  110. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/otel_logging_handler.py +0 -0
  111. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
  112. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/otel_setup.py +0 -0
  113. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/performance_monitor.py +0 -0
  114. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/progress_tracker.py +0 -0
  115. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/resource_manager.py +0 -0
  116. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
  117. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
  118. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/timing_tracker.py +0 -0
  119. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/token_counter.py +0 -0
  120. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/monitoring/tracing_context.py +0 -0
  121. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/notifications/__init__.py +0 -0
  122. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/notifications/hub.py +0 -0
  123. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/notifications/webhook_notifier.py +0 -0
  124. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/processing/__init__.py +0 -0
  125. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/processing/ai_content_management.py +0 -0
  126. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/processing/markdown_converter.py +0 -0
  127. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/processing/multimodal_integration.py +0 -0
  128. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/processing/rich_content_validation.py +0 -0
  129. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/py.typed +0 -0
  130. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/security/__init__.py +0 -0
  131. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/security/secret_redactor.py +0 -0
  132. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/security/shell_env.py +0 -0
  133. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/session/__init__.py +0 -0
  134. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/session/elasticsearch_session_storage.py +0 -0
  135. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/session/session_storage.py +0 -0
  136. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/__init__.py +0 -0
  137. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/agent_mixin.py +0 -0
  138. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/base.py +0 -0
  139. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
  140. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/scripts/register_to_storage.py +0 -0
  141. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
  142. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/code_format/format_python.py +0 -0
  143. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
  144. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/csv/create_csv.py +0 -0
  145. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/csv/read_csv.py +0 -0
  146. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/csv/transform_csv.py +0 -0
  147. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
  148. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +0 -0
  149. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +0 -0
  150. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
  151. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +0 -0
  152. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
  153. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
  154. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/excel/create_excel.py +0 -0
  155. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
  156. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/file/create_file.py +0 -0
  157. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/file/list_files.py +0 -0
  158. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/file/read_file.py +0 -0
  159. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/file_access/SKILL.md +0 -0
  160. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/file_access/download_to_local.py +0 -0
  161. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
  162. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
  163. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
  164. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/image_gen/generate_image.py +0 -0
  165. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
  166. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +0 -0
  167. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +0 -0
  168. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +0 -0
  169. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -0
  170. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +0 -0
  171. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/powerpoint/templates/Big Data Infographics.pptx +0 -0
  172. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/powerpoint/templates/Executive Design Pitch Deck.pptx +0 -0
  173. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/powerpoint/templates/Management Consulting Toolkit.pptx +0 -0
  174. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/powerpoint/templates/__init__.py +0 -0
  175. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/powerpoint/templates/generate_templates.py +0 -0
  176. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +0 -0
  177. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/skill_creator/skill_api.py +0 -0
  178. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
  179. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/table/table_to_image.py +0 -0
  180. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
  181. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
  182. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
  183. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/builtin/skills/word/create_word.py +0 -0
  184. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/custom_skill_manager.py +0 -0
  185. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/discovery_prompt.py +0 -0
  186. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/markdown_loader.py +0 -0
  187. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/skills/tools.py +0 -0
  188. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/storage/__init__.py +0 -0
  189. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/storage/file_storages.py +0 -0
  190. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/storage/file_system_management.py +0 -0
  191. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/storage/storage_optimizer.py +0 -0
  192. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/subagents/__init__.py +0 -0
  193. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/subagents/executor.py +0 -0
  194. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/subagents/message_injector.py +0 -0
  195. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/subagents/message_queue.py +0 -0
  196. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/subagents/retrigger.py +0 -0
  197. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/subagents/spawn_tool.py +0 -0
  198. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/__init__.py +0 -0
  199. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/activity_callback.py +0 -0
  200. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/adaptive_pdf_css.py +0 -0
  201. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/base.py +0 -0
  202. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/html_content_analyzer.py +0 -0
  203. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/multimodal_tools.py +0 -0
  204. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/pdf_image_scaler.py +0 -0
  205. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/sizing_config.py +0 -0
  206. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/web_fetch_tool.py +0 -0
  207. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/tools/web_search_tool.py +0 -0
  208. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/utils/__init__.py +0 -0
  209. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/utils/path_utils.py +0 -0
  210. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/utils/post_install.py +0 -0
  211. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/utils/session_title_generator.py +0 -0
  212. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/utils/source_detector.py +0 -0
  213. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/utils/special_blocks.py +0 -0
  214. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/__init__.py +0 -0
  215. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/admin_auth.py +0 -0
  216. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/admin_models.py +0 -0
  217. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/admin_router.py +0 -0
  218. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/admin_services.py +0 -0
  219. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/api_timing_middleware.py +0 -0
  220. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
  221. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
  222. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
  223. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
  224. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
  225. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/Dockerfile +0 -0
  226. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/GETTING_STARTED.md +0 -0
  227. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +0 -0
  228. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
  229. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/README.md +0 -0
  230. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
  231. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
  232. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/api-reference.md +0 -0
  233. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/docker-compose.yml +0 -0
  234. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/agent_example_multi_skills.py +0 -0
  235. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/agent_with_file_storage.py +0 -0
  236. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/agent_with_mcp.py +0 -0
  237. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/agent_with_memory.py +0 -0
  238. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/agent_with_memory_graphiti.py +0 -0
  239. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/agent_with_memory_hybrid.py +0 -0
  240. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/agent_with_memory_simple.py +0 -0
  241. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/custom_framework_agent.py +0 -0
  242. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/simple_agent.py +0 -0
  243. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/examples/skills_demo_agent.py +0 -0
  244. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/docs/installation-guide.md +0 -0
  245. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/documentation_generator.py +0 -0
  246. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/gitnexus_client.py +0 -0
  247. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/helper_agent.py +0 -0
  248. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/helper_ui.html +0 -0
  249. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/modern_ui.html +0 -0
  250. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
  251. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
  252. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/otel_tracing_middleware.py +0 -0
  253. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/skills_router.py +0 -0
  254. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/web/test_app.html +0 -0
  255. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/__init__.py +0 -0
  256. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/artefacts.py +0 -0
  257. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/client.py +0 -0
  258. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/config.py +0 -0
  259. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/context.py +0 -0
  260. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/cursor.py +0 -0
  261. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/memory.py +0 -0
  262. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/models.py +0 -0
  263. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/poller.py +0 -0
  264. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/preferences.py +0 -0
  265. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/router.py +0 -0
  266. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/session.py +0 -0
  267. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework/workspace/subscription.py +0 -0
  268. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
  269. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework_lib.egg-info/entry_points.txt +0 -0
  270. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/agent_framework_lib.egg-info/top_level.txt +0 -0
  271. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/A2A_GUIDE.md +0 -0
  272. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
  273. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/ARCHITECTURE_DIAGRAM.md +0 -0
  274. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
  275. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/CANCEL_AND_INTERRUPT_FRONTEND.md +0 -0
  276. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
  277. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/CREATING_AGENTS.md +0 -0
  278. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
  279. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/DEEPEVAL_TEST_REPORT.md +0 -0
  280. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/DOCKER_SETUP.md +0 -0
  281. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +0 -0
  282. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
  283. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/FILE_STORAGE_GUIDE.md +0 -0
  284. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/GETTING_STARTED.md +0 -0
  285. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/GITNEXUS_USER_GUIDE.md +0 -0
  286. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/HISTORY_MESSAGE_FORMAT.md +0 -0
  287. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
  288. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/MEMORY_INSTALLATION.md +0 -0
  289. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
  290. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/MULTIMODAL_TOOLS_GUIDE.md +0 -0
  291. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/OBSERVABILITY_GUIDE.md +0 -0
  292. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/PYPI_PUBLISHING.md +0 -0
  293. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/QA_STREAMING_LATENCY.md +0 -0
  294. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/SCREENSHOTS_GUIDE.md +0 -0
  295. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
  296. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/SSE_NOTIFICATIONS_GUIDE.md +0 -0
  297. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
  298. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
  299. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/WORKSPACE_INTEGRATION.md +0 -0
  300. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/api-reference.md +0 -0
  301. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/framework_audit_remarques.md +0 -0
  302. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/helper_agent.md +0 -0
  303. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/index.md +0 -0
  304. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/docs/installation-guide.md +0 -0
  305. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/README.md +0 -0
  306. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_context_budget_test.py +0 -0
  307. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_example_multi_skills.py +0 -0
  308. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_exemple_test.py +0 -0
  309. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_training_with_apo.py +0 -0
  310. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_with_custom_tools_file_storage.py +0 -0
  311. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_with_file_storage.py +0 -0
  312. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_with_mcp.py +0 -0
  313. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_with_memory_graphiti.py +0 -0
  314. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_with_memory_hybrid.py +0 -0
  315. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_with_memory_simple.py +0 -0
  316. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/agent_with_personalization.py +0 -0
  317. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/biagenttest.py +0 -0
  318. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/custom_framework_agent.py +0 -0
  319. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/dependencies/docker-compose.yaml +0 -0
  320. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/pyproject.toml +0 -0
  321. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/simple_agent.py +0 -0
  322. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/skills_demo_agent.py +0 -0
  323. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/test_work_patterns_live.py +0 -0
  324. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/examples/workspace_test_agent.py +0 -0
  325. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/setup.cfg +0 -0
  326. {agent_framework_lib-0.8.7.post5 → agent_framework_lib-0.8.7.post7}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-framework-lib
3
- Version: 0.8.7.post5
3
+ Version: 0.8.7.post7
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>
@@ -54,6 +54,7 @@ Requires-Dist: playwright>=1.56.0
54
54
  Requires-Dist: elasticsearch<9.0.0,>=8.11.0
55
55
  Requires-Dist: ddgs>=9.9.3
56
56
  Requires-Dist: httpx>=0.28.1
57
+ Requires-Dist: cryptography>=42.0.0
57
58
  Requires-Dist: beautifulsoup4>=4.12.0
58
59
  Requires-Dist: llama-index>=0.14.16
59
60
  Requires-Dist: llama-index-core>=0.14.16
@@ -16,7 +16,12 @@ from agent_framework.code_delivery.git_provider import (
16
16
  GitHubCLIProvider,
17
17
  GitProvider,
18
18
  )
19
- from agent_framework.code_delivery.herdr_client import HerdrClient
19
+ from agent_framework.code_delivery.herdr_client import (
20
+ HerdrClient,
21
+ HerdrLocalClient,
22
+ HerdrRemoteClient,
23
+ create_herdr_client,
24
+ )
20
25
  from agent_framework.code_delivery.models import (
21
26
  VALID_TRANSITIONS,
22
27
  CodingRun,
@@ -37,6 +42,9 @@ __all__ = [
37
42
  "GitHubCLIProvider",
38
43
  "GitProvider",
39
44
  "HerdrClient",
45
+ "HerdrLocalClient",
46
+ "HerdrRemoteClient",
47
+ "create_herdr_client",
40
48
  "RunState",
41
49
  "StateTransition",
42
50
  "VALID_TRANSITIONS",
@@ -105,6 +105,24 @@ class CodeDeliveryAuditLogger:
105
105
  self._index_prefix = index_prefix
106
106
  self._es_client: Any | None = None
107
107
  self._available = False
108
+ self._redactor: Any | None = None
109
+
110
+ def set_secret_values(self, values: list[str]) -> None:
111
+ """Install a redactor so secret values (e.g. the GitHub token) are masked
112
+ in every indexed document — git stdout, herdr payloads, errors, etc.
113
+
114
+ Called by the orchestrator whenever the per-session credential changes.
115
+ """
116
+ cleaned = [v for v in values if v]
117
+ if not cleaned:
118
+ self._redactor = None
119
+ return
120
+ try:
121
+ from agent_framework.security.secret_redactor import SecretRedactor
122
+
123
+ self._redactor = SecretRedactor(cleaned)
124
+ except Exception: # noqa: BLE001 — never break audit on redactor setup
125
+ self._redactor = None
108
126
 
109
127
  # ------------------------------------------------------------------
110
128
  # Lifecycle
@@ -310,6 +328,10 @@ class CodeDeliveryAuditLogger:
310
328
 
311
329
  async def _index(self, doc: dict[str, Any], event_type: str) -> None:
312
330
  """Index a document. Falls back to Python logging on failure."""
331
+ # Mask any secret values (GitHub token) before the doc leaves the process.
332
+ if self._redactor is not None and getattr(self._redactor, "active", False):
333
+ doc = self._redactor.redact_obj(doc)
334
+
313
335
  if self._available and self._es_client:
314
336
  try:
315
337
  await self._es_client.index(
@@ -19,10 +19,21 @@ logger = logging.getLogger(__name__)
19
19
 
20
20
 
21
21
  class HerdrConfig(BaseModel):
22
- """Connection settings for the Herdr substrate."""
22
+ """Connection settings for the Herdr substrate.
23
23
 
24
- base_url: str = Field("http://127.0.0.1:9876", description="Herdr API base URL")
25
- timeout: float = Field(120.0, description="Default request timeout in seconds")
24
+ Two modes:
25
+ - ``local`` (default): Uses the ``herdr`` CLI on PATH. Zero config.
26
+ - ``remote``: Uses HTTP when ``base_url`` is explicitly provided.
27
+ """
28
+
29
+ mode: Literal["local", "remote"] = Field(
30
+ "local", description="'local' uses herdr CLI, 'remote' uses HTTP API"
31
+ )
32
+ base_url: str = Field(
33
+ "http://127.0.0.1:9876",
34
+ description="Herdr HTTP API URL (only used in remote mode)",
35
+ )
36
+ timeout: float = Field(120.0, description="Timeout in seconds (CLI or HTTP)")
26
37
 
27
38
 
28
39
  class GitHubConfig(BaseModel):
@@ -56,6 +67,85 @@ class CodeDeliveryConfig(BaseModel):
56
67
  retry_on_verify_fail: int = Field(0, description="Retries on verify failure")
57
68
 
58
69
 
70
+ class RepoEntry(BaseModel):
71
+ """A single repository the agent is allowed (or not) to deliver to.
72
+
73
+ ``repo`` is the canonical ``owner/name`` slug. ``enabled`` is the per-repo
74
+ on/off toggle enforced by the orchestrator before any push/PR.
75
+ """
76
+
77
+ repo: str = Field(..., description="Repository slug, e.g. 'octocat/hello-world'")
78
+ enabled: bool = Field(True, description="Whether code delivery to this repo is allowed")
79
+ default_base_branch: str = Field(
80
+ "", description="Base branch override for this repo (empty = use github default)"
81
+ )
82
+
83
+
84
+ class GitHubAuthMeta(BaseModel):
85
+ """Non-secret metadata about a stored GitHub credential.
86
+
87
+ The token itself is never carried here — only what is safe to display.
88
+ """
89
+
90
+ login: str = Field("", description="Authenticated GitHub login")
91
+ scopes: list[str] = Field(default_factory=list, description="Token scopes")
92
+ token_suffix: str = Field("", description="Last 4 chars of the token, for recognition")
93
+ validated_at: str = Field("", description="ISO timestamp of last successful validation")
94
+
95
+
96
+ class ResolvedCodeDeliveryConfig(BaseModel):
97
+ """Per-session, fully-resolved code-delivery configuration.
98
+
99
+ Produced by ``CodeDeliveryStore.resolve(user_id, session_id)`` after merging
100
+ env defaults < user config < session override. Unlike ``CodeDeliveryConfig``
101
+ this carries the *decrypted* GitHub token and the repo allowlist, so it is a
102
+ short-lived in-memory object that must never be logged or persisted as-is.
103
+ """
104
+
105
+ # Identity
106
+ user_id: str | None = None
107
+ session_id: str | None = None
108
+
109
+ # Master feature toggle (default-deny friendly: feature can be turned off)
110
+ enabled: bool = Field(True, description="Master on/off for code delivery")
111
+
112
+ # Resolved sub-configs (reuse existing models)
113
+ herdr: HerdrConfig = Field(default_factory=HerdrConfig)
114
+ github: GitHubConfig = Field(default_factory=GitHubConfig)
115
+ backend: BackendConfig = Field(default_factory=BackendConfig)
116
+ max_concurrent_runs: int = 2
117
+ verify_command: str = ""
118
+ retry_on_verify_fail: int = 0
119
+
120
+ # Credentials + allowlist (sensitive)
121
+ github_token: str | None = Field(
122
+ None, description="Decrypted GitHub token (transient — never persist/log)"
123
+ )
124
+ github_auth: GitHubAuthMeta | None = Field(
125
+ None, description="Non-secret metadata about the stored credential"
126
+ )
127
+ repos: list[RepoEntry] = Field(default_factory=list, description="Repo allowlist")
128
+
129
+ def base_config(self) -> CodeDeliveryConfig:
130
+ """Return the non-secret ``CodeDeliveryConfig`` slice for orchestrator infra."""
131
+ return CodeDeliveryConfig(
132
+ herdr=self.herdr,
133
+ github=self.github,
134
+ backend=self.backend,
135
+ max_concurrent_runs=self.max_concurrent_runs,
136
+ verify_command=self.verify_command,
137
+ retry_on_verify_fail=self.retry_on_verify_fail,
138
+ )
139
+
140
+ def find_repo(self, repo_slug: str) -> RepoEntry | None:
141
+ """Look up an allowlist entry by slug (case-insensitive)."""
142
+ target = repo_slug.lower()
143
+ for entry in self.repos:
144
+ if entry.repo.lower() == target:
145
+ return entry
146
+ return None
147
+
148
+
59
149
  def _config_from_env() -> dict[str, Any]:
60
150
  """Build a config dict from environment variables."""
61
151
  cfg: dict[str, Any] = {}
@@ -64,6 +154,9 @@ def _config_from_env() -> dict[str, Any]:
64
154
  herdr: dict[str, Any] = {}
65
155
  if v := os.environ.get("HERDR_BASE_URL"):
66
156
  herdr["base_url"] = v
157
+ herdr["mode"] = "remote" # explicit URL → remote mode
158
+ if v := os.environ.get("HERDR_MODE"):
159
+ herdr["mode"] = v # explicit override
67
160
  if v := os.environ.get("HERDR_TIMEOUT"):
68
161
  herdr["timeout"] = float(v)
69
162
  if herdr:
@@ -138,7 +231,10 @@ def load_config(path: Path | None = None) -> CodeDeliveryConfig:
138
231
  __all__ = [
139
232
  "BackendConfig",
140
233
  "CodeDeliveryConfig",
234
+ "GitHubAuthMeta",
141
235
  "GitHubConfig",
142
236
  "HerdrConfig",
237
+ "RepoEntry",
238
+ "ResolvedCodeDeliveryConfig",
143
239
  "load_config",
144
240
  ]
@@ -0,0 +1,149 @@
1
+ """Token-at-rest encryption for code-delivery credentials.
2
+
3
+ GitHub tokens (PAT / fine-grained) are stored encrypted in the per-user/session
4
+ config store. Encryption is symmetric (Fernet, AES-128-CBC + HMAC) with a key
5
+ read from ``CODE_DELIVERY_SECRET_KEY``.
6
+
7
+ Security posture — **fail closed**:
8
+ - Storing a token without a valid key raises ``TokenCryptoError`` so a plaintext
9
+ secret is never persisted.
10
+ - Reading a value that is not a valid ciphertext (e.g. legacy plaintext) raises
11
+ ``TokenCryptoError`` rather than returning the unverified bytes.
12
+
13
+ The key is a url-safe base64 32-byte Fernet key. Generate one with::
14
+
15
+ python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
16
+ """
17
+
18
+ from __future__ import annotations
19
+
20
+ import logging
21
+ import os
22
+
23
+ logger = logging.getLogger(__name__)
24
+
25
+ _ENV_KEY = "CODE_DELIVERY_SECRET_KEY"
26
+
27
+ #: Prefix marking a value as code-delivery Fernet ciphertext. Lets us detect
28
+ #: (and refuse) accidental plaintext without attempting a decrypt.
29
+ _CIPHER_PREFIX = "cdf1:"
30
+
31
+
32
+ class TokenCryptoError(Exception):
33
+ """Raised when encryption/decryption cannot be performed safely."""
34
+
35
+
36
+ def _load_key() -> bytes | None:
37
+ """Return the raw Fernet key from the environment, or None if unset."""
38
+ raw = os.environ.get(_ENV_KEY, "").strip()
39
+ if not raw:
40
+ return None
41
+ return raw.encode("utf-8")
42
+
43
+
44
+ def encryption_available() -> bool:
45
+ """True if a usable encryption key is configured.
46
+
47
+ Endpoints can surface this so operators know the feature is disabled when
48
+ no key is set, instead of failing only at write time.
49
+ """
50
+ key = _load_key()
51
+ if not key:
52
+ return False
53
+ try:
54
+ from cryptography.fernet import Fernet
55
+
56
+ Fernet(key) # validates key shape
57
+ return True
58
+ except Exception as exc: # noqa: BLE001 — invalid key == unavailable
59
+ logger.warning("%s is set but invalid: %s", _ENV_KEY, exc)
60
+ return False
61
+
62
+
63
+ def encrypt_token(plaintext: str) -> str:
64
+ """Encrypt a token for storage.
65
+
66
+ Args:
67
+ plaintext: The raw GitHub token.
68
+
69
+ Returns:
70
+ A prefixed, url-safe ciphertext string safe to persist.
71
+
72
+ Raises:
73
+ TokenCryptoError: If no valid key is configured (fail closed) or the
74
+ input is empty.
75
+ """
76
+ if not plaintext:
77
+ raise TokenCryptoError("Refusing to encrypt an empty token")
78
+
79
+ key = _load_key()
80
+ if not key:
81
+ raise TokenCryptoError(
82
+ f"{_ENV_KEY} is not set — cannot store GitHub credentials encrypted. "
83
+ "Generate a key with `python -c \"from cryptography.fernet import Fernet; "
84
+ 'print(Fernet.generate_key().decode())"` and set it in the environment.'
85
+ )
86
+ try:
87
+ from cryptography.fernet import Fernet
88
+
89
+ token = Fernet(key).encrypt(plaintext.encode("utf-8")).decode("utf-8")
90
+ except TokenCryptoError:
91
+ raise
92
+ except Exception as exc: # noqa: BLE001
93
+ raise TokenCryptoError(f"Encryption failed: {exc}") from exc
94
+ return f"{_CIPHER_PREFIX}{token}"
95
+
96
+
97
+ def decrypt_token(ciphertext: str) -> str:
98
+ """Decrypt a stored token.
99
+
100
+ Args:
101
+ ciphertext: A value produced by :func:`encrypt_token`.
102
+
103
+ Returns:
104
+ The original plaintext token.
105
+
106
+ Raises:
107
+ TokenCryptoError: If no key is configured, the value is not recognised
108
+ ciphertext (e.g. legacy plaintext), or decryption/verification fails.
109
+ """
110
+ if not ciphertext:
111
+ raise TokenCryptoError("Refusing to decrypt an empty value")
112
+ if not ciphertext.startswith(_CIPHER_PREFIX):
113
+ raise TokenCryptoError(
114
+ "Stored value is not code-delivery ciphertext — refusing to use it "
115
+ "(plaintext or foreign format). Re-save the credential."
116
+ )
117
+
118
+ key = _load_key()
119
+ if not key:
120
+ raise TokenCryptoError(f"{_ENV_KEY} is not set — cannot decrypt credentials")
121
+
122
+ payload = ciphertext[len(_CIPHER_PREFIX) :]
123
+ try:
124
+ from cryptography.fernet import Fernet, InvalidToken
125
+
126
+ try:
127
+ return Fernet(key).decrypt(payload.encode("utf-8")).decode("utf-8")
128
+ except InvalidToken as exc:
129
+ raise TokenCryptoError(
130
+ "Decryption failed — key mismatch or corrupted ciphertext"
131
+ ) from exc
132
+ except TokenCryptoError:
133
+ raise
134
+ except Exception as exc: # noqa: BLE001
135
+ raise TokenCryptoError(f"Decryption failed: {exc}") from exc
136
+
137
+
138
+ def is_ciphertext(value: str | None) -> bool:
139
+ """True if *value* looks like code-delivery ciphertext."""
140
+ return bool(value) and value.startswith(_CIPHER_PREFIX)
141
+
142
+
143
+ __all__ = [
144
+ "TokenCryptoError",
145
+ "decrypt_token",
146
+ "encrypt_token",
147
+ "encryption_available",
148
+ "is_ciphertext",
149
+ ]
@@ -10,6 +10,8 @@ import asyncio
10
10
  import fnmatch
11
11
  import json
12
12
  import logging
13
+ import os
14
+ import re
13
15
  import shutil
14
16
  from abc import ABC, abstractmethod
15
17
  from typing import Any
@@ -21,6 +23,27 @@ logger = logging.getLogger(__name__)
21
23
 
22
24
  _DEFAULT_TIMEOUT = 30 # seconds per subprocess call
23
25
 
26
+ # owner/repo extraction from common remote URL shapes:
27
+ # git@github.com:owner/repo.git
28
+ # https://github.com/owner/repo.git
29
+ # ssh://git@github.com/owner/repo
30
+ _REMOTE_SLUG_RE = re.compile(
31
+ r"[:/](?P<owner>[^/:]+)/(?P<repo>[^/]+?)(?:\.git)?/?$"
32
+ )
33
+
34
+
35
+ def parse_repo_slug(remote_url: str) -> str | None:
36
+ """Extract the canonical ``owner/repo`` slug from a git remote URL.
37
+
38
+ Returns ``None`` if the URL cannot be parsed.
39
+ """
40
+ if not remote_url:
41
+ return None
42
+ match = _REMOTE_SLUG_RE.search(remote_url.strip())
43
+ if not match:
44
+ return None
45
+ return f"{match.group('owner')}/{match.group('repo')}"
46
+
24
47
 
25
48
  class GitProviderError(Exception):
26
49
  """Raised when a git/provider operation fails."""
@@ -76,10 +99,21 @@ class GitProvider(ABC):
76
99
  class GitHubCLIProvider(GitProvider):
77
100
  """GitHub provider using the ``gh`` and ``git`` CLIs."""
78
101
 
79
- def __init__(self, config: GitHubConfig) -> None:
102
+ def __init__(
103
+ self, config: GitHubConfig, extra_env: dict[str, str] | None = None
104
+ ) -> None:
80
105
  self._config = config
106
+ self._extra_env: dict[str, str] = dict(extra_env or {})
81
107
  self._ensure_binaries()
82
108
 
109
+ def set_extra_env(self, extra_env: dict[str, str] | None) -> None:
110
+ """Set env vars (e.g. ``GH_TOKEN``) injected into every git/gh subprocess.
111
+
112
+ Called per session by the orchestrator so each user's GitHub credential
113
+ scopes only their own runs.
114
+ """
115
+ self._extra_env = dict(extra_env or {})
116
+
83
117
  # ------------------------------------------------------------------
84
118
  # Public API
85
119
  # ------------------------------------------------------------------
@@ -207,12 +241,20 @@ class GitHubCLIProvider(GitProvider):
207
241
  cmd_str = " ".join(cmd)
208
242
  logger.debug("Running: %s (cwd=%s)", cmd_str, cwd)
209
243
 
244
+ # Inject the per-session credential env (GH_TOKEN/GITHUB_TOKEN) and
245
+ # disable interactive prompts so a missing/bad token fails fast.
246
+ env = {**os.environ}
247
+ if self._extra_env:
248
+ env.update(self._extra_env)
249
+ env.setdefault("GIT_TERMINAL_PROMPT", "0")
250
+
210
251
  try:
211
252
  proc = await asyncio.create_subprocess_exec(
212
253
  *cmd,
213
254
  cwd=cwd,
214
255
  stdout=asyncio.subprocess.PIPE,
215
256
  stderr=asyncio.subprocess.PIPE,
257
+ env=env,
216
258
  )
217
259
  stdout_bytes, stderr_bytes = await asyncio.wait_for(proc.communicate(), timeout=timeout)
218
260
  except asyncio.TimeoutError:
@@ -258,4 +300,5 @@ __all__ = [
258
300
  "GitHubCLIProvider",
259
301
  "GitProvider",
260
302
  "GitProviderError",
303
+ "parse_repo_slug",
261
304
  ]