macro-agent 0.0.7 → 0.0.8

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 (36) hide show
  1. package/dist/cli/acp.d.ts.map +1 -1
  2. package/dist/cli/acp.js +101 -3
  3. package/dist/cli/acp.js.map +1 -1
  4. package/dist/map/adapter/acp-over-map.d.ts +77 -0
  5. package/dist/map/adapter/acp-over-map.d.ts.map +1 -0
  6. package/dist/map/adapter/acp-over-map.js +372 -0
  7. package/dist/map/adapter/acp-over-map.js.map +1 -0
  8. package/dist/map/adapter/index.d.ts +1 -0
  9. package/dist/map/adapter/index.d.ts.map +1 -1
  10. package/dist/map/adapter/index.js +2 -0
  11. package/dist/map/adapter/index.js.map +1 -1
  12. package/dist/map/adapter/interface.d.ts +22 -0
  13. package/dist/map/adapter/interface.d.ts.map +1 -1
  14. package/dist/map/adapter/map-adapter.d.ts +25 -1
  15. package/dist/map/adapter/map-adapter.d.ts.map +1 -1
  16. package/dist/map/adapter/map-adapter.js +147 -21
  17. package/dist/map/adapter/map-adapter.js.map +1 -1
  18. package/dist/map/adapter/rpc-handler.d.ts.map +1 -1
  19. package/dist/map/adapter/rpc-handler.js +4 -0
  20. package/dist/map/adapter/rpc-handler.js.map +1 -1
  21. package/dist/map/adapter/subscription-manager.js.map +1 -1
  22. package/dist/server/combined-server.d.ts.map +1 -1
  23. package/dist/server/combined-server.js +8 -1
  24. package/dist/server/combined-server.js.map +1 -1
  25. package/dist/store/event-store.js +7 -1
  26. package/dist/store/event-store.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/cli/acp.ts +107 -3
  29. package/src/map/adapter/acp-over-map.ts +516 -0
  30. package/src/map/adapter/index.ts +8 -0
  31. package/src/map/adapter/interface.ts +30 -6
  32. package/src/map/adapter/map-adapter.ts +325 -76
  33. package/src/map/adapter/rpc-handler.ts +4 -0
  34. package/src/map/adapter/subscription-manager.ts +10 -10
  35. package/src/server/combined-server.ts +8 -1
  36. package/src/store/event-store.ts +8 -2
@@ -1 +1 @@
1
- {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AA+BH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAoB3D"}
1
+ {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAoCH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAyB3D"}
package/dist/cli/acp.js CHANGED
@@ -37,7 +37,10 @@
37
37
  * args: ['multiagent', '--acp'],
38
38
  * });
39
39
  */
40
+ import { readFileSync } from "node:fs";
41
+ import { dirname, join } from "node:path";
40
42
  import { Readable } from "node:stream";
43
+ import { fileURLToPath } from "node:url";
41
44
  import { AgentSideConnection, ndJsonStream, } from "@agentclientprotocol/sdk";
42
45
  import { createEventStore } from "../store/event-store.js";
43
46
  import { createAgentManager } from "../agent/agent-manager.js";
