@autobe/agent 0.28.1 → 0.29.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 (531) hide show
  1. package/lib/AutoBeAgent.js +1 -0
  2. package/lib/AutoBeAgent.js.map +1 -1
  3. package/lib/AutoBeMockAgent.js +1 -0
  4. package/lib/AutoBeMockAgent.js.map +1 -1
  5. package/lib/constants/AutoBeConfigConstant.d.ts +3 -1
  6. package/lib/constants/AutoBeSystemPromptConstant.d.ts +39 -26
  7. package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
  8. package/lib/context/AutoBeContext.d.ts +1 -1
  9. package/lib/factory/createAutoBeContext.js +5 -3
  10. package/lib/factory/createAutoBeContext.js.map +1 -1
  11. package/lib/index.mjs +43501 -23602
  12. package/lib/index.mjs.map +1 -1
  13. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.d.ts +7 -2
  14. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js +11 -21
  15. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js.map +1 -1
  16. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.d.ts +2 -2
  17. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +12 -5
  18. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  19. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.d.ts +2 -2
  20. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +53 -50
  21. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -1
  22. package/lib/orchestrate/analyze/orchestrateAnalyze.js +2 -2
  23. package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
  24. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js +855 -258
  25. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
  26. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +2 -14
  27. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  28. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +2 -9
  29. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
  30. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +110 -36
  31. package/lib/orchestrate/common/AutoBePreliminaryController.d.ts +40 -0
  32. package/lib/orchestrate/common/AutoBePreliminaryController.js +97 -0
  33. package/lib/orchestrate/common/AutoBePreliminaryController.js.map +1 -0
  34. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.d.ts +8 -0
  35. package/lib/orchestrate/{realize/histories/transformRealizeCorrectCastingHistories.js → common/histories/transformCommonCorrectCastingHistory.js} +16 -13
  36. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.js.map +1 -0
  37. package/lib/orchestrate/common/histories/transformPreliminaryHistory.d.ts +4 -0
  38. package/lib/orchestrate/common/histories/transformPreliminaryHistory.js +285 -0
  39. package/lib/orchestrate/common/histories/transformPreliminaryHistory.js.map +1 -0
  40. package/lib/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.d.ts → transformPreviousAndLatestCorrectHistory.d.ts} +1 -1
  41. package/lib/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.js → transformPreviousAndLatestCorrectHistory.js} +4 -4
  42. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js.map +1 -0
  43. package/lib/orchestrate/common/internal/complementPreliminaryCollection.d.ts +7 -0
  44. package/lib/orchestrate/common/internal/complementPreliminaryCollection.js +99 -0
  45. package/lib/orchestrate/common/internal/complementPreliminaryCollection.js.map +1 -0
  46. package/lib/orchestrate/common/internal/createPreliminaryCollection.d.ts +3 -0
  47. package/lib/orchestrate/common/internal/createPreliminaryCollection.js +20 -0
  48. package/lib/orchestrate/common/internal/createPreliminaryCollection.js.map +1 -0
  49. package/lib/orchestrate/common/internal/validatePreliminary.d.ts +5 -0
  50. package/lib/orchestrate/common/internal/validatePreliminary.js +217 -0
  51. package/lib/orchestrate/common/internal/validatePreliminary.js.map +1 -0
  52. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +10 -22
  53. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
  54. package/lib/orchestrate/common/orchestratePreliminary.d.ts +12 -0
  55. package/lib/orchestrate/common/orchestratePreliminary.js +231 -0
  56. package/lib/orchestrate/common/orchestratePreliminary.js.map +1 -0
  57. package/lib/orchestrate/common/structures/AutoBePreliminaryRequest.d.ts +16 -0
  58. package/lib/orchestrate/{realize/structures/IAutoBeRealizeAuthorizationApplication.js → common/structures/AutoBePreliminaryRequest.js} +1 -1
  59. package/lib/orchestrate/common/structures/AutoBePreliminaryRequest.js.map +1 -0
  60. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.d.ts +1 -4
  61. package/lib/orchestrate/common/structures/IAutoBeOrchestrateResult.d.ts +9 -0
  62. package/lib/orchestrate/{interface/structures/IAutoBeInterfacePrerequisitesApplication.js → common/structures/IAutoBeOrchestrateResult.js} +1 -1
  63. package/lib/orchestrate/common/structures/IAutoBeOrchestrateResult.js.map +1 -0
  64. package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.d.ts +8 -0
  65. package/lib/orchestrate/{interface/structures/IAutoBeInterfaceEndpointsReviewApplication.js → common/structures/IAutoBePreliminaryCollection.js} +1 -1
  66. package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.js.map +1 -0
  67. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.d.ts +27 -0
  68. package/lib/orchestrate/{interface/structures/IAutoBeInterfaceOperationsReviewApplication.js → common/structures/IAutoBePreliminaryGetAnalysisFiles.js} +1 -1
  69. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.js.map +1 -0
  70. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.d.ts +28 -0
  71. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.js +3 -0
  72. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.js.map +1 -0
  73. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.d.ts +27 -0
  74. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.js +3 -0
  75. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.js.map +1 -0
  76. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.d.ts +27 -0
  77. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.js +3 -0
  78. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.js.map +1 -0
  79. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.d.ts +10 -0
  80. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js +70 -0
  81. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js.map +1 -0
  82. package/lib/orchestrate/interface/histories/transformInterfaceCommonHistory.d.ts +3 -0
  83. package/lib/orchestrate/interface/histories/{transformInterfaceCommonHistories.js → transformInterfaceCommonHistory.js} +4 -4
  84. package/lib/orchestrate/interface/histories/transformInterfaceCommonHistory.js.map +1 -0
  85. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.d.ts +9 -0
  86. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.js +60 -0
  87. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.js.map +1 -0
  88. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.d.ts +12 -0
  89. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.js +63 -0
  90. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.js.map +1 -0
  91. package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.d.ts +7 -0
  92. package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.js +36 -0
  93. package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.js.map +1 -0
  94. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.d.ts +6 -0
  95. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js +68 -0
  96. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js.map +1 -0
  97. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.d.ts +9 -0
  98. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js +72 -0
  99. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js.map +1 -0
  100. package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.d.ts +7 -0
  101. package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js +38 -0
  102. package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js.map +1 -0
  103. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.d.ts +8 -0
  104. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js +73 -0
  105. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js.map +1 -0
  106. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.d.ts +11 -0
  107. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.js +95 -0
  108. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.js.map +1 -0
  109. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.d.ts +5 -0
  110. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js +54 -0
  111. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js.map +1 -0
  112. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.d.ts +12 -0
  113. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js +75 -0
  114. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js.map +1 -0
  115. package/lib/orchestrate/interface/orchestrateInterface.js +90 -46
  116. package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
  117. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.d.ts +6 -0
  118. package/lib/orchestrate/interface/{orchestrateInterfaceAuthorizations.js → orchestrateInterfaceAuthorization.js} +1370 -226
  119. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js.map +1 -0
  120. package/lib/orchestrate/interface/orchestrateInterfaceComplement.d.ts +4 -3
  121. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +2807 -532
  122. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  123. package/lib/orchestrate/interface/{orchestrateInterfaceEndpoints.d.ts → orchestrateInterfaceEndpoint.d.ts} +1 -1
  124. package/lib/orchestrate/interface/orchestrateInterfaceEndpoint.js +1356 -0
  125. package/lib/orchestrate/interface/orchestrateInterfaceEndpoint.js.map +1 -0
  126. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.d.ts +4 -0
  127. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +1337 -0
  128. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js.map +1 -0
  129. package/lib/orchestrate/interface/{orchestrateInterfaceGroups.d.ts → orchestrateInterfaceGroup.d.ts} +1 -2
  130. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +621 -0
  131. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js.map +1 -0
  132. package/lib/orchestrate/interface/{orchestrateInterfaceOperations.d.ts → orchestrateInterfaceOperation.d.ts} +1 -2
  133. package/lib/orchestrate/interface/{orchestrateInterfaceOperations.js → orchestrateInterfaceOperation.js} +1275 -216
  134. package/lib/orchestrate/interface/orchestrateInterfaceOperation.js.map +1 -0
  135. package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.d.ts +4 -0
  136. package/lib/orchestrate/interface/{orchestrateInterfaceOperationsReview.js → orchestrateInterfaceOperationReview.js} +1421 -247
  137. package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js.map +1 -0
  138. package/lib/orchestrate/interface/{orchestrateInterfacePrerequisites.d.ts → orchestrateInterfacePrerequisite.d.ts} +1 -1
  139. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +2159 -0
  140. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js.map +1 -0
  141. package/lib/orchestrate/interface/{orchestrateInterfaceSchemas.d.ts → orchestrateInterfaceSchema.d.ts} +1 -2
  142. package/lib/orchestrate/interface/{orchestrateInterfaceSchemas.js → orchestrateInterfaceSchema.js} +2550 -546
  143. package/lib/orchestrate/interface/orchestrateInterfaceSchema.js.map +1 -0
  144. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +7 -17
  145. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js.map +1 -1
  146. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.d.ts +1 -0
  147. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +2823 -548
  148. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  149. package/lib/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.d.ts +56 -5
  150. package/lib/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.d.ts +57 -10
  151. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.d.ts +55 -10
  152. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.d.ts +96 -0
  153. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.js +3 -0
  154. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.js.map +1 -0
  155. package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +6 -82
  156. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +58 -13
  157. package/lib/orchestrate/interface/structures/{IAutoBeInterfaceOperationsReviewApplication.d.ts → IAutoBeInterfaceOperationReviewApplication.d.ts} +58 -28
  158. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.js +3 -0
  159. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.js.map +1 -0
  160. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.d.ts +98 -0
  161. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.js +3 -0
  162. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.js.map +1 -0
  163. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +56 -15
  164. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaContentReviewApplication.d.ts +62 -22
  165. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaRelationReviewApplication.d.ts +60 -21
  166. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaSecurityReviewApplication.d.ts +61 -19
  167. package/lib/orchestrate/interface/utils/JsonSchemaFactory.js +29 -23
  168. package/lib/orchestrate/interface/utils/JsonSchemaFactory.js.map +1 -1
  169. package/lib/orchestrate/interface/utils/JsonSchemaNamingConvention.js +67 -61
  170. package/lib/orchestrate/interface/utils/JsonSchemaNamingConvention.js.map +1 -1
  171. package/lib/orchestrate/interface/utils/JsonSchemaValidator.d.ts +2 -1
  172. package/lib/orchestrate/interface/utils/JsonSchemaValidator.js +52 -25
  173. package/lib/orchestrate/interface/utils/JsonSchemaValidator.js.map +1 -1
  174. package/lib/orchestrate/interface/utils/OperationValidator.js +59 -1
  175. package/lib/orchestrate/interface/utils/OperationValidator.js.map +1 -1
  176. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.d.ts +6 -0
  177. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js +98 -0
  178. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js.map +1 -0
  179. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.d.ts +7 -0
  180. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js +31 -0
  181. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js.map +1 -0
  182. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.d.ts +7 -0
  183. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.js +38 -0
  184. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.js.map +1 -0
  185. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.d.ts +8 -0
  186. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js +79 -0
  187. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js.map +1 -0
  188. package/lib/orchestrate/prisma/orchestratePrisma.js +9 -6
  189. package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
  190. package/lib/orchestrate/prisma/orchestratePrismaComponent.d.ts +1 -1
  191. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +8 -14
  192. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  193. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +2863 -1543
  194. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  195. package/lib/orchestrate/prisma/orchestratePrismaReview.d.ts +1 -1
  196. package/lib/orchestrate/prisma/orchestratePrismaReview.js +2886 -1566
  197. package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
  198. package/lib/orchestrate/prisma/{orchestratePrismaSchemas.d.ts → orchestratePrismaSchema.d.ts} +1 -1
  199. package/lib/orchestrate/prisma/orchestratePrismaSchema.js +3068 -0
  200. package/lib/orchestrate/prisma/orchestratePrismaSchema.js.map +1 -0
  201. package/lib/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.d.ts +74 -76
  202. package/lib/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.d.ts +90 -72
  203. package/lib/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.d.ts +89 -66
  204. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.d.ts +9 -0
  205. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js +79 -0
  206. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js.map +1 -0
  207. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.d.ts +7 -0
  208. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js +41 -0
  209. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js.map +1 -0
  210. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.d.ts +12 -0
  211. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js +67 -0
  212. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js.map +1 -0
  213. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.d.ts +18 -0
  214. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.js +54 -0
  215. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.js.map +1 -0
  216. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.d.ts +4 -2
  217. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js +140 -106
  218. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -1
  219. package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.d.ts +3 -0
  220. package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.js +23 -0
  221. package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.js.map +1 -0
  222. package/lib/orchestrate/realize/orchestrateRealize.js +4 -4
  223. package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
  224. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.d.ts +5 -1
  225. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +1288 -572
  226. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
  227. package/lib/orchestrate/realize/{orchestrateRealizeAuthorization.d.ts → orchestrateRealizeAuthorizationWrite.d.ts} +1 -1
  228. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +1410 -0
  229. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js.map +1 -0
  230. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +664 -140
  231. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  232. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js +20 -65
  233. package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js.map +1 -1
  234. package/lib/orchestrate/realize/orchestrateRealizeWrite.js +660 -135
  235. package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
  236. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +79 -19
  237. package/lib/orchestrate/realize/structures/{IAutoBeRealizeAuthorizationApplication.d.ts → IAutoBeRealizeAuthorizationWriteApplication.d.ts} +60 -27
  238. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.js +3 -0
  239. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.js.map +1 -0
  240. package/lib/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +54 -5
  241. package/lib/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.d.ts +6 -14
  242. package/lib/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts +54 -6
  243. package/lib/orchestrate/realize/utils/generateRealizeScenario.d.ts +1 -3
  244. package/lib/orchestrate/realize/utils/generateRealizeScenario.js +1 -7
  245. package/lib/orchestrate/realize/utils/generateRealizeScenario.js.map +1 -1
  246. package/lib/orchestrate/test/histories/transformTestCorrectHistories.d.ts +3 -3
  247. package/lib/orchestrate/test/histories/transformTestCorrectHistories.js +23 -20
  248. package/lib/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -1
  249. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.d.ts +4 -0
  250. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.js +36 -0
  251. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.js.map +1 -0
  252. package/lib/orchestrate/test/histories/transformTestScenarioHistory.d.ts +11 -0
  253. package/lib/orchestrate/test/histories/transformTestScenarioHistory.js +95 -0
  254. package/lib/orchestrate/test/histories/transformTestScenarioHistory.js.map +1 -0
  255. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.d.ts +10 -0
  256. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js +67 -0
  257. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js.map +1 -0
  258. package/lib/orchestrate/test/histories/{transformTestWriteHistories.d.ts → transformTestWriteHistory.d.ts} +4 -4
  259. package/lib/orchestrate/test/histories/{transformTestWriteHistories.js → transformTestWriteHistory.js} +79 -76
  260. package/lib/orchestrate/test/histories/transformTestWriteHistory.js.map +1 -0
  261. package/lib/orchestrate/test/orchestrateTestCorrect.js +13 -26
  262. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  263. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +3 -15
  264. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
  265. package/lib/orchestrate/test/orchestrateTestScenario.d.ts +1 -1
  266. package/lib/orchestrate/test/orchestrateTestScenario.js +1370 -316
  267. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  268. package/lib/orchestrate/test/orchestrateTestScenarioReview.d.ts +5 -3
  269. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1067 -288
  270. package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
  271. package/lib/orchestrate/test/orchestrateTestWrite.js +8 -15
  272. package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  273. package/lib/orchestrate/test/structures/IAutoBeTestScenarioApplication.d.ts +66 -4
  274. package/lib/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.d.ts +82 -14
  275. package/lib/structures/IAutoBeOrchestrateHistory.d.ts +5 -0
  276. package/lib/structures/IAutoBeOrchestrateHistory.js +3 -0
  277. package/lib/structures/IAutoBeOrchestrateHistory.js.map +1 -0
  278. package/lib/utils/executeCachedBatch.d.ts +5 -1
  279. package/lib/utils/executeCachedBatch.js +23 -5
  280. package/lib/utils/executeCachedBatch.js.map +1 -1
  281. package/lib/utils/validateEmptyCode.js +2 -2
  282. package/lib/utils/validateEmptyCode.js.map +1 -1
  283. package/package.json +8 -6
  284. package/src/AutoBeAgent.ts +1 -0
  285. package/src/AutoBeMockAgent.ts +1 -0
  286. package/src/constants/AutoBeConfigConstant.ts +2 -0
  287. package/src/constants/AutoBeSystemPromptConstant.ts +39 -26
  288. package/src/context/AutoBeContext.ts +1 -1
  289. package/src/factory/createAutoBeContext.ts +5 -2
  290. package/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.ts +17 -28
  291. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.ts +12 -6
  292. package/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.ts +62 -61
  293. package/src/orchestrate/analyze/orchestrateAnalyze.ts +2 -0
  294. package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +97 -48
  295. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +3 -16
  296. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +1 -2
  297. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +114 -36
  298. package/src/orchestrate/common/AutoBePreliminaryController.ts +161 -0
  299. package/src/orchestrate/common/histories/transformCommonCorrectCastingHistory.ts +32 -0
  300. package/src/orchestrate/common/histories/transformPreliminaryHistory.ts +383 -0
  301. package/src/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.ts → transformPreviousAndLatestCorrectHistory.ts} +1 -1
  302. package/src/orchestrate/common/internal/complementPreliminaryCollection.ts +123 -0
  303. package/src/orchestrate/common/internal/createPreliminaryCollection.ts +32 -0
  304. package/src/orchestrate/common/internal/validatePreliminary.ts +315 -0
  305. package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +8 -15
  306. package/src/orchestrate/common/orchestratePreliminary.ts +361 -0
  307. package/src/orchestrate/common/structures/AutoBePreliminaryRequest.ts +18 -0
  308. package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +1 -4
  309. package/src/orchestrate/common/structures/IAutoBeOrchestrateResult.ts +13 -0
  310. package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +9 -0
  311. package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.ts +29 -0
  312. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +30 -0
  313. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +29 -0
  314. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.ts +29 -0
  315. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.ts +77 -0
  316. package/src/orchestrate/interface/histories/{transformInterfaceCommonHistories.ts → transformInterfaceCommonHistory.ts} +1 -1
  317. package/src/orchestrate/interface/histories/{transformInterfaceGroupHistories.ts → transformInterfaceComplementHistory.ts} +35 -21
  318. package/src/orchestrate/interface/histories/transformInterfaceEndpointHistory.ts +74 -0
  319. package/src/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.ts +40 -0
  320. package/src/orchestrate/interface/histories/transformInterfaceGroupHistory.ts +72 -0
  321. package/src/orchestrate/interface/histories/transformInterfaceOperationHistory.ts +79 -0
  322. package/src/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.ts +43 -0
  323. package/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.ts +89 -0
  324. package/src/orchestrate/interface/histories/transformInterfaceSchemaHistory.ts +105 -0
  325. package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.ts +56 -0
  326. package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.ts +88 -0
  327. package/src/orchestrate/interface/orchestrateInterface.ts +115 -51
  328. package/src/orchestrate/interface/{orchestrateInterfaceAuthorizations.ts → orchestrateInterfaceAuthorization.ts} +91 -67
  329. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +174 -78
  330. package/src/orchestrate/interface/orchestrateInterfaceEndpoint.ts +207 -0
  331. package/src/orchestrate/interface/orchestrateInterfaceEndpointReview.ts +139 -0
  332. package/src/orchestrate/interface/orchestrateInterfaceGroup.ts +153 -0
  333. package/src/orchestrate/interface/{orchestrateInterfaceOperations.ts → orchestrateInterfaceOperation.ts} +109 -86
  334. package/src/orchestrate/interface/orchestrateInterfaceOperationReview.ts +186 -0
  335. package/src/orchestrate/interface/{orchestrateInterfacePrerequisites.ts → orchestrateInterfacePrerequisite.ts} +123 -58
  336. package/src/orchestrate/interface/{orchestrateInterfaceSchemas.ts → orchestrateInterfaceSchema.ts} +96 -90
  337. package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +10 -11
  338. package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +127 -60
  339. package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.ts +63 -5
  340. package/src/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.ts +67 -12
  341. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.ts +63 -10
  342. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +106 -0
  343. package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +6 -84
  344. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +65 -13
  345. package/src/orchestrate/interface/structures/{IAutoBeInterfaceOperationsReviewApplication.ts → IAutoBeInterfaceOperationReviewApplication.ts} +65 -30
  346. package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +111 -0
  347. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +65 -15
  348. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaContentReviewApplication.ts +71 -24
  349. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRelationReviewApplication.ts +68 -23
  350. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaSecurityReviewApplication.ts +69 -21
  351. package/src/orchestrate/interface/utils/JsonSchemaFactory.ts +31 -23
  352. package/src/orchestrate/interface/utils/JsonSchemaNamingConvention.ts +73 -61
  353. package/src/orchestrate/interface/utils/JsonSchemaValidator.ts +53 -26
  354. package/src/orchestrate/interface/utils/OperationValidator.ts +69 -1
  355. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistory.ts +109 -0
  356. package/src/orchestrate/prisma/histories/{transformPrismaCorrectHistories.ts → transformPrismaCorrectHistory.ts} +13 -22
  357. package/src/orchestrate/prisma/histories/transformPrismaReviewHistory.ts +42 -0
  358. package/src/orchestrate/prisma/histories/{transformPrismaSchemaHistories.ts → transformPrismaSchemaHistory.ts} +7 -8
  359. package/src/orchestrate/prisma/orchestratePrisma.ts +12 -17
  360. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +7 -15
  361. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +129 -64
  362. package/src/orchestrate/prisma/orchestratePrismaReview.ts +115 -59
  363. package/src/orchestrate/prisma/{orchestratePrismaSchemas.ts → orchestratePrismaSchema.ts} +92 -60
  364. package/src/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.ts +81 -76
  365. package/src/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.ts +97 -72
  366. package/src/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.ts +93 -66
  367. package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.ts +89 -0
  368. package/src/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.ts +45 -0
  369. package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.ts +85 -0
  370. package/src/orchestrate/realize/histories/transformRealizeCorrectHistory.ts +77 -0
  371. package/src/orchestrate/realize/histories/transformRealizeWriteHistories.ts +152 -121
  372. package/src/orchestrate/realize/histories/{transformRealizeWriteAuthorizationsHistories.ts → transformRealizeWriteMembershipHistory.ts} +2 -2
  373. package/src/orchestrate/realize/orchestrateRealize.ts +4 -3
  374. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +155 -97
  375. package/src/orchestrate/realize/orchestrateRealizeAuthorizationWrite.ts +241 -0
  376. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +88 -86
  377. package/src/orchestrate/realize/orchestrateRealizeCorrectCasting.ts +17 -56
  378. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +82 -78
  379. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +85 -22
  380. package/src/orchestrate/realize/structures/{IAutoBeRealizeAuthorizationApplication.ts → IAutoBeRealizeAuthorizationWriteApplication.ts} +64 -29
  381. package/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.ts +58 -5
  382. package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.ts +6 -19
  383. package/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.ts +58 -6
  384. package/src/orchestrate/realize/utils/generateRealizeScenario.ts +2 -20
  385. package/src/orchestrate/test/histories/transformTestCorrectHistories.ts +30 -30
  386. package/src/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.ts +40 -0
  387. package/src/orchestrate/test/histories/transformTestScenarioHistory.ts +116 -0
  388. package/src/orchestrate/test/histories/transformTestScenarioReviewHistory.ts +85 -0
  389. package/src/orchestrate/test/histories/transformTestWriteHistory.ts +169 -0
  390. package/src/orchestrate/test/orchestrateTestCorrect.ts +13 -19
  391. package/src/orchestrate/test/orchestrateTestCorrectInvalidRequest.ts +5 -12
  392. package/src/orchestrate/test/orchestrateTestScenario.ts +143 -83
  393. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +93 -76
  394. package/src/orchestrate/test/orchestrateTestWrite.ts +7 -7
  395. package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +74 -4
  396. package/src/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.ts +89 -14
  397. package/src/structures/IAutoBeOrchestrateHistory.ts +6 -0
  398. package/src/utils/executeCachedBatch.ts +33 -7
  399. package/src/utils/validateEmptyCode.ts +2 -2
  400. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.d.ts +0 -8
  401. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.js +0 -16
  402. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.js.map +0 -1
  403. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistories.js.map +0 -1
  404. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.d.ts +0 -3
  405. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js +0 -62
  406. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js.map +0 -1
  407. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.d.ts +0 -8
  408. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js +0 -68
  409. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js.map +0 -1
  410. package/lib/orchestrate/interface/histories/transformInterfaceCommonHistories.d.ts +0 -3
  411. package/lib/orchestrate/interface/histories/transformInterfaceCommonHistories.js.map +0 -1
  412. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.d.ts +0 -9
  413. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js +0 -74
  414. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +0 -1
  415. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.d.ts +0 -10
  416. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +0 -61
  417. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +0 -1
  418. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.d.ts +0 -4
  419. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js +0 -34
  420. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js.map +0 -1
  421. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.d.ts +0 -6
  422. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js +0 -52
  423. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +0 -1
  424. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.d.ts +0 -8
  425. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js +0 -71
  426. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +0 -1
  427. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.d.ts +0 -5
  428. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +0 -36
  429. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +0 -1
  430. package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.d.ts +0 -3
  431. package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.js +0 -102
  432. package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.js.map +0 -1
  433. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.d.ts +0 -9
  434. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +0 -74
  435. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +0 -1
  436. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.d.ts +0 -5
  437. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.js +0 -51
  438. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.js.map +0 -1
  439. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.d.ts +0 -11
  440. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.js +0 -81
  441. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.js.map +0 -1
  442. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.d.ts +0 -4
  443. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +0 -1
  444. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +0 -508
  445. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +0 -1
  446. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.d.ts +0 -4
  447. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +0 -488
  448. package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +0 -1
  449. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +0 -458
  450. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +0 -1
  451. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +0 -1
  452. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.d.ts +0 -4
  453. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +0 -1
  454. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +0 -917
  455. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +0 -1
  456. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +0 -1
  457. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.d.ts +0 -60
  458. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.js.map +0 -1
  459. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.js.map +0 -1
  460. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.d.ts +0 -52
  461. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.js.map +0 -1
  462. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.d.ts +0 -6
  463. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +0 -95
  464. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +0 -1
  465. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.d.ts +0 -3
  466. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js +0 -41
  467. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js.map +0 -1
  468. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.d.ts +0 -8
  469. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js +0 -62
  470. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +0 -1
  471. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.d.ts +0 -8
  472. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +0 -78
  473. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +0 -1
  474. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +0 -1678
  475. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +0 -1
  476. package/lib/orchestrate/realize/histories/transformRealizeAuthorization.d.ts +0 -5
  477. package/lib/orchestrate/realize/histories/transformRealizeAuthorization.js +0 -44
  478. package/lib/orchestrate/realize/histories/transformRealizeAuthorization.js.map +0 -1
  479. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.d.ts +0 -5
  480. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js +0 -82
  481. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js.map +0 -1
  482. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.d.ts +0 -5
  483. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.js.map +0 -1
  484. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.d.ts +0 -13
  485. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js +0 -29
  486. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +0 -1
  487. package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.d.ts +0 -3
  488. package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +0 -23
  489. package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js.map +0 -1
  490. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +0 -710
  491. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +0 -1
  492. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.js.map +0 -1
  493. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.d.ts +0 -4
  494. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js +0 -33
  495. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js.map +0 -1
  496. package/lib/orchestrate/test/histories/transformTestScenarioHistories.d.ts +0 -10
  497. package/lib/orchestrate/test/histories/transformTestScenarioHistories.js +0 -101
  498. package/lib/orchestrate/test/histories/transformTestScenarioHistories.js.map +0 -1
  499. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.d.ts +0 -8
  500. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js +0 -72
  501. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js.map +0 -1
  502. package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +0 -1
  503. package/src/orchestrate/common/histories/transformCommonCorrectCastingHistories.ts +0 -25
  504. package/src/orchestrate/interface/histories/transformInterfaceAssetHistories.ts +0 -72
  505. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.ts +0 -75
  506. package/src/orchestrate/interface/histories/transformInterfaceComplementHistories.ts +0 -82
  507. package/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.ts +0 -72
  508. package/src/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.ts +0 -40
  509. package/src/orchestrate/interface/histories/transformInterfaceOperationHistories.ts +0 -78
  510. package/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.ts +0 -44
  511. package/src/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.ts +0 -118
  512. package/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.ts +0 -80
  513. package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.ts +0 -55
  514. package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.ts +0 -90
  515. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +0 -152
  516. package/src/orchestrate/interface/orchestrateInterfaceEndpointsReview.ts +0 -98
  517. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +0 -91
  518. package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +0 -157
  519. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.ts +0 -65
  520. package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.ts +0 -58
  521. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.ts +0 -104
  522. package/src/orchestrate/prisma/histories/transformPrismaReviewHistories.ts +0 -69
  523. package/src/orchestrate/realize/histories/transformRealizeAuthorization.ts +0 -52
  524. package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.ts +0 -95
  525. package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.ts +0 -30
  526. package/src/orchestrate/realize/histories/transformRealizeCorrectHistories.ts +0 -46
  527. package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +0 -185
  528. package/src/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.ts +0 -39
  529. package/src/orchestrate/test/histories/transformTestScenarioHistories.ts +0 -125
  530. package/src/orchestrate/test/histories/transformTestScenarioReviewHistories.ts +0 -89
  531. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +0 -172
