@autobe/agent 0.30.4-dev.20260324 → 0.30.5

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 (221) hide show
  1. package/LICENSE +661 -661
  2. package/lib/constants/AutoBeSystemPromptConstant.d.ts +5 -4
  3. package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
  4. package/lib/describe/image/orchestrateImageDescribeDraft.js +6 -6
  5. package/lib/describe/image/structures/IAutoBeImageDescribeDraftApplication.d.ts +12 -63
  6. package/lib/index.mjs +2918 -2842
  7. package/lib/index.mjs.map +1 -1
  8. package/lib/orchestrate/analyze/orchestrateAnalyzeExtractDecisions.js +8 -8
  9. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +36 -37
  10. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  11. package/lib/orchestrate/analyze/orchestrateAnalyzeScenarioReview.js +7 -7
  12. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js +55 -42
  13. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js.map +1 -1
  14. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js +67 -54
  15. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js.map +1 -1
  16. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js +24 -25
  17. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js.map +1 -1
  18. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js +24 -25
  19. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js.map +1 -1
  20. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js +30 -31
  21. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js.map +1 -1
  22. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeExtractDecisionsApplication.d.ts +14 -52
  23. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +23 -96
  24. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.d.ts +12 -40
  25. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.d.ts +30 -88
  26. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.d.ts +35 -94
  27. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.d.ts +23 -93
  28. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.d.ts +15 -88
  29. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js +76 -31
  30. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js.map +1 -1
  31. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +7 -7
  32. package/lib/orchestrate/common/structures/IAnalysisSectionEntry.d.ts +2 -8
  33. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.d.ts +8 -50
  34. package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.d.ts +1 -9
  35. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.d.ts +4 -23
  36. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.d.ts +3 -21
  37. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.d.ts +4 -22
  38. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.d.ts +4 -22
  39. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.d.ts +5 -17
  40. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.d.ts +7 -76
  41. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.d.ts +6 -89
  42. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.d.ts +7 -93
  43. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.d.ts +3 -22
  44. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.d.ts +3 -22
  45. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js +114 -139
  46. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js.map +1 -1
  47. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +90 -91
  48. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js.map +1 -1
  49. package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js +58 -59
  50. package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js.map +1 -1
  51. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +58 -59
  52. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js.map +1 -1
  53. package/lib/orchestrate/interface/orchestrateInterfaceOperation.js +108 -132
  54. package/lib/orchestrate/interface/orchestrateInterfaceOperation.js.map +1 -1
  55. package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js +72 -72
  56. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +76 -77
  57. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js.map +1 -1
  58. package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js +130 -159
  59. package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js.map +1 -1
  60. package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js +126 -155
  61. package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js.map +1 -1
  62. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js +114 -142
  63. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js.map +1 -1
  64. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +5 -5
  65. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +100 -129
  66. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  67. package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js +120 -149
  68. package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js.map +1 -1
  69. package/lib/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.d.ts +10 -97
  70. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.d.ts +14 -83
  71. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.d.ts +12 -90
  72. package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +12 -80
  73. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +21 -116
  74. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.d.ts +24 -112
  75. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.d.ts +11 -83
  76. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +11 -76
  77. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.d.ts +18 -96
  78. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.d.ts +11 -76
  79. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.d.ts +25 -107
  80. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.d.ts +5 -31
  81. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.d.ts +6 -42
  82. package/lib/orchestrate/interface/utils/AutoBeJsonSchemaValidator.js +283 -283
  83. package/lib/orchestrate/prisma/orchestratePrismaAuthorization.js +41 -41
  84. package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js +62 -63
  85. package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js.map +1 -1
  86. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +40 -41
  87. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  88. package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js +60 -61
  89. package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js.map +1 -1
  90. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +112 -116
  91. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  92. package/lib/orchestrate/prisma/orchestratePrismaGroup.js +48 -49
  93. package/lib/orchestrate/prisma/orchestratePrismaGroup.js.map +1 -1
  94. package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js +70 -71
  95. package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js.map +1 -1
  96. package/lib/orchestrate/prisma/orchestratePrismaSchema.js +118 -122
  97. package/lib/orchestrate/prisma/orchestratePrismaSchema.js.map +1 -1
  98. package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js +126 -131
  99. package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js.map +1 -1
  100. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.d.ts +22 -99
  101. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.d.ts +12 -109
  102. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.d.ts +14 -100
  103. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.d.ts +15 -108
  104. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.d.ts +24 -106
  105. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.d.ts +13 -76
  106. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.d.ts +13 -111
  107. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.d.ts +26 -97
  108. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.d.ts +16 -93
  109. package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js +1 -1
  110. package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js.map +1 -1
  111. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js +1 -1
  112. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js.map +1 -1
  113. package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js +20 -2
  114. package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js.map +1 -1
  115. package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js +22 -2
  116. package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js.map +1 -1
  117. package/lib/orchestrate/realize/internal/orchestrateRealizeCorrectCasting.js +7 -7
  118. package/lib/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.js +86 -6
  119. package/lib/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.js.map +1 -1
  120. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +38 -38
  121. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +34 -34
  122. package/lib/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.js +38 -38
  123. package/lib/orchestrate/realize/orchestrateRealizeCollectorPlan.js +54 -54
  124. package/lib/orchestrate/realize/orchestrateRealizeCollectorWrite.js +36 -36
  125. package/lib/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.js +44 -44
  126. package/lib/orchestrate/realize/orchestrateRealizeOperationWrite.js +42 -42
  127. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.js +1 -0
  128. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.js.map +1 -1
  129. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.js +46 -46
  130. package/lib/orchestrate/realize/orchestrateRealizeTransformerPlan.js +36 -36
  131. package/lib/orchestrate/realize/orchestrateRealizeTransformerWrite.js +44 -44
  132. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.d.ts +18 -0
  133. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js +167 -8
  134. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js.map +1 -1
  135. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +17 -71
  136. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.d.ts +32 -92
  137. package/lib/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.d.ts +32 -114
  138. package/lib/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.d.ts +29 -106
  139. package/lib/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.d.ts +38 -131
  140. package/lib/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.d.ts +16 -71
  141. package/lib/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.d.ts +16 -73
  142. package/lib/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.d.ts +37 -155
  143. package/lib/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.d.ts +25 -88
  144. package/lib/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.d.ts +48 -181
  145. package/lib/orchestrate/realize/utils/generateTS2339Hints.d.ts +5 -3
  146. package/lib/orchestrate/realize/utils/generateTS2339Hints.js +37 -19
  147. package/lib/orchestrate/realize/utils/generateTS2339Hints.js.map +1 -1
  148. package/lib/orchestrate/test/histories/transformTestOperationWriteHistory.js +2 -2
  149. package/lib/orchestrate/test/orchestrateTestScenario.js +22 -22
  150. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +22 -22
  151. package/package.json +5 -5
  152. package/src/AutoBeMockAgent.ts +283 -283
  153. package/src/constants/AutoBeSystemPromptConstant.ts +5 -4
  154. package/src/describe/image/structures/IAutoBeImageDescribeDraftApplication.ts +12 -63
  155. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeExtractDecisionsApplication.ts +14 -52
  156. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +23 -96
  157. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.ts +12 -40
  158. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.ts +30 -88
  159. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.ts +35 -94
  160. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.ts +23 -93
  161. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.ts +15 -88
  162. package/src/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.ts +92 -31
  163. package/src/orchestrate/common/structures/IAnalysisSectionEntry.ts +2 -8
  164. package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +8 -50
  165. package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +1 -9
  166. package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.ts +4 -23
  167. package/src/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.ts +3 -21
  168. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +4 -22
  169. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +4 -22
  170. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.ts +5 -17
  171. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.ts +7 -76
  172. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.ts +6 -89
  173. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.ts +7 -93
  174. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.ts +3 -22
  175. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.ts +3 -22
  176. package/src/orchestrate/interface/orchestrateInterfaceSchemaRefine.ts +291 -291
  177. package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +309 -309
  178. package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.ts +10 -97
  179. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +14 -83
  180. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.ts +12 -90
  181. package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +12 -80
  182. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +21 -116
  183. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.ts +24 -112
  184. package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +11 -83
  185. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +11 -76
  186. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.ts +18 -96
  187. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.ts +11 -76
  188. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.ts +25 -107
  189. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.ts +5 -31
  190. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.ts +6 -42
  191. package/src/orchestrate/interface/utils/AutoBeJsonSchemaValidator.ts +763 -763
  192. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.ts +22 -99
  193. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.ts +12 -109
  194. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.ts +14 -100
  195. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.ts +15 -108
  196. package/src/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.ts +24 -106
  197. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.ts +13 -76
  198. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.ts +13 -111
  199. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.ts +26 -97
  200. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.ts +16 -93
  201. package/src/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.ts +21 -1
  202. package/src/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.ts +26 -4
  203. package/src/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.ts +125 -9
  204. package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.ts +1 -0
  205. package/src/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.ts +210 -7
  206. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +17 -71
  207. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.ts +32 -92
  208. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.ts +32 -114
  209. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.ts +29 -106
  210. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.ts +38 -131
  211. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.ts +16 -71
  212. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.ts +16 -73
  213. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.ts +37 -155
  214. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.ts +25 -88
  215. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.ts +48 -181
  216. package/src/orchestrate/realize/utils/generateTS2339Hints.ts +39 -19
  217. package/src/orchestrate/test/experimental/orchestrateTestCorrect.ast +237 -237
  218. package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +322 -322
  219. package/src/orchestrate/test/experimental/transformTestCorrectHistories.ast +52 -52
  220. package/src/structures/IAutoBeVendor.ts +127 -127
  221. package/README.md +0 -261
