"@composio/core": "^0.1.53",
"@composio/vercel": "^0.2.9",
"ai": "^4.2.9",
"@ai-sdk/anthropic": "^1.2.8",
"use server"
import { Composio } from '@composio/core';
import { generateText } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';
import { VercelProvider } from '@composio/vercel';
type TestResult = {
success: boolean
result: string | null
error?: string
toolsCount: number
}
export async function runComposioTest(): Promise<TestResult> {
try {
// Use a unique identifier for each user in your application
const userId = '';
// Initialize Composio toolset
const composio = new Composio({
apiKey: process.env.COMPOSIO_API_KEY,
provider: new VercelProvider(),
});
// Get all tools for the user
const tools = await composio.tools.get(userId, {
toolkits: ['linear'],
limit: 10,
});
console.log(tools)
// Generate a deep research on hackernews
const { text } = await generateText({
model: anthropic('claude-sonnet-4-20250514'),
messages: [
{
role: 'user',
content: 'test linear tools',
},
],
tools,
});
return {
success: true,
result: text,
toolsCount: Array.isArray(tools) ? tools.length : 0
};
} catch (error) {
console.error('Error running Composio test:', error);
return {
success: false,
error: error instanceof Error ? error.message : 'Unknown error occurred',
result: null,
toolsCount: 0
};
}
}