Skip to content

Commit 5d07ea8

Browse files
committed
merge: v0.5.2 OAI-EXTRACT — delete in-tree oai-runner
Pure surface-shrink (~5500 LOC deleted). animus-provider-oai-agent v0.1.3 ships with both the plugin binary and the standalone runner binary as SEPARATE release archives; the in-tree crates/oai-runner has been redundant. Codex round 1 caught two real issues: - P1 Dockerfile path: 'animus plugin install' creates a flat plugin binary, not the nested 'bin/' layout. The Dockerfile check that asserts the runner binary exists will fail. - P2 Resolver: only checks the canonical global plugin dir; does not consult plugins.yaml or project-local plugin install dirs. Both reflect an architectural gap: 'animus plugin install' is currently single-binary-per-plugin, but the OAI plugin ships TWO binaries. After install, the runner binary is not present on disk anywhere. Sami accepted this gap and authorized the merge; v0.6 follow-up will add multi-binary plugin install (or publish animus-oai-runner as its own repo). Existing operators may need to manually populate the runner binary until the gap closes. Branch: worktree-agent-ae40170c16f8dd6e3 (commit 73751ea). Net LOC: -5483 across 45 files.
2 parents b4bdc4d + 7e37466 commit 5d07ea8

46 files changed

Lines changed: 177 additions & 5658 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cargo/config.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,13 @@ wt-test = "test --manifest-path"
3939
# The workflow runner binary moved out-of-tree to
4040
# `launchapp-dev/animus-workflow-runner-default` v0.3.0; build it from
4141
# that repo when packaging a release.
42-
animus-bin-build = "build -p orchestrator-cli -p agent-runner -p oai-runner"
43-
animus-bin-build-release = "build --release -p orchestrator-cli -p agent-runner -p oai-runner"
44-
animus-bin-check = "check -p orchestrator-cli -p agent-runner -p oai-runner"
42+
# v0.5.2 surface-shrink: the in-tree `animus-oai-runner` binary moved
43+
# out-of-tree to `launchapp-dev/animus-provider-oai-agent` v0.1.3 — the
44+
# daemon spawns it via plugin install. Install with
45+
# `animus plugin install launchapp-dev/animus-provider-oai-agent`.
46+
animus-bin-build = "build -p orchestrator-cli -p agent-runner"
47+
animus-bin-build-release = "build --release -p orchestrator-cli -p agent-runner"
48+
animus-bin-check = "check -p orchestrator-cli -p agent-runner"
4549

4650
# Linting
4751
animus-lint = "clippy --workspace --all-targets"

