From b9272ddf523c10b9160c03a1662d3332c18faa37 Mon Sep 17 00:00:00 2001 From: enitrat Date: Fri, 24 Oct 2025 15:57:42 +0200 Subject: [PATCH 1/3] dev: remove unused callback --- python/src/cairo_coder/core/rag_pipeline.py | 25 --------------------- python/src/cairo_coder/server/app.py | 6 +---- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/python/src/cairo_coder/core/rag_pipeline.py b/python/src/cairo_coder/core/rag_pipeline.py index ce498de..7245861 100644 --- a/python/src/cairo_coder/core/rag_pipeline.py +++ b/python/src/cairo_coder/core/rag_pipeline.py @@ -13,7 +13,6 @@ import langsmith as ls import structlog from dspy.adapters import XMLAdapter -from dspy.utils.callback import BaseCallback from langsmith import traceable from cairo_coder.core.config import VectorStoreConfig @@ -35,30 +34,6 @@ SOURCE_PREVIEW_MAX_LEN = 200 -# 1. Define a custom callback class that extends BaseCallback class -class AgentLoggingCallback(BaseCallback): - def on_module_start( - self, - call_id: str, - instance: Any, - inputs: dict[str, Any], - ) -> None: - logger.debug("Starting module", call_id=call_id, inputs=inputs) - - # 2. Implement on_module_end handler to run a custom logging code. - def on_module_end( - self, call_id: str, outputs: dict[str, Any], exception: Exception | None - ) -> None: - step = "Reasoning" if self._is_reasoning_output(outputs) else "Acting" - logger.debug(f"== {step} Step ===") - for k, v in outputs.items(): - logger.debug(f" {k}: {v}") - logger.debug("\n") - - def _is_reasoning_output(self, outputs: dict[str, Any]) -> bool: - return any(k.startswith("Thought") for k in outputs if isinstance(k, str)) - - @dataclass class RagPipelineConfig: """Configuration for RAG Pipeline.""" diff --git a/python/src/cairo_coder/server/app.py b/python/src/cairo_coder/server/app.py index 98f464b..bf185e5 100644 --- a/python/src/cairo_coder/server/app.py +++ b/python/src/cairo_coder/server/app.py @@ -26,10 +26,7 @@ from cairo_coder.config.manager import ConfigManager from cairo_coder.core.agent_factory import AgentFactory, create_agent_factory from cairo_coder.core.config import VectorStoreConfig -from cairo_coder.core.rag_pipeline import ( - AgentLoggingCallback, - RagPipeline, -) +from cairo_coder.core.rag_pipeline import RagPipeline from cairo_coder.core.types import Message, Role, StreamEventType from cairo_coder.dspy.document_retriever import SourceFilteredPgVectorRM from cairo_coder.dspy.suggestion_program import SuggestionGeneration @@ -188,7 +185,6 @@ def __init__( lm=dspy.LM("gemini/gemini-flash-latest", max_tokens=30000, cache=False), adapter=ChatAdapter(), embedder=embedder, - callbacks=[AgentLoggingCallback()], track_usage=True, ) From a732947e509c3c7f9308fee0471e813f3c61774f Mon Sep 17 00:00:00 2001 From: enitrat Date: Fri, 24 Oct 2025 16:00:33 +0200 Subject: [PATCH 2/3] remove unused files --- python/src/cairo_coder/__init__.py | 1 - python/src/cairo_coder/datasets/__init__.py | 2 -- python/src/cairo_coder/utils/__init__.py | 1 - python/src/scripts/__init__.py | 1 - python/src/scripts/starklings_evaluation/__init__.py | 3 --- 5 files changed, 8 deletions(-) delete mode 100644 python/src/cairo_coder/__init__.py delete mode 100644 python/src/cairo_coder/datasets/__init__.py delete mode 100644 python/src/cairo_coder/utils/__init__.py delete mode 100644 python/src/scripts/__init__.py delete mode 100644 python/src/scripts/starklings_evaluation/__init__.py diff --git a/python/src/cairo_coder/__init__.py b/python/src/cairo_coder/__init__.py deleted file mode 100644 index 84408e2..0000000 --- a/python/src/cairo_coder/__init__.py +++ /dev/null @@ -1 +0,0 @@ -""""Cairo Coder""" diff --git a/python/src/cairo_coder/datasets/__init__.py b/python/src/cairo_coder/datasets/__init__.py deleted file mode 100644 index 4521e19..0000000 --- a/python/src/cairo_coder/datasets/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -"""Datasets utilities: extractors and CLI helpers.""" - diff --git a/python/src/cairo_coder/utils/__init__.py b/python/src/cairo_coder/utils/__init__.py deleted file mode 100644 index 96ccd9d..0000000 --- a/python/src/cairo_coder/utils/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Utility functions for Cairo Coder.""" diff --git a/python/src/scripts/__init__.py b/python/src/scripts/__init__.py deleted file mode 100644 index 2e4ec7f..0000000 --- a/python/src/scripts/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Scripts package for CLI entrypoints and utilities.""" diff --git a/python/src/scripts/starklings_evaluation/__init__.py b/python/src/scripts/starklings_evaluation/__init__.py deleted file mode 100644 index a0896c5..0000000 --- a/python/src/scripts/starklings_evaluation/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -"""Starklings evaluation package for testing Cairo code generation.""" - -__version__ = "0.1.0" From 3939a9f7bff130c6830b99e807e14a84e7ea634a Mon Sep 17 00:00:00 2001 From: enitrat Date: Fri, 24 Oct 2025 16:03:51 +0200 Subject: [PATCH 3/3] update README --- README.md | 6 ++++++ python/src/cairo_coder/__init__.py | 0 python/src/scripts/__init__.py | 0 3 files changed, 6 insertions(+) create mode 100644 python/src/cairo_coder/__init__.py create mode 100644 python/src/scripts/__init__.py diff --git a/README.md b/README.md index 9364ab3..3bab81d 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ The most powerful open-source [CairoLang](https://www.cairo-lang.org/) generator ## Table of Contents +- [Use Cairo Coder for Free](#use-cairo-coder-for-free) - [Credits](#credits) - [Overview](#overview) - [Features](#features) @@ -23,6 +24,10 @@ The most powerful open-source [CairoLang](https://www.cairo-lang.org/) generator - [Development](#development) - [Contribution](#contribution) +## Use Cairo Coder for Free + +Cairo Coder is free to use up to a certain limit, hosted by Kasar Labs. You can use it either as an MCP that enhances your agentic tools, or as a standalone API. [Get an API Key now](https://www.cairo-coder.com/). + ## Credits This project is based on [Starknet Agent](https://github.com/cairo-book/starknet-agent), an open-source AI search engine for the Starknet ecosystem. We've adapted and focused the technology to create a specialized tool for Cairo code generation. We're grateful for these initial contributions which provided a strong foundation for Cairo Coder. @@ -38,6 +43,7 @@ Cairo Coder is an intelligent code generation service that makes writing Cairo s - **OpenAI Compatible API**: Interface compatible with the OpenAI API format for easy integration. - **Multi-LLM Support**: Works with OpenAI, Anthropic, Google Gemini, and other providers. - **Source-Informed Generation**: Code is generated based on up-to-date Cairo documentation, ensuring correctness. +- **MCP Support**: Supports the MCP protocol for easy integration with Agentic tools. See [cairo-coder-mcp](https://github.com/KasarLabs/cairo-coder-mcp) for more information. ## Installation diff --git a/python/src/cairo_coder/__init__.py b/python/src/cairo_coder/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/python/src/scripts/__init__.py b/python/src/scripts/__init__.py new file mode 100644 index 0000000..e69de29