@scottwalker/claude-connector 0.2.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.
Files changed (59) hide show
  1. package/README.md +249 -21
  2. package/dist/builder/args-builder.d.ts +2 -1
  3. package/dist/builder/args-builder.d.ts.map +1 -1
  4. package/dist/builder/args-builder.js +38 -31
  5. package/dist/builder/args-builder.js.map +1 -1
  6. package/dist/client/chat-handle.d.ts +115 -0
  7. package/dist/client/chat-handle.d.ts.map +1 -0
  8. package/dist/client/chat-handle.js +246 -0
  9. package/dist/client/chat-handle.js.map +1 -0
  10. package/dist/client/claude.d.ts +96 -55
  11. package/dist/client/claude.d.ts.map +1 -1
  12. package/dist/client/claude.js +192 -46
  13. package/dist/client/claude.js.map +1 -1
  14. package/dist/client/session.d.ts +4 -2
  15. package/dist/client/session.d.ts.map +1 -1
  16. package/dist/client/session.js +19 -12
  17. package/dist/client/session.js.map +1 -1
  18. package/dist/client/stream-handle.d.ts +99 -0
  19. package/dist/client/stream-handle.d.ts.map +1 -0
  20. package/dist/client/stream-handle.js +173 -0
  21. package/dist/client/stream-handle.js.map +1 -0
  22. package/dist/constants.d.ts +119 -0
  23. package/dist/constants.d.ts.map +1 -0
  24. package/dist/constants.js +164 -0
  25. package/dist/constants.js.map +1 -0
  26. package/dist/errors/errors.d.ts.map +1 -1
  27. package/dist/errors/errors.js +7 -6
  28. package/dist/errors/errors.js.map +1 -1
  29. package/dist/executor/cli-executor.d.ts.map +1 -1
  30. package/dist/executor/cli-executor.js +34 -11
  31. package/dist/executor/cli-executor.js.map +1 -1
  32. package/dist/executor/interface.d.ts +5 -0
  33. package/dist/executor/interface.d.ts.map +1 -1
  34. package/dist/executor/sdk-executor.d.ts +143 -26
  35. package/dist/executor/sdk-executor.d.ts.map +1 -1
  36. package/dist/executor/sdk-executor.js +417 -88
  37. package/dist/executor/sdk-executor.js.map +1 -1
  38. package/dist/index.d.ts +74 -5
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +82 -4
  41. package/dist/index.js.map +1 -1
  42. package/dist/parser/json-parser.d.ts.map +1 -1
  43. package/dist/parser/json-parser.js +20 -19
  44. package/dist/parser/json-parser.js.map +1 -1
  45. package/dist/parser/stream-parser.d.ts.map +1 -1
  46. package/dist/parser/stream-parser.js +26 -25
  47. package/dist/parser/stream-parser.js.map +1 -1
  48. package/dist/scheduler/scheduler.js +6 -11
  49. package/dist/scheduler/scheduler.js.map +1 -1
  50. package/dist/types/client.d.ts +343 -3
  51. package/dist/types/client.d.ts.map +1 -1
  52. package/dist/types/index.d.ts +2 -2
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/result.d.ts +116 -1
  55. package/dist/types/result.d.ts.map +1 -1
  56. package/dist/utils/validation.d.ts.map +1 -1
  57. package/dist/utils/validation.js +5 -6
  58. package/dist/utils/validation.js.map +1 -1
  59. package/package.json +7 -2
@@ -2,46 +2,39 @@ import { CliExecutor } from '../executor/cli-executor.js';
2
2
  import { SdkExecutor } from '../executor/sdk-executor.js';
3
3
  import { buildArgs, mergeOptions, resolveEnv } from '../builder/args-builder.js';
4
4
  import { validateClientOptions, validateQueryOptions, validatePrompt } from '../utils/validation.js';
5
+ import { FORMAT_JSON, FORMAT_STREAM_JSON, DEFAULT_EXECUTABLE, } from '../constants.js';
5
6
  import { Session } from './session.js';
