Minor fixes

This commit is contained in:
Yiorgis Gozadinos 2026-03-24 17:30:34 +02:00
parent 705ce80b4f
commit 75b9a172cb
No known key found for this signature in database
6 changed files with 11 additions and 7 deletions

View file

@ -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` |

View file

@ -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(
...,

View file

@ -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"

View file

@ -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",
]

View file

@ -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:

View file

@ -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(