diff --git a/src/core.ts b/src/core.ts index 436e507..1d3b8aa 100644 --- a/src/core.ts +++ b/src/core.ts @@ -9,6 +9,12 @@ import Validate from "./validate"; import Vision from "./vision/vision"; import Web from "./web/web"; +type BoundMethod = T extends (...args: any[]) => any ? T : never; + +const createBoundMethod = any>(obj: any, method: T): BoundMethod => { + return ((...args: any[]) => method.apply(obj, args)) as BoundMethod; +}; + export const JigsawStack = (config?: BaseConfig) => { const _apiKey = config?.apiKey || process?.env?.JIGSAWSTACK_API_KEY; @@ -40,14 +46,14 @@ export const JigsawStack = (config?: BaseConfig) => { embedding: general.embedding, audio, vision: { - vocr: vision.vocr.bind(vision), - object_detection: vision.object_detection.bind(vision), + vocr: createBoundMethod(vision, vision.vocr), + object_detection: createBoundMethod(vision, vision.object_detection), }, web: { - ai_scrape: web.ai_scrape.bind(web), - html_to_any: web.html_to_any.bind(web), - search: web.search.bind(web), - search_suggestions: web.search_suggestions.bind(web), + ai_scrape: web.ai_scrape, + html_to_any: web.html_to_any, + search: web.search, + search_suggestions: web.search_suggestions, }, store, validate, diff --git a/src/vercel-ai-toolkit.ts b/src/vercel-ai-toolkit.ts index 813e6e0..a6bcb91 100644 --- a/src/vercel-ai-toolkit.ts +++ b/src/vercel-ai-toolkit.ts @@ -3,7 +3,6 @@ import { BaseConfig } from "../types"; import { LanguageCodes } from "./audio/interfaces"; import { JigsawStack } from "./core"; import { tool } from "./vercel-tool"; - export interface JigsawStackToolOptions { tools?: string[]; }