@autobe/agent 0.30.4 → 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 (210) hide show
  1. package/lib/constants/AutoBeSystemPromptConstant.d.ts +5 -4
  2. package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
  3. package/lib/describe/image/orchestrateImageDescribeDraft.js +6 -6
  4. package/lib/describe/image/structures/IAutoBeImageDescribeDraftApplication.d.ts +12 -63
  5. package/lib/index.mjs +2918 -2842
  6. package/lib/index.mjs.map +1 -1
  7. package/lib/orchestrate/analyze/orchestrateAnalyzeExtractDecisions.js +8 -8
  8. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +36 -37
  9. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  10. package/lib/orchestrate/analyze/orchestrateAnalyzeScenarioReview.js +7 -7
  11. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js +55 -42
  12. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js.map +1 -1
  13. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js +67 -54
  14. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js.map +1 -1
  15. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js +24 -25
  16. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js.map +1 -1
  17. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js +24 -25
  18. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js.map +1 -1
  19. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js +30 -31
  20. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js.map +1 -1
  21. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeExtractDecisionsApplication.d.ts +14 -52
  22. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.d.ts +23 -96
  23. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.d.ts +12 -40
  24. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.d.ts +30 -88
  25. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.d.ts +35 -94
  26. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.d.ts +23 -93
  27. package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.d.ts +15 -88
  28. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js +76 -31
  29. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js.map +1 -1
  30. package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +7 -7
  31. package/lib/orchestrate/common/structures/IAnalysisSectionEntry.d.ts +2 -8
  32. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.d.ts +8 -50
  33. package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.d.ts +1 -9
  34. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.d.ts +4 -23
  35. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.d.ts +3 -21
  36. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.d.ts +4 -22
  37. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.d.ts +4 -22
  38. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.d.ts +5 -17
  39. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.d.ts +7 -76
  40. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.d.ts +6 -89
  41. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.d.ts +7 -93
  42. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.d.ts +3 -22
  43. package/lib/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.d.ts +3 -22
  44. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js +114 -139
  45. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js.map +1 -1
  46. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +90 -91
  47. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js.map +1 -1
  48. package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js +58 -59
  49. package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js.map +1 -1
  50. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +58 -59
  51. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js.map +1 -1
  52. package/lib/orchestrate/interface/orchestrateInterfaceOperation.js +108 -132
  53. package/lib/orchestrate/interface/orchestrateInterfaceOperation.js.map +1 -1
  54. package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js +72 -72
  55. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +76 -77
  56. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js.map +1 -1
  57. package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js +130 -159
  58. package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js.map +1 -1
  59. package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js +126 -155
  60. package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js.map +1 -1
  61. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js +114 -142
  62. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js.map +1 -1
  63. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +5 -5
  64. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +100 -129
  65. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
  66. package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js +120 -149
  67. package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js.map +1 -1
  68. package/lib/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.d.ts +10 -97
  69. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.d.ts +14 -83
  70. package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.d.ts +12 -90
  71. package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +12 -80
  72. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +21 -116
  73. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.d.ts +24 -112
  74. package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.d.ts +11 -83
  75. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +11 -76
  76. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.d.ts +18 -96
  77. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.d.ts +11 -76
  78. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.d.ts +25 -107
  79. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.d.ts +5 -31
  80. package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.d.ts +6 -42
  81. package/lib/orchestrate/prisma/orchestratePrismaAuthorization.js +41 -41
  82. package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js +62 -63
  83. package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js.map +1 -1
  84. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +40 -41
  85. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  86. package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js +60 -61
  87. package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js.map +1 -1
  88. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +112 -116
  89. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  90. package/lib/orchestrate/prisma/orchestratePrismaGroup.js +48 -49
  91. package/lib/orchestrate/prisma/orchestratePrismaGroup.js.map +1 -1
  92. package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js +70 -71
  93. package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js.map +1 -1
  94. package/lib/orchestrate/prisma/orchestratePrismaSchema.js +118 -122
  95. package/lib/orchestrate/prisma/orchestratePrismaSchema.js.map +1 -1
  96. package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js +126 -131
  97. package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js.map +1 -1
  98. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.d.ts +22 -99
  99. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.d.ts +12 -109
  100. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.d.ts +14 -100
  101. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.d.ts +15 -108
  102. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.d.ts +24 -106
  103. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.d.ts +13 -76
  104. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.d.ts +13 -111
  105. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.d.ts +26 -97
  106. package/lib/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.d.ts +16 -93
  107. package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js +1 -1
  108. package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js.map +1 -1
  109. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js +1 -1
  110. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js.map +1 -1
  111. package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js +20 -2
  112. package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js.map +1 -1
  113. package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js +22 -2
  114. package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js.map +1 -1
  115. package/lib/orchestrate/realize/internal/orchestrateRealizeCorrectCasting.js +7 -7
  116. package/lib/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.js +86 -6
  117. package/lib/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.js.map +1 -1
  118. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +38 -38
  119. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +34 -34
  120. package/lib/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.js +38 -38
  121. package/lib/orchestrate/realize/orchestrateRealizeCollectorPlan.js +54 -54
  122. package/lib/orchestrate/realize/orchestrateRealizeCollectorWrite.js +36 -36
  123. package/lib/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.js +44 -44
  124. package/lib/orchestrate/realize/orchestrateRealizeOperationWrite.js +42 -42
  125. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.js +1 -0
  126. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.js.map +1 -1
  127. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.js +46 -46
  128. package/lib/orchestrate/realize/orchestrateRealizeTransformerPlan.js +36 -36
  129. package/lib/orchestrate/realize/orchestrateRealizeTransformerWrite.js +44 -44
  130. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.d.ts +18 -0
  131. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js +167 -8
  132. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js.map +1 -1
  133. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +17 -71
  134. package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.d.ts +32 -92
  135. package/lib/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.d.ts +32 -114
  136. package/lib/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.d.ts +29 -106
  137. package/lib/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.d.ts +38 -131
  138. package/lib/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.d.ts +16 -71
  139. package/lib/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.d.ts +16 -73
  140. package/lib/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.d.ts +37 -155
  141. package/lib/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.d.ts +25 -88
  142. package/lib/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.d.ts +48 -181
  143. package/lib/orchestrate/realize/utils/generateTS2339Hints.d.ts +5 -3
  144. package/lib/orchestrate/realize/utils/generateTS2339Hints.js +37 -19
  145. package/lib/orchestrate/realize/utils/generateTS2339Hints.js.map +1 -1
  146. package/lib/orchestrate/test/histories/transformTestOperationWriteHistory.js +2 -2
  147. package/lib/orchestrate/test/orchestrateTestScenario.js +22 -22
  148. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +22 -22
  149. package/package.json +5 -5
  150. package/src/constants/AutoBeSystemPromptConstant.ts +5 -4
  151. package/src/describe/image/structures/IAutoBeImageDescribeDraftApplication.ts +12 -63
  152. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeExtractDecisionsApplication.ts +14 -52
  153. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +23 -96
  154. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.ts +12 -40
  155. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.ts +30 -88
  156. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.ts +35 -94
  157. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.ts +23 -93
  158. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.ts +15 -88
  159. package/src/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.ts +92 -31
  160. package/src/orchestrate/common/structures/IAnalysisSectionEntry.ts +2 -8
  161. package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +8 -50
  162. package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +1 -9
  163. package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.ts +4 -23
  164. package/src/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.ts +3 -21
  165. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +4 -22
  166. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +4 -22
  167. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.ts +5 -17
  168. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.ts +7 -76
  169. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.ts +6 -89
  170. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.ts +7 -93
  171. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.ts +3 -22
  172. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.ts +3 -22
  173. package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.ts +10 -97
  174. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +14 -83
  175. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.ts +12 -90
  176. package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +12 -80
  177. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +21 -116
  178. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.ts +24 -112
  179. package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +11 -83
  180. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +11 -76
  181. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.ts +18 -96
  182. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.ts +11 -76
  183. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.ts +25 -107
  184. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.ts +5 -31
  185. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.ts +6 -42
  186. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.ts +22 -99
  187. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.ts +12 -109
  188. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.ts +14 -100
  189. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.ts +15 -108
  190. package/src/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.ts +24 -106
  191. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.ts +13 -76
  192. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.ts +13 -111
  193. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.ts +26 -97
  194. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.ts +16 -93
  195. package/src/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.ts +21 -1
  196. package/src/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.ts +26 -4
  197. package/src/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.ts +125 -9
  198. package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.ts +1 -0
  199. package/src/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.ts +210 -7
  200. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +17 -71
  201. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.ts +32 -92
  202. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.ts +32 -114
  203. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.ts +29 -106
  204. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.ts +38 -131
  205. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.ts +16 -71
  206. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.ts +16 -73
  207. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.ts +37 -155
  208. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.ts +25 -88
  209. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.ts +48 -181
  210. package/src/orchestrate/realize/utils/generateTS2339Hints.ts +39 -19
