@anthropic-ai/sdk 0.32.1 → 0.33.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 +43 -0
- package/README.md +27 -15
- package/core.d.ts +12 -8
- package/core.d.ts.map +1 -1
- package/core.js +20 -14
- package/core.js.map +1 -1
- package/core.mjs +20 -14
- package/core.mjs.map +1 -1
- package/error.d.ts +18 -24
- package/error.d.ts.map +1 -1
- package/error.js +1 -31
- package/error.js.map +1 -1
- package/error.mjs +1 -31
- package/error.mjs.map +1 -1
- package/index.d.mts +21 -8
- package/index.d.ts +21 -8
- package/index.d.ts.map +1 -1
- package/index.js +13 -8
- package/index.js.map +1 -1
- package/index.mjs +9 -6
- package/index.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/beta/beta.d.ts +14 -6
- package/resources/beta/beta.d.ts.map +1 -1
- package/resources/beta/beta.js +5 -4
- package/resources/beta/beta.js.map +1 -1
- package/resources/beta/beta.mjs +5 -4
- package/resources/beta/beta.mjs.map +1 -1
- package/resources/beta/index.d.ts +2 -2
- package/resources/beta/index.d.ts.map +1 -1
- package/resources/beta/index.js +4 -3
- package/resources/beta/index.js.map +1 -1
- package/resources/beta/index.mjs +1 -1
- package/resources/beta/index.mjs.map +1 -1
- package/resources/beta/messages/messages.d.ts +1 -1
- package/resources/beta/messages/messages.d.ts.map +1 -1
- package/resources/beta/models.d.ts +49 -0
- package/resources/beta/models.d.ts.map +1 -0
- package/resources/beta/models.js +30 -0
- package/resources/beta/models.js.map +1 -0
- package/resources/beta/models.mjs +25 -0
- package/resources/beta/models.mjs.map +1 -0
- package/resources/completions.d.ts +1 -1
- package/resources/completions.d.ts.map +1 -1
- package/resources/index.d.ts +4 -2
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +20 -2
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +3 -1
- package/resources/index.mjs.map +1 -1
- package/resources/messages/batches.d.ts +212 -0
- package/resources/messages/batches.d.ts.map +1 -0
- package/resources/messages/batches.js +71 -0
- package/resources/messages/batches.js.map +1 -0
- package/resources/messages/batches.mjs +66 -0
- package/resources/messages/batches.mjs.map +1 -0
- package/resources/messages/index.d.ts +3 -0
- package/resources/messages/index.d.ts.map +1 -0
- package/resources/messages/index.js +10 -0
- package/resources/messages/index.js.map +1 -0
- package/resources/{beta/prompt-caching → messages}/index.mjs +1 -1
- package/resources/messages/index.mjs.map +1 -0
- package/resources/{messages.d.ts → messages/messages.d.ts} +235 -9
- package/resources/messages/messages.d.ts.map +1 -0
- package/resources/messages/messages.js +76 -0
- package/resources/messages/messages.js.map +1 -0
- package/resources/{messages.mjs → messages/messages.mjs} +20 -3
- package/resources/messages/messages.mjs.map +1 -0
- package/resources/models.d.ts +49 -0
- package/resources/models.d.ts.map +1 -0
- package/resources/models.js +30 -0
- package/resources/models.js.map +1 -0
- package/resources/models.mjs +25 -0
- package/resources/models.mjs.map +1 -0
- package/resources/shared.d.ts +42 -0
- package/resources/shared.d.ts.map +1 -0
- package/resources/shared.js +4 -0
- package/resources/shared.js.map +1 -0
- package/resources/shared.mjs +3 -0
- package/resources/shared.mjs.map +1 -0
- package/src/core.ts +52 -32
- package/src/error.ts +23 -39
- package/src/index.ts +72 -37
- package/src/resources/beta/beta.ts +28 -6
- package/src/resources/beta/index.ts +3 -1
- package/src/resources/beta/messages/messages.ts +1 -1
- package/src/resources/beta/models.ts +78 -0
- package/src/resources/completions.ts +1 -1
- package/src/resources/index.ts +11 -1
- package/src/resources/messages/batches.ts +298 -0
- package/src/resources/messages/index.ts +63 -0
- package/src/resources/{messages.ts → messages/messages.ts} +304 -10
- package/src/resources/models.ts +75 -0
- package/src/resources/shared.ts +72 -0
- package/src/version.ts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/lib/PromptCachingBetaMessageStream.d.ts +0 -96
- package/lib/PromptCachingBetaMessageStream.d.ts.map +0 -1
- package/lib/PromptCachingBetaMessageStream.js +0 -459
- package/lib/PromptCachingBetaMessageStream.js.map +0 -1
- package/lib/PromptCachingBetaMessageStream.mjs +0 -455
- package/lib/PromptCachingBetaMessageStream.mjs.map +0 -1
- package/resources/beta/prompt-caching/index.d.ts +0 -3
- package/resources/beta/prompt-caching/index.d.ts.map +0 -1
- package/resources/beta/prompt-caching/index.js +0 -9
- package/resources/beta/prompt-caching/index.js.map +0 -1
- package/resources/beta/prompt-caching/index.mjs.map +0 -1
- package/resources/beta/prompt-caching/messages.d.ts +0 -518
- package/resources/beta/prompt-caching/messages.d.ts.map +0 -1
- package/resources/beta/prompt-caching/messages.js +0 -29
- package/resources/beta/prompt-caching/messages.js.map +0 -1
- package/resources/beta/prompt-caching/messages.mjs +0 -25
- package/resources/beta/prompt-caching/messages.mjs.map +0 -1
- package/resources/beta/prompt-caching/prompt-caching.d.ts +0 -10
- package/resources/beta/prompt-caching/prompt-caching.d.ts.map +0 -1
- package/resources/beta/prompt-caching/prompt-caching.js +0 -39
- package/resources/beta/prompt-caching/prompt-caching.js.map +0 -1
- package/resources/beta/prompt-caching/prompt-caching.mjs +0 -12
- package/resources/beta/prompt-caching/prompt-caching.mjs.map +0 -1
- package/resources/messages.d.ts.map +0 -1
- package/resources/messages.js +0 -36
- package/resources/messages.js.map +0 -1
- package/resources/messages.mjs.map +0 -1
- package/src/lib/PromptCachingBetaMessageStream.ts +0 -579
- package/src/resources/beta/prompt-caching/index.ts +0 -20
- package/src/resources/beta/prompt-caching/messages.ts +0 -642
- package/src/resources/beta/prompt-caching/prompt-caching.ts +0 -47
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/resources/messages.ts"],"names":[],"mappings":"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"}
|
package/resources/messages.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.Messages = exports.MessageStream = void 0;
|
|
5
|
-
const resource_1 = require("../resource.js");
|
|
6
|
-
const MessageStream_1 = require("../lib/MessageStream.js");
|
|
7
|
-
var MessageStream_2 = require("../lib/MessageStream.js");
|
|
8
|
-
Object.defineProperty(exports, "MessageStream", { enumerable: true, get: function () { return MessageStream_2.MessageStream; } });
|
|
9
|
-
class Messages extends resource_1.APIResource {
|
|
10
|
-
create(body, options) {
|
|
11
|
-
if (body.model in DEPRECATED_MODELS) {
|
|
12
|
-
console.warn(`The model '${body.model}' is deprecated and will reach end-of-life on ${DEPRECATED_MODELS[body.model]}\nPlease migrate to a newer model. Visit https://docs.anthropic.com/en/docs/resources/model-deprecations for more information.`);
|
|
13
|
-
}
|
|
14
|
-
return this._client.post('/v1/messages', {
|
|
15
|
-
body,
|
|
16
|
-
timeout: this._client._options.timeout ?? 600000,
|
|
17
|
-
...options,
|
|
18
|
-
stream: body.stream ?? false,
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Create a Message stream
|
|
23
|
-
*/
|
|
24
|
-
stream(body, options) {
|
|
25
|
-
return MessageStream_1.MessageStream.createMessage(this, body, options);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.Messages = Messages;
|
|
29
|
-
const DEPRECATED_MODELS = {
|
|
30
|
-
'claude-1.3': 'November 6th, 2024',
|
|
31
|
-
'claude-1.3-100k': 'November 6th, 2024',
|
|
32
|
-
'claude-instant-1.1': 'November 6th, 2024',
|
|
33
|
-
'claude-instant-1.1-100k': 'November 6th, 2024',
|
|
34
|
-
'claude-instant-1.2': 'November 6th, 2024',
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/resources/messages.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,6CAA0C;AAK1C,2DAAqD;AAErD,yDAAqD;AAA5C,8GAAA,aAAa,OAAA;AAEtB,MAAa,QAAS,SAAQ,sBAAW;IAiBvC,MAAM,CACJ,IAAyB,EACzB,OAA6B;QAE7B,IAAI,IAAI,CAAC,KAAK,IAAI,iBAAiB,EAAE;YACnC,OAAO,CAAC,IAAI,CACV,cAAc,IAAI,CAAC,KAAK,iDACtB,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAC9B,gIAAgI,CACjI,CAAC;SACH;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;YACvC,IAAI;YACJ,OAAO,EAAG,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM;YACzD,GAAG,OAAO;YACV,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;SAC7B,CAAoE,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAyB,EAAE,OAA6B;QAC7D,OAAO,6BAAa,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AA1CD,4BA0CC;AAmMD,MAAM,iBAAiB,GAAyB;IAC9C,YAAY,EAAE,oBAAoB;IAClC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,oBAAoB;IAC1C,yBAAyB,EAAE,oBAAoB;IAC/C,oBAAoB,EAAE,oBAAoB;CAC3C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messages.mjs","sourceRoot":"","sources":["../src/resources/messages.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAKf,EAAE,aAAa,EAAE;OAEjB,EAAE,aAAa,EAAE;AAExB,MAAM,OAAO,QAAS,SAAQ,WAAW;IAiBvC,MAAM,CACJ,IAAyB,EACzB,OAA6B;QAE7B,IAAI,IAAI,CAAC,KAAK,IAAI,iBAAiB,EAAE;YACnC,OAAO,CAAC,IAAI,CACV,cAAc,IAAI,CAAC,KAAK,iDACtB,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAC9B,gIAAgI,CACjI,CAAC;SACH;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE;YACvC,IAAI;YACJ,OAAO,EAAG,IAAI,CAAC,OAAe,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM;YACzD,GAAG,OAAO;YACV,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;SAC7B,CAAoE,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAyB,EAAE,OAA6B;QAC7D,OAAO,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAmMD,MAAM,iBAAiB,GAAyB;IAC9C,YAAY,EAAE,oBAAoB;IAClC,iBAAiB,EAAE,oBAAoB;IACvC,oBAAoB,EAAE,oBAAoB;IAC1C,yBAAyB,EAAE,oBAAoB;IAC/C,oBAAoB,EAAE,oBAAoB;CAC3C,CAAC"}
|
|
@@ -1,579 +0,0 @@
|
|
|
1
|
-
import * as Core from "../core.js";
|
|
2
|
-
import { AnthropicError, APIUserAbortError } from "../error.js";
|
|
3
|
-
import { type ContentBlock, type TextBlock } from "../resources/messages.js";
|
|
4
|
-
import {
|
|
5
|
-
Messages,
|
|
6
|
-
type PromptCachingBetaMessage,
|
|
7
|
-
type RawPromptCachingBetaMessageStreamEvent,
|
|
8
|
-
type PromptCachingBetaMessageParam,
|
|
9
|
-
type MessageCreateParams,
|
|
10
|
-
type MessageCreateParamsBase,
|
|
11
|
-
} from "../resources/beta/prompt-caching/messages.js";
|
|
12
|
-
import { type ReadableStream } from "../_shims/index.js";
|
|
13
|
-
import { Stream } from "../streaming.js";
|
|
14
|
-
import { partialParse } from "../_vendor/partial-json-parser/parser.js";
|
|
15
|
-
|
|
16
|
-
export interface PromptCachingBetaMessageStreamEvents {
|
|
17
|
-
connect: () => void;
|
|
18
|
-
streamEvent: (event: RawPromptCachingBetaMessageStreamEvent, snapshot: PromptCachingBetaMessage) => void;
|
|
19
|
-
text: (textDelta: string, textSnapshot: string) => void;
|
|
20
|
-
inputJson: (partialJson: string, jsonSnapshot: unknown) => void;
|
|
21
|
-
message: (message: PromptCachingBetaMessage) => void;
|
|
22
|
-
contentBlock: (content: ContentBlock) => void;
|
|
23
|
-
finalPromptCachingBetaMessage: (message: PromptCachingBetaMessage) => void;
|
|
24
|
-
error: (error: AnthropicError) => void;
|
|
25
|
-
abort: (error: APIUserAbortError) => void;
|
|
26
|
-
end: () => void;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
type PromptCachingBetaMessageStreamEventListeners<Event extends keyof PromptCachingBetaMessageStreamEvents> =
|
|
30
|
-
{
|
|
31
|
-
listener: PromptCachingBetaMessageStreamEvents[Event];
|
|
32
|
-
once?: boolean;
|
|
33
|
-
}[];
|
|
34
|
-
|
|
35
|
-
const JSON_BUF_PROPERTY = '__json_buf';
|
|
36
|
-
|
|
37
|
-
export class PromptCachingBetaMessageStream implements AsyncIterable<RawPromptCachingBetaMessageStreamEvent> {
|
|
38
|
-
messages: PromptCachingBetaMessageParam[] = [];
|
|
39
|
-
receivedMessages: PromptCachingBetaMessage[] = [];
|
|
40
|
-
#currentMessageSnapshot: PromptCachingBetaMessage | undefined;
|
|
41
|
-
|
|
42
|
-
controller: AbortController = new AbortController();
|
|
43
|
-
|
|
44
|
-
#connectedPromise: Promise<void>;
|
|
45
|
-
#resolveConnectedPromise: () => void = () => {};
|
|
46
|
-
#rejectConnectedPromise: (error: AnthropicError) => void = () => {};
|
|
47
|
-
|
|
48
|
-
#endPromise: Promise<void>;
|
|
49
|
-
#resolveEndPromise: () => void = () => {};
|
|
50
|
-
#rejectEndPromise: (error: AnthropicError) => void = () => {};
|
|
51
|
-
|
|
52
|
-
#listeners: {
|
|
53
|
-
[Event in keyof PromptCachingBetaMessageStreamEvents]?: PromptCachingBetaMessageStreamEventListeners<Event>;
|
|
54
|
-
} = {};
|
|
55
|
-
|
|
56
|
-
#ended = false;
|
|
57
|
-
#errored = false;
|
|
58
|
-
#aborted = false;
|
|
59
|
-
#catchingPromiseCreated = false;
|
|
60
|
-
|
|
61
|
-
constructor() {
|
|
62
|
-
this.#connectedPromise = new Promise<void>((resolve, reject) => {
|
|
63
|
-
this.#resolveConnectedPromise = resolve;
|
|
64
|
-
this.#rejectConnectedPromise = reject;
|
|
65
|
-
});
|
|
66
|
-
|
|
67
|
-
this.#endPromise = new Promise<void>((resolve, reject) => {
|
|
68
|
-
this.#resolveEndPromise = resolve;
|
|
69
|
-
this.#rejectEndPromise = reject;
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
// Don't let these promises cause unhandled rejection errors.
|
|
73
|
-
// we will manually cause an unhandled rejection error later
|
|
74
|
-
// if the user hasn't registered any error listener or called
|
|
75
|
-
// any promise-returning method.
|
|
76
|
-
this.#connectedPromise.catch(() => {});
|
|
77
|
-
this.#endPromise.catch(() => {});
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Intended for use on the frontend, consuming a stream produced with
|
|
82
|
-
* `.toReadableStream()` on the backend.
|
|
83
|
-
*
|
|
84
|
-
* Note that messages sent to the model do not appear in `.on('message')`
|
|
85
|
-
* in this context.
|
|
86
|
-
*/
|
|
87
|
-
static fromReadableStream(stream: ReadableStream): PromptCachingBetaMessageStream {
|
|
88
|
-
const runner = new PromptCachingBetaMessageStream();
|
|
89
|
-
runner._run(() => runner._fromReadableStream(stream));
|
|
90
|
-
return runner;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
static createMessage(
|
|
94
|
-
messages: Messages,
|
|
95
|
-
params: MessageCreateParamsBase,
|
|
96
|
-
options?: Core.RequestOptions,
|
|
97
|
-
): PromptCachingBetaMessageStream {
|
|
98
|
-
const runner = new PromptCachingBetaMessageStream();
|
|
99
|
-
for (const message of params.messages) {
|
|
100
|
-
runner._addPromptCachingBetaMessageParam(message);
|
|
101
|
-
}
|
|
102
|
-
runner._run(() =>
|
|
103
|
-
runner._createPromptCachingBetaMessage(
|
|
104
|
-
messages,
|
|
105
|
-
{ ...params, stream: true },
|
|
106
|
-
{ ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } },
|
|
107
|
-
),
|
|
108
|
-
);
|
|
109
|
-
return runner;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
protected _run(executor: () => Promise<any>) {
|
|
113
|
-
executor().then(() => {
|
|
114
|
-
this._emitFinal();
|
|
115
|
-
this._emit('end');
|
|
116
|
-
}, this.#handleError);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
protected _addPromptCachingBetaMessageParam(message: PromptCachingBetaMessageParam) {
|
|
120
|
-
this.messages.push(message);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
protected _addPromptCachingBetaMessage(message: PromptCachingBetaMessage, emit = true) {
|
|
124
|
-
this.receivedMessages.push(message);
|
|
125
|
-
if (emit) {
|
|
126
|
-
this._emit('message', message);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
protected async _createPromptCachingBetaMessage(
|
|
131
|
-
messages: Messages,
|
|
132
|
-
params: MessageCreateParams,
|
|
133
|
-
options?: Core.RequestOptions,
|
|
134
|
-
): Promise<void> {
|
|
135
|
-
const signal = options?.signal;
|
|
136
|
-
if (signal) {
|
|
137
|
-
if (signal.aborted) this.controller.abort();
|
|
138
|
-
signal.addEventListener('abort', () => this.controller.abort());
|
|
139
|
-
}
|
|
140
|
-
this.#beginRequest();
|
|
141
|
-
const stream = await messages.create(
|
|
142
|
-
{ ...params, stream: true },
|
|
143
|
-
{ ...options, signal: this.controller.signal },
|
|
144
|
-
);
|
|
145
|
-
this._connected();
|
|
146
|
-
for await (const event of stream) {
|
|
147
|
-
this.#addStreamEvent(event);
|
|
148
|
-
}
|
|
149
|
-
if (stream.controller.signal?.aborted) {
|
|
150
|
-
throw new APIUserAbortError();
|
|
151
|
-
}
|
|
152
|
-
this.#endRequest();
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
protected _connected() {
|
|
156
|
-
if (this.ended) return;
|
|
157
|
-
this.#resolveConnectedPromise();
|
|
158
|
-
this._emit('connect');
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
get ended(): boolean {
|
|
162
|
-
return this.#ended;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
get errored(): boolean {
|
|
166
|
-
return this.#errored;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
get aborted(): boolean {
|
|
170
|
-
return this.#aborted;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
abort() {
|
|
174
|
-
this.controller.abort();
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Adds the listener function to the end of the listeners array for the event.
|
|
179
|
-
* No checks are made to see if the listener has already been added. Multiple calls passing
|
|
180
|
-
* the same combination of event and listener will result in the listener being added, and
|
|
181
|
-
* called, multiple times.
|
|
182
|
-
* @returns this PromptCachingBetaMessageStream, so that calls can be chained
|
|
183
|
-
*/
|
|
184
|
-
on<Event extends keyof PromptCachingBetaMessageStreamEvents>(
|
|
185
|
-
event: Event,
|
|
186
|
-
listener: PromptCachingBetaMessageStreamEvents[Event],
|
|
187
|
-
): this {
|
|
188
|
-
const listeners: PromptCachingBetaMessageStreamEventListeners<Event> =
|
|
189
|
-
this.#listeners[event] || (this.#listeners[event] = []);
|
|
190
|
-
listeners.push({ listener });
|
|
191
|
-
return this;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* Removes the specified listener from the listener array for the event.
|
|
196
|
-
* off() will remove, at most, one instance of a listener from the listener array. If any single
|
|
197
|
-
* listener has been added multiple times to the listener array for the specified event, then
|
|
198
|
-
* off() must be called multiple times to remove each instance.
|
|
199
|
-
* @returns this PromptCachingBetaMessageStream, so that calls can be chained
|
|
200
|
-
*/
|
|
201
|
-
off<Event extends keyof PromptCachingBetaMessageStreamEvents>(
|
|
202
|
-
event: Event,
|
|
203
|
-
listener: PromptCachingBetaMessageStreamEvents[Event],
|
|
204
|
-
): this {
|
|
205
|
-
const listeners = this.#listeners[event];
|
|
206
|
-
if (!listeners) return this;
|
|
207
|
-
const index = listeners.findIndex((l) => l.listener === listener);
|
|
208
|
-
if (index >= 0) listeners.splice(index, 1);
|
|
209
|
-
return this;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Adds a one-time listener function for the event. The next time the event is triggered,
|
|
214
|
-
* this listener is removed and then invoked.
|
|
215
|
-
* @returns this PromptCachingBetaMessageStream, so that calls can be chained
|
|
216
|
-
*/
|
|
217
|
-
once<Event extends keyof PromptCachingBetaMessageStreamEvents>(
|
|
218
|
-
event: Event,
|
|
219
|
-
listener: PromptCachingBetaMessageStreamEvents[Event],
|
|
220
|
-
): this {
|
|
221
|
-
const listeners: PromptCachingBetaMessageStreamEventListeners<Event> =
|
|
222
|
-
this.#listeners[event] || (this.#listeners[event] = []);
|
|
223
|
-
listeners.push({ listener, once: true });
|
|
224
|
-
return this;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* This is similar to `.once()`, but returns a Promise that resolves the next time
|
|
229
|
-
* the event is triggered, instead of calling a listener callback.
|
|
230
|
-
* @returns a Promise that resolves the next time given event is triggered,
|
|
231
|
-
* or rejects if an error is emitted. (If you request the 'error' event,
|
|
232
|
-
* returns a promise that resolves with the error).
|
|
233
|
-
*
|
|
234
|
-
* Example:
|
|
235
|
-
*
|
|
236
|
-
* const message = await stream.emitted('message') // rejects if the stream errors
|
|
237
|
-
*/
|
|
238
|
-
emitted<Event extends keyof PromptCachingBetaMessageStreamEvents>(
|
|
239
|
-
event: Event,
|
|
240
|
-
): Promise<
|
|
241
|
-
Parameters<PromptCachingBetaMessageStreamEvents[Event]> extends [infer Param] ? Param
|
|
242
|
-
: Parameters<PromptCachingBetaMessageStreamEvents[Event]> extends [] ? void
|
|
243
|
-
: Parameters<PromptCachingBetaMessageStreamEvents[Event]>
|
|
244
|
-
> {
|
|
245
|
-
return new Promise((resolve, reject) => {
|
|
246
|
-
this.#catchingPromiseCreated = true;
|
|
247
|
-
if (event !== 'error') this.once('error', reject);
|
|
248
|
-
this.once(event, resolve as any);
|
|
249
|
-
});
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
async done(): Promise<void> {
|
|
253
|
-
this.#catchingPromiseCreated = true;
|
|
254
|
-
await this.#endPromise;
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
get currentMessage(): PromptCachingBetaMessage | undefined {
|
|
258
|
-
return this.#currentMessageSnapshot;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
#getFinalMessage(): PromptCachingBetaMessage {
|
|
262
|
-
if (this.receivedMessages.length === 0) {
|
|
263
|
-
throw new AnthropicError(
|
|
264
|
-
'stream ended without producing a PromptCachingBetaMessage with role=assistant',
|
|
265
|
-
);
|
|
266
|
-
}
|
|
267
|
-
return this.receivedMessages.at(-1)!;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* @returns a promise that resolves with the the final assistant PromptCachingBetaMessage response,
|
|
272
|
-
* or rejects if an error occurred or the stream ended prematurely without producing a PromptCachingBetaMessage.
|
|
273
|
-
*/
|
|
274
|
-
async finalMessage(): Promise<PromptCachingBetaMessage> {
|
|
275
|
-
await this.done();
|
|
276
|
-
return this.#getFinalMessage();
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
#getFinalText(): string {
|
|
280
|
-
if (this.receivedMessages.length === 0) {
|
|
281
|
-
throw new AnthropicError(
|
|
282
|
-
'stream ended without producing a PromptCachingBetaMessage with role=assistant',
|
|
283
|
-
);
|
|
284
|
-
}
|
|
285
|
-
const textBlocks = this.receivedMessages
|
|
286
|
-
.at(-1)!
|
|
287
|
-
.content.filter((block): block is TextBlock => block.type === 'text')
|
|
288
|
-
.map((block) => block.text);
|
|
289
|
-
if (textBlocks.length === 0) {
|
|
290
|
-
throw new AnthropicError('stream ended without producing a content block with type=text');
|
|
291
|
-
}
|
|
292
|
-
return textBlocks.join(' ');
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
/**
|
|
296
|
-
* @returns a promise that resolves with the the final assistant PromptCachingBetaMessage's text response, concatenated
|
|
297
|
-
* together if there are more than one text blocks.
|
|
298
|
-
* Rejects if an error occurred or the stream ended prematurely without producing a PromptCachingBetaMessage.
|
|
299
|
-
*/
|
|
300
|
-
async finalText(): Promise<string> {
|
|
301
|
-
await this.done();
|
|
302
|
-
return this.#getFinalText();
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
#handleError = (error: unknown) => {
|
|
306
|
-
this.#errored = true;
|
|
307
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
308
|
-
error = new APIUserAbortError();
|
|
309
|
-
}
|
|
310
|
-
if (error instanceof APIUserAbortError) {
|
|
311
|
-
this.#aborted = true;
|
|
312
|
-
return this._emit('abort', error);
|
|
313
|
-
}
|
|
314
|
-
if (error instanceof AnthropicError) {
|
|
315
|
-
return this._emit('error', error);
|
|
316
|
-
}
|
|
317
|
-
if (error instanceof Error) {
|
|
318
|
-
const anthropicError: AnthropicError = new AnthropicError(error.message);
|
|
319
|
-
// @ts-ignore
|
|
320
|
-
anthropicError.cause = error;
|
|
321
|
-
return this._emit('error', anthropicError);
|
|
322
|
-
}
|
|
323
|
-
return this._emit('error', new AnthropicError(String(error)));
|
|
324
|
-
};
|
|
325
|
-
|
|
326
|
-
protected _emit<Event extends keyof PromptCachingBetaMessageStreamEvents>(
|
|
327
|
-
event: Event,
|
|
328
|
-
...args: Parameters<PromptCachingBetaMessageStreamEvents[Event]>
|
|
329
|
-
) {
|
|
330
|
-
// make sure we don't emit any PromptCachingBetaMessageStreamEvents after end
|
|
331
|
-
if (this.#ended) return;
|
|
332
|
-
|
|
333
|
-
if (event === 'end') {
|
|
334
|
-
this.#ended = true;
|
|
335
|
-
this.#resolveEndPromise();
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
const listeners: PromptCachingBetaMessageStreamEventListeners<Event> | undefined = this.#listeners[event];
|
|
339
|
-
if (listeners) {
|
|
340
|
-
this.#listeners[event] = listeners.filter((l) => !l.once) as any;
|
|
341
|
-
listeners.forEach(({ listener }: any) => listener(...args));
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
if (event === 'abort') {
|
|
345
|
-
const error = args[0] as APIUserAbortError;
|
|
346
|
-
if (!this.#catchingPromiseCreated && !listeners?.length) {
|
|
347
|
-
Promise.reject(error);
|
|
348
|
-
}
|
|
349
|
-
this.#rejectConnectedPromise(error);
|
|
350
|
-
this.#rejectEndPromise(error);
|
|
351
|
-
this._emit('end');
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
if (event === 'error') {
|
|
356
|
-
// NOTE: _emit('error', error) should only be called from #handleError().
|
|
357
|
-
|
|
358
|
-
const error = args[0] as AnthropicError;
|
|
359
|
-
if (!this.#catchingPromiseCreated && !listeners?.length) {
|
|
360
|
-
// Trigger an unhandled rejection if the user hasn't registered any error handlers.
|
|
361
|
-
// If you are seeing stack traces here, make sure to handle errors via either:
|
|
362
|
-
// - runner.on('error', () => ...)
|
|
363
|
-
// - await runner.done()
|
|
364
|
-
// - await runner.final...()
|
|
365
|
-
// - etc.
|
|
366
|
-
Promise.reject(error);
|
|
367
|
-
}
|
|
368
|
-
this.#rejectConnectedPromise(error);
|
|
369
|
-
this.#rejectEndPromise(error);
|
|
370
|
-
this._emit('end');
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
protected _emitFinal() {
|
|
375
|
-
const finalPromptCachingBetaMessage = this.receivedMessages.at(-1);
|
|
376
|
-
if (finalPromptCachingBetaMessage) {
|
|
377
|
-
this._emit('finalPromptCachingBetaMessage', this.#getFinalMessage());
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
#beginRequest() {
|
|
382
|
-
if (this.ended) return;
|
|
383
|
-
this.#currentMessageSnapshot = undefined;
|
|
384
|
-
}
|
|
385
|
-
#addStreamEvent(event: RawPromptCachingBetaMessageStreamEvent) {
|
|
386
|
-
if (this.ended) return;
|
|
387
|
-
const messageSnapshot = this.#accumulateMessage(event);
|
|
388
|
-
this._emit('streamEvent', event, messageSnapshot);
|
|
389
|
-
|
|
390
|
-
switch (event.type) {
|
|
391
|
-
case 'content_block_delta': {
|
|
392
|
-
const content = messageSnapshot.content.at(-1)!;
|
|
393
|
-
if (event.delta.type === 'text_delta' && content.type === 'text') {
|
|
394
|
-
this._emit('text', event.delta.text, content.text || '');
|
|
395
|
-
} else if (event.delta.type === 'input_json_delta' && content.type === 'tool_use') {
|
|
396
|
-
if (content.input) {
|
|
397
|
-
this._emit('inputJson', event.delta.partial_json, content.input);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
break;
|
|
401
|
-
}
|
|
402
|
-
case 'message_stop': {
|
|
403
|
-
this._addPromptCachingBetaMessageParam(messageSnapshot);
|
|
404
|
-
this._addPromptCachingBetaMessage(messageSnapshot, true);
|
|
405
|
-
break;
|
|
406
|
-
}
|
|
407
|
-
case 'content_block_stop': {
|
|
408
|
-
this._emit('contentBlock', messageSnapshot.content.at(-1)!);
|
|
409
|
-
break;
|
|
410
|
-
}
|
|
411
|
-
case 'message_start': {
|
|
412
|
-
this.#currentMessageSnapshot = messageSnapshot;
|
|
413
|
-
break;
|
|
414
|
-
}
|
|
415
|
-
case 'content_block_start':
|
|
416
|
-
case 'message_delta':
|
|
417
|
-
break;
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
#endRequest(): PromptCachingBetaMessage {
|
|
421
|
-
if (this.ended) {
|
|
422
|
-
throw new AnthropicError(`stream has ended, this shouldn't happen`);
|
|
423
|
-
}
|
|
424
|
-
const snapshot = this.#currentMessageSnapshot;
|
|
425
|
-
if (!snapshot) {
|
|
426
|
-
throw new AnthropicError(`request ended without sending any chunks`);
|
|
427
|
-
}
|
|
428
|
-
this.#currentMessageSnapshot = undefined;
|
|
429
|
-
return snapshot;
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
protected async _fromReadableStream(
|
|
433
|
-
readableStream: ReadableStream,
|
|
434
|
-
options?: Core.RequestOptions,
|
|
435
|
-
): Promise<void> {
|
|
436
|
-
const signal = options?.signal;
|
|
437
|
-
if (signal) {
|
|
438
|
-
if (signal.aborted) this.controller.abort();
|
|
439
|
-
signal.addEventListener('abort', () => this.controller.abort());
|
|
440
|
-
}
|
|
441
|
-
this.#beginRequest();
|
|
442
|
-
this._connected();
|
|
443
|
-
const stream = Stream.fromReadableStream<RawPromptCachingBetaMessageStreamEvent>(
|
|
444
|
-
readableStream,
|
|
445
|
-
this.controller,
|
|
446
|
-
);
|
|
447
|
-
for await (const event of stream) {
|
|
448
|
-
this.#addStreamEvent(event);
|
|
449
|
-
}
|
|
450
|
-
if (stream.controller.signal?.aborted) {
|
|
451
|
-
throw new APIUserAbortError();
|
|
452
|
-
}
|
|
453
|
-
this.#endRequest();
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
/**
|
|
457
|
-
* Mutates this.#currentPromptCachingBetaMessage with the current event. Handling the accumulation of multiple messages
|
|
458
|
-
* will be needed to be handled by the caller, this method will throw if you try to accumulate for multiple
|
|
459
|
-
* messages.
|
|
460
|
-
*/
|
|
461
|
-
#accumulateMessage(event: RawPromptCachingBetaMessageStreamEvent): PromptCachingBetaMessage {
|
|
462
|
-
let snapshot = this.#currentMessageSnapshot;
|
|
463
|
-
|
|
464
|
-
if (event.type === 'message_start') {
|
|
465
|
-
if (snapshot) {
|
|
466
|
-
throw new AnthropicError(`Unexpected event order, got ${event.type} before receiving "message_stop"`);
|
|
467
|
-
}
|
|
468
|
-
return event.message;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
if (!snapshot) {
|
|
472
|
-
throw new AnthropicError(`Unexpected event order, got ${event.type} before "message_start"`);
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
switch (event.type) {
|
|
476
|
-
case 'message_stop':
|
|
477
|
-
return snapshot;
|
|
478
|
-
case 'message_delta':
|
|
479
|
-
snapshot.stop_reason = event.delta.stop_reason;
|
|
480
|
-
snapshot.stop_sequence = event.delta.stop_sequence;
|
|
481
|
-
snapshot.usage.output_tokens = event.usage.output_tokens;
|
|
482
|
-
return snapshot;
|
|
483
|
-
case 'content_block_start':
|
|
484
|
-
snapshot.content.push(event.content_block);
|
|
485
|
-
return snapshot;
|
|
486
|
-
case 'content_block_delta': {
|
|
487
|
-
const snapshotContent = snapshot.content.at(event.index);
|
|
488
|
-
if (snapshotContent?.type === 'text' && event.delta.type === 'text_delta') {
|
|
489
|
-
snapshotContent.text += event.delta.text;
|
|
490
|
-
} else if (snapshotContent?.type === 'tool_use' && event.delta.type === 'input_json_delta') {
|
|
491
|
-
// we need to keep track of the raw JSON string as well so that we can
|
|
492
|
-
// re-parse it for each delta, for now we just store it as an untyped
|
|
493
|
-
// non-enumerable property on the snapshot
|
|
494
|
-
let jsonBuf = (snapshotContent as any)[JSON_BUF_PROPERTY] || '';
|
|
495
|
-
jsonBuf += event.delta.partial_json;
|
|
496
|
-
|
|
497
|
-
Object.defineProperty(snapshotContent, JSON_BUF_PROPERTY, {
|
|
498
|
-
value: jsonBuf,
|
|
499
|
-
enumerable: false,
|
|
500
|
-
writable: true,
|
|
501
|
-
});
|
|
502
|
-
|
|
503
|
-
if (jsonBuf) {
|
|
504
|
-
snapshotContent.input = partialParse(jsonBuf);
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
return snapshot;
|
|
508
|
-
}
|
|
509
|
-
case 'content_block_stop':
|
|
510
|
-
return snapshot;
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
[Symbol.asyncIterator](): AsyncIterator<RawPromptCachingBetaMessageStreamEvent> {
|
|
515
|
-
const pushQueue: RawPromptCachingBetaMessageStreamEvent[] = [];
|
|
516
|
-
const readQueue: {
|
|
517
|
-
resolve: (chunk: RawPromptCachingBetaMessageStreamEvent | undefined) => void;
|
|
518
|
-
reject: (error: unknown) => void;
|
|
519
|
-
}[] = [];
|
|
520
|
-
let done = false;
|
|
521
|
-
|
|
522
|
-
this.on('streamEvent', (event) => {
|
|
523
|
-
const reader = readQueue.shift();
|
|
524
|
-
if (reader) {
|
|
525
|
-
reader.resolve(event);
|
|
526
|
-
} else {
|
|
527
|
-
pushQueue.push(event);
|
|
528
|
-
}
|
|
529
|
-
});
|
|
530
|
-
|
|
531
|
-
this.on('end', () => {
|
|
532
|
-
done = true;
|
|
533
|
-
for (const reader of readQueue) {
|
|
534
|
-
reader.resolve(undefined);
|
|
535
|
-
}
|
|
536
|
-
readQueue.length = 0;
|
|
537
|
-
});
|
|
538
|
-
|
|
539
|
-
this.on('abort', (err) => {
|
|
540
|
-
done = true;
|
|
541
|
-
for (const reader of readQueue) {
|
|
542
|
-
reader.reject(err);
|
|
543
|
-
}
|
|
544
|
-
readQueue.length = 0;
|
|
545
|
-
});
|
|
546
|
-
|
|
547
|
-
this.on('error', (err) => {
|
|
548
|
-
done = true;
|
|
549
|
-
for (const reader of readQueue) {
|
|
550
|
-
reader.reject(err);
|
|
551
|
-
}
|
|
552
|
-
readQueue.length = 0;
|
|
553
|
-
});
|
|
554
|
-
|
|
555
|
-
return {
|
|
556
|
-
next: async (): Promise<IteratorResult<RawPromptCachingBetaMessageStreamEvent>> => {
|
|
557
|
-
if (!pushQueue.length) {
|
|
558
|
-
if (done) {
|
|
559
|
-
return { value: undefined, done: true };
|
|
560
|
-
}
|
|
561
|
-
return new Promise<RawPromptCachingBetaMessageStreamEvent | undefined>((resolve, reject) =>
|
|
562
|
-
readQueue.push({ resolve, reject }),
|
|
563
|
-
).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));
|
|
564
|
-
}
|
|
565
|
-
const chunk = pushQueue.shift()!;
|
|
566
|
-
return { value: chunk, done: false };
|
|
567
|
-
},
|
|
568
|
-
return: async () => {
|
|
569
|
-
this.abort();
|
|
570
|
-
return { value: undefined, done: true };
|
|
571
|
-
},
|
|
572
|
-
};
|
|
573
|
-
}
|
|
574
|
-
|
|
575
|
-
toReadableStream(): ReadableStream {
|
|
576
|
-
const stream = new Stream(this[Symbol.asyncIterator].bind(this), this.controller);
|
|
577
|
-
return stream.toReadableStream();
|
|
578
|
-
}
|
|
579
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
export {
|
|
4
|
-
Messages,
|
|
5
|
-
type PromptCachingBetaCacheControlEphemeral,
|
|
6
|
-
type PromptCachingBetaImageBlockParam,
|
|
7
|
-
type PromptCachingBetaMessage,
|
|
8
|
-
type PromptCachingBetaMessageParam,
|
|
9
|
-
type PromptCachingBetaTextBlockParam,
|
|
10
|
-
type PromptCachingBetaTool,
|
|
11
|
-
type PromptCachingBetaToolResultBlockParam,
|
|
12
|
-
type PromptCachingBetaToolUseBlockParam,
|
|
13
|
-
type PromptCachingBetaUsage,
|
|
14
|
-
type RawPromptCachingBetaMessageStartEvent,
|
|
15
|
-
type RawPromptCachingBetaMessageStreamEvent,
|
|
16
|
-
type MessageCreateParams,
|
|
17
|
-
type MessageCreateParamsNonStreaming,
|
|
18
|
-
type MessageCreateParamsStreaming,
|
|
19
|
-
} from "./messages.js";
|
|
20
|
-
export { PromptCaching } from "./prompt-caching.js";
|