@@ -45,97 +45,746 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
45
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.orchestrateInterfaceOperationsReview = orchestrateInterfaceOperationsReview;
48
+ exports.orchestrateInterfaceOperationReview = orchestrateInterfaceOperationReview;
49
49
  const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
50
50
  const __typia_transform__llmApplicationFinalize = __importStar(require("typia/lib/internal/_llmApplicationFinalize.js"));
51
51
  const typia_1 = __importDefault(require("typia"));
52
52
  const uuid_1 = require("uuid");
53
- const transformInterfaceOperationsReviewHistories_1 = require("./histories/transformInterfaceOperationsReviewHistories");
53
+ const AutoBePreliminaryController_1 = require("../common/AutoBePreliminaryController");
54
+ const transformInterfaceOperationReviewHistory_1 = require("./histories/transformInterfaceOperationReviewHistory");
54
55
  const OperationValidator_1 = require("./utils/OperationValidator");
55
- function orchestrateInterfaceOperationsReview(ctx, operations, progress) {
56
+ function orchestrateInterfaceOperationReview(ctx, operations, progress) {
56
57
  return __awaiter(this, void 0, void 0, function* () {
57
- var _a, _b, _c;
58
58
  try {
59
- const files = (_a = ctx.state().prisma) === null || _a === void 0 ? void 0 : _a.result.data.files;
59
+ return yield process(ctx, operations, progress);
60
+ }
61
+ catch (_a) {
62
+ ++progress.completed;
63
+ return [];
64
+ }
65
+ });
66
+ }
67
+ function process(ctx, operations, progress) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ var _a;
70
+ const files = (_a = ctx.state().prisma) === null || _a === void 0 ? void 0 : _a.result.data.files;
71
+ const preliminary = new AutoBePreliminaryController_1.AutoBePreliminaryController({
72
+ application: {
73
+ version: "3.1",
74
+ components: {
75
+ schemas: {
76
+ "IAutoBeInterfaceOperationReviewApplication.IProps": {
77
+ type: "object",
78
+ properties: {
79
+ thinking: {
80
+ type: "string",
81
+ description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion."
82
+ },
83
+ request: {
84
+ oneOf: [
85
+ {
86
+ $ref: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles"
87
+ },
88
+ {
89
+ $ref: "#/components/schemas/IAutoBePreliminaryGetPrismaSchemas"
90
+ },
91
+ {
92
+ $ref: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IComplete"
93
+ }
94
+ ],
95
+ discriminator: {
96
+ propertyName: "type",
97
+ mapping: {
98
+ getAnalysisFiles: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles",
99
+ getPrismaSchemas: "#/components/schemas/IAutoBePreliminaryGetPrismaSchemas",
100
+ complete: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IComplete"
101
+ }
102
+ },
103
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls."
104
+ }
105
+ },
106
+ required: [
107
+ "thinking",
108
+ "request"
109
+ ]
110
+ },
111
+ IAutoBePreliminaryGetAnalysisFiles: {
112
+ type: "object",
113
+ properties: {
114
+ type: {
115
+ "const": "getAnalysisFiles",
116
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files."
117
+ },
118
+ fileNames: {
119
+ type: "array",
120
+ items: {
121
+ type: "string"
122
+ },
123
+ minItems: 1,
124
+ description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls."
125
+ }
126
+ },
127
+ required: [
128
+ "type",
129
+ "fileNames"
130
+ ],
131
+ description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context."
132
+ },
133
+ IAutoBePreliminaryGetPrismaSchemas: {
134
+ type: "object",
135
+ properties: {
136
+ type: {
137
+ "const": "getPrismaSchemas",
138
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas."
139
+ },
140
+ schemaNames: {
141
+ type: "array",
142
+ items: {
143
+ type: "string"
144
+ },
145
+ minItems: 1,
146
+ description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls."
147
+ }
148
+ },
149
+ required: [
150
+ "type",
151
+ "schemaNames"
152
+ ],
153
+ description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations."
154
+ },
155
+ "IAutoBeInterfaceOperationReviewApplication.IComplete": {
156
+ type: "object",
157
+ properties: {
158
+ type: {
159
+ "const": "complete",
160
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request."
161
+ },
162
+ think: {
163
+ $ref: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IThink",
164
+ description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations."
165
+ },
166
+ content: {
167
+ type: "array",
168
+ items: {
169
+ $ref: "#/components/schemas/AutoBeOpenApi.IOperation"
170
+ },
171
+ description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases."
172
+ }
173
+ },
174
+ required: [
175
+ "type",
176
+ "think",
177
+ "content"
178
+ ],
179
+ description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations."
180
+ },
181
+ "IAutoBeInterfaceOperationReviewApplication.IThink": {
182
+ type: "object",
183
+ properties: {
184
+ review: {
185
+ type: "string",
186
+ description: "Comprehensive review analysis with prioritized findings.\n\nSystematic assessment organized by severity levels (CRITICAL, HIGH,\nMEDIUM, LOW):\n\n- **Security Analysis**: Authentication boundary violations, exposed\n passwords/tokens, unauthorized data access patterns, SQL injection\n risks\n- **Logic Validation**: Return type consistency (list operations returning\n arrays, single retrieval returning single items), HTTP method semantics\n alignment, parameter usage verification\n- **Schema Compliance**: Field existence in Prisma schema, type accuracy,\n relationship validity, required field handling\n- **Quality Assessment**: Documentation completeness, naming conventions,\n error handling patterns, pagination standards\n\nEach finding includes specific examples, current vs expected behavior,\nand concrete fix recommendations. Critical security issues and logical\ncontradictions are highlighted for immediate attention."
187
+ },
188
+ plan: {
189
+ type: "string",
190
+ description: "Prioritized action plan for identified issues.\n\nStructured improvement strategy categorized by severity:\n\n- **Immediate Actions (CRITICAL)**: Security vulnerabilities that must be\n fixed before production (password exposure, missing authorization,\n authentication bypass risks)\n- **Required Fixes (HIGH)**: Functional issues affecting API correctness\n (wrong return types, missing required fields, schema mismatches)\n- **Recommended Improvements (MEDIUM)**: Quality enhancements for better\n API design (validation rules, format specifications, consistency)\n- **Optional Enhancements (LOW)**: Documentation and usability improvements\n\nIf all operations pass review without issues, contains: \"No improvements\nrequired. All operations meet AutoBE standards.\"\n\nEach action item includes the specific operation path, the exact change\nneeded, and the rationale for the modification."
191
+ }
192
+ },
193
+ required: [
194
+ "review",
195
+ "plan"
196
+ ],
197
+ description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations."
198
+ },
199
+ "AutoBeOpenApi.IOperation": {
200
+ type: "object",
201
+ properties: {
202
+ specification: {
203
+ type: "string",
204
+ description: "Specification of the API operation.\n\nBefore defining the API operation interface, please describe what you're\nplanning to write in this `specification` field.\n\nThe specification must be fully detailed and clear, so that anyone can\nunderstand the purpose and functionality of the API operation and its\nrelated components (e.g., {@link path}, {@link parameters},\n{@link requestBody}).\n\nIMPORTANT: The specification MUST identify which Prisma DB table this\noperation is associated with, helping ensure complete coverage of all\ndatabase entities."
205
+ },
206
+ authorizationType: {
207
+ oneOf: [
208
+ {
209
+ type: "null"
210
+ },
211
+ {
212
+ "const": "login"
213
+ },
214
+ {
215
+ "const": "join"
216
+ },
217
+ {
218
+ "const": "refresh"
219
+ }
220
+ ],
221
+ description: "Authorization type of the API operation.\n\n- `\"login\"`: User login operations that validate credentials\n- `\"join\"`: User registration operations that create accounts\n- `\"refresh\"`: Token refresh operations that renew access tokens\n- `null`: All other operations (CRUD, business logic, etc.)\n\nUse authentication values only for credential validation, user\nregistration, or token refresh operations. Use `null` for all other\nbusiness operations.\n\nExamples:\n\n- `/auth/login` \u2192 `\"login\"`\n- `/auth/register` \u2192 `\"join\"`\n- `/auth/refresh` \u2192 `\"refresh\"`\n- `/auth/validate` \u2192 `null`\n- `/users/{id}`, `/shoppings/customers/sales/cancel`, \u2192 `null`"
222
+ },
223
+ description: {
224
+ type: "string",
225
+ description: "Detailed description about the API operation.\n\nIMPORTANT: This field MUST be extensively detailed and MUST reference the\ndescription comments from the related Prisma DB schema tables and\ncolumns. The description should be organized into MULTIPLE PARAGRAPHS\nseparated by line breaks to improve readability and comprehension.\n\nFor example, include separate paragraphs for:\n\n- The purpose and overview of the API operation\n- Security considerations and user permissions\n- Relationship to underlying database entities\n- Validation rules and business logic\n- Related API operations that might be used together with this one\n- Expected behavior and error handling\n\nWhen writing the description, be sure to incorporate the corresponding DB\nschema's description comments, matching the level of detail and style of\nthose comments. This ensures consistency between the API documentation\nand database structure.\n\nIf there's a dependency to other APIs, please describe the dependency API\noperation in this field with detailed reason. For example, if this API\noperation needs a pre-execution of other API operation, it must be\nexplicitly described.\n\n- `GET /shoppings/customers/sales` must be pre-executed to get entire list\n of summarized sales. Detailed sale information would be obtained by\n specifying the sale ID in the path parameter.\n\n**CRITICAL WARNING about soft delete keywords**: DO NOT use terms like\n\"soft delete\", \"soft-delete\", or similar variations in this description\nUNLESS the operation actually implements soft deletion. These keywords\ntrigger validation logic that expects a corresponding soft_delete_column\nto be specified. Only use these terms when you intend to implement soft\ndeletion (marking records as deleted without removing them from the\ndatabase).\n\nExample of problematic description: \u274C \"This would normally be a\nsoft-delete, but we intentionally perform permanent deletion here\" - This\ntriggers soft delete validation despite being a hard delete operation.\n\n> MUST be written in English. Never use other languages."
226
+ },
227
+ summary: {
228
+ type: "string",
229
+ description: "Short summary of the API operation.\n\nThis should be a concise description of the API operation, typically one\nsentence long. It should provide a quick overview of what the API does\nwithout going into too much detail.\n\nThis summary will be used in the OpenAPI documentation to give users a\nquick understanding of the API operation's purpose.\n\nIMPORTANT: The summary should clearly indicate which Prisma DB table this\noperation relates to, helping to ensure all tables have API coverage.\n\n**CRITICAL WARNING about soft delete keywords**: DO NOT use terms like\n\"soft delete\", \"soft-delete\", or similar variations in this summary\nUNLESS the operation actually implements soft deletion. These keywords\ntrigger validation logic that expects a corresponding soft_delete_column\nto be specified. Only use these terms when you intend to implement soft\ndeletion (marking records as deleted without removing them from the\ndatabase).\n\n> MUST be written in English. Never use other languages"
230
+ },
231
+ parameters: {
232
+ type: "array",
233
+ items: {
234
+ $ref: "#/components/schemas/AutoBeOpenApi.IParameter"
235
+ },
236
+ description: "List of path parameters.\n\nNote that, the {@link AutoBeOpenApi.IParameter.name identifier name} of\npath parameter must be corresponded to the\n{@link path API operation path}.\n\nFor example, if there's an API operation which has {@link path} of\n`/shoppings/customers/sales/{saleId}/questions/${questionId}/comments/${commentId}`,\nits list of {@link AutoBeOpenApi.IParameter.name path parameters} must be\nlike:\n\n- `saleId`\n- `questionId`\n- `commentId`"
237
+ },
238
+ requestBody: {
239
+ oneOf: [
240
+ {
241
+ type: "null"
242
+ },
243
+ {
244
+ $ref: "#/components/schemas/AutoBeOpenApi.IRequestBody"
245
+ }
246
+ ],
247
+ description: "Request body of the API operation.\n\nDefines the payload structure for the request. Contains a description and\nschema reference to define the expected input data.\n\nShould be `null` for operations that don't require a request body, such\nas most \"get\" operations."
248
+ },
249
+ responseBody: {
250
+ oneOf: [
251
+ {
252
+ type: "null"
253
+ },
254
+ {
255
+ $ref: "#/components/schemas/AutoBeOpenApi.IResponseBody"
256
+ }
257
+ ],
258
+ description: "Response body of the API operation.\n\nDefines the structure of the successful response data. Contains a\ndescription and schema reference for the returned data.\n\nShould be null for operations that don't return any data."
259
+ },
260
+ authorizationActor: {
261
+ oneOf: [
262
+ {
263
+ type: "null"
264
+ },
265
+ {
266
+ type: "string",
267
+ pattern: "^[a-z][a-zA-Z0-9]*$",
268
+ minLength: 1
269
+ }
270
+ ],
271
+ description: "Authorization actor required to access this API operation.\n\nThis field specifies which user actor is allowed to access this endpoint.\nThe actor name must correspond exactly to the actual actors defined in\nyour system's Prisma schema.\n\n## Naming Convention\n\nActor names MUST use camelCase.\n\n## Actor-Based Path Convention\n\nWhen authorizationActor is specified, it should align with the path\nstructure:\n\n- If authorizationActor is \"admin\" \u2192 path might be \"/admin/resources/{id}\"\n- If authorizationActor is \"seller\" \u2192 path might be \"/seller/products\"\n- Special case: For user's own resources, use path prefix \"/my/\" regardless\n of actor\n\n## Important Guidelines\n\n- Set to `null` for public endpoints that require no authentication\n- Set to specific actor string for actor-restricted endpoints\n- The actor name MUST match exactly with the user type/actor defined in the\n database\n- This actor will be used by the Realize Agent to generate appropriate\n decorator and authorization logic in the provider functions\n- The controller will apply the corresponding authentication decorator\n based on this actor\n\n## Examples\n\n- `null` - Public endpoint, no authentication required\n- `\"user\"` - Any authenticated user can access\n- `\"admin\"` - Only admin users can access\n- `\"seller\"` - Only seller users can access\n- `\"moderator\"` - Only moderator users can access\n\nNote: The actual authentication/authorization implementation will be\nhandled by decorators at the controller level, and the provider function\nwill receive the authenticated user object with the appropriate type."
272
+ },
273
+ name: {
274
+ type: "string",
275
+ pattern: "^[a-z][a-zA-Z0-9]*$",
276
+ description: "Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint's primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` \u2192 `name: \"index\"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` \u2192 `name: \"at\"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` \u2192 `name: \"create\"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` \u2192 `name: \"update\"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` \u2192 `name: \"erase\"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint's primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` \u2192 `name: \"index\"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` \u2192 `name: \"cancel\"`\n- `PUT /users/{userId}/password` \u2192 `name: \"updatePassword\"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API's accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` \u2192 Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` \u2192 Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` \u2192 Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts."
277
+ },
278
+ prerequisites: {
279
+ type: "array",
280
+ items: {
281
+ $ref: "#/components/schemas/AutoBeOpenApi.IPrerequisite"
282
+ },
283
+ description: "Prerequisites for this API operation.\n\nThe `prerequisites` field defines API operations that must be\nsuccessfully executed before this operation can be performed. This\ncreates an explicit dependency chain between API endpoints, ensuring\nproper execution order and data availability.\n\n## CRITICAL WARNING: Authentication Prerequisites\n\n**NEVER include authentication-related operations as prerequisites!**\nAuthentication is handled separately through the `authorizationActor`\nfield and should NOT be part of the prerequisite chain. Do NOT add\nprerequisites for:\n\n- Login endpoints\n- Token validation endpoints\n- User authentication checks\n- Permission verification endpoints\n\nPrerequisites are ONLY for business logic dependencies, NOT for\nauthentication/authorization.\n\n## Purpose and Use Cases\n\nPrerequisites are essential for operations that depend on:\n\n1. **Existence Validation**: Ensuring resources exist before manipulation\n2. **State Requirements**: Verifying resources are in the correct state\n3. **Data Dependencies**: Loading necessary data for the current operation\n4. **Business Logic Constraints**: Enforcing domain-specific rules\n\n## Execution Flow\n\nWhen an operation has prerequisites:\n\n1. Each prerequisite API must be called first in the specified order\n2. Prerequisites must return successful responses (2xx status codes)\n3. Only after all prerequisites succeed can the main operation proceed\n4. If any prerequisite fails, the operation should not be attempted\n\n## Common Patterns\n\n### Resource Existence Check\n\n```typescript\n// Before updating an order item, ensure the order exists\nprerequisites: [\n {\n endpoint: { path: \"/orders/{orderId}\", method: \"get\" },\n description: \"Order must exist in the system\",\n },\n];\n```\n\n### State Validation\n\n```typescript\n// Before processing payment, ensure order is in correct state\nprerequisites: [\n {\n endpoint: { path: \"/orders/{orderId}/status\", method: \"get\" },\n description: \"Order must be in 'pending_payment' status\",\n },\n];\n```\n\n### Hierarchical Dependencies\n\n```typescript\n// Before accessing a deeply nested resource\nprerequisites: [\n {\n endpoint: { path: \"/projects/{projectId}\", method: \"get\" },\n description: \"Project must exist\",\n },\n {\n endpoint: {\n path: \"/projects/{projectId}/tasks/{taskId}\",\n method: \"get\",\n },\n description: \"Task must exist within the project\",\n },\n];\n```\n\n## Important Guidelines\n\n1. **Order Matters**: Prerequisites are executed in array order\n2. **Parameter Inheritance**: Path parameters from prerequisites can be used\n in the main operation\n3. **Error Handling**: Failed prerequisites should prevent main operation\n4. **Performance**: Consider caching prerequisite results when appropriate\n5. **Documentation**: Each prerequisite must have a clear description\n explaining why it's required\n6. **No Authentication**: NEVER use prerequisites for authentication checks\n\n## Test Generation Impact\n\nThe Test Agent uses prerequisites to:\n\n- Generate proper test setup sequences\n- Create valid test data in the correct order\n- Ensure test scenarios follow realistic workflows\n- Validate error handling when prerequisites fail"
284
+ },
285
+ path: {
286
+ type: "string",
287
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
288
+ description: "HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- \"/users\"\n- \"/users/{userId}\"\n- \"/articles/{articleId}/comments\"\n- \"/attachmentFiles\"\n- \"/orders/{orderId}/items/{itemId}\"\n\nInvalid examples:\n\n- \"'/users'\" (contains quotes)\n- \"/user profile\" (contains space)\n- \"/users/[userId]\" (wrong bracket format)\n- \"/admin/users\" (role prefix)\n- \"/api/v1/users\" (API prefix)"
289
+ },
290
+ method: {
291
+ oneOf: [
292
+ {
293
+ "const": "get"
294
+ },
295
+ {
296
+ "const": "post"
297
+ },
298
+ {
299
+ "const": "put"
300
+ },
301
+ {
302
+ "const": "delete"
303
+ },
304
+ {
305
+ "const": "patch"
306
+ }
307
+ ],
308
+ description: "HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., \"get\",\nnot \"GET\").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record"
309
+ }
310
+ },
311
+ required: [
312
+ "specification",
313
+ "authorizationType",
314
+ "description",
315
+ "summary",
316
+ "parameters",
317
+ "requestBody",
318
+ "responseBody",
319
+ "authorizationActor",
320
+ "name",
321
+ "prerequisites",
322
+ "path",
323
+ "method"
324
+ ],
325
+ description: "Operation of the Restful API.\n\nThis interface defines a single API endpoint with its HTTP {@link method},\n{@link path}, {@link parameters path parameters},\n{@link requestBody request body}, and {@link responseBody} structure. It\ncorresponds to an individual operation in the paths section of an OpenAPI\ndocument.\n\nEach operation requires a detailed explanation of its purpose through the\nreason and description fields, making it clear why the API was designed and\nhow it should be used.\n\nAll request bodies and responses for this operation must be object types\nand must reference named types defined in the components section. The\ncontent-type is always `application/json`. For file upload/download\noperations, use `string & tags.Format<\"uri\">` in the appropriate schema\ninstead of binary data formats.\n\nIn OpenAPI, this might represent:\n\n```json\n{\n \"/shoppings/customers/orders\": {\n \"post\": {\n \"description\": \"Create a new order application from shopping cart...\",\n \"parameters\": [...],\n \"requestBody\": {...},\n \"responses\": {...},\n ...\n }\n }\n}\n```"
326
+ },
327
+ "AutoBeOpenApi.IParameter": {
328
+ type: "object",
329
+ properties: {
330
+ name: {
331
+ type: "string",
332
+ pattern: "^[a-z][a-zA-Z0-9]*$",
333
+ description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention."
334
+ },
335
+ description: {
336
+ type: "string",
337
+ description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages."
338
+ },
339
+ schema: {
340
+ oneOf: [
341
+ {
342
+ $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.INumber"
343
+ },
344
+ {
345
+ $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IInteger"
346
+ },
347
+ {
348
+ $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IString"
349
+ }
350
+ ],
351
+ discriminator: {
352
+ propertyName: "type",
353
+ mapping: {
354
+ number: "#/components/schemas/AutoBeOpenApi.IJsonSchema.INumber",
355
+ integer: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IInteger",
356
+ string: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IString"
357
+ }
358
+ },
359
+ description: "Type schema of the path parameter.\n\nPath parameters are typically primitive types like\n{@link AutoBeOpenApi.IJsonSchema.IString strings},\n{@link AutoBeOpenApi.IJsonSchema.IInteger integers},\n{@link AutoBeOpenApi.IJsonSchema.INumber numbers}.\n\nIf you need other types, please use request body instead with object type\nencapsulation."
360
+ }
361
+ },
362
+ required: [
363
+ "name",
364
+ "description",
365
+ "schema"
366
+ ],
367
+ description: "Path parameter information for API routes.\n\nThis interface defines a path parameter that appears in the URL of an API\nendpoint. Path parameters are enclosed in curly braces in the\n{@link AutoBeOpenApi.IOperation.path operation path} and must be defined\nwith their types and descriptions.\n\nFor example, if API operation path is\n`/shoppings/customers/sales/{saleId}/questions/${questionId}/comments/${commentId}`,\nthe path parameters should be like below:\n\n```json\n{\n \"path\": \"/shoppings/customers/sales/{saleId}/questions/${questionId}/comments/${commentId}\",\n \"method\": \"get\",\n \"parameters\": [\n {\n \"name\": \"saleId\",\n \"in\": \"path\",\n \"schema\": { \"type\": \"string\", \"format\": \"uuid\" },\n \"description\": \"Target sale's ID\"\n },\n {\n \"name\": \"questionId\",\n \"in\": \"path\",\n \"schema\": { \"type\": \"string\", \"format\": \"uuid\" },\n \"description\": \"Target question's ID\"\n },\n {\n \"name\": \"commentId\",\n \"in\": \"path\",\n \"schema\": { \"type\": \"string\", \"format\": \"uuid\" },\n \"description\": \"Target comment's ID\"\n }\n ]\n}\n```"
368
+ },
369
+ "AutoBeOpenApi.IJsonSchema.INumber": {
370
+ type: "object",
371
+ properties: {
372
+ minimum: {
373
+ type: "number",
374
+ description: "Minimum value restriction."
375
+ },
376
+ maximum: {
377
+ type: "number",
378
+ description: "Maximum value restriction."
379
+ },
380
+ exclusiveMinimum: {
381
+ type: "number",
382
+ description: "Exclusive minimum value restriction."
383
+ },
384
+ exclusiveMaximum: {
385
+ type: "number",
386
+ description: "Exclusive maximum value restriction."
387
+ },
388
+ multipleOf: {
389
+ type: "number",
390
+ exclusiveMinimum: 0,
391
+ description: "Multiple of value restriction."
392
+ },
393
+ type: {
394
+ "const": "number",
395
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
396
+ }
397
+ },
398
+ required: [
399
+ "type"
400
+ ],
401
+ description: "Number (double) type info."
402
+ },
403
+ "AutoBeOpenApi.IJsonSchema.IInteger": {
404
+ type: "object",
405
+ properties: {
406
+ minimum: {
407
+ type: "integer",
408
+ description: "Minimum value restriction."
409
+ },
410
+ maximum: {
411
+ type: "integer",
412
+ description: "Maximum value restriction."
413
+ },
414
+ exclusiveMinimum: {
415
+ type: "number",
416
+ description: "Exclusive minimum value restriction."
417
+ },
418
+ exclusiveMaximum: {
419
+ type: "number",
420
+ description: "Exclusive maximum value restriction."
421
+ },
422
+ multipleOf: {
423
+ type: "integer",
424
+ exclusiveMinimum: 0,
425
+ description: "Multiple of value restriction."
426
+ },
427
+ type: {
428
+ "const": "integer",
429
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
430
+ }
431
+ },
432
+ required: [
433
+ "type"
434
+ ],
435
+ description: "Integer type info."
436
+ },
437
+ "AutoBeOpenApi.IJsonSchema.IString": {
438
+ type: "object",
439
+ properties: {
440
+ format: {
441
+ oneOf: [
442
+ {
443
+ "const": "date-time"
444
+ },
445
+ {
446
+ "const": "password"
447
+ },
448
+ {
449
+ "const": "regex"
450
+ },
451
+ {
452
+ "const": "uuid"
453
+ },
454
+ {
455
+ "const": "email"
456
+ },
457
+ {
458
+ "const": "hostname"
459
+ },
460
+ {
461
+ "const": "idn-email"
462
+ },
463
+ {
464
+ "const": "idn-hostname"
465
+ },
466
+ {
467
+ "const": "iri"
468
+ },
469
+ {
470
+ "const": "iri-reference"
471
+ },
472
+ {
473
+ "const": "ipv4"
474
+ },
475
+ {
476
+ "const": "ipv6"
477
+ },
478
+ {
479
+ "const": "uri"
480
+ },
481
+ {
482
+ "const": "uri-reference"
483
+ },
484
+ {
485
+ "const": "uri-template"
486
+ },
487
+ {
488
+ "const": "url"
489
+ },
490
+ {
491
+ "const": "date"
492
+ },
493
+ {
494
+ "const": "time"
495
+ },
496
+ {
497
+ "const": "duration"
498
+ },
499
+ {
500
+ "const": "json-pointer"
501
+ },
502
+ {
503
+ "const": "relative-json-pointer"
504
+ }
505
+ ],
506
+ description: "Format restriction."
507
+ },
508
+ pattern: {
509
+ type: "string",
510
+ description: "Pattern restriction."
511
+ },
512
+ contentMediaType: {
513
+ type: "string",
514
+ description: "Content media type restriction."
515
+ },
516
+ minLength: {
517
+ type: "integer",
518
+ minimum: 0,
519
+ description: "Minimum length restriction."
520
+ },
521
+ maxLength: {
522
+ type: "integer",
523
+ minimum: 0,
524
+ description: "Maximum length restriction."
525
+ },
526
+ type: {
527
+ "const": "string",
528
+ description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
529
+ }
530
+ },
531
+ required: [
532
+ "type"
533
+ ],
534
+ description: "String type info."
535
+ },
536
+ "AutoBeOpenApi.IRequestBody": {
537
+ type: "object",
538
+ properties: {
539
+ description: {
540
+ type: "string",
541
+ description: "Description about the request body.\n\nMake short, concise and clear description about the request body.\n\n> MUST be written in English. Never use other languages."
542
+ },
543
+ typeName: {
544
+ type: "string",
545
+ description: "Request body type name.\n\nThis specifies the data structure expected in the request body, that will\nbe transformed to {@link AutoBeOpenApi.IJsonSchema.IReference reference}\ntype in the {@link AutoBeOpenApi.IComponents.schemas components section}\nas an {@link AutoBeOpenApi.IJsonSchema.Object object} type.\n\nHere is the naming convention for the request body type:\n\n- `IEntityName.ICreate`: Request body for creation operations (POST)\n- `IEntityName.IUpdate`: Request body for update operations (PUT)\n- `IEntityName.IRequest`: Request parameters for list operations (often\n with search/pagination)\n\nWhat you write:\n\n```json\n{\n \"typeName\": \"IShoppingOrder.ICreate\"\n}\n```\n\nTransformed to:\n\n```json\n{\n \"schema\": {\n \"$ref\": \"#/components/schemas/IShoppingOrder.ICreate\"\n }\n}\n```"
546
+ }
547
+ },
548
+ required: [
549
+ "description",
550
+ "typeName"
551
+ ],
552
+ description: "Request body information of OpenAPI operation.\n\nThis interface defines the structure for request bodies in API routes. It\ncorresponds to the requestBody section in OpenAPI specifications, providing\nboth a description and schema reference for the request payload.\n\nThe content-type for all request bodies is always `application/json`. Even\nwhen file uploading is required, don't use `multipart/form-data` or\n`application/x-www-form-urlencoded` content types. Instead, just define an\nURI string property in the request body schema.\n\nNote that, all body schemas must be transformable to a\n{@link AutoBeOpenApi.IJsonSchema.IReference reference} type defined in the\n{@link AutoBeOpenApi.IComponents.schemas components section} as an\n{@link AutoBeOpenApi.IJsonSchema.IObject object} type.\n\nIn OpenAPI, this might represent:\n\n```json\n{\n \"requestBody\": {\n \"description\": \"Creation info of the order\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"$ref\": \"#/components/schemas/IShoppingOrder.ICreate\"\n }\n }\n }\n }\n}\n```"
553
+ },
554
+ "AutoBeOpenApi.IResponseBody": {
555
+ type: "object",
556
+ properties: {
557
+ description: {
558
+ type: "string",
559
+ description: "Description about the response body.\n\nMake short, concise and clear description about the response body.\n\n> MUST be written in English. Never use other languages."
560
+ },
561
+ typeName: {
562
+ type: "string",
563
+ description: "Response body's data type.\n\nSpecifies the structure of the returned data (response body), that will\nbe transformed to {@link AutoBeOpenApi.IJsonSchema.IReference} type in the\n{@link AutoBeOpenApi.IComponents.schemas components section} as an\n{@link AutoBeOpenApi.IJsonSchema.IObject object} type.\n\nHere is the naming convention for the response body type:\n\n- `IEntityName`: Main entity with detailed information (e.g.,\n `IShoppingSale`)\n- `IEntityName.ISummary`: Simplified response version with essential\n properties\n- `IEntityName.IInvert`: Alternative view of an entity from a different\n perspective\n- `IPageIEntityName`: Paginated results container with `pagination` and\n `data` properties\n\nWhat you write:\n\n```json\n{\n \"typeName\": \"IShoppingOrder\"\n}\n```\n\nTransformed to:\n\n```json\n{\n \"schema\": {\n \"$ref\": \"#/components/schemas/IShoppingOrder\"\n }\n}\n```"
564
+ }
565
+ },
566
+ required: [
567
+ "description",
568
+ "typeName"
569
+ ],
570
+ description: "Response body information for OpenAPI operation.\n\nThis interface defines the structure of a successful response from an API\noperation. It provides a description of the response and a schema reference\nto define the returned data structure.\n\nThe content-type for all responses is always `application/json`. Even when\nfile downloading is required, don't use `application/octet-stream` or\n`multipart/form-data` content types. Instead, just define an URI string\nproperty in the response body schema.\n\nIn OpenAPI, this might represent:\n\n```json\n{\n \"responses\": {\n \"200\": {\n \"description\": \"Order information\",\n \"content\": {\n \"application/json\": {\n \"schema\": { \"$ref\": \"#/components/schemas/IShoppingOrder\" }\n }\n }\n }\n }\n}\n```"
571
+ },
572
+ "AutoBeOpenApi.IPrerequisite": {
573
+ type: "object",
574
+ properties: {
575
+ endpoint: {
576
+ $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint",
577
+ description: "The API endpoint that must be called before the main operation.\n\nThis specifies the exact HTTP method and path of the prerequisite API.\nThe endpoint must be a valid operation defined elsewhere in the API\nspecification. Path parameters in the prerequisite endpoint can reference\nthe same parameters available in the main operation."
578
+ },
579
+ description: {
580
+ type: "string",
581
+ description: "Clear description of why this prerequisite is required.\n\nThis description should explain:\n\n- What validation or check this prerequisite performs\n- What state or condition must be satisfied\n- What happens if this prerequisite fails\n- Any specific data from the prerequisite used by the main operation\n\nThe description helps developers understand the dependency relationship\nand aids in debugging when prerequisites fail.\n\nGuidelines for good descriptions:\n\n- Be specific about the requirement (e.g., \"must be in 'active' state\")\n- Explain business logic constraints (e.g., \"budget must not be exceeded\")\n- Explain data dependencies (e.g., \"provides pricing information needed\")\n- Keep it concise but complete\n\n> MUST be written in English. Never use other languages."
582
+ }
583
+ },
584
+ required: [
585
+ "endpoint",
586
+ "description"
587
+ ],
588
+ description: "Prerequisite API operation dependency.\n\n`IPrerequisite` defines a dependency relationship between API operations,\nspecifying that certain endpoints must be successfully called before the\ncurrent operation can proceed. This ensures proper resource validation,\nstate checking, and data availability in complex API workflows.\n\n## CRITICAL WARNING: Authentication is NOT a Prerequisite\n\n**NEVER use prerequisites for authentication or authorization checks!**\n\nPrerequisites are ONLY for business logic dependencies such as:\n\n- Checking if a resource exists\n- Verifying resource state\n- Loading required data\n\nDo NOT create prerequisites for:\n\n- Login/authentication endpoints\n- Token validation\n- Permission checks\n- User authorization verification\n\nAuthentication is handled separately via the `authorizationActor` field on\nthe operation itself. Mixing authentication with business prerequisites\ncreates confusion and incorrect test scenarios.\n\n## Core Concept\n\nPrerequisites create an execution dependency graph for API operations. They\nexplicitly declare which APIs must succeed before attempting the current\noperation, preventing invalid states and ensuring data consistency.\n\n## Structure\n\nEach prerequisite consists of:\n\n1. **endpoint**: The API endpoint that must be called first\n2. **description**: Clear explanation of why this prerequisite is required\n\n## Common Use Cases\n\n### 1. Resource Existence Validation\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/users/{userId}\", \"method\": \"get\" },\n \"description\": \"User must exist before updating their profile\"\n}\n```\n\n### 2. Parent-Child Relationships\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/posts/{postId}\", \"method\": \"get\" },\n \"description\": \"Post must exist before adding comments\"\n}\n```\n\n### 3. State Prerequisites\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/orders/{orderId}/status\", \"method\": \"get\" },\n \"description\": \"Order must be in 'confirmed' state before shipping\"\n}\n```\n\n### 4. Business Logic Dependencies\n\n```typescript\n{\n \"endpoint\": {\n \"path\": \"/inventory/{productId}/stock\",\n \"method\": \"get\"\n },\n \"description\": \"Product must have sufficient stock before creating order\"\n}\n```\n\n## Implementation Guidelines\n\n1. **Clear Descriptions**: Always explain WHY the prerequisite is needed\n2. **Minimal Dependencies**: Only include truly necessary prerequisites\n3. **Logical Order**: If multiple prerequisites exist, order them logically\n4. **Error Context**: Description should help understand failure scenarios\n5. **No Authentication**: Prerequisites must NEVER be authentication checks\n\n## Test Generation Usage\n\nThe Test Agent utilizes prerequisites to:\n\n- Set up test data in the correct sequence\n- Generate realistic test scenarios\n- Create both positive and negative test cases\n- Ensure proper cleanup in reverse dependency order\n\n## Best Practices\n\n- Keep prerequisite chains as short as possible for performance\n- Consider caching prerequisite results when safe to do so\n- Ensure prerequisite descriptions are specific, not generic\n- Validate that circular dependencies don't exist\n- Document any side effects of prerequisite calls\n- NEVER use for authentication/authorization validation"
589
+ },
590
+ "AutoBeOpenApi.IEndpoint": {
591
+ type: "object",
592
+ properties: {
593
+ path: {
594
+ type: "string",
595
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
596
+ description: "HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- \"/users\"\n- \"/users/{userId}\"\n- \"/articles/{articleId}/comments\"\n- \"/attachmentFiles\"\n- \"/orders/{orderId}/items/{itemId}\"\n\nInvalid examples:\n\n- \"'/users'\" (contains quotes)\n- \"/user profile\" (contains space)\n- \"/users/[userId]\" (wrong bracket format)\n- \"/admin/users\" (role prefix)\n- \"/api/v1/users\" (API prefix)"
597
+ },
598
+ method: {
599
+ oneOf: [
600
+ {
601
+ "const": "get"
602
+ },
603
+ {
604
+ "const": "post"
605
+ },
606
+ {
607
+ "const": "put"
608
+ },
609
+ {
610
+ "const": "delete"
611
+ },
612
+ {
613
+ "const": "patch"
614
+ }
615
+ ],
616
+ description: "HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., \"get\",\nnot \"GET\").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record"
617
+ }
618
+ },
619
+ required: [
620
+ "path",
621
+ "method"
622
+ ],
623
+ description: "API endpoint information."
624
+ }
625
+ }
626
+ },
627
+ functions: [
628
+ {
629
+ name: "process",
630
+ async: false,
631
+ parameters: [
632
+ {
633
+ name: "props",
634
+ description: " Request containing either preliminary data request or complete\ntask",
635
+ required: true,
636
+ schema: {
637
+ $ref: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IProps"
638
+ }
639
+ }
640
+ ],
641
+ description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations."
642
+ }
643
+ ]
644
+ },
645
+ source: SOURCE,
646
+ kinds: ["analysisFiles", "prismaSchemas"],
647
+ state: ctx.state(),
648
+ });
649
+ return yield preliminary.orchestrate(ctx, (out) => __awaiter(this, void 0, void 0, function* () {
650
+ var _a, _b;
60
651
  const pointer = {
61
652
  value: null,
62
653
  };
63
- const { metric, tokenUsage } = yield ctx.conversate({
64
- source: "interfaceOperationReview",
65
- histories: (0, transformInterfaceOperationsReviewHistories_1.transformInterfaceOperationsReviewHistories)(ctx, operations),
66
- controller: createReviewController({
654
+ const result = yield ctx.conversate(Object.assign({ source: SOURCE, controller: createReviewController({
655
+ preliminary,
67
656
  model: ctx.model,
68
657
  prismaSchemas: files,
69
658
  build: (next) => {
70
659
  pointer.value = next;
71
660
  },
72
- }),
73
- enforceFunctionCall: false,
74
- message: "Review the operations",
75
- });
76
- if (pointer.value === null) {
77
- ++progress.completed;
78
- return [];
661
+ }), enforceFunctionCall: false }, (0, transformInterfaceOperationReviewHistory_1.transformInterfaceOperationReviewHistory)({
662
+ preliminary,
663
+ operations,
664
+ })));
665
+ if (pointer.value !== null) {
666
+ const content = pointer.value.content.map((op) => (Object.assign(Object.assign({}, op), { authorizationType: null })));
667
+ ctx.dispatch({
668
+ type: SOURCE,
669
+ id: (0, uuid_1.v7)(),
670
+ operations: content,
671
+ review: pointer.value.think.review,
672
+ plan: pointer.value.think.plan,
673
+ content,
674
+ metric: result.metric,
675
+ tokenUsage: result.tokenUsage,
676
+ created_at: new Date().toISOString(),
677
+ step: (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
678
+ total: progress.total,
679
+ completed: ++progress.completed,
680
+ });
681
+ return out(result)(content);
79
682
  }
80
- const content = pointer.value.content.map((op) => (Object.assign(Object.assign({}, op), { authorizationType: null })));
81
- ctx.dispatch({
82
- type: "interfaceOperationReview",
83
- id: (0, uuid_1.v7)(),
84
- operations: content,
85
- review: pointer.value.think.review,
86
- plan: pointer.value.think.plan,
87
- content,
88
- metric,
89
- tokenUsage,
90
- created_at: new Date().toISOString(),
91
- step: (_c = (_b = ctx.state().analyze) === null || _b === void 0 ? void 0 : _b.step) !== null && _c !== void 0 ? _c : 0,
92
- total: progress.total,
93
- completed: ++progress.completed,
94
- });
95
- return content;
96
- }
97
- catch (_d) {
98
- ++progress.completed;
99
- return [];
100
- }
683
+ return out(result)(null);
684
+ }));
101
685
  });
