@skrun-dev/schema 0.6.0 → 0.8.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 (73) hide show
  1. package/dist/capability.d.ts +28 -0
  2. package/dist/capability.d.ts.map +1 -0
  3. package/dist/capability.js +209 -0
  4. package/dist/capability.js.map +1 -0
  5. package/dist/generators/index.d.ts +2 -1
  6. package/dist/generators/index.d.ts.map +1 -1
  7. package/dist/generators/index.js +1 -0
  8. package/dist/generators/index.js.map +1 -1
  9. package/dist/generators/outputs-to-zod.d.ts +24 -0
  10. package/dist/generators/outputs-to-zod.d.ts.map +1 -0
  11. package/dist/generators/outputs-to-zod.js +43 -0
  12. package/dist/generators/outputs-to-zod.js.map +1 -0
  13. package/dist/generators/skill-importer.d.ts.map +1 -1
  14. package/dist/generators/skill-importer.js +3 -1
  15. package/dist/generators/skill-importer.js.map +1 -1
  16. package/dist/index.d.ts +17 -12
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +12 -7
  19. package/dist/index.js.map +1 -1
  20. package/dist/manifests.d.ts +41 -0
  21. package/dist/manifests.d.ts.map +1 -0
  22. package/dist/manifests.js +407 -0
  23. package/dist/manifests.js.map +1 -0
  24. package/dist/parsers/index.d.ts +3 -3
  25. package/dist/parsers/index.d.ts.map +1 -1
  26. package/dist/parsers/index.js +2 -2
  27. package/dist/parsers/index.js.map +1 -1
  28. package/dist/schemas/agent-config.d.ts +95 -289
  29. package/dist/schemas/agent-config.d.ts.map +1 -1
  30. package/dist/schemas/agent-config.js +7 -4
  31. package/dist/schemas/agent-config.js.map +1 -1
  32. package/dist/schemas/environment-config.d.ts +15 -34
  33. package/dist/schemas/environment-config.d.ts.map +1 -1
  34. package/dist/schemas/environment-config.js +1 -1
  35. package/dist/schemas/environment-config.js.map +1 -1
  36. package/dist/schemas/file-input.d.ts +40 -0
  37. package/dist/schemas/file-input.d.ts.map +1 -0
  38. package/dist/schemas/file-input.js +50 -0
  39. package/dist/schemas/file-input.js.map +1 -0
  40. package/dist/schemas/index.d.ts +10 -9
  41. package/dist/schemas/index.d.ts.map +1 -1
  42. package/dist/schemas/index.js +5 -4
  43. package/dist/schemas/index.js.map +1 -1
  44. package/dist/schemas/inputs-outputs.d.ts +44 -25
  45. package/dist/schemas/inputs-outputs.d.ts.map +1 -1
  46. package/dist/schemas/inputs-outputs.js +9 -4
  47. package/dist/schemas/inputs-outputs.js.map +1 -1
  48. package/dist/schemas/mcp-server.d.ts +13 -33
  49. package/dist/schemas/mcp-server.d.ts.map +1 -1
  50. package/dist/schemas/model-config.d.ts +39 -37
  51. package/dist/schemas/model-config.d.ts.map +1 -1
  52. package/dist/schemas/model-config.js +1 -1
  53. package/dist/schemas/model-config.js.map +1 -1
  54. package/dist/schemas/skill-frontmatter.d.ts +2 -16
  55. package/dist/schemas/skill-frontmatter.d.ts.map +1 -1
  56. package/dist/schemas/state-config.d.ts +5 -8
  57. package/dist/schemas/state-config.d.ts.map +1 -1
  58. package/dist/schemas/test-case.d.ts +1 -9
  59. package/dist/schemas/test-case.d.ts.map +1 -1
  60. package/dist/schemas/tool-config.d.ts +6 -47
  61. package/dist/schemas/tool-config.d.ts.map +1 -1
  62. package/dist/schemas/tool-config.js +1 -0
  63. package/dist/schemas/tool-config.js.map +1 -1
  64. package/dist/types.d.ts +4 -4
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/validators/combined.d.ts +1 -1
  67. package/dist/validators/combined.d.ts.map +1 -1
  68. package/dist/validators/combined.js +55 -8
  69. package/dist/validators/combined.js.map +1 -1
  70. package/dist/validators/index.d.ts +1 -1
  71. package/dist/validators/index.d.ts.map +1 -1
  72. package/dist/validators/index.js.map +1 -1
  73. package/package.json +12 -12
