@contractspec/lib.ai-agent 1.57.0 → 1.59.0

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.
Files changed (232) hide show
  1. package/dist/agent/agent-factory.d.ts +67 -71
  2. package/dist/agent/agent-factory.d.ts.map +1 -1
  3. package/dist/agent/agent-factory.js +658 -100
  4. package/dist/agent/agent.test.d.ts +2 -0
  5. package/dist/agent/agent.test.d.ts.map +1 -0
  6. package/dist/agent/contract-spec-agent.d.ts +48 -52
  7. package/dist/agent/contract-spec-agent.d.ts.map +1 -1
  8. package/dist/agent/contract-spec-agent.js +605 -146
  9. package/dist/agent/index.d.ts +4 -4
  10. package/dist/agent/index.d.ts.map +1 -0
  11. package/dist/agent/index.js +2102 -4
  12. package/dist/agent/json-runner.d.ts +15 -19
  13. package/dist/agent/json-runner.d.ts.map +1 -1
  14. package/dist/agent/json-runner.js +672 -57
  15. package/dist/agent/json-runner.test.d.ts +2 -0
  16. package/dist/agent/json-runner.test.d.ts.map +1 -0
  17. package/dist/agent/unified-agent.d.ts +132 -109
  18. package/dist/agent/unified-agent.d.ts.map +1 -1
  19. package/dist/agent/unified-agent.js +2011 -293
  20. package/dist/approval/index.d.ts +3 -2
  21. package/dist/approval/index.d.ts.map +1 -0
  22. package/dist/approval/index.js +128 -2
  23. package/dist/approval/workflow.d.ts +106 -110
  24. package/dist/approval/workflow.d.ts.map +1 -1
  25. package/dist/approval/workflow.js +126 -157
  26. package/dist/exporters/claude-agent-exporter.d.ts +50 -48
  27. package/dist/exporters/claude-agent-exporter.d.ts.map +1 -1
  28. package/dist/exporters/claude-agent-exporter.js +258 -203
  29. package/dist/exporters/index.d.ts +28 -4
  30. package/dist/exporters/index.d.ts.map +1 -0
  31. package/dist/exporters/index.js +737 -3
  32. package/dist/exporters/opencode-exporter.d.ts +47 -45
  33. package/dist/exporters/opencode-exporter.d.ts.map +1 -1
  34. package/dist/exporters/opencode-exporter.js +507 -191
  35. package/dist/exporters/types.d.ts +171 -169
  36. package/dist/exporters/types.d.ts.map +1 -1
  37. package/dist/exporters/types.js +1 -0
  38. package/dist/index.d.ts +15 -39
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +3337 -32
  41. package/dist/interop/index.d.ts +48 -4
  42. package/dist/interop/index.d.ts.map +1 -0
  43. package/dist/interop/index.js +709 -3
  44. package/dist/interop/spec-consumer.d.ts +57 -53
  45. package/dist/interop/spec-consumer.d.ts.map +1 -1
  46. package/dist/interop/spec-consumer.js +302 -282
  47. package/dist/interop/tool-consumer.d.ts +57 -53
  48. package/dist/interop/tool-consumer.d.ts.map +1 -1
  49. package/dist/interop/tool-consumer.js +412 -213
  50. package/dist/interop/types.d.ts +173 -171
  51. package/dist/interop/types.d.ts.map +1 -1
  52. package/dist/interop/types.js +1 -0
  53. package/dist/knowledge/index.d.ts +2 -2
  54. package/dist/knowledge/index.d.ts.map +1 -0
  55. package/dist/knowledge/index.js +66 -2
  56. package/dist/knowledge/injector.d.ts +16 -20
  57. package/dist/knowledge/injector.d.ts.map +1 -1
  58. package/dist/knowledge/injector.js +56 -47
  59. package/dist/memory/in-memory.d.ts +15 -19
  60. package/dist/memory/in-memory.d.ts.map +1 -1
  61. package/dist/memory/in-memory.js +152 -46
  62. package/dist/memory/index.d.ts +3 -3
  63. package/dist/memory/index.d.ts.map +1 -0
  64. package/dist/memory/index.js +155 -3
  65. package/dist/memory/manager.d.ts +32 -36
  66. package/dist/memory/manager.d.ts.map +1 -1
  67. package/dist/memory/manager.js +96 -70
  68. package/dist/memory/memory.test.d.ts +2 -0
  69. package/dist/memory/memory.test.d.ts.map +1 -0
  70. package/dist/node/agent/agent-factory.js +661 -0
  71. package/dist/node/agent/contract-spec-agent.js +607 -0
  72. package/dist/node/agent/index.js +2103 -0
  73. package/dist/node/agent/json-runner.js +684 -0
  74. package/dist/node/agent/unified-agent.js +2019 -0
  75. package/dist/node/approval/index.js +129 -0
  76. package/dist/node/approval/workflow.js +129 -0
  77. package/dist/node/exporters/claude-agent-exporter.js +265 -0
  78. package/dist/node/exporters/index.js +738 -0
  79. package/dist/node/exporters/opencode-exporter.js +516 -0
  80. package/dist/node/exporters/types.js +0 -0
  81. package/dist/node/index.js +3337 -0
  82. package/dist/node/interop/index.js +710 -0
  83. package/dist/node/interop/spec-consumer.js +307 -0
  84. package/dist/node/interop/tool-consumer.js +419 -0
  85. package/dist/node/interop/types.js +0 -0
  86. package/dist/node/knowledge/index.js +67 -0
  87. package/dist/node/knowledge/injector.js +67 -0
  88. package/dist/node/memory/in-memory.js +154 -0
  89. package/dist/node/memory/index.js +156 -0
  90. package/dist/node/memory/manager.js +105 -0
  91. package/dist/node/providers/claude-agent-sdk/adapter.js +624 -0
  92. package/dist/node/providers/claude-agent-sdk/index.js +673 -0
  93. package/dist/node/providers/claude-agent-sdk/session-bridge.js +149 -0
  94. package/dist/node/providers/claude-agent-sdk/tool-bridge.js +118 -0
  95. package/dist/node/providers/index.js +1261 -0
  96. package/dist/node/providers/opencode-sdk/adapter.js +669 -0
  97. package/dist/node/providers/opencode-sdk/agent-bridge.js +299 -0
  98. package/dist/node/providers/opencode-sdk/index.js +703 -0
  99. package/dist/node/providers/opencode-sdk/tool-bridge.js +141 -0
  100. package/dist/node/providers/registry.js +89 -0
  101. package/dist/node/providers/types.js +56 -0
  102. package/dist/node/schema/index.js +195 -0
  103. package/dist/node/schema/json-schema-to-zod.js +152 -0
  104. package/dist/node/schema/schema-output.js +190 -0
  105. package/dist/node/session/index.js +90 -0
  106. package/dist/node/session/store.js +90 -0
  107. package/dist/node/spec/index.js +85 -0
  108. package/dist/node/spec/registry.js +56 -0
  109. package/dist/node/spec/spec.js +44 -0
  110. package/dist/node/telemetry/adapter.js +85 -0
  111. package/dist/node/telemetry/index.js +86 -0
  112. package/dist/node/tools/index.js +345 -0
  113. package/dist/node/tools/knowledge-tool.js +74 -0
  114. package/dist/node/tools/mcp-client.js +47 -0
  115. package/dist/node/tools/mcp-server.js +205 -0
  116. package/dist/node/tools/tool-adapter.js +197 -0
  117. package/dist/node/types.js +0 -0
  118. package/dist/providers/claude-agent-sdk/adapter.d.ts +60 -52
  119. package/dist/providers/claude-agent-sdk/adapter.d.ts.map +1 -1
  120. package/dist/providers/claude-agent-sdk/adapter.js +622 -304
  121. package/dist/providers/claude-agent-sdk/index.d.ts +22 -4
  122. package/dist/providers/claude-agent-sdk/index.d.ts.map +1 -0
  123. package/dist/providers/claude-agent-sdk/index.js +672 -4
  124. package/dist/providers/claude-agent-sdk/session-bridge.d.ts +43 -40
  125. package/dist/providers/claude-agent-sdk/session-bridge.d.ts.map +1 -1
  126. package/dist/providers/claude-agent-sdk/session-bridge.js +121 -130
  127. package/dist/providers/claude-agent-sdk/tool-bridge.d.ts +63 -60
  128. package/dist/providers/claude-agent-sdk/tool-bridge.d.ts.map +1 -1
  129. package/dist/providers/claude-agent-sdk/tool-bridge.js +104 -108
  130. package/dist/providers/index.d.ts +28 -7
  131. package/dist/providers/index.d.ts.map +1 -0
  132. package/dist/providers/index.js +1261 -8
  133. package/dist/providers/opencode-sdk/adapter.d.ts +56 -48
  134. package/dist/providers/opencode-sdk/adapter.d.ts.map +1 -1
  135. package/dist/providers/opencode-sdk/adapter.js +667 -274
  136. package/dist/providers/opencode-sdk/agent-bridge.d.ts +62 -57
  137. package/dist/providers/opencode-sdk/agent-bridge.d.ts.map +1 -1
  138. package/dist/providers/opencode-sdk/agent-bridge.js +289 -155
  139. package/dist/providers/opencode-sdk/index.d.ts +22 -4
  140. package/dist/providers/opencode-sdk/index.d.ts.map +1 -0
  141. package/dist/providers/opencode-sdk/index.js +702 -4
  142. package/dist/providers/opencode-sdk/tool-bridge.d.ts +41 -42
  143. package/dist/providers/opencode-sdk/tool-bridge.d.ts.map +1 -1
  144. package/dist/providers/opencode-sdk/tool-bridge.js +121 -107
  145. package/dist/providers/registry.d.ts +10 -11
  146. package/dist/providers/registry.d.ts.map +1 -1
  147. package/dist/providers/registry.js +86 -49
  148. package/dist/providers/types.d.ts +169 -166
  149. package/dist/providers/types.d.ts.map +1 -1
  150. package/dist/providers/types.js +54 -42
  151. package/dist/schema/index.d.ts +3 -3
  152. package/dist/schema/index.d.ts.map +1 -0
  153. package/dist/schema/index.js +194 -3
  154. package/dist/schema/json-schema-to-zod.d.ts +23 -26
  155. package/dist/schema/json-schema-to-zod.d.ts.map +1 -1
  156. package/dist/schema/json-schema-to-zod.js +138 -110
  157. package/dist/schema/schema-output.d.ts +29 -32
  158. package/dist/schema/schema-output.d.ts.map +1 -1
  159. package/dist/schema/schema-output.js +178 -53
  160. package/dist/session/index.d.ts +2 -2
  161. package/dist/session/index.d.ts.map +1 -0
  162. package/dist/session/index.js +89 -2
  163. package/dist/session/store.d.ts +51 -55
  164. package/dist/session/store.d.ts.map +1 -1
  165. package/dist/session/store.js +85 -74
  166. package/dist/spec/index.d.ts +3 -3
  167. package/dist/spec/index.d.ts.map +1 -0
  168. package/dist/spec/index.js +84 -3
  169. package/dist/spec/registry.d.ts +32 -36
  170. package/dist/spec/registry.d.ts.map +1 -1
  171. package/dist/spec/registry.js +51 -60
  172. package/dist/spec/spec.d.ts +80 -84
  173. package/dist/spec/spec.d.ts.map +1 -1
  174. package/dist/spec/spec.js +40 -26
  175. package/dist/telemetry/adapter.d.ts +33 -37
  176. package/dist/telemetry/adapter.d.ts.map +1 -1
  177. package/dist/telemetry/adapter.js +78 -96
  178. package/dist/telemetry/index.d.ts +2 -2
  179. package/dist/telemetry/index.d.ts.map +1 -0
  180. package/dist/telemetry/index.js +85 -2
  181. package/dist/tools/index.d.ts +5 -5
  182. package/dist/tools/index.d.ts.map +1 -0
  183. package/dist/tools/index.js +344 -5
  184. package/dist/tools/knowledge-tool.d.ts +4 -8
  185. package/dist/tools/knowledge-tool.d.ts.map +1 -1
  186. package/dist/tools/knowledge-tool.js +68 -48
  187. package/dist/tools/mcp-client.d.ts +17 -21
  188. package/dist/tools/mcp-client.d.ts.map +1 -1
  189. package/dist/tools/mcp-client.js +42 -53
  190. package/dist/tools/mcp-server.d.ts +14 -18
  191. package/dist/tools/mcp-server.d.ts.map +1 -1
  192. package/dist/tools/mcp-server.js +200 -64
  193. package/dist/tools/tool-adapter.d.ts +7 -11
  194. package/dist/tools/tool-adapter.d.ts.map +1 -1
  195. package/dist/tools/tool-adapter.js +187 -70
  196. package/dist/tools/tools.test.d.ts +2 -0
  197. package/dist/tools/tools.test.d.ts.map +1 -0
  198. package/dist/types.d.ts +108 -111
  199. package/dist/types.d.ts.map +1 -1
  200. package/dist/types.js +1 -0
  201. package/package.json +448 -90
  202. package/dist/_virtual/_rolldown/runtime.js +0 -8
  203. package/dist/agent/agent-factory.js.map +0 -1
  204. package/dist/agent/contract-spec-agent.js.map +0 -1
  205. package/dist/agent/json-runner.js.map +0 -1
  206. package/dist/agent/unified-agent.js.map +0 -1
  207. package/dist/approval/workflow.js.map +0 -1
  208. package/dist/exporters/claude-agent-exporter.js.map +0 -1
  209. package/dist/exporters/opencode-exporter.js.map +0 -1
  210. package/dist/interop/spec-consumer.js.map +0 -1
  211. package/dist/interop/tool-consumer.js.map +0 -1
  212. package/dist/knowledge/injector.js.map +0 -1
  213. package/dist/memory/in-memory.js.map +0 -1
  214. package/dist/memory/manager.js.map +0 -1
  215. package/dist/providers/claude-agent-sdk/adapter.js.map +0 -1
  216. package/dist/providers/claude-agent-sdk/session-bridge.js.map +0 -1
  217. package/dist/providers/claude-agent-sdk/tool-bridge.js.map +0 -1
  218. package/dist/providers/opencode-sdk/adapter.js.map +0 -1
  219. package/dist/providers/opencode-sdk/agent-bridge.js.map +0 -1
  220. package/dist/providers/opencode-sdk/tool-bridge.js.map +0 -1
  221. package/dist/providers/registry.js.map +0 -1
  222. package/dist/providers/types.js.map +0 -1
  223. package/dist/schema/json-schema-to-zod.js.map +0 -1
  224. package/dist/schema/schema-output.js.map +0 -1
  225. package/dist/session/store.js.map +0 -1
  226. package/dist/spec/registry.js.map +0 -1
  227. package/dist/spec/spec.js.map +0 -1
  228. package/dist/telemetry/adapter.js.map +0 -1
  229. package/dist/tools/knowledge-tool.js.map +0 -1
  230. package/dist/tools/mcp-client.js.map +0 -1
  231. package/dist/tools/mcp-server.js.map +0 -1
  232. package/dist/tools/tool-adapter.js.map +0 -1
