@aptove/aptove 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +171 -0
  2. package/package.json +8 -7
package/README.md ADDED
@@ -0,0 +1,171 @@
1
+ # Aptove — ACP AI Coding Agent
2
+
3
+ [![GitHub Release](https://img.shields.io/github/v/release/aptove/aptove?logo=github&label=download)](https://github.com/aptove/aptove/releases/latest)
4
+ [![npm](https://img.shields.io/npm/v/%40aptove%2Faptove?logo=npm&label=npm)](https://www.npmjs.com/package/@aptove/aptove)
5
+ [![Build](https://github.com/aptove/aptove/actions/workflows/release.yml/badge.svg)](https://github.com/aptove/aptove/actions/workflows/release.yml)
6
+ [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/gD7AMxBy9y)
7
+
8
+ A Rust CLI AI coding agent that speaks the [Agent-Client Protocol (ACP)](https://agentclientprotocol.org), supports multiple LLM providers, and connects to external MCP servers for tool use.
9
+
10
+ ## Architecture
11
+
12
+ ```
13
+ agent-cli Binary entry point ("aptove"), CLI parsing, modes
14
+ agent-core Transport, sessions, context window, agent loop, plugins
15
+ agent-provider-* LLM provider implementations (Claude, Gemini, OpenAI)
16
+ agent-mcp-bridge MCP client that connects to external tool servers
17
+ ```
18
+
19
+ ### Core Modules
20
+
21
+ | Module | Purpose |
22
+ |---|---|
23
+ | `transport` | JSON-RPC 2.0 over stdin/stdout (ACP stdio mode) |
24
+ | `session` | Session lifecycle, per-session context and cancellation |
25
+ | `context` | Token-aware sliding context window with auto-compaction |
26
+ | `agent_loop` | Agentic tool-call loop (prompt → LLM → tools → repeat) |
27
+ | `plugin` | `LlmProvider` and `Plugin` traits, `PluginHost` registry |
28
+ | `config` | TOML config loading, API key resolution, validation |
29
+ | `system_prompt` | Prompt templates with mode/project overrides |
30
+ | `retry` | Exponential backoff with jitter for API calls |
31
+ | `persistence` | Save/load sessions to `~/.local/share/Aptove/sessions/` |
32
+
33
+ ## Quick Start
34
+
35
+ ### Build
36
+
37
+ ```sh
38
+ cd agent
39
+ cargo build
40
+ ```
41
+
42
+ ### Run
43
+
44
+ ```sh
45
+ # Generate a config file
46
+ cargo run --bin aptove -- config init
47
+
48
+ # Edit the config file to add your API key (see Configuration section below)
49
+
50
+ # Start in ACP stdio mode (for use with bridge/clients)
51
+ cargo run --bin aptove -- run
52
+
53
+ # Start embedded bridge + agent in a single process
54
+ cargo run --bin aptove -- serve --port 8765
55
+
56
+ # Start interactive chat mode
57
+ cargo run --bin aptove -- chat
58
+ ```
59
+
60
+ ### Configuration
61
+
62
+ The config file location follows the OS-native convention via Rust's `dirs::config_dir()`:
63
+
64
+ | OS | Config path |
65
+ |---|---|
66
+ | **macOS** | `~/Library/Application Support/Aptove/config.toml` |
67
+ | **Linux** | `~/.config/Aptove/config.toml` |
68
+ | **Windows** | `%APPDATA%\Aptove\config.toml` |
69
+
70
+ ```toml
71
+ provider = "claude"
72
+
73
+ [providers.claude]
74
+ # api_key = "sk-ant-..." # Or set ANTHROPIC_API_KEY env var
75
+ model = "claude-sonnet-4-20250514"
76
+
77
+ [providers.gemini]
78
+ # api_key = "..." # Or set GOOGLE_API_KEY env var
79
+ model = "gemini-2.5-pro"
80
+
81
+ [providers.openai]
82
+ # api_key = "sk-..." # Or set OPENAI_API_KEY env var
83
+ model = "gpt-4o"
84
+
85
+ [[mcp_servers]]
86
+ name = "filesystem"
87
+ command = "mcp-server-filesystem"
88
+ args = ["/path/to/allowed/dir"]
89
+
90
+ [agent]
91
+ max_tool_iterations = 25
92
+ ```
93
+
94
+ API keys can be set via environment variables: `ANTHROPIC_API_KEY`, `GOOGLE_API_KEY`, `OPENAI_API_KEY`.
95
+
96
+ ### Test
97
+
98
+ ```sh
99
+ cargo test
100
+ ```
101
+
102
+ ## Providers
103
+
104
+ - **Claude** — Anthropic Messages API with tool use
105
+ - **Gemini** — Google Generative Language API with function calling
106
+ - **OpenAI** — Chat Completions API with function calling (also supports compatible endpoints)
107
+
108
+ ## ACP Protocol
109
+
110
+ Aptove implements the [ACP protocol](https://agentclientprotocol.org) over stdio:
111
+
112
+ - `initialize` → Returns agent info and capabilities
113
+ - `session/new` → Creates a session with context window
114
+ - `session/prompt` → Runs the agentic tool loop, streams updates
115
+ - `session/cancel` → Cancels an in-flight prompt
116
+
117
+ Use with [bridge](../bridge/) for WebSocket↔stdio bridging.
118
+
119
+ ## Container Images
120
+
121
+ Images are published to `ghcr.io/aptove/aptove-agent` on every release.
122
+
123
+ ### Linux / Windows (Docker)
124
+
125
+ ```sh
126
+ # Pull the latest multi-arch image (amd64 + arm64)
127
+ docker pull ghcr.io/aptove/aptove-agent:latest
128
+
129
+ # Run interactively with config and API key
130
+ docker run --rm -it \
131
+ -v ~/.config/Aptove:/root/.config/Aptove \
132
+ -e ANTHROPIC_API_KEY=... \
133
+ ghcr.io/aptove/aptove-agent:latest chat
134
+
135
+ # ACP stdio mode (for use with the bridge)
136
+ docker run --rm -i \
137
+ -e ANTHROPIC_API_KEY=... \
138
+ ghcr.io/aptove/aptove-agent:latest run
139
+ ```
140
+
141
+ Works on Linux natively and on Windows via Docker Desktop (WSL2 backend).
142
+
143
+ ### macOS (Apple Native)
144
+
145
+ Apple Native runs Linux containers directly via the macOS Virtualization.framework — no Docker Desktop required.
146
+
147
+ ```sh
148
+ # Install the container CLI
149
+ brew install --cask container
150
+
151
+ # Run
152
+ container run \
153
+ -v ~/.config/Aptove:/root/.config/Aptove \
154
+ -e ANTHROPIC_API_KEY=... \
155
+ ghcr.io/aptove/aptove-agent:latest-darwin-arm64 chat
156
+ ```
157
+
158
+ ### Available Tags
159
+
160
+ | Tag | Description |
161
+ |-----|-------------|
162
+ | `latest` | Latest stable, multi-arch (amd64 + arm64) |
163
+ | `0.2.0` | Specific version, multi-arch |
164
+ | `0.2.0-linux-amd64` | Linux x64 |
165
+ | `0.2.0-linux-arm64` | Linux arm64 |
166
+ | `0.2.0-darwin-arm64` | macOS Apple Silicon (Apple Native) |
167
+ | `0.2.0-darwin-x64` | macOS Intel (Apple Native) |
168
+
169
+ ## License
170
+
171
+ Apache-2.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aptove/aptove",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "ACP AI coding agent — connects to Claude, Gemini, and OpenAI",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -25,7 +25,8 @@
25
25
  },
26
26
  "files": [
27
27
  "bin",
28
- "postinstall.js"
28
+ "postinstall.js",
29
+ "README.md"
29
30
  ],
30
31
  "scripts": {
31
32
  "postinstall": "node postinstall.js"
@@ -34,10 +35,10 @@
34
35
  "node": ">=16"
35
36
  },
36
37
  "optionalDependencies": {
37
- "@aptove/aptove-darwin-arm64": "0.1.0",
38
- "@aptove/aptove-darwin-x64": "0.1.0",
39
- "@aptove/aptove-linux-arm64": "0.1.0",
40
- "@aptove/aptove-linux-x64": "0.1.0",
41
- "@aptove/aptove-win32-x64": "0.1.0"
38
+ "@aptove/aptove-darwin-arm64": "0.1.2",
39
+ "@aptove/aptove-darwin-x64": "0.1.2",
40
+ "@aptove/aptove-linux-arm64": "0.1.2",
41
+ "@aptove/aptove-linux-x64": "0.1.2",
42
+ "@aptove/aptove-win32-x64": "0.1.2"
42
43
  }
43
44
  }