@autobe/agent 0.17.1 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (727) hide show
  1. package/lib/AutoBeMockAgent.d.ts +2 -10
  2. package/lib/agent/src/AutoBeAgent.d.ts +52 -0
  3. package/lib/{AutoBeAgent.js → agent/src/AutoBeAgent.js} +34 -1
  4. package/lib/agent/src/AutoBeAgent.js.map +1 -0
  5. package/lib/agent/src/AutoBeAgentBase.d.ts +18 -0
  6. package/lib/agent/src/AutoBeAgentBase.js.map +1 -0
  7. package/lib/agent/src/AutoBeMockAgent.d.ts +7 -0
  8. package/lib/{AutoBeMockAgent.js → agent/src/AutoBeMockAgent.js} +40 -5
  9. package/lib/agent/src/AutoBeMockAgent.js.map +1 -0
  10. package/lib/agent/src/constants/AutoBeSystemPromptConstant.d.ts +28 -0
  11. package/lib/agent/src/constants/AutoBeSystemPromptConstant.js.map +1 -0
  12. package/lib/agent/src/context/AutoBeContext.d.ts +41 -0
  13. package/lib/agent/src/context/AutoBeContext.js.map +1 -0
  14. package/lib/agent/src/context/AutoBeState.d.ts +8 -0
  15. package/lib/agent/src/context/AutoBeState.js.map +1 -0
  16. package/lib/agent/src/context/AutoBeTokenUsage.d.ts +173 -0
  17. package/lib/{context → agent/src/context}/AutoBeTokenUsage.js +7 -0
  18. package/lib/agent/src/context/AutoBeTokenUsage.js.map +1 -0
  19. package/lib/agent/src/context/AutoBeTokenUsageComponent.d.ts +117 -0
  20. package/lib/{context → agent/src/context}/AutoBeTokenUsageComponent.js +33 -2
  21. package/lib/agent/src/context/AutoBeTokenUsageComponent.js.map +1 -0
  22. package/lib/agent/src/context/IAutoBeApplication.d.ts +107 -0
  23. package/lib/agent/src/context/IAutoBeApplication.js.map +1 -0
  24. package/lib/agent/src/context/IAutoBeApplicationProps.d.ts +4 -0
  25. package/lib/agent/src/context/IAutoBeApplicationProps.js.map +1 -0
  26. package/lib/agent/src/context/IAutoBeApplicationResult.d.ts +4 -0
  27. package/lib/agent/src/context/IAutoBeApplicationResult.js.map +1 -0
  28. package/lib/agent/src/context/assertSchemaModel.d.ts +2 -0
  29. package/lib/agent/src/context/assertSchemaModel.js.map +1 -0
  30. package/lib/agent/src/factory/consentFunctionCall.d.ts +10 -0
  31. package/lib/agent/src/factory/consentFunctionCall.js +212 -0
  32. package/lib/agent/src/factory/consentFunctionCall.js.map +1 -0
  33. package/lib/agent/src/factory/createAgenticaHistory.d.ts +7 -0
  34. package/lib/{factory → agent/src/factory}/createAgenticaHistory.js +1 -0
  35. package/lib/agent/src/factory/createAgenticaHistory.js.map +1 -0
  36. package/lib/agent/src/factory/createAutoBeApplication.d.ts +7 -0
  37. package/lib/agent/src/factory/createAutoBeApplication.js.map +1 -0
  38. package/lib/agent/src/factory/createAutoBeContext.d.ts +19 -0
  39. package/lib/agent/src/factory/createAutoBeContext.js +271 -0
  40. package/lib/agent/src/factory/createAutoBeContext.js.map +1 -0
  41. package/lib/agent/src/factory/createAutoBeState.d.ts +3 -0
  42. package/lib/agent/src/factory/createAutoBeState.js.map +1 -0
  43. package/lib/agent/src/factory/getAutoBeGenerated.d.ts +4 -0
  44. package/lib/{factory → agent/src/factory}/getAutoBeGenerated.js +3 -3
  45. package/lib/agent/src/factory/getAutoBeGenerated.js.map +1 -0
  46. package/lib/agent/src/factory/getAutoBeRealizeGenerated.d.ts +7 -0
  47. package/lib/agent/src/factory/getAutoBeRealizeGenerated.js.map +1 -0
  48. package/lib/agent/src/factory/index.d.ts +1 -0
  49. package/lib/agent/src/factory/index.js.map +1 -0
  50. package/lib/agent/src/index.d.ts +6 -0
  51. package/lib/agent/src/index.js.map +1 -0
  52. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.d.ts +6 -0
  53. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.js +46 -0
  54. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.js.map +1 -0
  55. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.d.ts +4 -0
  56. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +30 -0
  57. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -0
  58. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.d.ts +6 -0
  59. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +61 -0
  60. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -0
  61. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyze.d.ts +5 -0
  62. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyze.js +69 -0
  63. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyze.js.map +1 -0
  64. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeReview.d.ts +5 -0
  65. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeReview.js +265 -0
  66. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -0
  67. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeScenario.d.ts +4 -0
  68. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeScenario.js +714 -0
  69. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -0
  70. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeWrite.d.ts +8 -0
  71. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeWrite.js +244 -0
  72. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -0
  73. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +105 -0
  74. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.js +3 -0
  75. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.js.map +1 -0
  76. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +78 -0
  77. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.js +3 -0
  78. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.js.map +1 -0
  79. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +70 -0
  80. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.js +3 -0
  81. package/lib/agent/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.js.map +1 -0
  82. package/lib/agent/src/orchestrate/facade/transformFacadeStateMessage.d.ts +2 -0
  83. package/lib/agent/src/orchestrate/facade/transformFacadeStateMessage.js.map +1 -0
  84. package/lib/agent/src/orchestrate/index.d.ts +5 -0
  85. package/lib/agent/src/orchestrate/index.js.map +1 -0
  86. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAssetHistories.d.ts +3 -0
  87. package/lib/{orchestrate → agent/src/orchestrate}/interface/histories/transformInterfaceAssetHistories.js +1 -0
  88. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAssetHistories.js.map +1 -0
  89. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.d.ts +4 -0
  90. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js +34 -0
  91. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js.map +1 -0
  92. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceComplementHistories.d.ts +4 -0
  93. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceComplementHistories.js +62 -0
  94. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +1 -0
  95. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.d.ts +5 -0
  96. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +41 -0
  97. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +1 -0
  98. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceGroupHistories.d.ts +3 -0
  99. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceGroupHistories.js +28 -0
  100. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +1 -0
  101. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationHistories.d.ts +4 -0
  102. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationHistories.js +51 -0
  103. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +1 -0
  104. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.d.ts +5 -0
  105. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +35 -0
  106. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +1 -0
  107. package/lib/agent/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistories.d.ts +3 -0
  108. package/lib/agent/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistories.js.map +1 -0
  109. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.d.ts +4 -0
  110. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +28 -0
  111. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +1 -0
  112. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.d.ts +4 -0
  113. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js +59 -0
  114. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js.map +1 -0
  115. package/lib/agent/src/orchestrate/interface/orchestrateInterface.d.ts +5 -0
  116. package/lib/{orchestrate → agent/src/orchestrate}/interface/orchestrateInterface.js +34 -9
  117. package/lib/agent/src/orchestrate/interface/orchestrateInterface.js.map +1 -0
  118. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceAuthorizations.d.ts +4 -0
  119. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceAuthorizations.js +1731 -0
  120. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -0
  121. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceComplement.d.ts +4 -0
  122. package/lib/{orchestrate → agent/src/orchestrate}/interface/orchestrateInterfaceComplement.js +42 -36
  123. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -0
  124. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceEndpoints.d.ts +5 -0
  125. package/lib/{orchestrate → agent/src/orchestrate}/interface/orchestrateInterfaceEndpoints.js +40 -41
  126. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -0
  127. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceGroups.d.ts +4 -0
  128. package/lib/{orchestrate → agent/src/orchestrate}/interface/orchestrateInterfaceGroups.js +24 -38
  129. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -0
  130. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperations.d.ts +4 -0
  131. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperations.js +1774 -0
  132. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -0
  133. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperationsReview.d.ts +4 -0
  134. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperationsReview.js +1328 -0
  135. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -0
  136. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemas.d.ts +4 -0
  137. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemas.js +561 -0
  138. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -0
  139. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.d.ts +7 -0
  140. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.js +473 -0
  141. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.js.map +1 -0
  142. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.d.ts +47 -0
  143. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.js +3 -0
  144. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.js.map +1 -0
  145. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.d.ts +93 -0
  146. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.js.map +1 -0
  147. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.d.ts +24 -0
  148. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.js.map +1 -0
  149. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +108 -0
  150. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.js.map +1 -0
  151. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +171 -0
  152. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.js.map +1 -0
  153. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.d.ts +132 -0
  154. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.js +3 -0
  155. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.js.map +1 -0
  156. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +107 -0
  157. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.js.map +1 -0
  158. package/lib/agent/src/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.d.ts +85 -0
  159. package/lib/agent/src/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.js +3 -0
  160. package/lib/agent/src/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.js.map +1 -0
  161. package/lib/agent/src/orchestrate/interface/utils/OpenApiEndpointComparator.d.ts +6 -0
  162. package/lib/agent/src/orchestrate/interface/utils/OpenApiEndpointComparator.js.map +1 -0
  163. package/lib/agent/src/orchestrate/interface/utils/validateAuthorizationSchema.d.ts +7 -0
  164. package/lib/agent/src/orchestrate/interface/utils/validateAuthorizationSchema.js +35 -0
  165. package/lib/agent/src/orchestrate/interface/utils/validateAuthorizationSchema.js.map +1 -0
  166. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.d.ts +3 -0
  167. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +79 -0
  168. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +1 -0
  169. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.d.ts +3 -0
  170. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.js +52 -0
  171. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.js.map +1 -0
  172. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaReviewHistories.d.ts +8 -0
  173. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaReviewHistories.js +59 -0
  174. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +1 -0
  175. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.d.ts +3 -0
  176. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +48 -0
  177. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +1 -0
  178. package/lib/agent/src/orchestrate/prisma/orchestratePrisma.d.ts +5 -0
  179. package/lib/{orchestrate → agent/src/orchestrate}/prisma/orchestratePrisma.js +40 -14
  180. package/lib/agent/src/orchestrate/prisma/orchestratePrisma.js.map +1 -0
  181. package/lib/agent/src/orchestrate/prisma/orchestratePrismaComponent.d.ts +4 -0
  182. package/lib/{orchestrate → agent/src/orchestrate}/prisma/orchestratePrismaComponent.js +43 -48
  183. package/lib/agent/src/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -0
  184. package/lib/agent/src/orchestrate/prisma/orchestratePrismaCorrect.d.ts +4 -0
  185. package/lib/{orchestrate → agent/src/orchestrate}/prisma/orchestratePrismaCorrect.js +154 -83
  186. package/lib/agent/src/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -0
  187. package/lib/agent/src/orchestrate/prisma/orchestratePrismaReview.d.ts +5 -0
  188. package/lib/{orchestrate/prisma/orchestratePrismaSchemas.js → agent/src/orchestrate/prisma/orchestratePrismaReview.js} +180 -248
  189. package/lib/agent/src/orchestrate/prisma/orchestratePrismaReview.js.map +1 -0
  190. package/lib/agent/src/orchestrate/prisma/orchestratePrismaSchemas.d.ts +5 -0
  191. package/lib/agent/src/orchestrate/prisma/orchestratePrismaSchemas.js +1662 -0
  192. package/lib/agent/src/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -0
  193. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaComponentApplication.d.ts +121 -0
  194. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaComponentApplication.js.map +1 -0
  195. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.d.ts +142 -0
  196. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.js.map +1 -0
  197. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.d.ts +105 -0
  198. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.js +3 -0
  199. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.js.map +1 -0
  200. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.d.ts +99 -0
  201. package/lib/agent/src/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.js.map +1 -0
  202. package/lib/agent/src/orchestrate/realize/ProviderCodeComparator.d.ts +5 -0
  203. package/lib/agent/src/orchestrate/realize/ProviderCodeComparator.js.map +1 -0
  204. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorization.d.ts +5 -0
  205. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorization.js +40 -0
  206. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorization.js.map +1 -0
  207. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.d.ts +5 -0
  208. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js +80 -0
  209. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js.map +1 -0
  210. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.d.ts +14 -0
  211. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.js +32 -0
  212. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +1 -0
  213. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.d.ts +3 -0
  214. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +278 -0
  215. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js.map +1 -0
  216. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.d.ts +14 -0
  217. package/lib/{orchestrate/realize/transformRealizeCoderHistories.js → agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.js} +31 -92
  218. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -0
  219. package/lib/agent/src/orchestrate/realize/internal/compile.d.ts +7 -0
  220. package/lib/agent/src/orchestrate/realize/internal/compile.js +44 -0
  221. package/lib/agent/src/orchestrate/realize/internal/compile.js.map +1 -0
  222. package/lib/agent/src/orchestrate/realize/orchestrateRealize.d.ts +5 -0
  223. package/lib/agent/src/orchestrate/realize/orchestrateRealize.js +130 -0
  224. package/lib/agent/src/orchestrate/realize/orchestrateRealize.js.map +1 -0
  225. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorization.d.ts +10 -0
  226. package/lib/{orchestrate → agent/src/orchestrate}/realize/orchestrateRealizeAuthorization.js +84 -70
  227. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -0
  228. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.d.ts +4 -0
  229. package/lib/{orchestrate → agent/src/orchestrate}/realize/orchestrateRealizeAuthorizationCorrect.js +66 -52
  230. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -0
  231. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.d.ts +16 -0
  232. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.js +352 -0
  233. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -0
  234. package/lib/{orchestrate/realize/orchestrateRealizePlanner.d.ts → agent/src/orchestrate/realize/orchestrateRealizeScenario.d.ts} +5 -3
  235. package/lib/{orchestrate/realize/orchestrateRealizePlanner.js → agent/src/orchestrate/realize/orchestrateRealizeScenario.js} +14 -24
  236. package/lib/agent/src/orchestrate/realize/orchestrateRealizeScenario.js.map +1 -0
  237. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.d.ts +14 -0
  238. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.js +345 -0
  239. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -0
  240. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.d.ts +92 -0
  241. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.js.map +1 -0
  242. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +27 -0
  243. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.js.map +1 -0
  244. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +79 -0
  245. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.js +3 -0
  246. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.js.map +1 -0
  247. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.d.ts +38 -0
  248. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.js +3 -0
  249. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.js.map +1 -0
  250. package/lib/{orchestrate/realize/structures/IAutoBeRealizeCoderApplication.d.ts → agent/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts} +22 -88
  251. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.js +3 -0
  252. package/lib/agent/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.js.map +1 -0
  253. package/lib/agent/src/orchestrate/realize/utils/AuthorizationFileSystem.d.ts +5 -0
  254. package/lib/agent/src/orchestrate/realize/utils/AuthorizationFileSystem.js.map +1 -0
  255. package/lib/agent/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationFileSystem.d.ts +5 -0
  256. package/lib/agent/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationFileSystem.js.map +1 -0
  257. package/lib/agent/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationReplaceImport.d.ts +4 -0
  258. package/lib/agent/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationReplaceImport.js.map +1 -0
  259. package/lib/agent/src/orchestrate/realize/utils/InternalFileSystem.d.ts +8 -0
  260. package/lib/agent/src/orchestrate/realize/utils/InternalFileSystem.js.map +1 -0
  261. package/lib/agent/src/orchestrate/realize/utils/ProviderFileSystem.d.ts +3 -0
  262. package/lib/agent/src/orchestrate/realize/utils/ProviderFileSystem.js.map +1 -0
  263. package/lib/agent/src/orchestrate/realize/utils/replaceImportStatements.d.ts +4 -0
  264. package/lib/{orchestrate → agent/src/orchestrate}/realize/utils/replaceImportStatements.js +6 -1
  265. package/lib/agent/src/orchestrate/realize/utils/replaceImportStatements.js.map +1 -0
  266. package/lib/agent/src/orchestrate/test/compile/completeTestCode.d.ts +2 -0
  267. package/lib/agent/src/orchestrate/test/compile/completeTestCode.js.map +1 -0
  268. package/lib/agent/src/orchestrate/test/compile/filterTestFileName.d.ts +1 -0
  269. package/lib/agent/src/orchestrate/test/compile/filterTestFileName.js.map +1 -0
  270. package/lib/agent/src/orchestrate/test/compile/getTestExternalDeclarations.d.ts +3 -0
  271. package/lib/agent/src/orchestrate/test/compile/getTestExternalDeclarations.js.map +1 -0
  272. package/lib/agent/src/orchestrate/test/compile/getTestScenarioArtifacts.d.ts +5 -0
  273. package/lib/agent/src/orchestrate/test/compile/getTestScenarioArtifacts.js.map +1 -0
  274. package/lib/{orchestrate/test → agent/src/orchestrate/test/histories}/transformTestCorrectHistories.d.ts +1 -1
  275. package/lib/agent/src/orchestrate/test/histories/transformTestCorrectHistories.js +34 -0
  276. package/lib/agent/src/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -0
  277. package/lib/{orchestrate/test → agent/src/orchestrate/test/histories}/transformTestHistories.d.ts +1 -1
  278. package/lib/agent/src/orchestrate/test/histories/transformTestHistories.js.map +1 -0
  279. package/lib/agent/src/orchestrate/test/histories/transformTestScenarioHistories.d.ts +4 -0
  280. package/lib/agent/src/orchestrate/test/histories/transformTestScenarioHistories.js +101 -0
  281. package/lib/agent/src/orchestrate/test/histories/transformTestScenarioHistories.js.map +1 -0
  282. package/lib/{orchestrate/test → agent/src/orchestrate/test/histories}/transformTestWriteHistories.d.ts +1 -1
  283. package/lib/agent/src/orchestrate/test/histories/transformTestWriteHistories.js +179 -0
  284. package/lib/agent/src/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -0
  285. package/lib/agent/src/orchestrate/test/orchestrateTest.d.ts +5 -0
  286. package/lib/{orchestrate → agent/src/orchestrate}/test/orchestrateTest.js +16 -4
  287. package/lib/agent/src/orchestrate/test/orchestrateTest.js.map +1 -0
  288. package/lib/agent/src/orchestrate/test/orchestrateTestCorrect.d.ts +5 -0
  289. package/lib/{orchestrate → agent/src/orchestrate}/test/orchestrateTestCorrect.js +31 -47
  290. package/lib/agent/src/orchestrate/test/orchestrateTestCorrect.js.map +1 -0
  291. package/lib/agent/src/orchestrate/test/orchestrateTestScenario.d.ts +4 -0
  292. package/lib/agent/src/orchestrate/test/orchestrateTestScenario.js +961 -0
  293. package/lib/agent/src/orchestrate/test/orchestrateTestScenario.js.map +1 -0
  294. package/lib/agent/src/orchestrate/test/orchestrateTestWrite.d.ts +5 -0
  295. package/lib/{orchestrate → agent/src/orchestrate}/test/orchestrateTestWrite.js +53 -54
  296. package/lib/agent/src/orchestrate/test/orchestrateTestWrite.js.map +1 -0
  297. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +122 -0
  298. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.js.map +1 -0
  299. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestFunction.d.ts +8 -0
  300. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestFunction.js.map +1 -0
  301. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.d.ts +134 -0
  302. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.js.map +1 -0
  303. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.d.ts +7 -0
  304. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.js.map +1 -0
  305. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationRole.d.ts +6 -0
  306. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationRole.js +3 -0
  307. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationRole.js.map +1 -0
  308. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +113 -0
  309. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestWriteApplication.js.map +1 -0
  310. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestWriteResult.d.ts +7 -0
  311. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestWriteResult.js.map +1 -0
  312. package/lib/agent/src/structures/IAutoBeConfig.d.ts +73 -0
  313. package/lib/agent/src/structures/IAutoBeConfig.js.map +1 -0
  314. package/lib/agent/src/structures/IAutoBeProps.d.ts +109 -0
  315. package/lib/agent/src/structures/IAutoBeProps.js.map +1 -0
  316. package/lib/agent/src/structures/IAutoBeVendor.d.ts +87 -0
  317. package/lib/agent/src/structures/IAutoBeVendor.js.map +1 -0
  318. package/lib/agent/src/utils/arrayToRecord.d.ts +17 -0
  319. package/lib/agent/src/utils/arrayToRecord.js.map +1 -0
  320. package/lib/agent/src/utils/backoffRetry.d.ts +22 -0
  321. package/lib/agent/src/utils/backoffRetry.js.map +1 -0
  322. package/lib/agent/src/utils/divideArray.d.ts +4 -0
  323. package/lib/agent/src/utils/divideArray.js.map +1 -0
  324. package/lib/agent/src/utils/emplaceMap.d.ts +1 -0
  325. package/lib/agent/src/utils/emplaceMap.js.map +1 -0
  326. package/lib/agent/src/utils/predicateStateMessage.d.ts +4 -0
  327. package/lib/agent/src/utils/predicateStateMessage.js +87 -0
  328. package/lib/agent/src/utils/predicateStateMessage.js.map +1 -0
  329. package/lib/constants/AutoBeSystemPromptConstant.d.ts +24 -28
  330. package/lib/context/AutoBeContext.d.ts +16 -5
  331. package/lib/context/AutoBeTokenUsageComponent.d.ts +1 -0
  332. package/lib/factory/consentFunctionCall.d.ts +10 -0
  333. package/lib/index.mjs +11323 -5336
  334. package/lib/index.mjs.map +1 -1
  335. package/lib/interface/src/histories/contents/AutoBeAnalyzeFile.d.ts +153 -0
  336. package/lib/interface/src/histories/contents/AutoBeAnalyzeFile.js +3 -0
  337. package/lib/interface/src/histories/contents/AutoBeAnalyzeFile.js.map +1 -0
  338. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.d.ts +6 -0
  339. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.d.ts +4 -0
  340. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.d.ts +6 -0
  341. package/lib/orchestrate/analyze/orchestrateAnalyze.d.ts +0 -1
  342. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.d.ts +5 -0
  343. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.d.ts +4 -0
  344. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.d.ts +6 -12
  345. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +105 -0
  346. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +78 -0
  347. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.d.ts +70 -0
  348. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.d.ts +4 -0
  349. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.d.ts +2 -1
  350. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.d.ts +5 -0
  351. package/lib/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.d.ts +4 -0
  352. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.d.ts +4 -0
  353. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.d.ts +1 -1
  354. package/lib/orchestrate/interface/orchestrateInterfaceGroups.d.ts +2 -2
  355. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.d.ts +4 -0
  356. package/lib/orchestrate/interface/orchestrateInterfaceSchemasReview.d.ts +7 -0
  357. package/lib/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.d.ts +47 -0
  358. package/lib/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.d.ts +38 -0
  359. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.d.ts +2 -1
  360. package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +16 -16
  361. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +64 -15
  362. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.d.ts +132 -0
  363. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +46 -14
  364. package/lib/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.d.ts +85 -0
  365. package/lib/orchestrate/interface/utils/validateAuthorizationSchema.d.ts +7 -0
  366. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.d.ts +8 -0
  367. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.d.ts +1 -1
  368. package/lib/orchestrate/prisma/orchestratePrismaComponent.d.ts +1 -2
  369. package/lib/orchestrate/prisma/orchestratePrismaReview.d.ts +5 -0
  370. package/lib/orchestrate/prisma/orchestratePrismaSchemas.d.ts +1 -1
  371. package/lib/orchestrate/prisma/structures/IAutoBePrismaComponentApplication.d.ts +2 -1
  372. package/lib/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.d.ts +105 -0
  373. package/lib/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.d.ts +43 -153
  374. package/lib/orchestrate/realize/histories/transformRealizeAuthorization.d.ts +5 -0
  375. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.d.ts +5 -0
  376. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.d.ts +14 -0
  377. package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.d.ts +3 -0
  378. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.d.ts +14 -0
  379. package/lib/orchestrate/realize/internal/compile.d.ts +7 -0
  380. package/lib/orchestrate/realize/orchestrateRealizeCorrect.d.ts +16 -0
  381. package/lib/orchestrate/realize/orchestrateRealizeScenario.d.ts +91 -0
  382. package/lib/orchestrate/realize/orchestrateRealizeWrite.d.ts +14 -0
  383. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.d.ts +10 -3
  384. package/lib/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +79 -0
  385. package/lib/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.d.ts +38 -0
  386. package/lib/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts +279 -0
  387. package/lib/orchestrate/test/histories/transformTestCorrectHistories.d.ts +4 -0
  388. package/lib/orchestrate/test/histories/transformTestHistories.d.ts +3 -0
  389. package/lib/orchestrate/test/histories/transformTestScenarioHistories.d.ts +4 -0
  390. package/lib/orchestrate/test/histories/transformTestWriteHistories.d.ts +8 -0
  391. package/lib/orchestrate/test/orchestrateTestScenario.d.ts +2 -2
  392. package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +6 -5
  393. package/lib/orchestrate/test/structures/IAutoBeTestScenarioApplication.d.ts +25 -24
  394. package/lib/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationRole.d.ts +6 -0
  395. package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +2 -1
  396. package/lib/utils/predicateStateMessage.d.ts +4 -0
  397. package/package.json +9 -9
  398. package/src/AutoBeAgent.ts +51 -3
  399. package/src/AutoBeMockAgent.ts +44 -16
  400. package/src/constants/AutoBeSystemPromptConstant.ts +24 -28
  401. package/src/context/AutoBeContext.ts +30 -4
  402. package/src/context/AutoBeTokenUsage.ts +8 -0
  403. package/src/context/AutoBeTokenUsageComponent.ts +40 -2
  404. package/src/factory/consentFunctionCall.ts +128 -0
  405. package/src/factory/createAgenticaHistory.ts +1 -0
  406. package/src/factory/createAutoBeApplication.ts +3 -11
  407. package/src/factory/createAutoBeContext.ts +149 -1
  408. package/src/factory/getAutoBeGenerated.ts +3 -3
  409. package/src/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.ts +60 -0
  410. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.ts +34 -0
  411. package/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.ts +78 -0
  412. package/src/orchestrate/analyze/orchestrateAnalyze.ts +66 -80
  413. package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +89 -0
  414. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +99 -0
  415. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +53 -52
  416. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +108 -0
  417. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +85 -0
  418. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteApplication.ts +71 -0
  419. package/src/orchestrate/interface/histories/transformInterfaceAssetHistories.ts +1 -0
  420. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.ts +40 -0
  421. package/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.ts +17 -0
  422. package/src/orchestrate/interface/histories/transformInterfaceOperationHistories.ts +45 -22
  423. package/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.ts +43 -0
  424. package/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.ts +69 -0
  425. package/src/orchestrate/interface/orchestrateInterface.ts +57 -10
  426. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +209 -0
  427. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +27 -44
  428. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +28 -34
  429. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +18 -48
  430. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +216 -107
  431. package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +101 -0
  432. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +180 -96
  433. package/src/orchestrate/interface/orchestrateInterfaceSchemasReview.ts +145 -0
  434. package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.ts +49 -0
  435. package/src/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.ts +39 -0
  436. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.ts +2 -1
  437. package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +16 -16
  438. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +67 -15
  439. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.ts +139 -0
  440. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +47 -14
  441. package/src/orchestrate/interface/structures/IAutobeInterfaceSchemasReviewApplication.ts +92 -0
  442. package/src/orchestrate/interface/utils/validateAuthorizationSchema.ts +41 -0
  443. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.ts +9 -16
  444. package/src/orchestrate/prisma/histories/transformPrismaReviewHistories.ts +66 -0
  445. package/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.ts +2 -2
  446. package/src/orchestrate/prisma/orchestratePrisma.ts +55 -17
  447. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +19 -49
  448. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +96 -58
  449. package/src/orchestrate/prisma/orchestratePrismaReview.ts +124 -0
  450. package/src/orchestrate/prisma/orchestratePrismaSchemas.ts +133 -139
  451. package/src/orchestrate/prisma/structures/IAutoBePrismaComponentApplication.ts +2 -1
  452. package/src/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.ts +108 -0
  453. package/src/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.ts +43 -156
  454. package/src/orchestrate/realize/histories/transformRealizeAuthorization.ts +48 -0
  455. package/src/orchestrate/realize/{transformRealizeAuthorizationCorrectHistories.ts → histories/transformRealizeAuthorizationCorrectHistories.ts} +28 -30
  456. package/src/orchestrate/realize/histories/transformRealizeCorrectHistories.ts +49 -0
  457. package/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.ts +285 -0
  458. package/src/orchestrate/realize/histories/transformRealizeWriteHistories.ts +184 -0
  459. package/src/orchestrate/realize/internal/compile.ts +67 -0
  460. package/src/orchestrate/realize/orchestrateRealize.ts +125 -30
  461. package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +45 -57
  462. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +19 -41
  463. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +122 -0
  464. package/src/orchestrate/realize/{orchestrateRealizePlanner.ts → orchestrateRealizeScenario.ts} +15 -15
  465. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +128 -0
  466. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.ts +11 -3
  467. package/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.ts +81 -0
  468. package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioApplication.ts +43 -0
  469. package/src/orchestrate/realize/structures/{IAutoBeRealizeCoderApplication.ts → IAutoBeRealizeWriteApplication.ts} +22 -95
  470. package/src/orchestrate/realize/utils/replaceImportStatements.ts +10 -1
  471. package/src/orchestrate/test/experimental/orchestrateTestCorrect.ast +5 -9
  472. package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +23 -22
  473. package/src/orchestrate/test/{transformTestCorrectHistories.ts → histories/transformTestCorrectHistories.ts} +2 -2
  474. package/src/orchestrate/test/{transformTestHistories.ts → histories/transformTestHistories.ts} +1 -1
  475. package/src/orchestrate/test/histories/transformTestScenarioHistories.ts +121 -0
  476. package/src/orchestrate/test/{transformTestWriteHistories.ts → histories/transformTestWriteHistories.ts} +3 -3
  477. package/src/orchestrate/test/orchestrateTest.ts +17 -6
  478. package/src/orchestrate/test/orchestrateTestCorrect.ts +32 -62
  479. package/src/orchestrate/test/orchestrateTestScenario.ts +241 -168
  480. package/src/orchestrate/test/orchestrateTestWrite.ts +48 -71
  481. package/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.ts +6 -5
  482. package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +25 -24
  483. package/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationRole.ts +7 -0
  484. package/src/orchestrate/test/structures/IAutoBeTestWriteApplication.ts +3 -1
  485. package/src/utils/predicateStateMessage.ts +107 -0
  486. package/lib/AutoBeAgent.js.map +0 -1
  487. package/lib/AutoBeAgentBase.js.map +0 -1
  488. package/lib/AutoBeMockAgent.js.map +0 -1
  489. package/lib/constants/AutoBeSystemPromptConstant.js.map +0 -1
  490. package/lib/context/AutoBeContext.js.map +0 -1
  491. package/lib/context/AutoBeState.js.map +0 -1
  492. package/lib/context/AutoBeTokenUsage.js.map +0 -1
  493. package/lib/context/AutoBeTokenUsageComponent.js.map +0 -1
  494. package/lib/context/IAutoBeApplication.js.map +0 -1
  495. package/lib/context/IAutoBeApplicationProps.js.map +0 -1
  496. package/lib/context/IAutoBeApplicationResult.js.map +0 -1
  497. package/lib/context/assertSchemaModel.js.map +0 -1
  498. package/lib/factory/createAgenticaHistory.js.map +0 -1
  499. package/lib/factory/createAutoBeApplication.js.map +0 -1
  500. package/lib/factory/createAutoBeContext.js +0 -141
  501. package/lib/factory/createAutoBeContext.js.map +0 -1
  502. package/lib/factory/createAutoBeState.js.map +0 -1
  503. package/lib/factory/getAutoBeGenerated.js.map +0 -1
  504. package/lib/factory/getAutoBeRealizeGenerated.js.map +0 -1
  505. package/lib/factory/index.js.map +0 -1
  506. package/lib/index.js.map +0 -1
  507. package/lib/orchestrate/analyze/AutoBeAnalyzeFileSystem.d.ts +0 -45
  508. package/lib/orchestrate/analyze/AutoBeAnalyzeFileSystem.js +0 -27
  509. package/lib/orchestrate/analyze/AutoBeAnalyzeFileSystem.js.map +0 -1
  510. package/lib/orchestrate/analyze/AutoBeAnalyzePointer.d.ts +0 -9
  511. package/lib/orchestrate/analyze/AutoBeAnalyzePointer.js +0 -3
  512. package/lib/orchestrate/analyze/AutoBeAnalyzePointer.js.map +0 -1
  513. package/lib/orchestrate/analyze/orchestrateAnalyze.js +0 -98
  514. package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +0 -1
  515. package/lib/orchestrate/analyze/orchestrateAnalyzeComposer.d.ts +0 -5
  516. package/lib/orchestrate/analyze/orchestrateAnalyzeComposer.js +0 -561
  517. package/lib/orchestrate/analyze/orchestrateAnalyzeComposer.js.map +0 -1
  518. package/lib/orchestrate/analyze/orchestrateAnalyzeReviewer.d.ts +0 -12
  519. package/lib/orchestrate/analyze/orchestrateAnalyzeReviewer.js +0 -395
  520. package/lib/orchestrate/analyze/orchestrateAnalyzeReviewer.js.map +0 -1
  521. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +0 -347
  522. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +0 -1
  523. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.d.ts +0 -68
  524. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.js +0 -3
  525. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.js.map +0 -1
  526. package/lib/orchestrate/analyze/transformAnalyzeReviewerHistories.d.ts +0 -5
  527. package/lib/orchestrate/analyze/transformAnalyzeReviewerHistories.js +0 -27
  528. package/lib/orchestrate/analyze/transformAnalyzeReviewerHistories.js.map +0 -1
  529. package/lib/orchestrate/analyze/transformAnalyzeWriteHistories.d.ts +0 -12
  530. package/lib/orchestrate/analyze/transformAnalyzeWriteHistories.js +0 -78
  531. package/lib/orchestrate/analyze/transformAnalyzeWriteHistories.js.map +0 -1
  532. package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.d.ts +0 -16
  533. package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.js +0 -79
  534. package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.js.map +0 -1
  535. package/lib/orchestrate/facade/transformFacadeStateMessage.js.map +0 -1
  536. package/lib/orchestrate/index.js.map +0 -1
  537. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js.map +0 -1
  538. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js +0 -62
  539. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +0 -1
  540. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +0 -28
  541. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +0 -1
  542. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js +0 -28
  543. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +0 -1
  544. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js +0 -28
  545. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +0 -1
  546. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistories.js.map +0 -1
  547. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +0 -28
  548. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +0 -1
  549. package/lib/orchestrate/interface/orchestrateInterface.js.map +0 -1
  550. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +0 -1
  551. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +0 -1
  552. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +0 -1
  553. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +0 -1643
  554. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +0 -1
  555. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +0 -411
  556. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +0 -1
  557. package/lib/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.js.map +0 -1
  558. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.js.map +0 -1
  559. package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.js.map +0 -1
  560. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.js.map +0 -1
  561. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.js.map +0 -1
  562. package/lib/orchestrate/interface/utils/OpenApiEndpointComparator.js.map +0 -1
  563. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +0 -85
  564. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +0 -1
  565. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js +0 -52
  566. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js.map +0 -1
  567. package/lib/orchestrate/prisma/histories/transformPrismaHistories.d.ts +0 -3
  568. package/lib/orchestrate/prisma/histories/transformPrismaHistories.js +0 -55
  569. package/lib/orchestrate/prisma/histories/transformPrismaHistories.js.map +0 -1
  570. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +0 -48
  571. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +0 -1
  572. package/lib/orchestrate/prisma/orchestratePrisma.js.map +0 -1
  573. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +0 -1
  574. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +0 -1
  575. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +0 -1
  576. package/lib/orchestrate/prisma/structures/IAutoBePrismaComponentApplication.js.map +0 -1
  577. package/lib/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.js.map +0 -1
  578. package/lib/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.js.map +0 -1
  579. package/lib/orchestrate/realize/ProviderCodeComparator.js.map +0 -1
  580. package/lib/orchestrate/realize/RealizePipe.d.ts +0 -5
  581. package/lib/orchestrate/realize/RealizePipe.js +0 -14
  582. package/lib/orchestrate/realize/RealizePipe.js.map +0 -1
  583. package/lib/orchestrate/realize/orchestrateRealize.js +0 -63
  584. package/lib/orchestrate/realize/orchestrateRealize.js.map +0 -1
  585. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +0 -1
  586. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +0 -1
  587. package/lib/orchestrate/realize/orchestrateRealizeCoder.d.ts +0 -26
  588. package/lib/orchestrate/realize/orchestrateRealizeCoder.js +0 -420
  589. package/lib/orchestrate/realize/orchestrateRealizeCoder.js.map +0 -1
  590. package/lib/orchestrate/realize/orchestrateRealizePlanner.js.map +0 -1
  591. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.js.map +0 -1
  592. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.js.map +0 -1
  593. package/lib/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.js +0 -3
  594. package/lib/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.js.map +0 -1
  595. package/lib/orchestrate/realize/structures/IAutoBeRealizeCompile.d.ts +0 -56
  596. package/lib/orchestrate/realize/structures/IAutoBeRealizeCompile.js +0 -3
  597. package/lib/orchestrate/realize/structures/IAutoBeRealizeCompile.js.map +0 -1
  598. package/lib/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.d.ts +0 -2
  599. package/lib/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.js +0 -5
  600. package/lib/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.js.map +0 -1
  601. package/lib/orchestrate/realize/transformRealizeAuthorization.d.ts +0 -4
  602. package/lib/orchestrate/realize/transformRealizeAuthorization.js +0 -39
  603. package/lib/orchestrate/realize/transformRealizeAuthorization.js.map +0 -1
  604. package/lib/orchestrate/realize/transformRealizeAuthorizationCorrectHistories.d.ts +0 -5
  605. package/lib/orchestrate/realize/transformRealizeAuthorizationCorrectHistories.js +0 -80
  606. package/lib/orchestrate/realize/transformRealizeAuthorizationCorrectHistories.js.map +0 -1
  607. package/lib/orchestrate/realize/transformRealizeCoderHistories.d.ts +0 -7
  608. package/lib/orchestrate/realize/transformRealizeCoderHistories.js.map +0 -1
  609. package/lib/orchestrate/realize/utils/AuthorizationFileSystem.js.map +0 -1
  610. package/lib/orchestrate/realize/utils/AutoBeRealizeAuthorizationFileSystem.js.map +0 -1
  611. package/lib/orchestrate/realize/utils/AutoBeRealizeAuthorizationReplaceImport.js.map +0 -1
  612. package/lib/orchestrate/realize/utils/InternalFileSystem.js.map +0 -1
  613. package/lib/orchestrate/realize/utils/ProviderFileSystem.js.map +0 -1
  614. package/lib/orchestrate/realize/utils/replaceImportStatements.js.map +0 -1
  615. package/lib/orchestrate/realize/writeCodeUntilCompilePassed.d.ts +0 -11
  616. package/lib/orchestrate/realize/writeCodeUntilCompilePassed.js +0 -221
  617. package/lib/orchestrate/realize/writeCodeUntilCompilePassed.js.map +0 -1
  618. package/lib/orchestrate/test/compile/completeTestCode.js.map +0 -1
  619. package/lib/orchestrate/test/compile/filterTestFileName.js.map +0 -1
  620. package/lib/orchestrate/test/compile/getTestExternalDeclarations.js.map +0 -1
  621. package/lib/orchestrate/test/compile/getTestScenarioArtifacts.js.map +0 -1
  622. package/lib/orchestrate/test/orchestrateTest.js.map +0 -1
  623. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +0 -1
  624. package/lib/orchestrate/test/orchestrateTestScenario.js +0 -866
  625. package/lib/orchestrate/test/orchestrateTestScenario.js.map +0 -1
  626. package/lib/orchestrate/test/orchestrateTestWrite.js.map +0 -1
  627. package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.js.map +0 -1
  628. package/lib/orchestrate/test/structures/IAutoBeTestFunction.js.map +0 -1
  629. package/lib/orchestrate/test/structures/IAutoBeTestScenarioApplication.js.map +0 -1
  630. package/lib/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.js.map +0 -1
  631. package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.js.map +0 -1
  632. package/lib/orchestrate/test/structures/IAutoBeTestWriteResult.js.map +0 -1
  633. package/lib/orchestrate/test/transformTestCorrectHistories.js +0 -34
  634. package/lib/orchestrate/test/transformTestCorrectHistories.js.map +0 -1
  635. package/lib/orchestrate/test/transformTestHistories.js.map +0 -1
  636. package/lib/orchestrate/test/transformTestScenarioHistories.d.ts +0 -3
  637. package/lib/orchestrate/test/transformTestScenarioHistories.js +0 -100
  638. package/lib/orchestrate/test/transformTestScenarioHistories.js.map +0 -1
  639. package/lib/orchestrate/test/transformTestWriteHistories.js +0 -178
  640. package/lib/orchestrate/test/transformTestWriteHistories.js.map +0 -1
  641. package/lib/structures/IAutoBeConfig.js.map +0 -1
  642. package/lib/structures/IAutoBeProps.js.map +0 -1
  643. package/lib/structures/IAutoBeVendor.js.map +0 -1
  644. package/lib/utils/arrayToRecord.js.map +0 -1
  645. package/lib/utils/backoffRetry.js.map +0 -1
  646. package/lib/utils/divideArray.js.map +0 -1
  647. package/lib/utils/emplaceMap.js.map +0 -1
  648. package/lib/utils/enforceToolCall.d.ts +0 -3
  649. package/lib/utils/enforceToolCall.js +0 -13
  650. package/lib/utils/enforceToolCall.js.map +0 -1
  651. package/lib/utils/forceRetry.d.ts +0 -1
  652. package/lib/utils/forceRetry.js +0 -26
  653. package/lib/utils/forceRetry.js.map +0 -1
  654. package/lib/utils/pipe.d.ts +0 -5
  655. package/lib/utils/pipe.js +0 -14
  656. package/lib/utils/pipe.js.map +0 -1
  657. package/src/orchestrate/analyze/AutoBeAnalyzeFileSystem.ts +0 -58
  658. package/src/orchestrate/analyze/AutoBeAnalyzePointer.ts +0 -10
  659. package/src/orchestrate/analyze/orchestrateAnalyzeComposer.ts +0 -112
  660. package/src/orchestrate/analyze/orchestrateAnalyzeReviewer.ts +0 -131
  661. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeComposerApplication.ts +0 -75
  662. package/src/orchestrate/analyze/transformAnalyzeReviewerHistories.ts +0 -31
  663. package/src/orchestrate/analyze/transformAnalyzeWriteHistories.ts +0 -94
  664. package/src/orchestrate/analyze/writeDocumentUntilReviewPassed.ts +0 -96
  665. package/src/orchestrate/prisma/histories/transformPrismaHistories.ts +0 -59
  666. package/src/orchestrate/realize/RealizePipe.ts +0 -39
  667. package/src/orchestrate/realize/orchestrateRealizeCoder.ts +0 -182
  668. package/src/orchestrate/realize/structures/IAutoBeRealizeCompile.ts +0 -70
  669. package/src/orchestrate/realize/structures/IAutoBeRealizeFailedSymbol.ts +0 -2
  670. package/src/orchestrate/realize/transformRealizeAuthorization.ts +0 -44
  671. package/src/orchestrate/realize/transformRealizeCoderHistories.ts +0 -248
  672. package/src/orchestrate/realize/writeCodeUntilCompilePassed.ts +0 -308
  673. package/src/orchestrate/test/transformTestScenarioHistories.ts +0 -105
  674. package/src/utils/enforceToolCall.ts +0 -13
  675. package/src/utils/forceRetry.ts +0 -13
  676. package/src/utils/pipe.ts +0 -39
  677. /package/lib/{AutoBeAgentBase.js → agent/src/AutoBeAgentBase.js} +0 -0
  678. /package/lib/{constants → agent/src/constants}/AutoBeSystemPromptConstant.js +0 -0
  679. /package/lib/{context → agent/src/context}/AutoBeContext.js +0 -0
  680. /package/lib/{context → agent/src/context}/AutoBeState.js +0 -0
  681. /package/lib/{context → agent/src/context}/IAutoBeApplication.js +0 -0
  682. /package/lib/{context → agent/src/context}/IAutoBeApplicationProps.js +0 -0
  683. /package/lib/{context → agent/src/context}/IAutoBeApplicationResult.js +0 -0
  684. /package/lib/{context → agent/src/context}/assertSchemaModel.js +0 -0
  685. /package/lib/{factory → agent/src/factory}/createAutoBeApplication.js +0 -0
  686. /package/lib/{factory → agent/src/factory}/createAutoBeState.js +0 -0
  687. /package/lib/{factory → agent/src/factory}/getAutoBeRealizeGenerated.js +0 -0
  688. /package/lib/{factory → agent/src/factory}/index.js +0 -0
  689. /package/lib/{index.js → agent/src/index.js} +0 -0
  690. /package/lib/{orchestrate → agent/src/orchestrate}/facade/transformFacadeStateMessage.js +0 -0
  691. /package/lib/{orchestrate → agent/src/orchestrate}/index.js +0 -0
  692. /package/lib/{orchestrate → agent/src/orchestrate}/interface/histories/transformInterfacePrerequisiteHistories.js +0 -0
  693. /package/lib/{orchestrate → agent/src/orchestrate}/interface/structures/IAutoBeInterfaceComplementApplication.js +0 -0
  694. /package/lib/{orchestrate → agent/src/orchestrate}/interface/structures/IAutoBeInterfaceEndpointApplication.js +0 -0
  695. /package/lib/{orchestrate → agent/src/orchestrate}/interface/structures/IAutoBeInterfaceGroupApplication.js +0 -0
  696. /package/lib/{orchestrate → agent/src/orchestrate}/interface/structures/IAutoBeInterfaceOperationApplication.js +0 -0
  697. /package/lib/{orchestrate → agent/src/orchestrate}/interface/structures/IAutoBeInterfaceSchemaApplication.js +0 -0
  698. /package/lib/{orchestrate → agent/src/orchestrate}/interface/utils/OpenApiEndpointComparator.js +0 -0
  699. /package/lib/{orchestrate → agent/src/orchestrate}/prisma/structures/IAutoBePrismaComponentApplication.js +0 -0
  700. /package/lib/{orchestrate → agent/src/orchestrate}/prisma/structures/IAutoBePrismaCorrectApplication.js +0 -0
  701. /package/lib/{orchestrate → agent/src/orchestrate}/prisma/structures/IAutoBePrismaSchemaApplication.js +0 -0
  702. /package/lib/{orchestrate → agent/src/orchestrate}/realize/ProviderCodeComparator.js +0 -0
  703. /package/lib/{orchestrate → agent/src/orchestrate}/realize/structures/IAutoBeRealizeAuthorizationApplication.js +0 -0
  704. /package/lib/{orchestrate → agent/src/orchestrate}/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.js +0 -0
  705. /package/lib/{orchestrate → agent/src/orchestrate}/realize/utils/AuthorizationFileSystem.js +0 -0
  706. /package/lib/{orchestrate → agent/src/orchestrate}/realize/utils/AutoBeRealizeAuthorizationFileSystem.js +0 -0
  707. /package/lib/{orchestrate → agent/src/orchestrate}/realize/utils/AutoBeRealizeAuthorizationReplaceImport.js +0 -0
  708. /package/lib/{orchestrate → agent/src/orchestrate}/realize/utils/InternalFileSystem.js +0 -0
  709. /package/lib/{orchestrate → agent/src/orchestrate}/realize/utils/ProviderFileSystem.js +0 -0
  710. /package/lib/{orchestrate → agent/src/orchestrate}/test/compile/completeTestCode.js +0 -0
  711. /package/lib/{orchestrate → agent/src/orchestrate}/test/compile/filterTestFileName.js +0 -0
  712. /package/lib/{orchestrate → agent/src/orchestrate}/test/compile/getTestExternalDeclarations.js +0 -0
  713. /package/lib/{orchestrate → agent/src/orchestrate}/test/compile/getTestScenarioArtifacts.js +0 -0
  714. /package/lib/{orchestrate/test → agent/src/orchestrate/test/histories}/transformTestHistories.js +0 -0
  715. /package/lib/{orchestrate → agent/src/orchestrate}/test/structures/IAutoBeTestCorrectApplication.js +0 -0
  716. /package/lib/{orchestrate → agent/src/orchestrate}/test/structures/IAutoBeTestFunction.js +0 -0
  717. /package/lib/{orchestrate → agent/src/orchestrate}/test/structures/IAutoBeTestScenarioApplication.js +0 -0
  718. /package/lib/{orchestrate → agent/src/orchestrate}/test/structures/IAutoBeTestScenarioArtifacts.js +0 -0
  719. /package/lib/{orchestrate → agent/src/orchestrate}/test/structures/IAutoBeTestWriteApplication.js +0 -0
  720. /package/lib/{orchestrate → agent/src/orchestrate}/test/structures/IAutoBeTestWriteResult.js +0 -0
  721. /package/lib/{structures → agent/src/structures}/IAutoBeConfig.js +0 -0
  722. /package/lib/{structures → agent/src/structures}/IAutoBeProps.js +0 -0
  723. /package/lib/{structures → agent/src/structures}/IAutoBeVendor.js +0 -0
  724. /package/lib/{utils → agent/src/utils}/arrayToRecord.js +0 -0
  725. /package/lib/{utils → agent/src/utils}/backoffRetry.js +0 -0
  726. /package/lib/{utils → agent/src/utils}/divideArray.js +0 -0
  727. /package/lib/{utils → agent/src/utils}/emplaceMap.js +0 -0