@@ -1,4 +1,195 @@
1
- import { jsonSchemaToZod, jsonSchemaToZodSafe } from "./json-schema-to-zod.js";
2
- import { SchemaOutput, enumToChoiceOutput, jsonSchemaToArrayOutput, jsonSchemaToOutput, textOutput, zodToOutput } from "./schema-output.js";
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true,
8
+ configurable: true,
9
+ set: (newValue) => all[name] = () => newValue
10
+ });
11
+ };
12
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
13
+ var __require = import.meta.require;
3
14
 
4
- export { SchemaOutput, enumToChoiceOutput, jsonSchemaToArrayOutput, jsonSchemaToOutput, jsonSchemaToZod, jsonSchemaToZodSafe, textOutput, zodToOutput };
15
+ // src/schema/json-schema-to-zod.ts
16
+ import { z } from "zod";
17
+ function jsonSchemaToZod(schema) {
18
+ const s = schema;
19
+ const makeNullable = (zodSchema) => {
20
+ return s.nullable ? z.union([zodSchema, z.null()]) : zodSchema;
21
+ };
22
+ if (s.const !== undefined) {
23
+ return z.literal(s.const);
24
+ }
25
+ if (s.enum) {
26
+ const values = s.enum;
27
+ return makeNullable(z.enum(values.map(String)));
28
+ }
29
+ if (s.anyOf && s.anyOf.length > 0) {
30
+ const schemas = s.anyOf.map((sub) => jsonSchemaToZod(sub));
31
+ if (schemas.length === 1)
32
+ return schemas[0] ?? z.unknown();
33
+ return z.union([
34
+ schemas[0] ?? z.unknown(),
35
+ schemas[1] ?? z.unknown(),
36
+ ...schemas.slice(2)
37
+ ]);
38
+ }
39
+ if (s.oneOf && s.oneOf.length > 0) {
40
+ const schemas = s.oneOf.map((sub) => jsonSchemaToZod(sub));
41
+ if (schemas.length === 1)
42
+ return schemas[0] ?? z.unknown();
43
+ return z.union([
44
+ schemas[0] ?? z.unknown(),
45
+ schemas[1] ?? z.unknown(),
46
+ ...schemas.slice(2)
47
+ ]);
48
+ }
49
+ if (s.allOf && s.allOf.length > 0) {
50
+ const schemas = s.allOf.map((sub) => jsonSchemaToZod(sub));
51
+ return schemas.reduce((acc, curr) => z.intersection(acc, curr));
52
+ }
53
+ switch (s.type) {
54
+ case "string":
55
+ return makeNullable(buildStringSchema(s));
56
+ case "number":
57
+ case "integer":
58
+ return makeNullable(buildNumberSchema(s));
59
+ case "boolean":
60
+ return makeNullable(z.boolean());
61
+ case "null":
62
+ return z.null();
63
+ case "array":
64
+ return makeNullable(buildArraySchema(s));
65
+ case "object":
66
+ return makeNullable(buildObjectSchema(s));
67
+ default:
68
+ return z.unknown();
69
+ }
70
+ }
71
+ function buildStringSchema(schema) {
72
+ let zodSchema = z.string();
73
+ if (schema.description) {
74
+ zodSchema = zodSchema.describe(schema.description);
75
+ }
76
+ switch (schema.format) {
77
+ case "email":
78
+ zodSchema = zodSchema.email();
79
+ break;
80
+ case "uri":
81
+ case "url":
82
+ zodSchema = zodSchema.url();
83
+ break;
84
+ case "uuid":
85
+ zodSchema = zodSchema.uuid();
86
+ break;
87
+ case "date-time":
88
+ zodSchema = zodSchema.datetime();
89
+ break;
90
+ case "date":
91
+ zodSchema = zodSchema.date();
92
+ break;
93
+ }
94
+ if (schema.minLength !== undefined) {
95
+ zodSchema = zodSchema.min(schema.minLength);
96
+ }
97
+ if (schema.maxLength !== undefined) {
98
+ zodSchema = zodSchema.max(schema.maxLength);
99
+ }
100
+ if (schema.pattern) {
101
+ zodSchema = zodSchema.regex(new RegExp(schema.pattern));
102
+ }
103
+ return zodSchema;
104
+ }
105
+ function buildNumberSchema(schema) {
106
+ let zodSchema = schema.type === "integer" ? z.number().int() : z.number();
107
+ if (schema.description) {
108
+ zodSchema = zodSchema.describe(schema.description);
109
+ }
110
+ if (schema.minimum !== undefined) {
111
+ zodSchema = zodSchema.min(schema.minimum);
112
+ }
113
+ if (schema.maximum !== undefined) {
114
+ zodSchema = zodSchema.max(schema.maximum);
115
+ }
116
+ return zodSchema;
117
+ }
118
+ function buildArraySchema(schema) {
119
+ const itemsSchema = schema.items ? jsonSchemaToZod(schema.items) : z.unknown();
120
+ let zodSchema = z.array(itemsSchema);
121
+ if (schema.description) {
122
+ zodSchema = zodSchema.describe(schema.description);
123
+ }
124
+ return zodSchema;
125
+ }
126
+ function buildObjectSchema(schema) {
127
+ const properties = schema.properties ?? {};
128
+ const required = new Set(schema.required ?? []);
129
+ const shape = {};
130
+ for (const [key, propSchema] of Object.entries(properties)) {
131
+ const zodProp = jsonSchemaToZod(propSchema);
132
+ shape[key] = required.has(key) ? zodProp : zodProp.optional();
133
+ }
134
+ let zodSchema = z.object(shape);
135
+ if (schema.description) {
136
+ zodSchema = zodSchema.describe(schema.description);
137
+ }
138
+ return zodSchema;
139
+ }
140
+ function jsonSchemaToZodSafe(schema) {
141
+ if (!schema || Object.keys(schema).length === 0) {
142
+ return z.object({});
143
+ }
144
+ return jsonSchemaToZod(schema);
145
+ }
146
+ var init_json_schema_to_zod = () => {};
147
+
148
+ // src/schema/schema-output.ts
149
+ init_json_schema_to_zod();
150
+ import { Output } from "ai";
151
+ function jsonSchemaToOutput(schema) {
152
+ const zodSchema = jsonSchemaToZod(schema);
153
+ return Output.object({
154
+ schema: zodSchema
155
+ });
156
+ }
157
+ function jsonSchemaToArrayOutput(itemSchema) {
158
+ const zodSchema = jsonSchemaToZod(itemSchema);
159
+ return Output.array({
160
+ element: zodSchema
161
+ });
162
+ }
163
+ function enumToChoiceOutput(choices) {
164
+ return Output.choice({
165
+ options: choices
166
+ });
167
+ }
168
+ function zodToOutput(schema) {
169
+ return Output.object({
170
+ schema
171
+ });
172
+ }
173
+ function textOutput() {
174
+ return Output.text();
175
+ }
176
+ var SchemaOutput = {
177
+ fromJsonSchema: jsonSchemaToOutput,
178
+ arrayFromJsonSchema: jsonSchemaToArrayOutput,
179
+ fromEnum: enumToChoiceOutput,
180
+ fromZod: zodToOutput,
181
+ text: textOutput
182
+ };
183
+
184
+ // src/schema/index.ts
185
+ init_json_schema_to_zod();
186
+ export {
187
+ zodToOutput,
188
+ textOutput,
189
+ jsonSchemaToZodSafe,
190
+ jsonSchemaToZod,
191
+ jsonSchemaToOutput,
192
+ jsonSchemaToArrayOutput,
193
+ enumToChoiceOutput,
194
+ SchemaOutput
195
+ };
@@ -1,29 +1,27 @@
1
- import { ZodType } from "zod";
2
-
3
- //#region src/schema/json-schema-to-zod.d.ts
1
+ import { type ZodType } from 'zod';
4
2
  /**
5
3
  * JSON Schema type definitions for conversion.
6
4
  */
