Logo

Generalized Agents: Automated Quality Dashboard

Real-time insights into Auto-QC and Auto-Reviewer execution results

πŸš€πŸ“Š Auto-QC Dashboard: This interactive dashboard shows all Auto-QC and Auto-Reviewer execution runs triggered from GitHub workflows and on-demand requests via the self-service tool. Search, filter, sort, and analyze your automated quality data with real-time insights. View individual records or group by time periods to track trends and patterns.

πŸ“Š Current Sheet: E2E

E2E Auto-Reviewer

πŸ”„ Show Distinct Records Only (Remove Duplicate Runs)

Convert from "all individual runs" to "distinct records" by keeping only the latest run per unique key

🎯 Use Case: Show latest status per unique key, removing duplicate runs and retries.

πŸ”„ Sort by Timestamp (Optional)

Sort data by timestamp column - works for individual runs, deduplication, and grouping views

⏰ Use Case: Sort data chronologically - newest first (default) or oldest first.

πŸ“Š Time-based Grouping (Optional)

πŸ“ˆ Use Case: Group data by time periods to analyze trends and patterns.

πŸ“… Day Filter (Optional)

Filter to show only records from specific time periods based on timestamp values

πŸ“‹ Individual Runs View: Each row represents a separate Auto-QC or Auto-Reviewer execution run
πŸ“Š Showing 18653 individual runs
πŸ”„ All Individual Execution Runs
run_id sample_id colab_url colab_name repo_url branch colab_path check_trigger author changed_on commit_id script_passed script_failure_msg contains_golden_answer contains_final_assert setup_section exec_detail_install_dependencies exec_detail_initialisation exec_detail_fa_no_action exec_detail_ia exec_detail_action exec_detail_fa exec_status_install_dependencies exec_status_initialisation exec_status_fa_no_action exec_status_ia exec_status_action exec_status_fa general_status general_message general_message_with_action general_message_no_action general_summary api_version check_id check_version execution_time_seconds
1f988d11-89f8-4662-9a45-097196a84cd9 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/312_base/Agent-312-Base.ipynb Agent-312-Base.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/312_base/Agent-312-Base.ipynb gh-action ansarir-crypto 2025-11-18 11:00:30 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/2053a6f5127278eeca9b9124a11f346f05f311c6 TRUE FALSE TRUE ErrorType: AssertionError Error Description: Expected 1 file named 'Final Proposal.docx', but found 0. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 13 11 # === 1. Assert that exactly one file named "Final Proposal.docx" exists === 12 files_list_response = gdrive.list_user_files(q=f'name="{UPDATED_FILENAME}"') ---> 13 assert len(files_list_response.get('files', [])) == 1, ( 14 f"Expected 1 file named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}." 15 ) 17 # === 2. Assert that the file "Draft Proposal.docx" does not exist === 18 files_list_response = gdrive.list_user_files(q=f'name="{FILENAME}"') AssertionError: Expected 1 file named 'Final Proposal.docx', but found 0. ErrorType: ValidationError Error Description: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[6], line 25 20 assert len(files_list_response.get('files', [])) == 0, ( 21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}." 22 ) 24 # 3. Check no Gmail draft with the subject and recipient already exists ---> 25 drafts_list_response = gmail.list_drafts(userId='me') 26 found_draft = False 27 for draft in drafts_list_response.get('drafts', []): File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs) 198 return return_result 199 else: --> 200 validated_output = actual_output_model(**result) 201 return_result = validated_output.model_dump(mode='json') 202 return return_result File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden ErrorType: ValidationError Error Description: 1 validation error for ListDraftsResponse drafts.1.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[15], line 24 19 assert len(files_list_response.get('files', [])) == 0, ( 20 f"Expected 0 files named '{FILENAME}', but found {len(files_list_response.get('files', []))}." 21 ) 23 # === 3. Assert that a Gmail draft with the correct subject, recipient, AND body exists === ---> 24 drafts_list_response = gmail.list_drafts() 25 found_draft = False 26 for draft in drafts_list_response.get('drafts', []): File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs) 198 return return_result 199 else: --> 200 validated_output = actual_output_model(**result) 201 return_result = validated_output.model_dump(mode='json') 202 return return_result File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for ListDraftsResponse drafts.1.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden No Error Found No Error Found Assertion Error Non Assertion Error No Error Found Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Initial Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: ValidationError Error Description: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[6], line 25 20 assert len(files_list_response.get('files', [])) == 0, ( 21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}." 22 ) 24 # 3. Check no Gmail draft with the subject and recipient already exists ---> 25 drafts_list_response = gmail.list_drafts(userId='me') 26 found_draft = False 27 for draft in drafts_list_response.get('drafts', []): File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs) 198 return return_result 199 else: --> 200 validated_output = actual_output_model(**result) 201 return_result = validated_output.model_dump(mode='json') 202 return return_result File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden **Block**: Initial Assertion **Expected:** 'No Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[6], line 25 20 assert len(files_list_response.get('files', [])) == 0, ( 21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}." 22 ) 24 # 3. Check no Gmail draft with the subject and recipient already exists ---> 25 drafts_list_response = gmail.list_drafts(userId='me') 26 found_draft = False 27 for draft in drafts_list_response.get('drafts', []): File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs) 198 return return_result 199 else: --> 200 validated_output = actual_output_model(**result) 201 return_result = validated_output.model_dump(mode='json') 202 return return_result File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden **E2E Execution Summary**: Status: ❌ **Block**: Initial Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[6], line 25 20 assert len(files_list_response.get('files', [])) == 0, ( 21 f"Expected 0 files named '{UPDATED_FILENAME}', but found {len(files_list_response.get('files', []))}." 22 ) 24 # 3. Check no Gmail draft with the subject and recipient already exists ---> 25 drafts_list_response = gmail.list_drafts(userId='me') 26 found_draft = False 27 for draft in drafts_list_response.get('drafts', []): File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:200, in tool_spec..decorator..wrapper(*args, **kwargs) 198 return return_result 199 else: --> 200 validated_output = actual_output_model(**result) 201 return_result = validated_output.model_dump(mode='json') 202 return return_result File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for ListDraftsResponse drafts.0.message.payload.headers Extra inputs are not permitted [type=extra_forbidden, input_value=[{'name': 'From', 'value'...'2025-04-01T09:00:00Z'}], input_type=list] For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden __________________________________________________ **Final Assertion Correctness Summary**: ⚠️ There is an error that needs to fixed before Final Assertion can be tested. __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 6.412
26ad7967-44c2-4c9c-8820-af51e8f7d464 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Under_represented_Samples/2949_base_GC/Agent-2949_base_GC-Initial_with_DB_Setup.ipynb Agent-2949_base_GC-Initial_with_DB_Setup.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Under_represented_Samples/2949_base_GC/Agent-2949_base_GC-Initial_with_DB_Setup.ipynb gh-action irfanm1 2025-11-18 10:51:32 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/e64c6897245fdd40822cd978f5aaeac785a6a12e TRUE FALSE TRUE ErrorType: AssertionError Error Description: Expected exactly 1 Jira issue for support case ID '1', but found 0. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 48 43 assert total_issues_found == len(found_issues), ( 44 f"API inconsistency: total is {total_issues_found} but issues list has {len(found_issues)} items for case ID '{case_id}'." 45 ) 47 # Assert exactly one issue found ---> 48 assert total_issues_found == 1, ( 49 f"Expected exactly 1 Jira issue for support case ID '{case_id}', but found {total_issues_found}." 50 ) 52 found_issue = found_issues[0] 54 # Extract issue key AssertionError: Expected exactly 1 Jira issue for support case ID '1', but found 0. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 5.1366
8425bdf0-338c-4e9d-b9c3-e62df4f01513 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/User_Simulation_-_MT/183_base_US_ToolShift/Agent-183_base_US_ToolShift-Simulation.ipynb Agent-183_base_US_ToolShift-Simulation.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/User_Simulation_-_MT/183_base_US_ToolShift/Agent-183_base_US_ToolShift-Simulation.ipynb gh-action kiskoa-turing 2025-11-18 10:28:11 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/276e384db30b742b548ad0201107aa9ebd2c7094 TRUE FALSE TRUE ErrorType: AssertionError Error Description: Assertion Failed: No pages found in space 'Aquarius Heights' (key: 'AQUA'). Expected at least one page to exist. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 38 35 if api_error: 36 assertion_message += f" API Error: {api_error}" ---> 38 assert confluence_page_found, assertion_message AssertionError: Assertion Failed: No pages found in space 'Aquarius Heights' (key: 'AQUA'). Expected at least one page to exist. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 5.1578
6d3b99f9-298a-4f52-bc47-21dd88c52b24 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/User_Simulation_-_MT/25_base_US/Agent-25_base_US-Simulation.ipynb Agent-25_base_US-Simulation.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/User_Simulation_-_MT/25_base_US/Agent-25_base_US-Simulation.ipynb gh-action carolinesilvaturing 2025-11-18 10:21:56 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/4ffff0b305397c6309dd89fa1fdde364bf2748bb TRUE FALSE TRUE ErrorType: AssertionError Error Description: Assertion 1 Failed: Folder 'Project X' does not exist under 'Project Management'. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 60 57 except Exception as e: 58 api_error = str(e) ---> 60 assert project_x_folder_exists_under_pm, "Assertion 1 Failed: Folder 'Project X' does not exist under 'Project Management'." 62 # ---------------------------- 63 # Assertion 2: exactly 4 files moved into PX folder, none left in PM root 64 # ---------------------------- 65 try: 66 # Ensure we have the PX folder id; fallback search if needed AssertionError: Assertion 1 Failed: Folder 'Project X' does not exist under 'Project Management'. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 6.9667
1f15c9e4-f510-426e-a71f-bf68c0c4a9db N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1713_base/Agent-1713_base-Merged.ipynb Agent-1713_base-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/1713_base/Agent-1713_base-Merged.ipynb gh-action zaina3-source 2025-11-18 10:11:45 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/fa84b546f6b70826764e2736e4f538bb69724dab TRUE FALSE TRUE ErrorType: AssertionError Error Description: Final assertion failed: At least one bare 'except:' still exists. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[10], line 45 39 # Only fail if a line is exactly `except:` or contains only whitespace before it 40 remaining_bare = [ 41 r for r in bare_results 42 if r["line_content"].strip() == "except:" 43 ] ---> 45 assert len(remaining_bare) == 0, \ 46 "Final assertion failed: At least one bare 'except:' still exists." 48 # --------------------------------------------------- 49 # 3️⃣ Assert that at least one `except Exception:` exists 50 # --------------------------------------------------- 51 exception_results = cursor.grep_search( 52 query="except Exception:", 53 explanation="Check that 'except Exception:' exists.", 54 case_sensitive=True 55 ) AssertionError: Final assertion failed: At least one bare 'except:' still exists. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 6.5562
d57ce178-898a-4133-bc61-cbe462c7c2fc N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb Agent-9_Tau_Bench-Simulation.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb gh-action poovanna-vs 2025-11-18 10:07:12 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/41e3eeb7ef295094bc7f1b901a347b61326bcb89 TRUE FALSE TRUE ErrorType: AssertionError Error Description: FA4 Failed: Payment validation errors: Amount mismatch for gift_card_6136092: expected 129.0, got 567 Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526'] Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 90 87 if missing: 88 invalid_payments.append(f"Missing payments: {missing}") ---> 90 assert not invalid_payments, f"FA4 Failed: Payment validation errors:\n" + "\n".join(invalid_payments) 92 # --- FA5: Assert flights HAT023, HAT204, HAT100 are present --- 93 flight_numbers = {f.get("flight_number", "") for f in flights} AssertionError: FA4 Failed: Payment validation errors: Amount mismatch for gift_card_6136092: expected 129.0, got 567 Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526'] ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined No Error Found No Error Found Assertion Error Non Assertion Error No Error Found No Error Found Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Initial Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined **Block**: Initial Assertion **Expected:** 'No Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined **E2E Execution Summary**: Status: ❌ **Block**: Initial Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined __________________________________________________ **Final Assertion Correctness Summary**: ⚠️ There is an error that needs to fixed before Final Assertion can be tested. __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 4.2786
0933e8ba-b2ca-43bb-acd9-dc5ee722e5b7 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb Agent-9_Tau_Bench-Simulation.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Vanilla_Tau/9_Tau_Bench/Agent-9_Tau_Bench-Simulation.ipynb gh-action poovanna-vs 2025-11-18 10:03:59 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/3f3fe3e997915bd876a8243434262148ac40d08b TRUE FALSE TRUE ErrorType: AssertionError Error Description: FA4 Failed: Payment validation errors: Amount mismatch for gift_card_6136092: expected 129.0, got 567 Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526'] Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 90 87 if missing: 88 invalid_payments.append(f"Missing payments: {missing}") ---> 90 assert not invalid_payments, f"FA4 Failed: Payment validation errors:\n" + "\n".join(invalid_payments) 92 # --- FA5: Assert flights HAT023, HAT204, HAT100 are present --- 93 flight_numbers = {f.get("flight_number", "") for f in flights} AssertionError: FA4 Failed: Payment validation errors: Amount mismatch for gift_card_6136092: expected 129.0, got 567 Missing payments: ['certificate_3765853', 'certificate_9984806', 'certificate_2765295', 'gift_card_8020792', 'credit_card_2198526'] ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined No Error Found No Error Found Assertion Error Non Assertion Error No Error Found No Error Found Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Initial Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined **Block**: Initial Assertion **Expected:** 'No Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined **E2E Execution Summary**: Status: ❌ **Block**: Initial Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: NameError Error Description: name 'CERTIFICATE_ID' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 52 47 certificate_source = certificate_1.get('source', '') 48 certificate_balance = certificate_1.get('amount', 0) 50 assertion_message_2 = ( 51 f"Assertion 2 Failed: Certificate check for user '{USER_ID}' failed. " ---> 52 f"Expected ID: '{CERTIFICATE_ID}', Type: 'certificate', Balance: ${EXPECTED_CERTIFICATE_BALANCE}. " 53 f"Found: ID exists={CERTIFICATE_ID in payment_methods}, " 54 f"Type='{certificate_source}', Balance=${certificate_balance}." 55 ) 56 assertion_condition_2 = ( 57 compare_strings(certificate_source , 'certificate') and 58 certificate_balance == EXPECTED_CERTIFICATE_BALANCE_1 59 ) 60 assert assertion_condition_2, assertion_message_2 NameError: name 'CERTIFICATE_ID' is not defined __________________________________________________ **Final Assertion Correctness Summary**: ⚠️ There is an error that needs to fixed before Final Assertion can be tested. __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 4.5693
7bd0ea77-5526-4917-a6e9-70d25351d0fe N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb Agent-414_edge_2-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb gh-action ansarir-crypto 2025-11-18 10:02:28 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/a378728f7d5aee078b27fd6576ce4716ee76bc32 TRUE TRUE TRUE ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. ErrorType: AssertionError Error Description: Expected exactly one calendar 'Technical Reviews', found 0. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[6], line 109 106 found_calendars = [c for c in calendars if compare_strings(c.get("summary", ""), CALENDAR_NAME)] 108 # Assert 4: exactly one "Technical Reviews" calendar exists --> 109 assert len(found_calendars) == 1, f"Expected exactly one calendar '{CALENDAR_NAME}', found {len(found_calendars)}." 110 calendar_id = found_calendars[0].get('id') 112 # ---------------------------- 113 # 5) Fetch events in the calendar 114 # ---------------------------- AssertionError: Expected exactly one calendar 'Technical Reviews', found 0. No Error Found Non Assertion Error No Error Found Assertion Error No Error Found No Error Found Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Initialisation Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. **Block**: Initialisation **Expected:** 'No Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. **E2E Execution Summary**: Status: ❌ **Block**: Initialisation **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. __________________________________________________ **Final Assertion Correctness Summary**: ⚠️ There is an error that needs to fixed before Final Assertion can be tested. __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 5.9782
bd22681e-97b0-4b1c-9ab4-0ca7408c54a6 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb Agent-414_edge_2-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/414_edge_2/Agent-414_edge_2-Merged.ipynb gh-action ansarir-crypto 2025-11-18 09:59:46 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/286cb10aad190f0c139bf6d835ca17aa4c5ac326 TRUE TRUE TRUE ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. ErrorType: AssertionError Error Description: Expected exactly one calendar 'Technical Reviews', found 0. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[6], line 109 106 found_calendars = [c for c in calendars if compare_strings(c.get("summary", ""), CALENDAR_NAME)] 108 # Assert 4: exactly one "Technical Reviews" calendar exists --> 109 assert len(found_calendars) == 1, f"Expected exactly one calendar '{CALENDAR_NAME}', found {len(found_calendars)}." 110 calendar_id = found_calendars[0].get('id') 112 # ---------------------------- 113 # 5) Fetch events in the calendar 114 # ---------------------------- AssertionError: Expected exactly one calendar 'Technical Reviews', found 0. No Error Found Non Assertion Error No Error Found Assertion Error No Error Found No Error Found Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Initialisation Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. **Block**: Initialisation **Expected:** 'No Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. **E2E Execution Summary**: Status: ❌ **Block**: Initialisation **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: ValueError Error Description: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. Traceback: --------------------------------------------------------------------------- ValueError Traceback (most recent call last) Cell In[3], line 35 32 print(f"Created component: {component.get('name')} with description: {component.get('description')}") 34 # Step 2: Create or get the Technical Reviews calendar ---> 35 calendar = google_calendar.create_calendar_list_entry(resource={ 36 'id': 'technical-reviews-calendar-id', 37 'summary': CALENDAR_NAME, 38 'timeZone': TIMEZONE 39 }) 40 calendar_id = calendar.get('id') 41 print(f"Using calendar: {calendar.get('summary')}") File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/google_calendar/CalendarListResource.py:197, in create_calendar_list(resource) 195 # Validate that the calendar exists before creating calendar list entry 196 if cal_id not in DB["calendars"]: --> 197 raise ValueError(f"Calendar '{cal_id}' not found. Cannot create calendar list entry for non-existent calendar.") 199 resource_data_to_store = validated_resource_model.model_dump(exclude_none=False) 200 resource_data_to_store["id"] = cal_id ValueError: Calendar 'technical-reviews-calendar-id' not found. Cannot create calendar list entry for non-existent calendar. __________________________________________________ **Final Assertion Correctness Summary**: ⚠️ There is an error that needs to fixed before Final Assertion can be tested. __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 6.1317
249bc79d-10e7-42ad-9a2b-f6d1f008bfca N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb gh-action zain-amir-turing 2025-11-18 09:57:50 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/0fcb7f7d4f92e7ba7354ba18bb5c70331fbca280 TRUE FALSE TRUE ErrorType: AssertionError Error Description: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[10], line 63 60 page_exists_as_expected = True 62 # --- Assertion 1: Assert that a Confluence page matching 'Functionalities' exists in the 'Keyboard' space. --- ---> 63 assert page_exists_as_expected, ( 64 f"Assertion Failed: Expected a Confluence page whose title loosely matches '{page_title}' " 65 f"and type '{expected_content_type}' to exist in space '{space_name}' " 66 f"(space key: {retrieved_space_key}). Actual: Page found = {bool(retrieved_page_id)}, " 67 f"Title = '{actual_page_title}', Space Key = '{actual_page_space_key}', Type = '{actual_page_type}'." 68 ) 70 # --- Preparatory data retrieval for Assertion 2 --- 71 72 # 3. Extract media keys from the specified Python file 73 expected_media_keys_from_file = [] AssertionError: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'. ErrorType: RuntimeError Error Description: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} Traceback: --------------------------------------------------------------------------- ClientError Traceback (most recent call last) File /content/APIs/cursor/SimulationEngine/llm_interface.py:125, in call_llm(prompt_text, model_name, temperature, timeout_seconds) 123 _log_with_caller_info(logging.INFO, f"Initiating LLM call. Model: {active_model_name}, Temp: {temperature}, Client Read Timeout: {actual_read_timeout_for_log}.") --> 125 response = client.models.generate_content( 126 model=f"{active_model_name}", 127 contents=prompt_text, 128 config=types.GenerateContentConfig( 129 temperature=temperature, 130 http_options=http_options if http_options else None, 131 ), 132 ) 134 if response.text: File /usr/local/lib/python3.12/site-packages/google/genai/models.py:6565, in Models.generate_content(self, model, contents, config) 6564 i += 1 -> 6565 response = self._generate_content( 6566 model=model, contents=contents, config=parsed_config 6567 ) 6568 logger.info(f'AFC remote call {i} is done.') File /usr/local/lib/python3.12/site-packages/google/genai/models.py:5377, in Models._generate_content(self, model, contents, config) 5375 request_dict = _common.encode_unserializable_types(request_dict) -> 5377 response = self._api_client.request( 5378 'post', path, request_dict, http_options 5379 ) 5381 if config is not None and getattr( 5382 config, 'should_return_http_response', None 5383 ): File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1290, in BaseApiClient.request(self, http_method, path, request_dict, http_options) 1287 http_request = self._build_request( 1288 http_method, path, request_dict, http_options 1289 ) -> 1290 response = self._request(http_request, http_options, stream=False) 1291 response_body = ( 1292 response.response_stream[0] if response.response_stream else '' 1293 ) File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1126, in BaseApiClient._request(self, http_request, http_options, stream) 1124 return retry(self._request_once, http_request, stream) # type: ignore[no-any-return] -> 1126 return self._retry(self._request_once, http_request, stream) File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:477, in Retrying.__call__(self, fn, *args, **kwargs) 476 while True: --> 477 do = self.iter(retry_state=retry_state) 478 if isinstance(do, DoAttempt): File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:378, in BaseRetrying.iter(self, retry_state) 377 for action in self.iter_state.actions: --> 378 result = action(retry_state) 379 return result File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:420, in BaseRetrying._post_stop_check_actions..exc_check(rs) 419 if self.reraise: --> 420 raise retry_exc.reraise() 421 raise retry_exc from fut.exception() File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:187, in RetryError.reraise(self) 186 if self.last_attempt.failed: --> 187 raise self.last_attempt.result() 188 raise self File /usr/local/lib/python3.12/concurrent/futures/_base.py:449, in Future.result(self, timeout) 448 elif self._state == FINISHED: --> 449 return self.__get_result() 451 self._condition.wait(timeout) File /usr/local/lib/python3.12/concurrent/futures/_base.py:401, in Future.__get_result(self) 400 try: --> 401 raise self._exception 402 finally: 403 # Break a reference cycle with the exception in self._exception File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:480, in Retrying.__call__(self, fn, *args, **kwargs) 479 try: --> 480 result = fn(*args, **kwargs) 481 except BaseException: # noqa: B902 File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1103, in BaseApiClient._request_once(self, http_request, stream) 1096 response = self._httpx_client.request( 1097 method=http_request.method, 1098 url=http_request.url, (...) 1101 timeout=http_request.timeout, 1102 ) -> 1103 errors.APIError.raise_for_response(response) 1104 return HttpResponse( 1105 response.headers, response if stream else [response.text] 1106 ) File /usr/local/lib/python3.12/site-packages/google/genai/errors.py:108, in APIError.raise_for_response(cls, response) 107 if 400 <= status_code < 500: --> 108 raise ClientError(status_code, response_json, response) 109 elif 500 <= status_code < 600: ClientError: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} The above exception was the direct cause of the following exception: RuntimeError Traceback (most recent call last) Cell In[13], line 12 6 cursor.list_dir(relative_workspace_path=".") 9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory") ---> 12 cursor.read_file(target_file="keyboard/keyboard/_darwinkeyboard.py") 15 confluence.get_spaces(limit=10) 18 confluence.get_spaces() File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1184, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation) 1174 summary_text = "".join(summary_content) if summary_content else "" 1175 prompt_template = ( 1176 f'I will provide you with a list of code lines, each with line numbers. Please read the code and ' 1177 f'write a brief summary in plain English explaining what the code does, highlighting any ' (...) 1181 f'knowledge. Do not include the code itself in your response. ' 1182 f'Here is the code below:\n{summary_text}') -> 1184 summary = call_llm(prompt_template) 1186 # --- Construct the final message --- 1187 message = "" File /content/APIs/cursor/SimulationEngine/llm_interface.py:147, in call_llm(prompt_text, model_name, temperature, timeout_seconds) 145 except Exception as e: 146 _log_with_caller_info(logging.ERROR, f"LLM call to model {active_model_name} encountered an error: {type(e).__name__} - {e}", exc_info=True) --> 147 raise RuntimeError(f"LLM call failed: {type(e).__name__} - {e}") from e RuntimeError: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} ErrorType: AssertionError Error Description: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[16], line 63 60 page_exists_as_expected = True 62 # --- Assertion 1: Assert that a Confluence page matching 'Functionalities' exists in the 'Keyboard' space. --- ---> 63 assert page_exists_as_expected, ( 64 f"Assertion Failed: Expected a Confluence page whose title loosely matches '{page_title}' " 65 f"and type '{expected_content_type}' to exist in space '{space_name}' " 66 f"(space key: {retrieved_space_key}). Actual: Page found = {bool(retrieved_page_id)}, " 67 f"Title = '{actual_page_title}', Space Key = '{actual_page_space_key}', Type = '{actual_page_type}'." 68 ) 70 # --- Preparatory data retrieval for Assertion 2 --- 71 72 # 3. Extract media keys from the specified Python file 73 expected_media_keys_from_file = [] AssertionError: Assertion Failed: Expected a Confluence page whose title loosely matches 'Functionalities' and type 'page' to exist in space 'Keyboard' (space key: KEYBOARDPROJ). Actual: Page found = False, Title = 'None', Space Key = 'None', Type = 'None'. No Error Found No Error Found Assertion Error No Error Found Non Assertion Error Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Action Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: RuntimeError Error Description: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} Traceback: --------------------------------------------------------------------------- ClientError Traceback (most recent call last) File /content/APIs/cursor/SimulationEngine/llm_interface.py:125, in call_llm(prompt_text, model_name, temperature, timeout_seconds) 123 _log_with_caller_info(logging.INFO, f"Initiating LLM call. Model: {active_model_name}, Temp: {temperature}, Client Read Timeout: {actual_read_timeout_for_log}.") --> 125 response = client.models.generate_content( 126 model=f"{active_model_name}", 127 contents=prompt_text, 128 config=types.GenerateContentConfig( 129 temperature=temperature, 130 http_options=http_options if http_options else None, 131 ), 132 ) 134 if response.text: File /usr/local/lib/python3.12/site-packages/google/genai/models.py:6565, in Models.generate_content(self, model, contents, config) 6564 i += 1 -> 6565 response = self._generate_content( 6566 model=model, contents=contents, config=parsed_config 6567 ) 6568 logger.info(f'AFC remote call {i} is done.') File /usr/local/lib/python3.12/site-packages/google/genai/models.py:5377, in Models._generate_content(self, model, contents, config) 5375 request_dict = _common.encode_unserializable_types(request_dict) -> 5377 response = self._api_client.request( 5378 'post', path, request_dict, http_options 5379 ) 5381 if config is not None and getattr( 5382 config, 'should_return_http_response', None 5383 ): File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1290, in BaseApiClient.request(self, http_method, path, request_dict, http_options) 1287 http_request = self._build_request( 1288 http_method, path, request_dict, http_options 1289 ) -> 1290 response = self._request(http_request, http_options, stream=False) 1291 response_body = ( 1292 response.response_stream[0] if response.response_stream else '' 1293 ) File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1126, in BaseApiClient._request(self, http_request, http_options, stream) 1124 return retry(self._request_once, http_request, stream) # type: ignore[no-any-return] -> 1126 return self._retry(self._request_once, http_request, stream) File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:477, in Retrying.__call__(self, fn, *args, **kwargs) 476 while True: --> 477 do = self.iter(retry_state=retry_state) 478 if isinstance(do, DoAttempt): File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:378, in BaseRetrying.iter(self, retry_state) 377 for action in self.iter_state.actions: --> 378 result = action(retry_state) 379 return result File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:420, in BaseRetrying._post_stop_check_actions..exc_check(rs) 419 if self.reraise: --> 420 raise retry_exc.reraise() 421 raise retry_exc from fut.exception() File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:187, in RetryError.reraise(self) 186 if self.last_attempt.failed: --> 187 raise self.last_attempt.result() 188 raise self File /usr/local/lib/python3.12/concurrent/futures/_base.py:449, in Future.result(self, timeout) 448 elif self._state == FINISHED: --> 449 return self.__get_result() 451 self._condition.wait(timeout) File /usr/local/lib/python3.12/concurrent/futures/_base.py:401, in Future.__get_result(self) 400 try: --> 401 raise self._exception 402 finally: 403 # Break a reference cycle with the exception in self._exception File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:480, in Retrying.__call__(self, fn, *args, **kwargs) 479 try: --> 480 result = fn(*args, **kwargs) 481 except BaseException: # noqa: B902 File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1103, in BaseApiClient._request_once(self, http_request, stream) 1096 response = self._httpx_client.request( 1097 method=http_request.method, 1098 url=http_request.url, (...) 1101 timeout=http_request.timeout, 1102 ) -> 1103 errors.APIError.raise_for_response(response) 1104 return HttpResponse( 1105 response.headers, response if stream else [response.text] 1106 ) File /usr/local/lib/python3.12/site-packages/google/genai/errors.py:108, in APIError.raise_for_response(cls, response) 107 if 400 <= status_code < 500: --> 108 raise ClientError(status_code, response_json, response) 109 elif 500 <= status_code < 600: ClientError: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} The above exception was the direct cause of the following exception: RuntimeError Traceback (most recent call last) Cell In[13], line 12 6 cursor.list_dir(relative_workspace_path=".") 9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory") ---> 12 cursor.read_file(target_file="keyboard/keyboard/_darwinkeyboard.py") 15 confluence.get_spaces(limit=10) 18 confluence.get_spaces() File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1184, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation) 1174 summary_text = "".join(summary_content) if summary_content else "" 1175 prompt_template = ( 1176 f'I will provide you with a list of code lines, each with line numbers. Please read the code and ' 1177 f'write a brief summary in plain English explaining what the code does, highlighting any ' (...) 1181 f'knowledge. Do not include the code itself in your response. ' 1182 f'Here is the code below:\n{summary_text}') -> 1184 summary = call_llm(prompt_template) 1186 # --- Construct the final message --- 1187 message = "" File /content/APIs/cursor/SimulationEngine/llm_interface.py:147, in call_llm(prompt_text, model_name, temperature, timeout_seconds) 145 except Exception as e: 146 _log_with_caller_info(logging.ERROR, f"LLM call to model {active_model_name} encountered an error: {type(e).__name__} - {e}", exc_info=True) --> 147 raise RuntimeError(f"LLM call failed: {type(e).__name__} - {e}") from e RuntimeError: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} Check Passed. No Action Needed. **E2E Execution Summary**: Status: ❌ **Block**: Action **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: RuntimeError Error Description: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} Traceback: --------------------------------------------------------------------------- ClientError Traceback (most recent call last) File /content/APIs/cursor/SimulationEngine/llm_interface.py:125, in call_llm(prompt_text, model_name, temperature, timeout_seconds) 123 _log_with_caller_info(logging.INFO, f"Initiating LLM call. Model: {active_model_name}, Temp: {temperature}, Client Read Timeout: {actual_read_timeout_for_log}.") --> 125 response = client.models.generate_content( 126 model=f"{active_model_name}", 127 contents=prompt_text, 128 config=types.GenerateContentConfig( 129 temperature=temperature, 130 http_options=http_options if http_options else None, 131 ), 132 ) 134 if response.text: File /usr/local/lib/python3.12/site-packages/google/genai/models.py:6565, in Models.generate_content(self, model, contents, config) 6564 i += 1 -> 6565 response = self._generate_content( 6566 model=model, contents=contents, config=parsed_config 6567 ) 6568 logger.info(f'AFC remote call {i} is done.') File /usr/local/lib/python3.12/site-packages/google/genai/models.py:5377, in Models._generate_content(self, model, contents, config) 5375 request_dict = _common.encode_unserializable_types(request_dict) -> 5377 response = self._api_client.request( 5378 'post', path, request_dict, http_options 5379 ) 5381 if config is not None and getattr( 5382 config, 'should_return_http_response', None 5383 ): File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1290, in BaseApiClient.request(self, http_method, path, request_dict, http_options) 1287 http_request = self._build_request( 1288 http_method, path, request_dict, http_options 1289 ) -> 1290 response = self._request(http_request, http_options, stream=False) 1291 response_body = ( 1292 response.response_stream[0] if response.response_stream else '' 1293 ) File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1126, in BaseApiClient._request(self, http_request, http_options, stream) 1124 return retry(self._request_once, http_request, stream) # type: ignore[no-any-return] -> 1126 return self._retry(self._request_once, http_request, stream) File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:477, in Retrying.__call__(self, fn, *args, **kwargs) 476 while True: --> 477 do = self.iter(retry_state=retry_state) 478 if isinstance(do, DoAttempt): File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:378, in BaseRetrying.iter(self, retry_state) 377 for action in self.iter_state.actions: --> 378 result = action(retry_state) 379 return result File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:420, in BaseRetrying._post_stop_check_actions..exc_check(rs) 419 if self.reraise: --> 420 raise retry_exc.reraise() 421 raise retry_exc from fut.exception() File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:187, in RetryError.reraise(self) 186 if self.last_attempt.failed: --> 187 raise self.last_attempt.result() 188 raise self File /usr/local/lib/python3.12/concurrent/futures/_base.py:449, in Future.result(self, timeout) 448 elif self._state == FINISHED: --> 449 return self.__get_result() 451 self._condition.wait(timeout) File /usr/local/lib/python3.12/concurrent/futures/_base.py:401, in Future.__get_result(self) 400 try: --> 401 raise self._exception 402 finally: 403 # Break a reference cycle with the exception in self._exception File /usr/local/lib/python3.12/site-packages/tenacity/__init__.py:480, in Retrying.__call__(self, fn, *args, **kwargs) 479 try: --> 480 result = fn(*args, **kwargs) 481 except BaseException: # noqa: B902 File /usr/local/lib/python3.12/site-packages/google/genai/_api_client.py:1103, in BaseApiClient._request_once(self, http_request, stream) 1096 response = self._httpx_client.request( 1097 method=http_request.method, 1098 url=http_request.url, (...) 1101 timeout=http_request.timeout, 1102 ) -> 1103 errors.APIError.raise_for_response(response) 1104 return HttpResponse( 1105 response.headers, response if stream else [response.text] 1106 ) File /usr/local/lib/python3.12/site-packages/google/genai/errors.py:108, in APIError.raise_for_response(cls, response) 107 if 400 <= status_code < 500: --> 108 raise ClientError(status_code, response_json, response) 109 elif 500 <= status_code < 600: ClientError: 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} The above exception was the direct cause of the following exception: RuntimeError Traceback (most recent call last) Cell In[13], line 12 6 cursor.list_dir(relative_workspace_path=".") 9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory") ---> 12 cursor.read_file(target_file="keyboard/keyboard/_darwinkeyboard.py") 15 confluence.get_spaces(limit=10) 18 confluence.get_spaces() File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1184, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation) 1174 summary_text = "".join(summary_content) if summary_content else "" 1175 prompt_template = ( 1176 f'I will provide you with a list of code lines, each with line numbers. Please read the code and ' 1177 f'write a brief summary in plain English explaining what the code does, highlighting any ' (...) 1181 f'knowledge. Do not include the code itself in your response. ' 1182 f'Here is the code below:\n{summary_text}') -> 1184 summary = call_llm(prompt_template) 1186 # --- Construct the final message --- 1187 message = "" File /content/APIs/cursor/SimulationEngine/llm_interface.py:147, in call_llm(prompt_text, model_name, temperature, timeout_seconds) 145 except Exception as e: 146 _log_with_caller_info(logging.ERROR, f"LLM call to model {active_model_name} encountered an error: {type(e).__name__} - {e}", exc_info=True) --> 147 raise RuntimeError(f"LLM call failed: {type(e).__name__} - {e}") from e RuntimeError: LLM call failed: ClientError - 400 INVALID_ARGUMENT. {'error': {'code': 400, 'message': 'API key expired. Please renew the API key.', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.ErrorInfo', 'reason': 'API_KEY_INVALID', 'domain': 'googleapis.com', 'metadata': {'service': 'generativelanguage.googleapis.com'}}, {'@type': 'type.googleapis.com/google.rpc.LocalizedMessage', 'locale': 'en-US', 'message': 'API key expired. Please renew the API key.'}]}} __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 7.4699
f56894d2-97f4-4025-8e9c-3406567d3863 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb gh-action zain-amir-turing 2025-11-18 09:52:57 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/b4b698d9c9f08426a726f0da23fb87501516fff7 TRUE FALSE TRUE ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error No Error Found No Error Found Non Assertion Error No Error Found No Error Found Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Final Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error **Block**: Final Assertion w/o Action **Expected:** 'Assertion Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error **E2E Execution Summary**: Status: ❌ **Block**: Final Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error __________________________________________________ **Final Assertion Correctness Summary**: Status: ❌ **Block**: Final Assertion w/o Action **Expected**: 'Assertion Error' | Found: 'Non Assertion Error' **Error Details**: ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 6.8735
b38412d9-d05e-418e-9678-34de665fdbb0 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb gh-action zain-amir-turing 2025-11-18 09:51:34 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/b00e325bd4b476b13bb904c689309b131029375d TRUE FALSE TRUE ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error No Error Found No Error Found Non Assertion Error No Error Found No Error Found Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Final Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error **Block**: Final Assertion w/o Action **Expected:** 'Assertion Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error **E2E Execution Summary**: Status: ❌ **Block**: Final Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error __________________________________________________ **Final Assertion Correctness Summary**: Status: ❌ **Block**: Final Assertion w/o Action **Expected**: 'Assertion Error' | Found: 'Non Assertion Error' **Error Details**: ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 6.9042
8f9f302d-8e5f-4686-ad0c-41ba7893c7c9 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/326_edge_1/Agent-326_edge_1-Merged.ipynb Agent-326_edge_1-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/326_edge_1/Agent-326_edge_1-Merged.ipynb gh-action mohitdodla-art 2025-11-18 09:50:42 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/3938bdfd98544fc7ba169e0e161f753790603dc6 TRUE TRUE TRUE ErrorType: AssertionError Error Description: Issue description does not match email body. Expected: 'Acme Corp escalation: Customer wants the bug to be fixed...', Got: 'this is a bug report...' Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 42 40 # 2. Assert that the description matches the email body 41 actual_description = fields.get("description", "") ---> 42 assert compare_strings(actual_description, expected_email_body), \ 43 f"Issue description does not match email body. Expected: '{expected_email_body[:100]}...', Got: '{actual_description[:100]}...'" 45 # 3. Assert that the assignee is Mark Thompson 46 assignee = fields.get("assignee", {}) AssertionError: Issue description does not match email body. Expected: 'Acme Corp escalation: Customer wants the bug to be fixed...', Got: 'this is a bug report...' No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 5.4994
429651b2-1258-40a9-bd94-4ff100652d07 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb gh-action zain-amir-turing 2025-11-18 09:49:24 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/7f0c2a221d4a1b1d8c6c9f89e694dca66aafe7de TRUE FALSE TRUE ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error No Error Found No Error Found Non Assertion Error No Error Found No Error Found Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Final Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error **Block**: Final Assertion w/o Action **Expected:** 'Assertion Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error **E2E Execution Summary**: Status: ❌ **Block**: Final Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error __________________________________________________ **Final Assertion Correctness Summary**: Status: ❌ **Block**: Final Assertion w/o Action **Expected**: 'Assertion Error' | Found: 'Non Assertion Error' **Error Details**: ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 7.0126
ad3893b3-9411-4487-82b8-95aac2b024dc N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb Agent-1649_base-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb gh-action devangjoshi-gif 2025-11-18 09:41:47 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/0e3698aa3ed5c2916f3b24324fb0e71017fee4af TRUE FALSE TRUE ErrorType: AssertionError Error Description: Assertion Failed Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[10], line 52 50 except: 51 AssertionError() ---> 52 assert assertion_1_status , "Assertion Failed" AssertionError: Assertion Failed ErrorType: AssertionError Error Description: Assertion Failed Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[16], line 52 50 except: 51 AssertionError() ---> 52 assert assertion_1_status , "Assertion Failed" AssertionError: Assertion Failed No Error Found No Error Found Assertion Error No Error Found No Error Found Assertion Error Needs Fixes Failed: Final Assertion Failure even when Action is executed. Either Final Assertion or Action needs to be fixed. Block: Final Assertion Expected: 'No Error' | Found: 'Assertion Error' Error Details: ErrorType: AssertionError Error Description: Assertion Failed Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[16], line 52 50 except: 51 AssertionError() ---> 52 assert assertion_1_status , "Assertion Failed" AssertionError: Assertion Failed Check Passed. No Action Needed. **E2E Execution Summary**: Status: ❌ **Block**: Final Assertion **Expected**: 'No Error' | Found: 'Assertion Error' **Error Details**: πŸ‘‡ ErrorType: AssertionError Error Description: Assertion Failed Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[16], line 52 50 except: 51 AssertionError() ---> 52 assert assertion_1_status , "Assertion Failed" AssertionError: Assertion Failed __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 6.0632
ffac97dc-e3d1-4ac3-a7aa-adee65bfb222 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb Agent-805_edge_1-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb gh-action saha-design 2025-11-18 09:39:13 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/c40987d1bf642b8a710b9e23b80f7f8067b379db TRUE FALSE TRUE ErrorType: NameError Error Description: name 'compare_strings' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[9], line 13 11 # Step 2: Get all media posts by this user 12 all_posts = instagram.list_all_media_posts() ---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)] 15 # Step 3: Extract event details from posts 16 event_posts = [] NameError: name 'compare_strings' is not defined ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined ErrorType: NameError Error Description: name 'compare_strings' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[15], line 13 11 # Step 2: Get all media posts by this user 12 all_posts = instagram.list_all_media_posts() ---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)] 15 # Step 3: Extract event details from posts 16 event_posts = [] NameError: name 'compare_strings' is not defined No Error Found No Error Found Non Assertion Error Non Assertion Error No Error Found Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Initial Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined **Block**: Initial Assertion **Expected:** 'No Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined **E2E Execution Summary**: Status: ❌ **Block**: Initial Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined __________________________________________________ **Final Assertion Correctness Summary**: ⚠️ There is an error that needs to fixed before Final Assertion can be tested. __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 5.1259
d8ffa71f-71f7-495b-befd-11297220bc02 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Agent-1029_base_GC-Initial_with_DB_Setup.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/1029_base_GC/Agent-1029_base_GC-Initial_with_DB_Setup.ipynb gh-action zain-amir-turing 2025-11-18 09:38:31 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/da1964752a830f3438e1710bf45f0ffd71f9e530 TRUE FALSE TRUE ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error ErrorType: FileNotFoundError Error Description: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py Traceback: --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) Cell In[13], line 12 6 cursor.list_dir(relative_workspace_path=".") 9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory") ---> 12 cursor.read_file(target_file="content/workspace/keyboard/keyboard/_darwinkeyboard.py") 15 confluence.get_spaces(limit=10) 18 confluence.get_spaces() File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1097, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation) 1094 file_entry = file_system.get(abs_target_path) 1096 if not file_entry: -> 1097 raise FileNotFoundError(f"File not found at path: {abs_target_path}") 1099 if file_entry.get("is_directory", False): 1100 raise IsADirectoryError(f"Target path is a directory, not a file: {abs_target_path}") FileNotFoundError: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[16], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error No Error Found No Error Found Non Assertion Error No Error Found Non Assertion Error Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Action Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: FileNotFoundError Error Description: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py Traceback: --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) Cell In[13], line 12 6 cursor.list_dir(relative_workspace_path=".") 9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory") ---> 12 cursor.read_file(target_file="content/workspace/keyboard/keyboard/_darwinkeyboard.py") 15 confluence.get_spaces(limit=10) 18 confluence.get_spaces() File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1097, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation) 1094 file_entry = file_system.get(abs_target_path) 1096 if not file_entry: -> 1097 raise FileNotFoundError(f"File not found at path: {abs_target_path}") 1099 if file_entry.get("is_directory", False): 1100 raise IsADirectoryError(f"Target path is a directory, not a file: {abs_target_path}") FileNotFoundError: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py **Block**: Final Assertion w/o Action **Expected:** 'Assertion Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error **E2E Execution Summary**: Status: ❌ **Block**: Action **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: FileNotFoundError Error Description: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py Traceback: --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) Cell In[13], line 12 6 cursor.list_dir(relative_workspace_path=".") 9 cursor.grep_search(query="media", include_pattern="*.py", explanation="Search for media keys in the entire keyboard directory") ---> 12 cursor.read_file(target_file="content/workspace/keyboard/keyboard/_darwinkeyboard.py") 15 confluence.get_spaces(limit=10) 18 confluence.get_spaces() File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1097, in read_file(target_file, start_line_one_indexed, end_line_one_indexed_inclusive, should_read_entire_file, explanation) 1094 file_entry = file_system.get(abs_target_path) 1096 if not file_entry: -> 1097 raise FileNotFoundError(f"File not found at path: {abs_target_path}") 1099 if file_entry.get("is_directory", False): 1100 raise IsADirectoryError(f"Target path is a directory, not a file: {abs_target_path}") FileNotFoundError: File not found at path: /content/workspace/content/workspace/keyboard/keyboard/_darwinkeyboard.py __________________________________________________ **Final Assertion Correctness Summary**: Status: ❌ **Block**: Final Assertion w/o Action **Expected**: 'Assertion Error' | Found: 'Non Assertion Error' **Error Details**: ErrorType: ValidationError Error Description: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error Traceback: --------------------------------------------------------------------------- ValidationError Traceback (most recent call last) Cell In[10], line 32 28 page_exists_as_expected = None 30 if retrieved_space_key: 31 # Use a broader query (no strict title filter), then relax-match the title locally ---> 32 pages_list_result = confluence.get_content_list( 33 spaceKey=retrieved_space_key, 34 type=expected_content_type, 35 limit=100 36 ) or [] 38 # relaxed title match: treat as match if either is a (case-insensitive) subset of the other 39 def _title_matches(candidate: str, expected: str) -> bool: File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/common_utils/tool_spec_decorator.py:158, in tool_spec..decorator..wrapper(*args, **kwargs) 156 bound_args.apply_defaults() 157 input_data = dict(bound_args.arguments) --> 158 validated_input = input_model(**input_data) 159 result = func(**validated_input.model_dump()) 160 else: 161 # No input validation, call function directly File /usr/local/lib/python3.12/site-packages/pydantic/main.py:253, in BaseModel.__init__(self, **data) 251 # `__tracebackhide__` tells pytest and some other tools to omit this function from tracebacks 252 __tracebackhide__ = True --> 253 validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self) 254 if self is not validated_self: 255 warnings.warn( 256 'A custom validator is returning a value other than `self`.\n' 257 "Returning anything other than `self` from a top level model validator isn't supported when validating via `__init__`.\n" 258 'See the `model_validator` docs (https://docs.pydantic.dev/latest/concepts/validators/#model-validators) for more details.', 259 stacklevel=2, 260 ) ValidationError: 1 validation error for GetContentListInput Value error, title is required and must be non-empty when type='page' [type=value_error, input_value={'type': 'page', 'spaceKe...start': 0, 'limit': 100}, input_type=dict] For further information visit https://errors.pydantic.dev/2.11/v/value_error __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 7.5674
9558e8bb-7c17-4500-a672-f033a6b23574 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb Agent-805_edge_1-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/805_edge_1/Agent-805_edge_1-Merged.ipynb gh-action saha-design 2025-11-18 09:34:42 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/2f0dc8e83969c25445e5726340bfd65d840e3c33 TRUE FALSE TRUE ErrorType: NameError Error Description: name 'compare_strings' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[9], line 13 11 # Step 2: Get all media posts by this user 12 all_posts = instagram.list_all_media_posts() ---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)] 15 # Step 3: Extract event details from posts 16 event_posts = [] NameError: name 'compare_strings' is not defined ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined ErrorType: NameError Error Description: name 'compare_strings' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[15], line 13 11 # Step 2: Get all media posts by this user 12 all_posts = instagram.list_all_media_posts() ---> 13 user_posts = [post for post in all_posts if compare_strings(post.get("user_id") , user_id)] 15 # Step 3: Extract event details from posts 16 event_posts = [] NameError: name 'compare_strings' is not defined No Error Found No Error Found Non Assertion Error Non Assertion Error No Error Found Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Initial Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined **Block**: Initial Assertion **Expected:** 'No Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined **E2E Execution Summary**: Status: ❌ **Block**: Initial Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: NameError Error Description: name 'google_chat' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 37 33 assert found_post_with_all_keywords, ( 34 "No Instagram post by @hardrockcafe includes the required event details (name, date, location, time)." 35 ) 36 chat_space_display_name = "event-updates" ---> 37 spaces_response = google_chat.list_spaces(pageSize=1000) 38 spaces = spaces_response.get("spaces", []) 39 Exists = False NameError: name 'google_chat' is not defined __________________________________________________ **Final Assertion Correctness Summary**: ⚠️ There is an error that needs to fixed before Final Assertion can be tested. __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 5.2186
6fb6e0da-6b4c-4da6-bac4-c86a3950ab24 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb Agent-808_base-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb gh-action visheshw-ai 2025-11-18 09:34:19 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/d03a34e11a5615dd5a0da95ec5ac18577e0339d5 TRUE FALSE TRUE ErrorType: AssertionError Error Description: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 54 51 if not page_token: 52 break ---> 54 assert found_file, f"File '{TARGET_FILE_NAME}' not found inside '{REJECTED_FOLDER_NAME}'." 57 # --- STEP 3: Resolve ABP channel --- 58 abp_channel_id = None AssertionError: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 5.9089
a060a1ca-885c-419d-8a58-95dfd7feea06 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/444_base/Agent-444_base-Merged.ipynb Agent-444_base-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/444_base/Agent-444_base-Merged.ipynb gh-action noorainr-hub 2025-11-18 09:33:58 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/8772e2fbfef80cf36401b255e56029835331bf19 TRUE FALSE TRUE ErrorType: AssertionError Error Description: Final Assertion Failed: Expected issue 'ISSUE-4' to be assigned to user 'Sarah', but assignee is '{'name': 'unassigned'}'. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 73 70 assignee = issue_fields.get('assignee') 71 assignee_name = assignee.get('name') if assignee else "" ---> 73 assert compare_strings(assignee_name, jira_user_account_id), ( 74 f"Final Assertion Failed: Expected issue '{final_issue_id}' to be assigned to user " 75 f"'{jira_user_account_id}', but assignee is '{assignee}'." 76 ) 78 # 2. Status is "In Review" 79 status_value = issue_fields.get('status', "") AssertionError: Final Assertion Failed: Expected issue 'ISSUE-4' to be assigned to user 'Sarah', but assignee is '{'name': 'unassigned'}'. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 6.7907
3e14d987-25a5-4f16-b01d-28a77db87ee2 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/1111_base/Agent-1111_base-Merged.ipynb Agent-1111_base-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/1111_base/Agent-1111_base-Merged.ipynb gh-action roshini-turing 2025-11-18 09:28:49 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/884cca882b453a4487233fe29f72bf97a0e2bcdf TRUE FALSE TRUE ErrorType: AssertionError Error Description: ❌ Mismatch in Jira issues for compliance posts. Expected 3 issues with matching descriptions in project 'Compliances-2025'. Found 0 matching issues in Jira. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 69 66 except: 67 matching_keys = [] 68 assert ( ---> 69 len(expected_jira_issues) > 0 and 70 matching_keys and # all expected keys are present in jira_issue_map (normalized) 71 all( 72 compare_strings(jira_issue_map.get(post_id, ""), expected_text) 73 for post_id, expected_text in expected_jira_issues.items() 74 ) 75 ), ( 76 f"❌ Mismatch in Jira issues for compliance posts. " 77 f"Expected {len(expected_jira_issues)} issues with matching descriptions in project '{JIRA_PROJECT_NAME}'. " 78 f"Found {len([k for k in expected_jira_issues.keys() if k in jira_issue_map])} matching issues in Jira." 79 ) AssertionError: ❌ Mismatch in Jira issues for compliance posts. Expected 3 issues with matching descriptions in project 'Compliances-2025'. Found 0 matching issues in Jira. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 4.6692
f95bb282-64fb-426d-a477-2ae794566dd8 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb Agent-808_base-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Other_Tools_and_Services/808_base/Agent-808_base-Merged.ipynb gh-action visheshw-ai 2025-11-18 09:26:24 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/febc8b5f91868db5a7ce25b790b2edc574ee7145 TRUE FALSE TRUE ErrorType: AssertionError Error Description: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 54 51 if not page_token: 52 break ---> 54 assert found_file, f"File '{TARGET_FILE_NAME}' not found inside '{REJECTED_FOLDER_NAME}'." 57 # --- STEP 3: Resolve ABP channel --- 58 abp_channel_id = None AssertionError: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. ErrorType: NameError Error Description: name 'page_token' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[12], line 17 3 import gdrive 6 slack.list_channels( 7 cursor=None, 8 exclude_archived=False, 9 limit=200, 10 types="public_channel,private_channel,mpim,im" 11 ) 14 gdrive.list_user_files( 15 q=f"name = 'Rejected Proposals' and mimeType = 'application/vnd.google-apps.folder' and trashed = false", 16 pageSize=100, ---> 17 pageToken=page_token, 18 includeItemsFromAllDrives=True, 19 supportsAllDrives=True, 20 spaces="drive" 21 ) 24 gdrive.list_user_files( 25 q=f"name = 'ABP_Pending_Project_Proposal.docx' and trashed = false", 26 pageSize=100, (...) 29 supportsAllDrives=True, 30 spaces="drive") 33 gdrive.update_file_metadata_or_content( 34 fileId="file_3", 35 addParents="file_4", 36 removeParents="", 37 enforceSingleParent=True 38 ) NameError: name 'page_token' is not defined ErrorType: AssertionError Error Description: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[15], line 54 51 if not page_token: 52 break ---> 54 assert found_file, f"File '{TARGET_FILE_NAME}' not found inside '{REJECTED_FOLDER_NAME}'." 57 # --- STEP 3: Resolve ABP channel --- 58 abp_channel_id = None AssertionError: File 'ABP_Pending_Project_Proposal.docx' not found inside 'Rejected Proposals'. No Error Found No Error Found Assertion Error No Error Found Non Assertion Error Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Action Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: NameError Error Description: name 'page_token' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[12], line 17 3 import gdrive 6 slack.list_channels( 7 cursor=None, 8 exclude_archived=False, 9 limit=200, 10 types="public_channel,private_channel,mpim,im" 11 ) 14 gdrive.list_user_files( 15 q=f"name = 'Rejected Proposals' and mimeType = 'application/vnd.google-apps.folder' and trashed = false", 16 pageSize=100, ---> 17 pageToken=page_token, 18 includeItemsFromAllDrives=True, 19 supportsAllDrives=True, 20 spaces="drive" 21 ) 24 gdrive.list_user_files( 25 q=f"name = 'ABP_Pending_Project_Proposal.docx' and trashed = false", 26 pageSize=100, (...) 29 supportsAllDrives=True, 30 spaces="drive") 33 gdrive.update_file_metadata_or_content( 34 fileId="file_3", 35 addParents="file_4", 36 removeParents="", 37 enforceSingleParent=True 38 ) NameError: name 'page_token' is not defined Check Passed. No Action Needed. **E2E Execution Summary**: Status: ❌ **Block**: Action **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: NameError Error Description: name 'page_token' is not defined Traceback: --------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[12], line 17 3 import gdrive 6 slack.list_channels( 7 cursor=None, 8 exclude_archived=False, 9 limit=200, 10 types="public_channel,private_channel,mpim,im" 11 ) 14 gdrive.list_user_files( 15 q=f"name = 'Rejected Proposals' and mimeType = 'application/vnd.google-apps.folder' and trashed = false", 16 pageSize=100, ---> 17 pageToken=page_token, 18 includeItemsFromAllDrives=True, 19 supportsAllDrives=True, 20 spaces="drive" 21 ) 24 gdrive.list_user_files( 25 q=f"name = 'ABP_Pending_Project_Proposal.docx' and trashed = false", 26 pageSize=100, (...) 29 supportsAllDrives=True, 30 spaces="drive") 33 gdrive.update_file_metadata_or_content( 34 fileId="file_3", 35 addParents="file_4", 36 removeParents="", 37 enforceSingleParent=True 38 ) NameError: name 'page_token' is not defined __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 5.9539
35f33eef-e8f8-48b1-9e8f-98c7fb21e2f0 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/User_Simulation_-_MT/241_base_US_ToolShift/Agent-241_base_US_ToolShift-Simulation.ipynb Agent-241_base_US_ToolShift-Simulation.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/User_Simulation_-_MT/241_base_US_ToolShift/Agent-241_base_US_ToolShift-Simulation.ipynb gh-action ysmayur23 2025-11-18 09:25:06 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/99348fefb7740cfd5d00fda268d8c24196bd1ec4 TRUE FALSE TRUE ErrorType: AssertionError Error Description: The number of messages in the Slack channel "dev-team" is not as expected. Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[9], line 55 52 except Exception: 53 messages = [] ---> 55 assert len(messages) == 4, ( 56 f'The number of messages in the Slack channel "{slack_channel_name}" is not as expected.' 57 ) 59 # 3. Number of messages in Google Chat space "mobile-bug-tracking" is now 4 60 chat_space_name = None AssertionError: The number of messages in the Slack channel "dev-team" is not as expected. No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 6.574
f5157660-fb5e-41cb-9b5b-d715935f52e3 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb Agent-1649_base-Merged.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/Cursor_1649_base/Agent-1649_base-Merged.ipynb gh-action devangjoshi-gif 2025-11-18 09:21:14 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/36f8173c999fc647eb7bdcce46f6613dffd1daf9 TRUE FALSE TRUE ErrorType: CommandExecutionError Error Description: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) Traceback: --------------------------------------------------------------------------- CommandExecutionError Traceback (most recent call last) Cell In[10], line 48 5 unit_test=textwrap.dedent(''' 6 import sys 7 import unittest (...) 44 if __name__ == "__main__": 45 unittest.main()''') 47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test") ---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0 49 assert assertion_1_status , "Assertion Failed" File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background) 1721 raise CommandExecutionError(result_dict['message']) 1722 except CommandExecutionError as ce: 1723 # Preserve detailed command outputs without re-wrapping -> 1724 raise ce 1725 except Exception as e: 1726 # Catch-all for other unexpected errors 1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True) File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background) 1648 raise CommandExecutionError(result_dict['message']) 1649 except CommandExecutionError as ce: 1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message -> 1651 raise ce 1652 except Exception as e: 1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}" File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background) 1635 detailed_message = ( 1636 f"Command failed with exit code {process_obj.returncode}.\n" 1637 f"--- STDOUT ---\n{stdout_text}\n" 1638 f"--- STDERR ---\n{stderr_text}" 1639 ) 1640 result_dict['message'] = detailed_message -> 1641 raise CommandExecutionError(detailed_message) 1642 else: 1643 pass # Command succeeded, continue to state update CommandExecutionError: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) ErrorType: CommandExecutionError Error Description: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) Traceback: --------------------------------------------------------------------------- CommandExecutionError Traceback (most recent call last) Cell In[16], line 48 5 unit_test=textwrap.dedent(''' 6 import sys 7 import unittest (...) 44 if __name__ == "__main__": 45 unittest.main()''') 47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test") ---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0 49 assert assertion_1_status , "Assertion Failed" File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background) 1721 raise CommandExecutionError(result_dict['message']) 1722 except CommandExecutionError as ce: 1723 # Preserve detailed command outputs without re-wrapping -> 1724 raise ce 1725 except Exception as e: 1726 # Catch-all for other unexpected errors 1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True) File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background) 1648 raise CommandExecutionError(result_dict['message']) 1649 except CommandExecutionError as ce: 1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message -> 1651 raise ce 1652 except Exception as e: 1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}" File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background) 1635 detailed_message = ( 1636 f"Command failed with exit code {process_obj.returncode}.\n" 1637 f"--- STDOUT ---\n{stdout_text}\n" 1638 f"--- STDERR ---\n{stderr_text}" 1639 ) 1640 result_dict['message'] = detailed_message -> 1641 raise CommandExecutionError(detailed_message) 1642 else: 1643 pass # Command succeeded, continue to state update CommandExecutionError: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) No Error Found No Error Found Non Assertion Error No Error Found No Error Found Non Assertion Error Needs Fixes Failed: One of the code block contains Non Assertion Error(s) Block: Final Assertion Expected: 'No Error' | Found: 'Non Assertion Error' Error Details: ErrorType: CommandExecutionError Error Description: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) Traceback: --------------------------------------------------------------------------- CommandExecutionError Traceback (most recent call last) Cell In[16], line 48 5 unit_test=textwrap.dedent(''' 6 import sys 7 import unittest (...) 44 if __name__ == "__main__": 45 unittest.main()''') 47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test") ---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0 49 assert assertion_1_status , "Assertion Failed" File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background) 1721 raise CommandExecutionError(result_dict['message']) 1722 except CommandExecutionError as ce: 1723 # Preserve detailed command outputs without re-wrapping -> 1724 raise ce 1725 except Exception as e: 1726 # Catch-all for other unexpected errors 1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True) File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background) 1648 raise CommandExecutionError(result_dict['message']) 1649 except CommandExecutionError as ce: 1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message -> 1651 raise ce 1652 except Exception as e: 1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}" File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background) 1635 detailed_message = ( 1636 f"Command failed with exit code {process_obj.returncode}.\n" 1637 f"--- STDOUT ---\n{stdout_text}\n" 1638 f"--- STDERR ---\n{stderr_text}" 1639 ) 1640 result_dict['message'] = detailed_message -> 1641 raise CommandExecutionError(detailed_message) 1642 else: 1643 pass # Command succeeded, continue to state update CommandExecutionError: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) **Block**: Final Assertion w/o Action **Expected:** 'Assertion Error' | Found: 'Non Assertion Error' Error Details πŸ‘‡ ErrorType: CommandExecutionError Error Description: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) Traceback: --------------------------------------------------------------------------- CommandExecutionError Traceback (most recent call last) Cell In[10], line 48 5 unit_test=textwrap.dedent(''' 6 import sys 7 import unittest (...) 44 if __name__ == "__main__": 45 unittest.main()''') 47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test") ---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0 49 assert assertion_1_status , "Assertion Failed" File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background) 1721 raise CommandExecutionError(result_dict['message']) 1722 except CommandExecutionError as ce: 1723 # Preserve detailed command outputs without re-wrapping -> 1724 raise ce 1725 except Exception as e: 1726 # Catch-all for other unexpected errors 1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True) File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background) 1648 raise CommandExecutionError(result_dict['message']) 1649 except CommandExecutionError as ce: 1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message -> 1651 raise ce 1652 except Exception as e: 1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}" File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background) 1635 detailed_message = ( 1636 f"Command failed with exit code {process_obj.returncode}.\n" 1637 f"--- STDOUT ---\n{stdout_text}\n" 1638 f"--- STDERR ---\n{stderr_text}" 1639 ) 1640 result_dict['message'] = detailed_message -> 1641 raise CommandExecutionError(detailed_message) 1642 else: 1643 pass # Command succeeded, continue to state update CommandExecutionError: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) **E2E Execution Summary**: Status: ❌ **Block**: Final Assertion **Expected**: 'No Error' | Found: 'Non Assertion Error' **Error Details**: πŸ‘‡ ErrorType: CommandExecutionError Error Description: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) Traceback: --------------------------------------------------------------------------- CommandExecutionError Traceback (most recent call last) Cell In[16], line 48 5 unit_test=textwrap.dedent(''' 6 import sys 7 import unittest (...) 44 if __name__ == "__main__": 45 unittest.main()''') 47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test") ---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0 49 assert assertion_1_status , "Assertion Failed" File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background) 1721 raise CommandExecutionError(result_dict['message']) 1722 except CommandExecutionError as ce: 1723 # Preserve detailed command outputs without re-wrapping -> 1724 raise ce 1725 except Exception as e: 1726 # Catch-all for other unexpected errors 1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True) File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background) 1648 raise CommandExecutionError(result_dict['message']) 1649 except CommandExecutionError as ce: 1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message -> 1651 raise ce 1652 except Exception as e: 1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}" File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background) 1635 detailed_message = ( 1636 f"Command failed with exit code {process_obj.returncode}.\n" 1637 f"--- STDOUT ---\n{stdout_text}\n" 1638 f"--- STDERR ---\n{stderr_text}" 1639 ) 1640 result_dict['message'] = detailed_message -> 1641 raise CommandExecutionError(detailed_message) 1642 else: 1643 pass # Command succeeded, continue to state update CommandExecutionError: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) __________________________________________________ **Final Assertion Correctness Summary**: Status: ❌ **Block**: Final Assertion w/o Action **Expected**: 'Assertion Error' | Found: 'Non Assertion Error' **Error Details**: ErrorType: CommandExecutionError Error Description: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) Traceback: --------------------------------------------------------------------------- CommandExecutionError Traceback (most recent call last) Cell In[10], line 48 5 unit_test=textwrap.dedent(''' 6 import sys 7 import unittest (...) 44 if __name__ == "__main__": 45 unittest.main()''') 47 cursor.edit_file("test.py", code_edit=unit_test, instructions="dump unit test") ---> 48 assertion_1_status = cursor.run_terminal_cmd(command= "python test.py", explanation= "run unit test").get("returncode",None) == 0 49 assert assertion_1_status , "Assertion Failed" File /content/APIs/common_utils/error_handling.py:332, in handle_api_errors..decorator..wrapper(*args, **kwargs) 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. --> 332 return error_format_handler( 333 caught_exception, 334 func_module_name, 335 include_mini_traceback_for_causes, 336 original_func_path=None, # Pass None explicitly for natural errors 337 service_name=service_name 338 ) File /content/APIs/common_utils/error_handling.py:261, in error_format_handler(caught_exception, func_module_name, include_mini_traceback_for_causes, original_func_path, service_name) 259 print_log(json.dumps(formatted_error, indent=2)) 260 print_log("-------------------------------") --> 261 raise caught_exception File /content/APIs/common_utils/error_handling.py:327, in handle_api_errors..decorator..wrapper(*args, **kwargs) 324 pass 326 try: --> 327 return func_to_decorate(*args, **kwargs) 328 except Exception as caught_exception: 329 # Call the centralized processing function. 330 # For natural errors, original_func_path is None, 331 # so the module/function will be derived from the traceback. 332 return error_format_handler( 333 caught_exception, 334 func_module_name, (...) 337 service_name=service_name 338 ) File /content/APIs/common_utils/ErrorSimulation.py:342, in ErrorSimulator.get_error_simulation_decorator..decorator..wrapper(*args, **kwargs) 340 error_type_to_inject = self._select_error_type(full_func_path) 341 if not error_type_to_inject: --> 342 return original_func(*args, **kwargs) # No error selected based on probability/limits 344 # 3. Get details for the selected error 345 selected_error_details = next( 346 (d for d in self.error_definitions.get(full_func_path, []) 347 if d["exception"] == error_type_to_inject), 348 None 349 ) File /content/APIs/common_utils/fc_checkers.py:313, in validate_schema_fc_checkers..decorator..wrapper(*args, **kwargs) 310 effective_function_name = function_name or func.__name__ 312 if not manager.should_validate(service_name, effective_function_name): --> 313 return func(*args, **kwargs) 315 log_to_csv, csv_path = manager.get_logging_preferences(service_name, effective_function_name) 316 should_raise_errors = manager.should_raise_errors(service_name, effective_function_name) File /content/APIs/common_utils/mutation_manager.py:417, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) 416 if not mutation_name: # pragma: no cover --> 417 raise e 419 service_root = MutationManager._get_service_root(service_name) 420 config_path = os.path.join( 421 service_root, 422 "SimulationEngine", "static_mutation_configs", 423 f"{mutation_name}.json" 424 ) File /content/APIs/common_utils/mutation_manager.py:413, in MutationManager.get_error_mutator_decorator_for_service..decorator..wrapper(*args, **kwargs) 410 @functools.wraps(func) 411 def wrapper(*args: Any, **kwargs: Any) -> Any: 412 try: --> 413 return func(*args, **kwargs) 414 except Exception as e: 415 mutation_name = MutationManager.get_current_mutation_name_for_service(service_name) File /content/APIs/common_utils/api_guardrails.py:471, in _ApiGuardrailManager.decorator..wrapper..inner_wrapper(*args, **kwargs) 468 if self.should_validate_db_state_signature_change and db_to_validate: 469 pre_sig, pre_db_state_str = self._get_db_validation_signature(db_model, db_to_validate) --> 471 response = func(*args, **kwargs) 473 # OUTPUT_JSON_FLEXIBLE: Try to serialize with default=str, log if fails (always logs if fails) 474 if self.should_check_output_json_flexible and response is not None: File /content/APIs/cursor/SimulationEngine/utils.py:177, in with_common_file_system..wrapper(*args, **kwargs) 174 @wraps(func) 175 def wrapper(*args, **kwargs) -> T: 176 if not ENABLE_COMMON_FILE_SYSTEM: --> 177 return func(*args, **kwargs) 178 if not COMMON_DIRECTORY: 179 raise ValueError("Common directory not set. Call update_common_directory first.") File /content/APIs/common_utils/tool_spec_decorator.py:213, in tool_spec..decorator..wrapper(*args, **kwargs) 211 @wraps(func) 212 def wrapper(*args, **kwargs): --> 213 return func(*args, **kwargs) File /content/APIs/cursor/cursorAPI.py:1724, in run_terminal_cmd(command, explanation, is_background) 1721 raise CommandExecutionError(result_dict['message']) 1722 except CommandExecutionError as ce: 1723 # Preserve detailed command outputs without re-wrapping -> 1724 raise ce 1725 except Exception as e: 1726 # Catch-all for other unexpected errors 1727 _log_init_message(logging.ERROR, f"Unexpected error during command execution phase for '{command}': {type(e).__name__} - {e}", exc_info=True) File /content/APIs/cursor/cursorAPI.py:1651, in run_terminal_cmd(command, explanation, is_background) 1648 raise CommandExecutionError(result_dict['message']) 1649 except CommandExecutionError as ce: 1650 # Re-raise without wrapping so detailed stdout/stderr is preserved in the message -> 1651 raise ce 1652 except Exception as e: 1653 command_message = f"Execution failed for foreground process '{command}': {type(e).__name__} - {e}" File /content/APIs/cursor/cursorAPI.py:1641, in run_terminal_cmd(command, explanation, is_background) 1635 detailed_message = ( 1636 f"Command failed with exit code {process_obj.returncode}.\n" 1637 f"--- STDOUT ---\n{stdout_text}\n" 1638 f"--- STDERR ---\n{stderr_text}" 1639 ) 1640 result_dict['message'] = detailed_message -> 1641 raise CommandExecutionError(detailed_message) 1642 else: 1643 pass # Command succeeded, continue to state update CommandExecutionError: Command failed with exit code 1. --- STDOUT --- CURS_PWD_MARKER_V1:/tmp/shared_sandbox_cursor_9w9xa7ad --- STDERR --- /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) /tmp/shared_sandbox_cursor_9w9xa7ad/test.py:10: DeprecationWarning: The mouse sub-library is deprecated and will be removed in future versions. Please use the standalone package `mouse`. import keyboard.mouse as mouse EE ====================================================================== ERROR: test_n_clicks_five (__main__.TestMouseClicks.test_n_clicks_five) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 32, in test_n_clicks_five mouse.n_clicks(5) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ====================================================================== ERROR: test_n_clicks_zero (__main__.TestMouseClicks.test_n_clicks_zero) ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/shared_sandbox_cursor_9w9xa7ad/test.py", line 36, in test_n_clicks_zero mouse.n_clicks(0) ^^^^^^^^^^^^^^ AttributeError: module 'keyboard.mouse' has no attribute 'n_clicks'. Did you mean: 'on_click'? ---------------------------------------------------------------------- Ran 2 tests in 0.001s FAILED (errors=2) __________________________________________________ **Next Action Item:** ➑️ Please fix the issues mentioned above πŸ› οΈ 0.1.7.2 e2e-check v1.0.4 7.0183
8d11d371-038e-4a21-8171-83b644950b86 N/A https://colab.research.google.com/github/Turing-Generalized-Agents/google-agents-colabs/blob/main/Generalized_Agents_Colabs/Cursor/351_base_GC/Agent-351_base_GC-Initial_with_DB_Setup.ipynb Agent-351_base_GC-Initial_with_DB_Setup.ipynb Turing-Generalized-Agents/google-agents-colabs main Generalized_Agents_Colabs/Cursor/351_base_GC/Agent-351_base_GC-Initial_with_DB_Setup.ipynb gh-action thiagomartinsdeoliviera-turing 2025-11-18 09:17:57 https://github.com/Turing-Generalized-Agents/google-agents-colabs/commit/c70835d5c966e13b10140f2b91a937e32eff7abb TRUE FALSE TRUE ErrorType: AssertionError Error Description: Expected exactly 1 email in Sent folder to 'matt@sivel.net' with subject containing 'maintenance' and 'GitHub', but found 0 Traceback: --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Cell In[10], line 35 32 sent_messages = sent_messages_response.get('messages', []) 34 # Assert that there is exactly one email in Sent folder meeting all criteria ---> 35 assert len(sent_messages) == 1, ( 36 f"Expected exactly 1 email in Sent folder to '{author_email}' with subject containing " 37 f"'maintenance' and 'GitHub', but found {len(sent_messages)}" 38 ) 40 # Verify the email properties 41 sent_email = sent_messages[0] AssertionError: Expected exactly 1 email in Sent folder to 'matt@sivel.net' with subject containing 'maintenance' and 'GitHub', but found 0 No Error Found No Error Found Assertion Error No Error Found No Error Found No Error Found Good To Go Passed: All Steps executed successfully and FA failed w/o action. Check Passed. No Action Needed. Check Passed. No Action Needed. **E2E Execution Summary**: Status: βœ… Check Passed: Sample Ran E2E Successfully. ✨ __________________________________________________ **Final Assertion Correctness Summary**: Status: βœ… Check Passed: Final Assertion Failing in absence of the Action. πŸ‘ __________________________________________________ **Next Action Item:** ➑️ No Action Needed βœ… 0.1.7.2 e2e-check v1.0.4 5.8503