diff --git a/src/timmy/tools.py b/src/timmy/tools.py index bf3e409c..035a9157 100644 --- a/src/timmy/tools.py +++ b/src/timmy/tools.py @@ -462,7 +462,8 @@ def consult_grok(query: str) -> str: inv = ln.create_invoice(sats, f"Grok query: {query[:_INVOICE_MEMO_MAX_LEN]}") invoice_info = f"\n[Lightning invoice: {sats} sats — {inv.payment_request[:40]}...]" except (ImportError, OSError, ValueError) as exc: - logger.warning("Tool execution failed (Lightning invoice): %s", exc) + logger.error("Lightning invoice creation failed: %s", exc) + return "Error: Failed to create Lightning invoice. Please check logs." result = backend.run(query) @@ -533,7 +534,8 @@ def _register_web_fetch_tool(toolkit: Toolkit) -> None: try: toolkit.register(web_fetch, name="web_fetch") except Exception as exc: - logger.warning("Tool execution failed (web_fetch registration): %s", exc) + logger.error("Failed to register web_fetch tool: %s", exc) + raise def _register_core_tools(toolkit: Toolkit, base_path: Path) -> None: @@ -565,8 +567,8 @@ def _register_grok_tool(toolkit: Toolkit) -> None: toolkit.register(consult_grok, name="consult_grok") logger.info("Grok consultation tool registered") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (Grok registration): %s", exc) - logger.debug("Grok tool not available") + logger.error("Failed to register Grok tool: %s", exc) + raise def _register_memory_tools(toolkit: Toolkit) -> None: @@ -579,8 +581,8 @@ def _register_memory_tools(toolkit: Toolkit) -> None: toolkit.register(memory_read, name="memory_read") toolkit.register(memory_forget, name="memory_forget") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (Memory tools registration): %s", exc) - logger.debug("Memory tools not available") + logger.error("Failed to register Memory tools: %s", exc) + raise def _register_agentic_loop_tool(toolkit: Toolkit) -> None: @@ -628,8 +630,8 @@ def _register_agentic_loop_tool(toolkit: Toolkit) -> None: toolkit.register(plan_and_execute, name="plan_and_execute") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (plan_and_execute registration): %s", exc) - logger.debug("plan_and_execute tool not available") + logger.error("Failed to register plan_and_execute tool: %s", exc) + raise def _register_introspection_tools(toolkit: Toolkit) -> None: @@ -647,15 +649,16 @@ def _register_introspection_tools(toolkit: Toolkit) -> None: toolkit.register(get_memory_status, name="get_memory_status") toolkit.register(run_self_tests, name="run_self_tests") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (Introspection tools registration): %s", exc) - logger.debug("Introspection tools not available") + logger.error("Failed to register Introspection tools: %s", exc) + raise try: from timmy.mcp_tools import update_gitea_avatar toolkit.register(update_gitea_avatar, name="update_gitea_avatar") except (ImportError, AttributeError) as exc: - logger.debug("update_gitea_avatar tool not available: %s", exc) + logger.error("Failed to register update_gitea_avatar tool: %s", exc) + raise try: from timmy.session_logger import self_reflect, session_history @@ -663,8 +666,8 @@ def _register_introspection_tools(toolkit: Toolkit) -> None: toolkit.register(session_history, name="session_history") toolkit.register(self_reflect, name="self_reflect") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (session_history registration): %s", exc) - logger.debug("session_history tool not available") + logger.error("Failed to register session_history tool: %s", exc) + raise def _register_delegation_tools(toolkit: Toolkit) -> None: @@ -676,8 +679,8 @@ def _register_delegation_tools(toolkit: Toolkit) -> None: toolkit.register(delegate_to_kimi, name="delegate_to_kimi") toolkit.register(list_swarm_agents, name="list_swarm_agents") except Exception as exc: - logger.warning("Tool execution failed (Delegation tools registration): %s", exc) - logger.debug("Delegation tools not available") + logger.error("Failed to register Delegation tools: %s", exc) + raise def _register_gematria_tool(toolkit: Toolkit) -> None: @@ -687,8 +690,8 @@ def _register_gematria_tool(toolkit: Toolkit) -> None: toolkit.register(gematria, name="gematria") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (Gematria registration): %s", exc) - logger.debug("Gematria tool not available") + logger.error("Failed to register Gematria tool: %s", exc) + raise def _register_artifact_tools(toolkit: Toolkit) -> None: @@ -699,8 +702,8 @@ def _register_artifact_tools(toolkit: Toolkit) -> None: toolkit.register(jot_note, name="jot_note") toolkit.register(log_decision, name="log_decision") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (Artifact tools registration): %s", exc) - logger.debug("Artifact tools not available") + logger.error("Failed to register Artifact tools: %s", exc) + raise def _register_thinking_tools(toolkit: Toolkit) -> None: @@ -710,8 +713,8 @@ def _register_thinking_tools(toolkit: Toolkit) -> None: toolkit.register(search_thoughts, name="thought_search") except (ImportError, AttributeError) as exc: - logger.warning("Tool execution failed (Thinking tools registration): %s", exc) - logger.debug("Thinking tools not available") + logger.error("Failed to register Thinking tools: %s", exc) + raise def create_full_toolkit(base_dir: str | Path | None = None):