File size: 1,686 Bytes
a5d718a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { AnySchema, SchemaInput } from './zod-compat.js';
export declare const COMPLETABLE_SYMBOL: unique symbol;
export type CompleteCallback<T extends AnySchema = AnySchema> = (value: SchemaInput<T>, context?: {

    arguments?: Record<string, string>;

}) => SchemaInput<T>[] | Promise<SchemaInput<T>[]>;
export type CompletableMeta<T extends AnySchema = AnySchema> = {
    complete: CompleteCallback<T>;
};
export type CompletableSchema<T extends AnySchema> = T & {
    [COMPLETABLE_SYMBOL]: CompletableMeta<T>;
};
/**

 * Wraps a Zod type to provide autocompletion capabilities. Useful for, e.g., prompt arguments in MCP.

 * Works with both Zod v3 and v4 schemas.

 */
export declare function completable<T extends AnySchema>(schema: T, complete: CompleteCallback<T>): CompletableSchema<T>;
/**

 * Checks if a schema is completable (has completion metadata).

 */
export declare function isCompletable(schema: unknown): schema is CompletableSchema<AnySchema>;
/**

 * Gets the completer callback from a completable schema, if it exists.

 */
export declare function getCompleter<T extends AnySchema>(schema: T): CompleteCallback<T> | undefined;
/**

 * Unwraps a completable schema to get the underlying schema.

 * For backward compatibility with code that called `.unwrap()`.

 */
export declare function unwrapCompletable<T extends AnySchema>(schema: CompletableSchema<T>): T;
export declare enum McpZodTypeKind {
    Completable = "McpCompletable"
}
export interface CompletableDef<T extends AnySchema = AnySchema> {
    type: T;
    complete: CompleteCallback<T>;
    typeName: McpZodTypeKind.Completable;
}
//# sourceMappingURL=completable.d.ts.map