urirun-llm-runtime
AI Cost Tracking
- 🤖 LLM usage: $0.3615 (32 commits)
- 👤 Human dev: ~$1426 (14.3h @ $100/h, 30min dedup)
Generated on 2026-07-19 using openrouter/qwen/qwen3-coder-next
Canonical LLM-facing project for the if-uri URI process execution runtime.
Repo: https://github.com/if-uri/urirun-llm-runtime
LLM clients should load this repository (or its raw docs) as project context so generated code uses POST /run with URI processes — never raw subprocess / GUI hacks.
What this repo contains
| Path | Purpose |
|---|---|
docs/llm/first_system_prompt.md |
Assembled system prompt (topology + routes + contract) |
docs/llm/runtime_semantics.md |
How POST /run works |
docs/llm/process_schema.json |
JSON Schema for urirun:processes blocks |
docs/openapi.yaml |
Transport API contract |
urirun_llm_runtime/ |
Python executor, process runner, validators |
runtime/docker-compose.yml |
Real if-uri node (requires if-uri clone) |
docker/ |
Lightweight mock node for offline CI |
.github/workflows/ci.yml |
Blocking gates — merge fails if any gate fails |
LLM consumption (raw URLs)
https://raw.githubusercontent.com/if-uri/urirun-llm-runtime/main/docs/llm/first_system_prompt.md
https://raw.githubusercontent.com/if-uri/urirun-llm-runtime/main/docs/llm/runtime_semantics.md
https://raw.githubusercontent.com/if-uri/urirun-llm-runtime/main/docs/llm/route_catalog.yaml
https://raw.githubusercontent.com/if-uri/urirun-llm-runtime/main/docs/openapi.yaml
Or in Python:
from urirun_llm_runtime import build_first_system_prompt, docs_index
print(build_first_system_prompt())
print(docs_index())
LLM output format
```urirun:processes
[
{
"id": "step-1",
"name": "Diagnose KVM",
"actor": "script",
"uri": "kvm://host/doctor/query/report",
"payload": {},
"depends_on": []
}
]
```
Glue code (allowed)
from urirun_llm_runtime import Executor
def run(ctx=None):
return Executor("http://host-node:8765").execute("kvm://host/env/query/profile")
CLI
Installing the package provides a urirun-llm command (also python -m urirun_llm_runtime):
urirun-llm health # GET {node}/health
urirun-llm routes # GET {node}/routes
urirun-llm execute kvm://host/env/query/profile # POST {node}/run for one URI
urirun-llm run plan.json # execute a urirun:processes plan (file or -)
urirun-llm validate plan.json # parse + validate a plan, no execution
urirun-llm lint examples/glue # anti-subprocess CI gate over glue
urirun-llm prompt --ticket "check domains" # print the first LLM system prompt
The node URL comes from --node or $URIRUN_NODE_URL (default http://localhost:8765).
execute/run default to --mode execute; pass --mode dry-run to preview.
Local development
pip install -e ".[dev]"
python scripts/assemble_llm_prompt.py
pytest -q
python scripts/validate_examples.py
python scripts/validate_processes.py
Mock runtime (no if-uri)
docker compose up -d --build urirun-mock
curl -sf http://127.0.0.1:8765/health
Real runtime (if-uri monorepo)
git clone https://github.com/if-uri/if-uri ../if-uri # sibling of this repo
echo "IF_URI_ROOT=../if-uri" > runtime/.env
docker compose -f runtime/docker-compose.yml up -d host-node
docker compose -f runtime/docker-compose.yml --profile smoke run --rm uri-smoke
CI gates (blocking)
- unit-and-gates — pytest, glue lint, process JSON schema, prompt artifact
- mock-runtime-smoke —
POST /runon mock node - if-uri-runtime-smoke — builds real if-uri
host-node, runs URI smoke + live Executor
All three must pass on main.
Related
- if-uri — monorepo with connectors and dashboard
- markpact + marksync prompt — orchestration primitives
License
Licensed under Apache-2.0.
Metadata
Release files for urirun-llm-runtime 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| urirun_llm_runtime-0.2.3.tar.gz | 16.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| urirun_llm_runtime-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.4 kB
Release files / urirun_llm_runtime-0.2.3.tar.gz
| Download URL | urirun_llm_runtime-0.2.3.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
214bbe3ae59d4b8c3c9a3ce68a5f6f55440d73e4ac684e3d4c4e86b642bb049a
|
|
BLAKE2b-256 checksum How to use checksums |
a0369789251373f8c2010a237711b60cb7d8d87d1f6993d12c0d4de380cf67fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / urirun_llm_runtime-0.2.3-py3-none-any.whl
| Download URL | urirun_llm_runtime-0.2.3-py3-none-any.whl |
|---|---|
| Size | 13.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd6c34e80d76b737285e0f78b0e84e2cb514be7bc3407b0f519d4241e1166c67
|
|
BLAKE2b-256 checksum How to use checksums |
403f0a4bbc136f405736abc3aa3efee4fc133d06aa1b5be8c58332808e4366f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|