4621d248cc
Extract multimodal look-at tool internals: - look-at-arguments.ts: argument validation and parsing - assistant-message-extractor.ts: response extraction - mime-type-inference.ts: file type detection - multimodal-agent-metadata.ts: agent metadata constants
32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import type { LookAtArgs } from "./types"
|
|
|
|
export interface LookAtArgsWithAlias extends LookAtArgs {
|
|
path?: string
|
|
}
|
|
|
|
export function normalizeArgs(args: LookAtArgsWithAlias): LookAtArgs {
|
|
return {
|
|
file_path: args.file_path ?? args.path,
|
|
image_data: args.image_data,
|
|
goal: args.goal ?? "",
|
|
}
|
|
}
|
|
|
|
export function validateArgs(args: LookAtArgs): string | null {
|
|
const hasFilePath = Boolean(args.file_path && args.file_path.length > 0)
|
|
const hasImageData = Boolean(args.image_data && args.image_data.length > 0)
|
|
|
|
if (!hasFilePath && !hasImageData) {
|
|
return `Error: Must provide either 'file_path' or 'image_data'. Usage:
|
|
- look_at(file_path="/path/to/file", goal="what to extract")
|
|
- look_at(image_data="base64_encoded_data", goal="what to extract")`
|
|
}
|
|
if (hasFilePath && hasImageData) {
|
|
return "Error: Provide only one of 'file_path' or 'image_data', not both."
|
|
}
|
|
if (!args.goal) {
|
|
return "Error: Missing required parameter 'goal'. Usage: look_at(file_path=\"/path/to/file\", goal=\"what to extract\")"
|
|
}
|
|
return null
|
|
}
|