7
5
  interface JsonSchema {
8
- type?: string;
9
- properties?: Record<string, JsonSchema>;
10
- required?: string[];
11
- items?: JsonSchema;
12
- enum?: (string | number | boolean)[];
13
- const?: unknown;
14
- anyOf?: JsonSchema[];
15
- oneOf?: JsonSchema[];
16
- allOf?: JsonSchema[];
17
- description?: string;
18
- default?: unknown;
19
- minimum?: number;
20
- maximum?: number;
21
- minLength?: number;
22
- maxLength?: number;
23
- pattern?: string;
24
- format?: string;
25
- nullable?: boolean;
26
- [key: string]: unknown;
6
+ type?: string;
7
+ properties?: Record<string, JsonSchema>;
8
+ required?: string[];
9
+ items?: JsonSchema;
10
+ enum?: (string | number | boolean)[];
11
+ const?: unknown;
12
+ anyOf?: JsonSchema[];
13
+ oneOf?: JsonSchema[];
14
+ allOf?: JsonSchema[];
15
+ description?: string;
16
+ default?: unknown;
17
+ minimum?: number;
18
+ maximum?: number;
19
+ minLength?: number;
20
+ maxLength?: number;
21
+ pattern?: string;
22
+ format?: string;
23
+ nullable?: boolean;
24
+ [key: string]: unknown;
27
25
  }
