SMOODEV-1314: Initial extraction of smooth-operator -> smooai-agent#1
Merged
Conversation
Extracts the Rust AI agent framework from SmooAI/smooth (crate
smooai-smooth-operator) into a new shared SmooAI repo so it can be
consumed by:
- smooth-operator-runner (the VM-runner binary) — continues to use it
via a git dependency
- Upcoming Rust ai-service in the smooai monorepo
- Future SmooAI Rust services (auth-prime, etc.)
Layout mirrors SmooAI/observability and SmooAI/config — one repo per
package concept, per-language subdirectories (rust/, go/, python/,
dotnet/). Only rust/ is implemented; the others are stubs documenting
the planned approach.
Renames vs. the source crate:
- Package: smooai-smooth-operator -> smooai-agent
- Lib: smooth_operator -> smooai_agent
No public-API changes. The tests/golden_e2e.rs from the source crate is
not carried over — it depended on smooth-narc, which stays in smooth/.
Source: smooth/crates/smooth-operator @ commit 04d67bf
|
brentrager
added a commit
to SmooAI/smooth
that referenced
this pull request
May 25, 2026
* pearl: update th-0398c1 * pearl: close th-0398c1 * pearl: update th-abc4e2 * pearl: close th-abc4e2 * pearl: create th-9cd759 th api login/logout/whoami: deprecate in favor of th auth login [--m2m] * SMOODEV-1314: Extract smooth-operator -> SmooAI/agent crate Moves the Rust AI agent framework from this repo to the new shared SmooAI/agent repo (https://github.com/SmooAI/agent), so it can be consumed by: - This crate (smooth-operator-runner) — continues to use it via the workspace dep, now sourced from the agent repo via git - The upcoming Rust ai-service in smooai monorepo - Future SmooAI Rust services (auth-prime, etc.) Changes: - Cargo.toml (workspace): switches the `smooth-operator` workspace dep to a git source on SmooAI/agent, pinned to commit 34951e4 (the initial-extraction merge). Aliases `smooai-agent` -> dep key `smooth-operator`, so all `use smooth_operator::*` call sites in workspace crates continue to compile without changes. - crates/smooth-bigsmooth/Cargo.toml + crates/smooth-operator-runner /Cargo.toml: switch from the explicit `{ path = ..., package = ... }` form to `smooth-operator.workspace = true`, picking up the new git-sourced dep. - crates/smooth-operator/: removed entirely. The source of truth now lives in SmooAI/agent. Verified locally with `cargo check --workspace` (green) and `cargo test --workspace --no-run` (all crates compile). The only test failure observed in `cargo test --workspace --lib` is `smooth_pearls::store::tests::test_add_comment_and_get_comments`, which passes in isolation and is pre-existing flakiness unrelated to this change. Depends on SmooAI/agent#1 (already merged).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Initial content for the new shared SmooAI/agent repo — extracts the Rust AI agent framework (
smooth-operator) from SmooAI/smooth so it can be reused across Big Smooth and the smooai platform.What's in this PR
smooth-operator(agent.rs,llm.rs,tool.rs,checkpoint.rs,conversation.rs,cast/,coding_workflow.rs,providers.rs, etc. — 19 modules, 378 tests passing).smooth/'s top-level workspace); all workspace deps inlined.smooai-smooth-operator→smooai-agent; libsmooth_operator→smooai_agent. No public-API changes.go/,python/,dotnet/directories with README placeholders documenting the planned approach (mirrors SmooAI/observability + SmooAI/config layout).pr-checks.yml(fmt + clippy + test + release build onwarp-ubuntu-latest-arm64-4x);release.ymlfor changesets.What's NOT carried over
tests/golden_e2e.rsfrom the source crate — it depended onsmooth-narc, which stays insmooth/. If we want golden tests in this repo we should rewrite them with a stub Narc-like type or fold them intosmooth-operator-runner.Source
smooth/crates/smooth-operator@ smooth commit04d67bf.Verification (locally)
cargo check --workspace— cleancargo test --workspace— 378 / 378 passingcargo fmt --all -- --check— cleancargo clippy -- -D warnings— pedantic/nursery lints fire; matchessmooth/'s posture (continue-on-error: truein CI)Follow-up
A second PR on
SmooAI/smoothwill switchsmooth-operator-runnerto depend onsmooai-agentvia git dep and delete the localcrates/smooth-operator/.🤖 Generated with Claude Code