@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
@@ -121,7 +121,7 @@ Task: ${task}
121
121
  properties: {
122
122
  thinking: {
123
123
  type: "string",
124
- 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."
124
+ description: "Reasoning about your current state: what's missing (preliminary) or what\nyou accomplished (completion)."
125
125
  },
126
126
  request: {
127
127
  oneOf: [
@@ -167,7 +167,7 @@ Task: ${task}
167
167
  complete: "#/components/schemas/IAutoBeInterfaceSchemaComplementApplication.IComplete"
168
168
  }
169
169
  },
170
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas, getPreviousAnalysisSections,\ngetPreviousDatabaseSchemas, getPreviousInterfaceOperations,\ngetPreviousInterfaceSchemas) or final schema complementation (complete).\nWhen preliminary returns empty array, that type is removed from the\nunion, physically preventing repeated calls."
170
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion."
171
171
  }
172
172
  },
173
173
  required: [
@@ -180,7 +180,7 @@ Task: ${task}
180
180
  properties: {
181
181
  type: {
182
182
  "const": "getAnalysisSections",
183
- 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."
183
+ description: "Type discriminator."
184
184
  },
185
185
  sectionIds: {
186
186
  type: "array",
@@ -190,21 +190,21 @@ Task: ${task}
190
190
  },
191
191
  minItems: 1,
192
192
  maxItems: 100,
193
- 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."
193
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls."
194
194
  }
195
195
  },
196
196
  required: [
197
197
  "type",
198
198
  "sectionIds"
199
199
  ],
200
- 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."
200
+ description: "Request to retrieve individual analysis sections by numeric ID."
201
201
  },
202
202
  IAutoBePreliminaryGetDatabaseSchemas: {
203
203
  type: "object",
204
204
  properties: {
205
205
  type: {
206
206
  "const": "getDatabaseSchemas",
207
- 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."
207
+ description: "Type discriminator."
208
208
  },
209
209
  schemaNames: {
210
210
  type: "array",
@@ -212,21 +212,21 @@ Task: ${task}
212
212
  type: "string"
213
213
  },
214
214
  minItems: 1,
215
- 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."
215
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls."
216
216
  }
217
217
  },
218
218
  required: [
219
219
  "type",
220
220
  "schemaNames"
221
221
  ],
222
- 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."
222
+ description: "Request to retrieve database schema definitions for context."
223
223
  },
224
224
  IAutoBePreliminaryGetInterfaceOperations: {
225
225
  type: "object",
226
226
  properties: {
227
227
  type: {
228
228
  "const": "getInterfaceOperations",
229
- 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."
229
+ description: "Type discriminator."
230
230
  },
231
231
  endpoints: {
232
232
  type: "array",
@@ -234,14 +234,14 @@ Task: ${task}
234
234
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
235
235
  },
236
236
  minItems: 1,
237
- 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."
237
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls."
238
238
  }
239
239
  },
240
240
  required: [
241
241
  "type",
242
242
  "endpoints"
243
243
  ],
244
- 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."
244
+ description: "Request to retrieve existing interface operations for context."
245
245
  },
246
246
  "AutoBeOpenApi.IEndpoint": {
247
247
  type: "object",
@@ -249,7 +249,7 @@ Task: ${task}
249
249
  path: {
250
250
  type: "string",
251
251
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
252
- 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)"
252
+ 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, `/`, `{`, `}`, `-`, `_`, `.`"
253
253
  },
254
254
  method: {
255
255
  oneOf: [
@@ -269,7 +269,7 @@ Task: ${task}
269
269
  "const": "patch"
270
270
  }
271
271
  ],
272
- 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"
272
+ 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."
273
273
  }
274
274
  },
275
275
  required: [
@@ -283,7 +283,7 @@ Task: ${task}
283
283
  properties: {
284
284
  type: {
285
285
  "const": "getInterfaceSchemas",
286
- 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."
286
+ description: "Type discriminator."
287
287
  },
288
288
  typeNames: {
289
289
  type: "array",
@@ -291,21 +291,21 @@ Task: ${task}
291
291
  type: "string"
292
292
  },
293
293
  minItems: 1,
294
- 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."
294
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls."
295
295
  }
296
296
  },
297
297
  required: [
298
298
  "type",
299
299
  "typeNames"
300
300
  ],
301
- 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."
301
+ description: "Request to retrieve OpenAPI schema type definitions for context."
302
302
  },
303
303
  IAutoBePreliminaryGetPreviousAnalysisSections: {
304
304
  type: "object",
305
305
  properties: {
306
306
  type: {
307
307
  "const": "getPreviousAnalysisSections",
308
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration."
308
+ description: "Type discriminator."
309
309
  },
310
310
  sectionIds: {
311
311
  type: "array",
@@ -314,21 +314,21 @@ Task: ${task}
314
314
  minimum: 0
315
315
  },
316
316
  minItems: 1,
317
- 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."
317
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls."
318
318
  }
319
319
  },
320
320
  required: [
321
321
  "type",
322
322
  "sectionIds"
323
323
  ],
324
- 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."
324
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID."
325
325
  },
326
326
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
327
327
  type: "object",
328
328
  properties: {
329
329
  type: {
330
330
  "const": "getPreviousDatabaseSchemas",
331
- 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."
331
+ description: "Type discriminator."
332
332
  },
333
333
  schemaNames: {
334
334
  type: "array",
@@ -336,21 +336,21 @@ Task: ${task}
336
336
  type: "string"
337
337
  },
338
338
  minItems: 1,
339
- 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\""
339
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls."
340
340
  }
341
341
  },
342
342
  required: [
343
343
  "type",
344
344
  "schemaNames"
345
345
  ],
346
- 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"
346
+ 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."
347
347
  },
348
348
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
349
349
  type: "object",
350
350
  properties: {
351
351
  type: {
352
352
  "const": "getPreviousInterfaceOperations",
353
- 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."
353
+ description: "Type discriminator."
354
354
  },
355
355
  endpoints: {
356
356
  type: "array",
@@ -358,21 +358,21 @@ Task: ${task}
358
358
  $ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
359
359
  },
360
360
  minItems: 1,
361
- 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\"}`"
361
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls."
362
362
  }
363
363
  },
364
364
  required: [
365
365
  "type",
366
366
  "endpoints"
367
367
  ],
368
- 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"
368
+ 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."
369
369
  },
370
370
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
371
371
  type: "object",
