@venturekit/mcp 0.0.29 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,7 +12,8 @@ audit logging, per-call context — are injected through hooks, so any app can
12
12
  expose an MCP endpoint (and issue/verify tokens for it) without re-implementing
13
13
  the generic parts.
14
14
 
15
- It stays dependency-light: `zod` is a **type-only peer dependency**, token hashing
15
+ It stays dependency-light: `zod` is a **type-only peer dependency** (Zod 4 — the
16
+ `tools/list` serializer reads Zod 4's `_zod.def` internals), token hashing
16
17
  uses `node:crypto` scrypt (no third-party crypto dep), and the store talks to your
17
18
  database through a structural `Querier` (pass `@venturekit/data`'s `query` — no DB
18
19
  driver dependency). The dispatcher core itself remains entirely storage-free.
@@ -2,18 +2,22 @@
2
2
  * Minimal Zod -> JSON-Schema serializer for MCP `tools/list` output.
3
3
  *
4
4
  * Implements the subset MCP tool inputs realistically use: `z.object`
5
- * with primitives, `optional`, `nullable`, `default`, `enum`, native
6
- * enum, `array`, `record`, `union`, `literal`, plus the wrappers Zod
7
- * inserts for `.refine()` / `.superRefine()` / `.transform()`
8
- * (`ZodEffects`), `.pipe()` (`ZodPipeline`) and `.readonly()`
9
- * (`ZodReadonly`) — these are unwrapped to the schema they decorate so
10
- * a refined object still advertises its real properties.
5
+ * with primitives, `optional`, `nullable`, `default`, `enum`, `array`,
6
+ * `record`, `union`, `literal`, plus the wrappers Zod inserts for
7
+ * `.transform()` / `.pipe()` / `z.preprocess()` (all `pipe` in Zod 4),
8
+ * `.readonly()`, `.catch()` and `.nonoptional()` — these are unwrapped
9
+ * to the schema they decorate so a wrapped object still advertises its
10
+ * real properties. (`.refine()` / `.superRefine()` need no unwrapping in
11
+ * Zod 4: they append a check to the schema itself rather than wrapping
12
+ * it.)
11
13
  *
12
- * `zod` is imported type-only; this function reads `._def` structurally
13
- * and never constructs a schema, so the package carries no runtime zod
14
- * dependency.
14
+ * Targets Zod 4, whose introspection surface is `schema._zod.def` with
15
+ * lowercase type tags (`'object'`, `'string'`, …) and `checks` carrying
16
+ * their own `_zod.def`. `zod` is imported type-only; this function reads
17
+ * those internals structurally and never constructs a schema, so the
18
+ * package carries no runtime zod dependency.
15
19
  */
16
- import type { ZodTypeAny } from 'zod';
20
+ import type { ZodType } from 'zod';
17
21
  export interface JsonSchema {
18
22
  type?: string | string[];
19
23
  description?: string;
@@ -29,7 +33,9 @@ export interface JsonSchema {
29
33
  maxLength?: number;
30
34
  minimum?: number;
31
35
  maximum?: number;
36
+ exclusiveMinimum?: number;
37
+ exclusiveMaximum?: number;
32
38
  pattern?: string;
33
39
  }
34
- export declare function zodToJsonSchema(schema: ZodTypeAny): JsonSchema;
40
+ export declare function zodToJsonSchema(schema: ZodType): JsonSchema;
35
41
  //# sourceMappingURL=json-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EASV,UAAU,EAEX,MAAM,KAAK,CAAC;AAEb,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,oBAAoB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAgG9D"}
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AA4DnC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,oBAAoB,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAgBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAU3D"}
@@ -2,27 +2,51 @@
2
2
  * Minimal Zod -> JSON-Schema serializer for MCP `tools/list` output.
3
3
  *
4
4
  * Implements the subset MCP tool inputs realistically use: `z.object`
5
- * with primitives, `optional`, `nullable`, `default`, `enum`, native
6
- * enum, `array`, `record`, `union`, `literal`, plus the wrappers Zod
7
- * inserts for `.refine()` / `.superRefine()` / `.transform()`
8
- * (`ZodEffects`), `.pipe()` (`ZodPipeline`) and `.readonly()`
9
- * (`ZodReadonly`) — these are unwrapped to the schema they decorate so
10
- * a refined object still advertises its real properties.
5
+ * with primitives, `optional`, `nullable`, `default`, `enum`, `array`,
6
+ * `record`, `union`, `literal`, plus the wrappers Zod inserts for
7
+ * `.transform()` / `.pipe()` / `z.preprocess()` (all `pipe` in Zod 4),
8
+ * `.readonly()`, `.catch()` and `.nonoptional()` — these are unwrapped
9
+ * to the schema they decorate so a wrapped object still advertises its
10
+ * real properties. (`.refine()` / `.superRefine()` need no unwrapping in
11
+ * Zod 4: they append a check to the schema itself rather than wrapping
12
+ * it.)
11
13
  *
12
- * `zod` is imported type-only; this function reads `._def` structurally
13
- * and never constructs a schema, so the package carries no runtime zod
14
- * dependency.
14
+ * Targets Zod 4, whose introspection surface is `schema._zod.def` with
15
+ * lowercase type tags (`'object'`, `'string'`, …) and `checks` carrying
16
+ * their own `_zod.def`. `zod` is imported type-only; this function reads
17
+ * those internals structurally and never constructs a schema, so the
18
+ * package carries no runtime zod dependency.
15
19
  */
20
+ /** Zod 4 `string_format` check -> JSON-Schema `format`. */
21
+ const STRING_FORMATS = {
22
+ uuid: 'uuid',
23
+ guid: 'uuid',
24
+ email: 'email',
25
+ url: 'uri',
26
+ datetime: 'date-time',
27
+ date: 'date',
28
+ time: 'time',
29
+ duration: 'duration',
30
+ ipv4: 'ipv4',
31
+ ipv6: 'ipv6',
32
+ };
16
33
  export function zodToJsonSchema(schema) {
17
- const def = schema._def;
18
- const t = def.typeName;
19
- switch (t) {
20
- case 'ZodObject': {
21
- const shape = schema.shape;
34
+ const node = schema;
35
+ if (!node?._zod?.def) {
36
+ // A Zod 3 schema (`._def.typeName`) would otherwise walk into
37
+ // `undefined` and report an empty input schema for every tool.
38
+ throw new TypeError('@venturekit/mcp requires a Zod 4 schema (missing `_zod.def`); upgrade the host app to zod ^4.');
39
+ }
40
+ return toJsonSchema(node);
41
+ }
42
+ function toJsonSchema(schema) {
43
+ const def = schema._zod.def;
44
+ switch (def.type) {
45
+ case 'object': {
22
46
  const properties = {};
23
47
  const required = [];
24
- for (const [k, v] of Object.entries(shape)) {
25
- properties[k] = zodToJsonSchema(v);
48
+ for (const [k, v] of Object.entries(def.shape ?? {})) {
49
+ properties[k] = toJsonSchema(v);
26
50
  if (!isOptional(v))
27
51
  required.push(k);
28
52
  }
@@ -33,107 +57,113 @@ export function zodToJsonSchema(schema) {
33
57
  additionalProperties: false,
34
58
  };
35
59
  }
36
- case 'ZodString': {
60
+ case 'string': {
37
61
  const out = { type: 'string' };
38
- const checks = (schema._def.checks ?? []);
39
- for (const c of checks) {
40
- if (c.kind === 'min' && typeof c.value === 'number')
41
- out.minLength = c.value;
42
- if (c.kind === 'max' && typeof c.value === 'number')
43
- out.maxLength = c.value;
44
- if (c.kind === 'uuid')
45
- out.format = 'uuid';
46
- if (c.kind === 'email')
47
- out.format = 'email';
48
- if (c.kind === 'url')
49
- out.format = 'uri';
50
- if (c.kind === 'datetime')
51
- out.format = 'date-time';
52
- if (c.kind === 'regex' && c.regex)
53
- out.pattern = c.regex.source;
62
+ for (const c of constraintsOf(def)) {
63
+ if (c.check === 'min_length' && typeof c.minimum === 'number')
64
+ out.minLength = c.minimum;
65
+ if (c.check === 'max_length' && typeof c.maximum === 'number')
66
+ out.maxLength = c.maximum;
67
+ if (c.check === 'string_format') {
68
+ if (c.format === 'regex') {
69
+ if (c.pattern)
70
+ out.pattern = c.pattern.source;
71
+ }
72
+ else if (c.format && STRING_FORMATS[c.format]) {
73
+ out.format = STRING_FORMATS[c.format];
74
+ }
75
+ }
54
76
  }
55
77
  return out;
56
78
  }
57
- case 'ZodNumber': {
79
+ case 'number': {
58
80
  const out = { type: 'number' };
59
- const checks = (schema._def
60
- .checks ?? []);
61
- for (const c of checks) {
62
- if (c.kind === 'min' && typeof c.value === 'number')
63
- out.minimum = c.value;
64
- if (c.kind === 'max' && typeof c.value === 'number')
65
- out.maximum = c.value;
66
- if (c.kind === 'int')
81
+ for (const c of constraintsOf(def)) {
82
+ if (c.check === 'greater_than' && typeof c.value === 'number') {
83
+ if (c.inclusive)
84
+ out.minimum = c.value;
85
+ else
86
+ out.exclusiveMinimum = c.value;
87
+ }
88
+ if (c.check === 'less_than' && typeof c.value === 'number') {
89
+ if (c.inclusive)
90
+ out.maximum = c.value;
91
+ else
92
+ out.exclusiveMaximum = c.value;
93
+ }
94
+ // `.int()` / `.int32()` / `z.int()` all surface as a numeric format.
95
+ if (c.check === 'number_format' && c.format?.includes('int'))
67
96
  out.type = 'integer';
68
97
  }
69
98
  return out;
70
99
  }
71
- case 'ZodBoolean':
100
+ case 'boolean':
72
101
  return { type: 'boolean' };
73
- case 'ZodEnum':
74
- return { type: 'string', enum: schema.options };
75
- case 'ZodNativeEnum':
76
- return { type: 'string', enum: Object.values(schema.enum) };
77
- case 'ZodArray': {
78
- const inner = schema._def.type;
79
- return { type: 'array', items: zodToJsonSchema(inner) };
102
+ case 'enum': {
103
+ // `z.enum` and `z.nativeEnum` share this node; a native enum may
104
+ // carry number members, so derive the type from the values.
105
+ const values = Object.values(def.entries ?? {});
106
+ return { type: jsonTypeOf(values[0]), enum: values };
80
107
  }
81
- case 'ZodRecord': {
82
- const valueSchema = schema._def.valueType;
83
- return { type: 'object', additionalProperties: zodToJsonSchema(valueSchema) };
84
- }
85
- case 'ZodOptional':
86
- case 'ZodNullable':
87
- case 'ZodDefault': {
88
- const inner = schema._def.innerType;
89
- const out = zodToJsonSchema(inner);
90
- if (t === 'ZodDefault') {
91
- const defGetter = schema._def.defaultValue;
92
- if (typeof defGetter === 'function')
93
- out.default = defGetter();
94
- }
108
+ case 'array':
109
+ return { type: 'array', items: toJsonSchema(def.element) };
110
+ case 'record':
111
+ return { type: 'object', additionalProperties: toJsonSchema(def.valueType) };
112
+ case 'optional':
113
+ case 'nullable':
114
+ case 'readonly':
115
+ case 'catch':
116
+ case 'nonoptional':
117
+ return toJsonSchema(def.innerType);
118
+ case 'default':
119
+ case 'prefault': {
120
+ const out = toJsonSchema(def.innerType);
121
+ const dv = def.defaultValue;
122
+ out.default = typeof dv === 'function' ? dv() : dv;
95
123
  return out;
96
124
  }
97
- case 'ZodEffects':
98
- // `.refine()` / `.superRefine()` / `.transform()` / `z.preprocess`
99
- return zodToJsonSchema(schema._def.schema);
100
- case 'ZodPipeline':
101
- // `a.pipe(b)` — describe the output side.
102
- return zodToJsonSchema(schema._def.out);
103
- case 'ZodReadonly':
104
- return zodToJsonSchema(schema._def.innerType);
105
- case 'ZodUnion': {
106
- const opts = schema._def.options;
107
- return { oneOf: opts.map((o) => zodToJsonSchema(o)) };
125
+ case 'pipe': {
126
+ // `.pipe()`, `.transform()` and `z.preprocess()` all land here.
127
+ // Describe the output side, which is the validated schema for
128
+ // `.pipe()` / `z.preprocess()`; when it is an opaque `transform`
129
+ // (as in `schema.transform(fn)`) fall back to the input side so
130
+ // the tool still advertises the shape callers must send.
131
+ const out = toJsonSchema(def.out);
132
+ if (Object.keys(out).length)
133
+ return out;
134
+ return toJsonSchema(def.in);
108
135
  }
109
- case 'ZodLiteral': {
110
- const v = schema._def.value;
111
- return { type: typeof v === 'number' ? 'number' : 'string', enum: [v] };
136
+ case 'union':
137
+ return { oneOf: (def.options ?? []).map(toJsonSchema) };
138
+ case 'literal': {
139
+ const values = def.values ?? [];
140
+ return { type: jsonTypeOf(values[0]), enum: [...values] };
112
141
  }
113
- case 'ZodAny':
114
- case 'ZodUnknown':
115
- return {};
116
142
  default:
143
+ // `any` / `unknown` and anything unmodelled (date, tuple, …).
117
144
  return {};
118
145
  }
119
146
  }
147
+ /**
148
+ * Every constraint on a primitive: the schema's own def first (a format
149
+ * schema such as `z.uuid()` / `z.int()` carries its constraint there),
150
+ * then the appended `.min()` / `.regex()` / … checks.
151
+ */
152
+ function constraintsOf(def) {
153
+ return [def, ...(def.checks ?? []).map((c) => c._zod.def)];
154
+ }
155
+ function jsonTypeOf(value) {
156
+ return typeof value === 'number' ? 'number' : typeof value === 'boolean' ? 'boolean' : 'string';
157
+ }
158
+ /**
159
+ * Whether an object key may be omitted from the *input*. Zod 4 computes
160
+ * this itself as `optin` (`'optional'` for `.optional()` / `.catch()`,
161
+ * `'defaulted'` for `.default()` / `.prefault()`, and propagated through
162
+ * wrappers like `.readonly()` / `.pipe()`), so wrappers need no manual
163
+ * unwrapping here. `.nullable()` leaves it unset — nullable but still
164
+ * required.
165
+ */
120
166
  function isOptional(schema) {
121
- const def = schema._def;
122
- if (def.typeName === 'ZodOptional' || def.typeName === 'ZodDefault')
123
- return true;
124
- if (def.typeName === 'ZodNullable')
125
- return false; // nullable but still required
126
- // Unwrap refinement / pipeline / readonly wrappers so an optional
127
- // field that's been `.refine()`d still reads as optional.
128
- if ((def.typeName === 'ZodEffects' || def.typeName === 'ZodReadonly') &&
129
- def.innerType) {
130
- return isOptional(def.innerType);
131
- }
132
- if (def.typeName === 'ZodEffects') {
133
- const inner = schema._def.schema;
134
- if (inner)
135
- return isOptional(inner);
136
- }
137
- return false;
167
+ return schema._zod.optin !== undefined;
138
168
  }
139
169
  //# sourceMappingURL=json-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-schema.js","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * The package is intentionally dependency-light: `zod` is a *type-only*
5
5
  * peer dependency (the dispatcher only ever calls `.safeParse` on a
6
6
  * schema the host supplies, and the JSON-Schema serializer reads
7
- * `._def` structurally), so nothing here pulls zod in at runtime.
7
+ * `._zod.def` structurally), so nothing here pulls zod in at runtime.
8
8
  *
9
9
  * The two generic parameters thread two host-owned shapes through the
10
10
  * dispatcher:
@@ -15,7 +15,7 @@
15
15
  * `wrapToolCall` / `createContext`. The CMS uses the
16
16
  * `{ token, tenant }` pair from its bearer-token check.
17
17
  */
18
- import type { ZodType, ZodTypeDef } from 'zod';
18
+ import type { ZodType } from 'zod';
19
19
  export interface JsonRpcRequest {
20
20
  jsonrpc: '2.0';
21
21
  id: number | string | null;
@@ -35,13 +35,13 @@ export interface JsonRpcResponse {
35
35
  }
36
36
  /**
37
37
  * A single callable tool. `inputSchema` is any Zod schema; the `unknown`
38
- * Input variance lets schemas using `.default()` (where Zod splits the
38
+ * Input parameter lets schemas using `.default()` (where Zod splits the
39
39
  * Input/Output types so Input becomes optional) satisfy this type.
40
40
  */
41
41
  export interface McpTool<TInput = unknown, TContext = unknown, TOutput = unknown> {
42
42
  name: string;
43
43
  description: string;
44
- inputSchema: ZodType<TInput, ZodTypeDef, unknown>;
44
+ inputSchema: ZodType<TInput, unknown>;
45
45
  run(args: TInput, ctx: TContext): Promise<TOutput>;
46
46
  }
47
47
  /** A keyed bag of tools sharing one `TContext`. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAInC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAID;;;;GAIG;AACH,MAAM,WAAW,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpD;AAED,mDAAmD;AACnD,MAAM,MAAM,eAAe,CAAC,QAAQ,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAI9F,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa,CAAC,UAAU;IACvC;;;;OAIG;IACH,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzC,oDAAoD;IACpD,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,+DAA+D;AAC/D,MAAM,WAAW,eAAe,CAAC,UAAU;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,EAAE,UAAU;IACnD,UAAU,EAAE,aAAa,CAAC;IAC1B,KAAK,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,2EAA2E;IAC3E,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrF,qFAAqF;IACrF,SAAS,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,gFAAgF;IAChF,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACxF;AAID,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,wCAAwC;IACxC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,EAAE,eAAe,CAAC;CAC3B"}
package/dist/types.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * The package is intentionally dependency-light: `zod` is a *type-only*
5
5
  * peer dependency (the dispatcher only ever calls `.safeParse` on a
6
6
  * schema the host supplies, and the JSON-Schema serializer reads
7
- * `._def` structurally), so nothing here pulls zod in at runtime.
7
+ * `._zod.def` structurally), so nothing here pulls zod in at runtime.
8
8
  *
9
9
  * The two generic parameters thread two host-owned shapes through the
10
10
  * dispatcher:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@venturekit/mcp",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "description": "Transport-agnostic Model Context Protocol (MCP) server primitives for VentureKit: JSON-RPC dispatch, a typed tool registry, and a Zod→JSON-Schema serializer.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,12 +41,12 @@
41
41
  "agents"
42
42
  ],
43
43
  "peerDependencies": {
44
- "zod": "^3.22.0"
44
+ "zod": "^4.5.4"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^26.1.2",
48
48
  "typescript": "^5.3.0",
49
- "zod": "^3.22.0"
49
+ "zod": "^4.5.4"
50
50
  },
51
51
  "scripts": {
52
52
  "build": "tsc && node -e \"require('fs').cpSync('src/migrations','dist/migrations',{recursive:true})\"",