Charter rein-openweights

Agentic tool-use harness for current open-weight models via OpenRouter/
llm-connect, as an alternative to frontier-model-vendor harnesses
(Claude Code, Grok CLI, Codex/GPT CLI). Chartered by glas-harness
ADR-001. Local scaffold only, no Forgejo remote yet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-07-26 12:29:06 +02:00
commit ac5407a83e
3 changed files with 138 additions and 0 deletions

50
INTENT.md Normal file
View file

@ -0,0 +1,50 @@
# INTENT
> Why rein-openweights exists, its boundary, and what it must never
> become. Established by glas-harness
> `docs/adr/ADR-001-rein-harness-family.md`.
## Why it exists
Every current agent harness in the ecosystem (Claude Code, Grok CLI,
Codex/GPT CLI) is a frontier-model-vendor harness: it only drives that
vendor's own model. There is no way to run a current open-weight model
through an equivalent agentic tool-use loop (plan → tool call → observe →
repeat, with a bounded tool policy) without building one from scratch per
occasion.
rein-openweights exists to be that harness: one agentic loop, model
supplied via OpenRouter (through `llm-connect`), usable anywhere a
rein-aharness-equivalent session is wanted but a frontier-vendor
dependency is not — cost-sensitive workloads, offline/degraded-network
tolerance, or simply comparing open-weight model capability against
frontier baselines on the same task.
## Governing principle
It is a **rein** — a concrete harness backend under glas-harness's
router, implementing the same harness contract as `rein-aharness`
(session lifecycle, tool dispatch + policy, sandbox consumption via
sand-boxer, State Hub reporting). It does not reimplement any of that
framework machinery itself; glas-harness owns the contract, this repo
owns the open-weight-model-specific agentic loop and tool execution.
## What it must never become
- **Not a model router.** Choosing which OpenRouter model to use for a
given task, pricing, and fallback stays in `llm-connect`. This repo
consumes `llm-connect`, it does not reimplement provider routing.
- **Not a second harness framework.** Session semantics, tool policy
schema, sandbox consumption, and audit reporting are glas-harness's
contract (`GLAS-WP-0001-T01`) — this repo implements it, not forks it.
- **Not a sandbox provisioner.** Isolation comes from sand-boxer via
glas-harness, the same as every other rein.
- **Not tenant-specific logic.** Anything specific to one consumer
belongs in that consumer's configuration, not hardcoded here.
## Status
Charter + local scaffold only. See `workplans/REIN-OW-WP-0001-bootstrap.md`
for the first concrete milestone (minimal tool-use loop against one
OpenRouter open-weight model, same starter tool surface as
rein-aharness's `green-commit-only` profile).

11
README.md Normal file
View file

@ -0,0 +1,11 @@
# rein-openweights
An agentic tool-use harness that drives **current open-weight models via
OpenRouter** (through `llm-connect`), as an alternative to the
frontier-model-vendor harnesses (Claude Code, Grok CLI, Codex/GPT CLI).
Part of the glas-harness "rein" family — see
[glas-harness ADR-001](../glas-harness/docs/adr/ADR-001-rein-harness-family.md)
and this repo's [workplans/REIN-OW-WP-0001](workplans/REIN-OW-WP-0001-bootstrap.md).
Not yet pushed to Forgejo — local scaffold only.

View file

@ -0,0 +1,77 @@
---
id: REIN-OW-WP-0001
title: "Bootstrap: minimal open-weight agentic loop"
status: proposed
---
First working milestone for rein-openweights: prove an agentic tool-use
loop against a current open-weight model via OpenRouter/llm-connect,
comparable in scope to rein-aharness's `green-commit-only` profile, ready
to implement the glas-harness rein contract once
`glas-harness/GLAS-WP-0001-T01` defines it.
## Task: Pick the starter open-weight model + OpenRouter path
Confirm `llm-connect` already supports the intended model class (check
its existing OpenRouter integration, used today by rein-aharness's
mail-triage/brief-daily paths for structured JSON — but not for a
multi-turn tool-use loop). Identify gaps: streaming tool-call support,
function-calling schema compatibility for the chosen open-weight model.
```task
id: REIN-OW-WP-0001-T01
status: todo
priority: high
```
## Task: Minimal agentic loop
Implement plan → tool call → observe → repeat with a hard tool allow-list
matching rein-aharness's `green-commit-only` (Read/Write/Edit/Glob/Grep +
local git add/commit/status/log/diff, no push/network/shell), bounded by
a turn/token budget (reuse `llm-connect`'s `BudgetTracker` the way
rein-aharness's runner does).
```task
id: REIN-OW-WP-0001-T02
status: todo
priority: high
```
## Task: Success criterion + reporting
Mirror rein-aharness's model: a local git commit is the sole success
signal, State Hub progress/token event on completion, metrics written in
a comparable format so the two reins are measurable side by side.
```task
id: REIN-OW-WP-0001-T03
status: todo
priority: medium
```
## Task: Credential brokering
Resolve per glas-harness `GLAS-WP-0001-T06`: OpenRouter/llm-connect
credential acquisition either brokered by glas-harness or done directly
here via OpenBao/ops-warden. Do not hardcode a choice before that ADR
addendum lands.
```task
id: REIN-OW-WP-0001-T04
status: todo
priority: medium
```
## Task: Forgejo repo creation
This repo is local-only. Create `coulomb/rein-openweights.git` on
Forgejo and wire the remote once T02 has something worth pushing —
coordinate with the operator (repo creation is not something this
session can do unattended).
```task
id: REIN-OW-WP-0001-T05
status: todo
priority: low
```