28
26
  /**
29
27
  * Convert a JSON Schema to a Zod schema.
@@ -41,14 +39,13 @@ interface JsonSchema {
41
39
  * @param schema - JSON Schema object
42
40
  * @returns Zod schema
43
41
  */
44
- declare function jsonSchemaToZod(schema: JsonSchema | Record<string, unknown>): ZodType;
42
+ export declare function jsonSchemaToZod(schema: JsonSchema | Record<string, unknown>): ZodType;
45
43
  /**
46
44
  * Convert a JSON Schema to a Zod schema with a default empty object fallback.
47
45
  *
48
46
  * @param schema - Optional JSON Schema object
49
47
  * @returns Zod schema (defaults to empty object schema)
50
48
  */
51
- declare function jsonSchemaToZodSafe(schema?: Record<string, unknown>): ZodType;
52
- //#endregion
53
- export { jsonSchemaToZod, jsonSchemaToZodSafe };
49
+ export declare function jsonSchemaToZodSafe(schema?: Record<string, unknown>): ZodType;
50
+ export {};
54
51
  //# sourceMappingURL=json-schema-to-zod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema-to-zod.d.ts","names":[],"sources":["../../src/schema/json-schema-to-zod.ts"],"mappings":";;;;;AAAsC;UAK5B,UAAA;EACR,IAAA;EACA,UAAA,GAAa,MAAA,SAAe,UAAA;EAC5B,QAAA;EACA,KAAA,GAAQ,UAAA;EACR,IAAA;EACA,KAAA;EACA,KAAA,GAAQ,UAAA;EACR,KAAA,GAAQ,UAAA;EACR,KAAA,GAAQ,UAAA;EACR,WAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;EACA,OAAA;EACA,MAAA;EACA,QAAA;EAAA,CACC,GAAA;AAAA;;;;;;;;;;;;;;;;;iBAmBa,eAAA,CACd,MAAA,EAAQ,UAAA,GAAa,MAAA,oBACpB,OAAA;;;;;;;iBAyKa,mBAAA,CAAoB,MAAA,GAAS,MAAA,oBAA0B,OAAA"}
