@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
@@ -111,7 +111,7 @@ function process(ctx, props) {
111
111
  properties: {
112
112
  thinking: {
113
113
  type: "string",
114
- 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."
114
+ description: "Think before you act.\n\nFor preliminary requests: what critical information is missing and why?\nBe brief \u2014 state the gap, don't list everything you have.\n\nFor completion: what key assets did you acquire, what did you accomplish,\nwhy is it sufficient? Summarize \u2014 don't enumerate every single item."
115
115
  },
116
116
  request: {
117
117
  oneOf: [
@@ -157,7 +157,7 @@ function process(ctx, props) {
157
157
  complete: "#/components/schemas/IAutoBeInterfaceSchemaRefineApplication.IComplete"
158
158
  }
159
159
  },
160
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas) or final schema refinement (complete). When\npreliminary returns empty array, that type is removed from the union,\nphysically preventing repeated calls."
160
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion, physically preventing repeated calls."
161
161
  }
162
162
  },
163
163
  required: [
@@ -170,7 +170,7 @@ function process(ctx, props) {
170
170
  properties: {
171
171
  type: {
172
172
  "const": "getAnalysisSections",
173
- 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."
173
+ description: "Type discriminator."
174
174
  },
175
175
  sectionIds: {
176
176
  type: "array",
@@ -180,21 +180,21 @@ function process(ctx, props) {
180
180
  },
181
181
  minItems: 1,
182
182
  maxItems: 100,
183
- 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."
183
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls."
184
184
  }
185
185
  },
186
186
  required: [
187
187
  "type",
188
188
  "sectionIds"
189
189
  ],
190
- 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."
190
+ description: "Request to retrieve individual analysis sections by numeric ID."
191
191
  },
192
192
  IAutoBePreliminaryGetDatabaseSchemas: {
193
193
  type: "object",
194
194
  properties: {
195
195
  type: {
196
196
  "const": "getDatabaseSchemas",
197
- 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."
197
+ description: "Type discriminator."
198
198
  },
199
199
  schemaNames: {
200
200
  type: "array",
@@ -202,21 +202,21 @@ function process(ctx, props) {
202
202
  type: "string"
203
203
  },
204
204
  minItems: 1,
205
- 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."
205
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls."
206
206
  }
207
207
  },
208
208
  required: [
209
209
  "type",
210
210
  "schemaNames"
211
211
  ],
212
- 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."
212
+ description: "Request to retrieve database schema definitions for context."
213
213
  },
214
214
  IAutoBePreliminaryGetInterfaceOperations: {
215
215
  type: "object",
216
216
  properties: {
217
217
  type: {
218
218
  "const": "getInterfaceOperations",
219
- 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."
219
+ description: "Type discriminator."
220
220
  },
221
221
  endpoints: {
222
222
  type: "array",
@@ -224,14 +224,14 @@ function process(ctx, props) {
224
224
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
225
225
  },
226
226
  minItems: 1,
227
- 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."
227
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls."
228
228
  }
229
229
  },
230
230
  required: [
231
231
  "type",
232
232
  "endpoints"
233
233
  ],
234
- 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."
234
+ description: "Request to retrieve existing interface operations for context."
235
235
  },
236
236
  "AutoBeOpenApi.IEndpoint": {
237
237
  type: "object",
@@ -239,7 +239,7 @@ function process(ctx, props) {
239
239
  path: {
240
240
  type: "string",
241
241
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
242
- 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)"
242
+ 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, `/`, `{`, `}`, `-`, `_`, `.`"
243
243
  },
244
244
  method: {
245
245
  oneOf: [
@@ -259,7 +259,7 @@ function process(ctx, props) {
259
259
  "const": "patch"
260
260
  }
261
261
  ],
262
- 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"
262
+ 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."
263
263
  }
264
264
  },
265
265
  required: [
@@ -273,7 +273,7 @@ function process(ctx, props) {
273
273
  properties: {
274
274
  type: {
275
275
  "const": "getInterfaceSchemas",
276
- 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."
276
+ description: "Type discriminator."
277
277
  },
278
278
  typeNames: {
279
279
  type: "array",
@@ -281,21 +281,21 @@ function process(ctx, props) {
281
281
  type: "string"
282
282
  },
283
283
  minItems: 1,
284
- 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."
284
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls."
285
285
  }
286
286
  },
287
287
  required: [
288
288
  "type",
289
289
  "typeNames"
290
290
  ],
291
- 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."
291
+ description: "Request to retrieve OpenAPI schema type definitions for context."
292
292
  },
293
293
  IAutoBePreliminaryGetPreviousAnalysisSections: {
294
294
  type: "object",
295
295
  properties: {
296
296
  type: {
297
297
  "const": "getPreviousAnalysisSections",
298
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration."
298
+ description: "Type discriminator."
299
299
  },
300
300
  sectionIds: {
301
301
  type: "array",
@@ -304,21 +304,21 @@ function process(ctx, props) {
304
304
  minimum: 0
305
305
  },
306
306
  minItems: 1,
307
- 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."
307
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls."
308
308
  }
309
309
  },
310
310
  required: [
311
311
  "type",
312
312
  "sectionIds"
313
313
  ],
314
- 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."
314
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID."
315
315
  },
316
316
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
317
317
  type: "object",
318
318
  properties: {
319
319
  type: {
320
320
  "const": "getPreviousDatabaseSchemas",
321
- 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."
321
+ description: "Type discriminator."
322
322
  },
323
323
  schemaNames: {
324
324
  type: "array",
@@ -326,21 +326,21 @@ function process(ctx, props) {
326
326
  type: "string"
327
327
  },
328
328
  minItems: 1,
329
- 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\""
329
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls."
330
330
  }
331
331
  },
332
332
  required: [
333
333
  "type",
334
334
  "schemaNames"
335
335
  ],
336
- 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"
336
+ 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."
337
337
  },
338
338
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
339
339
  type: "object",
340
340
  properties: {
341
341
  type: {
342
342
  "const": "getPreviousInterfaceOperations",
343
- 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."
343
+ description: "Type discriminator."
344
344
  },
345
345
  endpoints: {
346
346
  type: "array",
@@ -348,21 +348,21 @@ function process(ctx, props) {
348
348
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
349
349
  },
350
350
  minItems: 1,
351
- 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\"}`"
351
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls."
352
352
  }
353
353
  },
354
354
  required: [
355
355
  "type",
356
356
  "endpoints"
357
357
  ],
358
- 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"
358
+ 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."
359
359
  },