@@ -3,324 +3,130 @@ export declare const AgentConfigSchema: z.ZodObject<{
3
3
  name: z.ZodString;
4
4
  version: z.ZodString;
5
5
  model: z.ZodObject<{
6
- provider: z.ZodEnum<["anthropic", "openai", "google", "mistral", "groq", "meta"]>;
6
+ provider: z.ZodEnum<{
7
+ anthropic: "anthropic";
8
+ openai: "openai";
9
+ google: "google";
10
+ mistral: "mistral";
11
+ groq: "groq";
12
+ xai: "xai";
13
+ meta: "meta";
14
+ }>;
7
15
  name: z.ZodString;
8
16
  temperature: z.ZodOptional<z.ZodNumber>;
9
17
  base_url: z.ZodOptional<z.ZodString>;
10
18
  fallback: z.ZodOptional<z.ZodObject<{
11
- provider: z.ZodEnum<["anthropic", "openai", "google", "mistral", "groq", "meta"]>;
19
+ provider: z.ZodEnum<{
20
+ anthropic: "anthropic";
21
+ openai: "openai";
22
+ google: "google";
23
+ mistral: "mistral";
24
+ groq: "groq";
25
+ xai: "xai";
26
+ meta: "meta";
27
+ }>;
12
28
  name: z.ZodString;
13
- }, "strip", z.ZodTypeAny, {
14
- name: string;
15
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
16
- }, {
17
- name: string;
18
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
19
- }>>;
20
- }, "strip", z.ZodTypeAny, {
21
- name: string;
22
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
23
- temperature?: number | undefined;
24
- base_url?: string | undefined;
25
- fallback?: {
26
- name: string;
27
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
28
- } | undefined;
29
- }, {
30
- name: string;
31
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
32
- temperature?: number | undefined;
33
- base_url?: string | undefined;
34
- fallback?: {
35
- name: string;
36
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
37
- } | undefined;
38
- }>;
39
- tools: z.ZodDefault<z.ZodArray<z.ZodPipeline<z.ZodEffects<z.ZodUnknown, unknown, unknown>, z.ZodObject<{
29
+ }, z.core.$strip>>;
30
+ }, z.core.$strip>;
31
+ tools: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodPipe<z.ZodUnknown, z.ZodTransform<unknown, unknown>>, z.ZodObject<{
40
32
  name: z.ZodString;
41
33
  description: z.ZodString;
42
34
  input_schema: z.ZodObject<{
43
35
  type: z.ZodLiteral<"object">;
44
36
  properties: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
45
- required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
46
- additionalProperties: z.ZodOptional<z.ZodBoolean>;
47
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
48
- type: z.ZodLiteral<"object">;
49
- properties: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
- required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
37
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
51
38
  additionalProperties: z.ZodOptional<z.ZodBoolean>;
52
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
53
- type: z.ZodLiteral<"object">;
54
- properties: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
55
- required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
56
- additionalProperties: z.ZodOptional<z.ZodBoolean>;
57
- }, z.ZodTypeAny, "passthrough">>;
58
- }, "strip", z.ZodTypeAny, {
59
- name: string;
60
- description: string;
61
- input_schema: {
62
- type: "object";
63
- properties: Record<string, unknown>;
64
- required?: string[] | undefined;
65
- additionalProperties?: boolean | undefined;
66
- } & {
67
- [k: string]: unknown;
68
- };
69
- }, {
70
- name: string;
71
- description: string;
72
- input_schema: {
73
- type: "object";
74
- required?: string[] | undefined;
75
- properties?: Record<string, unknown> | undefined;
76
- additionalProperties?: boolean | undefined;
77
- } & {
78
- [k: string]: unknown;
79
- };
80
- }>>, "many">>;
81
- mcp_servers: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
39
+ }, z.core.$loose>;
40
+ required: z.ZodDefault<z.ZodBoolean>;
41
+ }, z.core.$strip>>>>;
42
+ mcp_servers: z.ZodDefault<z.ZodArray<z.ZodObject<{
82
43
  name: z.ZodString;
83
44
  url: z.ZodOptional<z.ZodString>;
84
- transport: z.ZodOptional<z.ZodEnum<["stdio", "sse", "streamable-http"]>>;
45
+ transport: z.ZodOptional<z.ZodEnum<{
46
+ stdio: "stdio";
47
+ sse: "sse";
48
+ "streamable-http": "streamable-http";
49
+ }>>;
85
50
  command: z.ZodOptional<z.ZodString>;
86
- args: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
87
- auth: z.ZodDefault<z.ZodEnum<["none", "api_key", "oauth2"]>>;
88
- }, "strip", z.ZodTypeAny, {
89
- name: string;
90
- auth: "none" | "api_key" | "oauth2";
91
- url?: string | undefined;
92
- transport?: "stdio" | "sse" | "streamable-http" | undefined;
93
- command?: string | undefined;
94
- args?: string[] | undefined;
95
- }, {
96
- name: string;
97
- url?: string | undefined;
98
- transport?: "stdio" | "sse" | "streamable-http" | undefined;
99
- command?: string | undefined;
100
- args?: string[] | undefined;
101
- auth?: "none" | "api_key" | "oauth2" | undefined;
102
- }>, {
103
- name: string;
104
- auth: "none" | "api_key" | "oauth2";
105
- url?: string | undefined;
106
- transport?: "stdio" | "sse" | "streamable-http" | undefined;
107
- command?: string | undefined;
108
- args?: string[] | undefined;
109
- }, {
110
- name: string;
111
- url?: string | undefined;
112
- transport?: "stdio" | "sse" | "streamable-http" | undefined;
113
- command?: string | undefined;
114
- args?: string[] | undefined;
115
- auth?: "none" | "api_key" | "oauth2" | undefined;
116
- }>, "many">>;
117
- inputs: z.ZodArray<z.ZodObject<{
51
+ args: z.ZodOptional<z.ZodArray<z.ZodString>>;
52
+ auth: z.ZodDefault<z.ZodEnum<{
53
+ none: "none";
54
+ api_key: "api_key";
55
+ oauth2: "oauth2";
56
+ }>>;
57
+ }, z.core.$strip>>>;
58
+ tool_choice: z.ZodDefault<z.ZodString>;
59
+ parallel_tools: z.ZodDefault<z.ZodBoolean>;
60
+ inputs: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
118
61
  name: z.ZodString;