.github/workflows/release.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ jobs:
116116
STAGE_DIR="ao-${VERSION}-${TARGET}"
117117
mkdir -p "${STAGE_DIR}"
118118
119-
BINARIES=(animus agent-runner animus-oai-runner)
119+
BINARIES=(animus agent-runner)
120120
for binary in "${BINARIES[@]}"; do
121121
cp "target/${TARGET}/release/${binary}" "${STAGE_DIR}/"
122122
done
@@ -129,7 +129,7 @@ jobs:
129129
import os
130130
from pathlib import Path
131131
132-
binaries = ["animus", "agent-runner", "animus-oai-runner"]
132+
binaries = ["animus", "agent-runner"]
133133
metadata = {
134134
"schema": "animus.release.v1",
135135
"version": os.environ["VERSION"],
@@ -160,7 +160,7 @@ jobs:
160160
STAGE_DIR="ao-${VERSION}-${TARGET}"
161161
ARCHIVE_PATH="${STAGE_DIR}.tar.gz"
162162
163-
REQUIRED_FILES=(animus agent-runner animus-oai-runner release-metadata.json)
163+
REQUIRED_FILES=(animus agent-runner release-metadata.json)
164164
for file in "${REQUIRED_FILES[@]}"; do
165165
if [[ ! -f "${STAGE_DIR}/${file}" ]]; then
166166
echo "missing required staged file: ${STAGE_DIR}/${file}" >&2
@@ -181,7 +181,7 @@ jobs:
181181
stage_dir = Path(os.environ["STAGE_DIR"])
182182
metadata_path = stage_dir / "release-metadata.json"
183183
metadata = json.loads(metadata_path.read_text(encoding="utf-8"))
184-
expected_binaries = ["animus", "agent-runner", "animus-oai-runner"]
184+
expected_binaries = ["animus", "agent-runner"]
185185
186186
accepted_schemas = ("animus.release.v1", "ao.release.v1")
187187
if metadata.get("schema") not in accepted_schemas:
@@ -224,7 +224,7 @@ jobs:
224224
$Version = "${{ steps.version.outputs.value }}"
225225
$Target = "${{ matrix.target }}"
226226
$StageDir = "ao-$Version-$Target"
227-
$Binaries = @("animus", "agent-runner", "animus-oai-runner")
227+
$Binaries = @("animus", "agent-runner")
228228
$BinaryFiles = $Binaries | ForEach-Object { "$_.exe" }
229229
230230
New-Item -ItemType Directory -Path $StageDir -Force | Out-Null
@@ -257,7 +257,7 @@ jobs:
257257
$StageDir = "ao-$Version-$Target"
258258
$ArchivePath = "$StageDir.zip"
259259
260-
$Binaries = @("animus", "agent-runner", "animus-oai-runner")
260+
$Binaries = @("animus", "agent-runner")
261261
$BinaryFiles = $Binaries | ForEach-Object { "$_.exe" }
262262
$RequiredFiles = $BinaryFiles + "release-metadata.json"
263263
foreach ($File in $RequiredFiles) {

AGENTS.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ crates/
3939
├── animus-runtime-shared/ # Shared workflow execution/runtime-contract/IPC helpers used by daemon and workflow_runner plugins
4040
├── animus-plugin-protocol/ # In-tree stdio plugin protocol types
4141
├── animus-plugin-runtime/ # Runtime helpers for plugin implementations
42-
├── oai-runner/ # OpenAI-compatible runner implementation
4342
├── orchestrator-cli/ # Main `animus` binary
4443
├── orchestrator-config/ # Workflow, pack, and template config loading
4544
├── orchestrator-core/ # Domain services, bootstrap, state mutation APIs
@@ -53,6 +52,11 @@ crates/
5352
└── protocol/ # Shared protocol/config/runtime types
5453
```
5554

55+
The OpenAI-compatible runner (formerly `crates/oai-runner/`) moved
56+
out-of-tree to `launchapp-dev/animus-provider-oai-agent` v0.1.3 in the
57+
v0.5.2 surface-shrink. Install via
58+
`animus plugin install launchapp-dev/animus-provider-oai-agent`.
59+
5660
Repo-local but not current workspace members:
5761

5862
- `crates/orchestrator-web-server/`
@@ -61,7 +65,6 @@ Runtime-critical binaries and supporting crates must stay healthy:
6165

6266
- `orchestrator-cli`
6367
- `agent-runner`
64-
- `oai-runner`
6568
- `orchestrator-logging`
6669
- `animus-runtime-shared`
6770
- `orchestrator-daemon-runtime`

CLAUDE.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Animus is a Rust-only agent orchestrator with:
3838

3939
Do not reintroduce stale claims such as:
4040

41-
- stale workspace-count summaries that do not match `Cargo.toml`'s current 17 members
41+
- stale workspace-count summaries that do not match `Cargo.toml`'s current 15 members
4242
- "plugin extraction in flux" or "in progress" framing — extraction is complete as of v0.4.12
4343
- `PROJECT_ROOT` or "last-project-root registry" resolution rules
4444
- removed crates like `llm-mcp-server`, `llm-cli-wrapper`, `orchestrator-web-api`, `orchestrator-web-contracts`, or in-tree `animus-provider-{claude,codex,gemini,opencode,oai}`. `orchestrator-web-server` still exists in-repo but is not a current workspace member
@@ -59,7 +59,6 @@ Core orchestration:
5959
Runtime and provider layer:
6060

6161
- `crates/agent-runner`
62-
- `crates/oai-runner`
6362
- `crates/orchestrator-daemon-runtime`
6463
- `crates/orchestrator-providers`
6564
- `crates/orchestrator-notifications`

Cargo.lock

Lines changed: 0 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,13 @@ members = [
1212
"crates/orchestrator-core",
1313
"crates/orchestrator-store",
1414
"crates/orchestrator-cli",
15-
"crates/oai-runner",
1615
"crates/animus-runtime-shared",
1716
"crates/orchestrator-providers",
1817
"crates/orchestrator-session-host",
1918
]
2019
default-members = [
2120
"crates/orchestrator-cli",
2221
"crates/agent-runner",
23-
"crates/oai-runner",
2422
]
2523
resolver = "2"
2624

Dockerfile

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@ COPY crates crates
2020
# As of the v0.5.1 round-4 fold-in the in-tree workflow runner binary was
2121
# deleted; the daemon scheduler now spawns `animus-workflow-runner-default`
2222
# from the installed plugin. The image installs that plugin in stage 2.
23+
# v0.5.2 surface-shrink: the in-tree `animus-oai-runner` binary was
24+
# deleted; the runtime now spawns
25+
# `launchapp-dev/animus-provider-oai-agent` v0.1.3 from the installed
26+
# plugin. The image installs that plugin in stage 2 as well.
2327
RUN cargo build --release --locked \
2428
-p orchestrator-cli \
25-
-p agent-runner \
26-
-p oai-runner
29+
-p agent-runner
2730

2831
# Verify binaries exist
2932
RUN ls -lh \
3033
target/release/animus \
31-
target/release/agent-runner \
32-
target/release/animus-oai-runner
34+
target/release/agent-runner
3335

3436
# ── Stage 2: Minimal runtime image ──────────────────────────────────────────────
3537
FROM debian:bookworm-slim
@@ -65,16 +67,21 @@ RUN mkdir -p /root/.animus /root/.animus/plugins
6567
# Copy binaries from builder
6668
COPY --from=builder /src/target/release/animus /usr/local/bin/animus
6769
COPY --from=builder /src/target/release/agent-runner /usr/local/bin/agent-runner
68-
COPY --from=builder /src/target/release/animus-oai-runner /usr/local/bin/animus-oai-runner
6970

7071
# Install the workflow runner plugin. As of v0.5.1 round-4 fold-in this
7172
# binary is the out-of-tree `animus-workflow-runner-default` plugin and
7273
# the daemon's `resolve_workflow_runner_binary` looks for it in
7374
# `~/.animus/plugins/`. The image MUST ship this plugin — without it the
7475
# daemon's preflight refuses to start. Fail the image build hard so a
7576
# transient release-download error never produces a broken image.
77+
# v0.5.2 surface-shrink: same pattern for `animus-provider-oai-agent`
78+
# (formerly bundled as the in-tree `animus-oai-runner` binary). Without
79+
# the plugin the runtime contract resolver falls back to a bare PATH
80+
# lookup that fails inside the slim base image.
7681
RUN animus plugin install launchapp-dev/animus-workflow-runner-default --yes \
77-
&& test -x /root/.animus/plugins/animus-workflow-runner-default
82+
&& test -x /root/.animus/plugins/animus-workflow-runner-default \
83+
&& animus plugin install launchapp-dev/animus-provider-oai-agent --yes \
84+
&& test -x /root/.animus/plugins/animus-provider-oai-agent/bin/animus-oai-runner
7885

7986
# Create working directory
8087
WORKDIR /workspace

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,7 @@ curl -fsSL https://raw.githubusercontent.com/launchapp-dev/animus-cli/main/scrip
353353

354354
```bash
355355
rm -f ~/.local/bin/animus \
356-
~/.local/bin/agent-runner \
357-
~/.local/bin/animus-oai-runner
356+
~/.local/bin/agent-runner
358357
```
359358

360359
</details>

crates/oai-runner/Cargo.toml

Lines changed: 0 additions & 32 deletions
This file was deleted.

crates/oai-runner/README.md

Lines changed: 0 additions & 125 deletions
This file was deleted.

0 commit comments

Comments
 (0)