rf-mcp 0.7.0.dev2__tar.gz → 0.7.0.dev3__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.
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/PKG-INFO +1 -1
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/pyproject.toml +1 -1
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/core/dynamic_keyword_orchestrator.py +9 -8
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/.gitignore +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/LICENSE +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/README.md +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/browser/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/browser/browser_library_manager.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/execution_coordinator.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/keyword_executor.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/locator_converter.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/page_source_service.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/session_manager.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/keyword_matcher.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/keyword_overrides.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/library_recommender.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/nlp_processor.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/state_manager.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/test_builder.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/config/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/config/library_registry.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/core/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/core/keyword_discovery.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/core/library_manager.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/core/session_manager.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/models/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/models/browser_models.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/models/config_models.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/models/execution_models.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/models/library_models.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/models/session_models.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/server.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/__init__.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/argument_processor.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/libdoc_argument_parser.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/library_checker.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/library_detector.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/rf_libdoc_integration.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/rf_native_type_converter.py +0 -0
- {rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/utils/validation.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rf-mcp
|
|
3
|
-
Version: 0.7.0.
|
|
3
|
+
Version: 0.7.0.dev3
|
|
4
4
|
Summary: Robot Framework MCP Server - Natural Language Test Automation Bridge
|
|
5
5
|
Project-URL: Homepage, https://github.com/manykarim/rf-mcp
|
|
6
6
|
Project-URL: Repository, https://github.com/manykarim/rf-mcp
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "rf-mcp"
|
|
7
|
-
version = "0.7.
|
|
7
|
+
version = "0.7.0dev03"
|
|
8
8
|
description = "Robot Framework MCP Server - Natural Language Test Automation Bridge"
|
|
9
9
|
authors = [{name = "Robot MCP Team"}]
|
|
10
10
|
license = {text = "Apache-2.0"}
|
|
@@ -182,11 +182,11 @@ class DynamicKeywordDiscovery:
|
|
|
182
182
|
result = method(*converted_args)
|
|
183
183
|
|
|
184
184
|
logger.debug(f"RF native type conversion succeeded for {keyword_info.name}")
|
|
185
|
-
return result
|
|
185
|
+
return ('executed', result) # Return tuple to indicate execution happened
|
|
186
186
|
|
|
187
187
|
except ImportError as ie:
|
|
188
188
|
logger.debug(f"Robot Framework type conversion not available: {ie}")
|
|
189
|
-
return None
|
|
189
|
+
return ('not_available', None) # Indicate type conversion wasn't available
|
|
190
190
|
except Exception as e:
|
|
191
191
|
logger.debug(f"RF native type conversion failed for {keyword_info.name}: {e}")
|
|
192
192
|
# Log more details for debugging
|
|
@@ -194,7 +194,8 @@ class DynamicKeywordDiscovery:
|
|
|
194
194
|
logger.debug(f"Original args: {original_args}")
|
|
195
195
|
import traceback
|
|
196
196
|
logger.debug(f"Full traceback: {traceback.format_exc()}")
|
|
197
|
-
|
|
197
|
+
# CRITICAL: Even though execution failed, it DID execute - don't try again
|
|
198
|
+
raise e # Re-raise the exception instead of returning None
|
|
198
199
|
|
|
199
200
|
def get_keyword_suggestions(self, keyword_name: str, limit: int = 5) -> List[str]:
|
|
200
201
|
"""Get keyword suggestions based on partial match."""
|
|
@@ -636,11 +637,11 @@ class DynamicKeywordDiscovery:
|
|
|
636
637
|
if keyword_info.library in type_conversion_libraries:
|
|
637
638
|
try:
|
|
638
639
|
# Use Robot Framework's native type conversion system for libraries that need it
|
|
639
|
-
|
|
640
|
-
if
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
#
|
|
640
|
+
conversion_result = self._execute_with_rf_type_conversion(method, keyword_info, original_args)
|
|
641
|
+
if conversion_result[0] == 'executed': # Successfully converted and executed
|
|
642
|
+
result = conversion_result[1] # Use the result as-is
|
|
643
|
+
elif conversion_result[0] == 'not_available':
|
|
644
|
+
# Type conversion not available, fallback to our argument processing
|
|
644
645
|
parsed = self.argument_processor.parse_arguments_for_keyword(keyword_info.name, original_args, keyword_info.library)
|
|
645
646
|
pos_args = parsed.positional
|
|
646
647
|
kwargs = parsed.named
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/browser/browser_library_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/execution_coordinator.py
RENAMED
|
File without changes
|
{rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/keyword_executor.py
RENAMED
|
File without changes
|
{rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/locator_converter.py
RENAMED
|
File without changes
|
{rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/page_source_service.py
RENAMED
|
File without changes
|
{rf_mcp-0.7.0.dev2 → rf_mcp-0.7.0.dev3}/src/robotmcp/components/execution/session_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|