@@ -124,7 +124,7 @@ function process(ctx, props) {
124
124
  properties: {
125
125
  thinking: {
126
126
  type: "string",
127
- 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."
127
+ description: "Reasoning about your current state: what's missing (preliminary) or what\nyou accomplished (completion)."
128
128
  },
129
129
  request: {
130
130
  oneOf: [
@@ -170,7 +170,7 @@ function process(ctx, props) {
170
170
  complete: "#/components/schemas/IAutoBeInterfaceSchemaReviewApplication.IComplete"
171
171
  }
172
172
  },
173
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas) or final schema review (complete). When preliminary\nreturns empty array, that type is removed from the union, physically\npreventing repeated calls."
173
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion."
174
174
  }
175
175
  },
176
176
  required: [
@@ -183,7 +183,7 @@ function process(ctx, props) {
183
183
  properties: {
184
184
  type: {
185
185
  "const": "getAnalysisSections",
186
- 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."
186
+ description: "Type discriminator."
187
187
  },
188
188
  sectionIds: {
189
189
  type: "array",
@@ -193,21 +193,21 @@ function process(ctx, props) {
193
193
  },
194
194
  minItems: 1,
195
195
  maxItems: 100,
196
- 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."
196
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls."
197
197
  }
198
198
  },
199
199
  required: [
200
200
  "type",
201
201
  "sectionIds"
202
202
  ],
203
- 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."
203
+ description: "Request to retrieve individual analysis sections by numeric ID."
204
204
  },
205
205
  IAutoBePreliminaryGetDatabaseSchemas: {
206
206
  type: "object",
207
207
  properties: {
208
208
  type: {
209
209
  "const": "getDatabaseSchemas",
210
- 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."
210
+ description: "Type discriminator."
211
211
  },
212
212
  schemaNames: {
213
213
  type: "array",
@@ -215,21 +215,21 @@ function process(ctx, props) {
215
215
  type: "string"
216
216
  },
217
217
  minItems: 1,
218
- 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."
218
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls."
219
219
  }
220
220
  },
221
221
  required: [
222
222
  "type",
223
223
  "schemaNames"
224
224
  ],
225
- 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."
225
+ description: "Request to retrieve database schema definitions for context."
226
226
  },
227
227
  IAutoBePreliminaryGetInterfaceOperations: {
228
228
  type: "object",
229
229
  properties: {
230
230
  type: {
231
231
  "const": "getInterfaceOperations",
232
- 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."
232
+ description: "Type discriminator."
233
233
  },
234
234
  endpoints: {
235
235
  type: "array",
@@ -237,14 +237,14 @@ function process(ctx, props) {
237
237
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
238
238
  },
239
239
  minItems: 1,
240
- 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."
240
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls."
241
241
  }
242
242
  },
243
243
  required: [
244
244
  "type",
245
245
  "endpoints"
246
246
  ],
247
- 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."
247
+ description: "Request to retrieve existing interface operations for context."
248
248
  },
249
249
  "AutoBeOpenApi.IEndpoint": {
250
250
  type: "object",
@@ -252,7 +252,7 @@ function process(ctx, props) {
252
252
  path: {
253
253
  type: "string",
254
254
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
255
- 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)"
255
+ 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, `/`, `{`, `}`, `-`, `_`, `.`"
256
256
  },
257
257
  method: {
258
258
  oneOf: [
@@ -272,7 +272,7 @@ function process(ctx, props) {
272
272
  "const": "patch"
273
273
  }
274
274
  ],
275
- 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"
275
+ 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."
276
276
  }
277
277
  },
278
278
  required: [
@@ -286,7 +286,7 @@ function process(ctx, props) {
286
286
  properties: {
287
287
  type: {
288
288
  "const": "getInterfaceSchemas",
289
- 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."
289
+ description: "Type discriminator."
290
290
  },
291
291
  typeNames: {
292
292
  type: "array",
@@ -294,21 +294,21 @@ function process(ctx, props) {
294
294
  type: "string"
295
295
  },
296
296
  minItems: 1,
297
- 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."
297
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls."
298
298
  }
299
299
  },
300
300
  required: [
301
301
  "type",
302
302
  "typeNames"
303
303
  ],
304
- 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."
304
+ description: "Request to retrieve OpenAPI schema type definitions for context."
305
305
  },
306
306
  IAutoBePreliminaryGetPreviousAnalysisSections: {
307
307
  type: "object",
308
308
  properties: {
309
309
  type: {
310
310
  "const": "getPreviousAnalysisSections",
311
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration."
311
+ description: "Type discriminator."
312
312
  },
313
313
  sectionIds: {
314
314
  type: "array",
@@ -317,21 +317,21 @@ function process(ctx, props) {
317
317
  minimum: 0
318
318
  },
319
319
  minItems: 1,
320
- 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."
320
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls."
321
321
  }
322
322
  },
323
323
  required: [
324
324
  "type",
325
325
  "sectionIds"
326
326
  ],
327
- 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."
327
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID."
328
328
  },
329
329
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
330
330
  type: "object",
331
331
  properties: {
332
332
  type: {
333
333
  "const": "getPreviousDatabaseSchemas",
334
- 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."
334
+ description: "Type discriminator."
335
335
  },
336
336
  schemaNames: {
337
337
  type: "array",
@@ -339,21 +339,21 @@ function process(ctx, props) {
339
339
  type: "string"
340
340
  },
341
341
  minItems: 1,
342
- 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\""
342
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls."
343
343
  }
344
344
  },
345
345
  required: [
346
346
  "type",
347
347
  "schemaNames"
348
348
  ],
349
- 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"
349
+ 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."
350
350
  },
351
351
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
352
352
  type: "object",
353
353
  properties: {
354
354
  type: {
355
355
  "const": "getPreviousInterfaceOperations",
356
- 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."
356
+ description: "Type discriminator."
357
357
  },
358
358
  endpoints: {
359
359
  type: "array",
@@ -361,21 +361,21 @@ function process(ctx, props) {
361
361
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
362
362
  },
363
363
  minItems: 1,
364
- 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\"}`"
364
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls."
365
365
  }
366
366
  },
367
367
  required: [
368
368
  "type",
369
369
  "endpoints"
370
370
  ],
371
- 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"
371
+ 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."
372
372
  },
