@scottwalker/claude-connector 0.3.0 → 0.4.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.
@@ -1,41 +1,35 @@
1
1
  import { EventEmitter } from 'node:events';
2
- import { INIT_IMPORTING, INIT_CREATING, INIT_CONNECTING, INIT_READY, DEFAULT_MODEL, INIT_EVENT_STAGE, INIT_EVENT_READY, INIT_EVENT_ERROR, SYSTEM_INIT, EVENT_SYSTEM, EVENT_RESULT, EVENT_TEXT, EVENT_TOOL_USE, ROLE_ASSISTANT, KEY_MESSAGE, KEY_CONTENT, KEY_TYPE, KEY_TEXT, BLOCK_TOOL_USE, KEY_NAME, KEY_INPUT, KEY_RESULT, KEY_SESSION_ID, KEY_USAGE, KEY_INPUT_TOKENS, KEY_OUTPUT_TOKENS, KEY_TOTAL_COST, KEY_DURATION, KEY_MODEL, KEY_TOOLS, KEY_SUBTYPE, FLAGS_WITH_VALUE, FORMAT_JSON, FORMAT_STREAM_JSON, } from '../constants.js';
2
+ import { CliExecutionError } from '../errors/errors.js';
3
+ import { INIT_IMPORTING, INIT_CREATING, INIT_CONNECTING, INIT_READY, DEFAULT_MODEL, INIT_EVENT_STAGE, INIT_EVENT_READY, INIT_EVENT_ERROR, SYSTEM_INIT, EVENT_SYSTEM, EVENT_RESULT, EVENT_TEXT, EVENT_TOOL_USE, EVENT_TASK_STARTED, EVENT_TASK_PROGRESS, EVENT_TASK_NOTIFICATION, ROLE_ASSISTANT, KEY_MESSAGE, KEY_CONTENT, KEY_TYPE, KEY_TEXT, BLOCK_TOOL_USE, KEY_NAME, KEY_INPUT, KEY_RESULT, KEY_SESSION_ID, KEY_USAGE, KEY_INPUT_TOKENS, KEY_OUTPUT_TOKENS, KEY_TOTAL_COST, KEY_DURATION, KEY_MODEL, KEY_TOOLS, KEY_SUBTYPE, FLAGS_WITH_VALUE, FORMAT_JSON, FORMAT_STREAM_JSON, } from '../constants.js';
3
4
  /**
4
- * Executor implementation using the Claude Agent SDK (V2 API).
5
+ * Executor implementation using the Claude Agent SDK (V1 query API).
5
6
  *
6
- * ## Why this exists
7
+ * ## Why V1 instead of V2
7
8
  *
8
- * The CLI executor (`CliExecutor`) spawns a new `claude` process for every query.
9
- * Each spawn has a cold-start cost: loading the CLI, authenticating, initializing
10
- * tools and MCP servers. For interactive use this delay is noticeable (5-15s).
11
- *
12
- * `SdkExecutor` solves this by creating a **persistent SDK session** via
13
- * `unstable_v2_createSession()`. The session stays warm — subsequent queries
14
- * use `session.send()` + `session.stream()` with near-zero overhead.
9
+ * The V2 `SDKSession` API is marked as unstable (@alpha) and only exposes
10
+ * `send()` + `stream()`. The V1 `query()` API returns a `Query` object with
11
+ * full control methods: setModel, setPermissionMode, rewindFiles, stopTask,
12
+ * setMcpServers, accountInfo, supportedModels, and more.
15
13
  *
16
14
  * ## Lifecycle
17
15
  *
18
16
  * ```
19
17
  * const executor = new SdkExecutor({ model: 'sonnet' })
20
18
  * await executor.init() // warm up (emits stage events)
21
- * executor.execute(args, opts) // fast — session already running
22
- * executor.execute(args, opts) // fast
19
+ * executor.execute(args, opts) // fast — query already running
20
+ * executor.execute(args, opts) // fast — uses streamInput()
23
21
  * executor.close() // cleanup
24
22
  * ```
25
23
  *
26
- * ## Initialization events
24
+ * ## Multi-turn
27
25
  *
28
- * Subscribe to stage events for UI feedback:
29
- * ```
30
- * executor.on('init:stage', (stage, message) => {
31
- * console.log(`[${stage}] ${message}`)
32
- * })
33
- * executor.on('init:ready', () => console.log('Ready!'))
34
- * ```
26
+ * Uses `query.streamInput()` with a controllable async iterable.
27
+ * Each `execute()` / `stream()` sends a user message and reads the response.
35
28
  */
