acp-factory 0.0.1 → 0.0.2

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, } 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,GACnB,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 } 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
  *
@@ -94,6 +100,36 @@ export declare class Session {
94
100
  * @experimental This relies on the unstable session/fork ACP capability
95
101
  */
96
102
  fork(): Promise<Session>;
103
+ /**
104
+ * Fork a running session by flushing it to disk first
105
+ *
106
+ * This method handles forking a session that is currently active by:
107
+ * 1. Waiting for the session to become idle (up to idleTimeout)
108
+ * 2. If still processing after timeout, interrupting gracefully
109
+ * 3. Calling the agent's flush extension to trigger disk persistence
110
+ * 4. Waiting for the session file to appear on disk
111
+ * 5. Restarting the original session so it can continue
112
+ * 6. Creating the forked session using the persisted data
113
+ *
114
+ * Use this when you need to fork a session that may be actively processing.
115
+ * For idle sessions where you know the data is already persisted, use fork() directly.
116
+ *
117
+ * @param options - Optional timeout configuration
118
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
119
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
120
+ * @returns A new Session object representing the forked session
121
+ * @throws Error if the session cannot be persisted or forked
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * // Fork a potentially active session
126
+ * const forkedSession = await session.forkWithFlush();
127
+ * // Original session continues working, forked session has full context
128
+ * ```
129
+ *
130
+ * @experimental This relies on the unstable session/fork ACP capability
131
+ */
132
+ forkWithFlush(options?: FlushOptions): Promise<Session>;
97
133
  /**
98
134
  * Respond to a permission request (for interactive permission mode)
99
135
  *
@@ -121,5 +157,90 @@ export declare class Session {
121
157
  * Get all pending permission request IDs for this session
122
158
  */
123
159
  getPendingPermissionIds(): string[];
160
+ /**
161
+ * Get the file path where Claude Code stores session data
162
+ *
163
+ * Claude Code stores sessions at:
164
+ * ~/.claude/projects/<cwd-hash>/<sessionId>.jsonl
165
+ *
166
+ * Where <cwd-hash> is the cwd with `/` replaced by `-`
167
+ * (e.g., `/private/tmp` → `-private-tmp`)
168
+ *
169
+ * @param sessionId - The session ID to get the file path for
170
+ * @returns The absolute path to the session file
171
+ * @internal
172
+ * @deprecated This method is Claude Code specific. The agent now returns
173
+ * the file path in the flush response. This method may be removed in a future version.
174
+ */
175
+ getSessionFilePath(sessionId: string): string;
176
+ /**
177
+ * Wait for session data to be persisted to disk
178
+ *
179
+ * Polls for the session file existence every 100ms until the file appears
180
+ * or the timeout expires.
181
+ *
182
+ * @param sessionId - The session ID to wait for
183
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
184
+ * @returns true if file appears within timeout, false if timeout expires
185
+ * @internal
186
+ * @deprecated This method is Claude Code specific and relies on getSessionFilePath().
187
+ * The agent now handles persistence verification internally. This method may be
188
+ * removed in a future version.
189
+ */
190
+ waitForPersistence(sessionId: string, timeout?: number): Promise<boolean>;
191
+ /**
192
+ * Wait for the session to become idle (not processing a prompt)
193
+ *
194
+ * Polls the session's isProcessing state every 100ms until the session
195
+ * becomes idle or the timeout expires.
196
+ *
197
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
198
+ * @returns true if session becomes idle within timeout, false if timeout expires
199
+ * @internal
200
+ */
201
+ waitForIdle(timeout?: number): Promise<boolean>;
202
+ /**
203
+ * Flush session to disk, creating a checkpoint without forking
204
+ *
205
+ * This method triggers persistence of the session data by:
206
+ * 1. Waiting for the session to become idle (or timing out)
207
+ * 2. Cancelling any in-progress work if still busy
208
+ * 3. Calling the agent's _session/flush extension method
209
+ * 4. Waiting for the session file to appear on disk
210
+ * 5. Restarting the session so it can continue working
211
+ *
212
+ * Use this for creating checkpoints that can later be forked or restored.
213
+ *
214
+ * @param options - Optional timeout configuration
215
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
216
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
217
+ * @returns Object with success status, file path if successful, or error message
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * const result = await session.flush();
222
+ * if (result.success) {
223
+ * console.log(`Session saved to ${result.filePath}`);
224
+ * } else {
225
+ * console.error(`Flush failed: ${result.error}`);
226
+ * }
227
+ * ```
228
+ */
229
+ flush(options?: FlushOptions): Promise<FlushResult>;
230
+ /**
231
+ * Restart this session after it has been flushed to disk
232
+ *
233
+ * This method is used as part of the fork-with-flush mechanism. After a session
234
+ * has been aborted to trigger disk persistence, this method restarts the session
235
+ * by loading it from the persisted state.
236
+ *
237
+ * The restarted session will have the same sessionId and conversation history,
238
+ * but with fresh internal state (new input stream, reset flags).
239
+ *
240
+ * @returns A new Session object representing the restarted session
241
+ * @throws Error if the agent does not support loading sessions
242
+ * @internal
243
+ */
244
+ restartSession(): Promise<Session>;
124
245
  }
