archetype-engine 2.0.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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +241 -0
  3. package/dist/src/ai/adapters/anthropic.d.ts +31 -0
  4. package/dist/src/ai/adapters/anthropic.d.ts.map +1 -0
  5. package/dist/src/ai/adapters/anthropic.js +75 -0
  6. package/dist/src/ai/adapters/openai.d.ts +33 -0
  7. package/dist/src/ai/adapters/openai.d.ts.map +1 -0
  8. package/dist/src/ai/adapters/openai.js +120 -0
  9. package/dist/src/ai/adapters/vercel.d.ts +434 -0
  10. package/dist/src/ai/adapters/vercel.d.ts.map +1 -0
  11. package/dist/src/ai/adapters/vercel.js +162 -0
  12. package/dist/src/ai/index.d.ts +492 -0
  13. package/dist/src/ai/index.d.ts.map +1 -0
  14. package/dist/src/ai/index.js +71 -0
  15. package/dist/src/ai/state.d.ts +13 -0
  16. package/dist/src/ai/state.d.ts.map +1 -0
  17. package/dist/src/ai/state.js +215 -0
  18. package/dist/src/ai/tools.d.ts +13 -0
  19. package/dist/src/ai/tools.d.ts.map +1 -0
  20. package/dist/src/ai/tools.js +257 -0
  21. package/dist/src/ai/types.d.ts +196 -0
  22. package/dist/src/ai/types.d.ts.map +1 -0
  23. package/dist/src/ai/types.js +9 -0
  24. package/dist/src/cli.d.ts +3 -0
  25. package/dist/src/cli.d.ts.map +1 -0
  26. package/dist/src/cli.js +540 -0
  27. package/dist/src/core/utils.d.ts +27 -0
  28. package/dist/src/core/utils.d.ts.map +1 -0
  29. package/dist/src/core/utils.js +56 -0
  30. package/dist/src/entity.d.ts +165 -0
  31. package/dist/src/entity.d.ts.map +1 -0
  32. package/dist/src/entity.js +108 -0
  33. package/dist/src/fields.d.ts +207 -0
  34. package/dist/src/fields.d.ts.map +1 -0
  35. package/dist/src/fields.js +291 -0
  36. package/dist/src/generators/erd-ir.d.ts +10 -0
  37. package/dist/src/generators/erd-ir.d.ts.map +1 -0
  38. package/dist/src/generators/erd-ir.js +119 -0
  39. package/dist/src/index.d.ts +51 -0
  40. package/dist/src/index.d.ts.map +1 -0
  41. package/dist/src/index.js +101 -0
  42. package/dist/src/init/dependencies.d.ts +31 -0
  43. package/dist/src/init/dependencies.d.ts.map +1 -0
  44. package/dist/src/init/dependencies.js +101 -0
  45. package/dist/src/init/entity-templates.d.ts +42 -0
  46. package/dist/src/init/entity-templates.d.ts.map +1 -0
  47. package/dist/src/init/entity-templates.js +367 -0
  48. package/dist/src/init/index.d.ts +10 -0
  49. package/dist/src/init/index.d.ts.map +1 -0
  50. package/dist/src/init/index.js +250 -0
  51. package/dist/src/init/prompts.d.ts +11 -0
  52. package/dist/src/init/prompts.d.ts.map +1 -0
  53. package/dist/src/init/prompts.js +275 -0
  54. package/dist/src/init/templates.d.ts +24 -0
  55. package/dist/src/init/templates.d.ts.map +1 -0
  56. package/dist/src/init/templates.js +587 -0
  57. package/dist/src/json/index.d.ts +11 -0
  58. package/dist/src/json/index.d.ts.map +1 -0
  59. package/dist/src/json/index.js +26 -0
  60. package/dist/src/json/parser.d.ts +61 -0
  61. package/dist/src/json/parser.d.ts.map +1 -0
  62. package/dist/src/json/parser.js +309 -0
  63. package/dist/src/json/types.d.ts +275 -0
  64. package/dist/src/json/types.d.ts.map +1 -0
  65. package/dist/src/json/types.js +10 -0
  66. package/dist/src/manifest.d.ts +147 -0
  67. package/dist/src/manifest.d.ts.map +1 -0
  68. package/dist/src/manifest.js +104 -0
  69. package/dist/src/relations.d.ts +96 -0
  70. package/dist/src/relations.d.ts.map +1 -0
  71. package/dist/src/relations.js +108 -0
  72. package/dist/src/source.d.ts +93 -0
  73. package/dist/src/source.d.ts.map +1 -0
  74. package/dist/src/source.js +89 -0
  75. package/dist/src/template/context.d.ts +34 -0
  76. package/dist/src/template/context.d.ts.map +1 -0
  77. package/dist/src/template/context.js +31 -0
  78. package/dist/src/template/index.d.ts +6 -0
  79. package/dist/src/template/index.d.ts.map +1 -0
  80. package/dist/src/template/index.js +12 -0
  81. package/dist/src/template/registry.d.ts +18 -0
  82. package/dist/src/template/registry.d.ts.map +1 -0
  83. package/dist/src/template/registry.js +89 -0
  84. package/dist/src/template/runner.d.ts +9 -0
  85. package/dist/src/template/runner.d.ts.map +1 -0
  86. package/dist/src/template/runner.js +125 -0
  87. package/dist/src/template/types.d.ts +73 -0
  88. package/dist/src/template/types.d.ts.map +1 -0
  89. package/dist/src/template/types.js +3 -0
  90. package/dist/src/templates/nextjs-drizzle-trpc/generators/api.d.ts +22 -0
  91. package/dist/src/templates/nextjs-drizzle-trpc/generators/api.d.ts.map +1 -0
  92. package/dist/src/templates/nextjs-drizzle-trpc/generators/api.js +866 -0
  93. package/dist/src/templates/nextjs-drizzle-trpc/generators/auth.d.ts +20 -0
  94. package/dist/src/templates/nextjs-drizzle-trpc/generators/auth.d.ts.map +1 -0
  95. package/dist/src/templates/nextjs-drizzle-trpc/generators/auth.js +273 -0
  96. package/dist/src/templates/nextjs-drizzle-trpc/generators/crud-hooks.d.ts +22 -0
  97. package/dist/src/templates/nextjs-drizzle-trpc/generators/crud-hooks.d.ts.map +1 -0
  98. package/dist/src/templates/nextjs-drizzle-trpc/generators/crud-hooks.js +237 -0
  99. package/dist/src/templates/nextjs-drizzle-trpc/generators/hooks.d.ts +30 -0
  100. package/dist/src/templates/nextjs-drizzle-trpc/generators/hooks.d.ts.map +1 -0
  101. package/dist/src/templates/nextjs-drizzle-trpc/generators/hooks.js +345 -0
  102. package/dist/src/templates/nextjs-drizzle-trpc/generators/i18n.d.ts +25 -0
  103. package/dist/src/templates/nextjs-drizzle-trpc/generators/i18n.d.ts.map +1 -0
  104. package/dist/src/templates/nextjs-drizzle-trpc/generators/i18n.js +199 -0
  105. package/dist/src/templates/nextjs-drizzle-trpc/generators/index.d.ts +8 -0
  106. package/dist/src/templates/nextjs-drizzle-trpc/generators/index.d.ts.map +1 -0
  107. package/dist/src/templates/nextjs-drizzle-trpc/generators/index.js +18 -0
  108. package/dist/src/templates/nextjs-drizzle-trpc/generators/schema.d.ts +22 -0
  109. package/dist/src/templates/nextjs-drizzle-trpc/generators/schema.d.ts.map +1 -0
  110. package/dist/src/templates/nextjs-drizzle-trpc/generators/schema.js +270 -0
  111. package/dist/src/templates/nextjs-drizzle-trpc/generators/service.d.ts +23 -0
  112. package/dist/src/templates/nextjs-drizzle-trpc/generators/service.d.ts.map +1 -0
  113. package/dist/src/templates/nextjs-drizzle-trpc/generators/service.js +304 -0
  114. package/dist/src/templates/nextjs-drizzle-trpc/generators/validation.d.ts +21 -0
  115. package/dist/src/templates/nextjs-drizzle-trpc/generators/validation.d.ts.map +1 -0
  116. package/dist/src/templates/nextjs-drizzle-trpc/generators/validation.js +248 -0
  117. package/dist/src/templates/nextjs-drizzle-trpc/index.d.ts +30 -0
  118. package/dist/src/templates/nextjs-drizzle-trpc/index.d.ts.map +1 -0
  119. package/dist/src/templates/nextjs-drizzle-trpc/index.js +71 -0
  120. package/dist/src/validation/index.d.ts +71 -0
  121. package/dist/src/validation/index.d.ts.map +1 -0
  122. package/dist/src/validation/index.js +314 -0
  123. package/package.json +86 -0