102
686
  }
103
687
  function createReviewController(props) {
104
688
  const validate = (next) => {
105
- const result = (() => { const _iv4 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv8 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "object" === typeof input.think && null !== input.think && _io1(input.think) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io2(elem))); const _io1 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io2 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io7(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io8(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io9(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu0(input.schema)); const _io4 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io5 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io6 = input => (undefined === input.format || true === _iv4.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io7 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io8 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io9 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io10(input.endpoint) && "string" === typeof input.description; const _io10 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
689
+ const result = (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
690
+ if ("getAnalysisFiles" === input.type)
691
+ return _io1(input);
692
+ else if ("getPrismaSchemas" === input.type)
693
+ return _io2(input);
694
+ else if ("complete" === input.type)
695
+ return _io3(input);
696
+ else
697
+ return false;
698
+ })(); const _iu1 = input => (() => {
106
699
  if ("number" === input.type)
107
- return _io5(input);
700
+ return _io8(input);
108
701
  else if ("integer" === input.type)
109
- return _io4(input);
702
+ return _io7(input);
110
703
  else if ("string" === input.type)
111
- return _io6(input);
704
+ return _io9(input);
112
705
  else
113
706
  return false;
114
- })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
707
+ })(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
708
+ path: _path + ".thinking",
709
+ expected: "string",
710
+ value: input.thinking
711
+ }), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
712
+ path: _path + ".request",
713
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
714
+ value: input.request
715
+ })) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
716
+ path: _path + ".request",
717
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
718
+ value: input.request
719
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
720
+ path: _path + ".type",
721
+ expected: "\"getAnalysisFiles\"",
722
+ value: input.type
723
+ }), (Array.isArray(input.fileNames) || _report(_exceptionable, {
724
+ path: _path + ".fileNames",
725
+ expected: "(Array<string> & MinItems<1>)",
726
+ value: input.fileNames
727
+ })) && ((1 <= input.fileNames.length || _report(_exceptionable, {
728
+ path: _path + ".fileNames",
729
+ expected: "Array<> & MinItems<1>",
730
+ value: input.fileNames
731
+ })) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
732
+ path: _path + ".fileNames[" + _index7 + "]",
733
+ expected: "string",
734
+ value: elem
735
+ })).every(flag => flag)) || _report(_exceptionable, {
736
+ path: _path + ".fileNames",
737
+ expected: "(Array<string> & MinItems<1>)",
738
+ value: input.fileNames
739
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
740
+ path: _path + ".type",
741
+ expected: "\"getPrismaSchemas\"",
742
+ value: input.type
743
+ }), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
744
+ path: _path + ".schemaNames",
745
+ expected: "(Array<string> & MinItems<1>)",
746
+ value: input.schemaNames
747
+ })) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
748
+ path: _path + ".schemaNames",
749
+ expected: "Array<> & MinItems<1>",
750
+ value: input.schemaNames
751
+ })) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
752
+ path: _path + ".schemaNames[" + _index8 + "]",
753
+ expected: "string",
754
+ value: elem
755
+ })).every(flag => flag)) || _report(_exceptionable, {
756
+ path: _path + ".schemaNames",
757
+ expected: "(Array<string> & MinItems<1>)",
758
+ value: input.schemaNames
759
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
760
+ path: _path + ".type",
761
+ expected: "\"complete\"",
762
+ value: input.type
763
+ }), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
115
764
  path: _path + ".think",
