File size: 1,699 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
39
40
41
42
43
44
45
46
47
48
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.McpZodTypeKind = exports.COMPLETABLE_SYMBOL = void 0;
exports.completable = completable;
exports.isCompletable = isCompletable;
exports.getCompleter = getCompleter;
exports.unwrapCompletable = unwrapCompletable;
exports.COMPLETABLE_SYMBOL = Symbol.for('mcp.completable');
/**

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

 * Works with both Zod v3 and v4 schemas.

 */
function completable(schema, complete) {
    Object.defineProperty(schema, exports.COMPLETABLE_SYMBOL, {
        value: { complete },
        enumerable: false,
        writable: false,
        configurable: false
    });
    return schema;
}
/**

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

 */
function isCompletable(schema) {
    return !!schema && typeof schema === 'object' && exports.COMPLETABLE_SYMBOL in schema;
}
/**

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

 */
function getCompleter(schema) {
    const meta = schema[exports.COMPLETABLE_SYMBOL];
    return meta?.complete;
}
/**

 * Unwraps a completable schema to get the underlying schema.

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

 */
function unwrapCompletable(schema) {
    return schema;
}
// Legacy exports for backward compatibility
// These types are deprecated but kept for existing code
var McpZodTypeKind;
(function (McpZodTypeKind) {
    McpZodTypeKind["Completable"] = "McpCompletable";
})(McpZodTypeKind || (exports.McpZodTypeKind = McpZodTypeKind = {}));
//# sourceMappingURL=completable.js.map