119
- type: z.ZodEnum<["string", "number", "boolean", "object", "array"]>;
62
+ type: z.ZodEnum<{
63
+ string: "string";
64
+ number: "number";
65
+ boolean: "boolean";
66
+ object: "object";
67
+ array: "array";
68
+ }>;
120
69
  required: z.ZodDefault<z.ZodBoolean>;
121
70
  description: z.ZodOptional<z.ZodString>;
122
71
  default: z.ZodOptional<z.ZodUnknown>;
123
- }, "strip", z.ZodTypeAny, {
124
- type: "string" | "number" | "boolean" | "object" | "array";
125
- name: string;
126
- required: boolean;
127
- description?: string | undefined;
128
- default?: unknown;
129
- }, {
130
- type: "string" | "number" | "boolean" | "object" | "array";
131
- name: string;
132
- required?: boolean | undefined;
133
- description?: string | undefined;
134
- default?: unknown;
135
- }>, "many">;
72
+ }, z.core.$strip>, z.ZodObject<{
73
+ name: z.ZodString;
74
+ type: z.ZodLiteral<"file">;
75
+ media: z.ZodEnum<{
76
+ image: "image";
77
+ document: "document";
78
+ audio: "audio";
79
+ }>;
80
+ mime_types: z.ZodOptional<z.ZodArray<z.ZodString>>;
81
+ max_size: z.ZodOptional<z.ZodNumber>;
82
+ max_count: z.ZodDefault<z.ZodNumber>;
83
+ required: z.ZodDefault<z.ZodBoolean>;
84
+ description: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strip>], "type">>;
136
86
  outputs: z.ZodArray<z.ZodObject<{
137
87
  name: z.ZodString;
138
- type: z.ZodEnum<["string", "number", "boolean", "object", "array"]>;
88
+ type: z.ZodEnum<{
89
+ string: "string";
90
+ number: "number";
91
+ boolean: "boolean";
92
+ object: "object";
93
+ array: "array";
94
+ }>;
139
95
  description: z.ZodOptional<z.ZodString>;
140
- }, "strip", z.ZodTypeAny, {
141
- type: "string" | "number" | "boolean" | "object" | "array";
142
- name: string;
143
- description?: string | undefined;
144
- }, {
145
- type: "string" | "number" | "boolean" | "object" | "array";
146
- name: string;
147
- description?: string | undefined;
148
- }>, "many">;
149
- environment: z.ZodDefault<z.ZodObject<{
150
- networking: z.ZodDefault<z.ZodObject<{
151
- allowed_hosts: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
152
- }, "strip", z.ZodTypeAny, {
153
- allowed_hosts: string[];
154
- }, {
155
- allowed_hosts?: string[] | undefined;
96
+ }, z.core.$strip>>;
97
+ environment: z.ZodPrefault<z.ZodObject<{
98
+ networking: z.ZodPrefault<z.ZodObject<{
99
+ allowed_hosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
100
+ }, z.core.$strip>>;
101
+ filesystem: z.ZodDefault<z.ZodEnum<{
102
+ none: "none";
103
+ "read-only": "read-only";
104
+ "read-write": "read-write";
156
105
  }>>;
157
- filesystem: z.ZodDefault<z.ZodEnum<["none", "read-only", "read-write"]>>;
158
- secrets: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
106
+ secrets: z.ZodDefault<z.ZodArray<z.ZodString>>;
159
107
  timeout: z.ZodDefault<z.ZodString>;
160
108
  max_cost: z.ZodOptional<z.ZodNumber>;
161
- sandbox: z.ZodDefault<z.ZodEnum<["strict", "permissive"]>>;
162
- }, "strip", z.ZodTypeAny, {
163
- networking: {
164
- allowed_hosts: string[];
165
- };
166
- filesystem: "none" | "read-only" | "read-write";
167
- secrets: string[];
168
- timeout: string;
169
- sandbox: "strict" | "permissive";
170
- max_cost?: number | undefined;
171
- }, {
172
- networking?: {
173
- allowed_hosts?: string[] | undefined;
174
- } | undefined;
175
- filesystem?: "none" | "read-only" | "read-write" | undefined;
176
- secrets?: string[] | undefined;
177
- timeout?: string | undefined;
178
- max_cost?: number | undefined;
179
- sandbox?: "strict" | "permissive" | undefined;
109
+ sandbox: z.ZodDefault<z.ZodEnum<{
110
+ strict: "strict";
111
+ permissive: "permissive";
112
+ }>>;
113
+ }, z.core.$strip>>;
114
+ context_mode: z.ZodDefault<z.ZodEnum<{
115
+ skill: "skill";
116
+ persistent: "persistent";
180
117
  }>>;
181
- context_mode: z.ZodDefault<z.ZodEnum<["skill", "persistent"]>>;
182
- state: z.ZodDefault<z.ZodObject<{
183
- type: z.ZodDefault<z.ZodEnum<["kv", "none"]>>;
118
+ state: z.ZodPrefault<z.ZodObject<{
119
+ type: z.ZodDefault<z.ZodEnum<{
120
+ none: "none";
121
+ kv: "kv";
122
+ }>>;
184
123
  ttl: z.ZodDefault<z.ZodString>;
185
- }, "strip", z.ZodTypeAny, {
186
- type: "none" | "kv";
187
- ttl: string;
188
- }, {
189
- type?: "none" | "kv" | undefined;
190
- ttl?: string | undefined;
191
- }>>;
124
+ }, z.core.$strip>>;
192
125
  tests: z.ZodDefault<z.ZodArray<z.ZodObject<{
193
126
  name: z.ZodString;
194
127
  input: z.ZodRecord<z.ZodString, z.ZodUnknown>;
195
128
  assert: z.ZodString;
196
- }, "strip", z.ZodTypeAny, {
197
- name: string;
198
- input: Record<string, unknown>;
199
- assert: string;
200
- }, {
201
- name: string;
202
- input: Record<string, unknown>;
203
- assert: string;
204
- }>, "many">>;
205
- }, "strict", z.ZodTypeAny, {
206
- name: string;
207
- version: string;
208
- model: {
209
- name: string;
210
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
211
- temperature?: number | undefined;
212
- base_url?: string | undefined;
213
- fallback?: {
214
- name: string;
215
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
216
- } | undefined;
217
- };
218
- tools: {
219
- name: string;
220
- description: string;
221
- input_schema: {
222
- type: "object";
223
- properties: Record<string, unknown>;
224
- required?: string[] | undefined;
225
- additionalProperties?: boolean | undefined;
226
- } & {
227
- [k: string]: unknown;
228
- };
229
- }[];
230
- mcp_servers: {
231
- name: string;
232
- auth: "none" | "api_key" | "oauth2";
233
- url?: string | undefined;
234
- transport?: "stdio" | "sse" | "streamable-http" | undefined;
235
- command?: string | undefined;
236
- args?: string[] | undefined;
237
- }[];
238
- inputs: {
239
- type: "string" | "number" | "boolean" | "object" | "array";
240
- name: string;
241
- required: boolean;
242
- description?: string | undefined;
243
- default?: unknown;
244
- }[];
245
- outputs: {
246
- type: "string" | "number" | "boolean" | "object" | "array";
247
- name: string;
248
- description?: string | undefined;
249
- }[];
250
- environment: {
251
- networking: {
252
- allowed_hosts: string[];
253
- };
254
- filesystem: "none" | "read-only" | "read-write";
255
- secrets: string[];
256
- timeout: string;
257
- sandbox: "strict" | "permissive";
258
- max_cost?: number | undefined;
259
- };
260
- context_mode: "skill" | "persistent";
261
- state: {
262
- type: "none" | "kv";
263
- ttl: string;
264
- };
265
- tests: {
266
- name: string;
267
- input: Record<string, unknown>;
268
- assert: string;
269
- }[];
270
- }, {
271
- name: string;
272
- version: string;
273
- model: {
274
- name: string;
275
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
276
- temperature?: number | undefined;
277
- base_url?: string | undefined;
278
- fallback?: {
279
- name: string;
280
- provider: "anthropic" | "openai" | "google" | "mistral" | "groq" | "meta";
281
- } | undefined;
282
- };
283
- inputs: {
284
- type: "string" | "number" | "boolean" | "object" | "array";
285
- name: string;
286
- required?: boolean | undefined;
287
- description?: string | undefined;
288
- default?: unknown;
289
- }[];
290
- outputs: {
291
- type: "string" | "number" | "boolean" | "object" | "array";
292
- name: string;
293
- description?: string | undefined;
294
- }[];
295
- tools?: unknown[] | undefined;
296
- mcp_servers?: {
297
- name: string;
298
- url?: string | undefined;
299
- transport?: "stdio" | "sse" | "streamable-http" | undefined;
300
- command?: string | undefined;
301
- args?: string[] | undefined;
302
- auth?: "none" | "api_key" | "oauth2" | undefined;
303
- }[] | undefined;
304
- environment?: {
305
- networking?: {
306
- allowed_hosts?: string[] | undefined;
307
- } | undefined;
308
- filesystem?: "none" | "read-only" | "read-write" | undefined;
309
- secrets?: string[] | undefined;
310
- timeout?: string | undefined;
311
- max_cost?: number | undefined;
312
- sandbox?: "strict" | "permissive" | undefined;
313
- } | undefined;
314
- context_mode?: "skill" | "persistent" | undefined;
315
- state?: {
316
- type?: "none" | "kv" | undefined;
317
- ttl?: string | undefined;
318
- } | undefined;
319
- tests?: {
320
- name: string;
321
- input: Record<string, unknown>;
322
- assert: string;
323
- }[] | undefined;
324
- }>;
129
+ }, z.core.$strip>>>;
130
+ }, z.core.$strict>;
325
131
  export type AgentConfig = z.infer<typeof AgentConfigSchema>;