@@ -106,7 +106,7 @@ function process(ctx, props) {
106
106
  properties: {
107
107
  thinking: {
108
108
  type: "string",
109
- description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on\nyour current state and explain your reasoning:\n\nFor preliminary requests (getAnalysisSections, getDatabaseSchemas, etc.):\n\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature\ncompletion."
109
+ description: "Reasoning about your current state: what's missing (preliminary) or what\nyou accomplished (completion)."
110
110
  },
111
111
  request: {
112
112
  oneOf: [
@@ -152,7 +152,7 @@ function process(ctx, props) {
152
152
  complete: "#/components/schemas/IAutoBeInterfacePrerequisiteApplication.IComplete"
153
153
  }
154
154
  },
155
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas) or final prerequisite analysis (complete). When\npreliminary returns empty array, that type is removed from the union,\nphysically preventing repeated calls."
155
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion."
156
156
  }
157
157
  },
158
158
  required: [
@@ -165,7 +165,7 @@ function process(ctx, props) {
165
165
  properties: {
166
166
  type: {
167
167
  "const": "getAnalysisSections",
168
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisSections\" indicates this is a preliminary\ndata request for individual analysis sections."
168
+ description: "Type discriminator."
169
169
  },
170
170
  sectionIds: {
171
171
  type: "array",
@@ -175,21 +175,21 @@ function process(ctx, props) {
175
175
  },
176
176
  minItems: 1,
177
177
  maxItems: 100,
178
- description: "List of section IDs to retrieve.\n\nThese are sequential integer IDs from the analysis sections catalog. Each\nID maps to a specific ### section in the requirements documents.\n\nCRITICAL: DO NOT request the same section IDs that you have already\nrequested in previous calls."
178
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls."
179
179
  }
180
180
  },
181
181
  required: [
182
182
  "type",
183
183
  "sectionIds"
184
184
  ],
185
- description: "Request to retrieve individual analysis sections by numeric ID.\n\nInstead of loading entire analysis files (~110-120KB each), this loads\nspecific ### sections (~200-600 words each) identified by integer IDs from\nthe section catalog."
185
+ description: "Request to retrieve individual analysis sections by numeric ID."
186
186
  },
187
187
  IAutoBePreliminaryGetDatabaseSchemas: {
188
188
  type: "object",
189
189
  properties: {
190
190
  type: {
191
191
  "const": "getDatabaseSchemas",
192
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getDatabaseSchemas\" indicates this is a preliminary\ndata request for database schemas."
192
+ description: "Type discriminator."
193
193
  },
194
194
  schemaNames: {
195
195
  type: "array",
@@ -197,21 +197,21 @@ function process(ctx, props) {
197
197
  type: "string"
198
198
  },
199
199
  minItems: 1,
200
- description: "List of database table names to retrieve.\n\nTable names from the database schema representing database entities (e.g.,\n\"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls."
200
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls."
201
201
  }
202
202
  },
203
203
  required: [
204
204
  "type",
205
205
  "schemaNames"
206
206
  ],
207
- description: "Request to retrieve database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific database table\nschemas needed for generating type-safe API operations."
207
+ description: "Request to retrieve database schema definitions for context."
208
208
  },
209
209
  IAutoBePreliminaryGetInterfaceOperations: {
210
210
  type: "object",
211
211
  properties: {
212
212
  type: {
213
213
  "const": "getInterfaceOperations",
214
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceOperations\" indicates this is a\npreliminary data request for interface operations."
214
+ description: "Type discriminator."
215
215
  },
216
216
  endpoints: {
217
217
  type: "array",
@@ -219,14 +219,14 @@ function process(ctx, props) {
219
219
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
220
220
  },
221
221
  minItems: 1,
222
- description: "List of existing API operation endpoints to retrieve.\n\nOperations that have been generated in previous phases, containing paths,\nmethods, parameters, and request/response bodies.\n\nCRITICAL: DO NOT request the same endpoints that you have already requested\nin previous calls."
222
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls."
223
223
  }
224
224
  },
225
225
  required: [
226
226
  "type",
227
227
  "endpoints"
228
228
  ],
229
- description: "Request to retrieve existing interface operations for context.\n\nThis type is used in the preliminary phase to request already-generated API\noperations for review, validation, or complementary generation tasks."
229
+ description: "Request to retrieve existing interface operations for context."
230
230
  },
231
231
  "AutoBeOpenApi.IEndpoint": {
232
232
  type: "object",
@@ -234,7 +234,7 @@ function process(ctx, props) {
234
234
  path: {
235
235
  type: "string",
236
236
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
237
- 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)"
237
+ description: "HTTP path of the API operation.\n\nMust start with `/`. Parameters use curly braces: `{paramName}`. Resource\nnames in camelCase. No quotes, spaces, role prefixes (`/admin/`), or API\nversion prefixes (`/api/v1/`).\n\nAllowed characters: letters, digits, `/`, `{`, `}`, `-`, `_`, `.`"
238
238
  },
239
239
  method: {
240
240
  oneOf: [
@@ -254,7 +254,7 @@ function process(ctx, props) {
254
254
  "const": "patch"
255
255
  }
256
256
  ],
257
- 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"
257
+ description: "HTTP method (lowercase only).\n\nUse `patch` (not `get`) when a read operation needs a complex\n{@link requestBody}. `get` cannot have a request body."
258
258
  }
259
259
  },
260
260
  required: [
@@ -268,7 +268,7 @@ function process(ctx, props) {
268
268
  properties: {
269
269
  type: {
270
270
  "const": "getInterfaceSchemas",
271
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceSchemas\" indicates this is a preliminary\ndata request for interface schemas."
271
+ description: "Type discriminator."
272
272
  },
273
273
  typeNames: {
274
274
  type: "array",
@@ -276,21 +276,21 @@ function process(ctx, props) {
276
276
  type: "string"
277
277
  },
278
278
  minItems: 1,
279
- description: "List of schema type names to retrieve.\n\nSchema names from the OpenAPI components.schemas section (e.g., \"IUser\",\n\"IUser.ICreate\", \"IPost.IUpdate\").\n\nCRITICAL: DO NOT request the same type names that you have already\nrequested in previous calls."
279
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls."
280
280
  }
281
281
  },
282
282
  required: [
283
283
  "type",
284
284
  "typeNames"
285
285
  ],
286
- description: "Request to retrieve OpenAPI schema type definitions for context.\n\nThis type is used in the preliminary phase to request specific schema\ndefinitions from components.schemas for review or complementary generation."
286
+ description: "Request to retrieve OpenAPI schema type definitions for context."
287
287
  },
288
288
  IAutoBePreliminaryGetPreviousAnalysisSections: {
289
289
  type: "object",
290
290
  properties: {
291
291
  type: {
292
292
  "const": "getPreviousAnalysisSections",
293
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration."
293
+ description: "Type discriminator."
294
294
  },
295
295
  sectionIds: {
296
296
  type: "array",
@@ -299,21 +299,21 @@ function process(ctx, props) {
299
299
  minimum: 0
300
300
  },
301
301
  minItems: 1,
302
- description: "List of section IDs to retrieve from the previous iteration.\n\nCRITICAL: DO NOT request the same section IDs that you have already\nrequested in previous calls."
302
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls."
303
303
  }
304
304
  },
305
305
  required: [
306
306
  "type",
307
307
  "sectionIds"
308
308
  ],
309
- description: "Request to retrieve individual analysis sections from previous iteration by\nnumeric ID.\n\nSame as {@link IAutoBePreliminaryGetAnalysisSections} but for sections from\nthe previous generation cycle, enabling comparison and consistency checks."
309
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID."
310
310
  },
311
311
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
312
312
  type: "object",
313
313
  properties: {
314
314
  type: {
315
315
  "const": "getPreviousDatabaseSchemas",
316
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPreviousDatabaseSchemas\" indicates this is a\npreliminary data request for database schemas from a previous version."
316
+ description: "Type discriminator."
317
317
  },
318
318
  schemaNames: {
319
319
  type: "array",
@@ -321,21 +321,21 @@ function process(ctx, props) {
321
321
  type: "string"
322
322
  },
323
323
  minItems: 1,
324
- description: "List of database table names to retrieve from the previous version.\n\nThese are table schema names that were generated in a previous version and\nare needed as reference context for the current regeneration.\n\n**Important Notes:**\n\n- These schemas MUST exist in the previous version\n- This function is only available when a previous version exists\n- Used for reference/comparison, not for re-requesting within same execution\n- Table names are in snake_case (e.g., \"shopping_sale\", \"bbs_article\")\n\n**When This Function is Available:**\n\n- When a previous version exists\n- When user requests modifications to existing database schema\n- During correction/regeneration cycles that need previous schema context\n\n**When This Function is NOT Available:**\n\n- During initial generation (no previous version exists)\n- No previous database schemas available for this orchestration task\n\n**Example Table Names:**\n\n- \"users\", \"posts\", \"comments\"\n- \"shopping_sales\", \"shopping_orders\", \"shopping_products\"\n- \"bbs_articles\", \"bbs_article_files\""
324
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls."
325
325
  }
326
326
  },
327
327
  required: [
328
328
  "type",
329
329
  "schemaNames"
330
330
  ],
331
- description: "Request to retrieve database schemas from a previous version.\n\nThis type is used to load database schema definitions that were generated in\na **previous version** of the AutoBE generation pipeline. This is NOT about\nre-requesting schemas within the same execution, but rather accessing\nartifacts from an earlier version.\n\n**Use Case:** When regenerating or modifying the database schema based on\nuser change requests, agents need to reference the previously generated\ndatabase schemas to understand the existing database structure and what needs\nto be modified.\n\n**Key Difference from `getDatabaseSchemas`:**\n\n- `getDatabaseSchemas`: Fetches schemas from the **current version** (the\n version being generated right now)\n- `getPreviousDatabaseSchemas`: Fetches schemas from the **previous version**\n (the last successfully generated version)\n\n**Example Scenario:**\n\n Initial generation:\n - DATABASE phase creates: users, posts, comments tables\n - Generation completes successfully\n\n User: \"Add email verification status to users\"\n\n Regeneration:\n - DATABASE phase starts regeneration\n - Calls getPreviousDatabaseSchemas([\"users\"])\n \u2192 Loads the previous version of users table schema\n - Creates new version with emailVerified field added\n\n**Waterfall + Spiral Pattern:**\n\nThis aligns with AutoBE's regeneration cycles where:\n\n- Compilation failures trigger regeneration with corrections\n- User modifications trigger new versions\n- Previous schemas serve as reference for incremental changes"
331
+ description: "Request to retrieve database schemas from the previous iteration.\n\nLoads database table definitions from the last successfully generated\nversion, used as reference context during regeneration or modification\ncycles."
332
332
  },
333
333
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
334
334
  type: "object",
335
335
  properties: {
336
336
  type: {
337
337
  "const": "getPreviousInterfaceOperations",
338
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPreviousInterfaceOperations\" indicates this is a\npreliminary data request for interface operations from a previous version."
338
+ description: "Type discriminator."
339
339
  },
340
340
  endpoints: {
341
341
  type: "array",
@@ -343,21 +343,21 @@ function process(ctx, props) {
343
343
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
344
344
  },
345
345
  minItems: 1,
346
- description: "List of API operation endpoints to retrieve from the previous version.\n\nThese are endpoint identifiers (method + path) that were generated in a\nprevious version and are needed as reference context for the current\nregeneration.\n\n**Important Notes:**\n\n- These endpoints MUST exist in the previous version\n- This function is only available when a previous version exists\n- Used for reference/comparison, not for re-requesting within same execution\n- Each endpoint is identified by: `{method: \"GET|POST|PUT|DELETE|PATCH\",\n path: \"/api/path\"}`\n\n**When This Function is Available:**\n\n- When a previous version exists\n- When user requests modifications to existing API operations\n- During correction/regeneration cycles that need previous operation context\n\n**When This Function is NOT Available:**\n\n- During initial generation (no previous version exists)\n- No previous interface operations available for this orchestration task\n\n**Endpoint Format:**\n\n- Method: HTTP verb in uppercase (e.g., \"GET\", \"POST\", \"PUT\", \"DELETE\",\n \"PATCH\")\n- Path: OpenAPI path with parameters (e.g., \"/users/{id}\", \"/posts\")\n\n**Example Endpoints:**\n\n- `{method: \"GET\", path: \"/users/{id}\"}`\n- `{method: \"POST\", path: \"/shoppings/orders\"}`\n- `{method: \"PATCH\", path: \"/bbs/articles\"}`"
346
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls."
347
347
  }
348
348
  },
349
349
  required: [
350
350
  "type",
351
351
  "endpoints"
352
352
  ],
353
- description: "Request to retrieve interface operations from a previous version.\n\nThis type is used to load API operation definitions that were generated in a\n**previous version** of the AutoBE generation pipeline. This is NOT about\nre-requesting operations within the same execution, but rather accessing\nartifacts from an earlier version.\n\n**Use Case:** When regenerating or modifying API operations based on user\nchange requests, agents need to reference the previously generated operations\nto understand the existing API design and what needs to be modified.\n\n**Key Difference from `getInterfaceOperations`:**\n\n- `getInterfaceOperations`: Fetches operations from the **current version**\n (the version being generated right now)\n- `getPreviousInterfaceOperations`: Fetches operations from the **previous\n version** (the last successfully generated version)\n\n**Example Scenario:**\n\n Initial generation:\n - INTERFACE phase creates: GET /users, POST /users, GET /users/{id}\n - Generation completes successfully\n\n User: \"Change user creation to require email verification\"\n\n Regeneration:\n - INTERFACE phase starts regeneration\n - Calls getPreviousInterfaceOperations([{method: \"POST\", path: \"/users\"}])\n \u2192 Loads the previous version of POST /users operation\n - Creates new version with emailVerification requirement in request body\n\n**Automatic Schema Loading:**\n\nWhen operations are loaded from the previous version, their associated\nrequest/response body schemas are also referenced, providing complete context\nfor understanding the operation's data structures.\n\n**Waterfall + Spiral Pattern:**\n\nThis aligns with AutoBE's regeneration cycles where:\n\n- Compilation failures trigger regeneration with corrections\n- User modifications trigger new versions\n- Previous operations serve as reference for incremental API changes"
353
+ description: "Request to retrieve interface operations from the previous iteration.\n\nLoads API operation definitions from the last successfully generated version,\nused as reference context during regeneration or modification cycles."
354
354
  },
