@autobe/agent 0.30.0-dev.20260315 → 0.30.0
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.
- package/LICENSE +661 -661
- package/lib/constants/AutoBeTemplateFileConstant.d.ts +1 -1
- package/lib/factory/consentFunctionCall.js +4 -4
- package/lib/factory/createAutoBeContext.js +24 -24
- package/lib/factory/createAutoBeMessageContent.js +6 -6
- package/lib/index.mjs +41 -41
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.js +18 -18
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.js +13 -13
- package/lib/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.js +47 -47
- package/lib/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.js +66 -66
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.js +91 -91
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.js +46 -46
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.js +72 -72
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js +1 -1
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.js +5 -5
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.js +44 -44
- package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js +44 -44
- package/lib/orchestrate/common/internal/fixPrelminaryApplication.js +22 -22
- package/lib/orchestrate/common/internal/validatePreliminary.js +116 -116
- package/lib/orchestrate/facade/createAutoBeFacadeController.js +3 -3
- package/lib/orchestrate/facade/structures/transformFacadeStateMessage.js +20 -20
- package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.js +34 -34
- package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.js +37 -37
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js +56 -56
- package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.js +26 -26
- package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.js +28 -28
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.js +11 -11
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js +38 -38
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js +29 -29
- package/lib/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.js +15 -15
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js +6 -6
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js +25 -25
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.js +67 -67
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.js +60 -60
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.js +83 -83
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js +29 -29
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js +74 -74
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.js +46 -46
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +9 -9
- package/lib/orchestrate/interface/orchestrateInterfaceOperation.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +4 -4
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js +5 -5
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js +1 -1
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.js +90 -90
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.js +6 -6
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.js +25 -25
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.js +71 -71
- package/lib/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.js +162 -162
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.js +11 -11
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.js +73 -73
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.js +35 -35
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.js +11 -11
- package/lib/orchestrate/interface/utils/AutoBeJsonSchemaFactory.js +4 -4
- package/lib/orchestrate/interface/utils/AutoBeJsonSchemaValidator.js +283 -283
- package/lib/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.js +76 -76
- package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.js +76 -76
- package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.js +51 -51
- package/lib/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.js +54 -54
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js +83 -83
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js +6 -6
- package/lib/orchestrate/prisma/histories/transformPrismaGroupHistory.js +22 -22
- package/lib/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.js +41 -41
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js +39 -39
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.js +41 -41
- package/lib/orchestrate/prisma/orchestratePrismaAuthorization.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaGroup.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js +1 -1
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.js +23 -23
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.js +7 -7
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.js +5 -5
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.js +20 -20
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.js +13 -13
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.js +51 -51
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.js +25 -25
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js +28 -28
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js +14 -14
- package/lib/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.js +42 -42
- package/lib/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.js +27 -27
- package/lib/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.js +57 -57
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js +35 -35
- package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js +14 -14
- package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js +37 -37
- package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js.map +1 -1
- package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js +47 -47
- package/lib/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.js +27 -27
- package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js +51 -51
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCollectorPlan.js +11 -11
- package/lib/orchestrate/realize/orchestrateRealizeCollectorWrite.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeOperationWrite.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeTransformerPlan.js +11 -11
- package/lib/orchestrate/realize/orchestrateRealizeTransformerWrite.js +1 -1
- package/lib/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.js +41 -41
- package/lib/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.js +21 -21
- package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js +57 -57
- package/lib/orchestrate/realize/utils/getRealizeWriteInputType.js +3 -3
- package/lib/orchestrate/realize/utils/printErrorHints.js +5 -5
- package/lib/orchestrate/test/compile/getTestImportStatements.js +9 -9
- package/lib/orchestrate/test/histories/transformTestAuthorizeWriteHistory.js +38 -38
- package/lib/orchestrate/test/histories/transformTestGenerationWriteHistory.js +79 -79
- package/lib/orchestrate/test/histories/transformTestOperationWriteHistory.js +162 -162
- package/lib/orchestrate/test/histories/transformTestPrepareWriteHistory.js +54 -54
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.js +31 -31
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js +27 -27
- package/lib/orchestrate/test/orchestrateTestScenario.js +1 -1
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1 -1
- package/lib/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.js +31 -31
- package/lib/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.js +23 -23
- package/lib/orchestrate/test/programmers/AutoBeTestOperationProgrammer.js +6 -6
- package/lib/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.js +34 -34
- package/lib/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.js +39 -39
- package/lib/utils/predicateStateMessage.js +19 -19
- package/lib/utils/validateEmptyCode.js +16 -16
- package/package.json +5 -5
- package/src/AutoBeAgent.ts +374 -374
- package/src/AutoBeAgentBase.ts +126 -126
- package/src/AutoBeMockAgent.ts +254 -254
- package/src/constants/AutoBeConfigConstant.ts +173 -173
- package/src/constants/AutoBeTemplateFileConstant.ts +1 -1
- package/src/context/AutoBeContext.ts +107 -107
- package/src/context/AutoBeState.ts +66 -66
- package/src/context/AutoBeTokenUsage.ts +307 -307
- package/src/context/AutoBeTokenUsageComponent.ts +227 -227
- package/src/describe/describe.ts +47 -47
- package/src/describe/image/histories/transformImageDescribeDraftHistories.ts +16 -16
- package/src/describe/image/orchestrateImageDescribeDraft.ts +200 -200
- package/src/describe/image/structures/IAutoBeImageDescribeDraftApplication.ts +92 -92
- package/src/describe/imageDescribe.ts +64 -64
- package/src/factory/consentFunctionCall.ts +141 -141
- package/src/factory/createAgenticaHistory.ts +71 -71
- package/src/factory/createAutoBeContext.ts +584 -584
- package/src/factory/createAutoBeMessageContent.ts +36 -36
- package/src/factory/createAutoBeState.ts +20 -20
- package/src/factory/getAutoBeGenerated.ts +317 -317
- package/src/factory/getAutoBeRealizeGenerated.ts +31 -31
- package/src/factory/getCriticalCompiler.ts +52 -52
- package/src/factory/index.ts +1 -1
- package/src/factory/mergeSystemMessages.ts +60 -60
- package/src/factory/supportFunctionCallFallback.ts +214 -214
- package/src/factory/supportMistral.ts +138 -138
- package/src/index.ts +16 -16
- package/src/orchestrate/analyze/fillTocDeterministic.ts +280 -280
- package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.ts +55 -55
- package/src/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.ts +74 -74
- package/src/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.ts +179 -179
- package/src/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.ts +163 -163
- package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.ts +191 -191
- package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.ts +122 -122
- package/src/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.ts +161 -161
- package/src/orchestrate/analyze/index.ts +7 -7
- package/src/orchestrate/analyze/orchestrateAnalyze.ts +1693 -1693
- package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +267 -267
- package/src/orchestrate/analyze/orchestrateAnalyzeScenarioReview.ts +122 -122
- package/src/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.ts +146 -146
- package/src/orchestrate/analyze/orchestrateAnalyzeSectionReview.ts +154 -154
- package/src/orchestrate/analyze/orchestrateAnalyzeWriteSection.ts +388 -388
- package/src/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.ts +407 -407
- package/src/orchestrate/analyze/orchestrateAnalyzeWriteUnit.ts +348 -348
- package/src/orchestrate/analyze/programmers/AutoBeAnalyzeProgrammer.ts +149 -149
- package/src/orchestrate/analyze/structures/FixedAnalyzeTemplate.ts +961 -961
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +141 -141
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.ts +96 -96
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.ts +160 -160
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.ts +192 -192
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.ts +142 -142
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.ts +123 -123
- package/src/orchestrate/analyze/utils/buildConstraintConsistencyReport.ts +813 -813
- package/src/orchestrate/analyze/utils/buildErrorCodeRegistry.ts +324 -324
- package/src/orchestrate/analyze/utils/buildHardValidators.ts +88 -88
- package/src/orchestrate/analyze/utils/detectInventedEntities.ts +87 -87
- package/src/orchestrate/analyze/utils/detectProseConstraintConflicts.ts +319 -319
- package/src/orchestrate/analyze/utils/repairSectionReviewUtils.ts +181 -181
- package/src/orchestrate/analyze/utils/repairUtils.ts +60 -60
- package/src/orchestrate/analyze/utils/validateScenarioBasics.ts +104 -104
- package/src/orchestrate/common/AutoBePreliminaryController.ts +400 -400
- package/src/orchestrate/common/histories/transformCommonCorrectCastingHistory.ts +32 -32
- package/src/orchestrate/common/histories/transformPreliminaryHistory.ts +742 -742
- package/src/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.ts +77 -77
- package/src/orchestrate/common/internal/complementPreliminaryCollection.ts +263 -263
- package/src/orchestrate/common/internal/convertToSectionEntries.ts +57 -57
- package/src/orchestrate/common/internal/createPreliminaryCollection.ts +76 -76
- package/src/orchestrate/common/internal/fixPrelminaryApplication.ts +346 -346
- package/src/orchestrate/common/internal/validatePreliminary.ts +671 -671
- package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +223 -223
- package/src/orchestrate/common/orchestratePreliminary.ts +610 -610
- package/src/orchestrate/common/structures/AutoBePreliminaryRequest.ts +42 -42
- package/src/orchestrate/common/structures/IAnalysisSectionEntry.ts +35 -35
- package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +72 -72
- package/src/orchestrate/common/structures/IAutoBeOrchestrateResult.ts +28 -28
- package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +52 -52
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.ts +34 -34
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.ts +31 -31
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +32 -32
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +31 -31
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.ts +28 -28
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.ts +88 -88
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.ts +102 -102
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.ts +105 -105
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.ts +32 -32
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.ts +32 -32
- package/src/orchestrate/facade/createAutoBeFacadeController.ts +118 -118
- package/src/orchestrate/facade/histories/IAutoBeFacadeApplication.ts +139 -139
- package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationProps.ts +8 -8
- package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationResult.ts +9 -9
- package/src/orchestrate/facade/structures/transformFacadeStateMessage.ts +59 -59
- package/src/orchestrate/index.ts +5 -5
- package/src/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.ts +83 -83
- package/src/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.ts +78 -78
- package/src/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.ts +129 -129
- package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.ts +74 -74
- package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.ts +68 -68
- package/src/orchestrate/interface/histories/transformInterfaceCommonHistory.ts +64 -64
- package/src/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.ts +42 -42
- package/src/orchestrate/interface/histories/transformInterfaceGroupHistory.ts +103 -103
- package/src/orchestrate/interface/histories/transformInterfaceOperationHistory.ts +81 -81
- package/src/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.ts +53 -53
- package/src/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.ts +49 -49
- package/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.ts +94 -94
- package/src/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.ts +122 -122
- package/src/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.ts +192 -192
- package/src/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.ts +189 -189
- package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.ts +63 -63
- package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.ts +173 -173
- package/src/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.ts +88 -88
- package/src/orchestrate/interface/index.ts +6 -6
- package/src/orchestrate/interface/orchestrateInterface.ts +118 -118
- package/src/orchestrate/interface/orchestrateInterfaceActionEndpoint.ts +58 -58
- package/src/orchestrate/interface/orchestrateInterfaceAuthorization.ts +208 -208
- package/src/orchestrate/interface/orchestrateInterfaceBaseEndpoint.ts +55 -55
- package/src/orchestrate/interface/orchestrateInterfaceEndpoint.ts +67 -67
- package/src/orchestrate/interface/orchestrateInterfaceEndpointOverall.ts +80 -80
- package/src/orchestrate/interface/orchestrateInterfaceEndpointReview.ts +212 -212
- package/src/orchestrate/interface/orchestrateInterfaceEndpointWrite.ts +236 -236
- package/src/orchestrate/interface/orchestrateInterfaceGroup.ts +166 -166
- package/src/orchestrate/interface/orchestrateInterfaceOperation.ts +322 -322
- package/src/orchestrate/interface/orchestrateInterfaceOperationReview.ts +245 -245
- package/src/orchestrate/interface/orchestrateInterfacePrerequisite.ts +240 -240
- package/src/orchestrate/interface/orchestrateInterfaceSchema.ts +191 -191
- package/src/orchestrate/interface/orchestrateInterfaceSchemaCasting.ts +274 -274
- package/src/orchestrate/interface/orchestrateInterfaceSchemaComplement.ts +329 -329
- package/src/orchestrate/interface/orchestrateInterfaceSchemaRefine.ts +292 -292
- package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +266 -266
- package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +310 -310
- package/src/orchestrate/interface/orchestrateInterfaceSchemaWrite.ts +283 -283
- package/src/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.ts +260 -260
- package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.ts +155 -155
- package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.ts +139 -139
- package/src/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.ts +277 -277
- package/src/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.ts +259 -259
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.ts +152 -152
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.ts +347 -347
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.ts +183 -183
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.ts +263 -263
- package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.ts +135 -135
- package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +128 -128
- package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.ts +133 -133
- package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +122 -122
- package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +178 -178
- package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.ts +175 -175
- package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +130 -130
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +121 -121
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.ts +153 -153
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.ts +123 -123
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.ts +181 -181
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.ts +45 -45
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.ts +108 -108
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaCollection.ts +42 -42
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaFactory.ts +714 -714
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaNamingConvention.ts +86 -86
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaValidator.ts +725 -725
- package/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.ts +219 -219
- package/src/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.ts +144 -144
- package/src/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.ts +104 -104
- package/src/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.ts +97 -97
- package/src/orchestrate/prisma/histories/transformPrismaComponentsHistory.ts +136 -136
- package/src/orchestrate/prisma/histories/transformPrismaCorrectHistory.ts +41 -41
- package/src/orchestrate/prisma/histories/transformPrismaGroupHistory.ts +63 -63
- package/src/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.ts +79 -79
- package/src/orchestrate/prisma/histories/transformPrismaSchemaHistory.ts +97 -97
- package/src/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.ts +126 -126
- package/src/orchestrate/prisma/index.ts +7 -7
- package/src/orchestrate/prisma/orchestratePrisma.ts +296 -296
- package/src/orchestrate/prisma/orchestratePrismaAuthorization.ts +173 -173
- package/src/orchestrate/prisma/orchestratePrismaAuthorizationReview.ts +183 -183
- package/src/orchestrate/prisma/orchestratePrismaComponent.ts +205 -205
- package/src/orchestrate/prisma/orchestratePrismaComponentReview.ts +205 -205
- package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +265 -265
- package/src/orchestrate/prisma/orchestratePrismaGroup.ts +121 -121
- package/src/orchestrate/prisma/orchestratePrismaGroupReview.ts +141 -141
- package/src/orchestrate/prisma/orchestratePrismaSchema.ts +218 -218
- package/src/orchestrate/prisma/orchestratePrismaSchemaReview.ts +220 -220
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.ts +86 -86
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.ts +103 -103
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.ts +80 -80
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.ts +168 -168
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.ts +63 -63
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.ts +210 -210
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseModelProgrammer.ts +57 -57
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.ts +92 -92
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.ts +147 -147
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.ts +153 -153
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.ts +142 -142
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.ts +151 -151
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.ts +157 -157
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.ts +117 -117
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.ts +154 -154
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.ts +144 -144
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.ts +138 -138
- package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.ts +89 -89
- package/src/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.ts +45 -45
- package/src/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.ts +137 -137
- package/src/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.ts +64 -64
- package/src/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.ts +147 -147
- package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.ts +69 -69
- package/src/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.ts +94 -94
- package/src/orchestrate/realize/histories/transformRealizeOperationWriteHistory.ts +127 -127
- package/src/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.ts +147 -147
- package/src/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.ts +61 -61
- package/src/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.ts +133 -133
- package/src/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.ts +30 -30
- package/src/orchestrate/realize/index.ts +3 -3
- package/src/orchestrate/realize/internal/orchestrateRealizeCorrectCasting.ts +444 -444
- package/src/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.ts +449 -449
- package/src/orchestrate/realize/orchestrateRealize.ts +143 -143
- package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +207 -207
- package/src/orchestrate/realize/orchestrateRealizeAuthorizationWrite.ts +209 -209
- package/src/orchestrate/realize/orchestrateRealizeCollector.ts +41 -41
- package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectCasting.ts +43 -43
- package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.ts +157 -157
- package/src/orchestrate/realize/orchestrateRealizeCollectorPlan.ts +264 -264
- package/src/orchestrate/realize/orchestrateRealizeCollectorWrite.ts +225 -225
- package/src/orchestrate/realize/orchestrateRealizeOperation.ts +48 -48
- package/src/orchestrate/realize/orchestrateRealizeOperationCorrectCasting.ts +69 -69
- package/src/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.ts +173 -173
- package/src/orchestrate/realize/orchestrateRealizeOperationWrite.ts +262 -262
- package/src/orchestrate/realize/orchestrateRealizeTransformer.ts +41 -41
- package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.ts +38 -38
- package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.ts +160 -160
- package/src/orchestrate/realize/orchestrateRealizeTransformerPlan.ts +254 -254
- package/src/orchestrate/realize/orchestrateRealizeTransformerWrite.ts +226 -226
- package/src/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.ts +424 -424
- package/src/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.ts +409 -409
- package/src/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.ts +451 -451
- package/src/orchestrate/realize/programmers/compileRealizeFiles.ts +65 -65
- package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +119 -119
- package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.ts +167 -167
- package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.ts +191 -191
- package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.ts +177 -177
- package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.ts +207 -207
- package/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.ts +11 -11
- package/src/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.ts +134 -134
- package/src/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.ts +138 -138
- package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.ts +32 -32
- package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.ts +248 -248
- package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.ts +150 -150
- package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.ts +278 -278
- package/src/orchestrate/realize/utils/AuthorizationFileSystem.ts +10 -10
- package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationFileSystem.ts +9 -9
- package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationReplaceImport.ts +62 -62
- package/src/orchestrate/realize/utils/InternalFileSystem.ts +12 -12
- package/src/orchestrate/realize/utils/ProviderFileSystem.ts +4 -4
- package/src/orchestrate/realize/utils/filterDiagnostics.ts +25 -25
- package/src/orchestrate/realize/utils/generateTS2339Hints.ts +54 -54
- package/src/orchestrate/realize/utils/getRealizeWriteImportStatements.ts +42 -42
- package/src/orchestrate/realize/utils/getRealizeWriteInputType.ts +88 -88
- package/src/orchestrate/realize/utils/printErrorHints.ts +54 -54
- package/src/orchestrate/test/compile/getTestArtifacts.ts +124 -124
- package/src/orchestrate/test/compile/getTestExternalDeclarations.ts +39 -39
- package/src/orchestrate/test/compile/getTestImportStatements.ts +27 -27
- package/src/orchestrate/test/experimental/orchestrateTestCorrect.ast +237 -237
- package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +322 -322
- package/src/orchestrate/test/experimental/transformTestCorrectHistories.ast +52 -52
- package/src/orchestrate/test/histories/transformTestAuthorizeWriteHistory.ts +80 -80
- package/src/orchestrate/test/histories/transformTestCorrectOverallHistory.ts +116 -116
- package/src/orchestrate/test/histories/transformTestGenerationWriteHistory.ts +118 -118
- package/src/orchestrate/test/histories/transformTestOperationWriteHistory.ts +287 -287
- package/src/orchestrate/test/histories/transformTestPrepareWriteHistory.ts +95 -95
- package/src/orchestrate/test/histories/transformTestScenarioHistory.ts +120 -120
- package/src/orchestrate/test/histories/transformTestScenarioReviewHistory.ts +99 -99
- package/src/orchestrate/test/histories/transformTestValidateEvent.ts +11 -11
- package/src/orchestrate/test/index.ts +5 -5
- package/src/orchestrate/test/internal/orchestrateTestCorrectCasting.ts +96 -96
- package/src/orchestrate/test/internal/orchestrateTestCorrectOverall.ts +219 -219
- package/src/orchestrate/test/internal/orchestrateTestCorrectRequest.ts +206 -206
- package/src/orchestrate/test/orchestrateTest.ts +161 -161
- package/src/orchestrate/test/orchestrateTestAuthorize.ts +125 -125
- package/src/orchestrate/test/orchestrateTestAuthorizeWrite.ts +263 -263
- package/src/orchestrate/test/orchestrateTestGenerate.ts +121 -121
- package/src/orchestrate/test/orchestrateTestGenerateWrite.ts +211 -211
- package/src/orchestrate/test/orchestrateTestOperation.ts +133 -133
- package/src/orchestrate/test/orchestrateTestOperationWrite.ts +221 -221
- package/src/orchestrate/test/orchestrateTestPrepare.ts +117 -117
- package/src/orchestrate/test/orchestrateTestPrepareWrite.ts +264 -264
- package/src/orchestrate/test/orchestrateTestScenario.ts +290 -290
- package/src/orchestrate/test/orchestrateTestScenarioReview.ts +262 -262
- package/src/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.ts +149 -149
- package/src/orchestrate/test/programmers/AutoBeTestFunctionProgrammer.ts +90 -90
- package/src/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.ts +170 -170
- package/src/orchestrate/test/programmers/AutoBeTestOperationProgrammer.ts +168 -168
- package/src/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.ts +261 -261
- package/src/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.ts +316 -316
- package/src/orchestrate/test/structures/IAutoBeTestArtifacts.ts +8 -8
- package/src/orchestrate/test/structures/IAutoBeTestAuthorizationWriteApplication.ts +113 -113
- package/src/orchestrate/test/structures/IAutoBeTestAuthorizeWriteResult.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestCorrectOverallApplication.ts +134 -134
- package/src/orchestrate/test/structures/IAutoBeTestCorrectRequestApplication.ts +152 -152
- package/src/orchestrate/test/structures/IAutoBeTestFunction.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestGenerateProcedure.ts +15 -15
- package/src/orchestrate/test/structures/IAutoBeTestGenerationWriteApplication.ts +145 -145
- package/src/orchestrate/test/structures/IAutoBeTestOperationProcedure.ts +17 -17
- package/src/orchestrate/test/structures/IAutoBeTestOperationWriteApplication.ts +162 -162
- package/src/orchestrate/test/structures/IAutoBeTestPrepareCorrectOverallApplication.ts +194 -194
- package/src/orchestrate/test/structures/IAutoBeTestPrepareProcedure.ts +8 -8
- package/src/orchestrate/test/structures/IAutoBeTestPrepareWriteApplication.ts +147 -147
- package/src/orchestrate/test/structures/IAutoBeTestProcedure.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +105 -105
- package/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.ts +8 -8
- package/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationActor.ts +7 -7
- package/src/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.ts +133 -133
- package/src/orchestrate/test/utils/getPrerequisites.ts +51 -51
- package/src/orchestrate/test/utils/getReferenceIds.ts +26 -26
- package/src/orchestrate/test/utils/insertScriptToTestResult.ts +14 -14
- package/src/structures/IAutoBeConfig.ts +110 -110
- package/src/structures/IAutoBeOrchestrateHistory.ts +44 -44
- package/src/structures/IAutoBeProps.ts +102 -102
- package/src/structures/IAutoBeVendor.ts +113 -113
- package/src/utils/AutoBePreliminaryExhaustedError.ts +30 -30
- package/src/utils/AutoBeTimeoutError.ts +35 -35
- package/src/utils/EmbeddingProvider.ts +4 -4
- package/src/utils/LocalEmbeddingProvider.ts +145 -145
- package/src/utils/RAGRetrieval.ts +411 -411
- package/src/utils/TimedConversation.ts +125 -125
- package/src/utils/backoffRetry.ts +169 -169
- package/src/utils/divideArray.ts +35 -35
- package/src/utils/emplaceMap.ts +31 -31
- package/src/utils/executeCachedBatch.ts +67 -67
- package/src/utils/forceRetry.ts +15 -15
- package/src/utils/getEmbedder.ts +16 -16
- package/src/utils/parseTextFunctionCall.ts +437 -437
- package/src/utils/predicateStateMessage.ts +131 -131
- package/src/utils/validateEmptyCode.ts +73 -73
- package/src/utils/validateEnglishOnly.ts +224 -224
- package/README.md +0 -261
|
@@ -1,122 +1,122 @@
|
|
|
1
|
-
import { AutoBeOpenApi } from "@autobe/interface";
|
|
2
|
-
import { StringUtil } from "@autobe/utils";
|
|
3
|
-
import { v7 } from "uuid";
|
|
4
|
-
|
|
5
|
-
import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
|
|
6
|
-
import { AutoBeState } from "../../../context/AutoBeState";
|
|
7
|
-
import { IAutoBeOrchestrateHistory } from "../../../structures/IAutoBeOrchestrateHistory";
|
|
8
|
-
import { AutoBePreliminaryController } from "../../common/AutoBePreliminaryController";
|
|
9
|
-
|
|
10
|
-
export const transformInterfaceSchemaCastingHistory = (props: {
|
|
11
|
-
state: AutoBeState;
|
|
12
|
-
instruction: string;
|
|
13
|
-
preliminary: AutoBePreliminaryController<
|
|
14
|
-
| "analysisSections"
|
|
15
|
-
| "databaseSchemas"
|
|
16
|
-
| "interfaceOperations"
|
|
17
|
-
| "interfaceSchemas"
|
|
18
|
-
| "previousAnalysisSections"
|
|
19
|
-
| "previousDatabaseSchemas"
|
|
20
|
-
| "previousInterfaceOperations"
|
|
21
|
-
| "previousInterfaceSchemas"
|
|
22
|
-
>;
|
|
23
|
-
typeName: string;
|
|
24
|
-
refineOperations: AutoBeOpenApi.IOperation[];
|
|
25
|
-
originalSchema: AutoBeOpenApi.IJsonSchema;
|
|
26
|
-
}): IAutoBeOrchestrateHistory => ({
|
|
27
|
-
histories: [
|
|
28
|
-
{
|
|
29
|
-
type: "systemMessage",
|
|
30
|
-
id: v7(),
|
|
31
|
-
created_at: new Date().toISOString(),
|
|
32
|
-
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
type: "systemMessage",
|
|
36
|
-
id: v7(),
|
|
37
|
-
created_at: new Date().toISOString(),
|
|
38
|
-
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA_CASTING,
|
|
39
|
-
},
|
|
40
|
-
...props.preliminary.getHistories(),
|
|
41
|
-
{
|
|
42
|
-
type: "assistantMessage",
|
|
43
|
-
id: v7(),
|
|
44
|
-
created_at: new Date().toISOString(),
|
|
45
|
-
text: StringUtil.trim`
|
|
46
|
-
## API Design Instructions
|
|
47
|
-
|
|
48
|
-
The following API-specific instructions were extracted from
|
|
49
|
-
the user's requirements. These focus on API interface design aspects
|
|
50
|
-
relevant to the schema refinement task.
|
|
51
|
-
|
|
52
|
-
Follow these instructions when analyzing and refining schemas.
|
|
53
|
-
Carefully distinguish between:
|
|
54
|
-
|
|
55
|
-
- Suggestions or recommendations (consider these as guidance)
|
|
56
|
-
- Direct specifications or explicit commands (these must be followed exactly)
|
|
57
|
-
|
|
58
|
-
When instructions contain direct specifications or explicit design decisions,
|
|
59
|
-
follow them precisely even if you believe you have better alternatives.
|
|
60
|
-
|
|
61
|
-
${props.instruction}
|
|
62
|
-
`,
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
id: v7(),
|
|
66
|
-
type: "assistantMessage",
|
|
67
|
-
created_at: new Date().toISOString(),
|
|
68
|
-
text: StringUtil.trim`
|
|
69
|
-
## Target Type for Refinement Analysis
|
|
70
|
-
|
|
71
|
-
You are analyzing the following type alias to determine if it is a
|
|
72
|
-
**degenerate primitive type** that should be refined into a proper
|
|
73
|
-
object schema.
|
|
74
|
-
|
|
75
|
-
### Type Name: \`${props.typeName}\`
|
|
76
|
-
|
|
77
|
-
### Current Schema Definition:
|
|
78
|
-
|
|
79
|
-
\`\`\`json
|
|
80
|
-
${JSON.stringify(props.originalSchema, null, 2)}
|
|
81
|
-
\`\`\`
|
|
82
|
-
|
|
83
|
-
### Operations Using This Type
|
|
84
|
-
|
|
85
|
-
The following API operations reference this type. Use this context
|
|
86
|
-
to understand how the type is used:
|
|
87
|
-
|
|
88
|
-
\`\`\`json
|
|
89
|
-
${JSON.stringify(props.refineOperations, null, 2)}
|
|
90
|
-
\`\`\`
|
|
91
|
-
|
|
92
|
-
## Your Task
|
|
93
|
-
|
|
94
|
-
Analyze this type using the Chain-of-Thought process:
|
|
95
|
-
|
|
96
|
-
1. **Observation**: Document what you see - the current type, JSDoc/description,
|
|
97
|
-
database hints, and naming patterns.
|
|
98
|
-
|
|
99
|
-
2. **Reasoning**: Analyze whether the documentation/naming contradicts the
|
|
100
|
-
primitive type. Look for keywords like "key/value", "list of", "contains",
|
|
101
|
-
"mapping", "distribution", "preferences", etc.
|
|
102
|
-
|
|
103
|
-
3. **Verdict**: State your conclusion - is this DEGENERATE (needs refinement)
|
|
104
|
-
or INTENTIONAL (valid primitive alias)?
|
|
105
|
-
|
|
106
|
-
4. **Schema**: If DEGENERATE, provide the correct object schema.
|
|
107
|
-
If INTENTIONAL, set to null.
|
|
108
|
-
|
|
109
|
-
## Important Guidelines
|
|
110
|
-
|
|
111
|
-
- **REFINE** if: Documentation describes a structure (Record, Array, Object)
|
|
112
|
-
but type is primitive.
|
|
113
|
-
- **KEEP** if: This is a valid semantic alias (e.g., \`IUserId = string\`,
|
|
114
|
-
\`IItemCount = number\`).
|
|
115
|
-
- Always provide detailed observation and reasoning to justify your decision.
|
|
116
|
-
`,
|
|
117
|
-
},
|
|
118
|
-
],
|
|
119
|
-
userMessage: StringUtil.trim`
|
|
120
|
-
Review \`${props.typeName}\` type and convert it to a proper object type if needed.
|
|
121
|
-
`,
|
|
122
|
-
});
|
|
1
|
+
import { AutoBeOpenApi } from "@autobe/interface";
|
|
2
|
+
import { StringUtil } from "@autobe/utils";
|
|
3
|
+
import { v7 } from "uuid";
|
|
4
|
+
|
|
5
|
+
import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
|
|
6
|
+
import { AutoBeState } from "../../../context/AutoBeState";
|
|
7
|
+
import { IAutoBeOrchestrateHistory } from "../../../structures/IAutoBeOrchestrateHistory";
|
|
8
|
+
import { AutoBePreliminaryController } from "../../common/AutoBePreliminaryController";
|
|
9
|
+
|
|
10
|
+
export const transformInterfaceSchemaCastingHistory = (props: {
|
|
11
|
+
state: AutoBeState;
|
|
12
|
+
instruction: string;
|
|
13
|
+
preliminary: AutoBePreliminaryController<
|
|
14
|
+
| "analysisSections"
|
|
15
|
+
| "databaseSchemas"
|
|
16
|
+
| "interfaceOperations"
|
|
17
|
+
| "interfaceSchemas"
|
|
18
|
+
| "previousAnalysisSections"
|
|
19
|
+
| "previousDatabaseSchemas"
|
|
20
|
+
| "previousInterfaceOperations"
|
|
21
|
+
| "previousInterfaceSchemas"
|
|
22
|
+
>;
|
|
23
|
+
typeName: string;
|
|
24
|
+
refineOperations: AutoBeOpenApi.IOperation[];
|
|
25
|
+
originalSchema: AutoBeOpenApi.IJsonSchema;
|
|
26
|
+
}): IAutoBeOrchestrateHistory => ({
|
|
27
|
+
histories: [
|
|
28
|
+
{
|
|
29
|
+
type: "systemMessage",
|
|
30
|
+
id: v7(),
|
|
31
|
+
created_at: new Date().toISOString(),
|
|
32
|
+
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA,
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
type: "systemMessage",
|
|
36
|
+
id: v7(),
|
|
37
|
+
created_at: new Date().toISOString(),
|
|
38
|
+
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA_CASTING,
|
|
39
|
+
},
|
|
40
|
+
...props.preliminary.getHistories(),
|
|
41
|
+
{
|
|
42
|
+
type: "assistantMessage",
|
|
43
|
+
id: v7(),
|
|
44
|
+
created_at: new Date().toISOString(),
|
|
45
|
+
text: StringUtil.trim`
|
|
46
|
+
## API Design Instructions
|
|
47
|
+
|
|
48
|
+
The following API-specific instructions were extracted from
|
|
49
|
+
the user's requirements. These focus on API interface design aspects
|
|
50
|
+
relevant to the schema refinement task.
|
|
51
|
+
|
|
52
|
+
Follow these instructions when analyzing and refining schemas.
|
|
53
|
+
Carefully distinguish between:
|
|
54
|
+
|
|
55
|
+
- Suggestions or recommendations (consider these as guidance)
|
|
56
|
+
- Direct specifications or explicit commands (these must be followed exactly)
|
|
57
|
+
|
|
58
|
+
When instructions contain direct specifications or explicit design decisions,
|
|
59
|
+
follow them precisely even if you believe you have better alternatives.
|
|
60
|
+
|
|
61
|
+
${props.instruction}
|
|
62
|
+
`,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: v7(),
|
|
66
|
+
type: "assistantMessage",
|
|
67
|
+
created_at: new Date().toISOString(),
|
|
68
|
+
text: StringUtil.trim`
|
|
69
|
+
## Target Type for Refinement Analysis
|
|
70
|
+
|
|
71
|
+
You are analyzing the following type alias to determine if it is a
|
|
72
|
+
**degenerate primitive type** that should be refined into a proper
|
|
73
|
+
object schema.
|
|
74
|
+
|
|
75
|
+
### Type Name: \`${props.typeName}\`
|
|
76
|
+
|
|
77
|
+
### Current Schema Definition:
|
|
78
|
+
|
|
79
|
+
\`\`\`json
|
|
80
|
+
${JSON.stringify(props.originalSchema, null, 2)}
|
|
81
|
+
\`\`\`
|
|
82
|
+
|
|
83
|
+
### Operations Using This Type
|
|
84
|
+
|
|
85
|
+
The following API operations reference this type. Use this context
|
|
86
|
+
to understand how the type is used:
|
|
87
|
+
|
|
88
|
+
\`\`\`json
|
|
89
|
+
${JSON.stringify(props.refineOperations, null, 2)}
|
|
90
|
+
\`\`\`
|
|
91
|
+
|
|
92
|
+
## Your Task
|
|
93
|
+
|
|
94
|
+
Analyze this type using the Chain-of-Thought process:
|
|
95
|
+
|
|
96
|
+
1. **Observation**: Document what you see - the current type, JSDoc/description,
|
|
97
|
+
database hints, and naming patterns.
|
|
98
|
+
|
|
99
|
+
2. **Reasoning**: Analyze whether the documentation/naming contradicts the
|
|
100
|
+
primitive type. Look for keywords like "key/value", "list of", "contains",
|
|
101
|
+
"mapping", "distribution", "preferences", etc.
|
|
102
|
+
|
|
103
|
+
3. **Verdict**: State your conclusion - is this DEGENERATE (needs refinement)
|
|
104
|
+
or INTENTIONAL (valid primitive alias)?
|
|
105
|
+
|
|
106
|
+
4. **Schema**: If DEGENERATE, provide the correct object schema.
|
|
107
|
+
If INTENTIONAL, set to null.
|
|
108
|
+
|
|
109
|
+
## Important Guidelines
|
|
110
|
+
|
|
111
|
+
- **REFINE** if: Documentation describes a structure (Record, Array, Object)
|
|
112
|
+
but type is primitive.
|
|
113
|
+
- **KEEP** if: This is a valid semantic alias (e.g., \`IUserId = string\`,
|
|
114
|
+
\`IItemCount = number\`).
|
|
115
|
+
- Always provide detailed observation and reasoning to justify your decision.
|
|
116
|
+
`,
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
userMessage: StringUtil.trim`
|
|
120
|
+
Review \`${props.typeName}\` type and convert it to a proper object type if needed.
|
|
121
|
+
`,
|
|
122
|
+
});
|
|
@@ -1,192 +1,192 @@
|
|
|
1
|
-
import { IMicroAgenticaHistoryJson } from "@agentica/core";
|
|
2
|
-
import { AutoBeOpenApi } from "@autobe/interface";
|
|
3
|
-
import { AutoBeOpenApiTypeChecker, StringUtil } from "@autobe/utils";
|
|
4
|
-
import { NamingConvention } from "@typia/utils";
|
|
5
|
-
import { v7 } from "uuid";
|
|
6
|
-
|
|
7
|
-
import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
|
|
8
|
-
import { IAutoBeOrchestrateHistory } from "../../../structures/IAutoBeOrchestrateHistory";
|
|
9
|
-
import { AutoBePreliminaryController } from "../../common/AutoBePreliminaryController";
|
|
10
|
-
|
|
11
|
-
export const transformInterfaceSchemaComplementHistory = (props: {
|
|
12
|
-
instruction: string;
|
|
13
|
-
document: AutoBeOpenApi.IDocument;
|
|
14
|
-
typeName: string;
|
|
15
|
-
preliminary: AutoBePreliminaryController<
|
|
16
|
-
| "analysisSections"
|
|
17
|
-
| "databaseSchemas"
|
|
18
|
-
| "interfaceOperations"
|
|
19
|
-
| "interfaceSchemas"
|
|
20
|
-
| "previousAnalysisSections"
|
|
21
|
-
| "previousInterfaceSchemas"
|
|
22
|
-
| "previousInterfaceOperations"
|
|
23
|
-
| "previousDatabaseSchemas"
|
|
24
|
-
>;
|
|
25
|
-
}): IAutoBeOrchestrateHistory => ({
|
|
26
|
-
histories: [
|
|
27
|
-
{
|
|
28
|
-
type: "systemMessage",
|
|
29
|
-
id: v7(),
|
|
30
|
-
created_at: new Date().toISOString(),
|
|
31
|
-
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
type: "systemMessage",
|
|
35
|
-
id: v7(),
|
|
36
|
-
created_at: new Date().toISOString(),
|
|
37
|
-
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA_COMPLEMENT,
|
|
38
|
-
},
|
|
39
|
-
...props.preliminary.getHistories(),
|
|
40
|
-
...[
|
|
41
|
-
transformReferenceHistory({
|
|
42
|
-
document: props.document,
|
|
43
|
-
typeName: props.typeName,
|
|
44
|
-
}),
|
|
45
|
-
].filter((r) => r !== null),
|
|
46
|
-
{
|
|
47
|
-
type: "assistantMessage",
|
|
48
|
-
id: v7(),
|
|
49
|
-
created_at: new Date().toISOString(),
|
|
50
|
-
text: StringUtil.trim`
|
|
51
|
-
## API Design Instructions
|
|
52
|
-
|
|
53
|
-
The following API-specific instructions were extracted from
|
|
54
|
-
the user's requirements. These focus on API interface design aspects
|
|
55
|
-
such as endpoint patterns, request/response formats, DTO schemas,
|
|
56
|
-
and operation specifications.
|
|
57
|
-
|
|
58
|
-
Follow these instructions when completing missing schema types.
|
|
59
|
-
Carefully distinguish between:
|
|
60
|
-
- Suggestions or recommendations (consider these as guidance)
|
|
61
|
-
- Direct specifications or explicit commands (these must be followed exactly)
|
|
62
|
-
|
|
63
|
-
When instructions contain direct specifications or explicit design decisions,
|
|
64
|
-
follow them precisely even if you believe you have better alternatives.
|
|
65
|
-
|
|
66
|
-
${props.instruction}
|
|
67
|
-
|
|
68
|
-
## Missed Type
|
|
69
|
-
|
|
70
|
-
You need to create a schema definition for this missing type:
|
|
71
|
-
|
|
72
|
-
**${props.typeName}**
|
|
73
|
-
|
|
74
|
-
This type is referenced in API operations but not yet defined in
|
|
75
|
-
components.schemas. Create a complete JSON schema definition for it.
|
|
76
|
-
`,
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
userMessage: StringUtil.trim`
|
|
80
|
-
Complete the missing schema type ${JSON.stringify(props.typeName)}.
|
|
81
|
-
`,
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
const transformReferenceHistory = (props: {
|
|
85
|
-
document: AutoBeOpenApi.IDocument;
|
|
86
|
-
typeName: string;
|
|
87
|
-
}): IMicroAgenticaHistoryJson | null => {
|
|
88
|
-
const references: IReference[] = [];
|
|
89
|
-
Object.entries(props.document.components.schemas).forEach(
|
|
90
|
-
([accessor, schema]) =>
|
|
91
|
-
traverseReference({
|
|
92
|
-
container: references,
|
|
93
|
-
typeName: props.typeName,
|
|
94
|
-
accessor,
|
|
95
|
-
schema,
|
|
96
|
-
description: schema.description,
|
|
97
|
-
}),
|
|
98
|
-
);
|
|
99
|
-
if (references.length === 0) return null;
|
|
100
|
-
return {
|
|
101
|
-
type: "assistantMessage",
|
|
102
|
-
id: v7(),
|
|
103
|
-
created_at: new Date().toISOString(),
|
|
104
|
-
text: StringUtil.trim`
|
|
105
|
-
## Existing Schema References
|
|
106
|
-
|
|
107
|
-
The missing type **${props.typeName}** is referenced in the following locations
|
|
108
|
-
within existing schema definitions. Use these references to understand the context,
|
|
109
|
-
purpose, and expected structure of the missing type.
|
|
110
|
-
|
|
111
|
-
Each reference includes:
|
|
112
|
-
- \`accessor\`: The exact path where this type is used in the schema tree
|
|
113
|
-
- \`description\`: The semantic description from that property definition
|
|
114
|
-
|
|
115
|
-
**Accessor Notation Guide**:
|
|
116
|
-
- \`TypeName.property\` - Used as an object property
|
|
117
|
-
- \`TypeName.property[]\` - Used as an array element
|
|
118
|
-
- \`TypeName.property{}\` - Used as a Record/dictionary value (additionalProperties)
|
|
119
|
-
- \`TypeName["special-key"]\` - Property name contains non-identifier characters
|
|
120
|
-
|
|
121
|
-
**How to Use This Information**:
|
|
122
|
-
1. The \`description\` field reveals the business purpose and semantic meaning
|
|
123
|
-
2. The \`accessor\` path shows the relationship and context within the API
|
|
124
|
-
3. Multiple references indicate different use cases the type must support
|
|
125
|
-
4. Description is captured at the property level, even if the $ref is nested
|
|
126
|
-
inside oneOf/anyOf/allOf structures (nullable, union types, etc.)
|
|
127
|
-
|
|
128
|
-
\`\`\`json
|
|
129
|
-
${JSON.stringify(references, null, 2)}
|
|
130
|
-
\`\`\`
|
|
131
|
-
|
|
132
|
-
Analyze these references carefully to infer:
|
|
133
|
-
- What data this type should contain
|
|
134
|
-
- What business domain it belongs to
|
|
135
|
-
- What constraints or requirements it should satisfy
|
|
136
|
-
`,
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
const traverseReference = (props: {
|
|
141
|
-
container: IReference[];
|
|
142
|
-
typeName: string;
|
|
143
|
-
accessor: string;
|
|
144
|
-
schema: AutoBeOpenApi.IJsonSchema;
|
|
145
|
-
description: string;
|
|
146
|
-
}): void => {
|
|
147
|
-
if (
|
|
148
|
-
AutoBeOpenApiTypeChecker.isReference(props.schema) &&
|
|
149
|
-
props.schema.$ref.endsWith("/" + props.typeName)
|
|
150
|
-
)
|
|
151
|
-
props.container.push({
|
|
152
|
-
accessor: props.accessor,
|
|
153
|
-
description: props.description,
|
|
154
|
-
});
|
|
155
|
-
else if (AutoBeOpenApiTypeChecker.isOneOf(props.schema))
|
|
156
|
-
props.schema.oneOf.forEach((next) =>
|
|
157
|
-
traverseReference({
|
|
158
|
-
...props,
|
|
159
|
-
schema: next,
|
|
160
|
-
}),
|
|
161
|
-
);
|
|
162
|
-
else if (AutoBeOpenApiTypeChecker.isArray(props.schema))
|
|
163
|
-
traverseReference({
|
|
164
|
-
...props,
|
|
165
|
-
accessor: `${props.accessor}[]`,
|
|
166
|
-
schema: props.schema.items,
|
|
167
|
-
});
|
|
168
|
-
else if (AutoBeOpenApiTypeChecker.isObject(props.schema)) {
|
|
169
|
-
for (const [key, value] of Object.entries(props.schema.properties))
|
|
170
|
-
traverseReference({
|
|
171
|
-
...props,
|
|
172
|
-
accessor: NamingConvention.variable(key)
|
|
173
|
-
? `${props.accessor}.${key}`
|
|
174
|
-
: `${props.accessor}[${JSON.stringify(key)}]`,
|
|
175
|
-
schema: value,
|
|
176
|
-
});
|
|
177
|
-
if (
|
|
178
|
-
typeof props.schema.additionalProperties === "object" &&
|
|
179
|
-
props.schema.additionalProperties !== null
|
|
180
|
-
)
|
|
181
|
-
traverseReference({
|
|
182
|
-
...props,
|
|
183
|
-
accessor: `${props.accessor}{}`,
|
|
184
|
-
schema: props.schema.additionalProperties,
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
interface IReference {
|
|
190
|
-
accessor: string;
|
|
191
|
-
description: string;
|
|
192
|
-
}
|
|
1
|
+
import { IMicroAgenticaHistoryJson } from "@agentica/core";
|
|
2
|
+
import { AutoBeOpenApi } from "@autobe/interface";
|
|
3
|
+
import { AutoBeOpenApiTypeChecker, StringUtil } from "@autobe/utils";
|
|
4
|
+
import { NamingConvention } from "@typia/utils";
|
|
5
|
+
import { v7 } from "uuid";
|
|
6
|
+
|
|
7
|
+
import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
|
|
8
|
+
import { IAutoBeOrchestrateHistory } from "../../../structures/IAutoBeOrchestrateHistory";
|
|
9
|
+
import { AutoBePreliminaryController } from "../../common/AutoBePreliminaryController";
|
|
10
|
+
|
|
11
|
+
export const transformInterfaceSchemaComplementHistory = (props: {
|
|
12
|
+
instruction: string;
|
|
13
|
+
document: AutoBeOpenApi.IDocument;
|
|
14
|
+
typeName: string;
|
|
15
|
+
preliminary: AutoBePreliminaryController<
|
|
16
|
+
| "analysisSections"
|
|
17
|
+
| "databaseSchemas"
|
|
18
|
+
| "interfaceOperations"
|
|
19
|
+
| "interfaceSchemas"
|
|
20
|
+
| "previousAnalysisSections"
|
|
21
|
+
| "previousInterfaceSchemas"
|
|
22
|
+
| "previousInterfaceOperations"
|
|
23
|
+
| "previousDatabaseSchemas"
|
|
24
|
+
>;
|
|
25
|
+
}): IAutoBeOrchestrateHistory => ({
|
|
26
|
+
histories: [
|
|
27
|
+
{
|
|
28
|
+
type: "systemMessage",
|
|
29
|
+
id: v7(),
|
|
30
|
+
created_at: new Date().toISOString(),
|
|
31
|
+
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
type: "systemMessage",
|
|
35
|
+
id: v7(),
|
|
36
|
+
created_at: new Date().toISOString(),
|
|
37
|
+
text: AutoBeSystemPromptConstant.INTERFACE_SCHEMA_COMPLEMENT,
|
|
38
|
+
},
|
|
39
|
+
...props.preliminary.getHistories(),
|
|
40
|
+
...[
|
|
41
|
+
transformReferenceHistory({
|
|
42
|
+
document: props.document,
|
|
43
|
+
typeName: props.typeName,
|
|
44
|
+
}),
|
|
45
|
+
].filter((r) => r !== null),
|
|
46
|
+
{
|
|
47
|
+
type: "assistantMessage",
|
|
48
|
+
id: v7(),
|
|
49
|
+
created_at: new Date().toISOString(),
|
|
50
|
+
text: StringUtil.trim`
|
|
51
|
+
## API Design Instructions
|
|
52
|
+
|
|
53
|
+
The following API-specific instructions were extracted from
|
|
54
|
+
the user's requirements. These focus on API interface design aspects
|
|
55
|
+
such as endpoint patterns, request/response formats, DTO schemas,
|
|
56
|
+
and operation specifications.
|
|
57
|
+
|
|
58
|
+
Follow these instructions when completing missing schema types.
|
|
59
|
+
Carefully distinguish between:
|
|
60
|
+
- Suggestions or recommendations (consider these as guidance)
|
|
61
|
+
- Direct specifications or explicit commands (these must be followed exactly)
|
|
62
|
+
|
|
63
|
+
When instructions contain direct specifications or explicit design decisions,
|
|
64
|
+
follow them precisely even if you believe you have better alternatives.
|
|
65
|
+
|
|
66
|
+
${props.instruction}
|
|
67
|
+
|
|
68
|
+
## Missed Type
|
|
69
|
+
|
|
70
|
+
You need to create a schema definition for this missing type:
|
|
71
|
+
|
|
72
|
+
**${props.typeName}**
|
|
73
|
+
|
|
74
|
+
This type is referenced in API operations but not yet defined in
|
|
75
|
+
components.schemas. Create a complete JSON schema definition for it.
|
|
76
|
+
`,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
userMessage: StringUtil.trim`
|
|
80
|
+
Complete the missing schema type ${JSON.stringify(props.typeName)}.
|
|
81
|
+
`,
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
const transformReferenceHistory = (props: {
|
|
85
|
+
document: AutoBeOpenApi.IDocument;
|
|
86
|
+
typeName: string;
|
|
87
|
+
}): IMicroAgenticaHistoryJson | null => {
|
|
88
|
+
const references: IReference[] = [];
|
|
89
|
+
Object.entries(props.document.components.schemas).forEach(
|
|
90
|
+
([accessor, schema]) =>
|
|
91
|
+
traverseReference({
|
|
92
|
+
container: references,
|
|
93
|
+
typeName: props.typeName,
|
|
94
|
+
accessor,
|
|
95
|
+
schema,
|
|
96
|
+
description: schema.description,
|
|
97
|
+
}),
|
|
98
|
+
);
|
|
99
|
+
if (references.length === 0) return null;
|
|
100
|
+
return {
|
|
101
|
+
type: "assistantMessage",
|
|
102
|
+
id: v7(),
|
|
103
|
+
created_at: new Date().toISOString(),
|
|
104
|
+
text: StringUtil.trim`
|
|
105
|
+
## Existing Schema References
|
|
106
|
+
|
|
107
|
+
The missing type **${props.typeName}** is referenced in the following locations
|
|
108
|
+
within existing schema definitions. Use these references to understand the context,
|
|
109
|
+
purpose, and expected structure of the missing type.
|
|
110
|
+
|
|
111
|
+
Each reference includes:
|
|
112
|
+
- \`accessor\`: The exact path where this type is used in the schema tree
|
|
113
|
+
- \`description\`: The semantic description from that property definition
|
|
114
|
+
|
|
115
|
+
**Accessor Notation Guide**:
|
|
116
|
+
- \`TypeName.property\` - Used as an object property
|
|
117
|
+
- \`TypeName.property[]\` - Used as an array element
|
|
118
|
+
- \`TypeName.property{}\` - Used as a Record/dictionary value (additionalProperties)
|
|
119
|
+
- \`TypeName["special-key"]\` - Property name contains non-identifier characters
|
|
120
|
+
|
|
121
|
+
**How to Use This Information**:
|
|
122
|
+
1. The \`description\` field reveals the business purpose and semantic meaning
|
|
123
|
+
2. The \`accessor\` path shows the relationship and context within the API
|
|
124
|
+
3. Multiple references indicate different use cases the type must support
|
|
125
|
+
4. Description is captured at the property level, even if the $ref is nested
|
|
126
|
+
inside oneOf/anyOf/allOf structures (nullable, union types, etc.)
|
|
127
|
+
|
|
128
|
+
\`\`\`json
|
|
129
|
+
${JSON.stringify(references, null, 2)}
|
|
130
|
+
\`\`\`
|
|
131
|
+
|
|
132
|
+
Analyze these references carefully to infer:
|
|
133
|
+
- What data this type should contain
|
|
134
|
+
- What business domain it belongs to
|
|
135
|
+
- What constraints or requirements it should satisfy
|
|
136
|
+
`,
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
const traverseReference = (props: {
|
|
141
|
+
container: IReference[];
|
|
142
|
+
typeName: string;
|
|
143
|
+
accessor: string;
|
|
144
|
+
schema: AutoBeOpenApi.IJsonSchema;
|
|
145
|
+
description: string;
|
|
146
|
+
}): void => {
|
|
147
|
+
if (
|
|
148
|
+
AutoBeOpenApiTypeChecker.isReference(props.schema) &&
|
|
149
|
+
props.schema.$ref.endsWith("/" + props.typeName)
|
|
150
|
+
)
|
|
151
|
+
props.container.push({
|
|
152
|
+
accessor: props.accessor,
|
|
153
|
+
description: props.description,
|
|
154
|
+
});
|
|
155
|
+
else if (AutoBeOpenApiTypeChecker.isOneOf(props.schema))
|
|
156
|
+
props.schema.oneOf.forEach((next) =>
|
|
157
|
+
traverseReference({
|
|
158
|
+
...props,
|
|
159
|
+
schema: next,
|
|
160
|
+
}),
|
|
161
|
+
);
|
|
162
|
+
else if (AutoBeOpenApiTypeChecker.isArray(props.schema))
|
|
163
|
+
traverseReference({
|
|
164
|
+
...props,
|
|
165
|
+
accessor: `${props.accessor}[]`,
|
|
166
|
+
schema: props.schema.items,
|
|
167
|
+
});
|
|
168
|
+
else if (AutoBeOpenApiTypeChecker.isObject(props.schema)) {
|
|
169
|
+
for (const [key, value] of Object.entries(props.schema.properties))
|
|
170
|
+
traverseReference({
|
|
171
|
+
...props,
|
|
172
|
+
accessor: NamingConvention.variable(key)
|
|
173
|
+
? `${props.accessor}.${key}`
|
|
174
|
+
: `${props.accessor}[${JSON.stringify(key)}]`,
|
|
175
|
+
schema: value,
|
|
176
|
+
});
|
|
177
|
+
if (
|
|
178
|
+
typeof props.schema.additionalProperties === "object" &&
|
|
179
|
+
props.schema.additionalProperties !== null
|
|
180
|
+
)
|
|
181
|
+
traverseReference({
|
|
182
|
+
...props,
|
|
183
|
+
accessor: `${props.accessor}{}`,
|
|
184
|
+
schema: props.schema.additionalProperties,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
interface IReference {
|
|
190
|
+
accessor: string;
|
|
191
|
+
description: string;
|
|
192
|
+
}
|