@grackle-ai/runtime-acp 0.108.4 → 0.110.1
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.
- package/README.md +55 -0
- package/package.json +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# @grackle-ai/runtime-acp
|
|
2
|
+
|
|
3
|
+
<p align="center">
|
|
4
|
+
<a href="https://www.npmjs.com/package/@grackle-ai/runtime-acp"><img src="https://img.shields.io/npm/v/@grackle-ai/runtime-acp.svg" alt="npm version" /></a>
|
|
5
|
+
<a href="https://github.com/nick-pape/grackle/actions/workflows/ci.yml"><img src="https://github.com/nick-pape/grackle/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI" /></a>
|
|
6
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT" /></a>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<img src="https://raw.githubusercontent.com/nick-pape/grackle/main/apps/docs-site/static/img/grackle-logo.png" alt="Grackle" width="200" />
|
|
11
|
+
</p>
|
|
12
|
+
|
|
13
|
+
Grackle runtime that drives any agent speaking the Agent Client Protocol (ACP) over stdio.
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
The [Agent Client Protocol (ACP)](https://agentclientprotocol.com) is a JSON-RPC protocol, framed as newline-delimited JSON over stdio, that lets a client drive a coding agent: initialize, authenticate, create a session, send prompts, and receive streamed session updates. This runtime spawns an ACP-compatible agent CLI as a subprocess and talks to it over its stdin/stdout — so a single implementation can drive many different agents (e.g. Goose, `codex-acp`, Copilot, the Claude agent ACP bridge).
|
|
18
|
+
|
|
19
|
+
`AcpRuntime` implements the `@grackle-ai/runtime-sdk` runtime interface (extending `BaseAgentRuntime` / `BaseAgentSession`) and is loaded by the Grackle PowerLine, which registers one runtime per configured ACP agent. Each session translates ACP session updates into Grackle `AgentEvent`s (text, thoughts, tool calls/results, plans, and usage), auto-approves permission requests, and forwards MCP servers to the agent.
|
|
20
|
+
|
|
21
|
+
## Configuration
|
|
22
|
+
|
|
23
|
+
`AcpRuntime` is constructed with an `AcpAgentConfig`, which names the runtime and describes the agent CLI to spawn:
|
|
24
|
+
|
|
25
|
+
| Field | Type | Default | Description |
|
|
26
|
+
|-------|------|---------|-------------|
|
|
27
|
+
| `name` | `string` | — | Runtime name used for registry lookup and the isolated install directory (e.g. `"codex-acp"`) |
|
|
28
|
+
| `command` | `string` | — | Agent command to spawn (e.g. `"codex-acp"`, `"copilot"`, `"goose"`) |
|
|
29
|
+
| `args` | `string[]` | — | CLI arguments passed to the command (e.g. `["--acp", "--stdio"]`) |
|
|
30
|
+
| `env` | `Record<string, string>` | — | Additional environment variables for the subprocess |
|
|
31
|
+
|
|
32
|
+
The Grackle PowerLine registers several ACP agents out of the box:
|
|
33
|
+
|
|
34
|
+
| Runtime name | Command | Args |
|
|
35
|
+
|--------------|---------|------|
|
|
36
|
+
| `goose` | `goose` | `acp` |
|
|
37
|
+
| `codex-acp` | `codex-acp` | — |
|
|
38
|
+
| `copilot-acp` | `copilot` | `--acp --stdio` |
|
|
39
|
+
| `claude-code-acp` | `claude-agent-acp` | — |
|
|
40
|
+
|
|
41
|
+
The ACP SDK (`@agentclientprotocol/sdk`) is installed lazily into an isolated per-runtime directory (`~/.grackle/runtimes/<name>/`) the first time a session starts; that directory's `.bin` is prepended to the subprocess `PATH`.
|
|
42
|
+
|
|
43
|
+
## Credentials
|
|
44
|
+
|
|
45
|
+
Credentials are passed through to the agent subprocess via the process environment (plus any `env` overrides in the config). During ACP `initialize`, the runtime inspects the agent's advertised auth methods and, if an `env_var` method is offered whose required variables are all present in the environment, calls `authenticate()` with it. This is required by some bridges (e.g. Copilot) and is a best-effort, non-fatal step for others (e.g. `codex-acp`, `claude-code-acp`). Each agent defines its own required credential variables.
|
|
46
|
+
|
|
47
|
+
## Requirements
|
|
48
|
+
|
|
49
|
+
- Node.js >= 22
|
|
50
|
+
- An ACP-compatible agent CLI available on `PATH` (or installed into the runtime's isolated directory), e.g. `goose`, `codex-acp`, `copilot`, or `claude-agent-acp`
|
|
51
|
+
- Whatever credentials the chosen agent requires, supplied via the environment
|
|
52
|
+
|
|
53
|
+
## License
|
|
54
|
+
|
|
55
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/runtime-acp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.110.1",
|
|
4
4
|
"description": "Grackle Agent Client Protocol (ACP) runtime implementation",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"dist/"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@grackle-ai/common": "0.
|
|
32
|
-
"@grackle-ai/runtime-sdk": "0.
|
|
31
|
+
"@grackle-ai/common": "0.110.1",
|
|
32
|
+
"@grackle-ai/runtime-sdk": "0.110.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@rushstack/heft": "1.2.7",
|