7
+ import { StreamHandle } from './stream-handle.js';
8
+ import { ChatHandle } from './chat-handle.js';
6
9
  import { Scheduler } from '../scheduler/scheduler.js';
7
10
  /**
8
11
  * Main entry point for claude-connector.
9
12
  *
10
- * `Claude` is a **facade** that orchestrates the executor, argument builder,
11
- * and parsers behind a clean, minimal API.
12
- *
13
- * ## Execution modes
14
- *
15
- * - **CLI mode** (default): each query spawns a new `claude -p` process.
16
- * Simple, no warm-up needed, but slower for interactive use.
17
- *
18
- * - **SDK mode** (`useSdk: true`): creates a persistent session via the
19
- * Claude Agent SDK. First query requires warm-up (~5-10s), but subsequent
20
- * queries are near-instant. Best for interactive and high-throughput use.
21
- *
22
13
  * @example
23
14
  * ```ts
24
- * // CLI mode (default)
25
15
  * const claude = new Claude({ model: 'sonnet' })
16
+ * const result = await claude.query('Fix bugs')
26
17
  *
27
- * // SDK mode (persistent session, fast queries)
28
- * const claude = new Claude({ useSdk: true, model: 'sonnet' })
29
- * claude.on('init:stage', (stage, msg) => console.log(`[${stage}] ${msg}`))
30
- * await claude.init() // warm up once
31
- * const result = await claude.query('Fix bugs') // fast!
18
+ * // Streaming with fluent API
19
+ * await claude.stream('Explain auth.ts')
20
+ * .on('text', (t) => process.stdout.write(t))
21
+ * .done()
22
+ *
23
+ * // Bidirectional chat
24
+ * const chat = claude.chat()
25
+ * await chat.send('What files are in src?')
26
+ * await chat.send('Fix the largest one')
27
+ * chat.end()
32
28
  * ```
33
29
  */
