agent-framework-lib 0.8.1.post7__tar.gz → 0.8.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_framework_lib-0.8.1.post7/agent_framework_lib.egg-info → agent_framework_lib-0.8.2}/PKG-INFO +47 -6
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/README.md +44 -5
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/__init__.py +2 -2
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/scripts/create_and_register.py +1 -1
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/file_access/SKILL.md +55 -1
- agent_framework_lib-0.8.2/agent_framework/skills/builtin/skills/file_access/download_to_local.py +128 -0
- agent_framework_lib-0.8.2/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +386 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/README.md +44 -5
- agent_framework_lib-0.8.2/agent_framework/web/gitnexus_client.py +369 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/helper_agent.py +633 -14
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/server.py +94 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/client.py +4 -5
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/router.py +0 -5
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2/agent_framework_lib.egg-info}/PKG-INFO +47 -6
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework_lib.egg-info/SOURCES.txt +4 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework_lib.egg-info/requires.txt +3 -0
- agent_framework_lib-0.8.2/docs/GITNEXUS_USER_GUIDE.md +386 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/pyproject.toml +6 -1
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/ARCHITECTURE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/LICENSE +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/MANIFEST.in +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/base.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/a2a_router.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/sse_wrapper.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/endpoints/translation_layer.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/models.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/providers/elasticsearch_provider.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/a2a/providers/postgres_provider.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/capabilities/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/capabilities/resolver.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/chart_generation/llm_refinement_loop.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/activity_formatter.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/agent_interface.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/agent_provider.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/base_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/context_budget.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/context_summarizer.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/elasticsearch_config_provider.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/implementation_validator.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/knowledge_state.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/loop_detector.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/model_clients.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/model_config.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/model_router.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/models.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/provider_calibration.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/scratchpad_compressor.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/state_manager.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/step_display_config.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/core/streaming_parts_accumulator.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/implementations/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/implementations/budget_aware_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/implementations/llamaindex_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/implementations/llamaindex_memory_adapter.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/implementations/microsoft_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/base.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/config.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/manager.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/personalization.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/providers/graphiti_provider.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/providers/memori_provider.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/memory/tools.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/api_timing_tracker.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/elasticsearch_logging.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/error_handling.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/error_logging.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/llm_auto_instrumentor.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/llm_metrics.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/metrics_aggregator.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/metrics_config.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/observability_manager.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/otel_instrumentor.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/otel_logging_handler.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/otel_setup.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/performance_monitor.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/progress_tracker.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/resource_manager.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/timing_tracker.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/token_counter.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/monitoring/tracing_context.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/notifications/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/notifications/hub.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/processing/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/processing/ai_content_management.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/processing/markdown_converter.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/processing/multimodal_integration.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/processing/rich_content_validation.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/py.typed +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/session/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/session/elasticsearch_session_storage.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/session/session_storage.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/base.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/scripts/register_to_storage.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/chart/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/code_format/format_python.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/csv/create_csv.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/csv/read_csv.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/csv/transform_csv.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/excel/create_excel.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/file/create_file.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/file/list_files.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/file/read_file.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/image_gen/create_image.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/image_gen/generate_image.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/table/table_to_image.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/builtin/skills/word/create_word.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/custom_skill_manager.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/discovery_prompt.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/markdown_loader.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/skills/tools.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/storage/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/storage/file_storages.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/storage/file_system_management.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/storage/storage_optimizer.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/subagents/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/subagents/executor.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/subagents/message_injector.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/subagents/message_queue.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/subagents/retrigger.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/subagents/spawn_tool.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/activity_callback.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/adaptive_pdf_css.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/base.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/html_content_analyzer.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/multimodal_tools.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/pdf_image_scaler.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/shell_tool.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/sizing_config.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/web_fetch_tool.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/tools/web_search_tool.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/utils/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/utils/path_utils.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/utils/post_install.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/utils/session_title_generator.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/utils/source_detector.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/utils/special_blocks.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/admin_auth.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/admin_models.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/admin_router.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/admin_services.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/api_timing_middleware.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/Dockerfile +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/docker-compose.yml +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/agent_with_memory.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/documentation_generator.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/helper_ui.html +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/modern_ui.html +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/otel_tracing_middleware.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/skills_router.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/web/test_app.html +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/__init__.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/artefacts.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/config.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/context.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/cursor.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/memory.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/models.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/poller.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/preferences.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/session.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework/workspace/subscription.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework_lib.egg-info/entry_points.txt +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/agent_framework_lib.egg-info/top_level.txt +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/ARCHITECTURE_DIAGRAM.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/CUSTOM_SKILLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/FILE_STORAGE_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/HISTORY_MESSAGE_FORMAT.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/MULTIMODAL_TOOLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/OBSERVABILITY_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/PYPI_PUBLISHING.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/QA_STREAMING_LATENCY.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/SCREENSHOTS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/SSE_NOTIFICATIONS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/framework_audit_remarques.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/index.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/README.md +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_context_budget_test.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_exemple_test.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_training_with_apo.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_with_custom_tools_file_storage.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/agent_with_personalization.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/biagenttest.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/dependencies/docker-compose.yaml +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/pyproject.toml +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/examples/workspace_test_agent.py +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/setup.cfg +0 -0
- {agent_framework_lib-0.8.1.post7 → agent_framework_lib-0.8.2}/setup.py +0 -0
{agent_framework_lib-0.8.1.post7/agent_framework_lib.egg-info → agent_framework_lib-0.8.2}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-framework-lib
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2
|
|
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
|
-
- 🔍
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
- 🔍
|
|
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.
|
|
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.
|
|
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
|
|
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"
|
|
@@ -32,7 +32,7 @@ Example Usage:
|
|
|
32
32
|
create_basic_agent_server(MyAgent, port=8000)
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Version: 0.8.
|
|
35
|
+
Version: 0.8.2
|
|
36
36
|
Author: Cinco AI Team
|
|
37
37
|
License: MIT
|
|
38
38
|
"""
|
|
@@ -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.
|
|
91
|
+
__version__ = "0.8.2"
|
|
92
92
|
__author__ = "Cinco AI Team"
|
|
93
93
|
__license__ = "MIT"
|
|
94
94
|
__email__ = "sebastian@cinco.ai"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: file_access
|
|
3
|
-
description: "Get file paths and URLs for embedding
|
|
3
|
+
description: "Get file paths, download files from storage to local disk, and resolve URLs for embedding"
|
|
4
4
|
display_name: "Accès aux fichiers"
|
|
5
5
|
metadata:
|
|
6
6
|
config:
|
|
@@ -13,6 +13,10 @@ metadata:
|
|
|
13
13
|
- embed image
|
|
14
14
|
- image path
|
|
15
15
|
- file reference
|
|
16
|
+
- download file
|
|
17
|
+
- retrieve file
|
|
18
|
+
- get file
|
|
19
|
+
- file to local
|
|
16
20
|
requires:
|
|
17
21
|
bins:
|
|
18
22
|
- uv
|
|
@@ -20,6 +24,56 @@ metadata:
|
|
|
20
24
|
|
|
21
25
|
## File Access Instructions
|
|
22
26
|
|
|
27
|
+
This skill provides two capabilities:
|
|
28
|
+
1. **Resolve file paths** on the local filesystem
|
|
29
|
+
2. **Download files from storage** to the local disk (works with any backend: local, S3, MinIO, GCP)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 1. Download File from Storage to Local Disk
|
|
34
|
+
|
|
35
|
+
Download a file from the agent's file storage to a local directory. Use this when you have a `file_id` (e.g. from a previously generated file) and need the file on disk.
|
|
36
|
+
|
|
37
|
+
### Usage
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
uv run python -m agent_framework.skills.builtin.skills.file_access.download_to_local --file-id "8e0e7208-ad96-4815-b1d4-5387f58dc526" --target-dir "/tmp"
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Arguments
|
|
44
|
+
|
|
45
|
+
| Argument | Required | Description |
|
|
46
|
+
|----------|----------|-------------|
|
|
47
|
+
| `--file-id` | Yes | The file ID to download (UUID from storage) |
|
|
48
|
+
| `--target-dir` | No | Local directory to save the file (default: `/tmp`) |
|
|
49
|
+
|
|
50
|
+
### Output Format (stdout)
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{"status": "success", "file": "/tmp/bonnes_pratiques.pdf", "size_bytes": 45321}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Error Handling (stderr)
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{"status": "error", "message": "Failed to download 8e0e7208-...: HTTP 404 — File not found"}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Common Use Cases
|
|
63
|
+
|
|
64
|
+
#### Re-downloading a generated file to upload to workspace
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# 1. Download the file from storage to /tmp
|
|
68
|
+
uv run python -m agent_framework.skills.builtin.skills.file_access.download_to_local --file-id "8e0e7208-..." --target-dir "/tmp"
|
|
69
|
+
|
|
70
|
+
# 2. Then use upload_workspace_artefact("/tmp/filename.pdf") to share it
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 2. Resolve File Path
|
|
76
|
+
|
|
23
77
|
Resolve absolute file paths by running the `get_file_path.py` script via `shell_exec`.
|
|
24
78
|
|
|
25
79
|
### Usage
|
agent_framework_lib-0.8.2/agent_framework/skills/builtin/skills/file_access/download_to_local.py
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Download a file from the agent's storage to a local directory.
|
|
3
|
+
|
|
4
|
+
Uses the server's /files/{file_id}/download endpoint, which delegates to
|
|
5
|
+
FileStorageManager.retrieve_file() — so it works transparently with any
|
|
6
|
+
backend (local, S3, MinIO, GCP).
|
|
7
|
+
|
|
8
|
+
Reads AGENT_HOST and AGENT_PORT from environment variables (injected by
|
|
9
|
+
ShellTool). Auth headers are added automatically when REQUIRE_AUTH is set.
|
|
10
|
+
"""
|
|
11
|
+
import argparse
|
|
12
|
+
import json
|
|
13
|
+
import os
|
|
14
|
+
import sys
|
|
15
|
+
import urllib.error
|
|
16
|
+
import urllib.request
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def _get_auth_headers() -> dict[str, str]:
|
|
20
|
+
"""Return auth headers if REQUIRE_AUTH is enabled."""
|
|
21
|
+
require_auth = os.environ.get("REQUIRE_AUTH", "false").lower() == "true"
|
|
22
|
+
if not require_auth:
|
|
23
|
+
return {}
|
|
24
|
+
api_keys_str = os.environ.get("API_KEYS", "").strip()
|
|
25
|
+
if not api_keys_str:
|
|
26
|
+
return {}
|
|
27
|
+
first_key = next((k.strip() for k in api_keys_str.split(",") if k.strip()), "")
|
|
28
|
+
if not first_key:
|
|
29
|
+
return {}
|
|
30
|
+
return {"X-API-Key": first_key}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def download_to_local(file_id: str, target_dir: str) -> str:
|
|
34
|
+
"""Download a file from storage to a local directory.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
file_id: The file ID in the storage system.
|
|
38
|
+
target_dir: Local directory where the file will be saved.
|
|
39
|
+
|
|
40
|
+
Returns:
|
|
41
|
+
Absolute path to the downloaded file.
|
|
42
|
+
|
|
43
|
+
Raises:
|
|
44
|
+
ValueError: If file_id is empty.
|
|
45
|
+
RuntimeError: If the download or save fails.
|
|
46
|
+
"""
|
|
47
|
+
if not file_id or not file_id.strip():
|
|
48
|
+
raise ValueError("file_id cannot be empty")
|
|
49
|
+
|
|
50
|
+
host = os.environ.get("AGENT_HOST", "localhost")
|
|
51
|
+
port = os.environ.get("AGENT_PORT", "8203")
|
|
52
|
+
|
|
53
|
+
# First, get metadata to know the filename
|
|
54
|
+
meta_url = f"http://{host}:{port}/files/{file_id}/metadata"
|
|
55
|
+
meta_req = urllib.request.Request(meta_url, method="GET")
|
|
56
|
+
for key, value in _get_auth_headers().items():
|
|
57
|
+
meta_req.add_header(key, value)
|
|
58
|
+
|
|
59
|
+
try:
|
|
60
|
+
with urllib.request.urlopen(meta_req, timeout=30) as resp:
|
|
61
|
+
metadata = json.loads(resp.read().decode("utf-8"))
|
|
62
|
+
except urllib.error.HTTPError as e:
|
|
63
|
+
err = e.read().decode("utf-8", errors="replace")
|
|
64
|
+
raise RuntimeError(f"Failed to get metadata for {file_id}: HTTP {e.code} — {err}")
|
|
65
|
+
except urllib.error.URLError as e:
|
|
66
|
+
raise RuntimeError(f"Cannot connect to server at http://{host}:{port}: {e.reason}")
|
|
67
|
+
|
|
68
|
+
filename = metadata.get("filename", f"{file_id}.bin")
|
|
69
|
+
|
|
70
|
+
# Download the file content
|
|
71
|
+
download_url = f"http://{host}:{port}/files/{file_id}/download"
|
|
72
|
+
dl_req = urllib.request.Request(download_url, method="GET")
|
|
73
|
+
for key, value in _get_auth_headers().items():
|
|
74
|
+
dl_req.add_header(key, value)
|
|
75
|
+
|
|
76
|
+
try:
|
|
77
|
+
with urllib.request.urlopen(dl_req, timeout=60) as resp:
|
|
78
|
+
content = resp.read()
|
|
79
|
+
except urllib.error.HTTPError as e:
|
|
80
|
+
err = e.read().decode("utf-8", errors="replace")
|
|
81
|
+
raise RuntimeError(f"Failed to download {file_id}: HTTP {e.code} — {err}")
|
|
82
|
+
except urllib.error.URLError as e:
|
|
83
|
+
raise RuntimeError(f"Cannot connect to server at http://{host}:{port}: {e.reason}")
|
|
84
|
+
|
|
85
|
+
# Save to local directory
|
|
86
|
+
os.makedirs(target_dir, exist_ok=True)
|
|
87
|
+
filepath = os.path.join(target_dir, filename)
|
|
88
|
+
filepath = os.path.abspath(filepath)
|
|
89
|
+
|
|
90
|
+
with open(filepath, "wb") as f:
|
|
91
|
+
f.write(content)
|
|
92
|
+
|
|
93
|
+
return filepath
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def main() -> None:
|
|
97
|
+
parser = argparse.ArgumentParser(
|
|
98
|
+
description="Download a file from storage to a local directory."
|
|
99
|
+
)
|
|
100
|
+
parser.add_argument(
|
|
101
|
+
"--file-id",
|
|
102
|
+
required=True,
|
|
103
|
+
help="The file ID to download (e.g. '8e0e7208-ad96-4815-b1d4-5387f58dc526')",
|
|
104
|
+
)
|
|
105
|
+
parser.add_argument(
|
|
106
|
+
"--target-dir",
|
|
107
|
+
default="/tmp",
|
|
108
|
+
help="Local directory to save the file (default: /tmp)",
|
|
109
|
+
)
|
|
110
|
+
args = parser.parse_args()
|
|
111
|
+
|
|
112
|
+
try:
|
|
113
|
+
filepath = download_to_local(args.file_id, args.target_dir)
|
|
114
|
+
print(json.dumps({
|
|
115
|
+
"status": "success",
|
|
116
|
+
"file": filepath,
|
|
117
|
+
"size_bytes": os.path.getsize(filepath),
|
|
118
|
+
}))
|
|
119
|
+
except Exception as e:
|
|
120
|
+
print(
|
|
121
|
+
json.dumps({"status": "error", "message": str(e)}),
|
|
122
|
+
file=sys.stderr,
|
|
123
|
+
)
|
|
124
|
+
sys.exit(1)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
if __name__ == "__main__":
|
|
128
|
+
main()
|