116
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
765
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
117
766
  value: input.think
118
- })) && _vo1(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
767
+ })) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
119
768
  path: _path + ".think",
120
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
769
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
121
770
  value: input.think
122
771
  }), (Array.isArray(input.content) || _report(_exceptionable, {
123
772
  path: _path + ".content",
124
773
  expected: "Array<AutoBeOpenApi.IOperation>",
125
774
  value: input.content
126
- })) && input.content.map((elem, _index5) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
127
- path: _path + ".content[" + _index5 + "]",
775
+ })) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
776
+ path: _path + ".content[" + _index9 + "]",
128
777
  expected: "AutoBeOpenApi.IOperation",
129
778
  value: elem
130
- })) && _vo2(elem, _path + ".content[" + _index5 + "]", true && _exceptionable) || _report(_exceptionable, {
131
- path: _path + ".content[" + _index5 + "]",
779
+ })) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
780
+ path: _path + ".content[" + _index9 + "]",
132
781
  expected: "AutoBeOpenApi.IOperation",
133
782
  value: elem
134
783
  })).every(flag => flag) || _report(_exceptionable, {
135
784
  path: _path + ".content",
136
785
  expected: "Array<AutoBeOpenApi.IOperation>",
137
786
  value: input.content
138
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
787
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
139
788
  path: _path + ".review",
140
789
  expected: "string",
141
790
  value: input.review
@@ -143,7 +792,7 @@ function createReviewController(props) {
143
792
  path: _path + ".plan",
144
793
  expected: "string",
145
794
  value: input.plan
146
- })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
795
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
147
796
  path: _path + ".specification",
148
797
  expected: "string",
149
798
  value: input.specification
@@ -163,12 +812,12 @@ function createReviewController(props) {
163
812
  path: _path + ".parameters",
164
813
  expected: "Array<AutoBeOpenApi.IParameter>",
165
814
  value: input.parameters
166
- })) && input.parameters.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
167
- path: _path + ".parameters[" + _index6 + "]",
815
+ })) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
816
+ path: _path + ".parameters[" + _index10 + "]",
168
817
  expected: "AutoBeOpenApi.IParameter",
