app-sleepy-manatee-skip/workspace/tools/index.ts

297 lines
5.8 KiB
TypeScript

/**
* Kleap AI Tools API
*
* Provides access to all Kleap AI tools from sandbox TypeScript scripts.
* Each function corresponds to a tool in the Kleap AI system.
*
* Auto-generated - do not modify manually.
*/
import { callTool } from './client';
// ===== FILE OPERATIONS =====
/**
* Read a file with smart filtering (head/tail/grep/section/jq)
* Always prefer filtering to reduce token usage (90-99% savings)
*/
export async function readFile(params: {
path: string;
head?: number;
tail?: number;
grep?: string;
grepInvert?: boolean;
section?: { start: number; end: number };
jq?: string;
maxLines?: number;
}): Promise<any> {
return callTool('readFile', params);
}
/**
* Read multiple files with smart filtering
* Use summaryOnly: true for discovery (metadata only, 99% token savings)
*/
export async function readMultiple(params: {
paths: string[];
head?: number;
grep?: string;
summaryOnly?: boolean;
maxLinesPerFile?: number;
}): Promise<any> {
return callTool('readMultiple', params);
}
/**
* Write a new file
*/
export async function write(params: {
path: string;
content: string;
}): Promise<any> {
return callTool('write', params);
}
/**
* Edit an existing file (find/replace)
*/
export async function edit(params: {
path: string;
oldContent: string;
newContent: string;
}): Promise<any> {
return callTool('edit', params);
}
/**
* Edit multiple files in batch
*/
export async function multiEdit(params: {
edits: Array<{
path: string;
oldContent: string;
newContent: string;
}>;
}): Promise<any> {
return callTool('multiEdit', params);
}
/**
* Delete a file or directory
*/
export async function deleteFile(params: {
path: string;
}): Promise<any> {
return callTool('deleteFile', params);
}
/**
* Rename or move a file
*/
export async function renameFile(params: {
from: string;
to: string;
}): Promise<any> {
return callTool('renameFile', params);
}
// ===== DISCOVERY OPERATIONS =====
/**
* Search for files by name or content
*/
export async function searchFiles(params: {
query: string;
fileType?: 'filename' | 'content';
maxResults?: number;
}): Promise<any> {
return callTool('searchFiles', params);
}
/**
* Match files by glob pattern
*/
export async function glob(params: {
pattern: string;
maxResults?: number;
}): Promise<any> {
return callTool('glob', params);
}
/**
* List directory contents
*/
export async function ls(params: {
path: string;
}): Promise<any> {
return callTool('ls', params);
}
// ===== BASH OPERATIONS =====
/**
* Run bash command in sandbox
* Prefer for discovery operations (find, grep, wc) - saves 99% tokens vs reading files
*/
export async function bash(params: {
command: string;
description: string;
timeoutMs?: number;
}): Promise<any> {
return callTool('bash', params);
}
// ===== UI/UX OPERATIONS =====
/**
* Refresh the app preview
*/
export async function refreshApp(): Promise<any> {
return callTool('refreshApp', {});
}
/**
* Set the app name
*/
export async function setAppName(params: {
name: string;
}): Promise<any> {
return callTool('setAppName', params);
}
// ===== TODO MANAGEMENT =====
/**
* Write or update the todo list
*/
export async function todoWrite(params: {
todos: Array<{
content: string;
status: 'pending' | 'in_progress' | 'completed';
activeForm: string;
}>;
}): Promise<any> {
return callTool('todoWrite', params);
}
// ===== SPECIALIZED TOOLS =====
// For specialized tools (deployment, debug, patterns, media, web),
// use listAvailableTools() to see full descriptions
/**
* List available specialized tools by category
*/
export async function listAvailableTools(params?: {
category?: 'deployment' | 'debug' | 'environment' | 'patterns' | 'media' | 'web' | 'all';
}): Promise<any> {
return callTool('listAvailableTools', params || {});
}
/**
* Get Vercel deployment logs
*/
export async function getDeploymentLogs(): Promise<any> {
return callTool('getDeploymentLogs', {});
}
/**
* Check Vercel deployment status
*/
export async function checkDeploymentStatus(): Promise<any> {
return callTool('checkDeploymentStatus', {});
}
/**
* Check CodeSandbox health
*/
export async function checkSandboxStatus(): Promise<any> {
return callTool('checkSandboxStatus', {});
}
/**
* Get sandbox terminal logs
*/
export async function getSandboxLogs(params?: {
lines?: number;
}): Promise<any> {
return callTool('getSandboxLogs', params || {});
}
/**
* Restart the development server
*/
export async function restartApp(): Promise<any> {
return callTool('restartApp', {});
}
/**
* Get environment variables
*/
export async function getEnvVars(): Promise<any> {
return callTool('getEnvVars', {});
}
/**
* Set environment variables
*/
export async function setEnvVars(params: {
envVars: Record<string, string>;
}): Promise<any> {
return callTool('setEnvVars', params);
}
/**
* Get UI pattern from library
*/
export async function getPattern(params: {
category: string;
slug: string;
}): Promise<any> {
return callTool('getPattern', params);
}
/**
* Search available UI patterns
*/
export async function searchPatterns(params: {
query: string;
}): Promise<any> {
return callTool('searchPatterns', params);
}
/**
* List all UI patterns
*/
export async function listAllPatterns(): Promise<any> {
return callTool('listAllPatterns', {});
}
/**
* Generate AI image
*/
export async function generateImage(params: {
prompt: string;
size?: string;
}): Promise<any> {
return callTool('generateImage', params);
}
/**
* Search Unsplash for free stock photos
*/
export async function searchUnsplashImage(params: {
query: string;
}): Promise<any> {
return callTool('searchUnsplashImage', params);
}
/**
* Crawl website for data
*/
export async function webSearch(params: {
url: string;
selector?: string;
}): Promise<any> {
return callTool('webSearch', params);
}