concevent-ai-agent-sdk 3.0.8 → 3.1.1
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/README.md +216 -4
- package/dist/core/agent.d.ts +14 -2
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +29 -4
- package/dist/core/agent.js.map +1 -1
- package/dist/core/openrouter-utils.d.ts +10 -2
- package/dist/core/openrouter-utils.d.ts.map +1 -1
- package/dist/core/openrouter-utils.js +62 -6
- package/dist/core/openrouter-utils.js.map +1 -1
- package/dist/core/tool-executor.d.ts.map +1 -1
- package/dist/core/tool-executor.js +5 -1
- package/dist/core/tool-executor.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/tools/grep.d.ts +4 -4
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +15 -4
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/read.d.ts +8 -2
- package/dist/tools/read.d.ts.map +1 -1
- package/dist/tools/read.js +69 -8
- package/dist/tools/read.js.map +1 -1
- package/dist/types/config.d.ts +43 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/messages.d.ts +34 -0
- package/dist/types/messages.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
# concevent-ai-agent-sdk
|
|
2
2
|
|
|
3
|
-
A framework-agnostic AI Agent SDK for building intelligent conversational agents with tool calling, automatic conversation summarization, and comprehensive event handling.
|
|
3
|
+
A framework-agnostic AI Agent SDK for building intelligent conversational agents with tool calling, automatic conversation summarization, and comprehensive event handling. **Designed and built specifically for [OpenRouter](https://openrouter.ai/)**, providing access to a wide range of AI models (Claude, GPT-4, Gemini, Llama, and more) through a single, unified API.
|
|
4
|
+
|
|
5
|
+
> **Why OpenRouter?** OpenRouter provides access to 200+ AI models from multiple providers (Anthropic, OpenAI, Google, Meta, etc.) through a single API endpoint and consistent interface. This SDK leverages OpenRouter's OpenAI-compatible API to give you flexibility in model selection while maintaining a consistent development experience.
|
|
4
6
|
|
|
5
7
|
## Features
|
|
6
8
|
|
|
7
9
|
- 🤖 **AI Agent Framework** - Create intelligent agents with tool/function calling capabilities
|
|
8
10
|
- 🔧 **Tool Execution** - Define and execute custom tools with typed parameters using Zod schemas
|
|
9
11
|
- 🧰 **Built-in Tools** - Ready-to-use tools for file operations, shell commands, and task management
|
|
12
|
+
- 🖼️ **Vision/Image Support** - Send images with messages for multimodal AI interactions
|
|
10
13
|
- 💬 **Conversation Management** - Automatic history tracking with built-in summarization
|
|
11
14
|
- 📊 **Token Usage Tracking** - Monitor token consumption across conversations
|
|
12
15
|
- 🔄 **Auto-Summarization** - Automatically summarize long conversations to stay within context limits
|
|
@@ -92,6 +95,7 @@ console.log(result.message);
|
|
|
92
95
|
- [Types](#types)
|
|
93
96
|
- [Streaming](#streaming)
|
|
94
97
|
- [Advanced Usage](#advanced-usage)
|
|
98
|
+
- [Image/Vision Input](#imagevision-input)
|
|
95
99
|
- [Parallel Tool Execution](#parallel-tool-execution)
|
|
96
100
|
- [Conversation Summarization](#conversation-summarization)
|
|
97
101
|
- [Error Handling](#error-handling)
|
|
@@ -107,6 +111,17 @@ console.log(result.message);
|
|
|
107
111
|
|
|
108
112
|
## Core Concepts
|
|
109
113
|
|
|
114
|
+
### OpenRouter Integration
|
|
115
|
+
|
|
116
|
+
This SDK is built specifically for OpenRouter and uses it as the default API endpoint. Key benefits:
|
|
117
|
+
|
|
118
|
+
- **Model Flexibility**: Access Claude, GPT-4, Gemini, Llama, Mistral, and 200+ other models through a single API
|
|
119
|
+
- **Provider Fallbacks**: OpenRouter automatically handles provider outages and rate limits
|
|
120
|
+
- **Unified Billing**: One API key, one billing relationship for all models
|
|
121
|
+
- **Consistent API**: OpenAI-compatible API means familiar patterns and easy migration
|
|
122
|
+
|
|
123
|
+
The SDK defaults to `https://openrouter.ai/api/v1` as the base URL. Model names follow OpenRouter's format (e.g., `anthropic/claude-3.5-sonnet`, `openai/gpt-4o`, `google/gemini-pro`).
|
|
124
|
+
|
|
110
125
|
### Agent
|
|
111
126
|
|
|
112
127
|
An Agent is the main interface for interacting with AI models. It manages conversation history, executes tools, handles token usage tracking, and provides automatic summarization when context limits are reached.
|
|
@@ -144,7 +159,7 @@ const agent = createAgent(config: AgentConfig): Agent;
|
|
|
144
159
|
| `model` | `string` | ✅ | - | Model identifier (e.g., `'anthropic/claude-3.5-sonnet'`) |
|
|
145
160
|
| `systemPrompts` | `string[]` | ✅ | - | Array of system prompt messages |
|
|
146
161
|
| `tools` | `ToolDefinition[]` | ✅ | - | Array of tool definitions |
|
|
147
|
-
| `baseURL` | `string` | ❌ |
|
|
162
|
+
| `baseURL` | `string` | ❌ | `https://openrouter.ai/api/v1` | API base URL (defaults to OpenRouter) |
|
|
148
163
|
| `temperature` | `number` | ❌ | `0.1` | Sampling temperature (0-2) |
|
|
149
164
|
| `reasoning` | `ReasoningConfig \| ReasoningEffort \| false` | ❌ | `{ enabled: true }` | Reasoning configuration (see below) |
|
|
150
165
|
| `maxIterations` | `number` | ❌ | `50` | Maximum tool execution iterations per chat |
|
|
@@ -308,7 +323,8 @@ interface Agent {
|
|
|
308
323
|
chat(
|
|
309
324
|
message: string,
|
|
310
325
|
context: ToolExecutorContext,
|
|
311
|
-
callbacks?: AgentCallbacks
|
|
326
|
+
callbacks?: AgentCallbacks,
|
|
327
|
+
options?: ChatOptions // Optional: for images and other multimodal input
|
|
312
328
|
): Promise<AgentResult>;
|
|
313
329
|
|
|
314
330
|
abort(): void;
|
|
@@ -327,7 +343,8 @@ Sends a message to the agent and receives a response. The agent may execute mult
|
|
|
327
343
|
const result = await agent.chat(
|
|
328
344
|
message: string,
|
|
329
345
|
context: ToolExecutorContext,
|
|
330
|
-
callbacks?: AgentCallbacks
|
|
346
|
+
callbacks?: AgentCallbacks,
|
|
347
|
+
options?: ChatOptions
|
|
331
348
|
): Promise<AgentResult>;
|
|
332
349
|
```
|
|
333
350
|
|
|
@@ -338,6 +355,7 @@ const result = await agent.chat(
|
|
|
338
355
|
| `message` | `string` | The user's message |
|
|
339
356
|
| `context` | `ToolExecutorContext` | Execution context passed to tools |
|
|
340
357
|
| `callbacks` | `AgentCallbacks` | Optional event callbacks |
|
|
358
|
+
| `options` | `ChatOptions` | Optional chat options (e.g., images) |
|
|
341
359
|
|
|
342
360
|
**Returns:** `AgentResult`
|
|
343
361
|
|
|
@@ -559,6 +577,37 @@ process.on('exit', () => cleanup());
|
|
|
559
577
|
| `'Glob'` | Find files matching glob patterns | ✅ |
|
|
560
578
|
| `'Grep'` | Search for patterns in file contents | ✅ |
|
|
561
579
|
| `'Bash'` | Execute shell commands | ❌ |
|
|
580
|
+
|
|
581
|
+
#### Grep and Read Tool - Context Efficiency
|
|
582
|
+
|
|
583
|
+
Both `Grep` and `Read` tools include built-in safeguards to prevent context overflow:
|
|
584
|
+
|
|
585
|
+
**Grep Tool Parameters:**
|
|
586
|
+
|
|
587
|
+
| Parameter | Default | Description |
|
|
588
|
+
|-----------|---------|-------------|
|
|
589
|
+
| `pattern` | (required) | Regex pattern to search for |
|
|
590
|
+
| `path` | working dir | File or directory to search |
|
|
591
|
+
| `include` | - | Glob filter (e.g., `"*.ts"`) |
|
|
592
|
+
| `context_lines` | 0 | Lines before/after each match |
|
|
593
|
+
| `max_matches` | 50 | Maximum matches to return (cap: 1000) |
|
|
594
|
+
| `max_line_length` | 500 | Truncate lines longer than this |
|
|
595
|
+
| `max_total_chars` | 20000 | Max output chars (~5K tokens) |
|
|
596
|
+
| `offset` | 0 | Skip N matches for pagination |
|
|
597
|
+
|
|
598
|
+
**Read Tool Parameters:**
|
|
599
|
+
|
|
600
|
+
| Parameter | Default | Description |
|
|
601
|
+
|-----------|---------|-------------|
|
|
602
|
+
| `file_path` | (required) | Path to the file to read |
|
|
603
|
+
| `offset` | 1 | Line number to start from (1-based) |
|
|
604
|
+
| `limit` | 200 | Max lines to read |
|
|
605
|
+
| `max_line_length` | 500 | Truncate lines longer than this |
|
|
606
|
+
| `max_total_chars` | 20000 | Max output chars (~5K tokens) |
|
|
607
|
+
|
|
608
|
+
**Best Practice:** Use `Grep` with `context_lines` to see surrounding content instead of reading full files. This is more efficient for most search queries. Only use `Read` when you need a large continuous section of a file.
|
|
609
|
+
|
|
610
|
+
**Pagination:** Both tools return `has_more: true` when results are truncated. Use `offset` to paginate through results.
|
|
562
611
|
| `'BashOutput'` | Get output from background processes | ✅ |
|
|
563
612
|
| `'KillBash'` | Terminate background processes | ❌ |
|
|
564
613
|
| `'Task'` | Launch sub-agents for complex tasks | ❌ |
|
|
@@ -889,6 +938,7 @@ const errorEvent = createEvent("error", {
|
|
|
889
938
|
interface ChatMessage {
|
|
890
939
|
role: "user" | "assistant" | "system" | "tool-call" | "tool-call-results";
|
|
891
940
|
content: string;
|
|
941
|
+
contentParts?: ContentPart[]; // For multimodal messages (images)
|
|
892
942
|
timestamp: Date;
|
|
893
943
|
toolCalls?: ToolCall[];
|
|
894
944
|
toolCallId?: string;
|
|
@@ -898,6 +948,40 @@ interface ChatMessage {
|
|
|
898
948
|
}
|
|
899
949
|
```
|
|
900
950
|
|
|
951
|
+
#### Image/Multimodal Types
|
|
952
|
+
|
|
953
|
+
```typescript
|
|
954
|
+
/** Detail level for image processing */
|
|
955
|
+
type ImageDetail = "auto" | "low" | "high";
|
|
956
|
+
|
|
957
|
+
/** Image input for chat messages */
|
|
958
|
+
interface ImageInput {
|
|
959
|
+
url: string; // URL or base64 data URI
|
|
960
|
+
detail?: ImageDetail; // Processing detail level
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
/** Options for agent.chat() */
|
|
964
|
+
interface ChatOptions {
|
|
965
|
+
images?: ImageInput[];
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
/** Content parts for multimodal messages */
|
|
969
|
+
type ContentPart = TextContentPart | ImageContentPart;
|
|
970
|
+
|
|
971
|
+
interface TextContentPart {
|
|
972
|
+
type: "text";
|
|
973
|
+
text: string;
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
interface ImageContentPart {
|
|
977
|
+
type: "image_url";
|
|
978
|
+
image_url: {
|
|
979
|
+
url: string;
|
|
980
|
+
detail?: ImageDetail;
|
|
981
|
+
};
|
|
982
|
+
}
|
|
983
|
+
```
|
|
984
|
+
|
|
901
985
|
#### UsageMetadata
|
|
902
986
|
|
|
903
987
|
```typescript
|
|
@@ -1092,6 +1176,127 @@ const reasoningDeltaEvent = createEvent("reasoning_delta", {
|
|
|
1092
1176
|
|
|
1093
1177
|
## Advanced Usage
|
|
1094
1178
|
|
|
1179
|
+
### Image/Vision Input
|
|
1180
|
+
|
|
1181
|
+
The SDK supports sending images with messages for multimodal AI interactions. This enables vision capabilities like image analysis, screenshot understanding, and visual Q&A with models that support it (e.g., GPT-4o, Claude 3, Gemini Pro Vision).
|
|
1182
|
+
|
|
1183
|
+
#### Basic Usage
|
|
1184
|
+
|
|
1185
|
+
Pass images in the `options` parameter of `agent.chat()`:
|
|
1186
|
+
|
|
1187
|
+
```typescript
|
|
1188
|
+
const result = await agent.chat(
|
|
1189
|
+
"What is in this image?",
|
|
1190
|
+
{ appContext: { userId: "user-123", timezone: "UTC" } },
|
|
1191
|
+
{}, // callbacks (empty object if not needed)
|
|
1192
|
+
{
|
|
1193
|
+
images: [{ url: "https://example.com/photo.jpg" }],
|
|
1194
|
+
}
|
|
1195
|
+
);
|
|
1196
|
+
```
|
|
1197
|
+
|
|
1198
|
+
#### ChatOptions
|
|
1199
|
+
|
|
1200
|
+
```typescript
|
|
1201
|
+
interface ChatOptions {
|
|
1202
|
+
/** Images to include with the message */
|
|
1203
|
+
images?: ImageInput[];
|
|
1204
|
+
}
|
|
1205
|
+
|
|
1206
|
+
interface ImageInput {
|
|
1207
|
+
/** URL or base64 data URI */
|
|
1208
|
+
url: string;
|
|
1209
|
+
/** Detail level for image processing (default: 'auto') */
|
|
1210
|
+
detail?: "auto" | "low" | "high";
|
|
1211
|
+
}
|
|
1212
|
+
```
|
|
1213
|
+
|
|
1214
|
+
#### Image Sources
|
|
1215
|
+
|
|
1216
|
+
Images can be provided as URLs or base64 data URIs:
|
|
1217
|
+
|
|
1218
|
+
```typescript
|
|
1219
|
+
// URL-based image
|
|
1220
|
+
await agent.chat("Describe this", context, {}, {
|
|
1221
|
+
images: [{ url: "https://example.com/image.png" }],
|
|
1222
|
+
});
|
|
1223
|
+
|
|
1224
|
+
// Base64 data URI
|
|
1225
|
+
await agent.chat("What color is this?", context, {}, {
|
|
1226
|
+
images: [{
|
|
1227
|
+
url: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJ...",
|
|
1228
|
+
}],
|
|
1229
|
+
});
|
|
1230
|
+
```
|
|
1231
|
+
|
|
1232
|
+
#### Multiple Images
|
|
1233
|
+
|
|
1234
|
+
Send multiple images for comparison or multi-image analysis:
|
|
1235
|
+
|
|
1236
|
+
```typescript
|
|
1237
|
+
await agent.chat("Compare these two images", context, {}, {
|
|
1238
|
+
images: [
|
|
1239
|
+
{ url: "https://example.com/before.png" },
|
|
1240
|
+
{ url: "https://example.com/after.png" },
|
|
1241
|
+
],
|
|
1242
|
+
});
|
|
1243
|
+
```
|
|
1244
|
+
|
|
1245
|
+
#### Detail Levels
|
|
1246
|
+
|
|
1247
|
+
Control image processing quality with the `detail` option:
|
|
1248
|
+
|
|
1249
|
+
| Detail | Description | Use Case |
|
|
1250
|
+
|--------|-------------|----------|
|
|
1251
|
+
| `auto` | Model decides based on image size (default) | General use |
|
|
1252
|
+
| `low` | Fast, lower cost, 512x512 processing | Simple images, icons |
|
|
1253
|
+
| `high` | Detailed analysis, higher cost | Complex images, documents |
|
|
1254
|
+
|
|
1255
|
+
```typescript
|
|
1256
|
+
// High detail for document analysis
|
|
1257
|
+
await agent.chat("Extract all text from this document", context, {}, {
|
|
1258
|
+
images: [{ url: documentUrl, detail: "high" }],
|
|
1259
|
+
});
|
|
1260
|
+
|
|
1261
|
+
// Low detail for simple recognition
|
|
1262
|
+
await agent.chat("What icon is this?", context, {}, {
|
|
1263
|
+
images: [{ url: iconUrl, detail: "low" }],
|
|
1264
|
+
});
|
|
1265
|
+
```
|
|
1266
|
+
|
|
1267
|
+
#### Model Compatibility
|
|
1268
|
+
|
|
1269
|
+
Vision capabilities require a multimodal model. Common options:
|
|
1270
|
+
|
|
1271
|
+
| Provider | Models |
|
|
1272
|
+
|----------|--------|
|
|
1273
|
+
| OpenAI | `openai/gpt-4o`, `openai/gpt-4-turbo` |
|
|
1274
|
+
| Anthropic | `anthropic/claude-3.5-sonnet`, `anthropic/claude-3-opus` |
|
|
1275
|
+
| Google | `google/gemini-pro-vision`, `google/gemini-1.5-pro` |
|
|
1276
|
+
|
|
1277
|
+
```typescript
|
|
1278
|
+
const agent = createAgent({
|
|
1279
|
+
apiKey: process.env.OPENROUTER_API_KEY!,
|
|
1280
|
+
model: "openai/gpt-4o", // Vision-capable model
|
|
1281
|
+
systemPrompts: ["You are a helpful visual assistant."],
|
|
1282
|
+
tools: [],
|
|
1283
|
+
});
|
|
1284
|
+
```
|
|
1285
|
+
|
|
1286
|
+
#### Conversation History
|
|
1287
|
+
|
|
1288
|
+
Images are stored in conversation history with their content parts, allowing for context preservation across multiple turns:
|
|
1289
|
+
|
|
1290
|
+
```typescript
|
|
1291
|
+
const result = await agent.chat("What is this?", context, {}, {
|
|
1292
|
+
images: [{ url: imageUrl }],
|
|
1293
|
+
});
|
|
1294
|
+
|
|
1295
|
+
// History includes the image
|
|
1296
|
+
const userMessage = result.conversationHistory.find((m) => m.role === "user");
|
|
1297
|
+
console.log(userMessage?.contentParts); // Contains text and image parts
|
|
1298
|
+
```
|
|
1299
|
+
|
|
1095
1300
|
### Parallel Tool Execution
|
|
1096
1301
|
|
|
1097
1302
|
Tools can be marked as safe for parallel execution using the `parallel` flag. When the model requests multiple tool calls, parallel-safe tools run concurrently while sequential tools run one at a time after the parallel batch completes.
|
|
@@ -2044,6 +2249,13 @@ export type {
|
|
|
2044
2249
|
ReasoningDeltaEventData,
|
|
2045
2250
|
AgentEvent,
|
|
2046
2251
|
ResponseFormatConfig,
|
|
2252
|
+
// Image/multimodal types
|
|
2253
|
+
ImageDetail,
|
|
2254
|
+
ImageInput,
|
|
2255
|
+
ChatOptions,
|
|
2256
|
+
TextContentPart,
|
|
2257
|
+
ImageContentPart,
|
|
2258
|
+
ContentPart,
|
|
2047
2259
|
// Middleware types
|
|
2048
2260
|
Middleware,
|
|
2049
2261
|
MiddlewareContext,
|
package/dist/core/agent.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentConfig, AgentCallbacks, AgentResult, ChatMessage, ToolExecutorContext, UsageMetadata } from '../types/index.js';
|
|
1
|
+
import type { AgentConfig, AgentCallbacks, AgentResult, ChatMessage, ToolExecutorContext, UsageMetadata, ChatOptions } from '../types/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* Agent interface for AI chat interactions with tool calling capabilities.
|
|
4
4
|
*
|
|
@@ -10,9 +10,21 @@ export interface Agent<TAppContext = Record<string, unknown>> {
|
|
|
10
10
|
* @param message - The user's message
|
|
11
11
|
* @param context - Execution context (appContext, abortSignal)
|
|
12
12
|
* @param callbacks - Optional callbacks for streaming events
|
|
13
|
+
* @param options - Optional chat options (e.g., images for multimodal input)
|
|
13
14
|
* @returns AgentResult with the response
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Text-only message
|
|
19
|
+
* await agent.chat('Hello', context);
|
|
20
|
+
*
|
|
21
|
+
* // Message with images
|
|
22
|
+
* await agent.chat('What is in this image?', context, {}, {
|
|
23
|
+
* images: [{ url: 'https://example.com/image.png' }]
|
|
24
|
+
* });
|
|
25
|
+
* ```
|
|
14
26
|
*/
|
|
15
|
-
chat(message: string, context: ToolExecutorContext<TAppContext>, callbacks?: AgentCallbacks): Promise<AgentResult>;
|
|
27
|
+
chat(message: string, context: ToolExecutorContext<TAppContext>, callbacks?: AgentCallbacks, options?: ChatOptions): Promise<AgentResult>;
|
|
16
28
|
abort(): void;
|
|
17
29
|
getHistory(): ChatMessage[];
|
|
18
30
|
setHistory(history: ChatMessage[]): void;
|
package/dist/core/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,EAOb,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AA6I3B;;;;GAIG;AACH,MAAM,WAAW,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CACF,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,mBAAmB,CAAC,WAAW,CAAC,EACzC,SAAS,CAAC,EAAE,cAAc,EAC1B,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,WAAW,CAAC,CAAC;IACxB,KAAK,IAAI,IAAI,CAAC;IACd,UAAU,IAAI,WAAW,EAAE,CAAC;IAC5B,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACzC,YAAY,IAAI,IAAI,CAAC;IACrB,aAAa,IAAI,aAAa,CAAC;CAChC;AAED,wBAAgB,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE,WAAW,CAAC,WAAW,CAAC,GAC/B,KAAK,CAAC,WAAW,CAAC,CA+0BpB"}
|
package/dist/core/agent.js
CHANGED
|
@@ -282,18 +282,40 @@ export function createAgent(config) {
|
|
|
282
282
|
return null;
|
|
283
283
|
}
|
|
284
284
|
}
|
|
285
|
-
|
|
285
|
+
/**
|
|
286
|
+
* Builds content parts for multimodal messages.
|
|
287
|
+
*/
|
|
288
|
+
function buildContentParts(text, images) {
|
|
289
|
+
if (!images || images.length === 0) {
|
|
290
|
+
return undefined;
|
|
291
|
+
}
|
|
292
|
+
const parts = [{ type: 'text', text }];
|
|
293
|
+
for (const img of images) {
|
|
294
|
+
parts.push({
|
|
295
|
+
type: 'image_url',
|
|
296
|
+
image_url: {
|
|
297
|
+
url: img.url,
|
|
298
|
+
detail: img.detail,
|
|
299
|
+
},
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
return parts;
|
|
303
|
+
}
|
|
304
|
+
async function attemptProcessMessage(userMessage, conversationHistory, context, callbacks, retryErrorTrace, images) {
|
|
286
305
|
const tools = convertFunctionDeclarationsToTools(toolExecutor.getToolDeclarations());
|
|
287
306
|
const systemMessages = config.systemPrompts.map((content) => createSystemMessage(content));
|
|
288
307
|
let currentHistory = [...conversationHistory];
|
|
289
308
|
let currentMessage = userMessage;
|
|
309
|
+
let currentImages = images; // Track images for the current message (only used in first iteration)
|
|
290
310
|
let iteration = 0;
|
|
291
311
|
let latestUsage = {};
|
|
292
312
|
let latestRequestId;
|
|
293
313
|
let summarized = false;
|
|
314
|
+
// Build the user message with optional multimodal content
|
|
294
315
|
const userChatMessage = {
|
|
295
316
|
role: 'user',
|
|
296
317
|
content: userMessage,
|
|
318
|
+
contentParts: buildContentParts(userMessage, images),
|
|
297
319
|
timestamp: new Date(),
|
|
298
320
|
};
|
|
299
321
|
currentHistory.push(userChatMessage);
|
|
@@ -309,11 +331,13 @@ export function createAgent(config) {
|
|
|
309
331
|
const historyForConversion = currentHistory[currentHistory.length - 1]?.role === 'user'
|
|
310
332
|
? currentHistory.slice(0, -1)
|
|
311
333
|
: currentHistory;
|
|
334
|
+
// Only include images in the first iteration (subsequent iterations are follow-up text only)
|
|
335
|
+
const messageImages = iteration === 0 ? currentImages : undefined;
|
|
312
336
|
const messages = [
|
|
313
337
|
...systemMessages,
|
|
314
338
|
createAssistantMessage('I understand the current context. I am ready to help you with your requests.'),
|
|
315
339
|
...convertChatMessagesToOpenAI(historyForConversion),
|
|
316
|
-
createUserMessage(currentMessage),
|
|
340
|
+
createUserMessage(currentMessage, messageImages),
|
|
317
341
|
];
|
|
318
342
|
if (retryErrorTrace && iteration === 0) {
|
|
319
343
|
messages.push(createSystemMessage(retryErrorTrace));
|
|
@@ -564,7 +588,7 @@ export function createAgent(config) {
|
|
|
564
588
|
// Retry all other errors
|
|
565
589
|
return true;
|
|
566
590
|
}
|
|
567
|
-
async function chat(message, context, callbacks = {}) {
|
|
591
|
+
async function chat(message, context, callbacks = {}, options) {
|
|
568
592
|
logger.chatStart(message, session.getHistory().length);
|
|
569
593
|
const abortController = session.createAbortController();
|
|
570
594
|
const contextWithAbort = {
|
|
@@ -572,6 +596,7 @@ export function createAgent(config) {
|
|
|
572
596
|
abortSignal: context.abortSignal ?? abortController.signal,
|
|
573
597
|
};
|
|
574
598
|
let retryErrorTrace;
|
|
599
|
+
const images = options?.images;
|
|
575
600
|
// Execute beforeChat middleware to potentially transform the message
|
|
576
601
|
let processedMessage = message;
|
|
577
602
|
if (middlewareExecutor.hasMiddleware()) {
|
|
@@ -584,7 +609,7 @@ export function createAgent(config) {
|
|
|
584
609
|
}
|
|
585
610
|
try {
|
|
586
611
|
let result = await executeWithRetry(async () => {
|
|
587
|
-
const attemptResult = await attemptProcessMessage(processedMessage, session.getHistory(), contextWithAbort, callbacks, retryErrorTrace);
|
|
612
|
+
const attemptResult = await attemptProcessMessage(processedMessage, session.getHistory(), contextWithAbort, callbacks, retryErrorTrace, images);
|
|
588
613
|
return attemptResult;
|
|
589
614
|
}, {
|
|
590
615
|
config: retryConfig,
|
package/dist/core/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
|
-
import type { ChatMessage, ReasoningDetail, FunctionDeclaration, UsageMetadata } from '../types/index.js';
|
|
2
|
+
import type { ChatMessage, ReasoningDetail, FunctionDeclaration, UsageMetadata, ImageInput } from '../types/index.js';
|
|
3
3
|
export declare const ENCRYPTED_REASONING_MARKER = "[REASONING_ENCRYPTED]";
|
|
4
4
|
export declare function convertChatMessagesToOpenAI(messages: ChatMessage[]): OpenAI.Chat.Completions.ChatCompletionMessageParam[];
|
|
5
5
|
export declare function convertFunctionDeclarationsToTools(declarations: FunctionDeclaration[]): OpenAI.Chat.Completions.ChatCompletionTool[];
|
|
@@ -10,7 +10,15 @@ export declare function convertOpenAIToolCallsToFunctionCalls(toolCalls: OpenAI.
|
|
|
10
10
|
}>;
|
|
11
11
|
export declare function mapOpenAIUsageToMetadata(usage: OpenAI.CompletionUsage): UsageMetadata;
|
|
12
12
|
export declare function createSystemMessage(content: string): OpenAI.Chat.Completions.ChatCompletionSystemMessageParam;
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Creates a user message for the OpenAI API.
|
|
15
|
+
* Supports multimodal content with optional images.
|
|
16
|
+
*
|
|
17
|
+
* @param content - Text content of the message
|
|
18
|
+
* @param images - Optional array of images to include
|
|
19
|
+
* @returns OpenAI-compatible user message
|
|
20
|
+
*/
|
|
21
|
+
export declare function createUserMessage(content: string, images?: ImageInput[]): OpenAI.Chat.Completions.ChatCompletionUserMessageParam;
|
|
14
22
|
export declare function createAssistantMessage(content: string): OpenAI.Chat.Completions.ChatCompletionAssistantMessageParam;
|
|
15
23
|
export interface NormalizedReasoning {
|
|
16
24
|
displayText?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter-utils.d.ts","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,
|
|
1
|
+
{"version":3,"file":"openrouter-utils.d.ts","sourceRoot":"","sources":["../../src/core/openrouter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,UAAU,EACX,MAAM,mBAAmB,CAAC;AAa3B,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAyBlE,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,WAAW,EAAE,GACtB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,CAyFtD;AAED,wBAAgB,kCAAkC,CAChD,YAAY,EAAE,mBAAmB,EAAE,GAClC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAS9C;AAED,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,6BAA6B,EAAE,GACjE,KAAK,CAAC;IACP,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B,CAAC,CAqBD;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,GAAG,aAAa,CAerF;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gCAAgC,CAK1D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,UAAU,EAAE,GACpB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,8BAA8B,CA0BxD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAmC,CAK7D;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,eAAe,EAAE,CAAC;CACzC;AAED,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,mBAAmB,CAiCrB"}
|
|
@@ -1,13 +1,43 @@
|
|
|
1
1
|
import { ToolArgumentParseError } from './tool-validation.js';
|
|
2
2
|
export const ENCRYPTED_REASONING_MARKER = '[REASONING_ENCRYPTED]';
|
|
3
|
+
/**
|
|
4
|
+
* Converts internal ChatMessage contentParts to OpenAI format.
|
|
5
|
+
*/
|
|
6
|
+
function convertContentPartsToOpenAI(contentParts) {
|
|
7
|
+
if (!contentParts)
|
|
8
|
+
return [];
|
|
9
|
+
return contentParts.map((part) => {
|
|
10
|
+
if (part.type === 'text') {
|
|
11
|
+
return { type: 'text', text: part.text };
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return {
|
|
15
|
+
type: 'image_url',
|
|
16
|
+
image_url: {
|
|
17
|
+
url: part.image_url.url,
|
|
18
|
+
detail: part.image_url.detail,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
3
24
|
export function convertChatMessagesToOpenAI(messages) {
|
|
4
25
|
const result = [];
|
|
5
26
|
for (const message of messages) {
|
|
6
27
|
if (message.role === 'user') {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
28
|
+
// Check if message has multimodal content
|
|
29
|
+
if (message.contentParts && message.contentParts.length > 0) {
|
|
30
|
+
result.push({
|
|
31
|
+
role: 'user',
|
|
32
|
+
content: convertContentPartsToOpenAI(message.contentParts),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
result.push({
|
|
37
|
+
role: 'user',
|
|
38
|
+
content: message.content,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
11
41
|
}
|
|
12
42
|
else if (message.role === 'assistant') {
|
|
13
43
|
const assistantMessage = {
|
|
@@ -131,10 +161,36 @@ export function createSystemMessage(content) {
|
|
|
131
161
|
content,
|
|
132
162
|
};
|
|
133
163
|
}
|
|
134
|
-
|
|
164
|
+
/**
|
|
165
|
+
* Creates a user message for the OpenAI API.
|
|
166
|
+
* Supports multimodal content with optional images.
|
|
167
|
+
*
|
|
168
|
+
* @param content - Text content of the message
|
|
169
|
+
* @param images - Optional array of images to include
|
|
170
|
+
* @returns OpenAI-compatible user message
|
|
171
|
+
*/
|
|
172
|
+
export function createUserMessage(content, images) {
|
|
173
|
+
// If no images, return simple text message
|
|
174
|
+
if (!images || images.length === 0) {
|
|
175
|
+
return {
|
|
176
|
+
role: 'user',
|
|
177
|
+
content,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
// Build multipart content array with text first, then images
|
|
181
|
+
const parts = [{ type: 'text', text: content }];
|
|
182
|
+
for (const img of images) {
|
|
183
|
+
parts.push({
|
|
184
|
+
type: 'image_url',
|
|
185
|
+
image_url: {
|
|
186
|
+
url: img.url,
|
|
187
|
+
detail: img.detail,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
}
|
|
135
191
|
return {
|
|
136
192
|
role: 'user',
|
|
137
|
-
content,
|
|
193
|
+
content: parts,
|
|
138
194
|
};
|
|
139
195
|
}
|
|
140
196
|
export function createAssistantMessage(content) {
|