From 75b9a172cb77896296ae067dee14376dbab6552a Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Tue, 24 Mar 2026 17:30:34 +0200 Subject: [PATCH] Minor fixes --- docs/cli.md | 2 +- haiku_rag_slim/haiku/rag/cli.py | 2 +- haiku_rag_slim/haiku/rag/skill_generator/__init__.py | 7 +++++-- .../haiku/rag/skill_generator/templates/pyproject.toml.j2 | 2 +- haiku_rag_slim/haiku/rag/skills/_tools.py | 3 ++- tests/test_skill_generator.py | 2 +- 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/cli.md b/docs/cli.md index 7918eee2..e0d53988 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -261,7 +261,7 @@ The generated package is a pip-installable Python package that registers as a `h | Flag | Description | Default | |------|-------------|---------| -| `--name` | Skill name (lowercase Python identifier, required) | — | +| `--name` | Skill name (lowercase alphanumeric and hyphens, required) | — | | `--db` | Path to LanceDB database to embed (required) | — | | `--description` | Skill description | Standard RAG description | | `--tools` | Comma-separated tool names, or `all` | `all` | diff --git a/haiku_rag_slim/haiku/rag/cli.py b/haiku_rag_slim/haiku/rag/cli.py index 47988938..5e6f974e 100644 --- a/haiku_rag_slim/haiku/rag/cli.py +++ b/haiku_rag_slim/haiku/rag/cli.py @@ -724,7 +724,7 @@ def create_skill_cmd( # pragma: no cover name: str = typer.Option( ..., "--name", - help="Skill name (must be a lowercase Python identifier)", + help="Skill name (lowercase alphanumeric and hyphens)", ), db: Path = typer.Option( ..., diff --git a/haiku_rag_slim/haiku/rag/skill_generator/__init__.py b/haiku_rag_slim/haiku/rag/skill_generator/__init__.py index 37a3a247..004db953 100644 --- a/haiku_rag_slim/haiku/rag/skill_generator/__init__.py +++ b/haiku_rag_slim/haiku/rag/skill_generator/__init__.py @@ -1,7 +1,8 @@ import pathlib import shutil +from importlib.metadata import version -from jinja2 import Environment, PackageLoader, select_autoescape +from jinja2 import Environment, PackageLoader AVAILABLE_TOOLS: set[str] = { "list_documents", @@ -28,7 +29,7 @@ DEFAULT_DESCRIPTION = ( def _get_env() -> Environment: return Environment( loader=PackageLoader("haiku.rag.skill_generator", "templates"), - autoescape=select_autoescape(), + autoescape=False, keep_trailing_newline=True, lstrip_blocks=True, trim_blocks=True, @@ -78,6 +79,7 @@ def render_templates( preamble = DEFAULT_PREAMBLE pkg_name = name.replace("-", "_") + rag_version = version("haiku.rag-slim") env = _get_env() context = { "name": name, @@ -85,6 +87,7 @@ def render_templates( "description": description, "tool_names": tool_names, "preamble": preamble, + "rag_version": rag_version, } result_dir = output_dir / f"{name}-skill" diff --git a/haiku_rag_slim/haiku/rag/skill_generator/templates/pyproject.toml.j2 b/haiku_rag_slim/haiku/rag/skill_generator/templates/pyproject.toml.j2 index 915d1c16..e8aa675a 100644 --- a/haiku_rag_slim/haiku/rag/skill_generator/templates/pyproject.toml.j2 +++ b/haiku_rag_slim/haiku/rag/skill_generator/templates/pyproject.toml.j2 @@ -8,7 +8,7 @@ version = "0.1.0" description = "{{ description }}" requires-python = ">=3.12" dependencies = [ - "haiku.rag-slim >= 0.35", + "haiku.rag-slim >= {{ rag_version }}", "haiku-skills >= 0.10.0", ] diff --git a/haiku_rag_slim/haiku/rag/skills/_tools.py b/haiku_rag_slim/haiku/rag/skills/_tools.py index 4cdd1710..02b7494d 100644 --- a/haiku_rag_slim/haiku/rag/skills/_tools.py +++ b/haiku_rag_slim/haiku/rag/skills/_tools.py @@ -6,6 +6,7 @@ from pydantic_ai import RunContext from haiku.rag.agents.research.models import Citation from haiku.rag.config.models import AppConfig +from haiku.rag.store.models.chunk import SearchResult from haiku.rag.tools.document import DocumentInfo from haiku.rag.tools.qa import QAHistoryEntry from haiku.skills.state import SkillRunDeps @@ -66,7 +67,7 @@ async def skill_search( query: str, limit: int | None = None, document_filter: str | None = None, -) -> tuple[str, list]: +) -> tuple[str, list[SearchResult]]: from haiku.rag.client import HaikuRAG async with HaikuRAG(db_path, config=config, read_only=True) as rag: diff --git a/tests/test_skill_generator.py b/tests/test_skill_generator.py index 8aa4c439..fc8309a6 100644 --- a/tests/test_skill_generator.py +++ b/tests/test_skill_generator.py @@ -165,7 +165,7 @@ class TestRenderTemplates: assert 'name = "recipes-skill"' in content assert 'description = "A recipe skill."' in content assert 'recipes = "recipes_skill:create_skill"' in content - assert "haiku.rag-slim >= 0.35" in content + assert "haiku.rag-slim >= " in content def test_skill_md_conditionals(self, tmp_path): render_templates(