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,492 @@
1
+ /**
2
+ * AI Module
3
+ *
4
+ * Ready-to-use tool definitions for AI frameworks (OpenAI, Anthropic, Vercel AI SDK).
5
+ *
6
+ * @module ai
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * // With Vercel AI SDK
11
+ * import { createManifestBuilder, aiTools } from 'archetype-engine/ai'
12
+ * import { generateText } from 'ai'
13
+ * import { openai } from '@ai-sdk/openai'
14
+ *
15
+ * const builder = createManifestBuilder()
16
+ *
17
+ * const result = await generateText({
18
+ * model: openai('gpt-4o'),
19
+ * tools: aiTools.vercel(builder),
20
+ * system: 'You are an app builder. Use the tools to build the app.',
21
+ * prompt: 'Create a blog with users and posts',
22
+ * maxSteps: 10
23
+ * })
24
+ *
25
+ * // After AI finishes calling tools, generate the app
26
+ * const { files, success } = await builder.generate()
27
+ * ```
28
+ */
29
+ export type { ToolDefinition, ToolParameter, ToolResult, ManifestBuilder, AddEntityParams, UpdateEntityParams, RemoveEntityParams, SetDatabaseParams, SetAuthParams, OpenAITool, AnthropicTool, VercelAITool, } from './types';
30
+ export { createManifestBuilder } from './state';
31
+ export { toolDefinitions } from './tools';
32
+ export { getOpenAITools, executeOpenAITool, createOpenAIHandler } from './adapters/openai';
33
+ export { getAnthropicTools, executeAnthropicTool, createAnthropicHandler } from './adapters/anthropic';
34
+ export { getVercelAITools } from './adapters/vercel';
35
+ export type { VercelAITools } from './adapters/vercel';
36
+ import type { ManifestBuilder } from './types';
37
+ /**
38
+ * Convenience object for getting tools in different formats
39
+ */
40
+ export declare const aiTools: {
41
+ /**
42
+ * Get tools for OpenAI function calling
43
+ */
44
+ openai: () => import("./types").OpenAITool[];
45
+ /**
46
+ * Get tools for Anthropic tool use
47
+ */
48
+ anthropic: () => import("./types").AnthropicTool[];
49
+ /**
50
+ * Get tools for Vercel AI SDK (requires builder instance)
51
+ */
52
+ vercel: (builder: ManifestBuilder) => {
53
+ add_entity: {
54
+ description: string;
55
+ parameters: import("zod").ZodObject<{
56
+ name: import("zod").ZodString;
57
+ fields: import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
58
+ type: import("zod").ZodEnum<["text", "number", "boolean", "date"]>;
59
+ required: import("zod").ZodOptional<import("zod").ZodBoolean>;
60
+ unique: import("zod").ZodOptional<import("zod").ZodBoolean>;
61
+ email: import("zod").ZodOptional<import("zod").ZodBoolean>;
62
+ url: import("zod").ZodOptional<import("zod").ZodBoolean>;
63
+ min: import("zod").ZodOptional<import("zod").ZodNumber>;
64
+ max: import("zod").ZodOptional<import("zod").ZodNumber>;
65
+ oneOf: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
66
+ integer: import("zod").ZodOptional<import("zod").ZodBoolean>;
67
+ positive: import("zod").ZodOptional<import("zod").ZodBoolean>;
68
+ default: import("zod").ZodOptional<import("zod").ZodUnknown>;
69
+ label: import("zod").ZodOptional<import("zod").ZodString>;
70
+ }, "strip", import("zod").ZodTypeAny, {
71
+ type: "number" | "boolean" | "text" | "date";
72
+ email?: boolean | undefined;
73
+ url?: boolean | undefined;
74
+ oneOf?: string[] | undefined;
75
+ min?: number | undefined;
76
+ max?: number | undefined;
77
+ integer?: boolean | undefined;
78
+ positive?: boolean | undefined;
79
+ required?: boolean | undefined;
80
+ unique?: boolean | undefined;
81
+ default?: unknown;
82
+ label?: string | undefined;
83
+ }, {
84
+ type: "number" | "boolean" | "text" | "date";
85
+ email?: boolean | undefined;
86
+ url?: boolean | undefined;
87
+ oneOf?: string[] | undefined;
88
+ min?: number | undefined;
89
+ max?: number | undefined;
90
+ integer?: boolean | undefined;
91
+ positive?: boolean | undefined;
92
+ required?: boolean | undefined;
93
+ unique?: boolean | undefined;
94
+ default?: unknown;
95
+ label?: string | undefined;
96
+ }>>;
97
+ relations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
98
+ type: import("zod").ZodEnum<["hasOne", "hasMany", "belongsToMany"]>;
99
+ entity: import("zod").ZodString;
100
+ }, "strip", import("zod").ZodTypeAny, {
101
+ type: "hasOne" | "hasMany" | "belongsToMany";
102
+ entity: string;
103
+ }, {
104
+ type: "hasOne" | "hasMany" | "belongsToMany";
105
+ entity: string;
106
+ }>>>;
107
+ behaviors: import("zod").ZodOptional<import("zod").ZodObject<{
108
+ timestamps: import("zod").ZodOptional<import("zod").ZodBoolean>;
109
+ softDelete: import("zod").ZodOptional<import("zod").ZodBoolean>;
110
+ audit: import("zod").ZodOptional<import("zod").ZodBoolean>;
111
+ }, "strip", import("zod").ZodTypeAny, {
112
+ timestamps?: boolean | undefined;
113
+ softDelete?: boolean | undefined;
114
+ audit?: boolean | undefined;
115
+ }, {
116
+ timestamps?: boolean | undefined;
117
+ softDelete?: boolean | undefined;
118
+ audit?: boolean | undefined;
119
+ }>>;
120
+ protected: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodBoolean, import("zod").ZodEnum<["write", "all"]>]>>;
121
+ }, "strip", import("zod").ZodTypeAny, {
122
+ fields: Record<string, {
123
+ type: "number" | "boolean" | "text" | "date";
124
+ email?: boolean | undefined;
125
+ url?: boolean | undefined;
126
+ oneOf?: string[] | undefined;
127
+ min?: number | undefined;
128
+ max?: number | undefined;
129
+ integer?: boolean | undefined;
130
+ positive?: boolean | undefined;
131
+ required?: boolean | undefined;
132
+ unique?: boolean | undefined;
133
+ default?: unknown;
134
+ label?: string | undefined;
135
+ }>;
136
+ name: string;
137
+ protected?: boolean | "write" | "all" | undefined;
138
+ relations?: Record<string, {
139
+ type: "hasOne" | "hasMany" | "belongsToMany";
140
+ entity: string;
141
+ }> | undefined;
142
+ behaviors?: {
143
+ timestamps?: boolean | undefined;
144
+ softDelete?: boolean | undefined;
145
+ audit?: boolean | undefined;
146
+ } | undefined;
147
+ }, {
148
+ fields: Record<string, {
149
+ type: "number" | "boolean" | "text" | "date";
150
+ email?: boolean | undefined;
151
+ url?: boolean | undefined;
152
+ oneOf?: string[] | undefined;
153
+ min?: number | undefined;
154
+ max?: number | undefined;
155
+ integer?: boolean | undefined;
156
+ positive?: boolean | undefined;
157
+ required?: boolean | undefined;
158
+ unique?: boolean | undefined;
159
+ default?: unknown;
160
+ label?: string | undefined;
161
+ }>;
162
+ name: string;
163
+ protected?: boolean | "write" | "all" | undefined;
164
+ relations?: Record<string, {
165
+ type: "hasOne" | "hasMany" | "belongsToMany";
166
+ entity: string;
167
+ }> | undefined;
168
+ behaviors?: {
169
+ timestamps?: boolean | undefined;
170
+ softDelete?: boolean | undefined;
171
+ audit?: boolean | undefined;
172
+ } | undefined;
173
+ }>;
174
+ execute: (params: {
175
+ name: string;
176
+ fields: Record<string, import("zod").TypeOf<import("zod").ZodObject<{
177
+ type: import("zod").ZodEnum<["text", "number", "boolean", "date"]>;
178
+ required: import("zod").ZodOptional<import("zod").ZodBoolean>;
179
+ unique: import("zod").ZodOptional<import("zod").ZodBoolean>;
180
+ email: import("zod").ZodOptional<import("zod").ZodBoolean>;
181
+ url: import("zod").ZodOptional<import("zod").ZodBoolean>;
182
+ min: import("zod").ZodOptional<import("zod").ZodNumber>;
183
+ max: import("zod").ZodOptional<import("zod").ZodNumber>;
184
+ oneOf: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
185
+ integer: import("zod").ZodOptional<import("zod").ZodBoolean>;
186
+ positive: import("zod").ZodOptional<import("zod").ZodBoolean>;
187
+ default: import("zod").ZodOptional<import("zod").ZodUnknown>;
188
+ label: import("zod").ZodOptional<import("zod").ZodString>;
189
+ }, "strip", import("zod").ZodTypeAny, {
190
+ type: "number" | "boolean" | "text" | "date";
191
+ email?: boolean | undefined;
192
+ url?: boolean | undefined;
193
+ oneOf?: string[] | undefined;
194
+ min?: number | undefined;
195
+ max?: number | undefined;
196
+ integer?: boolean | undefined;
197
+ positive?: boolean | undefined;
198
+ required?: boolean | undefined;
199
+ unique?: boolean | undefined;
200
+ default?: unknown;
201
+ label?: string | undefined;
202
+ }, {
203
+ type: "number" | "boolean" | "text" | "date";
204
+ email?: boolean | undefined;
205
+ url?: boolean | undefined;
206
+ oneOf?: string[] | undefined;
207
+ min?: number | undefined;
208
+ max?: number | undefined;
209
+ integer?: boolean | undefined;
210
+ positive?: boolean | undefined;
211
+ required?: boolean | undefined;
212
+ unique?: boolean | undefined;
213
+ default?: unknown;
214
+ label?: string | undefined;
215
+ }>>>;
216
+ relations?: Record<string, import("zod").TypeOf<import("zod").ZodObject<{
217
+ type: import("zod").ZodEnum<["hasOne", "hasMany", "belongsToMany"]>;
218
+ entity: import("zod").ZodString;
219
+ }, "strip", import("zod").ZodTypeAny, {
220
+ type: "hasOne" | "hasMany" | "belongsToMany";
221
+ entity: string;
222
+ }, {
223
+ type: "hasOne" | "hasMany" | "belongsToMany";
224
+ entity: string;
225
+ }>>>;
226
+ behaviors?: {
227
+ timestamps?: boolean;
228
+ softDelete?: boolean;
229
+ audit?: boolean;
230
+ };
231
+ protected?: boolean | "write" | "all";
232
+ }) => Promise<import("./types").ToolResult>;
233
+ };
234
+ update_entity: {
235
+ description: string;
236
+ parameters: import("zod").ZodObject<{
237
+ name: import("zod").ZodString;
238
+ fields: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
239
+ type: import("zod").ZodOptional<import("zod").ZodEnum<["text", "number", "boolean", "date"]>>;
240
+ required: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodBoolean>>;
241
+ unique: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodBoolean>>;
242
+ email: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodBoolean>>;
243
+ url: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodBoolean>>;
244
+ min: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodNumber>>;
245
+ max: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodNumber>>;
246
+ oneOf: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>>;
247
+ integer: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodBoolean>>;
248
+ positive: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodBoolean>>;
249
+ default: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodUnknown>>;
250
+ label: import("zod").ZodOptional<import("zod").ZodOptional<import("zod").ZodString>>;
251
+ }, "strip", import("zod").ZodTypeAny, {
252
+ email?: boolean | undefined;
253
+ url?: boolean | undefined;
254
+ oneOf?: string[] | undefined;
255
+ min?: number | undefined;
256
+ max?: number | undefined;
257
+ integer?: boolean | undefined;
258
+ positive?: boolean | undefined;
259
+ type?: "number" | "boolean" | "text" | "date" | undefined;
260
+ required?: boolean | undefined;
261
+ unique?: boolean | undefined;
262
+ default?: unknown;
263
+ label?: string | undefined;
264
+ }, {
265
+ email?: boolean | undefined;
266
+ url?: boolean | undefined;
267
+ oneOf?: string[] | undefined;
268
+ min?: number | undefined;
269
+ max?: number | undefined;
270
+ integer?: boolean | undefined;
271
+ positive?: boolean | undefined;
272
+ type?: "number" | "boolean" | "text" | "date" | undefined;
273
+ required?: boolean | undefined;
274
+ unique?: boolean | undefined;
275
+ default?: unknown;
276
+ label?: string | undefined;
277
+ }>>>;
278
+ relations: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodObject<{
279
+ type: import("zod").ZodEnum<["hasOne", "hasMany", "belongsToMany"]>;
280
+ entity: import("zod").ZodString;
281
+ }, "strip", import("zod").ZodTypeAny, {
282
+ type: "hasOne" | "hasMany" | "belongsToMany";
283
+ entity: string;
284
+ }, {
285
+ type: "hasOne" | "hasMany" | "belongsToMany";
286
+ entity: string;
287
+ }>>>;
288
+ behaviors: import("zod").ZodOptional<import("zod").ZodObject<{
289
+ timestamps: import("zod").ZodOptional<import("zod").ZodBoolean>;
290
+ softDelete: import("zod").ZodOptional<import("zod").ZodBoolean>;
291
+ audit: import("zod").ZodOptional<import("zod").ZodBoolean>;
292
+ }, "strip", import("zod").ZodTypeAny, {
293
+ timestamps?: boolean | undefined;
294
+ softDelete?: boolean | undefined;
295
+ audit?: boolean | undefined;
296
+ }, {
297
+ timestamps?: boolean | undefined;
298
+ softDelete?: boolean | undefined;
299
+ audit?: boolean | undefined;
300
+ }>>;
301
+ protected: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodBoolean, import("zod").ZodEnum<["write", "all"]>]>>;
302
+ }, "strip", import("zod").ZodTypeAny, {
303
+ name: string;
304
+ fields?: Record<string, {
305
+ email?: boolean | undefined;
306
+ url?: boolean | undefined;
307
+ oneOf?: string[] | undefined;
308
+ min?: number | undefined;
309
+ max?: number | undefined;
310
+ integer?: boolean | undefined;
311
+ positive?: boolean | undefined;
312
+ type?: "number" | "boolean" | "text" | "date" | undefined;
313
+ required?: boolean | undefined;
314
+ unique?: boolean | undefined;
315
+ default?: unknown;
316
+ label?: string | undefined;
317
+ }> | undefined;
318
+ protected?: boolean | "write" | "all" | undefined;
319
+ relations?: Record<string, {
320
+ type: "hasOne" | "hasMany" | "belongsToMany";
321
+ entity: string;
322
+ }> | undefined;
323
+ behaviors?: {
324
+ timestamps?: boolean | undefined;
325
+ softDelete?: boolean | undefined;
326
+ audit?: boolean | undefined;
327
+ } | undefined;
328
+ }, {
329
+ name: string;
330
+ fields?: Record<string, {
331
+ email?: boolean | undefined;
332
+ url?: boolean | undefined;
333
+ oneOf?: string[] | undefined;
334
+ min?: number | undefined;
335
+ max?: number | undefined;
336
+ integer?: boolean | undefined;
337
+ positive?: boolean | undefined;
338
+ type?: "number" | "boolean" | "text" | "date" | undefined;
339
+ required?: boolean | undefined;
340
+ unique?: boolean | undefined;
341
+ default?: unknown;
342
+ label?: string | undefined;
343
+ }> | undefined;
344
+ protected?: boolean | "write" | "all" | undefined;
345
+ relations?: Record<string, {
346
+ type: "hasOne" | "hasMany" | "belongsToMany";
347
+ entity: string;
348
+ }> | undefined;
349
+ behaviors?: {
350
+ timestamps?: boolean | undefined;
351
+ softDelete?: boolean | undefined;
352
+ audit?: boolean | undefined;
353
+ } | undefined;
354
+ }>;
355
+ execute: (params: {
356
+ name: string;
357
+ fields?: Record<string, Partial<import("zod").TypeOf<import("zod").ZodObject<{
358
+ type: import("zod").ZodEnum<["text", "number", "boolean", "date"]>;
359
+ required: import("zod").ZodOptional<import("zod").ZodBoolean>;
360
+ unique: import("zod").ZodOptional<import("zod").ZodBoolean>;
361
+ email: import("zod").ZodOptional<import("zod").ZodBoolean>;
362
+ url: import("zod").ZodOptional<import("zod").ZodBoolean>;
363
+ min: import("zod").ZodOptional<import("zod").ZodNumber>;
364
+ max: import("zod").ZodOptional<import("zod").ZodNumber>;
365
+ oneOf: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
366
+ integer: import("zod").ZodOptional<import("zod").ZodBoolean>;
367
+ positive: import("zod").ZodOptional<import("zod").ZodBoolean>;
368
+ default: import("zod").ZodOptional<import("zod").ZodUnknown>;
369
+ label: import("zod").ZodOptional<import("zod").ZodString>;
370
+ }, "strip", import("zod").ZodTypeAny, {
371
+ type: "number" | "boolean" | "text" | "date";
372
+ email?: boolean | undefined;
373
+ url?: boolean | undefined;
374
+ oneOf?: string[] | undefined;
375
+ min?: number | undefined;
376
+ max?: number | undefined;
377
+ integer?: boolean | undefined;
378
+ positive?: boolean | undefined;
379
+ required?: boolean | undefined;
380
+ unique?: boolean | undefined;
381
+ default?: unknown;
382
+ label?: string | undefined;
383
+ }, {
384
+ type: "number" | "boolean" | "text" | "date";
385
+ email?: boolean | undefined;
386
+ url?: boolean | undefined;
387
+ oneOf?: string[] | undefined;
388
+ min?: number | undefined;
389
+ max?: number | undefined;
390
+ integer?: boolean | undefined;
391
+ positive?: boolean | undefined;
392
+ required?: boolean | undefined;
393
+ unique?: boolean | undefined;
394
+ default?: unknown;
395
+ label?: string | undefined;
396
+ }>>>>;
397
+ relations?: Record<string, import("zod").TypeOf<import("zod").ZodObject<{
398
+ type: import("zod").ZodEnum<["hasOne", "hasMany", "belongsToMany"]>;
399
+ entity: import("zod").ZodString;
400
+ }, "strip", import("zod").ZodTypeAny, {
401
+ type: "hasOne" | "hasMany" | "belongsToMany";
402
+ entity: string;
403
+ }, {
404
+ type: "hasOne" | "hasMany" | "belongsToMany";
405
+ entity: string;
406
+ }>>>;
407
+ behaviors?: {
408
+ timestamps?: boolean;
409
+ softDelete?: boolean;
410
+ audit?: boolean;
411
+ };
412
+ protected?: boolean | "write" | "all";
413
+ }) => Promise<import("./types").ToolResult>;
414
+ };
415
+ remove_entity: {
416
+ description: string;
417
+ parameters: import("zod").ZodObject<{
418
+ name: import("zod").ZodString;
419
+ }, "strip", import("zod").ZodTypeAny, {
420
+ name: string;
421
+ }, {
422
+ name: string;
423
+ }>;
424
+ execute: (params: {
425
+ name: string;
426
+ }) => Promise<import("./types").ToolResult>;
427
+ };
428
+ set_database: {
429
+ description: string;
430
+ parameters: import("zod").ZodObject<{
431
+ type: import("zod").ZodEnum<["sqlite", "postgres", "mysql"]>;
432
+ file: import("zod").ZodOptional<import("zod").ZodString>;
433
+ url: import("zod").ZodOptional<import("zod").ZodString>;
434
+ }, "strip", import("zod").ZodTypeAny, {
435
+ type: "sqlite" | "postgres" | "mysql";
436
+ url?: string | undefined;
437
+ file?: string | undefined;
438
+ }, {
439
+ type: "sqlite" | "postgres" | "mysql";
440
+ url?: string | undefined;
441
+ file?: string | undefined;
442
+ }>;
443
+ execute: (params: {
444
+ type: "sqlite" | "postgres" | "mysql";
445
+ file?: string;
446
+ url?: string;
447
+ }) => Promise<import("./types").ToolResult>;
448
+ };
449
+ set_auth: {
450
+ description: string;
451
+ parameters: import("zod").ZodObject<{
452
+ enabled: import("zod").ZodBoolean;
453
+ providers: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodEnum<["credentials", "google", "github", "discord"]>, "many">>;
454
+ sessionStrategy: import("zod").ZodOptional<import("zod").ZodEnum<["jwt", "database"]>>;
455
+ }, "strip", import("zod").ZodTypeAny, {
456
+ enabled: boolean;
457
+ providers?: ("credentials" | "google" | "github" | "discord")[] | undefined;
458
+ sessionStrategy?: "database" | "jwt" | undefined;
459
+ }, {
460
+ enabled: boolean;
461
+ providers?: ("credentials" | "google" | "github" | "discord")[] | undefined;
462
+ sessionStrategy?: "database" | "jwt" | undefined;
463
+ }>;
464
+ execute: (params: {
465
+ enabled: boolean;
466
+ providers?: ("credentials" | "google" | "github" | "discord")[];
467
+ sessionStrategy?: "jwt" | "database";
468
+ }) => Promise<import("./types").ToolResult>;
469
+ };
470
+ validate: {
471
+ description: string;
472
+ parameters: import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>;
473
+ execute: () => Promise<{
474
+ success: boolean;
475
+ message: string;
476
+ errors: import("..").ValidationError[];
477
+ warnings: import("..").ValidationError[];
478
+ }>;
479
+ };
480
+ generate: {
481
+ description: string;
482
+ parameters: import("zod").ZodObject<{}, "strip", import("zod").ZodTypeAny, {}, {}>;
483
+ execute: () => Promise<{
484
+ success: boolean;
485
+ message: string;
486
+ files: string[];
487
+ errors: string[] | undefined;
488
+ }>;
489
+ };
490
+ };
491
+ };
492
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,YAAY,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,GACb,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAG/C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAGzC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAG1F,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAGtG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAMtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,OAAO;IAClB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;sBACe,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAEoG,CAAC;;;;;;;;;;yBAAqE,CAAC;8BAAc,CAAC;8BAAqB,CAAC;yBAAgB,CAAC;;yBAA6B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAA6xB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAA2E,CAAC;;;;;;;;;;yBAAqE,CAAC;8BAAc,CAAC;8BAAqB,CAAC;yBAAgB,CAAC;;yBAA6B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAu4B,CAAC;mBAAa,CAAC;;;;;;;;;;;;;;;;;;;;yBAAme,CAAC;+BAA6E,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CAD7uF,CAAA"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * AI Module
4
+ *
5
+ * Ready-to-use tool definitions for AI frameworks (OpenAI, Anthropic, Vercel AI SDK).
6
+ *
7
+ * @module ai
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // With Vercel AI SDK
12
+ * import { createManifestBuilder, aiTools } from 'archetype-engine/ai'
13
+ * import { generateText } from 'ai'
14
+ * import { openai } from '@ai-sdk/openai'
15
+ *
16
+ * const builder = createManifestBuilder()
17
+ *
18
+ * const result = await generateText({
19
+ * model: openai('gpt-4o'),
20
+ * tools: aiTools.vercel(builder),
21
+ * system: 'You are an app builder. Use the tools to build the app.',
22
+ * prompt: 'Create a blog with users and posts',
23
+ * maxSteps: 10
24
+ * })
25
+ *
26
+ * // After AI finishes calling tools, generate the app
27
+ * const { files, success } = await builder.generate()
28
+ * ```
29
+ */
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.aiTools = exports.getVercelAITools = exports.createAnthropicHandler = exports.executeAnthropicTool = exports.getAnthropicTools = exports.createOpenAIHandler = exports.executeOpenAITool = exports.getOpenAITools = exports.toolDefinitions = exports.createManifestBuilder = void 0;
32
+ // State
33
+ var state_1 = require("./state");
34
+ Object.defineProperty(exports, "createManifestBuilder", { enumerable: true, get: function () { return state_1.createManifestBuilder; } });
35
+ // Tool definitions
36
+ var tools_1 = require("./tools");
37
+ Object.defineProperty(exports, "toolDefinitions", { enumerable: true, get: function () { return tools_1.toolDefinitions; } });
38
+ // OpenAI adapter
39
+ var openai_1 = require("./adapters/openai");
40
+ Object.defineProperty(exports, "getOpenAITools", { enumerable: true, get: function () { return openai_1.getOpenAITools; } });
41
+ Object.defineProperty(exports, "executeOpenAITool", { enumerable: true, get: function () { return openai_1.executeOpenAITool; } });
42
+ Object.defineProperty(exports, "createOpenAIHandler", { enumerable: true, get: function () { return openai_1.createOpenAIHandler; } });
43
+ // Anthropic adapter
44
+ var anthropic_1 = require("./adapters/anthropic");
45
+ Object.defineProperty(exports, "getAnthropicTools", { enumerable: true, get: function () { return anthropic_1.getAnthropicTools; } });
46
+ Object.defineProperty(exports, "executeAnthropicTool", { enumerable: true, get: function () { return anthropic_1.executeAnthropicTool; } });
47
+ Object.defineProperty(exports, "createAnthropicHandler", { enumerable: true, get: function () { return anthropic_1.createAnthropicHandler; } });
48
+ // Vercel AI SDK adapter
49
+ var vercel_1 = require("./adapters/vercel");
50
+ Object.defineProperty(exports, "getVercelAITools", { enumerable: true, get: function () { return vercel_1.getVercelAITools; } });
51
+ // Import for aiTools convenience object
52
+ const openai_2 = require("./adapters/openai");
53
+ const anthropic_2 = require("./adapters/anthropic");
54
+ const vercel_2 = require("./adapters/vercel");
55
+ /**
56
+ * Convenience object for getting tools in different formats
57
+ */
58
+ exports.aiTools = {
59
+ /**
60
+ * Get tools for OpenAI function calling
61
+ */
62
+ openai: () => (0, openai_2.getOpenAITools)(),
63
+ /**
64
+ * Get tools for Anthropic tool use
65
+ */
66
+ anthropic: () => (0, anthropic_2.getAnthropicTools)(),
67
+ /**
68
+ * Get tools for Vercel AI SDK (requires builder instance)
69
+ */
70
+ vercel: (builder) => (0, vercel_2.getVercelAITools)(builder),
71
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ManifestBuilder - State manager for AI tool calls
3
+ *
4
+ * Tracks the manifest being built across multiple AI tool calls.
5
+ *
6
+ * @module ai/state
7
+ */
8
+ import type { ManifestBuilder as IManifestBuilder } from './types';
9
+ /**
10
+ * Create a new ManifestBuilder instance
11
+ */
12
+ export declare function createManifestBuilder(): IManifestBuilder;
13
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/ai/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,eAAe,IAAI,gBAAgB,EAOpC,MAAM,SAAS,CAAA;AAKhB;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,gBAAgB,CAyOxD"}