372
372
  properties: {
373
373
  type: {
374
374
  "const": "getPreviousInterfaceSchemas",
375
- 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."
375
+ description: "Type discriminator."
376
376
  },
377
377
  typeNames: {
378
378
  type: "array",
@@ -380,33 +380,33 @@ Task: ${task}
380
380
  type: "string"
381
381
  },
382
382
  minItems: 1,
383
- 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\""
383
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls."
384
384
  }
385
385
  },
386
386
  required: [
387
387
  "type",
388
388
  "typeNames"
389
389
  ],
390
- 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"
390
+ 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."
391
391
  },
392
392
  "IAutoBeInterfaceSchemaComplementApplication.IComplete": {
393
393
  type: "object",
394
394
  properties: {
395
395
  type: {
396
396
  "const": "complete",
397
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request."
397
+ description: "Type discriminator for completion request."
398
398
  },
399
399
  analysis: {
400
400
  type: "string",
401
- description: "Analysis of the missing type's purpose and context.\n\nBefore designing the schema, analyze what you know:\n\n- What is this missing type for? Why is it referenced?\n- Where is it referenced from? ($ref in which schemas/operations?)\n- What does the reference context tell us about its expected structure?\n- Are there similar types that provide structural hints?"
401
+ description: "Analysis of the missing type's purpose and reference context."
402
402
  },
403
403
  rationale: {
404
404
  type: "string",
405
- description: "Rationale for the schema design decisions.\n\nExplain why you designed the schema this way:\n\n- Which properties did you include and why?\n- What is required vs optional, and why?\n- Which types use $ref and why?\n- What was excluded and why? (e.g., auto-generated fields for ICreate)"
405
+ description: "Rationale for the schema design decisions."
406
406
  },
407
407
  design: {
408
408
  $ref: "#/components/schemas/AutoBeInterfaceSchemaDesign",
409
- description: "Design structure for the missing schema being complemented.\n\nContains `databaseSchema`, `specification`, `description`, and `schema`\nfields that together define a complete DTO type component."
409
+ description: "Schema design: database mapping, specification, description, and JSON\nSchema."
410
410
  }
411
411
  },
412
412
  required: [
@@ -415,7 +415,7 @@ Task: ${task}
415
415
  "rationale",
416
416
  "design"
417
417
  ],
418
- description: "Request to add a missing schema definition.\n\nExecutes schema complementation to fill in a referenced but undefined\nschema type in the OpenAPI document's components.schemas section. Ensures\nthe $ref reference resolves to a valid schema definition."
418
+ description: "Add a missing schema definition referenced by $ref in components.schemas."
419
419
  },
420
420
  AutoBeInterfaceSchemaDesign: {
421
421
  type: "object",
@@ -429,19 +429,19 @@ Task: ${task}
429
429
  type: "string"
430
430
  }
431
431
  ],
432
- description: "Database model name that this schema maps to.\n\nSpecifies which database table/model this DTO type corresponds to. Creates\na traceable link between API types and database entities.\n\n- Set to the exact model name (e.g., `\"shopping_customers\"`,\n `\"bbs_articles\"`) when this schema directly represents or derives from a\n database entity\n- Set to `null` for:\n\n - Computed/aggregated types (e.g., statistics, summaries from multiple\n tables)\n - Types composed purely by business logic (e.g., search filters, pagination)\n - Embedded JSON structures without dedicated tables\n\nWhen `null`, the `specification` field becomes critical for downstream\nagents to understand how to implement data retrieval or computation."
432
+ description: "Database model name this schema maps to, or `null` for computed/aggregated\ntypes.\n\nWhen `null`, `specification` becomes critical for downstream agents."
433
433
  },
434
434
  specification: {
435
435
  type: "string",
436
- description: "Implementation specification for downstream agents.\n\nDetailed guidance on HOW to implement data retrieval, transformation, or\ncomputation for this type. Internal documentation for Realize Agent, Test\nAgent, and other implementation agents - NOT exposed in public API docs.\n\n**When `databaseSchema` is set** (direct mapping):\n\n- Can be brief for simple cases\n- Focus on any non-obvious mapping details\n\n**When `databaseSchema` is `null`** (computed/aggregated types):\n\nThis field is CRITICAL. Must include:\n\n- Source tables and columns involved\n- JOIN conditions between tables\n- Aggregation formulas (SUM, COUNT, AVG, etc.)\n- Business rules and transformation logic\n- Edge cases (nulls, empty sets, defaults)\n\nMust be precise enough for downstream agents to implement the actual data\nretrieval or computation. Vague specifications are unacceptable."
436
+ description: "Implementation guidance for downstream agents (Realize, Test). NOT exposed\nin public API docs.\n\nWhen `databaseSchema` is set: brief mapping details. When `null`: MUST\ninclude source tables, JOINs, aggregation formulas, business rules, and\nedge cases."
437
437
  },
438
438
  description: {
439
439
  type: "string",
440
- description: "API documentation for consumers.\n\nStandard OpenAPI description displayed in Swagger UI, SDK documentation,\nand other API documentation tools. Focus on explaining WHAT the type\nrepresents and WHY it exists from an API consumer's perspective.\n\nGuidelines:\n\n- Reference corresponding database schema documentation for consistency\n- Organize into multiple paragraphs for complex types\n- Focus on business meaning, relationships, and constraints\n- Keep accessible to API consumers (no implementation details)\n- MUST be written in English"
440
+ description: "API documentation for consumers (Swagger UI). Focus on WHAT the type\nrepresents. Reference DB schema documentation for consistency.\n\n- MUST be written in English"
441
441
  },
442
442
  schema: {
443
443
  $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema",
444
- description: "JSON Schema definition for the type.\n\nThe actual type structure following OpenAPI v3.1 JSON Schema specification.\nCan be any valid JSON Schema type: object, array, string, number, integer,\nboolean, oneOf, or $ref.\n\nImportant:\n\n- For union types, use `oneOf` - NEVER use array notation in `type` field\n- For nullable types, use `oneOf: [{ type: \"...\" }, { type: \"null\" }]`\n- Object properties should have clear, descriptive names in camelCase\n- Use `$ref` for referencing other named schemas"
444
+ description: "JSON Schema definition.\n\nFor union/nullable types, use `oneOf` \u2014 NEVER array in `type` field. Use\n`$ref` for referencing named schemas. Object property names in camelCase."
445
445
  }
446
446
  },
447
447
  required: [
@@ -450,7 +450,7 @@ Task: ${task}
450
450
  "description",
451
451
  "schema"
452
452
  ],
