Add llama-atmosphere-agent: local JVM coding agent with Atmosphere - #444
Merged
Merged
Conversation
…enAiCompatServer
A standalone (non-reactor, unpublished) Maven project that drives Atmosphere's
built-in OpenAI-compatible agent runtime headless -- no Spring Boot, no servlet
container -- against java-llama.cpp's OpenAI-compatible server: streaming, the
model->tool->model loop, Atmosphere's workspace-confined file tools and an
opt-in run_command tool. Run with `mvn compile exec:java` against a running
server (--base-url) or with the GGUF hosted in-process (--model).
Verified two ways and wired into CI:
- AtmosphereWireContractTest / LocalAgentTest: the REAL OpenAiCompatServer over
a loopback socket with a scripted engine replaying llama.cpp-shaped chunks --
tool_calls deltas by index, a parallel pair with interleaved argument
fragments, four consecutive rounds with the full history kept, chunked
streaming + history replay, 401 before the backend, and the one known
Atmosphere gap (an in-stream `data: {"error":...}` after HTTP 200 is ignored
by its SSE parser). Model-free, seconds, every PR.
- AtmosphereToolLoopIntegrationTest: the same loop against the cached
Qwen2.5-1.5B tool model (validation-only CI job, self-skips without the GGUF).
Result: Atmosphere works unchanged (verdict A). The only core change is making
the existing test seam public (OpenAiBackend, ChunkSink and the backend
constructor of OpenAiCompatServer) so a sibling project can drive the real
server without a model.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVwj2UuMPybiK1bHyG9toH
… pom after it Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UVwj2UuMPybiK1bHyG9toH
bernardladenthin
had a problem deploying
to
maven-central
September 21, 2026 12:33 — with
GitHub Actions
Failure
bernardladenthin
had a problem deploying
to
startgate
September 21, 2026 12:33 — with
GitHub Actions
Error
bernardladenthin
had a problem deploying
to
maven-central
September 21, 2026 12:33 — with
GitHub Actions
Failure
|
This was referenced Sep 21, 2026
llama-atmosphere-agent: document the 5.2.0 release flow, drop -Dllama.version from the commands
#445
Merged
Merged
This branch had an error being deployed
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
llama-atmosphere-agent/: a copy-and-run terminal coding agent (Claude Code / OpenCode reduced to essentials) that pairs Atmosphere's built-in OpenAI-compatible agent runtime with java-llama.cpp'sOpenAiCompatServer. Supports both external server mode (--base-url) and in-process model loading (--model).ls,read_file,write_file,edit_file,glob,grep,delete,rename), and optional shell execution (--allow-shell).AgentOptions(command-line parsing),LocalAgent(entry point),AgentRunner(minimal Atmosphere wiring),ConsoleSession(streaming output + file system injection),ShellTool(optional shell tool).AtmosphereWireContractTest) verify the realOpenAiCompatServerover loopback with scripted backend; model-backed integration test (AtmosphereToolLoopIntegrationTest) runs the full loop against Qwen2.5-1.5B.ChunkSinkandOpenAiBackendconstructor public to support test backends; updatedOpenAiCompatServerjavadoc.Test plan
AgentOptionsTest: command-line parsing (all flags, defaults, validation)LocalAgentTest: end-to-end with scripted backend, workspace file toolsAtmosphereWireContractTest: wire contract (tool calls, role=tool, multi-round) over real loopback serverAtmosphereToolLoopIntegrationTest: real model loop (Qwen2.5-1.5B, skips if model absent)ShellToolTest: shell execution in workspacetest-java-llama-atmosphere-agent(model-free, every PR)test-java-llama-atmosphere-agent-integration(model-backed, validation-only)llama-atmosphere-agent/README.md: quick start, usage, architectureREADME.md: new "Local coding agent with Atmosphere" sectionCHANGELOG.md: added entryCLAUDE.md: release process for standalone projectTODO.md: follow-up itemsRelated issues / PRs
Closes the local coding agent feature gap; pairs with Atmosphere's built-in runtime to provide a complete offline JVM agent.
Checklist
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdhttps://claude.ai/code/session_01UVwj2UuMPybiK1bHyG9toH