169
818
  value: elem
170
- })) && _vo3(elem, _path + ".parameters[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
171
- path: _path + ".parameters[" + _index6 + "]",
819
+ })) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
820
+ path: _path + ".parameters[" + _index10 + "]",
172
821
  expected: "AutoBeOpenApi.IParameter",
173
822
  value: elem
174
823
  })).every(flag => flag) || _report(_exceptionable, {
@@ -179,7 +828,7 @@ function createReviewController(props) {
179
828
  path: _path + ".requestBody",
180
829
  expected: "(AutoBeOpenApi.IRequestBody | null)",
181
830
  value: input.requestBody
182
- })) && _vo7(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
831
+ })) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
183
832
  path: _path + ".requestBody",
184
833
  expected: "(AutoBeOpenApi.IRequestBody | null)",
185
834
  value: input.requestBody
@@ -187,7 +836,7 @@ function createReviewController(props) {
187
836
  path: _path + ".responseBody",
188
837
  expected: "(AutoBeOpenApi.IResponseBody | null)",
189
838
  value: input.responseBody
190
- })) && _vo8(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
839
+ })) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
191
840
  path: _path + ".responseBody",
192
841
  expected: "(AutoBeOpenApi.IResponseBody | null)",
193
842
  value: input.responseBody
@@ -215,12 +864,12 @@ function createReviewController(props) {
215
864
  path: _path + ".prerequisites",
216
865
  expected: "Array<AutoBeOpenApi.IPrerequisite>",
217
866
  value: input.prerequisites
218
- })) && input.prerequisites.map((elem, _index7) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
219
- path: _path + ".prerequisites[" + _index7 + "]",
867
+ })) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
868
+ path: _path + ".prerequisites[" + _index11 + "]",
220
869
  expected: "AutoBeOpenApi.IPrerequisite",
221
870
  value: elem
222
- })) && _vo9(elem, _path + ".prerequisites[" + _index7 + "]", true && _exceptionable) || _report(_exceptionable, {
223
- path: _path + ".prerequisites[" + _index7 + "]",
871
+ })) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
872
+ path: _path + ".prerequisites[" + _index11 + "]",
224
873
  expected: "AutoBeOpenApi.IPrerequisite",
225
874
  value: elem
226
875
  })).every(flag => flag) || _report(_exceptionable, {
@@ -239,7 +888,7 @@ function createReviewController(props) {
239
888
  path: _path + ".method",
240
889
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
241
890
  value: input.method
242
- })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
891
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
243
892
  path: _path + ".name",
244
893
  expected: "string & CamelCasePattern",
245
894
  value: input.name
@@ -255,11 +904,11 @@ function createReviewController(props) {
255
904
  path: _path + ".schema",
256
905
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
257
906
  value: input.schema
258
- })) && _vu0(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
907
+ })) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
259
908
  path: _path + ".schema",
260
909
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
261
910
  value: input.schema
262
- })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
911
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
263
912
  path: _path + ".minimum",
264
913
  expected: "number & Type<\"int64\">",
265
914
  value: input.minimum
@@ -299,7 +948,7 @@ function createReviewController(props) {
299
948
  path: _path + ".type",
300
949
  expected: "\"integer\"",
301
950
  value: input.type
302
- })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
951
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
303
952
  path: _path + ".minimum",
304
953
  expected: "(number | undefined)",
305
954
  value: input.minimum
@@ -327,7 +976,7 @@ function createReviewController(props) {
327
976
  path: _path + ".type",
328
977
  expected: "\"number\"",
329
978
  value: input.type
330
- })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv8.has(input.format) || _report(_exceptionable, {
979
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
331
980
  path: _path + ".format",
332
981
  expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
333
982
  value: input.format
@@ -359,7 +1008,7 @@ function createReviewController(props) {
359
1008
  path: _path + ".type",
360
1009
  expected: "\"string\"",
361
1010
  value: input.type
362
- })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1011
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
363
1012
  path: _path + ".description",
364
1013
  expected: "string",
365
1014
  value: input.description
@@ -367,7 +1016,7 @@ function createReviewController(props) {
367
1016
  path: _path + ".typeName",
368
1017
  expected: "string",
369
1018
  value: input.typeName
370
- })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1019
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
371
1020
  path: _path + ".description",
372
1021
  expected: "string",
373
1022
  value: input.description
@@ -375,11 +1024,11 @@ function createReviewController(props) {
375
1024
  path: _path + ".typeName",
376
1025
  expected: "string",
377
1026
  value: input.typeName
378
- })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
1027
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
379
1028
  path: _path + ".endpoint",
380
1029
  expected: "AutoBeOpenApi.IEndpoint",
381
1030
  value: input.endpoint
382
- })) && _vo10(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
1031
+ })) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
383
1032
  path: _path + ".endpoint",
384
1033
  expected: "AutoBeOpenApi.IEndpoint",
385
1034
  value: input.endpoint
@@ -387,7 +1036,7 @@ function createReviewController(props) {
387
1036
  path: _path + ".description",
388
1037
  expected: "string",
389
1038
  value: input.description
390
- })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
1039
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
391
1040
  path: _path + ".path",
392
1041
  expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
393
1042
  value: input.path
@@ -400,12 +1049,25 @@ function createReviewController(props) {
400
1049
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
401
1050
  value: input.method
402
1051
  })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
1052
+ if ("getAnalysisFiles" === input.type)
1053
+ return _vo1(input, _path, true && _exceptionable);
1054
+ else if ("getPrismaSchemas" === input.type)
1055
+ return _vo2(input, _path, true && _exceptionable);
1056
+ else if ("complete" === input.type)
1057
+ return _vo3(input, _path, true && _exceptionable);
1058
+ else
1059
+ return _report(_exceptionable, {
1060
+ path: _path,
1061
+ expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
1062
+ value: input
1063
+ });
1064
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
403
1065
  if ("number" === input.type)
404
- return _vo5(input, _path, true && _exceptionable);
1066
+ return _vo8(input, _path, true && _exceptionable);
405
1067
  else if ("integer" === input.type)
406
- return _vo4(input, _path, true && _exceptionable);
1068
+ return _vo7(input, _path, true && _exceptionable);
407
1069
  else if ("string" === input.type)
408
- return _vo6(input, _path, true && _exceptionable);
1070
+ return _vo9(input, _path, true && _exceptionable);
409
1071
  else
410
1072
  return _report(_exceptionable, {
411
1073
  path: _path,
@@ -418,11 +1080,11 @@ function createReviewController(props) {
418
1080
  _report = __typia_transform__validateReport._validateReport(errors);
419
1081
  ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
420
1082
  path: _path + "",
421
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
1083
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
422
1084
  value: input
423
1085
  })) && _vo0(input, _path + "", true) || _report(true, {
424
1086
  path: _path + "",
425
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
1087
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
426
1088
  value: input
427
1089
  }))(input, "$input", true);
428
1090
  const success = 0 === errors.length;
@@ -442,10 +1104,15 @@ function createReviewController(props) {
442
1104
  }; })()(next);
443
1105
  if (result.success === false)
444
1106
  return result;
1107
+ else if (result.data.request.type !== "complete")
1108
+ return props.preliminary.validate({
1109
+ thinking: result.data.thinking,
1110
+ request: result.data.request,
1111
+ });
445
1112
  const errors = [];
446
1113
  OperationValidator_1.OperationValidator.validate({
447
- path: "$input.content",
448
- operations: result.data.content,
1114
+ path: "$input.request.content",
1115
+ operations: result.data.request.content,
449
1116
  errors,
450
1117
  });
451
1118
  if (errors.length !== 0)
@@ -463,11 +1130,12 @@ function createReviewController(props) {
463
1130
  : "claude"](validate);
