spawnllm 0.17.1__tar.gz → 0.17.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {spawnllm-0.17.1 → spawnllm-0.17.2}/PKG-INFO +1 -1
- {spawnllm-0.17.1 → spawnllm-0.17.2}/pyproject.toml +1 -1
- {spawnllm-0.17.1 → spawnllm-0.17.2}/pyproject.toml.orig +1 -1
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/_core/__init__.py +7 -2
- {spawnllm-0.17.1 → spawnllm-0.17.2}/LICENSE +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/README.md +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/__init__.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/__main__.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/_core/spawnllm_core.wasm +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/__init__.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/apple.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/base.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/claude.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/claude_sdk.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/codex.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/gemini.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/mlx.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/openai_endpoint.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/backends/registry.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/call.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/cli.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/decide.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/extract.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/mlx/__init__.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/mlx/codec.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/mlx/engine.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/mlx/fuse.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/mlx/patches.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/proc.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/py.typed +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/response.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/run.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/spec.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/structured.py +0 -0
- {spawnllm-0.17.1 → spawnllm-0.17.2}/spawnllm/types.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "spawnllm"
|
|
3
3
|
# Inert sentinel: the real version is set from the release tag (uv version --frozen).
|
|
4
|
-
version = "0.17.
|
|
4
|
+
version = "0.17.2"
|
|
5
5
|
description = "Delete your subprocess wrappers around claude, codex, and gemini."
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
license = "MIT"
|
|
@@ -20,9 +20,8 @@ from importlib.resources import files
|
|
|
20
20
|
from pathlib import Path
|
|
21
21
|
from typing import TYPE_CHECKING, Any
|
|
22
22
|
|
|
23
|
-
from wasmtime import Engine, Func, Linker, Memory, Module, Store, Trap, WasiConfig, WasmtimeError
|
|
24
|
-
|
|
25
23
|
if TYPE_CHECKING:
|
|
24
|
+
from wasmtime import Func, Memory, Store
|
|
26
25
|
from wasmtime._instance import InstanceExports
|
|
27
26
|
|
|
28
27
|
WASM_NAME = "spawnllm_core.wasm"
|
|
@@ -59,6 +58,8 @@ class Runtime:
|
|
|
59
58
|
stderr_path: Path
|
|
60
59
|
|
|
61
60
|
def invoke(self, request_json: str) -> str:
|
|
61
|
+
from wasmtime import Trap, WasmtimeError
|
|
62
|
+
|
|
62
63
|
request = request_json.encode()
|
|
63
64
|
request_len = len(request)
|
|
64
65
|
request_ptr = self.alloc(self.store, request_len)
|
|
@@ -90,6 +91,8 @@ def export[T](exports: InstanceExports, name: str, kind: type[T]) -> T:
|
|
|
90
91
|
|
|
91
92
|
|
|
92
93
|
def build() -> Runtime:
|
|
94
|
+
from wasmtime import Engine, Func, Linker, Memory, Module, Store, WasiConfig
|
|
95
|
+
|
|
93
96
|
blob = files(__package__).joinpath(WASM_NAME)
|
|
94
97
|
if not blob.is_file():
|
|
95
98
|
raise FileNotFoundError(MISSING_BLOB)
|
|
@@ -145,6 +148,8 @@ def trap_message(runtime: Runtime, error: Exception) -> str:
|
|
|
145
148
|
|
|
146
149
|
|
|
147
150
|
def dispatch_raw(request_json: str) -> str:
|
|
151
|
+
from wasmtime import Trap, WasmtimeError
|
|
152
|
+
|
|
148
153
|
with LOCK:
|
|
149
154
|
runtime = load()
|
|
150
155
|
try:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|