@autobe/agent 0.27.0 → 0.28.1

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 (109) hide show
  1. package/lib/constants/AutoBeSystemPromptConstant.d.ts +1 -1
  2. package/lib/context/assertSchemaModel.d.ts +1 -1
  3. package/lib/context/assertSchemaModel.js +4 -7
  4. package/lib/context/assertSchemaModel.js.map +1 -1
  5. package/lib/index.mjs +18186 -7689
  6. package/lib/index.mjs.map +1 -1
  7. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +1 -1
  8. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  9. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js +164 -86
  10. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
  11. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +656 -335
  12. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  13. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +143 -74
  14. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
  15. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +17 -52
  16. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +25 -22
  17. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +7 -23
  18. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +165 -2
  19. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
  20. package/lib/orchestrate/facade/createAutoBeFacadeController.js +773 -403
  21. package/lib/orchestrate/facade/createAutoBeFacadeController.js.map +1 -1
  22. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +749 -2
  23. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  24. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +1637 -9
  25. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  26. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +252 -133
  27. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  28. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +258 -135
  29. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +1 -1
  30. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +342 -226
  31. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  32. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +633 -1
  33. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  34. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +785 -3
  35. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  36. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +206 -3
  37. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +1 -1
  38. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +107 -1
  39. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js.map +1 -1
  40. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1676 -9
  41. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  42. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +1637 -9
  43. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  44. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +397 -201
  45. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  46. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1184 -599
  47. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  48. package/lib/orchestrate/prisma/orchestratePrismaReview.js +1202 -608
  49. package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
  50. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +4 -2
  51. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -1
  52. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +369 -185
  53. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  54. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +405 -203
  55. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
  56. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +130 -2
  57. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  58. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js +165 -2
  59. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js.map +1 -1
  60. package/lib/orchestrate/realize/orchestrateRealizeWrite.js +130 -2
  61. package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
  62. package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -1
  63. package/lib/orchestrate/test/orchestrateTestCorrect.js +131 -2
  64. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  65. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +166 -2
  66. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
  67. package/lib/orchestrate/test/orchestrateTestScenario.js +257 -3
  68. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  69. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +283 -3
  70. package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
  71. package/lib/orchestrate/test/orchestrateTestWrite.js +139 -2
  72. package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  73. package/package.json +9 -9
  74. package/src/constants/AutoBeSystemPromptConstant.ts +1 -1
  75. package/src/context/assertSchemaModel.ts +5 -8
  76. package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +7 -9
  77. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +13 -9
  78. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +7 -9
  79. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +19 -54
  80. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +25 -22
  81. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.ts +8 -24
  82. package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +15 -1
  83. package/src/orchestrate/facade/createAutoBeFacadeController.ts +7 -6
  84. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +11 -1
  85. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +11 -1
  86. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +13 -9
  87. package/src/orchestrate/interface/orchestrateInterfaceEndpointsReview.ts +13 -9
  88. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +17 -14
  89. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +11 -1
  90. package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +14 -1
  91. package/src/orchestrate/interface/orchestrateInterfacePrerequisites.ts +11 -1
  92. package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +9 -1
  93. package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +14 -1
  94. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +11 -1
  95. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +13 -9
  96. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +7 -9
  97. package/src/orchestrate/prisma/orchestratePrismaReview.ts +7 -10
  98. package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +13 -9
  99. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +13 -9
  100. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +11 -1
  101. package/src/orchestrate/realize/orchestrateRealizeCorrectCasting.ts +15 -1
  102. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +11 -1
  103. package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +5 -1
  104. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +1 -1
  105. package/src/orchestrate/test/orchestrateTestCorrect.ts +11 -1
  106. package/src/orchestrate/test/orchestrateTestCorrectInvalidRequest.ts +18 -1
  107. package/src/orchestrate/test/orchestrateTestScenario.ts +11 -1
  108. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +11 -1
  109. package/src/orchestrate/test/orchestrateTestWrite.ts +11 -1
@@ -92,7 +92,11 @@ function orchestratePrismaComponents(ctx_1, instruction_1) {
92
92
  }
93
93
  function createController(props) {
94
94
  (0, assertSchemaModel_1.assertSchemaModel)(props.model);
95
- const application = collection[props.model];
95
+ const application = collection[props.model === "chatgpt"
96
+ ? "chatgpt"
97
+ : props.model === "gemini"
98
+ ? "gemini"
99
+ : "claude"];
96
100
  return {
97
101
  protocol: "class",
98
102
  name: "Prisma Extract Files and Tables",
@@ -104,202 +108,6 @@ function createController(props) {
104
108
  },
105
109
  };
106
110
  }
