abstractcore 2.4.8__tar.gz → 2.4.9__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 (164) hide show
  1. {abstractcore-2.4.8 → abstractcore-2.4.9}/PKG-INFO +1 -1
  2. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/apps/app_config_utils.py +1 -1
  3. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/cli/main.py +13 -5
  4. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/vision_fallback.py +16 -2
  5. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/utils/version.py +1 -1
  6. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore.egg-info/PKG-INFO +1 -1
  7. {abstractcore-2.4.8 → abstractcore-2.4.9}/LICENSE +0 -0
  8. {abstractcore-2.4.8 → abstractcore-2.4.9}/README.md +0 -0
  9. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/__init__.py +0 -0
  10. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/apps/__init__.py +0 -0
  11. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/apps/__main__.py +0 -0
  12. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/apps/extractor.py +0 -0
  13. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/apps/judge.py +0 -0
  14. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/apps/summarizer.py +0 -0
  15. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/architectures/__init__.py +0 -0
  16. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/architectures/detection.py +0 -0
  17. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/architectures/enums.py +0 -0
  18. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/assets/architecture_formats.json +0 -0
  19. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/assets/model_capabilities.json +0 -0
  20. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/assets/session_schema.json +0 -0
  21. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/cli/__init__.py +0 -0
  22. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/cli/vision_config.py +0 -0
  23. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/core/__init__.py +0 -0
  24. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/core/enums.py +0 -0
  25. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/core/factory.py +0 -0
  26. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/core/interface.py +0 -0
  27. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/core/retry.py +0 -0
  28. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/core/session.py +0 -0
  29. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/core/types.py +0 -0
  30. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/embeddings/__init__.py +0 -0
  31. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/embeddings/manager.py +0 -0
  32. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/embeddings/models.py +0 -0
  33. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/events/__init__.py +0 -0
  34. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/exceptions/__init__.py +0 -0
  35. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/__init__.py +0 -0
  36. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/auto_handler.py +0 -0
  37. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/base.py +0 -0
  38. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/capabilities.py +0 -0
  39. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/handlers/__init__.py +0 -0
  40. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/handlers/anthropic_handler.py +0 -0
  41. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/handlers/local_handler.py +0 -0
  42. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/handlers/openai_handler.py +0 -0
  43. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/processors/__init__.py +0 -0
  44. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/processors/image_processor.py +0 -0
  45. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/processors/office_processor.py +0 -0
  46. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/processors/pdf_processor.py +0 -0
  47. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/processors/text_processor.py +0 -0
  48. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/types.py +0 -0
  49. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/utils/__init__.py +0 -0
  50. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/media/utils/image_scaler.py +0 -0
  51. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/processing/__init__.py +0 -0
  52. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/processing/basic_extractor.py +0 -0
  53. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/processing/basic_judge.py +0 -0
  54. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/processing/basic_summarizer.py +0 -0
  55. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/__init__.py +0 -0
  56. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/anthropic_provider.py +0 -0
  57. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/base.py +0 -0
  58. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/huggingface_provider.py +0 -0
  59. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/lmstudio_provider.py +0 -0
  60. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/mlx_provider.py +0 -0
  61. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/ollama_provider.py +0 -0
  62. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/openai_provider.py +0 -0
  63. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/registry.py +0 -0
  64. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/providers/streaming.py +0 -0
  65. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/server/__init__.py +0 -0
  66. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/server/app.py +0 -0
  67. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/structured/__init__.py +0 -0
  68. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/structured/handler.py +0 -0
  69. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/structured/retry.py +0 -0
  70. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/__init__.py +0 -0
  71. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/common_tools.py +0 -0
  72. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/core.py +0 -0
  73. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/handler.py +0 -0
  74. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/parser.py +0 -0
  75. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/registry.py +0 -0
  76. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/syntax_rewriter.py +0 -0
  77. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/tools/tag_rewriter.py +0 -0
  78. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/utils/__init__.py +0 -0
  79. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/utils/cli.py +0 -0
  80. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/utils/message_preprocessor.py +0 -0
  81. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/utils/self_fixes.py +0 -0
  82. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/utils/structured_logging.py +0 -0
  83. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore/utils/token_utils.py +0 -0
  84. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore.egg-info/SOURCES.txt +0 -0
  85. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore.egg-info/dependency_links.txt +0 -0
  86. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore.egg-info/entry_points.txt +0 -0
  87. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore.egg-info/requires.txt +0 -0
  88. {abstractcore-2.4.8 → abstractcore-2.4.9}/abstractcore.egg-info/top_level.txt +0 -0
  89. {abstractcore-2.4.8 → abstractcore-2.4.9}/pyproject.toml +0 -0
  90. {abstractcore-2.4.8 → abstractcore-2.4.9}/setup.cfg +0 -0
  91. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_agentic_cli_compatibility.py +0 -0
  92. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_all_specified_providers.py +0 -0
  93. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_basic_session.py +0 -0
  94. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_basic_summarizer.py +0 -0
  95. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_cli_media.py +0 -0
  96. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_complete_integration.py +0 -0
  97. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_comprehensive_events.py +0 -0
  98. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_consistency.py +0 -0
  99. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_core_components.py +0 -0
  100. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_critical_streaming_tool_fix.py +0 -0
  101. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_debug_server.py +0 -0
  102. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_direct_vs_server.py +0 -0
  103. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings.py +0 -0
  104. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings_integration.py +0 -0
  105. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings_llm_integration.py +0 -0
  106. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings_matrix_operations.py +0 -0
  107. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings_no_mock.py +0 -0
  108. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings_real.py +0 -0
  109. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings_semantic_validation.py +0 -0
  110. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_embeddings_simple.py +0 -0
  111. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_enhanced_prompt.py +0 -0
  112. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_environment_variable_tool_call_tags.py +0 -0
  113. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_factory.py +0 -0
  114. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_final_accuracy.py +0 -0
  115. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_final_comprehensive.py +0 -0
  116. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_final_graceful_errors.py +0 -0
  117. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_fixed_media.py +0 -0
  118. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_fixed_prompt.py +0 -0
  119. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_graceful_fallback.py +0 -0
  120. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_import_debug.py +0 -0
  121. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_integrated_functionality.py +0 -0
  122. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_lmstudio_context.py +0 -0
  123. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_media_import.py +0 -0
  124. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_media_server.py +0 -0
  125. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_ollama_tool_role_fix.py +0 -0
  126. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_openai_conversion_manual.py +0 -0
  127. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_openai_format_bug.py +0 -0
  128. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_openai_format_conversion.py +0 -0
  129. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_openai_media_integration.py +0 -0
  130. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_progressive_complexity.py +0 -0
  131. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_provider_basic_session.py +0 -0
  132. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_provider_connectivity.py +0 -0
  133. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_provider_simple_generation.py +0 -0
  134. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_provider_streaming.py +0 -0
  135. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_provider_token_translation.py +0 -0
  136. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_provider_tool_detection.py +0 -0
  137. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_providers.py +0 -0
  138. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_providers_comprehensive.py +0 -0
  139. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_providers_simple.py +0 -0
  140. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_real_models_comprehensive.py +0 -0
  141. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_retry_observability.py +0 -0
  142. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_retry_strategy.py +0 -0
  143. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_seed_determinism.py +0 -0
  144. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_seed_temperature_basic.py +0 -0
  145. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_sensory_prompting.py +0 -0
  146. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_server_debug.py +0 -0
  147. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_server_embeddings_real.py +0 -0
  148. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_server_integration.py +0 -0
  149. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_stream_tool_calling.py +0 -0
  150. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_streaming_enhancements.py +0 -0
  151. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_streaming_tag_rewriting.py +0 -0
  152. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_structured_integration.py +0 -0
  153. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_structured_output.py +0 -0
  154. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_syntax_rewriter.py +0 -0
  155. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_text_only_model_experience.py +0 -0
  156. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_tool_calling.py +0 -0
  157. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_tool_execution_separation.py +0 -0
  158. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_unified_streaming.py +0 -0
  159. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_unload_memory.py +0 -0
  160. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_user_scenario_validation.py +0 -0
  161. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_vision_accuracy.py +0 -0
  162. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_vision_comprehensive.py +0 -0
  163. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_vision_fallback_improvement.py +0 -0
  164. {abstractcore-2.4.8 → abstractcore-2.4.9}/tests/test_wrong_model_fallback.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractcore
3
- Version: 2.4.8
3
+ Version: 2.4.9
4
4
  Summary: Unified interface to all LLM providers with essential infrastructure for tool calling, streaming, and model management
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
6
  Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
@@ -8,7 +8,7 @@ def get_app_defaults(app_name: str) -> tuple[str, str]:
8
8
  from ..config import get_config_manager
9
9
  config_manager = get_config_manager()
10
10
  return config_manager.get_app_default(app_name)
11
- except Exception:
11
+ except (ImportError, Exception):
12
12
  # Fallback to hardcoded defaults if config unavailable
13
13
  hardcoded_defaults = {
14
14
  'summarizer': ('huggingface', 'unsloth/Qwen3-4B-Instruct-2507-GGUF'),
@@ -38,7 +38,13 @@ from typing import List, Optional
38
38
  # Add parent directory to path for imports
39
39
  sys.path.insert(0, str(Path(__file__).parent.parent.parent))
40
40
 
41
- from abstractcore.config import get_config_manager
41
+ # Import config manager with fallback
42
+ try:
43
+ from abstractcore.config import get_config_manager
44
+ CONFIG_AVAILABLE = True
45
+ except ImportError:
46
+ CONFIG_AVAILABLE = False
47
+ get_config_manager = None
42
48
 
43
49
  def download_vision_model(model_name: str = "blip-base-caption") -> bool:
44
50
  """Download a vision model for local use."""
@@ -144,10 +150,12 @@ def download_vision_model(model_name: str = "blip-base-caption") -> bool:
144
150
  print(f"📁 Model saved to: {models_dir}")
145
151
 
146
152
  # Configure AbstractCore to use this model
147
- from abstractcore.config import get_config_manager
148
- config_manager = get_config_manager()
149
- # Use the proper HuggingFace model identifier
150
- config_manager.set_vision_provider("huggingface", hf_id)
153
+ if CONFIG_AVAILABLE:
154
+ config_manager = get_config_manager()
155
+ # Use the proper HuggingFace model identifier
156
+ config_manager.set_vision_provider("huggingface", hf_id)
157
+ else:
158
+ print("⚠️ Config system not available - manual configuration required")
151
159
 
152
160
  print(f"✅ Configured AbstractCore to use HuggingFace model: {hf_id}")
153
161
  print(f"🎯 Vision fallback is now enabled!")
@@ -31,14 +31,28 @@ class VisionFallbackHandler:
31
31
  def __init__(self, config_manager=None):
32
32
  """Initialize with configuration manager."""
33
33
  if config_manager is None:
34
- from abstractcore.config import get_config_manager
35
- self.config_manager = get_config_manager()
34
+ try:
35
+ from abstractcore.config import get_config_manager
36
+ self.config_manager = get_config_manager()
37
+ except ImportError:
38
+ # Config module not available - use fallback behavior
39
+ logger.warning("Config module not available, vision fallback disabled")
40
+ self.config_manager = None
36
41
  else:
37
42
  self.config_manager = config_manager
38
43
 
39
44
  @property
40
45
  def vision_config(self):
41
46
  """Get vision configuration from unified config system."""
47
+ if self.config_manager is None:
48
+ # Return a minimal config object when config system is not available
49
+ class FallbackVisionConfig:
50
+ strategy = "disabled"
51
+ caption_provider = None
52
+ caption_model = None
53
+ fallback_chain = []
54
+ local_models_path = None
55
+ return FallbackVisionConfig()
42
56
  return self.config_manager.config.vision
43
57
 
44
58
  def create_description(self, image_path: str, user_prompt: str = None) -> str:
@@ -11,4 +11,4 @@ including when the package is installed from PyPI where pyproject.toml is not av
11
11
 
12
12
  # Package version - update this when releasing new versions
13
13
  # This must be manually synchronized with the version in pyproject.toml
14
- __version__ = "2.4.8"
14
+ __version__ = "2.4.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractcore
3
- Version: 2.4.8
3
+ Version: 2.4.9
4
4
  Summary: Unified interface to all LLM providers with essential infrastructure for tool calling, streaming, and model management
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
6
  Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
File without changes
File without changes
File without changes