@qodo/sdk 0.11.1 → 0.13.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.
@@ -46,6 +46,12 @@ export class QodoSDK {
46
46
  pendingResolvers = [];
47
47
  done = false;
48
48
  activeRuns = 0;
49
+ // When true, this instance shares MCP with a parent and
50
+ // dispose() will not tear down MCP servers.
51
+ isFork = false;
52
+ _forkParent;
53
+ _activeForkCount = 0;
54
+ _listenerCleanups = [];
49
55
  // For `sdk.message.delta`
50
56
  lastAiText = '';
51
57
  lastAiMessageId = '';
@@ -99,6 +105,276 @@ export class QodoSDK {
99
105
  const nextFlags = { ...(this.options.flags || {}), sid: sessionId };
100
106
  return new QodoSDK({ ...this.options, flags: nextFlags });
101
107
  }
108
+ /**
109
+ * Replace the backend session ID on this initialized instance without
110
+ * reinitializing MCP servers or other resources.
111
+ *
112
+ * Intended for long-lived SDK instances (e.g., Slack bots, multi-tenant
113
+ * servers) that need per-request session isolation while keeping MCP
114
+ * connections warm.
115
+ *
116
+ * If no sessionId is provided, a fresh one is fetched from the backend.
117
+ * Returns the effective session ID.
118
+ */
119
+ async replaceSession(sessionId) {
120
+ if (!this.initialized) {
121
+ throw new Error('Cannot replaceSession before SDK is initialized. Call stream/prompt first, or use withSession().');
122
+ }
123
+ if (this.isFork) {
124
+ throw new Error('Cannot replaceSession on a fork. Create a new fork instead.');
125
+ }
126
+ if (this.activeRuns > 0) {
127
+ throw new Error('Cannot replaceSession while a run is in progress. Wait for the current run to complete.');
128
+ }
129
+ const newId = sessionId ?? await this.sessions.createSessionId();
130
+ this.sessionContext.replaceSessionId(newId);
131
+ return newId;
132
+ }
133
+ /**
134
+ * Create a lightweight SDK clone that shares this instance's MCP servers
135
+ * but gets its own session, WebSocket, and message state.
136
+ *
137
+ * Use this for concurrent request handling (e.g., Slack bots, multi-tenant
138
+ * servers) where each request needs session isolation but MCP connections
139
+ * should stay warm.
140
+ *
141
+ * The returned fork MUST be disposed after use via `fork.dispose()`.
142
+ * Disposing a fork tears down its session and WebSocket but leaves the
143
+ * parent's MCP servers running.
144
+ *
145
+ * @param sessionId Optional backend session ID. If omitted, a fresh one is created.
146
+ */
147
+ async fork(sessionId) {
148
+ if (!this.initialized) {
149
+ throw new Error('Cannot fork before SDK is initialized. Call stream/prompt first.');
150
+ }
151
+ if (this.isFork) {
152
+ throw new Error('Cannot fork a forked instance. Call fork() on the parent SDK instead.');
153
+ }
154
+ const child = new QodoSDK({ ...this.options });
155
+ child.isFork = true;
156
+ child._forkParent = this;
157
+ this._activeForkCount++;
158
+ try {
159
+ await runWithEnvironment(child.env, async () => {
160
+ // Share parent's expensive resources (read-only after init)
161
+ child.env.authProvider = this.env.authProvider;
162
+ child.env.serverRegistry = this.env.serverRegistry;
163
+ child.env.mcpManager = this.env.mcpManager;
164
+ child.env.serverData = this.env.serverData;
165
+ // Fresh per-request middleware
166
+ const tpm = new ToolProcessorManager();
167
+ for (const mw of this.options.toolMiddleware ?? []) {
168
+ tpm.addMiddleware(mw);
169
+ }
170
+ child.env.toolProcessorManager = tpm;
171
+ // Fresh session context with a new session ID
172
+ const newId = sessionId ?? await child.sessions.createSessionId();
173
+ child.sessionContext = await SessionContext.newSessionContext({ ...this.sessionContext.getFlags() }, { ...this.sessionContext.getCommand() }, this.sessionContext.getGeneralInstructions(), this.sessionContext.getSystemPrompt(), undefined, // forks always start fresh
174
+ newId);
175
+ // Replicate parent's path configuration
176
+ const paths = this.sessionContext.getAccessiblePaths();
177
+ if (paths.length > 0) {
178
+ await child.sessionContext.setAccessiblePaths(paths);
179
+ }
180
+ const execCwd = this.sessionContext.getExecutionCwd();
181
+ if (execCwd) {
182
+ child.sessionContext.setExecutionCwd(execCwd);
183
+ }
184
+ // Fresh message manager, agent, and core
185
+ child.messageManager = new MessageManager();
186
+ child.agent = new AgentAPI(child.sessionContext);
187
+ child.setupEventListeners();
188
+ child.core = new AgentRunnerCore(child.sessionContext, child.messageManager, child.agent, () => { }, child.options.autoApproveTools !== false);
189
+ });
190
+ child.initialized = true;
191
+ child.lastInitMeta = this.lastInitMeta;
192
+ return child;
193
+ }
194
+ catch (error) {
195
+ // Clean up partially constructed fork to avoid resource leaks.
196
+ // child.dispose() may return early (child not yet initialized),
197
+ // so always decrement the parent's fork count explicitly.
198
+ // Clear _forkParent first to prevent double-decrement in dispose().
199
+ child._forkParent = undefined;
200
+ this._activeForkCount--;
201
+ try {
202
+ await child.dispose();
203
+ }
204
+ catch { /* cleanup must not throw */ }
205
+ throw error;
206
+ }
207
+ }
208
+ /**
209
+ * Register message, loading, and error listeners on the message manager.
210
+ * Called during both full initialization and fork setup.
211
+ */
212
+ setupEventListeners() {
213
+ // Clear any previous listener cleanups before registering new ones
214
+ this._listenerCleanups = [];
215
+ // Observe message list changes to emit:
216
+ // - sdk.message.full
217
+ // - sdk.message.delta (best effort from last AI message)
218
+ this._listenerCleanups.push(this.messageManager.addMessageListener((messages) => {
219
+ const lc = toLangChainDict(messages);
220
+ const openai = toOpenAIChat(messages);
221
+ const sid = this.sessionContext.getSessionId();
222
+ this.pushEvent(SdkEventType.MessageFull, sid, {
223
+ messages: { langchain: lc, openai },
224
+ });
225
+ // progress extraction
226
+ try {
227
+ const progress = extractProgress(messages);
228
+ if (progress) {
229
+ this.pushEvent(SdkEventType.Progress, sid, { ...progress });
230
+ }
231
+ }
232
+ catch { /* non-fatal: progress extraction is best-effort */ }
233
+ // tool lifecycle extraction from LangChain dict (AIMessage tool_calls + ToolMessage results)
234
+ try {
235
+ this.extractToolLifecycleFromLangChain(lc, sid);
236
+ }
237
+ catch { /* non-fatal: tool lifecycle extraction is best-effort */ }
238
+ // delta: compare last AI message string
239
+ try {
240
+ const lastAi = messages
241
+ .slice()
242
+ .reverse()
243
+ .find((m) => m?.constructor?.name === 'AIMessage');
244
+ const content = lastAi?.content;
245
+ const text = typeof content === 'string' ? content : '';
246
+ const messageId = lastAi?.additional_kwargs?.id || lastAi?.id || 'ai';
247
+ if (messageId !== this.lastAiMessageId) {
248
+ this.lastAiMessageId = messageId;
249
+ this.lastAiText = '';
250
+ }
251
+ if (text.length > this.lastAiText.length && text.startsWith(this.lastAiText)) {
252
+ const delta = text.slice(this.lastAiText.length);
253
+ if (delta && delta.length > 0) {
254
+ this.pushEvent(SdkEventType.MessageDelta, sid, {
255
+ message_id: String(messageId),
256
+ role: 'assistant',
257
+ delta,
258
+ });
259
+ }
260
+ }
261
+ this.lastAiText = text;
262
+ }
263
+ catch { /* non-fatal: delta extraction is best-effort */ }
264
+ }));
265
+ // Finalization
266
+ this._listenerCleanups.push(this.messageManager.addLoadingListener(async (isLoading) => {
267
+ const sid = this.sessionContext.getSessionId();
268
+ if (!isLoading) {
269
+ try {
270
+ await this.agent.finishCurrentTask(false);
271
+ }
272
+ catch { /* best-effort: must not block finalization */ }
273
+ // AgentRunnerCore already emits final for old SDK, but we produce our own terminal sdk.final here
274
+ // by reading the message manager state.
275
+ try {
276
+ const finalized = buildFinalResult(this.messageManager);
277
+ // Check if there's an error - if so, mark as failure
278
+ const currentError = this.messageManager.getError();
279
+ const success = !currentError;
280
+ // Runtime Zod validation of structured_output when a schema is available
281
+ let validatedOutput = finalized.structured_output;
282
+ let validationError;
283
+ if (validatedOutput !== undefined && isZodSchema(this.runOutputZodSchema)) {
284
+ try {
285
+ validatedOutput = validateStructuredOutput(this.runOutputZodSchema, validatedOutput);
286
+ }
287
+ catch (ve) {
288
+ if (ve instanceof QodoOutputValidationError) {
289
+ validationError = ve.message;
290
+ }
291
+ else {
292
+ validationError = ve instanceof Error ? ve.message : String(ve);
293
+ }
294
+ }
295
+ }
296
+ this.pushEvent(SdkEventType.Final, sid, {
297
+ success: success && !validationError,
298
+ ...(currentError ? { error: currentError } : {}),
299
+ ...(validationError ? { error: validationError } : {}),
300
+ model: this.sessionContext.getModel(),
301
+ result: {
302
+ ...(validatedOutput !== undefined ? { structured_output: validatedOutput } : {}),
303
+ ...(finalized.final_output ? { final_output: finalized.final_output } : {}),
304
+ },
305
+ messages: { langchain: finalized.messagesLC, openai: finalized.messagesOpenAI },
306
+ meta: {
307
+ tools_auto_approved: this.options.autoApproveTools !== false,
308
+ subagents_used: finalized.subagentsUsed,
309
+ ...(this.sessionContext.isDryRun() ? { dry_run: true } : {}),
310
+ ...(() => { const _ee = this.sessionContext?.getCommand?.()?.exit_expression; return _ee ? { exit_expression: _ee } : {}; })(),
311
+ },
312
+ });
313
+ this.done = true;
314
+ }
315
+ catch (e) {
316
+ this.pushEvent(SdkEventType.Error, sid, { message: e?.message || 'Failed to finalize' });
317
+ this.pushEvent(SdkEventType.Final, sid, {
318
+ success: false,
319
+ error: e?.message || 'Failed to finalize',
320
+ model: this.sessionContext.getModel(),
321
+ result: {},
322
+ messages: { langchain: [], openai: [] },
323
+ meta: { tools_auto_approved: this.options.autoApproveTools !== false, subagents_used: false, ...(this.sessionContext.isDryRun() ? { dry_run: true } : {}), ...(() => { const _ee = this.sessionContext?.getCommand?.()?.exit_expression; return _ee ? { exit_expression: _ee } : {}; })() },
324
+ });
325
+ this.done = true;
326
+ }
327
+ }
328
+ }));
329
+ this._listenerCleanups.push(this.messageManager.addErrorListener(async (error) => {
330
+ if (!error)
331
+ return;
332
+ const sid = this.sessionContext.getSessionId();
333
+ this.pushEvent(SdkEventType.Error, sid, { message: error });
334
+ try {
335
+ await this.agent.finishCurrentTask(true);
336
+ }
337
+ catch { /* best-effort: must not block error handling */ }
338
+ }));
339
+ // Protocol-v2 transport lifecycle: surface reconnect, reconcile, and stall
340
+ // events through the SDK envelope stream. Consumers that only read these
341
+ // envelopes (no direct WebSocketClient access) can still distinguish a
342
+ // transient reconnect from a hard stall and respond appropriately.
343
+ const unsubscribeTransport = this.agent.onTransportEvent({
344
+ reconnecting: ({ attempt }) => {
345
+ const sid = this.sessionContext.getSessionId();
346
+ this.pushEvent(SdkEventType.Reconnecting, sid, { attempt });
347
+ },
348
+ reconnected: ({ downtime_ms }) => {
349
+ const sid = this.sessionContext.getSessionId();
350
+ this.pushEvent(SdkEventType.Reconnected, sid, { ...(typeof downtime_ms === 'number' ? { downtime_ms } : {}) });
351
+ },
352
+ resumeAck: ({ current_checkpoint, last_consumed_turn_id, awaiting, outbox_size }) => {
353
+ const sid = this.sessionContext.getSessionId();
354
+ this.pushEvent(SdkEventType.ResumeReconciled, sid, {
355
+ ...(current_checkpoint ? { current_checkpoint } : {}),
356
+ ...(last_consumed_turn_id ? { last_consumed_turn_id } : {}),
357
+ awaiting,
358
+ outbox_size,
359
+ });
360
+ },
361
+ reconcileFailed: ({ reason, awaiting }) => {
362
+ const sid = this.sessionContext.getSessionId();
363
+ this.pushEvent(SdkEventType.ReconcileFailed, sid, {
364
+ reason,
365
+ ...(awaiting ? { awaiting } : {}),
366
+ });
367
+ },
368
+ stallDetected: ({ stage, outboxSize }) => {
369
+ const sid = this.sessionContext.getSessionId();
370
+ this.pushEvent(SdkEventType.StallDetected, sid, {
371
+ stage,
372
+ outbox_size: outboxSize,
373
+ });
374
+ },
375
+ });
376
+ this._listenerCleanups.push(unsubscribeTransport);
377
+ }
102
378
  pushEvent(type, sessionId, data, opts) {
103
379
  const evt = createSdkEvent({
104
380
  type,
@@ -288,130 +564,7 @@ export class QodoSDK {
288
564
  },
289
565
  model: this.sessionContext.getModel(),
290
566
  });
291
- // Observe message list changes to emit:
292
- // - sdk.message.full
293
- // - sdk.message.delta (best effort from last AI message)
294
- this.messageManager.addMessageListener((messages) => {
295
- const lc = toLangChainDict(messages);
296
- const openai = toOpenAIChat(messages);
297
- const sid = this.sessionContext.getSessionId();
298
- this.pushEvent(SdkEventType.MessageFull, sid, {
299
- messages: { langchain: lc, openai },
300
- });
301
- // progress extraction
302
- try {
303
- const progress = extractProgress(messages);
304
- if (progress) {
305
- this.pushEvent(SdkEventType.Progress, sid, { ...progress });
306
- }
307
- }
308
- catch { /* non-fatal: progress extraction is best-effort */ }
309
- // tool lifecycle extraction from LangChain dict (AIMessage tool_calls + ToolMessage results)
310
- try {
311
- this.extractToolLifecycleFromLangChain(lc, sid);
312
- }
313
- catch { /* non-fatal: tool lifecycle extraction is best-effort */ }
314
- // delta: compare last AI message string
315
- try {
316
- const lastAi = messages
317
- .slice()
318
- .reverse()
319
- .find((m) => m?.constructor?.name === 'AIMessage');
320
- const content = lastAi?.content;
321
- const text = typeof content === 'string' ? content : '';
322
- const messageId = lastAi?.additional_kwargs?.id || lastAi?.id || 'ai';
323
- if (messageId !== this.lastAiMessageId) {
324
- this.lastAiMessageId = messageId;
325
- this.lastAiText = '';
326
- }
327
- if (text.length > this.lastAiText.length && text.startsWith(this.lastAiText)) {
328
- const delta = text.slice(this.lastAiText.length);
329
- if (delta && delta.length > 0) {
330
- this.pushEvent(SdkEventType.MessageDelta, sid, {
331
- message_id: String(messageId),
332
- role: 'assistant',
333
- delta,
334
- });
335
- }
336
- }
337
- this.lastAiText = text;
338
- }
339
- catch { /* non-fatal: delta extraction is best-effort */ }
340
- });
341
- // Finalization
342
- this.messageManager.addLoadingListener(async (isLoading) => {
343
- const sid = this.sessionContext.getSessionId();
344
- if (!isLoading) {
345
- try {
346
- await this.agent.finishCurrentTask(false);
347
- }
348
- catch { /* best-effort: must not block finalization */ }
349
- // AgentRunnerCore already emits final for old SDK, but we produce our own terminal sdk.final here
350
- // by reading the message manager state.
351
- try {
352
- const finalized = buildFinalResult(this.messageManager);
353
- // Check if there's an error - if so, mark as failure
354
- const currentError = this.messageManager.getError();
355
- const success = !currentError;
356
- // Runtime Zod validation of structured_output when a schema is available
357
- let validatedOutput = finalized.structured_output;
358
- let validationError;
359
- if (validatedOutput !== undefined && isZodSchema(this.runOutputZodSchema)) {
360
- try {
361
- validatedOutput = validateStructuredOutput(this.runOutputZodSchema, validatedOutput);
362
- }
363
- catch (ve) {
364
- if (ve instanceof QodoOutputValidationError) {
365
- validationError = ve.message;
366
- }
367
- else {
368
- validationError = ve instanceof Error ? ve.message : String(ve);
369
- }
370
- }
371
- }
372
- this.pushEvent(SdkEventType.Final, sid, {
373
- success: success && !validationError,
374
- ...(currentError ? { error: currentError } : {}),
375
- ...(validationError ? { error: validationError } : {}),
376
- model: this.sessionContext.getModel(),
377
- result: {
378
- ...(validatedOutput !== undefined ? { structured_output: validatedOutput } : {}),
379
- ...(finalized.final_output ? { final_output: finalized.final_output } : {}),
380
- },
381
- messages: { langchain: finalized.messagesLC, openai: finalized.messagesOpenAI },
382
- meta: {
383
- tools_auto_approved: this.options.autoApproveTools !== false,
384
- subagents_used: finalized.subagentsUsed,
385
- ...(this.sessionContext.isDryRun() ? { dry_run: true } : {}),
386
- ...(() => { const _ee = this.sessionContext?.getCommand?.()?.exit_expression; return _ee ? { exit_expression: _ee } : {}; })(),
387
- },
388
- });
389
- this.done = true;
390
- }
391
- catch (e) {
392
- this.pushEvent(SdkEventType.Error, sid, { message: e?.message || 'Failed to finalize' });
393
- this.pushEvent(SdkEventType.Final, sid, {
394
- success: false,
395
- error: e?.message || 'Failed to finalize',
396
- model: this.sessionContext.getModel(),
397
- result: {},
398
- messages: { langchain: [], openai: [] },
399
- meta: { tools_auto_approved: this.options.autoApproveTools !== false, subagents_used: false, ...(this.sessionContext.isDryRun() ? { dry_run: true } : {}), ...(() => { const _ee = this.sessionContext?.getCommand?.()?.exit_expression; return _ee ? { exit_expression: _ee } : {}; })() },
400
- });
401
- this.done = true;
402
- }
403
- }
404
- });
405
- this.messageManager.addErrorListener(async (error) => {
406
- if (!error)
407
- return;
408
- const sid = this.sessionContext.getSessionId();
409
- this.pushEvent(SdkEventType.Error, sid, { message: error });
410
- try {
411
- await this.agent.finishCurrentTask(true);
412
- }
413
- catch { /* best-effort: must not block error handling */ }
414
- });
567
+ this.setupEventListeners();
415
568
  this.core = new AgentRunnerCore(this.sessionContext, this.messageManager, this.agent,
416
569
  // No-op emit: we emit via message manager listeners
417
570
  () => { }, this.options.autoApproveTools !== false);
@@ -559,7 +712,8 @@ export class QodoSDK {
559
712
  }
560
713
  async *stream(commandOrPrompt, options) {
561
714
  if (this.activeRuns > 0) {
562
- const delegated = new QodoSDK(this.options);
715
+ // Initialized parents fork() to share warm MCP connections
716
+ const delegated = this.initialized ? await this.fork() : new QodoSDK(this.options);
563
717
  try {
564
718
  yield* delegated.stream(commandOrPrompt, options);
565
719
  }
@@ -892,19 +1046,37 @@ export class QodoSDK {
892
1046
  const env = this.env;
893
1047
  await runWithEnvironment(env, async () => {
894
1048
  try {
1049
+ // Remove event listeners FIRST to prevent stale callbacks during core teardown
1050
+ for (const cleanup of this._listenerCleanups) {
1051
+ try {
1052
+ cleanup();
1053
+ }
1054
+ catch { /* cleanup must not throw */ }
1055
+ }
1056
+ this._listenerCleanups = [];
895
1057
  await this.core.dispose();
896
1058
  try {
897
1059
  this.agent.cleanup?.();
898
1060
  }
899
1061
  catch { /* cleanup: agent teardown must not throw */ }
900
- try {
901
- const { MCPManager } = await import('../mcp/MCPManager.js');
1062
+ // Forks share the parent's MCP — only the parent should tear it down.
1063
+ if (!this.isFork) {
1064
+ if (this._activeForkCount > 0) {
1065
+ this.logger.warn(`[sdk] dispose() called while ${this._activeForkCount} fork(s) are still active. Fork operations may fail.`);
1066
+ }
902
1067
  try {
903
- await MCPManager.getInstance().dispose();
1068
+ const { MCPManager } = await import('../mcp/MCPManager.js');
1069
+ try {
1070
+ await MCPManager.getInstance().dispose();
1071
+ }
1072
+ catch { /* cleanup: MCP dispose must not throw */ }
904
1073
  }
905
- catch { /* cleanup: MCP dispose must not throw */ }
1074
+ catch { /* cleanup: MCP import may fail if never initialized */ }
1075
+ }
1076
+ else if (this._forkParent) {
1077
+ this._forkParent._activeForkCount = Math.max(0, this._forkParent._activeForkCount - 1);
1078
+ this._forkParent = undefined; // break reference to allow GC and prevent double-decrement
906
1079
  }
907
- catch { /* cleanup: MCP import may fail if never initialized */ }
908
1080
  }
909
1081
  finally {
910
1082
  this.initialized = false;
@@ -1 +1 @@
1
- {"version":3,"file":"QodoSDK.js","sourceRoot":"","sources":["../../src/sdk/QodoSDK.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QodoSDK.js","sourceRoot":"","sources":["../../src/sdk/QodoSDK.ts"],"names":[],"mappings":"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"}