464
1131
  return {
465
1132
  protocol: "class",
466
- name: "review",
1133
+ name: SOURCE,
467
1134
  application,
468
1135
  execute: {
469
- reviewOperations: (next) => {
470
- props.build(next);
1136
+ process: (next) => {
1137
+ if (next.request.type === "complete")
1138
+ props.build(next.request);
471
1139
  },
472
1140
  },
473
1141
  };
@@ -483,31 +1151,123 @@ const collection = {
483
1151
  },
484
1152
  functions: [
485
1153
  {
486
- name: "reviewOperations",
1154
+ name: "process",
487
1155
  parameters: {
488
- description: " Properties containing the thinking process (review & plan) and\nthe enhanced operations content\n\n------------------------------\n\nDescription of the current {@link IAutoBeInterfaceOperationsReviewApplication.IProps} type:\n\n> Properties for API operation review and improvement process.\n> \n> Contains both the input operations to be reviewed and the outputs generated\n> by the Interface Operations Review Agent, which will be published as part\n> of the AutoBeInterfaceOperationReviewEvent.",
1156
+ description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationReviewApplication.IProps}",
489
1157
  type: "object",
490
1158
  properties: {
491
- think: {
492
- description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
493
- $ref: "#/$defs/IAutoBeInterfaceOperationsReviewApplication.IThink"
1159
+ thinking: {
1160
+ description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion.",
1161
+ type: "string"
494
1162
  },
495
- content: {
496
- description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
497
- type: "array",
498
- items: {
499
- $ref: "#/$defs/AutoBeOpenApi.IOperation"
1163
+ request: {
1164
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls.",
1165
+ anyOf: [
1166
+ {
1167
+ $ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
1168
+ },
1169
+ {
1170
+ $ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
1171
+ },
1172
+ {
1173
+ $ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
1174
+ }
1175
+ ],
1176
+ "x-discriminator": {
1177
+ propertyName: "type",
1178
+ mapping: {
1179
+ getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
1180
+ getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
1181
+ complete: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
1182
+ }
500
1183
  }
501
1184
  }
502
1185
  },
503
1186
  required: [
504
- "think",
505
- "content"
1187
+ "thinking",
1188
+ "request"
506
1189
  ],
507
1190
  additionalProperties: false,
508
1191
  $defs: {
509
- "IAutoBeInterfaceOperationsReviewApplication.IThink": {
510
- description: "Structured thinking process for comprehensive API operation review.\n\nCombines analytical review findings with actionable improvement planning to\nguide the systematic enhancement of API operations. This thinking structure\nensures all aspects of API quality are evaluated and addressed before\nproducing the final operations.",
1192
+ IAutoBePreliminaryGetAnalysisFiles: {
1193
+ description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context.",
1194
+ type: "object",
1195
+ properties: {
1196
+ type: {
1197
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files.",
1198
+ type: "string",
1199
+ "enum": [
1200
+ "getAnalysisFiles"
1201
+ ]
1202
+ },
1203
+ fileNames: {
1204
+ description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls.\n\n\n@minItems 1",
1205
+ type: "array",
1206
+ items: {
1207
+ type: "string"
1208
+ }
1209
+ }
1210
+ },
1211
+ required: [
1212
+ "type",
1213
+ "fileNames"
1214
+ ]
1215
+ },
1216
+ IAutoBePreliminaryGetPrismaSchemas: {
1217
+ description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations.",
1218
+ type: "object",
1219
+ properties: {
1220
+ type: {
1221
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas.",
1222
+ type: "string",
1223
+ "enum": [
1224
+ "getPrismaSchemas"
1225
+ ]
1226
+ },
1227
+ schemaNames: {
1228
+ description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls.\n\n\n@minItems 1",
1229
+ type: "array",
1230
+ items: {
1231
+ type: "string"
1232
+ }
1233
+ }
1234
+ },
1235
+ required: [
1236
+ "type",
1237
+ "schemaNames"
1238
+ ]
1239
+ },
1240
+ "IAutoBeInterfaceOperationReviewApplication.IComplete": {
1241
+ description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations.",
1242
+ type: "object",
1243
+ properties: {
1244
+ type: {
1245
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
1246
+ type: "string",
1247
+ "enum": [
1248
+ "complete"
1249
+ ]
1250
+ },
1251
+ think: {
1252
+ description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
1253
+ $ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IThink"
1254
+ },
1255
+ content: {
1256
+ description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
1257
+ type: "array",
1258
+ items: {
1259
+ $ref: "#/$defs/AutoBeOpenApi.IOperation"
1260
+ }
1261
+ }
1262
+ },
1263
+ required: [
1264
+ "type",
1265
+ "think",
1266
+ "content"
1267
+ ]
1268
+ },
1269
+ "IAutoBeInterfaceOperationReviewApplication.IThink": {
1270
+ description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations.",
511
1271
  type: "object",
512
1272
  properties: {
513
1273
  review: {
@@ -892,41 +1652,106 @@ const collection = {
892
1652
  }
893
1653
  }
894
1654
  },
895
- description: "Reviews a batch of API operations for quality and correctness.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs a structured thinking\nprocess containing review findings and improvement plans, plus the final\nproduction-ready operations with all critical issues resolved.",
896
- validate: (() => { const _iv4 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv8 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "object" === typeof input.think && null !== input.think && _io1(input.think) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io2(elem))); const _io1 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io2 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io7(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io8(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io9(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu0(input.schema)); const _io4 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io5 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io6 = input => (undefined === input.format || true === _iv4.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io7 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io8 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io9 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io10(input.endpoint) && "string" === typeof input.description; const _io10 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
1655
+ description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations.",
1656
+ validate: (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
1657
+ if ("getAnalysisFiles" === input.type)
1658
+ return _io1(input);
1659
+ else if ("getPrismaSchemas" === input.type)
1660
+ return _io2(input);
1661
+ else if ("complete" === input.type)
1662
+ return _io3(input);
1663
+ else
1664
+ return false;
1665
+ })(); const _iu1 = input => (() => {
897
1666
  if ("number" === input.type)
898
- return _io5(input);
1667
+ return _io8(input);
899
1668
  else if ("integer" === input.type)
900
- return _io4(input);
1669
+ return _io7(input);
901
1670
  else if ("string" === input.type)
902
- return _io6(input);
1671
+ return _io9(input);
903
1672
  else
904
1673
  return false;
905
- })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
1674
+ })(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
1675
+ path: _path + ".thinking",
1676
+ expected: "string",
1677
+ value: input.thinking
1678
+ }), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
1679
+ path: _path + ".request",
1680
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
1681
+ value: input.request
1682
+ })) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
1683
+ path: _path + ".request",
1684
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
1685
+ value: input.request
1686
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
1687
+ path: _path + ".type",
1688
+ expected: "\"getAnalysisFiles\"",
1689
+ value: input.type
1690
+ }), (Array.isArray(input.fileNames) || _report(_exceptionable, {
1691
+ path: _path + ".fileNames",
1692
+ expected: "(Array<string> & MinItems<1>)",
1693
+ value: input.fileNames
1694
+ })) && ((1 <= input.fileNames.length || _report(_exceptionable, {
1695
+ path: _path + ".fileNames",
1696
+ expected: "Array<> & MinItems<1>",
1697
+ value: input.fileNames
1698
+ })) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
1699
+ path: _path + ".fileNames[" + _index7 + "]",
1700
+ expected: "string",
1701
+ value: elem
1702
+ })).every(flag => flag)) || _report(_exceptionable, {
1703
+ path: _path + ".fileNames",
1704
+ expected: "(Array<string> & MinItems<1>)",
1705
+ value: input.fileNames
1706
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
1707
+ path: _path + ".type",
1708
+ expected: "\"getPrismaSchemas\"",
1709
+ value: input.type
1710
+ }), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
1711
+ path: _path + ".schemaNames",
1712
+ expected: "(Array<string> & MinItems<1>)",
1713
+ value: input.schemaNames
1714
+ })) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
1715
+ path: _path + ".schemaNames",
1716
+ expected: "Array<> & MinItems<1>",
1717
+ value: input.schemaNames
1718
+ })) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
1719
+ path: _path + ".schemaNames[" + _index8 + "]",
1720
+ expected: "string",
1721
+ value: elem
1722
+ })).every(flag => flag)) || _report(_exceptionable, {
1723
+ path: _path + ".schemaNames",
1724
+ expected: "(Array<string> & MinItems<1>)",
1725
+ value: input.schemaNames
1726
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
1727
+ path: _path + ".type",
1728
+ expected: "\"complete\"",
1729
+ value: input.type
1730
+ }), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
906
1731
  path: _path + ".think",
907
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
1732
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
908
1733
  value: input.think
909
- })) && _vo1(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
1734
+ })) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
910
1735
  path: _path + ".think",
911
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
1736
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
912
1737
  value: input.think
913
1738
  }), (Array.isArray(input.content) || _report(_exceptionable, {
914
1739
  path: _path + ".content",
915
1740
  expected: "Array<AutoBeOpenApi.IOperation>",
916
1741
  value: input.content
917
- })) && input.content.map((elem, _index5) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
918
- path: _path + ".content[" + _index5 + "]",
1742
+ })) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1743
+ path: _path + ".content[" + _index9 + "]",
919
1744
  expected: "AutoBeOpenApi.IOperation",
920
1745
  value: elem
921
- })) && _vo2(elem, _path + ".content[" + _index5 + "]", true && _exceptionable) || _report(_exceptionable, {
922
- path: _path + ".content[" + _index5 + "]",
1746
+ })) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
1747
+ path: _path + ".content[" + _index9 + "]",
923
1748
  expected: "AutoBeOpenApi.IOperation",
924
1749
  value: elem
925
1750
  })).every(flag => flag) || _report(_exceptionable, {
926
1751
  path: _path + ".content",
927
1752
  expected: "Array<AutoBeOpenApi.IOperation>",
928
1753
  value: input.content
929
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
1754
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
930
1755
  path: _path + ".review",
931
1756
  expected: "string",
932
1757
  value: input.review
@@ -934,7 +1759,7 @@ const collection = {
934
1759
  path: _path + ".plan",
935
1760
  expected: "string",
936
1761
  value: input.plan
937
- })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
1762
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
938
1763
  path: _path + ".specification",
939
1764
  expected: "string",
940
1765
  value: input.specification
@@ -954,12 +1779,12 @@ const collection = {
954
1779
  path: _path + ".parameters",
955
1780
  expected: "Array<AutoBeOpenApi.IParameter>",
956
1781
  value: input.parameters
957
- })) && input.parameters.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
958
- path: _path + ".parameters[" + _index6 + "]",
1782
+ })) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1783
+ path: _path + ".parameters[" + _index10 + "]",
959
1784
  expected: "AutoBeOpenApi.IParameter",
960
1785
  value: elem
961
- })) && _vo3(elem, _path + ".parameters[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
962
- path: _path + ".parameters[" + _index6 + "]",
1786
+ })) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
1787
+ path: _path + ".parameters[" + _index10 + "]",
963
1788
  expected: "AutoBeOpenApi.IParameter",
964
1789
  value: elem
965
1790
  })).every(flag => flag) || _report(_exceptionable, {
@@ -970,7 +1795,7 @@ const collection = {
970
1795
  path: _path + ".requestBody",
971
1796
  expected: "(AutoBeOpenApi.IRequestBody | null)",
972
1797
  value: input.requestBody
973
- })) && _vo7(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
1798
+ })) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
974
1799
  path: _path + ".requestBody",
975
1800
  expected: "(AutoBeOpenApi.IRequestBody | null)",
976
1801
  value: input.requestBody
@@ -978,7 +1803,7 @@ const collection = {
978
1803
  path: _path + ".responseBody",
979
1804
  expected: "(AutoBeOpenApi.IResponseBody | null)",
980
1805
  value: input.responseBody
981
- })) && _vo8(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
1806
+ })) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
982
1807
  path: _path + ".responseBody",
983
1808
  expected: "(AutoBeOpenApi.IResponseBody | null)",
984
1809
  value: input.responseBody
@@ -1006,12 +1831,12 @@ const collection = {
1006
1831
  path: _path + ".prerequisites",
1007
1832
  expected: "Array<AutoBeOpenApi.IPrerequisite>",
1008
1833
  value: input.prerequisites
1009
- })) && input.prerequisites.map((elem, _index7) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1010
- path: _path + ".prerequisites[" + _index7 + "]",
1834
+ })) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1835
+ path: _path + ".prerequisites[" + _index11 + "]",
1011
1836
  expected: "AutoBeOpenApi.IPrerequisite",
1012
1837
  value: elem
1013
- })) && _vo9(elem, _path + ".prerequisites[" + _index7 + "]", true && _exceptionable) || _report(_exceptionable, {
1014
- path: _path + ".prerequisites[" + _index7 + "]",
1838
+ })) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
1839
+ path: _path + ".prerequisites[" + _index11 + "]",
1015
1840
  expected: "AutoBeOpenApi.IPrerequisite",
1016
1841
  value: elem
1017
1842
  })).every(flag => flag) || _report(_exceptionable, {
@@ -1030,7 +1855,7 @@ const collection = {
1030
1855
  path: _path + ".method",
1031
1856
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
1032
1857
  value: input.method
1033
- })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
1858
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
1034
1859
  path: _path + ".name",
1035
1860
  expected: "string & CamelCasePattern",
1036
1861
  value: input.name
@@ -1046,11 +1871,11 @@ const collection = {
1046
1871
  path: _path + ".schema",
1047
1872
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
1048
1873
  value: input.schema
1049
- })) && _vu0(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
1874
+ })) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
1050
1875
  path: _path + ".schema",
1051
1876
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
1052
1877
  value: input.schema
1053
- })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
1878
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
1054
1879
  path: _path + ".minimum",
1055
1880
  expected: "number & Type<\"int64\">",
1056
1881
  value: input.minimum
@@ -1090,7 +1915,7 @@ const collection = {
1090
1915
  path: _path + ".type",
1091
1916
  expected: "\"integer\"",
1092
1917
  value: input.type
1093
- })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
1918
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
1094
1919
  path: _path + ".minimum",
1095
1920
  expected: "(number | undefined)",
1096
1921
  value: input.minimum
@@ -1118,7 +1943,7 @@ const collection = {
1118
1943
  path: _path + ".type",
1119
1944
  expected: "\"number\"",
1120
1945
  value: input.type
1121
- })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv8.has(input.format) || _report(_exceptionable, {
1946
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
1122
1947
  path: _path + ".format",
1123
1948
  expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
1124
1949
  value: input.format
@@ -1150,7 +1975,7 @@ const collection = {
1150
1975
  path: _path + ".type",
1151
1976
  expected: "\"string\"",
1152
1977
  value: input.type
1153
- })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1978
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1154
1979
  path: _path + ".description",
1155
1980
  expected: "string",
1156
1981
  value: input.description
@@ -1158,7 +1983,7 @@ const collection = {
1158
1983
  path: _path + ".typeName",
1159
1984
  expected: "string",
1160
1985
  value: input.typeName
1161
- })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1986
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1162
1987
  path: _path + ".description",
1163
1988
  expected: "string",
1164
1989
  value: input.description
@@ -1166,11 +1991,11 @@ const collection = {
1166
1991
  path: _path + ".typeName",
1167
1992
  expected: "string",
1168
1993
  value: input.typeName
1169
- })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
1994
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
1170
1995
  path: _path + ".endpoint",
1171
1996
  expected: "AutoBeOpenApi.IEndpoint",
1172
1997
  value: input.endpoint
1173
- })) && _vo10(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
1998
+ })) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
1174
1999
  path: _path + ".endpoint",
1175
2000
  expected: "AutoBeOpenApi.IEndpoint",
1176
2001
  value: input.endpoint
@@ -1178,7 +2003,7 @@ const collection = {
1178
2003
  path: _path + ".description",
1179
2004
  expected: "string",
1180
2005
  value: input.description
1181
- })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
2006
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
1182
2007
  path: _path + ".path",
1183
2008
  expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
1184
2009
  value: input.path
@@ -1191,12 +2016,25 @@ const collection = {
1191
2016
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
1192
2017
  value: input.method
1193
2018
  })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
2019
+ if ("getAnalysisFiles" === input.type)
2020
+ return _vo1(input, _path, true && _exceptionable);
2021
+ else if ("getPrismaSchemas" === input.type)
2022
+ return _vo2(input, _path, true && _exceptionable);
2023
+ else if ("complete" === input.type)
2024
+ return _vo3(input, _path, true && _exceptionable);
2025
+ else
2026
+ return _report(_exceptionable, {
2027
+ path: _path,
2028
+ expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
2029
+ value: input
2030
+ });
2031
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
1194
2032
  if ("number" === input.type)
1195
- return _vo5(input, _path, true && _exceptionable);
2033
+ return _vo8(input, _path, true && _exceptionable);
1196
2034
  else if ("integer" === input.type)
1197
- return _vo4(input, _path, true && _exceptionable);
2035
+ return _vo7(input, _path, true && _exceptionable);
1198
2036
  else if ("string" === input.type)
1199
- return _vo6(input, _path, true && _exceptionable);
2037
+ return _vo9(input, _path, true && _exceptionable);
1200
2038
  else
1201
2039
  return _report(_exceptionable, {
1202
2040
  path: _path,
@@ -1209,11 +2047,11 @@ const collection = {
1209
2047
  _report = __typia_transform__validateReport._validateReport(errors);
1210
2048
  ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
1211
2049
  path: _path + "",
1212
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
2050
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
1213
2051
  value: input
1214
2052
  })) && _vo0(input, _path + "", true) || _report(true, {
1215
2053
  path: _path + "",
1216
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
2054
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
1217
2055
  value: input
1218
2056
  }))(input, "$input", true);
1219
2057
  const success = 0 === errors.length;
@@ -1236,7 +2074,7 @@ const collection = {
1236
2074
  };
1237
2075
  __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
1238
2076
  validate: {
1239
- reviewOperations: validate,
2077
+ process: validate,
1240
2078
  },
1241
2079
  }), { equals: false }));
1242
2080
  return application;
@@ -1250,31 +2088,116 @@ const collection = {
1250
2088
  },