125
246
  //# 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,MAAM,YAAY,CAAC;AAClG,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;;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
  /**
@@ -174,13 +187,76 @@ export class Session {
174
187
  * @experimental This relies on the unstable session/fork ACP capability
175
188
  */
176
189
  async fork() {
177
- if (!this.connection.forkSession) {
190
+ if (!this.connection.unstable_forkSession) {
191
+ throw new Error("Agent does not support forking sessions");
192
+ }
193
+ const result = await this.connection.unstable_forkSession({
194
+ sessionId: this.id,
195
+ cwd: this.cwd,
196
+ });
197
+ 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) ?? []);
198
+ }
199
+ /**
200
+ * Fork a running session by flushing it to disk first
201
+ *
202
+ * This method handles forking a session that is currently active by:
203
+ * 1. Waiting for the session to become idle (up to idleTimeout)
204
+ * 2. If still processing after timeout, interrupting gracefully
205
+ * 3. Calling the agent's flush extension to trigger disk persistence
206
+ * 4. Waiting for the session file to appear on disk
207
+ * 5. Restarting the original session so it can continue
208
+ * 6. Creating the forked session using the persisted data
209
+ *
210
+ * Use this when you need to fork a session that may be actively processing.
211
+ * For idle sessions where you know the data is already persisted, use fork() directly.
212
+ *
213
+ * @param options - Optional timeout configuration
214
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
215
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
216
+ * @returns A new Session object representing the forked session
217
+ * @throws Error if the session cannot be persisted or forked
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * // Fork a potentially active session
222
+ * const forkedSession = await session.forkWithFlush();
223
+ * // Original session continues working, forked session has full context
224
+ * ```
225
+ *
226
+ * @experimental This relies on the unstable session/fork ACP capability
227
+ */
228
+ async forkWithFlush(options = {}) {
229
+ const { idleTimeout = 5000, persistTimeout = 5000 } = options;
230
+ if (!this.connection.unstable_forkSession) {
178
231
  throw new Error("Agent does not support forking sessions");
179
232
  }
180
- const result = await this.connection.forkSession({
233
+ // Step 1: Wait for idle or interrupt
234
+ const becameIdle = await this.waitForIdle(idleTimeout);
235
+ if (!becameIdle && this.isProcessing) {
236
+ // Interrupt current operation gracefully
237
+ await this.cancel();
238
+ await new Promise(resolve => setTimeout(resolve, 500));
239
+ }
240
+ // Step 2: Call the agent's flush extension method to trigger persistence
241
+ // The agent handles waiting for persistence internally
242
+ const flushResult = await this.connection
243
+ .extMethod("_session/flush", {
244
+ sessionId: this.id,
245
+ idleTimeout,
246
+ persistTimeout,
247
+ });
248
+ // Check if the agent reported success
249
+ if (!flushResult.success) {
250
+ throw new Error(flushResult.error ?? `Failed to persist session ${this.id} to disk`);
251
+ }
252
+ // Step 3: Restart original session so it can continue working
253
+ await this.restartSession();
254
+ // Step 4: Create forked session using existing fork logic
255
+ const result = await this.connection.unstable_forkSession({
181
256
  sessionId: this.id,
257
+ cwd: this.cwd,
182
258
  });
183
- return new Session(result.sessionId, this.connection, this.clientHandler, result.modes?.availableModes?.map((m) => m.id) ?? [], result.models?.availableModels?.map((m) => m.modelId) ?? []);
259
+ 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
260
  }
185
261
  /**
186
262
  * Respond to a permission request (for interactive permission mode)
@@ -217,5 +293,158 @@ export class Session {
217
293
  getPendingPermissionIds() {
218
294
  return this.clientHandler.getPendingPermissionIds(this.id);
219
295
  }
296
+ /**
297
+ * Get the file path where Claude Code stores session data
298
+ *
299
+ * Claude Code stores sessions at:
300
+ * ~/.claude/projects/<cwd-hash>/<sessionId>.jsonl
301
+ *
302
+ * Where <cwd-hash> is the cwd with `/` replaced by `-`
303
+ * (e.g., `/private/tmp` → `-private-tmp`)
304
+ *
305
+ * @param sessionId - The session ID to get the file path for
306
+ * @returns The absolute path to the session file
307
+ * @internal
308
+ * @deprecated This method is Claude Code specific. The agent now returns
309
+ * the file path in the flush response. This method may be removed in a future version.
310
+ */
311
+ getSessionFilePath(sessionId) {
312
+ // Resolve the real path to handle macOS symlinks like /var -> /private/var
313
+ // Claude Code uses the resolved path internally
314
+ const realCwd = fs.realpathSync(this.cwd);
315
+ // Claude Code replaces both / and _ with - in the cwd hash
316
+ const cwdHash = realCwd.replace(/[/_]/g, "-");
317
+ return path.join(os.homedir(), ".claude", "projects", cwdHash, `${sessionId}.jsonl`);
318
+ }
319
+ /**
320
+ * Wait for session data to be persisted to disk
321
+ *
322
+ * Polls for the session file existence every 100ms until the file appears
323
+ * or the timeout expires.
324
+ *
325
+ * @param sessionId - The session ID to wait for
326
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
327
+ * @returns true if file appears within timeout, false if timeout expires
328
+ * @internal
329
+ * @deprecated This method is Claude Code specific and relies on getSessionFilePath().
330
+ * The agent now handles persistence verification internally. This method may be
331
+ * removed in a future version.
332
+ */
333
+ async waitForPersistence(sessionId, timeout = 5000) {
334
+ const filePath = this.getSessionFilePath(sessionId);
335
+ const start = Date.now();
336
+ while (Date.now() - start < timeout) {
337
+ if (fs.existsSync(filePath)) {
338
+ return true;
339
+ }
340
+ await new Promise(resolve => setTimeout(resolve, 100));
341
+ }
342
+ return false;
343
+ }
344
+ /**
345
+ * Wait for the session to become idle (not processing a prompt)
346
+ *
347
+ * Polls the session's isProcessing state every 100ms until the session
348
+ * becomes idle or the timeout expires.
349
+ *
350
+ * @param timeout - Maximum time to wait in milliseconds (default: 5000ms)
351
+ * @returns true if session becomes idle within timeout, false if timeout expires
352
+ * @internal
353
+ */
354
+ async waitForIdle(timeout = 5000) {
355
+ const start = Date.now();
356
+ while (Date.now() - start < timeout) {
357
+ if (!this.isProcessing) {
358
+ return true;
359
+ }
360
+ await new Promise(resolve => setTimeout(resolve, 100));
361
+ }
362
+ return false;
363
+ }
364
+ /**
365
+ * Flush session to disk, creating a checkpoint without forking
366
+ *
367
+ * This method triggers persistence of the session data by:
368
+ * 1. Waiting for the session to become idle (or timing out)
369
+ * 2. Cancelling any in-progress work if still busy
370
+ * 3. Calling the agent's _session/flush extension method
371
+ * 4. Waiting for the session file to appear on disk
372
+ * 5. Restarting the session so it can continue working
373
+ *
374
+ * Use this for creating checkpoints that can later be forked or restored.
375
+ *
376
+ * @param options - Optional timeout configuration
377
+ * @param options.idleTimeout - Max time to wait for session to become idle (default: 5000ms)
378
+ * @param options.persistTimeout - Max time to wait for disk persistence (default: 5000ms)
379
+ * @returns Object with success status, file path if successful, or error message
380
+ *
381
+ * @example
382
+ * ```typescript
383
+ * const result = await session.flush();
384
+ * if (result.success) {
385
+ * console.log(`Session saved to ${result.filePath}`);
386
+ * } else {
387
+ * console.error(`Flush failed: ${result.error}`);
388
+ * }
389
+ * ```
390
+ */
391
+ async flush(options = {}) {
392
+ const { idleTimeout = 5000, persistTimeout = 5000 } = options;
393
+ try {
394
+ // Wait for idle or timeout
395
+ const becameIdle = await this.waitForIdle(idleTimeout);
396
+ if (!becameIdle && this.isProcessing) {
397
+ // Interrupt if still busy
398
+ await this.cancel();
399
+ await new Promise(resolve => setTimeout(resolve, 500));
400
+ }
401
+ // Call the agent's flush extension method to trigger persistence
402
+ // The agent handles waiting for persistence and returns the result
403
+ const flushResult = await this.connection
404
+ .extMethod("_session/flush", {
405
+ sessionId: this.id,
406
+ idleTimeout,
407
+ persistTimeout,
408
+ });
409
+ // Check if the agent reported success
410
+ if (!flushResult.success) {
411
+ return { success: false, error: flushResult.error ?? "Flush failed" };
412
+ }
413
+ // Restart session so it can continue working
414
+ await this.restartSession();
415
+ return {
416
+ success: true,
417
+ filePath: flushResult.filePath,
418
+ };
419
+ }
420
+ catch (error) {
421
+ return { success: false, error: String(error) };
422
+ }
423
+ }
424
+ /**
425
+ * Restart this session after it has been flushed to disk
426
+ *
427
+ * This method is used as part of the fork-with-flush mechanism. After a session
428
+ * has been aborted to trigger disk persistence, this method restarts the session
429
+ * by loading it from the persisted state.
430
+ *
431
+ * The restarted session will have the same sessionId and conversation history,
432
+ * but with fresh internal state (new input stream, reset flags).
433
+ *
434
+ * @returns A new Session object representing the restarted session
435
+ * @throws Error if the agent does not support loading sessions
436
+ * @internal
437
+ */
438
+ async restartSession() {
439
+ if (!this.connection.loadSession) {
440
+ throw new Error("Agent does not support restarting sessions");
441
+ }
442
+ const result = await this.connection.loadSession({
443
+ sessionId: this.id,
444
+ cwd: this.cwd,
445
+ mcpServers: [],
446
+ });
447
+ 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);
448
+ }
220
449
  }
