@ai-sdk/openai
Version:
The **[OpenAI provider](https://ai-sdk.dev/providers/ai-sdk-providers/openai)** for the [AI SDK](https://ai-sdk.dev/docs) contains language model support for the OpenAI chat and completion APIs and embedding model support for the OpenAI embeddings API.
73 lines (64 loc) • 1.52 kB
text/typescript
import {
createProviderToolFactoryWithOutputSchema,
lazySchema,
zodSchema,
} from '@ai-sdk/provider-utils';
import { z } from 'zod/v4';
export const localShellInputSchema = lazySchema(() =>
zodSchema(
z.object({
action: z.object({
type: z.literal('exec'),
command: z.array(z.string()),
timeoutMs: z.number().optional(),
user: z.string().optional(),
workingDirectory: z.string().optional(),
env: z.record(z.string(), z.string()).optional(),
}),
}),
),
);
export const localShellOutputSchema = lazySchema(() =>
zodSchema(z.object({ output: z.string() })),
);
export const localShell = createProviderToolFactoryWithOutputSchema<
{
/**
* Execute a shell command on the server.
*/
action: {
type: 'exec';
/**
* The command to run.
*/
command: string[];
/**
* Optional timeout in milliseconds for the command.
*/
timeoutMs?: number;
/**
* Optional user to run the command as.
*/
user?: string;
/**
* Optional working directory to run the command in.
*/
workingDirectory?: string;
/**
* Environment variables to set for the command.
*/
env?: Record<string, string>;
};
},
{
/**
* The output of local shell tool call.
*/
output: string;
},
{}
>({
id: 'openai.local_shell',
inputSchema: localShellInputSchema,
outputSchema: localShellOutputSchema,
});