@autobe/agent 0.30.0-dev.20260315 → 0.30.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 (466) hide show
  1. package/LICENSE +661 -661
  2. package/lib/constants/AutoBeTemplateFileConstant.d.ts +1 -1
  3. package/lib/factory/consentFunctionCall.js +4 -4
  4. package/lib/factory/createAutoBeContext.js +24 -24
  5. package/lib/factory/createAutoBeMessageContent.js +6 -6
  6. package/lib/index.mjs +41 -41
  7. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.js +18 -18
  8. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.js +13 -13
  9. package/lib/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.js +47 -47
  10. package/lib/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.js +66 -66
  11. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.js +91 -91
  12. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.js +46 -46
  13. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.js +72 -72
  14. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +1 -1
  15. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js +1 -1
  16. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js +1 -1
  17. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js +1 -1
  18. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js +1 -1
  19. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js +1 -1
  20. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.js +5 -5
  21. package/lib/orchestrate/common/histories/transformPreliminaryHistory.js +44 -44
  22. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js +44 -44
  23. package/lib/orchestrate/common/internal/fixPrelminaryApplication.js +22 -22
  24. package/lib/orchestrate/common/internal/validatePreliminary.js +116 -116
  25. package/lib/orchestrate/facade/createAutoBeFacadeController.js +3 -3
  26. package/lib/orchestrate/facade/structures/transformFacadeStateMessage.js +20 -20
  27. package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.js +34 -34
  28. package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.js +37 -37
  29. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js +56 -56
  30. package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.js +26 -26
  31. package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.js +28 -28
  32. package/lib/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.js +11 -11
  33. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js +38 -38
  34. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js +29 -29
  35. package/lib/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.js +15 -15
  36. package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js +6 -6
  37. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js +25 -25
  38. package/lib/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.js +67 -67
  39. package/lib/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.js +60 -60
  40. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.js +83 -83
  41. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js +29 -29
  42. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js +74 -74
  43. package/lib/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.js +46 -46
  44. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js +1 -1
  45. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +1 -1
  46. package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js +1 -1
  47. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +9 -9
  48. package/lib/orchestrate/interface/orchestrateInterfaceOperation.js +1 -1
  49. package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js +1 -1
  50. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +4 -4
  51. package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js +1 -1
  52. package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js +5 -5
  53. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js +1 -1
  54. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1 -1
  55. package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js +1 -1
  56. package/lib/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.js +90 -90
  57. package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.js +6 -6
  58. package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.js +25 -25
  59. package/lib/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.js +71 -71
  60. package/lib/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.js +162 -162
  61. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.js +11 -11
  62. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.js +73 -73
  63. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.js +35 -35
  64. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.js +11 -11
  65. package/lib/orchestrate/interface/utils/AutoBeJsonSchemaFactory.js +4 -4
  66. package/lib/orchestrate/interface/utils/AutoBeJsonSchemaValidator.js +283 -283
  67. package/lib/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.js +76 -76
  68. package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.js +76 -76
  69. package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.js +51 -51
  70. package/lib/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.js +54 -54
  71. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js +83 -83
  72. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js +6 -6
  73. package/lib/orchestrate/prisma/histories/transformPrismaGroupHistory.js +22 -22
  74. package/lib/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.js +41 -41
  75. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js +39 -39
  76. package/lib/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.js +41 -41
  77. package/lib/orchestrate/prisma/orchestratePrismaAuthorization.js +1 -1
  78. package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js +1 -1
  79. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +1 -1
  80. package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js +1 -1
  81. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1 -1
  82. package/lib/orchestrate/prisma/orchestratePrismaGroup.js +1 -1
  83. package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js +1 -1
  84. package/lib/orchestrate/prisma/orchestratePrismaSchema.js +1 -1
  85. package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js +1 -1
  86. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.js +23 -23
  87. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.js +7 -7
  88. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.js +5 -5
  89. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.js +20 -20
  90. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.js +13 -13
  91. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.js +51 -51
  92. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.js +25 -25
  93. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js +28 -28
  94. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js +14 -14
  95. package/lib/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.js +42 -42
  96. package/lib/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.js +27 -27
  97. package/lib/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.js +57 -57
  98. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js +35 -35
  99. package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js +14 -14
  100. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js +37 -37
  101. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js.map +1 -1
  102. package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js +47 -47
  103. package/lib/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.js +27 -27
  104. package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js +51 -51
  105. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +1 -1
  106. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +1 -1
  107. package/lib/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.js +1 -1
  108. package/lib/orchestrate/realize/orchestrateRealizeCollectorPlan.js +11 -11
  109. package/lib/orchestrate/realize/orchestrateRealizeCollectorWrite.js +1 -1
  110. package/lib/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.js +1 -1
  111. package/lib/orchestrate/realize/orchestrateRealizeOperationWrite.js +1 -1
  112. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.js +1 -1
  113. package/lib/orchestrate/realize/orchestrateRealizeTransformerPlan.js +11 -11
  114. package/lib/orchestrate/realize/orchestrateRealizeTransformerWrite.js +1 -1
  115. package/lib/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.js +41 -41
  116. package/lib/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.js +21 -21
  117. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js +57 -57
  118. package/lib/orchestrate/realize/utils/getRealizeWriteInputType.js +3 -3
  119. package/lib/orchestrate/realize/utils/printErrorHints.js +5 -5
  120. package/lib/orchestrate/test/compile/getTestImportStatements.js +9 -9
  121. package/lib/orchestrate/test/histories/transformTestAuthorizeWriteHistory.js +38 -38
  122. package/lib/orchestrate/test/histories/transformTestGenerationWriteHistory.js +79 -79
  123. package/lib/orchestrate/test/histories/transformTestOperationWriteHistory.js +162 -162
  124. package/lib/orchestrate/test/histories/transformTestPrepareWriteHistory.js +54 -54
  125. package/lib/orchestrate/test/histories/transformTestScenarioHistory.js +31 -31
  126. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js +27 -27
  127. package/lib/orchestrate/test/orchestrateTestScenario.js +1 -1
  128. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1 -1
  129. package/lib/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.js +31 -31
  130. package/lib/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.js +23 -23
  131. package/lib/orchestrate/test/programmers/AutoBeTestOperationProgrammer.js +6 -6
  132. package/lib/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.js +34 -34
  133. package/lib/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.js +39 -39
  134. package/lib/utils/predicateStateMessage.js +19 -19
  135. package/lib/utils/validateEmptyCode.js +16 -16
  136. package/package.json +5 -5
  137. package/src/AutoBeAgent.ts +374 -374
  138. package/src/AutoBeAgentBase.ts +126 -126
  139. package/src/AutoBeMockAgent.ts +254 -254
  140. package/src/constants/AutoBeConfigConstant.ts +173 -173
  141. package/src/constants/AutoBeTemplateFileConstant.ts +1 -1
  142. package/src/context/AutoBeContext.ts +107 -107
  143. package/src/context/AutoBeState.ts +66 -66
  144. package/src/context/AutoBeTokenUsage.ts +307 -307
  145. package/src/context/AutoBeTokenUsageComponent.ts +227 -227
  146. package/src/describe/describe.ts +47 -47
  147. package/src/describe/image/histories/transformImageDescribeDraftHistories.ts +16 -16
  148. package/src/describe/image/orchestrateImageDescribeDraft.ts +200 -200
  149. package/src/describe/image/structures/IAutoBeImageDescribeDraftApplication.ts +92 -92
  150. package/src/describe/imageDescribe.ts +64 -64
  151. package/src/factory/consentFunctionCall.ts +141 -141
  152. package/src/factory/createAgenticaHistory.ts +71 -71
  153. package/src/factory/createAutoBeContext.ts +584 -584
  154. package/src/factory/createAutoBeMessageContent.ts +36 -36
  155. package/src/factory/createAutoBeState.ts +20 -20
  156. package/src/factory/getAutoBeGenerated.ts +317 -317
  157. package/src/factory/getAutoBeRealizeGenerated.ts +31 -31
  158. package/src/factory/getCriticalCompiler.ts +52 -52
  159. package/src/factory/index.ts +1 -1
  160. package/src/factory/mergeSystemMessages.ts +60 -60
  161. package/src/factory/supportFunctionCallFallback.ts +214 -214
  162. package/src/factory/supportMistral.ts +138 -138
  163. package/src/index.ts +16 -16
  164. package/src/orchestrate/analyze/fillTocDeterministic.ts +280 -280
  165. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.ts +55 -55
  166. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.ts +74 -74
  167. package/src/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.ts +179 -179
  168. package/src/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.ts +163 -163
  169. package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.ts +191 -191
  170. package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.ts +122 -122
  171. package/src/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.ts +161 -161
  172. package/src/orchestrate/analyze/index.ts +7 -7
  173. package/src/orchestrate/analyze/orchestrateAnalyze.ts +1693 -1693
  174. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +267 -267
  175. package/src/orchestrate/analyze/orchestrateAnalyzeScenarioReview.ts +122 -122
  176. package/src/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.ts +146 -146
  177. package/src/orchestrate/analyze/orchestrateAnalyzeSectionReview.ts +154 -154
  178. package/src/orchestrate/analyze/orchestrateAnalyzeWriteSection.ts +388 -388
  179. package/src/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.ts +407 -407
  180. package/src/orchestrate/analyze/orchestrateAnalyzeWriteUnit.ts +348 -348
  181. package/src/orchestrate/analyze/programmers/AutoBeAnalyzeProgrammer.ts +149 -149
  182. package/src/orchestrate/analyze/structures/FixedAnalyzeTemplate.ts +961 -961
  183. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +141 -141
  184. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.ts +96 -96
  185. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.ts +160 -160
  186. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.ts +192 -192
  187. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.ts +142 -142
  188. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.ts +123 -123
  189. package/src/orchestrate/analyze/utils/buildConstraintConsistencyReport.ts +813 -813
  190. package/src/orchestrate/analyze/utils/buildErrorCodeRegistry.ts +324 -324
  191. package/src/orchestrate/analyze/utils/buildHardValidators.ts +88 -88
  192. package/src/orchestrate/analyze/utils/detectInventedEntities.ts +87 -87
  193. package/src/orchestrate/analyze/utils/detectProseConstraintConflicts.ts +319 -319
  194. package/src/orchestrate/analyze/utils/repairSectionReviewUtils.ts +181 -181
  195. package/src/orchestrate/analyze/utils/repairUtils.ts +60 -60
  196. package/src/orchestrate/analyze/utils/validateScenarioBasics.ts +104 -104
  197. package/src/orchestrate/common/AutoBePreliminaryController.ts +400 -400
  198. package/src/orchestrate/common/histories/transformCommonCorrectCastingHistory.ts +32 -32
  199. package/src/orchestrate/common/histories/transformPreliminaryHistory.ts +742 -742
  200. package/src/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.ts +77 -77
  201. package/src/orchestrate/common/internal/complementPreliminaryCollection.ts +263 -263
  202. package/src/orchestrate/common/internal/convertToSectionEntries.ts +57 -57
  203. package/src/orchestrate/common/internal/createPreliminaryCollection.ts +76 -76
  204. package/src/orchestrate/common/internal/fixPrelminaryApplication.ts +346 -346
  205. package/src/orchestrate/common/internal/validatePreliminary.ts +671 -671
  206. package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +223 -223
  207. package/src/orchestrate/common/orchestratePreliminary.ts +610 -610
  208. package/src/orchestrate/common/structures/AutoBePreliminaryRequest.ts +42 -42
  209. package/src/orchestrate/common/structures/IAnalysisSectionEntry.ts +35 -35
  210. package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +72 -72
  211. package/src/orchestrate/common/structures/IAutoBeOrchestrateResult.ts +28 -28
  212. package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +52 -52
  213. package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.ts +34 -34
  214. package/src/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.ts +31 -31
  215. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +32 -32
  216. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +31 -31
  217. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.ts +28 -28
  218. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.ts +88 -88
  219. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.ts +102 -102
  220. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.ts +105 -105
  221. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.ts +32 -32
  222. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.ts +32 -32
  223. package/src/orchestrate/facade/createAutoBeFacadeController.ts +118 -118
  224. package/src/orchestrate/facade/histories/IAutoBeFacadeApplication.ts +139 -139
  225. package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationProps.ts +8 -8
  226. package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationResult.ts +9 -9
  227. package/src/orchestrate/facade/structures/transformFacadeStateMessage.ts +59 -59
  228. package/src/orchestrate/index.ts +5 -5
  229. package/src/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.ts +83 -83
  230. package/src/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.ts +78 -78
  231. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.ts +129 -129
  232. package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.ts +74 -74
  233. package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.ts +68 -68
  234. package/src/orchestrate/interface/histories/transformInterfaceCommonHistory.ts +64 -64
  235. package/src/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.ts +42 -42
  236. package/src/orchestrate/interface/histories/transformInterfaceGroupHistory.ts +103 -103
  237. package/src/orchestrate/interface/histories/transformInterfaceOperationHistory.ts +81 -81
  238. package/src/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.ts +53 -53
  239. package/src/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.ts +49 -49
  240. package/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.ts +94 -94
  241. package/src/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.ts +122 -122
  242. package/src/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.ts +192 -192
  243. package/src/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.ts +189 -189
  244. package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.ts +63 -63
  245. package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.ts +173 -173
  246. package/src/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.ts +88 -88
  247. package/src/orchestrate/interface/index.ts +6 -6
  248. package/src/orchestrate/interface/orchestrateInterface.ts +118 -118
  249. package/src/orchestrate/interface/orchestrateInterfaceActionEndpoint.ts +58 -58
  250. package/src/orchestrate/interface/orchestrateInterfaceAuthorization.ts +208 -208
  251. package/src/orchestrate/interface/orchestrateInterfaceBaseEndpoint.ts +55 -55
  252. package/src/orchestrate/interface/orchestrateInterfaceEndpoint.ts +67 -67
  253. package/src/orchestrate/interface/orchestrateInterfaceEndpointOverall.ts +80 -80
  254. package/src/orchestrate/interface/orchestrateInterfaceEndpointReview.ts +212 -212
  255. package/src/orchestrate/interface/orchestrateInterfaceEndpointWrite.ts +236 -236
  256. package/src/orchestrate/interface/orchestrateInterfaceGroup.ts +166 -166
  257. package/src/orchestrate/interface/orchestrateInterfaceOperation.ts +322 -322
  258. package/src/orchestrate/interface/orchestrateInterfaceOperationReview.ts +245 -245
  259. package/src/orchestrate/interface/orchestrateInterfacePrerequisite.ts +240 -240
  260. package/src/orchestrate/interface/orchestrateInterfaceSchema.ts +191 -191
  261. package/src/orchestrate/interface/orchestrateInterfaceSchemaCasting.ts +274 -274
  262. package/src/orchestrate/interface/orchestrateInterfaceSchemaComplement.ts +329 -329
  263. package/src/orchestrate/interface/orchestrateInterfaceSchemaRefine.ts +292 -292
  264. package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +266 -266
  265. package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +310 -310
  266. package/src/orchestrate/interface/orchestrateInterfaceSchemaWrite.ts +283 -283
  267. package/src/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.ts +260 -260
  268. package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.ts +155 -155
  269. package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.ts +139 -139
  270. package/src/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.ts +277 -277
  271. package/src/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.ts +259 -259
  272. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.ts +152 -152
  273. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.ts +347 -347
  274. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.ts +183 -183
  275. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.ts +263 -263
  276. package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.ts +135 -135
  277. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +128 -128
  278. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.ts +133 -133
  279. package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +122 -122
  280. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +178 -178
  281. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.ts +175 -175
  282. package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +130 -130
  283. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +121 -121
  284. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.ts +153 -153
  285. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.ts +123 -123
  286. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.ts +181 -181
  287. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.ts +45 -45
  288. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.ts +108 -108
  289. package/src/orchestrate/interface/utils/AutoBeJsonSchemaCollection.ts +42 -42
  290. package/src/orchestrate/interface/utils/AutoBeJsonSchemaFactory.ts +714 -714
  291. package/src/orchestrate/interface/utils/AutoBeJsonSchemaNamingConvention.ts +86 -86
  292. package/src/orchestrate/interface/utils/AutoBeJsonSchemaValidator.ts +725 -725
  293. package/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.ts +219 -219
  294. package/src/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.ts +144 -144
  295. package/src/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.ts +104 -104
  296. package/src/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.ts +97 -97
  297. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistory.ts +136 -136
  298. package/src/orchestrate/prisma/histories/transformPrismaCorrectHistory.ts +41 -41
  299. package/src/orchestrate/prisma/histories/transformPrismaGroupHistory.ts +63 -63
  300. package/src/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.ts +79 -79
  301. package/src/orchestrate/prisma/histories/transformPrismaSchemaHistory.ts +97 -97
  302. package/src/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.ts +126 -126
  303. package/src/orchestrate/prisma/index.ts +7 -7
  304. package/src/orchestrate/prisma/orchestratePrisma.ts +296 -296
  305. package/src/orchestrate/prisma/orchestratePrismaAuthorization.ts +173 -173
  306. package/src/orchestrate/prisma/orchestratePrismaAuthorizationReview.ts +183 -183
  307. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +205 -205
  308. package/src/orchestrate/prisma/orchestratePrismaComponentReview.ts +205 -205
  309. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +265 -265
  310. package/src/orchestrate/prisma/orchestratePrismaGroup.ts +121 -121
  311. package/src/orchestrate/prisma/orchestratePrismaGroupReview.ts +141 -141
  312. package/src/orchestrate/prisma/orchestratePrismaSchema.ts +218 -218
  313. package/src/orchestrate/prisma/orchestratePrismaSchemaReview.ts +220 -220
  314. package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.ts +86 -86
  315. package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.ts +103 -103
  316. package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.ts +80 -80
  317. package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.ts +168 -168
  318. package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.ts +63 -63
  319. package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.ts +210 -210
  320. package/src/orchestrate/prisma/programmers/AutoBeDatabaseModelProgrammer.ts +57 -57
  321. package/src/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.ts +92 -92
  322. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.ts +147 -147
  323. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.ts +153 -153
  324. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.ts +142 -142
  325. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.ts +151 -151
  326. package/src/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.ts +157 -157
  327. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.ts +117 -117
  328. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.ts +154 -154
  329. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.ts +144 -144
  330. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.ts +138 -138
  331. package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.ts +89 -89
  332. package/src/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.ts +45 -45
  333. package/src/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.ts +137 -137
  334. package/src/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.ts +64 -64
  335. package/src/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.ts +147 -147
  336. package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.ts +69 -69
  337. package/src/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.ts +94 -94
  338. package/src/orchestrate/realize/histories/transformRealizeOperationWriteHistory.ts +127 -127
  339. package/src/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.ts +147 -147
  340. package/src/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.ts +61 -61
  341. package/src/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.ts +133 -133
  342. package/src/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.ts +30 -30
  343. package/src/orchestrate/realize/index.ts +3 -3
  344. package/src/orchestrate/realize/internal/orchestrateRealizeCorrectCasting.ts +444 -444
  345. package/src/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.ts +449 -449
  346. package/src/orchestrate/realize/orchestrateRealize.ts +143 -143
  347. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +207 -207
  348. package/src/orchestrate/realize/orchestrateRealizeAuthorizationWrite.ts +209 -209
  349. package/src/orchestrate/realize/orchestrateRealizeCollector.ts +41 -41
  350. package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectCasting.ts +43 -43
  351. package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.ts +157 -157
  352. package/src/orchestrate/realize/orchestrateRealizeCollectorPlan.ts +264 -264
  353. package/src/orchestrate/realize/orchestrateRealizeCollectorWrite.ts +225 -225
  354. package/src/orchestrate/realize/orchestrateRealizeOperation.ts +48 -48
  355. package/src/orchestrate/realize/orchestrateRealizeOperationCorrectCasting.ts +69 -69
  356. package/src/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.ts +173 -173
  357. package/src/orchestrate/realize/orchestrateRealizeOperationWrite.ts +262 -262
  358. package/src/orchestrate/realize/orchestrateRealizeTransformer.ts +41 -41
  359. package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.ts +38 -38
  360. package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.ts +160 -160
  361. package/src/orchestrate/realize/orchestrateRealizeTransformerPlan.ts +254 -254
  362. package/src/orchestrate/realize/orchestrateRealizeTransformerWrite.ts +226 -226
  363. package/src/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.ts +424 -424
  364. package/src/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.ts +409 -409
  365. package/src/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.ts +451 -451
  366. package/src/orchestrate/realize/programmers/compileRealizeFiles.ts +65 -65
  367. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +119 -119
  368. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.ts +167 -167
  369. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.ts +191 -191
  370. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.ts +177 -177
  371. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.ts +207 -207
  372. package/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.ts +11 -11
  373. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.ts +134 -134
  374. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.ts +138 -138
  375. package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.ts +32 -32
  376. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.ts +248 -248
  377. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.ts +150 -150
  378. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.ts +278 -278
  379. package/src/orchestrate/realize/utils/AuthorizationFileSystem.ts +10 -10
  380. package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationFileSystem.ts +9 -9
  381. package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationReplaceImport.ts +62 -62
  382. package/src/orchestrate/realize/utils/InternalFileSystem.ts +12 -12
  383. package/src/orchestrate/realize/utils/ProviderFileSystem.ts +4 -4
  384. package/src/orchestrate/realize/utils/filterDiagnostics.ts +25 -25
  385. package/src/orchestrate/realize/utils/generateTS2339Hints.ts +54 -54
  386. package/src/orchestrate/realize/utils/getRealizeWriteImportStatements.ts +42 -42
  387. package/src/orchestrate/realize/utils/getRealizeWriteInputType.ts +88 -88
  388. package/src/orchestrate/realize/utils/printErrorHints.ts +54 -54
  389. package/src/orchestrate/test/compile/getTestArtifacts.ts +124 -124
  390. package/src/orchestrate/test/compile/getTestExternalDeclarations.ts +39 -39
  391. package/src/orchestrate/test/compile/getTestImportStatements.ts +27 -27
  392. package/src/orchestrate/test/experimental/orchestrateTestCorrect.ast +237 -237
  393. package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +322 -322
  394. package/src/orchestrate/test/experimental/transformTestCorrectHistories.ast +52 -52
  395. package/src/orchestrate/test/histories/transformTestAuthorizeWriteHistory.ts +80 -80
  396. package/src/orchestrate/test/histories/transformTestCorrectOverallHistory.ts +116 -116
  397. package/src/orchestrate/test/histories/transformTestGenerationWriteHistory.ts +118 -118
  398. package/src/orchestrate/test/histories/transformTestOperationWriteHistory.ts +287 -287
  399. package/src/orchestrate/test/histories/transformTestPrepareWriteHistory.ts +95 -95
  400. package/src/orchestrate/test/histories/transformTestScenarioHistory.ts +120 -120
  401. package/src/orchestrate/test/histories/transformTestScenarioReviewHistory.ts +99 -99
  402. package/src/orchestrate/test/histories/transformTestValidateEvent.ts +11 -11
  403. package/src/orchestrate/test/index.ts +5 -5
  404. package/src/orchestrate/test/internal/orchestrateTestCorrectCasting.ts +96 -96
  405. package/src/orchestrate/test/internal/orchestrateTestCorrectOverall.ts +219 -219
  406. package/src/orchestrate/test/internal/orchestrateTestCorrectRequest.ts +206 -206
  407. package/src/orchestrate/test/orchestrateTest.ts +161 -161
  408. package/src/orchestrate/test/orchestrateTestAuthorize.ts +125 -125
  409. package/src/orchestrate/test/orchestrateTestAuthorizeWrite.ts +263 -263
  410. package/src/orchestrate/test/orchestrateTestGenerate.ts +121 -121
  411. package/src/orchestrate/test/orchestrateTestGenerateWrite.ts +211 -211
  412. package/src/orchestrate/test/orchestrateTestOperation.ts +133 -133
  413. package/src/orchestrate/test/orchestrateTestOperationWrite.ts +221 -221
  414. package/src/orchestrate/test/orchestrateTestPrepare.ts +117 -117
  415. package/src/orchestrate/test/orchestrateTestPrepareWrite.ts +264 -264
  416. package/src/orchestrate/test/orchestrateTestScenario.ts +290 -290
  417. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +262 -262
  418. package/src/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.ts +149 -149
  419. package/src/orchestrate/test/programmers/AutoBeTestFunctionProgrammer.ts +90 -90
  420. package/src/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.ts +170 -170
  421. package/src/orchestrate/test/programmers/AutoBeTestOperationProgrammer.ts +168 -168
  422. package/src/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.ts +261 -261
  423. package/src/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.ts +316 -316
  424. package/src/orchestrate/test/structures/IAutoBeTestArtifacts.ts +8 -8
  425. package/src/orchestrate/test/structures/IAutoBeTestAuthorizationWriteApplication.ts +113 -113
  426. package/src/orchestrate/test/structures/IAutoBeTestAuthorizeWriteResult.ts +10 -10
  427. package/src/orchestrate/test/structures/IAutoBeTestCorrectOverallApplication.ts +134 -134
  428. package/src/orchestrate/test/structures/IAutoBeTestCorrectRequestApplication.ts +152 -152
  429. package/src/orchestrate/test/structures/IAutoBeTestFunction.ts +10 -10
  430. package/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.ts +10 -10
  431. package/src/orchestrate/test/structures/IAutoBeTestGenerateProcedure.ts +15 -15
  432. package/src/orchestrate/test/structures/IAutoBeTestGenerationWriteApplication.ts +145 -145
  433. package/src/orchestrate/test/structures/IAutoBeTestOperationProcedure.ts +17 -17
  434. package/src/orchestrate/test/structures/IAutoBeTestOperationWriteApplication.ts +162 -162
  435. package/src/orchestrate/test/structures/IAutoBeTestPrepareCorrectOverallApplication.ts +194 -194
  436. package/src/orchestrate/test/structures/IAutoBeTestPrepareProcedure.ts +8 -8
  437. package/src/orchestrate/test/structures/IAutoBeTestPrepareWriteApplication.ts +147 -147
  438. package/src/orchestrate/test/structures/IAutoBeTestProcedure.ts +10 -10
  439. package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +105 -105
  440. package/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.ts +8 -8
  441. package/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationActor.ts +7 -7
  442. package/src/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.ts +133 -133
  443. package/src/orchestrate/test/utils/getPrerequisites.ts +51 -51
  444. package/src/orchestrate/test/utils/getReferenceIds.ts +26 -26
  445. package/src/orchestrate/test/utils/insertScriptToTestResult.ts +14 -14
  446. package/src/structures/IAutoBeConfig.ts +110 -110
  447. package/src/structures/IAutoBeOrchestrateHistory.ts +44 -44
  448. package/src/structures/IAutoBeProps.ts +102 -102
  449. package/src/structures/IAutoBeVendor.ts +113 -113
  450. package/src/utils/AutoBePreliminaryExhaustedError.ts +30 -30
  451. package/src/utils/AutoBeTimeoutError.ts +35 -35
  452. package/src/utils/EmbeddingProvider.ts +4 -4
  453. package/src/utils/LocalEmbeddingProvider.ts +145 -145
  454. package/src/utils/RAGRetrieval.ts +411 -411
  455. package/src/utils/TimedConversation.ts +125 -125
  456. package/src/utils/backoffRetry.ts +169 -169
  457. package/src/utils/divideArray.ts +35 -35
  458. package/src/utils/emplaceMap.ts +31 -31
  459. package/src/utils/executeCachedBatch.ts +67 -67
  460. package/src/utils/forceRetry.ts +15 -15
  461. package/src/utils/getEmbedder.ts +16 -16
  462. package/src/utils/parseTextFunctionCall.ts +437 -437
  463. package/src/utils/predicateStateMessage.ts +131 -131
  464. package/src/utils/validateEmptyCode.ts +73 -73
  465. package/src/utils/validateEnglishOnly.ts +224 -224
  466. package/README.md +0 -261
