@agentrq/acp-gateway 0.1.19 → 0.1.21

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 CHANGED
@@ -42,7 +42,7 @@ npm install -g @agentrq/acp-gateway
42
42
 
43
43
  ## Current Version
44
44
 
45
- `0.1.17`
45
+ `0.1.21`
46
46
 
47
47
  ## Usage
48
48
 
@@ -61,6 +61,17 @@ Or with a custom command:
61
61
  acp-gateway -- your-acp-agent --flag1 --flag2
62
62
  ```
63
63
 
64
+ ### CLI Options
65
+
66
+ You can specify gateway options before the `--` separator:
67
+
68
+ - `--max-concurrency` / `--maxConcurrency` `<number>`: Sets the maximum number of concurrent tasks allowed to prompt the ACP agent at once. Defaults to `2`.
69
+
70
+ Example:
71
+ ```bash
72
+ acp-gateway --max-concurrency 4 -- gemini --acp
73
+ ```
74
+
64
75
  ### Configuration
65
76
 
66
77
  `acp-gateway` searches for `.mcp.json` starting in the current working directory and up to 3 parent directories.
@@ -108,6 +119,8 @@ Example `.mcp.json`:
108
119
  4. **ACP Handshake** — Initializes the ACP connection.
109
120
  5. **Task Bridge & Multi-Session Isolation** — When a task is received from the MCP server:
110
121
  - `acp-gateway` extracts the `chat_id` (Task ID).
122
+ - It checks if the task content is a duplicate of the last processed task for this Task ID. If it is repetitive, the task is dropped to prevent redundant processing.
123
+ - If not repetitive, the task is added to a concurrency-limiting queue (honoring the `--max-concurrency` limit).
111
124
  - It ensures a dedicated ACP session for that specific task.
112
125
  - If the task belongs to a different session than the current one, a new ACP session is initialized, providing clean state isolation between concurrent or sequential tasks.
113
126
  6. **Permission Bridge** — Permission requests from the ACP agent are forwarded to the MCP server; verdicts are sent back.
@@ -28,6 +28,7 @@ describe("config", () => {
28
28
  args: undefined,
29
29
  command: undefined,
30
30
  env: undefined,
31
+ headers: undefined,
31
32
  });
32
33
  });
33
34
  it("should handle missing mcpServers in JSON", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/__tests__/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAErB,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7E,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrD,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,IAAI,EAAE,MAAM;wBACZ,GAAG,EAAE,uBAAuB;qBAC7B;iBACF;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,uBAAuB;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,SAAS;gBAClB,GAAG,EAAE,SAAS;gBACd,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7E,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7E,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrD,UAAU,EAAE;oBACV,aAAa,EAAE,EAAE,GAAG,EAAE,oBAAoB,EAAE;oBAC5C,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;iBACzD;aACF,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,MAAM,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,OAAO,GAAG;gBACd,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;gBACpD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE;aAC5D,CAAC;YAET,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,OAAO,GAAG;gBACd,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE;aAC9C,CAAC;YAET,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,OAAO,GAAG;gBACd,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;aAChD,CAAC;YAET,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,28 @@
1
1
  import { describe, it, expect, vi, beforeEach } from "vitest";
2
- import { createAcpSessionSwitcher, checkForNextTask, mapMcpServers } from "../index.js";
2
+ import { Writable, Readable } from "node:stream";
3
+ import { createAcpSessionSwitcher, checkForNextTask, mapMcpServers, TaskQueue, getOrCreateSession, activeSessions, } from "../index.js";
4
+ vi.mock("node:child_process", () => {
5
+ return {
6
+ spawn: vi.fn().mockReturnValue({
7
+ stdin: new Writable({ write(chunk, encoding, callback) { callback(); } }),
8
+ stdout: new Readable({ read() { this.push(null); } }),
9
+ kill: vi.fn(),
10
+ }),
11
+ };
12
+ });
13
+ vi.mock("@agentclientprotocol/sdk", async () => {
14
+ const actual = await vi.importActual("@agentclientprotocol/sdk");
15
+ return {
16
+ ...actual,
17
+ ClientSideConnection: vi.fn().mockImplementation(function () {
18
+ return {
19
+ initialize: vi.fn().mockResolvedValue({ protocolVersion: "0.1.0" }),
20
+ newSession: vi.fn().mockResolvedValue({ sessionId: "test-sess-123" }),
21
+ prompt: vi.fn().mockResolvedValue({ stopReason: "complete" }),
22
+ };
23
+ }),
24
+ };
25
+ });
3
26
  describe("index", () => {
4
27
  describe("mapMcpServers", () => {
5
28
  it("should correctly map HTTP servers with headers and env", () => {
@@ -215,6 +238,104 @@ describe("index", () => {
215
238
  await checkForNextTask(mockMcpBridge, mockConnection, mockSessionSwitcher, mockAcpClient);
216
239
  expect(console.error).toHaveBeenCalledWith(expect.stringContaining("Failed to check for next task"), expect.any(Error));
217
240
  });
241
+ it("should drop repetitive task messages for the same taskId", async () => {
242
+ mockMcpBridge.callTool.mockResolvedValue({
243
+ isError: false,
244
+ content: [{ type: "text", text: "Task ID: T-Rep\nsome repetitive task" }],
245
+ });
246
+ // First run: should execute
247
+ await checkForNextTask(mockMcpBridge, mockConnection, mockSessionSwitcher, mockAcpClient);
248
+ expect(mockConnection.prompt).toHaveBeenCalledTimes(1);
249
+ // Reset mock connection call count
250
+ mockConnection.prompt.mockClear();
251
+ // Second run with same content: should drop and not execute
252
+ await checkForNextTask(mockMcpBridge, mockConnection, mockSessionSwitcher, mockAcpClient);
253
+ expect(mockConnection.prompt).not.toHaveBeenCalled();
254
+ });
255
+ });
256
+ describe("TaskQueue", () => {
257
+ it("should run tasks up to maxConcurrency immediately", async () => {
258
+ const queue = new TaskQueue(2);
259
+ let running = 0;
260
+ const tasks = Array.from({ length: 3 }, async (_, i) => {
261
+ return queue.run(async () => {
262
+ running++;
263
+ expect(running).toBeLessThanOrEqual(2);
264
+ await new Promise((resolve) => setTimeout(resolve, 20));
265
+ running--;
266
+ });
267
+ });
268
+ await Promise.all(tasks);
269
+ });
270
+ it("should queue subsequent tasks and execute them when previous ones finish", async () => {
271
+ const queue = new TaskQueue(1);
272
+ const executionOrder = [];
273
+ const t1 = queue.run(async () => {
274
+ executionOrder.push(1);
275
+ await new Promise((resolve) => setTimeout(resolve, 20));
276
+ });
277
+ const t2 = queue.run(async () => {
278
+ executionOrder.push(2);
279
+ });
280
+ await Promise.all([t1, t2]);
281
+ expect(executionOrder).toEqual([1, 2]);
282
+ });
283
+ it("should handle error in immediate task and decrement activeCount", async () => {
284
+ const queue = new TaskQueue(1);
285
+ await expect(queue.run(async () => {
286
+ throw new Error("immediate error");
287
+ })).rejects.toThrow("immediate error");
288
+ expect(queue.getActiveCount()).toBe(0);
289
+ });
290
+ it("should handle error in queued task, reject, and trigger next task", async () => {
291
+ const queue = new TaskQueue(1);
292
+ const logSpy = vi.spyOn(console, "log").mockImplementation(() => { });
293
+ let resolveFirst;
294
+ const firstPromise = new Promise((resolve) => { resolveFirst = resolve; });
295
+ const t1 = queue.run(async () => {
296
+ await firstPromise;
297
+ });
298
+ const t2 = queue.run(async () => {
299
+ throw new Error("queued error");
300
+ });
301
+ let ranThird = false;
302
+ const t3 = queue.run(async () => {
303
+ ranThird = true;
304
+ });
305
+ expect(queue.getQueueLength()).toBe(2);
306
+ resolveFirst();
307
+ await t1;
308
+ await expect(t2).rejects.toThrow("queued error");
309
+ await t3;
310
+ // Allow catch microtasks to run
311
+ await new Promise((resolve) => setTimeout(resolve, 10));
312
+ expect(ranThird).toBe(true);
313
+ expect(queue.getActiveCount()).toBe(0);
314
+ expect(logSpy).toHaveBeenCalledWith("[queue] Error executing queued task:", expect.any(Error));
315
+ logSpy.mockRestore();
316
+ });
317
+ });
318
+ describe("getOrCreateSession", () => {
319
+ beforeEach(() => {
320
+ activeSessions.clear();
321
+ });
322
+ it("should spawn a new session when not cached", async () => {
323
+ const mockBridge = {};
324
+ const configs = [];
325
+ const agentrqConfig = { env: {} };
326
+ const session = await getOrCreateSession("T-New", ["node", "agent.js"], configs, agentrqConfig, mockBridge);
327
+ expect(session).toBeDefined();
328
+ expect(session.sessionId).toBe("test-sess-123");
329
+ expect(activeSessions.has("T-New")).toBe(true);
330
+ });
331
+ it("should return cached session when already created", async () => {
332
+ const mockBridge = {};
333
+ const configs = [];
334
+ const agentrqConfig = { env: {} };
335
+ const session1 = await getOrCreateSession("T-Cache", ["node", "agent.js"], configs, agentrqConfig, mockBridge);
336
+ const session2 = await getOrCreateSession("T-Cache", ["node", "agent.js"], configs, agentrqConfig, mockBridge);
337
+ expect(session1).toBe(session2);
338
+ });
218
339
  });
219
340
  });
220
341
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -34,6 +34,50 @@ export function mapMcpServers(configs) {
34
34
  }
35
35
  import { AgentRQACPClient } from "./acpClient.js";
36
36
  import { extractTaskIdFromMeta, extractTaskIdFromText, } from "./taskIdentity.js";
37
+ const lastTaskContent = new Map();
38
+ export const activeSessions = new Map();
39
+ export async function getOrCreateSession(taskId, acpCmdArgs, configs, agentrqConfig, mcpBridge) {
40
+ const key = taskId || "default";
41
+ const existing = activeSessions.get(key);
42
+ if (existing) {
43
+ return existing;
44
+ }
45
+ const [cmd, ...cmdArgs] = acpCmdArgs;
46
+ console.error(`[acp] Spawning agent for task ${key}: ${cmd} ${cmdArgs.join(" ")}`);
47
+ const agentProcess = spawn(cmd, cmdArgs, {
48
+ stdio: ["pipe", "pipe", "inherit"],
49
+ env: { ...process.env, ...agentrqConfig.env },
50
+ });
51
+ const input = Writable.toWeb(agentProcess.stdin);
52
+ const output = Readable.toWeb(agentProcess.stdout);
53
+ const acpClient = new AgentRQACPClient(mcpBridge, () => taskId);
54
+ const stream = acp.ndJsonStream(input, output);
55
+ const connection = new acp.ClientSideConnection((_agent) => acpClient, stream);
56
+ const initResult = await connection.initialize({
57
+ protocolVersion: acp.PROTOCOL_VERSION,
58
+ clientCapabilities: {
59
+ fs: {
60
+ readTextFile: true,
61
+ writeTextFile: true,
62
+ },
63
+ },
64
+ });
65
+ console.error(`[acp] Connected to agent for task ${key} (protocol v${initResult.protocolVersion})`);
66
+ const newSessionParams = {
67
+ cwd: process.cwd(),
68
+ mcpServers: mapMcpServers(configs),
69
+ };
70
+ const sessionResult = await connection.newSession(newSessionParams);
71
+ console.error(`[acp] Created session ${sessionResult.sessionId} for task ${key}`);
72
+ const sessionInfo = {
73
+ process: agentProcess,
74
+ connection,
75
+ acpClient,
76
+ sessionId: sessionResult.sessionId,
77
+ };
78
+ activeSessions.set(key, sessionInfo);
79
+ return sessionInfo;
80
+ }
37
81
  export function createAcpSessionSwitcher(connection, params, initialSessionId) {
38
82
  let currentSessionId = initialSessionId;
39
83
  const taskSessionMap = new Map();
@@ -63,6 +107,59 @@ export function createAcpSessionSwitcher(connection, params, initialSessionId) {
63
107
  },
64
108
  };
65
109
  }
110
+ export class TaskQueue {
111
+ maxConcurrency;
112
+ activeTasks = 0;
113
+ queue = [];
114
+ constructor(maxConcurrency) {
115
+ this.maxConcurrency = maxConcurrency;
116
+ }
117
+ async run(taskFn) {
118
+ if (this.activeTasks < this.maxConcurrency) {
119
+ await this.execute(taskFn);
120
+ }
121
+ else {
122
+ await new Promise((resolve, reject) => {
123
+ this.queue.push(async () => {
124
+ try {
125
+ await taskFn();
126
+ resolve();
127
+ }
128
+ catch (err) {
129
+ reject(err);
130
+ throw err;
131
+ }
132
+ });
133
+ });
134
+ }
135
+ }
136
+ async execute(taskFn) {
137
+ this.activeTasks++;
138
+ try {
139
+ await taskFn();
140
+ }
141
+ finally {
142
+ this.activeTasks--;
143
+ this.next();
144
+ }
145
+ }
146
+ next() {
147
+ if (this.queue.length > 0 && this.activeTasks < this.maxConcurrency) {
148
+ const nextTask = this.queue.shift();
149
+ if (nextTask) {
150
+ this.execute(nextTask).catch((err) => {
151
+ console.log("[queue] Error executing queued task:", err);
152
+ });
153
+ }
154
+ }
155
+ }
156
+ getActiveCount() {
157
+ return this.activeTasks;
158
+ }
159
+ getQueueLength() {
160
+ return this.queue.length;
161
+ }
162
+ }
66
163
  async function main() {
67
164
  console.log(`Starting [acp-gateway] ${pkg.name} v${pkg.version}`);
68
165
  const args = process.argv.slice(2);
@@ -70,75 +167,60 @@ async function main() {
70
167
  const cmdStartIndex = args.indexOf("--");
71
168
  const acpCmdArgs = cmdStartIndex !== -1 ? args.slice(cmdStartIndex + 1) : args;
72
169
  if (acpCmdArgs.length === 0) {
73
- console.log("Usage: acp-gateway -- <acp-server-command> [args...]");
74
- console.log("Example: acp-gateway -- gemini --acp");
170
+ console.log("Usage: acp-gateway [--max-concurrency <number>] -- <acp-server-command> [args...]");
171
+ console.log("Example: acp-gateway --max-concurrency 4 -- gemini --acp");
75
172
  process.exit(1);
76
173
  }
77
174
  // 1. Load MCP Config
78
175
  const configs = loadMcpConfig();
79
176
  const agentrqConfig = pickAgentrqServer(configs);
177
+ // Parse max concurrency from CLI args, falling back to default of 2
178
+ let maxConcurrency = 2;
179
+ const gatewayArgs = cmdStartIndex !== -1 ? args.slice(0, cmdStartIndex) : [];
180
+ const maxConcurrencyIdx = gatewayArgs.findIndex((arg) => arg === "--max-concurrency" || arg === "--maxConcurrency");
181
+ if (maxConcurrencyIdx !== -1 && maxConcurrencyIdx + 1 < gatewayArgs.length) {
182
+ const val = parseInt(gatewayArgs[maxConcurrencyIdx + 1], 10);
183
+ if (!isNaN(val)) {
184
+ maxConcurrency = val;
185
+ }
186
+ }
187
+ const taskQueue = new TaskQueue(maxConcurrency);
80
188
  // 2. Initialize MCP Bridge
81
189
  const mcpBridge = new MCPBridge(agentrqConfig);
82
190
  await mcpBridge.connect();
83
- // 3. Spawn ACP Agent Subprocess
84
- const [cmd, ...cmdArgs] = acpCmdArgs;
85
- console.error(`[acp] Spawning agent: ${cmd} ${cmdArgs.join(" ")}`);
86
- const agentProcess = spawn(cmd, cmdArgs, {
87
- stdio: ["pipe", "pipe", "inherit"],
88
- env: { ...process.env, ...agentrqConfig.env },
89
- });
90
- const input = Writable.toWeb(agentProcess.stdin);
91
- const output = Readable.toWeb(agentProcess.stdout);
92
- // 4. Create ACP Connection
93
- // taskIdLookup is filled in after the session switcher is created below.
94
- let taskIdLookup = () => undefined;
95
- const acpClient = new AgentRQACPClient(mcpBridge, (sid) => taskIdLookup(sid));
96
- const stream = acp.ndJsonStream(input, output);
97
- const connection = new acp.ClientSideConnection((_agent) => acpClient, stream);
98
191
  try {
99
- // 5. Initialize ACP Connection
100
- const initResult = await connection.initialize({
101
- protocolVersion: acp.PROTOCOL_VERSION,
102
- clientCapabilities: {
103
- fs: {
104
- readTextFile: true,
105
- writeTextFile: true,
106
- },
107
- },
108
- });
109
- console.error(`[acp] Connected to agent (protocol v${initResult.protocolVersion})`);
110
- // 6. Create ACP Session
111
- // We pass our agentrq MCP server to the agent so it can use our tools directly.
112
- // The McpServer object must follow the ACP protocol schema (type, name, url, headers).
113
- const newSessionParams = {
114
- cwd: process.cwd(),
115
- mcpServers: mapMcpServers(configs),
116
- };
117
- const sessionResult = await connection.newSession(newSessionParams);
118
- const sessionSwitcher = createAcpSessionSwitcher(connection, newSessionParams, sessionResult.sessionId);
119
- taskIdLookup = (sid) => sessionSwitcher.getTaskIdForSession(sid);
120
- console.error(`[acp] Created session: ${sessionSwitcher.getSessionId()}`);
121
192
  // Bridge: MCP -> ACP
122
193
  // When the MCP server sends a notification to 'notifications/claude/channel',
123
194
  // it contains a new task content.
124
- mcpBridge.on("task", async ({ content, meta }) => {
125
- console.error("\n[bridge] Incoming task from MCP server. Forwarding to ACP agent...");
126
- try {
127
- const taskId = extractTaskIdFromMeta(meta);
128
- const sessionId = await sessionSwitcher.ensureForTask(taskId);
129
- const result = await connection.prompt({
130
- sessionId,
131
- prompt: [{ type: "text", text: content }],
132
- });
133
- await acpClient.flushReply(sessionId);
134
- console.error(`\n[acp] Agent completed task. Reason: ${result.stopReason}`);
135
- }
136
- catch (err) {
137
- console.error("[acp] Error during prompt execution:", err);
195
+ mcpBridge.on("task", ({ content, meta }) => {
196
+ const taskId = extractTaskIdFromMeta(meta);
197
+ if (taskId) {
198
+ if (lastTaskContent.get(taskId) === content) {
199
+ console.log(`[bridge] Dropping repetitive task notification for ${taskId}`);
200
+ return;
201
+ }
202
+ lastTaskContent.set(taskId, content);
138
203
  }
204
+ console.error("\n[bridge] Incoming task from MCP server. Forwarding to ACP agent...");
205
+ taskQueue.run(async () => {
206
+ try {
207
+ const sessionInfo = await getOrCreateSession(taskId, acpCmdArgs, configs, agentrqConfig, mcpBridge);
208
+ const result = await sessionInfo.connection.prompt({
209
+ sessionId: sessionInfo.sessionId,
210
+ prompt: [{ type: "text", text: content }],
211
+ });
212
+ await sessionInfo.acpClient.flushReply(sessionInfo.sessionId);
213
+ console.error(`\n[acp] Agent completed task. Reason: ${result.stopReason}`);
214
+ }
215
+ catch (err) {
216
+ console.error("[acp] Error during prompt execution:", err);
217
+ }
218
+ }).catch((err) => {
219
+ console.error("[bridge] Error queuing task:", err);
220
+ });
139
221
  });
140
222
  // Initial check for a pending task
141
- await checkForNextTask(mcpBridge, connection, sessionSwitcher, acpClient);
223
+ await checkForNextTask(mcpBridge, acpCmdArgs, configs, agentrqConfig, taskQueue);
142
224
  // Keep the process alive
143
225
  await new Promise(() => { });
144
226
  }
@@ -146,7 +228,9 @@ async function main() {
146
228
  console.error("[acp-gateway] Error:", error);
147
229
  }
148
230
  finally {
149
- agentProcess.kill();
231
+ for (const session of activeSessions.values()) {
232
+ session.process.kill();
233
+ }
150
234
  await mcpBridge.close();
151
235
  process.exit(0);
152
236
  }
@@ -155,7 +239,7 @@ async function main() {
155
239
  * Checks for the next pending task using the 'getNextTask' tool on the MCP server.
156
240
  * If found, sends it to the ACP agent.
157
241
  */
158
- export async function checkForNextTask(mcpBridge, connection, sessionSwitcher, acpClient) {
242
+ export async function checkForNextTask(mcpBridge, acpCmdArgsOrConnection, configsOrSessionSwitcher, agentrqConfigOrAcpClient, taskQueue, acpCmdArgs, configs, agentrqConfig) {
159
243
  console.error("[bridge] Checking for next task via MCP server...");
160
244
  try {
161
245
  const result = await mcpBridge.callTool("getNextTask");
@@ -169,15 +253,57 @@ export async function checkForNextTask(mcpBridge, connection, sessionSwitcher, a
169
253
  content.text &&
170
254
  !content.text.includes("no pending tasks exist")) {
171
255
  const text = content.text;
172
- console.error(`[bridge] Found task: "${text.slice(0, 50).replace(/\n/g, " ")}..."`);
173
256
  const taskId = extractTaskIdFromText(text);
174
- const sessionId = await sessionSwitcher.ensureForTask(taskId);
175
- const promptResult = await connection.prompt({
176
- sessionId,
177
- prompt: [{ type: "text", text }],
178
- });
179
- await acpClient.flushReply(sessionId);
180
- console.error(`\n[acp] Agent completed with: ${promptResult.stopReason}`);
257
+ if (taskId) {
258
+ if (lastTaskContent.get(taskId) === text) {
259
+ console.log(`[bridge] Dropping repetitive checked task for ${taskId}`);
260
+ return;
261
+ }
262
+ lastTaskContent.set(taskId, text);
263
+ }
264
+ console.error(`[bridge] Found task: "${text.slice(0, 50).replace(/\n/g, " ")}..."`);
265
+ const runFn = async () => {
266
+ let connectionToUse;
267
+ let acpClientToUse;
268
+ let sessionIdToUse;
269
+ let actualAcpCmdArgs = [];
270
+ let actualConfigs = [];
271
+ let actualAgentrqConfig;
272
+ if (Array.isArray(acpCmdArgsOrConnection)) {
273
+ actualAcpCmdArgs = acpCmdArgsOrConnection;
274
+ actualConfigs = configsOrSessionSwitcher;
275
+ actualAgentrqConfig = agentrqConfigOrAcpClient;
276
+ }
277
+ else {
278
+ connectionToUse = acpCmdArgsOrConnection;
279
+ acpClientToUse = agentrqConfigOrAcpClient;
280
+ const switcher = configsOrSessionSwitcher;
281
+ if (switcher && typeof switcher.ensureForTask === "function") {
282
+ sessionIdToUse = await switcher.ensureForTask(taskId);
283
+ }
284
+ actualAcpCmdArgs = acpCmdArgs || [];
285
+ actualConfigs = configs || [];
286
+ actualAgentrqConfig = agentrqConfig;
287
+ }
288
+ if (!connectionToUse) {
289
+ const sessionInfo = await getOrCreateSession(taskId, actualAcpCmdArgs, actualConfigs, actualAgentrqConfig, mcpBridge);
290
+ connectionToUse = sessionInfo.connection;
291
+ sessionIdToUse = sessionInfo.sessionId;
292
+ acpClientToUse = sessionInfo.acpClient;
293
+ }
294
+ const promptResult = await connectionToUse.prompt({
295
+ sessionId: sessionIdToUse,
296
+ prompt: [{ type: "text", text }],
297
+ });
298
+ await acpClientToUse.flushReply(sessionIdToUse);
299
+ console.error(`\n[acp] Agent completed with: ${promptResult.stopReason}`);
300
+ };
301
+ if (taskQueue) {
302
+ await taskQueue.run(runFn);
303
+ }
304
+ else {
305
+ await runFn();
306
+ }
181
307
  }
182
308
  else {
183
309
  console.error("[bridge] No pending tasks available.");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/mcpClient.js CHANGED
@@ -76,7 +76,7 @@ export class MCPBridge extends EventEmitter {
76
76
  });
77
77
  this.client = new Client({
78
78
  name: "acp-gateway",
79
- version: "0.1.19",
79
+ version: "0.1.21",
80
80
  }, {
81
81
  capabilities: {},
82
82
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentrq/acp-gateway",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "ACP+MCP bridge CLI for agentrq workspaces",
5
5
  "type": "module",
6
6
  "publishConfig": {