@chucky.cloud/sdk 0.2.0 → 0.2.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,32 +2,29 @@
2
2
  * Session
3
3
  *
4
4
  * Represents a conversation session with the Chucky sandbox.
5
- * Supports multi-turn conversations, tool execution, and streaming.
5
+ * Matches the official Claude Agent SDK V2 interface.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const session = createSession({ token, model: 'claude-sonnet-4-5-20250929' });
10
+ *
11
+ * await session.send('Hello!');
12
+ * for await (const msg of session.stream()) {
13
+ * if (msg.type === 'assistant') {
14
+ * console.log(getAssistantText(msg));
15
+ * }
16
+ * }
17
+ * ```
6
18
  */
7
19
  import type { SessionOptions } from '../types/options.js';
8
- import type { SessionResult, SessionInfo, SessionState, Message } from '../types/results.js';
9
- import type { ToolResult, ToolCall } from '../types/tools.js';
20
+ import type { SessionInfo } from '../types/results.js';
21
+ import type { SDKMessage } from '../types/messages.js';
10
22
  import type { Transport } from '../transport/Transport.js';
11
- import type { StreamingEvent } from './ChuckyClient.js';
12
23
  /**
13
24
  * Session event handlers
14
25
  */
15
26
  export interface SessionEventHandlers {
16
- /** Called when session info is received */
17
27
  onSessionInfo?: (info: SessionInfo) => void;
18
- /** Called when a message is received */
19
- onMessage?: (message: Message) => void;
20
- /** Called when streaming text is received */
21
- onText?: (text: string) => void;
22
- /** Called when a tool is being used */
23
- onToolUse?: (toolCall: ToolCall) => void;
24
- /** Called when a tool result is returned */
25
- onToolResult?: (callId: string, result: ToolResult) => void;
26
- /** Called when thinking is received */
27
- onThinking?: (thinking: string) => void;
28
- /** Called when session completes */
29
- onComplete?: (result: SessionResult) => void;
30
- /** Called when an error occurs */
31
28
  onError?: (error: Error) => void;
32
29
  }
33
30
  /**
@@ -35,30 +32,26 @@ export interface SessionEventHandlers {
35
32
  */
36
33
  interface SessionConfig {
37
34
  debug?: boolean;
38
- oneShot?: boolean;
39
35
  }
40
36
  /**
41
- * Session class for managing conversations
37
+ * Session class - matches official V2 SDK interface
42
38
  *
43
- * @example
39
+ * Usage:
44
40
  * ```typescript
45
- * const session = await client.createSession({
46
- * model: 'claude-sonnet-4-5-20250929',
47
- * });
41
+ * const session = createSession({ token, model: 'claude-sonnet-4-5-20250929' });
48
42
  *
49
- * // Simple send
50
- * const result = await session.send('Hello!');
43
+ * // Multi-turn conversation
44
+ * await session.send('What is 5 + 3?');
45
+ * for await (const msg of session.stream()) {
46
+ * if (msg.type === 'result') console.log(msg.result);
47
+ * }
51
48
  *