@@ -0,0 +1,434 @@
1
+ /**
2
+ * Vercel AI SDK Adapter
3
+ *
4
+ * Converts tool definitions to Vercel AI SDK format with execute functions.
5
+ *
6
+ * @module ai/adapters/vercel
7
+ */
8
+ import type { ManifestBuilder } from '../types';
9
+ import { z } from 'zod';
10
+ /**
11
+ * Field schema for Zod validation
12
+ */
13
+ declare const fieldZodSchema: z.ZodObject<{
14
+ type: z.ZodEnum<["text", "number", "boolean", "date"]>;
15
+ required: z.ZodOptional<z.ZodBoolean>;
16
+ unique: z.ZodOptional<z.ZodBoolean>;
17
+ email: z.ZodOptional<z.ZodBoolean>;
18
+ url: z.ZodOptional<z.ZodBoolean>;
19
+ min: z.ZodOptional<z.ZodNumber>;
20
+ max: z.ZodOptional<z.ZodNumber>;
21
+ oneOf: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
+ integer: z.ZodOptional<z.ZodBoolean>;
23
+ positive: z.ZodOptional<z.ZodBoolean>;
24
+ default: z.ZodOptional<z.ZodUnknown>;
25
+ label: z.ZodOptional<z.ZodString>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ type: "number" | "boolean" | "text" | "date";
28
+ email?: boolean | undefined;
29
+ url?: boolean | undefined;
30
+ oneOf?: string[] | undefined;
31
+ min?: number | undefined;
32
+ max?: number | undefined;
33
+ integer?: boolean | undefined;
34
+ positive?: boolean | undefined;
35
+ required?: boolean | undefined;
36
+ unique?: boolean | undefined;
37
+ default?: unknown;
38
+ label?: string | undefined;
39
+ }, {
40
+ type: "number" | "boolean" | "text" | "date";
41
+ email?: boolean | undefined;
42
+ url?: boolean | undefined;
43
+ oneOf?: string[] | undefined;
44
+ min?: number | undefined;
45
+ max?: number | undefined;
46
+ integer?: boolean | undefined;
47
+ positive?: boolean | undefined;
48
+ required?: boolean | undefined;
49
+ unique?: boolean | undefined;
50
+ default?: unknown;
51
+ label?: string | undefined;
52
+ }>;
53
+ /**
54
+ * Relation schema for Zod validation
55
+ */
56
+ declare const relationZodSchema: z.ZodObject<{
57
+ type: z.ZodEnum<["hasOne", "hasMany", "belongsToMany"]>;
58
+ entity: z.ZodString;
59
+ }, "strip", z.ZodTypeAny, {
60
+ type: "hasOne" | "hasMany" | "belongsToMany";
61
+ entity: string;
62
+ }, {
63
+ type: "hasOne" | "hasMany" | "belongsToMany";
64
+ entity: string;
65
+ }>;
66
+ /**
67
+ * Create Vercel AI SDK tools bound to a ManifestBuilder
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * import { createManifestBuilder } from 'archetype-engine/ai'
72
+ * import { getVercelAITools } from 'archetype-engine/ai/adapters/vercel'
73
+ * import { generateText } from 'ai'
74
+ * import { openai } from '@ai-sdk/openai'
75
+ *
76
+ * const builder = createManifestBuilder()
77
+ * const tools = getVercelAITools(builder)
78
+ *
79
+ * const result = await generateText({
80
+ * model: openai('gpt-4o'),
81
+ * tools,
82
+ * prompt: 'Create a blog with users and posts'
83
+ * })
84
+ * ```
85
+ */
86
+ export declare function getVercelAITools(builder: ManifestBuilder): {
87
+ add_entity: {
88
+ description: string;
89
+ parameters: z.ZodObject<{
90
+ name: z.ZodString;
91
+ fields: z.ZodRecord<z.ZodString, z.ZodObject<{
92
+ type: z.ZodEnum<["text", "number", "boolean", "date"]>;
93
+ required: z.ZodOptional<z.ZodBoolean>;
94
+ unique: z.ZodOptional<z.ZodBoolean>;
95
+ email: z.ZodOptional<z.ZodBoolean>;
96
+ url: z.ZodOptional<z.ZodBoolean>;
97
+ min: z.ZodOptional<z.ZodNumber>;
98
+ max: z.ZodOptional<z.ZodNumber>;
99
+ oneOf: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
100
+ integer: z.ZodOptional<z.ZodBoolean>;
101
+ positive: z.ZodOptional<z.ZodBoolean>;
102
+ default: z.ZodOptional<z.ZodUnknown>;
103
+ label: z.ZodOptional<z.ZodString>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ type: "number" | "boolean" | "text" | "date";
106
+ email?: boolean | undefined;
107
+ url?: boolean | undefined;
108
+ oneOf?: string[] | undefined;
109
+ min?: number | undefined;
110
+ max?: number | undefined;
111
+ integer?: boolean | undefined;
112
+ positive?: boolean | undefined;
113
+ required?: boolean | undefined;
114
+ unique?: boolean | undefined;
115
+ default?: unknown;
116
+ label?: string | undefined;
117
+ }, {
118
+ type: "number" | "boolean" | "text" | "date";
119
+ email?: boolean | undefined;
120
+ url?: boolean | undefined;
121
+ oneOf?: string[] | undefined;
122
+ min?: number | undefined;
123
+ max?: number | undefined;
124
+ integer?: boolean | undefined;
125
+ positive?: boolean | undefined;
126
+ required?: boolean | undefined;
127
+ unique?: boolean | undefined;
128
+ default?: unknown;
129
+ label?: string | undefined;
130
+ }>>;
131
+ relations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
132
+ type: z.ZodEnum<["hasOne", "hasMany", "belongsToMany"]>;
133
+ entity: z.ZodString;
134
+ }, "strip", z.ZodTypeAny, {
135
+ type: "hasOne" | "hasMany" | "belongsToMany";
136
+ entity: string;
137
+ }, {
138
+ type: "hasOne" | "hasMany" | "belongsToMany";
139
+ entity: string;
140
+ }>>>;
141
+ behaviors: z.ZodOptional<z.ZodObject<{
142
+ timestamps: z.ZodOptional<z.ZodBoolean>;
143
+ softDelete: z.ZodOptional<z.ZodBoolean>;
144
+ audit: z.ZodOptional<z.ZodBoolean>;
145
+ }, "strip", z.ZodTypeAny, {
146
+ timestamps?: boolean | undefined;
147
+ softDelete?: boolean | undefined;
148
+ audit?: boolean | undefined;
149
+ }, {
150
+ timestamps?: boolean | undefined;
151
+ softDelete?: boolean | undefined;
152
+ audit?: boolean | undefined;
153
+ }>>;
154
+ protected: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["write", "all"]>]>>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ fields: Record<string, {
157
+ type: "number" | "boolean" | "text" | "date";
158
+ email?: boolean | undefined;
159
+ url?: boolean | undefined;
160
+ oneOf?: string[] | undefined;
161
+ min?: number | undefined;
162
+ max?: number | undefined;
163
+ integer?: boolean | undefined;
164
+ positive?: boolean | undefined;
165
+ required?: boolean | undefined;
166
+ unique?: boolean | undefined;
167
+ default?: unknown;
168
+ label?: string | undefined;
169
+ }>;
170
+ name: string;
171
+ protected?: boolean | "write" | "all" | undefined;
172
+ relations?: Record<string, {
173
+ type: "hasOne" | "hasMany" | "belongsToMany";
174
+ entity: string;
175
+ }> | undefined;
176
+ behaviors?: {
177
+ timestamps?: boolean | undefined;
178
+ softDelete?: boolean | undefined;
179
+ audit?: boolean | undefined;
180
+ } | undefined;
181
+ }, {
182
+ fields: Record<string, {
183
+ type: "number" | "boolean" | "text" | "date";
184
+ email?: boolean | undefined;
185
+ url?: boolean | undefined;
186
+ oneOf?: string[] | undefined;
187
+ min?: number | undefined;
188
+ max?: number | undefined;
189
+ integer?: boolean | undefined;
190
+ positive?: boolean | undefined;
191
+ required?: boolean | undefined;
192
+ unique?: boolean | undefined;
193
+ default?: unknown;
194
+ label?: string | undefined;
195
+ }>;
196
+ name: string;
197
+ protected?: boolean | "write" | "all" | undefined;
198
+ relations?: Record<string, {
199
+ type: "hasOne" | "hasMany" | "belongsToMany";
200
+ entity: string;
201
+ }> | undefined;
202
+ behaviors?: {
203
+ timestamps?: boolean | undefined;
204
+ softDelete?: boolean | undefined;
205
+ audit?: boolean | undefined;
206
+ } | undefined;
207
+ }>;
208
+ execute: (params: {
209
+ name: string;
210
+ fields: Record<string, z.infer<typeof fieldZodSchema>>;
211
+ relations?: Record<string, z.infer<typeof relationZodSchema>>;
212
+ behaviors?: {
213
+ timestamps?: boolean;
214
+ softDelete?: boolean;
215
+ audit?: boolean;
216
+ };
217
+ protected?: boolean | "write" | "all";
218
+ }) => Promise<import("../types").ToolResult>;
219
+ };
220
+ update_entity: {
221
+ description: string;
222
+ parameters: z.ZodObject<{
223
+ name: z.ZodString;
224
+ fields: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
225
+ type: z.ZodOptional<z.ZodEnum<["text", "number", "boolean", "date"]>>;
226
+ required: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
227
+ unique: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
228
+ email: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
229
+ url: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
230
+ min: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
231
+ max: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
232
+ oneOf: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
233
+ integer: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
234
+ positive: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
235
+ default: z.ZodOptional<z.ZodOptional<z.ZodUnknown>>;
236
+ label: z.ZodOptional<z.ZodOptional<z.ZodString>>;
237
+ }, "strip", z.ZodTypeAny, {
238
+ email?: boolean | undefined;
239
+ url?: boolean | undefined;
240
+ oneOf?: string[] | undefined;
241
+ min?: number | undefined;
242
+ max?: number | undefined;
243
+ integer?: boolean | undefined;
244
+ positive?: boolean | undefined;
245
+ type?: "number" | "boolean" | "text" | "date" | undefined;
246
+ required?: boolean | undefined;
247
+ unique?: boolean | undefined;
248
+ default?: unknown;
249
+ label?: string | undefined;
250
+ }, {
251
+ email?: boolean | undefined;
252
+ url?: boolean | undefined;
253
+ oneOf?: string[] | undefined;
254
+ min?: number | undefined;
255
+ max?: number | undefined;
256
+ integer?: boolean | undefined;
257
+ positive?: boolean | undefined;
258
+ type?: "number" | "boolean" | "text" | "date" | undefined;
259
+ required?: boolean | undefined;
260
+ unique?: boolean | undefined;
261
+ default?: unknown;
262
+ label?: string | undefined;
263
+ }>>>;
264
+ relations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
265
+ type: z.ZodEnum<["hasOne", "hasMany", "belongsToMany"]>;
266
+ entity: z.ZodString;
267
+ }, "strip", z.ZodTypeAny, {
268
+ type: "hasOne" | "hasMany" | "belongsToMany";
269
+ entity: string;
270
+ }, {
271
+ type: "hasOne" | "hasMany" | "belongsToMany";
272
+ entity: string;
273
+ }>>>;
274
+ behaviors: z.ZodOptional<z.ZodObject<{
275
+ timestamps: z.ZodOptional<z.ZodBoolean>;
276
+ softDelete: z.ZodOptional<z.ZodBoolean>;
277
+ audit: z.ZodOptional<z.ZodBoolean>;
278
+ }, "strip", z.ZodTypeAny, {
279
+ timestamps?: boolean | undefined;
280
+ softDelete?: boolean | undefined;
281
+ audit?: boolean | undefined;
282
+ }, {
283
+ timestamps?: boolean | undefined;
284
+ softDelete?: boolean | undefined;
285
+ audit?: boolean | undefined;
286
+ }>>;
287
+ protected: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodEnum<["write", "all"]>]>>;
288
+ }, "strip", z.ZodTypeAny, {
289
+ name: string;
290
+ fields?: Record<string, {
291
+ email?: boolean | undefined;
292
+ url?: boolean | undefined;
293
+ oneOf?: string[] | undefined;
294
+ min?: number | undefined;
295
+ max?: number | undefined;
296
+ integer?: boolean | undefined;
297
+ positive?: boolean | undefined;
298
+ type?: "number" | "boolean" | "text" | "date" | undefined;
299
+ required?: boolean | undefined;
300
+ unique?: boolean | undefined;
301
+ default?: unknown;
302
+ label?: string | undefined;
303
+ }> | undefined;
304
+ protected?: boolean | "write" | "all" | undefined;
305
+ relations?: Record<string, {
306
+ type: "hasOne" | "hasMany" | "belongsToMany";
307
+ entity: string;
308
+ }> | undefined;
309
+ behaviors?: {
310
+ timestamps?: boolean | undefined;
311
+ softDelete?: boolean | undefined;
312
+ audit?: boolean | undefined;
313
+ } | undefined;
314
+ }, {
315
+ name: string;
316
+ fields?: Record<string, {
317
+ email?: boolean | undefined;
318
+ url?: boolean | undefined;
319
+ oneOf?: string[] | undefined;
320
+ min?: number | undefined;
321
+ max?: number | undefined;
322
+ integer?: boolean | undefined;
323
+ positive?: boolean | undefined;
324
+ type?: "number" | "boolean" | "text" | "date" | undefined;
325
+ required?: boolean | undefined;
326
+ unique?: boolean | undefined;
327
+ default?: unknown;
328
+ label?: string | undefined;
329
+ }> | undefined;
330
+ protected?: boolean | "write" | "all" | undefined;
331
+ relations?: Record<string, {
332
+ type: "hasOne" | "hasMany" | "belongsToMany";
333
+ entity: string;
334
+ }> | undefined;
335
+ behaviors?: {
336
+ timestamps?: boolean | undefined;
337
+ softDelete?: boolean | undefined;
338
+ audit?: boolean | undefined;
339
+ } | undefined;
340
+ }>;
341
+ execute: (params: {
342
+ name: string;
343
+ fields?: Record<string, Partial<z.infer<typeof fieldZodSchema>>>;
344
+ relations?: Record<string, z.infer<typeof relationZodSchema>>;
345
+ behaviors?: {
346
+ timestamps?: boolean;
347
+ softDelete?: boolean;
348
+ audit?: boolean;
349
+ };
350
+ protected?: boolean | "write" | "all";
351
+ }) => Promise<import("../types").ToolResult>;
352
+ };
353
+ remove_entity: {
354
+ description: string;
355
+ parameters: z.ZodObject<{
356
+ name: z.ZodString;
357
+ }, "strip", z.ZodTypeAny, {
358
+ name: string;
359
+ }, {
360
+ name: string;
361
+ }>;
362
+ execute: (params: {
363
+ name: string;
364
+ }) => Promise<import("../types").ToolResult>;
365
+ };
366
+ set_database: {
367
+ description: string;
368
+ parameters: z.ZodObject<{
369
+ type: z.ZodEnum<["sqlite", "postgres", "mysql"]>;
370
+ file: z.ZodOptional<z.ZodString>;
371
+ url: z.ZodOptional<z.ZodString>;
372
+ }, "strip", z.ZodTypeAny, {
373
+ type: "sqlite" | "postgres" | "mysql";
374
+ url?: string | undefined;
375
+ file?: string | undefined;
376
+ }, {
377
+ type: "sqlite" | "postgres" | "mysql";
378
+ url?: string | undefined;
379
+ file?: string | undefined;
380
+ }>;
381
+ execute: (params: {
382
+ type: "sqlite" | "postgres" | "mysql";
383
+ file?: string;
384
+ url?: string;
385
+ }) => Promise<import("../types").ToolResult>;
386
+ };
387
+ set_auth: {
388
+ description: string;
389
+ parameters: z.ZodObject<{
390
+ enabled: z.ZodBoolean;
391
+ providers: z.ZodOptional<z.ZodArray<z.ZodEnum<["credentials", "google", "github", "discord"]>, "many">>;
392
+ sessionStrategy: z.ZodOptional<z.ZodEnum<["jwt", "database"]>>;
393
+ }, "strip", z.ZodTypeAny, {
394
+ enabled: boolean;
395
+ providers?: ("credentials" | "google" | "github" | "discord")[] | undefined;
396
+ sessionStrategy?: "database" | "jwt" | undefined;
397
+ }, {
398
+ enabled: boolean;
399
+ providers?: ("credentials" | "google" | "github" | "discord")[] | undefined;
400
+ sessionStrategy?: "database" | "jwt" | undefined;
401
+ }>;
402
+ execute: (params: {
403
+ enabled: boolean;
404
+ providers?: ("credentials" | "google" | "github" | "discord")[];
405
+ sessionStrategy?: "jwt" | "database";
406
+ }) => Promise<import("../types").ToolResult>;
407
+ };
408
+ validate: {
409
+ description: string;
410
+ parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
411
+ execute: () => Promise<{
412
+ success: boolean;
413
+ message: string;
414
+ errors: import("../..").ValidationError[];
415
+ warnings: import("../..").ValidationError[];
416
+ }>;
417
+ };
418
+ generate: {
419
+ description: string;
420
+ parameters: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
421
+ execute: () => Promise<{
422
+ success: boolean;
423
+ message: string;
424
+ files: string[];
425
+ errors: string[] | undefined;
426
+ }>;
427
+ };
428
+ };
429
+ /**
430
+ * Convenience type for the tools object
431
+ */
432
+ export type VercelAITools = ReturnType<typeof getVercelAITools>;
433
+ export {};
434
+ //# sourceMappingURL=vercel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../../src/ai/adapters/vercel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalB,CAAA;AAEF;;GAEG;AACH,QAAA,MAAM,iBAAiB;;;;;;;;;EAGrB,CAAA;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAiB3B;YACtB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC,CAAA;YACtD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAA;YAC7D,SAAS,CAAC,EAAE;gBAAE,UAAU,CAAC,EAAE,OAAO,CAAC;gBAAC,UAAU,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,OAAO,CAAA;aAAE,CAAA;YAC3E,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;SACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAqBuB;YACtB,IAAI,EAAE,MAAM,CAAA;YACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;YAChE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAA;YAC7D,SAAS,CAAC,EAAE;gBAAE,UAAU,CAAC,EAAE,OAAO,CAAC;gBAAC,UAAU,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,OAAO,CAAA;aAAE,CAAA;YAC3E,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAA;SACtC;;;;;;;;;;;0BAWuB;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;0BAahB;YAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;0BAatE;YACtB,OAAO,EAAE,OAAO,CAAA;YAChB,SAAS,CAAC,EAAE,CAAC,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAA;YAC/D,eAAe,CAAC,EAAE,KAAK,GAAG,UAAU,CAAA;SACrC;;;;;;;;;;;;;;;;;;;;;;EAoCN;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ /**
3
+ * Vercel AI SDK Adapter
4
+ *
5
+ * Converts tool definitions to Vercel AI SDK format with execute functions.
6
+ *
7
+ * @module ai/adapters/vercel
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.getVercelAITools = getVercelAITools;
11
+ const tools_1 = require("../tools");
12
+ const zod_1 = require("zod");
13
+ /**
14
+ * Field schema for Zod validation
15
+ */
16
+ const fieldZodSchema = zod_1.z.object({
17
+ type: zod_1.z.enum(['text', 'number', 'boolean', 'date']),
18
+ required: zod_1.z.boolean().optional(),
19
+ unique: zod_1.z.boolean().optional(),
20
+ email: zod_1.z.boolean().optional(),
21
+ url: zod_1.z.boolean().optional(),
22
+ min: zod_1.z.number().optional(),
23
+ max: zod_1.z.number().optional(),
24
+ oneOf: zod_1.z.array(zod_1.z.string()).optional(),
25
+ integer: zod_1.z.boolean().optional(),
26
+ positive: zod_1.z.boolean().optional(),
27
+ default: zod_1.z.unknown().optional(),
28
+ label: zod_1.z.string().optional(),
29
+ });
30
+ /**
31
+ * Relation schema for Zod validation
32
+ */
33
+ const relationZodSchema = zod_1.z.object({
34
+ type: zod_1.z.enum(['hasOne', 'hasMany', 'belongsToMany']),
35
+ entity: zod_1.z.string(),
36
+ });
37
+ /**
38
+ * Create Vercel AI SDK tools bound to a ManifestBuilder
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * import { createManifestBuilder } from 'archetype-engine/ai'
43
+ * import { getVercelAITools } from 'archetype-engine/ai/adapters/vercel'
44
+ * import { generateText } from 'ai'
45
+ * import { openai } from '@ai-sdk/openai'
46
+ *
47
+ * const builder = createManifestBuilder()
48
+ * const tools = getVercelAITools(builder)
49
+ *
50
+ * const result = await generateText({
51
+ * model: openai('gpt-4o'),
52
+ * tools,
53
+ * prompt: 'Create a blog with users and posts'
54
+ * })
55
+ * ```
56
+ */
57
+ function getVercelAITools(builder) {
58
+ return {
59
+ add_entity: {
60
+ description: tools_1.toolDefinitions.add_entity.description,
61
+ parameters: zod_1.z.object({
62
+ name: zod_1.z.string().describe('Entity name in PascalCase'),
63
+ fields: zod_1.z.record(fieldZodSchema).describe('Field definitions'),
64
+ relations: zod_1.z.record(relationZodSchema).optional().describe('Relation definitions'),
65
+ behaviors: zod_1.z
66
+ .object({
67
+ timestamps: zod_1.z.boolean().optional(),
68
+ softDelete: zod_1.z.boolean().optional(),
69
+ audit: zod_1.z.boolean().optional(),
70
+ })
71
+ .optional(),
72
+ protected: zod_1.z.union([zod_1.z.boolean(), zod_1.z.enum(['write', 'all'])]).optional(),
73
+ }),
74
+ execute: async (params) => {
75
+ const result = builder.addEntity(params);
76
+ return result;
77
+ },
78
+ },
79
+ update_entity: {
80
+ description: tools_1.toolDefinitions.update_entity.description,
81
+ parameters: zod_1.z.object({
82
+ name: zod_1.z.string().describe('Entity name to update'),
83
+ fields: zod_1.z.record(fieldZodSchema.partial()).optional(),
84
+ relations: zod_1.z.record(relationZodSchema).optional(),
85
+ behaviors: zod_1.z
86
+ .object({
87
+ timestamps: zod_1.z.boolean().optional(),
88
+ softDelete: zod_1.z.boolean().optional(),
89
+ audit: zod_1.z.boolean().optional(),
90
+ })
91
+ .optional(),
92
+ protected: zod_1.z.union([zod_1.z.boolean(), zod_1.z.enum(['write', 'all'])]).optional(),
93
+ }),
94
+ execute: async (params) => {
95
+ const result = builder.updateEntity(params);
96
+ return result;
97
+ },
98
+ },
99
+ remove_entity: {
100
+ description: tools_1.toolDefinitions.remove_entity.description,
101
+ parameters: zod_1.z.object({
102
+ name: zod_1.z.string().describe('Entity name to remove'),
103
+ }),
104
+ execute: async (params) => {
105
+ const result = builder.removeEntity(params);
106
+ return result;
107
+ },
108
+ },
109
+ set_database: {
110
+ description: tools_1.toolDefinitions.set_database.description,
111
+ parameters: zod_1.z.object({
112
+ type: zod_1.z.enum(['sqlite', 'postgres', 'mysql']),
113
+ file: zod_1.z.string().optional().describe('SQLite file path'),
114
+ url: zod_1.z.string().optional().describe('Connection URL for Postgres/MySQL'),
115
+ }),
116
+ execute: async (params) => {
117
+ const result = builder.setDatabase(params);
118
+ return result;
119
+ },
120
+ },
121
+ set_auth: {
122
+ description: tools_1.toolDefinitions.set_auth.description,
123
+ parameters: zod_1.z.object({
124
+ enabled: zod_1.z.boolean(),
125
+ providers: zod_1.z.array(zod_1.z.enum(['credentials', 'google', 'github', 'discord'])).optional(),
126
+ sessionStrategy: zod_1.z.enum(['jwt', 'database']).optional(),
127
+ }),
128
+ execute: async (params) => {
129
+ const result = builder.setAuth(params);
130
+ return result;
131
+ },
132
+ },
133
+ validate: {
134
+ description: tools_1.toolDefinitions.validate.description,
135
+ parameters: zod_1.z.object({}),
136
+ execute: async () => {
137
+ const result = builder.validate();
138
+ return {
139
+ success: result.valid,
140
+ message: result.valid ? 'Manifest is valid' : `Found ${result.errors.length} error(s)`,
141
+ errors: result.errors,
142
+ warnings: result.warnings,
143
+ };
144
+ },
145
+ },
146
+ generate: {
147
+ description: tools_1.toolDefinitions.generate.description,
148
+ parameters: zod_1.z.object({}),
149
+ execute: async () => {
150
+ const result = await builder.generate();
151
+ return {
152
+ success: result.success,
153
+ message: result.success
154
+ ? `Generated ${result.files.length} files`
155
+ : `Generation failed: ${result.errors?.join(', ')}`,
156
+ files: result.files.map(f => f.path),
157
+ errors: result.errors,
158
+ };
159
+ },
160
+ },
161
+ };
162
+ }