@ai-sdk/anthropic 2.0.109 → 2.0.110
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 +10 -0
- package/dist/index.d.mts +107 -137
- package/dist/index.d.ts +107 -137
- package/dist/index.js +413 -400
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +384 -368
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +406 -393
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +383 -367
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @ai-sdk/anthropic
|
|
2
2
|
|
|
3
|
+
## 2.0.110
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a7c0108: Defer validation schema construction until first use to reduce provider import time.
|
|
8
|
+
- 58cb8c9: Defer construction of Anthropic provider option schemas until they are first used to reduce package import time.
|
|
9
|
+
- Updated dependencies [d7b0ffa]
|
|
10
|
+
- Updated dependencies [4146790]
|
|
11
|
+
- @ai-sdk/provider-utils@3.0.42
|
|
12
|
+
|
|
3
13
|
## 2.0.109
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { JSONObject, ProviderV2, LanguageModelV2 } from '@ai-sdk/provider';
|
|
2
|
-
import { z } from 'zod/v4';
|
|
3
2
|
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
4
|
-
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { InferValidator, FetchFunction } from '@ai-sdk/provider-utils';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Represents a single iteration in the usage breakdown.
|
|
@@ -173,141 +172,112 @@ type AnthropicMessagesModelId = 'claude-3-5-haiku-20241022' | 'claude-3-5-haiku-
|
|
|
173
172
|
/**
|
|
174
173
|
* Anthropic provider options for system messages.
|
|
175
174
|
*/
|
|
176
|
-
declare const anthropicSystemMessageProviderOptions:
|
|
177
|
-
clearAt
|
|
178
|
-
effort
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
blockBinding:
|
|
209
|
-
prefixMismatchBehavior:
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
keep: z.ZodOptional<z.ZodObject<{
|
|
283
|
-
type: z.ZodLiteral<"tool_uses">;
|
|
284
|
-
value: z.ZodNumber;
|
|
285
|
-
}, z.core.$strip>>;
|
|
286
|
-
clearAtLeast: z.ZodOptional<z.ZodObject<{
|
|
287
|
-
type: z.ZodLiteral<"input_tokens">;
|
|
288
|
-
value: z.ZodNumber;
|
|
289
|
-
}, z.core.$strip>>;
|
|
290
|
-
clearToolInputs: z.ZodOptional<z.ZodBoolean>;
|
|
291
|
-
excludeTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
292
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
293
|
-
type: z.ZodLiteral<"clear_thinking_20251015">;
|
|
294
|
-
keep: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodObject<{
|
|
295
|
-
type: z.ZodLiteral<"thinking_turns">;
|
|
296
|
-
value: z.ZodNumber;
|
|
297
|
-
}, z.core.$strip>]>>;
|
|
298
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
299
|
-
type: z.ZodLiteral<"compact_20260112">;
|
|
300
|
-
trigger: z.ZodOptional<z.ZodObject<{
|
|
301
|
-
type: z.ZodLiteral<"input_tokens">;
|
|
302
|
-
value: z.ZodNumber;
|
|
303
|
-
}, z.core.$strip>>;
|
|
304
|
-
pauseAfterCompaction: z.ZodOptional<z.ZodBoolean>;
|
|
305
|
-
instructions: z.ZodOptional<z.ZodString>;
|
|
306
|
-
}, z.core.$strip>]>>;
|
|
307
|
-
}, z.core.$strip>>;
|
|
308
|
-
anthropicBeta: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
309
|
-
}, z.core.$strip>;
|
|
310
|
-
type AnthropicProviderOptions = z.infer<typeof anthropicProviderOptions>;
|
|
175
|
+
declare const anthropicSystemMessageProviderOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
176
|
+
clearAt?: "next_user_message" | undefined;
|
|
177
|
+
effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
|
|
178
|
+
toolChanges?: ({
|
|
179
|
+
type: "tool_addition";
|
|
180
|
+
toolName: string;
|
|
181
|
+
} | {
|
|
182
|
+
type: "tool_removal";
|
|
183
|
+
toolName: string;
|
|
184
|
+
})[] | undefined;
|
|
185
|
+
}>;
|
|
186
|
+
type AnthropicSystemMessageProviderOptions = InferValidator<typeof anthropicSystemMessageProviderOptions>;
|
|
187
|
+
declare const anthropicProviderOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
188
|
+
sendReasoning?: boolean | undefined;
|
|
189
|
+
structuredOutputMode?: "outputFormat" | "jsonTool" | "auto" | undefined;
|
|
190
|
+
thinking?: {
|
|
191
|
+
type: "adaptive";
|
|
192
|
+
display?: "omitted" | "summarized" | "updates" | undefined;
|
|
193
|
+
blockBinding?: {
|
|
194
|
+
prefixMismatchBehavior: "drop_block";
|
|
195
|
+
} | undefined;
|
|
196
|
+
} | {
|
|
197
|
+
type: "enabled";
|
|
198
|
+
budgetTokens?: number | undefined;
|
|
199
|
+
blockBinding?: {
|
|
200
|
+
prefixMismatchBehavior: "drop_block";
|
|
201
|
+
} | undefined;
|
|
202
|
+
} | {
|
|
203
|
+
type: "disabled";
|
|
204
|
+
} | {
|
|
205
|
+
type: "between_tools";
|
|
206
|
+
} | {
|
|
207
|
+
blockBinding: {
|
|
208
|
+
prefixMismatchBehavior: "drop_block";
|
|
209
|
+
};
|
|
210
|
+
} | undefined;
|
|
211
|
+
disableParallelToolUse?: boolean | undefined;
|
|
212
|
+
cacheControl?: {
|
|
213
|
+
type: "ephemeral";
|
|
214
|
+
ttl?: "5m" | "1h" | undefined;
|
|
215
|
+
} | undefined;
|
|
216
|
+
metadata?: {
|
|
217
|
+
userId?: string | undefined;
|
|
218
|
+
} | undefined;
|
|
219
|
+
container?: {
|
|
220
|
+
id?: string | undefined;
|
|
221
|
+
skills?: {
|
|
222
|
+
type: "anthropic" | "custom";
|
|
223
|
+
skillId: string;
|
|
224
|
+
version?: string | undefined;
|
|
225
|
+
}[] | undefined;
|
|
226
|
+
} | undefined;
|
|
227
|
+
effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
|
|
228
|
+
taskBudget?: {
|
|
229
|
+
type: "tokens";
|
|
230
|
+
total: number;
|
|
231
|
+
remaining?: number | undefined;
|
|
232
|
+
} | undefined;
|
|
233
|
+
speed?: "fast" | "standard" | undefined;
|
|
234
|
+
inferenceGeo?: "us" | "global" | undefined;
|
|
235
|
+
fallbacks?: "default" | {
|
|
236
|
+
model: string;
|
|
237
|
+
max_tokens?: number | undefined;
|
|
238
|
+
thinking?: Record<string, unknown> | undefined;
|
|
239
|
+
output_config?: Record<string, unknown> | undefined;
|
|
240
|
+
speed?: "fast" | "standard" | undefined;
|
|
241
|
+
}[] | undefined;
|
|
242
|
+
contextManagement?: {
|
|
243
|
+
edits: ({
|
|
244
|
+
type: "clear_tool_uses_20250919";
|
|
245
|
+
trigger?: {
|
|
246
|
+
type: "input_tokens";
|
|
247
|
+
value: number;
|
|
248
|
+
} | {
|
|
249
|
+
type: "tool_uses";
|
|
250
|
+
value: number;
|
|
251
|
+
} | undefined;
|
|
252
|
+
keep?: {
|
|
253
|
+
type: "tool_uses";
|
|
254
|
+
value: number;
|
|
255
|
+
} | undefined;
|
|
256
|
+
clearAtLeast?: {
|
|
257
|
+
type: "input_tokens";
|
|
258
|
+
value: number;
|
|
259
|
+
} | undefined;
|
|
260
|
+
clearToolInputs?: boolean | undefined;
|
|
261
|
+
excludeTools?: string[] | undefined;
|
|
262
|
+
} | {
|
|
263
|
+
type: "clear_thinking_20251015";
|
|
264
|
+
keep?: "all" | {
|
|
265
|
+
type: "thinking_turns";
|
|
266
|
+
value: number;
|
|
267
|
+
} | undefined;
|
|
268
|
+
} | {
|
|
269
|
+
type: "compact_20260112";
|
|
270
|
+
trigger?: {
|
|
271
|
+
type: "input_tokens";
|
|
272
|
+
value: number;
|
|
273
|
+
} | undefined;
|
|
274
|
+
pauseAfterCompaction?: boolean | undefined;
|
|
275
|
+
instructions?: string | undefined;
|
|
276
|
+
})[];
|
|
277
|
+
} | undefined;
|
|
278
|
+
anthropicBeta?: string[] | undefined;
|
|
279
|
+
}>;
|
|
280
|
+
type AnthropicProviderOptions = InferValidator<typeof anthropicProviderOptions>;
|
|
311
281
|
|
|
312
282
|
/**
|
|
313
283
|
* Member tools of the computer toolset. Each member is returned by the API as
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { JSONObject, ProviderV2, LanguageModelV2 } from '@ai-sdk/provider';
|
|
2
|
-
import { z } from 'zod/v4';
|
|
3
2
|
import * as _ai_sdk_provider_utils from '@ai-sdk/provider-utils';
|
|
4
|
-
import { FetchFunction } from '@ai-sdk/provider-utils';
|
|
3
|
+
import { InferValidator, FetchFunction } from '@ai-sdk/provider-utils';
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Represents a single iteration in the usage breakdown.
|
|
@@ -173,141 +172,112 @@ type AnthropicMessagesModelId = 'claude-3-5-haiku-20241022' | 'claude-3-5-haiku-
|
|
|
173
172
|
/**
|
|
174
173
|
* Anthropic provider options for system messages.
|
|
175
174
|
*/
|
|
176
|
-
declare const anthropicSystemMessageProviderOptions:
|
|
177
|
-
clearAt
|
|
178
|
-
effort
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
blockBinding:
|
|
209
|
-
prefixMismatchBehavior:
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
keep: z.ZodOptional<z.ZodObject<{
|
|
283
|
-
type: z.ZodLiteral<"tool_uses">;
|
|
284
|
-
value: z.ZodNumber;
|
|
285
|
-
}, z.core.$strip>>;
|
|
286
|
-
clearAtLeast: z.ZodOptional<z.ZodObject<{
|
|
287
|
-
type: z.ZodLiteral<"input_tokens">;
|
|
288
|
-
value: z.ZodNumber;
|
|
289
|
-
}, z.core.$strip>>;
|
|
290
|
-
clearToolInputs: z.ZodOptional<z.ZodBoolean>;
|
|
291
|
-
excludeTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
292
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
293
|
-
type: z.ZodLiteral<"clear_thinking_20251015">;
|
|
294
|
-
keep: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodObject<{
|
|
295
|
-
type: z.ZodLiteral<"thinking_turns">;
|
|
296
|
-
value: z.ZodNumber;
|
|
297
|
-
}, z.core.$strip>]>>;
|
|
298
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
299
|
-
type: z.ZodLiteral<"compact_20260112">;
|
|
300
|
-
trigger: z.ZodOptional<z.ZodObject<{
|
|
301
|
-
type: z.ZodLiteral<"input_tokens">;
|
|
302
|
-
value: z.ZodNumber;
|
|
303
|
-
}, z.core.$strip>>;
|
|
304
|
-
pauseAfterCompaction: z.ZodOptional<z.ZodBoolean>;
|
|
305
|
-
instructions: z.ZodOptional<z.ZodString>;
|
|
306
|
-
}, z.core.$strip>]>>;
|
|
307
|
-
}, z.core.$strip>>;
|
|
308
|
-
anthropicBeta: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
309
|
-
}, z.core.$strip>;
|
|
310
|
-
type AnthropicProviderOptions = z.infer<typeof anthropicProviderOptions>;
|
|
175
|
+
declare const anthropicSystemMessageProviderOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
176
|
+
clearAt?: "next_user_message" | undefined;
|
|
177
|
+
effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
|
|
178
|
+
toolChanges?: ({
|
|
179
|
+
type: "tool_addition";
|
|
180
|
+
toolName: string;
|
|
181
|
+
} | {
|
|
182
|
+
type: "tool_removal";
|
|
183
|
+
toolName: string;
|
|
184
|
+
})[] | undefined;
|
|
185
|
+
}>;
|
|
186
|
+
type AnthropicSystemMessageProviderOptions = InferValidator<typeof anthropicSystemMessageProviderOptions>;
|
|
187
|
+
declare const anthropicProviderOptions: _ai_sdk_provider_utils.LazySchema<{
|
|
188
|
+
sendReasoning?: boolean | undefined;
|
|
189
|
+
structuredOutputMode?: "outputFormat" | "jsonTool" | "auto" | undefined;
|
|
190
|
+
thinking?: {
|
|
191
|
+
type: "adaptive";
|
|
192
|
+
display?: "omitted" | "summarized" | "updates" | undefined;
|
|
193
|
+
blockBinding?: {
|
|
194
|
+
prefixMismatchBehavior: "drop_block";
|
|
195
|
+
} | undefined;
|
|
196
|
+
} | {
|
|
197
|
+
type: "enabled";
|
|
198
|
+
budgetTokens?: number | undefined;
|
|
199
|
+
blockBinding?: {
|
|
200
|
+
prefixMismatchBehavior: "drop_block";
|
|
201
|
+
} | undefined;
|
|
202
|
+
} | {
|
|
203
|
+
type: "disabled";
|
|
204
|
+
} | {
|
|
205
|
+
type: "between_tools";
|
|
206
|
+
} | {
|
|
207
|
+
blockBinding: {
|
|
208
|
+
prefixMismatchBehavior: "drop_block";
|
|
209
|
+
};
|
|
210
|
+
} | undefined;
|
|
211
|
+
disableParallelToolUse?: boolean | undefined;
|
|
212
|
+
cacheControl?: {
|
|
213
|
+
type: "ephemeral";
|
|
214
|
+
ttl?: "5m" | "1h" | undefined;
|
|
215
|
+
} | undefined;
|
|
216
|
+
metadata?: {
|
|
217
|
+
userId?: string | undefined;
|
|
218
|
+
} | undefined;
|
|
219
|
+
container?: {
|
|
220
|
+
id?: string | undefined;
|
|
221
|
+
skills?: {
|
|
222
|
+
type: "anthropic" | "custom";
|
|
223
|
+
skillId: string;
|
|
224
|
+
version?: string | undefined;
|
|
225
|
+
}[] | undefined;
|
|
226
|
+
} | undefined;
|
|
227
|
+
effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
|
|
228
|
+
taskBudget?: {
|
|
229
|
+
type: "tokens";
|
|
230
|
+
total: number;
|
|
231
|
+
remaining?: number | undefined;
|
|
232
|
+
} | undefined;
|
|
233
|
+
speed?: "fast" | "standard" | undefined;
|
|
234
|
+
inferenceGeo?: "us" | "global" | undefined;
|
|
235
|
+
fallbacks?: "default" | {
|
|
236
|
+
model: string;
|
|
237
|
+
max_tokens?: number | undefined;
|
|
238
|
+
thinking?: Record<string, unknown> | undefined;
|
|
239
|
+
output_config?: Record<string, unknown> | undefined;
|
|
240
|
+
speed?: "fast" | "standard" | undefined;
|
|
241
|
+
}[] | undefined;
|
|
242
|
+
contextManagement?: {
|
|
243
|
+
edits: ({
|
|
244
|
+
type: "clear_tool_uses_20250919";
|
|
245
|
+
trigger?: {
|
|
246
|
+
type: "input_tokens";
|
|
247
|
+
value: number;
|
|
248
|
+
} | {
|
|
249
|
+
type: "tool_uses";
|
|
250
|
+
value: number;
|
|
251
|
+
} | undefined;
|
|
252
|
+
keep?: {
|
|
253
|
+
type: "tool_uses";
|
|
254
|
+
value: number;
|
|
255
|
+
} | undefined;
|
|
256
|
+
clearAtLeast?: {
|
|
257
|
+
type: "input_tokens";
|
|
258
|
+
value: number;
|
|
259
|
+
} | undefined;
|
|
260
|
+
clearToolInputs?: boolean | undefined;
|
|
261
|
+
excludeTools?: string[] | undefined;
|
|
262
|
+
} | {
|
|
263
|
+
type: "clear_thinking_20251015";
|
|
264
|
+
keep?: "all" | {
|
|
265
|
+
type: "thinking_turns";
|
|
266
|
+
value: number;
|
|
267
|
+
} | undefined;
|
|
268
|
+
} | {
|
|
269
|
+
type: "compact_20260112";
|
|
270
|
+
trigger?: {
|
|
271
|
+
type: "input_tokens";
|
|
272
|
+
value: number;
|
|
273
|
+
} | undefined;
|
|
274
|
+
pauseAfterCompaction?: boolean | undefined;
|
|
275
|
+
instructions?: string | undefined;
|
|
276
|
+
})[];
|
|
277
|
+
} | undefined;
|
|
278
|
+
anthropicBeta?: string[] | undefined;
|
|
279
|
+
}>;
|
|
280
|
+
type AnthropicProviderOptions = InferValidator<typeof anthropicProviderOptions>;
|
|
311
281
|
|
|
312
282
|
/**
|
|
313
283
|
* Member tools of the computer toolset. Each member is returned by the API as
|