@autobe/agent 0.26.0 → 0.28.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 (205) hide show
  1. package/lib/AutoBeAgent.d.ts +2 -1
  2. package/lib/AutoBeAgent.js +27 -7
  3. package/lib/AutoBeAgent.js.map +1 -1
  4. package/lib/AutoBeMockAgent.js +2 -4
  5. package/lib/AutoBeMockAgent.js.map +1 -1
  6. package/lib/constants/AutoBeSystemPromptConstant.d.ts +11 -11
  7. package/lib/context/AutoBeContext.d.ts +4 -1
  8. package/lib/context/AutoBeTokenUsage.d.ts +1 -1
  9. package/lib/context/AutoBeTokenUsage.js.map +1 -1
  10. package/lib/context/assertSchemaModel.d.ts +1 -1
  11. package/lib/context/assertSchemaModel.js +4 -7
  12. package/lib/context/assertSchemaModel.js.map +1 -1
  13. package/lib/factory/AutoBeFunctionCallingMetricFactory.d.ts +7 -0
  14. package/lib/factory/AutoBeFunctionCallingMetricFactory.js +35 -0
  15. package/lib/factory/AutoBeFunctionCallingMetricFactory.js.map +1 -0
  16. package/lib/factory/AutoBeProcessAggregateFactory.d.ts +13 -0
  17. package/lib/factory/AutoBeProcessAggregateFactory.js +100 -0
  18. package/lib/factory/AutoBeProcessAggregateFactory.js.map +1 -0
  19. package/lib/factory/createAutoBeContext.d.ts +2 -1
  20. package/lib/factory/createAutoBeContext.js +78 -27
  21. package/lib/factory/createAutoBeContext.js.map +1 -1
  22. package/lib/index.mjs +24065 -12997
  23. package/lib/index.mjs.map +1 -1
  24. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +1 -1
  25. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  26. package/lib/orchestrate/analyze/orchestrateAnalyze.js +1 -0
  27. package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
  28. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js +166 -87
  29. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
  30. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +639 -322
  31. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  32. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +146 -76
  33. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
  34. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +17 -52
  35. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +25 -22
  36. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +7 -23
  37. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.d.ts +2 -1
  38. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +168 -4
  39. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
  40. package/lib/{factory/createAutoBeApplication.d.ts → orchestrate/facade/createAutoBeFacadeController.d.ts} +2 -2
  41. package/lib/orchestrate/facade/createAutoBeFacadeController.js +1308 -0
  42. package/lib/orchestrate/facade/createAutoBeFacadeController.js.map +1 -0
  43. package/lib/orchestrate/facade/histories/IAutoBeFacadeApplication.js.map +1 -0
  44. package/lib/orchestrate/facade/histories/IAutoBeFacadeApplicationProps.js.map +1 -0
  45. package/lib/orchestrate/facade/histories/IAutoBeFacadeApplicationResult.js.map +1 -0
  46. package/lib/orchestrate/facade/{transformFacadeStateMessage.d.ts → structures/transformFacadeStateMessage.d.ts} +1 -1
  47. package/lib/orchestrate/facade/structures/transformFacadeStateMessage.js.map +1 -0
  48. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js +2 -2
  49. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +1 -1
  50. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +1 -1
  51. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +1 -1
  52. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js +3 -2
  53. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js.map +1 -1
  54. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js +1 -1
  55. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +1 -1
  56. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js +1 -1
  57. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +1 -1
  58. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +2 -2
  59. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +1 -1
  60. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +1 -1
  61. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +1 -1
  62. package/lib/orchestrate/interface/orchestrateInterface.d.ts +1 -1
  63. package/lib/orchestrate/interface/orchestrateInterface.js +15 -8
  64. package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
  65. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +874 -49
  66. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  67. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +1858 -67
  68. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  69. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +251 -133
  70. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  71. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.d.ts +0 -6
  72. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +257 -135
  73. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +1 -1
  74. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +341 -227
  75. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  76. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +761 -49
  77. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  78. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +911 -50
  79. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  80. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +207 -4
  81. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +1 -1
  82. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +109 -2
  83. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js.map +1 -1
  84. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.d.ts +5 -3
  85. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1904 -77
  86. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  87. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +1858 -67
  88. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  89. package/lib/orchestrate/interface/utils/JsonSchemaFactory.js +23 -23
  90. package/lib/orchestrate/prisma/orchestratePrisma.d.ts +1 -1
  91. package/lib/orchestrate/prisma/orchestratePrisma.js +1 -0
  92. package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
  93. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +391 -197
  94. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  95. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1168 -591
  96. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  97. package/lib/orchestrate/prisma/orchestratePrismaReview.js +1186 -600
  98. package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
  99. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +6 -3
  100. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -1
  101. package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +2 -2
  102. package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js.map +1 -1
  103. package/lib/orchestrate/realize/orchestrateRealize.d.ts +1 -1
  104. package/lib/orchestrate/realize/orchestrateRealize.js +2 -1
  105. package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
  106. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +362 -180
  107. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  108. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +399 -199
  109. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
  110. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +133 -4
  111. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  112. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js +171 -7
  113. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js.map +1 -1
  114. package/lib/orchestrate/realize/orchestrateRealizeWrite.js +132 -3
  115. package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
  116. package/lib/orchestrate/realize/utils/replaceImportStatements.js +0 -85
  117. package/lib/orchestrate/realize/utils/replaceImportStatements.js.map +1 -1
  118. package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -1
  119. package/lib/orchestrate/test/orchestrateTest.d.ts +1 -1
  120. package/lib/orchestrate/test/orchestrateTest.js +2 -1
  121. package/lib/orchestrate/test/orchestrateTest.js.map +1 -1
  122. package/lib/orchestrate/test/orchestrateTestCorrect.js +134 -3
  123. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  124. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +169 -4
  125. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
  126. package/lib/orchestrate/test/orchestrateTestScenario.js +257 -4
  127. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  128. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +283 -4
  129. package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
  130. package/lib/orchestrate/test/orchestrateTestWrite.js +141 -3
  131. package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  132. package/lib/utils/TokenUsageComputer.d.ts +5 -0
  133. package/lib/utils/TokenUsageComputer.js +29 -0
  134. package/lib/utils/TokenUsageComputer.js.map +1 -0
  135. package/package.json +10 -10
  136. package/src/AutoBeAgent.ts +40 -6
  137. package/src/AutoBeMockAgent.ts +2 -4
  138. package/src/constants/AutoBeSystemPromptConstant.ts +11 -11
  139. package/src/context/AutoBeContext.ts +8 -0
  140. package/src/context/AutoBeTokenUsage.ts +1 -1
  141. package/src/context/assertSchemaModel.ts +5 -8
  142. package/src/factory/AutoBeFunctionCallingMetricFactory.ts +44 -0
  143. package/src/factory/AutoBeProcessAggregateFactory.ts +141 -0
  144. package/src/factory/createAutoBeContext.ts +96 -36
  145. package/src/orchestrate/analyze/orchestrateAnalyze.ts +1 -0
  146. package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +9 -10
  147. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +15 -10
  148. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +10 -11
  149. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +19 -54
  150. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +25 -22
  151. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.ts +8 -24
  152. package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +20 -3
  153. package/src/orchestrate/facade/createAutoBeFacadeController.ts +136 -0
  154. package/src/orchestrate/facade/{transformFacadeStateMessage.ts → structures/transformFacadeStateMessage.ts} +2 -2
  155. package/src/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.ts +1 -0
  156. package/src/orchestrate/interface/orchestrateInterface.ts +17 -6
  157. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +13 -2
  158. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +13 -2
  159. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +16 -11
  160. package/src/orchestrate/interface/orchestrateInterfaceEndpointsReview.ts +16 -13
  161. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +19 -15
  162. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +13 -2
  163. package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +16 -2
  164. package/src/orchestrate/interface/orchestrateInterfacePrerequisites.ts +13 -2
  165. package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +11 -2
  166. package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +24 -16
  167. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +13 -2
  168. package/src/orchestrate/prisma/orchestratePrisma.ts +2 -1
  169. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +15 -10
  170. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +9 -10
  171. package/src/orchestrate/prisma/orchestratePrismaReview.ts +9 -11
  172. package/src/orchestrate/prisma/orchestratePrismaSchemas.ts +2 -1
  173. package/src/orchestrate/realize/orchestrateRealize.ts +3 -2
  174. package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +15 -10
  175. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +15 -10
  176. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +14 -3
  177. package/src/orchestrate/realize/orchestrateRealizeCorrectCasting.ts +21 -6
  178. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +13 -2
  179. package/src/orchestrate/realize/utils/replaceImportStatements.ts +0 -90
  180. package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +5 -1
  181. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +1 -1
  182. package/src/orchestrate/test/orchestrateTest.ts +3 -2
  183. package/src/orchestrate/test/orchestrateTestCorrect.ts +14 -2
  184. package/src/orchestrate/test/orchestrateTestCorrectInvalidRequest.ts +21 -3
  185. package/src/orchestrate/test/orchestrateTestScenario.ts +13 -2
  186. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +13 -2
  187. package/src/orchestrate/test/orchestrateTestWrite.ts +13 -2
  188. package/src/utils/TokenUsageComputer.ts +35 -0
  189. package/lib/context/IAutoBeFacadeApplication.js.map +0 -1
  190. package/lib/context/IAutoBeFacadeApplicationProps.js.map +0 -1
  191. package/lib/context/IAutoBeFacadeApplicationResult.js.map +0 -1
  192. package/lib/factory/createAutoBeApplication.js +0 -942
  193. package/lib/factory/createAutoBeApplication.js.map +0 -1
  194. package/lib/orchestrate/facade/transformFacadeStateMessage.js.map +0 -1
  195. package/src/factory/createAutoBeApplication.ts +0 -123
  196. /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplication.d.ts +0 -0
  197. /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplication.js +0 -0
  198. /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationProps.d.ts +0 -0
  199. /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationProps.js +0 -0
  200. /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationResult.d.ts +0 -0
  201. /package/lib/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationResult.js +0 -0
  202. /package/lib/orchestrate/facade/{transformFacadeStateMessage.js → structures/transformFacadeStateMessage.js} +0 -0
  203. /package/src/{context → orchestrate/facade/histories}/IAutoBeFacadeApplication.ts +0 -0
  204. /package/src/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationProps.ts +0 -0
  205. /package/src/{context → orchestrate/facade/histories}/IAutoBeFacadeApplicationResult.ts +0 -0