@@ -0,0 +1,1774 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.orchestrateInterfaceOperations = orchestrateInterfaceOperations;
49
+ const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
50
+ const __typia_transform__llmApplicationFinalize = __importStar(require("typia/lib/internal/_llmApplicationFinalize.js"));
51
+ const utils_1 = require("@autobe/utils");
52
+ const tstl_1 = require("tstl");
53
+ const typia_1 = __importDefault(require("typia"));
54
+ const Escaper_1 = require("typia/lib/utils/Escaper");
55
+ const NamingConvention_1 = require("typia/lib/utils/NamingConvention");
56
+ const assertSchemaModel_1 = require("../../context/assertSchemaModel");
57
+ const divideArray_1 = require("../../utils/divideArray");
58
+ const emplaceMap_1 = require("../../utils/emplaceMap");
59
+ const transformInterfaceOperationHistories_1 = require("./histories/transformInterfaceOperationHistories");
60
+ const orchestrateInterfaceOperationsReview_1 = require("./orchestrateInterfaceOperationsReview");
61
+ const OpenApiEndpointComparator_1 = require("./utils/OpenApiEndpointComparator");
62
+ function orchestrateInterfaceOperations(ctx_1, endpoints_1) {
63
+ return __awaiter(this, arguments, void 0, function* (ctx, endpoints, capacity = 8) {
64
+ const matrix = (0, divideArray_1.divideArray)({
65
+ array: endpoints,
66
+ capacity,
67
+ });
68
+ const operationsProgress = {
69
+ total: endpoints.length,
70
+ completed: 0,
71
+ };
72
+ const operationsReviewProgress = {
73
+ total: matrix.length,
74
+ completed: 0,
75
+ };
76
+ return (yield Promise.all(matrix.map((it) => __awaiter(this, void 0, void 0, function* () {
77
+ const row = yield divideAndConquer(ctx, it, 3, operationsProgress, operationsReviewProgress);
78
+ return row;
79
+ })))).flat();
80
+ });
81
+ }
82
+ function divideAndConquer(ctx, endpoints, retry, operationsProgress, operationsReviewProgress) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ const remained = new tstl_1.HashSet(endpoints, OpenApiEndpointComparator_1.OpenApiEndpointComparator.hashCode, OpenApiEndpointComparator_1.OpenApiEndpointComparator.equals);
85
+ const unique = new tstl_1.HashMap(OpenApiEndpointComparator_1.OpenApiEndpointComparator.hashCode, OpenApiEndpointComparator_1.OpenApiEndpointComparator.equals);
86
+ for (let i = 0; i < retry; ++i) {
87
+ if (remained.empty() === true || unique.size() >= endpoints.length)
88
+ break;
89
+ const operations = remained.size()
90
+ ? yield process(ctx, remained, operationsProgress)
91
+ : [];
92
+ for (const item of operations) {
93
+ unique.set(item, item);
94
+ remained.erase(item);
95
+ }
96
+ }
97
+ const newbie = yield (0, orchestrateInterfaceOperationsReview_1.orchestrateInterfaceOperationsReview)(ctx, unique.toJSON().map((it) => it.second), operationsReviewProgress);
98
+ for (const item of newbie)
99
+ unique.set(item, item);
100
+ return unique.toJSON().map((it) => it.second);
101
+ });
102
+ }
103
+ function process(ctx, endpoints, progress) {
104
+ return __awaiter(this, void 0, void 0, function* () {
105
+ var _a, _b, _c, _d;
106
+ const prefix = NamingConvention_1.NamingConvention.camel(ctx.state().analyze.prefix);
107
+ const pointer = {
108
+ value: null,
109
+ };
110
+ const { tokenUsage } = yield ctx.conversate({
111
+ source: "interfaceOperations",
112
+ histories: (0, transformInterfaceOperationHistories_1.transformInterfaceOperationHistories)(ctx.state(), endpoints.toJSON()),
113
+ controller: createController({
114
+ model: ctx.model,
115
+ roles: (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.roles.map((it) => it.name)) !== null && _b !== void 0 ? _b : [],
116
+ build: (operations) => {
117
+ var _a;
118
+ (_a = pointer.value) !== null && _a !== void 0 ? _a : (pointer.value = []);
119
+ const matrix = operations.map((op) => {
120
+ if (op.authorizationRoles.length === 0)
121
+ return [
122
+ Object.assign(Object.assign({}, op), { path: "/" +
123
+ [prefix, ...op.path.split("/")]
124
+ .filter((it) => it !== "")
125
+ .join("/"), authorizationRole: null, authorizationType: null }),
126
+ ];
127
+ return op.authorizationRoles.map((role) => (Object.assign(Object.assign({}, op), { path: "/" +
128
+ [prefix, role, ...op.path.split("/")]
129
+ .filter((it) => it !== "")
130
+ .join("/"), authorizationRole: role, authorizationType: null })));
131
+ });
132
+ pointer.value.push(...matrix.flat());
133
+ progress.completed += matrix.flat().length;
134
+ progress.total += operations
135
+ .map((op) => endpoints.has({ path: op.path, method: op.method })
136
+ ? op.authorizationRoles.length === 0
137
+ ? 0
138
+ : op.authorizationRoles.length - 1
139
+ : op.authorizationRoles.length)
140
+ .reduce((a, b) => a + b, 0);
141
+ },
142
+ }),
143
+ enforceFunctionCall: true,
144
+ message: "Make API operations",
145
+ });
146
+ if (pointer.value === null)
147
+ throw new Error("Failed to create operations."); // never be happened
148
+ ctx.dispatch(Object.assign(Object.assign({ type: "interfaceOperations", operations: pointer.value, tokenUsage }, progress), { step: (_d = (_c = ctx.state().analyze) === null || _c === void 0 ? void 0 : _c.step) !== null && _d !== void 0 ? _d : 0, created_at: new Date().toISOString() }));
149
+ return pointer.value;
150
+ });
151
+ }
152
+ function createController(props) {
153
+ (0, assertSchemaModel_1.assertSchemaModel)(props.model);
154
+ const validate = (next) => {
155
+ const result = (() => { const _io0 = input => Array.isArray(input.operations) && input.operations.every(elem => "object" === typeof elem && null !== elem && _io1(elem)); const _io1 = input => Array.isArray(input.authorizationRoles) && input.authorizationRoles.every(elem => "string" === typeof elem && (RegExp("^[a-z][a-zA-Z0-9]*$").test(elem) && 1 <= elem.length)) && "string" === typeof input.description && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && "string" === typeof input.specification && "string" === typeof input.summary && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io2(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io6(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io7(input.responseBody)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io2 = 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 _io3 = 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 _io4 = 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 _io5 = input => (undefined === input.format || "string" === typeof 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 _io6 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io7 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _iu0 = input => (() => {
156
+ if ("number" === input.type)
157
+ return _io4(input);
158
+ else if ("integer" === input.type)
159
+ return _io3(input);
160
+ else if ("string" === input.type)
161
+ return _io5(input);
162
+ else
163
+ return false;
164
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.operations) || _report(_exceptionable, {
165
+ path: _path + ".operations",
166
+ expected: "Array<IAutoBeInterfaceOperationApplication.IOperation>",
167
+ value: input.operations
168
+ })) && input.operations.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
169
+ path: _path + ".operations[" + _index4 + "]",
170
+ expected: "IAutoBeInterfaceOperationApplication.IOperation",
171
+ value: elem
172
+ })) && _vo1(elem, _path + ".operations[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
173
+ path: _path + ".operations[" + _index4 + "]",
174
+ expected: "IAutoBeInterfaceOperationApplication.IOperation",
175
+ value: elem
176
+ })).every(flag => flag) || _report(_exceptionable, {
177
+ path: _path + ".operations",
178
+ expected: "Array<IAutoBeInterfaceOperationApplication.IOperation>",
179
+ value: input.operations
180
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [(Array.isArray(input.authorizationRoles) || _report(_exceptionable, {
181
+ path: _path + ".authorizationRoles",
182
+ expected: "Array<string & CamelPattern & MinLength<1>>",
183
+ value: input.authorizationRoles
184
+ })) && input.authorizationRoles.map((elem, _index5) => "string" === typeof elem && (RegExp("^[a-z][a-zA-Z0-9]*$").test(elem) || _report(_exceptionable, {
185
+ path: _path + ".authorizationRoles[" + _index5 + "]",
186
+ expected: "string & CamelPattern",
187
+ value: elem
188
+ })) && (1 <= elem.length || _report(_exceptionable, {
189
+ path: _path + ".authorizationRoles[" + _index5 + "]",
190
+ expected: "string & MinLength<1>",
191
+ value: elem
192
+ })) || _report(_exceptionable, {
193
+ path: _path + ".authorizationRoles[" + _index5 + "]",
194
+ expected: "(string & CamelPattern & MinLength<1>)",
195
+ value: elem
196
+ })).every(flag => flag) || _report(_exceptionable, {
197
+ path: _path + ".authorizationRoles",
198
+ expected: "Array<string & CamelPattern & MinLength<1>>",
199
+ value: input.authorizationRoles
200
+ }), "string" === typeof input.description || _report(_exceptionable, {
201
+ path: _path + ".description",
202
+ expected: "string",
203
+ value: input.description
204
+ }), "string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
205
+ path: _path + ".name",
206
+ expected: "string & CamelPattern",
207
+ value: input.name
208
+ })) || _report(_exceptionable, {
209
+ path: _path + ".name",
210
+ expected: "(string & CamelPattern)",
211
+ value: input.name
212
+ }), "string" === typeof input.specification || _report(_exceptionable, {
213
+ path: _path + ".specification",
214
+ expected: "string",
215
+ value: input.specification
216
+ }), "string" === typeof input.summary || _report(_exceptionable, {
217
+ path: _path + ".summary",
218
+ expected: "string",
219
+ value: input.summary
220
+ }), "string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
221
+ path: _path + ".path",
222
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
223
+ value: input.path
224
+ })) || _report(_exceptionable, {
225
+ path: _path + ".path",
226
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
227
+ value: input.path
228
+ }), (Array.isArray(input.parameters) || _report(_exceptionable, {
229
+ path: _path + ".parameters",
230
+ expected: "Array<AutoBeOpenApi.IParameter>",
231
+ value: input.parameters
232
+ })) && input.parameters.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
233
+ path: _path + ".parameters[" + _index6 + "]",
234
+ expected: "AutoBeOpenApi.IParameter",
235
+ value: elem
236
+ })) && _vo2(elem, _path + ".parameters[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
237
+ path: _path + ".parameters[" + _index6 + "]",
238
+ expected: "AutoBeOpenApi.IParameter",
239
+ value: elem
240
+ })).every(flag => flag) || _report(_exceptionable, {
241
+ path: _path + ".parameters",
242
+ expected: "Array<AutoBeOpenApi.IParameter>",
243
+ value: input.parameters
244
+ }), null === input.requestBody || ("object" === typeof input.requestBody && null !== input.requestBody || _report(_exceptionable, {
245
+ path: _path + ".requestBody",
246
+ expected: "(AutoBeOpenApi.IRequestBody | null)",
247
+ value: input.requestBody
248
+ })) && _vo6(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
249
+ path: _path + ".requestBody",
250
+ expected: "(AutoBeOpenApi.IRequestBody | null)",
251
+ value: input.requestBody
252
+ }), null === input.responseBody || ("object" === typeof input.responseBody && null !== input.responseBody || _report(_exceptionable, {
253
+ path: _path + ".responseBody",
254
+ expected: "(AutoBeOpenApi.IResponseBody | null)",
255
+ value: input.responseBody
256
+ })) && _vo7(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
257
+ path: _path + ".responseBody",
258
+ expected: "(AutoBeOpenApi.IResponseBody | null)",
259
+ value: input.responseBody
260
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
261
+ path: _path + ".method",
262
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
263
+ value: input.method
264
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
265
+ path: _path + ".name",
266
+ expected: "string & CamelPattern",
267
+ value: input.name
268
+ })) || _report(_exceptionable, {
269
+ path: _path + ".name",
270
+ expected: "(string & CamelPattern)",
271
+ value: input.name
272
+ }), "string" === typeof input.description || _report(_exceptionable, {
273
+ path: _path + ".description",
274
+ expected: "string",
275
+ value: input.description
276
+ }), ("object" === typeof input.schema && null !== input.schema || _report(_exceptionable, {
277
+ path: _path + ".schema",
278
+ expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
279
+ value: input.schema
280
+ })) && _vu0(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
281
+ path: _path + ".schema",
282
+ expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
283
+ value: input.schema
284
+ })].every(flag => flag); const _vo3 = (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, {
285
+ path: _path + ".minimum",
286
+ expected: "number & Type<\"int64\">",
287
+ value: input.minimum
288
+ })) || _report(_exceptionable, {
289
+ path: _path + ".minimum",
290
+ expected: "((number & Type<\"int64\">) | undefined)",
291
+ value: input.minimum
292
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
293
+ path: _path + ".maximum",
294
+ expected: "number & Type<\"int64\">",
295
+ value: input.maximum
296
+ })) || _report(_exceptionable, {
297
+ path: _path + ".maximum",
298
+ expected: "((number & Type<\"int64\">) | undefined)",
299
+ value: input.maximum
300
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
301
+ path: _path + ".exclusiveMinimum",
302
+ expected: "(number | undefined)",
303
+ value: input.exclusiveMinimum
304
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
305
+ path: _path + ".exclusiveMaximum",
306
+ expected: "(number | undefined)",
307
+ value: input.exclusiveMaximum
308
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
309
+ path: _path + ".multipleOf",
310
+ expected: "number & Type<\"uint64\">",
311
+ value: input.multipleOf
312
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
313
+ path: _path + ".multipleOf",
314
+ expected: "number & ExclusiveMinimum<0>",
315
+ value: input.multipleOf
316
+ })) || _report(_exceptionable, {
317
+ path: _path + ".multipleOf",
318
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
319
+ value: input.multipleOf
320
+ }), "integer" === input.type || _report(_exceptionable, {
321
+ path: _path + ".type",
322
+ expected: "\"integer\"",
323
+ value: input.type
324
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
325
+ path: _path + ".minimum",
326
+ expected: "(number | undefined)",
327
+ value: input.minimum
328
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
329
+ path: _path + ".maximum",
330
+ expected: "(number | undefined)",
331
+ value: input.maximum
332
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
333
+ path: _path + ".exclusiveMinimum",
334
+ expected: "(number | undefined)",
335
+ value: input.exclusiveMinimum
336
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
337
+ path: _path + ".exclusiveMaximum",
338
+ expected: "(number | undefined)",
339
+ value: input.exclusiveMaximum
340
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
341
+ path: _path + ".multipleOf",
342
+ expected: "number & ExclusiveMinimum<0>",
343
+ value: input.multipleOf
344
+ })) || _report(_exceptionable, {
345
+ path: _path + ".multipleOf",
346
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
347
+ value: input.multipleOf
348
+ }), "number" === input.type || _report(_exceptionable, {
349
+ path: _path + ".type",
350
+ expected: "\"number\"",
351
+ value: input.type
352
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
353
+ path: _path + ".format",
354
+ expected: "(string | undefined)",
355
+ value: input.format
356
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
357
+ path: _path + ".pattern",
358
+ expected: "(string | undefined)",
359
+ value: input.pattern
360
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
361
+ path: _path + ".contentMediaType",
362
+ expected: "(string | undefined)",
363
+ value: input.contentMediaType
364
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
365
+ path: _path + ".minLength",
366
+ expected: "number & Type<\"uint64\">",
367
+ value: input.minLength
368
+ })) || _report(_exceptionable, {
369
+ path: _path + ".minLength",
370
+ expected: "((number & Type<\"uint64\">) | undefined)",
371
+ value: input.minLength
372
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
373
+ path: _path + ".maxLength",
374
+ expected: "number & Type<\"uint64\">",
375
+ value: input.maxLength
376
+ })) || _report(_exceptionable, {
377
+ path: _path + ".maxLength",
378
+ expected: "((number & Type<\"uint64\">) | undefined)",
379
+ value: input.maxLength
380
+ }), "string" === input.type || _report(_exceptionable, {
381
+ path: _path + ".type",
382
+ expected: "\"string\"",
383
+ value: input.type
384
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
385
+ path: _path + ".description",
386
+ expected: "string",
387
+ value: input.description
388
+ }), "string" === typeof input.typeName || _report(_exceptionable, {
389
+ path: _path + ".typeName",
390
+ expected: "string",
391
+ value: input.typeName
392
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
393
+ path: _path + ".description",
394
+ expected: "string",
395
+ value: input.description
396
+ }), "string" === typeof input.typeName || _report(_exceptionable, {
397
+ path: _path + ".typeName",
398
+ expected: "string",
399
+ value: input.typeName
400
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
401
+ if ("number" === input.type)
402
+ return _vo4(input, _path, true && _exceptionable);
403
+ else if ("integer" === input.type)
404
+ return _vo3(input, _path, true && _exceptionable);
405
+ else if ("string" === input.type)
406
+ return _vo5(input, _path, true && _exceptionable);
407
+ else
408
+ return _report(_exceptionable, {
409
+ path: _path,
410
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString)",
411
+ value: input
412
+ });
413
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
414
+ if (false === __is(input)) {
415
+ errors = [];
416
+ _report = __typia_transform__validateReport._validateReport(errors);
417
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
418
+ path: _path + "",
419
+ expected: "IAutoBeInterfaceOperationApplication.IProps",
420
+ value: input
421
+ })) && _vo0(input, _path + "", true) || _report(true, {
422
+ path: _path + "",
423
+ expected: "IAutoBeInterfaceOperationApplication.IProps",
424
+ value: input
425
+ }))(input, "$input", true);
426
+ const success = 0 === errors.length;
427
+ return success ? {
428
+ success,
429
+ data: input
430
+ } : {
431
+ success,
432
+ errors,
433
+ data: input
434
+ };
435
+ }
436
+ return {
437
+ success: true,
438
+ data: input
439
+ };
440
+ }; })()(next);
441
+ if (result.success === false)
442
+ return result;
443
+ const operations = result.data.operations;
444
+ const errors = [];
445
+ operations.forEach((op, i) => {
446
+ // get method has request body
447
+ if (op.method === "get" && op.requestBody !== null)
448
+ errors.push({
449
+ path: `$input.operations[${i}].requestBody`,
450
+ expected: "GET method should not have request body. Change method, or re-design the operation.",
451
+ value: op.requestBody,
452
+ });
453
+ // operation name
454
+ if (Escaper_1.Escaper.variable(op.name) === false)
455
+ errors.push({
456
+ path: `$input.operations[${i}].name`,
457
+ expected: "<valid_variable_name>",
458
+ value: op.name,
459
+ description: utils_1.StringUtil.trim `
460
+ The operation name will be converted to the API controller method
461
+ (function) name, so the operation.name must be a valid JavaScript
462
+ variable/function name.
463
+
464
+ However, what you've configured value ${JSON.stringify(op.name)}
465
+ is not a valid JavaScript variable/function name. Please change
466
+ it to a valid variable/function name.
467
+ `,
468
+ });
469
+ // validate roles
470
+ if (props.roles.length === 0)
471
+ op.authorizationRoles = [];
472
+ else if (op.authorizationRoles.length !== 0 && props.roles.length !== 0)
473
+ op.authorizationRoles.forEach((role, j) => {
474
+ if (props.roles.includes(role) === true)
475
+ return;
476
+ errors.push({
477
+ path: `$input.operations[${i}].authorizationRoles[${j}]`,
478
+ expected: `null | ${props.roles.map((str) => JSON.stringify(str)).join(" | ")}`,
479
+ description: [
480
+ `Role "${role}" is not defined in the roles list.`,
481
+ "",
482
+ "Please select one of them below, or do not define (`null`): ",
483
+ "",
484
+ ...props.roles.map((role) => `- ${role}`),
485
+ ].join("\n"),
486
+ value: role,
487
+ });
488
+ });
489
+ });
490
+ // validate duplicated endpoints
491
+ const endpoints = new tstl_1.HashMap(utils_1.AutoBeEndpointComparator.hashCode, utils_1.AutoBeEndpointComparator.equals);
492
+ operations.forEach((op, i) => {
493
+ const key = {
494
+ path: op.path,
495
+ method: op.method,
496
+ };
497
+ const it = endpoints.find(key);
498
+ if (it.equals(endpoints.end()) === false) {
499
+ const indexes = it.second;
500
+ errors.push({
501
+ path: `$input.operations[${i}].{"path"|"method"}`,
502
+ expected: "Unique endpoint (path and method)",
503
+ value: key,
504
+ description: [
505
+ `Duplicated endpoint detected (method: ${op.method}, path: ${op.path}).`,
506
+ "",
507
+ "The duplicated endpoints of others are located in below accessors.",
508
+ "Check them, and consider which operation endpoint would be proper to modify.",
509
+ ...indexes.map((idx) => `- $input.operations.[${idx}].{"path"|"method"}`),
510
+ ].join("\n"),
511
+ });
512
+ indexes.push(i);
513
+ }
514
+ else
515
+ endpoints.emplace(key, [i]);
516
+ });
517
+ // validate duplicated method names
518
+ const accessors = new Map();
519
+ operations.forEach((op, i) => {
520
+ const key = op.path
521
+ .split("/")
522
+ .filter((e) => e[0] !== "{" && e.at(-1) !== "}")
523
+ .filter((e) => e.length !== 0)
524
+ .join(".") + `.${op.name}`;
525
+ const indexes = (0, emplaceMap_1.emplaceMap)(accessors, key, () => []);
526
+ if (indexes.length !== 0) {
527
+ errors.push({
528
+ path: `$input.operations[${i}].name`,
529
+ expected: "Unique name in the same accessor scope.",
530
+ value: op.name,
531
+ description: [
532
+ `Duplicated operation accessor detected (name: ${op.name}, accessor: ${key}).`,
533
+ "",
534
+ "The operation name must be unique within the parent accessor.",
535
+ "In other worlds, the operation accessor determined by the name",
536
+ "must be unique in the OpenAPI document.",
537
+ "",
538
+ "Here is the list of elements of duplicated operation names.",
539
+ "Check them, and consider which operation name would be proper to modify.",
540
+ "",
541
+ ...indexes
542
+ .map((idx) => `- ${operations[idx].name} (accessor: ${key})`)
543
+ .join("\n"),
544
+ ].join("\n"),
545
+ });
546
+ }
547
+ indexes.push(i);
548
+ });
549
+ if (errors.length !== 0)
550
+ return {
551
+ success: false,
552
+ errors,
553
+ data: next,
554
+ };
555
+ return result;
556
+ };
557
+ const application = collection[props.model === "chatgpt" ? "chatgpt" : "claude"](validate);
558
+ return {
559
+ protocol: "class",
560
+ name: "interface",
561
+ application,
562
+ execute: {
563
+ makeOperations: (next) => {
564
+ props.build(next.operations);
565
+ },
566
+ },
567
+ };
568
+ }
569
+ const collection = {
570
+ chatgpt: (validate) => (() => {
571
+ const application = {
572
+ model: "chatgpt",
573
+ options: {
574
+ reference: true,
575
+ strict: false,
576
+ separate: null
577
+ },
578
+ functions: [
579
+ {
580
+ name: "makeOperations",
581
+ parameters: {
582
+ description: " Properties containing the operations to generate.\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationApplication.IProps}",
583
+ type: "object",
584
+ properties: {
585
+ operations: {
586
+ description: "Array of API operations to generate.\n\nEach operation in this array includes:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., \"/resources/{resourceId}\")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.",
587
+ type: "array",
588
+ items: {
589
+ $ref: "#/$defs/IAutoBeInterfaceOperationApplication.IOperation"
590
+ }
591
+ }
592
+ },
593
+ required: [
594
+ "operations"
595
+ ],
596
+ additionalProperties: false,
597
+ $defs: {
598
+ "IAutoBeInterfaceOperationApplication.IOperation": {
599
+ 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\nDO: Use object types for all request bodies and responses. DO: Reference\nnamed types defined in the components section. DO: Use `application/json`\nas the content-type. DO: Use `string & tags.Format<\"uri\">` in the schema\nfor file upload/download operations instead 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```",
600
+ type: "object",
601
+ properties: {
602
+ authorizationRoles: {
603
+ description: "Authorization roles required to access this API operation.\n\nThis field specifies which user roles are allowed to access this\nendpoint. Multiple roles can be specified to allow different types of\nusers to access the same endpoint.\n\n## \u26A0\uFE0F CRITICAL: Role Multiplication Effect\n\n**EACH ROLE IN THIS ARRAY GENERATES A SEPARATE ENDPOINT**\n\n- If you specify `[\"admin\", \"moderator\", \"member\"]`, this creates 3\n separate endpoints\n- Total generated endpoints = operations \u00D7 average roles.length\n- Example: 100 operations with 3 roles each = 300 actual endpoints\n\n## \uD83D\uDD34 AVOID OVER-GENERATION\n\n**DO NOT create role-specific endpoints when a public endpoint would\nsuffice:**\n\n- \u274C BAD: Separate GET endpoints for admin, member, moderator to view the\n same public data\n- \u2705 GOOD: Single public endpoint `[]` with role-based filtering in business\n logic\n\n**DO NOT enumerate all possible roles when the Prisma schema uses a\nsingle User table:**\n\n- If Prisma has a User table with role/permission fields, you likely only\n need `[\"user\"]`\n- Avoid listing `[\"admin\", \"seller\", \"buyer\", \"moderator\", ...]`\n unnecessarily\n- The actual role checking happens in business logic, not at the endpoint\n level\n\n## Naming Convention\n\nDO: Use camelCase for all role names.\n\n## Important Guidelines\n\n- Set to empty array `[]` for public endpoints that require no\n authentication\n- Set to array with role strings for role-restricted endpoints\n- **MINIMIZE the number of roles per endpoint to prevent explosion**\n- Consider if the endpoint can be public with role-based filtering instead\n- The role names match exactly with the user type/role defined in the\n database\n- This will be used by the Realize Agent to generate appropriate decorator\n and authorization logic in the provider functions\n- The controller will apply the corresponding authentication decorator\n based on these roles\n\n## Examples\n\n- `[]` - Public endpoint, no authentication required (PREFERRED for read\n operations)\n- `[\"user\"]` - Any authenticated user can access (PREFERRED for\n user-specific operations)\n- `[\"admin\"]` - Only admin users can access (USE SPARINGLY)\n- `[\"admin\", \"moderator\"]` - Both admin and moderator users can access\n (AVOID if possible)\n- `[\"seller\"]` - Only seller users can access (ONLY if Seller is a separate\n table)\n\n## Best Practices\n\n1. **Start with public `[]` for all read operations** unless sensitive data\n is involved\n2. **Use single role `[\"user\"]` for authenticated operations** and handle\n permissions in business logic\n3. **Only use multiple roles when absolutely necessary** for different\n business logic paths\n4. **Remember: Fewer roles = Fewer endpoints = Better performance and\n maintainability**\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.",
604
+ type: "array",
605
+ items: {
606
+ description: "@minLength 1\n@pattern ^[a-z][a-zA-Z0-9]*$",
607
+ type: "string"
608
+ }
609
+ },
610
+ description: {
611
+ 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> MUST be written in English. Never use other languages.",
612
+ type: "string"
613
+ },
614
+ name: {
615
+ 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.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
616
+ type: "string"
617
+ },
618
+ specification: {
619
+ 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.",
620
+ type: "string"
621
+ },
622
+ summary: {
623
+ 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> MUST be written in English. Never use other languages",
624
+ type: "string"
625
+ },
626
+ path: {
627
+ 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)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$",
628
+ type: "string"
629
+ },
630
+ parameters: {
631
+ 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`",
632
+ type: "array",
633
+ items: {
634
+ $ref: "#/$defs/AutoBeOpenApi.IParameter"
635
+ }
636
+ },
637
+ requestBody: {
638
+ 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.",
639
+ anyOf: [
640
+ {
641
+ type: "null"
642
+ },
643
+ {
644
+ $ref: "#/$defs/AutoBeOpenApi.IRequestBody"
645
+ }
646
+ ]
647
+ },
648
+ responseBody: {
649
+ 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.",
650
+ anyOf: [
651
+ {
652
+ type: "null"
653
+ },
654
+ {
655
+ $ref: "#/$defs/AutoBeOpenApi.IResponseBody"
656
+ }
657
+ ]
658
+ },
659
+ method: {
660
+ description: "HTTP method of the API operation.\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",
661
+ type: "string",
662
+ "enum": [
663
+ "get",
664
+ "post",
665
+ "put",
666
+ "delete",
667
+ "patch"
668
+ ]
669
+ }
670
+ },
671
+ required: [
672
+ "authorizationRoles",
673
+ "description",
674
+ "name",
675
+ "specification",
676
+ "summary",
677
+ "path",
678
+ "parameters",
679
+ "requestBody",
680
+ "responseBody",
681
+ "method"
682
+ ]
683
+ },
684
+ "AutoBeOpenApi.IParameter": {
685
+ 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```",
686
+ type: "object",
687
+ properties: {
688
+ name: {
689
+ 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.\n\n\n@pattern ^[a-z][a-zA-Z0-9]*$",
690
+ type: "string"
691
+ },
692
+ description: {
693
+ 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.",
694
+ type: "string"
695
+ },
696
+ schema: {
697
+ 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.",
698
+ anyOf: [
699
+ {
700
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
701
+ },
702
+ {
703
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
704
+ },
705
+ {
706
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
707
+ }
708
+ ],
709
+ "x-discriminator": {
710
+ propertyName: "type",
711
+ mapping: {
712
+ number: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber",
713
+ integer: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger",
714
+ string: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
715
+ }
716
+ }
717
+ }
718
+ },
719
+ required: [
720
+ "name",
721
+ "description",
722
+ "schema"
723
+ ]
724
+ },
725
+ "AutoBeOpenApi.IJsonSchema.INumber": {
726
+ description: "Number (double) type info.",
727
+ type: "object",
728
+ properties: {
729
+ minimum: {
730
+ description: "Minimum value restriction.",
731
+ type: "number"
732
+ },
733
+ maximum: {
734
+ description: "Maximum value restriction.",
735
+ type: "number"
736
+ },
737
+ exclusiveMinimum: {
738
+ description: "Exclusive minimum value restriction.",
739
+ type: "number"
740
+ },
741
+ exclusiveMaximum: {
742
+ description: "Exclusive maximum value restriction.",
743
+ type: "number"
744
+ },
745
+ multipleOf: {
746
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
747
+ type: "number"
748
+ },
749
+ type: {
750
+ 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.",
751
+ type: "string",
752
+ "enum": [
753
+ "number"
754
+ ]
755
+ }
756
+ },
757
+ required: [
758
+ "type"
759
+ ]
760
+ },
761
+ "AutoBeOpenApi.IJsonSchema.IInteger": {
762
+ description: "Integer type info.",
763
+ type: "object",
764
+ properties: {
765
+ minimum: {
766
+ description: "Minimum value restriction.",
767
+ type: "integer"
768
+ },
769
+ maximum: {
770
+ description: "Maximum value restriction.",
771
+ type: "integer"
772
+ },
773
+ exclusiveMinimum: {
774
+ description: "Exclusive minimum value restriction.",
775
+ type: "number"
776
+ },
777
+ exclusiveMaximum: {
778
+ description: "Exclusive maximum value restriction.",
779
+ type: "number"
780
+ },
781
+ multipleOf: {
782
+ description: "Multiple of value restriction.\n\n\n@exclusiveMinimum 0",
783
+ type: "integer"
784
+ },
785
+ type: {
786
+ 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.",
787
+ type: "string",
788
+ "enum": [
789
+ "integer"
790
+ ]
791
+ }
792
+ },
793
+ required: [
794
+ "type"
795
+ ]
796
+ },
797
+ "AutoBeOpenApi.IJsonSchema.IString": {
798
+ description: "String type info.",
799
+ type: "object",
800
+ properties: {
801
+ format: {
802
+ description: "Format restriction.",
803
+ type: "string"
804
+ },
805
+ pattern: {
806
+ description: "Pattern restriction.",
807
+ type: "string"
808
+ },
809
+ contentMediaType: {
810
+ description: "Content media type restriction.",
811
+ type: "string"
812
+ },
813
+ minLength: {
814
+ description: "Minimum length restriction.\n\n\n@minimum 0",
815
+ type: "integer"
816
+ },
817
+ maxLength: {
818
+ description: "Maximum length restriction.\n\n\n@minimum 0",
819
+ type: "integer"
820
+ },
821
+ type: {
822
+ 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.",
823
+ type: "string",
824
+ "enum": [
825
+ "string"
826
+ ]
827
+ }
828
+ },
829
+ required: [
830
+ "type"
831
+ ]
832
+ },
833
+ "AutoBeOpenApi.IRequestBody": {
834
+ 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```",
835
+ type: "object",
836
+ properties: {
837
+ description: {
838
+ 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.",
839
+ type: "string"
840
+ },
841
+ typeName: {
842
+ 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```",
843
+ type: "string"
844
+ }
845
+ },
846
+ required: [
847
+ "description",
848
+ "typeName"
849
+ ]
850
+ },
851
+ "AutoBeOpenApi.IResponseBody": {
852
+ 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```",
853
+ type: "object",
854
+ properties: {
855
+ description: {
856
+ 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.",
857
+ type: "string"
858
+ },
859
+ typeName: {
860
+ 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```",
861
+ type: "string"
862
+ }
863
+ },
864
+ required: [
865
+ "description",
866
+ "typeName"
867
+ ]
868
+ }
869
+ }
870
+ },
871
+ description: "Generate detailed API operations from path/method combinations.\n\nThis function creates complete API operations following REST principles and\nquality standards. Each generated operation includes specification, path,\nmethod, detailed multi-paragraph description, concise summary, parameters,\nand appropriate request/response bodies.\n\nThe function processes as many operations as possible in a single call,\nwith progress tracking to ensure iterative completion of all required\nendpoints.",
872
+ validate: (() => { const _io0 = input => Array.isArray(input.operations) && input.operations.every(elem => "object" === typeof elem && null !== elem && _io1(elem)); const _io1 = input => Array.isArray(input.authorizationRoles) && input.authorizationRoles.every(elem => "string" === typeof elem && (RegExp("^[a-z][a-zA-Z0-9]*$").test(elem) && 1 <= elem.length)) && "string" === typeof input.description && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && "string" === typeof input.specification && "string" === typeof input.summary && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io2(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io6(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io7(input.responseBody)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io2 = 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 _io3 = 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 _io4 = 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 _io5 = input => (undefined === input.format || "string" === typeof 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 _io6 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io7 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _iu0 = input => (() => {
873
+ if ("number" === input.type)
874
+ return _io4(input);
875
+ else if ("integer" === input.type)
876
+ return _io3(input);
877
+ else if ("string" === input.type)
878
+ return _io5(input);
879
+ else
880
+ return false;
881
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.operations) || _report(_exceptionable, {
882
+ path: _path + ".operations",
883
+ expected: "Array<IAutoBeInterfaceOperationApplication.IOperation>",
884
+ value: input.operations
885
+ })) && input.operations.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
886
+ path: _path + ".operations[" + _index4 + "]",
887
+ expected: "IAutoBeInterfaceOperationApplication.IOperation",
888
+ value: elem
889
+ })) && _vo1(elem, _path + ".operations[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
890
+ path: _path + ".operations[" + _index4 + "]",
891
+ expected: "IAutoBeInterfaceOperationApplication.IOperation",
892
+ value: elem
893
+ })).every(flag => flag) || _report(_exceptionable, {
894
+ path: _path + ".operations",
895
+ expected: "Array<IAutoBeInterfaceOperationApplication.IOperation>",
896
+ value: input.operations
897
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [(Array.isArray(input.authorizationRoles) || _report(_exceptionable, {
898
+ path: _path + ".authorizationRoles",
899
+ expected: "Array<string & CamelPattern & MinLength<1>>",
900
+ value: input.authorizationRoles
901
+ })) && input.authorizationRoles.map((elem, _index5) => "string" === typeof elem && (RegExp("^[a-z][a-zA-Z0-9]*$").test(elem) || _report(_exceptionable, {
902
+ path: _path + ".authorizationRoles[" + _index5 + "]",
903
+ expected: "string & CamelPattern",
904
+ value: elem
905
+ })) && (1 <= elem.length || _report(_exceptionable, {
906
+ path: _path + ".authorizationRoles[" + _index5 + "]",
907
+ expected: "string & MinLength<1>",
908
+ value: elem
909
+ })) || _report(_exceptionable, {
910
+ path: _path + ".authorizationRoles[" + _index5 + "]",
911
+ expected: "(string & CamelPattern & MinLength<1>)",
912
+ value: elem
913
+ })).every(flag => flag) || _report(_exceptionable, {
914
+ path: _path + ".authorizationRoles",
915
+ expected: "Array<string & CamelPattern & MinLength<1>>",
916
+ value: input.authorizationRoles
917
+ }), "string" === typeof input.description || _report(_exceptionable, {
918
+ path: _path + ".description",
919
+ expected: "string",
920
+ value: input.description
921
+ }), "string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
922
+ path: _path + ".name",
923
+ expected: "string & CamelPattern",
924
+ value: input.name
925
+ })) || _report(_exceptionable, {
926
+ path: _path + ".name",
927
+ expected: "(string & CamelPattern)",
928
+ value: input.name
929
+ }), "string" === typeof input.specification || _report(_exceptionable, {
930
+ path: _path + ".specification",
931
+ expected: "string",
932
+ value: input.specification
933
+ }), "string" === typeof input.summary || _report(_exceptionable, {
934
+ path: _path + ".summary",
935
+ expected: "string",
936
+ value: input.summary
937
+ }), "string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
938
+ path: _path + ".path",
939
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
940
+ value: input.path
941
+ })) || _report(_exceptionable, {
942
+ path: _path + ".path",
943
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
944
+ value: input.path
945
+ }), (Array.isArray(input.parameters) || _report(_exceptionable, {
946
+ path: _path + ".parameters",
947
+ expected: "Array<AutoBeOpenApi.IParameter>",
948
+ value: input.parameters
949
+ })) && input.parameters.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
950
+ path: _path + ".parameters[" + _index6 + "]",
951
+ expected: "AutoBeOpenApi.IParameter",
952
+ value: elem
953
+ })) && _vo2(elem, _path + ".parameters[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
954
+ path: _path + ".parameters[" + _index6 + "]",
955
+ expected: "AutoBeOpenApi.IParameter",
956
+ value: elem
957
+ })).every(flag => flag) || _report(_exceptionable, {
958
+ path: _path + ".parameters",
959
+ expected: "Array<AutoBeOpenApi.IParameter>",
960
+ value: input.parameters
961
+ }), null === input.requestBody || ("object" === typeof input.requestBody && null !== input.requestBody || _report(_exceptionable, {
962
+ path: _path + ".requestBody",
963
+ expected: "(AutoBeOpenApi.IRequestBody | null)",
964
+ value: input.requestBody
965
+ })) && _vo6(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
966
+ path: _path + ".requestBody",
967
+ expected: "(AutoBeOpenApi.IRequestBody | null)",
968
+ value: input.requestBody
969
+ }), null === input.responseBody || ("object" === typeof input.responseBody && null !== input.responseBody || _report(_exceptionable, {
970
+ path: _path + ".responseBody",
971
+ expected: "(AutoBeOpenApi.IResponseBody | null)",
972
+ value: input.responseBody
973
+ })) && _vo7(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
974
+ path: _path + ".responseBody",
975
+ expected: "(AutoBeOpenApi.IResponseBody | null)",
976
+ value: input.responseBody
977
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
978
+ path: _path + ".method",
979
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
980
+ value: input.method
981
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
982
+ path: _path + ".name",
983
+ expected: "string & CamelPattern",
984
+ value: input.name
985
+ })) || _report(_exceptionable, {
986
+ path: _path + ".name",
987
+ expected: "(string & CamelPattern)",
988
+ value: input.name
989
+ }), "string" === typeof input.description || _report(_exceptionable, {
990
+ path: _path + ".description",
991
+ expected: "string",
992
+ value: input.description
993
+ }), ("object" === typeof input.schema && null !== input.schema || _report(_exceptionable, {
994
+ path: _path + ".schema",
995
+ expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
996
+ value: input.schema
997
+ })) && _vu0(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
998
+ path: _path + ".schema",
999
+ expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
1000
+ value: input.schema
1001
+ })].every(flag => flag); const _vo3 = (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, {
1002
+ path: _path + ".minimum",
1003
+ expected: "number & Type<\"int64\">",
1004
+ value: input.minimum
1005
+ })) || _report(_exceptionable, {
1006
+ path: _path + ".minimum",
1007
+ expected: "((number & Type<\"int64\">) | undefined)",
1008
+ value: input.minimum
1009
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
1010
+ path: _path + ".maximum",
1011
+ expected: "number & Type<\"int64\">",
1012
+ value: input.maximum
1013
+ })) || _report(_exceptionable, {
1014
+ path: _path + ".maximum",
1015
+ expected: "((number & Type<\"int64\">) | undefined)",
1016
+ value: input.maximum
1017
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
1018
+ path: _path + ".exclusiveMinimum",
1019
+ expected: "(number | undefined)",
1020
+ value: input.exclusiveMinimum
1021
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
1022
+ path: _path + ".exclusiveMaximum",
1023
+ expected: "(number | undefined)",
1024
+ value: input.exclusiveMaximum
1025
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
1026
+ path: _path + ".multipleOf",
1027
+ expected: "number & Type<\"uint64\">",
1028
+ value: input.multipleOf
1029
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
1030
+ path: _path + ".multipleOf",
1031
+ expected: "number & ExclusiveMinimum<0>",
1032
+ value: input.multipleOf
1033
+ })) || _report(_exceptionable, {
1034
+ path: _path + ".multipleOf",
1035
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
1036
+ value: input.multipleOf
1037
+ }), "integer" === input.type || _report(_exceptionable, {
1038
+ path: _path + ".type",
1039
+ expected: "\"integer\"",
1040
+ value: input.type
1041
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
1042
+ path: _path + ".minimum",
1043
+ expected: "(number | undefined)",
1044
+ value: input.minimum
1045
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
1046
+ path: _path + ".maximum",
1047
+ expected: "(number | undefined)",
1048
+ value: input.maximum
1049
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
1050
+ path: _path + ".exclusiveMinimum",
1051
+ expected: "(number | undefined)",
1052
+ value: input.exclusiveMinimum
1053
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
1054
+ path: _path + ".exclusiveMaximum",
1055
+ expected: "(number | undefined)",
1056
+ value: input.exclusiveMaximum
1057
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
1058
+ path: _path + ".multipleOf",
1059
+ expected: "number & ExclusiveMinimum<0>",
1060
+ value: input.multipleOf
1061
+ })) || _report(_exceptionable, {
1062
+ path: _path + ".multipleOf",
1063
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
1064
+ value: input.multipleOf
1065
+ }), "number" === input.type || _report(_exceptionable, {
1066
+ path: _path + ".type",
1067
+ expected: "\"number\"",
1068
+ value: input.type
1069
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
1070
+ path: _path + ".format",
1071
+ expected: "(string | undefined)",
1072
+ value: input.format
1073
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
1074
+ path: _path + ".pattern",
1075
+ expected: "(string | undefined)",
1076
+ value: input.pattern
1077
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
1078
+ path: _path + ".contentMediaType",
1079
+ expected: "(string | undefined)",
1080
+ value: input.contentMediaType
1081
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
1082
+ path: _path + ".minLength",
1083
+ expected: "number & Type<\"uint64\">",
1084
+ value: input.minLength
1085
+ })) || _report(_exceptionable, {
1086
+ path: _path + ".minLength",
1087
+ expected: "((number & Type<\"uint64\">) | undefined)",
1088
+ value: input.minLength
1089
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
1090
+ path: _path + ".maxLength",
1091
+ expected: "number & Type<\"uint64\">",
1092
+ value: input.maxLength
1093
+ })) || _report(_exceptionable, {
1094
+ path: _path + ".maxLength",
1095
+ expected: "((number & Type<\"uint64\">) | undefined)",
1096
+ value: input.maxLength
1097
+ }), "string" === input.type || _report(_exceptionable, {
1098
+ path: _path + ".type",
1099
+ expected: "\"string\"",
1100
+ value: input.type
1101
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1102
+ path: _path + ".description",
1103
+ expected: "string",
1104
+ value: input.description
1105
+ }), "string" === typeof input.typeName || _report(_exceptionable, {
1106
+ path: _path + ".typeName",
1107
+ expected: "string",
1108
+ value: input.typeName
1109
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1110
+ path: _path + ".description",
1111
+ expected: "string",
1112
+ value: input.description
1113
+ }), "string" === typeof input.typeName || _report(_exceptionable, {
1114
+ path: _path + ".typeName",
1115
+ expected: "string",
1116
+ value: input.typeName
1117
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
1118
+ if ("number" === input.type)
1119
+ return _vo4(input, _path, true && _exceptionable);
1120
+ else if ("integer" === input.type)
1121
+ return _vo3(input, _path, true && _exceptionable);
1122
+ else if ("string" === input.type)
1123
+ return _vo5(input, _path, true && _exceptionable);
1124
+ else
1125
+ return _report(_exceptionable, {
1126
+ path: _path,
1127
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString)",
1128
+ value: input
1129
+ });
1130
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
1131
+ if (false === __is(input)) {
1132
+ errors = [];
1133
+ _report = __typia_transform__validateReport._validateReport(errors);
1134
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
1135
+ path: _path + "",
1136
+ expected: "IAutoBeInterfaceOperationApplication.IProps",
1137
+ value: input
1138
+ })) && _vo0(input, _path + "", true) || _report(true, {
1139
+ path: _path + "",
1140
+ expected: "IAutoBeInterfaceOperationApplication.IProps",
1141
+ value: input
1142
+ }))(input, "$input", true);
1143
+ const success = 0 === errors.length;
1144
+ return success ? {
1145
+ success,
1146
+ data: input
1147
+ } : {
1148
+ success,
1149
+ errors,
1150
+ data: input
1151
+ };
1152
+ }
1153
+ return {
1154
+ success: true,
1155
+ data: input
1156
+ };
1157
+ }; })()
1158
+ }
1159
+ ]
1160
+ };
1161
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
1162
+ validate: {
1163
+ makeOperations: validate,
1164
+ },
1165
+ }), { equals: false }));
1166
+ return application;
1167
+ })(),
1168
+ claude: (validate) => (() => {
1169
+ const application = {
1170
+ model: "claude",
1171
+ options: {
1172
+ reference: true,
1173
+ separate: null
1174
+ },
1175
+ functions: [
1176
+ {
1177
+ name: "makeOperations",
1178
+ parameters: {
1179
+ description: " Properties containing the operations to generate.\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationApplication.IProps}",
1180
+ type: "object",
1181
+ properties: {
1182
+ operations: {
1183
+ description: "Array of API operations to generate.\n\nEach operation in this array includes:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., \"/resources/{resourceId}\")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.",
1184
+ type: "array",
1185
+ items: {
1186
+ $ref: "#/$defs/IAutoBeInterfaceOperationApplication.IOperation"
1187
+ }
1188
+ }
1189
+ },
1190
+ required: [
1191
+ "operations"
1192
+ ],
1193
+ additionalProperties: false,
1194
+ $defs: {
1195
+ "IAutoBeInterfaceOperationApplication.IOperation": {
1196
+ 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\nDO: Use object types for all request bodies and responses. DO: Reference\nnamed types defined in the components section. DO: Use `application/json`\nas the content-type. DO: Use `string & tags.Format<\"uri\">` in the schema\nfor file upload/download operations instead 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```",
1197
+ type: "object",
1198
+ properties: {
1199
+ authorizationRoles: {
1200
+ description: "Authorization roles required to access this API operation.\n\nThis field specifies which user roles are allowed to access this\nendpoint. Multiple roles can be specified to allow different types of\nusers to access the same endpoint.\n\n## \u26A0\uFE0F CRITICAL: Role Multiplication Effect\n\n**EACH ROLE IN THIS ARRAY GENERATES A SEPARATE ENDPOINT**\n\n- If you specify `[\"admin\", \"moderator\", \"member\"]`, this creates 3\n separate endpoints\n- Total generated endpoints = operations \u00D7 average roles.length\n- Example: 100 operations with 3 roles each = 300 actual endpoints\n\n## \uD83D\uDD34 AVOID OVER-GENERATION\n\n**DO NOT create role-specific endpoints when a public endpoint would\nsuffice:**\n\n- \u274C BAD: Separate GET endpoints for admin, member, moderator to view the\n same public data\n- \u2705 GOOD: Single public endpoint `[]` with role-based filtering in business\n logic\n\n**DO NOT enumerate all possible roles when the Prisma schema uses a\nsingle User table:**\n\n- If Prisma has a User table with role/permission fields, you likely only\n need `[\"user\"]`\n- Avoid listing `[\"admin\", \"seller\", \"buyer\", \"moderator\", ...]`\n unnecessarily\n- The actual role checking happens in business logic, not at the endpoint\n level\n\n## Naming Convention\n\nDO: Use camelCase for all role names.\n\n## Important Guidelines\n\n- Set to empty array `[]` for public endpoints that require no\n authentication\n- Set to array with role strings for role-restricted endpoints\n- **MINIMIZE the number of roles per endpoint to prevent explosion**\n- Consider if the endpoint can be public with role-based filtering instead\n- The role names match exactly with the user type/role defined in the\n database\n- This will be used by the Realize Agent to generate appropriate decorator\n and authorization logic in the provider functions\n- The controller will apply the corresponding authentication decorator\n based on these roles\n\n## Examples\n\n- `[]` - Public endpoint, no authentication required (PREFERRED for read\n operations)\n- `[\"user\"]` - Any authenticated user can access (PREFERRED for\n user-specific operations)\n- `[\"admin\"]` - Only admin users can access (USE SPARINGLY)\n- `[\"admin\", \"moderator\"]` - Both admin and moderator users can access\n (AVOID if possible)\n- `[\"seller\"]` - Only seller users can access (ONLY if Seller is a separate\n table)\n\n## Best Practices\n\n1. **Start with public `[]` for all read operations** unless sensitive data\n is involved\n2. **Use single role `[\"user\"]` for authenticated operations** and handle\n permissions in business logic\n3. **Only use multiple roles when absolutely necessary** for different\n business logic paths\n4. **Remember: Fewer roles = Fewer endpoints = Better performance and\n maintainability**\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.",
1201
+ type: "array",
1202
+ items: {
1203
+ type: "string",
1204
+ pattern: "^[a-z][a-zA-Z0-9]*$",
1205
+ minLength: 1
1206
+ }
1207
+ },
1208
+ description: {
1209
+ 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> MUST be written in English. Never use other languages.",
1210
+ type: "string"
1211
+ },
1212
+ name: {
1213
+ 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.",
1214
+ type: "string",
1215
+ pattern: "^[a-z][a-zA-Z0-9]*$"
1216
+ },
1217
+ specification: {
1218
+ 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.",
1219
+ type: "string"
1220
+ },
1221
+ summary: {
1222
+ 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> MUST be written in English. Never use other languages",
1223
+ type: "string"
1224
+ },
1225
+ path: {
1226
+ 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)",
1227
+ type: "string",
1228
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
1229
+ },
1230
+ parameters: {
1231
+ 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`",
1232
+ type: "array",
1233
+ items: {
1234
+ $ref: "#/$defs/AutoBeOpenApi.IParameter"
1235
+ }
1236
+ },
1237
+ requestBody: {
1238
+ 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.",
1239
+ oneOf: [
1240
+ {
1241
+ type: "null"
1242
+ },
1243
+ {
1244
+ $ref: "#/$defs/AutoBeOpenApi.IRequestBody"
1245
+ }
1246
+ ]
1247
+ },
1248
+ responseBody: {
1249
+ 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.",
1250
+ oneOf: [
1251
+ {
1252
+ type: "null"
1253
+ },
1254
+ {
1255
+ $ref: "#/$defs/AutoBeOpenApi.IResponseBody"
1256
+ }
1257
+ ]
1258
+ },
1259
+ method: {
1260
+ description: "HTTP method of the API operation.\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",
1261
+ oneOf: [
1262
+ {
1263
+ "const": "get"
1264
+ },
1265
+ {
1266
+ "const": "post"
1267
+ },
1268
+ {
1269
+ "const": "put"
1270
+ },
1271
+ {
1272
+ "const": "delete"
1273
+ },
1274
+ {
1275
+ "const": "patch"
1276
+ }
1277
+ ]
1278
+ }
1279
+ },
1280
+ required: [
1281
+ "authorizationRoles",
1282
+ "description",
1283
+ "name",
1284
+ "specification",
1285
+ "summary",
1286
+ "path",
1287
+ "parameters",
1288
+ "requestBody",
1289
+ "responseBody",
1290
+ "method"
1291
+ ]
1292
+ },
1293
+ "AutoBeOpenApi.IParameter": {
1294
+ 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```",
1295
+ type: "object",
1296
+ properties: {
1297
+ name: {
1298
+ 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.",
1299
+ type: "string",
1300
+ pattern: "^[a-z][a-zA-Z0-9]*$"
1301
+ },
1302
+ description: {
1303
+ 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.",
1304
+ type: "string"
1305
+ },
1306
+ schema: {
1307
+ 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.",
1308
+ oneOf: [
1309
+ {
1310
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
1311
+ },
1312
+ {
1313
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
1314
+ },
1315
+ {
1316
+ $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
1317
+ }
1318
+ ],
1319
+ discriminator: {
1320
+ propertyName: "type",
1321
+ mapping: {
1322
+ number: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber",
1323
+ integer: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger",
1324
+ string: "#/$defs/AutoBeOpenApi.IJsonSchema.IString"
1325
+ }
1326
+ }
1327
+ }
1328
+ },
1329
+ required: [
1330
+ "name",
1331
+ "description",
1332
+ "schema"
1333
+ ]
1334
+ },
1335
+ "AutoBeOpenApi.IJsonSchema.INumber": {
1336
+ description: "Number (double) type info.",
1337
+ type: "object",
1338
+ properties: {
1339
+ minimum: {
1340
+ description: "Minimum value restriction.",
1341
+ type: "number"
1342
+ },
1343
+ maximum: {
1344
+ description: "Maximum value restriction.",
1345
+ type: "number"
1346
+ },
1347
+ exclusiveMinimum: {
1348
+ description: "Exclusive minimum value restriction.",
1349
+ type: "number"
1350
+ },
1351
+ exclusiveMaximum: {
1352
+ description: "Exclusive maximum value restriction.",
1353
+ type: "number"
1354
+ },
1355
+ multipleOf: {
1356
+ description: "Multiple of value restriction.",
1357
+ type: "number",
1358
+ exclusiveMinimum: 0
1359
+ },
1360
+ type: {
1361
+ 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.",
1362
+ "const": "number"
1363
+ }
1364
+ },
1365
+ required: [
1366
+ "type"
1367
+ ]
1368
+ },
1369
+ "AutoBeOpenApi.IJsonSchema.IInteger": {
1370
+ description: "Integer type info.",
1371
+ type: "object",
1372
+ properties: {
1373
+ minimum: {
1374
+ description: "Minimum value restriction.",
1375
+ type: "integer"
1376
+ },
1377
+ maximum: {
1378
+ description: "Maximum value restriction.",
1379
+ type: "integer"
1380
+ },
1381
+ exclusiveMinimum: {
1382
+ description: "Exclusive minimum value restriction.",
1383
+ type: "number"
1384
+ },
1385
+ exclusiveMaximum: {
1386
+ description: "Exclusive maximum value restriction.",
1387
+ type: "number"
1388
+ },
1389
+ multipleOf: {
1390
+ description: "Multiple of value restriction.",
1391
+ type: "integer",
1392
+ exclusiveMinimum: 0
1393
+ },
1394
+ type: {
1395
+ 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.",
1396
+ "const": "integer"
1397
+ }
1398
+ },
1399
+ required: [
1400
+ "type"
1401
+ ]
1402
+ },
1403
+ "AutoBeOpenApi.IJsonSchema.IString": {
1404
+ description: "String type info.",
1405
+ type: "object",
1406
+ properties: {
1407
+ format: {
1408
+ description: "Format restriction.",
1409
+ type: "string"
1410
+ },
1411
+ pattern: {
1412
+ description: "Pattern restriction.",
1413
+ type: "string"
1414
+ },
1415
+ contentMediaType: {
1416
+ description: "Content media type restriction.",
1417
+ type: "string"
1418
+ },
1419
+ minLength: {
1420
+ description: "Minimum length restriction.",
1421
+ type: "integer",
1422
+ minimum: 0
1423
+ },
1424
+ maxLength: {
1425
+ description: "Maximum length restriction.",
1426
+ type: "integer",
1427
+ minimum: 0
1428
+ },
1429
+ type: {
1430
+ 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.",
1431
+ "const": "string"
1432
+ }
1433
+ },
1434
+ required: [
1435
+ "type"
1436
+ ]
1437
+ },
1438
+ "AutoBeOpenApi.IRequestBody": {
1439
+ 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```",
1440
+ type: "object",
1441
+ properties: {
1442
+ description: {
1443
+ 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.",
1444
+ type: "string"
1445
+ },
1446
+ typeName: {
1447
+ 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```",
1448
+ type: "string"
1449
+ }
1450
+ },
1451
+ required: [
1452
+ "description",
1453
+ "typeName"
1454
+ ]
1455
+ },
1456
+ "AutoBeOpenApi.IResponseBody": {
1457
+ 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```",
1458
+ type: "object",
1459
+ properties: {
1460
+ description: {
1461
+ 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.",
1462
+ type: "string"
1463
+ },
1464
+ typeName: {
1465
+ 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```",
1466
+ type: "string"
1467
+ }
1468
+ },
1469
+ required: [
1470
+ "description",
1471
+ "typeName"
1472
+ ]
1473
+ }
1474
+ }
1475
+ },
1476
+ description: "Generate detailed API operations from path/method combinations.\n\nThis function creates complete API operations following REST principles and\nquality standards. Each generated operation includes specification, path,\nmethod, detailed multi-paragraph description, concise summary, parameters,\nand appropriate request/response bodies.\n\nThe function processes as many operations as possible in a single call,\nwith progress tracking to ensure iterative completion of all required\nendpoints.",
1477
+ validate: (() => { const _io0 = input => Array.isArray(input.operations) && input.operations.every(elem => "object" === typeof elem && null !== elem && _io1(elem)); const _io1 = input => Array.isArray(input.authorizationRoles) && input.authorizationRoles.every(elem => "string" === typeof elem && (RegExp("^[a-z][a-zA-Z0-9]*$").test(elem) && 1 <= elem.length)) && "string" === typeof input.description && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && "string" === typeof input.specification && "string" === typeof input.summary && ("string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path)) && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io2(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io6(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io7(input.responseBody)) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io2 = 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 _io3 = 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 _io4 = 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 _io5 = input => (undefined === input.format || "string" === typeof 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 _io6 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io7 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _iu0 = input => (() => {
1478
+ if ("number" === input.type)
1479
+ return _io4(input);
1480
+ else if ("integer" === input.type)
1481
+ return _io3(input);
1482
+ else if ("string" === input.type)
1483
+ return _io5(input);
1484
+ else
1485
+ return false;
1486
+ })(); const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.operations) || _report(_exceptionable, {
1487
+ path: _path + ".operations",
1488
+ expected: "Array<IAutoBeInterfaceOperationApplication.IOperation>",
1489
+ value: input.operations
1490
+ })) && input.operations.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1491
+ path: _path + ".operations[" + _index4 + "]",
1492
+ expected: "IAutoBeInterfaceOperationApplication.IOperation",
1493
+ value: elem
1494
+ })) && _vo1(elem, _path + ".operations[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
1495
+ path: _path + ".operations[" + _index4 + "]",
1496
+ expected: "IAutoBeInterfaceOperationApplication.IOperation",
1497
+ value: elem
1498
+ })).every(flag => flag) || _report(_exceptionable, {
1499
+ path: _path + ".operations",
1500
+ expected: "Array<IAutoBeInterfaceOperationApplication.IOperation>",
1501
+ value: input.operations
1502
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [(Array.isArray(input.authorizationRoles) || _report(_exceptionable, {
1503
+ path: _path + ".authorizationRoles",
1504
+ expected: "Array<string & CamelPattern & MinLength<1>>",
1505
+ value: input.authorizationRoles
1506
+ })) && input.authorizationRoles.map((elem, _index5) => "string" === typeof elem && (RegExp("^[a-z][a-zA-Z0-9]*$").test(elem) || _report(_exceptionable, {
1507
+ path: _path + ".authorizationRoles[" + _index5 + "]",
1508
+ expected: "string & CamelPattern",
1509
+ value: elem
1510
+ })) && (1 <= elem.length || _report(_exceptionable, {
1511
+ path: _path + ".authorizationRoles[" + _index5 + "]",
1512
+ expected: "string & MinLength<1>",
1513
+ value: elem
1514
+ })) || _report(_exceptionable, {
1515
+ path: _path + ".authorizationRoles[" + _index5 + "]",
1516
+ expected: "(string & CamelPattern & MinLength<1>)",
1517
+ value: elem
1518
+ })).every(flag => flag) || _report(_exceptionable, {
1519
+ path: _path + ".authorizationRoles",
1520
+ expected: "Array<string & CamelPattern & MinLength<1>>",
1521
+ value: input.authorizationRoles
1522
+ }), "string" === typeof input.description || _report(_exceptionable, {
1523
+ path: _path + ".description",
1524
+ expected: "string",
1525
+ value: input.description
1526
+ }), "string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
1527
+ path: _path + ".name",
1528
+ expected: "string & CamelPattern",
1529
+ value: input.name
1530
+ })) || _report(_exceptionable, {
1531
+ path: _path + ".name",
1532
+ expected: "(string & CamelPattern)",
1533
+ value: input.name
1534
+ }), "string" === typeof input.specification || _report(_exceptionable, {
1535
+ path: _path + ".specification",
1536
+ expected: "string",
1537
+ value: input.specification
1538
+ }), "string" === typeof input.summary || _report(_exceptionable, {
1539
+ path: _path + ".summary",
1540
+ expected: "string",
1541
+ value: input.summary
1542
+ }), "string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
1543
+ path: _path + ".path",
1544
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
1545
+ value: input.path
1546
+ })) || _report(_exceptionable, {
1547
+ path: _path + ".path",
1548
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
1549
+ value: input.path
1550
+ }), (Array.isArray(input.parameters) || _report(_exceptionable, {
1551
+ path: _path + ".parameters",
1552
+ expected: "Array<AutoBeOpenApi.IParameter>",
1553
+ value: input.parameters
1554
+ })) && input.parameters.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
1555
+ path: _path + ".parameters[" + _index6 + "]",
1556
+ expected: "AutoBeOpenApi.IParameter",
1557
+ value: elem
1558
+ })) && _vo2(elem, _path + ".parameters[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
1559
+ path: _path + ".parameters[" + _index6 + "]",
1560
+ expected: "AutoBeOpenApi.IParameter",
1561
+ value: elem
1562
+ })).every(flag => flag) || _report(_exceptionable, {
1563
+ path: _path + ".parameters",
1564
+ expected: "Array<AutoBeOpenApi.IParameter>",
1565
+ value: input.parameters
1566
+ }), null === input.requestBody || ("object" === typeof input.requestBody && null !== input.requestBody || _report(_exceptionable, {
1567
+ path: _path + ".requestBody",
1568
+ expected: "(AutoBeOpenApi.IRequestBody | null)",
1569
+ value: input.requestBody
1570
+ })) && _vo6(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
1571
+ path: _path + ".requestBody",
1572
+ expected: "(AutoBeOpenApi.IRequestBody | null)",
1573
+ value: input.requestBody
1574
+ }), null === input.responseBody || ("object" === typeof input.responseBody && null !== input.responseBody || _report(_exceptionable, {
1575
+ path: _path + ".responseBody",
1576
+ expected: "(AutoBeOpenApi.IResponseBody | null)",
1577
+ value: input.responseBody
1578
+ })) && _vo7(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
1579
+ path: _path + ".responseBody",
1580
+ expected: "(AutoBeOpenApi.IResponseBody | null)",
1581
+ value: input.responseBody
1582
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
1583
+ path: _path + ".method",
1584
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
1585
+ value: input.method
1586
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
1587
+ path: _path + ".name",
1588
+ expected: "string & CamelPattern",
1589
+ value: input.name
1590
+ })) || _report(_exceptionable, {
1591
+ path: _path + ".name",
1592
+ expected: "(string & CamelPattern)",
1593
+ value: input.name
1594
+ }), "string" === typeof input.description || _report(_exceptionable, {
1595
+ path: _path + ".description",
1596
+ expected: "string",
1597
+ value: input.description
1598
+ }), ("object" === typeof input.schema && null !== input.schema || _report(_exceptionable, {
1599
+ path: _path + ".schema",
1600
+ expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
1601
+ value: input.schema
1602
+ })) && _vu0(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
1603
+ path: _path + ".schema",
1604
+ expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
1605
+ value: input.schema
1606
+ })].every(flag => flag); const _vo3 = (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, {
1607
+ path: _path + ".minimum",
1608
+ expected: "number & Type<\"int64\">",
1609
+ value: input.minimum
1610
+ })) || _report(_exceptionable, {
1611
+ path: _path + ".minimum",
1612
+ expected: "((number & Type<\"int64\">) | undefined)",
1613
+ value: input.minimum
1614
+ }), undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000 || _report(_exceptionable, {
1615
+ path: _path + ".maximum",
1616
+ expected: "number & Type<\"int64\">",
1617
+ value: input.maximum
1618
+ })) || _report(_exceptionable, {
1619
+ path: _path + ".maximum",
1620
+ expected: "((number & Type<\"int64\">) | undefined)",
1621
+ value: input.maximum
1622
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
1623
+ path: _path + ".exclusiveMinimum",
1624
+ expected: "(number | undefined)",
1625
+ value: input.exclusiveMinimum
1626
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
1627
+ path: _path + ".exclusiveMaximum",
1628
+ expected: "(number | undefined)",
1629
+ value: input.exclusiveMaximum
1630
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 || _report(_exceptionable, {
1631
+ path: _path + ".multipleOf",
1632
+ expected: "number & Type<\"uint64\">",
1633
+ value: input.multipleOf
1634
+ })) && (0 < input.multipleOf || _report(_exceptionable, {
1635
+ path: _path + ".multipleOf",
1636
+ expected: "number & ExclusiveMinimum<0>",
1637
+ value: input.multipleOf
1638
+ })) || _report(_exceptionable, {
1639
+ path: _path + ".multipleOf",
1640
+ expected: "((number & Type<\"uint64\"> & ExclusiveMinimum<0>) | undefined)",
1641
+ value: input.multipleOf
1642
+ }), "integer" === input.type || _report(_exceptionable, {
1643
+ path: _path + ".type",
1644
+ expected: "\"integer\"",
1645
+ value: input.type
1646
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
1647
+ path: _path + ".minimum",
1648
+ expected: "(number | undefined)",
1649
+ value: input.minimum
1650
+ }), undefined === input.maximum || "number" === typeof input.maximum || _report(_exceptionable, {
1651
+ path: _path + ".maximum",
1652
+ expected: "(number | undefined)",
1653
+ value: input.maximum
1654
+ }), undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum || _report(_exceptionable, {
1655
+ path: _path + ".exclusiveMinimum",
1656
+ expected: "(number | undefined)",
1657
+ value: input.exclusiveMinimum
1658
+ }), undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum || _report(_exceptionable, {
1659
+ path: _path + ".exclusiveMaximum",
1660
+ expected: "(number | undefined)",
1661
+ value: input.exclusiveMaximum
1662
+ }), undefined === input.multipleOf || "number" === typeof input.multipleOf && (0 < input.multipleOf || _report(_exceptionable, {
1663
+ path: _path + ".multipleOf",
1664
+ expected: "number & ExclusiveMinimum<0>",
1665
+ value: input.multipleOf
1666
+ })) || _report(_exceptionable, {
1667
+ path: _path + ".multipleOf",
1668
+ expected: "((number & ExclusiveMinimum<0>) | undefined)",
1669
+ value: input.multipleOf
1670
+ }), "number" === input.type || _report(_exceptionable, {
1671
+ path: _path + ".type",
1672
+ expected: "\"number\"",
1673
+ value: input.type
1674
+ })].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => [undefined === input.format || "string" === typeof input.format || _report(_exceptionable, {
1675
+ path: _path + ".format",
1676
+ expected: "(string | undefined)",
1677
+ value: input.format
1678
+ }), undefined === input.pattern || "string" === typeof input.pattern || _report(_exceptionable, {
1679
+ path: _path + ".pattern",
1680
+ expected: "(string | undefined)",
1681
+ value: input.pattern
1682
+ }), undefined === input.contentMediaType || "string" === typeof input.contentMediaType || _report(_exceptionable, {
1683
+ path: _path + ".contentMediaType",
1684
+ expected: "(string | undefined)",
1685
+ value: input.contentMediaType
1686
+ }), undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000 || _report(_exceptionable, {
1687
+ path: _path + ".minLength",
1688
+ expected: "number & Type<\"uint64\">",
1689
+ value: input.minLength
1690
+ })) || _report(_exceptionable, {
1691
+ path: _path + ".minLength",
1692
+ expected: "((number & Type<\"uint64\">) | undefined)",
1693
+ value: input.minLength
1694
+ }), undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000 || _report(_exceptionable, {
1695
+ path: _path + ".maxLength",
1696
+ expected: "number & Type<\"uint64\">",
1697
+ value: input.maxLength
1698
+ })) || _report(_exceptionable, {
1699
+ path: _path + ".maxLength",
1700
+ expected: "((number & Type<\"uint64\">) | undefined)",
1701
+ value: input.maxLength
1702
+ }), "string" === input.type || _report(_exceptionable, {
1703
+ path: _path + ".type",
1704
+ expected: "\"string\"",
1705
+ value: input.type
1706
+ })].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1707
+ path: _path + ".description",
1708
+ expected: "string",
1709
+ value: input.description
1710
+ }), "string" === typeof input.typeName || _report(_exceptionable, {
1711
+ path: _path + ".typeName",
1712
+ expected: "string",
1713
+ value: input.typeName
1714
+ })].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
1715
+ path: _path + ".description",
1716
+ expected: "string",
1717
+ value: input.description
1718
+ }), "string" === typeof input.typeName || _report(_exceptionable, {
1719
+ path: _path + ".typeName",
1720
+ expected: "string",
1721
+ value: input.typeName
1722
+ })].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
1723
+ if ("number" === input.type)
1724
+ return _vo4(input, _path, true && _exceptionable);
1725
+ else if ("integer" === input.type)
1726
+ return _vo3(input, _path, true && _exceptionable);
1727
+ else if ("string" === input.type)
1728
+ return _vo5(input, _path, true && _exceptionable);
1729
+ else
1730
+ return _report(_exceptionable, {
1731
+ path: _path,
1732
+ expected: "(AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.IString)",
1733
+ value: input
1734
+ });
1735
+ })(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
1736
+ if (false === __is(input)) {
1737
+ errors = [];
1738
+ _report = __typia_transform__validateReport._validateReport(errors);
1739
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
1740
+ path: _path + "",
1741
+ expected: "IAutoBeInterfaceOperationApplication.IProps",
1742
+ value: input
1743
+ })) && _vo0(input, _path + "", true) || _report(true, {
1744
+ path: _path + "",
1745
+ expected: "IAutoBeInterfaceOperationApplication.IProps",
1746
+ value: input
1747
+ }))(input, "$input", true);
1748
+ const success = 0 === errors.length;
1749
+ return success ? {
1750
+ success,
1751
+ data: input
1752
+ } : {
1753
+ success,
1754
+ errors,
1755
+ data: input
1756
+ };
1757
+ }
1758
+ return {
1759
+ success: true,
1760
+ data: input
1761
+ };
1762
+ }; })()
1763
+ }
1764
+ ]
1765
+ };
1766
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
1767
+ validate: {
1768
+ makeOperations: validate,
1769
+ },
1770
+ }), { equals: false }));
1771
+ return application;
1772
+ })(),
1773
+ };
1774
+ //# sourceMappingURL=orchestrateInterfaceOperations.js.map