@xsai/text-messages 1.0.0-beta.4 → 1.0.0-beta.6

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/dist/index.d.ts CHANGED
@@ -1,15 +1,6 @@
1
1
  import { HttpOptions } from '@xsai/shared';
2
2
  import { LanguageModel } from '@xsai/text';
3
3
 
4
- interface MessagesCitation {
5
- [key: string]: unknown;
6
- type: string;
7
- }
8
- interface MessagesPartMetadata {
9
- citations?: MessagesCitation[];
10
- signature?: string;
11
- }
12
-
13
4
  interface MessagesCacheControl {
14
5
  ttl?: '1h' | '5m';
15
6
  type: 'ephemeral';
@@ -45,10 +36,28 @@ type MessagesThinkingConfig = {
45
36
  type: 'between_tools' | 'disabled';
46
37
  };
47
38
 
39
+ interface MessagesCitation {
40
+ [key: string]: unknown;
41
+ type: string;
42
+ }
43
+ interface MessagesMessageMetadata {
44
+ /** Clears a mid-conversation system message after one turn. Needs its beta in `betas`. */
45
+ clearAt?: 'next_user_message';
46
+ }
47
+ interface MessagesPartMetadata {
48
+ /** Places a cache breakpoint at the end of this text part. */
49
+ cacheControl?: MessagesCacheControl;
50
+ citations?: MessagesCitation[];
51
+ signature?: string;
52
+ }
53
+
48
54
  declare module '@xsai/text' {
49
55
  interface LanguageModelProviderOptions {
50
56
  messages?: MessagesProviderOptions;
51
57
  }
58
+ interface MessageProviderMetadata {
59
+ messages?: MessagesMessageMetadata;
60
+ }
52
61
  interface PartProviderMetadata {
53
62
  messages?: MessagesPartMetadata;
54
63
  }
@@ -56,4 +65,4 @@ declare module '@xsai/text' {
56
65
  declare const messages: (options: HttpOptions) => LanguageModel;
57
66
 
58
67
  export { messages };
59
- export type { MessagesCacheControl, MessagesCitation, MessagesMcpServer, MessagesPartMetadata, MessagesProviderOptions, MessagesProviderTool, MessagesThinkingConfig };
68
+ export type { MessagesCacheControl, MessagesCitation, MessagesMcpServer, MessagesMessageMetadata, MessagesPartMetadata, MessagesProviderOptions, MessagesProviderTool, MessagesThinkingConfig };
package/dist/index.js CHANGED
@@ -71,7 +71,7 @@ class MessagesEventStream extends WireEventStream {
71
71
  this.deltaUsage = event.usage;
72
72
  break;
73
73
  case "message_start":
74
- builder.meta({ messageId: event.message.id });
74
+ builder.meta({ messageId: event.message.id, model: event.message.model });
75
75
  this.startUsage = event.message.usage;
76
76
  break;
77
77
  case "message_stop": {
@@ -233,6 +233,7 @@ const parseDataUrl = (str) => {
233
233
  };
234
234
  };
235
235
  const normalizeInputTextPart = (part) => ({
236
+ cache_control: part.providerMetadata?.messages?.cacheControl,
236
237
  // TODO: Move citations to a first-class TextPart field.
237
238
  citations: part.providerMetadata?.messages?.citations,
238
239
  text: part.text,
@@ -309,6 +310,8 @@ const normalizeToolCallPart = (part) => ({
309
310
  });
310
311
  const normalizeUserPart = (part) => {
311
312
  switch (part.type) {
313
+ case "audio":
314
+ throw new XSAIError("invalid-input", "Audio parts are not supported on the Messages API");
312
315
  case "file":
313
316
  return normalizeFilePart(part);
314
317
  case "image":
@@ -358,7 +361,10 @@ const normalizeInput = (options, source) => {
358
361
  break;
359
362
  case "developer":
360
363
  case "system":
361
- system.push(...systemText(message.content));
364
+ if (messages.length === 0)
365
+ system.push(...systemText(message.content));
366
+ else
367
+ messages.push({ clear_at: message.providerMetadata?.messages?.clearAt, content: systemText(message.content), role: "system" });
362
368
  break;
363
369
  case "user":
364
370
  messages.push(normalizeUserMessage(message));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@xsai/text-messages",
3
3
  "type": "module",
4
- "version": "1.0.0-beta.4",
4
+ "version": "1.0.0-beta.6",
5
5
  "description": "extra-small AI SDK: Anthropic Messages API model for @xsai/text.",
6
6
  "author": "Moeru AI",
7
7
  "license": "MIT",
@@ -34,13 +34,13 @@
34
34
  "node": ">=26"
35
35
  },
36
36
  "peerDependencies": {
37
- "@xsai/text": "1.0.0-beta.4"
37
+ "@xsai/text": "1.0.0-beta.6"
38
38
  },
39
39
  "dependencies": {
40
- "@xsai/shared": "1.0.0-beta.4"
40
+ "@xsai/shared": "1.0.0-beta.6"
41
41
  },
42
42
  "devDependencies": {
43
- "@xsai/text": "1.0.0-beta.4"
43
+ "@xsai/text": "1.0.0-beta.6"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "pkgroll --clean-dist",