@@ -55,7 +58,13 @@ export function parseArgs(argv) {
55
58
  const args = argv ?? process.argv.slice(2);
56
59
  const options = {};
57
60
  for (let i = 0; i < args.length; i++) {
58
- if (args[i] === "--cwd" && args[i + 1]) {
61
+ if (args[i] === "--version" || args[i] === "-v") {
62
+ const __dirname = dirname(fileURLToPath(import.meta.url));
63
+ const pkg = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf-8"));
64
+ console.log(pkg.version);
65
+ process.exit(0);
66
+ }
67
+ else if (args[i] === "--cwd" && args[i + 1]) {
59
68
  options.cwd = args[i + 1];
60
69
  i++;
61
70
  }
@@ -107,8 +116,97 @@ async function main() {
107
116
  const defaultCwd = options.cwd ?? process.cwd();
108
117
  // Initialize services
109
118
  const eventStore = await createEventStore({ inMemory: false });
110
- const messageRouter = createMessageRouter(eventStore);
111
- const agentManager = createAgentManager(eventStore, messageRouter);
119
+ // We need to create agentManager first (with a placeholder router),
120
+ // then wire the sessionChecker/wakeHandler into the router,
121
+ // then update agentManager with the real router.
122
+ // However, to avoid circular dependency, we'll create the session checker
123
+ // lazily since it only needs agentManager methods.
124
+ // Create a deferred agentManager reference for the session checker
125
+ let agentManager;
126
+ // Create session checker that the MessageRouter uses to decide wake actions
127
+ const sessionChecker = {
128
+ hasActiveSession(agentId) {
129
+ return agentManager?.hasActiveSession(agentId) ?? false;
130
+ },
131
+ isPrompting(agentId) {
132
+ return agentManager?.isPrompting(agentId) ?? false;
133
+ },
134
+ supportsInjection(_agentId) {
135
+ // Default to true; actual injection support is checked during inject()
136
+ return true;
137
+ },
138
+ isStopped(agentId) {
139
+ const agent = agentManager?.get(agentId);
140
+ return agent?.state === "stopped";
141
+ },
142
+ };
143
+ // Create wake handler that the MessageRouter calls when messages should wake agents
144
+ const routerWakeHandler = async (agentId, decision, messageId) => {
145
+ if (!agentManager)
146
+ return;
147
+ const session = agentManager.getSession(agentId);
148
+ if (!session) {
149
+ // No session, message is queued - agent will see it on next check_messages
150
+ console.error(`[acp] Message ${messageId} queued for agent ${agentId} (no session)`);
151
+ return;
152
+ }
153
+ // Format the message notification
154
+ const message = `[New Message Received]\nMessage ID: ${messageId}\nUse check_messages to read your pending messages.`;
155
+ if (decision.shouldInterrupt) {
156
+ // Interrupt the current work
157
+ try {
158
+ const iterable = session.interruptWith(message);
159
+ const iterator = iterable[Symbol.asyncIterator]();
160
+ await iterator.next(); // Start the interrupt
161
+ console.error(`[acp] Interrupted agent ${agentId} for message ${messageId}`);
162
+ }
163
+ catch (error) {
164
+ console.error(`[acp] Failed to interrupt agent ${agentId}:`, error);
165
+ }
166
+ }
167
+ else if (decision.action === "inject") {
168
+ // Try to inject into current session
169
+ try {
170
+ const result = await session.inject(message);
171
+ if (result.success) {
172
+ console.error(`[acp] Injected message notification to agent ${agentId}`);
173
+ }
174
+ else {
175
+ console.error(`[acp] Injection not supported for agent ${agentId}, message queued`);
176
+ }
177
+ }
178
+ catch (error) {
179
+ console.error(`[acp] Failed to inject to agent ${agentId}:`, error);
180
+ }
181
+ }
182
+ else if (decision.shouldWake) {
183
+ // Wake the agent by starting a new prompt
184
+ try {
185
+ const promptIterable = agentManager.prompt(agentId, message);
186
+ // Fire and forget - just start the iteration
187
+ (async () => {
188
+ try {
189
+ for await (const _ of promptIterable) {
190
+ break; // Exit after first update
191
+ }
192
+ }
193
+ catch {
194
+ // Ignore background errors
195
+ }
196
+ })();
197
+ console.error(`[acp] Woke agent ${agentId} for message ${messageId}`);
198
+ }
199
+ catch (error) {
200
+ console.error(`[acp] Failed to wake agent ${agentId}:`, error);
201
+ }
202
+ }
203
+ };
204
+ const messageRouter = createMessageRouter(eventStore, {
205
+ sessionChecker,
206
+ wakeHandler: routerWakeHandler,
207
+ });
208
+ // Now create the agentManager with the real router
209
+ agentManager = createAgentManager(eventStore, messageRouter);
112
210
  const taskManager = createTaskManager(eventStore);
113
211
  // Create ActivityWatcher for event-driven agent waking
114
212
  const sessionProvider = createSessionProviderFromAgentManager(agentManager);
@@ -1 +1 @@
1
- {"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,oBAAoB,GAErB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,GAE5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,iBAAiB,EACjB,qCAAqC,GACtC,MAAM,kBAAkB,CAAC;AAiB1B;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,IAAe;IACvC,MAAM,IAAI,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oEAAoE;AACpE,eAAe;AACf,oEAAoE;AAEpE;;GAEG;AACH,SAAS,kBAAkB;IAIzB,yCAAyC;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAA+B,CAAC;IAE1E,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;QAC5C,KAAK,CAAC,KAAK;YACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;oBACtD,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;yBAChB,IAAI,WAAW;wBAAE,OAAO,EAAE,CAAC;gBAClC,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,oEAAoE;AACpE,mBAAmB;AACnB,oEAAoE;AAEpE,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEhD,sBAAsB;IACtB,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAElD,uDAAuD;IACvD,MAAM,eAAe,GAAG,qCAAqC,CAAC,YAAY,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;IACrE,MAAM,eAAe,GAAoB,qBAAqB,CAC5D;QACE,UAAU,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE;QACrC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;KACvC,EACD,WAAW,CACZ,CAAC;IAEF,4CAA4C;IAC5C,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;YAAE,OAAO;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,oBAAoB;QAExC,oCAAoC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe;YAC5D,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe;gBAC7C,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB;oBAChD,CAAC,CAAC,eAAe,CAAC;QAEpB,eAAe,CAAC,eAAe,CAAC;YAC9B,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC9D,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;YAC/C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;YAAE,OAAO;QACzC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,mBAAmB;QAEtC,oCAAoC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc;YAC1D,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe;gBAC9C,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,cAAc;oBAChD,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB;wBAChD,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa;4BAC1C,CAAC,CAAC,cAAc,CAAC;QAEnB,eAAe,CAAC,eAAe,CAAC;YAC9B,EAAE,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YAC9D,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE;YACvE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SACjC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,eAAe,CAAC,KAAK,EAAE,CAAC;IAExB,iEAAiE;IACjE,YAAY,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,mCAAmC;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnE,sBAAsB,CACpB,eAAe,EACf,KAAK,CAAC,EAAE,EACR,2BAA2B,EAC3B,SAAS,EAAE,qCAAqC;gBAChD,MAAM,CAAK,kCAAkC;iBAC9C,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,iCAAiC,KAAK,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,IAAI,cAA0C,CAAC;IAE/C,mBAAmB;IACnB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,uBAAuB;QACvB,eAAe,CAAC,IAAI,EAAE,CAAC;QAEvB,kCAAkC;QAClC,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,2BAA2B;QAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,MAAM,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,OAAO,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,0DAA0D;YAC1D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE3C,wCAAwC;YACxC,MAAM,UAAU,GAAG,IAAI,mBAAmB,CACxC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,UAAU,CAAC,IAAI,EAAE;gBACnB,YAAY;gBACZ,UAAU;gBACV,WAAW;gBACX,UAAU;aACX,CAAC,EACJ,MAAM,CACP,CAAC;YAEF,+BAA+B;YAC/B,MAAM,UAAU,CAAC,MAAM,CAAC;YAExB,2BAA2B;YAC3B,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,6DAA6D;YAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;YACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;YAElC,cAAc,GAAG,oBAAoB,CACnC,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,EACzE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAC3B,CAAC;YAEF,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;YAE7B,6DAA6D;YAC7D,MAAM,IAAI,OAAO,CAAO,GAAG,EAAE;gBAC3B,oDAAoD;YACtD,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2DAA2D;QAC3D,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;QAE5C,kBAAkB;QAClB,IAAI,CAAC;YACH,MAAM,OAAO,EAAE,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"acp.js","sourceRoot":"","sources":["../../src/cli/acp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * ACP-over-MAP Handler
3
+ *
4
+ * Handles ACP protocol messages that arrive via MAP instead of direct WebSocket.
5
+ * Provides a bridge between MAP messaging and the MacroAgent ACP implementation.
6
+ *
7
+ * This allows external clients to communicate with macro-agent agents using
8
+ * ACP protocol semantics over the MAP transport layer.
9
+ */
10
+ import type { AgentManager } from "../../agent/agent-manager.js";
11
+ import type { EventStore } from "../../store/event-store.js";
12
+ import type { TaskManager } from "../../task/task-manager.js";
13
+ import type { AgentId } from "../../store/types/index.js";
14
+ export interface ACPEnvelope {
15
+ acp: {
16
+ jsonrpc: string;
17
+ id?: string | number;
18
+ method?: string;
19
+ params?: unknown;
20
+ result?: unknown;
21
+ error?: {
22
+ code: number;
23
+ message: string;
24
+ data?: unknown;
25
+ };
26
+ };
27
+ acpContext: {
28
+ streamId: string;
29
+ sessionId?: string;
30
+ direction: string;
31
+ };
32
+ }
33
+ export interface ACPOverMAPConfig {
34
+ agentManager: AgentManager;
35
+ eventStore: EventStore;
36
+ taskManager: TaskManager;
37
+ defaultCwd?: string;
38
+ }
39
+ /**
40
+ * Callback for emitting ACP notifications during request processing.
41
+ * Used to stream session updates back to the client.
42
+ */
43
+ export type ACPNotificationEmitter = (notification: ACPEnvelope) => void;
44
+ export declare class ACPOverMAPHandler {
45
+ private agentManager;
46
+ private eventStore;
47
+ private taskManager;
48
+ private defaultCwd;
49
+ /** Stream states by streamId */
50
+ private streams;
51
+ /** Session mapper for ACP session -> Agent mapping */
52
+ private sessionMapper;
53
+ constructor(config: ACPOverMAPConfig);
54
+ /**
55
+ * Process an ACP request and return the response.
56
+ * @param targetAgentId - Target agent for the request
57
+ * @param envelope - ACP request envelope
58
+ * @param emitNotification - Optional callback to emit notifications (for streaming updates)
59
+ */
60
+ processRequest(targetAgentId: AgentId, envelope: ACPEnvelope, emitNotification?: ACPNotificationEmitter): Promise<ACPEnvelope>;
61
+ private handleInitialize;
62
+ private handleNewSession;
63
+ private handleLoadSession;
64
+ private handleAuthenticate;
65
+ private handlePrompt;
66
+ private handleCancel;
67
+ private handleExtension;
68
+ /**
69
+ * Clean up a stream when it's closed.
70
+ */
71
+ closeStream(streamId: string): void;
72
+ /**
73
+ * Clean up all streams.
74
+ */
75
+ closeAll(): void;
76
+ }
77
+ //# sourceMappingURL=acp-over-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-over-map.d.ts","sourceRoot":"","sources":["../../../src/map/adapter/acp-over-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAQ1D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KAC3D,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,YAAY,EAAE,WAAW,KAAK,IAAI,CAAC;AAczE,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAS;IAE3B,gCAAgC;IAChC,OAAO,CAAC,OAAO,CAAuC;IAEtD,sDAAsD;IACtD,OAAO,CAAC,aAAa,CAAsC;gBAE/C,MAAM,EAAE,gBAAgB;IAOpC;;;;;OAKG;IACG,cAAc,CAClB,aAAa,EAAE,OAAO,EACtB,QAAQ,EAAE,WAAW,EACrB,gBAAgB,CAAC,EAAE,sBAAsB,GACxC,OAAO,CAAC,WAAW,CAAC;YAkFT,gBAAgB;YA2BhB,gBAAgB;YA6BhB,iBAAiB;YAoDjB,kBAAkB;YAKlB,YAAY;YAkGZ,YAAY;YAsCZ,eAAe;IAyE7B;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQnC;;OAEG;IACH,QAAQ,IAAI,IAAI;CAMjB"}
@@ -0,0 +1,372 @@
1
+ /**
2
+ * ACP-over-MAP Handler
3
+ *
4
+ * Handles ACP protocol messages that arrive via MAP instead of direct WebSocket.
5
+ * Provides a bridge between MAP messaging and the MacroAgent ACP implementation.
6
+ *
7
+ * This allows external clients to communicate with macro-agent agents using
8
+ * ACP protocol semantics over the MAP transport layer.
9
+ */
10
+ import { SessionMapper } from "../../acp/session-mapper.js";
11
+ // ─────────────────────────────────────────────────────────────────
12
+ // ACP-over-MAP Handler
13
+ // ─────────────────────────────────────────────────────────────────
14
+ export class ACPOverMAPHandler {
15
+ agentManager;
16
+ eventStore;
17
+ taskManager;
18
+ defaultCwd;
19
+ /** Stream states by streamId */
20
+ streams = new Map();
21
+ /** Session mapper for ACP session -> Agent mapping */
22
+ sessionMapper = new SessionMapper();
23
+ constructor(config) {
24
+ this.agentManager = config.agentManager;
25
+ this.eventStore = config.eventStore;
26
+ this.taskManager = config.taskManager;
27
+ this.defaultCwd = config.defaultCwd ?? process.cwd();
28
+ }
29
+ /**
30
+ * Process an ACP request and return the response.
31
+ * @param targetAgentId - Target agent for the request
32
+ * @param envelope - ACP request envelope
33
+ * @param emitNotification - Optional callback to emit notifications (for streaming updates)
34
+ */
35
+ async processRequest(targetAgentId, envelope, emitNotification) {
36
+ const { acp, acpContext } = envelope;
37
+ const { streamId, sessionId } = acpContext;
38
+ const method = acp.method;
39
+ console.error(`[ACP-over-MAP] Processing - streamId=${streamId} method=${method}`);
40
+ // Get or create stream state
41
+ let streamState = this.streams.get(streamId);
42
+ if (!streamState) {
43
+ streamState = {
44
+ initialized: false,
45
+ streamId,
46
+ abortController: new AbortController(),
47
+ };
48
+ this.streams.set(streamId, streamState);
49
+ }
50
+ let result;
51
+ let error;
52
+ try {
53
+ switch (method) {
54
+ case "initialize":
55
+ result = await this.handleInitialize(streamState, acp.params);
56
+ break;
57
+ case "session/new":
58
+ result = await this.handleNewSession(streamState, acp.params);
59
+ break;
60
+ case "session/load":
61
+ result = await this.handleLoadSession(streamState, acp.params);
62
+ break;
63
+ case "authenticate":
64
+ result = await this.handleAuthenticate(acp.params);
65
+ break;
66
+ case "session/prompt":
67
+ result = await this.handlePrompt(streamState, acp.params, sessionId, emitNotification);
68
+ break;
69
+ case "session/cancel":
70
+ result = await this.handleCancel(streamState, acp.params, sessionId);
71
+ break;
72
+ default:
73
+ // Check for extension methods
74
+ if (method?.startsWith("_")) {
75
+ result = await this.handleExtension(streamState, method, acp.params);
76
+ }
77
+ else {
78
+ throw new Error(`Unknown ACP method: ${method}`);
79
+ }
80
+ }
81
+ }
82
+ catch (e) {
83
+ console.error(`[ACP-over-MAP] Error processing ${method}:`, e);
84
+ error = {
85
+ code: -32603,
86
+ message: e instanceof Error ? e.message : String(e),
87
+ };
88
+ }
89
+ // Build response envelope
90
+ return {
91
+ acp: {
92
+ jsonrpc: "2.0",
93
+ id: acp.id,
94
+ ...(error ? { error } : { result }),
95
+ },
96
+ acpContext: {
97
+ streamId,
98
+ sessionId: streamState.sessionId,
99
+ direction: "agent-to-client",
100
+ },
101
+ };
102
+ }
103
+ // ─────────────────────────────────────────────────────────────────
104
+ // Core ACP Methods
105
+ // ─────────────────────────────────────────────────────────────────
106
+ async handleInitialize(streamState, params) {
107
+ if (streamState.initialized) {
108
+ throw new Error("Stream already initialized");
109
+ }
110
+ streamState.initialized = true;
111
+ return {
112
+ protocolVersion: 1,
113
+ agentCapabilities: {
114
+ loadSession: true,
115
+ _meta: {
116
+ extensions: [
117
+ "_macro/spawnAgent",
118
+ "_macro/getHierarchy",
119
+ "_macro/getTask",
120
+ ],
121
+ agentType: "macro-agent",
122
+ transport: "acp-over-map",
123
+ },
124
+ },
125
+ };
126
+ }
127
+ async handleNewSession(streamState, params) {
128
+ if (!streamState.initialized) {
129
+ throw new Error("Must call initialize before newSession");
130
+ }
131
+ const { cwd, mcpServers } = params ?? {};
132
+ const workingDir = cwd ?? this.defaultCwd;
133
+ // Spawn a new head manager for this session
134
+ const spawned = await this.agentManager.getOrCreateHeadManager({
135
+ cwd: workingDir,
136
+ forceNew: true,
137
+ });
138
+ const sessionId = spawned.session_id;
139
+ streamState.sessionId = sessionId;
140
+ streamState.agentId = spawned.id;
141
+ // Create session mapping
142
+ this.sessionMapper.createMapping(sessionId, spawned.id);
143
+ console.error(`[ACP-over-MAP] Created session ${sessionId} -> agent ${spawned.id}`);
144
+ return { sessionId };
145
+ }
146
+ async handleLoadSession(streamState, params) {
147
+ if (!streamState.initialized) {
148
+ throw new Error("Must call initialize before loadSession");
149
+ }
150
+ const { sessionId, cwd } = params ?? {};
151
+ if (!sessionId) {
152
+ throw new Error("sessionId required");
153
+ }
154
+ const workingDir = cwd ?? this.defaultCwd;
155
+ // Try to find an existing head manager with this session ID
156
+ const headManagers = this.agentManager.listHeadManagers();
157
+ const existing = headManagers.find((hm) => hm.session_id === sessionId);
158
+ if (existing) {
159
+ // Check if the agent already has an active session
160
+ if (this.agentManager.hasActiveSession(existing.id)) {
161
+ console.error(`[ACP-over-MAP] loadSession: Reusing existing session for agent ${existing.id}`);
162
+ streamState.sessionId = sessionId;
163
+ streamState.agentId = existing.id;
164
+ this.sessionMapper.createMapping(sessionId, existing.id);
165
+ return {};
166
+ }
167
+ // Agent exists but no active session - resume it
168
+ console.error(`[ACP-over-MAP] loadSession: Resuming stopped agent ${existing.id}`);
169
+ const spawned = await this.agentManager.resume(existing.id);
170
+ streamState.sessionId = sessionId;
171
+ streamState.agentId = spawned.id;
172
+ this.sessionMapper.createMapping(sessionId, spawned.id);
173
+ return {};
174
+ }
175
+ // No existing agent found - create new with the specified session ID
176
+ console.error(`[ACP-over-MAP] loadSession: Creating new agent for session ${sessionId}`);
177
+ const spawned = await this.agentManager.getOrCreateHeadManager({
178
+ cwd: workingDir,
179
+ sessionId,
180
+ });
181
+ streamState.sessionId = sessionId;
182
+ streamState.agentId = spawned.id;
183
+ this.sessionMapper.createMapping(sessionId, spawned.id);
184
+ return {};
185
+ }
186
+ async handleAuthenticate(_params) {
187
+ // No authentication required
188
+ return {};
189
+ }
190
+ async handlePrompt(streamState, params, sessionIdFromContext, emitNotification) {
191
+ const { prompt, sessionId: paramSessionId } = params ?? {};
192
+ const sessionId = paramSessionId ?? sessionIdFromContext ?? streamState.sessionId;
193
+ if (!sessionId) {
194
+ throw new Error("No session - call newSession or loadSession first");
195
+ }
196
+ // Get the mapped agent
197
+ const agentId = this.sessionMapper.getAgentId(sessionId);
198
+ if (!agentId) {
199
+ throw new Error(`No agent mapped for session ${sessionId}`);
200
+ }
201
+ // Reset abort controller if needed
202
+ if (streamState.abortController.signal.aborted) {
203
+ streamState.abortController = new AbortController();
204
+ }
205
+ // Extract message content
206
+ let messageContent;
207
+ if (prompt && Array.isArray(prompt)) {
208
+ messageContent = prompt
209
+ .filter((block) => block.type === "text" && block.text)
210
+ .map((block) => block.text)
211
+ .join("\n");
212
+ }
213
+ else if (params?.messages) {
214
+ // Handle messages format (role/content array)
215
+ const messages = params.messages;
216
+ messageContent = messages.map((m) => m.content).join("\n");
217
+ }
218
+ else {
219
+ messageContent = JSON.stringify(params);
220
+ }
221
+ console.error(`[ACP-over-MAP] Prompting agent ${agentId} with: ${messageContent.slice(0, 100)}...`);
222
+ // Mark session as processing
223
+ this.sessionMapper.setProcessing(sessionId, true);
224
+ // Helper to emit session update notifications
225
+ const emitSessionUpdate = (update) => {
226
+ if (!emitNotification)
227
+ return;
228
+ const notification = {
229
+ acp: {
230
+ jsonrpc: "2.0",
231
+ method: "session/update",
232
+ params: {
233
+ sessionId: sessionId,
234
+ update: update,
235
+ },
236
+ },
237
+ acpContext: {
238
+ streamId: streamState.streamId,
239
+ sessionId: sessionId,
240
+ direction: "agent-to-client",
241
+ },
242
+ };
243
+ emitNotification(notification);
244
+ };
245
+ try {
246
+ // Stream responses from the agent
247
+ let updateCount = 0;
248
+ for await (const update of this.agentManager.prompt(agentId, messageContent)) {
249
+ // Check for cancellation
250
+ if (streamState.abortController.signal.aborted) {
251
+ return { stopReason: "cancelled" };
252
+ }
253
+ // Stream the update back to the client
254
+ emitSessionUpdate(update);
255
+ updateCount++;
256
+ }
257
+ console.error(`[ACP-over-MAP] Prompt completed for agent ${agentId}, ${updateCount} updates`);
258
+ return { stopReason: "end_turn" };
259
+ }
260
+ catch (error) {
261
+ console.error(`[ACP-over-MAP] Prompt error:`, error);
262
+ return {
263
+ stopReason: "end_turn",
264
+ error: error instanceof Error ? error.message : String(error),
265
+ };
266
+ }
267
+ finally {
268
+ this.sessionMapper.setProcessing(sessionId, false);
269
+ }
270
+ }
271
+ async handleCancel(streamState, params, sessionIdFromContext) {
272
+ const { sessionId: paramSessionId } = params ?? {};
273
+ const sessionId = paramSessionId ?? sessionIdFromContext ?? streamState.sessionId;
274
+ // Signal cancellation
275
+ streamState.abortController.abort();
276
+ if (!sessionId) {
277
+ return { cancelled: true };
278
+ }
279
+ // Get the mapped agent
280
+ const agentId = this.sessionMapper.getAgentId(sessionId);
281
+ if (!agentId) {
282
+ return { cancelled: true };
283
+ }
284
+ // Terminate the agent
285
+ try {
286
+ await this.agentManager.terminate(agentId, "cancelled");
287
+ }
288
+ catch (error) {
289
+ console.warn(`[ACP-over-MAP] Error terminating agent ${agentId}:`, error);
290
+ }
291
+ // Clean up
292
+ this.sessionMapper.removeMapping(sessionId);
293
+ return { cancelled: true };
294
+ }
295
+ // ─────────────────────────────────────────────────────────────────
296
+ // Extension Methods
297
+ // ─────────────────────────────────────────────────────────────────
298
+ async handleExtension(streamState, method, params) {
299
+ const methodParams = params ?? {};
300
+ switch (method) {
301
+ case "_macro/spawnAgent": {
302
+ const { task, cwd, topics, config, parentId } = methodParams;
303
+ // Use the stream's agent as parent, or find head manager
304
+ let parent = streamState.agentId;
305
+ if (parentId) {
306
+ parent = parentId;
307
+ }
308
+ else if (!parent) {
309
+ const headManagers = this.agentManager.listHeadManagers();
310
+ if (headManagers.length > 0) {
311
+ parent = headManagers[0].id;
312
+ }
313
+ }
314
+ if (!parent) {
315
+ throw new Error("No parent agent available for spawning");
316
+ }
317
+ const spawned = await this.agentManager.spawn({
318
+ parent,
319
+ task,
320
+ cwd: cwd ?? this.defaultCwd,
321
+ role: "worker",
322
+ });
323
+ return {
324
+ agentId: spawned.id,
325
+ sessionId: spawned.session_id,
326
+ };
327
+ }
328
+ case "_macro/getHierarchy": {
329
+ const agents = this.agentManager.list();
330
+ return {
331
+ agents: agents.map((a) => ({
332
+ id: a.id,
333
+ role: a.role,
334
+ state: a.state,
335
+ parent: a.parent,
336
+ createdAt: a.created_at,
337
+ })),
338
+ };
339
+ }
340
+ case "_macro/getTask": {
341
+ const { taskId } = methodParams;
342
+ const task = await this.taskManager.get(taskId);
343
+ return { task };
344
+ }
345
+ default:
346
+ throw new Error(`Unknown extension method: ${method}`);
347
+ }
348
+ }
349
+ // ─────────────────────────────────────────────────────────────────
350
+ // Cleanup
351
+ // ─────────────────────────────────────────────────────────────────
352
+ /**
353
+ * Clean up a stream when it's closed.
354
+ */
355
+ closeStream(streamId) {
356
+ const state = this.streams.get(streamId);
357
+ if (state) {
358
+ state.abortController.abort();
359
+ this.streams.delete(streamId);
360
+ }
361
+ }
362
+ /**
363
+ * Clean up all streams.
364
+ */
365
+ closeAll() {
366
+ for (const [streamId, state] of this.streams) {
367
+ state.abortController.abort();
368
+ }
369
+ this.streams.clear();
370
+ }
371
+ }
372
+ //# sourceMappingURL=acp-over-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp-over-map.js","sourceRoot":"","sources":["../../../src/map/adapter/acp-over-map.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export { createConnectionManager, ConnectionManagerImpl, ConnectionError, type C
12
12
  export { createSubscriptionManager, SubscriptionManagerImpl, SubscriptionError, type SubscriptionManager, type SubscriptionManagerConfig, type SubscriptionManagerEvent, type SubscriptionManagerEventHandler, type MatchResult, type SubscriptionErrorCode, } from "./subscription-manager.js";
13
13
  export { RPCHandler, createRPCHandler, RPCError, JSON_RPC_ERRORS, MAP_ERRORS, isRequest, isNotification, isResponse, isErrorResponse, createSuccessResponse, createErrorResponse, createNotification, createLoggingMiddleware, createCapabilityMiddleware, type RequestId, type JsonRpcRequest, type JsonRpcNotification, type JsonRpcError, type JsonRpcSuccessResponse, type JsonRpcErrorResponse, type JsonRpcResponse, type JsonRpcMessage, type HandlerContext, type MethodHandler, type HandlerRegistry, type Middleware, type RPCHandlerConfig, type ProcessResult, } from "./rpc-handler.js";
14
14
  export { MAPAdapterImpl, createMAPAdapter, type MAPAdapterServices, } from "./map-adapter.js";
15
+ export { ACPOverMAPHandler, type ACPEnvelope, type ACPOverMAPConfig, type ACPNotificationEmitter, } from "./acp-over-map.js";
15
16
  export { translateEvent, translateEvents, createEventStreamAdapter, type TranslationResult, type TranslationContext, type EventStreamAdapterOptions, } from "./event-translator.js";
16
17
  export { createMAPWebSocketHandler, setupMAPWebSocket, type MAPWebSocketHandler, type MAPWebSocketConfig, type MAPWebSocketSetup, } from "./websocket-integration.js";
17
18
  export { registerMacroExtensions, unregisterMacroExtensions, registerTaskExtensions, unregisterTaskExtensions, registerWakeExtension, unregisterWakeExtension, registerWorkspaceExtension, unregisterWorkspaceExtension, MACRO_EXTENSION_METHODS, EXTENSION_CAPABILITIES, type MacroExtensionServices, type TaskExtensionServices, type WakeExtensionServices, type WorkspaceExtensionServices, type SessionInfo, type InternalWorkspace, } from "./extensions/index.js";