355
355
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
356
356
  type: "object",
357
357
  properties: {
358
358
  type: {
359
359
  "const": "getPreviousInterfaceSchemas",
360
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPreviousInterfaceSchemas\" indicates this is a\npreliminary data request for interface schemas from a previous version."
360
+ description: "Type discriminator."
361
361
  },
362
362
  typeNames: {
363
363
  type: "array",
@@ -365,40 +365,40 @@ function process(ctx, props) {
365
365
  type: "string"
366
366
  },
367
367
  minItems: 1,
368
- description: "List of schema type names to retrieve from the previous version.\n\nThese are type names from the OpenAPI components.schemas section that were\ngenerated in a previous version and are needed as reference context for the\ncurrent regeneration.\n\n**Important Notes:**\n\n- These type names MUST exist in the previous version\n- This function is only available when a previous version exists\n- Used for reference/comparison, not for re-requesting within same execution\n- Type names follow TypeScript interface naming (e.g., \"IUser\",\n \"IUser.ICreate\")\n\n**When This Function is Available:**\n\n- When a previous version exists\n- When user requests modifications to existing API schemas\n- During correction/regeneration cycles that need previous schema context\n\n**When This Function is NOT Available:**\n\n- During initial generation (no previous version exists)\n- No previous interface schemas available for this orchestration task\n\n**Type Name Examples:**\n\n- Base entity: \"IShoppingSale\", \"IBbsArticle\", \"IUser\"\n- Create DTO: \"IShoppingSale.ICreate\", \"IBbsArticle.ICreate\"\n- Update DTO: \"IShoppingSale.IUpdate\", \"IUser.IUpdate\"\n- Paginated: \"IPageIShoppingSale\", \"IPageIBbsArticle\"\n- Summary: \"IShoppingSale.ISummary\", \"IBbsArticle.ISummary\""
368
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls."
369
369
  }
370
370
  },