1
+ {"version":3,"file":"json-schema-to-zod.d.ts","sourceRoot":"","sources":["../../src/schema/json-schema-to-zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAK,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAEtC;;GAEG;AACH,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3C,OAAO,CAqET;AA8FD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAK7E"}
@@ -1,124 +1,152 @@
1
- import { z } from "zod";
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true,
8
+ configurable: true,
9
+ set: (newValue) => all[name] = () => newValue
10
+ });
11
+ };
12
+ var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
13
+ var __require = import.meta.require;
2
14
 
3
- //#region src/schema/json-schema-to-zod.ts
4
- /**
5
- * Convert a JSON Schema to a Zod schema.
6
- *
7
- * Supports common JSON Schema types and constraints:
8
- * - string, number, integer, boolean, null
9
- * - object with properties and required
10
- * - array with items
11
- * - enum and const
12
- * - anyOf, oneOf, allOf
13
- * - format constraints (email, uri, uuid, date-time)
14
- * - numeric constraints (minimum, maximum)
15
- * - string constraints (minLength, maxLength, pattern)
16
- *
17
- * @param schema - JSON Schema object
18
- * @returns Zod schema
19
- */
15
+ // src/schema/json-schema-to-zod.ts
16
+ import { z } from "zod";
20
17
  function jsonSchemaToZod(schema) {
21
- const s = schema;
22
- const makeNullable = (zodSchema) => {
23
- return s.nullable ? z.union([zodSchema, z.null()]) : zodSchema;
24
- };
25
- if (s.const !== void 0) return z.literal(s.const);
26
- if (s.enum) {
27
- const values = s.enum;
28
- return makeNullable(z.enum(values.map(String)));
29
- }
30
- if (s.anyOf && s.anyOf.length > 0) {
31
- const schemas = s.anyOf.map((sub) => jsonSchemaToZod(sub));
32
- if (schemas.length === 1) return schemas[0] ?? z.unknown();
33
- return z.union([
34
- schemas[0] ?? z.unknown(),
35
- schemas[1] ?? z.unknown(),
36
- ...schemas.slice(2)
37
- ]);
38
- }
39
- if (s.oneOf && s.oneOf.length > 0) {
40
- const schemas = s.oneOf.map((sub) => jsonSchemaToZod(sub));
41
- if (schemas.length === 1) return schemas[0] ?? z.unknown();
42
- return z.union([
43
- schemas[0] ?? z.unknown(),
44
- schemas[1] ?? z.unknown(),
45
- ...schemas.slice(2)
46
- ]);
47
- }
48
- if (s.allOf && s.allOf.length > 0) return s.allOf.map((sub) => jsonSchemaToZod(sub)).reduce((acc, curr) => z.intersection(acc, curr));
49
- switch (s.type) {
50
- case "string": return makeNullable(buildStringSchema(s));
51
- case "number":
52
- case "integer": return makeNullable(buildNumberSchema(s));
53
- case "boolean": return makeNullable(z.boolean());
54
- case "null": return z.null();
55
- case "array": return makeNullable(buildArraySchema(s));
56
- case "object": return makeNullable(buildObjectSchema(s));
57
- default: return z.unknown();
58
- }
18
+ const s = schema;
19
+ const makeNullable = (zodSchema) => {
20
+ return s.nullable ? z.union([zodSchema, z.null()]) : zodSchema;
21
+ };
22
+ if (s.const !== undefined) {
23
+ return z.literal(s.const);
24
+ }
25
+ if (s.enum) {
26
+ const values = s.enum;
27
+ return makeNullable(z.enum(values.map(String)));
28
+ }
29
+ if (s.anyOf && s.anyOf.length > 0) {
30
+ const schemas = s.anyOf.map((sub) => jsonSchemaToZod(sub));
31
+ if (schemas.length === 1)
32
+ return schemas[0] ?? z.unknown();
33
+ return z.union([
34
+ schemas[0] ?? z.unknown(),
35
+ schemas[1] ?? z.unknown(),
36
+ ...schemas.slice(2)
37
+ ]);
38
+ }
39
+ if (s.oneOf && s.oneOf.length > 0) {
40
+ const schemas = s.oneOf.map((sub) => jsonSchemaToZod(sub));
41
+ if (schemas.length === 1)
42
+ return schemas[0] ?? z.unknown();
43
+ return z.union([
44
+ schemas[0] ?? z.unknown(),
45
+ schemas[1] ?? z.unknown(),
46
+ ...schemas.slice(2)
47
+ ]);
48
+ }
49
+ if (s.allOf && s.allOf.length > 0) {
50
+ const schemas = s.allOf.map((sub) => jsonSchemaToZod(sub));
51
+ return schemas.reduce((acc, curr) => z.intersection(acc, curr));
52
+ }
53
+ switch (s.type) {
54
+ case "string":
55
+ return makeNullable(buildStringSchema(s));
56
+ case "number":
57
+ case "integer":
58
+ return makeNullable(buildNumberSchema(s));
59
+ case "boolean":
60
+ return makeNullable(z.boolean());
61
+ case "null":
62
+ return z.null();
63
+ case "array":
64
+ return makeNullable(buildArraySchema(s));
65
+ case "object":
66
+ return makeNullable(buildObjectSchema(s));
67
+ default:
68
+ return z.unknown();
69
+ }
59
70
  }