373
373
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
374
374
  type: "object",
375
375
  properties: {
376
376
  type: {
377
377
  "const": "getPreviousInterfaceSchemas",
378
- 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."
378
+ description: "Type discriminator."
379
379
  },
380
380
  typeNames: {
381
381
  type: "array",
@@ -383,21 +383,21 @@ function process(ctx, props) {
383
383
  type: "string"
384
384
  },
385
385
  minItems: 1,
386
- 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\""
386
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls."
387
387
  }
388
388
  },
389
389
  required: [
390
390
  "type",
391
391
  "typeNames"
392
392
  ],
393
- 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"
393
+ 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."
394
394
  },
395
395
  "IAutoBeInterfaceSchemaReviewApplication.IComplete": {
396
396
  type: "object",
397
397
  properties: {
398
398
  type: {
399
399
  "const": "complete",
400
- description: "Type discriminator for the request.\n\nValue \"complete\" indicates this is the final review submission after all\npreliminary data has been gathered."
400
+ description: "Type discriminator for completion request."
401
401
  },
402
402
  review: {
403
403
  type: "string",
@@ -476,7 +476,7 @@ function process(ctx, props) {
476
476
  update: "#/components/schemas/AutoBeInterfaceSchemaPropertyUpdate"
477
477
  }
478
478
  },
479
- description: "Atomic property-level revision for DTO schema review.\n\nUsed during schema review phase to validate and correct already-documented\nDTO schemas. Each review agent (content, phantom, security, relation) uses\nthese operations to propose changes within their authority.\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`: Update documentation/metadata only (no type change)\n- `create`: Add new property that should exist\n- `update`: Replace property schema (optionally rename via `newKey`)\n- `erase`: Remove invalid/phantom property from DTO\n- `keep`: Explicit acknowledgment that property is correct as-is\n- `nullish`: Change only nullable/required status"
479
+ description: "Property-level revision: keep | depict | create | update | erase | nullish.\n\nEvery DTO property must be handled. DB properties go here or in `excludes`."
480
480
  },
481
481
  AutoBeInterfaceSchemaPropertyCreate: {
482
482
  type: "object",
@@ -565,29 +565,24 @@ function process(ctx, props) {
565
565
  type: "object",
566
566
  properties: {
567
567
  minimum: {
568
- type: "number",
569
- description: "Minimum value restriction."
568
+ type: "number"
570
569
  },
571
570
  maximum: {
572
- type: "number",
573
- description: "Maximum value restriction."
571
+ type: "number"
574
572
  },
575
573
  exclusiveMinimum: {
576
- type: "number",
577
- description: "Exclusive minimum value restriction."
574
+ type: "number"
578
575
  },
579
576
  exclusiveMaximum: {
580
- type: "number",
581
- description: "Exclusive maximum value restriction."
577
+ type: "number"
582
578
  },
583
579
  multipleOf: {
584
580
  type: "number",
585
- exclusiveMinimum: 0,
586
- description: "Multiple of value restriction."
581
+ exclusiveMinimum: 0
587
582
  },
588
583
  type: {
589
584
  "const": "number",
590
- 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."
585
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
591
586
  }
592
587
  },
593
588
  required: [
@@ -599,29 +594,24 @@ function process(ctx, props) {
599
594
  type: "object",
600
595
  properties: {
601
596
  minimum: {
602
- type: "integer",
603
- description: "Minimum value restriction."
597
+ type: "integer"
604
598
  },
605
599
  maximum: {
606
- type: "integer",
607
- description: "Maximum value restriction."
600
+ type: "integer"
608
601
  },
609
602
  exclusiveMinimum: {
610
- type: "integer",
611
- description: "Exclusive minimum value restriction."
603
+ type: "integer"
612
604
  },
613
605
  exclusiveMaximum: {
614
- type: "integer",
615
- description: "Exclusive maximum value restriction."
606
+ type: "integer"
616
607
  },
617
608
  multipleOf: {
618
609
  type: "integer",
619
- exclusiveMinimum: 0,
620
- description: "Multiple of value restriction."
610
+ exclusiveMinimum: 0
621
611
  },
622
612
  type: {
623
613
  "const": "integer",
624
- 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."
614
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
625
615
  }
626
616
  },
627
617
  required: [
@@ -706,21 +696,19 @@ function process(ctx, props) {
706
696
  },
707
697
  contentMediaType: {
708
698
  type: "string",
709
- 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."
699
+ 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."
710
700
  },
711
701
  minLength: {
712
702
  type: "integer",
713
- minimum: 0,
714
- description: "Minimum length restriction."
703
+ minimum: 0
715
704
  },
716
705
  maxLength: {
717
706
  type: "integer",
718
- minimum: 0,
719
- description: "Maximum length restriction."
707
+ minimum: 0
720
708
  },
721
709
  type: {
722
710
  "const": "string",
723
- 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."
711
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
724
712
  }
725
713
  },
726
714
  required: [
@@ -756,7 +744,7 @@ function process(ctx, props) {
756
744
  properties: {
757
745
  type: {
758
746
  "const": "null",
759
- 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."
747
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
760
748
  }
761
749
  },
762
750
  required: [
@@ -769,7 +757,7 @@ function process(ctx, props) {
769
757
  properties: {
770
758
  type: {
771
759
  "const": "boolean",
772
- 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."
760
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
773
761
  }
774
762
  },
775
763
  required: [
@@ -810,25 +798,23 @@ function process(ctx, props) {
810
798
  $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IOneOf"
811
799
  }
812
800
  ],
813
- 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>`."
801
+ description: "Type schema of array elements."
814
802
  },
815
803
  uniqueItems: {
816
804
  type: "boolean",
817
- description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items."
805
+ description: "If `true`, array elements must be unique."
818
806
  },
819
807
  minItems: {
820
808
  type: "integer",
821
- minimum: 0,
822
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array."
809
+ minimum: 0
823
810
  },
824
811
  maxItems: {
825
812
  type: "integer",
826
- minimum: 0,
827
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array."
813
+ minimum: 0
828
814
  },
829
815
  type: {
830
816
  "const": "array",
831
- 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."
817
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
832
818
  }
833
819
  },
834
820
  required: [
@@ -842,7 +828,7 @@ function process(ctx, props) {
842
828
  properties: {
843
829
  $ref: {
844
830
  type: "string",
845
- 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`"
831
+ description: "JSON Pointer reference to a named schema (e.g.,\n`#/components/schemas/SomeObject`)."
846
832
  }
847
833
  },
848
834
  required: [
@@ -893,7 +879,7 @@ function process(ctx, props) {
893
879
  required: [
894
880
  "oneOf"
895
881
  ],
896
- 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."
882
+ 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."
897
883
  },
898
884
  "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
899
885
  type: "object",
@@ -904,7 +890,7 @@ function process(ctx, props) {
904
890
  },
905
891
  mapping: {
906
892
  $ref: "#/components/schemas/Recordstringstring",
907
- 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`."
893
+ 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`."
908
894
  }
909
895
  },
910
896
  required: [
@@ -1209,14 +1195,13 @@ function process(ctx, props) {
1209
1195
  parameters: [
1210
1196
  {
1211
1197
  name: "props",
1212
- description: " Request containing either preliminary data request or complete\ntask",
1213
1198
  required: true,
1214
1199
  schema: {
1215
1200
  $ref: "#/components/schemas/IAutoBeInterfaceSchemaReviewApplication.IProps"
1216
1201
  }
1217
1202
  }
1218
1203
  ],
1219
- description: "Process schema review task or preliminary data requests.\n\nReviews and validates OpenAPI schema definitions to ensure quality,\ncorrectness, and compliance with domain requirements and system policies."
1204
+ description: "Process task or retrieve preliminary data."
1220
1205
  }
1221
1206
  ]
1222
1207
  },
@@ -2163,11 +2148,11 @@ function createController(ctx, props) {
2163
2148
  type: "object",
2164
2149
  properties: {
2165
2150
  thinking: {
2166
- 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.",
2151
+ description: "Reasoning about your current state: what's missing (preliminary) or what\nyou accomplished (completion).",
2167
2152
  type: "string"
2168
2153
  },
2169
2154
  request: {
2170
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas) or final schema review (complete). When preliminary\nreturns empty array, that type is removed from the union, physically\npreventing repeated calls.",
2155
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion.",
2171
2156
  anyOf: [
2172
2157
  {
2173
2158
  $ref: "#/$defs/IAutoBePreliminaryGetAnalysisSections"
@@ -2220,18 +2205,18 @@ function createController(ctx, props) {
2220
2205
  additionalProperties: false,
2221
2206
  $defs: {
2222
2207
  IAutoBePreliminaryGetAnalysisSections: {
2223
- 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.",
2208
+ description: "Request to retrieve individual analysis sections by numeric ID.",
2224
2209
  type: "object",
2225
2210
  properties: {
2226
2211
  type: {
2227
- 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.",
2212
+ description: "Type discriminator.",
2228
2213
  type: "string",
2229
2214
  "enum": [
2230
2215
  "getAnalysisSections"
2231
2216
  ]
2232
2217
  },
2233
2218
  sectionIds: {
2234
- 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.",
2219
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls.",
2235
2220
  type: "array",
2236
2221
  items: {
2237
2222
  type: "integer",
@@ -2247,18 +2232,18 @@ function createController(ctx, props) {
2247
2232
  ]
2248
2233
  },
2249
2234
  IAutoBePreliminaryGetDatabaseSchemas: {
2250
- 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.",
2235
+ description: "Request to retrieve database schema definitions for context.",
2251
2236
  type: "object",
2252
2237
  properties: {
2253
2238
  type: {
2254
- 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.",
2239
+ description: "Type discriminator.",
2255
2240
  type: "string",
2256
2241
  "enum": [
2257
2242
  "getDatabaseSchemas"
2258
2243
  ]
2259
2244
  },
2260
2245
  schemaNames: {
2261
- 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.",
2246
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls.",
2262
2247
  type: "array",
2263
2248
  items: {
2264
2249
  type: "string"
@@ -2272,18 +2257,18 @@ function createController(ctx, props) {
2272
2257
  ]
2273
2258
  },
2274
2259
  IAutoBePreliminaryGetInterfaceOperations: {
2275
- 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.",
2260
+ description: "Request to retrieve existing interface operations for context.",
2276
2261
  type: "object",
2277
2262
  properties: {
2278
2263
  type: {
2279
- 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.",
2264
+ description: "Type discriminator.",
2280
2265
  type: "string",
2281
2266
  "enum": [
2282
2267
  "getInterfaceOperations"
2283
2268
  ]
2284
2269
  },
2285
2270
  endpoints: {
2286
- 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.",
2271
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls.",
2287
2272
  type: "array",
2288
2273
  items: {
2289
2274
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -2301,12 +2286,12 @@ function createController(ctx, props) {
2301
2286
  type: "object",
2302
2287
  properties: {
2303
2288
  path: {
2304
- 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)",
2289
+ 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, `/`, `{`, `}`, `-`, `_`, `.`",
2305
2290
  type: "string",
2306
2291
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
2307
2292
  },
2308
2293
  method: {
2309
- 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",
2294
+ 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.",
2310
2295
  type: "string",
2311
2296
  "enum": [
2312
2297
  "get",
@@ -2323,18 +2308,18 @@ function createController(ctx, props) {
2323
2308
  ]
2324
2309
  },
2325
2310
  IAutoBePreliminaryGetInterfaceSchemas: {
2326
- 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.",
2311
+ description: "Request to retrieve OpenAPI schema type definitions for context.",
2327
2312
  type: "object",
2328
2313
  properties: {
2329
2314
  type: {
2330
- 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.",
2315
+ description: "Type discriminator.",
2331
2316
  type: "string",
2332
2317
  "enum": [
2333
2318
  "getInterfaceSchemas"
2334
2319
  ]
2335
2320
  },
2336
2321
  typeNames: {
2337
- 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.",
2322
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls.",
2338
2323
  type: "array",
2339
2324
  items: {
2340
2325
  type: "string"
@@ -2348,18 +2333,18 @@ function createController(ctx, props) {
2348
2333
  ]
2349
2334
  },
2350
2335
  IAutoBePreliminaryGetPreviousAnalysisSections: {
2351
- 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.",
2336
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID.",
2352
2337
  type: "object",
2353
2338
  properties: {
2354
2339
  type: {
2355
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration.",
2340
+ description: "Type discriminator.",
2356
2341
  type: "string",
2357
2342
  "enum": [
2358
2343
  "getPreviousAnalysisSections"
2359
2344
  ]
2360
2345
  },
2361
2346
  sectionIds: {
2362
- 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.",
2347
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls.",
2363
2348
  type: "array",
2364
2349
  items: {
2365
2350
  type: "integer",
@@ -2374,18 +2359,18 @@ function createController(ctx, props) {
2374
2359
  ]
2375
2360
  },
2376
2361
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
2377
- 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",
2362
+ 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.",
2378
2363
  type: "object",
2379
2364
  properties: {
2380
2365
  type: {
2381
- 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.",
2366
+ description: "Type discriminator.",
2382
2367
  type: "string",
2383
2368
  "enum": [
2384
2369
  "getPreviousDatabaseSchemas"
2385
2370
  ]
2386
2371
  },
2387
2372
  schemaNames: {
2388
- 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\"",
2373
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls.",
2389
2374
  type: "array",
2390
2375
  items: {
2391
2376
  type: "string"
@@ -2399,18 +2384,18 @@ function createController(ctx, props) {
2399
2384
  ]
2400
2385
  },
2401
2386
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
2402
- 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",
2387
+ 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.",
2403
2388
  type: "object",
2404
2389
  properties: {
2405
2390
  type: {
2406
- 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.",
2391
+ description: "Type discriminator.",
2407
2392
  type: "string",
2408
2393
  "enum": [
2409
2394
  "getPreviousInterfaceOperations"
2410
2395
  ]
2411
2396
  },
2412
2397
  endpoints: {
2413
- 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\"}`",
2398
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls.",
2414
2399
  type: "array",
2415
2400
  items: {
2416
2401
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -2424,18 +2409,18 @@ function createController(ctx, props) {
2424
2409
  ]
2425
2410
  },
2426
2411
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
2427
- 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",
2412
+ 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.",
2428
2413
  type: "object",
2429
2414
  properties: {
2430
2415
  type: {
2431
- 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.",
2416
+ description: "Type discriminator.",
2432
2417
  type: "string",
2433
2418
  "enum": [
2434
2419
  "getPreviousInterfaceSchemas"
2435
2420
  ]
2436
2421
  },
2437
2422
  typeNames: {
2438
- 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\"",
2423
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls.",
2439
2424
  type: "array",
2440
2425
  items: {
2441
2426
  type: "string"
@@ -2453,7 +2438,7 @@ function createController(ctx, props) {
2453
2438
  type: "object",
2454
2439
  properties: {
2455
2440
  type: {
2456
- description: "Type discriminator for the request.\n\nValue \"complete\" indicates this is the final review submission after all\npreliminary data has been gathered.",
2441
+ description: "Type discriminator for completion request.",
2457
2442
  type: "string",
2458
2443
  "enum": [
2459
2444
  "complete"
@@ -2504,7 +2489,7 @@ function createController(ctx, props) {
2504
2489
  ]
2505
2490
  },
2506
2491
  AutoBeInterfaceSchemaPropertyRevise: {
2507
- description: "Atomic property-level revision for DTO schema review.\n\nUsed during schema review phase to validate and correct already-documented\nDTO schemas. Each review agent (content, phantom, security, relation) uses\nthese operations to propose changes within their authority.\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`: Update documentation/metadata only (no type change)\n- `create`: Add new property that should exist\n- `update`: Replace property schema (optionally rename via `newKey`)\n- `erase`: Remove invalid/phantom property from DTO\n- `keep`: Explicit acknowledgment that property is correct as-is\n- `nullish`: Change only nullable/required status",
2492
+ description: "Property-level revision: keep | depict | create | update | erase | nullish.\n\nEvery DTO property must be handled. DB properties go here or in `excludes`.",
2508
2493
  anyOf: [
2509
2494
  {
2510
2495
  $ref: "#/$defs/AutoBeInterfaceSchemaPropertyCreate"
@@ -2628,28 +2613,23 @@ function createController(ctx, props) {
2628
2613
  type: "object",
2629
2614
  properties: {
2630
2615
  minimum: {
2631
- description: "Minimum value restriction.",
2632
2616
  type: "number"
2633
2617
  },
2634
2618
  maximum: {
2635
- description: "Maximum value restriction.",
2636
2619
  type: "number"
2637
2620
  },
2638
2621
  exclusiveMinimum: {
2639
- description: "Exclusive minimum value restriction.",
2640
2622
  type: "number"
2641
2623
  },
2642
2624
  exclusiveMaximum: {
2643
- description: "Exclusive maximum value restriction.",
2644
2625
  type: "number"
2645
2626
  },
2646
2627
  multipleOf: {
2647
- description: "Multiple of value restriction.",
2648
2628
  type: "number",
2649
2629
  exclusiveMinimum: 0
2650
2630
  },
2651
2631
  type: {
2652
- 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.",
2632
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2653
2633
  type: "string",
2654
2634
  "enum": [
2655
2635
  "number"
@@ -2665,28 +2645,23 @@ function createController(ctx, props) {
2665
2645
  type: "object",
2666
2646
  properties: {
2667
2647
  minimum: {
2668
- description: "Minimum value restriction.",
2669
2648
  type: "integer"
2670
2649
  },
2671
2650
  maximum: {
2672
- description: "Maximum value restriction.",
2673
2651
  type: "integer"
2674
2652
  },
2675
2653
  exclusiveMinimum: {
2676
- description: "Exclusive minimum value restriction.",
2677
2654
  type: "integer"
2678
2655
  },
2679
2656
  exclusiveMaximum: {
2680
- description: "Exclusive maximum value restriction.",
2681
2657
  type: "integer"
2682
2658
  },
2683
2659
  multipleOf: {
2684
- description: "Multiple of value restriction.",
2685
2660
  type: "integer",
2686
2661
  exclusiveMinimum: 0
2687
2662
  },
2688
2663
  type: {
2689
- 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.",
2664
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2690
2665
  type: "string",
2691
2666
  "enum": [
2692
2667
  "integer"
@@ -2733,21 +2708,19 @@ function createController(ctx, props) {
2733
2708
  type: "string"
2734
2709
  },
2735
2710
  contentMediaType: {
2736
- 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.",
2711
+ 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.",
2737
2712
  type: "string"
2738
2713
  },
2739
2714
  minLength: {
2740
- description: "Minimum length restriction.",
2741
2715
  type: "integer",
2742
2716
  minimum: 0
2743
2717
  },
2744
2718
  maxLength: {
2745
- description: "Maximum length restriction.",
2746
2719
  type: "integer",
2747
2720
  minimum: 0
2748
2721
  },
2749
2722
  type: {
2750
- 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.",
2723
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2751
2724
  type: "string",
2752
2725
  "enum": [
2753
2726
  "string"
@@ -2786,7 +2759,7 @@ function createController(ctx, props) {
2786
2759
  type: "object",
2787
2760
  properties: {
2788
2761
  type: {
2789
- 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.",
2762
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2790
2763
  type: "string",
2791
2764
  "enum": [
2792
2765
  "null"
@@ -2802,7 +2775,7 @@ function createController(ctx, props) {
2802
2775
  type: "object",
2803
2776
  properties: {
2804
2777
  type: {
2805
- 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.",
2778
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2806
2779
  type: "string",
2807
2780
  "enum": [
2808
2781
  "boolean"
@@ -2818,7 +2791,7 @@ function createController(ctx, props) {
2818
2791
  type: "object",
2819
2792
  properties: {
2820
2793
  items: {
2821
- 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>`.",
2794
+ description: "Type schema of array elements.",
2822
2795
  anyOf: [
2823
2796
  {
2824
2797
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
@@ -2850,21 +2823,19 @@ function createController(ctx, props) {
2850
2823
  ]
2851
2824
  },
2852
2825
  uniqueItems: {
2853
- description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
2826
+ description: "If `true`, array elements must be unique.",
2854
2827
  type: "boolean"
2855
2828
  },
2856
2829
  minItems: {
2857
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
2858
2830
  type: "integer",
2859
2831
  minimum: 0
2860
2832
  },
2861
2833
  maxItems: {
2862
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
2863
2834
  type: "integer",
2864
2835
  minimum: 0
2865
2836
  },
2866
2837
  type: {
2867
- 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.",
2838
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2868
2839
  type: "string",
2869
2840
  "enum": [
2870
2841
  "array"
@@ -2881,7 +2852,7 @@ function createController(ctx, props) {
2881
2852
  type: "object",
2882
2853
  properties: {
2883
2854
  $ref: {
2884
- 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`",
2855
+ description: "JSON Pointer reference to a named schema (e.g.,\n`#/components/schemas/SomeObject`).",
2885
2856
  type: "string"
2886
2857
  }
2887
2858
  },
@@ -2890,7 +2861,7 @@ function createController(ctx, props) {
2890
2861
  ]
2891
2862
  },
2892
2863
  "AutoBeOpenApi.IJsonSchema.IOneOf": {
2893
- 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.",
2864
+ 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.",
2894
2865
  type: "object",
2895
2866
  properties: {
2896
2867
  oneOf: {
@@ -2943,7 +2914,7 @@ function createController(ctx, props) {
2943
2914
  type: "string"
2944
2915
  },
2945
2916
  mapping: {
2946
- 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`.",
2917
+ 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`.",
2947
2918
  $ref: "#/$defs/Recordstringstring"
2948
2919
  }
2949
2920
  },
@@ -3256,7 +3227,7 @@ function createController(ctx, props) {
3256
3227
  }
3257
3228
  }
3258
3229
  },
3259
- description: "Process schema review task or preliminary data requests.\n\nReviews and validates OpenAPI schema definitions to ensure quality,\ncorrectness, and compliance with domain requirements and system policies.",
3230
+ description: "Process task or retrieve preliminary data.",
3260
3231
  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 && (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 => {
3261
3232
  const value = input[key];
3262
3233
  if (undefined === value)