@@ -58,7 +58,7 @@ function orchestrateInterfaceGroups(ctx, props) {
58
58
  const pointer = {
59
59
  value: null,
60
60
  };
61
- const { tokenUsage } = yield ctx.conversate({
61
+ const { metric, tokenUsage } = yield ctx.conversate({
62
62
  source: "interfaceGroup",
63
63
  histories: (0, transformInterfaceGroupHistories_1.transformInterfaceGroupHistories)({
64
64
  state: ctx.state(),
@@ -80,6 +80,7 @@ function orchestrateInterfaceGroups(ctx, props) {
80
80
  id: (0, uuid_1.v7)(),
81
81
  created_at: start.toISOString(),
82
82
  groups: pointer.value.groups,
83
+ metric,
83
84
  tokenUsage,
84
85
  step: (_c = (_b = ctx.state().analyze) === null || _b === void 0 ? void 0 : _b.step) !== null && _c !== void 0 ? _c : 0,
85
86
  };
@@ -87,7 +88,11 @@ function orchestrateInterfaceGroups(ctx, props) {
87
88
  }
88
89
  function createController(props) {
89
90
  (0, assertSchemaModel_1.assertSchemaModel)(props.model);
90
- const application = collection[props.model];
91
+ const application = collection[props.model === "chatgpt"
92
+ ? "chatgpt"
93
+ : props.model === "gemini"
94
+ ? "gemini"
95
+ : "claude"];
91
96
  return {
92
97
  protocol: "class",
93
98
  name: "interface",
@@ -99,243 +104,352 @@ function createController(props) {
99
104
  },
100
105
  };
101
106
  }
102
- const claude = {
103
- model: "claude",
104
- options: {
105
- reference: true,
106
- separate: null
107
- },
108
- functions: [
109
- {
110
- name: "makeGroups",
111
- parameters: {
112
- description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
113
- type: "object",
114
- properties: {
115
- groups: {
116
- description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.",
117
- type: "array",
118
- items: {
119
- $ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
120
- },
121
- minItems: 1
107
+ const collection = {
108
+ chatgpt: {
109
+ model: "chatgpt",
110
+ options: {
111
+ reference: true,
112
+ strict: false,
113
+ separate: null
114
+ },
115
+ functions: [
116
+ {
117
+ name: "makeGroups",
118
+ parameters: {
119
+ description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
120
+ type: "object",
121
+ properties: {
122
+ groups: {
123
+ description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.\n\n\n@minItems 1",
124
+ type: "array",
125
+ items: {
126
+ $ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
127
+ }
128
+ }
129
+ },
130
+ required: [
131
+ "groups"
132
+ ],
133
+ additionalProperties: false,
134
+ $defs: {
135
+ "IAutoBeInterfaceGroupApplication.IGroup": {
136
+ description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
137
+ type: "object",
138
+ properties: {
139
+ name: {
140
+ description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.\n\n\n@minLength 1",
141
+ type: "string"
142
+ },
143
+ description: {
144
+ description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"\n\n\n@minLength 1",
145
+ type: "string"
146
+ }
147
+ },
148
+ required: [
149
+ "name",
150
+ "description"
151
+ ]
152
+ }
122
153
  }
123
154
  },
124
- required: [
125
- "groups"
126
- ],
127
- additionalProperties: false,
128
- $defs: {
129
- "IAutoBeInterfaceGroupApplication.IGroup": {
130
- description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
131
- type: "object",
132
- properties: {
133
- name: {
134
- description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.",
135
- type: "string",
136
- minLength: 1
137
- },
138
- description: {
139
- description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"",
140
- type: "string",
141
- minLength: 1
142
- }
143
- },
144
- required: [
145
- "name",
146
- "description"
147
- ]
155
+ description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
156
+ validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
157
+ path: _path + ".groups",
158
+ expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
159
+ value: input.groups
160
+ })) && ((1 <= input.groups.length || _report(_exceptionable, {
161
+ path: _path + ".groups",
162
+ expected: "Array<> & MinItems<1>",
163
+ value: input.groups
164
+ })) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
165
+ path: _path + ".groups[" + _index2 + "]",
166
+ expected: "IAutoBeInterfaceGroupApplication.IGroup",
167
+ value: elem
168
+ })) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
169
+ path: _path + ".groups[" + _index2 + "]",
170
+ expected: "IAutoBeInterfaceGroupApplication.IGroup",
171
+ value: elem
172
+ })).every(flag => flag)) || _report(_exceptionable, {
173
+ path: _path + ".groups",
174
+ expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
175
+ value: input.groups
176
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
177
+ path: _path + ".name",
178
+ expected: "string & MinLength<1>",
179
+ value: input.name
180
+ })) || _report(_exceptionable, {
181
+ path: _path + ".name",
182
+ expected: "(string & MinLength<1>)",
183
+ value: input.name
184
+ }), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
185
+ path: _path + ".description",
186
+ expected: "string & MinLength<1>",
187
+ value: input.description
188
+ })) || _report(_exceptionable, {
189
+ path: _path + ".description",
190
+ expected: "(string & MinLength<1>)",
191
+ value: input.description
192
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
193
+ if (false === __is(input)) {
194
+ errors = [];
195
+ _report = __typia_transform__validateReport._validateReport(errors);
196
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
197
+ path: _path + "",
198
+ expected: "IAutoBeInterfaceGroupApplication.IProps",
199
+ value: input
200
+ })) && _vo0(input, _path + "", true) || _report(true, {
201
+ path: _path + "",
202
+ expected: "IAutoBeInterfaceGroupApplication.IProps",
203
+ value: input
204
+ }))(input, "$input", true);
205
+ const success = 0 === errors.length;
206
+ return success ? {
207
+ success,
208
+ data: input
209
+ } : {
210
+ success,
211
+ errors,
212
+ data: input
213
+ };
148
214
  }
149
- }
150
- },
151
- description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
152
- validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
153
- path: _path + ".groups",
154
- expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
155
- value: input.groups
156
- })) && ((1 <= input.groups.length || _report(_exceptionable, {
157
- path: _path + ".groups",
158
- expected: "Array<> & MinItems<1>",
159
- value: input.groups
160
- })) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
161
- path: _path + ".groups[" + _index2 + "]",
162
- expected: "IAutoBeInterfaceGroupApplication.IGroup",
163
- value: elem
164
- })) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
165
- path: _path + ".groups[" + _index2 + "]",
166
- expected: "IAutoBeInterfaceGroupApplication.IGroup",
167
- value: elem
168
- })).every(flag => flag)) || _report(_exceptionable, {
169
- path: _path + ".groups",
170
- expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
171
- value: input.groups
172
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
173
- path: _path + ".name",
174
- expected: "string & MinLength<1>",
175
- value: input.name
176
- })) || _report(_exceptionable, {
177
- path: _path + ".name",
178
- expected: "(string & MinLength<1>)",
179
- value: input.name
180
- }), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
181
- path: _path + ".description",
182
- expected: "string & MinLength<1>",
183
- value: input.description
184
- })) || _report(_exceptionable, {
185
- path: _path + ".description",
186
- expected: "(string & MinLength<1>)",
187
- value: input.description
188
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
189
- if (false === __is(input)) {
190
- errors = [];
191
- _report = __typia_transform__validateReport._validateReport(errors);
192
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
193
- path: _path + "",
194
- expected: "IAutoBeInterfaceGroupApplication.IProps",
195
- value: input
196
- })) && _vo0(input, _path + "", true) || _report(true, {
197
- path: _path + "",
198
- expected: "IAutoBeInterfaceGroupApplication.IProps",
199
- value: input
200
- }))(input, "$input", true);
201
- const success = 0 === errors.length;
202
- return success ? {
203
- success,
204
- data: input
205
- } : {
206
- success,
207
- errors,
215
+ return {
216
+ success: true,
208
217
  data: input
209
218
  };
210
- }
211
- return {
212
- success: true,
213
- data: input
214
- };
215
- }; })()
216
- }
217
- ]
218
- };
219
- const chatgpt = {
220
- model: "chatgpt",
221
- options: {
222
- reference: true,
223
- strict: false,
224
- separate: null
219
+ }; })()
220
+ }
221
+ ]
225
222
  },
