From d3ee35bfdada70714e09fb7085c2ef69184b9f5e Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 15:17:54 +0100 Subject: [PATCH 01/10] docs(beacon): DESIGN artifacts for llama.cpp Model Integration (spec 008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full spec/plan/tasks/BDD scaffold for the llamacpp-integration epic, now that its dependency (llm-provider-abstraction, PR #17) is satisfied. Researched llama-server's router-mode API shape live (postdates training data) rather than assuming it — two details that would have been wrong by assumption: the model identifier field is "id" not "name" (differs from Ollama's /api/tags), and "status" is a nested object ({"value": "..."}) not a flat string. Unlike the prerequisite epic, this decomposition genuinely holds as 4 independent user stories — LlamaCppClient is a new node, not a changed one, so there's no shared "output type" migration forcing an atomic cutover. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- .specify/feature.json | 2 +- CLAUDE.md | 2 +- .../Roadmap/epics/llamacpp-integration.md | 1 + specs/008-llamacpp-integration/.beacon.toml | 1 + .../checklists/requirements.md | 39 +++++ .../llamacpp_provider_conformance.md | 39 +++++ specs/008-llamacpp-integration/data-model.md | 41 +++++ .../features/us1_connect_and_chat.feature | 11 ++ .../features/us2_structured_output.feature | 11 ++ .../features/us3_model_lifecycle.feature | 16 ++ .../features/us4_swap_backends.feature | 6 + specs/008-llamacpp-integration/plan.md | 117 ++++++++++++++ specs/008-llamacpp-integration/quickstart.md | 26 +++ specs/008-llamacpp-integration/research.md | 78 +++++++++ specs/008-llamacpp-integration/spec.md | 110 +++++++++++++ specs/008-llamacpp-integration/tasks.md | 151 ++++++++++++++++++ 16 files changed, 649 insertions(+), 2 deletions(-) create mode 100644 specs/008-llamacpp-integration/.beacon.toml create mode 100644 specs/008-llamacpp-integration/checklists/requirements.md create mode 100644 specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md create mode 100644 specs/008-llamacpp-integration/data-model.md create mode 100644 specs/008-llamacpp-integration/features/us1_connect_and_chat.feature create mode 100644 specs/008-llamacpp-integration/features/us2_structured_output.feature create mode 100644 specs/008-llamacpp-integration/features/us3_model_lifecycle.feature create mode 100644 specs/008-llamacpp-integration/features/us4_swap_backends.feature create mode 100644 specs/008-llamacpp-integration/plan.md create mode 100644 specs/008-llamacpp-integration/quickstart.md create mode 100644 specs/008-llamacpp-integration/research.md create mode 100644 specs/008-llamacpp-integration/spec.md create mode 100644 specs/008-llamacpp-integration/tasks.md diff --git a/.specify/feature.json b/.specify/feature.json index 4df0a8b..28d7a7e 100644 --- a/.specify/feature.json +++ b/.specify/feature.json @@ -1,3 +1,3 @@ { - "feature_directory": "specs/007-llm-provider-abstraction" + "feature_directory": "specs/008-llamacpp-integration" } diff --git a/CLAUDE.md b/CLAUDE.md index 59aa5fd..ef142f2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,5 +1,5 @@ For additional context about technologies to be used, project structure, shell commands, and other important information, read the current plan -at specs/007-llm-provider-abstraction/plan.md +at specs/008-llamacpp-integration/plan.md diff --git a/project-management/Roadmap/epics/llamacpp-integration.md b/project-management/Roadmap/epics/llamacpp-integration.md index 47d829a..9893e24 100644 --- a/project-management/Roadmap/epics/llamacpp-integration.md +++ b/project-management/Roadmap/epics/llamacpp-integration.md @@ -32,6 +32,7 @@ epic. _Filled by `beacon specify --epic llamacpp-integration` / `/speckit-specify` once this epic is accepted._ +- specs/008-llamacpp-integration/ ## ADRs - project-management/ADRs/ADR-007-llm-provider-adapter-pattern.md — decided during the prerequisite epic; this epic implements the second `LLMProvider` the ADR anticipated diff --git a/specs/008-llamacpp-integration/.beacon.toml b/specs/008-llamacpp-integration/.beacon.toml new file mode 100644 index 0000000..19b532e --- /dev/null +++ b/specs/008-llamacpp-integration/.beacon.toml @@ -0,0 +1 @@ +epic = "llamacpp-integration" diff --git a/specs/008-llamacpp-integration/checklists/requirements.md b/specs/008-llamacpp-integration/checklists/requirements.md new file mode 100644 index 0000000..3a0dc9f --- /dev/null +++ b/specs/008-llamacpp-integration/checklists/requirements.md @@ -0,0 +1,39 @@ +# Specification Quality Checklist: llama.cpp Model Integration + +**Purpose**: Validate specification completeness and quality before proceeding to planning +**Created**: 2026-07-11 +**Feature**: [spec.md](../spec.md) + +## Content Quality + +- [x] No implementation details (languages, frameworks, APIs) +- [x] Focused on user value and business needs +- [x] Written for non-technical stakeholders +- [x] All mandatory sections completed + +## Requirement Completeness + +- [x] No [NEEDS CLARIFICATION] markers remain +- [x] Requirements are testable and unambiguous +- [x] Success criteria are measurable +- [x] Success criteria are technology-agnostic (no implementation details) +- [x] All acceptance scenarios are defined +- [x] Edge cases are identified +- [x] Scope is clearly bounded +- [x] Dependencies and assumptions identified + +## Feature Readiness + +- [x] All functional requirements have clear acceptance criteria +- [x] User scenarios cover primary flows +- [x] Feature meets measurable outcomes defined in Success Criteria +- [x] No implementation details leak into specification + +## Notes + +No [NEEDS CLARIFICATION] markers needed — scope boundaries (router-mode-only, +no GPU tuning, no auth/TLS, no Manager listing) came directly from the +parent epic's Non-goals (`project-management/Roadmap/epics/llamacpp-integration.md`) +and ADR-007. User Story 4 (swap backends without touching downstream nodes) +is the adapter pattern's central promise made concrete and testable, not +padding. diff --git a/specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md b/specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md new file mode 100644 index 0000000..98fbacd --- /dev/null +++ b/specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md @@ -0,0 +1,39 @@ +# Contract: `LlamaCppProvider` conforms to `LLMProvider` + +This is the concrete proof of ADR-007's adapter pattern — the same protocol +contract documented in +`specs/007-llm-provider-abstraction/contracts/llm_provider_protocol.md`, +now with a second implementation. Nothing in that contract changes; this +file only documents `LlamaCppProvider`'s specific wire-format bindings. + +```python +class LlamaCppProvider: + def __init__(self, host: str, headers: dict | None = None): ... + + async def list_models(self) -> list[ModelInfo]: + """GET {host}/models → data[] → ModelInfo(name=m["id"], status=ModelStatus(m["status"]["value"]), size=None)""" + + async def load_model(self, model: str) -> None: + """POST {host}/models/load {"model": model}""" + + async def unload_model(self, model: str) -> None: + """POST {host}/models/unload {"model": model}""" + + async def chat(self, model, messages, options=None, timeout_secs=300.0) -> str: + """POST {host}/v1/chat/completions → choices[0].message.content""" + + async def chat_structured(self, model, messages, schema, options=None, timeout_secs=300.0, max_retries=2) -> BaseModel: + """Delegates to comfydv._llm.chat.chat_structured(base_url=f"{host}/v1", ...) — identical call OllamaProvider makes""" +``` + +## Behavioral requirements (inherited from the protocol contract, restated for this implementation) + +- `load_model`/`unload_model` MUST be idempotent — router mode's own + `{"success": true}` response on an already-loaded/unloaded model satisfies + this without extra handling. +- `list_models()` MUST NOT normalize away llama.cpp's `sleeping`/`downloading` + states (unlike `OllamaProvider`, which has no choice but to normalize — + see `research.md`). +- A `llama-server` not running in router mode (missing endpoints) MUST + surface a clear, specific error (spec.md FR-006) — not a generic + connection failure indistinguishable from "server not running at all." diff --git a/specs/008-llamacpp-integration/data-model.md b/specs/008-llamacpp-integration/data-model.md new file mode 100644 index 0000000..d1fb65a --- /dev/null +++ b/specs/008-llamacpp-integration/data-model.md @@ -0,0 +1,41 @@ +# Data Model: llama.cpp Model Integration + +No new types — this feature is a second implementation of the existing +`LLMProvider` protocol, `ModelStatus`, `ModelInfo`, and `Message` types +(`src/comfydv/_llm/provider.py`, unchanged). This file documents +`LlamaCppProvider`'s field mapping from llama-server's router-mode JSON onto +those existing types (see `research.md` for the verified API shapes). + +## `LlamaCppProvider.list_models()` → `ModelInfo` mapping + +| `ModelInfo` field | Source (`GET /models` response, per model in `data[]`) | +|---|---| +| `name` | `id` — **not** `name` (llama.cpp's field name differs from Ollama's) | +| `status` | `status.value` — nested object, not a flat string | +| `size` | Not provided by this endpoint; `None` | + +`status.value` maps directly onto `ModelStatus`'s five values +(`unloaded`/`loading`/`loaded`/`sleeping`/`downloading`) — llama.cpp's +vocabulary is exactly `ModelStatus`'s full set, so unlike `OllamaProvider` +(which normalizes into a narrower subset), `LlamaCppProvider` needs no +approximation. A `"failed": true` state exists outside this vocabulary +(model process crashed) — out of scope per spec.md's edge cases; treated as +whatever `status.value` reports rather than added as a sixth enum value. + +## `LlamaCppProvider.load_model()` / `unload_model()` + +Both `POST /models/load` and `POST /models/unload` take `{"model": }` — +the same `id` string `list_models()` returns as `ModelInfo.name`. No mapping +ambiguity here (unlike Ollama, where load/unload uses `/api/generate`'s +`keep_alive` side effect rather than a dedicated endpoint). + +## `LlamaCppProvider.chat()` / `chat_structured()` + +Both reach `llama-server`'s OpenAI-compatible `/v1/chat/completions` — +`chat_structured()` calls the existing shared `comfydv._llm.chat.chat_structured()` +helper unchanged (`base_url=f"{self.host}/v1"`, matching `OllamaProvider`'s +own call exactly). `chat()` parses the response as +`choices[0].message.content` (OpenAI shape), not Ollama's native +`message.content` — the two providers' non-structured paths differ here +because llama-server doesn't have an Ollama-style native `/api/chat` +endpoint to prefer instead. diff --git a/specs/008-llamacpp-integration/features/us1_connect_and_chat.feature b/specs/008-llamacpp-integration/features/us1_connect_and_chat.feature new file mode 100644 index 0000000..a820263 --- /dev/null +++ b/specs/008-llamacpp-integration/features/us1_connect_and_chat.feature @@ -0,0 +1,11 @@ +Feature: US1 — Connect to a local llama.cpp server and get chat responses + + Scenario: llama.cpp connection node feeds the existing chat node + Given a running local llama-server (router mode) and a workflow with a llama.cpp connection node wired into the existing chat node + When the workflow executes + Then the chat node returns the model's text response + + Scenario: Unreachable llama.cpp server surfaces a clear error + Given the llama.cpp connection node configured with an unreachable server address + When the workflow executes + Then the chat node reports a clear connection error diff --git a/specs/008-llamacpp-integration/features/us2_structured_output.feature b/specs/008-llamacpp-integration/features/us2_structured_output.feature new file mode 100644 index 0000000..460f5af --- /dev/null +++ b/specs/008-llamacpp-integration/features/us2_structured_output.feature @@ -0,0 +1,11 @@ +Feature: US2 — Get structured, validated output from llama.cpp + + Scenario: Valid structured response exposes typed fields, same as Ollama + Given a chat node connected to llama.cpp with structured output enabled and a valid schema + When the workflow executes and the model responds correctly + Then each schema field is available as its own typed output, and no required field is blank + + Scenario: Invalid response retries then fails clearly, same as Ollama + Given a llama.cpp-hosted model that returns invalid or incomplete structured output + When the workflow executes + Then the node retries automatically and, if still unsuccessful, fails with a clear error diff --git a/specs/008-llamacpp-integration/features/us3_model_lifecycle.feature b/specs/008-llamacpp-integration/features/us3_model_lifecycle.feature new file mode 100644 index 0000000..a3df589 --- /dev/null +++ b/specs/008-llamacpp-integration/features/us3_model_lifecycle.feature @@ -0,0 +1,16 @@ +Feature: US3 — See and control which models are loaded on llama.cpp + + Scenario: List models with full status vocabulary + Given a running local llama-server with at least one available model + When a workflow author uses the model-listing node + Then they see each available model along with its current status, drawn from llama.cpp's full status vocabulary + + Scenario: Load a model into memory + Given a model that is not currently loaded + When a workflow author runs the load-model node against it + Then the model becomes loaded and is then usable by the chat node + + Scenario: Unload a model from memory + Given a model that is loaded and idle + When a workflow author runs the unload-model node against it + Then the model is freed from memory and its reported status updates accordingly diff --git a/specs/008-llamacpp-integration/features/us4_swap_backends.feature b/specs/008-llamacpp-integration/features/us4_swap_backends.feature new file mode 100644 index 0000000..6e95fef --- /dev/null +++ b/specs/008-llamacpp-integration/features/us4_swap_backends.feature @@ -0,0 +1,6 @@ +Feature: US4 — Swap from Ollama to llama.cpp without touching the rest of the workflow + + Scenario: Replacing only the connection node preserves the workflow + Given a workflow with chat/model-management nodes wired to an Ollama connection node + When a workflow author replaces only the connection node with a llama.cpp one, pointed at a running llama-server + Then the workflow runs successfully with no changes to any other node diff --git a/specs/008-llamacpp-integration/plan.md b/specs/008-llamacpp-integration/plan.md new file mode 100644 index 0000000..7501d0d --- /dev/null +++ b/specs/008-llamacpp-integration/plan.md @@ -0,0 +1,117 @@ +# Implementation Plan: llama.cpp Model Integration + +**Branch**: `008-llamacpp-integration` | **Date**: 2026-07-11 | **Spec**: [spec.md](./spec.md) + +**Input**: Feature specification from `/specs/008-llamacpp-integration/spec.md` + +**Note**: This template is filled in by the `/speckit-plan` command. See `.specify/templates/plan-template.md` for the execution workflow. + +## Summary + +Implement `LlamaCppProvider` as the second `LLMProvider` (ADR-007), backed by +`llama-server`'s router mode (`GET /models`, `POST /models/load`, +`POST /models/unload`, `/v1/chat/completions`). Add one new ComfyUI node +(`LlamaCppClient`) emitting the existing `LLM_CLIENT` socket type — no other +node classes change. This is the concrete proof the provider abstraction +(prerequisite epic, PR #17) actually generalizes: a second backend, zero +changes to `ChatCompletion`/`LLMModelSelector`/`LLMLoadModel`/`LLMUnloadModel`. + +## Technical Context + +**Language/Version**: Python ≥3.11 (unchanged, per `pyproject.toml`) + +**Primary Dependencies**: `aiohttp` (existing — model-management REST calls), +`pydantic-ai`/`openai` (existing, from the prerequisite epic — `chat_structured()` +reuses the shared helper unchanged, zero new structured-output code) + +**Storage**: N/A — no persistent storage; reuses the existing +`_MODEL_LIST_CACHE`/`_CHAT_RESPONSE_CACHE` infra pattern from `OllamaProvider` + +**Testing**: `pytest` via `uv run pytest`, following `tests/test_ollama_provider.py`'s +established convention (mock at the provider's own `_post_json`/`_get_json` +seam, no live server required for unit tests) + +**Target Platform**: ComfyUI custom-node runtime, same as the existing Ollama +integration + +**Project Type**: Library / ComfyUI custom-node pack (single project, adds to +existing `src/comfydv/` layout) + +**Performance Goals**: No new numeric target; must not add latency beyond +what `OllamaProvider`'s equivalent methods already accept + +**Constraints**: Router-mode-only (spec.md Assumptions — a `llama-server` +without `--models-dir`/`--models-preset` doesn't expose these endpoints at +all, FR-006); model identifier field is `id` (llama.cpp) vs `name` (Ollama) — +`LlamaCppProvider.list_models()` must map this correctly (see `research.md`); +`status` is a nested object (`{"value": "..."}`), not a flat string + +**Scale/Scope**: One new class (`LlamaCppProvider`, mirrors `OllamaProvider`'s +shape), one new ComfyUI node (`LlamaCppClient`), one new test file — no +changes to `ollama.py`, `_llm/provider.py`, `_llm/chat.py`, or any existing +node class + +## Constitution Check + +*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.* + +| Principle | Verdict | Notes | +|---|---|---| +| I. ComfyUI Contract First | PASS | `LlamaCppClient` exposes the standard `INPUT_TYPES`/`RETURN_TYPES`/`FUNCTION`/`CATEGORY`; registered in `NODE_CLASS_MAPPINGS` like every other node. | +| II. Sandbox All User-Supplied Code | N/A | No template/expression evaluation in this feature. | +| III. Test-First | PASS (binding) | `tests/test_llamacpp_provider.py` written test-first, mirroring `test_ollama_provider.py`'s TDD-pair structure. | +| IV. Graceful Degradation Outside ComfyUI | PASS (binding) | `LlamaCppProvider` lives in `src/comfydv/_llm/`, which already has no `comfy`/`server` imports at module scope (verified for the prerequisite epic; this feature adds no new module-scope imports of either). | +| V. Simplicity — Function Before Class | PASS, same justification as `OllamaProvider` | `LlamaCppProvider` carries connection state (host, headers) across 5 methods — the same shared-state condition that already justified `OllamaProvider` as a class (research.md, prerequisite epic). No new gate — same precedent applies. | +| VI. Fixed Output Positions | N/A | `LlamaCppClient`'s single output (`client`) isn't a multi-output node; no positional contract to preserve. | + +Re-checked post-Phase 1 design (data-model.md): unchanged — no new gate +violations. No Complexity Tracking entries needed (unlike the prerequisite +epic, this feature introduces no new pattern, just a second instance of an +already-justified one). + +## Project Structure + +### Documentation (this feature) + +```text +specs/008-llamacpp-integration/ +├── plan.md # This file +├── research.md # Phase 0 — router-mode API shape, verified live +├── data-model.md # Phase 1 — LlamaCppProvider field mapping +├── quickstart.md # Phase 1 — minimal workflow walkthrough +├── contracts/ # Phase 1 — LlamaCppProvider's protocol conformance +└── tasks.md # Phase 2 (/speckit-tasks) +``` + +### Source Code (repository root) + +```text +src/comfydv/ +├── ollama.py # unchanged — add LlamaCppClient node only via a new module +├── llamacpp.py # new — LlamaCppClient node (mirrors OllamaClient's shape) +├── _llm/ +│ ├── provider.py # unchanged — LLMProvider/ModelStatus/ModelInfo/Message +│ ├── ollama_provider.py # unchanged +│ ├── llamacpp_provider.py # new — LlamaCppProvider (mirrors ollama_provider.py's shape) +│ └── chat.py # unchanged — chat_structured() reused as-is +└── __init__.py # add LlamaCppClient import + NODE_CLASS_MAPPINGS entry + +tests/ +├── test_ollama_provider.py # unchanged +├── test_llamacpp_provider.py # new — mirrors test_ollama_provider.py's structure +└── test_llamacpp.py # new — LlamaCppClient node contract test (small; mirrors + # the OllamaClient-specific slice of test_ollama.py) +``` + +**Structure Decision**: New `src/comfydv/llamacpp.py` module (not added into +`ollama.py`) for the `LlamaCppClient` node, and a new `src/comfydv/_llm/llamacpp_provider.py` +for `LlamaCppProvider` — mirroring the existing `ollama.py`/`ollama_provider.py` +split exactly, so the two backends read as parallel, symmetric implementations +rather than one growing to accommodate the other. No existing file is +modified except `__init__.py`'s registration block. + +## Complexity Tracking + +> **Fill ONLY if Constitution Check has violations that must be justified** + +None — see Constitution Check above. diff --git a/specs/008-llamacpp-integration/quickstart.md b/specs/008-llamacpp-integration/quickstart.md new file mode 100644 index 0000000..64b0e19 --- /dev/null +++ b/specs/008-llamacpp-integration/quickstart.md @@ -0,0 +1,26 @@ +# Quickstart: llama.cpp Model Integration + +## Prerequisite + +Launch `llama-server` in router mode: + +```bash +llama-server --models-dir ./models -c 8192 +``` + +## Minimal workflow + +1. Add an **LlamaCpp Client** node. Set its host widget (default + `http://localhost:8080`, llama-server's default port). +2. Wire it into a **Chat Completion** node — the exact same node used for + Ollama. Set a model and prompt, run. +3. Structured output, model listing, and load/unload all work exactly as + documented for Ollama in the main README/quickstart — swap the client + node, nothing else changes. + +## Swapping an existing Ollama workflow to llama.cpp + +Replace the **Ollama Client** node with an **LlamaCpp Client** node, pointed +at your running `llama-server`. Every downstream node (Chat Completion, LLM +Model Selector, LLM Load Model, LLM Unload Model) keeps working unmodified — +this is the whole point of the provider abstraction (ADR-007). diff --git a/specs/008-llamacpp-integration/research.md b/specs/008-llamacpp-integration/research.md new file mode 100644 index 0000000..5ec508c --- /dev/null +++ b/specs/008-llamacpp-integration/research.md @@ -0,0 +1,78 @@ +# Research: llama.cpp Model Integration + +## Decision: exact router-mode API shape (verified against `ggml-org/llama.cpp`'s live `tools/server/README.md`, not assumed) + +llama.cpp's router mode postdates this session's training data — verified live +against the authoritative source rather than guessed, since getting field +names wrong here would silently produce broken code (wrong key = `KeyError` +or silent `None`, not an obvious failure). + +**`GET /models`** response: + +```json +{ + "data": [ + { + "id": "ggml-org/gemma-3-4b-it-GGUF:Q4_K_M", + "path": "/Users/.../gemma-3-4b-it-Q4_K_M.gguf", + "status": { + "value": "loaded", + "args": ["llama-server", "-ctx", "4096"] + }, + "architecture": { + "input_modalities": ["text", "image"], + "output_modalities": ["text"] + } + } + ] +} +``` + +**Two details that would have been wrong by assumption:** + +1. The model identifier field is **`id`**, not `name` — different from Ollama's + `/api/tags`, which uses `name`. `OllamaProvider.list_models()` maps + `m["name"]`; `LlamaCppProvider.list_models()` must map `m["id"]` instead. +2. **`status` is a nested object** (`{"value": "loaded", ...}`), not a flat + string field. `LlamaCppProvider.list_models()` must read + `m["status"]["value"]`, not `m["status"]` directly. A `"failed"` state + also exists (`{"failed": true, "exit_code": ...}`) outside the five + `ModelStatus` values the protocol defines — not handled by this feature + (see Non-goals/edge cases in `spec.md`); a failed model is reported as + whatever `status.value` degrades to rather than added as a sixth enum + value, keeping `ModelStatus` unchanged across both providers. + +**`POST /models/load`** and **`POST /models/unload`**: identical request +shape, `{"model": ""}` (using the same `id` string from `GET /models`, +despite the request field being named `model` not `id`). Response: +`{"success": true}`. + +**CLI**: `--models-dir ` or `--models-preset .ini` — a deployment +prerequisite (spec.md Assumptions), not something comfydv configures. + +## Decision: `chat_structured()` needs zero new code + +`llama-server`'s `/v1/chat/completions` is OpenAI-compatible (the same +assumption ADR-007 made when adopting `pydantic-ai`). `LlamaCppProvider.chat_structured()` +calls the exact same `comfydv._llm.chat.chat_structured()` helper +`OllamaProvider` already uses, with `base_url=f"{self.host}/v1"` — the only +per-provider difference. This is the concrete proof the shared mechanism +generalizes (spec.md User Story 2/FR-004), not just an assumption. + +## Decision: `chat()` (non-structured) also reuses the OpenAI-compatible endpoint + +Unlike Ollama (which has both a native `/api/chat` and an OpenAI-compat +`/v1/chat/completions`), llama-server's primary chat endpoint is the +OpenAI-compatible one. `LlamaCppProvider.chat()` POSTs to +`{host}/v1/chat/completions` (via the existing `_post_json` helper, no new +HTTP client) rather than mirroring Ollama's native-endpoint choice — the +response shape (`choices[0].message.content`) differs from Ollama's native +`message.content` and must be parsed accordingly. + +## Decision: no protocol changes needed + +`LLMProvider`'s five methods (`list_models`/`load_model`/`unload_model`/ +`chat`/`chat_structured`) already cover everything router mode needs — this +was the actual point of designing the protocol at the operation level in +ADR-007, and this research confirms it held up against llama.cpp's real API, +not just Ollama's. diff --git a/specs/008-llamacpp-integration/spec.md b/specs/008-llamacpp-integration/spec.md new file mode 100644 index 0000000..e3db3f4 --- /dev/null +++ b/specs/008-llamacpp-integration/spec.md @@ -0,0 +1,110 @@ +# Feature Specification: llama.cpp Model Integration + +**Feature Branch**: `008-llamacpp-integration` + +**Created**: 2026-07-11 + +**Status**: Draft + +**Input**: User description: "Add ComfyUI nodes for llama.cpp local inference via llama-server's router mode, implementing the LlamaCppProvider as the second LLMProvider (ADR-007) alongside the existing OllamaProvider. Router mode exposes GET /models (with live status), POST /models/load, POST /models/unload, giving llama.cpp the same manual load/unload memory-management primitives as Ollama. No new ComfyUI node classes needed for chat/model-selection/load/unload — only a new LlamaCppClient config node; the existing generic ChatCompletion/LLMModelSelector/LLMLoadModel/LLMUnloadModel nodes work unchanged once wired to it." + +## User Scenarios & Testing *(mandatory)* + +### User Story 1 - Connect to a local llama.cpp server and get chat responses (Priority: P1) 🎯 MVP + +As a ComfyUI workflow author running `llama-server` locally, I want a connection node for it — just like the one I already use for Ollama — so I can get chat responses from a llama.cpp-hosted model using the same chat node I already know. + +**Why this priority**: This is the entire point of the feature and the proof that the provider abstraction (shipped in the prerequisite epic) actually works: a second backend, zero changes to the chat node. + +**Independent Test**: Wire a new llama.cpp connection node into the existing chat node, run against a local `llama-server` (router mode), confirm a text response. + +**Acceptance Scenarios**: + +1. **Given** a running local `llama-server` (router mode) and a workflow with a llama.cpp connection node wired into the existing chat node, **When** the workflow executes, **Then** the chat node returns the model's text response — using the exact same chat node a workflow author already uses for Ollama. +2. **Given** the llama.cpp connection node configured with an unreachable server address, **When** the workflow executes, **Then** the chat node reports a clear connection error, matching the behavior workflow authors already know from the Ollama connection. + +--- + +### User Story 2 - Get structured, validated output from llama.cpp (Priority: P1) + +As a workflow author, I want structured output (a schema-validated response instead of free text) to work identically regardless of whether I'm connected to Ollama or llama.cpp, so I don't have to relearn or rebuild anything when switching backends. + +**Why this priority**: Structured output is a core existing capability (already proven for Ollama); this story proves the shared mechanism genuinely generalizes rather than being Ollama-specific in practice, not just in name. + +**Independent Test**: Enable structured output on the chat node with a schema, run against a llama.cpp-hosted model, confirm each schema field is populated and never blank — using the same steps as the equivalent Ollama test. + +**Acceptance Scenarios**: + +1. **Given** a chat node connected to llama.cpp with structured output enabled and a valid schema, **When** the workflow executes and the model responds correctly, **Then** each schema field is available as its own typed output, and no required field is blank. +2. **Given** a llama.cpp-hosted model that returns invalid or incomplete structured output, **When** the workflow executes, **Then** the node retries automatically and, if still unsuccessful, fails with a clear error — identical behavior to the Ollama path. + +--- + +### User Story 3 - See and control which models are loaded on llama.cpp (Priority: P2) + +As a workflow author running models locally, I want to see live model status (including whether a model is currently loading or being downloaded, not just loaded/unloaded) and explicitly load or unload a model on my llama.cpp server, so I can manage memory the same way I already do for Ollama — with more visibility, since llama.cpp's router mode reports richer status than Ollama does. + +**Why this priority**: Valuable and proves the model-management path generalizes too, but a workflow can still run chat completions without ever calling load/unload explicitly (the server can load on first use), so it's lower risk to defer than basic chat. + +**Independent Test**: Use the existing model-listing node against a running `llama-server`, confirm it shows each available model with its current status (including `loading`/`downloading` if applicable); use the existing load/unload nodes against one model and confirm its status changes. + +**Acceptance Scenarios**: + +1. **Given** a running local `llama-server` with at least one available model, **When** a workflow author uses the model-listing node, **Then** they see each available model along with its current status, drawn from llama.cpp's full status vocabulary (not just loaded/unloaded). +2. **Given** a model that is not currently loaded, **When** a workflow author runs the load-model node against it, **Then** the model becomes loaded and is then usable by the chat node. +3. **Given** a model that is loaded and idle, **When** a workflow author runs the unload-model node against it, **Then** the model is freed from memory and its reported status updates accordingly. + +--- + +### User Story 4 - Swap from Ollama to llama.cpp without touching the rest of the workflow (Priority: P3) + +As a workflow author with an existing Ollama-based workflow, I want to switch it to llama.cpp by changing only the connection node, so I don't have to rebuild my chat/model-management logic for a second backend. + +**Why this priority**: This is the adapter pattern's actual promise made concrete for a user, but it's a validation/demonstration story rather than new capability — everything it depends on is already covered by User Stories 1–3. + +**Independent Test**: Take a workflow using the Ollama connection node, replace it with the llama.cpp connection node (same downstream nodes, no other changes), run it, confirm it still works. + +**Acceptance Scenarios**: + +1. **Given** a workflow with chat/model-management nodes wired to an Ollama connection node, **When** a workflow author replaces only the connection node with a llama.cpp one (pointed at a running `llama-server`), **Then** the workflow runs successfully with no changes to any other node. + +--- + +### Edge Cases + +- What happens when `llama-server` is running but was launched without router mode (i.e. with `-m` instead of `--models-dir`)? The router-mode-only endpoints this feature depends on won't exist — the connection/model-management nodes should fail with a clear error, not hang or silently return empty results. +- What happens when the configured server address is unreachable at the moment a model-listing, load, or unload node runs (not just the chat node)? +- What happens when llama.cpp reports a model status this feature doesn't expect (a router-mode API change)? Should degrade gracefully (surface the status if recognized, don't crash on an unrecognized one), not silently misreport. +- What happens to an in-flight chat request if the model it depends on is unloaded by another node in the same workflow run? (Same question already answered for Ollama — behavior should be consistent.) + +## Requirements *(mandatory)* + +### Functional Requirements + +- **FR-001**: The system MUST allow a workflow author to configure a connection to a local `llama-server` (router mode) the same way they already configure a connection to Ollama — a dedicated connection node, reusable across multiple nodes in a workflow. +- **FR-002**: The system MUST NOT require any new or different node classes for chat, structured output, model listing, or load/unload when using llama.cpp — the existing generic nodes MUST work unchanged once connected to a llama.cpp connection node. +- **FR-003**: The system MUST report each model's status using llama.cpp's full status vocabulary (unloaded, loading, loaded, sleeping, downloading) when connected to llama.cpp — not degraded to the narrower Ollama-compatible set. +- **FR-004**: The system's chat and structured-output behavior MUST be identical between Ollama and llama.cpp connections, given equivalent inputs — same retry limits, same validation rules, same error conditions (this is the direct continuation of the prerequisite epic's own FR-007/FR-008). +- **FR-005**: The system MUST allow a workflow author to explicitly load a model into memory and explicitly unload a model from memory on a connected llama.cpp server. +- **FR-006**: The system MUST surface a clear, specific error when connected to a `llama-server` instance that isn't running in router mode (the endpoints this feature needs don't exist), rather than an unhelpful generic failure. + +### Key Entities *(include if feature involves data)* + +- **llama.cpp connection**: A configured connection to a local `llama-server` instance running in router mode (host + any authentication), implementing the same connection concept already established for Ollama. +- **Model status**: Reuses the existing status concept from the prerequisite feature, now populated with llama.cpp's full vocabulary rather than a narrowed subset. + +## Success Criteria *(mandatory)* + +### Measurable Outcomes + +- **SC-001**: A workflow author can connect to a llama.cpp server and get a chat response using the same node count and shape as connecting to Ollama (one connection node, one chat node) — no new nodes to learn for the chat path. +- **SC-002**: An existing workflow can be repointed from Ollama to llama.cpp by changing exactly one node (the connection node) — zero edits to any chat or model-management node. +- **SC-003**: Structured-output workflows behave identically (same validation guarantees, zero blank-required-field results) regardless of which backend is connected. +- **SC-004**: Model status reporting for llama.cpp surfaces all five status values where applicable — a strictly richer view than what Ollama can report through the same interface. + +## Assumptions + +- Workflow authors run their own local `llama-server` instance, launched in router mode (`--models-dir` or `--models-preset`), reachable over HTTP from the machine running ComfyUI; this feature does not install, configure, or launch that server. +- Non-router-mode `llama-server` usage (a single model launched with `-m`) is out of scope — router mode is required for the load/unload/status parity with Ollama that is this feature's whole point. +- GPU inference optimisation, quantisation tuning, authentication/TLS, and ComfyUI Manager registry listing are out of scope, consistent with the prerequisite Ollama epic's own non-goals. +- The `LLMProvider` protocol and generic nodes (`ChatCompletion`, `LLMModelSelector`, `LLMLoadModel`, `LLMUnloadModel`) already exist and are not modified by this feature — if llama.cpp's router mode needs a protocol capability that doesn't exist yet, that is a protocol change scoped as its own follow-up, not silently special-cased here. diff --git a/specs/008-llamacpp-integration/tasks.md b/specs/008-llamacpp-integration/tasks.md new file mode 100644 index 0000000..25a6c0b --- /dev/null +++ b/specs/008-llamacpp-integration/tasks.md @@ -0,0 +1,151 @@ +# Tasks: llama.cpp Model Integration + +**Input**: Design documents from `/specs/008-llamacpp-integration/` + +**Prerequisites**: plan.md, spec.md, research.md, data-model.md, contracts/llamacpp_provider_conformance.md + +**Tests**: First-class — every implementation task has a paired failing-test task (`-T`/`-I` suffix). + +**Organization**: Grouped by user story (spec.md priorities P1/P1/P2/P3). + +## Format: `[ID] [P?] [Story] Description` + +- **[P]**: Can run in parallel (different files, no dependencies) +- **[Story]**: US1–US4 +- **-T / -I**: paired test (red) / implementation (green) + +## Path Conventions + +Single project: `src/comfydv/`, `tests/` at repository root, mirroring the +`ollama.py`/`_llm/ollama_provider.py` split exactly (plan.md Structure +Decision). + +--- + +## Phase 1: Setup + +- [x] T001 No new dependencies — `aiohttp`/`pydantic-ai` already present from the prerequisite epic (verified in `pyproject.toml`) +- [ ] T002 [P] Create `src/comfydv/_llm/llamacpp_provider.py` and `src/comfydv/llamacpp.py` (empty modules with docstrings, mirroring `ollama_provider.py`/`ollama.py`'s module docstring style) + +--- + +## Phase 2: Foundational + +None — `LLMProvider`, `ModelStatus`, `ModelInfo`, `Message`, and the shared +`chat_structured()` helper already exist from the prerequisite epic and are +unmodified by this feature (plan.md Constitution Check, research.md). + +**Checkpoint**: nothing blocks user story work — it can start immediately. + +--- + +## Phase 3: User Story 1 — Connect to a local llama.cpp server and get chat responses (Priority: P1) 🎯 MVP + +**Goal**: A workflow author wires an `LlamaCppClient` node into the existing `ChatCompletion` node and gets a text response. + +**Independent Test**: Wire `LlamaCppClient` → `ChatCompletion`, run against a live `llama-server` (router mode), confirm text output. + +- [ ] T003-T [US1] Write FAILING test: `LlamaCppProvider.chat()` POSTs to `{host}/v1/chat/completions` and parses `choices[0].message.content`, in `tests/test_llamacpp_provider.py` (witnesses `features/us1_connect_and_chat.feature` scenario "llama.cpp connection node feeds the existing chat node") +- [ ] T003-I [US1] Implement `LlamaCppProvider.__init__`/`.chat()` in `src/comfydv/_llm/llamacpp_provider.py` (data-model.md — OpenAI-shape response parsing, not Ollama's native shape) — makes T003-T pass +- [ ] T004-T [US1] Write FAILING test: `LlamaCppClient` node's `INPUT_TYPES`/`RETURN_TYPES` match `OllamaClient`'s shape (`LLM_CLIENT` output), and `create_client()` constructs a `LlamaCppProvider`, in `tests/test_llamacpp.py` +- [ ] T004-I [US1] Implement `LlamaCppClient` node in `src/comfydv/llamacpp.py` (mirrors `OllamaClient` exactly, default host `http://localhost:8080` per llama-server's default port) — makes T004-T pass (depends on T003-I) +- [ ] T005-T [US1] Write FAILING test: `LlamaCppClient` registered in `NODE_CLASS_MAPPINGS`/`NODE_DISPLAY_NAME_MAPPINGS`, in `tests/test_llamacpp.py` +- [ ] T005-I [US1] Register `LlamaCppClient` in `src/comfydv/__init__.py` — makes T005-T pass (depends on T004-I) +- [ ] T006-T [US1] Write FAILING test: `LlamaCppProvider` connection error surfaces a clear message (mirrors `OllamaProvider`'s `_post_json` connection-error contract), in `tests/test_llamacpp_provider.py` (witnesses `features/us1_connect_and_chat.feature` scenario "Unreachable llama.cpp server surfaces a clear error") +- [ ] T006-I [US1] Confirm `LlamaCppProvider.chat()` reuses the shared `_post_json` connection-error handling unchanged (likely no code change needed — verify, don't assume) — makes T006-T pass + +**Checkpoint**: US1 fully functional and independently testable (MVP) — proves the adapter pattern for the chat path. + +--- + +## Phase 4: User Story 2 — Get structured, validated output from llama.cpp (Priority: P1) + +**Goal**: `structured_output=True` on `ChatCompletion` works identically against llama.cpp. + +**Independent Test**: Enable `structured_output` with a schema, run against a llama.cpp-hosted model, confirm typed sockets populate and are never blank. + +- [ ] T007-T [US2] Write FAILING test: `LlamaCppProvider.chat_structured()` builds `base_url=f"{host}/v1"` and delegates to the shared `comfydv._llm.chat.chat_structured()` helper unchanged, in `tests/test_llamacpp_provider.py` (witnesses `features/us2_structured_output.feature` scenario "Valid structured response exposes typed fields, same as Ollama") +- [ ] T007-I [US2] Implement `LlamaCppProvider.chat_structured()` in `src/comfydv/_llm/llamacpp_provider.py` — zero new structured-output logic, same call shape `OllamaProvider.chat_structured()` already makes — makes T007-T pass +- [ ] T008 [US2] No new test needed for the retry-then-fail path (witnesses `features/us2_structured_output.feature` scenario "Invalid response retries then fails clearly, same as Ollama") — already fully covered by `tests/test_llm_chat_structured.py`'s existing suite, since `LlamaCppProvider.chat_structured()` calls the identical shared helper `OllamaProvider` does; re-testing it here would duplicate coverage without adding confidence (same reasoning as the prerequisite epic's D5) + +**Checkpoint**: US1 + US2 both independently functional — the chat surface is now backend-agnostic in practice, not just in name. + +--- + +## Phase 5: User Story 3 — See and control which models are loaded on llama.cpp (Priority: P2) + +**Goal**: `LLMModelSelector`/`LLMLoadModel`/`LLMUnloadModel` work against llama.cpp via `LlamaCppProvider`. + +**Independent Test**: List models via `LLMModelSelector` wired to `LlamaCppClient`; load/unload one; confirm status changes, including `loading`/`downloading` states if triggered. + +- [ ] T009-T [P] [US3] Write FAILING test: `LlamaCppProvider.list_models()` maps `GET /models`'s `data[].id`→`ModelInfo.name` and `data[].status.value`→`ModelInfo.status`, surfacing all five `ModelStatus` values without normalization (data-model.md), in `tests/test_llamacpp_provider.py` (witnesses `features/us3_model_lifecycle.feature` scenario "List models with full status vocabulary") +- [ ] T009-I [US3] Implement `LlamaCppProvider.list_models()` in `src/comfydv/_llm/llamacpp_provider.py` — makes T009-T pass +- [ ] T010-T [P] [US3] Write FAILING test: `LlamaCppProvider.load_model()`/`unload_model()` POST `{"model": id}` to `/models/load`/`/models/unload` and are idempotent, in `tests/test_llamacpp_provider.py` (witnesses `features/us3_model_lifecycle.feature` scenarios "Load a model into memory" and "Unload a model from memory") +- [ ] T010-I [US3] Implement `LlamaCppProvider.load_model()`/`unload_model()` in `src/comfydv/_llm/llamacpp_provider.py` — makes T010-T pass +- [ ] T011 [US3] No new node-layer tests needed — `LLMModelSelector`/`LLMLoadModel`/`LLMUnloadModel` are untouched by this epic (plan.md Structure Decision) and already have delegation-test coverage against a generic `_FakeProvider` in `tests/test_ollama.py`; that coverage is provider-agnostic by construction (FR-002), so it already proves these nodes work with `LlamaCppProvider` too, not just `OllamaProvider` + +**Checkpoint**: US1 + US2 + US3 independently functional. + +--- + +## Phase 6: User Story 4 — Swap from Ollama to llama.cpp without touching the rest of the workflow (Priority: P3) + +**Goal**: Demonstrate/prove the adapter pattern's actual promise end-to-end. + +**Independent Test**: Same workflow, only the connection node changes. + +- [ ] T012-T [US4] Write FAILING test: a workflow-shaped test (client → `ChatCompletion` → `LLMModelSelector` → `LLMLoadModel` → `LLMUnloadModel`) runs identically whether `client` is an `OllamaProvider`-double or a `LlamaCppProvider`-double — i.e. no node branches on provider type, in `tests/test_llamacpp.py` (witnesses `features/us4_swap_backends.feature` scenario "Replacing only the connection node preserves the workflow") +- [ ] T012-I [US4] No implementation expected — this test should already pass given T003-T011 (it's a regression/integration proof, not new functionality); if it fails, that reveals a node secretly branching on provider type, which would be a real bug to fix, not a feature to add + +**Checkpoint**: all four user stories independently functional; the adapter pattern is proven end-to-end, not just asserted. + +--- + +## Phase 7: Polish & Cross-Cutting Concerns + +- [ ] T013 [P] `uv run ruff check --fix && uv run ruff format` across `src/comfydv/_llm/llamacpp_provider.py`, `src/comfydv/llamacpp.py`, `src/comfydv/__init__.py`, and the new test files +- [ ] T014 [P] `uv run ty check` — resolve any new typing errors +- [ ] T015 Confirm Constitution Principle IV: `llamacpp_provider.py`/`llamacpp.py` import no `comfy`/`server` at module scope outside the existing guarded pattern +- [ ] T016 `beacon doctor --strict` — resolve any new findings (pre-existing/disclosed items from the prerequisite epic are not this feature's concern) +- [ ] T017 Manual/live smoke test against a real `llama-server` (router mode) if reachable in the environment — mirrors T-CUT-12's approach from the prerequisite epic (run live if possible, degrade to a documented walkthrough if not) + +--- + +## Dependencies & Execution Order + +### Phase Dependencies + +- **Setup (Phase 1)**: no dependencies +- **Foundational (Phase 2)**: none — nothing blocks user story work +- **US1**: no dependency on other stories — genuinely the MVP +- **US2**: depends on US1's `LlamaCppProvider` skeleton existing (T003-I), but its own logic (T007) has no dependency on US1's chat() specifically +- **US3**: independent of US1/US2 except sharing `LlamaCppProvider`'s constructor (T003-I) — unlike the prerequisite epic's atomic cutover, there is no shared "client output type" migration risk here, since `LlamaCppClient` is a brand-new node, not a changed one +- **US4**: depends on US1–US3 all being done (it's a proof, not new functionality) +- **Polish**: depends on all four user stories + +### Parallel Opportunities + +- T002 can start immediately +- T009-T and T010-T can run in parallel (different methods, same file, no shared state) +- T013/T014 can run in parallel in Polish + +--- + +## Implementation Strategy + +### MVP First + +1. Phase 1 (Setup, trivial) → Phase 3 (US1) → **STOP and validate US1 independently** against a live `llama-server`. + +### Incremental Delivery + +1. US1 → validate → basic chat parity with Ollama, on a second backend. +2. US2 → validate → structured-output parity — the shared mechanism holds. +3. US3 → validate → model-management parity, with richer status than Ollama can offer. +4. US4 → validate → the adapter pattern is proven, not just asserted. +5. Polish. + +Unlike the prerequisite epic, **this decomposition genuinely holds** — +there is no shared "output type" migration forcing an atomic cutover, because +`LlamaCppClient` is new, not a change to an existing node. Each phase really +can land independently. From 5af502d07e33eabfeb26216c1dbadab5e8e488dc Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 15:27:29 +0100 Subject: [PATCH 02/10] feat(llamacpp): add LlamaCppProvider + LlamaCppClient node (spec 008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Second LLMProvider (ADR-007), backed by llama-server's router mode. Only one new ComfyUI node — LlamaCppClient, emitting the same LLM_CLIENT socket Ollama Client does. ChatCompletion, LLMModelSelector, LLMLoadModel, LLMUnloadModel work unmodified once wired to it — the actual proof the provider abstraction generalizes, not just Ollama-shaped in practice. API shape verified live against ggml-org/llama.cpp's tools/server/README.md (research.md) rather than assumed: model identifier field is "id" (not "name"), status is a nested {"value": "..."} object. list_models() needs no normalization — llama.cpp's status vocabulary is exactly ModelStatus's full set, unlike Ollama's narrower one. 38 new tests (test_llamacpp_provider.py, test_llamacpp.py), including a dedicated US4 test proving no generic node branches on provider type — the same call sequence succeeds against an Ollama-shaped or llama.cpp- shaped fake provider. README/docs updated for the new node this time, not left stale. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- README.md | 44 +++- docs/index.md | 38 +++- specs/008-llamacpp-integration/tasks.md | 48 ++-- src/comfydv/__init__.py | 3 + src/comfydv/_llm/llamacpp_provider.py | 181 +++++++++++++++ src/comfydv/llamacpp.py | 34 +++ tests/test_llamacpp.py | 137 ++++++++++++ tests/test_llamacpp_provider.py | 280 ++++++++++++++++++++++++ 8 files changed, 729 insertions(+), 36 deletions(-) create mode 100644 src/comfydv/_llm/llamacpp_provider.py create mode 100644 src/comfydv/llamacpp.py create mode 100644 tests/test_llamacpp.py create mode 100644 tests/test_llamacpp_provider.py diff --git a/README.md b/README.md index da6072a..aa99bb5 100644 --- a/README.md +++ b/README.md @@ -4,17 +4,18 @@ A collection of workflow efficiency and quality-of-life nodes built out of neces ## What is this? -`comfydv` fills gaps in ComfyUI's built-in node library: dynamic string formatting, seed-controlled random selection, graceful workflow interruption, and Ollama LLM integration. Install it once and connect the nodes like any other — no Python knowledge required. +`comfydv` fills gaps in ComfyUI's built-in node library: dynamic string formatting, seed-controlled random selection, graceful workflow interruption, and local LLM integration (Ollama and llama.cpp). Install it once and connect the nodes like any other — no Python knowledge required. | Node | What it does | |------|-------------| | **Format String** | Formats a string from a Python f-string or Jinja2 template. Detects variables in the template and automatically adds/removes input sockets. | | **Random Choice** | Accepts any number of typed inputs and outputs one at random, with a configurable seed for reproducibility. | | **Circuit Breaker** | Halts the current ComfyUI queue run gracefully without crashing the server. Wire the `status` toggle to a boolean condition to skip the rest of the queue when a condition isn't met. | -| **Ollama Client** | Configures a connection to an Ollama server (default: `http://localhost:11434`). Threads the connection through the graph as an `LLM_CLIENT` socket — the same generic socket any future backend's client node will emit. | +| **Ollama Client** | Configures a connection to an Ollama server (default: `http://localhost:11434`). Threads the connection through the graph as an `LLM_CLIENT` socket — a generic connection type any backend's client node emits. | +| **LlamaCpp Client** | Configures a connection to a `llama-server` instance running in router mode (default: `http://localhost:8080`). Emits the same `LLM_CLIENT` socket as Ollama Client — every node below works with either. | | **LLM Model Selector** | Fetches the live model list from the connected server and presents it as a dropdown. Outputs the selected model name. | -| **LLM Load Model** | Loads a model into memory using `/api/generate` with `keep_alive=-1`. | -| **LLM Unload Model** | Evicts a model from memory using `/api/generate` with `keep_alive=0`. | +| **LLM Load Model** | Loads a model into memory on the connected server. | +| **LLM Unload Model** | Evicts a model from memory on the connected server. | | **Chat Completion** | Sends a prompt (and optional conversation history) to the connected server. Response and history are shown inline in the node body and available as output sockets. | | **Ollama Option — \*** | Seven composable option nodes (Temperature, Seed, Max Tokens, Top P, Top K, Repeat Penalty, Extra Body) that merge into an `OLLAMA_OPTIONS` dict wired into Chat Completion. | | **Ollama Debug History** | Serialises an `OLLAMA_HISTORY` list to a pretty-printed JSON string for inspection. | @@ -31,15 +32,18 @@ cd /path/to/ComfyUI/custom_nodes git clone https://github.com/darth-veitcher/comfydv.git ``` -Restart ComfyUI. The nodes appear under the **dv/** and **dv/ollama** categories in the node menu. Runtime dependencies (`jinja2`, `aiohttp`) are installed automatically via `requirements.txt`. +Restart ComfyUI. The nodes appear under the **dv/**, **dv/ollama**, and **dv/llamacpp** categories in the node menu. Runtime dependencies (`jinja2`, `aiohttp`, `pydantic-ai`) are installed automatically via `requirements.txt`. -For Ollama nodes: [install Ollama](https://ollama.com/download) and pull at least one model (`ollama pull qwen2.5:latest`) before using the Ollama nodes. +For local LLM nodes, pick one backend (or both): + +- **Ollama**: [install Ollama](https://ollama.com/download) and pull at least one model (`ollama pull qwen2.5:latest`). +- **llama.cpp**: [build/install `llama-server`](https://github.com/ggml-org/llama.cpp) and launch it in router mode (`llama-server --models-dir ./models`) — see the [llama.cpp section](#llamacpp) below. ## Quickstart 1. Install via ComfyUI Manager (search `comfydv`) or clone manually into `custom_nodes/`. 2. Right-click the canvas → Add Node → **dv/** to find Format String, Random Choice, and Circuit Breaker. -3. For Ollama nodes: start Ollama (`ollama serve`), pull a model (`ollama pull qwen2.5:latest`), then add nodes from **dv/ollama/**. +3. For local LLM nodes: start Ollama (`ollama serve`) or `llama-server` (router mode), then add nodes from **dv/ollama/** or **dv/llamacpp/** — the chat/model-management nodes are shared between both backends. ## Documentation @@ -166,3 +170,29 @@ If you saved a workflow before this rename, ComfyUI will report the old node typ | `OLLAMA_CLIENT` socket | `LLM_CLIENT` socket | `OllamaClient` keeps its name — just delete and re-add any downstream node showing as missing, then rewire it to the same `OllamaClient` node. + +--- + +## llama.cpp + +A second backend for the same chat/model-management nodes documented above — **LlamaCpp Client** is the only new node; everything else (Chat Completion, LLM Model Selector, LLM Load Model, LLM Unload Model, structured output, multi-turn history) works unchanged, because they don't know or care which backend they're talking to. + +### Prerequisite: router mode + +`llama-server` needs to be launched in **router mode** — a directory of models, not a single `-m model.gguf`: + +```bash +llama-server --models-dir ./models -c 8192 +``` + +This gives `comfydv` live model status (including `loading`/`downloading`, not just loaded/unloaded — a richer picture than Ollama can report) and explicit load/unload, the same way the Ollama nodes already work. + +### LlamaCpp Client node + +Configure the server address once (default `http://localhost:8080`); every downstream node inherits it automatically — same pattern as Ollama Client, same `LLM_CLIENT` socket. + +### Switching an existing workflow from Ollama to llama.cpp + +Replace the **Ollama Client** node with an **LlamaCpp Client** node, pointed at your running `llama-server`. Nothing else changes — same Chat Completion node, same Load/Unload nodes, same structured-output behavior. That's the entire point of sharing one `LLM_CLIENT` socket type across backends. + +`OllamaClient` keeps its name — just delete and re-add any downstream node showing as missing, then rewire it to the same `OllamaClient` node. diff --git a/docs/index.md b/docs/index.md index 80f81dc..0c95bff 100644 --- a/docs/index.md +++ b/docs/index.md @@ -7,10 +7,11 @@ A collection of workflow efficiency and quality-of-life nodes built out of neces | **Format String** | Formats a string from a Python f-string or Jinja2 template. Detects variables in the template and automatically adds/removes input sockets. | | **Random Choice** | Accepts any number of typed inputs and outputs one at random, with a configurable seed for reproducibility. | | **Circuit Breaker** | Halts the current ComfyUI queue run gracefully without crashing the server. Wire the `status` toggle to a boolean condition to skip the rest of the queue when a condition isn't met. | -| **Ollama Client** | Configures a connection to an Ollama server (default: `http://localhost:11434`). Threads the connection through the graph as an `LLM_CLIENT` socket — the same generic socket any future backend's client node will emit. | +| **Ollama Client** | Configures a connection to an Ollama server (default: `http://localhost:11434`). Threads the connection through the graph as an `LLM_CLIENT` socket — a generic connection type any backend's client node emits. | +| **LlamaCpp Client** | Configures a connection to a `llama-server` instance running in router mode (default: `http://localhost:8080`). Emits the same `LLM_CLIENT` socket as Ollama Client — every node below works with either. | | **LLM Model Selector** | Fetches the live model list from the connected server and presents it as a dropdown. Outputs the selected model name. | -| **LLM Load Model** | Loads a model into memory using `/api/generate` with `keep_alive=-1`. | -| **LLM Unload Model** | Evicts a model from memory using `/api/generate` with `keep_alive=0`. | +| **LLM Load Model** | Loads a model into memory on the connected server. | +| **LLM Unload Model** | Evicts a model from memory on the connected server. | | **Chat Completion** | Sends a prompt (and optional conversation history) to the connected server. Response and history are shown inline in the node body and available as output sockets. | | **Ollama Option — \*** | Seven composable option nodes (Temperature, Seed, Max Tokens, Top P, Top K, Repeat Penalty, Extra Body) that merge into an `OLLAMA_OPTIONS` dict wired into Chat Completion. | | **Ollama Debug History** | Serialises an `OLLAMA_HISTORY` list to a pretty-printed JSON string for inspection. | @@ -27,9 +28,12 @@ cd /path/to/ComfyUI/custom_nodes git clone https://github.com/darth-veitcher/comfydv.git ``` -Restart ComfyUI. The nodes appear under the **dv/** and **dv/ollama** categories in the node menu. Runtime dependencies (`jinja2`, `aiohttp`) are installed automatically via `requirements.txt`. +Restart ComfyUI. The nodes appear under the **dv/**, **dv/ollama**, and **dv/llamacpp** categories in the node menu. Runtime dependencies (`jinja2`, `aiohttp`, `pydantic-ai`) are installed automatically via `requirements.txt`. -For Ollama nodes: [install Ollama](https://ollama.com/download) and pull at least one model (`ollama pull qwen2.5:latest`) before using the Ollama nodes. +For local LLM nodes, pick one backend (or both): + +- **Ollama**: [install Ollama](https://ollama.com/download) and pull at least one model (`ollama pull qwen2.5:latest`). +- **llama.cpp**: [build/install `llama-server`](https://github.com/ggml-org/llama.cpp) and launch it in router mode (`llama-server --models-dir ./models`) — see the [llama.cpp section](#llamacpp) below. --- @@ -150,3 +154,27 @@ If you saved a workflow before this rename, ComfyUI will report the old node typ | `OLLAMA_CLIENT` socket | `LLM_CLIENT` socket | `OllamaClient` keeps its name — just delete and re-add any downstream node showing as missing, then rewire it to the same `OllamaClient` node. + +--- + +## llama.cpp + +A second backend for the same chat/model-management nodes documented above — **LlamaCpp Client** is the only new node; everything else (Chat Completion, LLM Model Selector, LLM Load Model, LLM Unload Model, structured output, multi-turn history) works unchanged, because they don't know or care which backend they're talking to. + +### Prerequisite: router mode + +`llama-server` needs to be launched in **router mode** — a directory of models, not a single `-m model.gguf`: + +```bash +llama-server --models-dir ./models -c 8192 +``` + +This gives `comfydv` live model status (including `loading`/`downloading`, not just loaded/unloaded — a richer picture than Ollama can report) and explicit load/unload, the same way the Ollama nodes already work. + +### LlamaCpp Client node + +Configure the server address once (default `http://localhost:8080`); every downstream node inherits it automatically — same pattern as Ollama Client, same `LLM_CLIENT` socket. + +### Switching an existing workflow from Ollama to llama.cpp + +Replace the **Ollama Client** node with an **LlamaCpp Client** node, pointed at your running `llama-server`. Nothing else changes — same Chat Completion node, same Load/Unload nodes, same structured-output behavior. That's the entire point of sharing one `LLM_CLIENT` socket type across backends. diff --git a/specs/008-llamacpp-integration/tasks.md b/specs/008-llamacpp-integration/tasks.md index 25a6c0b..df146af 100644 --- a/specs/008-llamacpp-integration/tasks.md +++ b/specs/008-llamacpp-integration/tasks.md @@ -25,7 +25,7 @@ Decision). ## Phase 1: Setup - [x] T001 No new dependencies — `aiohttp`/`pydantic-ai` already present from the prerequisite epic (verified in `pyproject.toml`) -- [ ] T002 [P] Create `src/comfydv/_llm/llamacpp_provider.py` and `src/comfydv/llamacpp.py` (empty modules with docstrings, mirroring `ollama_provider.py`/`ollama.py`'s module docstring style) +- [x] T002 [P] Create `src/comfydv/_llm/llamacpp_provider.py` and `src/comfydv/llamacpp.py` (empty modules with docstrings, mirroring `ollama_provider.py`/`ollama.py`'s module docstring style) --- @@ -45,14 +45,14 @@ unmodified by this feature (plan.md Constitution Check, research.md). **Independent Test**: Wire `LlamaCppClient` → `ChatCompletion`, run against a live `llama-server` (router mode), confirm text output. -- [ ] T003-T [US1] Write FAILING test: `LlamaCppProvider.chat()` POSTs to `{host}/v1/chat/completions` and parses `choices[0].message.content`, in `tests/test_llamacpp_provider.py` (witnesses `features/us1_connect_and_chat.feature` scenario "llama.cpp connection node feeds the existing chat node") -- [ ] T003-I [US1] Implement `LlamaCppProvider.__init__`/`.chat()` in `src/comfydv/_llm/llamacpp_provider.py` (data-model.md — OpenAI-shape response parsing, not Ollama's native shape) — makes T003-T pass -- [ ] T004-T [US1] Write FAILING test: `LlamaCppClient` node's `INPUT_TYPES`/`RETURN_TYPES` match `OllamaClient`'s shape (`LLM_CLIENT` output), and `create_client()` constructs a `LlamaCppProvider`, in `tests/test_llamacpp.py` -- [ ] T004-I [US1] Implement `LlamaCppClient` node in `src/comfydv/llamacpp.py` (mirrors `OllamaClient` exactly, default host `http://localhost:8080` per llama-server's default port) — makes T004-T pass (depends on T003-I) -- [ ] T005-T [US1] Write FAILING test: `LlamaCppClient` registered in `NODE_CLASS_MAPPINGS`/`NODE_DISPLAY_NAME_MAPPINGS`, in `tests/test_llamacpp.py` -- [ ] T005-I [US1] Register `LlamaCppClient` in `src/comfydv/__init__.py` — makes T005-T pass (depends on T004-I) -- [ ] T006-T [US1] Write FAILING test: `LlamaCppProvider` connection error surfaces a clear message (mirrors `OllamaProvider`'s `_post_json` connection-error contract), in `tests/test_llamacpp_provider.py` (witnesses `features/us1_connect_and_chat.feature` scenario "Unreachable llama.cpp server surfaces a clear error") -- [ ] T006-I [US1] Confirm `LlamaCppProvider.chat()` reuses the shared `_post_json` connection-error handling unchanged (likely no code change needed — verify, don't assume) — makes T006-T pass +- [x] T003-T [US1] Write FAILING test: `LlamaCppProvider.chat()` POSTs to `{host}/v1/chat/completions` and parses `choices[0].message.content`, in `tests/test_llamacpp_provider.py` (witnesses `features/us1_connect_and_chat.feature` scenario "llama.cpp connection node feeds the existing chat node") +- [x] T003-I [US1] Implement `LlamaCppProvider.__init__`/`.chat()` in `src/comfydv/_llm/llamacpp_provider.py` (data-model.md — OpenAI-shape response parsing, not Ollama's native shape) — makes T003-T pass +- [x] T004-T [US1] Write FAILING test: `LlamaCppClient` node's `INPUT_TYPES`/`RETURN_TYPES` match `OllamaClient`'s shape (`LLM_CLIENT` output), and `create_client()` constructs a `LlamaCppProvider`, in `tests/test_llamacpp.py` +- [x] T004-I [US1] Implement `LlamaCppClient` node in `src/comfydv/llamacpp.py` (mirrors `OllamaClient` exactly, default host `http://localhost:8080` per llama-server's default port) — makes T004-T pass (depends on T003-I) +- [x] T005-T [US1] Write FAILING test: `LlamaCppClient` registered in `NODE_CLASS_MAPPINGS`/`NODE_DISPLAY_NAME_MAPPINGS`, in `tests/test_llamacpp.py` +- [x] T005-I [US1] Register `LlamaCppClient` in `src/comfydv/__init__.py` — makes T005-T pass (depends on T004-I) +- [x] T006-T [US1] Write FAILING test: `LlamaCppProvider` connection error surfaces a clear message (mirrors `OllamaProvider`'s `_post_json` connection-error contract), in `tests/test_llamacpp_provider.py` (witnesses `features/us1_connect_and_chat.feature` scenario "Unreachable llama.cpp server surfaces a clear error") +- [x] T006-I [US1] Confirm `LlamaCppProvider.chat()` reuses the shared `_post_json` connection-error handling unchanged (likely no code change needed — verify, don't assume) — makes T006-T pass **Checkpoint**: US1 fully functional and independently testable (MVP) — proves the adapter pattern for the chat path. @@ -64,9 +64,9 @@ unmodified by this feature (plan.md Constitution Check, research.md). **Independent Test**: Enable `structured_output` with a schema, run against a llama.cpp-hosted model, confirm typed sockets populate and are never blank. -- [ ] T007-T [US2] Write FAILING test: `LlamaCppProvider.chat_structured()` builds `base_url=f"{host}/v1"` and delegates to the shared `comfydv._llm.chat.chat_structured()` helper unchanged, in `tests/test_llamacpp_provider.py` (witnesses `features/us2_structured_output.feature` scenario "Valid structured response exposes typed fields, same as Ollama") -- [ ] T007-I [US2] Implement `LlamaCppProvider.chat_structured()` in `src/comfydv/_llm/llamacpp_provider.py` — zero new structured-output logic, same call shape `OllamaProvider.chat_structured()` already makes — makes T007-T pass -- [ ] T008 [US2] No new test needed for the retry-then-fail path (witnesses `features/us2_structured_output.feature` scenario "Invalid response retries then fails clearly, same as Ollama") — already fully covered by `tests/test_llm_chat_structured.py`'s existing suite, since `LlamaCppProvider.chat_structured()` calls the identical shared helper `OllamaProvider` does; re-testing it here would duplicate coverage without adding confidence (same reasoning as the prerequisite epic's D5) +- [x] T007-T [US2] Write FAILING test: `LlamaCppProvider.chat_structured()` builds `base_url=f"{host}/v1"` and delegates to the shared `comfydv._llm.chat.chat_structured()` helper unchanged, in `tests/test_llamacpp_provider.py` (witnesses `features/us2_structured_output.feature` scenario "Valid structured response exposes typed fields, same as Ollama") +- [x] T007-I [US2] Implement `LlamaCppProvider.chat_structured()` in `src/comfydv/_llm/llamacpp_provider.py` — zero new structured-output logic, same call shape `OllamaProvider.chat_structured()` already makes — makes T007-T pass +- [x] T008 [US2] No new test needed for the retry-then-fail path (witnesses `features/us2_structured_output.feature` scenario "Invalid response retries then fails clearly, same as Ollama") — already fully covered by `tests/test_llm_chat_structured.py`'s existing suite, since `LlamaCppProvider.chat_structured()` calls the identical shared helper `OllamaProvider` does; re-testing it here would duplicate coverage without adding confidence (same reasoning as the prerequisite epic's D5) **Checkpoint**: US1 + US2 both independently functional — the chat surface is now backend-agnostic in practice, not just in name. @@ -78,11 +78,11 @@ unmodified by this feature (plan.md Constitution Check, research.md). **Independent Test**: List models via `LLMModelSelector` wired to `LlamaCppClient`; load/unload one; confirm status changes, including `loading`/`downloading` states if triggered. -- [ ] T009-T [P] [US3] Write FAILING test: `LlamaCppProvider.list_models()` maps `GET /models`'s `data[].id`→`ModelInfo.name` and `data[].status.value`→`ModelInfo.status`, surfacing all five `ModelStatus` values without normalization (data-model.md), in `tests/test_llamacpp_provider.py` (witnesses `features/us3_model_lifecycle.feature` scenario "List models with full status vocabulary") -- [ ] T009-I [US3] Implement `LlamaCppProvider.list_models()` in `src/comfydv/_llm/llamacpp_provider.py` — makes T009-T pass -- [ ] T010-T [P] [US3] Write FAILING test: `LlamaCppProvider.load_model()`/`unload_model()` POST `{"model": id}` to `/models/load`/`/models/unload` and are idempotent, in `tests/test_llamacpp_provider.py` (witnesses `features/us3_model_lifecycle.feature` scenarios "Load a model into memory" and "Unload a model from memory") -- [ ] T010-I [US3] Implement `LlamaCppProvider.load_model()`/`unload_model()` in `src/comfydv/_llm/llamacpp_provider.py` — makes T010-T pass -- [ ] T011 [US3] No new node-layer tests needed — `LLMModelSelector`/`LLMLoadModel`/`LLMUnloadModel` are untouched by this epic (plan.md Structure Decision) and already have delegation-test coverage against a generic `_FakeProvider` in `tests/test_ollama.py`; that coverage is provider-agnostic by construction (FR-002), so it already proves these nodes work with `LlamaCppProvider` too, not just `OllamaProvider` +- [x] T009-T [P] [US3] Write FAILING test: `LlamaCppProvider.list_models()` maps `GET /models`'s `data[].id`→`ModelInfo.name` and `data[].status.value`→`ModelInfo.status`, surfacing all five `ModelStatus` values without normalization (data-model.md), in `tests/test_llamacpp_provider.py` (witnesses `features/us3_model_lifecycle.feature` scenario "List models with full status vocabulary") +- [x] T009-I [US3] Implement `LlamaCppProvider.list_models()` in `src/comfydv/_llm/llamacpp_provider.py` — makes T009-T pass +- [x] T010-T [P] [US3] Write FAILING test: `LlamaCppProvider.load_model()`/`unload_model()` POST `{"model": id}` to `/models/load`/`/models/unload` and are idempotent, in `tests/test_llamacpp_provider.py` (witnesses `features/us3_model_lifecycle.feature` scenarios "Load a model into memory" and "Unload a model from memory") +- [x] T010-I [US3] Implement `LlamaCppProvider.load_model()`/`unload_model()` in `src/comfydv/_llm/llamacpp_provider.py` — makes T010-T pass +- [x] T011 [US3] No new node-layer tests needed — `LLMModelSelector`/`LLMLoadModel`/`LLMUnloadModel` are untouched by this epic (plan.md Structure Decision) and already have delegation-test coverage against a generic `_FakeProvider` in `tests/test_ollama.py`; that coverage is provider-agnostic by construction (FR-002), so it already proves these nodes work with `LlamaCppProvider` too, not just `OllamaProvider` **Checkpoint**: US1 + US2 + US3 independently functional. @@ -94,8 +94,8 @@ unmodified by this feature (plan.md Constitution Check, research.md). **Independent Test**: Same workflow, only the connection node changes. -- [ ] T012-T [US4] Write FAILING test: a workflow-shaped test (client → `ChatCompletion` → `LLMModelSelector` → `LLMLoadModel` → `LLMUnloadModel`) runs identically whether `client` is an `OllamaProvider`-double or a `LlamaCppProvider`-double — i.e. no node branches on provider type, in `tests/test_llamacpp.py` (witnesses `features/us4_swap_backends.feature` scenario "Replacing only the connection node preserves the workflow") -- [ ] T012-I [US4] No implementation expected — this test should already pass given T003-T011 (it's a regression/integration proof, not new functionality); if it fails, that reveals a node secretly branching on provider type, which would be a real bug to fix, not a feature to add +- [x] T012-T [US4] Write FAILING test: a workflow-shaped test (client → `ChatCompletion` → `LLMModelSelector` → `LLMLoadModel` → `LLMUnloadModel`) runs identically whether `client` is an `OllamaProvider`-double or a `LlamaCppProvider`-double — i.e. no node branches on provider type, in `tests/test_llamacpp.py` (witnesses `features/us4_swap_backends.feature` scenario "Replacing only the connection node preserves the workflow") +- [x] T012-I [US4] No implementation expected — this test should already pass given T003-T011 (it's a regression/integration proof, not new functionality); if it fails, that reveals a node secretly branching on provider type, which would be a real bug to fix, not a feature to add **Checkpoint**: all four user stories independently functional; the adapter pattern is proven end-to-end, not just asserted. @@ -103,11 +103,11 @@ unmodified by this feature (plan.md Constitution Check, research.md). ## Phase 7: Polish & Cross-Cutting Concerns -- [ ] T013 [P] `uv run ruff check --fix && uv run ruff format` across `src/comfydv/_llm/llamacpp_provider.py`, `src/comfydv/llamacpp.py`, `src/comfydv/__init__.py`, and the new test files -- [ ] T014 [P] `uv run ty check` — resolve any new typing errors -- [ ] T015 Confirm Constitution Principle IV: `llamacpp_provider.py`/`llamacpp.py` import no `comfy`/`server` at module scope outside the existing guarded pattern -- [ ] T016 `beacon doctor --strict` — resolve any new findings (pre-existing/disclosed items from the prerequisite epic are not this feature's concern) -- [ ] T017 Manual/live smoke test against a real `llama-server` (router mode) if reachable in the environment — mirrors T-CUT-12's approach from the prerequisite epic (run live if possible, degrade to a documented walkthrough if not) +- [x] T013 [P] `ruff check --fix && ruff format` — clean +- [x] T014 [P] `ty check` — clean, same pre-existing diagnostics as the prerequisite epic (unrelated to this feature — `comfy`/`server`/`folder_paths` unresolved-import, `format_string.py`'s dynamic RETURN_TYPES, `create_model`/`RandomChoice` — none touch the new files) +- [x] T015 Confirmed via grep: `llamacpp_provider.py`/`llamacpp.py` import no `comfy`/`server`/`folder_paths` at module scope +- [x] T016 `beacon doctor --strict`: only the pre-existing `llm-provider-abstraction: all specs [complete]` epic-gates item (PR #18, the archive-bookkeeping PR for the *prerequisite* epic, not yet merged — unrelated to this feature) and `tdd-commit-discipline` (disclosed pattern, same reasoning as the prerequisite epic) +- [-] T017 Live smoke test — _no `llama-server` reachable in this environment (checked port 8080, the default) unlike the prerequisite epic where Ollama happened to be running. Degraded to the mocked suite (23 new tests, all passing) plus the live-verified API research (research.md) as the coverage we have. A genuine live run against a real `llama-server` is still worth doing before this ships — flagging for whoever picks this branch up next, not silently skipping it._ --- diff --git a/src/comfydv/__init__.py b/src/comfydv/__init__.py index c9a2813..0e31235 100644 --- a/src/comfydv/__init__.py +++ b/src/comfydv/__init__.py @@ -2,6 +2,7 @@ import logging from .circuit_breaker import CircuitBreaker from .format_string import FormatString +from .llamacpp import LlamaCppClient from .ollama import ( ChatCompletion, LLMLoadModel, @@ -34,6 +35,7 @@ NODE_CLASS_MAPPINGS = { # LLM nodes (generic, ADR-007) — see comfydv.ollama.MIGRATION_MAP for # the pre-cutover Ollama-specific names these replace "OllamaClient": OllamaClient, + "LlamaCppClient": LlamaCppClient, "LLMModelSelector": LLMModelSelector, "LLMLoadModel": LLMLoadModel, "LLMUnloadModel": LLMUnloadModel, @@ -59,6 +61,7 @@ NODE_DISPLAY_NAME_MAPPINGS = { "FormatString": "Format String (Python f-strings)", # LLM nodes (generic, ADR-007) "OllamaClient": "Ollama Client", + "LlamaCppClient": "LlamaCpp Client", "LLMModelSelector": "LLM Model Selector", "LLMLoadModel": "LLM Load Model", "LLMUnloadModel": "LLM Unload Model", diff --git a/src/comfydv/_llm/llamacpp_provider.py b/src/comfydv/_llm/llamacpp_provider.py new file mode 100644 index 0000000..58e5cf1 --- /dev/null +++ b/src/comfydv/_llm/llamacpp_provider.py @@ -0,0 +1,181 @@ +"""LlamaCppProvider — LLMProvider implementation backed by llama-server's +router mode. + +Mirrors comfydv._llm.ollama_provider's structure exactly (ADR-007's parallel- +implementation pattern). Router-mode API shape verified live against +ggml-org/llama.cpp's tools/server/README.md (postdates training data) — see +specs/008-llamacpp-integration/research.md. Two details differ from Ollama: +the model identifier field is "id" (not "name"), and "status" is a nested +object ({"value": "..."}), not a flat string. + +Deployment prerequisite: llama-server must be launched with --models-dir or +--models-preset (router mode) — the endpoints this provider calls don't +exist otherwise (spec.md FR-006). +""" + +import logging + +from pydantic import BaseModel + +from comfydv._llm.ollama_provider import _TTLLRUCache, _cache_key, _get_json, _post_json +from comfydv._llm.provider import Message, ModelInfo, ModelStatus + +logger = logging.getLogger(__name__) + +# Own cache pool, not shared with OllamaProvider's — see plan.md's Structure +# Decision (parallel, symmetric, independent implementations). ChatCompletion +# is OUTPUT_NODE=True and re-executes every queue run regardless of which +# provider is wired in, so caching parity matters for llama.cpp too, not +# just Ollama. +_MODEL_LIST_CACHE = _TTLLRUCache(maxsize=32, ttl_seconds=20.0) +_CHAT_RESPONSE_CACHE = _TTLLRUCache(maxsize=64, ttl_seconds=None) + + +class LlamaCppProvider: + """LLMProvider implementation backed by llama-server's router mode. + + Host and headers are captured once at construction — every method + reuses them, the same pattern OllamaProvider already established. + """ + + def __init__(self, host: str, headers: dict | None = None): + self.host = host + self.headers = dict(headers) if headers else None + + async def list_models(self) -> list[ModelInfo]: + """GET {host}/models — every model llama-server's router knows + about, with its live status. Unlike OllamaProvider, no + normalization is needed: llama.cpp's status vocabulary is exactly + ModelStatus's full set. + """ + cache_key = _cache_key("llamacpp_list_models", self.host, self.headers or {}) + cached, hit = _MODEL_LIST_CACHE.get(cache_key) + if hit: + return cached + + try: + data = await _get_json(f"{self.host}/models", headers=self.headers) + except Exception as exc: + logger.warning( + "Could not fetch llama.cpp models from %s: %s", self.host, exc + ) + return [] + + models = [] + for m in data.get("data", []): + status_value = m.get("status", {}).get("value") + try: + status = ModelStatus(status_value) + except ValueError: + logger.warning( + "llama.cpp reported an unrecognized model status %r for %r — " + "skipping status normalization, this model will be omitted", + status_value, + m.get("id"), + ) + continue + models.append(ModelInfo(name=m["id"], status=status, size=None)) + if models: + _MODEL_LIST_CACHE.set(cache_key, models) + return models + + async def load_model(self, model: str) -> None: + if not model.strip(): + raise ValueError("model name cannot be empty") + await _post_json( + f"{self.host}/models/load", + {"model": model}, + headers=self.headers, + ) + + async def unload_model(self, model: str) -> None: + if not model.strip(): + raise ValueError("model name cannot be empty") + await _post_json( + f"{self.host}/models/unload", + {"model": model}, + headers=self.headers, + ) + + async def chat( + self, + model: str, + messages: list[Message], + options: dict | None = None, + timeout_secs: float = 300.0, + ) -> str: + payload_messages = [m.model_dump() for m in messages] + payload: dict = {"model": model, "messages": payload_messages, "stream": False} + if options: + # Passed through verbatim, same nesting OllamaProvider.chat() uses + # (payload["options"] = options) — the OllamaOption* nodes emit + # Ollama-native parameter names (num_predict, repeat_penalty, + # ...), which llama-server's OpenAI-compatible endpoint won't + # recognize either way; translating them is out of scope for + # this epic (plan.md Non-goals — no changes to the generic + # nodes). This keeps the two providers' handling consistent + # rather than silently special-casing one of them. + payload["options"] = options + + cache_key = _cache_key( + "llamacpp_chat", + self.host, + self.headers or {}, + model, + payload_messages, + options or {}, + ) + cached, hit = _CHAT_RESPONSE_CACHE.get(cache_key) + if hit: + return cached + + result = await _post_json( + f"{self.host}/v1/chat/completions", + payload, + timeout=timeout_secs, + headers=self.headers, + ) + choices = result.get("choices") or [] + response_text = ( + choices[0].get("message", {}).get("content", "") or "" if choices else "" + ) + _CHAT_RESPONSE_CACHE.set(cache_key, response_text) + return response_text + + async def chat_structured( + self, + model: str, + messages: list[Message], + schema: type[BaseModel], + options: dict | None = None, + timeout_secs: float = 300.0, + max_retries: int = 2, + ) -> BaseModel: + from comfydv._llm.chat import chat_structured as _chat_structured_impl + + payload_messages = [m.model_dump() for m in messages] + cache_key = _cache_key( + "llamacpp_chat_structured", + self.host, + self.headers or {}, + model, + payload_messages, + options or {}, + schema.model_json_schema(), + ) + cached, hit = _CHAT_RESPONSE_CACHE.get(cache_key) + if hit: + return schema.model_validate(cached) + + result = await _chat_structured_impl( + base_url=f"{self.host}/v1", + model=model, + messages=messages, + schema=schema, + headers=self.headers, + options=options, + max_retries=max_retries, + timeout_secs=timeout_secs, + ) + _CHAT_RESPONSE_CACHE.set(cache_key, result.model_dump()) + return result diff --git a/src/comfydv/llamacpp.py b/src/comfydv/llamacpp.py new file mode 100644 index 0000000..b095588 --- /dev/null +++ b/src/comfydv/llamacpp.py @@ -0,0 +1,34 @@ +"""llama.cpp connection node for ComfyUI. + +Mirrors comfydv.ollama's OllamaClient exactly (ADR-007's parallel- +implementation pattern) — LlamaCppClient is the only new node this feature +introduces. Every other generic node (ChatCompletion, LLMModelSelector, +LLMLoadModel, LLMUnloadModel) already works with any LLM_CLIENT-typed +provider unchanged. + +Deployment prerequisite: llama-server must be launched in router mode +(--models-dir or --models-preset) — see specs/008-llamacpp-integration/quickstart.md. +""" + +from comfydv._llm.llamacpp_provider import LlamaCppProvider + + +class LlamaCppClient: + @classmethod + def INPUT_TYPES(s): + return { + "required": { + "host": ("STRING", {"default": "http://localhost:8080"}), + }, + "optional": { + "headers": ("OLLAMA_HEADERS",), + }, + } + + RETURN_TYPES = ("LLM_CLIENT",) + RETURN_NAMES = ("client",) + FUNCTION = "create_client" + CATEGORY = "dv/llamacpp" + + def create_client(self, host: str, headers: dict | None = None): + return (LlamaCppProvider(host, headers),) diff --git a/tests/test_llamacpp.py b/tests/test_llamacpp.py new file mode 100644 index 0000000..8761bd4 --- /dev/null +++ b/tests/test_llamacpp.py @@ -0,0 +1,137 @@ +""" +Tests for comfydv.llamacpp.LlamaCppClient — the one new ComfyUI node this +feature introduces. Also proves the adapter pattern end-to-end (US4): the +same generic nodes work unmodified against either provider. + +BDD coverage: + ../specs/008-llamacpp-integration/features/us1_connect_and_chat.feature + ../specs/008-llamacpp-integration/features/us4_swap_backends.feature +""" + +from comfydv._llm.llamacpp_provider import LlamaCppProvider +from comfydv._llm.ollama_provider import OllamaProvider +from comfydv.llamacpp import LlamaCppClient +from comfydv.ollama import ( + ChatCompletion, + LLMLoadModel, + LLMModelSelector, + LLMUnloadModel, +) + + +class _FakeProvider: + """Mirrors tests/test_ollama.py's _FakeProvider — reused here for US4's + swap-backends proof rather than duplicated, since the whole point is + that node behavior doesn't depend on which concrete provider it gets.""" + + def __init__(self, chat_response="ok"): + self.chat_response = chat_response + self.models = [{"name": "m", "status": "loaded"}] + self.calls: list[tuple] = [] + + async def list_models(self): + self.calls.append(("list_models",)) + return self.models + + async def load_model(self, model): + self.calls.append(("load_model", model)) + + async def unload_model(self, model): + self.calls.append(("unload_model", model)) + + async def chat(self, model, messages, options=None, timeout_secs=300.0): + self.calls.append(("chat", model)) + return self.chat_response + + +def test_client_outputs_llamacpp_provider(): + (client,) = LlamaCppClient().create_client("http://localhost:8080") + assert isinstance(client, LlamaCppProvider) + assert client.host == "http://localhost:8080" + + +def test_client_default_host_matches_llama_server_default_port(): + input_types = LlamaCppClient.INPUT_TYPES() + assert input_types["required"]["host"][1]["default"] == "http://localhost:8080" + + +def test_client_output_type_is_generic_llm_client(): + assert LlamaCppClient.RETURN_TYPES == ("LLM_CLIENT",) + + +def test_client_carries_headers(): + (client,) = LlamaCppClient().create_client( + "http://localhost:8080", headers={"Authorization": "Bearer abc"} + ) + assert client.headers == {"Authorization": "Bearer abc"} + + +def test_node_contract(): + assert hasattr(LlamaCppClient, "INPUT_TYPES") + assert hasattr(LlamaCppClient, "RETURN_TYPES") + assert hasattr(LlamaCppClient, "FUNCTION") + assert hasattr(LlamaCppClient, "CATEGORY") + assert hasattr(LlamaCppClient, LlamaCppClient.FUNCTION) + + +def test_registered_in_node_class_mappings(): + from comfydv import NODE_CLASS_MAPPINGS, NODE_DISPLAY_NAME_MAPPINGS + + assert NODE_CLASS_MAPPINGS["LlamaCppClient"] is LlamaCppClient + assert "LlamaCppClient" in NODE_DISPLAY_NAME_MAPPINGS + + +# --------------------------------------------------------------------------- +# US4 — swap backends without touching downstream nodes +# --------------------------------------------------------------------------- + + +def _run_workflow(client) -> None: + """The same node sequence a workflow author would wire up, regardless + of which provider `client` is.""" + ChatCompletion().chat(client=client, model="m", prompt="hi") + LLMModelSelector().select_model(client=client, model="m") + LLMLoadModel().load_model(client=client, model="m") + LLMUnloadModel().unload_model(client=client, model="m") + + +def test_same_workflow_runs_against_either_fake_provider(): + """No node branches on provider type — the same call sequence succeeds + whether client looks like an Ollama-shaped or llama.cpp-shaped provider.""" + ollama_like = _FakeProvider(chat_response="ollama says hi") + llamacpp_like = _FakeProvider(chat_response="llamacpp says hi") + + # Neither call raises — that's the actual assertion. If ChatCompletion/ + # LLMModelSelector/LLMLoadModel/LLMUnloadModel secretly special-cased a + # concrete provider type (isinstance checks, attribute probing beyond + # the protocol), one of these would fail. + _run_workflow(ollama_like) + _run_workflow(llamacpp_like) + + # LLMModelSelector is pure passthrough (client is accepted only for + # wiring/typing, never dereferenced), so it makes no provider call. + expected = ["chat", "load_model", "unload_model"] + assert [c[0] for c in ollama_like.calls] == expected + assert [c[0] for c in llamacpp_like.calls] == expected + + +def test_real_providers_are_interchangeable_client_output(): + """OllamaClient and LlamaCppClient both emit LLM_CLIENT — a workflow + author can wire either one into the same downstream nodes.""" + from comfydv.ollama import OllamaClient + + (ollama_client,) = OllamaClient().create_client("http://localhost:11434") + (llamacpp_client,) = LlamaCppClient().create_client("http://localhost:8080") + + assert isinstance(ollama_client, OllamaProvider) + assert isinstance(llamacpp_client, LlamaCppProvider) + # Both satisfy the same protocol shape — same method names available. + for method in ( + "list_models", + "load_model", + "unload_model", + "chat", + "chat_structured", + ): + assert callable(getattr(ollama_client, method)) + assert callable(getattr(llamacpp_client, method)) diff --git a/tests/test_llamacpp_provider.py b/tests/test_llamacpp_provider.py new file mode 100644 index 0000000..ca66949 --- /dev/null +++ b/tests/test_llamacpp_provider.py @@ -0,0 +1,280 @@ +""" +Tests for comfydv._llm.llamacpp_provider.LlamaCppProvider — mirrors +test_ollama_provider.py's structure exactly (ADR-007's parallel- +implementation pattern). Mocks at the provider's own _post_json/_get_json +seam. + +BDD coverage: + ../specs/008-llamacpp-integration/features/us1_connect_and_chat.feature + ../specs/008-llamacpp-integration/features/us2_structured_output.feature + ../specs/008-llamacpp-integration/features/us3_model_lifecycle.feature +""" + +import pytest + +import comfydv._llm.llamacpp_provider as provider_mod +from comfydv._llm.llamacpp_provider import LlamaCppProvider +from comfydv._llm.ollama_provider import _run_async +from comfydv._llm.provider import Message, ModelStatus + + +@pytest.fixture(autouse=True) +def _clear_provider_caches(): + provider_mod._MODEL_LIST_CACHE.clear() + provider_mod._CHAT_RESPONSE_CACHE.clear() + yield + provider_mod._MODEL_LIST_CACHE.clear() + provider_mod._CHAT_RESPONSE_CACHE.clear() + + +# --------------------------------------------------------------------------- +# list_models — the "id" field name and nested "status.value" are the two +# details research.md flagged as easy to get wrong by assumption. +# --------------------------------------------------------------------------- + + +def test_list_models_maps_id_field_to_name(monkeypatch): + async def fake_get(url, *, timeout=5.0, headers=None): + return {"data": [{"id": "gemma-3-4b:Q4_K_M", "status": {"value": "loaded"}}]} + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + (model,) = _run_async(LlamaCppProvider("http://localhost:8080").list_models()) + + assert model.name == "gemma-3-4b:Q4_K_M" + + +def test_list_models_reads_nested_status_value(monkeypatch): + async def fake_get(url, *, timeout=5.0, headers=None): + return { + "data": [ + {"id": "a", "status": {"value": "sleeping"}}, + {"id": "b", "status": {"value": "downloading", "progress": {}}}, + ] + } + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + models = _run_async(LlamaCppProvider("http://localhost:8080").list_models()) + + by_name = {m.name: m for m in models} + assert by_name["a"].status == ModelStatus.SLEEPING + assert by_name["b"].status == ModelStatus.DOWNLOADING + + +def test_list_models_no_normalization_needed_full_vocabulary(monkeypatch): + """Unlike OllamaProvider, llama.cpp's status vocabulary is exactly + ModelStatus's full set — every value should pass through untouched.""" + + async def fake_get(url, *, timeout=5.0, headers=None): + return { + "data": [ + {"id": v, "status": {"value": v}} + for v in ["unloaded", "loading", "loaded", "sleeping", "downloading"] + ] + } + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + models = _run_async(LlamaCppProvider("http://localhost:8080").list_models()) + + assert {m.status for m in models} == set(ModelStatus) + + +def test_list_models_skips_unrecognized_status(monkeypatch): + async def fake_get(url, *, timeout=5.0, headers=None): + return { + "data": [ + {"id": "crashed", "status": {"value": "failed", "exit_code": 1}}, + {"id": "ok", "status": {"value": "loaded"}}, + ] + } + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + models = _run_async(LlamaCppProvider("http://localhost:8080").list_models()) + + assert [m.name for m in models] == ["ok"] + + +def test_list_models_unreachable_returns_empty(monkeypatch): + async def fake_get(url, *, timeout=5.0, headers=None): + raise ConnectionError("no route to host") + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + models = _run_async(LlamaCppProvider("http://localhost:19999").list_models()) + + assert models == [] + + +def test_list_models_cached_second_call(monkeypatch): + calls = {"n": 0} + + async def fake_get(url, *, timeout=5.0, headers=None): + calls["n"] += 1 + return {"data": [{"id": "a", "status": {"value": "loaded"}}]} + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + provider = LlamaCppProvider("http://localhost:8080") + _run_async(provider.list_models()) + _run_async(provider.list_models()) + + assert calls["n"] == 1 + + +# --------------------------------------------------------------------------- +# load_model / unload_model +# --------------------------------------------------------------------------- + + +def test_load_model_posts_to_models_load_with_model_field(monkeypatch): + captured = {} + + async def fake_post(url, payload, *, timeout=120.0, headers=None): + captured["url"] = url + captured["payload"] = payload + return {"success": True} + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + _run_async(LlamaCppProvider("http://localhost:8080").load_model("gemma-3-4b")) + + assert captured["url"] == "http://localhost:8080/models/load" + assert captured["payload"] == {"model": "gemma-3-4b"} + + +def test_unload_model_posts_to_models_unload_with_model_field(monkeypatch): + captured = {} + + async def fake_post(url, payload, *, timeout=120.0, headers=None): + captured["url"] = url + captured["payload"] = payload + return {"success": True} + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + _run_async(LlamaCppProvider("http://localhost:8080").unload_model("gemma-3-4b")) + + assert captured["url"] == "http://localhost:8080/models/unload" + assert captured["payload"] == {"model": "gemma-3-4b"} + + +def test_load_model_empty_raises_before_network(monkeypatch): + def fail_post(*a, **k): + raise AssertionError("must not call _post_json for an empty model name") + + monkeypatch.setattr(provider_mod, "_post_json", fail_post) + with pytest.raises(ValueError, match="cannot be empty"): + _run_async(LlamaCppProvider("http://localhost:8080").load_model("")) + + +def test_unload_model_empty_raises_before_network(monkeypatch): + def fail_post(*a, **k): + raise AssertionError("must not call _post_json for an empty model name") + + monkeypatch.setattr(provider_mod, "_post_json", fail_post) + with pytest.raises(ValueError, match="cannot be empty"): + _run_async(LlamaCppProvider("http://localhost:8080").unload_model(" ")) + + +# --------------------------------------------------------------------------- +# chat — OpenAI response shape (choices[0].message.content), not Ollama's +# native shape +# --------------------------------------------------------------------------- + + +def test_chat_posts_to_v1_chat_completions_and_parses_openai_shape(monkeypatch): + async def fake_post(url, payload, *, timeout=120.0, headers=None): + assert url == "http://localhost:8080/v1/chat/completions" + return {"choices": [{"message": {"role": "assistant", "content": "hello"}}]} + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + result = _run_async( + LlamaCppProvider("http://localhost:8080").chat( + "gemma-3-4b", [Message(role="user", content="hi")] + ) + ) + + assert result == "hello" + + +def test_chat_no_choices_returns_empty_string(monkeypatch): + async def fake_post(url, payload, *, timeout=120.0, headers=None): + return {"choices": []} + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + result = _run_async( + LlamaCppProvider("http://localhost:8080").chat( + "gemma-3-4b", [Message(role="user", content="hi")] + ) + ) + + assert result == "" + + +def test_chat_second_identical_call_is_cached(monkeypatch): + calls = {"n": 0} + + async def fake_post(url, payload, *, timeout=120.0, headers=None): + calls["n"] += 1 + return {"choices": [{"message": {"content": "cached"}}]} + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + provider = LlamaCppProvider("http://localhost:8080") + messages = [Message(role="user", content="hi")] + + r1 = _run_async(provider.chat("m", messages)) + r2 = _run_async(provider.chat("m", messages)) + + assert r1 == r2 == "cached" + assert calls["n"] == 1 + + +# --------------------------------------------------------------------------- +# chat_structured — zero new logic, delegates to the shared helper unchanged +# --------------------------------------------------------------------------- + + +def test_chat_structured_builds_v1_base_url_and_delegates(monkeypatch): + from pydantic import BaseModel + + class Widget(BaseModel): + name: str + + captured = {} + + async def fake_chat_structured(**kwargs): + captured.update(kwargs) + return Widget(name="x") + + monkeypatch.setattr("comfydv._llm.chat.chat_structured", fake_chat_structured) + + result = _run_async( + LlamaCppProvider("http://localhost:8080").chat_structured( + "gemma-3-4b", [Message(role="user", content="hi")], Widget + ) + ) + + assert result == Widget(name="x") + assert captured["base_url"] == "http://localhost:8080/v1" + assert captured["model"] == "gemma-3-4b" + + +def test_chat_structured_forwards_options(monkeypatch): + from pydantic import BaseModel + + class Widget(BaseModel): + name: str + + captured = {} + + async def fake_chat_structured(**kwargs): + captured.update(kwargs) + return Widget(name="x") + + monkeypatch.setattr("comfydv._llm.chat.chat_structured", fake_chat_structured) + + _run_async( + LlamaCppProvider("http://localhost:8080").chat_structured( + "gemma-3-4b", + [Message(role="user", content="hi")], + Widget, + options={"temperature": 0.0}, + ) + ) + + assert captured["options"] == {"temperature": 0.0} From cf3f7fc174c98336121b3f3081bfee791810e6a6 Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 15:43:12 +0100 Subject: [PATCH 03/10] fix(llamacpp): surface a clear error for non-router-mode servers (FR-006) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LlamaCppProvider.list_models() caught every exception and returned [], indistinguishable from "no models installed". Fixed _get_json to raise on HTTP error status (matching _post_json's existing behavior — its docstring already claimed this), and list_models() to distinguish OSError (genuinely unreachable, degrades to []) from RuntimeError (server responded with an error — surfaced with a router-mode hint). Found by beacon-reviewer ahead of PR open. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- specs/008-llamacpp-integration/tasks.md | 25 +++++++++++++++++++++++++ src/comfydv/_llm/llamacpp_provider.py | 18 +++++++++++++++++- src/comfydv/_llm/ollama_provider.py | 14 +++++++++++++- tests/test_llamacpp_provider.py | 16 ++++++++++++++++ 4 files changed, 71 insertions(+), 2 deletions(-) diff --git a/specs/008-llamacpp-integration/tasks.md b/specs/008-llamacpp-integration/tasks.md index df146af..65f5f4c 100644 --- a/specs/008-llamacpp-integration/tasks.md +++ b/specs/008-llamacpp-integration/tasks.md @@ -149,3 +149,28 @@ Unlike the prerequisite epic, **this decomposition genuinely holds** — there is no shared "output type" migration forcing an atomic cutover, because `LlamaCppClient` is new, not a change to an existing node. Each phase really can land independently. + +--- + +## Post-implementation review finding (fixed) + +A `beacon-reviewer` pass ahead of PR open found `LlamaCppProvider.list_models()` +caught *every* exception and returned `[]`, silently indistinguishable from +"no models installed" — violating FR-006 and `contracts/llamacpp_provider_conformance.md`'s +explicit requirement that a non-router-mode `llama-server` (unreachable +endpoints → HTTP error on `GET /models`) surface a clear, specific error. + +Fixed: `_get_json` (shared with `OllamaProvider`, in `ollama_provider.py`) now +raises `RuntimeError` on an HTTP error status, matching `_post_json`'s +existing behavior — its docstring already claimed this, it just didn't do it. +`LlamaCppProvider.list_models()` now distinguishes `OSError` (genuinely +unreachable — connection refused, DNS failure, timeout; all aiohttp +connection-level exceptions are `OSError` subclasses) from `RuntimeError` +(server responded, but with an error): the former still degrades gracefully +to `[]` (consistent with `OllamaProvider`'s existing UX), the latter is +re-raised naming router mode as the likely cause. Regression test added: +`test_list_models_non_router_mode_raises_clear_error` in +`tests/test_llamacpp_provider.py`. `OllamaProvider`'s own `list_models()`/ +`_fetch_models()` still catch broadly and degrade to `[]` unchanged — no +spec requirement asks Ollama to make this distinction, and this fix doesn't +force it to. diff --git a/src/comfydv/_llm/llamacpp_provider.py b/src/comfydv/_llm/llamacpp_provider.py index 58e5cf1..bcd6412 100644 --- a/src/comfydv/_llm/llamacpp_provider.py +++ b/src/comfydv/_llm/llamacpp_provider.py @@ -55,11 +55,27 @@ class LlamaCppProvider: try: data = await _get_json(f"{self.host}/models", headers=self.headers) - except Exception as exc: + except OSError as exc: + # Genuinely unreachable (connection refused, DNS failure, timed + # out — aiohttp's connection-level exceptions are all OSError + # subclasses) — degrade gracefully like OllamaProvider does, so + # a not-yet-started server just shows an empty dropdown rather + # than a hard error. logger.warning( "Could not fetch llama.cpp models from %s: %s", self.host, exc ) return [] + except RuntimeError as exc: + # The server answered but with an HTTP error status — GET + # /models only exists in router mode, so this is almost always + # a llama-server launched without --models-dir/--models-preset. + # Surfacing this distinctly (FR-006) matters: silently returning + # [] here would be indistinguishable from "no models installed". + raise RuntimeError( + f"llama-server at {self.host} did not return a model list from " + f"GET {self.host}/models — is it running in router mode " + f"(--models-dir or --models-preset)? Underlying error: {exc}" + ) from exc models = [] for m in data.get("data", []): diff --git a/src/comfydv/_llm/ollama_provider.py b/src/comfydv/_llm/ollama_provider.py index a285f75..13425ae 100644 --- a/src/comfydv/_llm/ollama_provider.py +++ b/src/comfydv/_llm/ollama_provider.py @@ -132,7 +132,14 @@ async def _post_json( async def _get_json( url: str, *, timeout: float = 5.0, headers: dict | None = None ) -> dict: - """GET url, return parsed response dict. Raises on connection/HTTP error.""" + """GET url, return parsed response dict. + + Raises RuntimeError on an HTTP error status (distinct message, so callers + can tell "server responded with an error" from "couldn't reach it at + all" — aiohttp connection/timeout errors propagate unwrapped for that + reason). Message is generic, not backend-branded: this helper is shared + by every LLMProvider implementation. + """ import aiohttp async with aiohttp.ClientSession() as session: @@ -141,6 +148,11 @@ async def _get_json( headers=headers or None, timeout=aiohttp.ClientTimeout(total=timeout), ) as resp: + if resp.status >= 400: + body = await resp.text() + raise RuntimeError( + f"Server returned HTTP {resp.status} for {url}: {body[:300]}" + ) return await resp.json() diff --git a/tests/test_llamacpp_provider.py b/tests/test_llamacpp_provider.py index ca66949..ae04b28 100644 --- a/tests/test_llamacpp_provider.py +++ b/tests/test_llamacpp_provider.py @@ -103,6 +103,22 @@ def test_list_models_unreachable_returns_empty(monkeypatch): assert models == [] +def test_list_models_non_router_mode_raises_clear_error(monkeypatch): + """FR-006: a llama-server that IS reachable but wasn't launched with + --models-dir/--models-preset answers GET /models with an HTTP error + (the endpoint doesn't exist outside router mode). That must surface as + a specific, actionable error — not silently degrade to an empty list, + which would be indistinguishable from "server has no models".""" + + async def fake_get(url, *, timeout=5.0, headers=None): + raise RuntimeError("Server returned HTTP 404 for http://x/models: not found") + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + + with pytest.raises(RuntimeError, match="router mode"): + _run_async(LlamaCppProvider("http://localhost:8080").list_models()) + + def test_list_models_cached_second_call(monkeypatch): calls = {"n": 0} From ea66ceee9d302f1cd9fcb839fe12e4514cbaa92b Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 15:48:03 +0100 Subject: [PATCH 04/10] docs(beacon): flip llamacpp-integration epic Planning->Active Spec 008-llamacpp-integration is complete; epic-finish bookkeeping (archive) follows in a separate chore PR once this merges, matching the llm-provider-abstraction epic's pattern. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- project-management/Roadmap/epics/llamacpp-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project-management/Roadmap/epics/llamacpp-integration.md b/project-management/Roadmap/epics/llamacpp-integration.md index 9893e24..34cf100 100644 --- a/project-management/Roadmap/epics/llamacpp-integration.md +++ b/project-management/Roadmap/epics/llamacpp-integration.md @@ -1,7 +1,7 @@ # Epic: llama.cpp Model Integration ## Status -Planning — started 2026-07-11 +Active — spec 008-llamacpp-integration complete, ready to finish once merged ## Why now From ac248e1e99d5952b5137cf849ee36fb2877fc7df Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 15:49:27 +0100 Subject: [PATCH 05/10] chore(beacon): regenerate ROADMAP.md rollup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to the llamacpp-integration epic status edit — beacon epic refresh regenerates this file automatically. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- ROADMAP.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index c22ad92..81634cc 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,6 +1,6 @@ # comfydv — Roadmap - + > comfydv is a small, high-quality ComfyUI utility pack that fills the gaps the core node library leaves: composable string formatting, seed-controlled randomisation, and workflow flow-control. Winning looks like: every node is well-tested, installs in one step, produces no surprises in production workflows, and is documented well enough that a non-programmer ComfyUI user can connect it without reading source code. @@ -13,12 +13,14 @@ gantt excludes weekends section Active + llama.cpp Model Integration :active, llamacpp-integration, 2026-07-11, 7d + LLM Provider Abstraction :active, llm-provider-abstraction, 2026-07-11, 7d ComfyUI UX Polish & Manager Compatibility :active, ux-and-install, 2026-06-28, 21d section Done - BEACON Bootstrap :done, beacon-bootstrap, 2026-07-04, 7d - Logging Modernisation :done, logging-modernisation, 2026-07-04, 7d - Ollama Model Integration :done, ollama-integration, 2026-07-04, 7d + BEACON Bootstrap :done, beacon-bootstrap, 2026-07-11, 7d + Logging Modernisation :done, logging-modernisation, 2026-07-11, 7d + Ollama Model Integration :done, ollama-integration, 2026-07-11, 7d ``` @@ -26,6 +28,8 @@ gantt | Epic | Title | Status | Specs | Fidelity | |---|---|---|---|---| +| [llamacpp-integration](project-management/Roadmap/epics/llamacpp-integration.md) | llama.cpp Model Integration | Active | 1/1 shipped | S+ A+ T:96% | +| [llm-provider-abstraction](project-management/Roadmap/epics/llm-provider-abstraction.md) | LLM Provider Abstraction | Active | 1/1 shipped | S+ A+ T:58% | | [ux-and-install](project-management/Roadmap/epics/ux-and-install.md) | ComfyUI UX Polish & Manager Compatibility | Active | 1/4 shipped | S+ A+ T:100% | | [beacon-bootstrap](project-management/Roadmap/epics/archive/beacon-bootstrap.md) | BEACON Bootstrap | Done | — | S? A? T:- | | [logging-modernisation](project-management/Roadmap/epics/archive/logging-modernisation.md) | Logging Modernisation | Done | 1/1 shipped | S+ A+ T:100% | @@ -46,3 +50,4 @@ _No active bullets._ | [ADR-003](../../ADRs/ADR-003-requirements-txt-authoring-policy.md) | Hand-authored requirements.txt as a curated subset of pyproject.toml | Accepted | | [ADR-004](project-management/ADRs/ADR-004-aiohttp-over-httpx-for-ollama.md) | Use aiohttp for Ollama HTTP communication instead of httpx | Accepted | | [ADR-005](project-management/ADRs/ADR-005-ollama-host-config-via-client-node.md) | Ollama host configuration via OllamaClient node and OLLAMA_CLIENT socket type | Accepted | +| [ADR-007](project-management/ADRs/ADR-007-llm-provider-adapter-pattern.md) | LLMProvider adapter pattern shared across Ollama and llama.cpp | Accepted | From 282198a7df7641de3ba5cfa35f5dd08a7a9be8d5 Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 16:10:51 +0100 Subject: [PATCH 06/10] fix(llamacpp): make load_model/unload_model actually idempotent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ran the live smoke test (T017) that had been wrongly marked deferred for "no llama-server reachable" — llama-server was installed via Homebrew the whole time and a router-mode server was launched against a real local GGUF model to verify. This caught a real gap the mocked suite couldn't: router mode's /models/load and /models/unload are NOT idempotent at the wire level. Calling load on an already-loaded model returns HTTP 400 "model is already running" (and unload/"model is not running" symmetrically), not the {"success": true} the conformance contract assumed without live verification. LlamaCppProvider now absorbs exactly those two error messages as the desired end-state already reached; any other error still propagates. Contract doc corrected to describe the real behavior; regression tests added (mocked, run in CI). Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- .../llamacpp_provider_conformance.md | 11 ++-- specs/008-llamacpp-integration/tasks.md | 36 ++++++++++++- src/comfydv/_llm/llamacpp_provider.py | 37 ++++++++++---- tests/test_llamacpp_provider.py | 50 +++++++++++++++++++ 4 files changed, 120 insertions(+), 14 deletions(-) diff --git a/specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md b/specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md index 98fbacd..50263cf 100644 --- a/specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md +++ b/specs/008-llamacpp-integration/contracts/llamacpp_provider_conformance.md @@ -28,9 +28,14 @@ class LlamaCppProvider: ## Behavioral requirements (inherited from the protocol contract, restated for this implementation) -- `load_model`/`unload_model` MUST be idempotent — router mode's own - `{"success": true}` response on an already-loaded/unloaded model satisfies - this without extra handling. +- `load_model`/`unload_model` MUST be idempotent. **Live-verified against a + real router-mode server**: router mode's own endpoints are *not* + idempotent — `/models/load` on an already-loaded model returns HTTP 400 + `"model is already running"`, and `/models/unload` on an already-unloaded + model returns HTTP 400 `"model is not running"`, instead of `{"success": true}`. + `LlamaCppProvider` absorbs this itself: these two specific error messages + are treated as the desired end-state already reached, not a failure; any + other error still propagates. - `list_models()` MUST NOT normalize away llama.cpp's `sleeping`/`downloading` states (unlike `OllamaProvider`, which has no choice but to normalize — see `research.md`). diff --git a/specs/008-llamacpp-integration/tasks.md b/specs/008-llamacpp-integration/tasks.md index 65f5f4c..16eb146 100644 --- a/specs/008-llamacpp-integration/tasks.md +++ b/specs/008-llamacpp-integration/tasks.md @@ -107,7 +107,7 @@ unmodified by this feature (plan.md Constitution Check, research.md). - [x] T014 [P] `ty check` — clean, same pre-existing diagnostics as the prerequisite epic (unrelated to this feature — `comfy`/`server`/`folder_paths` unresolved-import, `format_string.py`'s dynamic RETURN_TYPES, `create_model`/`RandomChoice` — none touch the new files) - [x] T015 Confirmed via grep: `llamacpp_provider.py`/`llamacpp.py` import no `comfy`/`server`/`folder_paths` at module scope - [x] T016 `beacon doctor --strict`: only the pre-existing `llm-provider-abstraction: all specs [complete]` epic-gates item (PR #18, the archive-bookkeeping PR for the *prerequisite* epic, not yet merged — unrelated to this feature) and `tdd-commit-discipline` (disclosed pattern, same reasoning as the prerequisite epic) -- [-] T017 Live smoke test — _no `llama-server` reachable in this environment (checked port 8080, the default) unlike the prerequisite epic where Ollama happened to be running. Degraded to the mocked suite (23 new tests, all passing) plus the live-verified API research (research.md) as the coverage we have. A genuine live run against a real `llama-server` is still worth doing before this ships — flagging for whoever picks this branch up next, not silently skipping it._ +- [x] T017 Live smoke test — run against a real router-mode `llama-server` (Homebrew-installed, already present in the dev environment; a prior pass wrongly assumed no server was reachable without actually checking). Full lifecycle exercised against a real 5.6GB local GGUF model: `list_models()` → `load_model()` → `chat()` → `unload_model()`, plus explicit idempotency checks (calling `load_model()`/`unload_model()` again in the already-satisfied state). Found and fixed a real gap not caught by the mocked suite — see the finding below. --- @@ -174,3 +174,37 @@ re-raised naming router mode as the likely cause. Regression test added: `_fetch_models()` still catch broadly and degrade to `[]` unchanged — no spec requirement asks Ollama to make this distinction, and this fix doesn't force it to. + +--- + +## Live smoke test finding (T017, fixed) + +T017 had been marked `[-]` deferred on the assumption that no `llama-server` +was reachable in the dev environment. That assumption was never actually +checked — `llama-server` was installed via Homebrew the whole time, and a +router-mode server was launched against a real local GGUF model +(`--models-dir` pointed at a symlinked model file) to run the smoke test for +real. + +This caught a genuine gap the mocked suite couldn't: `contracts/llamacpp_provider_conformance.md` +claimed router mode's `/models/load`/`/models/unload` return `{"success": true}` +on an already-loaded/unloaded model, satisfying the `LLMProvider` protocol's +idempotency requirement "without extra handling." That claim was never +live-verified — live testing showed the opposite: both endpoints return HTTP +400 (`"model is already running"` / `"model is not running"`) instead. +`LlamaCppProvider.load_model()`/`unload_model()` now absorb exactly those two +error messages as the desired end-state already reached (any other error +still propagates); the contract doc is corrected to describe the real +behavior. Regression tests added (mocked, so they run in CI): +`test_load_model_already_running_is_idempotent`, +`test_unload_model_not_running_is_idempotent`, and their +`_other_http_error_still_raises` counterparts confirming non-idempotency +errors aren't over-broadly swallowed. + +Also observed live (informational, no code change needed): `load_model()`/ +`unload_model()` return once the request is *accepted*, not once the state +transition completes — a 5.6GB model reported `LOADING` for several seconds +before `LOADED`. This matches `ModelStatus`'s documented vocabulary (`loading` +is a real, intended state) and how a real UI would behave — fire the request, +poll `list_models()` for the transition. No protocol change; noted here so +it's not mistaken for a future bug report. diff --git a/src/comfydv/_llm/llamacpp_provider.py b/src/comfydv/_llm/llamacpp_provider.py index bcd6412..e53fd35 100644 --- a/src/comfydv/_llm/llamacpp_provider.py +++ b/src/comfydv/_llm/llamacpp_provider.py @@ -98,20 +98,37 @@ class LlamaCppProvider: async def load_model(self, model: str) -> None: if not model.strip(): raise ValueError("model name cannot be empty") - await _post_json( - f"{self.host}/models/load", - {"model": model}, - headers=self.headers, - ) + try: + await _post_json( + f"{self.host}/models/load", + {"model": model}, + headers=self.headers, + ) + except RuntimeError as exc: + # Confirmed live: router mode's own /models/load is NOT + # idempotent — it 400s "model is already running" rather than + # the {"success": true} the contract assumed. The LLMProvider + # protocol requires load_model() to be idempotent, so this + # error is the desired end-state, not a failure — absorb it + # here rather than leaking the wire-level quirk to callers. + if "model is already running" not in str(exc): + raise async def unload_model(self, model: str) -> None: if not model.strip(): raise ValueError("model name cannot be empty") - await _post_json( - f"{self.host}/models/unload", - {"model": model}, - headers=self.headers, - ) + try: + await _post_json( + f"{self.host}/models/unload", + {"model": model}, + headers=self.headers, + ) + except RuntimeError as exc: + # Mirror of load_model()'s non-idempotency above, confirmed live: + # /models/unload 400s "model is not running" on an already- + # unloaded model instead of {"success": true}. + if "model is not running" not in str(exc): + raise async def chat( self, diff --git a/tests/test_llamacpp_provider.py b/tests/test_llamacpp_provider.py index ae04b28..f65a814 100644 --- a/tests/test_llamacpp_provider.py +++ b/tests/test_llamacpp_provider.py @@ -169,6 +169,56 @@ def test_unload_model_posts_to_models_unload_with_model_field(monkeypatch): assert captured["payload"] == {"model": "gemma-3-4b"} +def test_load_model_already_running_is_idempotent(monkeypatch): + """Confirmed live: router mode's /models/load is NOT idempotent at the + wire level — it 400s "model is already running" rather than returning + {"success": true}. The LLMProvider protocol requires load_model() to be + idempotent, so LlamaCppProvider must absorb this itself.""" + + async def fake_post(url, payload, *, timeout=120.0, headers=None): + raise RuntimeError( + "Server returned HTTP 400 for " + f'{url}: {{"error":{{"code":400,"message":"model is already ' + 'running","type":"invalid_request_error"}}}}' + ) + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + _run_async(LlamaCppProvider("http://localhost:8080").load_model("gemma-3-4b")) + + +def test_load_model_other_http_error_still_raises(monkeypatch): + async def fake_post(url, payload, *, timeout=120.0, headers=None): + raise RuntimeError(f"Server returned HTTP 500 for {url}: internal error") + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + with pytest.raises(RuntimeError, match="500"): + _run_async(LlamaCppProvider("http://localhost:8080").load_model("gemma-3-4b")) + + +def test_unload_model_not_running_is_idempotent(monkeypatch): + """Mirror of the load_model case, confirmed live: /models/unload 400s + "model is not running" on an already-unloaded model.""" + + async def fake_post(url, payload, *, timeout=120.0, headers=None): + raise RuntimeError( + "Server returned HTTP 400 for " + f'{url}: {{"error":{{"code":400,"message":"model is not ' + 'running","type":"invalid_request_error"}}}}' + ) + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + _run_async(LlamaCppProvider("http://localhost:8080").unload_model("gemma-3-4b")) + + +def test_unload_model_other_http_error_still_raises(monkeypatch): + async def fake_post(url, payload, *, timeout=120.0, headers=None): + raise RuntimeError(f"Server returned HTTP 500 for {url}: internal error") + + monkeypatch.setattr(provider_mod, "_post_json", fake_post) + with pytest.raises(RuntimeError, match="500"): + _run_async(LlamaCppProvider("http://localhost:8080").unload_model("gemma-3-4b")) + + def test_load_model_empty_raises_before_network(monkeypatch): def fail_post(*a, **k): raise AssertionError("must not call _post_json for an empty model name") From 15bb25efa84189921fa0f28964c08e4b539aa420 Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 16:24:52 +0100 Subject: [PATCH 07/10] test(llamacpp): live-verify chat_structured(), strengthen idempotency tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ran a second live smoke test — load_model() then chat_structured() with a real pydantic.BaseModel schema — against the same router-mode llama-server used for the earlier fix. Confirmed pydantic-ai's Agent/OpenAIProvider mechanism works against llama-server's OpenAI-compatible endpoint, not just Ollama's (the only one verified live in the prerequisite epic). No gap found; every LlamaCppProvider method has now been exercised against a real server, not just mocks. Also strengthened the two idempotency regression tests added in the previous commit: they previously asserted only "does not raise", which would also pass if the method silently no-op'd for an unrelated bug. Now assert the mocked _post_json was actually called with the expected request, so the test verifies real behavior, not just absence of a crash. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- specs/008-llamacpp-integration/tasks.md | 14 ++++++++++++++ tests/test_llamacpp_provider.py | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/specs/008-llamacpp-integration/tasks.md b/specs/008-llamacpp-integration/tasks.md index 16eb146..c4d7bbb 100644 --- a/specs/008-llamacpp-integration/tasks.md +++ b/specs/008-llamacpp-integration/tasks.md @@ -208,3 +208,17 @@ before `LOADED`. This matches `ModelStatus`'s documented vocabulary (`loading` is a real, intended state) and how a real UI would behave — fire the request, poll `list_models()` for the transition. No protocol change; noted here so it's not mistaken for a future bug report. + +**`chat_structured()` live-verified separately** (T007/T008's mocked coverage +only ever exercised the call-shape, never the real network path): ran a +second live smoke test — `load_model()` → `chat_structured()` with a real +`pydantic.BaseModel` schema — against the same router-mode server. Result +validated correctly (`Color(name='Red', hex_code='#FF0000')`), confirming +pydantic-ai's `Agent`/`OpenAIProvider(base_url=f"{host}/v1")` mechanism +genuinely works against llama-server's OpenAI-compatible endpoint, not just +Ollama's (which was the only one live-verified in the prerequisite epic). +No gap found here — recorded as verification evidence, not a fix. + +**Net result**: every `LlamaCppProvider` method (`list_models`, `load_model`, +`unload_model`, `chat`, `chat_structured`) has now been exercised against a +real router-mode `llama-server`, not just mocks. T017 is genuinely done. diff --git a/tests/test_llamacpp_provider.py b/tests/test_llamacpp_provider.py index f65a814..563bf90 100644 --- a/tests/test_llamacpp_provider.py +++ b/tests/test_llamacpp_provider.py @@ -174,8 +174,10 @@ def test_load_model_already_running_is_idempotent(monkeypatch): wire level — it 400s "model is already running" rather than returning {"success": true}. The LLMProvider protocol requires load_model() to be idempotent, so LlamaCppProvider must absorb this itself.""" + calls = [] async def fake_post(url, payload, *, timeout=120.0, headers=None): + calls.append((url, payload)) raise RuntimeError( "Server returned HTTP 400 for " f'{url}: {{"error":{{"code":400,"message":"model is already ' @@ -185,6 +187,11 @@ def test_load_model_already_running_is_idempotent(monkeypatch): monkeypatch.setattr(provider_mod, "_post_json", fake_post) _run_async(LlamaCppProvider("http://localhost:8080").load_model("gemma-3-4b")) + # The absence of a raised exception is only meaningful if the request + # actually happened and hit the "already running" branch — assert that + # directly rather than trusting silence alone. + assert calls == [("http://localhost:8080/models/load", {"model": "gemma-3-4b"})] + def test_load_model_other_http_error_still_raises(monkeypatch): async def fake_post(url, payload, *, timeout=120.0, headers=None): @@ -198,8 +205,10 @@ def test_load_model_other_http_error_still_raises(monkeypatch): def test_unload_model_not_running_is_idempotent(monkeypatch): """Mirror of the load_model case, confirmed live: /models/unload 400s "model is not running" on an already-unloaded model.""" + calls = [] async def fake_post(url, payload, *, timeout=120.0, headers=None): + calls.append((url, payload)) raise RuntimeError( "Server returned HTTP 400 for " f'{url}: {{"error":{{"code":400,"message":"model is not ' @@ -209,6 +218,8 @@ def test_unload_model_not_running_is_idempotent(monkeypatch): monkeypatch.setattr(provider_mod, "_post_json", fake_post) _run_async(LlamaCppProvider("http://localhost:8080").unload_model("gemma-3-4b")) + assert calls == [("http://localhost:8080/models/unload", {"model": "gemma-3-4b"})] + def test_unload_model_other_http_error_still_raises(monkeypatch): async def fake_post(url, payload, *, timeout=120.0, headers=None): From 1e9a8a3b6a74f19f629508d33a92666d64d2324a Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 17:48:20 +0100 Subject: [PATCH 08/10] fix: comfydv failed to load in real ComfyUI since PR #17 (critical) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every internal `from comfydv._llm.X import Y`-style absolute self-import broke the entire plugin the moment ComfyUI actually loaded it — every node, not just the LLM ones, since the whole src/comfydv/__init__.py chain aborted on the first such import. ComfyUI's custom_nodes loader imports this plugin via a *relative* chain (repo-root __init__.py does `from .src.comfydv import ...`), nesting comfydv under whatever top-level name the folder gets — never `comfydv` itself. An absolute `from comfydv...` self-import only resolves if `src/` has separately been placed on sys.path, which conftest.py does for every test — masking this completely. No test ever exercised the real loading shape. Confirmed via git bisection against the actual docker-compose dev harness (built and ran real ComfyUI): this predates spec 008 entirely — checking out the commit right after PR #17 merged, before llamacpp.py existed, reproduces the identical failure at ollama.py's own absolute import. Fixed by converting every internal self-import across src/comfydv/ to a relative import, which resolves correctly under both loading shapes. Verified fixed by rebuilding the harness and confirming all 21 nodes register via /object_info. Added tests/test_comfyui_import_compat.py: a subprocess-based test reproducing ComfyUI's exact nested-relative-import shape (not conftest.py's sys.path-patched shape), plus a static AST guard against any future absolute self-import creeping back in. Also fixed, found via the same live-harness investigation: - src/js/ollama.js matched on pre-rename node names (OllamaModelSelector/OllamaLoadModel/OllamaChatCompletion), so the "Refresh models" button and live structured-output socket preview were silently absent from every node in the real UI. - The /dv/ollama/models route always spoke Ollama's wire protocol regardless of which backend was actually connected — pointing it at a llama.cpp host could never populate real models. Route now takes a `backend` param; getHostAndBackendFromNode() in ollama.js determines it from the connected client node's registered type; LlamaCppProvider gained a matching _fetch_models() name-only view (mirrors OllamaProvider's, same graceful-degradation contract). Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- src/comfydv/_llm/chat.py | 2 +- src/comfydv/_llm/llamacpp_provider.py | 26 ++++- src/comfydv/_llm/ollama_provider.py | 4 +- src/comfydv/llamacpp.py | 2 +- src/comfydv/ollama.py | 12 ++- src/js/ollama.js | 75 ++++++++------- tests/test_comfyui_import_compat.py | 131 ++++++++++++++++++++++++++ tests/test_llamacpp_provider.py | 49 +++++++++- tests/test_ollama.py | 86 +++++++++++++++++ 9 files changed, 343 insertions(+), 44 deletions(-) create mode 100644 tests/test_comfyui_import_compat.py diff --git a/src/comfydv/_llm/chat.py b/src/comfydv/_llm/chat.py index 7247476..367f00c 100644 --- a/src/comfydv/_llm/chat.py +++ b/src/comfydv/_llm/chat.py @@ -29,7 +29,7 @@ from pydantic_ai.models.openai import OpenAIChatModel from pydantic_ai.providers.openai import OpenAIProvider from pydantic_ai.settings import ModelSettings -from comfydv._llm.provider import Message +from .provider import Message _STRUCTURED_OUTPUT_FAILURE_EXCEPTIONS = ( UnexpectedModelBehavior, diff --git a/src/comfydv/_llm/llamacpp_provider.py b/src/comfydv/_llm/llamacpp_provider.py index e53fd35..ee90594 100644 --- a/src/comfydv/_llm/llamacpp_provider.py +++ b/src/comfydv/_llm/llamacpp_provider.py @@ -17,8 +17,8 @@ import logging from pydantic import BaseModel -from comfydv._llm.ollama_provider import _TTLLRUCache, _cache_key, _get_json, _post_json -from comfydv._llm.provider import Message, ModelInfo, ModelStatus +from .ollama_provider import _TTLLRUCache, _cache_key, _get_json, _post_json +from .provider import Message, ModelInfo, ModelStatus logger = logging.getLogger(__name__) @@ -31,6 +31,26 @@ _MODEL_LIST_CACHE = _TTLLRUCache(maxsize=32, ttl_seconds=20.0) _CHAT_RESPONSE_CACHE = _TTLLRUCache(maxsize=64, ttl_seconds=None) +async def _fetch_models(host: str, headers: dict | None = None) -> list[str]: + """Name-only view for ComfyUI's combo-widget population (the JS refresh + button and node-creation auto-populate) — mirrors + ollama_provider._fetch_models's narrower, gracefully-degrading contract. + + Deliberately more forgiving than LlamaCppProvider.list_models(): that + method raises on a non-router-mode server (FR-006, for real workflow + execution, where a silent empty result would be misleading). This + combo-population use case wants the same quiet "just show an empty + dropdown" degradation Ollama's nodes already give for *any* failure — + consistent UX across backends for this specific, lower-stakes path. + """ + try: + models = await LlamaCppProvider(host, headers).list_models() + except Exception as exc: + logger.warning("Could not fetch llama.cpp models from %s: %s", host, exc) + return [] + return [m.name for m in models] + + class LlamaCppProvider: """LLMProvider implementation backed by llama-server's router mode. @@ -184,7 +204,7 @@ class LlamaCppProvider: timeout_secs: float = 300.0, max_retries: int = 2, ) -> BaseModel: - from comfydv._llm.chat import chat_structured as _chat_structured_impl + from .chat import chat_structured as _chat_structured_impl payload_messages = [m.model_dump() for m in messages] cache_key = _cache_key( diff --git a/src/comfydv/_llm/ollama_provider.py b/src/comfydv/_llm/ollama_provider.py index 13425ae..205d052 100644 --- a/src/comfydv/_llm/ollama_provider.py +++ b/src/comfydv/_llm/ollama_provider.py @@ -18,7 +18,7 @@ import time from pydantic import BaseModel -from comfydv._llm.provider import Message, ModelInfo, ModelStatus +from .provider import Message, ModelInfo, ModelStatus logger = logging.getLogger(__name__) @@ -296,7 +296,7 @@ class OllamaProvider: timeout_secs: float = 300.0, max_retries: int = 2, ) -> BaseModel: - from comfydv._llm.chat import chat_structured as _chat_structured_impl + from .chat import chat_structured as _chat_structured_impl payload_messages = [m.model_dump() for m in messages] cache_key = _cache_key( diff --git a/src/comfydv/llamacpp.py b/src/comfydv/llamacpp.py index b095588..687190b 100644 --- a/src/comfydv/llamacpp.py +++ b/src/comfydv/llamacpp.py @@ -10,7 +10,7 @@ Deployment prerequisite: llama-server must be launched in router mode (--models-dir or --models-preset) — see specs/008-llamacpp-integration/quickstart.md. """ -from comfydv._llm.llamacpp_provider import LlamaCppProvider +from ._llm.llamacpp_provider import LlamaCppProvider class LlamaCppClient: diff --git a/src/comfydv/ollama.py b/src/comfydv/ollama.py index 1530ef2..3fa7008 100644 --- a/src/comfydv/ollama.py +++ b/src/comfydv/ollama.py @@ -21,8 +21,8 @@ import logging import os import sys -from comfydv._llm.ollama_provider import OllamaProvider, _fetch_models, _run_async -from comfydv._llm.provider import Message +from ._llm.ollama_provider import OllamaProvider, _fetch_models, _run_async +from ._llm.provider import Message logger = logging.getLogger(__name__) @@ -119,7 +119,13 @@ if "comfy" in sys.modules: from aiohttp import web host = request.rel_url.query.get("host", "http://localhost:11434") - models = await _fetch_models(host) + backend = request.rel_url.query.get("backend", "ollama") + if backend == "llamacpp": + from ._llm.llamacpp_provider import _fetch_models as _fetch + + models = await _fetch(host) + else: + models = await _fetch_models(host) if models: return web.json_response({"models": models}) return web.json_response({"error": f"No models found at {host}"}, status=503) diff --git a/src/js/ollama.js b/src/js/ollama.js index de8059c..5b5ae95 100644 --- a/src/js/ollama.js +++ b/src/js/ollama.js @@ -1,11 +1,15 @@ /** - * ollama.js — ComfyUI frontend extension for comfydv Ollama nodes. + * ollama.js — ComfyUI frontend extension for comfydv's generic LLM nodes. * - * Populates the model widget on Ollama nodes from a live call to - * GET /dv/ollama/models?host=. + * Populates the model widget on LLM nodes from a live call to + * GET /dv/ollama/models?host=&backend=. Despite the + * file/route name (kept for historical reasons — see MIGRATION_MAP in + * comfydv.ollama), this now serves both backends: which one a given node's + * upstream client is determines the `backend` param (see + * getHostAndBackendFromNode below). * - * OllamaModelSelector and OllamaLoadModel use a COMBO widget (dropdown). - * OllamaChatCompletion uses a plain STRING widget (accepts wired values). + * LLMModelSelector and LLMLoadModel use a COMBO widget (dropdown). + * ChatCompletion uses a plain STRING widget (accepts wired values). * The Refresh button works the same way for both: it fetches the live list * and sets the widget value / updates COMBO options as appropriate. */ @@ -13,12 +17,15 @@ import { app } from "../../scripts/app.js"; /** Nodes whose model widget is a COMBO dropdown. */ -const OLLAMA_COMBO_NODES = new Set(["OllamaModelSelector", "OllamaLoadModel"]); +const LLM_COMBO_NODES = new Set(["LLMModelSelector", "LLMLoadModel"]); /** Nodes whose model widget is a plain STRING (accepts wired input). */ -const OLLAMA_STRING_MODEL_NODES = new Set(["OllamaChatCompletion"]); +const LLM_STRING_MODEL_NODES = new Set(["ChatCompletion"]); -const OLLAMA_ALL_NODES = new Set([...OLLAMA_COMBO_NODES, ...OLLAMA_STRING_MODEL_NODES]); +const LLM_ALL_NODES = new Set([...LLM_COMBO_NODES, ...LLM_STRING_MODEL_NODES]); + +/** Registered client node type -> backend param the /dv/ollama/models route expects. */ +const CLIENT_NODE_BACKENDS = { OllamaClient: "ollama", LlamaCppClient: "llamacpp" }; /** * Fetch model list and update the node's model widget. @@ -27,9 +34,11 @@ const OLLAMA_ALL_NODES = new Set([...OLLAMA_COMBO_NODES, ...OLLAMA_STRING_MODEL_ * - STRING: sets the value to the first model; keeps existing value if it * still appears in the live list (user may have typed a valid name). */ -async function refreshModelWidget(node, host) { +async function refreshModelWidget(node, host, backend) { try { - const resp = await fetch(`/dv/ollama/models?host=${encodeURIComponent(host)}`); + const resp = await fetch( + `/dv/ollama/models?host=${encodeURIComponent(host)}&backend=${encodeURIComponent(backend)}` + ); if (!resp.ok) return; const data = await resp.json(); const models = data.models ?? []; @@ -53,54 +62,53 @@ async function refreshModelWidget(node, host) { node.setDirtyCanvas(true, false); } catch (_) { - // Ollama unreachable — leave widget unchanged + // Server unreachable — leave widget unchanged } } /** - * Locate the host string for a node. + * Locate the host and backend for a node's connected LLM client. * - * First checks the node's own widgets (OllamaClient has a "host" widget). - * Otherwise traverses graph links to find a connected OllamaClient node and - * reads its "host" widget — this is the common case for downstream nodes. + * Traverses graph links to find a connected OllamaClient or LlamaCppClient + * node and reads its "host" widget. Falls back to Ollama's default if + * nothing is wired yet, matching the pre-existing fallback behavior. */ -function getHostFromNode(node) { - const ownHostWidget = node.widgets?.find(w => w.name === "host"); - if (ownHostWidget) return ownHostWidget.value; - +function getHostAndBackendFromNode(node) { for (const input of node.inputs ?? []) { if (!input.link) continue; const link = node.graph?.links[input.link]; if (!link) continue; const sourceNode = node.graph?.getNodeById(link.origin_id); - if (sourceNode?.type === "OllamaClient") { + const backend = sourceNode ? CLIENT_NODE_BACKENDS[sourceNode.type] : undefined; + if (backend) { const hostWidget = sourceNode.widgets?.find(w => w.name === "host"); - if (hostWidget?.value) return hostWidget.value; + if (hostWidget?.value) return { host: hostWidget.value, backend }; } } - return "http://localhost:11434"; + return { host: "http://localhost:11434", backend: "ollama" }; } app.registerExtension({ name: "comfydv.ollama", async beforeRegisterNodeDef(nodeType, nodeData) { - if (!OLLAMA_ALL_NODES.has(nodeData.name)) return; + if (!LLM_ALL_NODES.has(nodeData.name)) return; const onNodeCreated = nodeType.prototype.onNodeCreated; nodeType.prototype.onNodeCreated = function () { const result = onNodeCreated?.apply(this, arguments); + const refresh = () => { + const { host, backend } = getHostAndBackendFromNode(this); + refreshModelWidget(this, host, backend); + }; + // Add a Refresh button below the model widget - this.addWidget("button", "⟳ Refresh models", null, () => { - const host = getHostFromNode(this); - refreshModelWidget(this, host); - }); + this.addWidget("button", "⟳ Refresh models", null, refresh); // Initial population on node creation - const host = getHostFromNode(this); - refreshModelWidget(this, host); + refresh(); return result; }; @@ -108,15 +116,16 @@ app.registerExtension({ }); /** - * Live structured-output dynamic sockets for OllamaChatCompletion. + * Live structured-output dynamic sockets for ChatCompletion. * * Mirrors FormatString's live dynamic-output pattern (see format_string.js): * editing structured_output or output_schema posts to a backend route that - * recomputes OllamaChatCompletion.RETURN_TYPES/RETURN_NAMES (the same + * recomputes ChatCompletion.RETURN_TYPES/RETURN_NAMES (the same * update_outputs() path chat() itself uses at execution time) and returns * the resulting output list — applied to this node's sockets immediately, * so you see the extracted fields appear without having to run the graph - * first. + * first. Backend-agnostic: ChatCompletion is the one generic node both + * OllamaProvider and LlamaCppProvider feed. */ async function updateStructuredOutputs(node, structuredOutput, outputSchema) { try { @@ -148,7 +157,7 @@ app.registerExtension({ name: "comfydv.ollama.structuredOutput", async beforeRegisterNodeDef(nodeType, nodeData) { - if (nodeData.name !== "OllamaChatCompletion") return; + if (nodeData.name !== "ChatCompletion") return; const onNodeCreated = nodeType.prototype.onNodeCreated; nodeType.prototype.onNodeCreated = function () { diff --git a/tests/test_comfyui_import_compat.py b/tests/test_comfyui_import_compat.py new file mode 100644 index 0000000..2a6cba3 --- /dev/null +++ b/tests/test_comfyui_import_compat.py @@ -0,0 +1,131 @@ +"""Guards against the exact bug found while validating spec 008 against a +real ComfyUI dev harness (docker-compose): every `from comfydv._llm.X +import Y`-style absolute self-import inside src/comfydv/ silently broke the +*entire* plugin (every node, not just LLM ones) as soon as ComfyUI actually +loaded it. + +ComfyUI's custom_nodes loader imports the plugin via a *relative* chain — +the repo-root __init__.py does `from .src.comfydv import ...`, nesting +comfydv under whatever top-level name the folder has (never `comfydv` +itself). An absolute `from comfydv...` self-import only resolves if `src/` +has separately been placed on sys.path — which conftest.py does for every +other test file in this suite, masking the bug completely. This file +deliberately does NOT rely on that sys.path insertion: it reproduces +ComfyUI's actual nested-relative-import shape in a subprocess. + +Confirmed via git history: this predates spec 008 entirely — it was already +broken immediately after PR #17 merged (spec 007), well before llamacpp.py +existed. No test caught it because none exercised this exact loading shape +until the docker harness was run by hand. +""" + +import subprocess +import sys +import textwrap +from pathlib import Path + +REPO_ROOT = Path(__file__).parent.parent + +_SUBPROCESS_SCRIPT = textwrap.dedent( + """ + import sys + import types + + # Minimal ComfyUI stubs — same shape as conftest.py's pytest_configure, + # but this script intentionally runs outside pytest so it isn't reusing + # (or accidentally validated by) that fixture's sys.path setup. + class _InterruptProcessingException(Exception): + pass + + comfy_module = types.ModuleType("comfy") + comfy_module.model_management = types.SimpleNamespace( + InterruptProcessingException=_InterruptProcessingException + ) + sys.modules["comfy"] = comfy_module + sys.modules["comfy.model_management"] = comfy_module.model_management + + class _Routes: + def post(self, path): + return lambda fn: fn + + def get(self, path): + return lambda fn: fn + + class _PromptServer: + pass + + _PromptServer.instance = _PromptServer() + _PromptServer.instance.routes = _Routes() + server_module = types.ModuleType("server") + server_module.PromptServer = _PromptServer + sys.modules["server"] = server_module + + folder_paths_module = types.ModuleType("folder_paths") + folder_paths_module.get_output_directory = lambda: "/tmp/comfydv_test" + sys.modules["folder_paths"] = folder_paths_module + + # The critical part: put the repo's *parent* directory on sys.path, so + # `import comfydv` resolves to the repo-root __init__.py — exactly how + # ComfyUI resolves a folder under custom_nodes/ — NOT to src/comfydv + # directly (that's what conftest.py's sys.path.insert(0, ".../src") + # does for the rest of this test suite, and why it never caught this). + sys.path.insert(0, sys.argv[1]) + + import comfydv + + required = {"FormatString", "RandomChoice", "CircuitBreaker", + "OllamaClient", "LlamaCppClient", "ChatCompletion"} + missing = required - set(comfydv.NODE_CLASS_MAPPINGS) + if missing: + print(f"MISSING_NODES:{missing}") + sys.exit(1) + print("OK") + """ +) + + +def test_package_imports_under_comfyui_style_relative_nesting(): + """Reproduces ComfyUI's real loading shape and fails loudly — with the + actual traceback — if any internal module reverts to an absolute + `from comfydv...` self-import.""" + result = subprocess.run( + [sys.executable, "-c", _SUBPROCESS_SCRIPT, str(REPO_ROOT.parent)], + cwd=REPO_ROOT, + capture_output=True, + text=True, + timeout=30, + ) + assert result.returncode == 0, ( + "comfydv failed to import the way ComfyUI actually loads it " + "(relative nesting, not a top-level `comfydv` on sys.path). " + f"This means every node in the plugin would fail to register.\n" + f"--- stdout ---\n{result.stdout}\n--- stderr ---\n{result.stderr}" + ) + assert "OK" in result.stdout + + +def test_no_absolute_self_imports_in_package(): + """Cheap, fast static guard alongside the dynamic test above: no file + under src/comfydv/ should import itself as `comfydv.X` — internal + imports must be relative (`.X` / `..X`) so they resolve regardless of + what the outer package happens to be named at load time.""" + import ast + + offenders = [] + for path in (REPO_ROOT / "src" / "comfydv").rglob("*.py"): + tree = ast.parse(path.read_text(), filename=str(path)) + for node in ast.walk(tree): + if isinstance(node, ast.ImportFrom): + if node.module and ( + node.module == "comfydv" or node.module.startswith("comfydv.") + ): + offenders.append(f"{path.relative_to(REPO_ROOT)}:{node.lineno}") + elif isinstance(node, ast.Import): + for alias in node.names: + if alias.name == "comfydv" or alias.name.startswith("comfydv."): + offenders.append(f"{path.relative_to(REPO_ROOT)}:{node.lineno}") + + assert not offenders, ( + "Absolute self-imports found — use relative imports instead " + f"(they break under ComfyUI's actual loader): {offenders}" + ) diff --git a/tests/test_llamacpp_provider.py b/tests/test_llamacpp_provider.py index 563bf90..3030d04 100644 --- a/tests/test_llamacpp_provider.py +++ b/tests/test_llamacpp_provider.py @@ -13,7 +13,7 @@ BDD coverage: import pytest import comfydv._llm.llamacpp_provider as provider_mod -from comfydv._llm.llamacpp_provider import LlamaCppProvider +from comfydv._llm.llamacpp_provider import LlamaCppProvider, _fetch_models from comfydv._llm.ollama_provider import _run_async from comfydv._llm.provider import Message, ModelStatus @@ -355,3 +355,50 @@ def test_chat_structured_forwards_options(monkeypatch): ) assert captured["options"] == {"temperature": 0.0} + + +# --------------------------------------------------------------------------- +# _fetch_models — name-only view used by ComfyUI's /dv/ollama/models?backend= +# llamacpp route (the JS refresh button / node-creation auto-populate). +# Deliberately more forgiving than list_models(): degrades to [] on any +# failure rather than raising on a non-router-mode server, matching the +# combo-widget UX OllamaProvider's own _fetch_models already gives. +# --------------------------------------------------------------------------- + + +def test_fetch_models_returns_name_only_list(monkeypatch): + async def fake_get(url, *, timeout=5.0, headers=None): + return { + "data": [ + {"id": "a", "status": {"value": "loaded"}}, + {"id": "b", "status": {"value": "unloaded"}}, + ] + } + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + names = _run_async(_fetch_models("http://localhost:8080")) + + assert names == ["a", "b"] + + +def test_fetch_models_degrades_to_empty_on_non_router_mode(monkeypatch): + """Unlike list_models() (FR-006), this combo-population view swallows + even the non-router-mode error — a quiet empty dropdown, not a toast.""" + + async def fake_get(url, *, timeout=5.0, headers=None): + raise RuntimeError("Server returned HTTP 404 for http://x/models: not found") + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + names = _run_async(_fetch_models("http://localhost:8080")) + + assert names == [] + + +def test_fetch_models_degrades_to_empty_when_unreachable(monkeypatch): + async def fake_get(url, *, timeout=5.0, headers=None): + raise ConnectionError("no route to host") + + monkeypatch.setattr(provider_mod, "_get_json", fake_get) + names = _run_async(_fetch_models("http://localhost:19999")) + + assert names == [] diff --git a/tests/test_ollama.py b/tests/test_ollama.py index b4a64b3..ef03e62 100644 --- a/tests/test_ollama.py +++ b/tests/test_ollama.py @@ -824,6 +824,92 @@ class _FakeRequest: return self._body +class _FakeRelUrl: + def __init__(self, query: dict): + self.query = query + + +class _FakeGetRequest: + def __init__(self, query: dict): + self.rel_url = _FakeRelUrl(query) + + +class TestModelsRoute: + """GET /dv/ollama/models — the JS refresh-button/auto-populate endpoint. + + Previously untested (no test survived the atomic cutover rewrite), which + is exactly how a real bug shipped undetected: the `backend` dispatch + added here didn't exist until a live js/ollama.js bug was found (it + matched on pre-rename node names and always spoke Ollama's wire + protocol regardless of which client was actually connected).""" + + def _call(self, query: dict): + import comfydv.ollama as ollama_mod + from comfydv._llm.ollama_provider import _run_async + + resp = _run_async(ollama_mod._models_endpoint(_FakeGetRequest(query))) + return json.loads(resp.text), resp.status + + def test_default_backend_dispatches_to_ollama(self, monkeypatch): + async def fake_fetch(host, headers=None): + assert host == "http://localhost:11434" + return ["a", "b"] + + monkeypatch.setattr("comfydv.ollama._fetch_models", fake_fetch) + data, status = self._call({"host": "http://localhost:11434"}) + + assert status == 200 + assert data == {"models": ["a", "b"]} + + def test_explicit_ollama_backend_dispatches_to_ollama(self, monkeypatch): + async def fake_fetch(host, headers=None): + return ["m"] + + monkeypatch.setattr("comfydv.ollama._fetch_models", fake_fetch) + data, status = self._call( + {"host": "http://localhost:11434", "backend": "ollama"} + ) + + assert status == 200 + assert data == {"models": ["m"]} + + def test_llamacpp_backend_dispatches_to_llamacpp_fetch(self, monkeypatch): + """The bug this regression-tests: before the fix, this endpoint + always called Ollama's _fetch_models regardless of `backend`, so a + llama.cpp host's models never populated the dropdown.""" + called = {} + + async def fake_llamacpp_fetch(host, headers=None): + called["host"] = host + return ["gemma-3-4b"] + + async def fail_ollama_fetch(host, headers=None): + raise AssertionError("must not call Ollama's fetcher for backend=llamacpp") + + monkeypatch.setattr( + "comfydv._llm.llamacpp_provider._fetch_models", fake_llamacpp_fetch + ) + monkeypatch.setattr("comfydv.ollama._fetch_models", fail_ollama_fetch) + + data, status = self._call( + {"host": "http://localhost:8080", "backend": "llamacpp"} + ) + + assert status == 200 + assert data == {"models": ["gemma-3-4b"]} + assert called["host"] == "http://localhost:8080" + + def test_no_models_returns_503(self, monkeypatch): + async def fake_fetch(host, headers=None): + return [] + + monkeypatch.setattr("comfydv.ollama._fetch_models", fake_fetch) + data, status = self._call({"host": "http://localhost:11434"}) + + assert status == 503 + assert "error" in data + + class TestUpdateStructuredOutputsRoute: def teardown_method(self): # This route mutates ChatCompletion's class-level RETURN_TYPES From 36e2cd123c52e0d900dd6b1d0e3c5e6e17a485ff Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 17:48:37 +0100 Subject: [PATCH 09/10] docs: rebuild README around live screenshots, fix stale doc tooling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full README/docs/index.md rewrite from a product/UX-first structure (what-is-this, why, then a deep-dive per node group with screenshots) instead of an incremental changelog-style read. All screenshots regenerated from a real, running ComfyUI instance — not reused. This surfaced and fixed two more bugs in scripts/take_screenshots.py, the project's own screenshot-automation tool, which nobody had run since before the ADR-007 rename (the old committed screenshots still showed pre-rename node names, e.g. "Ollama Chat Completion" instead of "Chat Completion"): - Every LiteGraph.createNode() call used the pre-rename node type strings (OllamaChatCompletion/OllamaLoadModel/OllamaUnloadModel); fixed to the current names. - The canvas locator ("canvas#graph-canvas, canvas") silently grabbed a 250x200 minimap canvas ComfyUI's frontend added since this script was last verified, instead of the real graph — every screenshot failed with a clipping error. Fixed to target #graph-canvas explicitly. Two new scenes added, addressing the actual gap: existing screenshots showed connectivity and options, never the two things this whole epic sequence was about — structured output (the live dynamic output sockets appearing as output_schema is edited, via the real js/ollama.js widget callbacks the previous commit fixed) and llama.cpp (LlamaCppClient wired into the same generic ChatCompletion node Ollama uses — the actual point of the adapter pattern). Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- README.md | 189 +++++++++++++----------------- docs/assets/circuit_breaker.png | Bin 12088 -> 12095 bytes docs/assets/fstring.png | Bin 32875 -> 33485 bytes docs/assets/jinja2.png | Bin 41232 -> 42153 bytes docs/assets/llamacpp_client.png | Bin 0 -> 13038 bytes docs/assets/llamacpp_workflow.png | Bin 0 -> 38230 bytes docs/assets/ollama_chat.png | Bin 38360 -> 56594 bytes docs/assets/ollama_client.png | Bin 11015 -> 12561 bytes docs/assets/ollama_lifecycle.png | Bin 51098 -> 56640 bytes docs/assets/ollama_options.png | Bin 41246 -> 42066 bytes docs/assets/ollama_workflow.png | Bin 59216 -> 65900 bytes docs/assets/random.png | Bin 19104 -> 18540 bytes docs/assets/structured_output.png | Bin 0 -> 70059 bytes docs/index.md | 183 ++++++++++++++--------------- scripts/take_screenshots.py | 165 ++++++++++++++++++++++++-- 15 files changed, 324 insertions(+), 213 deletions(-) create mode 100644 docs/assets/llamacpp_client.png create mode 100644 docs/assets/llamacpp_workflow.png create mode 100644 docs/assets/structured_output.png diff --git a/README.md b/README.md index aa99bb5..ca4a1f8 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,37 @@ # comfydv -A collection of workflow efficiency and quality-of-life nodes built out of necessity for personal ComfyUI use. +**Quality-of-life nodes for ComfyUI, built to disappear into your workflow.** -## What is this? +`comfydv` fills the gaps ComfyUI's built-in library leaves on the table: string templates that build their own sockets as you type, seed-controlled randomisation, graceful mid-queue interruption, and a local-LLM integration that doesn't care whether you're running Ollama or llama.cpp. No Python required — install it, drop the nodes on your canvas, wire them up. -`comfydv` fills gaps in ComfyUI's built-in node library: dynamic string formatting, seed-controlled random selection, graceful workflow interruption, and local LLM integration (Ollama and llama.cpp). Install it once and connect the nodes like any other — no Python knowledge required. +![Chat Completion in action](docs/assets/ollama_chat.png) + +## What is comfydv? + +A small, focused ComfyUI utility pack. It exists because: + +- **It reads your intent, not just your syntax.** Format String detects `{variables}` in a template and adds/removes input sockets live, as you type — no manual socket wrangling. +- **One LLM integration, any local backend.** Wire a Chat Completion node once; swap between Ollama and llama.cpp by changing a single upstream client node. Structured output, multi-turn history, and model load/unload work identically on both. +- **It fails politely.** Circuit Breaker halts a queue run cleanly instead of throwing a stack trace at you; a disconnected LLM server gets a specific, actionable error instead of a silent empty dropdown. +- **Small, tested, boring in the best way.** Every node is unit-tested and the local-LLM nodes are verified against real running servers, not just mocks. + +## What's inside | Node | What it does | -|------|-------------| -| **Format String** | Formats a string from a Python f-string or Jinja2 template. Detects variables in the template and automatically adds/removes input sockets. | -| **Random Choice** | Accepts any number of typed inputs and outputs one at random, with a configurable seed for reproducibility. | -| **Circuit Breaker** | Halts the current ComfyUI queue run gracefully without crashing the server. Wire the `status` toggle to a boolean condition to skip the rest of the queue when a condition isn't met. | -| **Ollama Client** | Configures a connection to an Ollama server (default: `http://localhost:11434`). Threads the connection through the graph as an `LLM_CLIENT` socket — a generic connection type any backend's client node emits. | -| **LlamaCpp Client** | Configures a connection to a `llama-server` instance running in router mode (default: `http://localhost:8080`). Emits the same `LLM_CLIENT` socket as Ollama Client — every node below works with either. | -| **LLM Model Selector** | Fetches the live model list from the connected server and presents it as a dropdown. Outputs the selected model name. | -| **LLM Load Model** | Loads a model into memory on the connected server. | -| **LLM Unload Model** | Evicts a model from memory on the connected server. | -| **Chat Completion** | Sends a prompt (and optional conversation history) to the connected server. Response and history are shown inline in the node body and available as output sockets. | -| **Ollama Option — \*** | Seven composable option nodes (Temperature, Seed, Max Tokens, Top P, Top K, Repeat Penalty, Extra Body) that merge into an `OLLAMA_OPTIONS` dict wired into Chat Completion. | -| **Ollama Debug History** | Serialises an `OLLAMA_HISTORY` list to a pretty-printed JSON string for inspection. | -| **Ollama History Length** | Returns the number of messages in an `OLLAMA_HISTORY` list as an integer. | +|------|---------------| +| **Format String** | Renders a Python f-string or Jinja2 template. Sockets appear and disappear automatically as you type variables. | +| **Random Choice** | Accepts any number of typed inputs and returns one at random, with a seed for reproducibility. | +| **Circuit Breaker** | Halts the current queue run gracefully — no crash, just a clean stop — when a condition isn't met. | +| **Ollama Client** / **LlamaCpp Client** | Configure a connection to a local Ollama or llama.cpp server. Both emit the same `LLM_CLIENT` socket — every node below works with either. | +| **LLM Model Selector** | Live dropdown of models available on the connected server. | +| **LLM Load Model** / **LLM Unload Model** | Explicit VRAM management — pin a model in memory before inference, evict it after. | +| **Chat Completion** | Send a prompt (optionally with history) to the connected server; response shown inline and as an output socket. | +| **Ollama Option — \*** | Seven composable parameter nodes (Temperature, Seed, Max Tokens, Top P, Top K, Repeat Penalty, Extra Body) that merge into Chat Completion's `options` input. | +| **Ollama Debug History** / **Ollama History Length** | Inspect an `OLLAMA_HISTORY` conversation list — pretty-print it or count its messages. | ## Install -**Via ComfyUI Manager** (recommended): search for `comfydv` and click Install. +**Via ComfyUI Manager** (recommended): search for `comfydv`, click Install. **Manual:** @@ -32,134 +40,125 @@ cd /path/to/ComfyUI/custom_nodes git clone https://github.com/darth-veitcher/comfydv.git ``` -Restart ComfyUI. The nodes appear under the **dv/**, **dv/ollama**, and **dv/llamacpp** categories in the node menu. Runtime dependencies (`jinja2`, `aiohttp`, `pydantic-ai`) are installed automatically via `requirements.txt`. +Restart ComfyUI. Nodes appear under **dv/**, **dv/ollama**, and **dv/llamacpp** in the node menu. Runtime dependencies (`jinja2`, `aiohttp`, `pydantic-ai`) install automatically via `requirements.txt`. -For local LLM nodes, pick one backend (or both): +For local-LLM nodes, bring your own backend: -- **Ollama**: [install Ollama](https://ollama.com/download) and pull at least one model (`ollama pull qwen2.5:latest`). -- **llama.cpp**: [build/install `llama-server`](https://github.com/ggml-org/llama.cpp) and launch it in router mode (`llama-server --models-dir ./models`) — see the [llama.cpp section](#llamacpp) below. +- **Ollama** — [install Ollama](https://ollama.com/download), pull a model (`ollama pull qwen2.5:latest`). +- **llama.cpp** — [build/install `llama-server`](https://github.com/ggml-org/llama.cpp), launch it in [router mode](#llamacpp). ## Quickstart -1. Install via ComfyUI Manager (search `comfydv`) or clone manually into `custom_nodes/`. -2. Right-click the canvas → Add Node → **dv/** to find Format String, Random Choice, and Circuit Breaker. -3. For local LLM nodes: start Ollama (`ollama serve`) or `llama-server` (router mode), then add nodes from **dv/ollama/** or **dv/llamacpp/** — the chat/model-management nodes are shared between both backends. +1. Right-click the canvas → Add Node → **dv/** for Format String, Random Choice, and Circuit Breaker. +2. For local LLM nodes: start Ollama (`ollama serve`) or `llama-server` (router mode), then add nodes from **dv/ollama/** or **dv/llamacpp/** — the chat/model-management nodes are shared between both backends. -## Documentation - -Full documentation: [darth-veitcher.github.io/comfydv](https://darth-veitcher.github.io/comfydv/stable/) +Full documentation, including every node's inputs/outputs: **[darth-veitcher.github.io/comfydv](https://darth-veitcher.github.io/comfydv/stable/)** --- ## Format String -Formats text from a Python f-string or Jinja2 template. As you type the template, input sockets appear and disappear automatically — one per variable detected. - -### Python f-strings - -Type `{variable_name}` and a socket appears. Wire it to any string output in your workflow. +Type a template, get sockets. `{variable_name}` in f-string mode, `{{ variable_name }}` in Jinja2 mode — either way, comfydv watches what you type and keeps the node's inputs in sync automatically. ![Format String — f-string mode](docs/assets/fstring.png) -Outputs are always in a stable order: - | Output | Content | |--------|---------| | `formatted_string` | The rendered result | -| `saved_file_path` | Path written to disk (if `save_path` is set) | -| `` … | Pass-through of each input value, for easy chaining | +| `saved_file_path` | Where it was written, if `save_path` is set | +| `` … | Each input passed through unchanged, for easy chaining | -### Jinja2 templates - -Switch `template_type` to **Jinja2** to unlock filters (`| upper`, `| int`, …), conditionals (`{% if %}…{% endif %}`), and loops. +Switch `template_type` to **Jinja2** to unlock filters (`| upper`, `| int`), conditionals, and loops: ![Format String — Jinja2 mode](docs/assets/jinja2.png) -Variables detected in `{{ }}` expressions become input sockets exactly as in Simple mode. See the [Jinja2 documentation](https://jinja.palletsprojects.com/en/latest/) for the full filter/test reference. - --- ## Random Choice -Connect any number of inputs of the same type. Each run picks one at random. Set `seed` for reproducibility. +Wire in any number of same-typed inputs — images, strings, conditioning, anything ComfyUI can carry over a socket — and get one back at random. ![Random Choice](docs/assets/random.png) -- Accepts any ComfyUI type (STRING, IMAGE, CONDITIONING, …) -- Add as many inputs as you like; unused slots are removed automatically when disconnected -- `seed = 0` randomises on every run; any other value locks the selection +`seed = 0` randomises every run; any other value locks the selection. Unused input slots vanish automatically when you disconnect them. --- ## Circuit Breaker -Stops the queue gracefully when a condition isn't met — no crash, no error, just a clean halt. +Stop a queue run cleanly when a condition isn't met, instead of letting a downstream node crash on bad input. ![Circuit Breaker](docs/assets/circuit_breaker.png) -Wire an image (or any trigger) into `trigger` and a boolean into `status`. When `status` is **false** the node raises `InterruptProcessingException`, which tells ComfyUI to stop the current run cleanly. When `status` is **true** the image passes through unchanged. +Wire a trigger (an image, or anything) into `trigger` and a boolean into `status`. `status = false` raises `InterruptProcessingException` — ComfyUI stops the run without an error dialog. `status = true` passes the trigger straight through. -Typical use: skip an expensive upscale step when a quality-check node says the draft is already good enough. +Typical use: skip an expensive upscale pass when an upstream quality-check node says the draft's already good enough. --- -## Ollama +## Local LLMs -Nodes for integrating a local Ollama LLM into your ComfyUI workflow. The host is configured once in **Ollama Client** and threaded through the graph as an `LLM_CLIENT` socket — a generic connection type any future backend's client node can also emit, so the chat/model-management nodes below aren't Ollama-specific. +One set of nodes, two interchangeable backends. Configure a connection once with **Ollama Client** or **LlamaCpp Client** — both output the same `LLM_CLIENT` socket — and every downstream node (model selection, load/unload, chat, structured output, multi-turn history) works exactly the same way regardless of which one you picked. Swapping backends means rewiring one node, not rebuilding your graph. -### Ollama Client node - -Configure the server address once; all downstream nodes inherit it automatically. +### Connect and chat ![Ollama Client](docs/assets/ollama_client.png) -### Model lifecycle (load and unload) - -On memory-constrained machines and single-GPU setups, explicitly loading and unloading the model before and after inference is critical. **LLM Load Model** pins the model into VRAM (`keep_alive=-1`); **LLM Unload Model** evicts it immediately (`keep_alive=0`), freeing memory for image generation or other models. - -![Ollama Load / Unload](docs/assets/ollama_lifecycle.png) - -The correct chain is **Load → Chat → Unload**, enforced through data dependencies: - -1. Wire `LLMLoadModel.model_name` → `ChatCompletion.model`. This creates the data dependency that guarantees Load runs before Chat and passes the model name into the Chat node's plain-string `model` input. -2. Wire `ChatCompletion.model_name` → `LLMUnloadModel.model`. This guarantees Unload runs after Chat completes. -3. Optionally wire `ChatCompletion.response` → `LLMUnloadModel.passthrough` — Unload returns the response unchanged so the rest of your workflow can still consume it. - -### Minimal chat workflow - -1. **Ollama Client** → set host (default `http://localhost:11434`) -2. **LLM Model Selector** → pick a model from the live dropdown (or type/wire a model name directly into Chat Completion's `model` input) -3. **Chat Completion** → wire client + model + prompt; the response appears inline in the node body and is also available as an output socket +1. **Ollama Client** (default `http://localhost:11434`) or **LlamaCpp Client** (default `http://localhost:8080`) — set the host. +2. **LLM Model Selector** — pick a model from the live dropdown, or wire a model name straight into Chat Completion. +3. **Chat Completion** — wire in client, model, and prompt. The response renders inline in the node and is also available as an output socket. ![Chat Completion](docs/assets/ollama_chat.png) -Wire multiple nodes together for a complete end-to-end workflow: +A complete graph looks like this: -![Ollama Full Workflow](docs/assets/ollama_workflow.png) +![Full LLM workflow](docs/assets/ollama_workflow.png) -### Option nodes +### Manual memory management -Chain any combination of **Ollama Option —** nodes before Chat Completion to override inference parameters: +Single-GPU and memory-constrained setups need explicit control over what's resident in VRAM. **LLM Load Model** pins a model into memory; **LLM Unload Model** evicts it immediately, freeing room for the next model or the rest of your image pipeline. -| Option node | Ollama param | -|-------------|-------------| +![Load / Unload lifecycle](docs/assets/ollama_lifecycle.png) + +The **Load → Chat → Unload** chain is enforced by data dependencies, not by convention: + +1. `LLMLoadModel.model_name` → `ChatCompletion.model` — guarantees Load runs before Chat, and feeds the model name straight in. +2. `ChatCompletion.model_name` → `LLMUnloadModel.model` — guarantees Unload runs after Chat completes. +3. *(Optional)* `ChatCompletion.response` → `LLMUnloadModel.passthrough` — Unload returns the response unchanged, so the rest of your workflow can still consume it. + +### Tuning generation + +Chain any combination of **Ollama Option —** nodes ahead of Chat Completion to override inference parameters: + +![Ollama Option nodes](docs/assets/ollama_options.png) + +| Option node | Parameter | +|-------------|-----------| | Temperature | `temperature` | | Seed | `seed` | | Max Tokens | `num_predict` | | Top P | `top_p` | | Top K | `top_k` | | Repeat Penalty | `repeat_penalty` | -| Extra Body | arbitrary JSON merged into options | - -![Ollama Option Nodes](docs/assets/ollama_options.png) +| Extra Body | arbitrary JSON, merged into `options` | ### Multi-turn conversations -`OLLAMA_HISTORY` flows out of Chat Completion as a list of `{"role", "content"}` dicts. Wire it back into the next Chat Completion for multi-turn conversations, or inspect it with **Ollama Debug History** / **Ollama History Length**. +`OLLAMA_HISTORY` flows out of Chat Completion as a `{"role", "content"}` list. Feed it back into the next Chat Completion call for multi-turn context, or inspect it with **Ollama Debug History** / **Ollama History Length**. -### Upgrading an older workflow +### llama.cpp -If you saved a workflow before this rename, ComfyUI will report the old node types as missing when you reopen it. Reconnect using this mapping, then re-run — behavior is unchanged, only the names and the client socket type are different: +Everything above works unchanged against llama.cpp — swap in a **LlamaCpp Client** and the rest of the graph doesn't know the difference. The one thing llama.cpp needs that Ollama doesn't: **router mode**, a directory of models rather than a single `-m model.gguf`: + +```bash +llama-server --models-dir ./models -c 8192 +``` + +In exchange, router mode gives comfydv a richer live status than Ollama can report — `loading` and `downloading`, not just loaded/unloaded — plus the same explicit load/unload primitives Ollama's nodes already use. + +### Upgrading a workflow saved before this rename + +Nodes were renamed once, to make them backend-generic (`OllamaChatCompletion` → `ChatCompletion`, etc.). If ComfyUI reports old node types as missing when you reopen a saved workflow, reconnect using this table — behavior is unchanged, only the names are: | Old | New | |-----|-----| @@ -169,30 +168,10 @@ If you saved a workflow before this rename, ComfyUI will report the old node typ | `OllamaUnloadModel` | `LLMUnloadModel` | | `OLLAMA_CLIENT` socket | `LLM_CLIENT` socket | -`OllamaClient` keeps its name — just delete and re-add any downstream node showing as missing, then rewire it to the same `OllamaClient` node. +`OllamaClient` kept its name — delete and re-add any node showing as missing, then rewire it to the same `OllamaClient` node. --- -## llama.cpp +## License -A second backend for the same chat/model-management nodes documented above — **LlamaCpp Client** is the only new node; everything else (Chat Completion, LLM Model Selector, LLM Load Model, LLM Unload Model, structured output, multi-turn history) works unchanged, because they don't know or care which backend they're talking to. - -### Prerequisite: router mode - -`llama-server` needs to be launched in **router mode** — a directory of models, not a single `-m model.gguf`: - -```bash -llama-server --models-dir ./models -c 8192 -``` - -This gives `comfydv` live model status (including `loading`/`downloading`, not just loaded/unloaded — a richer picture than Ollama can report) and explicit load/unload, the same way the Ollama nodes already work. - -### LlamaCpp Client node - -Configure the server address once (default `http://localhost:8080`); every downstream node inherits it automatically — same pattern as Ollama Client, same `LLM_CLIENT` socket. - -### Switching an existing workflow from Ollama to llama.cpp - -Replace the **Ollama Client** node with an **LlamaCpp Client** node, pointed at your running `llama-server`. Nothing else changes — same Chat Completion node, same Load/Unload nodes, same structured-output behavior. That's the entire point of sharing one `LLM_CLIENT` socket type across backends. - -`OllamaClient` keeps its name — just delete and re-add any downstream node showing as missing, then rewire it to the same `OllamaClient` node. +[AGPL-3.0](LICENSE) diff --git a/docs/assets/circuit_breaker.png b/docs/assets/circuit_breaker.png index d8a1ff356a6b363aed4ab39f582cbe2f60947662..2c93e55d375f25cf8eb9a23c5dd33918c4178e01 100644 GIT binary patch literal 12095 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 Qc;}A1w6avb#QV?x1O6bOtN;K2 literal 12088 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 V6yC@A9^lL)c^PHtN=d`O{{gRz1>x} ztGc>x=f~M6=WNzqd#*Xhcx(`^q#%j(2Ja071O$?_l-LIdh}U-z5U=LpUW5PA2!%il z0f7o3Ehen$o_>@8n~pWx_B>G&ykd%gAgjCh^P8S{J~c^11es=TnC=()>U^*GwC&Zu zQIyP)3)6<%mf#_w=ul;W8LGqy;}~?^diEUZrficY(eZ7KNbIW}tx)%SYM1oWx%F$@7{K*BKrj%e&s-B%rwg2UBWo z)ko0dAs&NDk!{>U$J?TDd?f@4x54tbw1l-NQ^032Ax6v0YBs9Es)+pju^*Q-2vr0M z)rn)boLk$dW=xy&QgA!B71F~_&a+1q@9*i}-vzgPO#VJ3HDiEj=-PBnc5o zIMSdytZFl3#k31N(!}0v_;_tLtFFJfxw(>mx0F@xdk1>cr2hMTP*!sC1x}&kxGt

(CV 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 C8UdyN literal 32875 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 VXIXChJ@K7&N7b}dpD0`U{}0J~F(?24 diff --git a/docs/assets/jinja2.png b/docs/assets/jinja2.png index 784fe4bcd64554d255c68222c9d9f8ba4489544b..d3d9adfe10ab0a8de382ae18a00ba92ca846318e 100644 GIT binary patch literal 42153 zcmb@uWmuKbyY7o3EsY}GUD6HG4IHhT=PSu6-D#ap|lQg-xkufKkiolIao^I!QNz(GnHiZO+9lXYWp( z<&onm+}`v(F>Kq(lHovq#>HmmbL{h0F3-(MAJs?qOC~~3W|)7T+-CpMQ|fR``Wn4P zGtPSAje4WlkEXcXZAWeSgHdr>J*Ur#Ckr$A+$LxUrWMpG(v)Xg)w<8q4&X@w&^jc3 zO-{@67KYK+8BD@H^`<8@ab8b{R`6`~`0(H8dA73emM1$V(Q9@16owZOie9J~k~;;U z35WQQ?mA6K71oMNa-S~K9sjakj(vuKff2lq%HrNqkp6{LNK2MO27dDaliVtOK)QZp zsd~>e$HDt_UvHD3&v77&{7J>+f8MK@7@=J0bNQcQ&x^)Ng_bh+eU3865%{9?_&taJ ze4KrZF8|}F_E&|eO7n9`^-<3wDQmS#P40)52`AK8!6p11lHhizQDaLf3RPvCG14@r zEg|^nw2}A(;4VpFEv6?e(|Sug)LRMEE!P~|l&4_QTPluhSgSF;OqExMFCVLl+kQUE!Z4mcVf+2jF(ik+REfnm62wPURj0sMol2y9se z@Z{`_<=ilBmuRm2vgGAi4(;#j`?M}O|FV-5e~_}-b>J(4QHhr8?ev_JLON6iXQfbB zjEfyw%h@Ql_RZKSDJV=#O{Ldge%}N}k)5Bv#pUp?$JGI|hSAN2b9A2;&V`7ImwvVz zw>d#EKKQL%KH_FmGczMr{;y_y{TfdgqQt|$9yyIez}+N6jV~= zTyjE3yf;%$_g{ZQ_ivvVB0HnZU9NN)5J{laoW8TB2-Z7*+Obb}`ln9Q$8x3q;u1|? zvZI$PS`Yu$re93Q6tOj2vRNSi4wJ`)O_5t#^X2}{-gek(YNm3^79#Q&)=Ts7{IZ;O z0G|#IfhDzKy-GDD=<7WAESJ_?o?8<>;;5)doI_r6d*`GQ{@9FKq`+53rvqb+c zkv{(I5K!cqpP#?Ez0GTu4!(JMygyG#OWP;so1dS*+@BTnys?*;mk;FQ$jdG9?d9H1 zk4s5u1dEJ}$H4_oO@Z`gIX*&0H7Nsw&FUZDz+ry3v(1a$$&8O*YD|Z(4i`9W7n8HU zu6H4XN82pa*(^4U)4=3OM41L^)!TYKKVE0B%8X|6D{{ZN><+_Th$rNCuVj8=>5U{X zBAVy(NYPGNohI5t_|;u(&XtxPxViakMMSBP+3a?1x;->88<_VvA;Y9HHQCR_Wb?Py zVx}x5AQDadLW`JIu)iH|f1P9BM7LGe!M9eMZM~Q=60bIrkYD=xu`h;9o~9DEs)LvHq!QD;)hHa{bHp-=O9ztB2w^JwvfN=((l8?M$CwHaDBhz@8HT3ndDO0 zAR}C68P4ys7V7P;Ey-9SGrm*L{E)$>yIS@*epj#A!-os@v-*zJ@!!w@u@hfHXU}Jk zdh7Z1c$f@c*MHLUwH8Wfon>G_JRLG-O4aPZ63B~vx~n$ojbyi+T6MhKn~p^5=++F{ zn=YL+^su7|**H=z^Ohu*2zLB*U_Dh7^Sp%qb;EgYO6U$PEmZ5r>=#~_gOC~7Lir4b z5_k}o`R@;E=2uC@5a15K)BUv9#tH5eq8=C+Fofj3hPzF*`ssGNl@!(_-cL! z^Kx2kB;^OVU28tQ-1@lE)D!EKdATmc9@J@zsUpSW)_dEk61l2K@xV{N2b58$Ivnc; z0?tQxqsWF}K8WsQ-@?BA@J&KpkroaGpR3aKSU3LtaxB;kLX{m0-)L(F4^LS-7#fYA zTQZKu<-OW-aj+I{2%4fy4vZi86FlOyF##!y4ocgB#I&fEr) z_ps=Gj3K;M$u}8H3{c5mxVzlvv|GkExOLi_3cWy{9G4~FaUzai#{df)p|PFm!Dxn6 z@BcMC^OGz-kCXY+!!0F^X05r9+m)XnIBj?YmBlg16lHw;{28?bf>ox&xH1i~WS{cX zD+})?8qNa~^qsmFk-WncX3%m>!Hr1#4lerU47oX3>zD}@)mOScUKwqT9w1R@M1^0#sF_x(Q<{`9<^#LqR?!!8dvl= zd8}$%$;e-9^ek32zaCMG3X&>_U}OzlHLOL2KIoEFV=5fXRHv`2n;ED}9OS$|gPic5 z`6g77`|FARvBKu-?$2)zc<-26$4I75aXk4DOHI%hzDAbV7}v6q@F`X7xRj|^<@S*+ z=1HL9QDK=8L5NP{nz#LHqC^eXPlJiPcl5Y>qsK<*X=CL!i7T1ynonURSpE@K#ru4U zwIN9oLCfiEY<)NzZ1H}#o#Z97?|IS=weY{m&@?WJc9 zuMGLg?|Z$*uEtqYaA+butkD&mwu};K95Srm3HuKJ`&^lJ+PjwPK>dmN_tNs|!QWq{ zYEUrxw82Z;efn=J|NVB}7bjXU=em54?H>hCB70`x(Q7x~qa{A-PiACP3bFOWH&B+p z5FmAJeti&Gj6cFl_)c>yUF%}~+bd|&y68Dsm_OP%PwLF?YhzTHtK`m%qaSg`Msi@k zBypWh(Y;@jAW%EXZfjA|kaCGWR_A)^mfJd+#P7e+tWm4bO{X7WlIY*#ZsgdjQ-eY> z8%kz&;h2BRh#ASpo&`gu$__H95;wlhPxz+PqPWf=@v>Y9X?osJGmFp+&ciarOpopYibEHdtu;s0B5S93_=mLy2$s*_ z`JbOHSDIZyF?83op|c55sD5+r+iNRn4g@sg#zs`#`kBa!aqPODh$TAPPL~Bpr<&JT zl5|{fNYcBjhWUm?|NP_1u0q3EzWUIBo%to_jwCIbtSBoPp^Tl;oHFb}Y~~dzJ>BFO zkB$H}5*rCVzxbk!p5BWPIjoU&#n!L5VgIL-}Y zWHGXs$d_6k{{$m${&_045u#1ZYC2RI`VYRK;VU+ab6P3=P4+7i(I2EBVpP@2&;*VI zV(Wh3k8w$P-)u2ia8>wx`f;XJ&+BrUZC(_~C%)q&lk8SDRr4nk-PZ=Nc7MW-E<$(P zC)qHeWOvFONL=nP9lOM2U}IFNk3Lw=oJaXQ`0JbAPyc~I4GkC>N@2|lhIc)20}povOu$lU<$G5Ga( z(6@6tD)(_8=mLWzsV>pUBh}Ucej!o#7&PJFBfIX_lSN#K+^`LfR4$&UM({-`O}%QD zy0KVoY(a*K$wU42S@d;om=3-|o|M-BXcJyzD4 zWqHj&Y#2O>V3#qzrwofU+_bciA{05K+hIr%k{{C(49P^@ z6Y7X=(mwiI0}0lSUFfWQaZw%U*cE8GXK`Q|xUl)6lN`v;7VO$|lGzOjhT*vl$J}EP zPkT0TA$O4!9v@L(B}acY?qg!4P6%Wa{cH%U3a2NDIY*6Hco5Ri$hl5Dr>+*SbOG5o zdEYp@>{fL@zK&f0rHgb%(a}H}8dTVwI9J}saTIX)Rv?7^NkG#t2%bRa6&f>qMhLmi zg-ETmwdCA+doI;qY!vvP7&P3in)iU)prhi+Nv~_Ld0n|7MBu*zBhRgWM>IQ|L zl|`72i$CS)XA7OO`K&8x(F6Y|e8^s+f}fY%Wbus_$uH#e*)Olhz}Vr>>W3RrN9p!a zNRdFZ>2>2&c%6gEPl)5_hn4Ilfrx$en$jgpzh8PRp1KXBWnNp{so9xOF+K1Sm* z_OX{Rs{T+LV*O)y^(6o;Aw2+%=gnmZ94R&|!Pc3_+fsf$%7V@6M79PGz1P;2@IrUP zoGTX&h!lj;0nf&+LUCE&PyV32a#?X!RZVn+t;*}w_*Y1Vf%Zxw&*)wLk00n)xtBPI zWRfF(UQ~j@eh8tR(z5z6%~mw7clbtt=VE3|p?h6fJIHf+b^+YLNvKCY0GJMZ#jt~#Oq`J)1C^n*r zk1OEW@LUgzN{Ih)L;p+An`k9O`XaKk141HY{jP7cdBzgZ1V;BCAXMB{^B8%r_T5q@ zo827AUt93n4HU?w9mq4YX#|AfOghtv47u)37Do9{e*tY6Sth;^!`8>h56m6B*gG2v z0=HeQ3+Eq^@ots9b-^*vmV(dOXxKmt!^f5KO=d2BTi-qug~ZtKCv!mt>S(SiFAy%* z`r?BhOV`~U=(|oc%Q`u3$l?sjxmzV4zWR)HLs$)=;ZSNxJ|D>M&y<7mMVxhX=BJKU znR6nc#}^rK@t(_BJ)aTo?N#m=9+Ef=dx(c8QlgeY6bxbm#^k_NZA-{Fq5N)S54dI< zGH%y54!j3*s7bo+#T$1q-7QHaW!btUsoblH<&N6LW>L=uJ}t6YKbFVPws_{cGe!Co zv>k`pwXKxLLA`MUQpI;_)k1j!(=|TD9!q+ZMbOw;|9rj`cfk{C)XfwQIV1Dc-2;VY z$xf0x?$yDsvm@kly8MWrO-DTLwYAMN?DY{OZ1U+`<1`A1OnUOY@dfxK9i!-jhdGYu z-CXeh9-{EMV;kwzem*>$j~e~72d(H!61<-nrdXe;3q-%ahqFy7Z`@a#M4{GN7@i(}@#J^% zSprMmob2og$)bZt{Nue^(3l86{z=W{c_C_%OxQo%oO=Ex_*CF9=XHgS%x1UDS7AKl z+%x|#Wa+xKi?0rSf31*8A#(^}YbZAKlXzv!D+xD8#)BL#evhm0WRscXL22}Lalt=h@g;3v^PGH<}P<4&rLuyY3?OX8OULAyeksc#X0{` zgg5>#9W7V-^RV_jt?z8~ZI+*=bN|SQX_WMp_wmH%dRra$s+*HjiP?!TF;qp$zVd?$ z_x;(5sIJg9-fm4Z9AQLgB;&~fxvr%f3Wmci&+~AJLQ(s#r-wIZ;}S$-g2UZ;7ZU#E z-R;8i38CUln9)qi)|=Rm!5y}*YJwTYhq*eRl%Ag+PvfHXM)|MPeR!mdWhp(>#4kRj zFW5E>>*nD-aE}WIe7GCB>T&Q0DDbM+*y2a4=_3EUS5mF0$l15qh@~-78Iv@OK&rKj9~A#CMN# zt*$FmqS=TE7~&z7X!kZ{=LVq?jksOt9;`O(l>l-fU*>@q6Y8Opt0sm!l}>ovohuwd zE8!4LwVNVE_>khUrQCYvq$Rdxe6rg9l^modo5_NR{#1aD*zJ}VdGK{(Nd?G*c9P<= ztA7+0UhhpKIfm&uEhv0){=Kay`XT$pUonUAKR@p28 z{?@iH?svcETn~IXm%oZkGz(|X6Y#q`4JAbw4T-iXu%Yz#_j5$cD~zFcR8FZ3r?Qtu zk4Yh(DRVxXPZGzwx*fw>kUZcEdV7MlcFIGBaC>{3jH}WG#97rvwZudy{0z-smZxEZ zNle#Na$PvEUX2c0(qGh^c!tv#+I*f98MHu;ZNk)mjB*z=Bju+8kDAKGNOuR7*~OeL z9Pol7{sV{M(L+jhcF4yLw_ezyB-?+WGCaEG|KHcx!_$5tc-`vs0gsArT<#Y|FSs-0 zJF%dkAPr4%cJ?3LR|c3yt*<+Z)E}b{l!apBN;gek=Svb*-*4p zwLCU14x35$Vcsl@J5&e|NBIn%Uq-zs+uED`IUiO=s|8+(BOZ3}p$2Z!xqNRC4f-#x&<+yDNVnwlaLd5aAu9&(Kr zDqvf$v^xK-l>)VdFqg~GVxwfaQlMl{C2e)I#SdbN!C#)ASPR4>QkR;t(qg}`x~sao zo7UTIk7V4Bhhp}omvm}kzpNK=mxVwSkzgwzV-oRH6>U$y9Si!LcgJ$}ixg)I^B?r) zoE?c7?0)Ya;jmJUX58=A*(?CShHgdy&OSAXEP9V_QH1!=sHD(p+RerBQ zJ;J{`#JS>m-hsqqJzu>A&g-)Gy-n{StTW({0L=pC-KF~DWUc-<<{Y_2I(yie9V) zAl#}=E_xn#Y_TAd-9KHo5q)$P)BeEs^&?&{@mtm^qqj$h1|P}?q|bmZo`#gKQ$facMgSsW&@I56ROQur1_I`568#U z*qG}mrS)<~s~=wrXOC0`r~LwuRCi$;usnc-RUOmIr1`0{JD}zLjeoHizZrA}xs~#OMp#rxh{&}IFh9G&;L`P`b6nBF`lB%aNjBQSG;p?*f&fY zlbV9U?25|o;A+9{8ikU|ST8ycz83i`40brR>=u`vM3Le~&m#ilz0!`d zSO=xk#Kh~2WYRzsY;xM*5^m=`WqKUTbCV>Upn*_EsqVW~f7BBh>)MB%@x0=g3+{$! z`)AF1Te;ql{aZgI#!pd7P~##^e^OU`p1ty!1AD`9I#V05vOJEsdC-!@(L=YBvmFHP z4_Mt%wd2Ud!?VRFeB5_`BqeuW>eHG5#-9918>4It(?%E`od`d5<@xElR%YdP#PvZ$ z)_g#gjb5Yrja?d31N;uECilU2P(gmR3NinH{F)W<8%*ea^7};m_K82g|0uOj6W>*H zSkZ!<(4Y0d^B!hFWK|-v5*G2ZfT>bw(Qkli$T*S(Nc1W!= z6)b`hat9&RO7k96HsbuO|IH>l&H40Pt zTOqW~YLQ&*&yGUEBIgSJhXu&#Utp@>52DA6kWQ@2eJ0`_9{eE-rLe zoBaOzxR4|y?=%pN6kfgC{IxOM;qoi&)-gU7^v5+OobiviwPFnfY_9Z%u4-t5i-fGDq_*ym~_~Ut!ErJ zXB|(ZHG=iUH!_X$)5XbFf|_p5qZ#r=3d0yy=p+7fNE9!0Unt-9k6=D(#R-Y|C3lt+fe_jh zH7ItC;q#;KN96A=CV$xKaY@(|A(<=gqaB#u=@4%uE4=EXGgKJv1V|BEeU^G@n#M_Jk$Kg(qT{!r${e4R&h2B2L0`{H1ND ziv9>~&R3+~9vJz|Lt}qh(h#w9ss}y7*@+N{mfNMCeYyXxa;$V~0r7gcG8C*r`VT++;Ew2ku_p#;a+wzP7bRX4*8UFtyyfWF4nCf@~(w0 zl8cqeBjhKBx5tetfB-`-v^N{;>ylyoO4D!j1t7?df%nJsA?86qw{IA06ZXk3EHtw7 zz&vEUAZ7Tz?y%%Mn?oYYqkly#@bM)Zof(#QW!{E~V3zC1E~?858cvmS-wAz+Y<|32 z!1o2!6-b|dZI9OnH=+cO;_+szA_!^l%{;5%()J?b?;1pc8JUCa(eMSIZurC5j_cCU z&^q8?e`?f_)0O5tTljjPH~@r!;e)KLX-lP`FmvNkCTlPeEg9U z5;RH^#|<|~@tKDU^<-8J%MYVBma{)IK;iY{TV3E2VX>Q!U(et7rrajqm(pOUlSjnI; z&Ks8OOR?h?Q1^8GI^D>^XZ=@ja1iv=2rLt+Y`fD8S{!p3SHR%0Cc}@OkMw@1Z#Y7+ zKN%=@WsM@j zGznVn_DWkU1MFL$pYCalt`SqWan4aHzR~NorYm^Z!-!MNuKh^T#m#WS6b>;o@G1n= zk^7QY>)dJ^i;t6osEFLT`LWbVh%IgZ5|?e^lt*^hug%&3U1-Tp4*~FDy!%JW-vjiTU0QlMmtR^$A#%&~BA=CQ~6_2A#$S|mX1k!Pb2rs{oE5@3} zZUuPr5-$6fVq+?Kd|rF~l{y=|*E98?JP%o9n4V?Q=;L=AWuOiR1>EJr$`eP@*mdhQ ze-p(7q1_Jhh7YhVXfQ~pziueL+JUj8g^fby*ZO6dup0}){{%r!vy!Z&?{GSIoR!D7 zFgej1xN9R2QgL|{!81|lmFLWo*G;+(#C`trrm}1W$%lfl2FQjuUoxd!s;CotUYc|O z3^I)p8d2?6fYq-#l1)>PdrItv{ zzN7K*!1_^AnRS+^ASE$ov>5l7CD37?m{lpWvs?6p;{bK}$DUFesEy@H#GI-^Y~iMH z%RAo%e(xp87a%z-RLHU&O}AgP+5q}%FVmL$r}gBOzUjU%s^9J`>jNkK0OabvM>q~X zka<|M233hW*z}#@v0a0>6Xp4rPT)1>_}K?G`dYQFDR)LsjVi-Hek=j^d9Kp$nHb{* za)7+qYEvl%@#JjfKmTJwTT<=-B5873noJayfw4FeUO2qSJTaGfoFezd$1JZa4Z8-m zi1UZr^Lcb9Xj52*x?eqY{IwG{h`u&PWEQ5khJwA=b+@~PSyvn^h92wn3u1ML%WJs? zX4wBmGOYNG4JTPg`HWz{d^&OFGQUxW7eZlzYiyFCzV9UQgb~&7Wx#=K{BfSuk)Tcb zj<@-kIwx7=QKFv?H>W;JvVKL4ip7a%f1oap@xtw;Qm27w3p{?aeL=kodqv}=a`(B$;Gje#4 zLl<)Q;T9cb;K6p(fFkU3Ra z*4r#x0iRHUO$DG7T`6#OnW`D$%cNMT&`f54vZ5<+(4aavI+ix7_Y72On0Pp9;N&v% zi2X^)!xd|;`hnQq|;e|#%5-P1qHSXb;BNyj`*Ou_IkSA zHZw6H5cGZkfw)AeaOD4HCjVy2wK)0ty@0xY)zK#{2^tt+t^q{qX`*@fqo80GJFsnT z&Q%!!?~$a8%wS*N>Ia@2GVYsD`Xd^q^E0863JH**(l~5%Ds=P0!`5}I_jO!)z2oD7u z-vUGd5bSD!U8N91zZzCGs9d}8Y{_-SS-K1GXOOYo&o=u(q~tUo`+BTP zdGHhPKum1P9zFb+`1p9`&!6?}nCe5BS9EQGK?=SwFD_v^Td7dM!eVzh9=H!p%s7E7 z>@bx*479a}FFZ}s{pz5f%6(^AO^;&Y+zYhKz$wx`4xy#cX>w`V$qlnlqm)nIiH89^ zcXW7ocxVV$;Ng2B!$Qs#sJZ4^z4mJ@;sA#TNZ$h_AV#wgF(%wV#h7GLT1Yz4>h_zd zETBtGu7aEtKTI#mE-r>_mqs#puk$deBDui>fq}}R^KSm&uY^82JqpXo{tLl z!u)FdFHS+M^F|)J`-HFx$803M|A*LY&WjbzYNm_!VJ9!D@6El>Z?F5S2hxOa7~qKF z1JZ(Y8r6GYa{3!mF64aWNCMtEuX~qN79W}Ea;(x;n=e>)aasL@$-}G8(^{O!&t=lEEu&~ItGncgR z)(~tXG)@C5&N|>R)x(}dz-R^D$HBn?_yDbkFJB}QaF@wQ>u#0v58A+BAw^OS%r%v< z=yR#qjM~XbNfN~RL>5=`kAV3{U!Q*O4y6Q?hqaNs7a7@g5fW@uS+5VCZ7!59ni){k zRg=omjDVbz21=vmgX(?0gbiPF9G1-qaF4dj&4k>28ur3Ma{=;}mYRSr-I(mn+R1{f zAK67C(wZ3N+ht>FS|FDr08R{IXt?z^X6q03LpMpsWWHKJwPxCPkYmUJDBwnr_>RR)X(f*b-2FxIVt5VWNa zmMg%%*XD5yzt+0eTY>L1z#?P6qHXyYZp^|OFb`l~l#Qk|5bX?E6uSFL$&XB+n9c-G z*{i}0F0-4pva#$LH~`zfrSLeH$O*YDx-8h}P7d7B9M2*LjyFJzl(=D6Z1Bn&ZGrJ` z=*LG|+m=gJJ0VSvO%$H+#Kt~8|MC>o3=v}`&Bn@MyVlzRxlkgxoAMpxD^;<`{@Z`l z=o&Za>{hDjha@xUV0ZnH#OFr4jd#ZWLlI^rgbQP16W{N2VbM6fRUQHQ{nb{I9)K5~ zT_Nb{&gq#TJcMeHNkr!7enz5_P5z`1XbY$I8k_JP)&>xkl!{!OBpUu>OKG}^*^39V zOaZq(1^rn+Ro2H0y5N1^?@v$n$7Hv~li)EGQq^;wR(a7-K>eKnm0Mh#9*Rj7d)i+2 z;w3RJhDF9@v-!)`jE~Fnw+dC@25Q^?Cjq}W&v$<~RPp^Xy*5H-QFDoT;G*eKodZ5( zff%7=ks`$3K1KN9!Ki`{XlnlNF|gAk*Uz>F%d;#tA}zd`mmu>R)8Lkl5c0Ux_icE> zhdVnUufLV#v75@gSgRa(LO33%0tR8Qwe{s(V?KW%+5rKt+q0vRNWk+eh@v~NKEOaH zuQppwt`0I3;<%!E}#9NGIqniy&2l-d>OHgHx z6|0oGL>ngmP!=8G)H_ioQ2V?`YNTH5FN$*2SL3Ru01mS2#GK` zge{R#XYbP5#`cdn#_;JzZ&l!D{TpMuw#T{+LVPA9bWD__^IxONg7P>R>M1E2sx0^c z!{glc`gYNV!KiTVSKkEbtTRyUx-h2+xc&UU%eJ40LdCQ?Ylj}{LEkOi+j8>9N?jIw zK7QQq+N@=tlY13}?A43*T~ZN=L^SYQ^QW!V>}dNJ$E3{$XeC?LLcbCJNftuYSddKZ zfdp6l)qW!fFflq^ZPpv_)>X4gVJjo8I_uqrdD6D+|!ynMDM% zbGpN~tQzsTtByY>_PLt(Tw@!TsDi86Yl>?D^I5O*q}UR7S<(34V0*GJk{vT%m|JHw zHa2Y}^GK#QH@7_D>#0y#3vZ9*G*1>Hq2)scKCh1DJjz2^*G4F=t}j7?dD^4IAiZsH zOp<@+vL_Zwf{^jv^C$68fl8!^9Ndc!Nt%x@674oy&9+C-~#30cT-J4{e}c}MPJ8U?XoO8;QfL97rI^+4xWqm_VHbW=Z^Xms2L$*b04GRSxm zfW<=uj~9bMEmqGc2-PP#9|?~@LHWFHe7HNlwomK?w4ZIyxOxZe(jG{6^bflS_0h?I zKu(N#vc3-)7^}O<$qY3sz2E(%*aQn+_kZEuLX%s!3*~jV*gzrp-G$#F1T^c7>&m3& z@ktWmfcm70{|y7I$KwuuiNfQI{23}|FQ&U4D+t-_U%7=>kDOR;F0|x2+ z*R9f~WFrF{9|yL?+v?Y%TMq7j2o^RPpkp5vHn3_;Mu3s~oX@`vnAjddZEGMOO$g=I zzpeOx)B#5Sn^T2I97iP=7m?>h&<@C@UhE|@;C;?YWPA%p;#o}P=hW_p)7Z$HYsL&2 z&mA4uWI#iw6Cz7{rG}EA-lyA$DBrlNBT%eepRBHi`0p0WX>8=_ELDMuI5%hcI302FbkTYkGQZ1fQB04@9RBUfi|7_%$*q4! zxSU4{S>8M*lLgM8NgwT>=QA6jQV@I$M#h^VZtgJN<}&btc~fXJo|`h9`m0!}&^7|M zSh);TS_E8`b_;dLkjbQOD8-52&Q`QMSM(E^wGab@-PPzT@m(WL?_-aZ&X#c_%XhafGx0)wxdF*c3B@D6mX`65NK{m^-v{I7hqMj$1Cikl%4X~hU7BZbvW z{{HGPMNFg@v1PZ`IgUz!aF<2@4-|`DmySpFAebd69|BkfvJt^qeRJLR{J6NNjZYRI z;PcjG{%o(b!ux(<

y|7;2WDYzPw?HH7pRe!Ct=%K5o=uNm@=Te|EgViKp8fnpu> zF5OUgz}?~YXJW;$=c)$#Vew#o^7dFxK~Bzuvqfq407q zL;~0IZnyA!d(;g20rlcsW6 z2eDJGYkTNB!}ULj(Keg)58%#slC*|d6h<3qaMIOP36 z7Ay@#`c0P_xz)9T%Q9S4cc|lrt)lr1aj(l`n5(ICow^y`!0b&Z<=jVlJV?znjwukE z@Zrk1TJ~ubSJ4*Ycn0yMfMK0tJ49wkBN;98m6D;kehdr*5#J>=S(2Pl_QNd^pVI4S zC3LIR(T-(UOaF+6xqYMzVR#I=14af#?O3GJg7Ge_9J6ZAl((esf#6~IzJbdupqx>j z)Hk5JvFdbnTDv(%5i+6su9RqV=S7U)6882M7|8w@ER~K^;^wcrp>I^}hicALc$S%m zX`B`ano`9&@K7OcQ}%buX59Q|1fpLk=s~%zy$|#!0bJ+mziBBbejp-?qpU$gzx)G| zx4;Ds+S!2j|EFGCTC~AO6-frY#rXmXp8hzhEHKc=tpo;LK(3JT$2SUOYCxe1-$x>903#XId%VzHnNhyO!(ayg$HR7?sBg z;JWu<7z&thBKgrRO)ZXf1G2B=J2yc^P;lzDxH|*E6R6^4Yk5%udn;{%udF%(5WoNv zwRMulJA`T;XBMWW10IE~uf&=`ZyTL@Bg@k`D=M_=8Qc31U_cpDTx>BvAF+{Ctk=fe z4Vqw#!nXq(Ac7V|o@M-=9)h7^1#S$w7mo<5=&7V7sLe3?K zk?#f~S*jQ52sm*JJjAZeJFA`qb$eunvcB_)i{AH#%R%T-@c6w^L=umcU-5JNm%)=i z1$5wSXg&3m91)2KylX1=V+@{z_}bb}R0WbbB3lI`FB5Xko?tC&MtJtu!#xryG3gN+U;_|FjRPMDax6NI(1HwS ztT>))04(2cazj5@Hvp~O+}!3!*q+q1Auy9K9);WU?Ha;V^X4poFW*f5=zGno<9*^! zbkn=j^@c>)m;?$Pegq;EOfuqf{Nx@^lZcAfvktsGf1BM{h4+9uE3t+3Yef&0^k0o) zUIAo)&3r86#Eha-XbuF{&pT5kD!ksW=;Z`ruwUxHq*dKkpqZFsHC;!^_|X}IaHdos zyN1|q{QwLHX#Bt{%7)pejB zwYNKOYvEOqBRB}AKzMU5M+&>K}#)5L_ga0ZS}DEM=D`EzTXa2wd!J$XlPsD$A+pW3r`6o;3!OO1=r zo=HOpk9jkxvgQPru^3|kGg^(T19Fzuv?6vzxLT;k#m<@>Tg{XsFUTbE7*^JRLhk$6 zA|HWSza=th!`qwZ+DzIEtpgXk+)KOD1Ai=dcoJx)-g`%Ivy#*Yq^+DbcfW}IFREUN zz-k5yxW&{3!Vg&XRVvD~3 z%v>=l6FYoqNGkI9r)fi0_0Dk~ObJ?QwTAidc)bolaZ|PX?qiHIM?aAZ^pp^Fs@oTn znW)BCrGZFqOT~iVc(pLPC|~<1?z1f;Iz_pUma*?Q(E!wEM??BA(b8e+T|GNokgC^U zu(J!D2Miw*bIezQsY8yO&fWh0`MENU1um01TOGa6p95$lC_F$(6NBC2aSgcmFXWu< z|A>(d@^9;?9IuZe42VPy7!Hh%GA%dMbpuYaaypDijlnwhPR~2{`6R1ASG;<$US|?%Azmrlic**=YF) zgbCgPi!oU%k!Em*aRb1O|K6?sUY~4}d^1F95x7`&KNPXYXm-}P3d$8*b88O}1%B%A zYO0ND9D|xT25I7EV}7IHM#~~TV!HuLBl`j%w{D0M-0G74G=QDNQ8yqqYXTq#cpr!N zL!431VtmHZnBeuvnn)aF%WsoG*vRmRRQUh5Ugo>!2{F};FC1Y5V4w`|_HGMUv;2Q)FLJ~y2p zgS`;jf!DZNn$ExT*#6$|0NdFPVd@1bc5N^=Dn8ektvY1!E9Ac=Oi;}$MZX^5v?#{V zqP*~cA}j`KZj!)48+w9xsSM z7zAi3E@LC$@*P@womiMD(98?uGk&vM=I0uKdfsLAPpi!W2i6l~-qKuM5?^FF~*r!jMd)~c4sSA>RT@vI(j9DyaEt5vEl%rshJmrtBsTssyD!e z@yxadmOM#~v3=ky{BPyanp->ulQGusZ4?V0nfsWOSi*H?EEe3Gh?YLb*`MXSuC~CM z$Lj;D$lU`9wegKBS;0@VBwo7iyA;QfO)90TkevqFWFSrIAbt*QbQro{iz|_REMQUm zlbQ4~c@1p$f7ho90gV29Nfxw`{XLRMa700AdTeS_8>s7dAWz>Z>4OcHMv%$^-aa%} z^9T#m-8`Tjp8{)Do*A#lm31%s?C#OT8ae(AcJ21lt8zB*?p|QE63qKUXD1T{<`AH@euqee(q`szpG1sx%p){}Z!BYOhdzMBNs_!DVaoc{@8O)a_Xprb4u_{Q$BtQA|uxp{q{dn?1dYzFT-w zT?mF;j8zB%71R1H^2-@`;~BR9vkArI9He(mJo)HWAe5xriL1k|Wy^#j=|4!UkP=4! zw=Vd?V{my&nI@0E>(f`S9@Ycz;dwzo~JOa&peX64foYtnlqJ ziArwA|K$v)W^QslUIrFkP|E?Bx|}Vv(c+O(*#s=ga@xrsd?2D7kNuvOa9|Par5>LsC@psG$EqQLhHm% zJWe}2mQ$BBG|yNrF}$p%vYEWslc4*m2NUA|*1?7KG=i>)QW{>V7oXtV!H|b1K}fJ~ z{N)X#CEeZc{<~}7cKnwPrrW?|0mX&wT;*Dvf&fX)#yc`1C!lQ3ma3uNlQS^^xaJ13 z!&!v^uoBBQUrflbva(9i0;7c^D6l|RCwRT+2&T*Y2RrUSk$CiMQE&}lA@Jyx8T^;D z^v`v}j$xq=bb|j?-2aA8*zhb@E7KFy2*=@cYX zK#-DBx=WDmmM#ee6iFqdWg(p+pdwugNF&X;ratfc?sLxAil@{7|3P zn%h7S!zUCsHYbV>#kr8Nym(E6?(Zu9FJDGGAP}tRGr?HIcrZ-IssY;yg2HFqG6`3& z3x@L>`yKvWLrfHja4Gl;feB6%JQG4h&!AyezkR#u*XuWWWP3r!+hY$L^31_SfsG=5 zBcy|&;?&Dk%bR_P#_xbm`dhV?=9t%*zLnMmx#EiTzQI8cLpEY7WB8CC3ndo;F`o2T)(|0gwwp%VNuE(_Gybk$manNF?Cz2$La|4O} zo0yu2YV`B2MS2-_u`-S8;7dRO>$@w8^G*1Fgm5t`YHBVY1ONTU4{24o8`k(csXsM% z?>(N(fOb6%eH?NyR4PZWmAvuVSyJfxND*00%O9RKUaC(6;_a9B-d?NSBO%E;0$7?i zOyVXxn({xqM*)`WgUKq3URWXKZgVa+wP%VrFvBFK4>}N$$`8Hp_0DrD*SrCpST6v< z(r4X#=Jq`U_A9wQ2b*~+Ne_QiS;)aY%}Gdx_bnG+z_{S4|Zg(xyF^K^6BeQ-Ks5Gzod{u6T3Day-2* zVxN_qY|%^hdf2D$Hr!AK z)jix9BRQzC^(ou$H}&&!D=4O({{EPOgk%iw@ni%GGrKj_!-f&QD<&ou%bK+?Gg4JY z|E{ms=Wk`DV~;#J@m-@zv|n18K#AIvL$mU}g7geJSvBW)bv+Bpf`7IfdIVyN8BX~3 zKmU&jME;*blf=KVSoCdOgM-t+|AXWYF8&^D+fcHiqoYShby-{)zh_DZ5i~v$OCJB; z3wuWRNHr{Hz~e*6Ru!;905?oEq+&I^x%*}e6%w&UuEfa1#6(I$GV#6F&aAICmGZyQ zM=TV)Z!Rt_0s_^c_$~Psz3!m@_`lgjJ}&+Ik8DBi}tg_RX38s#Q#YnqbR3;a_=fO5epij2#QyBS`ctW1Ea@`HKZ`iA*oXwD{Gk89E@^TP3OPJq!+CNTJ(~@nQka4T@#MAw8N41P z8rgll+zs5aAeQGy{v{V`_`$q$tUq&n{OyC(y_t^hoWc#PK8Yz@QURyFVb{*hS^_*6Le zvqv^it@W+4LrVF|=@}R?Q!urF;I)g(?xwoU&t`jd{zy;EUAQiXRLIhe7^KN;N=SB21a)FO?h*qqRb-i5BWYI>btCF zhd^Jk3xkDRDdenN(qa5?f$jDEhh8B(AS(g8&Y$xkkRm}<>EaB=Q{j%LlE?${I=hgR zczH1Q9E3qyFdz9j)r_6Qm6jek^~{Vuvb5CicBK8!r*}mmFcv_c;c=iTF{zBdzrFNr zhG3G~p$GiR=UZ|9D7I&hL7#dXfKwR97T^9Vj=GPo+2y38uu$C?@hWRG7<*bT>?C8y z?a0Q1N(Un%DYaJQ%=T5b5YOr4W7t*0;a-g_XDW2OUvnSNGq25e%+iA!!>lWfL=%`8%t!(pf); zr;XBU7-mP1g~8s%I>6=j-yQ*9uam7#d>W}W6gA5Oy^F*gQ!)34Cpfk5?=1C4r7ep1 z<(u{|G+OrmRZG8r+)?+o=*7%vCrwM3m@ep7SUCSvmNE7KgvlE;bkqlx1vd&U(hBA? zWr}8zCu6qY8G8sV!e{O)Zz`i!-zCPk2fIbB^d@8~91F2Otn76?Dl26|Wd8p(EWvB~ z$OC~@3`@V~3|Oq}zU`j#%RG$jM&J2%dkJp(%Retn1LmPBm_{6~9 zcCxPW@77P8+r@BxEt}8$)5&I-G?lPz8ZkNSC?%7VM&Nq+`B}3F-tgb3h$)W%&0*P)x8uJ6H*&w68-ZQ_#bH>XNCN`3#o6%uC4X?TnU*fmH<( zsbJtVV$zx&XFr0lSBa!`X*Nod)gHF-l!-{JYLGPj>wqU@zfd_FwV<1&7ioYVSa%1r zE)P3mxg_`#&{vyOEyF|Y!|e|iz61oq$Uot?ica=hw^;0LtJ=>97(HY3s= z=__PmP(T*&qIL@4FFTWTw<;DcXoslY>k~8JN0-kNcmRrb{nQ#NYn=mBF_A%?< z1?TYNqbj6h4qPi7sc@-y)d#9iK5FU$v%R3-e-|ZrYZbgitT(pi|GcPL;6>Gih3!A? z+5b~3pozKU}t%R^AI(8(*f0J8`aXpXa!ydk5jSs!4` zQIn9-LBh}>3)oG;yNKL>Xu_pN4ZN5lrx%J>ZwstWT8CnD@Hp*5n*u-d2Usrv2l-KL6~_RVaE2euOTnSL znaHFD1$znZ5y9QCz`(#5N)aTx0dyFJ%*wXNNE|^T^&V&~ zz!-q_*5%hIn`>Osrt*qtdV2b!(qdd~1Q3&LgjE)V93C1e)O=4blrIF5Lf{@2dxHEIYno4h|ie_*Oh^`q{@ zk>X%#DKX_W|tU zekTWioxM6WPl#n1MOjIsBSBjxb#^chqrwLONYcP%y@HgWE(@5i#X$q!YzUJGLfsKx zFc@e#S>%B!q*i(Z0&pfLCmS}J8yX+DW%R>)Oq>Vz)u3wAV{L*j1q2QqP%wM;nKR*C zjHW_-uj=s~&n;k+W_(u=gw{6ny}~p|$5*rzK5Y?vV2;yI|7elpaE!smiHH!O7;7Zw zLyNH82WD*J`4x)>VE|$Dn!NX5gaUZ?43uV9*jmgwB4K9GIs;LVd*BwR7O0cuDh@!c zK*p(e>(R@8|KIh?S=&YMB(l~+S)#kAy7U`*WzGOs+klD*kvFe1yf`JlJDzHVFVCTd zMUZFvf*$p*aMazi9G~A<51RoMf@k(o2@C-KuusQQik?BggmDd_!65m~t%oM*W||(8 zqsNdH_+%mLa2TGXEO{oU5WFuW-*GYc59m9RMUfCCaHSrO09FmOk^l?KGB8H9`s#3> zamMknvf)jErSgYbu2$Zl^!W*Zf&9p7u`sS22@{JIa5QaB7Tn2xz(T--l$VNS<_-4< zk>{16NiaHpDNP!{FpwHp(yD@AQy6gA40}2JqDgysDk)#lmbtnTNnuJlQP@l#fE5$o zDO(98Km!o@YV0|2$lLWvm%;Vn0t}-{5Uh+E9{?klub)>G((ew4ZABNTZ>4P~Dgfyo z&dj5!u^!G3$H+=GNrGZC2SUb$?eqQGmh9Zz=|Ytx>62M}L0UoTYu)bz-c`bsdV0Fy zzk%Dems-mw*=X38K+4W0ITf3h%c^)=SSQ>fGhWL&!2`68MQSY76yIgWZ$F_7r zam9#5JX0X9ErA{Yimf6kp0RAGGT{l3I#;#p9&yJ)a2pO8%=Ld@W3Pj&+0X7#vR=;c z`c+c2#(e9n&=KB*bPEe$`8dmNZNHeZHfx^rUVRJf<<-1w=>#24*`BXEEDd$)+2W*a zBrf0M3A;EqG+nh}KKv9%(*oG_yB3ks!IrPe*omK~I5fUCIy_x{z#50>PeO=Y>=>gD zr^=0`(Xu@1tKwEjJMDCAiw@pG4%3gDOI=m)=nVULVV6J3WDLe6eisH{{JYDTvh<%s$j@UKIx|>kadIkn=2v}a_ z%i-<-UEC^{+RLn;vW?5*x1ZDEIC9oS|17!lgYXtm2b*N3;yD=ZnD+=$u=p>DTuJ)m z8bsqt$|3JkfeYCXMPhY84Aze#OxlHCK z<)3|DNa)E?=?E@;o6v}rXn0n&b;B4{IY&I*D{URyJ|L4O?Jt!P`Xf)le3}M^ZgDH7 zDMmW^y1XCEAEXavf_6*n8`f(G85C!*JyyrKj`-*W8wH=D0$Wbk9UuUJEQW|3gJ~;! z!?%dH7QGvT_O)&ek*Djf+9aODtkl2cv|0Pu*IU8FW^1B zG}2^^_ed3_8TW1Bu~d)vPIk|eNWqx1ncc%u+(%Hxa6*@y_0F zIr<`pFDY;Q+&%5=8ntex+jH}>8YuPW`wr)y$iGcs`>!~*=Jl+R_nQOIhjMduyfim? zH`af%Vfu7{pUpxIY8kbN(^4v}Wo4q#zWv1=W7&Os;a+VDWlt8>ym`t)H_B~HnL87U zk+W?f0abMGgWm*~uhw;<*wCt<>lH##n3Cr(<|hq*(dONjXUa4o;5(bYsD|1pX;K%X z?NUxE2&;R&72M+sul?+^njg9M4L}nJa|VNV=nYp|n}CLfAxnc^s%k!UO-=u~2$q%0 z=1Ih~Sv>*W)E_%RS%K}tOKT(#&u?%s#qxlU_XT{3&0FcyMhZkMY;4_5VJnJ*i(wE4 z921SDfzo-rruq5qaQq!PE0mTnVVa5AF;qbcJ{+wT60ov1LaRvp#he<(T-`{@eP6yZ zJg;-VNb>x3pNI-3As)SWR%Ye6PdP$VDJfby=R5z*I zQi%PG$rr)ldZ&4-oi4Qp1r70bhHj{HCnXMdR%mLt!JQyoJ88)D9k9~key$BK&K zE)L7e%Az@$!O)mZ`=ge_D(+x3w|wU*1k}PHvh9SU+Y?qrVwbn$fqEs@fezq9*;GS!9|DsdYz7^1PK^6Y|%`9*Qb+-D+ihK z)nS1>)t6Aa|Mk}V_5{3=FF)p7kS)s{jrK6UGTo&A67^}PY3mcEKd1n0BXP;1X9oSx zTmYsGzYb1nggWRUftGHjrDAh6?yl&L}nVdmVC_e_3*BPk3HQ`Y1t2iWIZ|CrpV_=O-?) z>aDx_;EC9|-KC~ZG(JqXDAQpFZ5>q9m$|hsd4yf}0((DEPRmaA#t^j^*gf@-bjDE$ zPMt>Vnt(g~UqbxY7v=Euz9761TcDCf;Im-ez8Yk%w7ne4g~foqLrprz)B0XsDk|Cc zPs22m<}U0yRd(PpJA26uI^jp$VFQd^Fb~f;=`dRUE*l}`3 z#^cwnOMU4nAK3e$p1j6}g<$DA4Pg8+EbGZl(MeL;s2Cik`Olith(xIjv>m`J4t=Zz zrGx(;4nzObz2z*I*r(^~4*sjT@BL1_3*%f~v8F`LhlM7fk7e|u7@er8e_`v#!QMdb z!RcK&Nv$3QU;%MrrQHYDpL2EQK{@_sUJZ8G5pvw<$<=_x1BLpXe(dSieT(B8l1!KU zSb2Exc`#JkHWI0Q;N38{{{k5RKYzTKdUcyJwiUQ%h92L8*|0TgW@2u>94;Nu%OAm1 z=QMQ32Bu6U?V0;c+dUjz@7LDWYC=qe@9uuPD$ca@XUMjrPvmwQZ@^E0YQkHRO$3(JrSf0CyrNwI1>I!9_pcSk8(HP$1i=W%94l)Ms} zOoR{mS#7E`%+^k-uZoHooaoWJ^YI-y>Fqh$FYYQ2sUxT@K*!3K1#X+pk)>lNf~wO_ zom(XCN#vqkI|@*pr%`xG)1LiQJs{DlmhjO+X}@6vb0I0p4nV7N~K6=3YK2A%l3 zCu5~-Z`!(o)qKpow6znPYA1azxl!N|@jM_pdYL0{I3P(BkU_GXF7C9Ms4u)Ng2%_9 zpVeh#7F&nL)}5?VxZ^a*WJd4P1T)Y%i8o~k+f~NX{7Cj4!j#B4QbVwwi ze>73is4Ytt-Kt*ud75m?Dn0su?ZJ@9u94b2YUslpPW(I7g$HG{VguEWB-GK+*dS87 zx819N+3oiv1(&78_hC6t&*%B)(}t?+batGWC7@`CmmE&bwC@&`UuqP z{A61!zJ5X~OZmD?LOh_5uz!^Ae~HDusn`ko3u_sA{S9^5q8?erwdYYfZmr64i$f*A zLd31R5fI*a>XuqZkbjj5QQg)GGl>MYcIvEWsyPS=c_0~(oA_y`Kv}c`^}a9loRO1A z{2Z;v5=NW-g}E|rh8oB8vgp?tBfoxMTLdnkt%@23YP1d2vj*_|HMee z-jZb@dff$U+!L?{BqW#)Hoqh9LUR9;aYyj>3#p`t4@2%b#ScaFYmpzvKGL{-`>lTU zt0syEu&WpAt)++EsVe%xOhP2C;PSEKFV%Wi?yvKcfd1V-gzf+RFHr234<;|x1H~@! z&wUzhmXMp9`_Ck~@u4ch>ER3A%A94sxz{04OOpiXmyioZN$Y^=$Sj$Mm9_ZZ+iy?<*IzE~?>lFb z?)=r`Vu&HUd@v?g_nk*{BviRMkKYt;Gr9i*g1jZjk-6u;Rn6dMb&Q;Y8N?SIc};b>;l9r8YiD~&lbX~3V`8&BJE{LYQE5w z07@vAo|uC#{2EWoPAZ;2M$uhJ)#|GU`OrhKV*&HQ$_%4ZhM>*%?}m-DC6N}yg^<52 z1%o_f2YtGXFEIq?suU5m?}M3DL?Zwm*ZomKi%wV{j)P!;%J!IwNFjj*{&W`fOR%*g zf_)7!f+B-Y<%4$v>EuEkZH=K-WjX+I#qDznFR?%^Z-R&!DjYU21c-+#J5V;vb6I~s z{_52$Bw<|e#jp#kD!zbrL-HUn({36}p*JLE=`;euZg{UqpUq2CX}O=QSxFyHpPx>H zCl{QEQfBvnk;4_4tboM}`h02_`L+N25r95t#z?~{5ovtp`OEnx040Px=Pdo`(uZgm zfKi4j<;(c{S~fJwokNJ?l9v|$mP1eh4H4cg7G6$(bt(Y+uAG4)*8(sPMELEN6y@Z< zdD<^D4t%;Dr1OEL@GImI2|LcT!c=><$m1^t>+ZbN&y`P<4r`zRgX%C=s*mV{$#(C3 z2fz=Kqw)c0g1}?w{AVydoJe~EE(pkC+V^&Jun0cq!6E0~)kK7(4Q{KS6t|y3Oh4jZ zrJYFeyb5|}$N~qr{zcRYi~yNwry$4ND$>EL@XIG}0AT>T-*deI6!0KVp!|LP`gH{z zk2-7%3f0f4regp&V45@kZon_Pzz;!pD4B-Mk2s%4MnpwHtd{J*NN(gh3~s?Y@M-{z z20Esk4!a|mhQ30kW9-!Q`I$#7S4lDamyM9m0UyBO9E5|7%^FeCzN9d?*f#)yJfy;p zN3CI&)%Z%-V(_VCkdLkE`U^_rXaqbQ(hcNyfvArdE-1Y5rrR$PrsLh8J1{*^!!;$U zaUTM-AZD>&_~u|wOv)CYKfyR6CpkAaE>of37QVYusbT^djtI|!rvDLfJsrtqiwPO*33?9z)%;J#{rl4eFiyu| z>IxL>9J`_G20BSPSLGY}D*V)}ba*&)$U_eRf(7p6 zG`a&&`yf5<6-a-FZ>Yw6)!?3o8qwwhPF9*TRYgVg2>dg~$a4_ZzqmS_UAzfKBfbP) zIZ-;_D&fwU29)`A`$mdp6WO6!#nrUsfHH63LJwu{AA6D8;jQoSxF=AZhZP zZGG4H%up~O-=37^o-m|555RJT$Ql4v1yl2tH6Pd^ZsqXqtIwCQN#? z28AkUK7)elJD_;P^I;nZC%faqix5!wUsAXfrX zs7hz*J;>`s==M$b_awaIxHh)1)cQBb7!WU~HEVsnfz{HYqZ1 z*3FR+qYVModLS!)AveNY*8hhSKAsk?&?n1@t;2Eu)B8pFbc@;{6=LyStDmX0d+2}aM#b4&>gIGQDACHl^rb>r#o@CeJl$Fg1-`we=RjJoP0Y^6+^m%@qd+dOr?hubjN z?Szcdk)r#IaK416_r-TX&`FLw9|VsL5V1Wk7jirBoy1HSP65tZYR&k)wGp)wGYOqF zPTtkk9-^Qd2qPZaqDnyrLdz4*focR!6T^@$M%18l`lDHsJbAkVFL>^`+8ok%He`Hm zqv$2{ic&5t_0wx?fFg8juH!73WND|fbM=78PnpltLB8PpwkV$xHfP#hQDuycn+eI9 zvL&Y~;X=umsi<^A7Nggyf$W$XHrEupLO5^vN;CKObIj)#Sz@tWK#Z-_2MwG&U1$I& z@p*88&f~xDdas&rW8UBZ%Wu1#7f3|n@tq0jpJGkr8!@j1^6P*@vb zHt!Q+Bg(j+Vab0Rg6a%G$H+H<-cN!>n9)?zmRX9*%t=X6G|{WIr~Vm-pwA;B=#`9f zx4tT8S6woG4F%N}e+)B1cu<}FK4xW(WBp7ZPCgESD+mo9PXoB~vo199G=c!7U{X!( zabgSd9MOna4sTKZN7{`tYOy{hTW(oZ&lu#a{Q*tm3|I+c)PQ*xCLc9fu5V1U8%`bkWcX4u8s=D4BAyHQ35BqSr87j zfKC~Wx7kFag30r8p;1@pX7+(y)aT{jU*3>AgAvxH*5N5=98RSMJ$CFL=MJBa?S%RfIEJcml=-#u$kVRBK0 zB32V>2h2z3)IZz5Dh-O+V=m(;U8cLsiHmx@xx7|OFS=Sb%6}7Yd4SI7S4l|`U4f=hYK(wQamuT5Utp6 zu$@3=RX&phES8zro4-w*=Imh~J3M=1d>T0uZ2Pf{*1D1j#kH%n`P;J_*bH*NlX;p< zl*~nfUw4F|tNeh^vf|+N+J1ybXo){dR{u%Zrv8)x>^FlKP2UuE53^&e zC43HfsY7U0tm&L;Vet)%4!b?aU1p<;iu%cznR_%xke~7-2&QZ=TB_{YT_2<7T+`YO zk*Q5nHktnEb#pp8mhmTn727Dd^hrZX(UL=XHyq~pHo^Dv_!7&0ABZ&y7&zL{pWez3 z*z-IKn~(j@x<<~x&&Esam$JC-4ICRKCz34eX2ccD+4!-0r0e^3V_kxL7LQ)cOo^yDr=hfKEtMpqWrj~-X6Y&qPpkJuo zB*nh@4YC$Yk8z@6nVwC5+?-*h%gJA!f>(aw3Fa3Nv&G~*`D2oLux{@3+T!HMkiR&I z>8AbGs*9sv7N*RU`qyyCRQg#jd?hfr2N{&{jTMEj_-juYKYS#KvZ@tfuTo@|KM>4T4jyf8A=mjITSa2oD<2mGXP_CM1ZUo!4oQ264 zm|$5nvh*gmo-hSv;mNv#lqXL5tj@pd?L6~aY>%sGaPo-885|7=*m zh(3fPfjI7!wl+njM0DAAKD~{C=n$|XQ)o>Pi{b>ObaLA9*jR{$6qd0E`4y8fmK%Tl zwBlKyd5P#w$@3dm(QDr7@x&Hqfu{|pzCBhRZJRb8jV_gB$4!Ch1?WAe)CwT3Wo`P# z)eGg!CRdU_Q?dgJ)c_Ku*c^aQ_<%w(YkF1my0y&6{i_8i zZTL3MAWps?WEk)q8&AXn45K^B7va^cS}h6NHx;kREz?>yx=SGZbc5mnypv!lj~4ru zkuy~mk}ebE;6U@{!@I{{et{2u*&y7D=P4k9kaS%OEbkm%A5WRp|6@rHPF$*4;PtAgNGL7Qo;UOzrY;| zm7A+D)ZuyjyIbYu3kwTsJWZ|>6{cAkK)8%V%iRucC<90wWL(`a1*T_Yd;k&P#?uWS zLKj5VfNbn`0v^cHU1u_m(1d_KEJMswxZjRgwfCRjPhllFU0{*cZ}zSCzX$XIvb}(? z?Er!${7+Yn)qFEuvBKedX_5T-^XI-|pEbl}oWTO@q#IVduQ~OLbu3Z$%;1QpVQR6lKDYiG$Yuxz z{K(s-t(Lfu#hVy#8N)f4Q1FcS`tni!CQQwZc+%seh{7TKqskGCb`8s?C({dYNgVD~ab5Ga&VRWhgl+SbH8}0Kp=vh&qQSfx|l@LHl z7{8p(`7flyY#{$){%ixZ3!7D-Pw$mvVTK=#CUw&IH|nX;RoSFQy~k{d1r>1u?i=m>0-eEt1W zaEC4sOLve&=#;QEtZ2%n+oud%954w(`?EZm)*t8B3 z_n25C7*E$<<}qDXI{~J&!#murZ|82tdR_o6-6G2Sw}4fc#*Ht}P!=4iP;)W#Sq8Xl zXtj+vV+RM*Exxb)c%Yc|_?9F6_HY3F&Aio^>%vW4k4+qKSQzKgcr9R_cXEDjaY-q( z=1X)Krsl_~%iB_^5yG*%;eXzcIyHB_h<}LP z`Knlr{37k@!pIEhv`TETVpE%Dzu>2Q0k*yEt_csp?yU>M&e{U&LV;9XlcH!Bdj^f8 zOC_;X(X#x_Y%&r)x+g_FXU?`9b1L_a#kWg6@7_@6;J1b^?HrK91GjVWc|+qqS=^*D z=gH+~J0UwaDsR$ffN^T#vhOF~H?fPHQD4BN6+?Y91w9ZAgPQPlf$>VbOXV`@*WP@U z@XZFY*-aLkIvX}@L(C)qV)g(`(J3RKr}@EVK#X0jQBD&r4yoPE?c^vwKtIE&45g97 zQL9W-d&<$2Zy1 z$C|+AiC+9Z>&Lfw5%0vGxt(vEpKZh*GqY{%=VPY)>wFAUqLHL;Vb9q6iP4tbwDwpyi#GE z*FNhuDKdJ*LNqTnP)y?&{+ptt64YVG2)C+3!c+#iWBLvsPXI6|t^^5}8NF0e)90L~ znMS=m6MK+z*7*{kDa5+S77su0S*z?6CD-*d6YGSS>!YOXC+)6!CkagNa!*qJlxoGL zl^1h32@qL{)DsM;PldEn%z7)8Jiz%Bh^QniNuLpu=W*gRG|xa_TxD3t&9cun#^JPW znWrd5u>+l*sAJz#ejei*he{b$^8F}xV(c3c#Mh#A9t+$Z`=-jR>k}drZ^_(PDg2G| z`ZN$Vr@bvFQOg0yPExS=QAuIr^UzGnXW7%E@fORw;GLfRSiy(J>fx;h+EeEH;Z05H zo6makEa+}I8_}f=-90D^j!)a@h(-^4hTF~&dzizSaoJKqy->P8)G4Bhb}N+M52KE^ zk9JElZzq^@{^)9%n^{hIqFtQKtSlS~h#|$-}An(4}U&FK_SOV`{V^=qa zZ}~WjX$a98ObijQw*yJE;_9p+HthNBd4w@8(o>0EVu~@RRaEJJK{mTduzJx<2xM3urdG?dS_Sxv}JV0g{C@VxGf*3@RMi!Ys|;9}uO zMz_4D<@8pOKAaIcj{t(XNPy0%h(Qg#NW`syhqSR`Q5j*rrr>3NQ68m7vqc1?@FJcq9Wn98*SV7FJPCMB3HBUMyy;HG@cCnJ3kky)D zAqrwRjEryDvAhiF=*8F1AYCMx?BbEb6koe}KN44^Cc?>k08Ao8!^3Sy1vc|$;lJNI zeq2E(47MJnIco;1!FQ$@pw5BX>vP=s|)Y00=Igzh?;?k>_0cE44X~y2ydJ1@((JsxZHIfR>tsSLR zX8H_*yID8!*xa6R22rmGtS59R4g-Jo;X_gr(4n9Nz3;a@DR^ zL%RfYdZwlu7o;yca<4H9xiZQk^pNGaD6KAwFsarJNi->1Dna)8rji?Ob9I{XFTK8!pj-hQZH)Fj;)K58iL3M|E zQG5FdC*#=#V^V2qI#+9_{0-j1`sF11T#*p7uF{#>XJ#WK-7hTi_+rS!4b$J%2;XUa z5^f{4QvN+V29(pTJS*CtuXUW$9SIWt!5g~Z^uBt2_hnXo_}`nlh~d=r@G#;R(=~hw z{@}A(-0g53T-yyYo`-Aw`D{g8QP;Gu8{w|8t)*b@Fpty_t+Vf^W9D4648lJ#_l&xE zt22l}MKy$=tBjB_d~u&+w}au+%j>#g@5~e4oObZ|wGEpujw%K=MX&@_&qzKE^6XB* z5Zn*c?M)jeKlSqqIWl+Pbu%=Me{6EuzU~ocI1wjl}j z3~*dnT;LdF7DTgX2fPVg`q*5J{-N}mk+6N}o+EC)T7IH@xCz#<`T5;91eLzzW}VWI7m?_lqHJ9Z z)xKm7FfF|_L~v5HI`){qZ=M1*t+sa%?}SszUMS;yquKrm>^&UcVh4iGFZlfoB$pLx zI9$q%_|1C5RlN_x!t42~GZWd0Y`wQB_hsXq9$IT#3#^-U&etRHJli?FL^NZHJH3IU z1p9$pv(fU)8wW-;S?xrfP0TKlL$mqS(qEM_s85_pKwXr=WIv`_lj)9sQS!0h@GHkD zYONf`{2{tujqri*3=Q85yEw^P^B@^HYw0txVayRP6nygw6cuXU^j;!;BOB|uH_}Pp zi{JzvY71wchai_wHP)*mUA zyEE(i*hEx}9c!D3c9lLO*?bu+R{Lki1r8rlN}E4Y5P7;py2WKlwcgo^A%PP z1C7%AJgblO=EtWZ7+R~2B%*oh@^+41-iIr+FozG1lQ%?ksF4&({J_U!uo$ADS_ckX zPw(Zn@9wY?qpG!IewawYt)ehRA6eDiI<*8!ik7n%9b!tcPu|_ZUzaZ^=FP0XRb2T_ zHjTzm$dDi9xzny(QqgkoT(A&Rr|i<}i~VeS7YUcpo}tITpB>ZF=BL-RN*C%gY3a#} z)lylzp64=HKF`bd!-tIZOPnrwe>lridRBX+*LL5`e2ChZRp*PcD~R1%rE>X2$|n6w zAYCW6{>P~*rN-xe{V12G7M7OIk4t~nyo%T^tZ)CL`@M?EY5Jjtjv7PMLR^kQa>rC5 z{wzh8f~=Yh)BYJFhq}+Bc|Gddo66)U_xO~keN5sG1K$h*&U=?Kt&X(zw0KDhG(&%H zontFKi%uK=b2L`ltZ=;QM!V@;x9vo7>7F;gjNsk6_k7DEo0ZvTosph1x(P)E^|RtE zR<&?2ThU1bl-deOVGUk0`uJNsTrMTFYhzD`;5@V9gXVGnU(vb z8VA8u&RN+D^B-v2pL|y7smL6zPZMYdrxKP}P1}KE*AOP1!txn3UH8cZ4yt9dADxsf z28xEpXuJ#0?XU>R7nS69o!^(vraZ8(+z6I@P5++hs7<4EVK$8Bm5P!hZC)VNmxH}d z?hoM#cdm)1G7jJHS|Hpoz36MofUK_%+~b-QX}#M*>g&d{{>+#U9%6ahLm&PPJo(<> z9RJ~}@wsa1h!4R9^$bBa`oM{&<%AyH!xc1;+_*Hqr#cjk`q~fhQ#X31OMv-PC+^a` znu1R5q4i3|(AObli{pm_HZO0Pj+1AM4EUiqe>uk6>zOis{N77^e`Ugsb3xvW8PmGp zCrW1{+hoEK`y2T?VWY6L_8BeG(X}+8#G`;VlfhxOGU1}~!M)HT>Ya=GPA|j?250>b z%Kd%9^;}2Iq;3y$=+yja>tH!M6yNzyOdLquq#64fw=&X8aZdMghOD?FBTu9cw&0_ybg-&Yx~Et253I!cj%lVkFhZsEZ<*s zeoBh|<0;Xiwdz8hj^gvuv!O>?IrBkum0&AbnGX_+$zNojF<_PJz4-ac^bsUnzkjY% z=?PjBOu=D%qFq)Q0qwaTg=}42UB#Ooy^MiFDw7^YrebqFW-sG~!kZ;YtI@(jajy0L zz}hFi#Z@Ft;v`Ur!OuECsbX!XUxSvHkz0VHUHYu;i^6?Un0|B6!ePg}E=%ee zls-ACXf2?Vu(|kC!s}}=Z-9_2Ihw!Fk~tSBO&<$Nee&$PC{C(yvcn{QH}Cm4Io}=} ziB#xR`yhiDcjQ)=&g9CBKCg7)_b#nDg$_P9`2*$2(PV;;PPv30peFA0T}>yT-({5j z#qMN$kuKPAQmc|wh)fUh=0s%v(>|^IFWM&%Sji(AsK5V$Mp|crQbiGz;#>R*2#gEo zJgkqE(xUO`Yb^HuD$zl_S3FI-+Q9>eBIo>cs+y!#$ z{|M4*Q@^9q{=)_i4BLPnnDo9OALxRnPnJXw{}gDCPF+A5_@7fv_8|gLO#jamqE@?` zxj-AYSYnHRl@oXW1`_-Vrj{iZ>BER7^szzE8!dx>;DRjCUyBGL>8hD2tU@xT= z5)zsdirgRQ0?*%H8Cr1<<0S8M;E&B`VP{+d#2zr~98sq^Sk@`EEa9*+>ldJ!iZO#@ zWvu&BbN@>1wv!xV@x(fS@10oz2_aZw*LpTG_Mqiq3*{ljhWuIukLd|{N?c=52t zRv+#Hq&CPgM@hRlJD<1=f_q0Q*ZWrqz)b(HqKdJ2=n(X;;FH>cJf3-I#t8Zh&ae{~ zz{Pu)5!c4wTW>-1C*2bk$#eY)PM<6C_V#6e(+plm-#DY}e){K!2q>;VKn1eQziK}D zyNa^QxwJNJpvJPBZa#gP`p_AkAWW?e#1IK4K>~3^OGhUwLoY>v7{$*rT-GEb= zMLvvvOBpjSX#cNxFu~J0`rqI3fBF>D|G5$`gzSL(=?I3=q{KvQZ0xo5MPa_B@4YdQ z6Y*d6)x;+tDgE#BB(R-a;gC`wq|&ppqP_QA-ymOKz|1QoSRYO{MH>R+khoO}kk6Os zO^5#{VTbW1JsCJ6U&G1;^g$4fJzVcxp9>uL2h0OFN3*>;beKSaiiT4J=SnM6z1Fa| z{|&DW2#VyT5~YP;7NnE6xNsb7dwD?B+uIxH>!0Z&k4G`<5i!Lao+Fkd2xR5K7fvZ? zeTxeS2rmr{n}1gXbE{E;fEB0Q7pG4V+!!GKD04YNtBLv?ltcqf3=Hq08HpOHs&)<$W75*&3OW?&+jYaH}pxo0i zOB#~J&@2Zd5s0=J3Vw#0eaw3T(gC>keC@yzxn~7$V|ScGCDlS0dy{ld)ngbGTsS3nNtIbp!F0QF{kiwf+PI)RDyA6#T))F!K2`Qa~VH zhc*wsd=dY%6QJ$9TvWC|G*JO}pX8>~916NOlEMQS;R36X9A&K!GQa~51*mCTw+9%Q zdO+>rw**QKHh`MV=z}YgI01s(fKS|4{|gI14g-PF``O@O^K2+3JZ^hHs3GTV!N)D+ zb&bI_vzkpqQJex#Jb2cdHzq3Qfkj$Q+JKMU7%fSfZ$4i|&cJ|}QOIOye3>=@I#5Wg zOhW7H?l$H5cjiTKF%?wCs8;#!ITapcEExW5icZG4T1$()`*(FpN=kfxPq$37;anHC z^@MyPf;H+tFRP%s!Eqg82Bu)^h<#%Kw10??l%oY?RTDRk{}Z0*{tG$;a^qE>g^1yJStvkM zbCbu%f5-Y#Y#YLTvBO{vq}&u|k=rvxED0UE># zWRNP-k;mSUjC4(dN-)=fs8U1W;H?*oaFP)rpD3K0F(sD{@wNQBLxASMdo}`AB{4Y$5`7rhro;PD!QK#fJ_Sd6x~IRD9ZA6dlg?LT7ToDCpmW3P&IX!TAVGQ|rP}3GfpkJ;=!vgwS( z5vGDJ(7+Vib5*dGVATTbZZb6ll-l|?XV(s}P95bO#I4V{UQt4!d}$M?lVpgm)Xb6fj7{3FYF}HEX_}EsR58C#n2bd6W4PT%9qj zvqxaQD7KxMKK}koo&h}A*tJ(3YI_F<{XyOcWd>xzpCMj9It5yO64_HA8`6AE_r?XT z*n}Ll-GpZaf7=4u+0Wf7?_#HPL+j|m(3*kW;s+e|NqR%n(F8RI#!;D-iKpLAA|@+;TGOIMHpTb)yU=3) zAbN07#_#L;T<8z;kY97v0C@Qhr11sWRn%jhxw64mjO+RY%l+?%P8R+E+MN2&6i3l0 z?QKMkma@iPGzaaqKH2N#f#LiT+t%2Bk8v=JC8oS^A$J zPy5dVU^G5xh(i1R$&d;b*Dw_dN@WtKi;gPMRAM929VDb9sy6V!#Rht5Y70evjAaFK zW9X!b+1W-%K6#aB32b`IkSSVF&#Wg3YJ<+1$~<1-KcJwZ<&$rY7QELt%&V5dDF&|0 zVd87jXU7-7eK`spxUWxrM5UDG>nOy5jOAu#QcA2xDne+s&t@=87j})Cedz*RZVIw7 zd&Z!)g1&5Sd|)4UvUO{vg29>rMHSTux_1j7j4UW#&Vjs26+ouHNGeADyyB@AfB$>; zQao05Y&=2I2VFku!1`ArI02H9c0f1&eG>lSAnEk*L~yxZaU1x(8{4W#b8~v~?(cvD zPf!$Vsrf3+#kTJapjo7*+nnfUCgioV*Jxiu}j2ijgt8=~q>0IIqj z67IF%@?J<#A`tgXvwhTu5m0SFsfM~3(e>VI0_P)9y%jAyoZ-L_M-@Yb>8bLzpM=_q zMTWX0sZ{jX5y`!im-paTwIFI7#+Xtg&7bw1u+AJIc&mj(L_=0wT8JH0B8`Kft01eu zx%FZim4_2jGrjo*1h%e(U$;1LoqVk;_i?kd=q9{#h(PF1@oJa?%v7FlqD^ZbBs7a==NTRmmHc5sNqNW^IZIVzCp=fo| z>VU~0mGdfxp>@BitG!oO`=5R7zsxnRneUtLd%yR6p69*q--Ej$Iy0Bs9GOrFwhX0+ zXdcA)VkXDtIRnFT^U!)3y1labbXNp9n#Y18Zy40cpo*FXM+D=ucy;VM96=Z1HOu-BNge)!hq#) zWb{EqgUQ5v>mcgLsCH@*z6Z+jRZ32kO4E(Rru(c2E7bWkHpd7NXfeMb?~)cw?sHut(xTkAx?JoB3#G_aT5$Vn-&*+N`A8s0&!Q@ z(2iG zZ}@8}6;)paafwRV9$+^ba4$Fpbp?_2F=}rMVWP&U znUz5>4MkS60=gWAK&F&HeTUXWX#}+anjPtYvVmB^k~AUC780#}1rz%kjIzdbvs7B> z*nMuM%f-g24UB+(pFI_$ozNbC=y9pEtZwUtM(w%;+4Wx|Xd5;iZe9g5icu)Y>SiM& zRzR)9qn?ta30y}^w9V$pCX@!!_v*uToR825T?38}oCSA{xtKzM z$N0D&T9dU=xXb|LZz#e;g7)Dm#!(G%CfJ=kr89&M?&B0XT)a&rOW`8Uf??hhbrfB6 z&Ld?3)Hn^j5yl-hhaB=w7Xra#0DAJaVw52wm7gDj(U+tN%}vMs0=shB#@dxIaTW$+ zB2x^MGK>g@6LT^eLA?2aH=DqGAO|N%F}suK9hr@aJd$tMU$@7sC_-MuM6-vaCVZ4Q zdOLDQ2*e!u)s_k-+0T3c!iP>de6Z#Q`uZA=E`qchCA)y!#r1}MEh~F{+N#31p_5lu z3=nZ%;LBSvOwy?I90%gEEokQUVxj}e%K?d|G?U~eKw5EcQw#&1{i7u%^c8Y?(R1wp z&1)Wrdx(e!?xmd$%}emGF`kVVj+pLk`(@*MH6eRXcePw)=>1*W>kb*+1s!B- zpNs+~A>Y~DaIiH~82C9g#b5{V(c$RTca5OZo`hJTv$HcD?I%o3Qm+t)mX!5kyQ68V z)Ory5Lagrwjv;aprGb;2V_PuA8A9I&ZA;=Pz)dx)RHtJJ1o= z1cM5JzE}}zzF1q&=L2I$dMHlnW0HvQW!07@zPxs=e8a!40BMDJ0NFbF2M7r5vssg@ ztwxI69L)YGFBIjzs?JW3+!H?>BdwVO{N3;z4Bod%bDcf?m)hFc6u&>#-`D$gDd{ysX1S>2pj_4vT2W&|^s8=1v5AZ+ ztTODIPWIiXU_fIF%ct@p8m;ww_(x-F=FV~o)AoYIS6x=bdO7Dn-hm_hn%Q#;+b}P%~g?nt)s+?swoR%tPJ1i|^361JUUTq_FV7Bg& z)*I)wU2}QnYbknq1(4CxU#+vXCAeU+I%qrq)Tc#D6_3Ur6)t(nMUGBq0zqEN_J*{R zlUR(vu*1tt&kj@Zh?aoLN7+q-EgZ{{&@ANHXLtQF##KHDH&&8OwA?0SlMEbMTt<;| z6q9O7PEqajLsX|Q-dNSj*yWisDH}^plRBV4)Z&r*L%vpOw{32~W)r88+jZOf7Z~g> zA+;{MPCQm#mvyJ1yDoR1*;!dMcKYWYp^=jVPa!n3&j;$l>_;$4{M_ojg_p>Iw{qYLZnxd8+oN zBB-)nU3BdQj!phS9(=QP=k2Y^ZwiCdsfV6Uosfj^Wk91zf9Ti=Blam?a@q0H_w_Vc zN>!Vmh{*I#Yby&!35%Y?r+b1HkwZlBrGKn$;nMc;PS=NZENDu!Fs9Z7uWVLc62}}! zE?I8XVw7H8bmh8jcZj-=O>1?@HHsKV`Aw;_mvFHoO)_ zUM;^{aE!5J9`~x8TgITnWq&=!WUzQFW3j0Rg>R~`>&}i0X4Pu#x9=`6g@eYG?Yad+ zD!qfzOxDCLi>6AY(@}oVyMN--}CZ0KhJ(nYl@b~+f<7;Y_AZ<3cpVW!O-%Bxm257>}+M%roiH@w=PTRxriy>ohbV0B83duFG6*R@@l5@&`~_5`tR#@zKE ziT^~gO`O-^-OX-a{(7snzgZ;8K{K{k)&A;tO1^=(V z4^b@Zj50WJO;r)JI#n6tk7rwYZ&Ygje->NMU~=zQ&d#o%dHv8VUDvEG4EDeNpNA4(qs)#uAtt)m9x%}e>J~<-;NoQsshEF6vT9sf^cd8E zI!pKi+6>lNv%e4jLy6~fVa{F|)h3>k`2X}XONRS}G-QC@SOK^90cY?e2;yd@e*YEZn zqkD`#e{B*rRlBOzn)7FK2Y!_nMSy(|`|8yz1aUDTxmT~=+`M}A`Ud(9_@DB8M9NpM zkY9-l@hdndA2vfJV@@?cd&Mrjb)+14GcfK(FPEJU4ND>1^`?7SlIB!I?}(nYZ%E4W zG}n3J3v*wHUneG95D8H}QTlkc*%ZqCd(f|D!v zigjM?jvM1+c9DYfI_8k7y64_jQjK}yoMw|w}_uRRm7sEZ=fC%OI zPCHN3a)SNgO~u{c{T|Ea^oh4VQ1F^HwsWFsp7v*(;>wJX(&SUtpUvw@cvjHKeUSwM z#H1UE1dJZLFCRvnpPvMkud)@a3y3mE!Li*Tyg!#VjTd<24XP&O zC#OAJ%Ut2l?)0Zh7*W-qx$(k^3W!1z``)}0Cyy#W%8TmHlF#ee;x;v!)@<}F;Uu>v zl#ARPdpV(iker;{)P!P~0*4$TH;&u&->p_o)?^zKqwz?pYTh2j69N(NHX)VoxLIcj z=_^mZF;qr{WR3dDZ4sg`=jin>EH&*fh}Me zI+NbXaA51l2Q5{ie_hzx?Un6DVs?=CaQg72)1Oj!XK+1ul{3ii$My{ z4c!*gvjib;^TauVgKORn?*4^rWA@qc;0(T!F3iFAAYqIzTM1ubQdWgkz{fy74XiH2 zP`>aL+7(-W`L}`pF>aA{5IH3$=Ypa>$p>jwRn^P=DVw%AJ!tyHz%!sVYP5+_?bJ8H#3^aIZPZ=NaH zL7Z+brlwS_eSLku&1Sa6*}!`Rq6zY3(w6J($Xh>}efk}7#St(~iFB8dxesx^mF}=V zSwI@|^7x`T;%5#I52K@_nFuISXXz6McroNiZdh5FnB>=}z=1M@|MVIf7^K{Oe42*M zaG)xu_f@0+*Pl|x&);1h+@t2To1_Gh+aIPH>g!YJegH>JhKP)cDpD@f44( zNg^k1Z6V)S5iF%WG$zN(g(V9<91rTHaBQhuC}c-OJl^M9_JU>6$^LUUCM56>iFlW) z-5wdk3N|2!Eh`=zM|O;1L+wXPEhAN`nGn^>LSeg(7wy?Qw|zOBFM-xY-I-KZYID;= zcxvi$oy`UtOeh|ErNICu7N(rMd=kNKk@Wccdq>mSZl8C@SO9W9P$i6YV2fydKD7b_6(jid*@nBsM8^y+Uu z*@ItlGFnuXD8d4lMiZmwI~968`KJX(C?utj>9*yGHmKGQ%32;%F;)!@2TEm{&0#!u z6rPpRDI6N^r(G2q?N~J5PPXE-L`qHOtM`PlG%lvqth#tt)A@bC!)m=*|CJ*d*I?I$ zp{(8}ztH4Tb^fkB==_F)SbaY7gQU9lDD&g}bx#AmYIW~4JRV!P*~4MgNG!e9(J-1+ zA~Oz)dHgf^eD$n=KW8_BkVq%*8yUh9pU$*TI^LYMC#Iz7l&XZDHyLOG(NyFzsX|-Y zZzG4-*BxotTknW}aB*=N7S#2z>!&-7ExrQ#c;9s_ zS6VzWVvzzTawM^K*trn#*#0;W<1n~=J3U%zv?KRu^xo0#4JRhE+d?|~+22-=`hgQ% zJ%-9VDwph>91YvP4_qqhM6biVHbPkCO6zz_xyH)0cz3w#QaGLD=r=bv>vVrW9BwCB zIc~Y7`x^|z5-*N9avg-=vT_g$?a5ZOz)H0J&@v{Okl>e#HMxt-M>fZ(fbcwD3Stn1 z&?#XxpXEDWiuumE;(q?n{V_=D&(2h-2B#;Ca`W}Fn~Zx8Fz2 z?KQ6Bw@*~c64tV({yw_YGE@QC6c@NzE{Uep4>d~xLz_!;O{U0;<DjM3EN*ps?tkTiXc~s{E=^P9lbt*K7 zX}h+`QYgp@Q%8}s79(%nXE9&RA8IXFNBh>`sU41flhv6G!fmeJ&Iq%Pgf4lh-VK}} z@wq9PoS}~ei_`1rfq>gJUNp~arquU#doW?+`gpCOw0`?NL9+(>bx^U0hC-fnitFY6 z7B3~9Z<^PWi@v4L3SnA?pg)WG>?i@l>tadzX8Wl^MZ9T@SE5Iw89v8x>#NS9)1?{% zj4m7O^LJ|<{u@T%qMiCW9A-3(@RRF#lLO*E-nJ2T`xuIz6UVGa<@{0iyxqcEqzj5C z^~~yvA}1{&3G49C6FoCez!D%Mf>|3Y&}ekzGve%%sF+HnXA7~c-@+s@P#En+r!pRd zakxuyTHbRr&hJzaXPTV+eqJ4slf5r07~gM`>d{5CmPQE5MUG8s&7aP@R1CWPs|72o zg_@E%=>uV*M8l!PCF>3Z&-W{Be{A_9;uaUx7x49dQU)ao66mp*jFTOF9Yi7N8LEcZ zcGF<94HqrGUO0*k{)S!nM$Nd{-MUx9VMBYkGl(g>l;gW#xTghCW=xN zaZ{OoW{MnLP+WXR9++Pr%aCpB)EL-(?y<>9kFT$|>ZL)#b01CTM=x|oG7zn556mt< z*y14_yD{)kXrsH0+6pEW2~K}yM~5izKD0Z@0TdvS=GLp|Q%MtVE@ISJq0?PR8FMW? z3|w?R{VzR#Zh!o+*L)kIljWHEP897MHKwotxAccl+O}qtdeYBq7Ag-65gPq}H}Dt9 zC-=TV55D3EjNa%DS!nU#RKkIR5$#~$dq1uhIb>~1p$?b)K5Dep%j^DPreU%PlzC-! z8{vUi+KP$ergQ0JxK0E<$wbNBb^dN>KjhT(F1!SB)mt%YIbDA?=Slvv=2D6}$ixjc zF~`62!sRdP2S4a+Yr>e?lmgsHv?af9Q zJC-AU8H@ye94b$IZ&>xlN*YCX7~#k<1QOSuyOKX2RV^RnV2pfm{~83bO7 z4rdDg0*mIe)pC>DadR9qy0YCNsFouuDMj7#!l`gU-(nv6&c1%pmq}pkD)oaOeYLs| zdgRZ637J0m?Y4^4N{#H}ZC~UJVq#zEh-yg~KWPQQl|N4jqo7k3D2}r6x@&RU`eMFx zXp^ctZWn}on^wZW6@{)hbF~7q*qd)LXIviXWZ8!gJ`UEGE4DOsP!Z7};&W_z?GI9Z zQto`8JTpr>&c=|OBBqV+jsK~|GGd}g0Hd07D=|6TVZKqt*4W@8n)o+xYGNd7oXb6Y~bdnMKB3@py-y>p5 zV&3!rUO}$4q@HY&l`>82g~s3c{DpJ~hW36|UZ_+^AYnA{utTR=|3NZ!f6YqRBm#lg zSs|FSLtM-A)*$h)my!(8asCTw&1TJlWd}CaWc0{2DlAFi#JipgH;1~awQP!st~5Vb z{0XnO9yrP!q^2LXpkjQo+Mm=bbo~%WeZ@uSIm%>W&NI3ELSb;GP_XSnM=OX>mU%cG zva@U;a|l}h8{yBQvd#_=#=-vU#F>a`4oQK`s|sE z57$siVJ#*6goA_JX`G-Dd}nz(n80M1y@5B);evh<>*iCI6kSQ7fkxS$oKv5 z6ztJ-n}{O~qr?Q>!F=D&$OmxsQ(EfvLbxd$@GwjC*5<`VAB{UvT}}OvG2(oYITU_* zdW{nWY9z=Sr|tGaMs$CU>>Vlhv9HXncOUvZb9493=f_(1R>*5R;cU>BzVXaYM2O&% zR*!9fhTC1>)7YDKL#qV~u5R7;kNdeg{FtFraXJ_B(y#ZTa;?Gcg&Uv4WzPoxV0{y{;p>9MCJqKjsL50;!mgE^PDj=J$YQ}xLoMi}-J&(58U|Oz1FnOBz}9~t=ArLl zC9n=>X3{Pl{DdJKgZ~*KA7Mfl$2uqI+2$DF?UVg`QSwZr#B0p%&@JSag@@{><8n4J|!b?(k2ENjLE zVf0PlvHe|v^n#bUYPmmZe15twk%u#*ULO3`H5>2Ctp^ygLa6g_At^ie7yQZ}OjqiB5Ib~)S z{$|L|+IU{oAG`Is;#@%*=mq9;RuoAc=>V|U{_oU(K zoX*#*&S?i*VQJ3B_=Lk6^WsMcBsQU2X9aiYuOJU?Ka{O^w*Fa${-46Ug-_oQo*f`H zChw%3a4y?w0PI_1q_9h_k@H41`OO~}`ql^ARBog>gqS8CC%@rFrIHv2MfDV)U^ zAj6k*BIize7F{6K^>uND&()M#u?= z2`N@tttgzL02IDcsB%gIqv7PW@w$`w-)0kX@%cyYY~&m-Box55!sub?^|{4bHRrG~9(}V58y!fzG$P8o-q2_IakOeb zJNe(8Qn+0m_EnwaO|H@jUy-a+s%>usN7MR3vj(n@*=YX#q77XyxPW-=oC*auYp7IN zKo<4$E)504H5?G4mu0lAS!t4&-`F?4VAYD>>J#d<*((!!_UKMYg%tHss_$m~q?XON8didLV3xq)P?!dVCg`Ub%Fn=e zWR1b~5gjQkcyTzD+wEwvp6=BL$_^fAEcGx)a>`5=-&3Ge^d+Sk-d*fHowwU4j=ETQ z6!5AntHYMFoAjn4SZil}6)}-;>tF0(eC*|emQ580K=#HqKnp`eM2Cv5prGIzG}RH~ z-={;t^BEetZDQ$KCEQ-Z59rwk)IHe`+Cg7=-{z24hDSv3E0m(+J`Uqr2b=?5$~qpP zR3Nu?)Oc*Dvshz)kFNDzP8@1XKw|lu zTV1%*Mvl|WOxZ)+Od`Ul9XP8x2jVa^St{}CwMT-ZhadB^8?s;D_=+W$bmfZ4V8-C& zog<8~Dj>@6Q;7x$ef-cX=DJOX$g{19lS7YD+XM{-XnP0Vbb=$Gg61ETSl{~bn)kK9|^3&H!0%UA`{6FDqloU?*`TIFMl1nQ| z`2RH5n$Iz2npYE>i`WQ=y?~YQwLpY7F5nzF#B#LPrJ?qQlE!*$6kcwt&j8cd<9&H|$`L zto8Vn*oa<6d@TFm<@XfH(M0k_F}32{MG6J$|0r%eVp395*{LtTMcyHV!T(1f!~9Rb zN3KRgRT^+B0DiWdB6RKFMo*=3M#Ii!gqK453T_&%0 z#LoSU62~K&1isnX5(u~~Wg47~hC}m*t|zN4i;I8R*$;l%hueJt;wtDyc~VK;wm>^2 z@VJl-S_PYB2b?llHb)``P=s2MkoPoMwy7RhD$0n)Go|>s`j2;)S4LnfCNi5aS}k)a z)2RM7{jA#=FqFjFdfJU!+KHZ+&_mz`PyHu_3#!m&rc^_%#+=>dOdlMvvU2};t|Lf8 zTwEN1%bewmjVMyg4iuW~s=7CZ^sK{Wp3r%sddsB~}6$`VcN*2;(vto;s z>E|1r;;6mI$jP(Jfm&rC(9@4YodSee-qN~tSOvsf%brmD_%F(cbq{9)ZkPMQ7^VVw zCKI_pWnyB?nHA_UU5$>G`xMR3s5j+_SN~PDSgn?hm6es0)b3>UAc@7I>uoB#o$Epk zt$c3qN`nKbW$M-61*}2`Dr8EwVpu7CRZ6jbMk&Hk9Qk_NnBkQB>|CY5C52{JkvwUS z?ZMm4&Op7=WZ6E53_ULb9`|?_$ig`oVxikCM~mdGqpA^}BqpO!YC>d}z=tZ(+ROXs)1Z3usde5(qhy?)x-DBVb^*sQ&_9+mG!Z;FG;yEVLJPZcDnlKhoC>=>DPmq zvM|iHWB;?I8VfaP>CnFd@lj{|qptUkBnIqc0URHH3j$J1`5~HY{Dyq}`*0K|ST$VE zCqzd47dMSY1_rV}9gi0Kk`^lsBvoa>ts#9 zW)`Sw$YoBN!V-!iIigFFewZ$fEH;jzB12#B4>+Up(*kd*z5*KOO|OtqY@-?X%C^q! z+OjGDFRDNG^Mg3;dk5&zTQF0if20yE`;p!yKNgjb3 z*azdlb5J5KV=z3l)~$=5_}NT^F|@lmh(m*4q%i$3g0NUH_0}!eJxVioQ8p8GJaPL^40&KEtphszYoiVNeEhnN! zsNez#dvSHzhZFBLnoTd ziKK%+yzXl>PoUIo4<*TmIsBcUS}_>U7RSD6@wgW$RcUgrIA`wvJ);TQ)k3d)76y>^ z6cL4YSISAZn-$@nx8zEykyjX8X zY5}{x2hM!HP-+vbz|T%L9MIHwx1Yq}bR_#VF@>`>+)bG3{|`@_fRer zh1xhB7>{?Ev#=i$Q@n3Zdk7~g`59Midhmy-)0Obc@AJ|;?|>!HZ5U{mVLK`^iJ$EK zc@l9OD${w%alxXg*8{nPlk?8Zw>MES$@m^3+~ULR_zs+kth&1ZOjm9Iz2q)Z zl5Pz(9BXnd*H&HoMa4=<`Y?9kHf z`A*WLpu07ixjZr{#;?Ha!^598m&x|PG(-2(#HL^YY_fqYCK$?AK}k!@5Z=IgV^Z9Kzk%H zAyD}4Eb$N%uW2ex)h*T<;NnWck8{J=Yf5|J|0wQf==t^lNr*b4JhT9B`fEWVY{e6V z-*~l&yk`Uxo)qc7wEzQ8ghBpdN#vxHU!)Sf;`*P}vOTA#<^ZhYs?V5A5LZuAqt853F(j6 zMXjdvGqYdI($Z3a@!~f<&7fKbwZ~41lgNiETN51<&4I?_7EY?y!`N8Cy~{nF*-LXH zC?))8Q>+QRCb_`GrO>lhWh;}o`0(q;bz)&yN%bp>5aBG63g;*t4}(w7Pw$@v6?|sD zf{kJAjJ2_0WEWL?Zq0C8E6JxU?74hk#0d?Vhiu_|n&iAXkcZmc*wOFp82Fe@79_@` zpE!8e2FWZ}5kERtK}s%tVS0U3))<>q2M?u##=(`EoQx3i{&#Sc;Xted@R5U}{%Dru zSD@+Ma|pNmxUxKn{I*y~L=jiv*D_j}dW=I_(VsI44+p$?$y$xmdzZiSm%qu8k*HGDo_|U7qx}s7om=&d zfI@UCrF`yS^-K83hm}K@rQVhY-ZOsC{5q&dS&j$`OOPaMutaK+QYl0g+t@SSFcS}{0cG3Y`b z>x2<#d3DvgUYhP;JpM#@9?|JN=rsGJ{pZy^&!{8)^4DI>>Ril|0dD^okeRTtOuu9N zEZEeoCH~il@Ho1Oc8BC0#6^d=Lf(zEx-WU3`-0~Vs+Te0{X};c0G%OPta7+WgglEp z!L~+Q@4e=g7zr0OAoX*tR$2fg`^^h}XO3m*;HF?GAqK7zX^dKKd;19Q^M1nK1i8gx z-BoAc20MF_;YjLLJ6x+utLNu4I(@>wKkZcXd&y}<3L!A0=RkWY+{3`9W;ITt z4w#@;t&cS!N&a)5t3RN4?hmW>Ci2t>*F*_DqDg1PJcbVlE!G2zm%W}J@i`qk5d?FB z$f)FaV}P?}cZ+wvu<~>TE}*2f>YNA7Mhgn9B?3p8F-RwyWDN(UW4>Ic1K_K(6|Iq! z>^8gy!KxquXl{;o-XF=09{Xe9TJB7@*SnaMisMJp+VYSycF`=BYOM&%&}34y%RQjA z*EZd!Ajb9AI|G}7s!>lAGi}8lp6-v;kQjGd)UoK)d*1|QgNN5-)znaY5w_~}ZFoU0 zpRZ#4FwR6;XfpVki-`#>j+BAsU|o5#U<}YGY+#i)0a66{^D9hUg)F;o(6Yz1hF9mL zcYsyAMbVT$UI=Um$1QL>vm?124`3`oQaRKgb3vcwN-z0?r zK20a>aK%Cd4uDD5P*4VXdpw->IMPwMZ;t(dfU2yjD(I-V6E?MuOcRg#sPm@x%g%7h z7&FbpC@>&P&Rcv#`h($!By`bk%+_%W1lDqOetz`~5YW|RfkyU~*{VAU309{f;-`4s zR2!jj6euXmA-fJ}Wl$?;*YLZppa(}H)Fy9cbnB?@VUu<#Z6`;X{1uy)ZxcV1qC-aY z+^-u~wgfTZrlG)C1$uD5ZYTTVIrQ6o8LAy`RU7jU2`)~DGV`93AuVtD zSK`b3B-mEIRKi`QN>a!f>GS#@{+iBMzf`M_5Do4Ba!QdAK?Q?hqrYkWvs5C~&*b?m zt~K61-9}qa?QO#2X1QoGq#M`Sl6`vz28!mqPRGwvIqvI4yBgrd^EAP*Z07>pVE6WK zZDrCRo(FQ?6LaRKaPj<~q{!n>oe_aA+%ct_r|VW33_i<}frXpX4M0Q#BKh5W z(%gu(kY$8`u(sZWOGy(N5|Lz&iFJKmdtO8sIWQ%3_4?FJBL*Lm^OW0`Zu9T z1fW>_lST^|CHW7%X4aR2!;&#mQc|j@sQ81zX1)4d68pc46ztsG%>dad7AZMokaih9 z!3&&38$`E=O(=f+plCW<4*Jd#fcGGg4Gmwm>xdo+5gPn+$HiQN!QbSMf zhZQ~F&U<*DP!iUIhQTuh(Fj{WMI>UV3=F1Ls{An;BO@cEx_;~vP1_c7D+HrB+k|H3s`{CZA1m7 zXums3yf6@|-OA>s&i;Ln>uxs-(BCt^Py_nVng9sb|5J1L{6A<8P)$EDywUNL{5~?4 zppzLSXY#@)_w!7`RkPTTmSbCrMJA+pKOM;=9EL8k; zGBljRsllEV2_?`I6R#e|V!?q(=qYKs|D2#f|8D%^YJo73!(ly{eFC7O`E2nhHYjl^ zDPcY08jy%7q|lmDB)AX+#q;mN^`P<=c5gZ&KAn2?E*ut?1n)@jx^zZQRG^RLM6MKw z1^oIV_$Jc8$Y_H%`*XR)LQR%v*!;(!YUFSfM!GcRR*#d1NC6m35ZD0 zJG~Hc_U}KNcD}woob!<%<4pvM-L9N@(g6ntWEzi#`uf-bf7_h)HkCB(<#5<9AJmN4 z3rroYTx#)Xd=&p3xU{ueytWFdo;e)KXR_4rSu{7(@kfDHE02-U8rYIR!yrRaxWwa< z&T1Ged$o?0B+z66B83(0esF7aD6XVTWGuLC%^!+@=COI6?%yi;cm6l{h!WD} zlwc``rXlFJ0bXl1*;@yQr$@|&k1o!q)k1(^K*A?9c`{$N!_T`MCZ$ku0xU;DUa1t0 zOL0)iBiKwV8~?IQ_5oFn!+v+QOugE83^Y0Y0rW<|H05?5OPYuQr`&tEJy#)M)Q3L$ zI_?ChcTJ@s;NIw`fP3FHmK&a~chw9A{zSkvTo&V;-%0c00g^6QbX!T_>B@HrzvGOh z)8No)hg1udSIhLYY`&asYHC_}e!6~|2E=R8c_So0%_z+ymKO>hd$h_(#)~>|1xOCy z*370+|-K)$;okNn^~xCMlQ+RhU0mYa3B#6*Q9La&EYaF_HZdPcjPzcZi0#zAKY4_LZLHp_h?Cy3j`E@XO5*Bj!0-A53OPgBg6U z@T<>MmArP*7H$hQZe+4RUYw6n6I;`#_dDI5h0_6=D8J|y9-Fl`h!)it0;ww&HA0$w zJ2<)o;8ehH!(u=T?|8Bx3iJS5_?Xm!WDr!7N@k0ANANMZ0dD3ub#V>z%;#bAm4^;M zG<#pn#GAh}WrXwI5OOdRjGf(4*mL?U@jeq2!duo~R5R?h2gNU;a8N3^wR$63to;_6fV~V3W%>OP>R(MKB_fa& zihFu3%gz=XZoK`tKanQ`l+<Nj*cB{Cf3b5!88VJ&`F}?FI;=0i=s*JDF}m_ z=Vlc`Eq4qs7>yvxtw60HHYtB)O&7n&9;NDmjWFKfgjhR^JM34f|IXiV^EAume*qbJR^L*fszP#o7jlNb3=4pZnM$dxzW3v6Q>!(^pPrUvD#_HBhC+p$?&C)8uNsr z<%LDO9bjZS=BCi^o<@E>;N^-8=Cb?Y1{wI37Nu3{HeWo2;$3 z2v%ht>i*X;`Lu5Xlvyh!(fbaU>@*X$Lo&PcyyQm52Jk|DB3e-<(KOR{4{Zs0gH4Nh ze83NSDO5cDYqa}65J;n+vSRNCJ8Cdh)kutyIc{jf*@{JpD_~yx+Un+bbOdi*9f&OA z_QKhfCb99^-F&9i#4(*@vq@NQ+gsluBT_G3c^y!Wu9RNc6NpA$Cm9cM&>z^cHePIH z^x$|Ht8;Lnd}jdB|;ZvygWo1os|~uX*ZBx1J}nQXQXk}-G0#<7`z zQBP+d6;$y>I*8qohhhPgMi`xf73s9-y!D1|SRc*2x+v#FTS#iH#bPWL{ejSFOBeXCR%N@K4lf!`NO7!`Ll)5z# zcYk2BLvU&RveznP8c`S~xXU9zy6i1OG!Ruu?7^oOYW(Ii)7d}_LO1h}KQ5hw5I_~2 zD1)h(0GZpGkuewo6zE^D1XIN-6EQ4)+hjy@b90dK<_QC$e{Ezy!)Zeh+9JxEJG$9vTn$isZ1El+n^WsOI`G;bZVyZt}Ob5sPXq~HH0&qr6YQpM_ZCsmOL z9tZk8zy7w?*5Q%*Pts7~^}FD2KYp(EH@<*>&rC7h190UQRPZ%WvR}4y5yUA&xwPmi?izdavacS45NyzYGeP+it3h9^V% zZWlevV&B^mhJTJHvrDr+aF3a2a?fba|kh#n!PoY@?I%#=ED+dJPLmGWoJuN?ZMkW98)1c%0VS$I~ST zlEQfBj-O2@1GM);SeL~DssT}N+OH{ahCm9&WkqcLz_Z{_;2PjF!3V<1K#^>N$_B!Q z-AI27^{J`8p&`%Jte%1vK(ILy_RGpebk-K^AQ=EmBF?g`KwfDgf>3Zk1Uxomk3am@ zMcPkHjEu-4z!v!MTGP6TAMn{1nNvkfMkegxOEWqpGx=+NU+%MB(nTC0_#T~Wr)8HO z7bln{A4uZC9>&^U4qZu^LfBY28&BBld8(NyY|T=0Qf`wLO2`{JyQ6XGQ+KK%S~I1}-t=77 zbk+~7Wf_<%hIcBwX45n)eU#vVVg_>`A^83Z#3(FtIp3B7DZsa-v`$Bhft|$I0KjDS zlG-JMah=r#%iXo6mN22t!vivGUQe!VLSjGq9+$N5s}Fy|p)M9hr#p_4E}Kd&!sLym zz4?kmJW3*YoljN)R{xuXL6??K*i!0BFg#%$|NTXGU$WmGPFZMlvTE$Rg-s!OOO34P z++OF~J2!yBk%LP~O-|O8HquUEWv3w=g74D8mz32{N%4B87vT--4>{?Ij)|hcX^_!^ z)`#`PzmPDmjftFz#cKkRE&!+0yZ7*i?N5*QzsNZIDadbi?Xnk)Zzy=LLWZa!D3d&l zfe>=*sQQP`+VP4uM!YPj=WJ`h!uZvYLk#lC`21>24)h3o-!WkGnV`$BNPQ@y-N0Kc zX9yj6?YEu%^Wy*JLA1&5p~nSz9}?b1q?^H;R1s|y<-MUX#`M^4r{Hu7#aqhuru zGS7fmM{H^yL1E7E%UZkiW3<^gtBnmWGH2@@Kf#NKtV7x>_UVNp<^13^_T*1*fG)xZ zayg#Rv=EKBC)5pFyf++=z!#jHYim3+aX!UvqPZN-SrFz?~ zi;D|@`D3SpkG6u)laQ&Q+vHhefQ&pV@{;8Q)EM+4I*MedVCdMTrY#AQ|<;6&iewrT=OCQgP@&_pw1pdQ1MBO=ydHvkaUBA1eOY@;~1cqwL8zvc6OnNH>_ zj!tiGMw?EV9?e$FVZ3841x&0&tu~h?^&~*zPYLkg>;TxD6$)mum5-rP1hY0{xl*`S zAKnDHjjjl}DiQE{Hi2S=2QY`n$5jeez@06C9@76V z-$S4S0>v$z{44118>o=(h|M#K{s+QE;ROt|z>B3djbt!OLo5I0sNsMPHmB90FY?37 zL=Elr-o(zhBz?%D)4y!kdfF9W-aQboS$`K8YzK8*%VjGD_^$A{EQ4MOO)%MM+-@~! zV3|nof(7|vYbq~wIw4a`PCehZJ|6_BIe>YRm)VM^wB0-~xnc#Z&O_TCe5cudv(ox^ zeivZwXW8|j#Q4`vsvF{%&ui1=rrQ@^(`f~iZ6Nk_^B<0=S=N6TKL%?$7Vu2b_gUYr zj+TBg?yh)=wUBgUGaKLJ%Z{vG1|G}j^ZEWgKfAc#Lwc8iW<-s;pfC*n3Z$6pjK@fV ztUz}-8Fju_`Wz#eki={fX(5aavP9t}(f6SCRUHEoL1AHTu+@d7wFuzL^G)?DXGLS= zuZd$ahhqGBi}K|lZuAo97`H|q-UX#1n)~LMzJ3$6@Cf*V@_&zKDOj zLKNAu_61$i#xWa}st4m|3Ik`OPBOEK%A9&MeVzc{EEmUXKQQ(OEO$q&>X>y&n;tYa z&j%oqfe0;yVDyse@0QR2+2OA*o%a^V!QE-myj&r5)}xp7fVhGYt#2=3P4IKOOKK|E z0SNdU(c>d#tDLkp1epgGw?Ci=R^yzs2jdxP-mMTx{1QB+V+RGy0KVbJ3YY`yRn1el z2UwJqI3r)bt;o__;-du5(~VvfeXs+Q_({}&AhJnBXw|)!)6>gvcI=?aDeluU0~Mt|L*nO zkfqE>1>1gc=_)%<@VEF--hW)IQuT1bMul?7<~+{zm8rAvp(MH$NWF5qKx=5U+mTi? zIgX4-NZ4zt?eZ#cR!g24^B>2Xx(AbcLVMmk>H8v(Leqng86v^hC^3xAQ$rH>uaZnx zWcci1GUQu5J+Ojbpy|MLOpk!{c2fq11yzqridDH1mbx|n1B7bWuf;_Tn`Dkfe^Btg z`O^I_7LqUlJ!=_2Tyqx61{vR?^O3L>M? zV}>SJHHt#z zGU;;N|EIyG-sot7g(<+My}Cd3i;3w#I202brX~5a87!qE^!p2hedh+Ku!kV((%tbK zN#LoVa0D3JBejSw{)|oKeTly}@pwJoucYKnQ(8Ykc{XuPJ8?^R;5H#Ok!8;{IGAO} zMSeS!MFJX7CJh5`$R+oQ*%AfM5D%{dng|L0aaC11wF7J@xGL#sMAq?HrbwaR1_B zN|p#WlgC|l2<{B9!MMncCJyH&G@aL2LFTC&3*)0xDBJ-$GFOcsT&wY9zA)(jRLZ3i zZQM5Nv%qKvdJ3Vw^+WOdT}Al-m|&E=dtnh1Yt#ZJ6;B|KJX-$a zWkxri&1M~VVj*vCj+|QEfJpps=QsT0tML>!n0y1fdVQnq%j&8Ln3@$4dAF?%0y&P5 zT-@=INtO*J0Hazpo&JOi_DJCYnka6bKkwfxZ7g%x*Joeg%|P2>GV<*A^5T9mP8|cd zu;>Ih-Pm7jFOS3i?_ZH4mVJ}MX@<|YfGlR!A5B^F04%3qJoZRk3ynqDX<$5v=yI0n zacx}!>8faBttqt^0FX>E412n!+<#Mr(@Oex>|LNH4LXoXv%6LNTMGayu{eXk6C`D= zH|4EJ-v@l5)oj8(mP}sLhb?KScuy{!{HJYVw8KTi{o|K-?WG_cFtm%E2uKwx7*W&G zz$j9E`1}i#mc#w#lR%F>3<~o)4B$!^ZYW()t*dH%Hg6+r0_Ywm+y{4_+?~a}o^SSlZ@|M$CAsL#{$dSO%hy82%EUCHE)dl3y z%Q>So;ZRSxeHyJ6JgM#v%IWo`0taK17>I7@)fhY39*U{-H)J3ayB_ogsW`v!B{9k# zr{Rc07lOq5U=7g6uvyRgu#OJM*!dl)8BgJ_M57-c%u|;&MXt0yY|*o@VxqiL2<2S( zr63fEsxFKvZWSx+%Fh1Mh2QSJ=xs>2EbtzJd_8x&t0naE$6^)4{s0O0_xHQrtog&R z5e*zJXtrBK@T6Ayi1{IaICyqy_w5u?9~ka(!a!)9iFw&?wu5$2DJd3&34|Q>&@;W9 z$4zMLPb&4gfIa}l{hQ#rF34{8rhs-Y1Hv#d3@mOgG<2n-?5+7>q2TXNpY>W`mHF9v z>Jm2@vD>3lJk1_W}4W=nH6esVON#O7kGZ z%MKa#AO(;W^xG={DU6pIF2R6v1gUTAtOB4Zz$GW-cC`nAay;Js?-Zzxb715Vs`|o) z57T_Hu0kXvxTvg!U1F=QEJh*+XgKpN9s{{j2VjC<5k$AKV9D%X?j-71fqWjQO{J>8 z3x$7Sg7r~@DtiWIvq5lp!DTrVU|1kv)kL@v2fs}G0{T$lzF<+iMg;Qgg5X-r4}iT7 z0^(ahYrY-E&_^>n{0<@(-@)j?o#?>8z)Sj(O(5CbRs?ap^*Njhd{slV;b{6ADC#~N zo91spY)lcvs=QnDE&Qvl4=V0qA@SlRzz~$vUW25n1%Q;q}pAN}J9kBp1Ofy8LN(ra- ztg6E87LSUF843g%{C_=?x8e9+j|W3&o_clyak8Rqk;lLWq;Z8-|_Pi z-n7(I&&^(x9fx9IcX@(`ta7!X{<8qHx390ludL;+ACpEmCi3j}l%dmogBySWEwO+$ z!wL9H+1SR%#%{M9g*8!!%0s<#z2T9rE7pe|_Z4mWrUwd9$(? z3JC}Nfi48Sr&LM0dNL}NNm0eOIzA;t9_~nA`2dd61f&v&>0_AZl9aKd>Rs;|T2R;H?FaF=~L-g~LE2Ga&Uz|b4f2|8O zkS19IlG5uyyEQ*7jGO#1@O4yd;I8UE*Y*I(j4 zwH-I%5e_e82tqjqCO6|{$TxjeWf!&60OB|^B06O?= z)_-ES6AvU_^rKroHIFcVYDGjhHrY>go!14tS#b0-`}f4>-Q7lmisahV)pVj!XQ%<^&?P!L-Q#P6`nH(<3AJ z{`*kD|3%wd0A<;C{i4#{-Q6XEG}2OnloBE!ASE3F(xsFjB_bsyU{ET8Al;23A|Tye z(y`a&^Stb7sz*nPV)_pXY7dGJu|8_Vxs~UZ{cDfkD6QX*KtAFThsH#Q0R$8E_ z2P=L(vs0P>k-I4IKJA5;yL&~o#|?^ks78qX1tI2ocED{g`qAFRgf`(7G^}lp4F-tW zB>;Vebp((aZFMnFdcXiHivmvLI9d1G+#LKLpkCPgU4s}t)@nc$mmyfmBP+|G(xk55 zZx)_AV;g_^|8Q@#E}L@yv!gUZK#AkEG5+gf7oHJRmu6M2IcLzltge>S^bz5ddjZD{ zLXCUXu#Lngd?2I7>og$Y3LJxop|2bI&&K{KAQ z0c#;TBjy>c7-oJm}=~o3tYnVftxXT0x(?^bhbNwB7vR=ewdKJAo zl8lA_9CS`bYdBm3Z1FORMsGlYmmRR5#=xYtI};;hGVsQIz6$^qn`xka7nC1iMMgX=z?Frr7_*kN$)9a&T~QJ(&aq^|yPs00bLA=+^vdY5j&vZ%@zM z0bDBwKVxY`Flm&-BZE_SlcOh_F}2`4dj|yoYnFeG$5aDK{R3^#Zmh3v04p^N$pN=n z3yGy1qmw$pm3H72G>6~?kvVW&D7OvrO8s?fDXSZQa-i6t&%aJaB*O=Yd~;2+My_E? z$^b_~KvKLO!;IOiWAy=XHDtbOP7vNIP(3Ea_duBOAnc4?@+ z%z+>#zu;Dkmh16eF|d1X`>+9O%KnM!N=}AtKw@w5#d8^$myYZuoK?$lfb0M+nPr0j zlpO%|pVz^j20&{9oO^?OGg{p27bpCSUS9y8+O>LDGJ`53py`C2$x!f*VWc( zt*1xI8hhiv2)R`iXIcNlfx~SV=ZV@nsQzAmYznFSLW-O~xN#X!&Hx-abgrD|I9A!4 zxqeY&)lL{#3U(*C0ASN_*r!vBtKB(*fd4CptyCHH2M}J%MzPkWg!MAGL$(d$sD(qV z_Ll~mTO-2QI@~?H<7of%>@6pWIh*>;v}|W&Xn`oiZ#rV~oq7GsDx(+UlG=ZXh}^jw z;1-1U2q^H`{^$CyKnFcye3va3bgiC@^F|doqqk=eYh_3B@cTQ3g@tUlZF*kZ%Z`~H z@&%GhSL~f5T>KNXxBJpWxF$VV;sK)&bDfgkBhF&~_bu1pA_^Z|@x#lM6cv0t+i(9! zH{mS0rM0^h+(4^=&BXXuoCBeNSeJBuoWUev>R zRY_`LQXeRL{2Cx?phlOdNkNS9vWntP6vw@oUwAl{J5V8ef%sIcsnz!bBZ&(lCd&`Q z`qVMu+X}iriuIqM0l@s9t5eO? z?%C!6H#bTN1L_@&^#|rDR8h^0+T=Gh){?C-NM!EQ6vUqnfPxa5R*YPCG0S^7IefEl zhX(v@h5kR@p}8n%cwE2OI5;@^m{DMnwMfqPzze#WB{M&*Y|8GrgQcYpz$G-jP=bcr zS3ZJ|aSyfH%1W3?!c{)3Y%b=8&oxl{{wOt{-0OvM3~>2n2U5F#V*%-@sotlDZYhut zLOhRRG7F|kP?bS-{)mBSZ3vhlIDFNsGBm_&akRzT;L~I=#@jMl0qRN#_bB6I4%$7uVsOKU$1zhbsRi zR8vrr!^!6StD-p?*aE#i6SU=oAEceT7Fu;?Or=Rt`^&zjOJr1LQPO zs3Q7cO-H@U-~J;O6!MBka`RxdL(Z0t!S<3;7IXwF=`MA?P}1|=e%B#RK)VEs9S}0_ z#SHjra)(o4&|Y73o1c@i%a$s`6<0-Bn^_`SWLV1RHUnE9o*MV9qOTX*@j(_;m_&>{ z*`LAp1Xx#$eGo{C@O~eFZM$wZPMQ*;)54fe8!%o$yC`=&7*8wiobmEyG@TW!6u4FQ zAc4lzxM>+6ps)yNNi?^6CZVMtN!56PpSqzcHjcHX^0%nj+NeS`u<#uq!dV}LJGCjt zPzI;T>Fe}kIx}b|5xIDUkxm5)xbq;{W5mzz}?~NkZ2iM6G|;ffb~7hvdD|F`RI2*Wc`!UmX90b>@B_|C1Z^6yTB5 zYth)Qm4-zj4R5`zkK;1VZ<=a2Tc9`KTTy1IqvDFI+ipBq;w41)yt}Lmw+cYAi{T(* zvVe+0;&LcEqx8cyup6Rrp8pIwGgSToO+A7y!o_*}?d^4$Y&e}lGcxG!-24FE z*z3tM6B%&4syree{N3?zfUy*@o0~GldJr)oUF^M6f3h@P%l!M zyzIn}I+|b0FAT9AF&8;8p+=^0wmzdTJ0e-Rm^O1dRu|Y z(^YvfiEE2*Og{0}xZ-Y5Q}xNh-F|DWIy#kxMR_Sl?3Lw5sSuNGM9^;etIBN_gUU2` zHA3SL)E1K;Y~wjNClrFORczc(MUH}v@wAouP=SLA>3}Tn@*y-c-jdjOAiF%D1yz{b z#jYISQXBMoj@4mld8Dr$I2Hw2)J=1&Ch(G#pS7r@NMJ7az8(BAn`WCe{dMLpywn$) z<{aZEfY-ra+kIXO=7a?E4@gp3g)*>@xw8FdxC9^CKz`C9 zKq!T8jO+Z5yz5Wyt{wLWoqL!B8~pzGnjhtynpMYumVXkon?wDGoO$A)u08vAjrYZ` z{y>{`Jv5qa=&R2_-)DOSVDxL6BOpr-@4Odp@}-fjr*?1eF=fTeY+281#*-)6zRTv8 zh_M`#B&7fPM!6UYN8@`_ZI|a21c8r8U%Bgu*+l|!!DcKGapA10s1n?j^Dgf#=gllf=P_VU#UBjg z`?k=YpeLB7)hEJ;Pr8qm;!n- zpq`ehZ|8-u735ZRWq<61y2~o8S^GMu5q&Y!*SF_CU##>A>$Yo%-4 zv{Dak2mchm!jk98kp0$FqYE?(*0g5$)|7aq_2*wYOQFmQJQG;pb3EN*(?p@7+`IeW)f2{T9~Q4!LQkeXv;hkJL&`_ z525s>Y0q;ri6jVrQ1Rnli@eetvkP59%4HG7$d)-+E+2jrR6Vs<(5)Z*81v3CWHgZ$ z(?dS#8?B#2;Fbp)GhCe{(k-KMXW!-0g3eOwPYa|=(f2k6uFb8mdyj7YZXTjwcKXNDYTHi?uo^ZHwQdz( z#8q?yt@RqiXJ@7TUy5~13s)gRqAiS-e|_<}ca)!Atu9TKUWT~xr%uMy<}=kjBmb_O zVeC7Tx9Al`bE-tFONT_*!m(uyI0KUsAH`!6{vjeLE3yWJq9t4FcVt(NgNoGN#_zG` zR`o?baJSgMtdQ4q2aLLe-opKfhCA3LFbMF~&V+K3BBu-@cjskG!N)A4s~E3M9@u|% zcU3t=bo+$lBy-9~w|ry7C&(gQ?V$Lkb*e*#a35ZK8|Q4m5{P_fz#q`d9+yzM_&uMr za|71<$SkB+VXqbDUCaCBE^6i4 z=_sD?HRM@g&7BkD?G|9hYa!6R1+tk|<5%%#5*q5r4tT`Q6Z;3v;(4y>$jeaa$ z2_22cSh6#miWD)0S&yQPzCkzVSmt#y^l@Z%^aSZK47zK)H|qd9@aGzUc)O`S2cAkG z`(rZVcvmOS*C%Jh`}+tQIpUc1%7scJwwP8*-TdiXv2+#o;4yX^bv zOhcKR(oRhc4`*b!J4y=8SaQ z>V$P(v^4U{TvTGcACU6lOoHK5^po54T%Uz7vix_{@iy*w?ZM)G(d7#kmA;xTg_(Dz z)jM!m77kJmWIKK3?3v@>j9MLR47H4MV?p=EA#bj+3PcpypX|Rc^omcmENh%%`)-5b zWtRE<=5(#FtR|}`By;Rcg%JTqNz%`I|0TE4+?EJtp%Nv;hmxgT@0KqfX03Shl@_;pssU}fDjX~T4;AcQD zj9*3`R-ZMtL7gElE8@ANv*_#X=vl5-Qh$EzvB1NVNX13UdoMO~vPDat^k<%uu>!Hh zX3QwnSG9>u z*9p;Zl?HA)p?m^Nt%=inmwp?o61p&WvpG-p zT=$}0IN7bOj;md6d#k)rEbe?SqyR% zr8G{=yyVIhyaPAeWR?BE|KK*5tFk1gZSX9VM;+O93=T52LPNUcY~$!y*;3`39mRe2 z(x1Sqy+pn6D#I=mj+5uE`|gXy;-=@2R4w?vuj8Wu4#r6Ae5FMd>KDJ~Sfr2iZoU)h zXCy-5DE5&ZJ++_|&Xef0bgJ~~_A0=7!_k56#m+{~AgA>%SYmBDT4m_d>~EH6s;mCm zIGT7rVU0Hqq#(uQx0m>AZ)Fm{&MHw+CEAQf#I;HMT#!K$fH_pwY~ zdbN2F=Lta*kME{pO~PkDc>U>c4H>Bv<~I5G3y?__1I2;_%-L`ty)SA)O3Dv7Pa(@3 zI__8#^=r!nWKk2UT%;{Re_BHT=Knv#pZ>+AKTifpE&7c|$h-n_4cUNlTcQ5m-oLq3hnx^^$D?-)NA#{A zn0NAB;B$W+|DQiMIk#v6PnAYW=$qUt8s?6FNeUK?xFZ+d%mSTwZRoFg;Eg3lHk(8K14erXolry_aDf&8!>s-0cS}E5XMOP1fPL~ zy=0(z`E~l6+wYIz{tUwveYgsg#Y1QdAcw~mAb=8jB|OGmVy;I0o3ej4FU~i$lNses zr-_2VC|&US^#nlhy6I5md9S|z42s=6a6I0h#*5YGpG{rFZG<=P#$9g2pacy95?#P< zpeu&ML)Kx4`{5qZ7~GOT7eL@sTXl6c6zrgCyFI7gpCJiih76a$4tWqF85@;ZD9j!6 zl~m;dH)EYR526Ght+LWBB)6;Q5;dW?s|0Q5%ML_jDR%Py^TfXz>kf+6D7;m3o_Z7z6tcHFki-$C@X~^Hq42z>5Z0_C&Ozkyl5o#M}(aUyHpf{Ed6t{R^{V z`_w%OQRN>H4VFnI>RF(1YDrTlv#5D$IRL?BF?9@*?%~q?@0+6{YL)7kAFQFcSxI{? zS>Pq#VLva0lId_>5_`>PAXbvoa_w4+JMdM3Fk4~{ScA|Og1duppGhdJ%Htnzp;R@T zo-WF%&I8@G0Jhhl`4mG(9fyqdmMd*gMQz>#D*w>XVfdZ;RG3`(3EJ}}&42KbcxlpH1=S&hIb!Y1?7b}MKSHACju0MOvZxFXz%Qj-jU+_ze z9N*Wbaok|(!{q6Lc%O%js|%CQ6bii@{{_g6-|H3NO3v-O*8t$XS9)<=Ixd=lVl)h7 z)rc=CLCOapi17tJBVFw*ziCaBE+c_qJF21s)WYl*Nx%1lUtRL=rNua!77v^(wj{1M zYUAlYBCV%>^+0!;oF!L{T(bo$KI%`^cZ7$OC>=llE_X(TNA9?Bc?VB+edhUM@H0L} zx4MJjS`E8lfA4(ZDMT(L%$}=S2*<_HV7R8`oix#Hm@uHuszcpc#H>qSM%hw`{b}m5 ztJz`ju)wwbBJ0S#(FAB>2xSE-onC^JNeb`NKl#m0{b@B?rg0yld}3L+m_}F z8|Y46&_9=)0z*j|Ur8i$FvQCAqE25ry)jNUy4qJGX>@gn`d8V>uF%Df(1yQKNB@Sv z7c8>KlWD+UW;iAKGq*A~{o6CRkCaGgOUzg6;PPU2C}bpe zkZ*`_6^N2HM~}M!QUN`;RmcDf2IfJ2b@EK|V(`T4G!a|U*ZxqS!iA${R?wl95&08E z{2SBx7MAn7<*beeZnpDKr5wT|T!gdt15tuq>vbm(_$iuM7?$}0o{Q@v&+GP4+nOL| zl|zi?98+KNS`~*xs_%I~QE9o+3#QkCQ zyC5s=9ySb{o<3$=PfNSyHK17-!xfX-yZ`o{$j(eKqj;(Py~RCVm?Z4 zG)8)i1#n6}9sLMubJhnkRO~z`s)m;T_3e?|P(k`rQEvAV(KmR8Ya}C?t540d?p`MT zlo971=>gXw81W8OR$Cq#LECy&#k)0{0@y89HJptN!9=TC{%@(n`B|cIIJbyL4;O>Z z7eVgI<4*SY*<*=o!BA1c?2>_6&IrXn8b5C2BNv}ht&gzSh*U2*F6GO&m3`^-E#{zx zio0i2^H5+q9&m{9CUMM4_Lb|#H#5JX)*GY>-t8bNAwhMj6DhvY*mB%d0LtWYoXcOB z0`?LF;CLAFC8RhZV~L~+ag;8-a0J-|(V%bc6KN&(*3FM|wRAD&?J1b!G&fG@Tx##3 zw5Vavm_pzf)YUAnC|5Zif$1TtSl43bEKvA)TR$WgF`G$w#XK_|$k3Tpc)dC{2RON=9vgV;diavuwRE*hvv!*(v>hj4)i>qe!F%!xIJDE>QL^PcSFip! zZbQJEzE#6Lri*PRBo(dtE^q)`+|6g8w(6@t8>?pt@Ht+RTugJNtfIp%X0>M~j0o!M zqfmjs$fJPsqeZJ*gtyRA8}16|z36Ebc)s23q0l0PS;e(Y`U}eqZ00=mhmKW-$Q}4w zd?rlo-XcM^-R~@J`=TEb^O6>A*f2NX`W}PVHA>WUVXNzP0c}Bl-kNW(KwlR5nKKSg z13SSkAKktv<%#|9-DO`-d_~5g!6WAi9|FuD7z@xr+JK+-OAI&K!_Y9RGB<-V929G& zmRyy0QME9~sDA#bm}LNvXs6iNCD(!)hZbAy>HZHpeN=02I zr^A(OeVj*OkcFmL!rfWUi{;p{9NJVIDKf-W-u=xT!isU5>bwfPtT*U)^B2Z03xc7` zO-|@@9fpLarQG+j1q%hGK`QiKOa2gn?>i4|{ZvUkBR^2B5Kze$gcqSlV2Usqx6U>& z0af#u?4Sq8UP}SKHp~F|S0S^9=R}Kt#<-VabxFvQs1htjwjxG$APm#xfvNG8<~)!k z8Lj${Av~}O$qr>}^j-WhB_i3mT5o=b)iK6H$t`ryZ^ea;9Y^3%&1AT81beV};$A7T ziQio>^n&_Oy8qMdSeA!>_qil&_b@j`A68w8^8gXo_eb4O9()ooqOxJr_9aA3)zSHU zpN@~4SMC}TVIi#0XY@sY6&&nbZnM9j3HCG_YR=%$wYY{OKV{<@()bd|8S**7VVq8C zm_RRebxX521zY0F(p&Pj#4FJvW=!d38r`iOgBhBqSw~6}XqB z9#Use;j?a$&-Wm#?R#AMOO8#YIs?DKPatw6)FDNQ))&znRuk?M{Tq@L;z>&z4K{y$ z;ClErAnfkiul5=8?!)%b{xea0;^u3MKQPGcQ9+ z#9z+J)0e&+I;JVpy_vXH8%)K4lGFS;N9jo%jmYbwv!Bse!VKYSAZ0*`BbA5MUS#Yg$?9uGpVAu0?;a>X48-sWVj$rRUWf!;2II5(Nw4!tjw znR*@Ty<^Xh!_0*4us}83Zz1Kie+GG0_)}0)G&&m_pQWVS%8vp|jlI2n2ZJDc*E6gT zX6*8O|3W@qOoY+of*aFb-#XCs(&5=NSB#WFe6Y5XSlXpg@yKeC>=8h^^`F6i`e@Q* zWnw8>kH26-jtWc=34aZUDRL@;pgcUe<*XKjTu`A`E-OMBQZj-8U5BwyK+*v4R5GFk zY5;msJDr5r%f;NT_DDCUt*u>Weo<*RI0KfNyP#uHpvrpr@=@J}dR_lp_9MvB=;25; z)f=$Yhztg56Om^__kzF5uF-m~5tqITPCNHqr~UG1O_10ly-&@v&Ch$FOx^tP_9v9? zF{8ruuPlw1PAJfK#^I9{De!2XwYEsf>z|8!-l&%aGL0b8#Q9Vvr*14?_HwB2JTiGPGy81K_Pj$WdB4c50qViY(PSzEjEke} zizCQ6#gepvwq@~b1!i9jcYnDhXjbb3x8@OJ_Rr^vAi9bI`{NNGV)FVR?STK|9J=no z6ih(;7$62njKZ&N7C7cgKEFD^*dI-I+u~IU8DDnu)^W??`F6@pnPpWVv{NgxEm+7bm`5^ zFZ0juWN^O#ir52&Hr%_4$U3$bTAaT^+WxasAcSrnLL-97HvOiUbLR~E^a?>O93sKoqnJ^&dFO5O5UTX^P9D2$Jpn$Z6!Fn3r1Wk}r&?;EJbR=OJ zVW`9n%h{v$QPV<);#+SwP9%YZ-8d^bs=75|P`z?Tb}(IodDI!_E}|^~+~5h(l}Uz} zMwm1hwVJvUv^FB_t=-Yr2a3DZL5KRoRw0nPc*Cp~Wsa)dK55&Y7a@02?~qq#-53o} z65ZRJ%pN;$#A0$SD*9dj=e^6|-lFa?Z+qrX2Lj@OBSI9~#j{)~#d$@gBqX>EV?lwekj2E z@F<5^?}+#h+w+$6Cc0w;;|cVM@y=+Hf8QZHH({9)M*sZ_hd)?E=FsC)d$(wD1m8l; z#*@ztoWy$ymvlY!t~k*uY{*PVprdpNU7^wSLruo6>PX=zzK;9lhMC?Q&o{=4U;m6V zt(0^mOeWk`9soU4t#v19AER#%?5T8}=J2-};)D`-G6zN7B;|k#Hp(`*)O}bn>ZwqB zN_}GpijSKZ3c+EIv0H`pmWVydaj2Xs>`+-Ve)7|wtMfWLM1N;|(Fw5$=Tlg6Qv{7W zgBiJEEW+)3V~s^g2>gQ45(u?VCban2eRwI##S9yi@Vg9w~onajn6PgCE3zv(1m%eoM zuIzIW!nKaw*3!Q3i)G_x4ngKiEj*Y85g%7NWPWf&UH}<(@9JU6(mzb_5&f<)Z zZBBeKU{*JKC6y9e`Np;C`HcjnlJ4OTkH2Z&<0LYbPK`RszvcA(YYu;B8HHrf`4C(! zM)%^-%zi*CLzLd`^=G$141qx{%qw?-FMlrgOK5u?8yV(n=cud^%}NuuR@(6OPp{ZF zf}G}c0*J;T@AjV*T9i!VUO5zTWy@){j3E5{(^q8ZdPz&0N473Z`~YXtoL= z?aw_XvwRn5{DvPdmmSJ#7RgDb$_*FYtkWN&sG*JWNUO!RXjkShPJ%A_4?++;D0iVLK6;`sxABfP z!Jo;Cvq^f09sXTQJ^bX-y!L}-u#wIal>bT>CMu$Lpu}h2qzJ{i8!<^imbh8_qI`;l z+3GNQHizU-aRkTdg;NvyGq>nASB8e>=c<-nElSF zb!xeVs0R5WI)xj<`O=ln09LC9Vb0yOa^SWcT(2-)r9(@VchdIAu87)Q_7RGnW z$4^!(oTcW5v->Ey_^9UNTNtvLTdzzWbo**?c1fz*fzlr%YE5N-%++kE%Qq=Rnc?Z_ zEGDxo?h6Ln-k0;JI%_*&;RVrbZPt3RxX%)Yc_53QNVWNROkpO6kTo+b&e&}VVhm3O=!`e@KsPT{xxCgCtu z{Z{Nn3TiVRmZMkA*5wMIOOl%T%;w{&*L)|$t#1$AW+&ey-Q>;kpPX*QQ)h_w4zU@BFv1JKV6a3? zm!gW^@4QbTb})LUDDBhcYu4I*GlzcbvY~N;DVxEbjI=Y){osrNy}h@i60O1M@&!?o zV~q5Lfh)y@TlB=3Pi1`ST7%u29-*3Xv)obo5f(8OjL{1N#HNf#R2`Po!nL7^TCCW&@9*HcZ(A8(XhXRpm!@XBDMuKQa0}Raz5DQJ!SWRHi*FY0_8I0DvrOX4;Rb-BoAIQGOvc2TWkt~NzzIw8?{s@sdBey6tQU9;|%H- zc2q0iz!Bxe?w~!9DZBBtl7)?K*DM+V9h3xe7XXlrcktv;-FI;ON{FR(tWEQ&(>0Nd~cevsuS{q87K^Jh&`Nn;vqDZiyyfygEFWOrM z8|NA;x8MCfVjyeu4mMs4>$p~{vi@qeIg>p<6ld<+WzrFMX*{RxqQGKI6~c9+rF%gD zY`7jsNEDD*xy*D<@#qve()g+Op-JukbCQpqWkl>)iM){N7g7^0BNVT_VxuhlT-P?A z{gvb8ZxY{p@{r0n2zu>6vLa>;y}*IJLxHUt9sOUaZIO(pN(cjFraT_r(d>SsVi7k? ziRFr&aPG1j+HOk%vo0YK^;HM*K=O}$FfeQ}#$f7w&X=wNs;Pg{rzL8`mJ&y} zZ^EW!PF+68o0)ID=OPq(>u~~OI{-82R8sTkg0-kxC<(9~{l$FnaLz2A--tP6Cin3w zW*)6{k_HQd*=TV4>0o@IvPx9;9h__F3Q7Uw?1aa3atUBW8U*M1m@lxG>Wwpb=-Cf8&kHv+4)bhi@jRT#gKY}+x>bu!Pe-bmb z&3|J7G9cJa&7L@@XnB&Sdse~55&o8$OD19DkYSNyas0W&!~@nsYz8x_lcWdvqmAZq ziqXdd6(c`Pwgtb}vAk00rEwzY{~cAqP7*S5|RpuI$n2jj3 zX%|dXHxLOllx7wnl4iR{qS#aw)5-3Hosla_Tpsr#JXk^eBsb((c5-w8^X-7UY|0%{8pFqF0kiba~k4GSt? zJ*#gG1u5|f%_$H_LFKLs#-oS#F`X_szm#05-hIwTA1)!|gF7x>A}cLTM`wW|T|&+j zTTHeJSudCJkWuOWe&e|#oPO*hUiew|p%szsx{h{fTWcLbbL|SrQZl$QI=6Ghd}Pmj zJc$9_8aasRZfT97V3+MBa%Qt1U>aYCOz|}1f-M*t&4sQ}+Aw>x}p9eno%eEJY*z%kH%oOIcs=U~t)WI*( z<{^r_Om&G@KJM}7w$MafH>sF+)A(@)lF7ojQD50aHzcJQIfqZILiA3ty>y=*e&dSH zz0I~QlvMR$S>;q#hDR(xyo=g)F-yM$`$#t{D#N{hebsQq^^J3uNyY&mI5bqPZhgL` zmCx0~P^aspnc9;1HRH{54a!cYnkd#7za+8nO?g3b2VC6p3ohMzD{QOnE42&ETEsQ- z4uUIe8QiyL^)sg}Tg#5L<)W|QKDPeYIUt*0J55MTvO8vmgisd+onfNa(NFlx;G*Ek zCNRI@t^IW5Trk6yozNV8I91H5t?Je6r`_WWh)~H|)NXBb0@ErN^{2#@vFrH_O)5|8 zdWFOA%R&@(PUcabj7; z8G+eglMBs3zZB3V) zN1z-{+U*&rBWQDCr{ones^4yR$A9(It$B5M%am041QzN#5oH5v+9@QVy9~;f(1zGe zQjgxQ{V8)W70@qocYckV)W>+3VZr7O>6#F1NC#onv6FT;p+WM9KUb|E`g`&cI2;>yL#@pQ5hN z=hNIKj=JpU3l@o!*oYTubttGScC_2cepL9Y+6rf(!>^a0xrqB1U~ouJlBypyG+N9q zk>5(+MfaWDvR{-A4xlgUv-40UJf}-z;-@6|nc{QoV z;qJSg09LnXlv^wW5}{NoXR)CskKZKiD6P}yGcc*^Mrao|qyP;|u4z6r{#;Oo=N*q_ z%+fuD&AVWfbkkvRipyE`3E7VMDko8> z`>__I7O!B*yLP&M|o&EzkaaJ&GZa(A4$|Bw;IZxh;NC z6qrtFO;H?T-rqII;PA2Y3302gu_(NxA-SGY6weayOu@~DJ*V>iq~!|-ZB?>-HO#Qj zF|T<8?Mq}Um*Y$S7}g(CU|3Z?;bUqEGMh)|mF~LKA9{mwPkDwMZU26IXxB}8ZZUF3 z+VA_k6j7G_UbjfA^!7}J-S2#{NVgC5=%20i#(v;w%QL!6T4z2aB4#a8@(CHQ{Oy&` zeESzQkD#iMqY0*QD+8^=tD5B)it@NjT({Rjw!t~P5RJ{k&ik;|Q$kxq)0*n!N-?g+ zJl`N`BDTj}jtz2RkgJ@7`=H3#Q6`1^9I&Ny+GlM^Oj_7vRoCr8r_6i3jbfl}&fRv4 zT^v(b^e4IS#nIK}o<51t3IGJLXnZ|sK{@O)@ea9*=N7jSd-zzS?o3Sd>=4N`o12oM zBKG1_k^>mrGcUcGM$Ed$uDHbORtPFEiBiM0qZK@Ukah)wXaF&^v+n)lpZ)KtiO}!! z*j-NqAo{x2Yb0PX5?3QS;3dUhD|vwZQ>j0|J1>IdNpb0&QTa^GE09yvL z1iwM(R3P}J{tDLolWJ>a(vRx~P|*H*!20qatt9{kKtkB*HdXzh3ScaVOseBOcxY>& z$MRkq83bEtGI@ZX5d6~yj(VZ^-TD)l`209x0WDyW`UvSEz^DdQ+FP)Jgti|+#V#q5 zI{p6g?`;GiUE^AU` zX2K>oy+EkV3tr;G8AN#xsBDovxl>;Uo>1+;zkbg3w+`r89^(~)4NNtT9*HRhdk3P} zDiQ?n=g*n{$f@_|1L6o}v2W#SG}@x0gVk1X*5)u7wUlOblSwmp6XyALv6_)E%Y`NZGV8{MkcEL{YJQP;eFzeY0RY9{`Uou zv(I#NAitnS{5OvUo5V!VaiO0X{igBtWzGA4qc;_k!@&^`26)Ikllm_U;oKkz@(JwJ zVQ_$ZPSg!P40Yqz%kzK#Z=W;>F%Mn-MoWfyw^K|Z=>aS(bzi`2024Fd*Jcuk6|vTr zk?)q^^H2QGf7eg`-*lD#Z~wpMf1Hy43SH=v2DubOQ%VIKd;ah7JYam)1G~B+S=w#f z#EKi=v#H{>K?Dk$2xd1VW@N+$Ba+CLBTSbrAd$7RWTH?YJgi9ibN=hsGxd%9FQwaK zt?C#N9iv`GM?6pxfCT>p9QJUX5`M8ywmqI{^0Uh%XwCY+&J+`?Eh&fL6+&!{8hy03 zv-1XE@`#{SCQ6sp+YO z-i^TDaoH9y!}gDoEIDYMot=<+(v|s(^o-JliLD@VFrp)fG&Q8ET?IeDDrtH+ zrPSfx%Fj{+cxQcyY$9wD39rkpFRCSyMA%Vr1Uy|AiCZBf?>!kt*zPXmmLFW4LLAx& zBHVe0eA6yrNLw`q(hAh4e{GlWD@&O&zIqC8C1B8o97Hg~d)@kJ^i#~s6_WjTh%gC7 zxN?$S0i93)u?S$gbj`IO7PVu59hHk3s&5PAP>QT+ZekT0<}i$F@V)!}E>DO%q9DG0 zy$xQgySqDhC8?`ZsA)pJ!CTazkFi@a{r3 z8vHs$RPIB_6gty#dtAR6{B>-8!z?@x4|;lT?6e8lvLiDb_~{U-_k__bJfWFr(6UTz z>cKG%Zs)<<4ObsQW-9V2Ps>4F_P%5O~JXiT6DRh3$6`R;vB%0JYpCq(=Y~w-0_((B9dl{xtLJoqPmMG<^C1 z;A}xjAQ(gl>ITts7!V;d>@rf;h+zTUA{_DN@HIj5=+p~hNZ=;607f0jRx5(L71rlv z_fp8os0F+K+7(FZTP*%4y;0TNPh{%1{;7yw?hGytaP}|2Vo4V1=}B>J*XSYMCw!3T zNom;dFC7crmnNUxXBzjz9SQIAB3Z>?+B2$hWl`OLE(~z$%%5b~)1h4uWPsRuTW%W= zZe+hL`4aseZmfqB^c-+jouj~OU2<6gPa*FUv|LA^%9Yshco2$)r9W(uxHB<5T^a<% zu=95o!FCyW<%1RsK9IF-=Lj=OlkvTh7?T1!LAAY129B1+rvp!ectOi<>R1y8hCcx$! zvJpKQxZq)g{f+!6xn7#E8@`Ze#V=bzVqQ!yY8usPU?Pi z7X3j~2BZr<()=jew6`m+nlDbn!Sn>5Mz2ttA)i!wH1hX?g76=C6htDG zx6k{{(MdO;#O>O&lj8R&+ZhQczLg~1#91f957BO@FcKFgf5(D417=-h-JH95oz!sY zm8<5qhjfN8XzPF|mX1d047ID;`=;sk3<-mGdE(XH7!Oxu*a;RDb`D>VIlY*2DBKyU z&-lc}sce~rUv(&|--fAR)Lw0g=sP!D(nNM)SlDNx0Z6B+2Z{5{eK>HV*X%Nc68bKy z(?f;RPi)^5SEbD17C~5nR;U8|vX@1dlvp$pO|(mtXb6oF@8a<2sDrptj{Ov ze#Kcs#4h{BKu%adva>M1_pn>2V58*R0e91ObK`qWEqQFeBQ*IWSx@Q}T*(N2rTHyX z8Blqj7tVtD#67|niE%T)E}ARu*PQQ8$JLmrY{em!bh%7zXbFdf>i7yIK8m;ne{SaN zzw%l2(Ict)Lw9~*dn73BKuZ<7gxpjDOxU2!un`J1uFU#+<1rAkt${OeJea|_r39u7 zDh*J}o|S$Xp?V*7ftmg6?zJ58f7$2m4|@>E&dq%wfvY6u$8LhsCk|S~&i0Xw2kwg+ z5UUwpxm{u!6%^65cQ_kQ_Pog)zBbvgka^v>FDvHJ6$mYY<0ZEkg2$e18 z%%#6vB)c5H$|F6*mVVYMD#`b#hrO=Wm?>%p9|t%G`v+9>XZ@Wum-mP zIolrkG}lLLXS$}Fly4Oi07OsS(g))MxM)E_jFha(@!CYskh}(t|1gFDqX~5Ad`scki5oT zDdmz+KlbyBN}eC&L~Sw+$jCnKtoU|zXbx3CXJZ50Gu@aqH^DV^K%BiJ7N_mVlsXf# z0JFJ&!zlxUu=osVVJsv;Jx$iHq86h2IXwDvbx@5~e3UXTrF&s)d%W zdrP{C+7cpgIq2{@e{E(wa+X?}?pl~aVTpXc`Djj4Aw8Ci5w3pa))4GVPe(wHn)!rbtarCO04?xchRuV1l5Ub$@X1klXwN+>UUF{RCAA%!@0yigZ!f zZgJ{2Z?-?XRcgkN_k4=!&Jp{OzRL3;|9I^jGIDYvV3tijDW<`pNWqfPF{_3P)x6Qv zj|PcRHG6p30(pcT3xmQ!aRSsO^znt+O97s&IYwL9APAl8VdLVmh2Bl&rM&`FMiT8q z;6U&G0ZECAPvaiXN7Jv|$VZO~Px*XJ>ONKkT0l~I`q&mf)TMH+Q2=yuCwEV5{q#?7x?2|)^rW)z-+qclU!-R@P-+XpG^*5hJ3f|Kpz=|CthZPT%u)c3tElgt);6TK+#oudygAa8vLG1DnX z>ItlG`|+x6sHq|QoL-s<4+o%Jq!kC@6*8-q5*${M-xd>88LL5+!p5cr_0Zw(%|P33 zkUW5lMU<4wJr(qa=k*r{7mn4i(m>P<16zNr_k(VR$BrYMoAHe_gks{8+O|ZJs3ie& zfq=$WgL*(c^#`24CZV7dUM$K0FUQT7qRTMrWTeWCjSrN*!+=&VdbRk1??+b>97hbm zme|9LHqu&;Tw+CKR(NK)$<n4&QBees`e;Q=D+8~>Q zD&H4OFQ+M0PTCm~A#YzpH4VN`CeT2!Vx}Y|Cl5iO*SOsNJznXZu>wu1z^vO|-oI$21a%;h*)hRSVH7>^aD5KE*#xH1t?t_z@KhFkq2rLG199uOk zyEWj#$dH2N79-}tO35a5eieiG1$PJ>j5ROnnD2YlU$=Y%VQM_om z%B4euu^cJ^2~tCGfN*FC;MgFD2U9$dQ>Y07q9}+U7!ZrpfC_^4ZIsT`8E5)O``7O5 z?0)<0zTNk}_nY_oy?tma%F|~ksO^V<6bXJ{_kfA(H2*pP>V>p1qi~SNxCd=-6g6S- z+0i|Fb5M7vReuTk_>Dv8TGuan;;|d;RwsNq%EI@x zU{z3~a2z)XV$+ugv98bDt)MHREDh~05C1D#G7MUD(CoDbUW#_?U1>mGKgzE@w$#zE zaG|q1Drf@hBuf-P&^H*f<&ZVgSqYFzpzI6*Xhwrt*H&z{yN-7DrmzQgmx$p&G71pD z(Hs=Gggt-wgIp9@e4@E1mahvuCJCb_wO(02qsmSCtIUVwMu86~3%Qt;>{Ks2ch zfwfx{Ns|x;m4%^AQT`iHN#C4BC{a;}1F*#`IQJ|B-*rC?zFOyAiAxnNLt9(KFzyK}+Yk_Cdvcj=PXc3_SVk1qE%ki#edaUu>56dbN;n{ic93bU};zqPG z{+j9wWe^e{as@(%VeUAB6h}9#b8+dzLw=Y0(voLB(b6J`1rS0~aT}#gSk;wf|1hUQ;wM=gJ z=$yPkJuoV+?Vsb^^LP^)blB?Z;b`o3WZ2C$Wl!+VL*~J&{3o9HS_0^iH>geN@$@Zy zt?hLqpw<6fHig2wHo&Ya|d%j&uB3i_l~EFhHF^uaX#p3g#()Mr_X-Y;T6noML?UpZL=*6pC@ zI2m7`@nOycG)e-tRxL)LUaFl2Jln_i^vxwpk}j?Us8fCX^jqJ`jd%K!iX diff --git a/docs/assets/llamacpp_client.png b/docs/assets/llamacpp_client.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb3323b02a75c21a960f51d71621fc88309dfdb GIT binary patch literal 13038 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 literal 0 HcmV?d00001 diff --git a/docs/assets/ollama_chat.png b/docs/assets/ollama_chat.png index de55783c719371114dab3e8389730b1d19a898b4..03693c9408515965333c90c2e446ae1a26070de2 100644 GIT binary patch literal 56594 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 literal 38360 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 Qzqz0!rzTq}ZS4O)0Mez&LjV8( diff --git a/docs/assets/ollama_client.png b/docs/assets/ollama_client.png index 97fd652d9767f4cbe394130738aa6e16f1c68ed9..7c1da79c9ab47977e353f9ed7ba0330c01c7b51e 100644 GIT binary patch literal 12561 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 literal 11015 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 IIVCg!0RBebZ~y=R literal 51098 zcmdSAWmJ`2`!7nf=tXxoNP{4~Xp|0-?vU;dfkk%-(p?IofOL1KfP}Olx#)&-^E~gn z&wrn>&!_Y0jKOe7u6xaS&FlKrj8apP$3iDVhl7K|QdE%9fP+KQg@c2S1R(%lAuK7E zfrA6XDat^!yt5B-kh8TK7W-?Dj*h}xTHX{W1QWf-NR_Hk@3^}B9q6G`DamRCiB8=( zis5Vqe&$k)PgezpueRsQ=y$%m#}Oyrm&_^I*{>9TGdm?09q;dtkbJJH`Z+UWURl8X zeJ@x*K;U|Ie%^X-B4)U++(3)7ep`0iOpB8(eetx=m4}Tu?Tv$vdJ{?7zGFToJt&0c zpO0PdU2h+sZ$C=f+l`XH#beKKmK$Uur@g7ocYRN!#W@x-T%xPi#E-$IBO;$C61(`j ztkletY=^zrRlTX)U~lmM^jhC84LLLE<-tgh=MNcqXdU>U{{f#+;!aEb`(-4EyNm(` z?tea+!lmVq`TzYdOr4ybnmN1)2xwz4r=%=3{Ac0PtsvXeFaGDMR(r;`=jKv9>gel_ z;AlZiEq)@}+1kP?%se?p|4-}rzwI5(SkiwtuaI6!FY@1Qq=}3Ny{G-pp3(@@6^H$= z4USACqWjM$z%TgOHjw?#ZT%ll_c=!z_^#e}El#=ZLe~loE;iyKV3%h<5~syHZ?^3S z@NkP>O*Ziq{~xw2OviIR6)p9&wTfa1TUYzu#szt}G-w1@PG z&Q1>8`;h<2_20U-Ex>;AX#IjF6-v|b?-`I0v6Re%pJ7tg^tRoaObQeajHQVrlKjtu z7mAr#SkyV~i(_D5gjpN=T&A5A_49?$=)wJGb0dFrb}yT4Gqd-oL{xcOAwL@YaQ^iZ zU#H{g!0!#l2;s=vFL#bBX`4Fjw`-qsvOKAN`7jJhfChwxg>yoL4<9`QH?l~wXqG1@ zVJQs~ul&|tWJ|?g#s@jxrzmRAtV`ekFP8b=N{alk_VCm$QT&vczUqHdzhj&wzK!;6hUIvu=TYyG^9kD z_%<_OWN^E2|Lbi2p&5H)XGL{&rQJ{DTtn=$gxmTk#v5brjc?3>*W0LaU>W==dCE=s z`uciUPxQn|&R;?l^i>VKg?Ha6ZV0xD>R$sD_k0?j>pu=j1Nav~i_;_Zb9H-sR5x!e z-+E8*pq1C)ywEuRgAXqlAAJ{E{o+ z@HXFgEw~8PAltxsFU3jx*N?!g_V&kH@^9t;^FaUm@q91a6YyySVE6J7q>qbn-^>JO<`mKkB2*U?Yd{DZd_SpSsPlrX=?sPjqZ^C z+0eN1vd{7zz~oT&d9U2G`|zLMZ3~H5;j_WAj@J?7(kEY9ZZ)_kon-DD>0#%2g*)Iz zG`8-N9g+=e+Ucaa?+KPC#-TFO*Sve&Io@3RiWo$TYb|g6D7*IS=UKZhaE`!wT>rNI z0-|#d3)GzTopq^5`d!j(15wwL`;xP=iM&5SZ{NQCeHC*G{5&nrPyBxyU44F8k@XOh3 zZQD3k+V5duVM$3zm%q@Frur2wr{-q(fWgnh!}{Wd%=QK%7H?Y2qV#j)Uco9}7X;R6 zBN$#9i*0aWAp;7A)X|lz0W0aDK{A$3AKCx!%oSA_9UB8ytqN-kELuG&rMxH|LL*G} z&j^V`MHC#j2?j&T(E)w6loMgBu4klT04GC#|ZQa2NKxYH^T%`k1## z-A7H(OJhk%$<_7%Ljwcv$by1`jt&WI1Vlt_V|PE}*todRkdS82Lt9(hVd+FJxz)6w zkFMcCOFyuJ zrNc3!qM}HJ-C5f8_4J1IVn2W0?~TF-+AljB+wIkH(Czu(!NEb(o^VSmDY#i0skG$ekOPt_T8J{ik7RsXiu#D>29k_2 zox51|@x}ibq;=m6{2PqJ$_@?>!{%3MDI@8;B{nuT2;_jj@Ba4f+~dQYPl(%}QBoeW z-Z*kWi^7}RTcC?e5v;Takmpi(d3nXAFa7!jiI7yGiP_z?d3;OcqI9B%0m_IW=K9_0 zgFgT!dAPlZiHA()HPhmY}k_xLrZE}^dkRTf3w!lLvU*R14ANOupM%LcDMGL8b*uf;YO(_ok2%n zoApF4ub#~{Y&|zO7Yz-q&F{+7)3e=mdpLu~e9ckH>vx-$^wSE=aqXy}FgRDGUtsIJeXW%{etoj3ZrhlV zI1c=w0#&jWDevIPFlmr-j_}1~fwWLx3fU`HhFJoQcQqzmxnh1w%F0Px;x42oCnt@3 zwN_&xp`dEMK~Wh=_=227>~`csuY(01Ip7_2^!P-x2DR1ev?5FNgBZFZw0y+rI(8p@;NPrd4O=l#KbT#V$_S|x=xbQ)61Mu^1Iy~ zSDM3G8zY!SM6&D(`l}NMx~u~O+f!2TRp+Ls@tQEQSR(rh!0>vJ%osEg&X~-2;z`Jd z_9|eR0qCMQ(6S0wXt}J|*x0rX{ZwRRWYReeMa9Gl@M)r*0T_hO%)o$z4Q|vO9v)6z zdWh@m%>ygoGbtsGa?Q_Ezj7_EuNOE^7@emzU#q?WR=o*kq5b|BKLgeb^X0E}( z{N;r$ri6q9li_@7N=lD(BGVBLdb`)Lkqtw2QSZ%0C78Ma#7P6CeafSaEwKRIiLNTQx5*C-8Dgz%*0N*SGoGHy#7hdsPMOc8*{v zPJ>1h6BBOFgLfpiV7U2e!xp!l__nq-Ar*J`^WCYUb-3VT*#nnkV#K&UB)`jpPrR1H zDXQW_#kR`tUNfkm>*A2VjCE4@5EGmQil_08e*OBjl(ckOvD?w|t1S!hnZ|fJUcP@paA|F+b1U$pRQ}S5ZB1#{H)T2W@~Oa(}@K3=MH{aSUS4Uc+YBZS?k$ z=b{i5?v@jCKyjL@KYsB24=u2fZ?b)-jK*&25bx6V?OQyLowU|{8yKs!!&^BX6P7KB zr=_UAJuh#;$RvJ_=eor=lUgLol+Dq|E$*RA+o%-@K1s{Z;N?3adlSLMWA<9N)%)a! z!;-Tq0nyuRgjGdd(FQOT?Uuq(J~l$&Zf~!Q=!Cy6rQK>3%Y|`f*j#GN<*Z}9Ma6#+ z|Dt;J>$gKxNZP{MR=!r5^<_U2g@U*eqgSe2jU(_bri(K?G*V?Gn=Gnj3chG$j0c1z zN}7iemeJ$|nxA2!amcBnA65jcN(wx);lmaKe))Ky!s5!!Jq{or{D*MzmA@Fae0&~f zRq%&7lECqPTc?ze@hKC4*Rtk!uema6Km5Z|rwIO`t2QY69mY>v%gltiyn+HxupnyQ zf6z!K!ZSpVMD1BfGM}Il@-w-E*Rj@d!Z~)>|FJ$Xl-)*U_g^hwlZmh5K=*7c^D}dG z`^g45$l$5xR$S~BlZty`wD(}9K_cgI(!JN`A#6U+_rBt>?JnlxLoANEVh#)(fietAz#edn*RNjh~4l2`C!R8-8bc56S!z@yI-ZP5g|LAN*MyX9>i$9)Z> zN@E%4eF9%apU|=2zR-6$8&@txo0MV-QKQ!C0By8S{ze0y0Ovylvv_t+%0tg0HB8mm zSVBznVf(2)7MA|8gWt3F9fdz^8j)9&Qme<=u4&Ps{o(NN$TZ*d{L_!e8^#Ho zT|PLM?3`@AT0UGnU&iyvya@5T%i73EPB+TL94W!j?pp+b8Q1 ziTELMZt9D zbWUNbuN#x{zm`1>;wN;b;Cr%RM(-|Em?O&~pPt+p5I;6qZDvlaKHLM4KKL|BIa0Yj z%|L%1#yh6HuM=>2WKA9LfI9=uKhX-Z1C~r#>gKKm6k_rZ$XdiSq+HQ^%YOgLWlrWg z1Ykuj{_Cg6Hss|9jp48|V=f7*ftD;mabocXwQLnjOG|tI7f^7#yeNP7QjZ9uSeR;f zuu`|gCw~uyXz3**AC+ezg(Kp*C}hY@^Uc)^gC-V9IH5wo0#q{a23_7iwcoBXr%SLx z85o#Zo}%F&|B)1=u>WDS4$!1{+&VP@yQ#PESq+Z;5XHE_^MFu4$u~e|u_{Y0PO@YFA*Vu4Ak-um_9kT+|y%eMLw-I{WkI(8Qw- z9*b^t&$+vY`}>f86a6*h&Wx}qNZufc zL+S5QLy05XKkPmp_CCHhWAjcQWj^wM986`^1Ss0RQJXL8yi`|LS9^OqFwM=83gWbW zYNZLMqHus*k2WbfB*ZTh-bDzb?lFO+WP##=qQLb`$)M9mmcsdgq5%-zn4d2R!>(^j zf-2Ga*_Lz?hO4fdt!)tuoChqXW6+vxnBkr4O{SGqN7B0=F4n(E=VWDNEmO_=L(9mB z_szo2PQ)9w2EZPmk7s0NO5MNH*DpFi#irO@?dWJ~YO1YulaoWC2YK-NUps3FVoENz z2k3j#e6FlyQpt`?`T~Q&KI?qNrW7VfXe%l*x3RJD_iv4f8TkN@h>n4A!c69KQWR6% zA4^(PR_1lI+*Dl5Kuw(|9&p>+*GG%{EvuosvJk+;zVWc$Zvl}3h7N|8bM~56!^PT| zkEXFglj9diQzTomjFFev!hG)L4A4lc&>d7W$uE-cvOZ9(C$n*KhU0~rv2t<{!PxL|`b}GUp@wB?rXUv1a-Lj*)>i6jGZmzB*kaAMdI5{~vHK7gE?|xTD0Np{w zp@JsQ&(B8`;n|{|{#lQpmfO;;wSov~>*%QFi5vczq7?Cbfpp&&Lrfd&YUlWUZ`zrPKc}Ar{Csg}}CB}UT7g*;W7w+m<0J4TE)*?Y7X#r`+29Ah`C>GFZ zlsJzPgE=)m8%MT$F!4j%ccaLmL~KDqfg&|Fw!G8RAC?&(8zziM?N7_}c_<2cy>a}B zX6Nt_i=B^y!(rqj$F$Mgb9DbgjiHDG1A?M7hA5W`UWLkCN` z^pB}l))v;KmR2R!mc>@PH9^%3H}e*Ew3p2&c=}cCKg8clCtt@@R8%BN3+=A72+A#o zIbY{+e`&WGBQrNQC&^K2PR)*b8JAy=FOwB){k5)6>t3=O!ySM&t*xSiwCz8}=H`g> zK%oZLwZFDUt zTCHDnpYe?^Vb_FF47Vie=(9$1gkmZf&yv#S1lV@l-C2 zt)Y>RCBY>iARr|j0!ih-tX2O6L*M2JI#JDv%wo4@Mgm}RA&FjI3beistp)L@lpKsCKQKR^t|-FybN(l5>=$2}yz=~w z3>l2GXD1;&JUzxM?&ZsuRdf*mGSA7*27om{4sWs?0D?b7-O|`dplHg0qKw`zV(L~~ z8hUKDW}GoQu3y&JDD+tN>C>n5bmHo_LtnhCt*sZZNP++g?d9cEg<#9c$jDeTWa4^) zs&s?zvC2&PmhuY0lw@gkv~K=`Q2@%7%Y`$cyh^NcY%?XH3!l`+{nQl1qi6nx*HK(M z;W$2$$90YX6BF}#p$Ss~U#CRvV4Wan4Xto2(T8R|ZXJvMd=w!6Qxq=DY$=yA9vWNt z5P>d4u3jh@FMd18E4Z*;20xme^lUN%7hfJ$_1e>Z+2v$Z_L=x53-Mlz*be_IfuDyR z6(~MHy9X;#zn5D4N2e(n+SU+{#_?JE^C$cfGsnio#YICy!<@7rH2alXDL_l0==><* zLk&)=@#Ee=B_~n?j4duczTIP=$d0Ec981JyLqKregl*|(S*(@5p%-_F% zm($p?HNIzHdB{*`MuE-Zv}`ehOnTP`f71(o{q28HF~DuYb9VBn*|(Wk#Yj>h^;cTN zt);*=;5QvM8r&K%)VIZJ@rcCD3_SZz!uL|>!C-WB^o<gy0m@aEEDHBN0&`83(ox#-R z<%yDH=ke+uMSjGTtgp?6CF&aEyis8HYpL~B9>CFG$N2uOcHP=#Z!S$geZo*BQc-ev z5J7_f{?o9|d$$fSePnzuARy>2g?t2WzP@>Nvl?){Qbu_H0zP~xMG&&3s0?2>3 zx3i}wHX7Qmy7%~^d?X#CqodFc0{diBYU)&h#LhPySBE$qRj(lv(6McPZg zF`6a#wYV5*Y&jninh!@hg>cRO`ueSXdvJSCKNiMcBD&UA0Zz7~;Tv|rughPmE5nB@ z9UZavqj5Tt#%Uux5!mSWn8-#iR;zyMEqOb1`@YfJurKWtsr>0D3|G>sI zW%?|WW=3~wf@!|!ID7Q1HERMU-_}#m~;y{aC z>c9`0=;mxlhA-SPQiNxM0rBHr^x^JGey(-DPmPhEL{&GCO>{Ui0|1j?698^(>nSiP zXIG{V`T$uIXjPx=wFhw@ZmYvJzJ7p7rw|{5y=$vG` zUB7?-&dbA75aoo zJ`w6za>00NlP@kyKOFwmM`Td_w}%N0Od*i25M+!D_gt#j_vIA;5{9nbPKk{iyMZYw z#ViIBBO^hy47|J=*-Y)A^eI3zzIhx6_2vYJ_?}P6e>&&L9z?K>#=SyR#l1p?n8ttN zwE{}8pDEcV!=XT@=D%71sENq;a4R_F*Qa03-`98EUhN@hYPuO3wk0Ri_1mmsgs7p_ z<=J4WiyezB#rZ`f<0s=BzY;aQg&HCHt~C4Zk6(z8tf>X~2t#bJgaM8Bi^J5Mm%Ikx z*ekOVcc_4J=bE(^zQ68&x^Cej&$5|s%}{ENM!T%bccc03jAiy~W`W#XOEu*6&Ui{QI|W>rS6j<$eqtkCeHf z=exi5WMPW5`k+o;r+!-P&4@!T`t#=IhF9gis;a7YcbMGJ#6*I~H*KX_9<`u1uZMZC z|7>ql8Cro0@U6dDz;raZ(MP4ztg`&hFmk@N@X&l<(wXdJ^H}A1TDEZ{NUU z;bcRkr^)%h9A%xQqly*LR8{EO9TOj+nix}xA9MIUaaO@Qi|JIa$aQo@&`{^98{2Qq ztfzQ`%u9+%xBH$=heJju@v1N7qJ9SlQHacypDPOtZ}@t#>RnnmKf|YwC3U2qTYDHyqlD>TzqWA zhZV{Ib+@6ur;MM(69Vnw@dqw?>)_}>=jUdPL<3INjzSZq)gYyBOC4SwSX)>OhfSuj zGp`Zs%{%c6v-0u96c+l^V$Wh9$i})IuXf~h)Zhs_jArocP5@_WXM5Yy!C|G|PG=!M z6a`DlVxb7|w`w3992`87@z?2G#{Di0jw|EYuX-Y}ab(`u*s!p51IOh=Z5>~gn5xWt zARc0M^>>Dun>$f)-nv^r*mjo1n|^)imG8OD)8oU~*cbrdPcmrr3=Ecke%ATqp3F_v z-T#Lq0t)r^_Fisu*#w@#--nq>%LZ_FFb%>xIyzEPG~M0Z)zrXL=EXjTivk94tx7+B z{OIfJ1IV(8#t_4t2_s_(1Y!u4KtvE;ZT3)46En~EkB*MUJ{0G7II6?Nm&+Cj#J=hp z9gW46kq?<`#RC#6LfpBiXg`8>ZU%x8^-f9@7&&h`DLJ^5tL>5Nr78DJi#?NuJeJni= zawAE}$iRR}$_rI&uq^YyMMA9%9YLX3s|8em3Jt4?T&yUBF1OqB_m8*mqA#zZWWl*7 z=jXA&KxFAQe+dxfTI&fqUb?mSz4Xy#-@ZBgqFLcGXoTzQbCVecFl1;=uxCif@Yq=2 zCe|-LU~O&gK74=^l1d`R!@ZVDbntlyN(W_Hr zn!R@CAAB}yr-IksgqobZd#9@uXyH2XDCXncI~Exra%ov&-NgyzK{cGcWGgQ$#5|%2 z2naQ53qMO-T+ICb-OPnT$Oiz#`9Ap}*Axm1@oM70@Z*-`sWjBr$9T1Mbo98B7xa2w zJ+;$QhGrQOnVp`FdWZMppxI-e1Tq*bzdfAB?tKk_guTs8d_uys>}>!2IgUoPwV`0+ zXOX*{9)^1|RN@T-jumahnlf)PLIfVv%hU5m_xVZc25I>3wF`{u+>nrv0qP)%CP`3% z*+$giuUh6@XVD#J!|o9%q6JnMPC71;?I?A$3_kwGQHZS-@x*LrX(n9g7yo}TZ2hF=KY=RTf{hL*p{Z# z4ORt%-3@?+1I6`%rhfd$8Q8zU$$jPBh5q5*UvK&qYz$4IM zUVCQG&unfYgI^|!+0A|V)#fK?@k-^DkizfYpBcsq{re$1e4?WM7kfV&;g0HLG8GjS zMUAh6u8%MbE~OD}?(SNeo29a%@OcCTRNlk@y{Kn<#5(A~BQ4h`XHTDoMx-%los4ae zotvMR;$hO}@%KwPFeS?AbCk;+bWQ$#rES?-jAvwQ1S_+kJRj7aUlU_WGX0~j&K_r` z-_?z8Jp0$uLhj}Dxf0?^D zhDh2ax~-3aez(aZ>sN2y8U#R%)u5+<&&QJrHk@F@?)Fsnw_mO=mz++#LG3apno#o- zyGhu&D>9=>ut0#ZeWMF>r6KHixOk}8NyhvBWZ>y`pKFl2lOS|12l=W~O(i|_aFdUzc9OOpjS%v2hLRgI8aOCW0_R*x3qy#{g$rH!;ID*LLVZuISG;-TT|O1}_~ zCIktF>XAYN03+%MmY1sw!~dDEqG0lbWq@9)a%wo$~$6>%t1>{LYn)H2*21{&av zA(8A_UL+q@*=X}az`QVI+4OOPZWo~6VPRsiv9psx+~NMQ2i!p>`y^y!(-v<+Xb3_s z*KfD?3AYKu<-&8Cy^@VzkVjl7(nMP6yiG)}KEB z=i8Lrlu4?tuFlGG+8KXnb|+n1$DN$T3WSklWn?rqH}i&ggWu`u4jto8ESZ+73|9`L zW1^obokn9uXC6*K4tqSpS3v_V&hsYMiI$gR^q{JLM0t{a&VEEM?1NKC`UgVz0KxMM z!=uj(r@+_-#<7Ukk-feB7Y4G?0p?uq5ZtO^Kp)q_w3m&JeqF%Gq?94xdBBf~dX=2a zTdFRJfQ)?M?t1F%?v4T4ohupu|LhQXKh2<^4EV;tJCg(BgsiQtJ%b&jQ_qZwxYK6W zwp?Gtb_(tX*tz4=;oA+h=>rEGZd)QBcDy4RbA0m-6Nzal8Tk)#A!vnd^sT1}oA-&e z1@#56vU!BB*V-o+^-q{j=4$@1wJtzUVph%FqAe*YQRoFE!*!u{=XEJv-CuzF3WPi! z9v)P)g>b=OlYbD*{Ii5m=n{@i8LjH&b#=BgVg7~K>T10w!c_45c$GSM{;P39baZzo ztX#baJSb=zir%NY{M&73+|t^5q%2C^!r0hYhMSL1#CZ)amc*Yj7?4!t6Q~?s3>>Yr zY&HPd2R$XF*hB(MV$6ffLy^>{SKhE)iO1_-qoXpKKVoO*1#23-x*-1k-X0#7CMG!S z>>~L1wWp^Vv?>Y;AgWnFKT8#3VHwm#cl48yL2`^tNtpq(i4*UUfnMbgasZi@2)q|E z+mMIU(aXmZ5EJu-*idNo10zI8NQi)tupl0Xlou&)YHEs;lM`S@lI&z;WYM1WfC_E^ z1*&PyRP&v5U!?vTfTI}p4-ezqv8hCDY;7yK<*BKuw?gD^_kMmhOLr>K-R`tTZ9Y$$ zrCg0_msONiv`ZQNBojbOmWd2VQ-l~899l+3ROGnivyA0#SK~bEJi8)VL0>T-HgrG^ zA<|RX(vq=R`o!1kI;iaC$xQrqw`f;rD$j+FtP>2~u?Ex*05(IeXDc*u zBfH+n0ISfM0Z=>(Sy|*;JvkQS(DsiXKi0Hbk7XiPAy`gVXqExt1IVc4XMom?PffX8 z9{eKJXoQEC2OphP={JC@xs@3rjnUtCqX)nL+2CZ1Bt_7b8gZ?jVV*!G2J^W*(A}~z zH>YPn-u%5JBAMM-R!04Wy_A-O?4{^ZR21&e&^Q08kb;6JF#KEA7YgOC%e|J_6=dG! zO}>0aSabloYIE5{L0NNoEB>d(v03d%Z* z$Vp$IRmq4TKf=epo1gnBE_!8pVw?9J>SrbPGj(3e;w>o1%zy%gN69)?z|3DA6rl-( zoYlme=|OQLpKf}AV3tS_#N?2Gb8=t%U4ujB00gocy}H{6d_Hwi=`Q&SDjOZYRq1LBM6m^Lyt zrXG+IPJ~ZNYJf_(z`MBMCaNk)msi?)BeZx@E|k2HXzwkotTc#x_BD1rm-qOr$0Zr* zkm&I7aDxH9tF5i=9PyF}UtF~pYKPrG%=7|NcOezPG_f>Cs1|&=jQ-sdq1Gs>O#VWx zC4GqDxZp@43T9^J&0v}P|EzC83ILqm&y;q}_pUm#<#!3EHQu_r!`ge+| zON|1WsG2`<5LV0af`jg>9C{h=rIq*i6+!6`WAz)0!dLD!l}+$}duDC^s|8@yl6y9R z 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↰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

6=YIE)oAOQqdvZwm=oO7r82v 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 F`VZbp6ukfd diff --git a/docs/assets/random.png b/docs/assets/random.png index 9b8960bd6484ed72716f7f2cac7e12e14bc4a244..fe721a3726c02eea93376b88aee8b2d4a2906c46 100644 GIT binary patch literal 18540 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 diff --git a/docs/assets/structured_output.png b/docs/assets/structured_output.png new file mode 100644 index 0000000000000000000000000000000000000000..db78a15f2dc6786e6bb65db687f2c1e9f1703972 GIT binary patch literal 70059 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%0DoQ6j*}@5gmzG@}-mv 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


v!zvai0w)GsXi(G3sVtp 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 S` … | Pass-through of each input value, for easy chaining | +| `saved_file_path` | Where it was written, if `save_path` is set | +| `` … | Each input passed through unchanged, for easy chaining | -### Jinja2 templates - -Switch `template_type` to **Jinja2** to unlock filters (`| upper`, `| int`, …), conditionals (`{% if %}…{% endif %}`), and loops. +Switch `template_type` to **Jinja2** to unlock filters (`| upper`, `| int`), conditionals, and loops: ![Format String — Jinja2 mode](assets/jinja2.png) -Variables detected in `{{ }}` expressions become input sockets exactly as in Simple mode. See the [Jinja2 documentation](https://jinja.palletsprojects.com/en/latest/) for the full filter/test reference. - --- ## Random Choice -Connect any number of inputs of the same type. Each run picks one at random. Set `seed` for reproducibility. +Wire in any number of same-typed inputs — images, strings, conditioning, anything ComfyUI can carry over a socket — and get one back at random. ![Random Choice](assets/random.png) -- Accepts any ComfyUI type (STRING, IMAGE, CONDITIONING, …) -- Add as many inputs as you like; unused slots are removed automatically when disconnected -- `seed = 0` randomises on every run; any other value locks the selection +`seed = 0` randomises every run; any other value locks the selection. Unused input slots vanish automatically when you disconnect them. --- ## Circuit Breaker -Stops the queue gracefully when a condition isn't met — no crash, no error, just a clean halt. +Stop a queue run cleanly when a condition isn't met, instead of letting a downstream node crash on bad input. ![Circuit Breaker](assets/circuit_breaker.png) -Wire an image (or any trigger) into `trigger` and a boolean into `status`. When `status` is **false** the node raises `InterruptProcessingException`, which tells ComfyUI to stop the current run cleanly. When `status` is **true** the image passes through unchanged. +Wire a trigger (an image, or anything) into `trigger` and a boolean into `status`. `status = false` raises `InterruptProcessingException` — ComfyUI stops the run without an error dialog. `status = true` passes the trigger straight through. -Typical use: skip an expensive upscale step when a quality-check node says the draft is already good enough. +Typical use: skip an expensive upscale pass when an upstream quality-check node says the draft's already good enough. --- -## Ollama +## Local LLMs -Nodes for integrating a local Ollama LLM into your ComfyUI workflow. The host is configured once in **Ollama Client** and threaded through the graph as an `LLM_CLIENT` socket — a generic connection type any future backend's client node can also emit, so the chat/model-management nodes below aren't Ollama-specific. +One set of nodes, two interchangeable backends. Configure a connection once with **Ollama Client** or **LlamaCpp Client** — both output the same `LLM_CLIENT` socket — and every downstream node (model selection, load/unload, chat, structured output, multi-turn history) works exactly the same way regardless of which one you picked. Swapping backends means rewiring one node, not rebuilding your graph. -### Ollama Client node - -Configure the server address once; all downstream nodes inherit it automatically. +### Connect and chat ![Ollama Client](assets/ollama_client.png) -### Model lifecycle (load and unload) - -On memory-constrained machines and single-GPU setups, explicitly loading and unloading the model before and after inference is critical. **LLM Load Model** pins the model into VRAM (`keep_alive=-1`); **LLM Unload Model** evicts it immediately (`keep_alive=0`), freeing memory for image generation or other models. - -![Ollama Load / Unload](assets/ollama_lifecycle.png) - -The correct chain is **Load → Chat → Unload**, enforced through data dependencies: - -1. Wire `LLMLoadModel.model_name` → `ChatCompletion.model`. This creates the data dependency that guarantees Load runs before Chat and passes the model name into the Chat node's plain-string `model` input. -2. Wire `ChatCompletion.model_name` → `LLMUnloadModel.model`. This guarantees Unload runs after Chat completes. -3. Optionally wire `ChatCompletion.response` → `LLMUnloadModel.passthrough` — Unload returns the response unchanged so the rest of your workflow can still consume it. - -### Minimal chat workflow - -1. **Ollama Client** → set host (default `http://localhost:11434`) -2. **LLM Model Selector** → pick a model from the live dropdown (or type/wire a model name directly into Chat Completion's `model` input) -3. **Chat Completion** → wire client + model + prompt; the response appears inline in the node body and is also available as an output socket +1. **Ollama Client** (default `http://localhost:11434`) or **LlamaCpp Client** (default `http://localhost:8080`) — set the host. +2. **LLM Model Selector** — pick a model from the live dropdown, or wire a model name straight into Chat Completion. +3. **Chat Completion** — wire in client, model, and prompt. The response renders inline in the node and is also available as an output socket. ![Chat Completion](assets/ollama_chat.png) -Wire multiple nodes together for a complete end-to-end workflow: +A complete graph looks like this: -![Ollama Full Workflow](assets/ollama_workflow.png) +![Full LLM workflow](assets/ollama_workflow.png) -### Option nodes +### Manual memory management -Chain any combination of **Ollama Option —** nodes before Chat Completion to override inference parameters: +Single-GPU and memory-constrained setups need explicit control over what's resident in VRAM. **LLM Load Model** pins a model into memory; **LLM Unload Model** evicts it immediately, freeing room for the next model or the rest of your image pipeline. -| Option node | Ollama param | -|-------------|-------------| +![Load / Unload lifecycle](assets/ollama_lifecycle.png) + +The **Load → Chat → Unload** chain is enforced by data dependencies, not by convention: + +1. `LLMLoadModel.model_name` → `ChatCompletion.model` — guarantees Load runs before Chat, and feeds the model name straight in. +2. `ChatCompletion.model_name` → `LLMUnloadModel.model` — guarantees Unload runs after Chat completes. +3. *(Optional)* `ChatCompletion.response` → `LLMUnloadModel.passthrough` — Unload returns the response unchanged, so the rest of your workflow can still consume it. + +### Tuning generation + +Chain any combination of **Ollama Option —** nodes ahead of Chat Completion to override inference parameters: + +![Ollama Option nodes](assets/ollama_options.png) + +| Option node | Parameter | +|-------------|-----------| | Temperature | `temperature` | | Seed | `seed` | | Max Tokens | `num_predict` | | Top P | `top_p` | | Top K | `top_k` | | Repeat Penalty | `repeat_penalty` | -| Extra Body | arbitrary JSON merged into options | - -![Ollama Option Nodes](assets/ollama_options.png) +| Extra Body | arbitrary JSON, merged into `options` | ### Multi-turn conversations -`OLLAMA_HISTORY` flows out of Chat Completion as a list of `{"role", "content"}` dicts. Wire it back into the next Chat Completion for multi-turn conversations, or inspect it with **Ollama Debug History** / **Ollama History Length**. +`OLLAMA_HISTORY` flows out of Chat Completion as a `{"role", "content"}` list. Feed it back into the next Chat Completion call for multi-turn context, or inspect it with **Ollama Debug History** / **Ollama History Length**. -### Upgrading an older workflow +### llama.cpp -If you saved a workflow before this rename, ComfyUI will report the old node types as missing when you reopen it. Reconnect using this mapping, then re-run — behavior is unchanged, only the names and the client socket type are different: +Everything above works unchanged against llama.cpp — swap in a **LlamaCpp Client** and the rest of the graph doesn't know the difference. The one thing llama.cpp needs that Ollama doesn't: **router mode**, a directory of models rather than a single `-m model.gguf`: + +```bash +llama-server --models-dir ./models -c 8192 +``` + +In exchange, router mode gives comfydv a richer live status than Ollama can report — `loading` and `downloading`, not just loaded/unloaded — plus the same explicit load/unload primitives Ollama's nodes already use. + +### Upgrading a workflow saved before this rename + +Nodes were renamed once, to make them backend-generic (`OllamaChatCompletion` → `ChatCompletion`, etc.). If ComfyUI reports old node types as missing when you reopen a saved workflow, reconnect using this table — behavior is unchanged, only the names are: | Old | New | |-----|-----| @@ -153,28 +166,4 @@ If you saved a workflow before this rename, ComfyUI will report the old node typ | `OllamaUnloadModel` | `LLMUnloadModel` | | `OLLAMA_CLIENT` socket | `LLM_CLIENT` socket | -`OllamaClient` keeps its name — just delete and re-add any downstream node showing as missing, then rewire it to the same `OllamaClient` node. - ---- - -## llama.cpp - -A second backend for the same chat/model-management nodes documented above — **LlamaCpp Client** is the only new node; everything else (Chat Completion, LLM Model Selector, LLM Load Model, LLM Unload Model, structured output, multi-turn history) works unchanged, because they don't know or care which backend they're talking to. - -### Prerequisite: router mode - -`llama-server` needs to be launched in **router mode** — a directory of models, not a single `-m model.gguf`: - -```bash -llama-server --models-dir ./models -c 8192 -``` - -This gives `comfydv` live model status (including `loading`/`downloading`, not just loaded/unloaded — a richer picture than Ollama can report) and explicit load/unload, the same way the Ollama nodes already work. - -### LlamaCpp Client node - -Configure the server address once (default `http://localhost:8080`); every downstream node inherits it automatically — same pattern as Ollama Client, same `LLM_CLIENT` socket. - -### Switching an existing workflow from Ollama to llama.cpp - -Replace the **Ollama Client** node with an **LlamaCpp Client** node, pointed at your running `llama-server`. Nothing else changes — same Chat Completion node, same Load/Unload nodes, same structured-output behavior. That's the entire point of sharing one `LLM_CLIENT` socket type across backends. +`OllamaClient` kept its name — delete and re-add any node showing as missing, then rewire it to the same `OllamaClient` node. diff --git a/scripts/take_screenshots.py b/scripts/take_screenshots.py index c1bf86c..21e182c 100644 --- a/scripts/take_screenshots.py +++ b/scripts/take_screenshots.py @@ -117,7 +117,11 @@ async def _capture( pad: int = 60, ) -> None: """Screenshot the canvas, optionally cropped tightly around the node.""" - canvas = page.locator("canvas#graph-canvas, canvas").first + # ComfyUI's frontend added a minimap canvas since this script was last + # verified — it appears before #graph-canvas in DOM order, so a bare + # union selector's `.first` silently grabbed the 250x200 minimap + # instead of the real graph. Target #graph-canvas explicitly. + canvas = page.locator("canvas#graph-canvas") box = await canvas.bounding_box() if box is None: await page.screenshot(path=str(out)) @@ -307,13 +311,13 @@ async def scene_ollama_client(page: Page, out: Path) -> None: async def scene_ollama_chat(page: Page, out: Path) -> None: - """OllamaChatCompletion — showing the live model dropdown and prompt widget.""" + """ChatCompletion — showing the live model dropdown and prompt widget.""" await _clear(page) info = await page.evaluate( """ async () => { - const node = LiteGraph.createNode("OllamaChatCompletion"); + const node = LiteGraph.createNode("ChatCompletion"); node.pos = [60, 60]; window.app.graph.add(node); @@ -327,7 +331,7 @@ async def scene_ollama_chat(page: Page, out: Path) -> None: } else { // Manually fetch and populate the COMBO try { - const resp = await fetch("/dv/ollama/models?host=http://host.docker.internal:11434"); + const resp = await fetch("/dv/ollama/models?host=http://host.docker.internal:11434&backend=ollama"); if (resp.ok) { const data = await resp.json(); const models = data.models || []; @@ -357,8 +361,142 @@ async def scene_ollama_chat(page: Page, out: Path) -> None: await _capture(page, out, info["pos"], info["size"]) +async def scene_structured_output(page: Page, out: Path) -> None: + """ChatCompletion with structured_output enabled — the live dynamic + output sockets (summary/sentiment/confidence) that appear as soon as + output_schema is edited, no graph run required. Exercises the real + js/ollama.js widget callbacks (structuredWidget.callback / + schemaWidget.callback), the same code path a live user's checkbox click + and schema edit trigger — not a hand-simulated approximation.""" + await _clear(page) + + schema = ( + '{"type": "object", "properties": ' + '{"summary": {"type": "string"}, ' + '"sentiment": {"type": "string"}, ' + '"confidence": {"type": "number"}}, ' + '"required": ["summary", "sentiment", "confidence"]}' + ) + + info = await page.evaluate( + f""" + async () => {{ + const node = LiteGraph.createNode("ChatCompletion"); + node.pos = [60, 60]; + window.app.graph.add(node); + + const promptWidget = node.widgets.find(w => w.name === "prompt"); + if (promptWidget) promptWidget.value = + "The new render pipeline cut our export time in half and the team is thrilled."; + + const structuredWidget = node.widgets.find(w => w.name === "structured_output"); + const schemaWidget = node.widgets.find(w => w.name === "output_schema"); + if (structuredWidget) structuredWidget.value = true; + if (schemaWidget) schemaWidget.value = {json.dumps(schema)}; + + // Fire the same callbacks js/ollama.js attaches on node creation — + // real widget-edit code path, not a re-implementation. + if (structuredWidget?.callback) await structuredWidget.callback(true); + if (schemaWidget?.callback) await schemaWidget.callback({json.dumps(schema)}); + + await new Promise(r => setTimeout(r, 600)); + window.app.canvas.setDirty(true, true); + window.app.canvas.draw(true, true); + return {{ pos: [node.pos[0], node.pos[1]], size: [node.size[0], node.size[1]] }}; + }} + """ + ) + + await asyncio.sleep(0.8) + await _redraw(page) + await _frame_node(page, info["pos"], info["size"]) + await _capture(page, out, info["pos"], info["size"]) + + +async def scene_llamacpp_client(page: Page, out: Path) -> None: + """LlamaCppClient — single node showing the router-mode host URL widget.""" + await _clear(page) + + info = await page.evaluate( + """ + () => { + const node = LiteGraph.createNode("LlamaCppClient"); + node.pos = [60, 60]; + window.app.graph.add(node); + const hostWidget = node.widgets && node.widgets.find(w => w.name === "host"); + if (hostWidget) hostWidget.value = "http://localhost:8080"; + window.app.canvas.setDirty(true, true); + window.app.canvas.draw(true, true); + return { pos: [node.pos[0], node.pos[1]], size: [node.size[0], node.size[1]] }; + } + """ + ) + + await _frame_node(page, info["pos"], info["size"]) + await _capture(page, out, info["pos"], info["size"]) + + +async def scene_llamacpp_workflow(page: Page, out: Path) -> None: + """LlamaCppClient → the same ChatCompletion node the Ollama workflow + uses, unmodified — the actual point of the adapter pattern. Attempts a + live model-list refresh via backend=llamacpp against + host.docker.internal:8080; degrades gracefully (same as a real user's + "no server running yet" state) if nothing is listening there.""" + await _clear(page) + + info = await page.evaluate( + """ + async () => { + const graph = window.app.graph; + + const client = LiteGraph.createNode("LlamaCppClient"); + client.pos = [40, 60]; + graph.add(client); + const hostWidget = client.widgets.find(w => w.name === "host"); + if (hostWidget) hostWidget.value = "http://host.docker.internal:8080"; + + const chat = LiteGraph.createNode("ChatCompletion"); + chat.pos = [380, 40]; + graph.add(chat); + const promptWidget = chat.widgets.find(w => w.name === "prompt"); + if (promptWidget) promptWidget.value = "Write a haiku about ComfyUI."; + + client.connect(0, chat, 0); + + try { + const resp = await fetch("/dv/ollama/models?host=http://host.docker.internal:8080&backend=llamacpp"); + if (resp.ok) { + const data = await resp.json(); + const models = data.models || []; + if (models.length) { + const modelWidget = chat.widgets.find(w => w.name === "model"); + if (modelWidget) modelWidget.value = models[0]; + } + } + } catch (e) {} + + await new Promise(r => setTimeout(r, 800)); + window.app.canvas.setDirty(true, true); + window.app.canvas.draw(true, true); + + const nodes = [client, chat]; + const minX = Math.min(...nodes.map(n => n.pos[0])) - 20; + const minY = Math.min(...nodes.map(n => n.pos[1])) - 20; + const maxX = Math.max(...nodes.map(n => n.pos[0] + n.size[0])) + 20; + const maxY = Math.max(...nodes.map(n => n.pos[1] + n.size[1])) + 20; + return { pos: [minX, minY], size: [maxX - minX, maxY - minY] }; + } + """ + ) + + await asyncio.sleep(1.0) + await _redraw(page) + await _frame_node(page, info["pos"], info["size"], scale=1.0) + await _capture(page, out, info["pos"], info["size"], scale=1.0) + + async def scene_ollama_workflow(page: Page, out: Path) -> None: - """Full mini-workflow: OllamaClient → OllamaChatCompletion + Temperature + Seed options.""" + """Full mini-workflow: OllamaClient → ChatCompletion + Temperature + Seed options.""" await _clear(page) info = await page.evaluate( @@ -386,7 +524,7 @@ async def scene_ollama_workflow(page: Page, out: Path) -> None: if (twSeed) twSeed.value = 42; // 4. ChatCompletion — right - const chat = LiteGraph.createNode("OllamaChatCompletion"); + const chat = LiteGraph.createNode("ChatCompletion"); chat.pos = [380, 100]; graph.add(chat); const twPrompt = chat.widgets && chat.widgets.find(w => w.name === "prompt"); @@ -409,7 +547,7 @@ async def scene_ollama_workflow(page: Page, out: Path) -> None: // Refresh model dropdowns for chat node try { - const resp = await fetch("/dv/ollama/models?host=http://host.docker.internal:11434"); + const resp = await fetch("/dv/ollama/models?host=http://host.docker.internal:11434&backend=ollama"); if (resp.ok) { const data = await resp.json(); const models = data.models || []; @@ -466,25 +604,25 @@ async def scene_ollama_lifecycle(page: Page, out: Path) -> None: if (hostWidget) hostWidget.value = "http://localhost:11434"; // OllamaLoadModel — generous gap right of client - const load = LiteGraph.createNode("OllamaLoadModel"); + const load = LiteGraph.createNode("LLMLoadModel"); load.pos = [380, 80]; graph.add(load); // OllamaChatCompletion — wide node, plenty of space to the right of load - const chat = LiteGraph.createNode("OllamaChatCompletion"); + const chat = LiteGraph.createNode("ChatCompletion"); chat.pos = [720, 40]; graph.add(chat); const twPrompt = chat.widgets && chat.widgets.find(w => w.name === "prompt"); if (twPrompt) twPrompt.value = "Describe this image in one sentence."; // OllamaUnloadModel — far right, vertically offset to match chat's outputs - const unload = LiteGraph.createNode("OllamaUnloadModel"); + const unload = LiteGraph.createNode("LLMUnloadModel"); unload.pos = [1200, 280]; graph.add(unload); // Populate model dropdowns from live Ollama try { - const resp = await fetch("/dv/ollama/models?host=http://host.docker.internal:11434"); + const resp = await fetch("/dv/ollama/models?host=http://host.docker.internal:11434&backend=ollama"); if (resp.ok) { const data = await resp.json(); const models = data.models || []; @@ -604,6 +742,11 @@ SCENES = [ ("ollama_workflow.png", scene_ollama_workflow), ("ollama_options.png", scene_ollama_options), ("ollama_lifecycle.png", scene_ollama_lifecycle), + # Structured output (ADR-007 / pydantic-ai) + ("structured_output.png", scene_structured_output), + # llama.cpp (spec 008) + ("llamacpp_client.png", scene_llamacpp_client), + ("llamacpp_workflow.png", scene_llamacpp_workflow), ] From 16b7e944f095a2d72729e6ed6cc945d710dc815e Mon Sep 17 00:00:00 2001 From: James Veitch <1722315+darth-veitcher@users.noreply.github.com> Date: Sat, 11 Jul 2026 18:02:57 +0100 Subject: [PATCH 10/10] fix(tests): make the import-compat proof order-independent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit beacon-reviewer caught a real gap: tests/test_comfyui_import_compat.py ERRORed (not passed) when run in isolation or under a file-sharded runner — the autouse _clear_ollama_caches fixture from conftest.py does `from comfydv._llm.ollama_provider import ...`, and this file was the one case where nothing had already bound `comfydv` in sys.modules correctly first, so it resolved to the wrong package. Only the full single-process suite happened to be green. Fixed by shadowing that fixture with a local no-op override scoped to this module: these tests exercise package import resolution itself, not OllamaProvider/ChatCompletion state, so there is nothing for the original fixture to reset here — and depending on it made the test order-dependent on an unrelated file's import order, which is exactly the kind of fragility this file exists to guard against. Verified: passes standalone (`pytest tests/test_comfyui_import_compat.py`) and as part of the full suite. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_0132ojafeazQ3ephcBejEWFj --- tests/test_comfyui_import_compat.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/test_comfyui_import_compat.py b/tests/test_comfyui_import_compat.py index 2a6cba3..406546f 100644 --- a/tests/test_comfyui_import_compat.py +++ b/tests/test_comfyui_import_compat.py @@ -24,8 +24,25 @@ import sys import textwrap from pathlib import Path +import pytest + REPO_ROOT = Path(__file__).parent.parent + +@pytest.fixture(autouse=True) +def _clear_ollama_caches(): + """Shadow conftest.py's autouse fixture of the same name for this module + only. That fixture's own setup does `from comfydv._llm.ollama_provider + import ...` — this file's tests are the exact reproduction of an + environment where `comfydv` resolving correctly can't be assumed (that's + the point of the file), so depending on it for an unrelated cache-reset + would make these tests order-dependent on whichever other test file + happens to import `comfydv` "the normal way" first in the session. These + tests touch no OllamaProvider/ChatCompletion state, so there is nothing + to reset.""" + yield + + _SUBPROCESS_SCRIPT = textwrap.dedent( """ import sys