1251
2089
  functions: [
1252
2090
  {
1253
- name: "reviewOperations",
2091
+ name: "process",
1254
2092
  parameters: {
1255
- description: " Properties containing the thinking process (review & plan) and\nthe enhanced operations content\n\n------------------------------\n\nDescription of the current {@link IAutoBeInterfaceOperationsReviewApplication.IProps} type:\n\n> Properties for API operation review and improvement process.\n> \n> Contains both the input operations to be reviewed and the outputs generated\n> by the Interface Operations Review Agent, which will be published as part\n> of the AutoBeInterfaceOperationReviewEvent.",
2093
+ description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationReviewApplication.IProps}",
1256
2094
  type: "object",
1257
2095
  properties: {
1258
- think: {
1259
- description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
1260
- $ref: "#/$defs/IAutoBeInterfaceOperationsReviewApplication.IThink"
2096
+ thinking: {
2097
+ description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion.",
2098
+ type: "string"
1261
2099
  },
1262
- content: {
1263
- description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
1264
- type: "array",
1265
- items: {
1266
- $ref: "#/$defs/AutoBeOpenApi.IOperation"
2100
+ request: {
2101
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls.",
2102
+ oneOf: [
2103
+ {
2104
+ $ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
2105
+ },
2106
+ {
2107
+ $ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
2108
+ },
2109
+ {
2110
+ $ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
2111
+ }
2112
+ ],
2113
+ discriminator: {
2114
+ propertyName: "type",
2115
+ mapping: {
2116
+ getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
2117
+ getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
2118
+ complete: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
2119
+ }
1267
2120
  }
1268
2121
  }
1269
2122
  },
1270
2123
  required: [
1271
- "think",
1272
- "content"
2124
+ "thinking",
2125
+ "request"
1273
2126
  ],
1274
2127
  additionalProperties: false,
1275
2128
  $defs: {
1276
- "IAutoBeInterfaceOperationsReviewApplication.IThink": {
1277
- description: "Structured thinking process for comprehensive API operation review.\n\nCombines analytical review findings with actionable improvement planning to\nguide the systematic enhancement of API operations. This thinking structure\nensures all aspects of API quality are evaluated and addressed before\nproducing the final operations.",
2129
+ IAutoBePreliminaryGetAnalysisFiles: {
2130
+ description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context.",
2131
+ type: "object",
2132
+ properties: {
2133
+ type: {
2134
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files.",
2135
+ "const": "getAnalysisFiles"
2136
+ },
2137
+ fileNames: {
2138
+ description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls.",
2139
+ type: "array",
2140
+ items: {
2141
+ type: "string"
2142
+ },
2143
+ minItems: 1
2144
+ }
2145
+ },
2146
+ required: [
2147
+ "type",
2148
+ "fileNames"
2149
+ ]
2150
+ },
2151
+ IAutoBePreliminaryGetPrismaSchemas: {
2152
+ description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations.",
2153
+ type: "object",
2154
+ properties: {
2155
+ type: {
2156
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas.",
2157
+ "const": "getPrismaSchemas"
2158
+ },
2159
+ schemaNames: {
2160
+ description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls.",
2161
+ type: "array",
2162
+ items: {
2163
+ type: "string"
2164
+ },
2165
+ minItems: 1
2166
+ }
2167
+ },
2168
+ required: [
2169
+ "type",
2170
+ "schemaNames"
2171
+ ]
2172
+ },
2173
+ "IAutoBeInterfaceOperationReviewApplication.IComplete": {
2174
+ description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations.",
2175
+ type: "object",
2176
+ properties: {
2177
+ type: {
2178
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
2179
+ "const": "complete"
2180
+ },
2181
+ think: {
2182
+ description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
2183
+ $ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IThink"
2184
+ },
2185
+ content: {
2186
+ description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
2187
+ type: "array",
2188
+ items: {
2189
+ $ref: "#/$defs/AutoBeOpenApi.IOperation"
2190
+ }
2191
+ }
2192
+ },
2193
+ required: [
2194
+ "type",
2195
+ "think",
2196
+ "content"
2197
+ ]
2198
+ },
2199
+ "IAutoBeInterfaceOperationReviewApplication.IThink": {
2200
+ description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations.",
1278
2201
  type: "object",
1279
2202
  properties: {
1280
2203
  review: {
@@ -1719,41 +2642,106 @@ const collection = {
1719
2642
  }
1720
2643
  }
1721
2644
  },
1722
- description: "Reviews a batch of API operations for quality and correctness.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs a structured thinking\nprocess containing review findings and improvement plans, plus the final\nproduction-ready operations with all critical issues resolved.",
1723
- validate: (() => { const _iv4 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv8 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "object" === typeof input.think && null !== input.think && _io1(input.think) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io2(elem))); const _io1 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io2 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io7(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io8(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io9(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu0(input.schema)); const _io4 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io5 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io6 = input => (undefined === input.format || true === _iv4.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io7 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io8 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io9 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io10(input.endpoint) && "string" === typeof input.description; const _io10 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
2645
+ description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations.",
2646
+ validate: (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
2647
+ if ("getAnalysisFiles" === input.type)
2648
+ return _io1(input);
2649
+ else if ("getPrismaSchemas" === input.type)
2650
+ return _io2(input);
2651
+ else if ("complete" === input.type)
2652
+ return _io3(input);
2653
+ else
2654
+ return false;
2655
+ })(); const _iu1 = input => (() => {
1724
2656
  if ("number" === input.type)
1725
- return _io5(input);
2657
+ return _io8(input);
1726
2658
  else if ("integer" === input.type)
1727
- return _io4(input);
2659
+ return _io7(input);
1728
2660
  else if ("string" === input.type)
1729
- return _io6(input);
2661
+ return _io9(input);
1730
2662
  else
1731
2663
  return false;
1732
- })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
2664
+ })(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
2665
+ path: _path + ".thinking",
2666
+ expected: "string",
2667
+ value: input.thinking
2668
+ }), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
2669
+ path: _path + ".request",
2670
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
2671
+ value: input.request
2672
+ })) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
2673
+ path: _path + ".request",
2674
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
2675
+ value: input.request
2676
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
2677
+ path: _path + ".type",
2678
+ expected: "\"getAnalysisFiles\"",
2679
+ value: input.type
2680
+ }), (Array.isArray(input.fileNames) || _report(_exceptionable, {
2681
+ path: _path + ".fileNames",
2682
+ expected: "(Array<string> & MinItems<1>)",
2683
+ value: input.fileNames
2684
+ })) && ((1 <= input.fileNames.length || _report(_exceptionable, {
2685
+ path: _path + ".fileNames",
2686
+ expected: "Array<> & MinItems<1>",
2687
+ value: input.fileNames
2688
+ })) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
2689
+ path: _path + ".fileNames[" + _index7 + "]",
2690
+ expected: "string",
2691
+ value: elem
2692
+ })).every(flag => flag)) || _report(_exceptionable, {
2693
+ path: _path + ".fileNames",
2694
+ expected: "(Array<string> & MinItems<1>)",
2695
+ value: input.fileNames
2696
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
2697
+ path: _path + ".type",
2698
+ expected: "\"getPrismaSchemas\"",
2699
+ value: input.type
2700
+ }), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
2701
+ path: _path + ".schemaNames",
2702
+ expected: "(Array<string> & MinItems<1>)",
2703
+ value: input.schemaNames
2704
+ })) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
2705
+ path: _path + ".schemaNames",
2706
+ expected: "Array<> & MinItems<1>",
2707
+ value: input.schemaNames
2708
+ })) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
2709
+ path: _path + ".schemaNames[" + _index8 + "]",
2710
+ expected: "string",
2711
+ value: elem
2712
+ })).every(flag => flag)) || _report(_exceptionable, {
2713
+ path: _path + ".schemaNames",
2714
+ expected: "(Array<string> & MinItems<1>)",
2715
+ value: input.schemaNames
2716
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
2717
+ path: _path + ".type",
2718
+ expected: "\"complete\"",
2719
+ value: input.type
2720
+ }), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
1733
2721
  path: _path + ".think",
1734
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
2722
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
1735
2723
  value: input.think
1736
- })) && _vo1(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
2724
+ })) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
1737
2725
  path: _path + ".think",
1738
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
2726
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
1739
2727
  value: input.think
1740
2728
  }), (Array.isArray(input.content) || _report(_exceptionable, {
1741
2729
  path: _path + ".content",
1742
2730
  expected: "Array<AutoBeOpenApi.IOperation>",
1743
2731
  value: input.content
1744
- })) && input.content.map((elem, _index5) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1745
- path: _path + ".content[" + _index5 + "]",
2732
+ })) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2733
+ path: _path + ".content[" + _index9 + "]",
1746
2734
  expected: "AutoBeOpenApi.IOperation",
1747
2735
  value: elem
1748
- })) && _vo2(elem, _path + ".content[" + _index5 + "]", true && _exceptionable) || _report(_exceptionable, {
1749
- path: _path + ".content[" + _index5 + "]",
2736
+ })) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
2737
+ path: _path + ".content[" + _index9 + "]",
1750
2738
  expected: "AutoBeOpenApi.IOperation",
1751
2739
  value: elem
1752
2740
  })).every(flag => flag) || _report(_exceptionable, {
1753
2741
  path: _path + ".content",
1754
2742
  expected: "Array<AutoBeOpenApi.IOperation>",
1755
2743
  value: input.content
1756
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
2744
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
1757
2745
  path: _path + ".review",
1758
2746
  expected: "string",
1759
2747
  value: input.review
@@ -1761,7 +2749,7 @@ const collection = {
1761
2749
  path: _path + ".plan",
1762
2750
  expected: "string",
1763
2751
  value: input.plan
1764
- })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
2752
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
1765
2753
  path: _path + ".specification",
1766
2754
  expected: "string",
1767
2755
  value: input.specification
@@ -1781,12 +2769,12 @@ const collection = {
1781
2769
  path: _path + ".parameters",
1782
2770
  expected: "Array<AutoBeOpenApi.IParameter>",
1783
2771
  value: input.parameters
1784
- })) && input.parameters.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1785
- path: _path + ".parameters[" + _index6 + "]",
2772
+ })) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2773
+ path: _path + ".parameters[" + _index10 + "]",
1786
2774
  expected: "AutoBeOpenApi.IParameter",
1787
2775
  value: elem
1788
- })) && _vo3(elem, _path + ".parameters[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
1789
- path: _path + ".parameters[" + _index6 + "]",
2776
+ })) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
2777
+ path: _path + ".parameters[" + _index10 + "]",
1790
2778
  expected: "AutoBeOpenApi.IParameter",
1791
2779
  value: elem
1792
2780
  })).every(flag => flag) || _report(_exceptionable, {
@@ -1797,7 +2785,7 @@ const collection = {
1797
2785
  path: _path + ".requestBody",
1798
2786
  expected: "(AutoBeOpenApi.IRequestBody | null)",
1799
2787
  value: input.requestBody
1800
- })) && _vo7(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
2788
+ })) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
1801
2789
  path: _path + ".requestBody",
1802
2790
  expected: "(AutoBeOpenApi.IRequestBody | null)",
1803
2791
  value: input.requestBody
@@ -1805,7 +2793,7 @@ const collection = {
1805
2793
  path: _path + ".responseBody",
1806
2794
  expected: "(AutoBeOpenApi.IResponseBody | null)",
1807
2795
  value: input.responseBody
1808
- })) && _vo8(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
2796
+ })) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
1809
2797
  path: _path + ".responseBody",
1810
2798
  expected: "(AutoBeOpenApi.IResponseBody | null)",
1811
2799
  value: input.responseBody
@@ -1833,12 +2821,12 @@ const collection = {
1833
2821
  path: _path + ".prerequisites",
1834
2822
  expected: "Array<AutoBeOpenApi.IPrerequisite>",
1835
2823
  value: input.prerequisites
1836
- })) && input.prerequisites.map((elem, _index7) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1837
- path: _path + ".prerequisites[" + _index7 + "]",
2824
+ })) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2825
+ path: _path + ".prerequisites[" + _index11 + "]",
1838
2826
  expected: "AutoBeOpenApi.IPrerequisite",
1839
2827
  value: elem
1840
- })) && _vo9(elem, _path + ".prerequisites[" + _index7 + "]", true && _exceptionable) || _report(_exceptionable, {
1841
- path: _path + ".prerequisites[" + _index7 + "]",
2828
+ })) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
2829
+ path: _path + ".prerequisites[" + _index11 + "]",
1842
2830
  expected: "AutoBeOpenApi.IPrerequisite",
1843
2831
  value: elem
1844
2832
  })).every(flag => flag) || _report(_exceptionable, {
@@ -1857,7 +2845,7 @@ const collection = {
1857
2845
  path: _path + ".method",
1858
2846
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
1859
2847
  value: input.method
1860
- })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
2848
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
1861
2849
  path: _path + ".name",
1862
2850
  expected: "string & CamelCasePattern",
1863
2851
  value: input.name
@@ -1873,11 +2861,11 @@ const collection = {
1873
2861
  path: _path + ".schema",
1874
2862
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
1875
2863
  value: input.schema
1876
- })) && _vu0(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
2864
+ })) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
1877
2865
  path: _path + ".schema",
1878
2866
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
1879
2867
  value: input.schema
1880
- })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
2868
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
1881
2869
  path: _path + ".minimum",
1882
2870
  expected: "number & Type<\"int64\">",
1883
2871
  value: input.minimum
@@ -1917,7 +2905,7 @@ const collection = {
1917
2905
  path: _path + ".type",
1918
2906
  expected: "\"integer\"",
1919
2907
  value: input.type
1920
- })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
2908
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
1921
2909
  path: _path + ".minimum",
1922
2910
  expected: "(number | undefined)",
1923
2911
  value: input.minimum
@@ -1945,7 +2933,7 @@ const collection = {
1945
2933
  path: _path + ".type",
1946
2934
  expected: "\"number\"",
1947
2935
  value: input.type
1948
- })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv8.has(input.format) || _report(_exceptionable, {
2936
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
1949
2937
  path: _path + ".format",
1950
2938
  expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
1951
2939
  value: input.format
@@ -1977,7 +2965,7 @@ const collection = {
1977
2965
  path: _path + ".type",
1978
2966
  expected: "\"string\"",
1979
2967
  value: input.type
1980
- })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
2968
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1981
2969
  path: _path + ".description",
1982
2970
  expected: "string",
1983
2971
  value: input.description
@@ -1985,7 +2973,7 @@ const collection = {
1985
2973
  path: _path + ".typeName",
1986
2974
  expected: "string",
1987
2975
  value: input.typeName
1988
- })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
2976
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1989
2977
  path: _path + ".description",
1990
2978
  expected: "string",
1991
2979
  value: input.description
@@ -1993,11 +2981,11 @@ const collection = {
1993
2981
  path: _path + ".typeName",
1994
2982
  expected: "string",
1995
2983
  value: input.typeName
1996
- })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
2984
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
1997
2985
  path: _path + ".endpoint",
1998
2986
  expected: "AutoBeOpenApi.IEndpoint",
1999
2987
  value: input.endpoint
2000
- })) && _vo10(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
2988
+ })) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
2001
2989
  path: _path + ".endpoint",
2002
2990
  expected: "AutoBeOpenApi.IEndpoint",
2003
2991
  value: input.endpoint
@@ -2005,7 +2993,7 @@ const collection = {
2005
2993
  path: _path + ".description",
2006
2994
  expected: "string",
2007
2995
  value: input.description
2008
- })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
2996
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
2009
2997
  path: _path + ".path",
2010
2998
  expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
2011
2999
  value: input.path
@@ -2018,12 +3006,25 @@ const collection = {
2018
3006
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
2019
3007
  value: input.method
2020
3008
  })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
3009
+ if ("getAnalysisFiles" === input.type)
3010
+ return _vo1(input, _path, true && _exceptionable);
3011
+ else if ("getPrismaSchemas" === input.type)
3012
+ return _vo2(input, _path, true && _exceptionable);
3013
+ else if ("complete" === input.type)
3014
+ return _vo3(input, _path, true && _exceptionable);
3015
+ else
3016
+ return _report(_exceptionable, {
3017
+ path: _path,
3018
+ expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
3019
+ value: input
3020
+ });
3021
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
2021
3022
  if ("number" === input.type)
2022
- return _vo5(input, _path, true && _exceptionable);
3023
+ return _vo8(input, _path, true && _exceptionable);
2023
3024
  else if ("integer" === input.type)
2024
- return _vo4(input, _path, true && _exceptionable);
3025
+ return _vo7(input, _path, true && _exceptionable);
2025
3026
  else if ("string" === input.type)
2026
- return _vo6(input, _path, true && _exceptionable);
3027
+ return _vo9(input, _path, true && _exceptionable);
2027
3028
  else
2028
3029
  return _report(_exceptionable, {
2029
3030
  path: _path,
@@ -2036,11 +3037,11 @@ const collection = {
2036
3037
  _report = __typia_transform__validateReport._validateReport(errors);
2037
3038
  ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
2038
3039
  path: _path + "",
2039
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
3040
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
2040
3041
  value: input
2041
3042
  })) && _vo0(input, _path + "", true) || _report(true, {
2042
3043
  path: _path + "",
2043
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
3044
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
2044
3045
  value: input
2045
3046
  }))(input, "$input", true);
2046
3047
  const success = 0 === errors.length;
@@ -2063,7 +3064,7 @@ const collection = {
2063
3064
  };
2064
3065
  __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
2065
3066
  validate: {
2066
- reviewOperations: validate,
3067
+ process: validate,
2067
3068
  },
2068
3069
  }), { equals: false }));
2069
3070
  return application;
@@ -2077,31 +3078,125 @@ const collection = {
2077
3078
  },