226
- functions: [
227
- {
228
- name: "makeGroups",
229
- parameters: {
230
- description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
231
- type: "object",
232
- properties: {
233
- groups: {
234
- description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.\n\n\n@minItems 1",
235
- type: "array",
236
- items: {
237
- $ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
223
+ claude: {
224
+ model: "claude",
225
+ options: {
226
+ reference: true,
227
+ separate: null
228
+ },
229
+ functions: [
230
+ {
231
+ name: "makeGroups",
232
+ parameters: {
233
+ description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
234
+ type: "object",
235
+ properties: {
236
+ groups: {
237
+ description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.",
238
+ type: "array",
239
+ items: {
240
+ $ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
241
+ },
242
+ minItems: 1
243
+ }
244
+ },
245
+ required: [
246
+ "groups"
247
+ ],
248
+ additionalProperties: false,
249
+ $defs: {
250
+ "IAutoBeInterfaceGroupApplication.IGroup": {
251
+ description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
252
+ type: "object",
253
+ properties: {
254
+ name: {
255
+ description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.",
256
+ type: "string",
257
+ minLength: 1
258
+ },
259
+ description: {
260
+ description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"",
261
+ type: "string",
262
+ minLength: 1
263
+ }
264
+ },
265
+ required: [
266
+ "name",
267
+ "description"
268
+ ]
238
269
  }
239
270
  }
240
271
  },
241
- required: [
242
- "groups"
243
- ],
244
- additionalProperties: false,
245
- $defs: {
246
- "IAutoBeInterfaceGroupApplication.IGroup": {
247
- description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
248
- type: "object",
249
- properties: {
250
- name: {
251
- description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.\n\n\n@minLength 1",
252
- type: "string"
253
- },
254
- description: {
255
- description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"\n\n\n@minLength 1",
256
- type: "string"
257
- }
258
- },
259
- required: [
260
- "name",
261
- "description"
262
- ]
272
+ description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
273
+ validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
274
+ path: _path + ".groups",
275
+ expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
276
+ value: input.groups
277
+ })) && ((1 <= input.groups.length || _report(_exceptionable, {
278
+ path: _path + ".groups",
279
+ expected: "Array<> & MinItems<1>",
280
+ value: input.groups
281
+ })) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
282
+ path: _path + ".groups[" + _index2 + "]",
283
+ expected: "IAutoBeInterfaceGroupApplication.IGroup",
284
+ value: elem
285
+ })) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
286
+ path: _path + ".groups[" + _index2 + "]",
287
+ expected: "IAutoBeInterfaceGroupApplication.IGroup",
288
+ value: elem
289
+ })).every(flag => flag)) || _report(_exceptionable, {
290
+ path: _path + ".groups",
291
+ expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
292
+ value: input.groups
293
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
294
+ path: _path + ".name",
295
+ expected: "string & MinLength<1>",
296
+ value: input.name
297
+ })) || _report(_exceptionable, {
298
+ path: _path + ".name",
299
+ expected: "(string & MinLength<1>)",
300
+ value: input.name
301
+ }), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
302
+ path: _path + ".description",
303
+ expected: "string & MinLength<1>",
304
+ value: input.description
305
+ })) || _report(_exceptionable, {
306
+ path: _path + ".description",
307
+ expected: "(string & MinLength<1>)",
308
+ value: input.description
309
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
310
+ if (false === __is(input)) {
311
+ errors = [];
312
+ _report = __typia_transform__validateReport._validateReport(errors);
313
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
314
+ path: _path + "",
315
+ expected: "IAutoBeInterfaceGroupApplication.IProps",
316
+ value: input
317
+ })) && _vo0(input, _path + "", true) || _report(true, {
318
+ path: _path + "",
319
+ expected: "IAutoBeInterfaceGroupApplication.IProps",
320
+ value: input
321
+ }))(input, "$input", true);
322
+ const success = 0 === errors.length;
323
+ return success ? {
324
+ success,
325
+ data: input
326
+ } : {
327
+ success,
328
+ errors,
329
+ data: input
330
+ };
263
331
  }
