@prmichaelsen/acp-mcp 0.6.0 → 0.7.0
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/CHANGELOG.md +31 -0
- package/README.md +10 -3
- package/agent/design/local.progress-streaming.md +940 -0
- package/agent/milestones/milestone-4-progress-streaming-server.md +84 -0
- package/agent/milestones/milestone-5-progress-streaming-wrapper.md +71 -0
- package/agent/milestones/milestone-6-progress-streaming-client.md +79 -0
- package/agent/progress.yaml +93 -13
- package/agent/tasks/milestone-4-progress-streaming-server/task-6-add-ssh-stream-execution.md +149 -0
- package/agent/tasks/milestone-4-progress-streaming-server/task-7-implement-progress-streaming.md +191 -0
- package/agent/tasks/milestone-4-progress-streaming-server/task-8-update-server-handlers.md +109 -0
- package/agent/tasks/milestone-4-progress-streaming-server/task-9-testing-documentation.md +192 -0
- package/dist/server-factory.js +130 -6
- package/dist/server-factory.js.map +2 -2
- package/dist/server.js +130 -6
- package/dist/server.js.map +2 -2
- package/dist/tools/acp-remote-execute-command.d.ts +4 -1
- package/dist/utils/ssh-connection.d.ts +13 -0
- package/package.json +1 -1
- package/src/server-factory.ts +3 -2
- package/src/server.ts +3 -2
- package/src/tools/acp-remote-execute-command.ts +116 -7
- package/src/utils/ssh-connection.ts +66 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,37 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.7.0] - 2026-02-23
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Progress Streaming** for `acp_remote_execute_command` tool
|
|
12
|
+
- Real-time output streaming for long-running commands
|
|
13
|
+
- Uses MCP SDK's native progress notification system (`notifications/progress`)
|
|
14
|
+
- Graceful fallback to timeout mode for clients without progress support
|
|
15
|
+
- Rate limiting prevents notification spam (max 10/second, 100ms interval)
|
|
16
|
+
- Supports commands like `npm run build`, `npm run dev`, `npm test`
|
|
17
|
+
- Progress notifications include stdout chunks as messages
|
|
18
|
+
- Automatically resets request timeout on progress (prevents timeout for long operations)
|
|
19
|
+
- **`execStream()` method** in SSHConnectionManager
|
|
20
|
+
- Returns stdout stream, stderr stream, and exit code promise
|
|
21
|
+
- Enables real-time processing of command output
|
|
22
|
+
- Comprehensive logging for stream lifecycle
|
|
23
|
+
- Error handling for stream failures
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
- `acp_remote_execute_command` handler now accepts `extra` parameter with `progressToken`
|
|
27
|
+
- Server request handlers pass `extra` to execute_command handler
|
|
28
|
+
- Tool description updated to mention progress streaming support
|
|
29
|
+
- Timeout parameter ignored when progress streaming is active
|
|
30
|
+
|
|
31
|
+
### Technical Details
|
|
32
|
+
- Requires MCP SDK v1.26.0+ for progress support
|
|
33
|
+
- Progress token accessed via `extra._meta.progressToken`
|
|
34
|
+
- Progress notifications sent via `server.notification()` method
|
|
35
|
+
- Backward compatible - existing clients unaffected
|
|
36
|
+
- No breaking changes to API
|
|
37
|
+
- Streaming mode indicated by `streamed: true` in response
|
|
38
|
+
|
|
8
39
|
## [0.6.0] - 2026-02-23
|
|
9
40
|
|
|
10
41
|
### Added
|
package/README.md
CHANGED
|
@@ -64,11 +64,18 @@ const server = await createServer({
|
|
|
64
64
|
- **Metadata includes**: name, path, type, size, permissions (mode, string, owner/group/others), owner (uid, gid), timestamps (accessed, modified)
|
|
65
65
|
- **Note**: Uses hybrid approach (shell `ls` + SFTP `stat()`) to get all files including hidden ones with rich metadata
|
|
66
66
|
|
|
67
|
-
- **acp_remote_execute_command** - Execute a shell command on the remote machine
|
|
67
|
+
- **acp_remote_execute_command** - Execute a shell command on the remote machine with optional progress streaming
|
|
68
68
|
- `command` (required): Shell command to execute
|
|
69
69
|
- `cwd` (optional): Working directory for command execution
|
|
70
|
-
- `timeout` (optional): Timeout in seconds (default: 30)
|
|
71
|
-
- Returns
|
|
70
|
+
- `timeout` (optional): Timeout in seconds (default: 30, ignored if progress streaming)
|
|
71
|
+
- **Returns**: `{ stdout, stderr, exitCode, timedOut, streamed? }`
|
|
72
|
+
- **Progress Streaming** (v0.7.0+): Supports real-time output streaming when client provides `progressToken`
|
|
73
|
+
- Requires MCP SDK v1.26.0+ (server and client)
|
|
74
|
+
- Client must provide `progressToken` in request `_meta`
|
|
75
|
+
- Client must handle progress notifications via `onprogress` callback
|
|
76
|
+
- Graceful fallback to timeout mode if no `progressToken` provided
|
|
77
|
+
- Rate limited to max 10 notifications/second
|
|
78
|
+
- Ideal for long-running commands: `npm run build`, `npm test`, `npm run dev`
|
|
72
79
|
|
|
73
80
|
- **acp_remote_read_file** - Read file contents from the remote machine
|
|
74
81
|
- `path` (required): Absolute path to file
|