@anthropic-ai/sdk 0.21.1 → 0.22.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.
- package/CHANGELOG.md +18 -0
- package/README.md +1 -1
- package/index.d.mts +12 -2
- package/index.d.ts +12 -2
- package/index.d.ts.map +1 -1
- package/index.js +0 -2
- package/index.js.map +1 -1
- package/index.mjs +0 -2
- package/index.mjs.map +1 -1
- package/lib/MessageStream.d.ts +3 -2
- package/lib/MessageStream.d.ts.map +1 -1
- package/lib/MessageStream.js +25 -2
- package/lib/MessageStream.js.map +1 -1
- package/lib/MessageStream.mjs +25 -2
- package/lib/MessageStream.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/index.d.ts +1 -2
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +1 -3
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +0 -1
- package/resources/index.mjs.map +1 -1
- package/resources/messages.d.ts +205 -211
- package/resources/messages.d.ts.map +1 -1
- package/resources/messages.js.map +1 -1
- package/resources/messages.mjs.map +1 -1
- package/src/index.ts +12 -3
- package/src/lib/MessageStream.ts +31 -5
- package/src/resources/index.ts +12 -1
- package/src/resources/messages.ts +258 -245
- package/src/version.ts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/lib/ToolsBetaMessageStream.d.ts +0 -95
- package/lib/ToolsBetaMessageStream.d.ts.map +0 -1
- package/lib/ToolsBetaMessageStream.js +0 -459
- package/lib/ToolsBetaMessageStream.js.map +0 -1
- package/lib/ToolsBetaMessageStream.mjs +0 -455
- package/lib/ToolsBetaMessageStream.mjs.map +0 -1
- package/resources/beta/beta.d.ts +0 -9
- package/resources/beta/beta.d.ts.map +0 -1
- package/resources/beta/beta.js +0 -40
- package/resources/beta/beta.js.map +0 -1
- package/resources/beta/beta.mjs +0 -13
- package/resources/beta/beta.mjs.map +0 -1
- package/resources/beta/index.d.ts +0 -3
- package/resources/beta/index.d.ts.map +0 -1
- package/resources/beta/index.js +0 -9
- package/resources/beta/index.js.map +0 -1
- package/resources/beta/index.mjs +0 -4
- package/resources/beta/index.mjs.map +0 -1
- package/resources/beta/tools/index.d.ts +0 -3
- package/resources/beta/tools/index.d.ts.map +0 -1
- package/resources/beta/tools/index.js +0 -9
- package/resources/beta/tools/index.js.map +0 -1
- package/resources/beta/tools/index.mjs +0 -4
- package/resources/beta/tools/index.mjs.map +0 -1
- package/resources/beta/tools/messages.d.ts +0 -793
- package/resources/beta/tools/messages.d.ts.map +0 -1
- package/resources/beta/tools/messages.js +0 -29
- package/resources/beta/tools/messages.js.map +0 -1
- package/resources/beta/tools/messages.mjs +0 -24
- package/resources/beta/tools/messages.mjs.map +0 -1
- package/resources/beta/tools/tools.d.ts +0 -24
- package/resources/beta/tools/tools.d.ts.map +0 -1
- package/resources/beta/tools/tools.js +0 -40
- package/resources/beta/tools/tools.js.map +0 -1
- package/resources/beta/tools/tools.mjs +0 -13
- package/resources/beta/tools/tools.mjs.map +0 -1
- package/src/lib/ToolsBetaMessageStream.ts +0 -561
- package/src/resources/beta/beta.ts +0 -12
- package/src/resources/beta/index.ts +0 -4
- package/src/resources/beta/tools/index.ts +0 -21
- package/src/resources/beta/tools/messages.ts +0 -907
- package/src/resources/beta/tools/tools.ts +0 -27
package/src/lib/MessageStream.ts
CHANGED
|
@@ -7,15 +7,18 @@ import {
|
|
|
7
7
|
MessageStreamEvent,
|
|
8
8
|
MessageParam,
|
|
9
9
|
MessageCreateParams,
|
|
10
|
-
|
|
10
|
+
MessageCreateParamsBase,
|
|
11
11
|
} from "../resources/messages.js";
|
|
12
12
|
import { type ReadableStream } from "../_shims/index.js";
|
|
13
13
|
import { Stream } from "../streaming.js";
|
|
14
|
+
import { TextBlock } from "../resources.js";
|
|
15
|
+
import { partialParse } from "../_vendor/partial-json-parser/parser.js";
|
|
14
16
|
|
|
15
17
|
export interface MessageStreamEvents {
|
|
16
18
|
connect: () => void;
|
|
17
19
|
streamEvent: (event: MessageStreamEvent, snapshot: Message) => void;
|
|
18
20
|
text: (textDelta: string, textSnapshot: string) => void;
|
|
21
|
+
inputJson: (partialJson: string, jsonSnapshot: unknown) => void;
|
|
19
22
|
message: (message: Message) => void;
|
|
20
23
|
contentBlock: (content: ContentBlock) => void;
|
|
21
24
|
finalMessage: (message: Message) => void;
|
|
@@ -29,6 +32,8 @@ type MessageStreamEventListeners<Event extends keyof MessageStreamEvents> = {
|
|
|
29
32
|
once?: boolean;
|
|
30
33
|
}[];
|
|
31
34
|
|
|
35
|
+
const JSON_BUF_PROPERTY = '__json_buf';
|
|
36
|
+
|
|
32
37
|
export class MessageStream implements AsyncIterable<MessageStreamEvent> {
|
|
33
38
|
messages: MessageParam[] = [];
|
|
34
39
|
receivedMessages: Message[] = [];
|
|
@@ -85,7 +90,7 @@ export class MessageStream implements AsyncIterable<MessageStreamEvent> {
|
|
|
85
90
|
|
|
86
91
|
static createMessage(
|
|
87
92
|
messages: Messages,
|
|
88
|
-
params:
|
|
93
|
+
params: MessageCreateParamsBase,
|
|
89
94
|
options?: Core.RequestOptions,
|
|
90
95
|
): MessageStream {
|
|
91
96
|
const runner = new MessageStream();
|
|
@@ -264,7 +269,7 @@ export class MessageStream implements AsyncIterable<MessageStreamEvent> {
|
|
|
264
269
|
}
|
|
265
270
|
const textBlocks = this.receivedMessages
|
|
266
271
|
.at(-1)!
|
|
267
|
-
.content.filter((block) => block.type === 'text')
|
|
272
|
+
.content.filter((block): block is TextBlock => block.type === 'text')
|
|
268
273
|
.map((block) => block.text);
|
|
269
274
|
if (textBlocks.length === 0) {
|
|
270
275
|
throw new AnthropicError('stream ended without producing a content block with type=text');
|
|
@@ -369,8 +374,13 @@ export class MessageStream implements AsyncIterable<MessageStreamEvent> {
|
|
|
369
374
|
|
|
370
375
|
switch (event.type) {
|
|
371
376
|
case 'content_block_delta': {
|
|
372
|
-
|
|
373
|
-
|
|
377
|
+
const content = messageSnapshot.content.at(-1)!;
|
|
378
|
+
if (event.delta.type === 'text_delta' && content.type === 'text') {
|
|
379
|
+
this._emit('text', event.delta.text, content.text || '');
|
|
380
|
+
} else if (event.delta.type === 'input_json_delta' && content.type === 'tool_use') {
|
|
381
|
+
if (content.input) {
|
|
382
|
+
this._emit('inputJson', event.delta.partial_json, content.input);
|
|
383
|
+
}
|
|
374
384
|
}
|
|
375
385
|
break;
|
|
376
386
|
}
|
|
@@ -459,6 +469,22 @@ export class MessageStream implements AsyncIterable<MessageStreamEvent> {
|
|
|
459
469
|
const snapshotContent = snapshot.content.at(event.index);
|
|
460
470
|
if (snapshotContent?.type === 'text' && event.delta.type === 'text_delta') {
|
|
461
471
|
snapshotContent.text += event.delta.text;
|
|
472
|
+
} else if (snapshotContent?.type === 'tool_use' && event.delta.type === 'input_json_delta') {
|
|
473
|
+
// we need to keep track of the raw JSON string as well so that we can
|
|
474
|
+
// re-parse it for each delta, for now we just store it as an untyped
|
|
475
|
+
// non-enumerable property on the snapshot
|
|
476
|
+
let jsonBuf = (snapshotContent as any)[JSON_BUF_PROPERTY] || '';
|
|
477
|
+
jsonBuf += event.delta.partial_json;
|
|
478
|
+
|
|
479
|
+
Object.defineProperty(snapshotContent, JSON_BUF_PROPERTY, {
|
|
480
|
+
value: jsonBuf,
|
|
481
|
+
enumerable: false,
|
|
482
|
+
writable: true,
|
|
483
|
+
});
|
|
484
|
+
|
|
485
|
+
if (jsonBuf) {
|
|
486
|
+
snapshotContent.input = partialParse(jsonBuf);
|
|
487
|
+
}
|
|
462
488
|
}
|
|
463
489
|
return snapshot;
|
|
464
490
|
}
|
package/src/resources/index.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
-
export { Beta } from "./beta/beta.js";
|
|
4
3
|
export {
|
|
5
4
|
Completion,
|
|
6
5
|
CompletionCreateParams,
|
|
@@ -14,6 +13,7 @@ export {
|
|
|
14
13
|
ContentBlockStartEvent,
|
|
15
14
|
ContentBlockStopEvent,
|
|
16
15
|
ImageBlockParam,
|
|
16
|
+
InputJsonDelta,
|
|
17
17
|
Message,
|
|
18
18
|
MessageDeltaEvent,
|
|
19
19
|
MessageDeltaUsage,
|
|
@@ -21,9 +21,20 @@ export {
|
|
|
21
21
|
MessageStartEvent,
|
|
22
22
|
MessageStopEvent,
|
|
23
23
|
MessageStreamEvent,
|
|
24
|
+
RawContentBlockDeltaEvent,
|
|
25
|
+
RawContentBlockStartEvent,
|
|
26
|
+
RawContentBlockStopEvent,
|
|
27
|
+
RawMessageDeltaEvent,
|
|
28
|
+
RawMessageStartEvent,
|
|
29
|
+
RawMessageStopEvent,
|
|
30
|
+
RawMessageStreamEvent,
|
|
24
31
|
TextBlock,
|
|
25
32
|
TextBlockParam,
|
|
26
33
|
TextDelta,
|
|
34
|
+
Tool,
|
|
35
|
+
ToolResultBlockParam,
|
|
36
|
+
ToolUseBlock,
|
|
37
|
+
ToolUseBlockParam,
|
|
27
38
|
Usage,
|
|
28
39
|
MessageCreateParams,
|
|
29
40
|
MessageCreateParamsNonStreaming,
|