@@ -1,424 +1,424 @@
1
- import {
2
- AutoBeDatabase,
3
- AutoBeOpenApi,
4
- AutoBeRealizeCollectorMapping,
5
- AutoBeRealizeCollectorPlan,
6
- IAutoBeCompiler,
7
- } from "@autobe/interface";
8
- import { AutoBeOpenApiTypeChecker, StringUtil } from "@autobe/utils";
9
- import {
10
- LlmTypeChecker,
11
- NamingConvention,
12
- OpenApiTypeChecker,
13
- } from "@typia/utils";
14
- import typia, { ILlmApplication, ILlmSchema, IValidation } from "typia";
15
-
16
- import { AutoBeContext } from "../../../context/AutoBeContext";
17
-
18
- export namespace AutoBeRealizeCollectorProgrammer {
19
- export function filter(key: string): boolean {
20
- return key.endsWith(".ICreate");
21
- }
22
-
23
- export function getName(dtoTypeName: string): string {
24
- const replaced: string = dtoTypeName.replace(".ICreate", "");
25
- const entity: string = replaced.startsWith("I")
26
- ? replaced.substring(1)
27
- : replaced;
28
- return `${entity}Collector`;
29
- }
30
-
31
- export function getNeighbors(code: string): string[] {
32
- const unique: Set<string> = new Set();
33
- const regex: RegExp = /(\w+Collector)\.collect/g;
34
- while (true) {
35
- const match: RegExpExecArray | null = regex.exec(code);
36
- if (match === null) break;
37
- unique.add(match[1]!);
38
- }
39
- return Array.from(unique);
40
- }
41
-
42
- export function getMappingMetadata(props: {
43
- application: AutoBeDatabase.IApplication;
44
- model: AutoBeDatabase.IModel;
45
- }): AutoBeRealizeCollectorMapping.Metadata[] {
46
- return [
47
- {
48
- member: props.model.primaryField.name,
49
- kind: "scalar",
50
- nullable: false,
51
- },
52
- ...props.model.plainFields.map(
53
- (pf) =>
54
- ({
55
- member: pf.name,
56
- kind: "scalar",
57
- nullable: pf.nullable,
58
- }) satisfies AutoBeRealizeCollectorMapping.Metadata,
59
- ),
60
- ...props.model.foreignFields.map(
61
- (f) =>
62
- ({
63
- member: f.relation.name,
64
- kind: "belongsTo",
65
- nullable: f.nullable,
66
- }) satisfies AutoBeRealizeCollectorMapping.Metadata,
67
- ),
68
- ...props.application.files
69
- .map((f) => f.models)
70
- .flat()
71
- .map((om) =>
72
- om.foreignFields
73
- .filter((fk) => fk.relation.targetModel === props.model.name)
74
- .map(
75
- (fk) =>
76
- ({
77
- member: fk.relation.oppositeName,
78
- kind: fk.unique ? "hasOne" : "hasMany",
79
- nullable: null,
80
- }) satisfies AutoBeRealizeCollectorMapping.Metadata,
81
- ),
82
- )
83
- .flat(),
84
- ];
85
- }
86
-
87
- export function writeTemplate(props: {
88
- plan: AutoBeRealizeCollectorPlan;
89
- body: AutoBeOpenApi.IJsonSchema;
90
- model: AutoBeDatabase.IModel;
91
- application: AutoBeDatabase.IApplication;
92
- }): string {
93
- const mappings: string[] = getMappingMetadata(props).map((r) => r.member);
94
- return StringUtil.trim`
95
- export namespace ${getName(props.plan.dtoTypeName)} {
96
- export async function collect(props: {
97
- body: ${props.plan.dtoTypeName};
98
- ${
99
- //references
100
- props.plan.references
101
- .map(
102
- (r) =>
103
- `${NamingConvention.camel(r.databaseSchemaName)}: IEntity; // ${r.source}`,
104
- )
105
- .join("\n")
106
- }
107
- ${
108
- // ip
109
- AutoBeOpenApiTypeChecker.isObject(props.body) &&
110
- props.body.properties.ip !== undefined &&
111
- props.model.plainFields.some((f) => f.name === "ip")
112
- ? `ip: string;`
113
- : ""
114
- }
115
- ${
116
- // sequence
117
- AutoBeOpenApiTypeChecker.isObject(props.body) &&
118
- props.body.properties.sequence !== undefined &&
119
- AutoBeOpenApiTypeChecker.isString(props.body.properties.sequence) &&
120
- props.model.plainFields.some(
121
- (f) => f.name === "sequence" && f.type === "int",
122
- )
123
- ? `sequence: number;`
124
- : ""
125
- }
126
- }) {
127
- return {
128
- ${mappings.map((r) => ` ${r}: ...,`).join("\n")}
129
- } satisfies Prisma.${props.plan.databaseSchemaName}CreateInput;
130
- }
131
- }
132
- `;
133
- }
134
-
135
- export async function writeStructures(
136
- ctx: AutoBeContext,
137
- dtoTypeName: string,
138
- ): Promise<Record<string, string>> {
139
- const document: AutoBeOpenApi.IDocument = ctx.state().interface!.document;
140
- const components: AutoBeOpenApi.IComponents = {
141
- authorizations: [],
142
- schemas: {},
143
- };
144
- OpenApiTypeChecker.visit({
145
- components: document.components,
146
- schema: { $ref: `#/components/schemas/${dtoTypeName}` },
147
- closure: (s) => {
148
- if (OpenApiTypeChecker.isReference(s)) {
149
- const key: string = s.$ref.split("/").pop()!;
150
- components.schemas[key] = document.components.schemas[key];
151
- }
152
- },
153
- });
154
-
155
- const compiler: IAutoBeCompiler = await ctx.compiler();
156
- const entries: [string, string][] = Object.entries(
157
- await compiler.interface.write(
158
- {
159
- components,
160
- operations: [],
161
- },
162
- [],
163
- ),
164
- );
165
- return Object.fromEntries(
166
- entries.filter(([key]) => key.startsWith("src/api/structures")),
167
- );
168
- }
169
-
170
- export async function replaceImportStatements(
171
- ctx: AutoBeContext,
172
- props: {
173
- dtoTypeName: string;
174
- schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
175
- code: string;
176
- },
177
- ): Promise<string> {
178
- const compiler: IAutoBeCompiler = await ctx.compiler();
179
- let code: string = await compiler.typescript.removeImportStatements(
180
- props.code,
181
- );
182
-
183
- const imports: string[] = writeImportStatements(props);
184
- const selfName: string = getName(props.dtoTypeName);
185
- code = [
186
- ...imports,
187
- "",
188
- ...getNeighbors(code)
189
- .filter((trs) => trs !== selfName)
190
- .map((trs) => `import { ${trs} } from "./${trs}";`),
191
- "",
192
- code,
193
- ].join("\n");
194
- return await compiler.typescript.beautify(code);
195
- }
196
-
197
- function writeImportStatements(props: {
198
- dtoTypeName: string;
199
- schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
200
- }): string[] {
201
- const typeReferences: Set<string> = new Set();
202
- const visit = (key: string) =>
203
- OpenApiTypeChecker.visit({
204
- schema: {
205
- $ref: `#/components/schemas/${key}`,
206
- },
207
- components: { schemas: props.schemas },
208
- closure: (next) => {
209
- if (OpenApiTypeChecker.isReference(next))
210
- typeReferences.add(next.$ref.split("/").pop()!.split(".")[0]!);
211
- },
212
- });
213
- visit(props.dtoTypeName);
214
-
215
- const imports: string[] = [
216
- `import { Prisma } from "@prisma/sdk";`,
217
- `import { ArrayUtil } from "@nestia/e2e";`,
218
- `import { v4 } from "uuid";`,
219
- "",
220
- `import { IEntity } from "@ORGANIZATION/PROJECT-api/lib/structures/IEntity";`,
221
- ...Array.from(typeReferences).map(
222
- (ref) =>
223
- `import { ${ref} } from "@ORGANIZATION/PROJECT-api/lib/structures/${ref}";`,
224
- ),
225
- "",
226
- `import { MyGlobal } from "../MyGlobal";`,
227
- `import { PasswordUtil } from "../utils/PasswordUtil";`,
228
- ];
229
- return imports;
230
- }
231
-
232
- export function validate(props: {
233
- application: AutoBeDatabase.IApplication;
234
- plan: AutoBeRealizeCollectorPlan;
235
- mappings: AutoBeRealizeCollectorMapping[];
236
- neighbors: AutoBeRealizeCollectorPlan[];
237
- draft: string;
238
- revise: {
239
- review: string;
240
- final: string | null;
241
- };
242
- }): IValidation.IError[] {
243
- const errors: IValidation.IError[] = [];
244
- validateMappings({
245
- application: props.application,
246
- errors,
247
- plan: props.plan,
248
- mappings: props.mappings,
249
- });
250
- validateEmptyCode({
251
- plan: props.plan,
252
- content: props.draft,
253
- path: "$input.request.draft",
254
- errors,
255
- });
256
- validateNeighbors({
257
- plan: props.plan,
258
- neighbors: props.neighbors,
259
- content: props.draft,
260
- path: "$input.request.draft",
261
- errors,
262
- });
263
- if (props.revise.final !== null) {
264
- validateEmptyCode({
265
- plan: props.plan,
266
- content: props.revise.final,
267
- path: "$input.request.revise.final",
268
- errors,
269
- });
270
- validateNeighbors({
271
- plan: props.plan,
272
- neighbors: props.neighbors,
273
- content: props.revise.final,
274
- path: "$input.request.revise.final",
275
- errors,
276
- });
277
- }
278
- return errors;
279
- }
280
-
281
- function validateMappings(props: {
282
- application: AutoBeDatabase.IApplication;
283
- errors: IValidation.IError[];
284
- plan: AutoBeRealizeCollectorPlan;
285
- mappings: AutoBeRealizeCollectorMapping[];
286
- }): void {
287
- const model: AutoBeDatabase.IModel = props.application.files
288
- .map((f) => f.models)
289
- .flat()
290
- .find((m) => m.name === props.plan.databaseSchemaName)!;
291
- const required: AutoBeRealizeCollectorMapping.Metadata[] =
292
- getMappingMetadata({
293
- application: props.application,
294
- model,
295
- });
296
- props.mappings.forEach((m, i) => {
297
- const metadata: AutoBeRealizeCollectorMapping.Metadata | undefined =
298
- required.find((r) => r.member === m.member);
299
- if (metadata === undefined)
300
- props.errors.push({
301
- path: `$input.request.mappings[${i}].member`,
302
- value: m.member,
303
- expected: required.map((r) => JSON.stringify(r)).join(" | "),
304
- description: StringUtil.trim`
305
- '${m.member}' is not a valid Prisma member.
306
-
307
- Please provide mapping only for existing Prisma members:
308
-
309
- ${required.map((r) => `- ${r.member}`).join("\n")}
310
- `,
311
- });
312
- else {
313
- if (metadata.kind !== m.kind)
314
- props.errors.push({
315
- path: `$input.request.mappings[${i}].kind`,
316
- value: m.kind,
317
- expected: `"${metadata.kind}"`,
318
- description: StringUtil.trim`
319
- The mapping kind for Prisma member '${m.member}' is invalid.
320
-
321
- Expected kind is '${metadata.kind}', but received kind is '${m.kind}'.
322
- `,
323
- });
324
- if (metadata.nullable !== m.nullable)
325
- props.errors.push({
326
- path: `$input.request.mappings[${i}].nullable`,
327
- value: m.nullable,
328
- expected: `${metadata.nullable}`,
329
- description: StringUtil.trim`
330
- The mapping nullable for Prisma member '${m.member}' is invalid.
331
-
332
- Expected nullable is '${metadata.nullable}', but received nullable is '${m.nullable}'.
333
- `,
334
- });
335
- }
336
- });
337
- for (const r of required) {
338
- if (props.mappings.some((m) => m.member === r.member)) continue;
339
- props.errors.push({
340
- path: "$input.request.mappings[]",
341
- value: undefined,
342
- expected: StringUtil.trim`{
343
- member: "${r.member}";
344
- kind: "${r.kind}";
345
- how: string;
346
- }`,
347
- description: StringUtil.trim`
348
- You missed mapping for required Prisma member '${r.member}'.
349
-
350
- Make sure to provide mapping for all required members.
351
- `,
352
- });
353
- }
354
- }
355
-
356
- function validateEmptyCode(props: {
357
- plan: AutoBeRealizeCollectorPlan;
358
- content: string;
359
- path: string;
360
- errors: IValidation.IError[];
361
- }): void {
362
- const name: string = getName(props.plan.dtoTypeName);
363
- if (props.content.includes(`export namespace ${name}`) === false)
364
- props.errors.push({
365
- path: props.path,
366
- expected: `Namespace '${name}' to be present in the code.`,
367
- value: props.content,
368
- description: `The generated code does not contain the expected namespace '${name}'.`,
369
- });
370
- }
371
-
372
- function validateNeighbors(props: {
373
- plan: AutoBeRealizeCollectorPlan;
374
- neighbors: AutoBeRealizeCollectorPlan[];
375
- content: string;
376
- path: string;
377
- errors: IValidation.IError[];
378
- }): void {
379
- const selfName: string = getName(props.plan.dtoTypeName);
380
- const neighborNames: string[] = getNeighbors(props.content);
381
- for (const x of neighborNames)
382
- if (
383
- x !== selfName &&
384
- props.neighbors.some((y) => getName(y.dtoTypeName) === x) === false
385
- )
386
- props.errors.push({
387
- path: props.path,
388
- expected: `Use existing transformer.`,
389
- value: props.content,
390
- description: StringUtil.trim`
391
- You've imported and utilized ${x}, but it does not exist.
392
-
393
- Use one of them below, or change to another code:
394
-
395
- ${props.neighbors
396
- .map((y) => `- ${getName(y.dtoTypeName)}`)
397
- .join("\n")}
398
- `,
399
- });
400
- }
401
-
402
- export const fixApplication = (props: {
403
- definition: ILlmApplication;
404
- application: AutoBeDatabase.IApplication;
405
- model: AutoBeDatabase.IModel;
406
- }): void => {
407
- const mapping: ILlmSchema | undefined =
408
- props.definition.functions[0].parameters.$defs[
409
- typia.reflect.name<AutoBeRealizeCollectorMapping>()
410
- ];
411
- if (mapping === undefined || LlmTypeChecker.isObject(mapping) === false)
412
- throw new Error(
413
- "AutoBeRealizeCollectorMapping type is not defined in the function calling schema.",
414
- );
415
-
416
- const member: ILlmSchema | undefined = mapping.properties.member;
417
- if (member === undefined || LlmTypeChecker.isString(member) === false)
418
- throw new Error(
419
- "AutoBeRealizeCollectorMapping.member is not defined or string type.",
420
- );
421
-
422
- member.enum = getMappingMetadata(props).map((m) => m.member);
423
- };
424
- }
1
+ import {
2
+ AutoBeDatabase,
3
+ AutoBeOpenApi,
4
+ AutoBeRealizeCollectorMapping,
5
+ AutoBeRealizeCollectorPlan,
6
+ IAutoBeCompiler,
7
+ } from "@autobe/interface";
8
+ import { AutoBeOpenApiTypeChecker, StringUtil } from "@autobe/utils";
9
+ import {
10
+ LlmTypeChecker,
11
+ NamingConvention,
12
+ OpenApiTypeChecker,
13
+ } from "@typia/utils";
14
+ import typia, { ILlmApplication, ILlmSchema, IValidation } from "typia";
15
+
16
+ import { AutoBeContext } from "../../../context/AutoBeContext";
17
+
18
+ export namespace AutoBeRealizeCollectorProgrammer {
19
+ export function filter(key: string): boolean {
20
+ return key.endsWith(".ICreate");
21
+ }
22
+
23
+ export function getName(dtoTypeName: string): string {
24
+ const replaced: string = dtoTypeName.replace(".ICreate", "");
25
+ const entity: string = replaced.startsWith("I")
26
+ ? replaced.substring(1)
27
+ : replaced;
28
+ return `${entity}Collector`;
29
+ }
30
+
31
+ export function getNeighbors(code: string): string[] {
32
+ const unique: Set<string> = new Set();
33
+ const regex: RegExp = /(\w+Collector)\.collect/g;
34
+ while (true) {
35
+ const match: RegExpExecArray | null = regex.exec(code);
36
+ if (match === null) break;
37
+ unique.add(match[1]!);
38
+ }
39
+ return Array.from(unique);
40
+ }
41
+
42
+ export function getMappingMetadata(props: {
43
+ application: AutoBeDatabase.IApplication;
44
+ model: AutoBeDatabase.IModel;
45
+ }): AutoBeRealizeCollectorMapping.Metadata[] {
46
+ return [
47
+ {
48
+ member: props.model.primaryField.name,
49
+ kind: "scalar",
50
+ nullable: false,
51
+ },
52
+ ...props.model.plainFields.map(
53
+ (pf) =>
54
+ ({
55
+ member: pf.name,
56
+ kind: "scalar",
57
+ nullable: pf.nullable,
58
+ }) satisfies AutoBeRealizeCollectorMapping.Metadata,
59
+ ),
60
+ ...props.model.foreignFields.map(
61
+ (f) =>
62
+ ({
63
+ member: f.relation.name,
64
+ kind: "belongsTo",
65
+ nullable: f.nullable,
66
+ }) satisfies AutoBeRealizeCollectorMapping.Metadata,
67
+ ),
68
+ ...props.application.files
69
+ .map((f) => f.models)
70
+ .flat()
71
+ .map((om) =>
72
+ om.foreignFields
73
+ .filter((fk) => fk.relation.targetModel === props.model.name)
74
+ .map(
75
+ (fk) =>
76
+ ({
77
+ member: fk.relation.oppositeName,
78
+ kind: fk.unique ? "hasOne" : "hasMany",
79
+ nullable: null,
80
+ }) satisfies AutoBeRealizeCollectorMapping.Metadata,
81
+ ),
82
+ )
83
+ .flat(),
84
+ ];
85
+ }
86
+
87
+ export function writeTemplate(props: {
88
+ plan: AutoBeRealizeCollectorPlan;
89
+ body: AutoBeOpenApi.IJsonSchema;
90
+ model: AutoBeDatabase.IModel;
91
+ application: AutoBeDatabase.IApplication;
92
+ }): string {
93
+ const mappings: string[] = getMappingMetadata(props).map((r) => r.member);
94
+ return StringUtil.trim`
95
+ export namespace ${getName(props.plan.dtoTypeName)} {
96
+ export async function collect(props: {
97
+ body: ${props.plan.dtoTypeName};
98
+ ${
99
+ //references
100
+ props.plan.references
101
+ .map(
102
+ (r) =>
103
+ `${NamingConvention.camel(r.databaseSchemaName)}: IEntity; // ${r.source}`,
104
+ )
105
+ .join("\n")
106
+ }
107
+ ${
108
+ // ip
109
+ AutoBeOpenApiTypeChecker.isObject(props.body) &&
110
+ props.body.properties.ip !== undefined &&
111
+ props.model.plainFields.some((f) => f.name === "ip")
112
+ ? `ip: string;`
113
+ : ""
114
+ }
115
+ ${
116
+ // sequence
117
+ AutoBeOpenApiTypeChecker.isObject(props.body) &&
118
+ props.body.properties.sequence !== undefined &&
119
+ AutoBeOpenApiTypeChecker.isString(props.body.properties.sequence) &&
120
+ props.model.plainFields.some(
121
+ (f) => f.name === "sequence" && f.type === "int",
122
+ )
123
+ ? `sequence: number;`
124
+ : ""
125
+ }
126
+ }) {
127
+ return {
128
+ ${mappings.map((r) => ` ${r}: ...,`).join("\n")}
129
+ } satisfies Prisma.${props.plan.databaseSchemaName}CreateInput;
130
+ }
131
+ }
132
+ `;
133
+ }
134
+
135
+ export async function writeStructures(
136
+ ctx: AutoBeContext,
137
+ dtoTypeName: string,
138
+ ): Promise<Record<string, string>> {
139
+ const document: AutoBeOpenApi.IDocument = ctx.state().interface!.document;
140
+ const components: AutoBeOpenApi.IComponents = {
141
+ authorizations: [],
142
+ schemas: {},
143
+ };
144
+ OpenApiTypeChecker.visit({
145
+ components: document.components,
146
+ schema: { $ref: `#/components/schemas/${dtoTypeName}` },
147
+ closure: (s) => {
148
+ if (OpenApiTypeChecker.isReference(s)) {
149
+ const key: string = s.$ref.split("/").pop()!;
150
+ components.schemas[key] = document.components.schemas[key];
151
+ }
152
+ },
153
+ });
154
+
155
+ const compiler: IAutoBeCompiler = await ctx.compiler();
156
+ const entries: [string, string][] = Object.entries(
157
+ await compiler.interface.write(
158
+ {
159
+ components,
160
+ operations: [],
161
+ },
162
+ [],
163
+ ),
164
+ );
165
+ return Object.fromEntries(
166
+ entries.filter(([key]) => key.startsWith("src/api/structures")),
167
+ );
168
+ }
169
+
170
+ export async function replaceImportStatements(
171
+ ctx: AutoBeContext,
172
+ props: {
173
+ dtoTypeName: string;
174
+ schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
175
+ code: string;
176
+ },
177
+ ): Promise<string> {
178
+ const compiler: IAutoBeCompiler = await ctx.compiler();
179
+ let code: string = await compiler.typescript.removeImportStatements(
180
+ props.code,
181
+ );
182
+
183
+ const imports: string[] = writeImportStatements(props);
184
+ const selfName: string = getName(props.dtoTypeName);
185
+ code = [
186
+ ...imports,
187
+ "",
188
+ ...getNeighbors(code)
189
+ .filter((trs) => trs !== selfName)
190
+ .map((trs) => `import { ${trs} } from "./${trs}";`),
191
+ "",
192
+ code,
193
+ ].join("\n");
194
+ return await compiler.typescript.beautify(code);
195
+ }
196
+
197
+ function writeImportStatements(props: {
198
+ dtoTypeName: string;
199
+ schemas: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
200
+ }): string[] {
201
+ const typeReferences: Set<string> = new Set();
202
+ const visit = (key: string) =>
203
+ OpenApiTypeChecker.visit({
204
+ schema: {
205
+ $ref: `#/components/schemas/${key}`,
206
+ },
207
+ components: { schemas: props.schemas },
208
+ closure: (next) => {
209
+ if (OpenApiTypeChecker.isReference(next))
210
+ typeReferences.add(next.$ref.split("/").pop()!.split(".")[0]!);
211
+ },
212
+ });
213
+ visit(props.dtoTypeName);
214
+
215
+ const imports: string[] = [
216
+ `import { Prisma } from "@prisma/sdk";`,
217
+ `import { ArrayUtil } from "@nestia/e2e";`,
218
+ `import { v4 } from "uuid";`,
219
+ "",
220
+ `import { IEntity } from "@ORGANIZATION/PROJECT-api/lib/structures/IEntity";`,
221
+ ...Array.from(typeReferences).map(
222
+ (ref) =>
223
+ `import { ${ref} } from "@ORGANIZATION/PROJECT-api/lib/structures/${ref}";`,
224
+ ),
225
+ "",
226
+ `import { MyGlobal } from "../MyGlobal";`,
227
+ `import { PasswordUtil } from "../utils/PasswordUtil";`,
228
+ ];
229
+ return imports;
230
+ }
231
+
232
+ export function validate(props: {
233
+ application: AutoBeDatabase.IApplication;
234
+ plan: AutoBeRealizeCollectorPlan;
235
+ mappings: AutoBeRealizeCollectorMapping[];
236
+ neighbors: AutoBeRealizeCollectorPlan[];
237
+ draft: string;
238
+ revise: {
239
+ review: string;
240
+ final: string | null;
241
+ };
242
+ }): IValidation.IError[] {
243
+ const errors: IValidation.IError[] = [];
244
+ validateMappings({
245
+ application: props.application,
246
+ errors,
247
+ plan: props.plan,
248
+ mappings: props.mappings,
249
+ });
250
+ validateEmptyCode({
251
+ plan: props.plan,
252
+ content: props.draft,
253
+ path: "$input.request.draft",
254
+ errors,
255
+ });
256
+ validateNeighbors({
257
+ plan: props.plan,
258
+ neighbors: props.neighbors,
259
+ content: props.draft,
260
+ path: "$input.request.draft",
261
+ errors,
262
+ });
263
+ if (props.revise.final !== null) {
264
+ validateEmptyCode({
265
+ plan: props.plan,
266
+ content: props.revise.final,
267
+ path: "$input.request.revise.final",
268
+ errors,
269
+ });
270
+ validateNeighbors({
271
+ plan: props.plan,
272
+ neighbors: props.neighbors,
273
+ content: props.revise.final,
274
+ path: "$input.request.revise.final",
275
+ errors,
276
+ });
277
+ }
278
+ return errors;
279
+ }
280
+
281
+ function validateMappings(props: {
282
+ application: AutoBeDatabase.IApplication;
283
+ errors: IValidation.IError[];
284
+ plan: AutoBeRealizeCollectorPlan;
285
+ mappings: AutoBeRealizeCollectorMapping[];
286
+ }): void {
287
+ const model: AutoBeDatabase.IModel = props.application.files
288
+ .map((f) => f.models)
289
+ .flat()
290
+ .find((m) => m.name === props.plan.databaseSchemaName)!;
291
+ const required: AutoBeRealizeCollectorMapping.Metadata[] =
292
+ getMappingMetadata({
293
+ application: props.application,
294
+ model,
295
+ });
296
+ props.mappings.forEach((m, i) => {
297
+ const metadata: AutoBeRealizeCollectorMapping.Metadata | undefined =
298
+ required.find((r) => r.member === m.member);
299
+ if (metadata === undefined)
300
+ props.errors.push({
301
+ path: `$input.request.mappings[${i}].member`,
302
+ value: m.member,
303
+ expected: required.map((r) => JSON.stringify(r)).join(" | "),
304
+ description: StringUtil.trim`
305
+ '${m.member}' is not a valid Prisma member.
306
+
307
+ Please provide mapping only for existing Prisma members:
308
+
309
+ ${required.map((r) => `- ${r.member}`).join("\n")}
310
+ `,
311
+ });
312
+ else {
313
+ if (metadata.kind !== m.kind)
314
+ props.errors.push({
315
+ path: `$input.request.mappings[${i}].kind`,
316
+ value: m.kind,
317
+ expected: `"${metadata.kind}"`,
318
+ description: StringUtil.trim`
319
+ The mapping kind for Prisma member '${m.member}' is invalid.
320
+
321
+ Expected kind is '${metadata.kind}', but received kind is '${m.kind}'.
322
+ `,
323
+ });
324
+ if (metadata.nullable !== m.nullable)
325
+ props.errors.push({
326
+ path: `$input.request.mappings[${i}].nullable`,
327
+ value: m.nullable,
328
+ expected: `${metadata.nullable}`,
329
+ description: StringUtil.trim`
330
+ The mapping nullable for Prisma member '${m.member}' is invalid.
331
+
332
+ Expected nullable is '${metadata.nullable}', but received nullable is '${m.nullable}'.
333
+ `,
334
+ });
335
+ }
336
+ });
337
+ for (const r of required) {
338
+ if (props.mappings.some((m) => m.member === r.member)) continue;
339
+ props.errors.push({
340
+ path: "$input.request.mappings[]",
341
+ value: undefined,
342
+ expected: StringUtil.trim`{
343
+ member: "${r.member}";
344
+ kind: "${r.kind}";
345
+ how: string;
346
+ }`,
347
+ description: StringUtil.trim`
348
+ You missed mapping for required Prisma member '${r.member}'.
349
+
350
+ Make sure to provide mapping for all required members.
351
+ `,
352
+ });
353
+ }
354
+ }
355
+
356
+ function validateEmptyCode(props: {
357
+ plan: AutoBeRealizeCollectorPlan;
358
+ content: string;
359
+ path: string;
360
+ errors: IValidation.IError[];
361
+ }): void {
362
+ const name: string = getName(props.plan.dtoTypeName);
363
+ if (props.content.includes(`export namespace ${name}`) === false)
364
+ props.errors.push({
365
+ path: props.path,
366
+ expected: `Namespace '${name}' to be present in the code.`,
367
+ value: props.content,
368
+ description: `The generated code does not contain the expected namespace '${name}'.`,
369
+ });
370
+ }
371
+
372
+ function validateNeighbors(props: {
373
+ plan: AutoBeRealizeCollectorPlan;
374
+ neighbors: AutoBeRealizeCollectorPlan[];
375
+ content: string;
376
+ path: string;
377
+ errors: IValidation.IError[];
378
+ }): void {
379
+ const selfName: string = getName(props.plan.dtoTypeName);
380
+ const neighborNames: string[] = getNeighbors(props.content);
381
+ for (const x of neighborNames)
382
+ if (
383
+ x !== selfName &&
384
+ props.neighbors.some((y) => getName(y.dtoTypeName) === x) === false
385
+ )
386
+ props.errors.push({
387
+ path: props.path,
388
+ expected: `Use existing transformer.`,
389
+ value: props.content,
390
+ description: StringUtil.trim`
391
+ You've imported and utilized ${x}, but it does not exist.
392
+
393
+ Use one of them below, or change to another code:
394
+
395
+ ${props.neighbors
396
+ .map((y) => `- ${getName(y.dtoTypeName)}`)
397
+ .join("\n")}
398
+ `,
399
+ });
400
+ }
401
+
402
+ export const fixApplication = (props: {
403
+ definition: ILlmApplication;
404
+ application: AutoBeDatabase.IApplication;
405
+ model: AutoBeDatabase.IModel;
406
+ }): void => {
407
+ const mapping: ILlmSchema | undefined =
408
+ props.definition.functions[0].parameters.$defs[
409
+ typia.reflect.name<AutoBeRealizeCollectorMapping>()
410
+ ];
411
+ if (mapping === undefined || LlmTypeChecker.isObject(mapping) === false)
412
+ throw new Error(
413
+ "AutoBeRealizeCollectorMapping type is not defined in the function calling schema.",
414
+ );
415
+
416
+ const member: ILlmSchema | undefined = mapping.properties.member;
417
+ if (member === undefined || LlmTypeChecker.isString(member) === false)
418
+ throw new Error(
419
+ "AutoBeRealizeCollectorMapping.member is not defined or string type.",
420
+ );
421
+
422
+ member.enum = getMappingMetadata(props).map((m) => m.member);
423
+ };
424
+ }