453
- description: "Design structure for creating OpenAPI schema components.\n\nSeparates schema metadata from the actual JSON Schema definition, allowing\nclear organization of implementation details (`specification`), API\ndocumentation (`description`), and the type structure (`schema`).\n\nThe `specification` and `description` fields are documented at the design\nlevel, separate from the `schema` field which holds the pure type structure."
453
+ description: "Design structure for creating an OpenAPI schema component.\n\nSeparates schema metadata (specification, description) from the JSON Schema\ndefinition (schema)."
454
454
  },
455
455
  "AutoBeOpenApi.IJsonSchema": {
456
456
  oneOf: [
@@ -485,35 +485,30 @@ Task: ${task}
485
485
  $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.INull"
486
486
  }
487
487
  ],
488
- description: "Type schema info.\n\n`AutoBeOpenApi.IJsonSchema` is a type schema info of the OpenAPI\nGenerative.\n\n`AutoBeOpenApi.IJsonSchema` basically follows the JSON schema specification\nof OpenAPI v3.1, but a little bit shrunk to remove ambiguous and duplicated\nexpressions of OpenAPI v3.1 for the convenience, clarity, and AI\ngeneration.\n\n## CRITICAL: Union Type Expression\n\nIn this type system, union types (including nullable types) MUST be\nexpressed using the `IOneOf` structure. NEVER use array notation in the\n`type` field.\n\n\u274C **FORBIDDEN** - Array notation in type field:\n\n```typescript\n{\n \"type\": [\"string\", \"null\"] // NEVER DO THIS!\n}\n```\n\n\u2705 **CORRECT** - Using IOneOf for unions:\n\n```typescript\n// For nullable string:\n{\n oneOf: [{ type: \"string\" }, { type: \"null\" }];\n}\n\n// For string | number union:\n{\n oneOf: [{ type: \"string\" }, { type: \"number\" }];\n}\n```\n\nThe `type` field in any schema object is a discriminator that identifies\nthe schema type and MUST contain exactly one string value."
488
+ description: "JSON Schema type following OpenAPI v3.1 (simplified).\n\nCRITICAL: Union types MUST use `IOneOf`. NEVER use array in `type` field.\n\nWrong: `{ type: [\"string\", \"null\"] }` Correct: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`\n\nThe `type` field is a discriminator and MUST be a single string value."
489
489
  },
490
490
  "AutoBeOpenApi.IJsonSchema.IInteger": {
491
491
  type: "object",
492
492
  properties: {
493
493
  minimum: {
494
- type: "integer",
495
- description: "Minimum value restriction."
494
+ type: "integer"
496
495
  },
497
496
  maximum: {
498
- type: "integer",
499
- description: "Maximum value restriction."
497
+ type: "integer"
500
498
  },
501
499
  exclusiveMinimum: {
502
- type: "integer",
503
- description: "Exclusive minimum value restriction."
500
+ type: "integer"
504
501
  },
505
502
  exclusiveMaximum: {
506
- type: "integer",
507
- description: "Exclusive maximum value restriction."
503
+ type: "integer"
508
504
  },
509
505
  multipleOf: {
510
506
  type: "integer",
511
- exclusiveMinimum: 0,
512
- description: "Multiple of value restriction."
507
+ exclusiveMinimum: 0
513
508
  },
514
509
  type: {
515
510
  "const": "integer",
516
- 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."
511
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
517
512
  }
518
513
  },
519
514
  required: [
@@ -525,29 +520,24 @@ Task: ${task}
525
520
  type: "object",
526
521
  properties: {
527
522
  minimum: {
528
- type: "number",
529
- description: "Minimum value restriction."
523
+ type: "number"
530
524
  },
531
525
  maximum: {
532
- type: "number",
533
- description: "Maximum value restriction."
526
+ type: "number"
534
527
  },
535
528
  exclusiveMinimum: {
536
- type: "number",
537
- description: "Exclusive minimum value restriction."
529
+ type: "number"
538
530
  },
539
531
  exclusiveMaximum: {
540
- type: "number",
541
- description: "Exclusive maximum value restriction."
532
+ type: "number"
542
533
  },
543
534
  multipleOf: {
544
535
  type: "number",
545
- exclusiveMinimum: 0,
546
- description: "Multiple of value restriction."
536
+ exclusiveMinimum: 0
547
537
  },
548
538
  type: {
549
539
  "const": "number",
550
- 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."
540
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
551
541
  }
552
542
  },
553
543
  required: [
@@ -632,21 +622,19 @@ Task: ${task}
632
622
  },
633
623
  contentMediaType: {
634
624
  type: "string",
635
- 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."
625
+ 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."
636
626
  },
637
627
  minLength: {
638
628
  type: "integer",
639
- minimum: 0,
640
- description: "Minimum length restriction."
629
+ minimum: 0
641
630
  },
642
631
  maxLength: {
643
632
  type: "integer",
644
- minimum: 0,
645
- description: "Maximum length restriction."
633
+ minimum: 0
646
634
  },
647
635
  type: {
648
636
  "const": "string",
649
- 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."
637
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
650
638
  }
651
639
  },
652
640
  required: [
@@ -682,7 +670,7 @@ Task: ${task}
682
670
  properties: {
683
671
  type: {
684
672
  "const": "boolean",
685
- 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."
673
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
686
674
  }
687
675
  },
688
676
  required: [
@@ -723,25 +711,23 @@ Task: ${task}
723
711
  $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IOneOf"
724
712
  }
725
713
  ],
726
- 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>`."
714
+ description: "Type schema of array elements."
727
715
  },
728
716
  uniqueItems: {
729
717
  type: "boolean",
730
- description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items."
718
+ description: "If `true`, array elements must be unique."
731
719
  },
732
720
  minItems: {
733
721
  type: "integer",
734
- minimum: 0,
735
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array."
722
+ minimum: 0
736
723
  },
737
724
  maxItems: {
738
725
  type: "integer",
739
- minimum: 0,
740
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array."
726
+ minimum: 0
741
727
  },
742
728
  type: {
743
729
  "const": "array",
744
- 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."
730
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
745
731
  }
746
732
  },
747
733
  required: [
@@ -755,7 +741,7 @@ Task: ${task}
755
741
  properties: {
756
742
  type: {
757
743
  "const": "null",
758
- 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."
744
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
759
745
  }
760
746
  },
761
747
  required: [
@@ -768,7 +754,7 @@ Task: ${task}
768
754
  properties: {
769
755
  $ref: {
770
756
  type: "string",
771
- 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`"
757
+ description: "JSON Pointer reference to a named schema (e.g.,\n`#/components/schemas/SomeObject`)."
772
758
  }