360
360
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
361
361
  type: "object",
362
362
  properties: {
363
363
  type: {
364
364
  "const": "getPreviousInterfaceSchemas",
365
- 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."
365
+ description: "Type discriminator."
366
366
  },
367
367
  typeNames: {
368
368
  type: "array",
@@ -370,25 +370,25 @@ function process(ctx, props) {
370
370
  type: "string"
371
371
  },
372
372
  minItems: 1,
373
- 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\""
373
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls."
374
374
  }
375
375
  },
376
376
  required: [
377
377
  "type",
378
378
  "typeNames"
379
379
  ],
380
- 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"
380
+ 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."
381
381
  },
382
382
  "IAutoBeInterfaceSchemaRefineApplication.IComplete": {
383
383
  type: "object",
384
384
  properties: {
385
385
  type: {
386
386
  "const": "complete",
387
- description: "Type discriminator for the request.\n\nValue \"complete\" indicates this is the final task execution request after\nall preliminary data has been gathered."
387
+ description: "Type discriminator for completion request."
388
388
  },
389
389
  review: {
390
390
  type: "string",
391
- description: "Summary of refinement analysis and actions taken.\n\nDocuments the agent's analysis of the schema's current state, including\nwhich properties need documentation, any structural issues discovered,\nand the overall assessment of what enrichment was performed."
391
+ description: "Summary of refinement analysis and actions taken."
392
392
  },
393
393
  databaseSchema: {
394
394
  oneOf: [
@@ -399,29 +399,29 @@ function process(ctx, props) {
399
399
  type: "string"
400
400
  }
401
401
  ],
402
- description: "Database schema context for the type.\n\nSpecifies which database table or entity this schema maps to, providing\ncontext for property-level database field mappings. This establishes the\nsource of truth for data validation and transformation logic.\n\nSet to `null` for schemas that don't directly map to a single database\ntable (e.g., computed aggregations, cross-table joins, utility types)."
402
+ description: "Database table this schema maps to, or `null` for non-table types\n(aggregations, joins, utility)."
403
403
  },
404
404
  specification: {
405
405
  type: "string",
406
- description: "Specification for the schema implementation.\n\nDocuments HOW the schema should be implemented, including data source\nmappings, transformation rules, and technical implementation details.\n\n**MANDATORY**: You must always provide this value, even if the existing\nspecification is correct. This forces explicit review and strengthens\nreasoning about the implementation details."
406
+ description: "HOW the schema should be implemented (data source mappings,\ntransformation rules). **MANDATORY**: Always provide, even if existing\nvalue is correct \u2014 this forces explicit review of implementation\ndetails."
407
407
  },
408
408
  description: {
409
409
  type: "string",
410
- description: "Description for API consumers.\n\nDocuments WHAT the schema represents for API consumers, explaining the\npurpose and usage of this data type in the API context.\n\n**MANDATORY**: You must always provide this value, even if the existing\ndescription is correct. This forces explicit review and strengthens\nreasoning about the API documentation."
410
+ description: "WHAT the schema represents for API consumers. **MANDATORY**: Always\nprovide, even if existing value is correct \u2014 this forces explicit review\nof consumer-facing documentation."
411
411
  },
412
412
  excludes: {
413
413
  type: "array",
414
414
  items: {
415
415
  $ref: "#/components/schemas/AutoBeInterfaceSchemaPropertyExclude"
416
416
  },
417
- description: "Database properties explicitly excluded from this DTO.\n\nDeclare every database property that intentionally does not appear in\nthis DTO. Together with `revises`, this must cover every database\nproperty \u2014 each one must appear in exactly one of the two arrays."
417
+ description: "Database properties explicitly excluded from this DTO. Together with\n`revises`, must cover every database property exactly once."
418
418
  },
419
419
  revises: {
420
420
  type: "array",
421
421
  items: {
422
422
  $ref: "#/components/schemas/AutoBeInterfaceSchemaPropertyRefine"
423
423
  },
424
- description: "Property-level refinement operations for DTO properties.\n\nEvery DTO property must appear exactly once with one of:\n\n- `depict`: Add documentation to existing property\n- `create`: Add missing property with documentation\n- `update`: Fix incorrect type and add documentation\n- `erase`: Remove invalid property\n\nEach operation includes the property key, reason for the action, and\ncomplete metadata including `databaseSchemaProperty`, `specification`,\nand `description`.\n\nDatabase properties are addressed either here (via\n`databaseSchemaProperty`) or in `excludes`. No property can be omitted."
424
+ description: "Property-level refinement operations (depict/create/update/erase). Every\nDTO property must appear exactly once. Database properties go here (via\n`databaseSchemaProperty`) or in `excludes`. No omissions allowed."
425
425
  }
426
426
  },
427
427
  required: [
@@ -433,7 +433,7 @@ function process(ctx, props) {
433
433
  "excludes",
434
434
  "revises"
435
435
  ],
436
- description: "Complete schema refinement with object-level and property-level enrichment.\n\nExecutes the refinement to add documentation and metadata to a schema.\nIncludes both object-level context (databaseSchema, specification,\ndescription) and property-level operations (depict, create, update,\nerase)."
436
+ description: "Complete schema refinement with object-level and property-level enrichment."
437
437
  },
438
438
  AutoBeInterfaceSchemaPropertyExclude: {
439
439
  type: "object",
@@ -477,7 +477,7 @@ function process(ctx, props) {
477
477
  update: "#/components/schemas/AutoBeInterfaceSchemaPropertyUpdate"
478
478
  }
479
479
  },
480
- description: "Enrich a pure JSON Schema with documentation and database mapping.\n\nInitial JSON Schema generation produces only type structure (`type`,\n`properties`, `$ref`, etc.) without any descriptive information. This type\nrepresents the operations to add `databaseSchemaProperty`, `specification`,\nand `description` to each property.\n\n**Every DTO property must be explicitly handled.** Database properties that\nare intentionally not included in the DTO are declared separately via\n{@link AutoBeInterfaceSchemaPropertyExclude} in the `excludes` array.\n\nAvailable operations:\n\n- `depict`: Add documentation to existing property (no type change)\n- `create`: Add missing property with full documentation\n- `update`: Fix incorrect type and add documentation\n- `erase`: Remove invalid/phantom property from DTO"
480
+ description: "Property-level enrichment: depict | create | update | erase.\n\nEvery DTO property must be handled. DB properties go here or in `excludes`."
481
481
  },