34
30
  export class Claude {
35
- /** Frozen client-level options. */
36
31
  options;
37
- /** Executor responsible for running CLI commands. */
38
32
  executor;
39
- /** SdkExecutor reference (only when useSdk: true) for lifecycle control. */
40
33
  sdkExecutor = null;
41
34
  constructor(options = {}, executor) {
42
35
  validateClientOptions(options);
43
36
  this.options = Object.freeze({ ...options });
44
- const useSdk = options.useSdk !== false; // default: true
37
+ const useSdk = options.useSdk !== false;
45
38
  if (executor) {
46
39
  this.executor = executor;
47
40
  }
@@ -49,6 +42,7 @@ export class Claude {
49
42
  const sdkOpts = {
50
43
  model: options.model,
51
44
  pathToClaudeCodeExecutable: options.executable,
45
+ cwd: options.cwd,
52
46
  permissionMode: options.permissionMode,
53
47
  allowedTools: options.allowedTools ? [...options.allowedTools] : undefined,
54
48
  disallowedTools: options.disallowedTools ? [...options.disallowedTools] : undefined,
@@ -56,6 +50,35 @@ export class Claude {
56
50
  systemPrompt: options.systemPrompt,
57
51
  appendSystemPrompt: options.appendSystemPrompt,
58
52
  maxTurns: options.maxTurns,
53
+ maxBudget: options.maxBudget,
54
+ effortLevel: options.effortLevel,
55
+ fallbackModel: options.fallbackModel,
56
+ // New SDK-level options
57
+ canUseTool: options.canUseTool,
58
+ thinking: options.thinking,
59
+ enableFileCheckpointing: options.enableFileCheckpointing,
60
+ onElicitation: options.onElicitation,
61
+ hookCallbacks: options.hookCallbacks,
62
+ mcpServers: options.mcpServers,
63
+ agents: options.agents,
64
+ agent: options.agent,
65
+ tools: options.tools ? [...options.tools] : undefined,
66
+ additionalDirs: options.additionalDirs ? [...options.additionalDirs] : undefined,
67
+ noSessionPersistence: options.noSessionPersistence,
68
+ strictMcpConfig: options.strictMcpConfig,
69
+ betas: options.betas ? [...options.betas] : undefined,
70
+ includePartialMessages: options.includePartialMessages,
71
+ promptSuggestions: options.promptSuggestions,
72
+ agentProgressSummaries: options.agentProgressSummaries,
73
+ debug: options.debug,
74
+ debugFile: options.debugFile,
75
+ // New passthrough options
76
+ stderr: options.stderr,
77
+ allowDangerouslySkipPermissions: options.allowDangerouslySkipPermissions,
78
+ settingSources: options.settingSources,
79
+ settings: options.settings,
80
+ plugins: options.plugins,
81
+ spawnClaudeCodeProcess: options.spawnClaudeCodeProcess,
59
82
  };
60
83
  this.sdkExecutor = new SdkExecutor(sdkOpts);
61
84
  this.executor = this.sdkExecutor;
@@ -66,21 +89,7 @@ export class Claude {
66
89
  }
67
90
  /**
68
91
  * Initialize the SDK session (warm up).
69
- *
70
92
  * Only needed when `useSdk: true`. In CLI mode this is a no-op.
71
- *
72
- * Subscribe to initialization events before calling:
73
- * ```ts
74
- * claude.on('init:stage', (stage, message) => {
75
- * console.log(`[${stage}] ${message}`)
76
- * })
77
- * claude.on('init:ready', () => console.log('Ready!'))
78
- * claude.on('init:error', (err) => console.error(err))
79
- *
80
- * await claude.init()
81
- * ```
82
- *
83
- * Safe to call multiple times — only initializes once.
84
93
  */
85
94
  async init() {
86
95
  if (this.sdkExecutor) {
@@ -101,8 +110,6 @@ export class Claude {
101
110
  }
102
111
  /**
103
112
  * Execute a one-shot query and return the complete result.
104
- *
105
- * In SDK mode, auto-initializes if `init()` hasn't been called yet.
106
113
  */
107
114
  async query(prompt, options) {
108
115
  validatePrompt(prompt);
@@ -110,7 +117,7 @@ export class Claude {
110
117
  validateQueryOptions(options);
111
118
  const resolved = mergeOptions(this.options, options, {
112
119
  prompt,
113
- outputFormat: 'json',
120
+ outputFormat: FORMAT_JSON,
114
121
  });
115
122
  const args = buildArgs(resolved);
116
123
  const env = resolveEnv(this.options, options);
@@ -119,29 +126,56 @@ export class Claude {
119
126
  env,
120
127
  input: options?.input,
121
128
  systemPrompt: resolved.systemPrompt,
129
+ signal: options?.signal,
122
130
  });
123
131
  }
124
132
  /**
125
133
  * Execute a query with streaming response.
126
- *
127
- * Returns an async iterable that yields events as they arrive.
128
- * The final event is always `type: 'result'` or `type: 'error'`.
134
+ * Returns a {@link StreamHandle} with fluent callbacks, Node.js stream support,
135
+ * and backward-compatible async iteration.
129
136
  */
130
- async *stream(prompt, options) {
137
+ stream(prompt, options) {
131
138
  validatePrompt(prompt);
132
139
  if (options)
133
140
  validateQueryOptions(options);
134
141
  const resolved = mergeOptions(this.options, options, {
135
142
  prompt,
136
- outputFormat: 'stream-json',
143
+ outputFormat: FORMAT_STREAM_JSON,
137
144
  });
138
145
  const args = buildArgs(resolved);
139
146
  const env = resolveEnv(this.options, options);
140
- yield* this.executor.stream(args, {
147
+ const executor = this.executor;
148
+ const execOpts = {
141
149
  cwd: resolved.cwd,
142
150
  env,
143
151
  input: options?.input,
144
152
  systemPrompt: resolved.systemPrompt,
153
+ signal: options?.signal,
154
+ };
155
+ return new StreamHandle(() => executor.stream(args, execOpts));
156
+ }
157
+ /**
158
+ * Open a bidirectional chat — a persistent CLI process for real-time conversation.
159
+ * Uses `--input-format stream-json` for multi-turn dialogue over a single process.
160
+ */
161
+ chat(options) {
162
+ if (options)
163
+ validateQueryOptions(options);
164
+ const resolved = mergeOptions(this.options, options, {
165
+ prompt: undefined,
166
+ outputFormat: FORMAT_STREAM_JSON,
167
+ });
168
+ // Override: chat mode uses bidirectional stream-json
169
+ const args = buildArgs({
170
+ ...resolved,
171
+ prompt: undefined,
172
+ inputFormat: FORMAT_STREAM_JSON,
173
+ });
174
+ const env = resolveEnv(this.options, options);
175
+ const executable = this.options.executable ?? DEFAULT_EXECUTABLE;
176
+ return new ChatHandle(executable, args, {
177
+ cwd: resolved.cwd,
178
+ env: { ...process.env, ...env },
145
179
  });
146
180
  }
147
181
  /**
@@ -171,7 +205,6 @@ export class Claude {
171
205
  }
172
206
  /**
173
207
  * Close the SDK session and free resources.
174
- * Only needed when `useSdk: true`. In CLI mode this is a no-op.
175
208
  */
176
209
  close() {
177
210
  if (this.sdkExecutor) {
@@ -184,5 +217,118 @@ export class Claude {
184
217
  getExecutor() {
185
218
  return this.executor;
186
219
  }
220
+ // ── SDK Control Methods ─────────────────────────────────────────
221
+ // These methods delegate to the underlying SdkExecutor.
222
+ // In CLI mode they throw an error.
223
+ /**
224
+ * Change the model for subsequent responses.
225
+ * SDK mode only — throws in CLI mode.
226
+ */
227
+ async setModel(model) {
228
+ this.requireSdk('setModel');
229
+ await this.sdkExecutor.setModel(model);
230
+ }
231
+ /**
232
+ * Change the permission mode for the session.
233
+ * SDK mode only — throws in CLI mode.
234
+ */
235
+ async setPermissionMode(mode) {
236
+ this.requireSdk('setPermissionMode');
237
+ await this.sdkExecutor.setPermissionMode(mode);
238
+ }
239
+ /**
240
+ * Rewind files to their state at a specific user message.
241
+ * Requires `enableFileCheckpointing: true`.
242
+ * SDK mode only — throws in CLI mode.
243
+ */
244
+ async rewindFiles(userMessageId, options) {
245
+ this.requireSdk('rewindFiles');
246
+ return this.sdkExecutor.rewindFiles(userMessageId, options);
247
+ }
248
+ /**
249
+ * Stop a running subagent task.
250
+ * SDK mode only — throws in CLI mode.
251
+ */
252
+ async stopTask(taskId) {
253
+ this.requireSdk('stopTask');
254
+ await this.sdkExecutor.stopTask(taskId);
255
+ }
256
+ /**
257
+ * Dynamically set MCP servers for this session.
258
+ * SDK mode only — throws in CLI mode.
259
+ */
260
+ async setMcpServers(servers) {
261
+ this.requireSdk('setMcpServers');
262
+ return this.sdkExecutor.setMcpServers(servers);
263
+ }
264
+ /**
265
+ * Reconnect a disconnected MCP server.
266
+ * SDK mode only — throws in CLI mode.
267
+ */
268
+ async reconnectMcpServer(serverName) {
269
+ this.requireSdk('reconnectMcpServer');
270
+ await this.sdkExecutor.reconnectMcpServer(serverName);
271
+ }
272
+ /**
273
+ * Enable or disable an MCP server.
274
+ * SDK mode only — throws in CLI mode.
275
+ */
276
+ async toggleMcpServer(serverName, enabled) {
277
+ this.requireSdk('toggleMcpServer');
278
+ await this.sdkExecutor.toggleMcpServer(serverName, enabled);
279
+ }
280
+ /**
281
+ * Get account information (email, org, subscription).
282
+ * SDK mode only — throws in CLI mode.
283
+ */
284
+ async accountInfo() {
285
+ this.requireSdk('accountInfo');
286
+ return this.sdkExecutor.accountInfo();
287
+ }
288
+ /**
289
+ * Get available models with their capabilities.
290
+ * SDK mode only — throws in CLI mode.
291
+ */
292
+ async supportedModels() {
293
+ this.requireSdk('supportedModels');
294
+ return this.sdkExecutor.supportedModels();
295
+ }
296
+ /**
297
+ * Get available slash commands.
298
+ * SDK mode only — throws in CLI mode.
299
+ */
300
+ async supportedCommands() {
301
+ this.requireSdk('supportedCommands');
302
+ return this.sdkExecutor.supportedCommands();
303
+ }
304
+ /**
305
+ * Get available subagents.
306
+ * SDK mode only — throws in CLI mode.
307
+ */
308
+ async supportedAgents() {
309
+ this.requireSdk('supportedAgents');
310
+ return this.sdkExecutor.supportedAgents();
311
+ }
312
+ /**
313
+ * Get MCP server connection statuses.
314
+ * SDK mode only — throws in CLI mode.
315
+ */
316
+ async mcpServerStatus() {
317
+ this.requireSdk('mcpServerStatus');
318
+ return this.sdkExecutor.mcpServerStatus();
319
+ }
320
+ /**
321
+ * Interrupt the current query execution.
322
+ * SDK mode only — throws in CLI mode.
323
+ */
324
+ async interrupt() {
325
+ this.requireSdk('interrupt');
326
+ await this.sdkExecutor.interrupt();
327
+ }
328
+ requireSdk(method) {
329
+ if (!this.sdkExecutor) {
330
+ throw new Error(`${method}() is only available in SDK mode. Set useSdk: true (default) to use this method.`);
331
+ }
332
+ }
187
333
  }
188
334
  //# sourceMappingURL=claude.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/client/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/client/claude.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import type { ClientOptions, QueryOptions, QueryResult, StreamEvent } from '../types/index.js';
1
+ import type { ClientOptions, QueryOptions, QueryResult } from '../types/index.js';
2
2
  import type { SessionOptions } from '../types/session.js';
3
3
  import type { IExecutor } from '../executor/interface.js';
4
+ import { StreamHandle } from './stream-handle.js';
4
5
  /**
5
6
  * A stateful conversation session.
6
7
  *
@@ -52,8 +53,9 @@ export declare class Session {
52
53
  query(prompt: string, options?: QueryOptions): Promise<QueryResult>;
53
54
  /**
54
55
  * Send a query with streaming response within this session.
56
+ * Returns a {@link StreamHandle} with fluent callbacks and Node.js stream support.
55
57
  */
56
- stream(prompt: string, options?: QueryOptions): AsyncIterable<StreamEvent>;
58
+ stream(prompt: string, options?: QueryOptions): StreamHandle;
57
59
  /**
58
60
  * Abort the current running query in this session.
59
61
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/client/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,6DAA6D;IAC7D,OAAO,CAAC,UAAU,CAAgB;IAElC,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAAK;gBAGtB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,QAAQ,EAAE,SAAS,EACnB,cAAc,GAAE,cAAmB;IAQrC,iEAAiE;IACjE,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,yCAAyC;IACzC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBzE;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,WAAW,CAAC;IAyBjF;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;CAM3B"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/client/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAe,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,6DAA6D;IAC7D,OAAO,CAAC,UAAU,CAAgB;IAElC,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAAK;gBAGtB,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,EACtC,QAAQ,EAAE,SAAS,EACnB,cAAc,GAAE,cAAmB;IAQrC,iEAAiE;IACjE,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,yCAAyC;IACzC,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAsBzE;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,YAAY;IA8B5D;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;CAM3B"}
@@ -1,5 +1,7 @@
1
1
  import { buildArgs, mergeOptions, resolveEnv } from '../builder/args-builder.js';
2
2
  import { validateQueryOptions, validatePrompt } from '../utils/validation.js';
3
+ import { FORMAT_JSON, FORMAT_STREAM_JSON, EVENT_RESULT } from '../constants.js';
4
+ import { StreamHandle } from './stream-handle.js';
3
5
  /**
4
6
  * A stateful conversation session.
5
7
  *
@@ -61,11 +63,11 @@ export class Session {
61
63
  validatePrompt(prompt);
62
64
  if (options)
63
65
  validateQueryOptions(options);
64
- const args = this.buildSessionArgs(prompt, 'json', options);
66
+ const args = this.buildSessionArgs(prompt, FORMAT_JSON, options);
65
67
  const env = resolveEnv(this.clientOptions, options);
66
68
  const resolved = mergeOptions(this.clientOptions, options, {
67
69
  prompt,
68
- outputFormat: 'json',
70
+ outputFormat: FORMAT_JSON,
69
71
  });
70
72
  const result = await this.executor.execute(args, {
71
73
  cwd: resolved.cwd,
@@ -78,29 +80,34 @@ export class Session {
78
80
  }
79
81
  /**
80
82
  * Send a query with streaming response within this session.
83
+ * Returns a {@link StreamHandle} with fluent callbacks and Node.js stream support.
81
84
  */
82
- async *stream(prompt, options) {
85
+ stream(prompt, options) {
83
86
  validatePrompt(prompt);
84
87
  if (options)
85
88
  validateQueryOptions(options);
86
- const args = this.buildSessionArgs(prompt, 'stream-json', options);
89
+ const args = this.buildSessionArgs(prompt, FORMAT_STREAM_JSON, options);
87
90
  const env = resolveEnv(this.clientOptions, options);
88
91
  const resolved = mergeOptions(this.clientOptions, options, {
89
92
  prompt,
90
- outputFormat: 'stream-json',
93
+ outputFormat: FORMAT_STREAM_JSON,
91
94
  });
92
- for await (const event of this.executor.stream(args, {
95
+ const executor = this.executor;
96
+ const updateState = (id) => this.updateSessionState(id);
97
+ const execOpts = {
93
98
  cwd: resolved.cwd,
94
99
  env,
95
100
  input: options?.input,
96
101
  systemPrompt: resolved.systemPrompt,
97
- })) {
98
- // Capture session ID from result events
99
- if (event.type === 'result' && event.sessionId) {
100
- this.updateSessionState(event.sessionId);
102
+ };
103
+ return new StreamHandle(async function* () {
104
+ for await (const event of executor.stream(args, execOpts)) {
105
+ if (event.type === EVENT_RESULT && event.sessionId) {
106
+ updateState(event.sessionId);
107
+ }
108
+ yield event;
101
109
  }
102
- yield event;
103
- }
110
+ });
104
111
  }
105
112
  /**
106
113
  * Abort the current running query in this session.
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/client/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/client/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ import { Readable } from 'node:stream';
2
+ import { EVENT_TEXT, EVENT_TOOL_USE, EVENT_RESULT, EVENT_ERROR, EVENT_SYSTEM, EVENT_TASK_STARTED, EVENT_TASK_PROGRESS, EVENT_TASK_NOTIFICATION } from '../constants.js';
3
+ import type { StreamEvent, StreamToolUseEvent, StreamResultEvent, StreamErrorEvent, StreamSystemEvent, StreamTaskStartedEvent, StreamTaskProgressEvent, StreamTaskNotificationEvent } from '../types/index.js';
4
+ type TextCallback = (text: string) => void;
5
+ type ToolUseCallback = (event: StreamToolUseEvent) => void;
6
+ type ResultCallback = (event: StreamResultEvent) => void;
7
+ type ErrorCallback = (event: StreamErrorEvent) => void;
8
+ type SystemCallback = (event: StreamSystemEvent) => void;
9
+ type TaskStartedCallback = (event: StreamTaskStartedEvent) => void;
10
+ type TaskProgressCallback = (event: StreamTaskProgressEvent) => void;
11
+ type TaskNotificationCallback = (event: StreamTaskNotificationEvent) => void;
12
+ /**
13
+ * A streaming response handle with fluent callback API and Node.js stream support.
14
+ *
15
+ * ## 1. Fluent callbacks
16
+ *
17
+ * ```ts
18
+ * await claude.stream('Refactor auth')
19
+ * .on('text', (text) => process.stdout.write(text))
20
+ * .on('tool_use', (event) => console.log(event.toolName))
21
+ * .on('task_started', (event) => console.log(`Task: ${event.description}`))
22
+ * .done()
23
+ * ```
24
+ *
25
+ * ## 2. Convenience methods
26
+ *
27
+ * ```ts
28
+ * const text = await claude.stream('Summarize').text()
29
+ * const result = await claude.stream('Explain').pipe(process.stdout)
30
+ * ```
31
+ *
32
+ * ## 3. Node.js Readable stream
33
+ *
34
+ * ```ts
35
+ * import { pipeline } from 'node:stream/promises'
36
+ * await pipeline(claude.stream('Generate').toReadable(), createGzip(), file)
37
+ * ```
38
+ *
39
+ * ## 4. Raw async iteration (backward compat)
40
+ *
41
+ * ```ts
42
+ * for await (const event of claude.stream('Analyze')) { ... }
43
+ * ```
44
+ */
45
+ export declare class StreamHandle implements AsyncIterable<StreamEvent> {
46
+ private readonly source;
47
+ private readonly textCallbacks;
48
+ private readonly toolUseCallbacks;
49
+ private readonly resultCallbacks;
50
+ private readonly errorCallbacks;
51
+ private readonly systemCallbacks;
52
+ private readonly taskStartedCallbacks;
53
+ private readonly taskProgressCallbacks;
54
+ private readonly taskNotificationCallbacks;
55
+ constructor(source: () => AsyncIterable<StreamEvent>);
56
+ /**
57
+ * Register a callback for a specific event type. Returns `this` for chaining.
58
+ *
59
+ * `text` callback receives just the string. All others receive the full event.
60
+ */
61
+ on(type: typeof EVENT_TEXT, callback: TextCallback): this;
62
+ on(type: typeof EVENT_TOOL_USE, callback: ToolUseCallback): this;
63
+ on(type: typeof EVENT_RESULT, callback: ResultCallback): this;
64
+ on(type: typeof EVENT_ERROR, callback: ErrorCallback): this;
65
+ on(type: typeof EVENT_SYSTEM, callback: SystemCallback): this;
66
+ on(type: typeof EVENT_TASK_STARTED, callback: TaskStartedCallback): this;
67
+ on(type: typeof EVENT_TASK_PROGRESS, callback: TaskProgressCallback): this;
68
+ on(type: typeof EVENT_TASK_NOTIFICATION, callback: TaskNotificationCallback): this;
69
+ /**
70
+ * Consume the stream, fire all registered callbacks, return the final result.
71
+ */
72
+ done(): Promise<StreamResultEvent>;
73
+ /**
74
+ * Collect all text chunks into a single string.
75
+ */
76
+ text(): Promise<string>;
77
+ /**
78
+ * Pipe text to a writable stream. Returns the final result.
79
+ *
80
+ * ```ts
81
+ * const result = await claude.stream('Explain').pipe(process.stdout)
82
+ * ```
83
+ */
84
+ pipe(writable: {
85
+ write(chunk: string): unknown;
86
+ }): Promise<StreamResultEvent>;
87
+ /**
88
+ * Get a Node.js Readable that emits text chunks.
89
+ * Use for `pipeline()`, standard `.pipe()` chaining, HTTP responses, etc.
90
+ */
91
+ toReadable(): Readable;
92
+ /**
93
+ * Async iteration — yields StreamEvent objects. Backward compatible with `for await`.
94
+ */
95
+ [Symbol.asyncIterator](): AsyncIterator<StreamEvent>;
96
+ private dispatch;
97
+ }
98
+ export {};
99
+ //# sourceMappingURL=stream-handle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-handle.d.ts","sourceRoot":"","sources":["../../src/client/stream-handle.ts"],"names":[],"mappings":"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"}