326
132
  //# sourceMappingURL=agent-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/schemas/agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCnB,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"agent-config.d.ts","sourceRoot":"","sources":["../../src/schemas/agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwCnB,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -6,14 +6,15 @@ import { ModelConfigSchema } from "./model-config.js";
6
6
  import { StateConfigSchema } from "./state-config.js";
7
7
  import { TestCaseSchema } from "./test-case.js";
8
8
  import { ToolConfigSchema } from "./tool-config.js";
9
- const AGENT_NAME_REGEX = /^[a-z0-9-]+\/[a-z0-9-]+$/;
9
+ const AGENT_NAME_REGEX = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;
10
10
  const SEMVER_REGEX = /^\d+\.\d+\.\d+$/;
11
11
  export const AgentConfigSchema = z
12
12
  .object({
13
13
  name: z
14
14
  .string()
15
15
  .min(1, "Agent name is required")
16
- .regex(AGENT_NAME_REGEX, 'Agent name must be in "namespace/slug" format (e.g., "acme/seo-audit")'),
16
+ .regex(AGENT_NAME_REGEX, 'Agent name must be a slug like "email-drafter" (lowercase letters, digits, hyphens; no namespace prefix). The registry derives the namespace from your auth token at push — remove the prefix from your agent.yaml.')
17
+ .refine((s) => !s.includes("--"), "Agent name must not contain consecutive hyphens"),
17
18
  version: z.string().regex(SEMVER_REGEX, 'Version must be semver format (e.g., "1.0.0")'),
18
19
  model: ModelConfigSchema,
19
20
  tools: z
@@ -32,11 +33,13 @@ export const AgentConfigSchema = z
32
33
  .pipe(ToolConfigSchema))
33
34
  .default([]),
34
35
  mcp_servers: z.array(McpServerSchema).default([]),
36
+ tool_choice: z.string().default("auto"),
37
+ parallel_tools: z.boolean().default(true),
35
38
  inputs: z.array(InputFieldSchema).min(1, "At least one input is required"),
36
39
  outputs: z.array(OutputFieldSchema).min(1, "At least one output is required"),
37
- environment: EnvironmentConfigSchema.default({}),
40
+ environment: EnvironmentConfigSchema.prefault({}),
38
41
  context_mode: z.enum(["skill", "persistent"]).default("skill"),
39
- state: StateConfigSchema.default({}),
42
+ state: StateConfigSchema.prefault({}),
40
43
  tests: z.array(TestCaseSchema).default([]),
41
44
  })