264
- }
265
- },
266
- description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
267
- validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
268
- path: _path + ".groups",
269
- expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
270
- value: input.groups
271
- })) && ((1 <= input.groups.length || _report(_exceptionable, {
272
- path: _path + ".groups",
273
- expected: "Array<> & MinItems<1>",
274
- value: input.groups
275
- })) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
276
- path: _path + ".groups[" + _index2 + "]",
277
- expected: "IAutoBeInterfaceGroupApplication.IGroup",
278
- value: elem
279
- })) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
280
- path: _path + ".groups[" + _index2 + "]",
281
- expected: "IAutoBeInterfaceGroupApplication.IGroup",
282
- value: elem
283
- })).every(flag => flag)) || _report(_exceptionable, {
284
- path: _path + ".groups",
285
- expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
286
- value: input.groups
287
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
288
- path: _path + ".name",
289
- expected: "string & MinLength<1>",
290
- value: input.name
291
- })) || _report(_exceptionable, {
292
- path: _path + ".name",
293
- expected: "(string & MinLength<1>)",
294
- value: input.name
295
- }), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
296
- path: _path + ".description",
297
- expected: "string & MinLength<1>",
298
- value: input.description
299
- })) || _report(_exceptionable, {
300
- path: _path + ".description",
301
- expected: "(string & MinLength<1>)",
302
- value: input.description
303
- })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
304
- if (false === __is(input)) {
305
- errors = [];
306
- _report = __typia_transform__validateReport._validateReport(errors);
307
- ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
308
- path: _path + "",
309
- expected: "IAutoBeInterfaceGroupApplication.IProps",
310
- value: input
311
- })) && _vo0(input, _path + "", true) || _report(true, {
312
- path: _path + "",
313
- expected: "IAutoBeInterfaceGroupApplication.IProps",
314
- value: input
315
- }))(input, "$input", true);
316
- const success = 0 === errors.length;
317
- return success ? {
318
- success,
332
+ return {
333
+ success: true,
319
334
  data: input
320
- } : {
321
- success,
322
- errors,
335
+ };
336
+ }; })()
337
+ }
338
+ ]
339
+ },
340
+ gemini: {
341
+ model: "gemini",
342
+ options: {
343
+ reference: true,
344
+ separate: null
345
+ },
346
+ functions: [
347
+ {
348
+ name: "makeGroups",
349
+ parameters: {
350
+ description: " Properties containing the groups to be created for API\norganization\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceGroupApplication.IProps}",
351
+ type: "object",
352
+ properties: {
353
+ groups: {
354
+ description: "Array of API endpoint groups for organizing development.\n\nDO: Organize groups around existing Prisma schema structure.\nDO: Provide complete coverage of all entities and requirements without\noverlap.\n\n\n@minItems 1",
355
+ type: "array",
356
+ items: {
357
+ $ref: "#/$defs/IAutoBeInterfaceGroupApplication.IGroup"
358
+ }
359
+ }
360
+ },
361
+ required: [
362
+ "groups"
363
+ ],
364
+ additionalProperties: false,
365
+ $defs: {
366
+ "IAutoBeInterfaceGroupApplication.IGroup": {
367
+ description: "Definition of a logical API endpoint group based on Prisma schema\norganization.\n\n**SCHEMA-BASED GROUP REQUIREMENTS:**\n\nDO: Derive groups from the Prisma schema structure rather than arbitrary\nbusiness domain names.\n\nThis ensures consistency with the underlying data model and prevents\nmisalignment between API organization and database structure.\n\n**Primary Group Sources (in order of priority):**\n\n1. **Prisma Schema Namespaces**: Use namespace names (e.g., `namespace\n Shopping` \u2192 \"Shopping\")\n2. **Schema File Names**: Derive from file names (e.g., `shopping.prisma` \u2192\n \"Shopping\")\n3. **Table Prefix Patterns**: Use consistent prefixes (e.g., `shopping_orders`\n \u2192 \"Shopping\")\n4. **Schema Comments/Annotations**: Follow organizational comments in schema\n\n**Group Creation Guidelines:**\n\n- Each group covers specific Prisma schema entities without overlap\n- Size groups appropriately for manageable endpoint generation cycles\n- Maintain clear boundaries based on schema organization\n- Ensure complete coverage of all database entities and requirements\n- Related database tables within the same schema area are grouped together\n\n**When to Create Schema-Independent Groups:**\n\nOnly create groups that don't correspond to Prisma schema organization\nwhen:\n\n- Requirements include functionality not represented in any schema entity\n- Cross-cutting concerns span multiple schema areas\n- Integration operations don't map to specific database entities\n- System-level functionality requires dedicated API operations\n\n**Naming Standards:**\n\n- Use PascalCase format (e.g., \"Shopping\", \"BBS\", \"UserManagement\")\n- Names directly reflect Prisma schema structure\n- Keep names concise and schema-derived\n- Avoid arbitrary business domain names\n- Maintain consistency with schema organization\n\n**Quality Requirements:**\n\n- Groups collectively cover ALL entities and requirements\n- Each database entity belongs to exactly one group\n- Clear mapping to specific Prisma schema elements\n- Balance group sizes within schema constraints\n- Follow existing schema namespace or file structure patterns",
368
+ type: "object",
369
+ properties: {
370
+ name: {
371
+ description: "Unique identifier name derived from Prisma schema structure.\n\nDO: Correspond to schema namespaces, file names, table prefixes, or\norganizational annotations rather than arbitrary business domain names.\n\n\n@minLength 1",
372
+ type: "string"
373
+ },
374
+ description: {
375
+ description: "Concise description of the group's core purpose.\n\n**Requirements:**\n- Keep it brief and focused (50-200 characters)\n- State the main purpose and key entities\n- Avoid detailed explanations or mappings\n\nExample: \"Handles shopping-related entities and operations\"\n\n\n@minLength 1",
376
+ type: "string"
377
+ }
378
+ },
379
+ required: [
380
+ "name",
381
+ "description"
382
+ ]
383
+ }
384
+ }
385
+ },
386
+ description: "Generate logical groups for organizing API endpoint creation based on\nPrisma schema structure.\n\nDO: Derive groups from Prisma schema organization (namespaces, file\nstructure, table prefixes) rather than arbitrary business domains.\nDO: Create new groups only when existing schema structure cannot adequately\ncover all requirements.",
387
+ validate: (() => { const _io0 = input => Array.isArray(input.groups) && (1 <= input.groups.length && input.groups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.name && 1 <= input.name.length && ("string" === typeof input.description && 1 <= input.description.length); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.groups) || _report(_exceptionable, {
388
+ path: _path + ".groups",
389
+ expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
390
+ value: input.groups
391
+ })) && ((1 <= input.groups.length || _report(_exceptionable, {
392
+ path: _path + ".groups",
393
+ expected: "Array<> & MinItems<1>",
394
+ value: input.groups
395
+ })) && input.groups.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
396
+ path: _path + ".groups[" + _index2 + "]",
397
+ expected: "IAutoBeInterfaceGroupApplication.IGroup",
398
+ value: elem
399
+ })) && _vo1(elem, _path + ".groups[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
400
+ path: _path + ".groups[" + _index2 + "]",
401
+ expected: "IAutoBeInterfaceGroupApplication.IGroup",
402
+ value: elem
403
+ })).every(flag => flag)) || _report(_exceptionable, {
404
+ path: _path + ".groups",
405
+ expected: "(Array<IAutoBeInterfaceGroupApplication.IGroup> & MinItems<1>)",
406
+ value: input.groups
407
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (1 <= input.name.length || _report(_exceptionable, {
408
+ path: _path + ".name",
409
+ expected: "string & MinLength<1>",
410
+ value: input.name
411
+ })) || _report(_exceptionable, {
412
+ path: _path + ".name",
413
+ expected: "(string & MinLength<1>)",
414
+ value: input.name
415
+ }), "string" === typeof input.description && (1 <= input.description.length || _report(_exceptionable, {
416
+ path: _path + ".description",
417
+ expected: "string & MinLength<1>",
418
+ value: input.description
419
+ })) || _report(_exceptionable, {
420
+ path: _path + ".description",
421
+ expected: "(string & MinLength<1>)",
422
+ value: input.description
423
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
424
+ if (false === __is(input)) {
425
+ errors = [];
426
+ _report = __typia_transform__validateReport._validateReport(errors);
427
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
428
+ path: _path + "",
429
+ expected: "IAutoBeInterfaceGroupApplication.IProps",
430
+ value: input
431
+ })) && _vo0(input, _path + "", true) || _report(true, {
432
+ path: _path + "",
433
+ expected: "IAutoBeInterfaceGroupApplication.IProps",
434
+ value: input
435
+ }))(input, "$input", true);
436
+ const success = 0 === errors.length;
437
+ return success ? {
438
+ success,
439
+ data: input
440
+ } : {
441
+ success,
442
+ errors,
443
+ data: input
444
+ };
445
+ }
446
+ return {
447
+ success: true,
323
448
  data: input
324
449
  };
325
- }
326
- return {
327
- success: true,
328
- data: input
329
- };
330
- }; })()
331
- }
332
- ]
333
- };
334
- const collection = {
335
- chatgpt,
336
- claude,
337
- llama: claude,
338
- deepseek: claude,
339
- "3.1": claude,
450
+ }; })()
451
+ }
452
+ ]
453
+ },
340
454
  };
341
455
  //# sourceMappingURL=orchestrateInterfaceGroups.js.map