60
71
  function buildStringSchema(schema) {
61
- let zodSchema = z.string();
62
- if (schema.description) zodSchema = zodSchema.describe(schema.description);
63
- switch (schema.format) {
64
- case "email":
65
- zodSchema = zodSchema.email();
66
- break;
67
- case "uri":
68
- case "url":
69
- zodSchema = zodSchema.url();
70
- break;
71
- case "uuid":
72
- zodSchema = zodSchema.uuid();
73
- break;
74
- case "date-time":
75
- zodSchema = zodSchema.datetime();
76
- break;
77
- case "date":
78
- zodSchema = zodSchema.date();
79
- break;
80
- }
81
- if (schema.minLength !== void 0) zodSchema = zodSchema.min(schema.minLength);
82
- if (schema.maxLength !== void 0) zodSchema = zodSchema.max(schema.maxLength);
83
- if (schema.pattern) zodSchema = zodSchema.regex(new RegExp(schema.pattern));
84
- return zodSchema;
72
+ let zodSchema = z.string();
73
+ if (schema.description) {
74
+ zodSchema = zodSchema.describe(schema.description);
75
+ }
76
+ switch (schema.format) {
77
+ case "email":
78
+ zodSchema = zodSchema.email();
79
+ break;
80
+ case "uri":
81
+ case "url":
82
+ zodSchema = zodSchema.url();
83
+ break;
84
+ case "uuid":
85
+ zodSchema = zodSchema.uuid();
86
+ break;
87
+ case "date-time":
88
+ zodSchema = zodSchema.datetime();
89
+ break;
90
+ case "date":
91
+ zodSchema = zodSchema.date();
92
+ break;
93
+ }
94
+ if (schema.minLength !== undefined) {
95
+ zodSchema = zodSchema.min(schema.minLength);
96
+ }
97
+ if (schema.maxLength !== undefined) {
98
+ zodSchema = zodSchema.max(schema.maxLength);
99
+ }
100
+ if (schema.pattern) {
101
+ zodSchema = zodSchema.regex(new RegExp(schema.pattern));
102
+ }
103
+ return zodSchema;
85
104
  }