2078
3079
  functions: [
2079
3080
  {
2080
- name: "reviewOperations",
3081
+ name: "process",
2081
3082
  parameters: {
2082
- description: " Properties containing the thinking process (review & plan) and\nthe enhanced operations content\n\n------------------------------\n\nDescription of the current {@link IAutoBeInterfaceOperationsReviewApplication.IProps} type:\n\n> Properties for API operation review and improvement process.\n> \n> Contains both the input operations to be reviewed and the outputs generated\n> by the Interface Operations Review Agent, which will be published as part\n> of the AutoBeInterfaceOperationReviewEvent.",
3083
+ description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationReviewApplication.IProps}",
2083
3084
  type: "object",
2084
3085
  properties: {
2085
- think: {
2086
- description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
2087
- $ref: "#/$defs/IAutoBeInterfaceOperationsReviewApplication.IThink"
3086
+ thinking: {
3087
+ description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion.",
3088
+ type: "string"
2088
3089
  },
2089
- content: {
2090
- description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
2091
- type: "array",
2092
- items: {
2093
- $ref: "#/$defs/AutoBeOpenApi.IOperation"
3090
+ request: {
3091
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls.",
3092
+ anyOf: [
3093
+ {
3094
+ $ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
3095
+ },
3096
+ {
3097
+ $ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
3098
+ },
3099
+ {
3100
+ $ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
3101
+ }
3102
+ ],
3103
+ "x-discriminator": {
3104
+ propertyName: "type",
3105
+ mapping: {
3106
+ getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
3107
+ getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
3108
+ complete: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
3109
+ }
2094
3110
  }
2095
3111
  }
2096
3112
  },
2097
3113
  required: [
2098
- "think",
2099
- "content"
3114
+ "thinking",
3115
+ "request"
2100
3116
  ],
2101
3117
  additionalProperties: false,
2102
3118
  $defs: {
2103
- "IAutoBeInterfaceOperationsReviewApplication.IThink": {
2104
- description: "Structured thinking process for comprehensive API operation review.\n\nCombines analytical review findings with actionable improvement planning to\nguide the systematic enhancement of API operations. This thinking structure\nensures all aspects of API quality are evaluated and addressed before\nproducing the final operations.",
3119
+ IAutoBePreliminaryGetAnalysisFiles: {
3120
+ description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context.",
3121
+ type: "object",
3122
+ properties: {
3123
+ type: {
3124
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files.",
3125
+ type: "string",
3126
+ "enum": [
3127
+ "getAnalysisFiles"
3128
+ ]
3129
+ },
3130
+ fileNames: {
3131
+ description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls.",
3132
+ type: "array",
3133
+ items: {
3134
+ type: "string"
3135
+ },
3136
+ minItems: 1
3137
+ }
3138
+ },
3139
+ required: [
3140
+ "type",
3141
+ "fileNames"
3142
+ ]
3143
+ },
3144
+ IAutoBePreliminaryGetPrismaSchemas: {
3145
+ description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations.",
3146
+ type: "object",
3147
+ properties: {
3148
+ type: {
3149
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas.",
3150
+ type: "string",
3151
+ "enum": [
3152
+ "getPrismaSchemas"
3153
+ ]
3154
+ },
3155
+ schemaNames: {
3156
+ description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls.",
3157
+ type: "array",
3158
+ items: {
3159
+ type: "string"
3160
+ },
3161
+ minItems: 1
3162
+ }
3163
+ },
3164
+ required: [
3165
+ "type",
3166
+ "schemaNames"
3167
+ ]
3168
+ },
3169
+ "IAutoBeInterfaceOperationReviewApplication.IComplete": {
3170
+ description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations.",
3171
+ type: "object",
3172
+ properties: {
3173
+ type: {
3174
+ description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
3175
+ type: "string",
3176
+ "enum": [
3177
+ "complete"
3178
+ ]
3179
+ },
3180
+ think: {
3181
+ description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
3182
+ $ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IThink"
3183
+ },
3184
+ content: {
3185
+ description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
3186
+ type: "array",
3187
+ items: {
3188
+ $ref: "#/$defs/AutoBeOpenApi.IOperation"
3189
+ }
3190
+ }
3191
+ },
3192
+ required: [
3193
+ "type",
3194
+ "think",
3195
+ "content"
3196
+ ]
3197
+ },
3198
+ "IAutoBeInterfaceOperationReviewApplication.IThink": {
3199
+ description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations.",
2105
3200
  type: "object",
2106
3201
  properties: {
2107
3202
  review: {
@@ -2495,41 +3590,106 @@ const collection = {
2495
3590
  }
2496
3591
  }
2497
3592
  },
2498
- description: "Reviews a batch of API operations for quality and correctness.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs a structured thinking\nprocess containing review findings and improvement plans, plus the final\nproduction-ready operations with all critical issues resolved.",
2499
- validate: (() => { const _iv4 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv8 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "object" === typeof input.think && null !== input.think && _io1(input.think) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io2(elem))); const _io1 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io2 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io3(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io7(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io8(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io9(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu0(input.schema)); const _io4 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io5 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io6 = input => (undefined === input.format || true === _iv4.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io7 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io8 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io9 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io10(input.endpoint) && "string" === typeof input.description; const _io10 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
3593
+ description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations.",
3594
+ validate: (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _iu0 = input => (() => {
3595
+ if ("getAnalysisFiles" === input.type)
3596
+ return _io1(input);
3597
+ else if ("getPrismaSchemas" === input.type)
3598
+ return _io2(input);
3599
+ else if ("complete" === input.type)
3600
+ return _io3(input);
3601
+ else
3602
+ return false;
3603
+ })(); const _iu1 = input => (() => {
2500
3604
  if ("number" === input.type)
2501
- return _io5(input);
3605
+ return _io8(input);
2502
3606
  else if ("integer" === input.type)
2503
- return _io4(input);
3607
+ return _io7(input);
2504
3608
  else if ("string" === input.type)
2505
- return _io6(input);
3609
+ return _io9(input);
2506
3610
  else
2507
3611
  return false;
2508
- })(); const _vo0 = (input, _path, _exceptionable = true) => [("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
3612
+ })(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
3613
+ path: _path + ".thinking",
3614
+ expected: "string",
3615
+ value: input.thinking
3616
+ }), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
3617
+ path: _path + ".request",
3618
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
3619
+ value: input.request
3620
+ })) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
3621
+ path: _path + ".request",
3622
+ expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
3623
+ value: input.request
3624
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
3625
+ path: _path + ".type",
3626
+ expected: "\"getAnalysisFiles\"",
3627
+ value: input.type
3628
+ }), (Array.isArray(input.fileNames) || _report(_exceptionable, {
3629
+ path: _path + ".fileNames",
3630
+ expected: "(Array<string> & MinItems<1>)",
3631
+ value: input.fileNames
3632
+ })) && ((1 <= input.fileNames.length || _report(_exceptionable, {
3633
+ path: _path + ".fileNames",
3634
+ expected: "Array<> & MinItems<1>",
3635
+ value: input.fileNames
3636
+ })) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
3637
+ path: _path + ".fileNames[" + _index7 + "]",
3638
+ expected: "string",
3639
+ value: elem
3640
+ })).every(flag => flag)) || _report(_exceptionable, {
3641
+ path: _path + ".fileNames",
3642
+ expected: "(Array<string> & MinItems<1>)",
3643
+ value: input.fileNames
3644
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
3645
+ path: _path + ".type",
3646
+ expected: "\"getPrismaSchemas\"",
3647
+ value: input.type
3648
+ }), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
3649
+ path: _path + ".schemaNames",
3650
+ expected: "(Array<string> & MinItems<1>)",
3651
+ value: input.schemaNames
3652
+ })) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
3653
+ path: _path + ".schemaNames",
3654
+ expected: "Array<> & MinItems<1>",
3655
+ value: input.schemaNames
3656
+ })) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
3657
+ path: _path + ".schemaNames[" + _index8 + "]",
3658
+ expected: "string",
3659
+ value: elem
3660
+ })).every(flag => flag)) || _report(_exceptionable, {
3661
+ path: _path + ".schemaNames",
3662
+ expected: "(Array<string> & MinItems<1>)",
3663
+ value: input.schemaNames
3664
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
3665
+ path: _path + ".type",
3666
+ expected: "\"complete\"",
3667
+ value: input.type
3668
+ }), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
2509
3669
  path: _path + ".think",
2510
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
3670
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
2511
3671
  value: input.think
2512
- })) && _vo1(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
3672
+ })) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
2513
3673
  path: _path + ".think",
2514
- expected: "IAutoBeInterfaceOperationsReviewApplication.IThink",
3674
+ expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
2515
3675
  value: input.think
2516
3676
  }), (Array.isArray(input.content) || _report(_exceptionable, {
2517
3677
  path: _path + ".content",
2518
3678
  expected: "Array<AutoBeOpenApi.IOperation>",
2519
3679
  value: input.content
2520
- })) && input.content.map((elem, _index5) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2521
- path: _path + ".content[" + _index5 + "]",
3680
+ })) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
3681
+ path: _path + ".content[" + _index9 + "]",
2522
3682
  expected: "AutoBeOpenApi.IOperation",
2523
3683
  value: elem
2524
- })) && _vo2(elem, _path + ".content[" + _index5 + "]", true && _exceptionable) || _report(_exceptionable, {
2525
- path: _path + ".content[" + _index5 + "]",
3684
+ })) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
3685
+ path: _path + ".content[" + _index9 + "]",
2526
3686
  expected: "AutoBeOpenApi.IOperation",
2527
3687
  value: elem
2528
3688
  })).every(flag => flag) || _report(_exceptionable, {
2529
3689
  path: _path + ".content",
2530
3690
  expected: "Array<AutoBeOpenApi.IOperation>",
2531
3691
  value: input.content
2532
- })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
3692
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
2533
3693
  path: _path + ".review",
2534
3694
  expected: "string",
2535
3695
  value: input.review
@@ -2537,7 +3697,7 @@ const collection = {
2537
3697
  path: _path + ".plan",
2538
3698
  expected: "string",
2539
3699
  value: input.plan
2540
- })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
3700
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
2541
3701
  path: _path + ".specification",
2542
3702
  expected: "string",
2543
3703
  value: input.specification
@@ -2557,12 +3717,12 @@ const collection = {
2557
3717
  path: _path + ".parameters",
2558
3718
  expected: "Array<AutoBeOpenApi.IParameter>",
2559
3719
  value: input.parameters
2560
- })) && input.parameters.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2561
- path: _path + ".parameters[" + _index6 + "]",
3720
+ })) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
3721
+ path: _path + ".parameters[" + _index10 + "]",
2562
3722
  expected: "AutoBeOpenApi.IParameter",
2563
3723
  value: elem
2564
- })) && _vo3(elem, _path + ".parameters[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
2565
- path: _path + ".parameters[" + _index6 + "]",
3724
+ })) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
3725
+ path: _path + ".parameters[" + _index10 + "]",
2566
3726
  expected: "AutoBeOpenApi.IParameter",
2567
3727
  value: elem
2568
3728
  })).every(flag => flag) || _report(_exceptionable, {
@@ -2573,7 +3733,7 @@ const collection = {
2573
3733
  path: _path + ".requestBody",
2574
3734
  expected: "(AutoBeOpenApi.IRequestBody | null)",
2575
3735
  value: input.requestBody
2576
- })) && _vo7(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
3736
+ })) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
2577
3737
  path: _path + ".requestBody",
2578
3738
  expected: "(AutoBeOpenApi.IRequestBody | null)",
2579
3739
  value: input.requestBody
@@ -2581,7 +3741,7 @@ const collection = {
2581
3741
  path: _path + ".responseBody",
2582
3742
  expected: "(AutoBeOpenApi.IResponseBody | null)",
2583
3743
  value: input.responseBody
2584
- })) && _vo8(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
3744
+ })) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
2585
3745
  path: _path + ".responseBody",
2586
3746
  expected: "(AutoBeOpenApi.IResponseBody | null)",
2587
3747
  value: input.responseBody
@@ -2609,12 +3769,12 @@ const collection = {
2609
3769
  path: _path + ".prerequisites",
2610
3770
  expected: "Array<AutoBeOpenApi.IPrerequisite>",
2611
3771
  value: input.prerequisites
2612
- })) && input.prerequisites.map((elem, _index7) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
2613
- path: _path + ".prerequisites[" + _index7 + "]",
3772
+ })) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
3773
+ path: _path + ".prerequisites[" + _index11 + "]",
2614
3774
  expected: "AutoBeOpenApi.IPrerequisite",
2615
3775
  value: elem
2616
- })) && _vo9(elem, _path + ".prerequisites[" + _index7 + "]", true && _exceptionable) || _report(_exceptionable, {
2617
- path: _path + ".prerequisites[" + _index7 + "]",
3776
+ })) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
3777
+ path: _path + ".prerequisites[" + _index11 + "]",
2618
3778
  expected: "AutoBeOpenApi.IPrerequisite",
2619
3779
  value: elem
2620
3780
  })).every(flag => flag) || _report(_exceptionable, {
@@ -2633,7 +3793,7 @@ const collection = {
2633
3793
  path: _path + ".method",
2634
3794
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
2635
3795
  value: input.method
2636
- })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
3796
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
2637
3797
  path: _path + ".name",
2638
3798
  expected: "string & CamelCasePattern",
2639
3799
  value: input.name
@@ -2649,11 +3809,11 @@ const collection = {
2649
3809
  path: _path + ".schema",
2650
3810
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
2651
3811
  value: input.schema
2652
- })) && _vu0(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
3812
+ })) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
2653
3813
  path: _path + ".schema",
2654
3814
  expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
2655
3815
  value: input.schema
2656
- })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
3816
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
2657
3817
  path: _path + ".minimum",
2658
3818
  expected: "number & Type<\"int64\">",
2659
3819
  value: input.minimum
@@ -2693,7 +3853,7 @@ const collection = {
2693
3853
  path: _path + ".type",
2694
3854
  expected: "\"integer\"",
2695
3855
  value: input.type
2696
- })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
3856
+ })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
2697
3857
  path: _path + ".minimum",
2698
3858
  expected: "(number | undefined)",
2699
3859
  value: input.minimum
@@ -2721,7 +3881,7 @@ const collection = {
2721
3881
  path: _path + ".type",
2722
3882
  expected: "\"number\"",
2723
3883
  value: input.type
2724
- })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv8.has(input.format) || _report(_exceptionable, {
3884
+ })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
2725
3885
  path: _path + ".format",
2726
3886
  expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
2727
3887
  value: input.format
@@ -2753,7 +3913,7 @@ const collection = {
2753
3913
  path: _path + ".type",
2754
3914
  expected: "\"string\"",
2755
3915
  value: input.type
2756
- })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
3916
+ })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
2757
3917
  path: _path + ".description",
2758
3918
  expected: "string",
2759
3919
  value: input.description
@@ -2761,7 +3921,7 @@ const collection = {
2761
3921
  path: _path + ".typeName",
2762
3922
  expected: "string",
2763
3923
  value: input.typeName
2764
- })].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
3924
+ })].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
2765
3925
  path: _path + ".description",
2766
3926
  expected: "string",
2767
3927
  value: input.description
@@ -2769,11 +3929,11 @@ const collection = {
2769
3929
  path: _path + ".typeName",
2770
3930
  expected: "string",
2771
3931
  value: input.typeName
2772
- })].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
3932
+ })].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
2773
3933
  path: _path + ".endpoint",
2774
3934
  expected: "AutoBeOpenApi.IEndpoint",
2775
3935
  value: input.endpoint
2776
- })) && _vo10(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
3936
+ })) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
2777
3937
  path: _path + ".endpoint",
2778
3938
  expected: "AutoBeOpenApi.IEndpoint",
2779
3939
  value: input.endpoint
@@ -2781,7 +3941,7 @@ const collection = {
2781
3941
  path: _path + ".description",
2782
3942
  expected: "string",
2783
3943
  value: input.description
2784
- })].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
3944
+ })].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
2785
3945
  path: _path + ".path",
2786
3946
  expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
2787
3947
  value: input.path
@@ -2794,12 +3954,25 @@ const collection = {
2794
3954
  expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
2795
3955
  value: input.method
2796
3956
  })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
3957
+ if ("getAnalysisFiles" === input.type)
3958
+ return _vo1(input, _path, true && _exceptionable);
3959
+ else if ("getPrismaSchemas" === input.type)
3960
+ return _vo2(input, _path, true && _exceptionable);
3961
+ else if ("complete" === input.type)
3962
+ return _vo3(input, _path, true && _exceptionable);
3963
+ else
3964
+ return _report(_exceptionable, {
3965
+ path: _path,
3966
+ expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
3967
+ value: input
3968
+ });
3969
+ })(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
2797
3970
  if ("number" === input.type)
2798
- return _vo5(input, _path, true && _exceptionable);
3971
+ return _vo8(input, _path, true && _exceptionable);
2799
3972
  else if ("integer" === input.type)
2800
- return _vo4(input, _path, true && _exceptionable);
3973
+ return _vo7(input, _path, true && _exceptionable);
2801
3974
  else if ("string" === input.type)
2802
- return _vo6(input, _path, true && _exceptionable);
3975
+ return _vo9(input, _path, true && _exceptionable);
2803
3976
  else
2804
3977
  return _report(_exceptionable, {
2805
3978
  path: _path,
@@ -2812,11 +3985,11 @@ const collection = {
2812
3985
  _report = __typia_transform__validateReport._validateReport(errors);
2813
3986
  ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
2814
3987
  path: _path + "",
2815
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
3988
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
2816
3989
  value: input
2817
3990
  })) && _vo0(input, _path + "", true) || _report(true, {
2818
3991
  path: _path + "",
2819
- expected: "IAutoBeInterfaceOperationsReviewApplication.IProps",
3992
+ expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
2820
3993
  value: input
2821
3994
  }))(input, "$input", true);
2822
3995
  const success = 0 === errors.length;
@@ -2839,10 +4012,11 @@ const collection = {
2839
4012
  };
2840
4013
  __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
2841
4014
  validate: {
2842
- reviewOperations: validate,
4015
+ process: validate,
2843
4016
  },
2844
4017
  }), { equals: false }));
2845
4018
  return application;
2846
4019
  })(),
2847
4020
  };
2848
- //# sourceMappingURL=orchestrateInterfaceOperationsReview.js.map
4021
+ const SOURCE = "interfaceOperationReview";
4022
+ //# sourceMappingURL=orchestrateInterfaceOperationReview.js.map