tool.ts 632 B

1234567891011121314151617181920212223
  1. import type { StandardSchemaV1 } from "@standard-schema/spec"
  2. export namespace Tool {
  3. export interface Info<
  4. Parameters extends StandardSchemaV1 = StandardSchemaV1,
  5. Metadata extends Record<string, any> = Record<string, any>,
  6. > {
  7. id: string
  8. description: string
  9. parameters: Parameters
  10. execute(args: StandardSchemaV1.InferOutput<Parameters>): Promise<{
  11. metadata: Metadata
  12. output: string
  13. }>
  14. }
  15. export function define<
  16. Parameters extends StandardSchemaV1,
  17. Result extends Record<string, any>,
  18. >(input: Info<Parameters, Result>): Info<Parameters, Result> {
  19. return input
  20. }
  21. }