@stacksjs/ai 0.70.88 → 0.70.91
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/agents/claude/index.d.ts +29 -0
- package/dist/agents/claude/index.js +197 -0
- package/dist/agents/index.d.ts +6 -0
- package/dist/agents/index.js +1 -0
- package/dist/buddy.d.ts +67 -0
- package/dist/buddy.js +393 -0
- package/dist/drivers/anthropic/index.d.ts +40 -0
- package/dist/drivers/anthropic/index.js +276 -0
- package/dist/drivers/claude-agent-sdk/index.d.ts +40 -0
- package/dist/drivers/claude-agent-sdk/index.js +198 -0
- package/dist/drivers/index.d.ts +13 -0
- package/dist/drivers/index.js +4 -0
- package/dist/drivers/ollama/index.d.ts +93 -0
- package/dist/drivers/ollama/index.js +332 -0
- package/dist/drivers/openai/index.d.ts +66 -0
- package/dist/drivers/openai/index.js +351 -0
- package/dist/image.d.ts +83 -0
- package/dist/image.js +375 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.js +16 -0
- package/dist/mcp.d.ts +115 -0
- package/dist/mcp.js +361 -0
- package/dist/personalization.d.ts +118 -0
- package/dist/personalization.js +244 -0
- package/dist/search.d.ts +101 -0
- package/dist/search.js +316 -0
- package/dist/text.d.ts +10 -0
- package/dist/text.js +51 -0
- package/dist/types.d.ts +185 -0
- package/dist/types.js +0 -0
- package/dist/utils/client-bedrock-runtime.d.ts +16 -0
- package/dist/utils/client-bedrock-runtime.js +17 -0
- package/dist/utils/client-bedrock.d.ts +27 -0
- package/dist/utils/client-bedrock.js +20 -0
- package/dist/utils/model-access.d.ts +1 -0
- package/dist/utils/model-access.js +21 -0
- package/dist/utils/retry.d.ts +38 -0
- package/dist/utils/retry.js +39 -0
- package/dist/utils/tokens.d.ts +50 -0
- package/dist/utils/tokens.js +59 -0
- package/dist/utils/usage.d.ts +56 -0
- package/dist/utils/usage.js +27 -0
- package/dist/utils/vision.d.ts +22 -0
- package/dist/utils/vision.js +54 -0
- package/package.json +1 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
function toOpenAIContent(block) {
|
|
2
|
+
if (block.type === "text")
|
|
3
|
+
return { type: "text", text: block.text ?? "" };
|
|
4
|
+
if (block.type === "image_url")
|
|
5
|
+
return { type: "image_url", image_url: block.image_url };
|
|
6
|
+
if (block.type === "image" && block.source) {
|
|
7
|
+
if (block.source.type === "base64")
|
|
8
|
+
return { type: "image_url", image_url: { url: `data:${block.source.media_type};base64,${block.source.data}` } };
|
|
9
|
+
}
|
|
10
|
+
return block;
|
|
11
|
+
}
|
|
12
|
+
function toAnthropicContent(block) {
|
|
13
|
+
if (block.type === "text")
|
|
14
|
+
return { type: "text", text: block.text ?? "" };
|
|
15
|
+
if (block.type === "image" && block.source)
|
|
16
|
+
return { type: "image", source: block.source };
|
|
17
|
+
if (block.type === "image_url" && block.image_url) {
|
|
18
|
+
const url = block.image_url.url, dataMatch = url.match(/^data:([^;]+);base64,(.+)$/);
|
|
19
|
+
if (dataMatch)
|
|
20
|
+
return {
|
|
21
|
+
type: "image",
|
|
22
|
+
source: { type: "base64", media_type: dataMatch[1], data: dataMatch[2] }
|
|
23
|
+
};
|
|
24
|
+
return { type: "image", source: { type: "url", url } };
|
|
25
|
+
}
|
|
26
|
+
return block;
|
|
27
|
+
}
|
|
28
|
+
export function normalizeMessagesForProvider(messages, provider) {
|
|
29
|
+
return messages.map((msg) => {
|
|
30
|
+
if (typeof msg.content === "string")
|
|
31
|
+
return msg;
|
|
32
|
+
const mapper = provider === "openai" ? toOpenAIContent : toAnthropicContent;
|
|
33
|
+
return {
|
|
34
|
+
role: msg.role,
|
|
35
|
+
content: msg.content.map(mapper)
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
export function buildMessageWithImages(command, images) {
|
|
40
|
+
const blocks = [];
|
|
41
|
+
for (const img of images)
|
|
42
|
+
if (img.dataBase64 && img.mediaType)
|
|
43
|
+
blocks.push({
|
|
44
|
+
type: "image",
|
|
45
|
+
source: { type: "base64", media_type: img.mediaType, data: img.dataBase64 }
|
|
46
|
+
});
|
|
47
|
+
else if (img.url)
|
|
48
|
+
blocks.push({
|
|
49
|
+
type: "image_url",
|
|
50
|
+
image_url: { url: img.url, detail: img.detail }
|
|
51
|
+
});
|
|
52
|
+
blocks.push({ type: "text", text: command });
|
|
53
|
+
return blocks;
|
|
54
|
+
}
|