42
45
  .strict();
@@ -1 +1 @@
1
- {"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../src/schemas/agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AACpD,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;SAChC,KAAK,CACJ,gBAAgB,EAChB,wEAAwE,CACzE;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,+CAA+C,CAAC;IACxF,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC;SACE,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EACL,8IAA8I;aACjJ,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;SACD,IAAI,CAAC,gBAAgB,CAAC,CAC1B;SACA,OAAO,CAAC,EAAE,CAAC;IACd,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;IAC1E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;IAC7E,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9D,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"agent-config.js","sourceRoot":"","sources":["../../src/schemas/agent-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAC3D,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAEvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;SAChC,KAAK,CACJ,gBAAgB,EAChB,qNAAqN,CACtN;SACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,iDAAiD,CAAC;IACtF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,+CAA+C,CAAC;IACxF,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,CAAC;SACL,KAAK,CACJ,CAAC;SACE,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACtB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EACL,8IAA8I;aACjJ,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;SACD,IAAI,CAAC,gBAAgB,CAAC,CAC1B;SACA,OAAO,CAAC,EAAE,CAAC;IACd,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACvC,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;IAC1E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;IAC7E,WAAW,EAAE,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjD,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9D,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3C,CAAC;KACD,MAAM,EAAE,CAAC"}
@@ -1,43 +1,24 @@
1
1
  import { z } from "zod";
2
2
  export declare const NetworkingConfigSchema: z.ZodObject<{
3
- allowed_hosts: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
4
- }, "strip", z.ZodTypeAny, {
5
- allowed_hosts: string[];
6
- }, {
7
- allowed_hosts?: string[] | undefined;
8
- }>;
3
+ allowed_hosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
4
+ }, z.core.$strip>;
9
5
  export type NetworkingConfig = z.infer<typeof NetworkingConfigSchema>;