773
759
  },
774
760
  required: [
@@ -819,7 +805,7 @@ Task: ${task}
819
805
  required: [
820
806
  "oneOf"
821
807
  ],
822
- 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."
808
+ 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."
823
809
  },
824
810
  "AutoBeOpenApi.IJsonSchema.IOneOf.IDiscriminator": {
825
811
  type: "object",
@@ -830,7 +816,7 @@ Task: ${task}
830
816
  },
831
817
  mapping: {
832
818
  $ref: "#/components/schemas/Recordstringstring",
833
- 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`."
819
+ 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`."
834
820
  }
835
821
  },
836
822
  required: [
@@ -852,7 +838,7 @@ Task: ${task}
852
838
  properties: {
853
839
  properties: {
854
840
  $ref: "#/components/schemas/RecordstringAutoBeOpenApi.IJsonSchema",
855
- description: "Properties of the object.\n\nThe `properties` means a list of key-value pairs of the object's\nregular properties. The key is the name of the regular property, and\nthe value is the type schema info.\n\nIf you need additional properties that is represented by dynamic key,\nyou can use the {@link additionalProperties} instead."
841
+ description: "Key-value pairs of the object's named properties."
856
842
  },
857
843
  additionalProperties: {
858
844
  oneOf: [
@@ -887,18 +873,18 @@ Task: ${task}
887
873
  $ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IOneOf"
888
874
  }
889
875
  ],
890
- description: "Additional properties' info.\n\nThe `additionalProperties` means the type schema info of the additional\nproperties that are not listed in the {@link properties}.\n\nIf the value is `false`, it means that the additional properties are\nnot specified. Otherwise, if the value is {@link IJsonSchema} type, it\nmeans that the additional properties must follow the type schema info.\n\n- `false`: No additional properties\n- `IJsonSchema`: `Record<string, T>`"
876
+ description: "Schema for dynamic keys (`Record<string, T>`), or `false` if no\nadditional properties are allowed."
891
877
  },
892
878
  required: {
893
879
  type: "array",
894
880
  items: {
895
881
  type: "string"
896
882
  },
897
- description: "List of key values of the required properties.\n\nThe `required` means a list of the key values of the required\n{@link properties}. If some property key is not listed in the `required`\nlist, it means that property is optional. Otherwise some property key\nexists in the `required` list, it means that the property must be\nfilled.\n\nBelow is an example of the {@link properties} and `required`.\n\n```typescript\ninterface SomeObject {\n id: string;\n email: string;\n name?: string;\n}\n```\n\nAs you can see, `id` and `email` {@link properties} are {@link required},\nso that they are listed in the `required` list.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" }\n },\n \"required\": [\"id\", \"email\"]\n}\n```"
883
+ description: "Property keys that must be present. Properties not listed here are\noptional."
898
884
  },