36
29
  export class SdkExecutor extends EventEmitter {
37
30
  sdkModule = null;
38
- session = null;
31
+ activeQuery = null;
32
+ inputController = null;
39
33
  _ready = false;
40
34
  initPromise = null;
41
35
  sdkOptions;
@@ -50,7 +44,7 @@ export class SdkExecutor extends EventEmitter {
50
44
  /**
51
45
  * Initialize the SDK session (warm up).
52
46
  *
53
- * This imports the SDK, creates a persistent session, and waits for
47
+ * This imports the SDK, creates a persistent query, and waits for
54
48
  * the `system/init` message confirming Claude Code is ready.
55
49
  *
56
50
  * Call this once at startup. Subsequent queries will be fast.
@@ -72,17 +66,20 @@ export class SdkExecutor extends EventEmitter {
72
66
  const effectivePrompt = systemPrompt
73
67
  ? `[System instruction: ${systemPrompt}]\n\n${prompt}`
74
68
  : prompt;
75
- await this.session.send(effectivePrompt);
69
+ // Send message via streamInput
70
+ this.sendMessage(effectivePrompt);
76
71
  let resultText = '';
77
72
  let sessionId = '';
78
73
  let usage = { inputTokens: 0, outputTokens: 0 };
79
74
  let cost = null;
80
75
  let durationMs = 0;
81
76
  let structured = null;
82
- for await (const msg of this.session.stream()) {
77
+ // Use manual .next() instead of for-await to avoid calling .return()
78
+ // which would close the generator and prevent reuse for subsequent queries.
79
+ await readUntilResult(this.activeQuery, (msg) => {
83
80
  const parsed = this.mapMessage(msg);
84
81
  if (!parsed)
85
- continue;
82
+ return false;
86
83
  if (parsed.type === EVENT_TEXT) {
87
84
  resultText += parsed.text;
88
85
  }
@@ -92,8 +89,10 @@ export class SdkExecutor extends EventEmitter {
92
89
  usage = parsed.usage;
93
90
  cost = parsed.cost;
94
91
  durationMs = parsed.durationMs;
92
+ return true; // stop
95
93
  }
96
- }
94
+ return false;
95
+ });
97
96
  return {
98
97
  text: resultText,
99
98
  sessionId,
@@ -112,72 +111,263 @@ export class SdkExecutor extends EventEmitter {
112
111
  const effectivePrompt = systemPrompt
113
112
  ? `[System instruction: ${systemPrompt}]\n\n${prompt}`
114
113
  : prompt;
115
- await this.session.send(effectivePrompt);
116
- for await (const msg of this.session.stream()) {
114
+ this.sendMessage(effectivePrompt);
115
+ // Use manual .next() to avoid closing the generator on break.
116
+ // Yield events to the caller until we see a result event.
117
+ while (true) {
118
+ const { value: msg, done } = await this.activeQuery.next();
119
+ if (done)
120
+ break;
117
121
  const event = this.mapMessage(msg);
118
- if (event)
122
+ if (event) {
119
123
  yield event;
124
+ if (event.type === EVENT_RESULT)
125
+ break;
126
+ }
120
127
  }
121
128
  }
122
129
  abort() {
123
- // SDK sessions don't have a per-query abort — close the whole session
124
- this.close();
130
+ if (this.activeQuery) {
131
+ this.activeQuery.close();
132
+ this.activeQuery = null;
133
+ this.inputController = null;
134
+ }
135
+ this._ready = false;
136
+ this.initPromise = null;
125
137
  }
126
138
  /**
127
139
  * Close the SDK session and free resources.
128
140
  */
129
141
  close() {
130
- if (this.session) {
131
- this.session.close();
132
- this.session = null;
142
+ if (this.activeQuery) {
143
+ this.activeQuery.close();
144
+ this.activeQuery = null;
145
+ this.inputController = null;
133
146
  }
134
147
  this._ready = false;
135
148
  this.initPromise = null;
136
149
  }
150
+ // ── Control Methods (V1 Query API) ─────────────────────────────
151
+ /**
152
+ * Change the model for subsequent responses. SDK mode only.
153
+ * @param model - Model identifier, or undefined for default.
154
+ */
155
+ async setModel(model) {
156
+ this.ensureQuery();
157
+ await this.activeQuery.setModel(model);
158
+ }
159
+ /**
160
+ * Change the permission mode. SDK mode only.
161
+ * @param mode - The new permission mode.
162
+ */
163
+ async setPermissionMode(mode) {
164
+ this.ensureQuery();
165
+ await this.activeQuery.setPermissionMode(mode);
166
+ }
167
+ /**
168
+ * Rewind files to their state at a specific user message.
169
+ * Requires `enableFileCheckpointing: true`.
170
+ */
171
+ async rewindFiles(userMessageId, options) {
172
+ this.ensureQuery();
173
+ return await this.activeQuery.rewindFiles(userMessageId, options);
174
+ }
175
+ /**
176
+ * Stop a running subagent task.
177
+ * @param taskId - The task ID from task_started/task_notification events.
178
+ */
179
+ async stopTask(taskId) {
180
+ this.ensureQuery();
181
+ await this.activeQuery.stopTask(taskId);
182
+ }
183
+ /**
184
+ * Dynamically set MCP servers for this session.
185
+ * Replaces current dynamic servers.
186
+ */
187
+ async setMcpServers(servers) {
188
+ this.ensureQuery();
189
+ return await this.activeQuery.setMcpServers(servers);
190
+ }
191
+ /**
192
+ * Reconnect a disconnected MCP server.
193
+ */
194
+ async reconnectMcpServer(serverName) {
195
+ this.ensureQuery();
196
+ await this.activeQuery.reconnectMcpServer(serverName);
197
+ }
198
+ /**
199
+ * Enable or disable an MCP server.
200
+ */
201
+ async toggleMcpServer(serverName, enabled) {
202
+ this.ensureQuery();
203
+ await this.activeQuery.toggleMcpServer(serverName, enabled);
204
+ }
205
+ /**
206
+ * Get account information (email, org, subscription).
207
+ */
208
+ async accountInfo() {
209
+ this.ensureQuery();
210
+ return await this.activeQuery.accountInfo();
211
+ }
212
+ /**
213
+ * Get available models with their capabilities.
214
+ */
215
+ async supportedModels() {
216
+ this.ensureQuery();
217
+ return await this.activeQuery.supportedModels();
218
+ }
219
+ /**
220
+ * Get available slash commands.
221
+ */
222
+ async supportedCommands() {
223
+ this.ensureQuery();
224
+ return await this.activeQuery.supportedCommands();
225
+ }
226
+ /**
227
+ * Get available subagents.
228
+ */
229
+ async supportedAgents() {
230
+ this.ensureQuery();
231
+ return await this.activeQuery.supportedAgents();
232
+ }
233
+ /**
234
+ * Get MCP server connection statuses.
235
+ */
236
+ async mcpServerStatus() {
237
+ this.ensureQuery();
238
+ return await this.activeQuery.mcpServerStatus();
239
+ }
240
+ /**
241
+ * Interrupt the current query execution.
242
+ */
243
+ async interrupt() {
244
+ this.ensureQuery();
245
+ await this.activeQuery.interrupt();
246
+ }
137
247
  // ── Private ───────────────────────────────────────────────────────
138
248
  async doInit() {
139
249
  try {
140
250
  // Stage 1: Import SDK
141
251
  this.emit(INIT_EVENT_STAGE, INIT_IMPORTING, 'Loading Claude Agent SDK...');
142
252
  this.sdkModule = await import('@anthropic-ai/claude-agent-sdk');
143
- // Stage 2: Create session
144
- this.emit(INIT_EVENT_STAGE, INIT_CREATING, 'Creating persistent session...');
145
- const sessionOptions = {
253
+ // Stage 2: Create query via V1 API
254
+ this.emit(INIT_EVENT_STAGE, INIT_CREATING, 'Creating persistent query...');
255
+ // Set up a controllable input stream for multi-turn
256
+ this.inputController = new InputController();
257
+ const sdkOptions = {
146
258
  model: this.sdkOptions.model ?? DEFAULT_MODEL,
147
259
  permissionMode: this.sdkOptions.permissionMode,
148
260
  allowedTools: this.sdkOptions.allowedTools,
149
261
  disallowedTools: this.sdkOptions.disallowedTools,
262
+ canUseTool: this.sdkOptions.canUseTool,
263
+ thinking: this.sdkOptions.thinking,
264
+ enableFileCheckpointing: this.sdkOptions.enableFileCheckpointing,
265
+ onElicitation: this.sdkOptions.onElicitation,
266
+ includePartialMessages: this.sdkOptions.includePartialMessages,
267
+ promptSuggestions: this.sdkOptions.promptSuggestions,
268
+ agentProgressSummaries: this.sdkOptions.agentProgressSummaries,
269
+ debug: this.sdkOptions.debug,
270
+ debugFile: this.sdkOptions.debugFile,
150
271
  };
151
272
  if (this.sdkOptions.pathToClaudeCodeExecutable) {
152
- sessionOptions.pathToClaudeCodeExecutable = this.sdkOptions.pathToClaudeCodeExecutable;
273
+ sdkOptions.pathToClaudeCodeExecutable = this.sdkOptions.pathToClaudeCodeExecutable;
274
+ }
275
+ if (this.sdkOptions.cwd) {
276
+ sdkOptions.cwd = this.sdkOptions.cwd;
153
277
  }
154
- // BUG-2 fix: pass systemPrompt to SDK session
155
278
  if (this.sdkOptions.systemPrompt) {
156
- sessionOptions['systemPrompt'] = this.sdkOptions.systemPrompt;
279
+ sdkOptions.systemPrompt = this.sdkOptions.systemPrompt;
157
280
  }
158
281
  if (this.sdkOptions.appendSystemPrompt) {
159
- sessionOptions['appendSystemPrompt'] = this.sdkOptions.appendSystemPrompt;
282
+ sdkOptions.systemPrompt = {
283
+ type: 'preset',
284
+ preset: 'claude_code',
285
+ append: this.sdkOptions.appendSystemPrompt,
286
+ };
160
287
  }
161
288
  if (this.sdkOptions.maxTurns !== undefined) {
162
- sessionOptions['maxTurns'] = this.sdkOptions.maxTurns;
289
+ sdkOptions.maxTurns = this.sdkOptions.maxTurns;
290
+ }
291
+ if (this.sdkOptions.maxBudget !== undefined) {
292
+ sdkOptions.maxBudgetUsd = this.sdkOptions.maxBudget;
293
+ }
294
+ if (this.sdkOptions.effortLevel) {
295
+ sdkOptions.effort = this.sdkOptions.effortLevel;
163
296
  }
164
297
  if (this.sdkOptions.env) {
165
- sessionOptions.env = { ...process.env, ...this.sdkOptions.env };
298
+ sdkOptions.env = { ...process.env, ...this.sdkOptions.env };
299
+ }
300
+ if (this.sdkOptions.mcpServers) {
301
+ sdkOptions.mcpServers = this.sdkOptions.mcpServers;
302
+ }
303
+ if (this.sdkOptions.agents) {
304
+ sdkOptions.agents = this.sdkOptions.agents;
305
+ }
306
+ if (this.sdkOptions.agent) {
307
+ sdkOptions.agent = this.sdkOptions.agent;
166
308
  }
167
- this.session = this.sdkModule.unstable_v2_createSession(sessionOptions);
168
- // Stage 3: Warm up — send a no-op to trigger initialization, wait for init message
309
+ if (this.sdkOptions.tools) {
310
+ sdkOptions.tools = this.sdkOptions.tools;
311
+ }
312
+ if (this.sdkOptions.hookCallbacks) {
313
+ sdkOptions.hooks = this.sdkOptions.hookCallbacks;
314
+ }
315
+ if (this.sdkOptions.betas) {
316
+ sdkOptions.betas = this.sdkOptions.betas;
317
+ }
318
+ if (this.sdkOptions.additionalDirs) {
319
+ sdkOptions.additionalDirectories = this.sdkOptions.additionalDirs;
320
+ }
321
+ if (this.sdkOptions.schema) {
322
+ sdkOptions.outputFormat = {
323
+ type: 'json_schema',
324
+ schema: this.sdkOptions.schema,
325
+ };
326
+ }
327
+ if (this.sdkOptions.noSessionPersistence === true) {
328
+ sdkOptions.persistSession = false;
329
+ }
330
+ if (this.sdkOptions.fallbackModel) {
331
+ sdkOptions.fallbackModel = this.sdkOptions.fallbackModel;
332
+ }
333
+ if (this.sdkOptions.strictMcpConfig) {
334
+ sdkOptions.strictMcpConfig = true;
335
+ }
336
+ if (this.sdkOptions.stderr) {
337
+ sdkOptions.stderr = this.sdkOptions.stderr;
338
+ }
339
+ if (this.sdkOptions.allowDangerouslySkipPermissions) {
340
+ sdkOptions.allowDangerouslySkipPermissions = true;
341
+ }
342
+ if (this.sdkOptions.settingSources) {
343
+ sdkOptions.settingSources = this.sdkOptions.settingSources;
344
+ }
345
+ if (this.sdkOptions.settings !== undefined) {
346
+ sdkOptions.settings = this.sdkOptions.settings;
347
+ }
348
+ if (this.sdkOptions.plugins) {
349
+ sdkOptions.plugins = this.sdkOptions.plugins;
350
+ }
351
+ if (this.sdkOptions.spawnClaudeCodeProcess) {
352
+ sdkOptions.spawnClaudeCodeProcess = this.sdkOptions.spawnClaudeCodeProcess;
353
+ }
354
+ // Create query with streaming input for multi-turn
355
+ this.activeQuery = this.sdkModule.query({
356
+ prompt: this.inputController.iterable,
357
+ options: sdkOptions,
358
+ });
359
+ // Stage 3: Wait for init message
169
360
  this.emit(INIT_EVENT_STAGE, INIT_CONNECTING, 'Waiting for Claude Code to initialize...');
170
- // The session initializes on first send+stream
171
- await this.session.send('.');
172
- for await (const msg of this.session.stream()) {
173
- if (msg.type === EVENT_SYSTEM && KEY_SUBTYPE in msg && msg.subtype === SYSTEM_INIT) {
361
+ // Send initial message to trigger initialization
362
+ this.inputController.push('.');
363
+ // Use manual .next() to avoid closing the generator via for-await's return().
364
+ await readUntilResult(this.activeQuery, (msg) => {
365
+ if (msg.type === EVENT_SYSTEM && KEY_SUBTYPE in msg && msg[KEY_SUBTYPE] === SYSTEM_INIT) {
174
366
  const sysMsg = msg;
175
367
  this.emit(INIT_EVENT_STAGE, INIT_CONNECTING, `Connected: model=${sysMsg[KEY_MODEL]}, tools=${sysMsg[KEY_TOOLS]?.length ?? 0}`);
176
368
  }
177
- if (msg.type === EVENT_RESULT) {
178
- break;
179
- }
180
- }
369
+ return msg.type === EVENT_RESULT;
370
+ });
181
371
  // Stage 4: Ready
182
372
  this._ready = true;
183
373
  this.emit(INIT_EVENT_STAGE, INIT_READY, 'Session is warm and ready');
@@ -194,6 +384,17 @@ export class SdkExecutor extends EventEmitter {
194
384
  await this.init();
195
385
  }
196
386
  }
387
+ ensureQuery() {
388
+ if (!this.activeQuery) {
389
+ throw new CliExecutionError('No active SDK query. Call init() first.', 1, '');
390
+ }
391
+ }
392
+ sendMessage(prompt) {
393
+ if (!this.inputController) {
394
+ throw new CliExecutionError('No active input controller. Call init() first.', 1, '');
395
+ }
396
+ this.inputController.push(prompt);
397
+ }
197
398
  /**
198
399
  * Map an SDK message to our StreamEvent type.
199
400
  */
@@ -233,11 +434,81 @@ export class SdkExecutor extends EventEmitter {
233
434
  durationMs: typeof result[KEY_DURATION] === 'number' ? result[KEY_DURATION] : 0,
234
435
  };
235
436
  }
437
+ // Task lifecycle events
438
+ case EVENT_SYSTEM: {
439
+ const sysMsg = msg;
440
+ const subtype = sysMsg[KEY_SUBTYPE];
441
+ if (subtype === 'task_started') {
442
+ return {
443
+ type: EVENT_TASK_STARTED,
444
+ taskId: String(sysMsg['task_id'] ?? ''),
445
+ toolUseId: sysMsg['tool_use_id'],
446
+ description: String(sysMsg['description'] ?? ''),
447
+ taskType: sysMsg['task_type'],
448
+ prompt: sysMsg['prompt'],
449
+ };
450
+ }
451
+ if (subtype === 'task_progress') {
452
+ const taskUsage = sysMsg['usage'];
453
+ return {
454
+ type: EVENT_TASK_PROGRESS,
455
+ taskId: String(sysMsg['task_id'] ?? ''),
456
+ toolUseId: sysMsg['tool_use_id'],
457
+ description: String(sysMsg['description'] ?? ''),
458
+ usage: {
459
+ totalTokens: typeof taskUsage?.['total_tokens'] === 'number' ? taskUsage['total_tokens'] : 0,
460
+ toolUses: typeof taskUsage?.['tool_uses'] === 'number' ? taskUsage['tool_uses'] : 0,
461
+ durationMs: typeof taskUsage?.['duration_ms'] === 'number' ? taskUsage['duration_ms'] : 0,
462
+ },
463
+ lastToolName: sysMsg['last_tool_name'],
464
+ summary: sysMsg['summary'],
465
+ };
466
+ }
467
+ if (subtype === 'task_notification') {
468
+ const taskUsage = sysMsg['usage'];
469
+ return {
470
+ type: EVENT_TASK_NOTIFICATION,
471
+ taskId: String(sysMsg['task_id'] ?? ''),
472
+ toolUseId: sysMsg['tool_use_id'],
473
+ status: sysMsg['status'],
474
+ outputFile: String(sysMsg['output_file'] ?? ''),
475
+ summary: String(sysMsg['summary'] ?? ''),
476
+ usage: taskUsage ? {
477
+ totalTokens: typeof taskUsage['total_tokens'] === 'number' ? taskUsage['total_tokens'] : 0,
478
+ toolUses: typeof taskUsage['tool_uses'] === 'number' ? taskUsage['tool_uses'] : 0,
479
+ durationMs: typeof taskUsage['duration_ms'] === 'number' ? taskUsage['duration_ms'] : 0,
480
+ } : undefined,
481
+ };
482
+ }
483
+ // Generic system event
484
+ return {
485
+ type: EVENT_SYSTEM,
486
+ subtype: subtype ?? 'unknown',
487
+ data: sysMsg,
488
+ };
489
+ }
236
490
  default:
237
491
  return null;
238
492
  }
239
493
  }
240
494
  }
495
+ /**
496
+ * Read messages from an async generator using manual .next() calls.
497
+ * This avoids for-await's implicit .return() call on break, which would
498
+ * close the generator and prevent reuse for subsequent queries.
499
+ *
500
+ * @param gen - The async generator to read from.
501
+ * @param onMessage - Callback for each message. Return true to stop reading.
502
+ */
503
+ async function readUntilResult(gen, onMessage) {
504
+ while (true) {
505
+ const { value, done } = await gen.next();
506
+ if (done)
507
+ break;
508
+ if (onMessage(value))
509
+ break;
510
+ }
511
+ }
241
512
  /**
242
513
  * Extract the prompt string from a CLI args array.
243
514
  * In our args format, the prompt is the first positional argument
@@ -268,4 +539,67 @@ function extractPrompt(args) {
268
539
  }
269
540
  return '';
270
541
  }
542
+ /**
543
+ * Controllable async iterable for sending user messages to the V1 query API.
544
+ * Allows pushing messages that are consumed by `query.streamInput()`.
545
+ */
546
+ class InputController {
547
+ queue = [];
548
+ resolve = null;
549
+ closed = false;
550
+ /** Push a user message to be consumed by the query. */
551
+ push(message) {
552
+ const userMsg = {
553
+ type: 'user',
554
+ message: { role: 'user', content: message },
555
+ parent_tool_use_id: null,
556
+ session_id: '',
557
+ };
558
+ if (this.resolve) {
559
+ const r = this.resolve;
560
+ this.resolve = null;
561
+ r({ value: userMsg, done: false });
562
+ }
563
+ else {
564
+ this.queue.push(message);
565
+ }
566
+ }
567
+ /** Close the input stream. */
568
+ close() {
569
+ this.closed = true;
570
+ if (this.resolve) {
571
+ const r = this.resolve;
572
+ this.resolve = null;
573
+ r({ value: undefined, done: true });
574
+ }
575
+ }
576
+ /** AsyncIterable for the query's prompt parameter. */
577
+ get iterable() {
578
+ const self = this;
579
+ return {
580
+ [Symbol.asyncIterator]() {
581
+ return {
582
+ next() {
583
+ if (self.queue.length > 0) {
584
+ const message = self.queue.shift();
585
+ const userMsg = {
586
+ type: 'user',
587
+ message: { role: 'user', content: message },
588
+ parent_tool_use_id: null,
589
+ session_id: '',
590
+ };
591
+ return Promise.resolve({ value: userMsg, done: false });
592
+ }
593
+ if (self.closed) {
594
+ return Promise.resolve({ value: undefined, done: true });
595
+ }
596
+ return new Promise((resolve) => {
597
+ self.resolve = resolve;
598
+ });
599
+ },
600
+ };
601
+ },
602
+ };
603
+ }
604
+ }
271
605
  //# sourceMappingURL=sdk-executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-executor.js","sourceRoot":"","sources":["../../src/executor/sdk-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-executor.js","sourceRoot":"","sources":["../../src/executor/sdk-executor.ts"],"names":[],"mappings":"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"}