@anthropic-ai/sdk 0.20.9 → 0.21.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 +15 -0
- package/_vendor/partial-json-parser/parser.d.ts +3 -0
- package/_vendor/partial-json-parser/parser.d.ts.map +1 -0
- package/_vendor/partial-json-parser/parser.js +224 -0
- package/_vendor/partial-json-parser/parser.js.map +1 -0
- package/_vendor/partial-json-parser/parser.mjs +221 -0
- package/_vendor/partial-json-parser/parser.mjs.map +1 -0
- package/lib/ToolsBetaMessageStream.d.ts +95 -0
- package/lib/ToolsBetaMessageStream.d.ts.map +1 -0
- package/lib/ToolsBetaMessageStream.js +459 -0
- package/lib/ToolsBetaMessageStream.js.map +1 -0
- package/lib/ToolsBetaMessageStream.mjs +455 -0
- package/lib/ToolsBetaMessageStream.mjs.map +1 -0
- package/package.json +1 -1
- package/resources/beta/tools/index.d.ts +1 -1
- package/resources/beta/tools/index.d.ts.map +1 -1
- package/resources/beta/tools/index.js.map +1 -1
- package/resources/beta/tools/index.mjs.map +1 -1
- package/resources/beta/tools/messages.d.ts +349 -18
- package/resources/beta/tools/messages.d.ts.map +1 -1
- package/resources/beta/tools/messages.js +11 -2
- package/resources/beta/tools/messages.js.map +1 -1
- package/resources/beta/tools/messages.mjs +9 -1
- package/resources/beta/tools/messages.mjs.map +1 -1
- package/resources/beta/tools/tools.d.ts +5 -0
- package/resources/beta/tools/tools.d.ts.map +1 -1
- package/resources/beta/tools/tools.js.map +1 -1
- package/resources/beta/tools/tools.mjs.map +1 -1
- package/resources/completions.d.ts +11 -19
- package/resources/completions.d.ts.map +1 -1
- package/resources/completions.js.map +1 -1
- package/resources/completions.mjs.map +1 -1
- package/resources/messages.d.ts +22 -22
- package/src/_vendor/partial-json-parser/README.md +3 -0
- package/src/_vendor/partial-json-parser/parser.ts +262 -0
- package/src/lib/ToolsBetaMessageStream.ts +561 -0
- package/src/resources/beta/tools/index.ts +5 -0
- package/src/resources/beta/tools/messages.ts +397 -21
- package/src/resources/beta/tools/tools.ts +5 -0
- package/src/resources/completions.ts +11 -19
- package/src/resources/messages.ts +22 -22
- package/src/version.ts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.21.0 (2024-05-16)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [sdk-v0.20.9...sdk-v0.21.0](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.20.9...sdk-v0.21.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** add `tool_choice` param, image block params inside `tool_result.content`, and streaming for `tool_use` blocks ([#418](https://github.com/anthropics/anthropic-sdk-typescript/issues/418)) ([421a1e6](https://github.com/anthropics/anthropic-sdk-typescript/commit/421a1e6f53cbb2f440e3668be3e13475976eebbf))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Chores
|
|
13
|
+
|
|
14
|
+
* **docs:** add SECURITY.md ([#411](https://github.com/anthropics/anthropic-sdk-typescript/issues/411)) ([bf2ad84](https://github.com/anthropics/anthropic-sdk-typescript/commit/bf2ad8496d97de46b28575dfa37fa9cf15341eb4))
|
|
15
|
+
* **internal:** add slightly better logging to scripts ([#415](https://github.com/anthropics/anthropic-sdk-typescript/issues/415)) ([7a042d2](https://github.com/anthropics/anthropic-sdk-typescript/commit/7a042d2dd5a5e310f15c02277c7f7a19e9772872))
|
|
16
|
+
* **internal:** fix generated version numbers ([#413](https://github.com/anthropics/anthropic-sdk-typescript/issues/413)) ([ea77063](https://github.com/anthropics/anthropic-sdk-typescript/commit/ea770630897bb85caaecd39bccf478e4dd3f169c))
|
|
17
|
+
|
|
3
18
|
## 0.20.9 (2024-05-07)
|
|
4
19
|
|
|
5
20
|
Full Changelog: [sdk-v0.20.8...sdk-v0.20.9](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.20.8...sdk-v0.20.9)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/_vendor/partial-json-parser/parser.ts"],"names":[],"mappings":"AAKA,QAAA,MA8PE,YAAY,UAAW,MAAM,KAAG,OAAgE,CAAC;AAEnG,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.partialParse = void 0;
|
|
4
|
+
const tokenize = (input) => {
|
|
5
|
+
let current = 0;
|
|
6
|
+
let tokens = [];
|
|
7
|
+
while (current < input.length) {
|
|
8
|
+
let char = input[current];
|
|
9
|
+
if (char === '\\') {
|
|
10
|
+
current++;
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
if (char === '{') {
|
|
14
|
+
tokens.push({
|
|
15
|
+
type: 'brace',
|
|
16
|
+
value: '{',
|
|
17
|
+
});
|
|
18
|
+
current++;
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (char === '}') {
|
|
22
|
+
tokens.push({
|
|
23
|
+
type: 'brace',
|
|
24
|
+
value: '}',
|
|
25
|
+
});
|
|
26
|
+
current++;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (char === '[') {
|
|
30
|
+
tokens.push({
|
|
31
|
+
type: 'paren',
|
|
32
|
+
value: '[',
|
|
33
|
+
});
|
|
34
|
+
current++;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
if (char === ']') {
|
|
38
|
+
tokens.push({
|
|
39
|
+
type: 'paren',
|
|
40
|
+
value: ']',
|
|
41
|
+
});
|
|
42
|
+
current++;
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (char === ':') {
|
|
46
|
+
tokens.push({
|
|
47
|
+
type: 'separator',
|
|
48
|
+
value: ':',
|
|
49
|
+
});
|
|
50
|
+
current++;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (char === ',') {
|
|
54
|
+
tokens.push({
|
|
55
|
+
type: 'delimiter',
|
|
56
|
+
value: ',',
|
|
57
|
+
});
|
|
58
|
+
current++;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
if (char === '"') {
|
|
62
|
+
let value = '';
|
|
63
|
+
let danglingQuote = false;
|
|
64
|
+
char = input[++current];
|
|
65
|
+
while (char !== '"') {
|
|
66
|
+
if (current === input.length) {
|
|
67
|
+
danglingQuote = true;
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
if (char === '\\') {
|
|
71
|
+
current++;
|
|
72
|
+
if (current === input.length) {
|
|
73
|
+
danglingQuote = true;
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
value += char + input[current];
|
|
77
|
+
char = input[++current];
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
value += char;
|
|
81
|
+
char = input[++current];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
char = input[++current];
|
|
85
|
+
if (!danglingQuote) {
|
|
86
|
+
tokens.push({
|
|
87
|
+
type: 'string',
|
|
88
|
+
value,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
let WHITESPACE = /\s/;
|
|
94
|
+
if (char && WHITESPACE.test(char)) {
|
|
95
|
+
current++;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
let NUMBERS = /[0-9]/;
|
|
99
|
+
if ((char && NUMBERS.test(char)) || char === '-' || char === '.') {
|
|
100
|
+
let value = '';
|
|
101
|
+
if (char === '-') {
|
|
102
|
+
value += char;
|
|
103
|
+
char = input[++current];
|
|
104
|
+
}
|
|
105
|
+
while ((char && NUMBERS.test(char)) || char === '.') {
|
|
106
|
+
value += char;
|
|
107
|
+
char = input[++current];
|
|
108
|
+
}
|
|
109
|
+
tokens.push({
|
|
110
|
+
type: 'number',
|
|
111
|
+
value,
|
|
112
|
+
});
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
let LETTERS = /[a-z]/i;
|
|
116
|
+
if (char && LETTERS.test(char)) {
|
|
117
|
+
let value = '';
|
|
118
|
+
while (char && LETTERS.test(char)) {
|
|
119
|
+
if (current === input.length) {
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
value += char;
|
|
123
|
+
char = input[++current];
|
|
124
|
+
}
|
|
125
|
+
if (value == 'true' || value == 'false') {
|
|
126
|
+
tokens.push({
|
|
127
|
+
type: 'name',
|
|
128
|
+
value,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
throw new Error(`Invalid token: ${value} is not a valid token!`);
|
|
133
|
+
}
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
current++;
|
|
137
|
+
}
|
|
138
|
+
return tokens;
|
|
139
|
+
}, strip = (tokens) => {
|
|
140
|
+
if (tokens.length === 0) {
|
|
141
|
+
return tokens;
|
|
142
|
+
}
|
|
143
|
+
let lastToken = tokens[tokens.length - 1];
|
|
144
|
+
switch (lastToken.type) {
|
|
145
|
+
case 'separator':
|
|
146
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
147
|
+
return strip(tokens);
|
|
148
|
+
break;
|
|
149
|
+
case 'number':
|
|
150
|
+
let lastCharacterOfLastToken = lastToken.value[lastToken.value.length - 1];
|
|
151
|
+
if (lastCharacterOfLastToken === '.' || lastCharacterOfLastToken === '-') {
|
|
152
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
153
|
+
return strip(tokens);
|
|
154
|
+
}
|
|
155
|
+
case 'string':
|
|
156
|
+
let tokenBeforeTheLastToken = tokens[tokens.length - 2];
|
|
157
|
+
if (tokenBeforeTheLastToken?.type === 'delimiter') {
|
|
158
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
159
|
+
return strip(tokens);
|
|
160
|
+
}
|
|
161
|
+
else if (tokenBeforeTheLastToken?.type === 'brace' && tokenBeforeTheLastToken.value === '{') {
|
|
162
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
163
|
+
return strip(tokens);
|
|
164
|
+
}
|
|
165
|
+
break;
|
|
166
|
+
case 'delimiter':
|
|
167
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
168
|
+
return strip(tokens);
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
return tokens;
|
|
172
|
+
}, unstrip = (tokens) => {
|
|
173
|
+
let tail = [];
|
|
174
|
+
tokens.map((token) => {
|
|
175
|
+
if (token.type === 'brace') {
|
|
176
|
+
if (token.value === '{') {
|
|
177
|
+
tail.push('}');
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
tail.splice(tail.lastIndexOf('}'), 1);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
if (token.type === 'paren') {
|
|
184
|
+
if (token.value === '[') {
|
|
185
|
+
tail.push(']');
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
tail.splice(tail.lastIndexOf(']'), 1);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
if (tail.length > 0) {
|
|
193
|
+
tail.reverse().map((item) => {
|
|
194
|
+
if (item === '}') {
|
|
195
|
+
tokens.push({
|
|
196
|
+
type: 'brace',
|
|
197
|
+
value: '}',
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
else if (item === ']') {
|
|
201
|
+
tokens.push({
|
|
202
|
+
type: 'paren',
|
|
203
|
+
value: ']',
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return tokens;
|
|
209
|
+
}, generate = (tokens) => {
|
|
210
|
+
let output = '';
|
|
211
|
+
tokens.map((token) => {
|
|
212
|
+
switch (token.type) {
|
|
213
|
+
case 'string':
|
|
214
|
+
output += '"' + token.value + '"';
|
|
215
|
+
break;
|
|
216
|
+
default:
|
|
217
|
+
output += token.value;
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
return output;
|
|
222
|
+
}, partialParse = (input) => JSON.parse(generate(unstrip(strip(tokenize(input)))));
|
|
223
|
+
exports.partialParse = partialParse;
|
|
224
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/_vendor/partial-json-parser/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
const tokenize = (input) => {
|
|
2
|
+
let current = 0;
|
|
3
|
+
let tokens = [];
|
|
4
|
+
while (current < input.length) {
|
|
5
|
+
let char = input[current];
|
|
6
|
+
if (char === '\\') {
|
|
7
|
+
current++;
|
|
8
|
+
continue;
|
|
9
|
+
}
|
|
10
|
+
if (char === '{') {
|
|
11
|
+
tokens.push({
|
|
12
|
+
type: 'brace',
|
|
13
|
+
value: '{',
|
|
14
|
+
});
|
|
15
|
+
current++;
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (char === '}') {
|
|
19
|
+
tokens.push({
|
|
20
|
+
type: 'brace',
|
|
21
|
+
value: '}',
|
|
22
|
+
});
|
|
23
|
+
current++;
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (char === '[') {
|
|
27
|
+
tokens.push({
|
|
28
|
+
type: 'paren',
|
|
29
|
+
value: '[',
|
|
30
|
+
});
|
|
31
|
+
current++;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (char === ']') {
|
|
35
|
+
tokens.push({
|
|
36
|
+
type: 'paren',
|
|
37
|
+
value: ']',
|
|
38
|
+
});
|
|
39
|
+
current++;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (char === ':') {
|
|
43
|
+
tokens.push({
|
|
44
|
+
type: 'separator',
|
|
45
|
+
value: ':',
|
|
46
|
+
});
|
|
47
|
+
current++;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (char === ',') {
|
|
51
|
+
tokens.push({
|
|
52
|
+
type: 'delimiter',
|
|
53
|
+
value: ',',
|
|
54
|
+
});
|
|
55
|
+
current++;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (char === '"') {
|
|
59
|
+
let value = '';
|
|
60
|
+
let danglingQuote = false;
|
|
61
|
+
char = input[++current];
|
|
62
|
+
while (char !== '"') {
|
|
63
|
+
if (current === input.length) {
|
|
64
|
+
danglingQuote = true;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
if (char === '\\') {
|
|
68
|
+
current++;
|
|
69
|
+
if (current === input.length) {
|
|
70
|
+
danglingQuote = true;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
value += char + input[current];
|
|
74
|
+
char = input[++current];
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
value += char;
|
|
78
|
+
char = input[++current];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
char = input[++current];
|
|
82
|
+
if (!danglingQuote) {
|
|
83
|
+
tokens.push({
|
|
84
|
+
type: 'string',
|
|
85
|
+
value,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
let WHITESPACE = /\s/;
|
|
91
|
+
if (char && WHITESPACE.test(char)) {
|
|
92
|
+
current++;
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
let NUMBERS = /[0-9]/;
|
|
96
|
+
if ((char && NUMBERS.test(char)) || char === '-' || char === '.') {
|
|
97
|
+
let value = '';
|
|
98
|
+
if (char === '-') {
|
|
99
|
+
value += char;
|
|
100
|
+
char = input[++current];
|
|
101
|
+
}
|
|
102
|
+
while ((char && NUMBERS.test(char)) || char === '.') {
|
|
103
|
+
value += char;
|
|
104
|
+
char = input[++current];
|
|
105
|
+
}
|
|
106
|
+
tokens.push({
|
|
107
|
+
type: 'number',
|
|
108
|
+
value,
|
|
109
|
+
});
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
let LETTERS = /[a-z]/i;
|
|
113
|
+
if (char && LETTERS.test(char)) {
|
|
114
|
+
let value = '';
|
|
115
|
+
while (char && LETTERS.test(char)) {
|
|
116
|
+
if (current === input.length) {
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
value += char;
|
|
120
|
+
char = input[++current];
|
|
121
|
+
}
|
|
122
|
+
if (value == 'true' || value == 'false') {
|
|
123
|
+
tokens.push({
|
|
124
|
+
type: 'name',
|
|
125
|
+
value,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
throw new Error(`Invalid token: ${value} is not a valid token!`);
|
|
130
|
+
}
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
current++;
|
|
134
|
+
}
|
|
135
|
+
return tokens;
|
|
136
|
+
}, strip = (tokens) => {
|
|
137
|
+
if (tokens.length === 0) {
|
|
138
|
+
return tokens;
|
|
139
|
+
}
|
|
140
|
+
let lastToken = tokens[tokens.length - 1];
|
|
141
|
+
switch (lastToken.type) {
|
|
142
|
+
case 'separator':
|
|
143
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
144
|
+
return strip(tokens);
|
|
145
|
+
break;
|
|
146
|
+
case 'number':
|
|
147
|
+
let lastCharacterOfLastToken = lastToken.value[lastToken.value.length - 1];
|
|
148
|
+
if (lastCharacterOfLastToken === '.' || lastCharacterOfLastToken === '-') {
|
|
149
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
150
|
+
return strip(tokens);
|
|
151
|
+
}
|
|
152
|
+
case 'string':
|
|
153
|
+
let tokenBeforeTheLastToken = tokens[tokens.length - 2];
|
|
154
|
+
if (tokenBeforeTheLastToken?.type === 'delimiter') {
|
|
155
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
156
|
+
return strip(tokens);
|
|
157
|
+
}
|
|
158
|
+
else if (tokenBeforeTheLastToken?.type === 'brace' && tokenBeforeTheLastToken.value === '{') {
|
|
159
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
160
|
+
return strip(tokens);
|
|
161
|
+
}
|
|
162
|
+
break;
|
|
163
|
+
case 'delimiter':
|
|
164
|
+
tokens = tokens.slice(0, tokens.length - 1);
|
|
165
|
+
return strip(tokens);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
return tokens;
|
|
169
|
+
}, unstrip = (tokens) => {
|
|
170
|
+
let tail = [];
|
|
171
|
+
tokens.map((token) => {
|
|
172
|
+
if (token.type === 'brace') {
|
|
173
|
+
if (token.value === '{') {
|
|
174
|
+
tail.push('}');
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
tail.splice(tail.lastIndexOf('}'), 1);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (token.type === 'paren') {
|
|
181
|
+
if (token.value === '[') {
|
|
182
|
+
tail.push(']');
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
tail.splice(tail.lastIndexOf(']'), 1);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
if (tail.length > 0) {
|
|
190
|
+
tail.reverse().map((item) => {
|
|
191
|
+
if (item === '}') {
|
|
192
|
+
tokens.push({
|
|
193
|
+
type: 'brace',
|
|
194
|
+
value: '}',
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
else if (item === ']') {
|
|
198
|
+
tokens.push({
|
|
199
|
+
type: 'paren',
|
|
200
|
+
value: ']',
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
return tokens;
|
|
206
|
+
}, generate = (tokens) => {
|
|
207
|
+
let output = '';
|
|
208
|
+
tokens.map((token) => {
|
|
209
|
+
switch (token.type) {
|
|
210
|
+
case 'string':
|
|
211
|
+
output += '"' + token.value + '"';
|
|
212
|
+
break;
|
|
213
|
+
default:
|
|
214
|
+
output += token.value;
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
return output;
|
|
219
|
+
}, partialParse = (input) => JSON.parse(generate(unstrip(strip(tokenize(input)))));
|
|
220
|
+
export { partialParse };
|
|
221
|
+
//# sourceMappingURL=parser.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.mjs","sourceRoot":"","sources":["../../src/_vendor/partial-json-parser/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
|
|
2
|
+
import * as Core from '@anthropic-ai/sdk/core';
|
|
3
|
+
import { AnthropicError, APIUserAbortError } from '@anthropic-ai/sdk/error';
|
|
4
|
+
import { ToolsBetaContentBlock, Messages, ToolsBetaMessage, ToolsBetaMessageStreamEvent, ToolsBetaMessageParam, MessageCreateParams, MessageCreateParamsBase } from '@anthropic-ai/sdk/resources/beta/tools/messages';
|
|
5
|
+
import { type ReadableStream } from '@anthropic-ai/sdk/_shims/index';
|
|
6
|
+
export interface MessageStreamEvents {
|
|
7
|
+
connect: () => void;
|
|
8
|
+
streamEvent: (event: ToolsBetaMessageStreamEvent, snapshot: ToolsBetaMessage) => void;
|
|
9
|
+
text: (textDelta: string, textSnapshot: string) => void;
|
|
10
|
+
inputJson: (jsonDelta: string, jsonSnapshot: unknown) => void;
|
|
11
|
+
message: (message: ToolsBetaMessage) => void;
|
|
12
|
+
contentBlock: (content: ToolsBetaContentBlock) => void;
|
|
13
|
+
finalMessage: (message: ToolsBetaMessage) => void;
|
|
14
|
+
error: (error: AnthropicError) => void;
|
|
15
|
+
abort: (error: APIUserAbortError) => void;
|
|
16
|
+
end: () => void;
|
|
17
|
+
}
|
|
18
|
+
export declare class ToolsBetaMessageStream implements AsyncIterable<ToolsBetaMessageStreamEvent> {
|
|
19
|
+
#private;
|
|
20
|
+
messages: ToolsBetaMessageParam[];
|
|
21
|
+
receivedMessages: ToolsBetaMessage[];
|
|
22
|
+
controller: AbortController;
|
|
23
|
+
constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Intended for use on the frontend, consuming a stream produced with
|
|
26
|
+
* `.toReadableStream()` on the backend.
|
|
27
|
+
*
|
|
28
|
+
* Note that messages sent to the model do not appear in `.on('message')`
|
|
29
|
+
* in this context.
|
|
30
|
+
*/
|
|
31
|
+
static fromReadableStream(stream: ReadableStream): ToolsBetaMessageStream;
|
|
32
|
+
static createMessage(messages: Messages, params: MessageCreateParamsBase, options?: Core.RequestOptions): ToolsBetaMessageStream;
|
|
33
|
+
protected _run(executor: () => Promise<any>): void;
|
|
34
|
+
protected _addMessageParam(message: ToolsBetaMessageParam): void;
|
|
35
|
+
protected _addMessage(message: ToolsBetaMessage, emit?: boolean): void;
|
|
36
|
+
protected _createMessage(messages: Messages, params: MessageCreateParams, options?: Core.RequestOptions): Promise<void>;
|
|
37
|
+
protected _connected(): void;
|
|
38
|
+
get ended(): boolean;
|
|
39
|
+
get errored(): boolean;
|
|
40
|
+
get aborted(): boolean;
|
|
41
|
+
abort(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Adds the listener function to the end of the listeners array for the event.
|
|
44
|
+
* No checks are made to see if the listener has already been added. Multiple calls passing
|
|
45
|
+
* the same combination of event and listener will result in the listener being added, and
|
|
46
|
+
* called, multiple times.
|
|
47
|
+
* @returns this MessageStream, so that calls can be chained
|
|
48
|
+
*/
|
|
49
|
+
on<Event extends keyof MessageStreamEvents>(event: Event, listener: MessageStreamEvents[Event]): this;
|
|
50
|
+
/**
|
|
51
|
+
* Removes the specified listener from the listener array for the event.
|
|
52
|
+
* off() will remove, at most, one instance of a listener from the listener array. If any single
|
|
53
|
+
* listener has been added multiple times to the listener array for the specified event, then
|
|
54
|
+
* off() must be called multiple times to remove each instance.
|
|
55
|
+
* @returns this MessageStream, so that calls can be chained
|
|
56
|
+
*/
|
|
57
|
+
off<Event extends keyof MessageStreamEvents>(event: Event, listener: MessageStreamEvents[Event]): this;
|
|
58
|
+
/**
|
|
59
|
+
* Adds a one-time listener function for the event. The next time the event is triggered,
|
|
60
|
+
* this listener is removed and then invoked.
|
|
61
|
+
* @returns this MessageStream, so that calls can be chained
|
|
62
|
+
*/
|
|
63
|
+
once<Event extends keyof MessageStreamEvents>(event: Event, listener: MessageStreamEvents[Event]): this;
|
|
64
|
+
/**
|
|
65
|
+
* This is similar to `.once()`, but returns a Promise that resolves the next time
|
|
66
|
+
* the event is triggered, instead of calling a listener callback.
|
|
67
|
+
* @returns a Promise that resolves the next time given event is triggered,
|
|
68
|
+
* or rejects if an error is emitted. (If you request the 'error' event,
|
|
69
|
+
* returns a promise that resolves with the error).
|
|
70
|
+
*
|
|
71
|
+
* Example:
|
|
72
|
+
*
|
|
73
|
+
* const message = await stream.emitted('message') // rejects if the stream errors
|
|
74
|
+
*/
|
|
75
|
+
emitted<Event extends keyof MessageStreamEvents>(event: Event): Promise<Parameters<MessageStreamEvents[Event]> extends [infer Param] ? Param : Parameters<MessageStreamEvents[Event]> extends [] ? void : Parameters<MessageStreamEvents[Event]>>;
|
|
76
|
+
done(): Promise<void>;
|
|
77
|
+
get currentMessage(): ToolsBetaMessage | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* @returns a promise that resolves with the the final assistant Message response,
|
|
80
|
+
* or rejects if an error occurred or the stream ended prematurely without producing a Message.
|
|
81
|
+
*/
|
|
82
|
+
finalMessage(): Promise<ToolsBetaMessage>;
|
|
83
|
+
/**
|
|
84
|
+
* @returns a promise that resolves with the the final assistant Message's text response, concatenated
|
|
85
|
+
* together if there are more than one text blocks.
|
|
86
|
+
* Rejects if an error occurred or the stream ended prematurely without producing a Message.
|
|
87
|
+
*/
|
|
88
|
+
finalText(): Promise<string>;
|
|
89
|
+
protected _emit<Event extends keyof MessageStreamEvents>(event: Event, ...args: Parameters<MessageStreamEvents[Event]>): void;
|
|
90
|
+
protected _emitFinal(): void;
|
|
91
|
+
protected _fromReadableStream(readableStream: ReadableStream, options?: Core.RequestOptions): Promise<void>;
|
|
92
|
+
[Symbol.asyncIterator](): AsyncIterator<ToolsBetaMessageStreamEvent>;
|
|
93
|
+
toReadableStream(): ReadableStream;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=ToolsBetaMessageStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsBetaMessageStream.d.ts","sourceRoot":"","sources":["../src/lib/ToolsBetaMessageStream.ts"],"names":[],"mappings":"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"}
|