@autobe/agent 0.24.2 → 0.25.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 (297) hide show
  1. package/lib/AutoBeAgent.js +11 -1
  2. package/lib/AutoBeAgent.js.map +1 -1
  3. package/lib/AutoBeMockAgent.js +1 -0
  4. package/lib/AutoBeMockAgent.js.map +1 -1
  5. package/lib/constants/AutoBeSystemPromptConstant.d.ts +21 -21
  6. package/lib/context/IAutoBeApplication.d.ts +101 -6
  7. package/lib/context/IAutoBeApplicationProps.d.ts +6 -2
  8. package/lib/factory/createAgenticaHistory.js +1 -1
  9. package/lib/factory/createAgenticaHistory.js.map +1 -1
  10. package/lib/factory/createAutoBeApplication.js +80 -90
  11. package/lib/factory/createAutoBeApplication.js.map +1 -1
  12. package/lib/factory/createAutoBeContext.js +6 -5
  13. package/lib/factory/createAutoBeContext.js.map +1 -1
  14. package/lib/index.mjs +3914 -2594
  15. package/lib/index.mjs.map +1 -1
  16. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js +5 -1
  17. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js.map +1 -1
  18. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.d.ts +1 -1
  19. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +18 -3
  20. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  21. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.d.ts +5 -1
  22. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +19 -7
  23. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -1
  24. package/lib/orchestrate/analyze/orchestrateAnalyze.js +3 -2
  25. package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
  26. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.d.ts +1 -1
  27. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +2 -2
  28. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  29. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.d.ts +1 -0
  30. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +2 -2
  31. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
  32. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.js +1 -1
  33. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.js.map +1 -1
  34. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +36 -23
  35. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
  36. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.d.ts +22 -42
  37. package/lib/orchestrate/facade/transformFacadeStateMessage.js +1 -1
  38. package/lib/orchestrate/facade/transformFacadeStateMessage.js.map +1 -1
  39. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js +2 -1
  40. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js.map +1 -1
  41. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.d.ts +5 -1
  42. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js +20 -7
  43. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js.map +1 -1
  44. package/lib/orchestrate/interface/histories/transformInterfaceCommonPrerequisiteHistories.d.ts +3 -0
  45. package/lib/orchestrate/interface/histories/{transformInterfacePrerequisiteHistories.js → transformInterfaceCommonPrerequisiteHistories.js} +4 -4
  46. package/lib/orchestrate/interface/histories/transformInterfaceCommonPrerequisiteHistories.js.map +1 -0
  47. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.d.ts +6 -1
  48. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js +31 -23
  49. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +1 -1
  50. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.d.ts +6 -1
  51. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +22 -6
  52. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +1 -1
  53. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js +1 -1
  54. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js.map +1 -1
  55. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.d.ts +4 -1
  56. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js +27 -6
  57. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +1 -1
  58. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.d.ts +5 -1
  59. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js +21 -5
  60. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +1 -1
  61. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +1 -1
  62. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +1 -1
  63. package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.d.ts +3 -0
  64. package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.js +102 -0
  65. package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.js.map +1 -0
  66. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.d.ts +5 -1
  67. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +20 -4
  68. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +1 -1
  69. package/lib/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js +2 -2
  70. package/lib/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js.map +1 -1
  71. package/lib/orchestrate/interface/orchestrateInterface.js +45 -11
  72. package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
  73. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.d.ts +1 -1
  74. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +277 -37
  75. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  76. package/lib/orchestrate/interface/orchestrateInterfaceComplement.d.ts +4 -1
  77. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +69 -70
  78. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  79. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.d.ts +6 -1
  80. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +28 -13
  81. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  82. package/lib/orchestrate/interface/orchestrateInterfaceGroups.d.ts +4 -1
  83. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +11 -8
  84. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  85. package/lib/orchestrate/interface/orchestrateInterfaceOperations.d.ts +5 -1
  86. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +36 -21
  87. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  88. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js +260 -29
  89. package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  90. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.d.ts +5 -0
  91. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +713 -0
  92. package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +1 -0
  93. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.d.ts +5 -1
  94. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +83 -53
  95. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  96. package/lib/orchestrate/interface/orchestrateInterfaceSchemasReview.js +41 -7
  97. package/lib/orchestrate/interface/orchestrateInterfaceSchemasReview.js.map +1 -1
  98. package/lib/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.d.ts +0 -38
  99. package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +6 -10
  100. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.d.ts +52 -0
  101. package/lib/orchestrate/{common/structures/IAutoBeCommonCorrectDateApplication.js → interface/structures/IAutoBeInterfacePrerequisitesApplication.js} +1 -1
  102. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.js.map +1 -0
  103. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +0 -33
  104. package/lib/orchestrate/interface/utils/JsonSchemaFactory.d.ts +6 -2
  105. package/lib/orchestrate/interface/utils/JsonSchemaFactory.js +105 -5
  106. package/lib/orchestrate/interface/utils/JsonSchemaFactory.js.map +1 -1
  107. package/lib/orchestrate/interface/utils/JsonSchemaValidator.js +20 -1
  108. package/lib/orchestrate/interface/utils/JsonSchemaValidator.js.map +1 -1
  109. package/lib/orchestrate/interface/utils/OperationValidator.d.ts +3 -4
  110. package/lib/orchestrate/interface/utils/OperationValidator.js +1 -1
  111. package/lib/orchestrate/interface/utils/OperationValidator.js.map +1 -1
  112. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.d.ts +4 -1
  113. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +19 -8
  114. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +1 -1
  115. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js +1 -1
  116. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +1 -1
  117. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.d.ts +6 -1
  118. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +20 -6
  119. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +1 -1
  120. package/lib/orchestrate/prisma/orchestratePrisma.js +3 -3
  121. package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
  122. package/lib/orchestrate/prisma/orchestratePrismaComponent.d.ts +1 -1
  123. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +6 -3
  124. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  125. package/lib/orchestrate/prisma/orchestratePrismaSchemas.d.ts +1 -1
  126. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +12 -6
  127. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -1
  128. package/lib/orchestrate/{common/histories/transformCommonCorrectDateHistories.d.ts → realize/histories/transformRealizeCorrectCastingHistories.d.ts} +1 -2
  129. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.js +32 -0
  130. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.js.map +1 -0
  131. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js +14 -22
  132. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +1 -1
  133. package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +6 -6
  134. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js +8 -2
  135. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -1
  136. package/lib/orchestrate/realize/internal/compileRealizeFiles.js +1 -2
  137. package/lib/orchestrate/realize/internal/compileRealizeFiles.js.map +1 -1
  138. package/lib/orchestrate/realize/orchestRateRealizeCorrectCasting.d.ts +2 -1
  139. package/lib/orchestrate/realize/orchestRateRealizeCorrectCasting.js +119 -42
  140. package/lib/orchestrate/realize/orchestRateRealizeCorrectCasting.js.map +1 -1
  141. package/lib/orchestrate/realize/orchestrateRealize.js +82 -52
  142. package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
  143. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +128 -88
  144. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  145. package/lib/orchestrate/realize/orchestrateRealizeWrite.d.ts +2 -1
  146. package/lib/orchestrate/realize/orchestrateRealizeWrite.js +117 -54
  147. package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
  148. package/lib/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +52 -26
  149. package/lib/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts +44 -34
  150. package/lib/orchestrate/realize/utils/InternalFileSystem.js +1 -1
  151. package/lib/orchestrate/realize/utils/InternalFileSystem.js.map +1 -1
  152. package/lib/orchestrate/realize/utils/generateRealizeScenario.js +1 -5
  153. package/lib/orchestrate/realize/utils/generateRealizeScenario.js.map +1 -1
  154. package/lib/orchestrate/realize/utils/getRealizeWriteCodeTemplate.d.ts +8 -3
  155. package/lib/orchestrate/realize/utils/getRealizeWriteCodeTemplate.js +44 -17
  156. package/lib/orchestrate/realize/utils/getRealizeWriteCodeTemplate.js.map +1 -1
  157. package/lib/orchestrate/realize/utils/getRealizeWriteImportStatements.d.ts +4 -1
  158. package/lib/orchestrate/realize/utils/getRealizeWriteImportStatements.js +24 -9
  159. package/lib/orchestrate/realize/utils/getRealizeWriteImportStatements.js.map +1 -1
  160. package/lib/orchestrate/realize/utils/printErrorHints.d.ts +8 -0
  161. package/lib/orchestrate/realize/utils/printErrorHints.js +48 -0
  162. package/lib/orchestrate/realize/utils/printErrorHints.js.map +1 -0
  163. package/lib/orchestrate/realize/utils/replaceImportStatements.d.ts +1 -0
  164. package/lib/orchestrate/realize/utils/replaceImportStatements.js +93 -53
  165. package/lib/orchestrate/realize/utils/replaceImportStatements.js.map +1 -1
  166. package/lib/orchestrate/test/histories/transformTestCorrectHistories.d.ts +5 -1
  167. package/lib/orchestrate/test/histories/transformTestCorrectHistories.js +11 -7
  168. package/lib/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -1
  169. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js +1 -1
  170. package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js.map +1 -1
  171. package/lib/orchestrate/test/histories/transformTestScenarioHistories.d.ts +7 -1
  172. package/lib/orchestrate/test/histories/transformTestScenarioHistories.js +35 -96
  173. package/lib/orchestrate/test/histories/transformTestScenarioHistories.js.map +1 -1
  174. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.d.ts +6 -3
  175. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js +33 -77
  176. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js.map +1 -1
  177. package/lib/orchestrate/test/histories/transformTestWriteHistories.d.ts +5 -1
  178. package/lib/orchestrate/test/histories/transformTestWriteHistories.js +111 -94
  179. package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -1
  180. package/lib/orchestrate/test/orchestrateTest.js +20 -14
  181. package/lib/orchestrate/test/orchestrateTest.js.map +1 -1
  182. package/lib/orchestrate/test/orchestrateTestCorrect.d.ts +4 -1
  183. package/lib/orchestrate/test/orchestrateTestCorrect.js +81 -50
  184. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  185. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +31 -13
  186. package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
  187. package/lib/orchestrate/test/orchestrateTestScenario.d.ts +1 -1
  188. package/lib/orchestrate/test/orchestrateTestScenario.js +18 -7
  189. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  190. package/lib/orchestrate/test/orchestrateTestScenarioReview.d.ts +5 -1
  191. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +20 -12
  192. package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
  193. package/lib/orchestrate/test/orchestrateTestWrite.d.ts +4 -1
  194. package/lib/orchestrate/test/orchestrateTestWrite.js +46 -25
  195. package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  196. package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +9 -5
  197. package/lib/orchestrate/test/structures/IAutoBeTestCorrectInvalidRequestApplication.d.ts +8 -2
  198. package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +11 -7
  199. package/lib/orchestrate/test/utils/getPrerequisites.d.ts +5 -0
  200. package/lib/orchestrate/test/utils/getPrerequisites.js +36 -0
  201. package/lib/orchestrate/test/utils/getPrerequisites.js.map +1 -0
  202. package/lib/orchestrate/test/utils/getReferenceIds.js +1 -1
  203. package/lib/orchestrate/test/utils/getReferenceIds.js.map +1 -1
  204. package/package.json +5 -5
  205. package/src/AutoBeAgent.ts +17 -1
  206. package/src/AutoBeMockAgent.ts +1 -0
  207. package/src/constants/AutoBeSystemPromptConstant.ts +21 -21
  208. package/src/context/IAutoBeApplication.ts +101 -6
  209. package/src/context/IAutoBeApplicationProps.ts +6 -2
  210. package/src/factory/createAgenticaHistory.ts +11 -5
  211. package/src/factory/createAutoBeContext.ts +6 -5
  212. package/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.ts +5 -1
  213. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.ts +16 -0
  214. package/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.ts +22 -7
  215. package/src/orchestrate/analyze/orchestrateAnalyze.ts +3 -2
  216. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +2 -1
  217. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +3 -2
  218. package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +2 -2
  219. package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +25 -45
  220. package/src/orchestrate/interface/histories/transformInterfaceAssetHistories.ts +2 -1
  221. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.ts +23 -9
  222. package/src/orchestrate/interface/histories/{transformInterfacePrerequisiteHistories.ts → transformInterfaceCommonPrerequisiteHistories.ts} +1 -1
  223. package/src/orchestrate/interface/histories/transformInterfaceComplementHistories.ts +33 -24
  224. package/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.ts +26 -9
  225. package/src/orchestrate/interface/histories/transformInterfaceGroupHistories.ts +30 -6
  226. package/src/orchestrate/interface/histories/transformInterfaceOperationHistories.ts +24 -7
  227. package/src/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.ts +118 -0
  228. package/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.ts +23 -6
  229. package/src/orchestrate/interface/orchestrateInterface.ts +65 -20
  230. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +22 -12
  231. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +34 -47
  232. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +40 -28
  233. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +9 -3
  234. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +51 -35
  235. package/src/orchestrate/interface/orchestrateInterfacePrerequisites.ts +274 -0
  236. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +52 -33
  237. package/src/orchestrate/interface/orchestrateInterfaceSchemasReview.ts +1 -1
  238. package/src/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.ts +0 -39
  239. package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +6 -10
  240. package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.ts +58 -0
  241. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +0 -34
  242. package/src/orchestrate/interface/utils/JsonSchemaFactory.ts +92 -4
  243. package/src/orchestrate/interface/utils/JsonSchemaValidator.ts +19 -1
  244. package/src/orchestrate/interface/utils/OperationValidator.ts +9 -7
  245. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.ts +20 -6
  246. package/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.ts +24 -9
  247. package/src/orchestrate/prisma/orchestratePrisma.ts +7 -3
  248. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +5 -1
  249. package/src/orchestrate/prisma/orchestratePrismaSchemas.ts +15 -10
  250. package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.ts +44 -0
  251. package/src/orchestrate/realize/histories/transformRealizeCorrectHistories.ts +13 -24
  252. package/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.ts +6 -6
  253. package/src/orchestrate/realize/histories/transformRealizeWriteHistories.ts +6 -4
  254. package/src/orchestrate/realize/internal/compileRealizeFiles.ts +1 -5
  255. package/src/orchestrate/realize/orchestRateRealizeCorrectCasting.ts +102 -16
  256. package/src/orchestrate/realize/orchestrateRealize.ts +121 -81
  257. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +50 -7
  258. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +14 -4
  259. package/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.ts +54 -29
  260. package/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.ts +46 -35
  261. package/src/orchestrate/realize/utils/InternalFileSystem.ts +1 -1
  262. package/src/orchestrate/realize/utils/generateRealizeScenario.ts +1 -5
  263. package/src/orchestrate/realize/utils/getRealizeWriteCodeTemplate.ts +54 -22
  264. package/src/orchestrate/realize/utils/getRealizeWriteImportStatements.ts +28 -16
  265. package/src/orchestrate/realize/utils/printErrorHints.ts +55 -0
  266. package/src/orchestrate/realize/utils/replaceImportStatements.ts +99 -97
  267. package/src/orchestrate/test/histories/transformTestCorrectHistories.ts +14 -7
  268. package/src/orchestrate/test/histories/transformTestScenarioHistories.ts +50 -115
  269. package/src/orchestrate/test/histories/transformTestScenarioReviewHistories.ts +41 -111
  270. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +35 -12
  271. package/src/orchestrate/test/orchestrateTest.ts +19 -13
  272. package/src/orchestrate/test/orchestrateTestCorrect.ts +71 -51
  273. package/src/orchestrate/test/orchestrateTestCorrectInvalidRequest.ts +13 -1
  274. package/src/orchestrate/test/orchestrateTestScenario.ts +27 -17
  275. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +32 -19
  276. package/src/orchestrate/test/orchestrateTestWrite.ts +20 -10
  277. package/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.ts +9 -228
  278. package/src/orchestrate/test/structures/IAutoBeTestCorrectInvalidRequestApplication.ts +8 -2
  279. package/src/orchestrate/test/structures/IAutoBeTestWriteApplication.ts +11 -78
  280. package/src/orchestrate/test/utils/getPrerequisites.ts +51 -0
  281. package/src/orchestrate/test/utils/getReferenceIds.ts +2 -1
  282. package/lib/orchestrate/common/histories/transformCommonCorrectDateHistories.js +0 -48
  283. package/lib/orchestrate/common/histories/transformCommonCorrectDateHistories.js.map +0 -1
  284. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectDateApplication.d.ts +0 -35
  285. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectDateApplication.js.map +0 -1
  286. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistories.d.ts +0 -3
  287. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistories.js.map +0 -1
  288. package/lib/orchestrate/interface/utils/OpenApiEndpointComparator.d.ts +0 -6
  289. package/lib/orchestrate/interface/utils/OpenApiEndpointComparator.js +0 -22
  290. package/lib/orchestrate/interface/utils/OpenApiEndpointComparator.js.map +0 -1
  291. package/lib/orchestrate/realize/orchestrateRealizeCorrectDate.d.ts +0 -4
  292. package/lib/orchestrate/realize/orchestrateRealizeCorrectDate.js +0 -540
  293. package/lib/orchestrate/realize/orchestrateRealizeCorrectDate.js.map +0 -1
  294. package/src/orchestrate/common/histories/transformCommonCorrectDateHistories.ts +0 -60
  295. package/src/orchestrate/common/structures/IAutoBeCommonCorrectDateApplication.ts +0 -40
  296. package/src/orchestrate/interface/utils/OpenApiEndpointComparator.ts +0 -23
  297. package/src/orchestrate/realize/orchestrateRealizeCorrectDate.ts +0 -372