86
105
  function buildNumberSchema(schema) {
87
- let zodSchema = schema.type === "integer" ? z.number().int() : z.number();
88
- if (schema.description) zodSchema = zodSchema.describe(schema.description);
89
- if (schema.minimum !== void 0) zodSchema = zodSchema.min(schema.minimum);
90
- if (schema.maximum !== void 0) zodSchema = zodSchema.max(schema.maximum);
91
- return zodSchema;
106
+ let zodSchema = schema.type === "integer" ? z.number().int() : z.number();
107
+ if (schema.description) {
108
+ zodSchema = zodSchema.describe(schema.description);
109
+ }
110
+ if (schema.minimum !== undefined) {
111
+ zodSchema = zodSchema.min(schema.minimum);
112
+ }
113
+ if (schema.maximum !== undefined) {
114
+ zodSchema = zodSchema.max(schema.maximum);
115
+ }
116
+ return zodSchema;
92
117
  }
93
118
  function buildArraySchema(schema) {
94
- const itemsSchema = schema.items ? jsonSchemaToZod(schema.items) : z.unknown();
95
- let zodSchema = z.array(itemsSchema);
96
- if (schema.description) zodSchema = zodSchema.describe(schema.description);
97
- return zodSchema;
119
+ const itemsSchema = schema.items ? jsonSchemaToZod(schema.items) : z.unknown();
120
+ let zodSchema = z.array(itemsSchema);
121
+ if (schema.description) {
122
+ zodSchema = zodSchema.describe(schema.description);
123
+ }
124
+ return zodSchema;
98
125
  }
99
126
  function buildObjectSchema(schema) {
100
- const properties = schema.properties ?? {};
101
- const required = new Set(schema.required ?? []);
102
- const shape = {};
103
- for (const [key, propSchema] of Object.entries(properties)) {
104
- const zodProp = jsonSchemaToZod(propSchema);
105
- shape[key] = required.has(key) ? zodProp : zodProp.optional();
106
- }
107
- let zodSchema = z.object(shape);
108
- if (schema.description) zodSchema = zodSchema.describe(schema.description);
109
- return zodSchema;
127
+ const properties = schema.properties ?? {};
128
+ const required = new Set(schema.required ?? []);
129
+ const shape = {};
130
+ for (const [key, propSchema] of Object.entries(properties)) {
131
+ const zodProp = jsonSchemaToZod(propSchema);
132
+ shape[key] = required.has(key) ? zodProp : zodProp.optional();
133
+ }
134
+ let zodSchema = z.object(shape);
135
+ if (schema.description) {
136
+ zodSchema = zodSchema.describe(schema.description);
137
+ }
138
+ return zodSchema;
110
139
  }
111
- /**
112
- * Convert a JSON Schema to a Zod schema with a default empty object fallback.
113
- *
114
- * @param schema - Optional JSON Schema object
115
- * @returns Zod schema (defaults to empty object schema)
116
- */
117
140
  function jsonSchemaToZodSafe(schema) {
118
- if (!schema || Object.keys(schema).length === 0) return z.object({});
119
- return jsonSchemaToZod(schema);
141
+ if (!schema || Object.keys(schema).length === 0) {
142
+ return z.object({});
143
+ }
144
+ return jsonSchemaToZod(schema);
120
145
  }
146
+ var init_json_schema_to_zod = () => {};
147
+ init_json_schema_to_zod();
121
148
 
122
- //#endregion
123
- export { jsonSchemaToZod, jsonSchemaToZodSafe };
124
- //# sourceMappingURL=json-schema-to-zod.js.map
149
+ export {
150
+ jsonSchemaToZodSafe,
151
+ jsonSchemaToZod
152
+ };
@@ -1,7 +1,5 @@
1
- import { Output } from "ai";
2
- import { ZodType } from "zod";
3
-
4
- //#region src/schema/schema-output.d.ts
1
+ import { Output } from 'ai';
2
+ import { type ZodType } from 'zod';
5
3
  /**
6
4
  * Bridge between ContractSpec SchemaModel and AI SDK Output.
7
5
  *
@@ -18,59 +16,58 @@ type TextOutputReturn = ReturnType<typeof Output.text>;
18
16
  * @param schema - JSON Schema object
19
17
  * @returns AI SDK Output configuration
20
18
  */
