import type { StandardSchemaV1 } from "@standard-schema/spec" export namespace Tool { export type Context = { sessionID: string } export interface Info< Parameters extends StandardSchemaV1 = StandardSchemaV1, Metadata extends Record = Record, > { id: string description: string parameters: Parameters execute( args: StandardSchemaV1.InferOutput, ctx: Context, ): Promise<{ metadata: Metadata output: string }> } export function define< Parameters extends StandardSchemaV1, Result extends Record, >(input: Info): Info { return input } }