@@ -0,0 +1,713 @@
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.orchestrateInterfacePrerequisites = orchestrateInterfacePrerequisites;
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 uuid_1 = require("uuid");
55
+ const assertSchemaModel_1 = require("../../context/assertSchemaModel");
56
+ const divideArray_1 = require("../../utils/divideArray");
57
+ const executeCachedBatch_1 = require("../../utils/executeCachedBatch");
58
+ const transformInterfacePrerequisitesHistories_1 = require("./histories/transformInterfacePrerequisitesHistories");
59
+ function orchestrateInterfacePrerequisites(ctx_1, document_1) {
60
+ return __awaiter(this, arguments, void 0, function* (ctx, document, capacity = 4 /* AutoBeConfigConstant.INTERFACE_CAPACITY */) {
61
+ var _a;
62
+ const operations = (_a = document.operations.filter((op) => op.authorizationType === null)) !== null && _a !== void 0 ? _a : [];
63
+ const progress = {
64
+ total: operations.length,
65
+ completed: 0,
66
+ };
67
+ const prerequisiteOperations = document.operations.filter((op) => op.authorizationType === null && op.method === "post");
68
+ const dict = new tstl_1.HashMap(prerequisiteOperations.map((op) => new tstl_1.Pair({ path: op.path, method: op.method }, op)), utils_1.AutoBeOpenApiEndpointComparator.hashCode, utils_1.AutoBeOpenApiEndpointComparator.equals);
69
+ const prerequisitesNotFound = [
70
+ `You have to select one of the endpoints below`,
71
+ "",
72
+ " method | path ",
73
+ "--------|------",
74
+ ...prerequisiteOperations
75
+ .map((op) => `\`${op.method}\` | \`${op.path}\``)
76
+ .join("\n"),
77
+ ].join("\n");
78
+ const exclude = [];
79
+ let include = [...operations];
80
+ let trial = 0;
81
+ do {
82
+ const matrix = (0, divideArray_1.divideArray)({
83
+ array: include,
84
+ capacity: capacity !== null && capacity !== void 0 ? capacity : 4 /* AutoBeConfigConstant.INTERFACE_CAPACITY */,
85
+ });
86
+ yield (0, executeCachedBatch_1.executeCachedBatch)(matrix.map((ops) => (promptCacheKey) => __awaiter(this, void 0, void 0, function* () {
87
+ const row = yield divideAndConquer(ctx, {
88
+ dict: dict,
89
+ document,
90
+ includes: ops,
91
+ progress,
92
+ promptCacheKey,
93
+ prerequisitesNotFound,
94
+ });
95
+ exclude.push(...row);
96
+ return row;
97
+ })));
98
+ include = include.filter((op) => {
99
+ if (exclude.some((el) => el.endpoint.method === op.method && el.endpoint.path === op.path)) {
100
+ return false;
101
+ }
102
+ return true;
103
+ });
104
+ } while (include.length > 0 && ++trial < ctx.retry);
105
+ return exclude;
106
+ });
107
+ }
108
+ function divideAndConquer(ctx, props) {
109
+ return __awaiter(this, void 0, void 0, function* () {
110
+ var _a, _b;
111
+ const pointer = {
112
+ value: null,
113
+ };
114
+ try {
115
+ const { tokenUsage } = yield ctx.conversate({
116
+ source: "interfacePrerequisites",
117
+ controller: createController({
118
+ model: ctx.model,
119
+ document: props.document,
120
+ dict: props.dict,
121
+ includes: props.includes,
122
+ prerequisitesNotFound: props.prerequisitesNotFound,
123
+ build: (next) => {
124
+ pointer.value = next;
125
+ },
126
+ }),
127
+ histories: (0, transformInterfacePrerequisitesHistories_1.transformInterfacePrerequisitesHistories)(props.document, props.includes),
128
+ enforceFunctionCall: true,
129
+ promptCacheKey: props.promptCacheKey,
130
+ message: "Create prerequisite for the given operations",
131
+ });
132
+ if (pointer.value === null)
133
+ return [];
134
+ props.progress.completed += pointer.value.length;
135
+ ctx.dispatch({
136
+ type: "interfacePrerequisites",
137
+ id: (0, uuid_1.v7)(),
138
+ created_at: new Date().toISOString(),
139
+ tokenUsage,
140
+ operations: pointer.value,
141
+ total: props.progress.total,
142
+ completed: props.progress.completed,
143
+ step: (_b = (_a = ctx.state().prisma) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
144
+ });
145
+ return pointer.value;
146
+ }
147
+ catch (_c) {
148
+ props.progress.completed += props.includes.length;
149
+ return [];
150
+ }
151
+ });
152
+ }
153
+ function createController(props) {
154
+ (0, assertSchemaModel_1.assertSchemaModel)(props.model);
155
+ const validate = (next) => {
156
+ const result = (() => { const _io0 = input => Array.isArray(input.operations) && input.operations.every(elem => "object" === typeof elem && null !== elem && _io1(elem)); const _io1 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io3(elem))); const _io2 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.operations) || _report(_exceptionable, {
157
+ path: _path + ".operations",
158
+ expected: "Array<IAutoBeInterfacePrerequisitesApplication.IOperation>",
159
+ value: input.operations
160
+ })) && input.operations.map((elem, _index3) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
161
+ path: _path + ".operations[" + _index3 + "]",
162
+ expected: "IAutoBeInterfacePrerequisitesApplication.IOperation",
163
+ value: elem
164
+ })) && _vo1(elem, _path + ".operations[" + _index3 + "]", true && _exceptionable) || _report(_exceptionable, {
165
+ path: _path + ".operations[" + _index3 + "]",
166
+ expected: "IAutoBeInterfacePrerequisitesApplication.IOperation",
167
+ value: elem
168
+ })).every(flag => flag) || _report(_exceptionable, {
169
+ path: _path + ".operations",
170
+ expected: "Array<IAutoBeInterfacePrerequisitesApplication.IOperation>",
171
+ value: input.operations
172
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
173
+ path: _path + ".endpoint",
174
+ expected: "AutoBeOpenApi.IEndpoint",
175
+ value: input.endpoint
176
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
177
+ path: _path + ".endpoint",
178
+ expected: "AutoBeOpenApi.IEndpoint",
179
+ value: input.endpoint
180
+ }), (Array.isArray(input.prerequisites) || _report(_exceptionable, {
181
+ path: _path + ".prerequisites",
182
+ expected: "Array<AutoBeOpenApi.IPrerequisite>",
183
+ value: input.prerequisites
184
+ })) && input.prerequisites.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
185
+ path: _path + ".prerequisites[" + _index4 + "]",
186
+ expected: "AutoBeOpenApi.IPrerequisite",
187
+ value: elem
188
+ })) && _vo3(elem, _path + ".prerequisites[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
189
+ path: _path + ".prerequisites[" + _index4 + "]",
190
+ expected: "AutoBeOpenApi.IPrerequisite",
191
+ value: elem
192
+ })).every(flag => flag) || _report(_exceptionable, {
193
+ path: _path + ".prerequisites",
194
+ expected: "Array<AutoBeOpenApi.IPrerequisite>",
195
+ value: input.prerequisites
196
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
197
+ path: _path + ".path",
198
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
199
+ value: input.path
200
+ })) || _report(_exceptionable, {
201
+ path: _path + ".path",
202
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
203
+ value: input.path
204
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
205
+ path: _path + ".method",
206
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
207
+ value: input.method
208
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
209
+ path: _path + ".endpoint",
210
+ expected: "AutoBeOpenApi.IEndpoint",
211
+ value: input.endpoint
212
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
213
+ path: _path + ".endpoint",
214
+ expected: "AutoBeOpenApi.IEndpoint",
215
+ value: input.endpoint
216
+ }), "string" === typeof input.description || _report(_exceptionable, {
217
+ path: _path + ".description",
218
+ expected: "string",
219
+ value: input.description
220
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
221
+ if (false === __is(input)) {
222
+ errors = [];
223
+ _report = __typia_transform__validateReport._validateReport(errors);
224
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
225
+ path: _path + "",
226
+ expected: "IAutoBeInterfacePrerequisitesApplication.IProps",
227
+ value: input
228
+ })) && _vo0(input, _path + "", true) || _report(true, {
229
+ path: _path + "",
230
+ expected: "IAutoBeInterfacePrerequisitesApplication.IProps",
231
+ value: input
232
+ }))(input, "$input", true);
233
+ const success = 0 === errors.length;
234
+ return success ? {
235
+ success,
236
+ data: input
237
+ } : {
238
+ success,
239
+ errors,
240
+ data: input
241
+ };
242
+ }
243
+ return {
244
+ success: true,
245
+ data: input
246
+ };
247
+ }; })()(next);
248
+ if (result.success === false)
249
+ return result;
250
+ const operations = result.data.operations;
251
+ const filteredOperations = [];
252
+ const errors = [];
253
+ props.includes.forEach((el) => {
254
+ // Find the matched operation in the includes
255
+ const matched = operations.find((op) => op.endpoint.method === el.method && op.endpoint.path === el.path);
256
+ // Remove duplicate operations in Prerequisites
257
+ if (matched) {
258
+ const prerequisites = new Map();
259
+ matched.prerequisites.forEach((op) => {
260
+ if (prerequisites.get(op.endpoint.method + op.endpoint.path) !==
261
+ undefined) {
262
+ return;
263
+ }
264
+ prerequisites.set(op.endpoint.method + op.endpoint.path, op);
265
+ });
266
+ matched.prerequisites = Array.from(prerequisites.values());
267
+ filteredOperations.push(matched);
268
+ }
269
+ });
270
+ filteredOperations.forEach((op, i) => {
271
+ op.prerequisites.forEach((p, j) => {
272
+ if (props.dict.has(p.endpoint) === false) {
273
+ errors.push({
274
+ value: p.endpoint,
275
+ path: `$input.operations[${i}].prerequisites[${j}].endpoint`,
276
+ expected: "AutoBeOpenApi.IEndpoint",
277
+ description: props.prerequisitesNotFound,
278
+ });
279
+ }
280
+ if (p.endpoint.method === op.endpoint.method &&
281
+ p.endpoint.path === op.endpoint.path) {
282
+ errors.push({
283
+ value: p.endpoint,
284
+ path: `$input.operations[${i}].prerequisites[${j}].endpoint`,
285
+ expected: "AutoBeOpenApi.IEndpoint",
286
+ description: "Self-reference is not allowed.",
287
+ });
288
+ }
289
+ });
290
+ });
291
+ return errors.length === 0
292
+ ? Object.assign(Object.assign({}, result), { data: Object.assign(Object.assign({}, result.data), { operations: filteredOperations }) }) : {
293
+ success: false,
294
+ data: Object.assign(Object.assign({}, result.data), { operations: filteredOperations }),
295
+ errors,
296
+ };
297
+ };
298
+ const application = collection[props.model === "chatgpt" ? "chatgpt" : "claude"](validate);
299
+ return {
300
+ protocol: "class",
301
+ name: "interface",
302
+ application,
303
+ execute: {
304
+ makePrerequisite: (next) => {
305
+ props.build(next.operations);
306
+ },
307
+ },
308
+ };
309
+ }
310
+ const collection = {
311
+ chatgpt: (validate) => (() => {
312
+ const application = {
313
+ model: "chatgpt",
314
+ options: {
315
+ reference: true,
316
+ strict: false,
317
+ separate: null
318
+ },
319
+ functions: [
320
+ {
321
+ name: "makePrerequisite",
322
+ parameters: {
323
+ description: "Current Type: {@link IAutoBeInterfacePrerequisitesApplication.IProps}",
324
+ type: "object",
325
+ properties: {
326
+ operations: {
327
+ description: "Target operations requiring prerequisite analysis.\n\nEach operation will be analyzed for dependency requirements and returned\nwith appropriate prerequisites from Available API Operations.",
328
+ type: "array",
329
+ items: {
330
+ $ref: "#/$defs/IAutoBeInterfacePrerequisitesApplication.IOperation"
331
+ }
332
+ }
333
+ },
334
+ required: [
335
+ "operations"
336
+ ],
337
+ additionalProperties: false,
338
+ $defs: {
339
+ "IAutoBeInterfacePrerequisitesApplication.IOperation": {
340
+ description: "Operation with its analyzed prerequisite dependencies.\n\nRepresents a single API operation and its complete prerequisite chain\nneeded for successful execution.\n\n### Description of {@link endpoint} property:\n\n> The API endpoint being analyzed.\n> \n> Identifies the specific operation (method + path) that needs\n> prerequisites.",
341
+ type: "object",
342
+ properties: {
343
+ endpoint: {
344
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
345
+ },
346
+ prerequisites: {
347
+ description: "Required prerequisite operations.\n\nList of API operations that must be successfully executed before this\noperation can be performed. Based on resource creation dependencies and\nexistence validations from the analysis.",
348
+ type: "array",
349
+ items: {
350
+ $ref: "#/$defs/AutoBeOpenApi.IPrerequisite"
351
+ }
352
+ }
353
+ },
354
+ required: [
355
+ "endpoint",
356
+ "prerequisites"
357
+ ]
358
+ },
359
+ "AutoBeOpenApi.IEndpoint": {
360
+ description: "API endpoint information.",
361
+ type: "object",
362
+ properties: {
363
+ path: {
364
+ 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\\/_{}.-]*$",
365
+ type: "string"
366
+ },
367
+ method: {
368
+ description: "HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., \"get\",\nnot \"GET\").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record",
369
+ type: "string",
370
+ "enum": [
371
+ "get",
372
+ "post",
373
+ "put",
374
+ "delete",
375
+ "patch"
376
+ ]
377
+ }
378
+ },
379
+ required: [
380
+ "path",
381
+ "method"
382
+ ]
383
+ },
384
+ "AutoBeOpenApi.IPrerequisite": {
385
+ description: "Prerequisite API operation dependency.\n\n`IPrerequisite` defines a dependency relationship between API operations,\nspecifying that certain endpoints must be successfully called before the\ncurrent operation can proceed. This ensures proper resource validation,\nstate checking, and data availability in complex API workflows.\n\n## CRITICAL WARNING: Authentication is NOT a Prerequisite\n\n**NEVER use prerequisites for authentication or authorization checks!**\n\nPrerequisites are ONLY for business logic dependencies such as:\n\n- Checking if a resource exists\n- Verifying resource state\n- Loading required data\n\nDo NOT create prerequisites for:\n\n- Login/authentication endpoints\n- Token validation\n- Permission checks\n- User authorization verification\n\nAuthentication is handled separately via the `authorizationRole` field on\nthe operation itself. Mixing authentication with business prerequisites\ncreates confusion and incorrect test scenarios.\n\n## Core Concept\n\nPrerequisites create an execution dependency graph for API operations. They\nexplicitly declare which APIs must succeed before attempting the current\noperation, preventing invalid states and ensuring data consistency.\n\n## Structure\n\nEach prerequisite consists of:\n\n1. **endpoint**: The API endpoint that must be called first\n2. **description**: Clear explanation of why this prerequisite is required\n\n## Common Use Cases\n\n### 1. Resource Existence Validation\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/users/{userId}\", \"method\": \"get\" },\n \"description\": \"User must exist before updating their profile\"\n}\n```\n\n### 2. Parent-Child Relationships\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/posts/{postId}\", \"method\": \"get\" },\n \"description\": \"Post must exist before adding comments\"\n}\n```\n\n### 3. State Prerequisites\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/orders/{orderId}/status\", \"method\": \"get\" },\n \"description\": \"Order must be in 'confirmed' state before shipping\"\n}\n```\n\n### 4. Business Logic Dependencies\n\n```typescript\n{\n \"endpoint\": {\n \"path\": \"/inventory/{productId}/stock\",\n \"method\": \"get\"\n },\n \"description\": \"Product must have sufficient stock before creating order\"\n}\n```\n\n## Implementation Guidelines\n\n1. **Clear Descriptions**: Always explain WHY the prerequisite is needed\n2. **Minimal Dependencies**: Only include truly necessary prerequisites\n3. **Logical Order**: If multiple prerequisites exist, order them logically\n4. **Error Context**: Description should help understand failure scenarios\n5. **No Authentication**: Prerequisites must NEVER be authentication checks\n\n## Test Generation Usage\n\nThe Test Agent utilizes prerequisites to:\n\n- Set up test data in the correct sequence\n- Generate realistic test scenarios\n- Create both positive and negative test cases\n- Ensure proper cleanup in reverse dependency order\n\n## Best Practices\n\n- Keep prerequisite chains as short as possible for performance\n- Consider caching prerequisite results when safe to do so\n- Ensure prerequisite descriptions are specific, not generic\n- Validate that circular dependencies don't exist\n- Document any side effects of prerequisite calls\n- NEVER use for authentication/authorization validation\n\n### Description of {@link endpoint} property:\n\n> The API endpoint that must be called before the main operation.\n> \n> This specifies the exact HTTP method and path of the prerequisite API.\n> The endpoint must be a valid operation defined elsewhere in the API\n> specification. Path parameters in the prerequisite endpoint can reference\n> the same parameters available in the main operation.",
386
+ type: "object",
387
+ properties: {
388
+ endpoint: {
389
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
390
+ },
391
+ description: {
392
+ description: "Clear description of why this prerequisite is required.\n\nThis description should explain:\n\n- What validation or check this prerequisite performs\n- What state or condition must be satisfied\n- What happens if this prerequisite fails\n- Any specific data from the prerequisite used by the main operation\n\nThe description helps developers understand the dependency relationship\nand aids in debugging when prerequisites fail.\n\nGuidelines for good descriptions:\n\n- Be specific about the requirement (e.g., \"must be in 'active' state\")\n- Explain business logic constraints (e.g., \"budget must not be exceeded\")\n- Explain data dependencies (e.g., \"provides pricing information needed\")\n- Keep it concise but complete\n\n> MUST be written in English. Never use other languages.",
393
+ type: "string"
394
+ }
395
+ },
396
+ required: [
397
+ "endpoint",
398
+ "description"
399
+ ]
400
+ }
401
+ }
402
+ },
403
+ description: "Generate prerequisites for the provided operations.\n\nAnalyzes each operation's dependencies and returns the complete list with\ntheir required prerequisite chains based on resource relationships.",
404
+ validate: (() => { const _io0 = input => Array.isArray(input.operations) && input.operations.every(elem => "object" === typeof elem && null !== elem && _io1(elem)); const _io1 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io3(elem))); const _io2 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.operations) || _report(_exceptionable, {
405
+ path: _path + ".operations",
406
+ expected: "Array<IAutoBeInterfacePrerequisitesApplication.IOperation>",
407
+ value: input.operations
408
+ })) && input.operations.map((elem, _index3) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
409
+ path: _path + ".operations[" + _index3 + "]",
410
+ expected: "IAutoBeInterfacePrerequisitesApplication.IOperation",
411
+ value: elem
412
+ })) && _vo1(elem, _path + ".operations[" + _index3 + "]", true && _exceptionable) || _report(_exceptionable, {
413
+ path: _path + ".operations[" + _index3 + "]",
414
+ expected: "IAutoBeInterfacePrerequisitesApplication.IOperation",
415
+ value: elem
416
+ })).every(flag => flag) || _report(_exceptionable, {
417
+ path: _path + ".operations",
418
+ expected: "Array<IAutoBeInterfacePrerequisitesApplication.IOperation>",
419
+ value: input.operations
420
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
421
+ path: _path + ".endpoint",
422
+ expected: "AutoBeOpenApi.IEndpoint",
423
+ value: input.endpoint
424
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
425
+ path: _path + ".endpoint",
426
+ expected: "AutoBeOpenApi.IEndpoint",
427
+ value: input.endpoint
428
+ }), (Array.isArray(input.prerequisites) || _report(_exceptionable, {
429
+ path: _path + ".prerequisites",
430
+ expected: "Array<AutoBeOpenApi.IPrerequisite>",
431
+ value: input.prerequisites
432
+ })) && input.prerequisites.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
433
+ path: _path + ".prerequisites[" + _index4 + "]",
434
+ expected: "AutoBeOpenApi.IPrerequisite",
435
+ value: elem
436
+ })) && _vo3(elem, _path + ".prerequisites[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
437
+ path: _path + ".prerequisites[" + _index4 + "]",
438
+ expected: "AutoBeOpenApi.IPrerequisite",
439
+ value: elem
440
+ })).every(flag => flag) || _report(_exceptionable, {
441
+ path: _path + ".prerequisites",
442
+ expected: "Array<AutoBeOpenApi.IPrerequisite>",
443
+ value: input.prerequisites
444
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
445
+ path: _path + ".path",
446
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
447
+ value: input.path
448
+ })) || _report(_exceptionable, {
449
+ path: _path + ".path",
450
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
451
+ value: input.path
452
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
453
+ path: _path + ".method",
454
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
455
+ value: input.method
456
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
457
+ path: _path + ".endpoint",
458
+ expected: "AutoBeOpenApi.IEndpoint",
459
+ value: input.endpoint
460
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
461
+ path: _path + ".endpoint",
462
+ expected: "AutoBeOpenApi.IEndpoint",
463
+ value: input.endpoint
464
+ }), "string" === typeof input.description || _report(_exceptionable, {
465
+ path: _path + ".description",
466
+ expected: "string",
467
+ value: input.description
468
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
469
+ if (false === __is(input)) {
470
+ errors = [];
471
+ _report = __typia_transform__validateReport._validateReport(errors);
472
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
473
+ path: _path + "",
474
+ expected: "IAutoBeInterfacePrerequisitesApplication.IProps",
475
+ value: input
476
+ })) && _vo0(input, _path + "", true) || _report(true, {
477
+ path: _path + "",
478
+ expected: "IAutoBeInterfacePrerequisitesApplication.IProps",
479
+ value: input
480
+ }))(input, "$input", true);
481
+ const success = 0 === errors.length;
482
+ return success ? {
483
+ success,
484
+ data: input
485
+ } : {
486
+ success,
487
+ errors,
488
+ data: input
489
+ };
490
+ }
491
+ return {
492
+ success: true,
493
+ data: input
494
+ };
495
+ }; })()
496
+ }
497
+ ]
498
+ };
499
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
500
+ validate: {
501
+ makePrerequisite: validate,
502
+ },
503
+ }), { equals: false }));
504
+ return application;
505
+ })(),
506
+ claude: (validate) => (() => {
507
+ const application = {
508
+ model: "claude",
509
+ options: {
510
+ reference: true,
511
+ separate: null
512
+ },
513
+ functions: [
514
+ {
515
+ name: "makePrerequisite",
516
+ parameters: {
517
+ description: "Current Type: {@link IAutoBeInterfacePrerequisitesApplication.IProps}",
518
+ type: "object",
519
+ properties: {
520
+ operations: {
521
+ description: "Target operations requiring prerequisite analysis.\n\nEach operation will be analyzed for dependency requirements and returned\nwith appropriate prerequisites from Available API Operations.",
522
+ type: "array",
523
+ items: {
524
+ $ref: "#/$defs/IAutoBeInterfacePrerequisitesApplication.IOperation"
525
+ }
526
+ }
527
+ },
528
+ required: [
529
+ "operations"
530
+ ],
531
+ additionalProperties: false,
532
+ $defs: {
533
+ "IAutoBeInterfacePrerequisitesApplication.IOperation": {
534
+ description: "Operation with its analyzed prerequisite dependencies.\n\nRepresents a single API operation and its complete prerequisite chain\nneeded for successful execution.",
535
+ type: "object",
536
+ properties: {
537
+ endpoint: {
538
+ description: "The API endpoint being analyzed.\n\nIdentifies the specific operation (method + path) that needs\nprerequisites.",
539
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
540
+ },
541
+ prerequisites: {
542
+ description: "Required prerequisite operations.\n\nList of API operations that must be successfully executed before this\noperation can be performed. Based on resource creation dependencies and\nexistence validations from the analysis.",
543
+ type: "array",
544
+ items: {
545
+ $ref: "#/$defs/AutoBeOpenApi.IPrerequisite"
546
+ }
547
+ }
548
+ },
549
+ required: [
550
+ "endpoint",
551
+ "prerequisites"
552
+ ]
553
+ },
554
+ "AutoBeOpenApi.IEndpoint": {
555
+ description: "API endpoint information.",
556
+ type: "object",
557
+ properties: {
558
+ path: {
559
+ 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)",
560
+ type: "string",
561
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
562
+ },
563
+ method: {
564
+ description: "HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., \"get\",\nnot \"GET\").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record",
565
+ oneOf: [
566
+ {
567
+ "const": "get"
568
+ },
569
+ {
570
+ "const": "post"
571
+ },
572
+ {
573
+ "const": "put"
574
+ },
575
+ {
576
+ "const": "delete"
577
+ },
578
+ {
579
+ "const": "patch"
580
+ }
581
+ ]
582
+ }
583
+ },
584
+ required: [
585
+ "path",
586
+ "method"
587
+ ]
588
+ },
589
+ "AutoBeOpenApi.IPrerequisite": {
590
+ description: "Prerequisite API operation dependency.\n\n`IPrerequisite` defines a dependency relationship between API operations,\nspecifying that certain endpoints must be successfully called before the\ncurrent operation can proceed. This ensures proper resource validation,\nstate checking, and data availability in complex API workflows.\n\n## CRITICAL WARNING: Authentication is NOT a Prerequisite\n\n**NEVER use prerequisites for authentication or authorization checks!**\n\nPrerequisites are ONLY for business logic dependencies such as:\n\n- Checking if a resource exists\n- Verifying resource state\n- Loading required data\n\nDo NOT create prerequisites for:\n\n- Login/authentication endpoints\n- Token validation\n- Permission checks\n- User authorization verification\n\nAuthentication is handled separately via the `authorizationRole` field on\nthe operation itself. Mixing authentication with business prerequisites\ncreates confusion and incorrect test scenarios.\n\n## Core Concept\n\nPrerequisites create an execution dependency graph for API operations. They\nexplicitly declare which APIs must succeed before attempting the current\noperation, preventing invalid states and ensuring data consistency.\n\n## Structure\n\nEach prerequisite consists of:\n\n1. **endpoint**: The API endpoint that must be called first\n2. **description**: Clear explanation of why this prerequisite is required\n\n## Common Use Cases\n\n### 1. Resource Existence Validation\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/users/{userId}\", \"method\": \"get\" },\n \"description\": \"User must exist before updating their profile\"\n}\n```\n\n### 2. Parent-Child Relationships\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/posts/{postId}\", \"method\": \"get\" },\n \"description\": \"Post must exist before adding comments\"\n}\n```\n\n### 3. State Prerequisites\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/orders/{orderId}/status\", \"method\": \"get\" },\n \"description\": \"Order must be in 'confirmed' state before shipping\"\n}\n```\n\n### 4. Business Logic Dependencies\n\n```typescript\n{\n \"endpoint\": {\n \"path\": \"/inventory/{productId}/stock\",\n \"method\": \"get\"\n },\n \"description\": \"Product must have sufficient stock before creating order\"\n}\n```\n\n## Implementation Guidelines\n\n1. **Clear Descriptions**: Always explain WHY the prerequisite is needed\n2. **Minimal Dependencies**: Only include truly necessary prerequisites\n3. **Logical Order**: If multiple prerequisites exist, order them logically\n4. **Error Context**: Description should help understand failure scenarios\n5. **No Authentication**: Prerequisites must NEVER be authentication checks\n\n## Test Generation Usage\n\nThe Test Agent utilizes prerequisites to:\n\n- Set up test data in the correct sequence\n- Generate realistic test scenarios\n- Create both positive and negative test cases\n- Ensure proper cleanup in reverse dependency order\n\n## Best Practices\n\n- Keep prerequisite chains as short as possible for performance\n- Consider caching prerequisite results when safe to do so\n- Ensure prerequisite descriptions are specific, not generic\n- Validate that circular dependencies don't exist\n- Document any side effects of prerequisite calls\n- NEVER use for authentication/authorization validation",
591
+ type: "object",
592
+ properties: {
593
+ endpoint: {
594
+ description: "The API endpoint that must be called before the main operation.\n\nThis specifies the exact HTTP method and path of the prerequisite API.\nThe endpoint must be a valid operation defined elsewhere in the API\nspecification. Path parameters in the prerequisite endpoint can reference\nthe same parameters available in the main operation.",
595
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
596
+ },
597
+ description: {
598
+ description: "Clear description of why this prerequisite is required.\n\nThis description should explain:\n\n- What validation or check this prerequisite performs\n- What state or condition must be satisfied\n- What happens if this prerequisite fails\n- Any specific data from the prerequisite used by the main operation\n\nThe description helps developers understand the dependency relationship\nand aids in debugging when prerequisites fail.\n\nGuidelines for good descriptions:\n\n- Be specific about the requirement (e.g., \"must be in 'active' state\")\n- Explain business logic constraints (e.g., \"budget must not be exceeded\")\n- Explain data dependencies (e.g., \"provides pricing information needed\")\n- Keep it concise but complete\n\n> MUST be written in English. Never use other languages.",
599
+ type: "string"
600
+ }
601
+ },
602
+ required: [
603
+ "endpoint",
604
+ "description"
605
+ ]
606
+ }
607
+ }
608
+ },
609
+ description: "Generate prerequisites for the provided operations.\n\nAnalyzes each operation's dependencies and returns the complete list with\ntheir required prerequisite chains based on resource relationships.",
610
+ validate: (() => { const _io0 = input => Array.isArray(input.operations) && input.operations.every(elem => "object" === typeof elem && null !== elem && _io1(elem)); const _io1 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io3(elem))); const _io2 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && "string" === typeof input.description; const _vo0 = (input, _path, _exceptionable = true) => [(Array.isArray(input.operations) || _report(_exceptionable, {
611
+ path: _path + ".operations",
612
+ expected: "Array<IAutoBeInterfacePrerequisitesApplication.IOperation>",
613
+ value: input.operations
614
+ })) && input.operations.map((elem, _index3) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
615
+ path: _path + ".operations[" + _index3 + "]",
616
+ expected: "IAutoBeInterfacePrerequisitesApplication.IOperation",
617
+ value: elem
618
+ })) && _vo1(elem, _path + ".operations[" + _index3 + "]", true && _exceptionable) || _report(_exceptionable, {
619
+ path: _path + ".operations[" + _index3 + "]",
620
+ expected: "IAutoBeInterfacePrerequisitesApplication.IOperation",
621
+ value: elem
622
+ })).every(flag => flag) || _report(_exceptionable, {
623
+ path: _path + ".operations",
624
+ expected: "Array<IAutoBeInterfacePrerequisitesApplication.IOperation>",
625
+ value: input.operations
626
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
627
+ path: _path + ".endpoint",
628
+ expected: "AutoBeOpenApi.IEndpoint",
629
+ value: input.endpoint
630
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
631
+ path: _path + ".endpoint",
632
+ expected: "AutoBeOpenApi.IEndpoint",
633
+ value: input.endpoint
634
+ }), (Array.isArray(input.prerequisites) || _report(_exceptionable, {
635
+ path: _path + ".prerequisites",
636
+ expected: "Array<AutoBeOpenApi.IPrerequisite>",
637
+ value: input.prerequisites
638
+ })) && input.prerequisites.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
639
+ path: _path + ".prerequisites[" + _index4 + "]",
640
+ expected: "AutoBeOpenApi.IPrerequisite",
641
+ value: elem
642
+ })) && _vo3(elem, _path + ".prerequisites[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
643
+ path: _path + ".prerequisites[" + _index4 + "]",
644
+ expected: "AutoBeOpenApi.IPrerequisite",
645
+ value: elem
646
+ })).every(flag => flag) || _report(_exceptionable, {
647
+ path: _path + ".prerequisites",
648
+ expected: "Array<AutoBeOpenApi.IPrerequisite>",
649
+ value: input.prerequisites
650
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
651
+ path: _path + ".path",
652
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
653
+ value: input.path
654
+ })) || _report(_exceptionable, {
655
+ path: _path + ".path",
656
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
657
+ value: input.path
658
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
659
+ path: _path + ".method",
660
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
661
+ value: input.method
662
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
663
+ path: _path + ".endpoint",
664
+ expected: "AutoBeOpenApi.IEndpoint",
665
+ value: input.endpoint
666
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
667
+ path: _path + ".endpoint",
668
+ expected: "AutoBeOpenApi.IEndpoint",
669
+ value: input.endpoint
670
+ }), "string" === typeof input.description || _report(_exceptionable, {
671
+ path: _path + ".description",
672
+ expected: "string",
673
+ value: input.description
674
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
675
+ if (false === __is(input)) {
676
+ errors = [];
677
+ _report = __typia_transform__validateReport._validateReport(errors);
678
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
679
+ path: _path + "",
680
+ expected: "IAutoBeInterfacePrerequisitesApplication.IProps",
681
+ value: input
682
+ })) && _vo0(input, _path + "", true) || _report(true, {
683
+ path: _path + "",
684
+ expected: "IAutoBeInterfacePrerequisitesApplication.IProps",
685
+ value: input
686
+ }))(input, "$input", true);
687
+ const success = 0 === errors.length;
688
+ return success ? {
689
+ success,
690
+ data: input
691
+ } : {
692
+ success,
693
+ errors,
694
+ data: input
695
+ };
696
+ }
697
+ return {
698
+ success: true,
699
+ data: input
700
+ };
701
+ }; })()
702
+ }
703
+ ]
704
+ };
705
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
706
+ validate: {
707
+ makePrerequisite: validate,
708
+ },
709
+ }), { equals: false }));
710
+ return application;
711
+ })(),
712
+ };
713
+ //# sourceMappingURL=orchestrateInterfacePrerequisites.js.map