107
- const claude = {
108
- model: "claude",
109
- options: {
110
- reference: true,
111
- separate: null
112
- },
113
- functions: [
114
- {
115
- name: "extractComponents",
116
- parameters: {
117
- description: "Current Type: {@link IAutoBePrismaComponentApplication.IProps}",
118
- type: "object",
119
- properties: {
120
- thinking: {
121
- description: "Initial thoughts on namespace classification criteria.\n\nContains the AI agent's initial analysis and reasoning about how to\norganize tables into different business domains/namespaces.\n\n**Example:**\n\n \"Based on the business requirements, I identify several key domains:\n - User-related entities should be grouped under 'Actors' namespace\n - Product and sales information under 'Sales' namespace\n - System configuration under 'Systematic' namespace\"",
122
- type: "string"
123
- },
124
- review: {
125
- description: "Review and refinement of the namespace classification.\n\nContains the AI agent's review process, considering relationships between\ntables and potential improvements to the initial classification.\n\n**Example:**\n\n \"Upon review, I noticed that 'shopping_channel_categories' has strong\n relationships with both channels and sales. However, since it primarily\n defines the channel structure, it should remain in 'Systematic' namespace.\"",
126
- type: "string"
127
- },
128
- decision: {
129
- description: "Final decision on namespace classification.\n\nContains the AI agent's final reasoning and rationale for the chosen\nnamespace organization, explaining why this structure best serves the\nbusiness requirements.\n\n**Example:**\n\n \"Final decision: Organize tables into 3 main namespaces:\n 1. Systematic - for channel and system configuration\n 2. Actors - for all user types (customers, citizens, administrators)\n 3. Sales - for product sales and related transactional data\n This structure provides clear separation of concerns and follows DDD principles.\"",
130
- type: "string"
131
- },
132
- components: {
133
- description: "Array of domain components that group related database tables.\n\nEach component represents a business domain and becomes one Prisma schema\nfile. Common domains include: Actors (users), Sales (products), Orders,\nCarts, etc.\n\n**Example:**\n\n```typescript\n{\n \"components\": [\n {\n \"filename\": \"schema-02-systematic.prisma\",\n \"namespace\": \"Systematic\",\n \"thinking\": \"These tables all relate to system configuration and channel management. They form the foundation of the platform.\",\n \"review\": \"Considering the relationships, shopping_channel_categories connects channels and sales, but it fundamentally defines channel structure.\",\n \"rationale\": \"Grouping all system configuration tables together provides a clear foundation layer that other domains can reference.\",\n \"tables\": [\n \"shopping_channels\",\n \"shopping_sections\",\n \"shopping_channel_categories\"\n ]\n },\n {\n \"filename\": \"schema-03-actors.prisma\",\n \"namespace\": \"Actors\",\n \"thinking\": \"All user-related entities should be grouped together as they share authentication and identity patterns.\",\n \"review\": \"While customers interact with sales, the customer entity itself is about identity, not transactions.\",\n \"rationale\": \"This component groups all actor-related tables to maintain separation between identity management and business transactions.\",\n \"tables\": [\n \"shopping_customers\",\n \"shopping_citizens\",\n \"shopping_administrators\"\n ]\n },\n {\n \"filename\": \"schema-04-sales.prisma\",\n \"namespace\": \"Sales\",\n \"thinking\": \"Product catalog and sales-related tables belong together as they form the core commerce functionality.\",\n \"review\": \"Sales snapshots are integral to the sales domain for tracking product history and price changes.\",\n \"rationale\": \"Consolidating all sales-related tables enables coherent management of the entire product lifecycle.\",\n \"tables\": [\n \"shopping_sales\",\n \"shopping_sale_snapshots\",\n \"shopping_sale_units\",\n \"shopping_sale_unit_options\"\n ]\n }\n ]\n}\n```\n\n**Notes:**\n\n- Table names must follow snake_case convention with domain prefix (e.g.,\n `shopping_customers`)\n- Each component becomes one `.prisma` file containing related models\n- Filename numbering indicates dependency order for schema generation\n- Namespace is used for documentation organization and domain grouping",
134
- type: "array",
135
- items: {
136
- $ref: "#/$defs/AutoBePrisma.IComponent"
137
- },
138
- minItems: 1
139
- }
140
- },
141
- required: [
142
- "thinking",
143
- "review",
144
- "decision",
145
- "components"
146
- ],
147
- additionalProperties: false,
148
- $defs: {
149
- "AutoBePrisma.IComponent": {
150
- description: "Interface representing a logical grouping of database tables organized by\nbusiness domain for schema file generation.\n\nComponents provide a systematic way to organize database tables into\ncoherent groups following domain-driven design principles. Each component\nrepresents a specific business domain or functional area that will be\ngenerated as a separate Prisma schema file, ensuring maintainable and\nlogically structured database architecture.\n\nThis interface is primarily used during the database design phase when the\nPrisma agent analyzes requirements and determines the complete scope of\ntables needed, then organizes them into logical groups based on business\nrelationships and functional dependencies.\n\n## Usage in Schema Generation Process\n\nComponents serve as the blueprint for generating multiple Prisma schema\nfiles:\n\n1. **Requirements Analysis**: AI agent identifies all required tables from\n business requirements\n2. **Domain Grouping**: Tables are organized into components based on business\n domains and functional relationships\n3. **File Generation**: Each component becomes a separate .prisma file\n containing related models\n4. **Dependency Management**: Components are ordered to handle cross-domain\n relationships properly\n\n## Domain Organization Examples\n\nBased on typical business applications, components commonly include:\n\n- **Systematic**: Core system tables (channels, sections, configurations)\n- **Actors**: User management (customers, citizens, administrators)\n- **Sales**: Product catalog and sales entities\n- **Carts**: Shopping cart and item management\n- **Orders**: Order processing and fulfillment\n- **Coupons**: Discount and promotion systems\n- **Coins**: Digital currency and mileage systems\n- **Inquiries**: Customer support and FAQ systems\n- **Favorites**: User preference and wishlist management\n- **Articles**: Content management and BBS systems\n\n## Relationship to {@link AutoBePrisma.IFile}\n\nEach IComponent serves as a blueprint for generating one IFile during the\nschema generation process. The component's metadata (filename, namespace,\ntables) is used to structure the actual Prisma schema file with proper\nmodels, relationships, and indexes.",
151
- type: "object",
152
- properties: {
153
- filename: {
154
- description: "Target filename for the Prisma schema file containing this component's\ntables.\n\nFollows the naming convention `schema-{number}-{domain}.prisma` where the\nnumber indicates dependency order and domain represents the business\narea.",
155
- type: "string",
156
- pattern: "^[a-zA-Z0-9._-]+\\.prisma$"
157
- },
158
- namespace: {
159
- description: "Business domain namespace that groups related models.\n\nUsed in Prisma documentation comments as \"@\\namespace directive\".\nExamples from uploaded schemas: \"Systematic\", \"Actors\", \"Sales\", \"Carts\",\n\"Orders\", \"Coupons\", \"Coins\", \"Inquiries\", \"Favorites\", \"Articles\"",
160
- type: "string"
161
- },
162
- thinking: {
163
- description: "Initial thoughts on why these tables belong together.\n\n**Example:**\n\n \"These tables all relate to user management and authentication.\n They share common patterns like user identification and access control.\"",
164
- type: "string"
165
- },
166
- review: {
167
- description: "Review considerations for this component grouping.\n\n**Example:**\n\n \"Reviewed relationships with other domains. While customers create orders,\n the customer entity itself is fundamentally about user identity, not sales.\"",
168
- type: "string"
169
- },
170
- rationale: {
171
- description: "Final rationale for this component's composition.\n\n**Example:**\n\n \"This component groups all actor-related tables to maintain a clear\n separation between identity management and business transactions.\"",
172
- type: "string"
173
- },
174
- tables: {
175
- description: "Array of table names that will be included in this component's schema\nfile.\n\nContains all database table names that belong to this business domain,\nensuring logical grouping and proper organization of related data\nstructures.",
176
- type: "array",
177
- items: {
178
- type: "string",
179
- pattern: "^[a-z][a-z0-9_]*$"
180
- },
181
- minItems: 1
182
- }
183
- },
184
- required: [
185
- "filename",
186
- "namespace",
187
- "thinking",
188
- "review",
189
- "rationale",
190
- "tables"
191
- ]
192
- }
193
- }
194
- },
195
- description: "Organizes database tables into domain-based components for Prisma schema\ngeneration.\n\nTakes business requirements and groups related tables into logical domains,\nwith each component becoming a separate .prisma file.",
196
- validate: (() => { const _io0 = input => "string" === typeof input.thinking && "string" === typeof input.review && "string" === typeof input.decision && (Array.isArray(input.components) && (1 <= input.components.length && input.components.every(elem => "object" === typeof elem && null !== elem && _io1(elem)))); const _io1 = input => "string" === typeof input.filename && RegExp("^[a-zA-Z0-9._-]+\\.prisma$").test(input.filename) && "string" === typeof input.namespace && "string" === typeof input.thinking && "string" === typeof input.review && "string" === typeof input.rationale && (Array.isArray(input.tables) && (1 <= input.tables.length && input.tables.every(elem => "string" === typeof elem && RegExp("^[a-z][a-z0-9_]*$").test(elem)))); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
197
- path: _path + ".thinking",
198
- expected: "string",
199
- value: input.thinking
200
- }), "string" === typeof input.review || _report(_exceptionable, {
201
- path: _path + ".review",
202
- expected: "string",
203
- value: input.review
204
- }), "string" === typeof input.decision || _report(_exceptionable, {
205
- path: _path + ".decision",
206
- expected: "string",
207
- value: input.decision
208
- }), (Array.isArray(input.components) || _report(_exceptionable, {
209
- path: _path + ".components",
210
- expected: "(Array<AutoBePrisma.IComponent> & MinItems<1>)",
211
- value: input.components
212
- })) && ((1 <= input.components.length || _report(_exceptionable, {
213
- path: _path + ".components",
214
- expected: "Array<> & MinItems<1>",
215
- value: input.components
216
- })) && input.components.map((elem, _index3) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
217
- path: _path + ".components[" + _index3 + "]",
218
- expected: "AutoBePrisma.IComponent",
219
- value: elem
220
- })) && _vo1(elem, _path + ".components[" + _index3 + "]", true && _exceptionable) || _report(_exceptionable, {
221
- path: _path + ".components[" + _index3 + "]",
222
- expected: "AutoBePrisma.IComponent",
223
- value: elem
224
- })).every(flag => flag)) || _report(_exceptionable, {
225
- path: _path + ".components",
226
- expected: "(Array<AutoBePrisma.IComponent> & MinItems<1>)",
227
- value: input.components
228
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.filename && (RegExp("^[a-zA-Z0-9._-]+\\.prisma$").test(input.filename) || _report(_exceptionable, {
229
- path: _path + ".filename",
230
- expected: "string & Pattern<\"^[a-zA-Z0-9._-]+\\\\.prisma$\">",
231
- value: input.filename
232
- })) || _report(_exceptionable, {
233
- path: _path + ".filename",
234
- expected: "(string & Pattern<\"^[a-zA-Z0-9._-]+\\\\.prisma$\">)",
235
- value: input.filename
236
- }), "string" === typeof input.namespace || _report(_exceptionable, {
237
- path: _path + ".namespace",
238
- expected: "string",
239
- value: input.namespace
240
- }), "string" === typeof input.thinking || _report(_exceptionable, {
241
- path: _path + ".thinking",
242
- expected: "string",
243
- value: input.thinking
244
- }), "string" === typeof input.review || _report(_exceptionable, {
245
- path: _path + ".review",
246
- expected: "string",
247
- value: input.review
248
- }), "string" === typeof input.rationale || _report(_exceptionable, {
249
- path: _path + ".rationale",
250
- expected: "string",
251
- value: input.rationale
252
- }), (Array.isArray(input.tables) || _report(_exceptionable, {
253
- path: _path + ".tables",
254
- expected: "(Array<string & SnakeCasePattern> & MinItems<1>)",
255
- value: input.tables
256
- })) && ((1 <= input.tables.length || _report(_exceptionable, {
257
- path: _path + ".tables",
258
- expected: "Array<> & MinItems<1>",
259
- value: input.tables
260
- })) && input.tables.map((elem, _index4) => "string" === typeof elem && (RegExp("^[a-z][a-z0-9_]*$").test(elem) || _report(_exceptionable, {
261
- path: _path + ".tables[" + _index4 + "]",
262
- expected: "string & SnakeCasePattern",
263
- value: elem
264
- })) || _report(_exceptionable, {
265
- path: _path + ".tables[" + _index4 + "]",
266
- expected: "(string & SnakeCasePattern)",
267
- value: elem
268
- })).every(flag => flag)) || _report(_exceptionable, {
269
- path: _path + ".tables",
270
- expected: "(Array<string & SnakeCasePattern> & MinItems<1>)",
271
- value: input.tables
272
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
273
- if (false === __is(input)) {
274
- errors = [];
275
- _report = __typia_transform__validateReport._validateReport(errors);
276
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
277
- path: _path + "",
278
- expected: "IAutoBePrismaComponentApplication.IProps",
279
- value: input
280
- })) && _vo0(input, _path + "", true) || _report(true, {
281
- path: _path + "",
282
- expected: "IAutoBePrismaComponentApplication.IProps",
283
- value: input
284
- }))(input, "$input", true);
285
- const success = 0 === errors.length;
286
- return success ? {
287
- success,
288
- data: input
289
- } : {
290
- success,
291
- errors,
292
- data: input
293
- };
294
- }
295
- return {
296
- success: true,
297
- data: input
298
- };
299
- }; })()
300
- }
301
- ]
302
- };
303
111
  const collection = {
304
112
  chatgpt: {
305
113
  model: "chatgpt",
@@ -495,9 +303,397 @@ const collection = {
495
303
  }
496
304
  ]
497
305
  },