221
450
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,OAAO,OAAO;IACT,EAAE,CAAS;IACX,KAAK,CAAW;IAChB,MAAM,CAAW;IAET,UAAU,CAA2B;IACrC,aAAa,CAAmB;IAEjD,YACE,EAAU,EACV,UAAoC,EACpC,aAA+B,EAC/B,QAAkB,EAAE,EACpB,SAAmB,EAAE;QAErB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,MAAM,CAAC,OAAsB;QAClC,uCAAuC;QACvC,MAAM,YAAY,GAChB,OAAO,OAAO,KAAK,QAAQ;YACzB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC,OAAO,CAAC;QAEd,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5D,yDAAyD;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3C,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;QAEH,+BAA+B;QAC/B,oEAAoE;QACpE,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAEtD,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,gCAAgC;gBAChC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBACpC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,MAAM,EAAE,CAAC,CAAC;oBACnE,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,MAAM,EAAE,CAAC,CAAC;iBAC9E,CAAC,CAAC;gBAEH,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/B,4CAA4C;oBAC5C,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAE7C,qCAAqC;oBACrC,IAAI,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;wBACvB,MAAM,SAAS,CAAC,KAAK,CAAC;wBACtB,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC1C,CAAC;oBACD,MAAM;gBACR,CAAC;qBAAM,CAAC;oBACN,gBAAgB;oBAChB,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBAC3B,MAAM;oBACR,CAAC;oBACD,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,yBAAyB;YACzB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,CAAC,aAAa,CAAC,OAAsB;QACzC,gCAAgC;QAChC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,iDAAiD;QACjD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAExD,yCAAyC;QACzC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,UAAU,CAAC,QAAuB;QACtC,qEAAqE;QACrE,wBAAwB;QACxB,0DAA0D;QAC1D,wBAAwB;QACxB,0CAA0C;QAC1C,2CAA2C;QAC3C,kBAAkB;QAClB,MAAM;QAEN,MAAM,IAAI,KAAK,CACb,0EAA0E;YAC1E,iFAAiF;YACjF,wDAAwD,CACzD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YACnC,SAAS,EAAE,IAAI,CAAC,EAAE;YAClB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;YAC/C,SAAS,EAAE,IAAI,CAAC,EAAE;SACnB,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAChB,MAAM,CAAC,SAAS,EAChB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAClB,MAAM,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EACpE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CACjF,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB,CAAC,SAAiB,EAAE,QAAgB;QACrD,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,SAAiB;QAChC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
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,45 @@ 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
+ }
154
195
  //# 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.0.2",
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",