899
885
  type: {
900
886
  "const": "object",
901
- 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."
887
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`"
902
888
  }
903
889
  },
904
890
  required: [
@@ -926,14 +912,13 @@ Task: ${task}
926
912
  parameters: [
927
913
  {
928
914
  name: "props",
929
- description: " Request containing either preliminary data request or complete\ntask",
930
915
  required: true,
931
916
  schema: {
932
917
  $ref: "#/components/schemas/IAutoBeInterfaceSchemaComplementApplication.IProps"
933
918
  }
934
919
  }
935
920
  ],
936
- description: "Process schema complement task or preliminary data requests.\n\nAdds missing schema definitions to ensure OpenAPI document is complete and\nall referenced schemas are properly defined."
921
+ description: "Process task or retrieve preliminary data."
937
922
  }
938
923
  ]
939
924
  },
@@ -1777,11 +1762,11 @@ function createController(ctx, props) {
1777
1762
  type: "object",
1778
1763
  properties: {
1779
1764
  thinking: {
1780
- 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.",
1765
+ description: "Reasoning about your current state: what's missing (preliminary) or what\nyou accomplished (completion).",
1781
1766
  type: "string"
1782
1767
  },
1783
1768
  request: {
1784
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisSections, getDatabaseSchemas, getInterfaceOperations,\ngetInterfaceSchemas, getPreviousAnalysisSections,\ngetPreviousDatabaseSchemas, getPreviousInterfaceOperations,\ngetPreviousInterfaceSchemas) or final schema complementation (complete).\nWhen preliminary returns empty array, that type is removed from the\nunion, physically preventing repeated calls.",
1769
+ description: "Action to perform. Exhausted preliminary types are removed from the\nunion.",
1785
1770
  anyOf: [
1786
1771
  {
1787
1772
  $ref: "#/$defs/IAutoBePreliminaryGetAnalysisSections"
@@ -1834,18 +1819,18 @@ function createController(ctx, props) {
1834
1819
  additionalProperties: false,
1835
1820
  $defs: {
1836
1821
  IAutoBePreliminaryGetAnalysisSections: {
1837
- 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.",
1822
+ description: "Request to retrieve individual analysis sections by numeric ID.",
1838
1823
  type: "object",
1839
1824
  properties: {
1840
1825
  type: {
1841
- 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.",
1826
+ description: "Type discriminator.",
1842
1827
  type: "string",
1843
1828
  "enum": [
1844
1829
  "getAnalysisSections"
1845
1830
  ]
1846
1831
  },
1847
1832
  sectionIds: {
1848
- 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.",
1833
+ description: "Section IDs to retrieve. DO NOT request same IDs already requested in\nprevious calls.",
1849
1834
  type: "array",
1850
1835
  items: {
1851
1836
  type: "integer",
@@ -1861,18 +1846,18 @@ function createController(ctx, props) {
1861
1846
  ]
1862
1847
  },
1863
1848
  IAutoBePreliminaryGetDatabaseSchemas: {
1864
- 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.",
1849
+ description: "Request to retrieve database schema definitions for context.",
1865
1850
  type: "object",
1866
1851
  properties: {
1867
1852
  type: {
1868
- 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.",
1853
+ description: "Type discriminator.",
1869
1854
  type: "string",
1870
1855
  "enum": [
1871
1856
  "getDatabaseSchemas"
1872
1857
  ]
1873
1858
  },
1874
1859
  schemaNames: {
1875
- 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.",
1860
+ description: "Database table names to retrieve. DO NOT request same names already\nrequested in previous calls.",
1876
1861
  type: "array",
1877
1862
  items: {
1878
1863
  type: "string"
@@ -1886,18 +1871,18 @@ function createController(ctx, props) {
1886
1871
  ]
1887
1872
  },
1888
1873
  IAutoBePreliminaryGetInterfaceOperations: {
1889
- 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.",
1874
+ description: "Request to retrieve existing interface operations for context.",
1890
1875
  type: "object",
1891
1876
  properties: {
1892
1877
  type: {
1893
- 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.",
1878
+ description: "Type discriminator.",
1894
1879
  type: "string",
1895
1880
  "enum": [
1896
1881
  "getInterfaceOperations"
1897
1882
  ]
1898
1883
  },
1899
1884
  endpoints: {
1900
- 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.",
1885
+ description: "API operation endpoints to retrieve. DO NOT request same endpoints already\nrequested in previous calls.",
1901
1886
  type: "array",
1902
1887
  items: {
1903
1888
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -1915,12 +1900,12 @@ function createController(ctx, props) {
1915
1900
  type: "object",
1916
1901
  properties: {
1917
1902
  path: {
1918
- 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)",
1903
+ 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, `/`, `{`, `}`, `-`, `_`, `.`",
1919
1904
  type: "string",
1920
1905
  pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
1921
1906
  },
1922
1907
  method: {
1923
- 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",
1908
+ 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.",
1924
1909
  type: "string",
1925
1910
  "enum": [
1926
1911
  "get",
@@ -1937,18 +1922,18 @@ function createController(ctx, props) {
1937
1922
  ]
1938
1923
  },
1939
1924
  IAutoBePreliminaryGetInterfaceSchemas: {
1940
- 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.",
1925
+ description: "Request to retrieve OpenAPI schema type definitions for context.",
1941
1926
  type: "object",
1942
1927
  properties: {
1943
1928
  type: {
1944
- 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.",
1929
+ description: "Type discriminator.",
1945
1930
  type: "string",
1946
1931
  "enum": [
1947
1932
  "getInterfaceSchemas"
1948
1933
  ]
1949
1934
  },
1950
1935
  typeNames: {
1951
- 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.",
1936
+ description: "Schema type names to retrieve. DO NOT request same names already requested\nin previous calls.",
1952
1937
  type: "array",
1953
1938
  items: {
1954
1939
  type: "string"
@@ -1962,18 +1947,18 @@ function createController(ctx, props) {
1962
1947
  ]
1963
1948
  },
1964
1949
  IAutoBePreliminaryGetPreviousAnalysisSections: {
1965
- 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.",
1950
+ description: "Request to retrieve analysis sections from the previous iteration by numeric\nID.",
1966
1951
  type: "object",
1967
1952
  properties: {
1968
1953
  type: {
1969
- description: "Type discriminator for the request.\n\nValue \"getPreviousAnalysisSections\" indicates this is a preliminary data\nrequest for analysis sections from the previous iteration.",
1954
+ description: "Type discriminator.",
1970
1955
  type: "string",
1971
1956
  "enum": [
1972
1957
  "getPreviousAnalysisSections"
1973
1958
  ]
1974
1959
  },
1975
1960
  sectionIds: {
1976
- 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.",
1961
+ description: "Section IDs to retrieve from previous iteration. DO NOT request same IDs\nalready requested in previous calls.",
1977
1962
  type: "array",
1978
1963
  items: {
1979
1964
  type: "integer",
@@ -1988,18 +1973,18 @@ function createController(ctx, props) {
1988
1973
  ]
1989
1974
  },
1990
1975
  IAutoBePreliminaryGetPreviousDatabaseSchemas: {
1991
- 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",
1976
+ 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.",
1992
1977
  type: "object",
1993
1978
  properties: {
1994
1979
  type: {
1995
- 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.",
1980
+ description: "Type discriminator.",
1996
1981
  type: "string",
1997
1982
  "enum": [
1998
1983
  "getPreviousDatabaseSchemas"
1999
1984
  ]
2000
1985
  },
2001
1986
  schemaNames: {
2002
- 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\"",
1987
+ description: "Table names to retrieve from previous iteration. DO NOT request same names\nalready requested in previous calls.",
2003
1988
  type: "array",
2004
1989
  items: {
2005
1990
  type: "string"
@@ -2013,18 +1998,18 @@ function createController(ctx, props) {
2013
1998
  ]
2014
1999
  },
2015
2000
  IAutoBePreliminaryGetPreviousInterfaceOperations: {
2016
- 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",
2001
+ 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.",
2017
2002
  type: "object",
2018
2003
  properties: {
2019
2004
  type: {
2020
- 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.",
2005
+ description: "Type discriminator.",
2021
2006
  type: "string",
2022
2007
  "enum": [
2023
2008
  "getPreviousInterfaceOperations"
2024
2009
  ]
2025
2010
  },
2026
2011
  endpoints: {
2027
- 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\"}`",
2012
+ description: "Endpoints to retrieve from previous iteration. DO NOT request same\nendpoints already requested in previous calls.",
2028
2013
  type: "array",
2029
2014
  items: {
2030
2015
  $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
@@ -2038,18 +2023,18 @@ function createController(ctx, props) {
2038
2023
  ]
2039
2024
  },
2040
2025
  IAutoBePreliminaryGetPreviousInterfaceSchemas: {
2041
- 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",
2026
+ 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.",
2042
2027
  type: "object",
2043
2028
  properties: {
2044
2029
  type: {
2045
- 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.",
2030
+ description: "Type discriminator.",
2046
2031
  type: "string",
2047
2032
  "enum": [
2048
2033
  "getPreviousInterfaceSchemas"
2049
2034
  ]
2050
2035
  },
2051
2036
  typeNames: {
2052
- 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\"",
2037
+ description: "Schema type names to retrieve from previous iteration. DO NOT request same\nnames already requested in previous calls.",
2053
2038
  type: "array",
2054
2039
  items: {
2055
2040
  type: "string"
@@ -2063,26 +2048,26 @@ function createController(ctx, props) {
2063
2048
  ]
2064
2049
  },
2065
2050
  "IAutoBeInterfaceSchemaComplementApplication.IComplete": {
2066
- description: "Request to add a missing schema definition.\n\nExecutes schema complementation to fill in a referenced but undefined\nschema type in the OpenAPI document's components.schemas section. Ensures\nthe $ref reference resolves to a valid schema definition.",
2051
+ description: "Add a missing schema definition referenced by $ref in components.schemas.",
2067
2052
  type: "object",
2068
2053
  properties: {
2069
2054
  type: {
2070
- description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
2055
+ description: "Type discriminator for completion request.",
2071
2056
  type: "string",
2072
2057
  "enum": [
2073
2058
  "complete"
2074
2059
  ]
2075
2060
  },
2076
2061
  analysis: {
2077
- description: "Analysis of the missing type's purpose and context.\n\nBefore designing the schema, analyze what you know:\n\n- What is this missing type for? Why is it referenced?\n- Where is it referenced from? ($ref in which schemas/operations?)\n- What does the reference context tell us about its expected structure?\n- Are there similar types that provide structural hints?",
2062
+ description: "Analysis of the missing type's purpose and reference context.",
2078
2063
  type: "string"
2079
2064
  },
2080
2065
  rationale: {
2081
- description: "Rationale for the schema design decisions.\n\nExplain why you designed the schema this way:\n\n- Which properties did you include and why?\n- What is required vs optional, and why?\n- Which types use $ref and why?\n- What was excluded and why? (e.g., auto-generated fields for ICreate)",
2066
+ description: "Rationale for the schema design decisions.",
2082
2067
  type: "string"
2083
2068
  },
2084
2069
  design: {
2085
- description: "Design structure for the missing schema being complemented.\n\nContains `databaseSchema`, `specification`, `description`, and `schema`\nfields that together define a complete DTO type component.",
2070
+ description: "Schema design: database mapping, specification, description, and JSON\nSchema.",
2086
2071
  $ref: "#/$defs/AutoBeInterfaceSchemaDesign"
2087
2072
  }
2088
2073
  },
@@ -2094,11 +2079,11 @@ function createController(ctx, props) {
2094
2079
  ]
2095
2080
  },
2096
2081
  AutoBeInterfaceSchemaDesign: {
2097
- description: "Design structure for creating OpenAPI schema components.\n\nSeparates schema metadata from the actual JSON Schema definition, allowing\nclear organization of implementation details (`specification`), API\ndocumentation (`description`), and the type structure (`schema`).\n\nThe `specification` and `description` fields are documented at the design\nlevel, separate from the `schema` field which holds the pure type structure.",
2082
+ description: "Design structure for creating an OpenAPI schema component.\n\nSeparates schema metadata (specification, description) from the JSON Schema\ndefinition (schema).",
2098
2083
  type: "object",
2099
2084
  properties: {
2100
2085
  databaseSchema: {
2101
- description: "Database model name that this schema maps to.\n\nSpecifies which database table/model this DTO type corresponds to. Creates\na traceable link between API types and database entities.\n\n- Set to the exact model name (e.g., `\"shopping_customers\"`,\n `\"bbs_articles\"`) when this schema directly represents or derives from a\n database entity\n- Set to `null` for:\n\n - Computed/aggregated types (e.g., statistics, summaries from multiple\n tables)\n - Types composed purely by business logic (e.g., search filters, pagination)\n - Embedded JSON structures without dedicated tables\n\nWhen `null`, the `specification` field becomes critical for downstream\nagents to understand how to implement data retrieval or computation.",
2086
+ description: "Database model name this schema maps to, or `null` for computed/aggregated\ntypes.\n\nWhen `null`, `specification` becomes critical for downstream agents.",
2102
2087
  anyOf: [
2103
2088
  {
2104
2089
  type: "null"
@@ -2109,15 +2094,15 @@ function createController(ctx, props) {
2109
2094
  ]
2110
2095
  },
2111
2096
  specification: {
2112
- description: "Implementation specification for downstream agents.\n\nDetailed guidance on HOW to implement data retrieval, transformation, or\ncomputation for this type. Internal documentation for Realize Agent, Test\nAgent, and other implementation agents - NOT exposed in public API docs.\n\n**When `databaseSchema` is set** (direct mapping):\n\n- Can be brief for simple cases\n- Focus on any non-obvious mapping details\n\n**When `databaseSchema` is `null`** (computed/aggregated types):\n\nThis field is CRITICAL. Must include:\n\n- Source tables and columns involved\n- JOIN conditions between tables\n- Aggregation formulas (SUM, COUNT, AVG, etc.)\n- Business rules and transformation logic\n- Edge cases (nulls, empty sets, defaults)\n\nMust be precise enough for downstream agents to implement the actual data\nretrieval or computation. Vague specifications are unacceptable.",
2097
+ description: "Implementation guidance for downstream agents (Realize, Test). NOT exposed\nin public API docs.\n\nWhen `databaseSchema` is set: brief mapping details. When `null`: MUST\ninclude source tables, JOINs, aggregation formulas, business rules, and\nedge cases.",
2113
2098
  type: "string"
2114
2099
  },
2115
2100
  description: {
2116
- description: "API documentation for consumers.\n\nStandard OpenAPI description displayed in Swagger UI, SDK documentation,\nand other API documentation tools. Focus on explaining WHAT the type\nrepresents and WHY it exists from an API consumer's perspective.\n\nGuidelines:\n\n- Reference corresponding database schema documentation for consistency\n- Organize into multiple paragraphs for complex types\n- Focus on business meaning, relationships, and constraints\n- Keep accessible to API consumers (no implementation details)\n- MUST be written in English",
2101
+ description: "API documentation for consumers (Swagger UI). Focus on WHAT the type\nrepresents. Reference DB schema documentation for consistency.\n\n- MUST be written in English",
2117
2102
  type: "string"
2118
2103
  },
2119
2104
  schema: {
2120
- description: "JSON Schema definition for the type.\n\nThe actual type structure following OpenAPI v3.1 JSON Schema specification.\nCan be any valid JSON Schema type: object, array, string, number, integer,\nboolean, oneOf, or $ref.\n\nImportant:\n\n- For union types, use `oneOf` - NEVER use array notation in `type` field\n- For nullable types, use `oneOf: [{ type: \"...\" }, { type: \"null\" }]`\n- Object properties should have clear, descriptive names in camelCase\n- Use `$ref` for referencing other named schemas",
2105
+ description: "JSON Schema definition.\n\nFor union/nullable types, use `oneOf` \u2014 NEVER array in `type` field. Use\n`$ref` for referencing named schemas. Object property names in camelCase.",
2121
2106
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema"
2122
2107
  }
2123
2108
  },
@@ -2129,7 +2114,7 @@ function createController(ctx, props) {
2129
2114
  ]
2130
2115
  },
2131
2116
  "AutoBeOpenApi.IJsonSchema": {
2132
- description: "Type schema info.\n\n`AutoBeOpenApi.IJsonSchema` is a type schema info of the OpenAPI\nGenerative.\n\n`AutoBeOpenApi.IJsonSchema` basically follows the JSON schema specification\nof OpenAPI v3.1, but a little bit shrunk to remove ambiguous and duplicated\nexpressions of OpenAPI v3.1 for the convenience, clarity, and AI\ngeneration.\n\n## CRITICAL: Union Type Expression\n\nIn this type system, union types (including nullable types) MUST be\nexpressed using the `IOneOf` structure. NEVER use array notation in the\n`type` field.\n\n\u274C **FORBIDDEN** - Array notation in type field:\n\n```typescript\n{\n \"type\": [\"string\", \"null\"] // NEVER DO THIS!\n}\n```\n\n\u2705 **CORRECT** - Using IOneOf for unions:\n\n```typescript\n// For nullable string:\n{\n oneOf: [{ type: \"string\" }, { type: \"null\" }];\n}\n\n// For string | number union:\n{\n oneOf: [{ type: \"string\" }, { type: \"number\" }];\n}\n```\n\nThe `type` field in any schema object is a discriminator that identifies\nthe schema type and MUST contain exactly one string value.",
2117
+ description: "JSON Schema type following OpenAPI v3.1 (simplified).\n\nCRITICAL: Union types MUST use `IOneOf`. NEVER use array in `type` field.\n\nWrong: `{ type: [\"string\", \"null\"] }` Correct: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`\n\nThe `type` field is a discriminator and MUST be a single string value.",
2133
2118
  anyOf: [
2134
2119
  {
2135
2120
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.IInteger"
@@ -2168,28 +2153,23 @@ function createController(ctx, props) {
2168
2153
  type: "object",
2169
2154
  properties: {
2170
2155
  minimum: {
2171
- description: "Minimum value restriction.",
2172
2156
  type: "integer"
2173
2157
  },
2174
2158
  maximum: {
2175
- description: "Maximum value restriction.",
2176
2159
  type: "integer"
2177
2160
  },
2178
2161
  exclusiveMinimum: {
2179
- description: "Exclusive minimum value restriction.",
2180
2162
  type: "integer"
2181
2163
  },
2182
2164
  exclusiveMaximum: {
2183
- description: "Exclusive maximum value restriction.",
2184
2165
  type: "integer"
2185
2166
  },
2186
2167
  multipleOf: {
2187
- description: "Multiple of value restriction.",
2188
2168
  type: "integer",
2189
2169
  exclusiveMinimum: 0
2190
2170
  },
2191
2171
  type: {
2192
- 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.",
2172
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2193
2173
  type: "string",
2194
2174
  "enum": [
2195
2175
  "integer"
@@ -2205,28 +2185,23 @@ function createController(ctx, props) {
2205
2185
  type: "object",
2206
2186
  properties: {
2207
2187
  minimum: {
2208
- description: "Minimum value restriction.",
2209
2188
  type: "number"
2210
2189
  },
2211
2190
  maximum: {
2212
- description: "Maximum value restriction.",
2213
2191
  type: "number"
2214
2192
  },
2215
2193
  exclusiveMinimum: {
2216
- description: "Exclusive minimum value restriction.",
2217
2194
  type: "number"
2218
2195
  },
2219
2196
  exclusiveMaximum: {
2220
- description: "Exclusive maximum value restriction.",
2221
2197
  type: "number"
2222
2198
  },
2223
2199
  multipleOf: {
2224
- description: "Multiple of value restriction.",
2225
2200
  type: "number",
2226
2201
  exclusiveMinimum: 0
2227
2202
  },
2228
2203
  type: {
2229
- 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.",
2204
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2230
2205
  type: "string",
2231
2206
  "enum": [
2232
2207
  "number"
@@ -2273,21 +2248,19 @@ function createController(ctx, props) {
2273
2248
  type: "string"
2274
2249
  },
2275
2250
  contentMediaType: {
2276
- 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.",
2251
+ 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.",
2277
2252
  type: "string"
2278
2253
  },
2279
2254
  minLength: {
2280
- description: "Minimum length restriction.",
2281
2255
  type: "integer",
2282
2256
  minimum: 0
2283
2257
  },
2284
2258
  maxLength: {
2285
- description: "Maximum length restriction.",
2286
2259
  type: "integer",
2287
2260
  minimum: 0
2288
2261
  },
2289
2262
  type: {
2290
- 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.",
2263
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2291
2264
  type: "string",
2292
2265
  "enum": [
2293
2266
  "string"
@@ -2326,7 +2299,7 @@ function createController(ctx, props) {
2326
2299
  type: "object",
2327
2300
  properties: {
2328
2301
  type: {
2329
- 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.",
2302
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2330
2303
  type: "string",
2331
2304
  "enum": [
2332
2305
  "boolean"
@@ -2342,7 +2315,7 @@ function createController(ctx, props) {
2342
2315
  type: "object",
2343
2316
  properties: {
2344
2317
  items: {
2345
- 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>`.",
2318
+ description: "Type schema of array elements.",
2346
2319
  anyOf: [
2347
2320
  {
2348
2321
  $ref: "#/$defs/AutoBeOpenApi.IJsonSchema.INumber"
@@ -2374,21 +2347,19 @@ function createController(ctx, props) {
2374
2347
  ]
2375
2348
  },
2376
2349
  uniqueItems: {
2377
- description: "Unique items restriction.\n\nIf this property value is `true`, target array must have unique items.",
2350
+ description: "If `true`, array elements must be unique.",
2378
2351
  type: "boolean"
2379
2352
  },
2380
2353
  minItems: {
2381
- description: "Minimum items restriction.\n\nRestriction of minimum number of items in the array.",
2382
2354
  type: "integer",
2383
2355
  minimum: 0
2384
2356
  },
2385
2357
  maxItems: {
2386
- description: "Maximum items restriction.\n\nRestriction of maximum number of items in the array.",
2387
2358
  type: "integer",
2388
2359
  minimum: 0
2389
2360
  },
2390
2361
  type: {
2391
- 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.",
2362
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2392
2363
  type: "string",
2393
2364
  "enum": [
2394
2365
  "array"
@@ -2405,7 +2376,7 @@ function createController(ctx, props) {
2405
2376
  type: "object",
2406
2377
  properties: {
2407
2378
  type: {
2408
- 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.",
2379
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2409
2380
  type: "string",
2410
2381
  "enum": [
2411
2382
  "null"
@@ -2421,7 +2392,7 @@ function createController(ctx, props) {
2421
2392
  type: "object",
2422
2393
  properties: {
2423
2394
  $ref: {
2424
- 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`",
2395
+ description: "JSON Pointer reference to a named schema (e.g.,\n`#/components/schemas/SomeObject`).",
2425
2396
  type: "string"
2426
2397
  }
2427
2398
  },
@@ -2430,7 +2401,7 @@ function createController(ctx, props) {
2430
2401
  ]
2431
2402
  },
2432
2403
  "AutoBeOpenApi.IJsonSchema.IOneOf": {
2433
- 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.",
2404
+ 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.",
2434
2405
  type: "object",
2435
2406
  properties: {
2436
2407
  oneOf: {
@@ -2483,7 +2454,7 @@ function createController(ctx, props) {
2483
2454
  type: "string"
2484
2455
  },
2485
2456
  mapping: {
2486
- 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`.",
2457
+ 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`.",
2487
2458
  $ref: "#/$defs/Recordstringstring"
2488
2459
  }
2489
2460
  },
@@ -2505,11 +2476,11 @@ function createController(ctx, props) {
2505
2476
  type: "object",
2506
2477
  properties: {
2507
2478
  properties: {
2508
- description: "Properties of the object.\n\nThe `properties` means a list of key-value pairs of the object's\nregular properties. The key is the name of the regular property, and\nthe value is the type schema info.\n\nIf you need additional properties that is represented by dynamic key,\nyou can use the {@link additionalProperties} instead.",
2479
+ description: "Key-value pairs of the object's named properties.",
2509
2480
  $ref: "#/$defs/RecordstringAutoBeOpenApi.IJsonSchema"
2510
2481
  },
2511
2482
  additionalProperties: {
2512
- description: "Additional properties' info.\n\nThe `additionalProperties` means the type schema info of the additional\nproperties that are not listed in the {@link properties}.\n\nIf the value is `false`, it means that the additional properties are\nnot specified. Otherwise, if the value is {@link IJsonSchema} type, it\nmeans that the additional properties must follow the type schema info.\n\n- `false`: No additional properties\n- `IJsonSchema`: `Record<string, T>`",
2483
+ description: "Schema for dynamic keys (`Record<string, T>`), or `false` if no\nadditional properties are allowed.",
2513
2484
  anyOf: [
2514
2485
  {
2515
2486
  type: "boolean",
@@ -2547,14 +2518,14 @@ function createController(ctx, props) {
2547
2518
  ]
2548
2519
  },
2549
2520
  required: {
2550
- description: "List of key values of the required properties.\n\nThe `required` means a list of the key values of the required\n{@link properties}. If some property key is not listed in the `required`\nlist, it means that property is optional. Otherwise some property key\nexists in the `required` list, it means that the property must be\nfilled.\n\nBelow is an example of the {@link properties} and `required`.\n\n```typescript\ninterface SomeObject {\n id: string;\n email: string;\n name?: string;\n}\n```\n\nAs you can see, `id` and `email` {@link properties} are {@link required},\nso that they are listed in the `required` list.\n\n```json\n{\n \"type\": \"object\",\n \"properties\": {\n \"id\": { \"type\": \"string\" },\n \"email\": { \"type\": \"string\" },\n \"name\": { \"type\": \"string\" }\n },\n \"required\": [\"id\", \"email\"]\n}\n```",
2521
+ description: "Property keys that must be present. Properties not listed here are\noptional.",
2551
2522
  type: "array",
2552
2523
  items: {
2553
2524
  type: "string"
2554
2525
  }
2555
2526
  },
2556
2527
  type: {
2557
- 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.",
2528
+ description: "Discriminator value. MUST be a single string, NEVER an array.\n\nFor nullable types, use `IOneOf` instead: `{ oneOf: [{ type: \"string\"\n}, { type: \"null\" }] }`",
2558
2529
  type: "string",
2559
2530
  "enum": [
2560
2531
  "object"
@@ -2578,7 +2549,7 @@ function createController(ctx, props) {
2578
2549
  }
2579
2550
  }
2580
2551
  },
2581
- description: "Process schema complement task or preliminary data requests.\n\nAdds missing schema definitions to ensure OpenAPI document is complete and\nall referenced schemas are properly defined.",
2552
+ description: "Process task or retrieve preliminary data.",
2582
2553
  validate: (() => { const _iv9 = 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 _vv20 = 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 && _iu1(input.request)); const _io1 = input => "getAnalysisSections" === input.type && (Array.isArray(input.sectionIds) && (1 <= input.sectionIds.length && input.sectionIds.length <= 100 && input.sectionIds.every(elem => "number" === typeof elem && __typia_transform__isTypeUint32._isTypeUint32(elem)))); const _io2 = input => "getDatabaseSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "getInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io4 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io5 = input => "getInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io6 = input => "getPreviousAnalysisSections" === input.type && (Array.isArray(input.sectionIds) && (1 <= input.sectionIds.length && input.sectionIds.every(elem => "number" === typeof elem && __typia_transform__isTypeUint32._isTypeUint32(elem)))); const _io7 = input => "getPreviousDatabaseSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io8 = input => "getPreviousInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io9 = input => "getPreviousInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io10 = input => "complete" === input.type && "string" === typeof input.analysis && "string" === typeof input.rationale && ("object" === typeof input.design && null !== input.design && _io11(input.design)); const _io11 = input => (null === input.databaseSchema || "string" === typeof input.databaseSchema) && "string" === typeof input.specification && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu2(input.schema)); const _io12 = 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 _io13 = 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 _io14 = input => (undefined === input.format || true === _iv9.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 _io15 = input => "string" === typeof input["const"] || "number" === typeof input["const"] || "boolean" === typeof input["const"]; const _io16 = input => "boolean" === input.type; const _io17 = 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 _io18 = input => "string" === typeof input.$ref; const _io19 = input => Array.isArray(input.oneOf) && input.oneOf.every(elem => "object" === typeof elem && null !== elem && _iu0(elem)) && (undefined === input.discriminator || "object" === typeof input.discriminator && null !== input.discriminator && _io21(input.discriminator)); const _io20 = input => "null" === input.type; const _io21 = input => "string" === typeof input.propertyName && (undefined === input.mapping || "object" === typeof input.mapping && null !== input.mapping && false === Array.isArray(input.mapping) && _io22(input.mapping)); const _io22 = input => Object.keys(input).every(key => {
2583
2554
  const value = input[key];
2584
2555
  if (undefined === value)