acp-factory 0.0.1 → 0.1.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.
@@ -2,7 +2,7 @@
2
2
  * AgentHandle - Represents a running agent with an ACP connection
3
3
  */
4
4
  import * as acp from "@agentclientprotocol/sdk";
5
- import type { AgentConfig, SpawnOptions, SessionOptions } from "./types.js";
5
+ import type { AgentConfig, SpawnOptions, SessionOptions, ForkSessionOptions } from "./types.js";
6
6
  import type { AgentCapabilities } from "@agentclientprotocol/sdk";
7
7
  import { Session } from "./session.js";
8
8
  /**
@@ -13,6 +13,11 @@ export declare class AgentHandle {
13
13
  private readonly connection;
14
14
  private readonly clientHandler;
15
15
  readonly capabilities: AgentCapabilities;
16
+ /**
17
+ * Map of session IDs to Session objects for tracking active sessions.
18
+ * Used for smart fork detection to determine if a session is processing.
19
+ */
20
+ private readonly sessions;
16
21
  private constructor();
17
22
  /**
18
23
  * Create and initialize an agent handle
@@ -36,9 +41,17 @@ export declare class AgentHandle {
36
41
  * The forked session inherits the conversation history from the original,
37
42
  * allowing operations without affecting the original session's state.
38
43
  *
44
+ * This method uses smart detection to determine the best forking approach:
45
+ * - If the source session is actively processing or not persisted, uses forkWithFlush
46
+ * - If the source session is idle and persisted, uses direct fork
47
+ * - Use `forceFlush: true` to always use the flush approach
48
+ *
49
+ * @param sessionId - The ID of the session to fork
50
+ * @param cwd - The current working directory for the forked session
51
+ * @param options - Optional fork configuration
39
52
  * @experimental This relies on the unstable session/fork ACP capability
40
53
  */
41
- forkSession(sessionId: string): Promise<Session>;
54
+ forkSession(sessionId: string, cwd: string, options?: ForkSessionOptions): Promise<Session>;
42
55
  /**
43
56
  * Close the agent connection and terminate the process
44
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-handle.d.ts","sourceRoot":"","sources":["../src/agent-handle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC;;GAEG;AACH,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IALhC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAEzC,OAAO;IASP;;;OAGG;WACU,MAAM,CACjB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC;IA+EvB;;OAEG;IACG,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC;IAuBnB;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAM,GACpD,OAAO,CAAC,OAAO,CAAC;IAoBnB;;;;;;;OAOG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBtD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACH,aAAa,IAAI,GAAG,CAAC,oBAAoB;IAIzC;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
1
+ {"version":3,"file":"agent-handle.d.ts","sourceRoot":"","sources":["../src/agent-handle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC;;GAEG;AACH,qBAAa,WAAW;IAUpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAXhC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAEzC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,OAAO;IASP;;;OAGG;WACU,MAAM,CACjB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC;IA+EvB;;OAEG;IACG,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,OAAO,CAAC;IA6BnB;;OAEG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAM,GACpD,OAAO,CAAC,OAAO,CAAC;IA0BnB;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC;IAiDnB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACH,aAAa,IAAI,GAAG,CAAC,oBAAoB;IAIzC;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB"}
@@ -14,6 +14,11 @@ export class AgentHandle {
14
14
  connection;
15
15
  clientHandler;
16
16
  capabilities;
17
+ /**
18
+ * Map of session IDs to Session objects for tracking active sessions.
19
+ * Used for smart fork detection to determine if a session is processing.
20
+ */
21
+ sessions = new Map();
17
22
  constructor(process, connection, clientHandler, capabilities) {
18
23
  this.process = process;
19
24
  this.connection = connection;
@@ -97,7 +102,10 @@ export class AgentHandle {
97
102
  modeId: options.mode,
98
103
  });
99
104
  }