371
371
  required: [
372
372
  "type",
373
373
  "typeNames"
374
374
  ],
375
- description: "Request to retrieve interface schemas from a previous version.\n\nThis type is used to load OpenAPI schema definitions (DTOs from\ncomponents.schemas) that were generated in a **previous version** of the\nAutoBE generation pipeline. This is NOT about re-requesting schemas within\nthe same execution, but rather accessing artifacts from an earlier version.\n\n**Use Case:** When regenerating or modifying API schemas based on user change\nrequests, agents need to reference the previously generated schemas to\nunderstand the existing DTO structure and what needs to be modified.\n\n**Key Difference from `getInterfaceSchemas`:**\n\n- `getInterfaceSchemas`: Fetches schemas from the **current version** (the\n version being generated right now)\n- `getPreviousInterfaceSchemas`: Fetches schemas from the **previous version**\n (the last successfully generated version)\n\n**Example Scenario:**\n\n Initial generation:\n - INTERFACE phase creates: IUser, IUser.ICreate, IUser.IUpdate, IPost\n - Generation completes successfully\n\n User: \"Add phone number to user profile\"\n\n Regeneration:\n - INTERFACE phase starts regeneration\n - Calls getPreviousInterfaceSchemas([\"IUser\", \"IUser.IUpdate\"])\n \u2192 Loads the previous versions of these schemas\n - Creates new versions with phoneNumber property added\n\n**Automatic Dependency Loading:**\n\nWhen schemas are loaded from the previous version, their referenced schemas\n(via `$ref`) are also available, providing complete type dependency context\nfor understanding the schema structure.\n\n**Schema Type Naming Convention:**\n\n- Entity schemas: `IEntityName` (e.g., \"IUser\", \"IPost\", \"IShoppingSale\")\n- Nested DTOs: `IEntityName.ISubType` (e.g., \"IUser.ICreate\", \"IPost.IUpdate\")\n- Response wrappers: `IPage<IEntityName>` (e.g., \"IPageIUser\", \"IPageIPost\")\n- Summary types: `IEntityName.ISummary` (e.g., \"IBbsArticle.ISummary\")\n- Authorized types: `IEntityName.IAuthorized` (e.g., \"IUser.IAuthorized\")\n\n**Waterfall + Spiral Pattern:**\n\nThis aligns with AutoBE's regeneration cycles where:\n\n- Compilation failures trigger regeneration with corrections\n- User modifications trigger new versions\n- Previous schemas serve as reference for incremental DTO changes"
375
+ description: "Request to retrieve interface schemas from the previous iteration.\n\nLoads OpenAPI schema definitions (DTOs) from the last successfully generated\nversion, used as reference context during regeneration or modification\ncycles."
376
376
  },
