From 2d24ede42ed55a06022cd4c30daa912dcd4c4ed8 Mon Sep 17 00:00:00 2001 From: da03 Date: Wed, 7 Oct 2026 21:30:38 -0400 Subject: [PATCH 1/4] Bump SDK version to 0.4.13 --- programasweights/__init__.py | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/programasweights/__init__.py b/programasweights/__init__.py index 95f7f37..7efc8ea 100644 --- a/programasweights/__init__.py +++ b/programasweights/__init__.py @@ -31,7 +31,7 @@ from importlib.metadata import version as _meta_version __version__ = _meta_version("programasweights") except Exception: - __version__ = "0.4.12" + __version__ = "0.4.13" from ._inputs import Image from ._result import FunctionResult diff --git a/pyproject.toml b/pyproject.toml index f0e8d32..87591ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "programasweights" -version = "0.4.12" +version = "0.4.13" description = "Compile natural language specifications into neural programs that run locally via llama.cpp." readme = "PYPI_README.md" requires-python = ">=3.8" From cf4b5b5be8f89a89660e7ea84ecac3ad595a1fb6 Mon Sep 17 00:00:00 2001 From: da03 Date: Wed, 7 Oct 2026 21:47:23 -0400 Subject: [PATCH 2/4] Document SDK 0.4.13 release --- CHANGELOG.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index febdc62..c4675a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,12 @@ # Changelog -## Unreleased - -- Add `prompt_template=` for local adapter-free text and image interpreters, - using shared numbered positional placeholders with repeatable, ordered slots. -- Execute complete image prompt templates directly, without an added chat - wrapper. Older experimental image bundles must be re-exported with the - `rendered_text` / `{INPUT_N}` contract and a complete prompt template. -- Preserve existing compiled text templates, call conventions and prefix caches. +## 0.4.13 (2026-10-07) + +- Add `prompt_template=` for local base models (no adapter applied), with + text and image inputs. +- Use `{INPUT_0}`, `{INPUT_1}`, etc. to place, repeat, or reorder inputs + in a prompt. +- Image `.paw` bundles use the `rendered_text` / `{INPUT_N}` template format. ## 0.4.12 (2026-10-07) From 0a73dba88848a064bd158043b274d4611676e8ec Mon Sep 17 00:00:00 2001 From: da03 Date: Wed, 7 Oct 2026 21:49:21 -0400 Subject: [PATCH 3/4] Mark prompt templates available in SDK 0.4.13 --- PYPI_README.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PYPI_README.md b/PYPI_README.md index f9821b5..44cc885 100644 --- a/PYPI_README.md +++ b/PYPI_README.md @@ -125,7 +125,7 @@ Install the optional image dependencies: pip install "programasweights[vision]" --extra-index-url https://pypi.programasweights.com/simple/ ``` -The unreleased numbered-template API lets you specify the complete prompt for +Use `prompt_template=` (SDK 0.4.13+) to specify the complete prompt for text-only or image-capable base models. For Qwen3.5-0.8B with no adapter: ```python diff --git a/README.md b/README.md index f4e25c0..07ac8f8 100644 --- a/README.md +++ b/README.md @@ -125,7 +125,7 @@ Install the optional image dependencies: pip install "programasweights[vision]" --extra-index-url https://pypi.programasweights.com/simple/ ``` -The unreleased numbered-template API lets you specify the complete prompt for +Use `prompt_template=` (SDK 0.4.13+) to specify the complete prompt for text-only or image-capable base models. For Qwen3.5-0.8B with no adapter: ```python From dd47eaf3cb122864d24712ab3b5e7477d3e8b763 Mon Sep 17 00:00:00 2001 From: da03 Date: Wed, 7 Oct 2026 22:27:50 -0400 Subject: [PATCH 4/4] Update API reference for SDK 0.4.13 --- docs/api-reference/python-sdk.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api-reference/python-sdk.md b/docs/api-reference/python-sdk.md index e598a30..87fae1d 100644 --- a/docs/api-reference/python-sdk.md +++ b/docs/api-reference/python-sdk.md @@ -43,7 +43,7 @@ bundle directly. Required runtime metadata and base models are cached for reuse. | `offline` | Use only local files/cache and make zero network calls; fail if required validated assets are missing. `PAW_OFFLINE=1` has the same effect. | | `remote` | Run hosted inference without downloading model assets (default `False`). Accepts a `Program` object, ID, or slug. Cannot be combined with offline mode, local file paths, `interpreter`, or non-default local runtime options. | | `interpreter` | Advanced adapter-free mode only. Must be passed by keyword and only when `program_id` is explicitly `None`. Supported values are `Qwen/Qwen3-0.6B`, `gpt2`, and `Qwen/Qwen3.5-0.8B`. | -| `prompt_template` | Unreleased. Optional complete numbered template for a local base interpreter. Pass by keyword with `program_id=None`. Works with text-only and image-capable models. Cannot override a compiled bundle or be used with `remote=True`. | +| `prompt_template` | SDK 0.4.13+. Optional complete numbered template for a local base interpreter. Pass by keyword with `program_id=None`. Works with text-only and image-capable models. Cannot override a compiled bundle or be used with `remote=True`. | For existing local text-only programs and text base interpreters without an explicit `prompt_template`, the returned callable accepts: @@ -153,7 +153,7 @@ The Qwen3 interpreter uses its chat template with thinking disabled. GPT-2 uses the input as a raw prompt. These defaults are unchanged when `prompt_template` is omitted. -#### Complete numbered templates (unreleased) +#### Complete numbered templates (SDK 0.4.13+) For a local base model, pass `prompt_template=` when loading the function to specify the complete prompt. This option works for both text-only and @@ -213,8 +213,8 @@ inputs and keyword generation options described above. ### Local text/image calls -Install `programasweights[vision]` to use Qwen3.5-0.8B. With the unreleased -numbered-template API, order images and text through the complete template: +Install `programasweights[vision]` to use Qwen3.5-0.8B. Use +`prompt_template=` (SDK 0.4.13+) to order images and text: ```python prompt = (