498
- claude,
499
- llama: claude,
500
- deepseek: claude,
501
- "3.1": claude,
306
+ claude: {
307
+ model: "claude",
308
+ options: {
309
+ reference: true,
310
+ separate: null
311
+ },
312
+ functions: [
313
+ {
314
+ name: "extractComponents",
315
+ parameters: {
316
+ description: "Current Type: {@link IAutoBePrismaComponentApplication.IProps}",
317
+ type: "object",
318
+ properties: {
319
+ thinking: {
320
+ description: "Initial thoughts on namespace classification criteria.\n\nContains the AI agent's initial analysis and reasoning about how to\norganize tables into different business domains/namespaces.\n\n**Example:**\n\n \"Based on the business requirements, I identify several key domains:\n - User-related entities should be grouped under 'Actors' namespace\n - Product and sales information under 'Sales' namespace\n - System configuration under 'Systematic' namespace\"",
321
+ type: "string"
322
+ },
323
+ review: {
324
+ description: "Review and refinement of the namespace classification.\n\nContains the AI agent's review process, considering relationships between\ntables and potential improvements to the initial classification.\n\n**Example:**\n\n \"Upon review, I noticed that 'shopping_channel_categories' has strong\n relationships with both channels and sales. However, since it primarily\n defines the channel structure, it should remain in 'Systematic' namespace.\"",
325
+ type: "string"
326
+ },
327
+ decision: {
328
+ description: "Final decision on namespace classification.\n\nContains the AI agent's final reasoning and rationale for the chosen\nnamespace organization, explaining why this structure best serves the\nbusiness requirements.\n\n**Example:**\n\n \"Final decision: Organize tables into 3 main namespaces:\n 1. Systematic - for channel and system configuration\n 2. Actors - for all user types (customers, citizens, administrators)\n 3. Sales - for product sales and related transactional data\n This structure provides clear separation of concerns and follows DDD principles.\"",
329
+ type: "string"
330
+ },
331
+ components: {
332
+ description: "Array of domain components that group related database tables.\n\nEach component represents a business domain and becomes one Prisma schema\nfile. Common domains include: Actors (users), Sales (products), Orders,\nCarts, etc.\n\n**Example:**\n\n```typescript\n{\n \"components\": [\n {\n \"filename\": \"schema-02-systematic.prisma\",\n \"namespace\": \"Systematic\",\n \"thinking\": \"These tables all relate to system configuration and channel management. They form the foundation of the platform.\",\n \"review\": \"Considering the relationships, shopping_channel_categories connects channels and sales, but it fundamentally defines channel structure.\",\n \"rationale\": \"Grouping all system configuration tables together provides a clear foundation layer that other domains can reference.\",\n \"tables\": [\n \"shopping_channels\",\n \"shopping_sections\",\n \"shopping_channel_categories\"\n ]\n },\n {\n \"filename\": \"schema-03-actors.prisma\",\n \"namespace\": \"Actors\",\n \"thinking\": \"All user-related entities should be grouped together as they share authentication and identity patterns.\",\n \"review\": \"While customers interact with sales, the customer entity itself is about identity, not transactions.\",\n \"rationale\": \"This component groups all actor-related tables to maintain separation between identity management and business transactions.\",\n \"tables\": [\n \"shopping_customers\",\n \"shopping_citizens\",\n \"shopping_administrators\"\n ]\n },\n {\n \"filename\": \"schema-04-sales.prisma\",\n \"namespace\": \"Sales\",\n \"thinking\": \"Product catalog and sales-related tables belong together as they form the core commerce functionality.\",\n \"review\": \"Sales snapshots are integral to the sales domain for tracking product history and price changes.\",\n \"rationale\": \"Consolidating all sales-related tables enables coherent management of the entire product lifecycle.\",\n \"tables\": [\n \"shopping_sales\",\n \"shopping_sale_snapshots\",\n \"shopping_sale_units\",\n \"shopping_sale_unit_options\"\n ]\n }\n ]\n}\n```\n\n**Notes:**\n\n- Table names must follow snake_case convention with domain prefix (e.g.,\n `shopping_customers`)\n- Each component becomes one `.prisma` file containing related models\n- Filename numbering indicates dependency order for schema generation\n- Namespace is used for documentation organization and domain grouping",
333
+ type: "array",
334
+ items: {
335
+ $ref: "#/$defs/AutoBePrisma.IComponent"
336
+ },
337
+ minItems: 1
338
+ }
339
+ },
340
+ required: [
341
+ "thinking",
342
+ "review",
343
+ "decision",
344
+ "components"
345
+ ],
346
+ additionalProperties: false,
347
+ $defs: {
348
+ "AutoBePrisma.IComponent": {
349
+ description: "Interface representing a logical grouping of database tables organized by\nbusiness domain for schema file generation.\n\nComponents provide a systematic way to organize database tables into\ncoherent groups following domain-driven design principles. Each component\nrepresents a specific business domain or functional area that will be\ngenerated as a separate Prisma schema file, ensuring maintainable and\nlogically structured database architecture.\n\nThis interface is primarily used during the database design phase when the\nPrisma agent analyzes requirements and determines the complete scope of\ntables needed, then organizes them into logical groups based on business\nrelationships and functional dependencies.\n\n## Usage in Schema Generation Process\n\nComponents serve as the blueprint for generating multiple Prisma schema\nfiles:\n\n1. **Requirements Analysis**: AI agent identifies all required tables from\n business requirements\n2. **Domain Grouping**: Tables are organized into components based on business\n domains and functional relationships\n3. **File Generation**: Each component becomes a separate .prisma file\n containing related models\n4. **Dependency Management**: Components are ordered to handle cross-domain\n relationships properly\n\n## Domain Organization Examples\n\nBased on typical business applications, components commonly include:\n\n- **Systematic**: Core system tables (channels, sections, configurations)\n- **Actors**: User management (customers, citizens, administrators)\n- **Sales**: Product catalog and sales entities\n- **Carts**: Shopping cart and item management\n- **Orders**: Order processing and fulfillment\n- **Coupons**: Discount and promotion systems\n- **Coins**: Digital currency and mileage systems\n- **Inquiries**: Customer support and FAQ systems\n- **Favorites**: User preference and wishlist management\n- **Articles**: Content management and BBS systems\n\n## Relationship to {@link AutoBePrisma.IFile}\n\nEach IComponent serves as a blueprint for generating one IFile during the\nschema generation process. The component's metadata (filename, namespace,\ntables) is used to structure the actual Prisma schema file with proper\nmodels, relationships, and indexes.",
350
+ type: "object",
351
+ properties: {
352
+ filename: {
353
+ description: "Target filename for the Prisma schema file containing this component's\ntables.\n\nFollows the naming convention `schema-{number}-{domain}.prisma` where the\nnumber indicates dependency order and domain represents the business\narea.",
354
+ type: "string",
355
+ pattern: "^[a-zA-Z0-9._-]+\\.prisma$"
356
+ },
357
+ namespace: {
358
+ description: "Business domain namespace that groups related models.\n\nUsed in Prisma documentation comments as \"@\\namespace directive\".\nExamples from uploaded schemas: \"Systematic\", \"Actors\", \"Sales\", \"Carts\",\n\"Orders\", \"Coupons\", \"Coins\", \"Inquiries\", \"Favorites\", \"Articles\"",
359
+ type: "string"
360
+ },
361
+ thinking: {
362
+ description: "Initial thoughts on why these tables belong together.\n\n**Example:**\n\n \"These tables all relate to user management and authentication.\n They share common patterns like user identification and access control.\"",
363
+ type: "string"
364
+ },
365
+ review: {
366
+ description: "Review considerations for this component grouping.\n\n**Example:**\n\n \"Reviewed relationships with other domains. While customers create orders,\n the customer entity itself is fundamentally about user identity, not sales.\"",
367
+ type: "string"
368
+ },
369
+ rationale: {
370
+ description: "Final rationale for this component's composition.\n\n**Example:**\n\n \"This component groups all actor-related tables to maintain a clear\n separation between identity management and business transactions.\"",
371
+ type: "string"
372
+ },
373
+ tables: {
374
+ description: "Array of table names that will be included in this component's schema\nfile.\n\nContains all database table names that belong to this business domain,\nensuring logical grouping and proper organization of related data\nstructures.",
375
+ type: "array",
376
+ items: {
377
+ type: "string",
378
+ pattern: "^[a-z][a-z0-9_]*$"
379
+ },
380
+ minItems: 1
381
+ }
382
+ },
383
+ required: [
384
+ "filename",
385
+ "namespace",
386
+ "thinking",
387
+ "review",
388
+ "rationale",
389
+ "tables"
390
+ ]
391
+ }
392
+ }
393
+ },
394
+ description: "Organizes database tables into domain-based components for Prisma schema\ngeneration.\n\nTakes business requirements and groups related tables into logical domains,\nwith each component becoming a separate .prisma file.",
395
+ validate: (() => { const _io0 = input => "string" === typeof input.thinking && "string" === typeof input.review && "string" === typeof input.decision && (Array.isArray(input.components) && (1 <= input.components.length && input.components.every(elem => "object" === typeof elem && null !== elem && _io1(elem)))); const _io1 = input => "string" === typeof input.filename && RegExp("^[a-zA-Z0-9._-]+\\.prisma$").test(input.filename) && "string" === typeof input.namespace && "string" === typeof input.thinking && "string" === typeof input.review && "string" === typeof input.rationale && (Array.isArray(input.tables) && (1 <= input.tables.length && input.tables.every(elem => "string" === typeof elem && RegExp("^[a-z][a-z0-9_]*$").test(elem)))); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
396
+ path: _path + ".thinking",
397
+ expected: "string",
398
+ value: input.thinking
399
+ }), "string" === typeof input.review || _report(_exceptionable, {
400
+ path: _path + ".review",
401
+ expected: "string",
402
+ value: input.review
403
+ }), "string" === typeof input.decision || _report(_exceptionable, {
404
+ path: _path + ".decision",
405
+ expected: "string",
406
+ value: input.decision
407
+ }), (Array.isArray(input.components) || _report(_exceptionable, {
408
+ path: _path + ".components",
409
+ expected: "(Array<AutoBePrisma.IComponent> & MinItems<1>)",
410
+ value: input.components
411
+ })) && ((1 <= input.components.length || _report(_exceptionable, {
412
+ path: _path + ".components",
413
+ expected: "Array<> & MinItems<1>",
414
+ value: input.components
415
+ })) && input.components.map((elem, _index3) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
416
+ path: _path + ".components[" + _index3 + "]",
417
+ expected: "AutoBePrisma.IComponent",
418
+ value: elem
419
+ })) && _vo1(elem, _path + ".components[" + _index3 + "]", true && _exceptionable) || _report(_exceptionable, {
420
+ path: _path + ".components[" + _index3 + "]",
421
+ expected: "AutoBePrisma.IComponent",
422
+ value: elem
423
+ })).every(flag => flag)) || _report(_exceptionable, {
424
+ path: _path + ".components",
425
+ expected: "(Array<AutoBePrisma.IComponent> & MinItems<1>)",
426
+ value: input.components
427
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.filename && (RegExp("^[a-zA-Z0-9._-]+\\.prisma$").test(input.filename) || _report(_exceptionable, {
428
+ path: _path + ".filename",
429
+ expected: "string & Pattern<\"^[a-zA-Z0-9._-]+\\\\.prisma$\">",
430
+ value: input.filename
431
+ })) || _report(_exceptionable, {
432
+ path: _path + ".filename",
433
+ expected: "(string & Pattern<\"^[a-zA-Z0-9._-]+\\\\.prisma$\">)",
434
+ value: input.filename
435
+ }), "string" === typeof input.namespace || _report(_exceptionable, {
436
+ path: _path + ".namespace",
437
+ expected: "string",
438
+ value: input.namespace
439
+ }), "string" === typeof input.thinking || _report(_exceptionable, {
440
+ path: _path + ".thinking",
441
+ expected: "string",
442
+ value: input.thinking
443
+ }), "string" === typeof input.review || _report(_exceptionable, {
444
+ path: _path + ".review",
445
+ expected: "string",
446
+ value: input.review
447
+ }), "string" === typeof input.rationale || _report(_exceptionable, {
448
+ path: _path + ".rationale",
449
+ expected: "string",
450
+ value: input.rationale
451
+ }), (Array.isArray(input.tables) || _report(_exceptionable, {
452
+ path: _path + ".tables",
453
+ expected: "(Array<string & SnakeCasePattern> & MinItems<1>)",
454
+ value: input.tables
455
+ })) && ((1 <= input.tables.length || _report(_exceptionable, {
456
+ path: _path + ".tables",
457
+ expected: "Array<> & MinItems<1>",
458
+ value: input.tables
459
+ })) && input.tables.map((elem, _index4) => "string" === typeof elem && (RegExp("^[a-z][a-z0-9_]*$").test(elem) || _report(_exceptionable, {
460
+ path: _path + ".tables[" + _index4 + "]",
461
+ expected: "string & SnakeCasePattern",
462
+ value: elem
463
+ })) || _report(_exceptionable, {
464
+ path: _path + ".tables[" + _index4 + "]",
465
+ expected: "(string & SnakeCasePattern)",
466
+ value: elem
467
+ })).every(flag => flag)) || _report(_exceptionable, {
468
+ path: _path + ".tables",
469
+ expected: "(Array<string & SnakeCasePattern> & MinItems<1>)",
470
+ value: input.tables
471
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
472
+ if (false === __is(input)) {
473
+ errors = [];
474
+ _report = __typia_transform__validateReport._validateReport(errors);
475
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
476
+ path: _path + "",
477
+ expected: "IAutoBePrismaComponentApplication.IProps",
478
+ value: input
479
+ })) && _vo0(input, _path + "", true) || _report(true, {
480
+ path: _path + "",
481
+ expected: "IAutoBePrismaComponentApplication.IProps",
482
+ value: input
483
+ }))(input, "$input", true);
484
+ const success = 0 === errors.length;
485
+ return success ? {
486
+ success,
487
+ data: input
488
+ } : {
489
+ success,
490
+ errors,
491
+ data: input
492
+ };
493
+ }
494
+ return {
495
+ success: true,
496
+ data: input
497
+ };
498
+ }; })()
499
+ }
500
+ ]
501
+ },
502
+ gemini: {
503
+ model: "gemini",
504
+ options: {
505
+ reference: true,
506
+ separate: null
507
+ },
508
+ functions: [
509
+ {
510
+ name: "extractComponents",
511
+ parameters: {
512
+ description: "Current Type: {@link IAutoBePrismaComponentApplication.IProps}",
513
+ type: "object",
514
+ properties: {
515
+ thinking: {
516
+ description: "Initial thoughts on namespace classification criteria.\n\nContains the AI agent's initial analysis and reasoning about how to\norganize tables into different business domains/namespaces.\n\n**Example:**\n\n \"Based on the business requirements, I identify several key domains:\n - User-related entities should be grouped under 'Actors' namespace\n - Product and sales information under 'Sales' namespace\n - System configuration under 'Systematic' namespace\"",
517
+ type: "string"
518
+ },
519
+ review: {
520
+ description: "Review and refinement of the namespace classification.\n\nContains the AI agent's review process, considering relationships between\ntables and potential improvements to the initial classification.\n\n**Example:**\n\n \"Upon review, I noticed that 'shopping_channel_categories' has strong\n relationships with both channels and sales. However, since it primarily\n defines the channel structure, it should remain in 'Systematic' namespace.\"",
521
+ type: "string"
522
+ },
523
+ decision: {
524
+ description: "Final decision on namespace classification.\n\nContains the AI agent's final reasoning and rationale for the chosen\nnamespace organization, explaining why this structure best serves the\nbusiness requirements.\n\n**Example:**\n\n \"Final decision: Organize tables into 3 main namespaces:\n 1. Systematic - for channel and system configuration\n 2. Actors - for all user types (customers, citizens, administrators)\n 3. Sales - for product sales and related transactional data\n This structure provides clear separation of concerns and follows DDD principles.\"",
525
+ type: "string"
526
+ },
527
+ components: {
528
+ description: "Array of domain components that group related database tables.\n\nEach component represents a business domain and becomes one Prisma schema\nfile. Common domains include: Actors (users), Sales (products), Orders,\nCarts, etc.\n\n**Example:**\n\n```typescript\n{\n \"components\": [\n {\n \"filename\": \"schema-02-systematic.prisma\",\n \"namespace\": \"Systematic\",\n \"thinking\": \"These tables all relate to system configuration and channel management. They form the foundation of the platform.\",\n \"review\": \"Considering the relationships, shopping_channel_categories connects channels and sales, but it fundamentally defines channel structure.\",\n \"rationale\": \"Grouping all system configuration tables together provides a clear foundation layer that other domains can reference.\",\n \"tables\": [\n \"shopping_channels\",\n \"shopping_sections\",\n \"shopping_channel_categories\"\n ]\n },\n {\n \"filename\": \"schema-03-actors.prisma\",\n \"namespace\": \"Actors\",\n \"thinking\": \"All user-related entities should be grouped together as they share authentication and identity patterns.\",\n \"review\": \"While customers interact with sales, the customer entity itself is about identity, not transactions.\",\n \"rationale\": \"This component groups all actor-related tables to maintain separation between identity management and business transactions.\",\n \"tables\": [\n \"shopping_customers\",\n \"shopping_citizens\",\n \"shopping_administrators\"\n ]\n },\n {\n \"filename\": \"schema-04-sales.prisma\",\n \"namespace\": \"Sales\",\n \"thinking\": \"Product catalog and sales-related tables belong together as they form the core commerce functionality.\",\n \"review\": \"Sales snapshots are integral to the sales domain for tracking product history and price changes.\",\n \"rationale\": \"Consolidating all sales-related tables enables coherent management of the entire product lifecycle.\",\n \"tables\": [\n \"shopping_sales\",\n \"shopping_sale_snapshots\",\n \"shopping_sale_units\",\n \"shopping_sale_unit_options\"\n ]\n }\n ]\n}\n```\n\n**Notes:**\n\n- Table names must follow snake_case convention with domain prefix (e.g.,\n `shopping_customers`)\n- Each component becomes one `.prisma` file containing related models\n- Filename numbering indicates dependency order for schema generation\n- Namespace is used for documentation organization and domain grouping",
529
+ type: "array",
530
+ items: {
531
+ $ref: "#/$defs/AutoBePrisma.IComponent"
532
+ },
533
+ minItems: 1
534
+ }
535
+ },
536
+ required: [
537
+ "thinking",
538
+ "review",
539
+ "decision",
540
+ "components"
541
+ ],
542
+ additionalProperties: false,
543
+ $defs: {
544
+ "AutoBePrisma.IComponent": {
545
+ description: "Interface representing a logical grouping of database tables organized by\nbusiness domain for schema file generation.\n\nComponents provide a systematic way to organize database tables into\ncoherent groups following domain-driven design principles. Each component\nrepresents a specific business domain or functional area that will be\ngenerated as a separate Prisma schema file, ensuring maintainable and\nlogically structured database architecture.\n\nThis interface is primarily used during the database design phase when the\nPrisma agent analyzes requirements and determines the complete scope of\ntables needed, then organizes them into logical groups based on business\nrelationships and functional dependencies.\n\n## Usage in Schema Generation Process\n\nComponents serve as the blueprint for generating multiple Prisma schema\nfiles:\n\n1. **Requirements Analysis**: AI agent identifies all required tables from\n business requirements\n2. **Domain Grouping**: Tables are organized into components based on business\n domains and functional relationships\n3. **File Generation**: Each component becomes a separate .prisma file\n containing related models\n4. **Dependency Management**: Components are ordered to handle cross-domain\n relationships properly\n\n## Domain Organization Examples\n\nBased on typical business applications, components commonly include:\n\n- **Systematic**: Core system tables (channels, sections, configurations)\n- **Actors**: User management (customers, citizens, administrators)\n- **Sales**: Product catalog and sales entities\n- **Carts**: Shopping cart and item management\n- **Orders**: Order processing and fulfillment\n- **Coupons**: Discount and promotion systems\n- **Coins**: Digital currency and mileage systems\n- **Inquiries**: Customer support and FAQ systems\n- **Favorites**: User preference and wishlist management\n- **Articles**: Content management and BBS systems\n\n## Relationship to {@link AutoBePrisma.IFile}\n\nEach IComponent serves as a blueprint for generating one IFile during the\nschema generation process. The component's metadata (filename, namespace,\ntables) is used to structure the actual Prisma schema file with proper\nmodels, relationships, and indexes.",
546
+ type: "object",
547
+ properties: {
548
+ filename: {
549
+ description: "Target filename for the Prisma schema file containing this component's\ntables.\n\nFollows the naming convention `schema-{number}-{domain}.prisma` where the\nnumber indicates dependency order and domain represents the business\narea.",
550
+ type: "string",
551
+ pattern: "^[a-zA-Z0-9._-]+\\.prisma$"
552
+ },
553
+ namespace: {
554
+ description: "Business domain namespace that groups related models.\n\nUsed in Prisma documentation comments as \"@\\namespace directive\".\nExamples from uploaded schemas: \"Systematic\", \"Actors\", \"Sales\", \"Carts\",\n\"Orders\", \"Coupons\", \"Coins\", \"Inquiries\", \"Favorites\", \"Articles\"",
555
+ type: "string"
556
+ },
557
+ thinking: {
558
+ description: "Initial thoughts on why these tables belong together.\n\n**Example:**\n\n \"These tables all relate to user management and authentication.\n They share common patterns like user identification and access control.\"",
559
+ type: "string"
560
+ },
561
+ review: {
562
+ description: "Review considerations for this component grouping.\n\n**Example:**\n\n \"Reviewed relationships with other domains. While customers create orders,\n the customer entity itself is fundamentally about user identity, not sales.\"",
563
+ type: "string"
564
+ },
565
+ rationale: {
566
+ description: "Final rationale for this component's composition.\n\n**Example:**\n\n \"This component groups all actor-related tables to maintain a clear\n separation between identity management and business transactions.\"",
567
+ type: "string"
568
+ },
569
+ tables: {
570
+ description: "Array of table names that will be included in this component's schema\nfile.\n\nContains all database table names that belong to this business domain,\nensuring logical grouping and proper organization of related data\nstructures.",
571
+ type: "array",
572
+ items: {
573
+ type: "string",
574
+ pattern: "^[a-z][a-z0-9_]*$"
575
+ },
576
+ minItems: 1
577
+ }
578
+ },
579
+ required: [
580
+ "filename",
581
+ "namespace",
582
+ "thinking",
583
+ "review",
584
+ "rationale",
585
+ "tables"
586
+ ]
587
+ }
588
+ }
589
+ },
590
+ description: "Organizes database tables into domain-based components for Prisma schema\ngeneration.\n\nTakes business requirements and groups related tables into logical domains,\nwith each component becoming a separate .prisma file.",
591
+ validate: (() => { const _io0 = input => "string" === typeof input.thinking && "string" === typeof input.review && "string" === typeof input.decision && (Array.isArray(input.components) && (1 <= input.components.length && input.components.every(elem => "object" === typeof elem && null !== elem && _io1(elem)))); const _io1 = input => "string" === typeof input.filename && RegExp("^[a-zA-Z0-9._-]+\\.prisma$").test(input.filename) && "string" === typeof input.namespace && "string" === typeof input.thinking && "string" === typeof input.review && "string" === typeof input.rationale && (Array.isArray(input.tables) && (1 <= input.tables.length && input.tables.every(elem => "string" === typeof elem && RegExp("^[a-z][a-z0-9_]*$").test(elem)))); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
592
+ path: _path + ".thinking",
593
+ expected: "string",
594
+ value: input.thinking
595
+ }), "string" === typeof input.review || _report(_exceptionable, {
596
+ path: _path + ".review",
597
+ expected: "string",
598
+ value: input.review
599
+ }), "string" === typeof input.decision || _report(_exceptionable, {
600
+ path: _path + ".decision",
601
+ expected: "string",
602
+ value: input.decision
603
+ }), (Array.isArray(input.components) || _report(_exceptionable, {
604
+ path: _path + ".components",
605
+ expected: "(Array<AutoBePrisma.IComponent> & MinItems<1>)",
606
+ value: input.components
607
+ })) && ((1 <= input.components.length || _report(_exceptionable, {
608
+ path: _path + ".components",
609
+ expected: "Array<> & MinItems<1>",
610
+ value: input.components
611
+ })) && input.components.map((elem, _index3) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
612
+ path: _path + ".components[" + _index3 + "]",
613
+ expected: "AutoBePrisma.IComponent",
614
+ value: elem
615
+ })) && _vo1(elem, _path + ".components[" + _index3 + "]", true && _exceptionable) || _report(_exceptionable, {
616
+ path: _path + ".components[" + _index3 + "]",
617
+ expected: "AutoBePrisma.IComponent",
618
+ value: elem
619
+ })).every(flag => flag)) || _report(_exceptionable, {
620
+ path: _path + ".components",
621
+ expected: "(Array<AutoBePrisma.IComponent> & MinItems<1>)",
622
+ value: input.components
623
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.filename && (RegExp("^[a-zA-Z0-9._-]+\\.prisma$").test(input.filename) || _report(_exceptionable, {
624
+ path: _path + ".filename",
625
+ expected: "string & Pattern<\"^[a-zA-Z0-9._-]+\\\\.prisma$\">",
626
+ value: input.filename
627
+ })) || _report(_exceptionable, {
628
+ path: _path + ".filename",
629
+ expected: "(string & Pattern<\"^[a-zA-Z0-9._-]+\\\\.prisma$\">)",
630
+ value: input.filename
631
+ }), "string" === typeof input.namespace || _report(_exceptionable, {
632
+ path: _path + ".namespace",
633
+ expected: "string",
634
+ value: input.namespace
635
+ }), "string" === typeof input.thinking || _report(_exceptionable, {
636
+ path: _path + ".thinking",
637
+ expected: "string",
638
+ value: input.thinking
639
+ }), "string" === typeof input.review || _report(_exceptionable, {
640
+ path: _path + ".review",
641
+ expected: "string",
642
+ value: input.review
643
+ }), "string" === typeof input.rationale || _report(_exceptionable, {
644
+ path: _path + ".rationale",
645
+ expected: "string",
646
+ value: input.rationale
647
+ }), (Array.isArray(input.tables) || _report(_exceptionable, {
648
+ path: _path + ".tables",
649
+ expected: "(Array<string & SnakeCasePattern> & MinItems<1>)",
650
+ value: input.tables
651
+ })) && ((1 <= input.tables.length || _report(_exceptionable, {
652
+ path: _path + ".tables",
653
+ expected: "Array<> & MinItems<1>",
654
+ value: input.tables
655
+ })) && input.tables.map((elem, _index4) => "string" === typeof elem && (RegExp("^[a-z][a-z0-9_]*$").test(elem) || _report(_exceptionable, {
656
+ path: _path + ".tables[" + _index4 + "]",
657
+ expected: "string & SnakeCasePattern",
658
+ value: elem
659
+ })) || _report(_exceptionable, {
660
+ path: _path + ".tables[" + _index4 + "]",
661
+ expected: "(string & SnakeCasePattern)",
662
+ value: elem
663
+ })).every(flag => flag)) || _report(_exceptionable, {
664
+ path: _path + ".tables",
665
+ expected: "(Array<string & SnakeCasePattern> & MinItems<1>)",
666
+ value: input.tables
667
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
668
+ if (false === __is(input)) {
669
+ errors = [];
670
+ _report = __typia_transform__validateReport._validateReport(errors);
671
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
672
+ path: _path + "",
673
+ expected: "IAutoBePrismaComponentApplication.IProps",
674
+ value: input
675
+ })) && _vo0(input, _path + "", true) || _report(true, {
676
+ path: _path + "",
677
+ expected: "IAutoBePrismaComponentApplication.IProps",
678
+ value: input
679
+ }))(input, "$input", true);
680
+ const success = 0 === errors.length;
681
+ return success ? {
682
+ success,
683
+ data: input
684
+ } : {
685
+ success,
686
+ errors,
687
+ data: input
688
+ };
689
+ }
690
+ return {
691
+ success: true,
692
+ data: input
693
+ };
694
+ }; })()
695
+ }
696
+ ]
697
+ },
502
698
  };
503
699
  //# sourceMappingURL=orchestratePrismaComponent.js.map