377
377
  "IAutoBeInterfacePrerequisiteApplication.IComplete": {
378
378
  type: "object",
379
379
  properties: {
380
380
  type: {
381
381
  "const": "complete",
382
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request."
382
+ description: "Type discriminator for completion request."
383
383
  },
384
384
  analysis: {
385
385
  type: "string",
386
- description: "Analysis of the operation's resource dependencies.\n\nBefore determining prerequisites, analyze what you know:\n\n- What resources does this operation require to exist?\n- What foreign key relationships affect this operation?\n- What path parameters imply resource dependencies?\n- What request body fields reference other resources?"
386
+ description: "Analysis of the operation's resource dependencies."
387
387
  },
388
388
  rationale: {
389
389
  type: "string",
390
- description: "Rationale for the prerequisite chain decisions.\n\nExplain why you selected these prerequisites:\n\n- Why is each prerequisite operation necessary?\n- What resource must exist before this operation can succeed?\n- What is the correct ordering of prerequisite operations?\n- What prerequisites were excluded and why?"
390
+ description: "Rationale for the prerequisite chain decisions."
391
391
  },
392
392
  endpoint: {
393
393
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint",
394
- description: "The API endpoint being analyzed.\n\nIdentifies the specific operation (method + path) that needs\nprerequisites."
394
+ description: "The API endpoint (method + path) being analyzed."
395
395
  },
396
396
  prerequisites: {
397
397
  type: "array",
398
398
  items: {
399
399
  $ref: "#/components/schemas/AutoBeOpenApi.IPrerequisite"
400
400
  },
401
- 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."
401
+ description: "Required prerequisite operations that must execute before this operation."
402
402
  }
403
403
  },
404
404
  required: [
@@ -408,25 +408,25 @@ function process(ctx, props) {
408
408
  "endpoint",
409
409
  "prerequisites"
410
410
  ],
411
- description: "Request to analyze and generate API operation prerequisites.\n\nExecutes prerequisite analysis to determine which Available API Operations\nmust be executed before the target operation based on resource creation\ndependencies and existence validations."
411
+ description: "Request to analyze and generate API operation prerequisites."
412
412
  },
413
413
  "AutoBeOpenApi.IPrerequisite": {
414
414
  type: "object",
415
415
  properties: {
416
416
  endpoint: {
417
417
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint",
418
- 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."
418
+ description: "The API endpoint that must be called first."
419
419
  },
420
420
  description: {
421
421
  type: "string",
422
- 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."
422
+ description: "Why this prerequisite is required (specific condition or state).\n\n> MUST be written in English. Never use other languages."
423
423
  }
424
424
  },
425
425
  required: [
426
426
  "endpoint",
427
427
  "description"
428
428
  ],
429
- description: "Prerequisite API operation dependency.\n\n`IPrerequisite` defines a dependency relationship between API operations,\nspecifying that certain endpoints must be successfully called before the\ncurrent operation can proceed. This ensures proper resource validation,\nstate checking, and data availability in complex API workflows.\n\n## CRITICAL WARNING: Authentication is NOT a Prerequisite\n\n**NEVER use prerequisites for authentication or authorization checks!**\n\nPrerequisites are ONLY for business logic dependencies such as:\n\n- Checking if a resource exists\n- Verifying resource state\n- Loading required data\n\nDo NOT create prerequisites for:\n\n- Login/authentication endpoints\n- Token validation\n- Permission checks\n- User authorization verification\n\nAuthentication is handled separately via the `authorizationActor` field on\nthe operation itself. Mixing authentication with business prerequisites\ncreates confusion and incorrect test scenarios.\n\n## Core Concept\n\nPrerequisites create an execution dependency graph for API operations. They\nexplicitly declare which APIs must succeed before attempting the current\noperation, preventing invalid states and ensuring data consistency.\n\n## Structure\n\nEach prerequisite consists of:\n\n1. **endpoint**: The API endpoint that must be called first\n2. **description**: Clear explanation of why this prerequisite is required\n\n## Common Use Cases\n\n### 1. Resource Existence Validation\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/users/{userId}\", \"method\": \"get\" },\n \"description\": \"User must exist before updating their profile\"\n}\n```\n\n### 2. Parent-Child Relationships\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/posts/{postId}\", \"method\": \"get\" },\n \"description\": \"Post must exist before adding comments\"\n}\n```\n\n### 3. State Prerequisites\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/orders/{orderId}/status\", \"method\": \"get\" },\n \"description\": \"Order must be in 'confirmed' state before shipping\"\n}\n```\n\n### 4. Business Logic Dependencies\n\n```typescript\n{\n \"endpoint\": {\n \"path\": \"/inventory/{productId}/stock\",\n \"method\": \"get\"\n },\n \"description\": \"Product must have sufficient stock before creating order\"\n}\n```\n\n## Implementation Guidelines\n\n1. **Clear Descriptions**: Always explain WHY the prerequisite is needed\n2. **Minimal Dependencies**: Only include truly necessary prerequisites\n3. **Logical Order**: If multiple prerequisites exist, order them logically\n4. **Error Context**: Description should help understand failure scenarios\n5. **No Authentication**: Prerequisites must NEVER be authentication checks\n\n## Test Generation Usage\n\nThe Test Agent utilizes prerequisites to:\n\n- Set up test data in the correct sequence\n- Generate realistic test scenarios\n- Create both positive and negative test cases\n- Ensure proper cleanup in reverse dependency order\n\n## Best Practices\n\n- Keep prerequisite chains as short as possible for performance\n- Consider caching prerequisite results when safe to do so\n- Ensure prerequisite descriptions are specific, not generic\n- Validate that circular dependencies don't exist\n- Document any side effects of prerequisite calls\n- NEVER use for authentication/authorization validation"
429
+ description: "Prerequisite API operation that must succeed before the main operation.\n\nONLY for business logic dependencies (resource existence, state checks,\ndata availability). NEVER for authentication or authorization -- those are\nhandled via `authorizationActor`.\n\nKeep prerequisite chains minimal. Descriptions should explain WHY the\ndependency is needed."
430
430
  }
431
431
  }
432
432
  },
@@ -437,14 +437,13 @@ function process(ctx, props) {
437
437
  parameters: [
438
438
  {
439
439
  name: "props",
440
- description: " Request containing either preliminary data request or complete\ntask",
441
440
  required: true,
442
441
  schema: {
443
442
  $ref: "#/components/schemas/IAutoBeInterfacePrerequisiteApplication.IProps"
444
443
  }
445
444
  }
446
445
  ],
447
- description: "Process prerequisite analysis task or preliminary data requests.\n\nAnalyzes a single operation's dependencies and returns the complete\nprerequisite chain based on resource relationships."
446
+ description: "Process task or retrieve preliminary data."
448
447
  }
449
448
  ]
450
449
  },
