@agentgrader/agent-openrouter 1.0.0 → 2.0.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/dist/index.d.ts +3 -3
- package/dist/index.js +32 -19
- package/package.json +4 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AgentAdapter, StepEvent, AgentResult } from '@agentgrader/core';
|
|
2
2
|
|
|
3
|
-
declare class
|
|
4
|
-
readonly name = "
|
|
3
|
+
declare class AiSdkAgentAdapter implements AgentAdapter {
|
|
4
|
+
readonly name = "ai-sdk";
|
|
5
5
|
solve(input: {
|
|
6
6
|
prompt: string;
|
|
7
7
|
sandbox: any;
|
|
@@ -10,4 +10,4 @@ declare class OpenRouterAgentAdapter implements AgentAdapter {
|
|
|
10
10
|
}): Promise<AgentResult>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export { OpenRouterAgentAdapter };
|
|
13
|
+
export { AiSdkAgentAdapter, AiSdkAgentAdapter as OpenRouterAgentAdapter };
|
package/dist/index.js
CHANGED
|
@@ -1,25 +1,38 @@
|
|
|
1
1
|
import { tool, experimental_createMCPClient, generateText } from 'ai';
|
|
2
2
|
import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
|
|
3
3
|
import { createOpenAI } from '@ai-sdk/openai';
|
|
4
|
+
import { createAnthropic } from '@ai-sdk/anthropic';
|
|
4
5
|
import { z } from 'zod';
|
|
5
6
|
|
|
6
7
|
// src/index.ts
|
|
7
|
-
var
|
|
8
|
-
name = "
|
|
8
|
+
var AiSdkAgentAdapter = class {
|
|
9
|
+
name = "ai-sdk";
|
|
9
10
|
async solve(input) {
|
|
10
11
|
const { prompt, sandbox, config, onStep } = input;
|
|
11
|
-
const
|
|
12
|
-
const baseURL = process.env.OPENROUTER_API_KEY ? "https://openrouter.ai/api/v1" : void 0;
|
|
13
|
-
const client = createOpenAI({
|
|
14
|
-
baseURL,
|
|
15
|
-
apiKey,
|
|
16
|
-
headers: {
|
|
17
|
-
"HTTP-Referer": "https://github.com/agentgrader/agr",
|
|
18
|
-
"X-Title": "Agentgrader"
|
|
19
|
-
}
|
|
20
|
-
});
|
|
12
|
+
const provider = config.provider || "openrouter";
|
|
21
13
|
const modelName = config.model || "gpt-4o-mini";
|
|
22
|
-
|
|
14
|
+
let model;
|
|
15
|
+
if (provider === "anthropic") {
|
|
16
|
+
const anthropic = createAnthropic({
|
|
17
|
+
apiKey: process.env.ANTHROPIC_API_KEY || "mock-key"
|
|
18
|
+
});
|
|
19
|
+
model = anthropic(modelName);
|
|
20
|
+
} else if (provider === "openai") {
|
|
21
|
+
const openai = createOpenAI({
|
|
22
|
+
apiKey: process.env.OPENAI_API_KEY || "mock-key"
|
|
23
|
+
});
|
|
24
|
+
model = openai(modelName);
|
|
25
|
+
} else {
|
|
26
|
+
const openrouter = createOpenAI({
|
|
27
|
+
baseURL: "https://openrouter.ai/api/v1",
|
|
28
|
+
apiKey: process.env.OPENROUTER_API_KEY || process.env.OPENAI_API_KEY || "mock-key",
|
|
29
|
+
headers: {
|
|
30
|
+
"HTTP-Referer": "https://github.com/agentgrader/agr",
|
|
31
|
+
"X-Title": "Agentgrader"
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
model = openrouter(modelName);
|
|
35
|
+
}
|
|
23
36
|
let submitted = false;
|
|
24
37
|
let stepIndex = 0;
|
|
25
38
|
const localTools = {
|
|
@@ -91,9 +104,9 @@ var OpenRouterAgentAdapter = class {
|
|
|
91
104
|
// remote transport type, regardless of the configured `type`
|
|
92
105
|
{ type: "sse", url: serverConfig.url, headers: serverConfig.headers }
|
|
93
106
|
);
|
|
94
|
-
const
|
|
95
|
-
mcpClients.push(
|
|
96
|
-
const serverTools = await
|
|
107
|
+
const client = await experimental_createMCPClient({ transport });
|
|
108
|
+
mcpClients.push(client);
|
|
109
|
+
const serverTools = await client.tools();
|
|
97
110
|
for (const [toolName, toolDef] of Object.entries(serverTools)) {
|
|
98
111
|
mcpTools[`${serverName}_${toolName}`] = toolDef;
|
|
99
112
|
}
|
|
@@ -168,9 +181,9 @@ var OpenRouterAgentAdapter = class {
|
|
|
168
181
|
} catch (err) {
|
|
169
182
|
console.error(`Error in generateText agent loop: ${err.message}`);
|
|
170
183
|
} finally {
|
|
171
|
-
for (const
|
|
184
|
+
for (const client of mcpClients) {
|
|
172
185
|
try {
|
|
173
|
-
await
|
|
186
|
+
await client.close();
|
|
174
187
|
} catch (e) {
|
|
175
188
|
}
|
|
176
189
|
}
|
|
@@ -183,4 +196,4 @@ var OpenRouterAgentAdapter = class {
|
|
|
183
196
|
}
|
|
184
197
|
};
|
|
185
198
|
|
|
186
|
-
export { OpenRouterAgentAdapter };
|
|
199
|
+
export { AiSdkAgentAdapter, AiSdkAgentAdapter as OpenRouterAgentAdapter };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentgrader/agent-openrouter",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "OpenRouter/AI SDK ReAct agent adapter for the Agentgrader framework",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -21,8 +21,9 @@
|
|
|
21
21
|
"build:watch": "tsup src/index.ts --format esm --dts --watch"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"@agentgrader/core": "^1.1.0",
|
|
25
|
+
"@ai-sdk/anthropic": "^3.0.82",
|
|
24
26
|
"@ai-sdk/openai": "^1.1.0",
|
|
25
|
-
"@agentgrader/core": "workspace:*",
|
|
26
27
|
"ai": "^4.1.0",
|
|
27
28
|
"zod": "^3.23.8"
|
|
28
29
|
},
|
|
@@ -30,6 +31,6 @@
|
|
|
30
31
|
"tsup": "^8.5.1"
|
|
31
32
|
},
|
|
32
33
|
"peerDependencies": {
|
|
33
|
-
"@agentgrader/core": "^1.
|
|
34
|
+
"@agentgrader/core": "^1.1.0"
|
|
34
35
|
}
|
|
35
36
|
}
|