@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,610 +1,610 @@
1
- import { AgenticaExecuteHistory, MicroAgenticaHistory } from "@agentica/core";
2
- import {
3
- AutoBeDatabase,
4
- AutoBeEventSource,
5
- AutoBeOpenApi,
6
- AutoBePreliminaryKind,
7
- AutoBeRealizeCollectorFunction,
8
- AutoBeRealizeTransformerFunction,
9
- } from "@autobe/interface";
10
- import { OpenApiTypeChecker } from "@typia/utils";
11
- import typia from "typia";
12
- import { v7 } from "uuid";
13
-
14
- import { AutoBeContext } from "../../context/AutoBeContext";
15
- import { AutoBePreliminaryController } from "./AutoBePreliminaryController";
16
- import { complementPreliminaryCollection } from "./internal/complementPreliminaryCollection";
17
- import { IAutoBePreliminaryRequest } from "./structures/AutoBePreliminaryRequest";
18
- import { IAnalysisSectionEntry } from "./structures/IAnalysisSectionEntry";
19
- import { IAutoBePreliminaryCollection } from "./structures/IAutoBePreliminaryCollection";
20
-
21
- export const orchestratePreliminary = async <
22
- Kind extends AutoBePreliminaryKind,
23
- >(
24
- ctx: AutoBeContext,
25
- props: {
26
- source_id: string;
27
- source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
28
- histories: MicroAgenticaHistory[];
29
- preliminary: AutoBePreliminaryController<Kind>;
30
- trial: number;
31
- },
32
- ): Promise<void> => {
33
- const executes: AgenticaExecuteHistory[] = props.histories.filter(
34
- (h) => h.type === "execute",
35
- );
36
- if (executes.length === 0) {
37
- // Some vendors (notably certain Qwen/OpenRouter routes) occasionally return
38
- // an empty turn where only the user message is recorded. Treat it as a
39
- // transient no-op so the outer RAG loop can retry instead of failing fast.
40
- if (props.histories.every((h) => h.type === "userMessage")) return;
41
- throw new Error("Failed to function calling from the preliminary step.");
42
- }
43
-
44
- for (const exec of executes) {
45
- // ANALYSIS
46
- // ANALYSIS
47
- if (isAnalysisSections(props.preliminary, exec.arguments)) {
48
- const ps: AutoBePreliminaryController<"analysisSections"> =
49
- props.preliminary;
50
- orchestrateAnalysisSections(ctx, {
51
- source: props.source,
52
- source_id: props.source_id,
53
- trial: props.trial,
54
- all: ps.getAll().analysisSections,
55
- local: ps.getLocal().analysisSections,
56
- arguments: exec.arguments,
57
- previous: false,
58
- });
59
- props.preliminary.advanceAnalysisPage();
60
- } else if (isPreviousAnalysisSections(props.preliminary, exec.arguments)) {
61
- const ps: AutoBePreliminaryController<"previousAnalysisSections"> =
62
- props.preliminary;
63
- orchestrateAnalysisSections(ctx, {
64
- source: props.source,
65
- source_id: props.source_id,
66
- trial: props.trial,
67
- all: ps.getAll().previousAnalysisSections,
68
- local: ps.getLocal().previousAnalysisSections,
69
- arguments: exec.arguments,
70
- previous: true,
71
- });
72
- props.preliminary.advanceAnalysisPage();
73
- }
74
- // PRISMA SCHEMAS
75
- else if (isPrismaSchemas(props.preliminary, exec.arguments)) {
76
- const pp: AutoBePreliminaryController<"databaseSchemas"> =
77
- props.preliminary;
78
- orchestratePrismaSchemas(ctx, {
79
- source: props.source,
80
- source_id: props.source_id,
81
- trial: props.trial,
82
- all: pp.getAll().databaseSchemas,
83
- local: pp.getLocal().databaseSchemas,
84
- arguments: exec.arguments,
85
- previous: false,
86
- });
87
- } else if (isPreviousPrismaSchemas(props.preliminary, exec.arguments)) {
88
- const pp: AutoBePreliminaryController<"previousDatabaseSchemas"> =
89
- props.preliminary;
90
- orchestratePrismaSchemas(ctx, {
91
- source: props.source,
92
- source_id: props.source_id,
93
- trial: props.trial,
94
- all: pp.getAll().previousDatabaseSchemas,
95
- local: pp.getLocal().previousDatabaseSchemas,
96
- arguments: exec.arguments,
97
- previous: true,
98
- });
99
- }
100
- // INTERFACE OPERATIONS
101
- else if (isInterfaceOperations(props.preliminary, exec.arguments)) {
102
- const pi: AutoBePreliminaryController<"interfaceOperations"> =
103
- props.preliminary;
104
- orchestrateInterfaceOperations(ctx, {
105
- source: props.source,
106
- source_id: props.source_id,
107
- trial: props.trial,
108
- all: pi.getAll().interfaceOperations,
109
- local: pi.getLocal().interfaceOperations,
110
- arguments: exec.arguments,
111
- previous: false,
112
- });
113
- } else if (
114
- isPreviousInterfaceOperations(props.preliminary, exec.arguments)
115
- ) {
116
- const pi: AutoBePreliminaryController<"previousInterfaceOperations"> =
117
- props.preliminary;
118
- orchestrateInterfaceOperations(ctx, {
119
- source: props.source,
120
- source_id: props.source_id,
121
- trial: props.trial,
122
- all: pi.getAll().previousInterfaceOperations,
123
- local: pi.getLocal().previousInterfaceOperations,
124
- arguments: exec.arguments,
125
- previous: true,
126
- });
127
- }
128
- // INTERFACE SCHEMAS
129
- else if (isInterfaceSchemas(props.preliminary, exec.arguments)) {
130
- const ps: AutoBePreliminaryController<"interfaceSchemas"> =
131
- props.preliminary;
132
- orchestrateInterfaceSchemas(ctx, {
133
- source: props.source,
134
- source_id: props.source_id,
135
- trial: props.trial,
136
- all: ps.getAll().interfaceSchemas,
137
- local: ps.getLocal().interfaceSchemas,
138
- arguments: exec.arguments,
139
- previous: false,
140
- });
141
- } else if (isPreviousInterfaceSchemas(props.preliminary, exec.arguments)) {
142
- const ps: AutoBePreliminaryController<"previousInterfaceSchemas"> =
143
- props.preliminary;
144
- orchestrateInterfaceSchemas(ctx, {
145
- source: props.source,
146
- source_id: props.source_id,
147
- trial: props.trial,
148
- all: ps.getAll().previousInterfaceSchemas,
149
- local: ps.getLocal().previousInterfaceSchemas,
150
- arguments: exec.arguments,
151
- previous: true,
152
- });
153
- }
154
- // REALIZE COLLECTORS
155
- else if (isRealizeCollectors(props.preliminary, exec.arguments)) {
156
- const rc: AutoBePreliminaryController<"realizeCollectors"> =
157
- props.preliminary;
158
- orchestrateRealizeCollectors(ctx, {
159
- source: props.source,
160
- source_id: props.source_id,
161
- trial: props.trial,
162
- all: rc.getAll().realizeCollectors,
163
- local: rc.getLocal().realizeCollectors,
164
- arguments: exec.arguments,
165
- });
166
- }
167
- // REALIZE TRANSFORMERS
168
- else if (isRealizeTransformers(props.preliminary, exec.arguments)) {
169
- const rt: AutoBePreliminaryController<"realizeTransformers"> =
170
- props.preliminary;
171
- orchestrateRealizeTransformers(ctx, {
172
- source: props.source,
173
- source_id: props.source_id,
174
- trial: props.trial,
175
- all: rt.getAll().realizeTransformers,
176
- local: rt.getLocal().realizeTransformers,
177
- arguments: exec.arguments,
178
- });
179
- }
180
- }
181
- complementPreliminaryCollection({
182
- kinds: props.preliminary.getKinds(),
183
- all: props.preliminary.getAll() as IAutoBePreliminaryCollection,
184
- local: props.preliminary.getLocal() as IAutoBePreliminaryCollection,
185
- prerequisite: false,
186
- });
187
- };
188
-
189
- /* -----------------------------------------------------------
190
- TYPE CHECKERS
191
- ----------------------------------------------------------- */
192
- const isAnalysisSections = (
193
- // biome-ignore lint: intended
194
- preliminary: AutoBePreliminaryController<any>,
195
- input: unknown,
196
- ): preliminary is AutoBePreliminaryController<"analysisSections"> =>
197
- typia.is<IAutoBePreliminaryRequest<"analysisSections">>(input) &&
198
- preliminary.getAll()[
199
- typia.misc.literals<
200
- Extract<keyof IAutoBePreliminaryCollection, "analysisSections">
201
- >()[0]
202
- ] !== undefined;
203
-
204
- const isPreviousAnalysisSections = (
205
- // biome-ignore lint: intended
206
- preliminary: AutoBePreliminaryController<any>,
207
- input: unknown,
208
- ): preliminary is AutoBePreliminaryController<"previousAnalysisSections"> =>
209
- typia.is<IAutoBePreliminaryRequest<"previousAnalysisSections">>(input) &&
210
- preliminary.getAll()[
211
- typia.misc.literals<
212
- Extract<keyof IAutoBePreliminaryCollection, "previousAnalysisSections">
213
- >()[0]
214
- ] !== undefined;
215
-
216
- const isPrismaSchemas = (
217
- // biome-ignore lint: intended
218
- preliminary: AutoBePreliminaryController<any>,
219
- input: unknown,
220
- ): preliminary is AutoBePreliminaryController<"databaseSchemas"> =>
221
- typia.is<IAutoBePreliminaryRequest<"databaseSchemas">>(input) &&
222
- preliminary.getAll()[
223
- typia.misc.literals<
224
- Extract<keyof IAutoBePreliminaryCollection, "databaseSchemas">
225
- >()[0]
226
- ] !== undefined;
227
-
228
- const isPreviousPrismaSchemas = (
229
- // biome-ignore lint: intended
230
- preliminary: AutoBePreliminaryController<any>,
231
- input: unknown,
232
- ): preliminary is AutoBePreliminaryController<"previousDatabaseSchemas"> =>
233
- typia.is<IAutoBePreliminaryRequest<"previousDatabaseSchemas">>(input) &&
234
- preliminary.getAll()[
235
- typia.misc.literals<
236
- Extract<keyof IAutoBePreliminaryCollection, "previousDatabaseSchemas">
237
- >()[0]
238
- ] !== undefined;
239
-
240
- const isInterfaceOperations = (
241
- // biome-ignore lint: intended
242
- preliminary: AutoBePreliminaryController<any>,
243
- input: unknown,
244
- ): preliminary is AutoBePreliminaryController<"interfaceOperations"> =>
245
- typia.is<IAutoBePreliminaryRequest<"interfaceOperations">>(input) &&
246
- preliminary.getAll()[
247
- typia.misc.literals<
248
- Extract<keyof IAutoBePreliminaryCollection, "interfaceOperations">
249
- >()[0]
250
- ] !== undefined;
251
-
252
- const isPreviousInterfaceOperations = (
253
- // biome-ignore lint: intended
254
- preliminary: AutoBePreliminaryController<any>,
255
- input: unknown,
256
- ): preliminary is AutoBePreliminaryController<"previousInterfaceOperations"> =>
257
- typia.is<IAutoBePreliminaryRequest<"previousInterfaceOperations">>(input) &&
258
- preliminary.getAll()[
259
- typia.misc.literals<
260
- Extract<keyof IAutoBePreliminaryCollection, "previousInterfaceOperations">
261
- >()[0]
262
- ] !== undefined;
263
-
264
- const isInterfaceSchemas = (
265
- // biome-ignore lint: intended
266
- preliminary: AutoBePreliminaryController<any>,
267
- input: unknown,
268
- ): preliminary is AutoBePreliminaryController<"interfaceSchemas"> =>
269
- typia.is<IAutoBePreliminaryRequest<"interfaceSchemas">>(input) &&
270
- preliminary.getAll()[
271
- typia.misc.literals<
272
- Extract<keyof IAutoBePreliminaryCollection, "interfaceSchemas">
273
- >()[0]
274
- ] !== undefined;
275
-
276
- const isPreviousInterfaceSchemas = (
277
- // biome-ignore lint: intended
278
- preliminary: AutoBePreliminaryController<any>,
279
- input: unknown,
280
- ): preliminary is AutoBePreliminaryController<"previousInterfaceSchemas"> =>
281
- typia.is<IAutoBePreliminaryRequest<"previousInterfaceSchemas">>(input) &&
282
- preliminary.getAll()[
283
- typia.misc.literals<
284
- Extract<keyof IAutoBePreliminaryCollection, "previousInterfaceSchemas">
285
- >()[0]
286
- ] !== undefined;
287
-
288
- const isRealizeCollectors = (
289
- // biome-ignore lint: intended
290
- preliminary: AutoBePreliminaryController<any>,
291
- input: unknown,
292
- ): preliminary is AutoBePreliminaryController<"realizeCollectors"> =>
293
- typia.is<IAutoBePreliminaryRequest<"realizeCollectors">>(input) &&
294
- preliminary.getAll()[
295
- typia.misc.literals<
296
- Extract<keyof IAutoBePreliminaryCollection, "realizeCollectors">
297
- >()[0]
298
- ] !== undefined;
299
-
300
- const isRealizeTransformers = (
301
- // biome-ignore lint: intended
302
- preliminary: AutoBePreliminaryController<any>,
303
- input: unknown,
304
- ): preliminary is AutoBePreliminaryController<"realizeTransformers"> =>
305
- typia.is<IAutoBePreliminaryRequest<"realizeTransformers">>(input) &&
306
- preliminary.getAll()[
307
- typia.misc.literals<
308
- Extract<keyof IAutoBePreliminaryCollection, "realizeTransformers">
309
- >()[0]
310
- ] !== undefined;
311
-
312
- /* -----------------------------------------------------------
313
- ORCHESTRATORS
314
- ----------------------------------------------------------- */
315
- const orchestrateAnalysisSections = (
316
- ctx: AutoBeContext,
317
- props: {
318
- source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
319
- source_id: string;
320
- trial: number;
321
- all: IAnalysisSectionEntry[];
322
- local: IAnalysisSectionEntry[];
323
- arguments: unknown;
324
- previous: boolean;
325
- },
326
- ): void => {
327
- if (props.previous) {
328
- if (
329
- false ===
330
- typia.is<IAutoBePreliminaryRequest<"previousAnalysisSections">>(
331
- props.arguments,
332
- )
333
- )
334
- return;
335
- } else if (
336
- false ===
337
- typia.is<IAutoBePreliminaryRequest<"analysisSections">>(props.arguments)
338
- )
339
- return;
340
-
341
- const existing: number[] = props.local.map((s) => s.id);
342
- for (const sectionId of props.arguments.request.sectionIds) {
343
- const section: IAnalysisSectionEntry | undefined = props.all.find(
344
- (s) => s.id === sectionId,
345
- );
346
- if (section === undefined) continue;
347
- else if (props.local.find((s) => s.id === sectionId) === undefined)
348
- props.local.push(section);
349
- }
350
- ctx.dispatch({
351
- type: "preliminary",
352
- id: v7(),
353
- function: props.previous ? "previousAnalysisSections" : "analysisSections",
354
- source: props.source,
355
- source_id: props.source_id,
356
- // biome-ignore lint/suspicious/noExplicitAny: conditional type narrowing not available at dispatch site
357
- existing: existing as any,
358
- // biome-ignore lint/suspicious/noExplicitAny: conditional type narrowing not available at dispatch site
359
- requested: props.arguments.request.sectionIds as any,
360
- trial: props.trial,
361
- created_at: new Date().toISOString(),
362
- });
363
- };
364
-
365
- const orchestratePrismaSchemas = (
366
- ctx: AutoBeContext,
367
- props: {
368
- source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
369
- source_id: string;
370
- trial: number;
371
- all: AutoBeDatabase.IModel[];
372
- local: AutoBeDatabase.IModel[];
373
- arguments: unknown;
374
- previous: boolean;
375
- },
376
- ): void => {
377
- if (props.previous) {
378
- if (
379
- false ===
380
- typia.is<IAutoBePreliminaryRequest<"previousDatabaseSchemas">>(
381
- props.arguments,
382
- )
383
- )
384
- return;
385
- } else if (
386
- false ===
387
- typia.is<IAutoBePreliminaryRequest<"databaseSchemas">>(props.arguments)
388
- )
389
- return;
390
-
391
- const existing: string[] = props.local.map((m) => m.name);
392
- for (const name of props.arguments.request.schemaNames) {
393
- const model: AutoBeDatabase.IModel | undefined = props.all.find(
394
- (m) => m.name === name,
395
- );
396
- if (model === undefined) continue;
397
- else if (props.local.find((m) => m.name === name) === undefined)
398
- props.local.push(model);
399
- }
400
- ctx.dispatch({
401
- type: "preliminary",
402
- id: v7(),
403
- function: props.previous ? "previousDatabaseSchemas" : "databaseSchemas",
404
- source: props.source,
405
- source_id: props.source_id,
406
- existing,
407
- requested: props.arguments.request.schemaNames,
408
- trial: props.trial,
409
- created_at: new Date().toISOString(),
410
- });
411
- };
412
-
413
- const orchestrateInterfaceOperations = (
414
- ctx: AutoBeContext,
415
- props: {
416
- source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
417
- source_id: string;
418
- trial: number;
419
- all: AutoBeOpenApi.IOperation[];
420
- local: AutoBeOpenApi.IOperation[];
421
- arguments: unknown;
422
- previous: boolean;
423
- },
424
- ): void => {
425
- if (props.previous) {
426
- if (
427
- false ===
428
- typia.is<IAutoBePreliminaryRequest<"previousInterfaceOperations">>(
429
- props.arguments,
430
- )
431
- )
432
- return;
433
- } else if (
434
- false ===
435
- typia.is<IAutoBePreliminaryRequest<"interfaceOperations">>(props.arguments)
436
- )
437
- return;
438
-
439
- const existing: AutoBeOpenApi.IEndpoint[] = props.local.map((o) => ({
440
- method: o.method,
441
- path: o.path,
442
- }));
443
- for (const endpoint of props.arguments.request.endpoints) {
444
- if (
445
- props.local.find(
446
- (v) => v.method === endpoint.method && v.path === endpoint.path,
447
- ) !== undefined
448
- )
449
- continue; // duplicated
450
-
451
- const operation: AutoBeOpenApi.IOperation | undefined = props.all.find(
452
- (v) => v.method === endpoint.method && v.path === endpoint.path,
453
- );
454
- if (operation !== undefined) props.local.push(operation);
455
- }
456
- ctx.dispatch({
457
- type: "preliminary",
458
- id: v7(),
459
- function: props.previous
460
- ? "previousInterfaceOperations"
461
- : "interfaceOperations",
462
- source: props.source,
463
- source_id: props.source_id,
464
- existing,
465
- requested: props.arguments.request.endpoints,
466
- trial: props.trial,
467
- created_at: new Date().toISOString(),
468
- });
469
- };
470
-
471
- const orchestrateInterfaceSchemas = (
472
- ctx: AutoBeContext,
473
- props: {
474
- source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
475
- source_id: string;
476
- trial: number;
477
- all: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
478
- local: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
479
- arguments: unknown;
480
- previous: boolean;
481
- },
482
- dispatch: boolean = true,
483
- ): void => {
484
- if (props.previous) {
485
- if (
486
- false ===
487
- typia.is<IAutoBePreliminaryRequest<"previousInterfaceSchemas">>(
488
- props.arguments,
489
- )
490
- )
491
- return;
492
- } else if (
493
- false ===
494
- typia.is<IAutoBePreliminaryRequest<"interfaceSchemas">>(props.arguments)
495
- )
496
- return;
497
-
498
- const existing: string[] = Object.keys(props.local);
499
- const collected: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive> = {};
500
- for (const key of props.arguments.request.typeNames) {
501
- OpenApiTypeChecker.visit({
502
- components: {
503
- schemas: props.all,
504
- },
505
- schema: { $ref: `#/components/schemas/${key}` },
506
- closure: (next) => {
507
- if (OpenApiTypeChecker.isReference(next)) {
508
- const last: string = next.$ref.split("/").pop()!;
509
- if (props.all[last] !== undefined) collected[last] = props.all[last];
510
- }
511
- },
512
- });
513
- }
514
- Object.assign(props.local, collected);
515
-
516
- if (dispatch === true)
517
- ctx.dispatch({
518
- type: "preliminary",
519
- id: v7(),
520
- function: props.previous
521
- ? "previousInterfaceSchemas"
522
- : "interfaceSchemas",
523
- source: props.source,
524
- source_id: props.source_id,
525
- existing,
526
- requested: props.arguments.request.typeNames,
527
- trial: props.trial,
528
- created_at: new Date().toISOString(),
529
- });
530
- };
531
-
532
- const orchestrateRealizeCollectors = (
533
- ctx: AutoBeContext,
534
- props: {
535
- source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
536
- source_id: string;
537
- trial: number;
538
- all: AutoBeRealizeCollectorFunction[];
539
- local: AutoBeRealizeCollectorFunction[];
540
- arguments: unknown;
541
- },
542
- ): void => {
543
- if (
544
- false ===
545
- typia.is<IAutoBePreliminaryRequest<"realizeCollectors">>(props.arguments)
546
- )
547
- return;
548
-
549
- const existing: string[] = props.local.map((c) => c.plan.dtoTypeName);
550
- for (const dtoTypeName of props.arguments.request.dtoTypeNames) {
551
- const collector: AutoBeRealizeCollectorFunction | undefined =
552
- props.all.find((c) => c.plan.dtoTypeName === dtoTypeName);
553
- if (collector === undefined) continue;
554
- else if (
555
- props.local.find((c) => c.plan.dtoTypeName === dtoTypeName) === undefined
556
- )
557
- props.local.push(collector);
558
- }
559
- ctx.dispatch({
560
- type: "preliminary",
561
- id: v7(),
562
- function: "realizeCollectors",
563
- source: props.source,
564
- source_id: props.source_id,
565
- existing,
566
- requested: props.arguments.request.dtoTypeNames,
567
- trial: props.trial,
568
- created_at: new Date().toISOString(),
569
- });
570
- };
571
-
572
- const orchestrateRealizeTransformers = (
573
- ctx: AutoBeContext,
574
- props: {
575
- source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
576
- source_id: string;
577
- trial: number;
578
- all: AutoBeRealizeTransformerFunction[];
579
- local: AutoBeRealizeTransformerFunction[];
580
- arguments: unknown;
581
- },
582
- ): void => {
583
- if (
584
- false ===
585
- typia.is<IAutoBePreliminaryRequest<"realizeTransformers">>(props.arguments)
586
- )
587
- return;
588
-
589
- const existing: string[] = props.local.map((t) => t.plan.dtoTypeName);
590
- for (const dtoTypeName of props.arguments.request.dtoTypeNames) {
591
- const transformer: AutoBeRealizeTransformerFunction | undefined =
592
- props.all.find((t) => t.plan.dtoTypeName === dtoTypeName);
593
- if (
594
- transformer !== undefined &&
595
- existing.find((e) => e === dtoTypeName) === undefined
596
- )
597
- props.local.push(transformer);
598
- }
599
- ctx.dispatch({
600
- type: "preliminary",
601
- id: v7(),
602
- function: "realizeTransformers",
603
- source: props.source,
604
- source_id: props.source_id,
605
- existing,
606
- requested: props.arguments.request.dtoTypeNames,
607
- trial: props.trial,
608
- created_at: new Date().toISOString(),
609
- });
610
- };
1
+ import { AgenticaExecuteHistory, MicroAgenticaHistory } from "@agentica/core";
2
+ import {
3
+ AutoBeDatabase,
4
+ AutoBeEventSource,
5
+ AutoBeOpenApi,
6
+ AutoBePreliminaryKind,
7
+ AutoBeRealizeCollectorFunction,
8
+ AutoBeRealizeTransformerFunction,
9
+ } from "@autobe/interface";
10
+ import { OpenApiTypeChecker } from "@typia/utils";
11
+ import typia from "typia";
12
+ import { v7 } from "uuid";
13
+
14
+ import { AutoBeContext } from "../../context/AutoBeContext";
15
+ import { AutoBePreliminaryController } from "./AutoBePreliminaryController";
16
+ import { complementPreliminaryCollection } from "./internal/complementPreliminaryCollection";
17
+ import { IAutoBePreliminaryRequest } from "./structures/AutoBePreliminaryRequest";
18
+ import { IAnalysisSectionEntry } from "./structures/IAnalysisSectionEntry";
19
+ import { IAutoBePreliminaryCollection } from "./structures/IAutoBePreliminaryCollection";
20
+
21
+ export const orchestratePreliminary = async <
22
+ Kind extends AutoBePreliminaryKind,
23
+ >(
24
+ ctx: AutoBeContext,
25
+ props: {
26
+ source_id: string;
27
+ source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
28
+ histories: MicroAgenticaHistory[];
29
+ preliminary: AutoBePreliminaryController<Kind>;
30
+ trial: number;
31
+ },
32
+ ): Promise<void> => {
33
+ const executes: AgenticaExecuteHistory[] = props.histories.filter(
34
+ (h) => h.type === "execute",
35
+ );
36
+ if (executes.length === 0) {
37
+ // Some vendors (notably certain Qwen/OpenRouter routes) occasionally return
38
+ // an empty turn where only the user message is recorded. Treat it as a
39
+ // transient no-op so the outer RAG loop can retry instead of failing fast.
40
+ if (props.histories.every((h) => h.type === "userMessage")) return;
41
+ throw new Error("Failed to function calling from the preliminary step.");
42
+ }
43
+
44
+ for (const exec of executes) {
45
+ // ANALYSIS
46
+ // ANALYSIS
47
+ if (isAnalysisSections(props.preliminary, exec.arguments)) {
48
+ const ps: AutoBePreliminaryController<"analysisSections"> =
49
+ props.preliminary;
50
+ orchestrateAnalysisSections(ctx, {
51
+ source: props.source,
52
+ source_id: props.source_id,
53
+ trial: props.trial,
54
+ all: ps.getAll().analysisSections,
55
+ local: ps.getLocal().analysisSections,
56
+ arguments: exec.arguments,
57
+ previous: false,
58
+ });
59
+ props.preliminary.advanceAnalysisPage();
60
+ } else if (isPreviousAnalysisSections(props.preliminary, exec.arguments)) {
61
+ const ps: AutoBePreliminaryController<"previousAnalysisSections"> =
62
+ props.preliminary;
63
+ orchestrateAnalysisSections(ctx, {
64
+ source: props.source,
65
+ source_id: props.source_id,
66
+ trial: props.trial,
67
+ all: ps.getAll().previousAnalysisSections,
68
+ local: ps.getLocal().previousAnalysisSections,
69
+ arguments: exec.arguments,
70
+ previous: true,
71
+ });
72
+ props.preliminary.advanceAnalysisPage();
73
+ }
74
+ // PRISMA SCHEMAS
75
+ else if (isPrismaSchemas(props.preliminary, exec.arguments)) {
76
+ const pp: AutoBePreliminaryController<"databaseSchemas"> =
77
+ props.preliminary;
78
+ orchestratePrismaSchemas(ctx, {
79
+ source: props.source,
80
+ source_id: props.source_id,
81
+ trial: props.trial,
82
+ all: pp.getAll().databaseSchemas,
83
+ local: pp.getLocal().databaseSchemas,
84
+ arguments: exec.arguments,
85
+ previous: false,
86
+ });
87
+ } else if (isPreviousPrismaSchemas(props.preliminary, exec.arguments)) {
88
+ const pp: AutoBePreliminaryController<"previousDatabaseSchemas"> =
89
+ props.preliminary;
90
+ orchestratePrismaSchemas(ctx, {
91
+ source: props.source,
92
+ source_id: props.source_id,
93
+ trial: props.trial,
94
+ all: pp.getAll().previousDatabaseSchemas,
95
+ local: pp.getLocal().previousDatabaseSchemas,
96
+ arguments: exec.arguments,
97
+ previous: true,
98
+ });
99
+ }
100
+ // INTERFACE OPERATIONS
101
+ else if (isInterfaceOperations(props.preliminary, exec.arguments)) {
102
+ const pi: AutoBePreliminaryController<"interfaceOperations"> =
103
+ props.preliminary;
104
+ orchestrateInterfaceOperations(ctx, {
105
+ source: props.source,
106
+ source_id: props.source_id,
107
+ trial: props.trial,
108
+ all: pi.getAll().interfaceOperations,
109
+ local: pi.getLocal().interfaceOperations,
110
+ arguments: exec.arguments,
111
+ previous: false,
112
+ });
113
+ } else if (
114
+ isPreviousInterfaceOperations(props.preliminary, exec.arguments)
115
+ ) {
116
+ const pi: AutoBePreliminaryController<"previousInterfaceOperations"> =
117
+ props.preliminary;
118
+ orchestrateInterfaceOperations(ctx, {
119
+ source: props.source,
120
+ source_id: props.source_id,
121
+ trial: props.trial,
122
+ all: pi.getAll().previousInterfaceOperations,
123
+ local: pi.getLocal().previousInterfaceOperations,
124
+ arguments: exec.arguments,
125
+ previous: true,
126
+ });
127
+ }
128
+ // INTERFACE SCHEMAS
129
+ else if (isInterfaceSchemas(props.preliminary, exec.arguments)) {
130
+ const ps: AutoBePreliminaryController<"interfaceSchemas"> =
131
+ props.preliminary;
132
+ orchestrateInterfaceSchemas(ctx, {
133
+ source: props.source,
134
+ source_id: props.source_id,
135
+ trial: props.trial,
136
+ all: ps.getAll().interfaceSchemas,
137
+ local: ps.getLocal().interfaceSchemas,
138
+ arguments: exec.arguments,
139
+ previous: false,
140
+ });
141
+ } else if (isPreviousInterfaceSchemas(props.preliminary, exec.arguments)) {
142
+ const ps: AutoBePreliminaryController<"previousInterfaceSchemas"> =
143
+ props.preliminary;
144
+ orchestrateInterfaceSchemas(ctx, {
145
+ source: props.source,
146
+ source_id: props.source_id,
147
+ trial: props.trial,
148
+ all: ps.getAll().previousInterfaceSchemas,
149
+ local: ps.getLocal().previousInterfaceSchemas,
150
+ arguments: exec.arguments,
151
+ previous: true,
152
+ });
153
+ }
154
+ // REALIZE COLLECTORS
155
+ else if (isRealizeCollectors(props.preliminary, exec.arguments)) {
156
+ const rc: AutoBePreliminaryController<"realizeCollectors"> =
157
+ props.preliminary;
158
+ orchestrateRealizeCollectors(ctx, {
159
+ source: props.source,
160
+ source_id: props.source_id,
161
+ trial: props.trial,
162
+ all: rc.getAll().realizeCollectors,
163
+ local: rc.getLocal().realizeCollectors,
164
+ arguments: exec.arguments,
165
+ });
166
+ }
167
+ // REALIZE TRANSFORMERS
168
+ else if (isRealizeTransformers(props.preliminary, exec.arguments)) {
169
+ const rt: AutoBePreliminaryController<"realizeTransformers"> =
170
+ props.preliminary;
171
+ orchestrateRealizeTransformers(ctx, {
172
+ source: props.source,
173
+ source_id: props.source_id,
174
+ trial: props.trial,
175
+ all: rt.getAll().realizeTransformers,
176
+ local: rt.getLocal().realizeTransformers,
177
+ arguments: exec.arguments,
178
+ });
179
+ }
180
+ }
181
+ complementPreliminaryCollection({
182
+ kinds: props.preliminary.getKinds(),
183
+ all: props.preliminary.getAll() as IAutoBePreliminaryCollection,
184
+ local: props.preliminary.getLocal() as IAutoBePreliminaryCollection,
185
+ prerequisite: false,
186
+ });
187
+ };
188
+
189
+ /* -----------------------------------------------------------
190
+ TYPE CHECKERS
191
+ ----------------------------------------------------------- */
192
+ const isAnalysisSections = (
193
+ // biome-ignore lint: intended
194
+ preliminary: AutoBePreliminaryController<any>,
195
+ input: unknown,
196
+ ): preliminary is AutoBePreliminaryController<"analysisSections"> =>
197
+ typia.is<IAutoBePreliminaryRequest<"analysisSections">>(input) &&
198
+ preliminary.getAll()[
199
+ typia.misc.literals<
200
+ Extract<keyof IAutoBePreliminaryCollection, "analysisSections">
201
+ >()[0]
202
+ ] !== undefined;
203
+
204
+ const isPreviousAnalysisSections = (
205
+ // biome-ignore lint: intended
206
+ preliminary: AutoBePreliminaryController<any>,
207
+ input: unknown,
208
+ ): preliminary is AutoBePreliminaryController<"previousAnalysisSections"> =>
209
+ typia.is<IAutoBePreliminaryRequest<"previousAnalysisSections">>(input) &&
210
+ preliminary.getAll()[
211
+ typia.misc.literals<
212
+ Extract<keyof IAutoBePreliminaryCollection, "previousAnalysisSections">
213
+ >()[0]
214
+ ] !== undefined;
215
+
216
+ const isPrismaSchemas = (
217
+ // biome-ignore lint: intended
218
+ preliminary: AutoBePreliminaryController<any>,
219
+ input: unknown,
220
+ ): preliminary is AutoBePreliminaryController<"databaseSchemas"> =>
221
+ typia.is<IAutoBePreliminaryRequest<"databaseSchemas">>(input) &&
222
+ preliminary.getAll()[
223
+ typia.misc.literals<
224
+ Extract<keyof IAutoBePreliminaryCollection, "databaseSchemas">
225
+ >()[0]
226
+ ] !== undefined;
227
+
228
+ const isPreviousPrismaSchemas = (
229
+ // biome-ignore lint: intended
230
+ preliminary: AutoBePreliminaryController<any>,
231
+ input: unknown,
232
+ ): preliminary is AutoBePreliminaryController<"previousDatabaseSchemas"> =>
233
+ typia.is<IAutoBePreliminaryRequest<"previousDatabaseSchemas">>(input) &&
234
+ preliminary.getAll()[
235
+ typia.misc.literals<
236
+ Extract<keyof IAutoBePreliminaryCollection, "previousDatabaseSchemas">
237
+ >()[0]
238
+ ] !== undefined;
239
+
240
+ const isInterfaceOperations = (
241
+ // biome-ignore lint: intended
242
+ preliminary: AutoBePreliminaryController<any>,
243
+ input: unknown,
244
+ ): preliminary is AutoBePreliminaryController<"interfaceOperations"> =>
245
+ typia.is<IAutoBePreliminaryRequest<"interfaceOperations">>(input) &&
246
+ preliminary.getAll()[
247
+ typia.misc.literals<
248
+ Extract<keyof IAutoBePreliminaryCollection, "interfaceOperations">
249
+ >()[0]
250
+ ] !== undefined;
251
+
252
+ const isPreviousInterfaceOperations = (
253
+ // biome-ignore lint: intended
254
+ preliminary: AutoBePreliminaryController<any>,
255
+ input: unknown,
256
+ ): preliminary is AutoBePreliminaryController<"previousInterfaceOperations"> =>
257
+ typia.is<IAutoBePreliminaryRequest<"previousInterfaceOperations">>(input) &&
258
+ preliminary.getAll()[
259
+ typia.misc.literals<
260
+ Extract<keyof IAutoBePreliminaryCollection, "previousInterfaceOperations">
261
+ >()[0]
262
+ ] !== undefined;
263
+
264
+ const isInterfaceSchemas = (
265
+ // biome-ignore lint: intended
266
+ preliminary: AutoBePreliminaryController<any>,
267
+ input: unknown,
268
+ ): preliminary is AutoBePreliminaryController<"interfaceSchemas"> =>
269
+ typia.is<IAutoBePreliminaryRequest<"interfaceSchemas">>(input) &&
270
+ preliminary.getAll()[
271
+ typia.misc.literals<
272
+ Extract<keyof IAutoBePreliminaryCollection, "interfaceSchemas">
273
+ >()[0]
274
+ ] !== undefined;
275
+
276
+ const isPreviousInterfaceSchemas = (
277
+ // biome-ignore lint: intended
278
+ preliminary: AutoBePreliminaryController<any>,
279
+ input: unknown,
280
+ ): preliminary is AutoBePreliminaryController<"previousInterfaceSchemas"> =>
281
+ typia.is<IAutoBePreliminaryRequest<"previousInterfaceSchemas">>(input) &&
282
+ preliminary.getAll()[
283
+ typia.misc.literals<
284
+ Extract<keyof IAutoBePreliminaryCollection, "previousInterfaceSchemas">
285
+ >()[0]
286
+ ] !== undefined;
287
+
288
+ const isRealizeCollectors = (
289
+ // biome-ignore lint: intended
290
+ preliminary: AutoBePreliminaryController<any>,
291
+ input: unknown,
292
+ ): preliminary is AutoBePreliminaryController<"realizeCollectors"> =>
293
+ typia.is<IAutoBePreliminaryRequest<"realizeCollectors">>(input) &&
294
+ preliminary.getAll()[
295
+ typia.misc.literals<
296
+ Extract<keyof IAutoBePreliminaryCollection, "realizeCollectors">
297
+ >()[0]
298
+ ] !== undefined;
299
+
300
+ const isRealizeTransformers = (
301
+ // biome-ignore lint: intended
302
+ preliminary: AutoBePreliminaryController<any>,
303
+ input: unknown,
304
+ ): preliminary is AutoBePreliminaryController<"realizeTransformers"> =>
305
+ typia.is<IAutoBePreliminaryRequest<"realizeTransformers">>(input) &&
306
+ preliminary.getAll()[
307
+ typia.misc.literals<
308
+ Extract<keyof IAutoBePreliminaryCollection, "realizeTransformers">
309
+ >()[0]
310
+ ] !== undefined;
311
+
312
+ /* -----------------------------------------------------------
313
+ ORCHESTRATORS
314
+ ----------------------------------------------------------- */
315
+ const orchestrateAnalysisSections = (
316
+ ctx: AutoBeContext,
317
+ props: {
318
+ source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
319
+ source_id: string;
320
+ trial: number;
321
+ all: IAnalysisSectionEntry[];
322
+ local: IAnalysisSectionEntry[];
323
+ arguments: unknown;
324
+ previous: boolean;
325
+ },
326
+ ): void => {
327
+ if (props.previous) {
328
+ if (
329
+ false ===
330
+ typia.is<IAutoBePreliminaryRequest<"previousAnalysisSections">>(
331
+ props.arguments,
332
+ )
333
+ )
334
+ return;
335
+ } else if (
336
+ false ===
337
+ typia.is<IAutoBePreliminaryRequest<"analysisSections">>(props.arguments)
338
+ )
339
+ return;
340
+
341
+ const existing: number[] = props.local.map((s) => s.id);
342
+ for (const sectionId of props.arguments.request.sectionIds) {
343
+ const section: IAnalysisSectionEntry | undefined = props.all.find(
344
+ (s) => s.id === sectionId,
345
+ );
346
+ if (section === undefined) continue;
347
+ else if (props.local.find((s) => s.id === sectionId) === undefined)
348
+ props.local.push(section);
349
+ }
350
+ ctx.dispatch({
351
+ type: "preliminary",
352
+ id: v7(),
353
+ function: props.previous ? "previousAnalysisSections" : "analysisSections",
354
+ source: props.source,
355
+ source_id: props.source_id,
356
+ // biome-ignore lint/suspicious/noExplicitAny: conditional type narrowing not available at dispatch site
357
+ existing: existing as any,
358
+ // biome-ignore lint/suspicious/noExplicitAny: conditional type narrowing not available at dispatch site
359
+ requested: props.arguments.request.sectionIds as any,
360
+ trial: props.trial,
361
+ created_at: new Date().toISOString(),
362
+ });
363
+ };
364
+
365
+ const orchestratePrismaSchemas = (
366
+ ctx: AutoBeContext,
367
+ props: {
368
+ source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
369
+ source_id: string;
370
+ trial: number;
371
+ all: AutoBeDatabase.IModel[];
372
+ local: AutoBeDatabase.IModel[];
373
+ arguments: unknown;
374
+ previous: boolean;
375
+ },
376
+ ): void => {
377
+ if (props.previous) {
378
+ if (
379
+ false ===
380
+ typia.is<IAutoBePreliminaryRequest<"previousDatabaseSchemas">>(
381
+ props.arguments,
382
+ )
383
+ )
384
+ return;
385
+ } else if (
386
+ false ===
387
+ typia.is<IAutoBePreliminaryRequest<"databaseSchemas">>(props.arguments)
388
+ )
389
+ return;
390
+
391
+ const existing: string[] = props.local.map((m) => m.name);
392
+ for (const name of props.arguments.request.schemaNames) {
393
+ const model: AutoBeDatabase.IModel | undefined = props.all.find(
394
+ (m) => m.name === name,
395
+ );
396
+ if (model === undefined) continue;
397
+ else if (props.local.find((m) => m.name === name) === undefined)
398
+ props.local.push(model);
399
+ }
400
+ ctx.dispatch({
401
+ type: "preliminary",
402
+ id: v7(),
403
+ function: props.previous ? "previousDatabaseSchemas" : "databaseSchemas",
404
+ source: props.source,
405
+ source_id: props.source_id,
406
+ existing,
407
+ requested: props.arguments.request.schemaNames,
408
+ trial: props.trial,
409
+ created_at: new Date().toISOString(),
410
+ });
411
+ };
412
+
413
+ const orchestrateInterfaceOperations = (
414
+ ctx: AutoBeContext,
415
+ props: {
416
+ source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
417
+ source_id: string;
418
+ trial: number;
419
+ all: AutoBeOpenApi.IOperation[];
420
+ local: AutoBeOpenApi.IOperation[];
421
+ arguments: unknown;
422
+ previous: boolean;
423
+ },
424
+ ): void => {
425
+ if (props.previous) {
426
+ if (
427
+ false ===
428
+ typia.is<IAutoBePreliminaryRequest<"previousInterfaceOperations">>(
429
+ props.arguments,
430
+ )
431
+ )
432
+ return;
433
+ } else if (
434
+ false ===
435
+ typia.is<IAutoBePreliminaryRequest<"interfaceOperations">>(props.arguments)
436
+ )
437
+ return;
438
+
439
+ const existing: AutoBeOpenApi.IEndpoint[] = props.local.map((o) => ({
440
+ method: o.method,
441
+ path: o.path,
442
+ }));
443
+ for (const endpoint of props.arguments.request.endpoints) {
444
+ if (
445
+ props.local.find(
446
+ (v) => v.method === endpoint.method && v.path === endpoint.path,
447
+ ) !== undefined
448
+ )
449
+ continue; // duplicated
450
+
451
+ const operation: AutoBeOpenApi.IOperation | undefined = props.all.find(
452
+ (v) => v.method === endpoint.method && v.path === endpoint.path,
453
+ );
454
+ if (operation !== undefined) props.local.push(operation);
455
+ }
456
+ ctx.dispatch({
457
+ type: "preliminary",
458
+ id: v7(),
459
+ function: props.previous
460
+ ? "previousInterfaceOperations"
461
+ : "interfaceOperations",
462
+ source: props.source,
463
+ source_id: props.source_id,
464
+ existing,
465
+ requested: props.arguments.request.endpoints,
466
+ trial: props.trial,
467
+ created_at: new Date().toISOString(),
468
+ });
469
+ };
470
+
471
+ const orchestrateInterfaceSchemas = (
472
+ ctx: AutoBeContext,
473
+ props: {
474
+ source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
475
+ source_id: string;
476
+ trial: number;
477
+ all: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
478
+ local: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive>;
479
+ arguments: unknown;
480
+ previous: boolean;
481
+ },
482
+ dispatch: boolean = true,
483
+ ): void => {
484
+ if (props.previous) {
485
+ if (
486
+ false ===
487
+ typia.is<IAutoBePreliminaryRequest<"previousInterfaceSchemas">>(
488
+ props.arguments,
489
+ )
490
+ )
491
+ return;
492
+ } else if (
493
+ false ===
494
+ typia.is<IAutoBePreliminaryRequest<"interfaceSchemas">>(props.arguments)
495
+ )
496
+ return;
497
+
498
+ const existing: string[] = Object.keys(props.local);
499
+ const collected: Record<string, AutoBeOpenApi.IJsonSchemaDescriptive> = {};
500
+ for (const key of props.arguments.request.typeNames) {
501
+ OpenApiTypeChecker.visit({
502
+ components: {
503
+ schemas: props.all,
504
+ },
505
+ schema: { $ref: `#/components/schemas/${key}` },
506
+ closure: (next) => {
507
+ if (OpenApiTypeChecker.isReference(next)) {
508
+ const last: string = next.$ref.split("/").pop()!;
509
+ if (props.all[last] !== undefined) collected[last] = props.all[last];
510
+ }
511
+ },
512
+ });
513
+ }
514
+ Object.assign(props.local, collected);
515
+
516
+ if (dispatch === true)
517
+ ctx.dispatch({
518
+ type: "preliminary",
519
+ id: v7(),
520
+ function: props.previous
521
+ ? "previousInterfaceSchemas"
522
+ : "interfaceSchemas",
523
+ source: props.source,
524
+ source_id: props.source_id,
525
+ existing,
526
+ requested: props.arguments.request.typeNames,
527
+ trial: props.trial,
528
+ created_at: new Date().toISOString(),
529
+ });
530
+ };
531
+
532
+ const orchestrateRealizeCollectors = (
533
+ ctx: AutoBeContext,
534
+ props: {
535
+ source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
536
+ source_id: string;
537
+ trial: number;
538
+ all: AutoBeRealizeCollectorFunction[];
539
+ local: AutoBeRealizeCollectorFunction[];
540
+ arguments: unknown;
541
+ },
542
+ ): void => {
543
+ if (
544
+ false ===
545
+ typia.is<IAutoBePreliminaryRequest<"realizeCollectors">>(props.arguments)
546
+ )
547
+ return;
548
+
549
+ const existing: string[] = props.local.map((c) => c.plan.dtoTypeName);
550
+ for (const dtoTypeName of props.arguments.request.dtoTypeNames) {
551
+ const collector: AutoBeRealizeCollectorFunction | undefined =
552
+ props.all.find((c) => c.plan.dtoTypeName === dtoTypeName);
553
+ if (collector === undefined) continue;
554
+ else if (
555
+ props.local.find((c) => c.plan.dtoTypeName === dtoTypeName) === undefined
556
+ )
557
+ props.local.push(collector);
558
+ }
559
+ ctx.dispatch({
560
+ type: "preliminary",
561
+ id: v7(),
562
+ function: "realizeCollectors",
563
+ source: props.source,
564
+ source_id: props.source_id,
565
+ existing,
566
+ requested: props.arguments.request.dtoTypeNames,
567
+ trial: props.trial,
568
+ created_at: new Date().toISOString(),
569
+ });
570
+ };
571
+
572
+ const orchestrateRealizeTransformers = (
573
+ ctx: AutoBeContext,
574
+ props: {
575
+ source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
576
+ source_id: string;
577
+ trial: number;
578
+ all: AutoBeRealizeTransformerFunction[];
579
+ local: AutoBeRealizeTransformerFunction[];
580
+ arguments: unknown;
581
+ },
582
+ ): void => {
583
+ if (
584
+ false ===
585
+ typia.is<IAutoBePreliminaryRequest<"realizeTransformers">>(props.arguments)
586
+ )
587
+ return;
588
+
589
+ const existing: string[] = props.local.map((t) => t.plan.dtoTypeName);
590
+ for (const dtoTypeName of props.arguments.request.dtoTypeNames) {
591
+ const transformer: AutoBeRealizeTransformerFunction | undefined =
592
+ props.all.find((t) => t.plan.dtoTypeName === dtoTypeName);
593
+ if (
594
+ transformer !== undefined &&
595
+ existing.find((e) => e === dtoTypeName) === undefined
596
+ )
597
+ props.local.push(transformer);
598
+ }
599
+ ctx.dispatch({
600
+ type: "preliminary",
601
+ id: v7(),
602
+ function: "realizeTransformers",
603
+ source: props.source,
604
+ source_id: props.source_id,
605
+ existing,
606
+ requested: props.arguments.request.dtoTypeNames,
607
+ trial: props.trial,
608
+ created_at: new Date().toISOString(),
609
+ });
610
+ };