@@ -870,11 +869,11 @@ function createController(props) {
870
869
  type: "object",
871
870
  properties: {
872
871
  thinking: {
873
- description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on\nyour current state and explain your reasoning:\n\nFor preliminary requests (getAnalysisSections, getDatabaseSchemas, etc.):\n\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature\ncompletion.",
872
+ description: "Reasoning about your current state: what's missing (preliminary) or what\nyou accomplished (completion).",
874
873
  type: "string"
875
874
  },
876
875
  request: {
877
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas) or final prerequisite analysis (complete). When\npreliminary returns empty array, that type is removed from the union,\nphysically preventing repeated calls.",
876
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion.",
878
877
  anyOf: [
879
878
  {
880
879
  $ref: "#/$defs/IAutoBePreliminaryGetAnalysisSections"
@@ -927,18 +926,18 @@ function createController(props) {
927
926
  additionalProperties: false,
928
927
  $defs: {
929
928
  IAutoBePreliminaryGetAnalysisSections: {
930
- description: "Request to retrieve individual analysis sections by numeric ID.\n\nInstead of loading entire analysis files (~110-120KB each), this loads\nspecific ### sections (~200-600 words each) identified by integer IDs from\nthe section catalog.",
929
+ description: "Request to retrieve individual analysis sections by numeric ID.",
931
930
  type: "object",
932
931
  properties: {
933
932
  type: {
934
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisSections\" indicates this is a preliminary\ndata request for individual analysis sections.",
933
+ description: "Type discriminator.",
935
934
  type: "string",
936
935
  "enum": [
937
936
  "getAnalysisSections"
938
937
  ]
939
938
  },
940
939
  sectionIds: {
941
- description: "List of section IDs to retrieve.\n\nThese are sequential integer IDs from the analysis sections catalog. Each\nID maps to a specific ### section in the requirements documents.\n\nCRITICAL: DO NOT request the same section IDs that you have already\nrequested in previous calls.",
940
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls.",
942
941
  type: "array",
943
942
  items: {
944
943
  type: "integer",
@@ -954,18 +953,18 @@ function createController(props) {
954
953
  ]
955
954
  },
956
955
  IAutoBePreliminaryGetDatabaseSchemas: {
957
- description: "Request to retrieve database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific database table\nschemas needed for generating type-safe API operations.",
956
+ description: "Request to retrieve database schema definitions for context.",
958
957
  type: "object",
959
958
  properties: {
960
959
  type: {
961
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getDatabaseSchemas\" indicates this is a preliminary\ndata request for database schemas.",
960
+ description: "Type discriminator.",
962
961
  type: "string",
963
962
  "enum": [
964
963
  "getDatabaseSchemas"
965
964
  ]
966
965
  },
967
966
  schemaNames: {
968
- description: "List of database table names to retrieve.\n\nTable names from the database schema representing database entities (e.g.,\n\"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls.",
967
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls.",
969
968
  type: "array",
970
969
  items: {
971
970
  type: "string"
@@ -979,18 +978,18 @@ function createController(props) {
979
978
  ]
980
979
  },
981
980
  IAutoBePreliminaryGetInterfaceOperations: {
982
- description: "Request to retrieve existing interface operations for context.\n\nThis type is used in the preliminary phase to request already-generated API\noperations for review, validation, or complementary generation tasks.",
981
+ description: "Request to retrieve existing interface operations for context.",
983
982
  type: "object",
984
983
  properties: {
985
984
  type: {
986
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceOperations\" indicates this is a\npreliminary data request for interface operations.",
985
+ description: "Type discriminator.",
987
986
  type: "string",
988
987
  "enum": [
989
988
  "getInterfaceOperations"
990
989
  ]
991
990
  },
992
991
  endpoints: {
993
- description: "List of existing API operation endpoints to retrieve.\n\nOperations that have been generated in previous phases, containing paths,\nmethods, parameters, and request/response bodies.\n\nCRITICAL: DO NOT request the same endpoints that you have already requested\nin previous calls.",
992
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls.",
994
993
  type: "array",
995
994
  items: {
996
995
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -1008,12 +1007,12 @@ function createController(props) {
1008
1007
  type: "object",
1009
1008
  properties: {
1010
1009
  path: {
1011
- 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)",
1010
+ description: "HTTP path of the API operation.\n\nMust start with `/`. Parameters use curly braces: `{paramName}`. Resource\nnames in camelCase. No quotes, spaces, role prefixes (`/admin/`), or API\nversion prefixes (`/api/v1/`).\n\nAllowed characters: letters, digits, `/`, `{`, `}`, `-`, `_`, `.`",
1012
1011
  type: "string",
1013
1012
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
1014
1013
  },
1015
1014
  method: {
1016
- 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",
1015
+ description: "HTTP method (lowercase only).\n\nUse `patch` (not `get`) when a read operation needs a complex\n{@link requestBody}. `get` cannot have a request body.",
1017
1016
  type: "string",
1018
1017
  "enum": [
1019
1018
  "get",
@@ -1030,18 +1029,18 @@ function createController(props) {
1030
1029
  ]
1031
1030
  },
1032
1031
  IAutoBePreliminaryGetInterfaceSchemas: {
1033
- description: "Request to retrieve OpenAPI schema type definitions for context.\n\nThis type is used in the preliminary phase to request specific schema\ndefinitions from components.schemas for review or complementary generation.",
1032
+ description: "Request to retrieve OpenAPI schema type definitions for context.",
1034
1033
  type: "object",
1035
1034
  properties: {
1036
1035
  type: {
1037
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceSchemas\" indicates this is a preliminary\ndata request for interface schemas.",
1036
+ description: "Type discriminator.",
1038
1037
  type: "string",
1039
1038
  "enum": [
1040
1039
  "getInterfaceSchemas"
1041
1040
  ]
1042
1041
  },
1043
1042
  typeNames: {
1044
- description: "List of schema type names to retrieve.\n\nSchema names from the OpenAPI components.schemas section (e.g., \"IUser\",\n\"IUser.ICreate\", \"IPost.IUpdate\").\n\nCRITICAL: DO NOT request the same type names that you have already\nrequested in previous calls.",
1043
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls.",
1045
1044
  type: "array",
1046
1045
  items: {
1047
1046
  type: "string"
@@ -1055,18 +1054,18 @@ function createController(props) {
1055
1054
  ]
1056
1055
  },
1057
1056
  IAutoBePreliminaryGetPreviousAnalysisSections: {
1058
- description: "Request to retrieve individual analysis sections from previous iteration by\nnumeric ID.\n\nSame as {@link IAutoBePreliminaryGetAnalysisSections} but for sections from\nthe previous generation cycle, enabling comparison and consistency checks.",
1057
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID.",
1059
1058
  type: "object",
1060
1059
  properties: {
1061
1060
  type: {
1062
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration.",
1061
+ description: "Type discriminator.",
1063
1062
  type: "string",
1064
1063
  "enum": [
1065
1064
  "getPreviousAnalysisSections"
1066
1065
  ]
1067
1066
  },
1068
1067
  sectionIds: {
1069
- description: "List of section IDs to retrieve from the previous iteration.\n\nCRITICAL: DO NOT request the same section IDs that you have already\nrequested in previous calls.",
1068
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls.",
1070
1069
  type: "array",
1071
1070
  items: {
1072
1071
  type: "integer",
@@ -1081,18 +1080,18 @@ function createController(props) {
1081
1080
  ]
1082
1081
  },
1083
1082
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
1084
- description: "Request to retrieve database schemas from a previous version.\n\nThis type is used to load database schema definitions that were generated in\na **previous version** of the AutoBE generation pipeline. This is NOT about\nre-requesting schemas within the same execution, but rather accessing\nartifacts from an earlier version.\n\n**Use Case:** When regenerating or modifying the database schema based on\nuser change requests, agents need to reference the previously generated\ndatabase schemas to understand the existing database structure and what needs\nto be modified.\n\n**Key Difference from `getDatabaseSchemas`:**\n\n- `getDatabaseSchemas`: Fetches schemas from the **current version** (the\n version being generated right now)\n- `getPreviousDatabaseSchemas`: Fetches schemas from the **previous version**\n (the last successfully generated version)\n\n**Example Scenario:**\n\n Initial generation:\n - DATABASE phase creates: users, posts, comments tables\n - Generation completes successfully\n\n User: \"Add email verification status to users\"\n\n Regeneration:\n - DATABASE phase starts regeneration\n - Calls getPreviousDatabaseSchemas([\"users\"])\n \u2192 Loads the previous version of users table schema\n - Creates new version with emailVerified field added\n\n**Waterfall + Spiral Pattern:**\n\nThis aligns with AutoBE's regeneration cycles where:\n\n- Compilation failures trigger regeneration with corrections\n- User modifications trigger new versions\n- Previous schemas serve as reference for incremental changes",
1083
+ description: "Request to retrieve database schemas from the previous iteration.\n\nLoads database table definitions from the last successfully generated\nversion, used as reference context during regeneration or modification\ncycles.",
1085
1084
  type: "object",
1086
1085
  properties: {
1087
1086
  type: {
1088
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPreviousDatabaseSchemas\" indicates this is a\npreliminary data request for database schemas from a previous version.",
1087
+ description: "Type discriminator.",
1089
1088
  type: "string",
1090
1089
  "enum": [
1091
1090
  "getPreviousDatabaseSchemas"
1092
1091
  ]
1093
1092
  },
1094
1093
  schemaNames: {
1095
- description: "List of database table names to retrieve from the previous version.\n\nThese are table schema names that were generated in a previous version and\nare needed as reference context for the current regeneration.\n\n**Important Notes:**\n\n- These schemas MUST exist in the previous version\n- This function is only available when a previous version exists\n- Used for reference/comparison, not for re-requesting within same execution\n- Table names are in snake_case (e.g., \"shopping_sale\", \"bbs_article\")\n\n**When This Function is Available:**\n\n- When a previous version exists\n- When user requests modifications to existing database schema\n- During correction/regeneration cycles that need previous schema context\n\n**When This Function is NOT Available:**\n\n- During initial generation (no previous version exists)\n- No previous database schemas available for this orchestration task\n\n**Example Table Names:**\n\n- \"users\", \"posts\", \"comments\"\n- \"shopping_sales\", \"shopping_orders\", \"shopping_products\"\n- \"bbs_articles\", \"bbs_article_files\"",
1094
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls.",
1096
1095
  type: "array",
1097
1096
  items: {
1098
1097
  type: "string"
@@ -1106,18 +1105,18 @@ function createController(props) {
1106
1105
  ]
1107
1106
  },
1108
1107
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
1109
- description: "Request to retrieve interface operations from a previous version.\n\nThis type is used to load API operation definitions that were generated in a\n**previous version** of the AutoBE generation pipeline. This is NOT about\nre-requesting operations within the same execution, but rather accessing\nartifacts from an earlier version.\n\n**Use Case:** When regenerating or modifying API operations based on user\nchange requests, agents need to reference the previously generated operations\nto understand the existing API design and what needs to be modified.\n\n**Key Difference from `getInterfaceOperations`:**\n\n- `getInterfaceOperations`: Fetches operations from the **current version**\n (the version being generated right now)\n- `getPreviousInterfaceOperations`: Fetches operations from the **previous\n version** (the last successfully generated version)\n\n**Example Scenario:**\n\n Initial generation:\n - INTERFACE phase creates: GET /users, POST /users, GET /users/{id}\n - Generation completes successfully\n\n User: \"Change user creation to require email verification\"\n\n Regeneration:\n - INTERFACE phase starts regeneration\n - Calls getPreviousInterfaceOperations([{method: \"POST\", path: \"/users\"}])\n \u2192 Loads the previous version of POST /users operation\n - Creates new version with emailVerification requirement in request body\n\n**Automatic Schema Loading:**\n\nWhen operations are loaded from the previous version, their associated\nrequest/response body schemas are also referenced, providing complete context\nfor understanding the operation's data structures.\n\n**Waterfall + Spiral Pattern:**\n\nThis aligns with AutoBE's regeneration cycles where:\n\n- Compilation failures trigger regeneration with corrections\n- User modifications trigger new versions\n- Previous operations serve as reference for incremental API changes",
1108
+ description: "Request to retrieve interface operations from the previous iteration.\n\nLoads API operation definitions from the last successfully generated version,\nused as reference context during regeneration or modification cycles.",
1110
1109
  type: "object",
1111
1110
  properties: {
1112
1111
  type: {
1113
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPreviousInterfaceOperations\" indicates this is a\npreliminary data request for interface operations from a previous version.",
1112
+ description: "Type discriminator.",
1114
1113
  type: "string",
1115
1114
  "enum": [
1116
1115
  "getPreviousInterfaceOperations"
1117
1116
  ]
1118
1117
  },
1119
1118
  endpoints: {
1120
- description: "List of API operation endpoints to retrieve from the previous version.\n\nThese are endpoint identifiers (method + path) that were generated in a\nprevious version and are needed as reference context for the current\nregeneration.\n\n**Important Notes:**\n\n- These endpoints MUST exist in the previous version\n- This function is only available when a previous version exists\n- Used for reference/comparison, not for re-requesting within same execution\n- Each endpoint is identified by: `{method: \"GET|POST|PUT|DELETE|PATCH\",\n path: \"/api/path\"}`\n\n**When This Function is Available:**\n\n- When a previous version exists\n- When user requests modifications to existing API operations\n- During correction/regeneration cycles that need previous operation context\n\n**When This Function is NOT Available:**\n\n- During initial generation (no previous version exists)\n- No previous interface operations available for this orchestration task\n\n**Endpoint Format:**\n\n- Method: HTTP verb in uppercase (e.g., \"GET\", \"POST\", \"PUT\", \"DELETE\",\n \"PATCH\")\n- Path: OpenAPI path with parameters (e.g., \"/users/{id}\", \"/posts\")\n\n**Example Endpoints:**\n\n- `{method: \"GET\", path: \"/users/{id}\"}`\n- `{method: \"POST\", path: \"/shoppings/orders\"}`\n- `{method: \"PATCH\", path: \"/bbs/articles\"}`",
1119
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls.",
1121
1120
  type: "array",
1122
1121
  items: {
1123
1122
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -1131,18 +1130,18 @@ function createController(props) {
1131
1130
  ]
1132
1131
  },
1133
1132
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
1134
- description: "Request to retrieve interface schemas from a previous version.\n\nThis type is used to load OpenAPI schema definitions (DTOs from\ncomponents.schemas) that were generated in a **previous version** of the\nAutoBE generation pipeline. This is NOT about re-requesting schemas within\nthe same execution, but rather accessing artifacts from an earlier version.\n\n**Use Case:** When regenerating or modifying API schemas based on user change\nrequests, agents need to reference the previously generated schemas to\nunderstand the existing DTO structure and what needs to be modified.\n\n**Key Difference from `getInterfaceSchemas`:**\n\n- `getInterfaceSchemas`: Fetches schemas from the **current version** (the\n version being generated right now)\n- `getPreviousInterfaceSchemas`: Fetches schemas from the **previous version**\n (the last successfully generated version)\n\n**Example Scenario:**\n\n Initial generation:\n - INTERFACE phase creates: IUser, IUser.ICreate, IUser.IUpdate, IPost\n - Generation completes successfully\n\n User: \"Add phone number to user profile\"\n\n Regeneration:\n - INTERFACE phase starts regeneration\n - Calls getPreviousInterfaceSchemas([\"IUser\", \"IUser.IUpdate\"])\n \u2192 Loads the previous versions of these schemas\n - Creates new versions with phoneNumber property added\n\n**Automatic Dependency Loading:**\n\nWhen schemas are loaded from the previous version, their referenced schemas\n(via `$ref`) are also available, providing complete type dependency context\nfor understanding the schema structure.\n\n**Schema Type Naming Convention:**\n\n- Entity schemas: `IEntityName` (e.g., \"IUser\", \"IPost\", \"IShoppingSale\")\n- Nested DTOs: `IEntityName.ISubType` (e.g., \"IUser.ICreate\", \"IPost.IUpdate\")\n- Response wrappers: `IPage<IEntityName>` (e.g., \"IPageIUser\", \"IPageIPost\")\n- Summary types: `IEntityName.ISummary` (e.g., \"IBbsArticle.ISummary\")\n- Authorized types: `IEntityName.IAuthorized` (e.g., \"IUser.IAuthorized\")\n\n**Waterfall + Spiral Pattern:**\n\nThis aligns with AutoBE's regeneration cycles where:\n\n- Compilation failures trigger regeneration with corrections\n- User modifications trigger new versions\n- Previous schemas serve as reference for incremental DTO changes",
1133
+ description: "Request to retrieve interface schemas from the previous iteration.\n\nLoads OpenAPI schema definitions (DTOs) from the last successfully generated\nversion, used as reference context during regeneration or modification\ncycles.",
1135
1134
  type: "object",
1136
1135
  properties: {
1137
1136
  type: {
1138
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPreviousInterfaceSchemas\" indicates this is a\npreliminary data request for interface schemas from a previous version.",
1137
+ description: "Type discriminator.",
1139
1138
  type: "string",
1140
1139
  "enum": [
1141
1140
  "getPreviousInterfaceSchemas"
1142
1141
  ]
1143
1142
  },
1144
1143
  typeNames: {
1145
- description: "List of schema type names to retrieve from the previous version.\n\nThese are type names from the OpenAPI components.schemas section that were\ngenerated in a previous version and are needed as reference context for the\ncurrent regeneration.\n\n**Important Notes:**\n\n- These type names MUST exist in the previous version\n- This function is only available when a previous version exists\n- Used for reference/comparison, not for re-requesting within same execution\n- Type names follow TypeScript interface naming (e.g., \"IUser\",\n \"IUser.ICreate\")\n\n**When This Function is Available:**\n\n- When a previous version exists\n- When user requests modifications to existing API schemas\n- During correction/regeneration cycles that need previous schema context\n\n**When This Function is NOT Available:**\n\n- During initial generation (no previous version exists)\n- No previous interface schemas available for this orchestration task\n\n**Type Name Examples:**\n\n- Base entity: \"IShoppingSale\", \"IBbsArticle\", \"IUser\"\n- Create DTO: \"IShoppingSale.ICreate\", \"IBbsArticle.ICreate\"\n- Update DTO: \"IShoppingSale.IUpdate\", \"IUser.IUpdate\"\n- Paginated: \"IPageIShoppingSale\", \"IPageIBbsArticle\"\n- Summary: \"IShoppingSale.ISummary\", \"IBbsArticle.ISummary\"",
1144
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls.",
1146
1145
  type: "array",
1147
1146
  items: {
1148
1147
  type: "string"
@@ -1156,30 +1155,30 @@ function createController(props) {
1156
1155
  ]
1157
1156
  },
1158
1157
  "IAutoBeInterfacePrerequisiteApplication.IComplete": {
1159
- description: "Request to analyze and generate API operation prerequisites.\n\nExecutes prerequisite analysis to determine which Available API Operations\nmust be executed before the target operation based on resource creation\ndependencies and existence validations.",
1158
+ description: "Request to analyze and generate API operation prerequisites.",
1160
1159
  type: "object",
1161
1160
  properties: {
1162
1161
  type: {
1163
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
1162
+ description: "Type discriminator for completion request.",
1164
1163
  type: "string",
1165
1164
  "enum": [
1166
1165
  "complete"
1167
1166
  ]
1168
1167
  },
1169
1168
  analysis: {
1170
- description: "Analysis of the operation's resource dependencies.\n\nBefore determining prerequisites, analyze what you know:\n\n- What resources does this operation require to exist?\n- What foreign key relationships affect this operation?\n- What path parameters imply resource dependencies?\n- What request body fields reference other resources?",
1169
+ description: "Analysis of the operation's resource dependencies.",
1171
1170
  type: "string"
1172
1171
  },
1173
1172
  rationale: {
1174
- description: "Rationale for the prerequisite chain decisions.\n\nExplain why you selected these prerequisites:\n\n- Why is each prerequisite operation necessary?\n- What resource must exist before this operation can succeed?\n- What is the correct ordering of prerequisite operations?\n- What prerequisites were excluded and why?",
1173
+ description: "Rationale for the prerequisite chain decisions.",
1175
1174
  type: "string"
1176
1175
  },
1177
1176
  endpoint: {
1178
- description: "The API endpoint being analyzed.\n\nIdentifies the specific operation (method + path) that needs\nprerequisites.",
1177
+ description: "The API endpoint (method + path) being analyzed.",
1179
1178
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
1180
1179
  },
1181
1180
  prerequisites: {
1182
- 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.",
1181
+ description: "Required prerequisite operations that must execute before this operation.",
1183
1182
  type: "array",
1184
1183
  items: {
1185
1184
  $ref: "#/$defs/AutoBeOpenApi.IPrerequisite"
@@ -1195,15 +1194,15 @@ function createController(props) {
1195
1194
  ]
1196
1195
  },
1197
1196
  "AutoBeOpenApi.IPrerequisite": {
1198
- description: "Prerequisite API operation dependency.\n\n`IPrerequisite` defines a dependency relationship between API operations,\nspecifying that certain endpoints must be successfully called before the\ncurrent operation can proceed. This ensures proper resource validation,\nstate checking, and data availability in complex API workflows.\n\n## CRITICAL WARNING: Authentication is NOT a Prerequisite\n\n**NEVER use prerequisites for authentication or authorization checks!**\n\nPrerequisites are ONLY for business logic dependencies such as:\n\n- Checking if a resource exists\n- Verifying resource state\n- Loading required data\n\nDo NOT create prerequisites for:\n\n- Login/authentication endpoints\n- Token validation\n- Permission checks\n- User authorization verification\n\nAuthentication is handled separately via the `authorizationActor` field on\nthe operation itself. Mixing authentication with business prerequisites\ncreates confusion and incorrect test scenarios.\n\n## Core Concept\n\nPrerequisites create an execution dependency graph for API operations. They\nexplicitly declare which APIs must succeed before attempting the current\noperation, preventing invalid states and ensuring data consistency.\n\n## Structure\n\nEach prerequisite consists of:\n\n1. **endpoint**: The API endpoint that must be called first\n2. **description**: Clear explanation of why this prerequisite is required\n\n## Common Use Cases\n\n### 1. Resource Existence Validation\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/users/{userId}\", \"method\": \"get\" },\n \"description\": \"User must exist before updating their profile\"\n}\n```\n\n### 2. Parent-Child Relationships\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/posts/{postId}\", \"method\": \"get\" },\n \"description\": \"Post must exist before adding comments\"\n}\n```\n\n### 3. State Prerequisites\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/orders/{orderId}/status\", \"method\": \"get\" },\n \"description\": \"Order must be in 'confirmed' state before shipping\"\n}\n```\n\n### 4. Business Logic Dependencies\n\n```typescript\n{\n \"endpoint\": {\n \"path\": \"/inventory/{productId}/stock\",\n \"method\": \"get\"\n },\n \"description\": \"Product must have sufficient stock before creating order\"\n}\n```\n\n## Implementation Guidelines\n\n1. **Clear Descriptions**: Always explain WHY the prerequisite is needed\n2. **Minimal Dependencies**: Only include truly necessary prerequisites\n3. **Logical Order**: If multiple prerequisites exist, order them logically\n4. **Error Context**: Description should help understand failure scenarios\n5. **No Authentication**: Prerequisites must NEVER be authentication checks\n\n## Test Generation Usage\n\nThe Test Agent utilizes prerequisites to:\n\n- Set up test data in the correct sequence\n- Generate realistic test scenarios\n- Create both positive and negative test cases\n- Ensure proper cleanup in reverse dependency order\n\n## Best Practices\n\n- Keep prerequisite chains as short as possible for performance\n- Consider caching prerequisite results when safe to do so\n- Ensure prerequisite descriptions are specific, not generic\n- Validate that circular dependencies don't exist\n- Document any side effects of prerequisite calls\n- NEVER use for authentication/authorization validation",
1197
+ description: "Prerequisite API operation that must succeed before the main operation.\n\nONLY for business logic dependencies (resource existence, state checks,\ndata availability). NEVER for authentication or authorization -- those are\nhandled via `authorizationActor`.\n\nKeep prerequisite chains minimal. Descriptions should explain WHY the\ndependency is needed.",
1199
1198
  type: "object",
1200
1199
  properties: {
1201
1200
  endpoint: {
1202
- 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.",
1201
+ description: "The API endpoint that must be called first.",
1203
1202
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
1204
1203
  },
1205
1204
  description: {
1206
- 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.",
1205
+ description: "Why this prerequisite is required (specific condition or state).\n\n> MUST be written in English. Never use other languages.",
1207
1206
  type: "string"
1208
1207
  }
1209
1208
  },
@@ -1214,7 +1213,7 @@ function createController(props) {
1214
1213
  }
1215
1214
  }
1216
1215
  },
1217
- description: "Process prerequisite analysis task or preliminary data requests.\n\nAnalyzes a single operation's dependencies and returns the complete\nprerequisite chain based on resource relationships.",
1216
+ description: "Process task or retrieve preliminary data.",
1218
1217
  validate: (() => { const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisSections" === input.type && (Array.isArray(input.sectionIds) && (1 <= input.sectionIds.length && input.sectionIds.length <= 100 && input.sectionIds.every(elem => "number" === typeof elem && __typia_transform__isTypeUint32._isTypeUint32(elem)))); const _io2 = input => "getDatabaseSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "getInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io4 = 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 _io5 = input => "getInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io6 = input => "getPreviousAnalysisSections" === input.type && (Array.isArray(input.sectionIds) && (1 <= input.sectionIds.length && input.sectionIds.every(elem => "number" === typeof elem && __typia_transform__isTypeUint32._isTypeUint32(elem)))); const _io7 = input => "getPreviousDatabaseSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io8 = input => "getPreviousInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io9 = input => "getPreviousInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io10 = input => "complete" === input.type && "string" === typeof input.analysis && "string" === typeof input.rationale && ("object" === typeof input.endpoint && null !== input.endpoint && _io4(input.endpoint)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io11(elem))); const _io11 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io4(input.endpoint) && "string" === typeof input.description; const _iu0 = input => (() => {
1219
1218
  if ("getAnalysisSections" === input.type)
1220
1219
  return _io1(input);