66 lines
3.3 KiB
Markdown
66 lines
3.3 KiB
Markdown
# DS4Server
|
|
|
|
DS4Server is a native macOS coding-agent application that rewrites the
|
|
DwarfStar (`ds4`) inference engine in Rust. It uses Rust and Iced and will combine local model loading, an
|
|
OpenAI-compatible localhost endpoint, and project-scoped agent chat in one app.
|
|
|
|
DS4Server vendors and adapts the Metal kernels, Objective-C Metal glue, and
|
|
visible-Chrome web tool runtime from
|
|
[DwarfStar (`ds4`)](https://github.com/antirez/ds4). Their copyright and license
|
|
notices are retained in [`native/metal/LICENSE`](native/metal/LICENSE) and
|
|
[`native/web/LICENSE`](native/web/LICENSE).
|
|
|
|
The current milestone provides a Codex-inspired project/session layout. A native
|
|
macOS folder picker selects each workspace, then the app asks for its display
|
|
name. Projects, sessions, and model preferences are persisted through Diesel in
|
|
SQLite. Open Preferences with `Command-,` to configure model, generation,
|
|
runtime, local endpoint, and idle-unload settings. The separate Model Manager
|
|
(`Shift-Command-M`)
|
|
lists local main and DSpark artifacts, their on-disk sizes and state, and lets
|
|
you download, resume, validate, or delete them. Rust-native background work
|
|
shows live byte progress, speed, and ETA in Model Manager and the app status
|
|
bar. Stopping or quitting keeps the partial file; the next Download/Resume
|
|
action continues from that exact byte after relaunch. Exact size and SHA-256
|
|
verification happen before an artifact becomes usable.
|
|
|
|
The selected DeepSeek V4 Flash model can run directly from a project session.
|
|
The model, KV/compressor state, 43-layer graph, sampling, and lifecycle are
|
|
owned by Rust; a fixed snapshot of the Objective-C Metal boundary and unchanged
|
|
Metal kernels is vendored and built inside this repository. Tokens stream into the chat UI, Stop cancels generation,
|
|
follow-up turns reuse durable transcript and KV state, and the model unloads
|
|
after the idle timeout. The graph uses the full configured context with the
|
|
ratio-4 sparse indexer.
|
|
|
|
Project chat includes the native `ds4_agent.c` starting tool set: bounded file
|
|
read/continuation, write, anchored edit, search, directory listing, asynchronous
|
|
shell jobs, Google search, and rendered page visits. Tool calls and results are
|
|
persisted as transcript roles and automatically continue the same model turn.
|
|
File tools stay inside the selected project. Web tools ask before starting a
|
|
visible Chrome profile.
|
|
|
|
The app also listens on `127.0.0.1:4000` by default for Models, Chat
|
|
Completions, Completions, Anthropic Messages, and Responses APIs. The listener,
|
|
port, and opt-in CORS are configurable in Preferences. The
|
|
endpoint and local chat share the single model owner. External conversations
|
|
are client-managed and never enter the project, session, message, or transcript
|
|
database; only opaque content-addressed KV cache files are retained. Model
|
|
discovery advertises only supported main artifacts that are fully downloaded
|
|
and verified on disk.
|
|
|
|
```sh
|
|
cargo install cargo-packager --locked --version 0.11.8
|
|
make bundle
|
|
open target/release/DS4Server.app
|
|
```
|
|
|
|
State is stored at:
|
|
|
|
```text
|
|
~/Library/Application Support/DS4Server.rfc1437.de/data.sqlite3
|
|
~/Library/Application Support/DS4Server.rfc1437.de/kv-cache/
|
|
```
|
|
|
|
Deleting a project or session removes only DS4Server metadata. It never deletes
|
|
the referenced project directory. See [PLAN.md](PLAN.md) for the implementation
|
|
roadmap.
|