10
6
  export declare const EnvironmentConfigSchema: z.ZodObject<{
11
- networking: z.ZodDefault<z.ZodObject<{
12
- allowed_hosts: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
13
- }, "strip", z.ZodTypeAny, {
14
- allowed_hosts: string[];
15
- }, {
16
- allowed_hosts?: string[] | undefined;
7
+ networking: z.ZodPrefault<z.ZodObject<{
8
+ allowed_hosts: z.ZodDefault<z.ZodArray<z.ZodString>>;
9
+ }, z.core.$strip>>;
10
+ filesystem: z.ZodDefault<z.ZodEnum<{
11
+ none: "none";
12
+ "read-only": "read-only";
13
+ "read-write": "read-write";
17
14
  }>>;
18
- filesystem: z.ZodDefault<z.ZodEnum<["none", "read-only", "read-write"]>>;
19
- secrets: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
15
+ secrets: z.ZodDefault<z.ZodArray<z.ZodString>>;
20
16
  timeout: z.ZodDefault<z.ZodString>;
21
17
  max_cost: z.ZodOptional<z.ZodNumber>;
22
- sandbox: z.ZodDefault<z.ZodEnum<["strict", "permissive"]>>;
23
- }, "strip", z.ZodTypeAny, {
24
- networking: {
25
- allowed_hosts: string[];
26
- };
27
- filesystem: "none" | "read-only" | "read-write";
28
- secrets: string[];
29
- timeout: string;
30
- sandbox: "strict" | "permissive";
31
- max_cost?: number | undefined;
32
- }, {
33
- networking?: {
34
- allowed_hosts?: string[] | undefined;
35
- } | undefined;
36
- filesystem?: "none" | "read-only" | "read-write" | undefined;
37
- secrets?: string[] | undefined;
38
- timeout?: string | undefined;
39
- max_cost?: number | undefined;
40
- sandbox?: "strict" | "permissive" | undefined;
41
- }>;
18
+ sandbox: z.ZodDefault<z.ZodEnum<{
19
+ strict: "strict";
20
+ permissive: "permissive";
21
+ }>>;
22
+ }, z.core.$strip>;
42
23
  export type EnvironmentConfig = z.infer<typeof EnvironmentConfigSchema>;