482
482
  AutoBeInterfaceSchemaPropertyCreate: {
483
483
  type: "object",
@@ -566,29 +566,24 @@ function process(ctx, props) {
566
566
  type: "object",
567
567
  properties: {
568
568
  minimum: {
569
- type: "number",
570
- description: "Minimum value restriction."
569
+ type: "number"
571
570
  },
572
571
  maximum: {
573
- type: "number",
574
- description: "Maximum value restriction."
572
+ type: "number"
575
573
  },
576
574
  exclusiveMinimum: {
577
- type: "number",
578
- description: "Exclusive minimum value restriction."
575
+ type: "number"
579
576
  },
580
577
  exclusiveMaximum: {
581
- type: "number",
582
- description: "Exclusive maximum value restriction."
578
+ type: "number"
583
579
  },
584
580
  multipleOf: {
585
581
  type: "number",
586
- exclusiveMinimum: 0,
587
- description: "Multiple of value restriction."
582
+ exclusiveMinimum: 0
588
583
  },
589
584
  type: {
590
585
  "const": "number",
591
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
586
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
592
587
  }
593
588
  },
594
589
  required: [
@@ -600,29 +595,24 @@ function process(ctx, props) {
600
595
  type: "object",
601
596
  properties: {
602
597
  minimum: {
603
- type: "integer",
604
- description: "Minimum value restriction."
598
+ type: "integer"
605
599
  },
606
600
  maximum: {
607
- type: "integer",
608
- description: "Maximum value restriction."
601
+ type: "integer"
609
602
  },
610
603
  exclusiveMinimum: {
611
- type: "integer",
612
- description: "Exclusive minimum value restriction."
604
+ type: "integer"
613
605
  },
614
606
  exclusiveMaximum: {
615
- type: "integer",
616
- description: "Exclusive maximum value restriction."
607
+ type: "integer"
617
608
  },
618
609
  multipleOf: {
619
610
  type: "integer",
620
- exclusiveMinimum: 0,
621
- description: "Multiple of value restriction."
611
+ exclusiveMinimum: 0
622
612
  },
623
613
  type: {
624
614
  "const": "integer",
625
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
615
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
626
616
  }
627
617
  },
628
618
  required: [
@@ -707,21 +697,19 @@ function process(ctx, props) {
707
697
  },
708
698
  contentMediaType: {
709
699
  type: "string",
710
- description: "Content media type restriction.\n\nIf you want to accept multiple contentMediaType values simultaneously\n(e.g., `text/plain` and `text/html`), you MUST NOT violate the type by\nusing an array. Instead, use `oneOf` to define multiple `string`\nschemas with different `contentMediaType` values.\n\nExample for accepting both text/plain and text/html:\n\n```typescript\n{\n \"oneOf\": [\n { \"type\": \"string\", \"contentMediaType\": \"text/plain\" },\n { \"type\": \"string\", \"contentMediaType\": \"text/html\" }\n ]\n}\n```\n\nThis is the CORRECT approach. Never use array notation or modify the\nsingle string type to accept arrays."
700
+ description: "Content media type restriction.\n\nFor multiple media types, use `oneOf` with separate string schemas per\n`contentMediaType` value. Never use an array here."
711
701
  },
712
702
  minLength: {
713
703
  type: "integer",
714
- minimum: 0,
715
- description: "Minimum length restriction."
704
+ minimum: 0
716
705
  },
717
706
  maxLength: {
718
707
  type: "integer",
719
- minimum: 0,
720
- description: "Maximum length restriction."
708
+ minimum: 0
721
709
  },
722
710
  type: {
723
711
  "const": "string",
724
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
712
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
725
713
  }
726
714
  },
727
715
  required: [
@@ -757,7 +745,7 @@ function process(ctx, props) {
757
745
  properties: {
758
746
  type: {
759
747
  "const": "null",
760
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
748
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
761
749
  }
762
750
  },
763
751
  required: [
@@ -770,7 +758,7 @@ function process(ctx, props) {
770
758
  properties: {
771
759
  type: {
772
760
  "const": "boolean",
773
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
761
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
774
762
  }
775
763
  },
776
764
  required: [
@@ -811,25 +799,23 @@ function process(ctx, props) {
811
799
  $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IOneOf"
812
800
  }
813
801
  ],
814
- description: "Items type info.\n\nThe `items` means the type of the array elements. In other words, it is\nthe type schema info of the `T` in the TypeScript array type\n`Array<T>`."
802
+ description: "Type schema of array elements."
815
803
  },
816
804
  uniqueItems: {
817
805
  type: "boolean",
818
- description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items."
806
+ description: "If `true`, array elements must be unique."
819
807
  },
820
808
  minItems: {
821
809
  type: "integer",
822
- minimum: 0,
823
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array."
810
+ minimum: 0
824
811
  },
825
812
  maxItems: {
826
813
  type: "integer",
827
- minimum: 0,
828
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array."
814
+ minimum: 0
829
815
  },
830
816
  type: {
831
817
  "const": "array",
832
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
818
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
833
819
  }
834
820
  },
835
821
  required: [
@@ -843,7 +829,7 @@ function process(ctx, props) {
843
829
  properties: {
844
830
  $ref: {
845
831
  type: "string",
846
- description: "Reference to the named schema.\n\nThe `ref` is a reference to the named schema. Format of the `$ref` is\nfollowing the JSON Pointer specification. In the OpenAPI, the `$ref`\nstarts with `#/components/schemas/` which means the type is stored in\nthe {@link AutoBeOpenApi.IComponents.schemas} object.\n\n- `#/components/schemas/SomeObject`\n- `#/components/schemas/AnotherObject`"
832
+ description: "JSON Pointer reference to a named schema (e.g.,\n`#/components/schemas/SomeObject`)."
847
833
  }
848
834
  },
849
835
  required: [
@@ -894,7 +880,7 @@ function process(ctx, props) {
894
880
  required: [
895
881
  "oneOf"
896
882
  ],
897
- description: "Union type.\n\n`IOneOf` represents an union type of the TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type."
883
+ description: "Union type.\n\n`IOneOf` represents a union type in TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type."
898
884
  },
899
885
  "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
900
886
  type: "object",
@@ -905,7 +891,7 @@ function process(ctx, props) {
905
891
  },
906
892
  mapping: {
907
893
  $ref: "#/components/schemas/Recordstringstring",
908
- description: "Mapping of the discriminator value to the schema name.\n\nThis property is valid only for {@link IReference} typed\n{@link IOneOf.oneof} elements. Therefore, `key` of `mapping` is the\ndiscriminator value, and `value` of `mapping` is the schema name like\n`#/components/schemas/SomeObject`."
894
+ description: "Mapping of the discriminator value to the schema name.\n\nThis property is valid only for {@link IReference} typed\n{@link IOneOf.oneOf} elements. Therefore, `key` of `mapping` is the\ndiscriminator value, and `value` of `mapping` is the schema name like\n`#/components/schemas/SomeObject`."
909
895
  }
910
896
  },
911
897
  required: [
@@ -1113,7 +1099,7 @@ function process(ctx, props) {
1113
1099
  }
1114
1100
  }
1115
1101
  ],
1116
- description: "Process schema refinement task or preliminary data requests.\n\nEnriches OpenAPI schema definitions with documentation and metadata that\nwere omitted during initial generation. Processes property-level additions\nincluding database field mappings, implementation specifications, and API\nconsumer descriptions."
1102
+ description: "Process schema refinement task or preliminary data requests."
1117
1103
  }
1118
1104
  ]
1119
1105
  },
@@ -2024,11 +2010,11 @@ function createController(ctx, props) {
2024
2010
  type: "object",
2025
2011
  properties: {
2026
2012
  thinking: {
2027
- 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.",
2013
+ description: "Think before you act.\n\nFor preliminary requests: what critical information is missing and why?\nBe brief \u2014 state the gap, don't list everything you have.\n\nFor completion: what key assets did you acquire, what did you accomplish,\nwhy is it sufficient? Summarize \u2014 don't enumerate every single item.",
2028
2014
  type: "string"
2029
2015
  },
2030
2016
  request: {
2031
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas) or final schema refinement (complete). When\npreliminary returns empty array, that type is removed from the union,\nphysically preventing repeated calls.",
2017
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion, physically preventing repeated calls.",
2032
2018
  anyOf: [
2033
2019
  {
2034
2020
  $ref: "#/$defs/IAutoBePreliminaryGetAnalysisSections"
@@ -2081,18 +2067,18 @@ function createController(ctx, props) {
2081
2067
  additionalProperties: false,
2082
2068
  $defs: {
2083
2069
  IAutoBePreliminaryGetAnalysisSections: {
2084
- 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.",
2070
+ description: "Request to retrieve individual analysis sections by numeric ID.",
2085
2071
  type: "object",
2086
2072
  properties: {
2087
2073
  type: {
2088
- 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.",
2074
+ description: "Type discriminator.",
2089
2075
  type: "string",
2090
2076
  "enum": [
2091
2077
  "getAnalysisSections"
2092
2078
  ]
2093
2079
  },
2094
2080
  sectionIds: {
2095
- 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.",
2081
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls.",
2096
2082
  type: "array",
2097
2083
  items: {
2098
2084
  type: "integer",
@@ -2108,18 +2094,18 @@ function createController(ctx, props) {
2108
2094
  ]
2109
2095
  },
2110
2096
  IAutoBePreliminaryGetDatabaseSchemas: {
2111
- 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.",
2097
+ description: "Request to retrieve database schema definitions for context.",
2112
2098
  type: "object",
2113
2099
  properties: {
2114
2100
  type: {
2115
- 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.",
2101
+ description: "Type discriminator.",
2116
2102
  type: "string",
2117
2103
  "enum": [
2118
2104
  "getDatabaseSchemas"
2119
2105
  ]
2120
2106
  },
2121
2107
  schemaNames: {
2122
- 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.",
2108
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls.",
2123
2109
  type: "array",
2124
2110
  items: {
2125
2111
  type: "string"
@@ -2133,18 +2119,18 @@ function createController(ctx, props) {
2133
2119
  ]
2134
2120
  },
2135
2121
  IAutoBePreliminaryGetInterfaceOperations: {
2136
- 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.",
2122
+ description: "Request to retrieve existing interface operations for context.",
2137
2123
  type: "object",
2138
2124
  properties: {
2139
2125
  type: {
2140
- 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.",
2126
+ description: "Type discriminator.",
2141
2127
  type: "string",
2142
2128
  "enum": [
2143
2129
  "getInterfaceOperations"
2144
2130
  ]
2145
2131
  },
2146
2132
  endpoints: {
2147
- 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.",
2133
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls.",
2148
2134
  type: "array",
2149
2135
  items: {
2150
2136
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -2162,12 +2148,12 @@ function createController(ctx, props) {
2162
2148
  type: "object",
2163
2149
  properties: {
2164
2150
  path: {
2165
- 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)",
2151
+ 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, `/`, `{`, `}`, `-`, `_`, `.`",
2166
2152
  type: "string",
2167
2153
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
2168
2154
  },
2169
2155
  method: {
2170
- 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",
2156
+ 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.",
2171
2157
  type: "string",
2172
2158
  "enum": [
2173
2159
  "get",
@@ -2184,18 +2170,18 @@ function createController(ctx, props) {
2184
2170
  ]
2185
2171
  },
2186
2172
  IAutoBePreliminaryGetInterfaceSchemas: {
2187
- 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.",
2173
+ description: "Request to retrieve OpenAPI schema type definitions for context.",
2188
2174
  type: "object",
2189
2175
  properties: {
2190
2176
  type: {
2191
- 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.",
2177
+ description: "Type discriminator.",
2192
2178
  type: "string",
2193
2179
  "enum": [
2194
2180
  "getInterfaceSchemas"
2195
2181
  ]
2196
2182
  },
2197
2183
  typeNames: {
2198
- 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.",
2184
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls.",
2199
2185
  type: "array",
2200
2186
  items: {
2201
2187
  type: "string"
@@ -2209,18 +2195,18 @@ function createController(ctx, props) {
2209
2195
  ]
2210
2196
  },
2211
2197
  IAutoBePreliminaryGetPreviousAnalysisSections: {
2212
- 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.",
2198
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID.",
2213
2199
  type: "object",
2214
2200
  properties: {
2215
2201
  type: {
2216
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration.",
2202
+ description: "Type discriminator.",
2217
2203
  type: "string",
2218
2204
  "enum": [
2219
2205
  "getPreviousAnalysisSections"
2220
2206
  ]
2221
2207
  },
2222
2208
  sectionIds: {
2223
- 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.",
2209
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls.",
2224
2210
  type: "array",
2225
2211
  items: {
2226
2212
  type: "integer",
@@ -2235,18 +2221,18 @@ function createController(ctx, props) {
2235
2221
  ]
2236
2222
  },
2237
2223
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
2238
- 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",
2224
+ 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.",
2239
2225
  type: "object",
2240
2226
  properties: {
2241
2227
  type: {
2242
- 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.",
2228
+ description: "Type discriminator.",
2243
2229
  type: "string",
2244
2230
  "enum": [
2245
2231
  "getPreviousDatabaseSchemas"
2246
2232
  ]
2247
2233
  },
2248
2234
  schemaNames: {
2249
- 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\"",
2235
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls.",
2250
2236
  type: "array",
2251
2237
  items: {
2252
2238
  type: "string"
@@ -2260,18 +2246,18 @@ function createController(ctx, props) {
2260
2246
  ]
2261
2247
  },
2262
2248
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
2263
- 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",
2249
+ 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.",
2264
2250
  type: "object",
2265
2251
  properties: {
2266
2252
  type: {
2267
- 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.",
2253
+ description: "Type discriminator.",
2268
2254
  type: "string",
2269
2255
  "enum": [
2270
2256
  "getPreviousInterfaceOperations"
2271
2257
  ]
2272
2258
  },
2273
2259
  endpoints: {
2274
- 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\"}`",
2260
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls.",
2275
2261
  type: "array",
2276
2262
  items: {
2277
2263
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -2285,18 +2271,18 @@ function createController(ctx, props) {
2285
2271
  ]
2286
2272
  },
2287
2273
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
2288
- 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",
2274
+ 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.",
2289
2275
  type: "object",
2290
2276
  properties: {
2291
2277
  type: {
2292
- 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.",
2278
+ description: "Type discriminator.",
2293
2279
  type: "string",
2294
2280
  "enum": [
2295
2281
  "getPreviousInterfaceSchemas"
2296
2282
  ]
2297
2283
  },
2298
2284
  typeNames: {
2299
- 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\"",
2285
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls.",
2300
2286
  type: "array",
2301
2287
  items: {
2302
2288
  type: "string"
@@ -2310,22 +2296,22 @@ function createController(ctx, props) {
2310
2296
  ]
2311
2297
  },
2312
2298
  "IAutoBeInterfaceSchemaRefineApplication.IComplete": {
2313
- description: "Complete schema refinement with object-level and property-level enrichment.\n\nExecutes the refinement to add documentation and metadata to a schema.\nIncludes both object-level context (databaseSchema, specification,\ndescription) and property-level operations (depict, create, update,\nerase).",
2299
+ description: "Complete schema refinement with object-level and property-level enrichment.",
2314
2300
  type: "object",
2315
2301
  properties: {
2316
2302
  type: {
2317
- description: "Type discriminator for the request.\n\nValue \"complete\" indicates this is the final task execution request after\nall preliminary data has been gathered.",
2303
+ description: "Type discriminator for completion request.",
2318
2304
  type: "string",
2319
2305
  "enum": [
2320
2306
  "complete"
2321
2307
  ]
2322
2308
  },
2323
2309
  review: {
2324
- description: "Summary of refinement analysis and actions taken.\n\nDocuments the agent's analysis of the schema's current state, including\nwhich properties need documentation, any structural issues discovered,\nand the overall assessment of what enrichment was performed.",
2310
+ description: "Summary of refinement analysis and actions taken.",
2325
2311
  type: "string"
2326
2312
  },
2327
2313
  databaseSchema: {
2328
- description: "Database schema context for the type.\n\nSpecifies which database table or entity this schema maps to, providing\ncontext for property-level database field mappings. This establishes the\nsource of truth for data validation and transformation logic.\n\nSet to `null` for schemas that don't directly map to a single database\ntable (e.g., computed aggregations, cross-table joins, utility types).",
2314
+ description: "Database table this schema maps to, or `null` for non-table types\n(aggregations, joins, utility).",
2329
2315
  anyOf: [
2330
2316
  {
2331
2317
  type: "null"
@@ -2336,22 +2322,22 @@ function createController(ctx, props) {
2336
2322
  ]
2337
2323
  },
2338
2324
  specification: {
2339
- description: "Specification for the schema implementation.\n\nDocuments HOW the schema should be implemented, including data source\nmappings, transformation rules, and technical implementation details.\n\n**MANDATORY**: You must always provide this value, even if the existing\nspecification is correct. This forces explicit review and strengthens\nreasoning about the implementation details.",
2325
+ description: "HOW the schema should be implemented (data source mappings,\ntransformation rules). **MANDATORY**: Always provide, even if existing\nvalue is correct \u2014 this forces explicit review of implementation\ndetails.",
2340
2326
  type: "string"
2341
2327
  },
2342
2328
  description: {
2343
- description: "Description for API consumers.\n\nDocuments WHAT the schema represents for API consumers, explaining the\npurpose and usage of this data type in the API context.\n\n**MANDATORY**: You must always provide this value, even if the existing\ndescription is correct. This forces explicit review and strengthens\nreasoning about the API documentation.",
2329
+ description: "WHAT the schema represents for API consumers. **MANDATORY**: Always\nprovide, even if existing value is correct \u2014 this forces explicit review\nof consumer-facing documentation.",
2344
2330
  type: "string"
2345
2331
  },
2346
2332
  excludes: {
2347
- description: "Database properties explicitly excluded from this DTO.\n\nDeclare every database property that intentionally does not appear in\nthis DTO. Together with `revises`, this must cover every database\nproperty \u2014 each one must appear in exactly one of the two arrays.",
2333
+ description: "Database properties explicitly excluded from this DTO. Together with\n`revises`, must cover every database property exactly once.",
2348
2334
  type: "array",
2349
2335
  items: {
2350
2336
  $ref: "#/$defs/AutoBeInterfaceSchemaPropertyExclude"
2351
2337
  }
2352
2338
  },
2353
2339
  revises: {
2354
- description: "Property-level refinement operations for DTO properties.\n\nEvery DTO property must appear exactly once with one of:\n\n- `depict`: Add documentation to existing property\n- `create`: Add missing property with documentation\n- `update`: Fix incorrect type and add documentation\n- `erase`: Remove invalid property\n\nEach operation includes the property key, reason for the action, and\ncomplete metadata including `databaseSchemaProperty`, `specification`,\nand `description`.\n\nDatabase properties are addressed either here (via\n`databaseSchemaProperty`) or in `excludes`. No property can be omitted.",
2340
+ description: "Property-level refinement operations (depict/create/update/erase). Every\nDTO property must appear exactly once. Database properties go here (via\n`databaseSchemaProperty`) or in `excludes`. No omissions allowed.",
2355
2341
  type: "array",
2356
2342
  items: {
2357
2343
  $ref: "#/$defs/AutoBeInterfaceSchemaPropertyRefine"
@@ -2387,7 +2373,7 @@ function createController(ctx, props) {
2387
2373
  ]
2388
2374
  },
2389
2375
  AutoBeInterfaceSchemaPropertyRefine: {
2390
- description: "Enrich a pure JSON Schema with documentation and database mapping.\n\nInitial JSON Schema generation produces only type structure (`type`,\n`properties`, `$ref`, etc.) without any descriptive information. This type\nrepresents the operations to add `databaseSchemaProperty`, `specification`,\nand `description` to each property.\n\n**Every DTO property must be explicitly handled.** Database properties that\nare intentionally not included in the DTO are declared separately via\n{@link AutoBeInterfaceSchemaPropertyExclude} in the `excludes` array.\n\nAvailable operations:\n\n- `depict`: Add documentation to existing property (no type change)\n- `create`: Add missing property with full documentation\n- `update`: Fix incorrect type and add documentation\n- `erase`: Remove invalid/phantom property from DTO",
2376
+ description: "Property-level enrichment: depict | create | update | erase.\n\nEvery DTO property must be handled. DB properties go here or in `excludes`.",
2391
2377
  anyOf: [
2392
2378
  {
2393
2379
  $ref: "#/$defs/AutoBeInterfaceSchemaPropertyCreate"
@@ -2503,28 +2489,23 @@ function createController(ctx, props) {
2503
2489
  type: "object",
2504
2490
  properties: {
2505
2491
  minimum: {
2506
- description: "Minimum value restriction.",
2507
2492
  type: "number"
2508
2493
  },
2509
2494
  maximum: {
2510
- description: "Maximum value restriction.",
2511
2495
  type: "number"
2512
2496
  },
2513
2497
  exclusiveMinimum: {
2514
- description: "Exclusive minimum value restriction.",
2515
2498
  type: "number"
2516
2499
  },
2517
2500
  exclusiveMaximum: {
2518
- description: "Exclusive maximum value restriction.",
2519
2501
  type: "number"
2520
2502
  },
2521
2503
  multipleOf: {
2522
- description: "Multiple of value restriction.",
2523
2504
  type: "number",
2524
2505
  exclusiveMinimum: 0
2525
2506
  },
2526
2507
  type: {
2527
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2508
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2528
2509
  type: "string",
2529
2510
  "enum": [
2530
2511
  "number"
@@ -2540,28 +2521,23 @@ function createController(ctx, props) {
2540
2521
  type: "object",
2541
2522
  properties: {
2542
2523
  minimum: {
2543
- description: "Minimum value restriction.",
2544
2524
  type: "integer"
2545
2525
  },
2546
2526
  maximum: {
2547
- description: "Maximum value restriction.",
2548
2527
  type: "integer"
2549
2528
  },
2550
2529
  exclusiveMinimum: {
2551
- description: "Exclusive minimum value restriction.",
2552
2530
  type: "integer"
2553
2531
  },
2554
2532
  exclusiveMaximum: {
2555
- description: "Exclusive maximum value restriction.",
2556
2533
  type: "integer"
2557
2534
  },
2558
2535
  multipleOf: {
2559
- description: "Multiple of value restriction.",
2560
2536
  type: "integer",
2561
2537
  exclusiveMinimum: 0
2562
2538
  },
2563
2539
  type: {
2564
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2540
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2565
2541
  type: "string",
2566
2542
  "enum": [
2567
2543
  "integer"
@@ -2608,21 +2584,19 @@ function createController(ctx, props) {
2608
2584
  type: "string"
2609
2585
  },
2610
2586
  contentMediaType: {
2611
- description: "Content media type restriction.\n\nIf you want to accept multiple contentMediaType values simultaneously\n(e.g., `text/plain` and `text/html`), you MUST NOT violate the type by\nusing an array. Instead, use `oneOf` to define multiple `string`\nschemas with different `contentMediaType` values.\n\nExample for accepting both text/plain and text/html:\n\n```typescript\n{\n \"oneOf\": [\n { \"type\": \"string\", \"contentMediaType\": \"text/plain\" },\n { \"type\": \"string\", \"contentMediaType\": \"text/html\" }\n ]\n}\n```\n\nThis is the CORRECT approach. Never use array notation or modify the\nsingle string type to accept arrays.",
2587
+ description: "Content media type restriction.\n\nFor multiple media types, use `oneOf` with separate string schemas per\n`contentMediaType` value. Never use an array here.",
2612
2588
  type: "string"
2613
2589
  },
2614
2590
  minLength: {
2615
- description: "Minimum length restriction.",
2616
2591
  type: "integer",
2617
2592
  minimum: 0
2618
2593
  },
2619
2594
  maxLength: {
2620
- description: "Maximum length restriction.",
2621
2595
  type: "integer",
2622
2596
  minimum: 0
2623
2597
  },
2624
2598
  type: {
2625
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2599
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2626
2600
  type: "string",
2627
2601
  "enum": [
2628
2602
  "string"
@@ -2661,7 +2635,7 @@ function createController(ctx, props) {
2661
2635
  type: "object",
2662
2636
  properties: {
2663
2637
  type: {
2664
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2638
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2665
2639
  type: "string",
2666
2640
  "enum": [
2667
2641
  "null"
@@ -2677,7 +2651,7 @@ function createController(ctx, props) {
2677
2651
  type: "object",
2678
2652
  properties: {
2679
2653
  type: {
2680
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2654
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2681
2655
  type: "string",
2682
2656
  "enum": [
2683
2657
  "boolean"
@@ -2693,7 +2667,7 @@ function createController(ctx, props) {
2693
2667
  type: "object",
2694
2668
  properties: {
2695
2669
  items: {
2696
- description: "Items type info.\n\nThe `items` means the type of the array elements. In other words, it is\nthe type schema info of the `T` in the TypeScript array type\n`Array<T>`.",
2670
+ description: "Type schema of array elements.",
2697
2671
  anyOf: [
2698
2672
  {
2699
2673
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
@@ -2725,21 +2699,19 @@ function createController(ctx, props) {
2725
2699
  ]
2726
2700
  },
2727
2701
  uniqueItems: {
2728
- description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
2702
+ description: "If `true`, array elements must be unique.",
2729
2703
  type: "boolean"
2730
2704
  },
2731
2705
  minItems: {
2732
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
2733
2706
  type: "integer",
2734
2707
  minimum: 0
2735
2708
  },
2736
2709
  maxItems: {
2737
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
2738
2710
  type: "integer",
2739
2711
  minimum: 0
2740
2712
  },
2741
2713
  type: {
2742
- description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
2714
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2743
2715
  type: "string",
2744
2716
  "enum": [
2745
2717
  "array"
@@ -2756,7 +2728,7 @@ function createController(ctx, props) {
2756
2728
  type: "object",
2757
2729
  properties: {
2758
2730
  $ref: {
2759
- description: "Reference to the named schema.\n\nThe `ref` is a reference to the named schema. Format of the `$ref` is\nfollowing the JSON Pointer specification. In the OpenAPI, the `$ref`\nstarts with `#/components/schemas/` which means the type is stored in\nthe {@link AutoBeOpenApi.IComponents.schemas} object.\n\n- `#/components/schemas/SomeObject`\n- `#/components/schemas/AnotherObject`",
2731
+ description: "JSON Pointer reference to a named schema (e.g.,\n`#/components/schemas/SomeObject`).",
2760
2732
  type: "string"
2761
2733
  }
2762
2734
  },
@@ -2765,7 +2737,7 @@ function createController(ctx, props) {
2765
2737
  ]
2766
2738
  },
2767
2739
  "AutoBeOpenApi.IJsonSchema.IOneOf": {
2768
- description: "Union type.\n\n`IOneOf` represents an union type of the TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type.",
2740
+ description: "Union type.\n\n`IOneOf` represents a union type in TypeScript (`A | B | C`).\n\nFor reference, even though your Swagger (or OpenAPI) document has defined\n`anyOf` instead of the `oneOf`, {@link AutoBeOpenApi} forcibly converts it\nto `oneOf` type.",
2769
2741
  type: "object",
2770
2742
  properties: {
2771
2743
  oneOf: {
@@ -2818,7 +2790,7 @@ function createController(ctx, props) {
2818
2790
  type: "string"
2819
2791
  },
2820
2792
  mapping: {
2821
- description: "Mapping of the discriminator value to the schema name.\n\nThis property is valid only for {@link IReference} typed\n{@link IOneOf.oneof} elements. Therefore, `key` of `mapping` is the\ndiscriminator value, and `value` of `mapping` is the schema name like\n`#/components/schemas/SomeObject`.",
2793
+ description: "Mapping of the discriminator value to the schema name.\n\nThis property is valid only for {@link IReference} typed\n{@link IOneOf.oneOf} elements. Therefore, `key` of `mapping` is the\ndiscriminator value, and `value` of `mapping` is the schema name like\n`#/components/schemas/SomeObject`.",
2822
2794
  $ref: "#/$defs/Recordstringstring"
2823
2795
  }
2824
2796
  },
@@ -3021,7 +2993,7 @@ function createController(ctx, props) {
3021
2993
  }
3022
2994
  }
3023
2995
  },
3024
- description: "Process schema refinement task or preliminary data requests.\n\nEnriches OpenAPI schema definitions with documentation and metadata that\nwere omitted during initial generation. Processes property-level additions\nincluding database field mappings, implementation specifications, and API\nconsumer descriptions.",
2996
+ description: "Process schema refinement task or preliminary data requests.",
3025
2997
  validate: (() => { const _iv11 = new Set(["password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date-time", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv23 = new Set(["password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date-time", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu2(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.review && (null === input.databaseSchema || "string" === typeof input.databaseSchema) && "string" === typeof input.specification && "string" === typeof input.description && (Array.isArray(input.excludes) && input.excludes.every(elem => "object" === typeof elem && null !== elem && _io11(elem))) && (Array.isArray(input.revises) && input.revises.every(elem => "object" === typeof elem && null !== elem && _iu0(elem))); const _io11 = input => "string" === typeof input.databaseSchemaProperty && "string" === typeof input.reason; const _io12 = input => "string" === typeof input.key && (null === input.databaseSchemaProperty || "string" === typeof input.databaseSchemaProperty) && "string" === typeof input.reason && "create" === input.type && "string" === typeof input.specification && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu3(input.schema)) && "boolean" === typeof input.required; const _io13 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum && (Math.floor(input.exclusiveMinimum) === input.exclusiveMinimum && -9223372036854776000 <= input.exclusiveMinimum && input.exclusiveMinimum <= 9223372036854776000)) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum && (Math.floor(input.exclusiveMaximum) === input.exclusiveMaximum && -9223372036854776000 <= input.exclusiveMaximum && input.exclusiveMaximum <= 9223372036854776000)) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io14 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io15 = input => (undefined === input.format || true === _iv11.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io16 = input => "string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]; const _io17 = input => "boolean" === input.type; const _io18 = input => "object" === typeof input.items && null !== input.items && _iu3(input.items) && (undefined === input.uniqueItems || "boolean" === typeof input.uniqueItems) && (undefined === input.minItems || "number" === typeof input.minItems && (Math.floor(input.minItems) === input.minItems && 0 <= input.minItems && input.minItems <= 18446744073709552000)) && (undefined === input.maxItems || "number" === typeof input.maxItems && (Math.floor(input.maxItems) === input.maxItems && 0 <= input.maxItems && input.maxItems <= 18446744073709552000)) && "array" === input.type; const _io19 = input => "string" === typeof input.$ref; const _io20 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu1(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io22(input.discriminator)); const _io21 = input => "null" === input.type; const _io22 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io23(input.mapping)); const _io23 = input => Object.keys(input).every(key => {
3026
2998
  const value = input[key];
3027
2999
  if (undefined === value)