21
- declare function jsonSchemaToOutput(schema: Record<string, unknown>): ObjectOutputReturn;
19
+ export declare function jsonSchemaToOutput(schema: Record<string, unknown>): ObjectOutputReturn;
22
20
  /**
23
21
  * Create an AI SDK Output.array from a JSON Schema items definition.
24
22
  *
25
23
  * @param itemSchema - JSON Schema for array items
26
24
  * @returns AI SDK Output configuration
27
25
  */
28
- declare function jsonSchemaToArrayOutput(itemSchema: Record<string, unknown>): ArrayOutputReturn;
26
+ export declare function jsonSchemaToArrayOutput(itemSchema: Record<string, unknown>): ArrayOutputReturn;
29
27
  /**
30
28
  * Create an AI SDK Output.choice from enum values.
31
29
  *
32
30
  * @param choices - Array of choice values
33
31
  * @returns AI SDK Output configuration
34
32
  */
35
- declare function enumToChoiceOutput(choices: string[]): ChoiceOutputReturn;
33
+ export declare function enumToChoiceOutput(choices: string[]): ChoiceOutputReturn;
36
34
  /**
37
35
  * Create an AI SDK Output from a Zod schema directly.
38
36
  *
39
37
  * @param schema - Zod schema
40
38
  * @returns AI SDK Output configuration
41
39
  */
42
- declare function zodToOutput<T extends ZodType>(schema: T): ObjectOutputReturn;
40
+ export declare function zodToOutput<T extends ZodType>(schema: T): ObjectOutputReturn;
43
41
  /**
44
42
  * Create a simple text output configuration.
45
43
  *
46
44
  * @returns AI SDK Output configuration for text
47
45
  */
48
- declare function textOutput(): TextOutputReturn;
46
+ export declare function textOutput(): TextOutputReturn;
49
47
  /**
50
48
  * Output builder that can be used fluently.
51
49
  */
52
- declare const SchemaOutput: {
53
- /**
54
- * Create an object output from JSON Schema.
55
- */
56
- readonly fromJsonSchema: typeof jsonSchemaToOutput;
57
- /**
58
- * Create an array output from JSON Schema.
59
- */
60
- readonly arrayFromJsonSchema: typeof jsonSchemaToArrayOutput;
61
- /**
62
- * Create a choice output from enum.
63
- */
64
- readonly fromEnum: typeof enumToChoiceOutput;
65
- /**
66
- * Create an output from Zod schema.
67
- */
68
- readonly fromZod: typeof zodToOutput;
69
- /**
70
- * Create a text output.
71
- */
72
- readonly text: typeof textOutput;
50
+ export declare const SchemaOutput: {
51
+ /**
52
+ * Create an object output from JSON Schema.
53
+ */
54
+ readonly fromJsonSchema: typeof jsonSchemaToOutput;
55
+ /**
56
+ * Create an array output from JSON Schema.
57
+ */
58
+ readonly arrayFromJsonSchema: typeof jsonSchemaToArrayOutput;
59
+ /**
60
+ * Create a choice output from enum.
61
+ */
62
+ readonly fromEnum: typeof enumToChoiceOutput;
63
+ /**
64
+ * Create an output from Zod schema.
65
+ */
66
+ readonly fromZod: typeof zodToOutput;
67
+ /**
68
+ * Create a text output.
69
+ */
70
+ readonly text: typeof textOutput;
73
71
  };
74
- //#endregion
75
- export { SchemaOutput, enumToChoiceOutput, jsonSchemaToArrayOutput, jsonSchemaToOutput, textOutput, zodToOutput };
72
+ export {};
76
73
  //# sourceMappingURL=schema-output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-output.d.ts","names":[],"sources":["../../src/schema/schema-output.ts"],"mappings":";;;;;;AACmC;;;;KAW9B,kBAAA,GAAqB,UAAA,QAAkB,MAAA,CAAO,MAAA;AAAA,KAC9C,iBAAA,GAAoB,UAAA,QAAkB,MAAA,CAAO,KAAA;AAAA,KAC7C,kBAAA,GAAqB,UAAA,QAAkB,MAAA,CAAO,MAAA;AAAA,KAC9C,gBAAA,GAAmB,UAAA,QAAkB,MAAA,CAAO,IAAA;;AAHQ;;;;;iBAWzC,kBAAA,CACd,MAAA,EAAQ,MAAA,oBACP,kBAAA;;;;AAZoD;;;iBAyBvC,uBAAA,CACd,UAAA,EAAY,MAAA,oBACX,iBAAA;;;;;;AA1BsD;iBAuCzC,kBAAA,CAAmB,OAAA,aAAoB,kBAAA;;;;;;;iBAYvC,WAAA,WAAsB,OAAA,CAAA,CAAS,MAAA,EAAQ,CAAA,GAAI,kBAAA;AA1C3D;;;;;AAAA,iBAqDgB,UAAA,CAAA,GAAc,gBAAA;;;;cAOjB,YAAA;EA7C0B;;;EAAA;EACrC;;;EAAA;EAcc;;;EAAA;EAAyD;AAYzE;;EAZyE;EAYnC;;;EAAA"}
1
+ {"version":3,"file":"schema-output.d.ts","sourceRoot":"","sources":["../../src/schema/schema-output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAGnC;;;;;GAKG;AAGH,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3D,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,kBAAkB,CAKpB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,iBAAiB,CAKnB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAIxE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAI5E;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,gBAAgB,CAE7C;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEK,CAAC"}