43
24
  //# sourceMappingURL=environment-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-config.d.ts","sourceRoot":"","sources":["../../src/schemas/environment-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"environment-config.d.ts","sourceRoot":"","sources":["../../src/schemas/environment-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;iBAUlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -3,7 +3,7 @@ export const NetworkingConfigSchema = z.object({
3
3
  allowed_hosts: z.array(z.string()).default([]),
4
4
  });
5
5
  export const EnvironmentConfigSchema = z.object({
6
- networking: NetworkingConfigSchema.default({}),
6
+ networking: NetworkingConfigSchema.prefault({}),
7
7
  filesystem: z.enum(["none", "read-only", "read-write"]).default("read-only"),
8
8
  secrets: z.array(z.string()).default([]),
9
9
  timeout: z
@@ -1 +1 @@
1
- {"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../src/schemas/environment-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,KAAK,CAAC,QAAQ,EAAE,2CAA2C,CAAC;SAC5D,OAAO,CAAC,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IACrE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC5D,CAAC,CAAC"}
1
+ {"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../src/schemas/environment-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,sBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/C,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5E,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,KAAK,CAAC,QAAQ,EAAE,2CAA2C,CAAC;SAC5D,OAAO,CAAC,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IACrE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC5D,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { z } from "zod";
2
+ export declare const MEDIA_TYPES: readonly ["image", "document", "audio"];
3
+ export type Media = (typeof MEDIA_TYPES)[number];
4
+ export declare const DEFAULT_MAX_SIZE: Record<Media, number>;
5
+ export declare const DEFAULT_MIME_TYPES: Record<Media, readonly string[]>;
6
+ export declare const FileInputFieldSchema: z.ZodObject<{
7
+ name: z.ZodString;
8
+ type: z.ZodLiteral<"file">;
9
+ media: z.ZodEnum<{
10
+ image: "image";
11
+ document: "document";
12
+ audio: "audio";
13
+ }>;
14
+ mime_types: z.ZodOptional<z.ZodArray<z.ZodString>>;
15
+ max_size: z.ZodOptional<z.ZodNumber>;
16
+ max_count: z.ZodDefault<z.ZodNumber>;
17
+ required: z.ZodDefault<z.ZodBoolean>;
18
+ description: z.ZodOptional<z.ZodString>;
19
+ }, z.core.$strip>;
20
+ export type FileInputField = z.infer<typeof FileInputFieldSchema>;
21
+ export declare const WireFileSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
22
+ type: z.ZodLiteral<"file">;
23
+ source: z.ZodLiteral<"id">;
24
+ file_id: z.ZodString;
25
+ }, z.core.$strip>, z.ZodObject<{
26
+ type: z.ZodLiteral<"file">;
27
+ source: z.ZodLiteral<"data">;
28
+ media_type: z.ZodString;
29
+ data: z.ZodString;
30
+ }, z.core.$strip>, z.ZodObject<{
31
+ type: z.ZodLiteral<"file">;
32
+ source: z.ZodLiteral<"url">;
33
+ url: z.ZodString;
34
+ }, z.core.$strip>], "source">;
35
+ export type WireFileSource = z.infer<typeof WireFileSourceSchema>;
36
+ export declare function resolveFileInputDefaults(field: FileInputField): {
37
+ mime_types: string[];
38
+ max_size: number;
39
+ };
40
+ //# sourceMappingURL=file-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["../../src/schemas/file-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,WAAW,yCAA0C,CAAC;AACnE,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAIlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAI/D,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAS/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;6BAiB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG;IAC/D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAKA"}
@@ -0,0 +1,50 @@
1
+ import { z } from "zod";
2
+ export const MEDIA_TYPES = ["image", "document", "audio"];
3
+ export const DEFAULT_MAX_SIZE = {
4
+ image: 5_000_000,
5
+ document: 25_000_000,
6
+ audio: 25_000_000,
7
+ };
8
+ export const DEFAULT_MIME_TYPES = {
9
+ image: ["image/jpeg", "image/png", "image/webp", "image/heic"],
10
+ document: ["application/pdf"],
11
+ audio: ["audio/wav", "audio/mp3", "audio/mp4", "audio/m4a", "audio/webm"],
12
+ };
13
+ export const FileInputFieldSchema = z.object({
14
+ name: z.string().min(1, "Input name is required"),
15
+ type: z.literal("file"),
16
+ media: z.enum(MEDIA_TYPES),
17
+ mime_types: z.array(z.string().min(1)).optional(),
18
+ max_size: z.number().int().positive().optional(),
19
+ max_count: z.number().int().positive().default(1),
20
+ required: z.boolean().default(true),
21
+ description: z.string().optional(),
22
+ });
23
+ // ============================================================================
24
+ // Wire format — the 3 transport sources for a file input on POST /run
25
+ // ============================================================================
26
+ export const WireFileSourceSchema = z.discriminatedUnion("source", [
27
+ z.object({
28
+ type: z.literal("file"),
29
+ source: z.literal("id"),
30
+ file_id: z.string().min(1),
31
+ }),
32
+ z.object({
33
+ type: z.literal("file"),
34
+ source: z.literal("data"),
35
+ media_type: z.string().min(1),
36
+ data: z.string().min(1),
37
+ }),
38
+ z.object({
39
+ type: z.literal("file"),
40
+ source: z.literal("url"),
41
+ url: z.string().url(),
42
+ }),
43
+ ]);
44
+ export function resolveFileInputDefaults(field) {
45
+ return {
46
+ mime_types: field.mime_types ?? [...DEFAULT_MIME_TYPES[field.media]],
47
+ max_size: field.max_size ?? DEFAULT_MAX_SIZE[field.media],
48
+ };
49
+ }
50
+ //# sourceMappingURL=file-input.js.map