100
- return new Session(result.sessionId, this.connection, this.clientHandler, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
105
+ const session = new Session(result.sessionId, this.connection, this.clientHandler, cwd, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
106
+ // Track session for smart fork detection
107
+ this.sessions.set(result.sessionId, session);
108
+ return session;
101
109
  }
102
110
  /**
103
111
  * Load an existing session by ID
@@ -111,7 +119,10 @@ export class AgentHandle {
111
119
  cwd,
112
120
  mcpServers,
113
121
  });
114
- return new Session(sessionId, this.connection, this.clientHandler, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
122
+ const session = new Session(sessionId, this.connection, this.clientHandler, cwd, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
123
+ // Track session for smart fork detection
124
+ this.sessions.set(sessionId, session);
125
+ return session;
115
126
  }
116
127
  /**
117
128
  * Fork an existing session to create a new independent session
@@ -119,16 +130,47 @@ export class AgentHandle {
119
130
  * The forked session inherits the conversation history from the original,
120
131
  * allowing operations without affecting the original session's state.
121
132
  *
133
+ * This method uses smart detection to determine the best forking approach:
134
+ * - If the source session is actively processing or not persisted, uses forkWithFlush
135
+ * - If the source session is idle and persisted, uses direct fork
136
+ * - Use `forceFlush: true` to always use the flush approach
137
+ *
138
+ * @param sessionId - The ID of the session to fork
139
+ * @param cwd - The current working directory for the forked session
140
+ * @param options - Optional fork configuration
122
141
  * @experimental This relies on the unstable session/fork ACP capability
123
142
  */
124
- async forkSession(sessionId) {
143
+ async forkSession(sessionId, cwd, options = {}) {
125
144
  if (!this.capabilities.sessionCapabilities?.fork) {
126
145
  throw new Error("Agent does not support forking sessions");
127
146
  }
128
- const result = await this.connection.forkSession({
147
+ const sourceSession = this.sessions.get(sessionId);
148
+ // Determine if flush is needed:
149
+ // 1. forceFlush option is set
150
+ // 2. Source session is currently processing
151
+ // 3. Source session is not tracked (might be from previous process, needs flush to ensure persistence)
152
+ const needsFlush = options.forceFlush ||
153
+ (sourceSession && sourceSession.isProcessing) ||
154
+ !sourceSession;
155
+ if (needsFlush && sourceSession) {
156
+ // Use forkWithFlush for active or processing sessions
157
+ const forkedSession = await sourceSession.forkWithFlush({
158
+ idleTimeout: options.idleTimeout,
159
+ persistTimeout: options.persistTimeout,
160
+ });
161
+ // Track the forked session
162
+ this.sessions.set(forkedSession.id, forkedSession);
163
+ return forkedSession;
164
+ }
165
+ // Direct fork for persisted idle sessions (or when source session is unknown)
166
+ const result = await this.connection.unstable_forkSession({
129
167
  sessionId,
168
+ cwd,
130
169
  });
131
- return new Session(result.sessionId, this.connection, this.clientHandler, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
170
+ const forkedSession = new Session(result.sessionId, this.connection, this.clientHandler, cwd, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
171
+ // Track the forked session
172
+ this.sessions.set(result.sessionId, forkedSession);
173
+ return forkedSession;
132
174
  }
133
175
  /**
134
176
  * Close the agent connection and terminate the process
@@ -1 +1 @@
1
- {"version":3,"file":"agent-handle.js","sourceRoot":"","sources":["../src/agent-handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-handle.js","sourceRoot":"","sources":["../src/agent-handle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client-handler.d.ts","sourceRoot":"","sources":["../src/client-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,qBAAa,QAAQ,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,IAAI,CAAS;IAErB,gCAAgC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAWnB,+CAA+C;IAC/C,GAAG,IAAI,IAAI;IAQX,sCAAsC;IACtC,MAAM,IAAI,OAAO;IAIjB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;CAgB3C;AAWD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,GAAG,CAAC,MAAM;IACjD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAAiB;IAEvC,iCAAiC;IACjC,OAAO,CAAC,cAAc,CAA2D;IAEjF,4EAA4E;IAC5E,OAAO,CAAC,kBAAkB,CAA6C;IAEvE,2DAA2D;IAC3D,OAAO,CAAC,wBAAwB,CAAK;gBAGnC,QAAQ,GAAE,cAAmB,EAC7B,cAAc,GAAE,cAA+B;IAMjD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IASpE;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOzC;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAe9D;;;OAGG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAczC;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAUpD;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,GAAG,CAAC,wBAAwB,GACnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAqFzC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,GAAG,CAAC,mBAAmB,GAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAiBpC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,GAAG,CAAC,oBAAoB,GAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAiBrC;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,GAAG,CAAC,qBAAqB,GAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAStC;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,GAAG,CAAC,qBAAqB,GAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAUtC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,GAAG,CAAC,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAU3C;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,GAAG,CAAC,sBAAsB,GACjC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAUvC;;OAEG;IACG,mBAAmB,CACvB,MAAM,EAAE,GAAG,CAAC,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;CAS5C"}
1
+ {"version":3,"file":"client-handler.d.ts","sourceRoot":"","sources":["../src/client-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,qBAAa,QAAQ,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,IAAI,CAAS;IAErB,gCAAgC;IAChC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAWnB,+CAA+C;IAC/C,GAAG,IAAI,IAAI;IAQX,sCAAsC;IACtC,MAAM,IAAI,OAAO;IAIjB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;CAgB3C;AAWD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,GAAG,CAAC,MAAM;IACjD,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,cAAc,CAAiB;IAEvC,iCAAiC;IACjC,OAAO,CAAC,cAAc,CAA2D;IAEjF,4EAA4E;IAC5E,OAAO,CAAC,kBAAkB,CAA6C;IAEvE,2DAA2D;IAC3D,OAAO,CAAC,wBAAwB,CAAK;gBAGnC,QAAQ,GAAE,cAAmB,EAC7B,cAAc,GAAE,cAA+B;IAMjD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,qBAAqB,CAAC;IASpE;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IASzC;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAe9D;;;OAGG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAczC;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAUpD;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE,GAAG,CAAC,wBAAwB,GACnC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;IAqFzC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,GAAG,CAAC,mBAAmB,GAC9B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAiBpC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,GAAG,CAAC,oBAAoB,GAC/B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IAiBrC;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,GAAG,CAAC,qBAAqB,GAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAStC;;OAEG;IACG,cAAc,CAClB,MAAM,EAAE,GAAG,CAAC,qBAAqB,GAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAUtC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,GAAG,CAAC,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;IAU3C;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,GAAG,CAAC,sBAAsB,GACjC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAUvC;;OAEG;IACG,mBAAmB,CACvB,MAAM,EAAE,GAAG,CAAC,0BAA0B,GACrC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;CAS5C"}
@@ -85,6 +85,8 @@ export class ACPClientHandler {
85
85
  const stream = this.sessionStreams.get(sessionId);
86
86
  if (stream) {
87
87
  stream.end();
88
+ // Remove from cache so next getSessionStream() creates a fresh stream
89
+ this.sessionStreams.delete(sessionId);
88
90
  }
89
91
  }
90
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client-handler.js","sourceRoot":"","sources":["../src/client-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-handler.js","sourceRoot":"","sources":["../src/client-handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKhD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAO9D;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAIxD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIvD;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM,EAAE;IAI7B;;OAEG;WACU,KAAK,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC;CAcxB"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQhD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAU9D;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAIxD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIvD;;OAEG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM,EAAE;IAI7B;;OAEG;WACU,KAAK,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC;CAgBxB"}
package/dist/factory.js CHANGED
@@ -4,6 +4,9 @@
4
4
  import { AgentHandle } from "./agent-handle.js";
5
5
  // Import default providers
6
6
  import { claudeCodeConfig } from "./providers/claude-code.js";
7
+ import { codexConfig } from "./providers/codex.js";
8
+ import { geminiConfig } from "./providers/gemini.js";
9
+ import { opencodeConfig } from "./providers/opencode.js";
7
10
  /**
8
11
  * Factory for spawning and managing agents
9
12
  */
@@ -12,6 +15,9 @@ export class AgentFactory {
12
15
  // Static initialization - register default providers
13
16
  static {
14
17
  AgentFactory.register("claude-code", claudeCodeConfig);
18
+ AgentFactory.register("codex", codexConfig);
19
+ AgentFactory.register("gemini", geminiConfig);
20
+ AgentFactory.register("opencode", opencodeConfig); // Note: not e2e tested.
15
21
  }
16
22
  /**
17
23
  * Register an agent configuration
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC;IAE9D,qDAAqD;IACrD;QACE,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAmB;QAC/C,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAY;QAC3B,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,IAAY,EACZ,UAAwB,EAAE;QAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,gBAAgB,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClF,CAAC;QACJ,CAAC;QAED,8BAA8B;QAC9B,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAgB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC;QAErD,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAC,QAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC;IAE9D,qDAAqD;IACrD;QACE,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACvD,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC5C,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC9C,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,wBAAwB;IAC7E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,MAAmB;QAC/C,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAY;QAC3B,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,IAAY,EACZ,UAAwB,EAAE;QAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,gBAAgB,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,CACvE,IAAI,CACL,EAAE,CACJ,CAAC;QACJ,CAAC;QAED,8BAA8B;QAC9B,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAgB,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC;QAErD,OAAO,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -10,7 +10,8 @@ export type { SessionUpdate, ContentBlock, TextContent, ImageContent, ResourceLi
10
10
  export type { ToolCall, ToolCallUpdate, ToolCallStatus, ToolCallContent, ToolCallLocation, } from "./types.js";
11
11
  export type { RequestPermissionRequest, RequestPermissionResponse, PermissionOption, } from "./types.js";
12
12
  export type { PermissionRequestUpdate, ExtendedSessionUpdate, } from "./types.js";
13
+ export type { FlushOptions, FlushResult, ForkSessionOptions, InjectResult, } from "./types.js";
13
14
  export type { CreateTerminalRequest, CreateTerminalResponse, TerminalOutputRequest, TerminalOutputResponse, } from "./types.js";
14
15
  export type { McpServer, McpServerStdio, McpServerHttp, McpServerSse, } from "./types.js";
15
- export type { NewSessionResponse, PromptResponse, InitializeRequest, InitializeResponse, } from "./types.js";
16
+ export type { NewSessionResponse, PromptResponse, InitializeRequest, InitializeResponse, ForkSessionRequest, ForkSessionResponse, } from "./types.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,YAAY,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,YAAY,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,QAAQ,EACR,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,SAAS,EACT,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  export const claudeCodeConfig = {
8
8
  command: "npx",
9
- args: ["@zed-industries/claude-code-acp"],
9
+ args: ["@sudocode-ai/claude-code-acp"],
10
10
  env: {},
11
11
  };
12
12
  //# sourceMappingURL=claude-code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/providers/claude-code.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,iCAAiC,CAAC;IACzC,GAAG,EAAE,EAAE;CACR,CAAC"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/providers/claude-code.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAgB;IAC3C,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,8BAA8B,CAAC;IACtC,GAAG,EAAE,EAAE;CACR,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Codex agent configuration
3
+ */
4
+ import type { AgentConfig } from "../types.js";
5
+ /**
6
+ * Default configuration for Codex agent via codex-acp
7
+ */
8
+ export declare const codexConfig: AgentConfig;
9
+ //# sourceMappingURL=codex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,WAIzB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Codex agent configuration
3
+ */
4
+ /**
5
+ * Default configuration for Codex agent via codex-acp
6
+ */
7
+ export const codexConfig = {
8
+ command: "npx",
9
+ args: ["@zed-industries/codex-acp"],
10
+ env: {},
11
+ };
12
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,2BAA2B,CAAC;IACnC,GAAG,EAAE,EAAE;CACR,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Gemini CLI agent configuration
3
+ */
4
+ import type { AgentConfig } from "../types.js";
5
+ /**
6
+ * Default configuration for Gemini CLI agent via --experimental-acp flag
7
+ */
8
+ export declare const geminiConfig: AgentConfig;
9
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,WAI1B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Gemini CLI agent configuration
3
+ */
4
+ /**
5
+ * Default configuration for Gemini CLI agent via --experimental-acp flag
6
+ */
7
+ export const geminiConfig = {
8
+ command: "npx",
9
+ args: ["@google/gemini-cli", "--experimental-acp"],
10
+ env: {},
11
+ };
12
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAClD,GAAG,EAAE,EAAE;CACR,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * OpenCode agent configuration
3
+ *
4
+ * OpenCode is an open source AI coding agent built in Go.
5
+ * Install via: curl -fsSL https://opencode.ai/install | bash
6
+ * Or: go install github.com/opencode-ai/opencode@latest
7
+ *
8
+ * @see https://opencode.ai/docs/acp/
9
+ */
10
+ import type { AgentConfig } from "../types.js";
11
+ /**
12
+ * Default configuration for OpenCode agent via ACP mode
13
+ */
14
+ export declare const opencodeConfig: AgentConfig;
15
+ //# sourceMappingURL=opencode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAI5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * OpenCode agent configuration
3
+ *
4
+ * OpenCode is an open source AI coding agent built in Go.
5
+ * Install via: curl -fsSL https://opencode.ai/install | bash
6
+ * Or: go install github.com/opencode-ai/opencode@latest
7
+ *
8
+ * @see https://opencode.ai/docs/acp/
9
+ */
10
+ /**
11
+ * Default configuration for OpenCode agent via ACP mode
12
+ */
13
+ export const opencodeConfig = {
14
+ command: "opencode",
15
+ args: ["acp"],
16
+ env: {},
17
+ };
18
+ //# sourceMappingURL=opencode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,CAAC,KAAK,CAAC;IACb,GAAG,EAAE,EAAE;CACR,CAAC"}
package/dist/session.d.ts CHANGED
@@ -2,18 +2,24 @@
2
2
  * Session - High-level interface for interacting with an agent session
3
3
  */
4
4
  import type * as acp from "@agentclientprotocol/sdk";
5
- import type { PromptContent, ExtendedSessionUpdate } from "./types.js";
5
+ import type { PromptContent, ExtendedSessionUpdate, FlushOptions, FlushResult, InjectResult } from "./types.js";
6
6
  import type { ACPClientHandler } from "./client-handler.js";
7
7
  /**
8
8
  * Represents an active session with an agent
9
9
  */
10
10
  export declare class Session {
11
11
  readonly id: string;
12
+ readonly cwd: string;
12
13
  readonly modes: string[];
13
14
  readonly models: string[];
14
15
  private readonly connection;
15
16
  private readonly clientHandler;
16
- constructor(id: string, connection: acp.ClientSideConnection, clientHandler: ACPClientHandler, modes?: string[], models?: string[]);
17
+ /**
18
+ * Whether the session is currently processing a prompt
19
+ * @internal
20
+ */
21
+ isProcessing: boolean;
22
+ constructor(id: string, connection: acp.ClientSideConnection, clientHandler: ACPClientHandler, cwd: string, modes?: string[], models?: string[]);
17
23
  /**
18
24
  * Send a prompt and stream responses
19
25
  *
@@ -78,6 +84,56 @@ export declare class Session {
78
84
  * ```
79
85
  */
80
86
  addContext(_content: PromptContent): Promise<void>;
87
+ /**
88
+ * Inject a message into the session for processing in the next turn.
89
+ *
90
+ * This method queues a message that will be processed when the next prompt()
91
+ * call is made. Unlike addContext(), the injected message is not processed
92
+ * immediately during the current turn - it becomes part of the next turn's input.
93
+ *
94
+ * Use cases:
95
+ * - Queuing clarifications or corrections while the agent is working
96
+ * - Adding context that should influence the next interaction
97
+ * - Providing additional instructions between prompt calls
98
+ *
99
+ * NOTE: This feature requires agent support for the `_session/inject` extension method.
100
+ * Check `supportsInject()` or handle the error result to detect unsupported agents.
101
+ *
102
+ * @param content - The message to inject (string or ContentBlock array)
103
+ * @param options - Optional configuration
104
+ * @param options.throwOnUnsupported - If true, throws an error when agent doesn't support inject (default: false)
105
+ * @returns Object with success status and optional error message
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * // While agent is processing a prompt
110
+ * for await (const update of session.prompt("Analyze the codebase")) {
111
+ * handleUpdate(update);
112
+ * if (userHasClarification) {
113
+ * // Queue a message for the next turn
114
+ * await session.inject("Focus on TypeScript files only");
115
+ * }
116
+ * }
117
+ *
118
+ * // The injected message will be processed in the next prompt
119
+ * for await (const update of session.prompt("Continue analysis")) {
120
+ * // Agent will see the injected message here
121
+ * handleUpdate(update);
122
+ * }
123
+ * ```
124
+ */
125
+ inject(content: PromptContent, options?: {
126
+ throwOnUnsupported?: boolean;
127
+ }): Promise<InjectResult>;
128
+ /**
129
+ * Check if this session's agent supports the inject feature.
130
+ *
131
+ * Note: This only checks if the connection has extMethod capability.
132
+ * The actual _session/inject method support can only be verified by calling inject().
133
+ *
134
+ * @returns true if the agent may support inject, false if definitely not supported
135
+ */
136
+ supportsInject(): boolean;
81
137
  /**
82
138
  * Set the session mode
83
139
  */
@@ -94,6 +150,36 @@ export declare class Session {
94
150
  * @experimental This relies on the unstable session/fork ACP capability
95
151
  */
96
152
  fork(): Promise<Session>;
153
+ /**
154
+ * Fork a running session by flushing it to disk first
155
+ *
156
+ * This method handles forking a session that is currently active by:
157
+ * 1. Waiting for the session to become idle (up to idleTimeout)
158
+ * 2. If still processing after timeout, interrupting gracefully
159
+ * 3. Calling the agent's flush extension to trigger disk persistence
160
+ * 4. Waiting for the session file to appear on disk
161
+ * 5. Restarting the original session so it can continue
162
+ * 6. Creating the forked session using the persisted data
163
+ *
164
+ * Use this when you need to fork a session that may be actively processing.
165
+ * For idle sessions where you know the data is already persisted, use fork() directly.
166
+ *
167
+ * @param options - Optional timeout configuration
168
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
169
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
170
+ * @returns A new Session object representing the forked session
171
+ * @throws Error if the session cannot be persisted or forked
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * // Fork a potentially active session
176
+ * const forkedSession = await session.forkWithFlush();
177
+ * // Original session continues working, forked session has full context
178
+ * ```
179
+ *
180
+ * @experimental This relies on the unstable session/fork ACP capability
181
+ */
182
+ forkWithFlush(options?: FlushOptions): Promise<Session>;
97
183
  /**
98
184
  * Respond to a permission request (for interactive permission mode)
99
185
  *
@@ -121,5 +207,90 @@ export declare class Session {
121
207
  * Get all pending permission request IDs for this session
122
208
  */
123
209
  getPendingPermissionIds(): string[];
210
+ /**
211
+ * Get the file path where Claude Code stores session data
212
+ *
213
+ * Claude Code stores sessions at:
214
+ * ~/.claude/projects/<cwd-hash>/<sessionId>.jsonl
215
+ *
216
+ * Where <cwd-hash> is the cwd with `/` replaced by `-`
217
+ * (e.g., `/private/tmp` → `-private-tmp`)
218
+ *
219
+ * @param sessionId - The session ID to get the file path for
220
+ * @returns The absolute path to the session file
221
+ * @internal
222
+ * @deprecated This method is Claude Code specific. The agent now returns
223
+ * the file path in the flush response. This method may be removed in a future version.
224
+ */
225
+ getSessionFilePath(sessionId: string): string;
226
+ /**
227
+ * Wait for session data to be persisted to disk
228
+ *
229
+ * Polls for the session file existence every 100ms until the file appears
230
+ * or the timeout expires.
231
+ *
232
+ * @param sessionId - The session ID to wait for
233
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
234
+ * @returns true if file appears within timeout, false if timeout expires
235
+ * @internal
236
+ * @deprecated This method is Claude Code specific and relies on getSessionFilePath().
237
+ * The agent now handles persistence verification internally. This method may be
238
+ * removed in a future version.
239
+ */
240
+ waitForPersistence(sessionId: string, timeout?: number): Promise<boolean>;
241
+ /**
242
+ * Wait for the session to become idle (not processing a prompt)
243
+ *
244
+ * Polls the session's isProcessing state every 100ms until the session
245
+ * becomes idle or the timeout expires.
246
+ *
247
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
248
+ * @returns true if session becomes idle within timeout, false if timeout expires
249
+ * @internal
250
+ */
251
+ waitForIdle(timeout?: number): Promise<boolean>;
252
+ /**
253
+ * Flush session to disk, creating a checkpoint without forking
254
+ *
255
+ * This method triggers persistence of the session data by:
256
+ * 1. Waiting for the session to become idle (or timing out)
257
+ * 2. Cancelling any in-progress work if still busy
258
+ * 3. Calling the agent's _session/flush extension method
259
+ * 4. Waiting for the session file to appear on disk
260
+ * 5. Restarting the session so it can continue working
261
+ *
262
+ * Use this for creating checkpoints that can later be forked or restored.
263
+ *
264
+ * @param options - Optional timeout configuration
265
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
266
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
267
+ * @returns Object with success status, file path if successful, or error message
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * const result = await session.flush();
272
+ * if (result.success) {
273
+ * console.log(`Session saved to ${result.filePath}`);
274
+ * } else {
275
+ * console.error(`Flush failed: ${result.error}`);
276
+ * }
277
+ * ```
278
+ */
279
+ flush(options?: FlushOptions): Promise<FlushResult>;
280
+ /**
281
+ * Restart this session after it has been flushed to disk
282
+ *
283
+ * This method is used as part of the fork-with-flush mechanism. After a session
284
+ * has been aborted to trigger disk persistence, this method restarts the session
285
+ * by loading it from the persisted state.
286
+ *
287
+ * The restarted session will have the same sessionId and conversation history,
288
+ * but with fresh internal state (new input stream, reset flags).
289
+ *
290
+ * @returns A new Session object representing the restarted session
291
+ * @throws Error if the agent does not support loading sessions
292
+ * @internal
293
+ */
294
+ restartSession(): Promise<Session>;
124
295
  }
125
296
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;GAEG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;gBAG/C,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,GAAG,CAAC,oBAAoB,EACpC,aAAa,EAAE,gBAAgB,EAC/B,KAAK,GAAE,MAAM,EAAO,EACpB,MAAM,GAAE,MAAM,EAAO;IASvB;;;;;OAKG;IACI,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,qBAAqB,CAAC;IAqD3E;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACI,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,qBAAqB,CAAC;IAWlF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C;;;;;;;;;;OAUG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAkB9B;;;;;;;;;OASG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9D;;;;;;OAMG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,uBAAuB,IAAI,MAAM,EAAE;CAGpC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D;;GAEG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IAEjD;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAS;gBAG5B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,GAAG,CAAC,oBAAoB,EACpC,aAAa,EAAE,gBAAgB,EAC/B,GAAG,EAAE,MAAM,EACX,KAAK,GAAE,MAAM,EAAO,EACpB,MAAM,GAAE,MAAM,EAAO;IAUvB;;;;;OAKG;IACI,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,qBAAqB,CAAC;IAyD3E;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACI,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAAC,qBAAqB,CAAC;IAWlF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACG,MAAM,CACV,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAO,GAC7C,OAAO,CAAC,YAAY,CAAC;IAiDxB;;;;;;;OAOG;IACH,cAAc,IAAI,OAAO;IAKzB;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C;;;;;;;;;;OAUG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAoB9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,aAAa,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgDjE;;;;;;;;;OASG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9D;;;;;;OAMG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,uBAAuB,IAAI,MAAM,EAAE;IAInC;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAS7C;;;;;;;;;;;;;OAaG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAYrF;;;;;;;;;OASG;IACG,WAAW,CAAC,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAW3D;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAsC7D;;;;;;;;;;;;;OAaG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAoBzC"}
package/dist/session.js CHANGED
@@ -1,19 +1,29 @@
1
1
  /**
2
2
  * Session - High-level interface for interacting with an agent session
3
3
  */
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+ import * as os from "node:os";
4
7
  /**
5
8
  * Represents an active session with an agent
6
9
  */
7
10
  export class Session {
8
11
  id;
12
+ cwd;
9
13
  modes;
10
14
  models;
11
15
  connection;
12
16
  clientHandler;
13
- constructor(id, connection, clientHandler, modes = [], models = []) {
17
+ /**
18
+ * Whether the session is currently processing a prompt
19
+ * @internal
20
+ */
21
+ isProcessing = false;
22
+ constructor(id, connection, clientHandler, cwd, modes = [], models = []) {
14
23
  this.id = id;
15
24
  this.connection = connection;
16
25
  this.clientHandler = clientHandler;
26
+ this.cwd = cwd;
17
27
  this.modes = modes;
18
28
  this.models = models;
19
29
  }
@@ -24,6 +34,8 @@ export class Session {
24
34
  * that require a response via respondToPermission() before the prompt can continue.
25
35
  */
26
36
  async *prompt(content) {
37
+ // Mark session as processing
38
+ this.isProcessing = true;
27
39
  // Convert string to ContentBlock array
28
40
  const promptBlocks = typeof content === "string"
29
41
  ? [{ type: "text", text: content }]
@@ -66,8 +78,9 @@ export class Session {
66
78
  }
67
79
  }
68
80
  finally {
69
- // Ensure stream is ended
81
+ // Ensure stream is ended and mark session as idle
70
82
  this.clientHandler.endSessionStream(this.id);
83
+ this.isProcessing = false;
71
84
  }
72
85
  }
73
86
  /**
@@ -150,6 +163,95 @@ export class Session {
150
163
  "'_session/addContext' extension method. Use interruptWith() as an alternative, " +
151
164
  "which cancels the current prompt and starts a new one.");
152
165
  }
166
+ /**
167
+ * Inject a message into the session for processing in the next turn.
168
+ *
169
+ * This method queues a message that will be processed when the next prompt()
170
+ * call is made. Unlike addContext(), the injected message is not processed
171
+ * immediately during the current turn - it becomes part of the next turn's input.
172
+ *
173
+ * Use cases:
174
+ * - Queuing clarifications or corrections while the agent is working
175
+ * - Adding context that should influence the next interaction
176
+ * - Providing additional instructions between prompt calls
177
+ *
178
+ * NOTE: This feature requires agent support for the `_session/inject` extension method.
179
+ * Check `supportsInject()` or handle the error result to detect unsupported agents.
180
+ *
181
+ * @param content - The message to inject (string or ContentBlock array)
182
+ * @param options - Optional configuration
183
+ * @param options.throwOnUnsupported - If true, throws an error when agent doesn't support inject (default: false)
184
+ * @returns Object with success status and optional error message
185
+ *
186
+ * @example
187
+ * ```typescript
188
+ * // While agent is processing a prompt
189
+ * for await (const update of session.prompt("Analyze the codebase")) {
190
+ * handleUpdate(update);
191
+ * if (userHasClarification) {
192
+ * // Queue a message for the next turn
193
+ * await session.inject("Focus on TypeScript files only");
194
+ * }
195
+ * }
196
+ *
197
+ * // The injected message will be processed in the next prompt
198
+ * for await (const update of session.prompt("Continue analysis")) {
199
+ * // Agent will see the injected message here
200
+ * handleUpdate(update);
201
+ * }
202
+ * ```
203
+ */
204
+ async inject(content, options = {}) {
205
+ const { throwOnUnsupported = false } = options;
206
+ // Check if the connection has extMethod capability
207
+ const connection = this.connection;
208
+ if (!connection.extMethod) {
209
+ const error = "Agent does not support extension methods required for inject.";
210
+ if (throwOnUnsupported) {
211
+ throw new Error(error);
212
+ }
213
+ return { success: false, error };
214
+ }
215
+ try {
216
+ // Convert string to ContentBlock array if needed
217
+ const message = typeof content === "string"
218
+ ? [{ type: "text", text: content }]
219
+ : content;
220
+ // Call the agent's _session/inject extension method
221
+ const result = await connection.extMethod("_session/inject", {
222
+ sessionId: this.id,
223
+ message,
224
+ });
225
+ return result;
226
+ }
227
+ catch (error) {
228
+ const errorMessage = String(error);
229
+ // Check for "method not found" errors and provide a clearer message
230
+ if (errorMessage.includes("not found") || errorMessage.includes("not supported")) {
231
+ const friendlyError = "Agent does not support the inject feature.";
232
+ if (throwOnUnsupported) {
233
+ throw new Error(friendlyError);
234
+ }
235
+ return { success: false, error: friendlyError };
236
+ }
237
+ return {
238
+ success: false,
239
+ error: `Failed to inject message: ${errorMessage}`,
240
+ };
241
+ }
242
+ }
243
+ /**
244
+ * Check if this session's agent supports the inject feature.
245
+ *
246
+ * Note: This only checks if the connection has extMethod capability.
247
+ * The actual _session/inject method support can only be verified by calling inject().
248
+ *
249
+ * @returns true if the agent may support inject, false if definitely not supported
250
+ */
251
+ supportsInject() {
252
+ const connection = this.connection;
253
+ return typeof connection.extMethod === "function";
254
+ }
153
255
  /**
154
256
  * Set the session mode
155
257
  */
@@ -174,13 +276,76 @@ export class Session {
174
276
  * @experimental This relies on the unstable session/fork ACP capability
175
277
  */
176
278
  async fork() {
177
- if (!this.connection.forkSession) {
279
+ if (!this.connection.unstable_forkSession) {
178
280
  throw new Error("Agent does not support forking sessions");
179
281
  }
180
- const result = await this.connection.forkSession({
282
+ const result = await this.connection.unstable_forkSession({
181
283
  sessionId: this.id,
284
+ cwd: this.cwd,
182
285
  });
183
- return new Session(result.sessionId, this.connection, this.clientHandler, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
286
+ return new Session(result.sessionId, this.connection, this.clientHandler, this.cwd, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
287
+ }
288
+ /**
289
+ * Fork a running session by flushing it to disk first
290
+ *
291
+ * This method handles forking a session that is currently active by:
292
+ * 1. Waiting for the session to become idle (up to idleTimeout)
293
+ * 2. If still processing after timeout, interrupting gracefully
294
+ * 3. Calling the agent's flush extension to trigger disk persistence
295
+ * 4. Waiting for the session file to appear on disk
296
+ * 5. Restarting the original session so it can continue
297
+ * 6. Creating the forked session using the persisted data
298
+ *
299
+ * Use this when you need to fork a session that may be actively processing.
300
+ * For idle sessions where you know the data is already persisted, use fork() directly.
301
+ *
302
+ * @param options - Optional timeout configuration
303
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
304
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
305
+ * @returns A new Session object representing the forked session
306
+ * @throws Error if the session cannot be persisted or forked
307
+ *
308
+ * @example
309
+ * ```typescript
310
+ * // Fork a potentially active session
311
+ * const forkedSession = await session.forkWithFlush();
312
+ * // Original session continues working, forked session has full context
313
+ * ```
314
+ *
315
+ * @experimental This relies on the unstable session/fork ACP capability
316
+ */
317
+ async forkWithFlush(options = {}) {
318
+ const { idleTimeout = 5000, persistTimeout = 5000 } = options;
319
+ if (!this.connection.unstable_forkSession) {
320
+ throw new Error("Agent does not support forking sessions");
321
+ }
322
+ // Step 1: Wait for idle or interrupt
323
+ const becameIdle = await this.waitForIdle(idleTimeout);
324
+ if (!becameIdle && this.isProcessing) {
325
+ // Interrupt current operation gracefully
326
+ await this.cancel();
327
+ await new Promise(resolve => setTimeout(resolve, 500));
328
+ }
329
+ // Step 2: Call the agent's flush extension method to trigger persistence
330
+ // The agent handles waiting for persistence internally
331
+ const flushResult = await this.connection
332
+ .extMethod("_session/flush", {
333
+ sessionId: this.id,
334
+ idleTimeout,
335
+ persistTimeout,
336
+ });
337
+ // Check if the agent reported success
338
+ if (!flushResult.success) {
339
+ throw new Error(flushResult.error ?? `Failed to persist session ${this.id} to disk`);
340
+ }
341
+ // Step 3: Restart original session so it can continue working
342
+ await this.restartSession();
343
+ // Step 4: Create forked session using existing fork logic
344
+ const result = await this.connection.unstable_forkSession({
345
+ sessionId: this.id,
346
+ cwd: this.cwd,
347
+ });
348
+ return new Session(result.sessionId, this.connection, this.clientHandler, this.cwd, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
184
349
  }
185
350
  /**
186
351
  * Respond to a permission request (for interactive permission mode)
@@ -217,5 +382,158 @@ export class Session {
217
382
  getPendingPermissionIds() {
218
383
  return this.clientHandler.getPendingPermissionIds(this.id);
219
384
  }
385
+ /**
386
+ * Get the file path where Claude Code stores session data
387
+ *
388
+ * Claude Code stores sessions at:
389
+ * ~/.claude/projects/<cwd-hash>/<sessionId>.jsonl
390
+ *
391
+ * Where <cwd-hash> is the cwd with `/` replaced by `-`
392
+ * (e.g., `/private/tmp` → `-private-tmp`)
393
+ *
394
+ * @param sessionId - The session ID to get the file path for
395
+ * @returns The absolute path to the session file
396
+ * @internal
397
+ * @deprecated This method is Claude Code specific. The agent now returns
398
+ * the file path in the flush response. This method may be removed in a future version.
399
+ */
400
+ getSessionFilePath(sessionId) {
401
+ // Resolve the real path to handle macOS symlinks like /var -> /private/var
402
+ // Claude Code uses the resolved path internally
403
+ const realCwd = fs.realpathSync(this.cwd);
404
+ // Claude Code replaces both / and _ with - in the cwd hash
405
+ const cwdHash = realCwd.replace(/[/_]/g, "-");
406
+ return path.join(os.homedir(), ".claude", "projects", cwdHash, `${sessionId}.jsonl`);
407
+ }
408
+ /**
409
+ * Wait for session data to be persisted to disk
410
+ *
411
+ * Polls for the session file existence every 100ms until the file appears
412
+ * or the timeout expires.
413
+ *
414
+ * @param sessionId - The session ID to wait for
415
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
416
+ * @returns true if file appears within timeout, false if timeout expires
417
+ * @internal
418
+ * @deprecated This method is Claude Code specific and relies on getSessionFilePath().
419
+ * The agent now handles persistence verification internally. This method may be
420
+ * removed in a future version.
421
+ */
422
+ async waitForPersistence(sessionId, timeout = 5000) {
423
+ const filePath = this.getSessionFilePath(sessionId);
424
+ const start = Date.now();
425
+ while (Date.now() - start < timeout) {
426
+ if (fs.existsSync(filePath)) {
427
+ return true;
428
+ }
429
+ await new Promise(resolve => setTimeout(resolve, 100));
430
+ }
431
+ return false;
432
+ }
433
+ /**
434
+ * Wait for the session to become idle (not processing a prompt)
435
+ *
436
+ * Polls the session's isProcessing state every 100ms until the session
437
+ * becomes idle or the timeout expires.
438
+ *
439
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
440
+ * @returns true if session becomes idle within timeout, false if timeout expires
441
+ * @internal
442
+ */
443
+ async waitForIdle(timeout = 5000) {
444
+ const start = Date.now();
445
+ while (Date.now() - start < timeout) {
446
+ if (!this.isProcessing) {
447
+ return true;
448
+ }
449
+ await new Promise(resolve => setTimeout(resolve, 100));
450
+ }
451
+ return false;
452
+ }
453
+ /**
454
+ * Flush session to disk, creating a checkpoint without forking
455
+ *
456
+ * This method triggers persistence of the session data by:
457
+ * 1. Waiting for the session to become idle (or timing out)
458
+ * 2. Cancelling any in-progress work if still busy
459
+ * 3. Calling the agent's _session/flush extension method
460
+ * 4. Waiting for the session file to appear on disk
461
+ * 5. Restarting the session so it can continue working
462
+ *
463
+ * Use this for creating checkpoints that can later be forked or restored.
464
+ *
465
+ * @param options - Optional timeout configuration
466
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
467
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
468
+ * @returns Object with success status, file path if successful, or error message
469
+ *
470
+ * @example
471
+ * ```typescript
472
+ * const result = await session.flush();
473
+ * if (result.success) {
474
+ * console.log(`Session saved to ${result.filePath}`);
475
+ * } else {
476
+ * console.error(`Flush failed: ${result.error}`);
477
+ * }
478
+ * ```
479
+ */
480
+ async flush(options = {}) {
481
+ const { idleTimeout = 5000, persistTimeout = 5000 } = options;
482
+ try {
483
+ // Wait for idle or timeout
484
+ const becameIdle = await this.waitForIdle(idleTimeout);
485
+ if (!becameIdle && this.isProcessing) {
486
+ // Interrupt if still busy
487
+ await this.cancel();
488
+ await new Promise(resolve => setTimeout(resolve, 500));
489
+ }
490
+ // Call the agent's flush extension method to trigger persistence
491
+ // The agent handles waiting for persistence and returns the result
492
+ const flushResult = await this.connection
493
+ .extMethod("_session/flush", {
494
+ sessionId: this.id,
495
+ idleTimeout,
496
+ persistTimeout,
497
+ });
498
+ // Check if the agent reported success
499
+ if (!flushResult.success) {
500
+ return { success: false, error: flushResult.error ?? "Flush failed" };
501
+ }
502
+ // Restart session so it can continue working
503
+ await this.restartSession();
504
+ return {
505
+ success: true,
506
+ filePath: flushResult.filePath,
507
+ };
508
+ }
509
+ catch (error) {
510
+ return { success: false, error: String(error) };
511
+ }
512
+ }
513
+ /**
514
+ * Restart this session after it has been flushed to disk
515
+ *
516
+ * This method is used as part of the fork-with-flush mechanism. After a session
517
+ * has been aborted to trigger disk persistence, this method restarts the session
518
+ * by loading it from the persisted state.
519
+ *
520
+ * The restarted session will have the same sessionId and conversation history,
521
+ * but with fresh internal state (new input stream, reset flags).
522
+ *
523
+ * @returns A new Session object representing the restarted session
524
+ * @throws Error if the agent does not support loading sessions
525
+ * @internal
526
+ */
527
+ async restartSession() {
528
+ if (!this.connection.loadSession) {
529
+ throw new Error("Agent does not support restarting sessions");
530
+ }
531
+ const result = await this.connection.loadSession({
532
+ sessionId: this.id,
533
+ cwd: this.cwd,
534
+ mcpServers: [],
535
+ });
536
+ return new Session(this.id, this.connection, this.clientHandler, this.cwd, result.modes?.availableModes?.map((m) => m.id) ?? this.modes, result.models?.availableModels?.map((m) => m.modelId) ?? this.models);
537
+ }
220
538
  }
221
539
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -151,4 +151,54 @@ export interface SessionOptions {
151
151
  * Content that can be sent as a prompt
152
152
  */
153
153
  export type PromptContent = string | acp.ContentBlock[];
154
+ /**
155
+ * Options for flushing a session to disk
156
+ */
157
+ export interface FlushOptions {
158
+ /** Maximum time to wait for session to become idle (default: 5000ms) */
159
+ idleTimeout?: number;
160
+ /** Maximum time to wait for disk persistence (default: 5000ms) */
161
+ persistTimeout?: number;
162
+ }
163
+ /**
164
+ * Result of a session flush operation
165
+ */
166
+ export interface FlushResult {
167
+ /** Whether the flush succeeded */
168
+ success: boolean;
169
+ /** Path to the session file (if successful) */
170
+ filePath?: string;
171
+ /** Error message (if failed) */
172
+ error?: string;
173
+ }
174
+ /**
175
+ * Options for forking a session
176
+ */
177
+ export interface ForkSessionOptions {
178
+ /**
179
+ * Force using flush-based forking even if the session appears idle.
180
+ * Use this when you want to ensure the session is definitely persisted
181
+ * before forking, regardless of its current state.
182
+ */
183
+ forceFlush?: boolean;
184
+ /**
185
+ * Maximum time to wait for session to become idle (default: 5000ms).
186
+ * Only applicable when flush is needed.
187
+ */
188
+ idleTimeout?: number;
189
+ /**
190
+ * Maximum time to wait for disk persistence (default: 5000ms).
191
+ * Only applicable when flush is needed.
192
+ */
193
+ persistTimeout?: number;
194
+ }
195
+ /**
196
+ * Result of a session inject operation
197
+ */
198
+ export interface InjectResult {
199
+ /** Whether the inject succeeded */
200
+ success: boolean;
201
+ /** Error message (if failed) */
202
+ error?: string;
203
+ }
154
204
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acp-factory",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "description": "A library for spawning and managing agents through the Agent Client Protocol (ACP)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,6 +22,12 @@
22
22
  "dev": "tsc --watch",
23
23
  "test": "vitest",
24
24
  "test:run": "vitest run",
25
+ "test:e2e": "RUN_E2E_TESTS=true vitest run test/e2e/",
26
+ "test:e2e:local": "RUN_E2E_TESTS=true USE_LOCAL_FORK=true vitest run test/e2e/",
27
+ "test:e2e:codex": "RUN_E2E_TESTS=true vitest run test/e2e/codex.e2e.test.ts",
28
+ "test:e2e:gemini": "RUN_E2E_TESTS=true vitest run test/e2e/gemini.e2e.test.ts",
29
+ "test:e2e:opencode": "RUN_E2E_TESTS=true vitest run test/e2e/opencode.e2e.test.ts",
30
+ "test:e2e:claude": "RUN_E2E_TESTS=true vitest run test/e2e/session-fork-resume.test.ts test/e2e/fork-with-flush.e2e.test.ts",
25
31
  "lint": "eslint src --ext .ts",
26
32
  "lint:fix": "eslint src --ext .ts --fix",
27
33
  "clean": "rm -rf dist",
@@ -48,8 +54,6 @@
48
54
  "acp",
49
55
  "agent",
50
56
  "agent-client-protocol",
51
- "claude",
52
- "claude-code",
53
57
  "ai",
54
58
  "llm",
55
59
  "typescript",
@@ -61,7 +65,23 @@
61
65
  "node": ">=18.0.0"
62
66
  },
63
67
  "dependencies": {
64
- "@agentclientprotocol/sdk": "^0.10.0"
68
+ "@agentclientprotocol/sdk": "^0.12.0"
69
+ },
70
+ "peerDependencies": {
71
+ "@sudocode-ai/claude-code-acp": "^0.12.10",
72
+ "@zed-industries/codex-acp": "^0.7.4",
73
+ "@google/gemini-cli": "^0.21.0"
74
+ },
75
+ "peerDependenciesMeta": {
76
+ "@sudocode-ai/claude-code-acp": {
77
+ "optional": true
78
+ },
79
+ "@zed-industries/codex-acp": {
80
+ "optional": true
81
+ },
82
+ "@google/gemini-cli": {
83
+ "optional": true
84
+ }
65
85
  },
66
86
  "devDependencies": {
67
87
  "@types/node": "^22.0.0",