completable.d.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { AnySchema, SchemaInput } from './zod-compat.js';
  2. export declare const COMPLETABLE_SYMBOL: unique symbol;
  3. export type CompleteCallback<T extends AnySchema = AnySchema> = (value: SchemaInput<T>, context?: {
  4. arguments?: Record<string, string>;
  5. }) => SchemaInput<T>[] | Promise<SchemaInput<T>[]>;
  6. export type CompletableMeta<T extends AnySchema = AnySchema> = {
  7. complete: CompleteCallback<T>;
  8. };
  9. export type CompletableSchema<T extends AnySchema> = T & {
  10. [COMPLETABLE_SYMBOL]: CompletableMeta<T>;
  11. };
  12. /**
  13. * Wraps a Zod type to provide autocompletion capabilities. Useful for, e.g., prompt arguments in MCP.
  14. * Works with both Zod v3 and v4 schemas.
  15. */
  16. export declare function completable<T extends AnySchema>(schema: T, complete: CompleteCallback<T>): CompletableSchema<T>;
  17. /**
  18. * Checks if a schema is completable (has completion metadata).
  19. */
  20. export declare function isCompletable(schema: unknown): schema is CompletableSchema<AnySchema>;
  21. /**
  22. * Gets the completer callback from a completable schema, if it exists.
  23. */
  24. export declare function getCompleter<T extends AnySchema>(schema: T): CompleteCallback<T> | undefined;
  25. /**
  26. * Unwraps a completable schema to get the underlying schema.
  27. * For backward compatibility with code that called `.unwrap()`.
  28. */
  29. export declare function unwrapCompletable<T extends AnySchema>(schema: CompletableSchema<T>): T;
  30. export declare enum McpZodTypeKind {
  31. Completable = "McpCompletable"
  32. }
  33. export interface CompletableDef<T extends AnySchema = AnySchema> {
  34. type: T;
  35. complete: CompleteCallback<T>;
  36. typeName: McpZodTypeKind.Completable;
  37. }
  38. //# sourceMappingURL=completable.d.ts.map