52
- * // Streaming
53
- * for await (const event of session.sendStream('Tell me a story')) {
54
- * if (event.type === 'text') {
55
- * process.stdout.write(event.text);
56
- * }
49
+ * await session.send('Multiply that by 2');
50
+ * for await (const msg of session.stream()) {
51
+ * if (msg.type === 'result') console.log(msg.result);
57
52
  * }
58
53
  *
59
- * // Multi-turn
60
- * await session.send('What is the capital of France?');
61
- * await session.send('What about Germany?');
54
+ * session.close();
62
55
  * ```
63
56
  */
64
57
  export declare class Session {
@@ -68,47 +61,75 @@ export declare class Session {
68
61
  private eventHandlers;
69
62
  private toolHandlers;
70
63
  private messageBuffer;
71
- private currentResult;
72
64
  private _state;
73
65
  private _sessionId;
74
66
  private messageResolvers;
67
+ private connected;
68
+ private connectPromise;
75
69
  constructor(transport: Transport, options: SessionOptions, config?: SessionConfig);
76
- /**
77
- * Get the current session state
78
- */
79
- get state(): SessionState;
80
70
  /**
81
71
  * Get the session ID
82
72
  */
83
- get sessionId(): string | null;
73
+ get sessionId(): string;
84
74
  /**
85
75
  * Set event handlers
86
76
  */
87
77
  on(handlers: SessionEventHandlers): this;
88
78
  /**
89
- * Connect and initialize the session
90
- */
91
- connect(): Promise<void>;
92
- /**
93
- * Send a message and wait for complete response
94
- */
95
- send(message: string): Promise<SessionResult>;
79
+ * Connect and initialize the session (called automatically on first send)
80
+ */
81
+ private ensureConnected;
82
+ private connect;
83
+ /**
84
+ * Send a message to the session
85
+ *
86
+ * Matches V2 SDK: send() returns Promise<void>
87
+ * Use stream() to get the response.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * await session.send('Hello!');
92
+ * for await (const msg of session.stream()) {
93
+ * // Handle messages
94
+ * }
95
+ * ```
96
+ */
97
+ send(message: string): Promise<void>;
98
+ /**
99
+ * Stream the response after sending a message
100
+ *
101
+ * Matches V2 SDK: Returns AsyncGenerator<SDKMessage>
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * await session.send('Hello!');
106
+ * for await (const msg of session.stream()) {
107
+ * if (msg.type === 'assistant') {
108
+ * const text = msg.message.content
109
+ * .filter(b => b.type === 'text')
110
+ * .map(b => b.text)
111
+ * .join('');
112
+ * console.log(text);
113
+ * }
114
+ * if (msg.type === 'result') {
115
+ * console.log('Done:', msg.result);
116
+ * }
117
+ * }
118
+ * ```
119
+ */
120
+ stream(): AsyncGenerator<SDKMessage, void, unknown>;
121
+ /**
122
+ * Receive messages (alias for stream for V2 compatibility)
123
+ */
124
+ receive(): AsyncGenerator<SDKMessage, void, unknown>;
96
125
  /**
97
- * Send a message with streaming
98
- */
99
- sendStream(message: string): AsyncGenerator<StreamingEvent, void, unknown>;
100
- /**
101
- * Execute a one-shot prompt
102
- */
103
- prompt(message: string): Promise<SessionResult>;
104
- /**
105
- * Get the current/last result
126
+ * Close the session
106
127
  */
107
- getResult(): SessionResult | null;
128
+ close(): void;
108
129
  /**
109
- * Close the session
130
+ * Support for `await using` (TypeScript 5.2+)
110
131
  */
111
- close(): Promise<void>;
132
+ [Symbol.asyncDispose](): Promise<void>;
112
133
  /**
113
134
  * Build init payload from options
114
135
  */
@@ -121,10 +142,6 @@ export declare class Session {
121
142
  * Wait for session to be ready
122
143
  */
123
144
  private waitForReady;
124
- /**
125
- * Wait for result
126
- */
127
- private waitForResult;
128
145
  /**
129
146
  * Wait for next message
130
147
  */
@@ -133,14 +150,18 @@ export declare class Session {
133
150
  * Handle a tool call
134
151
  */
135
152
  private handleToolCall;
136
- /**
137
- * Convert message to streaming events
138
- */
139
- private messageToStreamingEvents;
140
153
  /**
141
154
  * Log debug messages
142
155
  */
143
156
  private log;
144
157
  }
158
+ /**
159
+ * Extract text from an assistant message
160
+ */
161
+ export declare function getAssistantText(msg: SDKMessage): string | null;
162
+ /**
163
+ * Extract result from a result message
164
+ */
165
+ export declare function getResultText(msg: SDKMessage): string | null;
145
166
  export {};
146
167
  //# sourceMappingURL=Session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/client/Session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/client/Session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAgB,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAGV,UAAU,EAIX,MAAM,sBAAsB,CAAC;AAc9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAaD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,YAAY,CAAqD;IACzE,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAiD;IACzE,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,cAAc,CAA8B;gBAExC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,GAAE,aAAkB;IA2BrF;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,EAAE,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAKxC;;OAEG;YACW,eAAe;YAWf,OAAO;IAcrB;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc1C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,MAAM,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC;IA+B1D;;OAEG;IACH,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC;IAIpD;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACG,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8BxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAqCrB;;OAEG;YACW,YAAY;IA0C1B;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;YACW,cAAc;IAsB5B;;OAEG;IACH,OAAO,CAAC,GAAG;CAKZ;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAO5D"}