@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,131 +1,131 @@
|
|
|
1
|
-
import { AutoBePhase } from "@autobe/interface";
|
|
2
|
-
import { StringUtil } from "@autobe/utils";
|
|
3
|
-
|
|
4
|
-
import { AutoBeState } from "../context/AutoBeState";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Validates pipeline state before executing a phase, returning user-friendly
|
|
8
|
-
* error message if prerequisites are missing or outdated.
|
|
9
|
-
*
|
|
10
|
-
* Enforces the waterfall dependency structure: each phase requires all previous
|
|
11
|
-
* phases to be completed with matching step counters. When requirements change
|
|
12
|
-
* (analyze step increments), downstream phases become invalid through step
|
|
13
|
-
* mismatch, and this function generates clear messages guiding users to
|
|
14
|
-
* regenerate affected phases.
|
|
15
|
-
*
|
|
16
|
-
* This is the gatekeeper preventing users from executing phases out of order or
|
|
17
|
-
* with stale dependencies, ensuring generated artifacts always reflect current
|
|
18
|
-
* requirements. Without this validation, users could generate API
|
|
19
|
-
* implementations based on outdated database schemas, causing subtle bugs.
|
|
20
|
-
*
|
|
21
|
-
* @param state Current pipeline state
|
|
22
|
-
* @param future Phase attempting to execute
|
|
23
|
-
* @returns Error message if validation fails, null if valid to proceed
|
|
24
|
-
*/
|
|
25
|
-
export const predicateStateMessage = (
|
|
26
|
-
state: AutoBeState,
|
|
27
|
-
future: AutoBePhase,
|
|
28
|
-
): string | null => {
|
|
29
|
-
if (future === "analyze") return null;
|
|
30
|
-
if (future === "database") return predicateDatabase(state);
|
|
31
|
-
|
|
32
|
-
const futureIndex: number = STEP_ORDER.indexOf(future);
|
|
33
|
-
for (const key of STEP_ORDER.slice(0, futureIndex))
|
|
34
|
-
if (state[key] === null) return buildMissingStepsMessage(future, key);
|
|
35
|
-
|
|
36
|
-
const prevStepName: AutoBePhase = STEP_ORDER[futureIndex - 1];
|
|
37
|
-
if (state.analyze!.step !== state[prevStepName]!.step)
|
|
38
|
-
return buildOutdatedMessage(prevStepName, "analyze", state);
|
|
39
|
-
return null;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
/** Generates error message listing steps needed to reach current phase. */
|
|
43
|
-
const buildMissingStepsMessage = (
|
|
44
|
-
current: AutoBePhase,
|
|
45
|
-
missing: AutoBePhase,
|
|
46
|
-
): string => {
|
|
47
|
-
const currentIndex: number = STEP_ORDER.indexOf(current);
|
|
48
|
-
const missingIndex: number = STEP_ORDER.indexOf(missing);
|
|
49
|
-
const remainingSteps: string = STEP_ORDER.slice(
|
|
50
|
-
missingIndex,
|
|
51
|
-
currentIndex + 1,
|
|
52
|
-
)
|
|
53
|
-
.map((step, index) => `${index + 1}. ${STEP_DESCRIPTIONS[step]}`)
|
|
54
|
-
.join("\n ");
|
|
55
|
-
|
|
56
|
-
const currentAction = ACTION_NAMES[current];
|
|
57
|
-
|
|
58
|
-
return StringUtil.trim`
|
|
59
|
-
${STEP_DESCRIPTIONS[missing]} not completed yet.
|
|
60
|
-
|
|
61
|
-
To ${currentAction}, complete these steps:
|
|
62
|
-
|
|
63
|
-
${remainingSteps}
|
|
64
|
-
|
|
65
|
-
Start with step ${missingIndex + 1}.
|
|
66
|
-
`;
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Generates error message indicating phase is outdated due to requirements
|
|
71
|
-
* change.
|
|
72
|
-
*/
|
|
73
|
-
const buildOutdatedMessage = (
|
|
74
|
-
outdatedStep: AutoBePhase,
|
|
75
|
-
currentStep: AutoBePhase,
|
|
76
|
-
state: AutoBeState,
|
|
77
|
-
): string => {
|
|
78
|
-
const outdatedVersion = state[outdatedStep]?.step;
|
|
79
|
-
const currentVersion = state[currentStep]?.step;
|
|
80
|
-
|
|
81
|
-
return StringUtil.trim`
|
|
82
|
-
${STEP_NAMES[outdatedStep]} is outdated (step ${outdatedVersion}).
|
|
83
|
-
|
|
84
|
-
Requirements are now at step ${currentVersion}.
|
|
85
|
-
|
|
86
|
-
Please update ${outdatedStep} to match current requirements.
|
|
87
|
-
`;
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
/** Special validation for Database phase requiring only analyze completion. */
|
|
91
|
-
const predicateDatabase = (state: AutoBeState): string | null => {
|
|
92
|
-
if (state.analyze !== null) return null;
|
|
93
|
-
return StringUtil.trim`
|
|
94
|
-
Requirements analysis not started.
|
|
95
|
-
|
|
96
|
-
Discuss your project with AI to generate requirements analysis.
|
|
97
|
-
Database design will follow after requirements are ready.
|
|
98
|
-
`;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
const STEP_DESCRIPTIONS: Record<AutoBePhase, string> = {
|
|
102
|
-
analyze: "Requirements analysis",
|
|
103
|
-
database: "Database design",
|
|
104
|
-
interface: "API interface design",
|
|
105
|
-
test: "E2E test creation",
|
|
106
|
-
realize: "Implementation",
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
const STEP_NAMES: Record<AutoBePhase, string> = {
|
|
110
|
-
analyze: "Requirements analysis",
|
|
111
|
-
database: "Database schema",
|
|
112
|
-
interface: "API interface",
|
|
113
|
-
test: "Test functions",
|
|
114
|
-
realize: "Implementation",
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
const ACTION_NAMES: Record<AutoBePhase, string> = {
|
|
118
|
-
analyze: "analyze requirements",
|
|
119
|
-
database: "design database",
|
|
120
|
-
interface: "design API interface",
|
|
121
|
-
test: "create tests",
|
|
122
|
-
realize: "implement the program",
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
const STEP_ORDER: AutoBePhase[] = [
|
|
126
|
-
"analyze",
|
|
127
|
-
"database",
|
|
128
|
-
"interface",
|
|
129
|
-
"test",
|
|
130
|
-
"realize",
|
|
131
|
-
];
|
|
1
|
+
import { AutoBePhase } from "@autobe/interface";
|
|
2
|
+
import { StringUtil } from "@autobe/utils";
|
|
3
|
+
|
|
4
|
+
import { AutoBeState } from "../context/AutoBeState";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Validates pipeline state before executing a phase, returning user-friendly
|
|
8
|
+
* error message if prerequisites are missing or outdated.
|
|
9
|
+
*
|
|
10
|
+
* Enforces the waterfall dependency structure: each phase requires all previous
|
|
11
|
+
* phases to be completed with matching step counters. When requirements change
|
|
12
|
+
* (analyze step increments), downstream phases become invalid through step
|
|
13
|
+
* mismatch, and this function generates clear messages guiding users to
|
|
14
|
+
* regenerate affected phases.
|
|
15
|
+
*
|
|
16
|
+
* This is the gatekeeper preventing users from executing phases out of order or
|
|
17
|
+
* with stale dependencies, ensuring generated artifacts always reflect current
|
|
18
|
+
* requirements. Without this validation, users could generate API
|
|
19
|
+
* implementations based on outdated database schemas, causing subtle bugs.
|
|
20
|
+
*
|
|
21
|
+
* @param state Current pipeline state
|
|
22
|
+
* @param future Phase attempting to execute
|
|
23
|
+
* @returns Error message if validation fails, null if valid to proceed
|
|
24
|
+
*/
|
|
25
|
+
export const predicateStateMessage = (
|
|
26
|
+
state: AutoBeState,
|
|
27
|
+
future: AutoBePhase,
|
|
28
|
+
): string | null => {
|
|
29
|
+
if (future === "analyze") return null;
|
|
30
|
+
if (future === "database") return predicateDatabase(state);
|
|
31
|
+
|
|
32
|
+
const futureIndex: number = STEP_ORDER.indexOf(future);
|
|
33
|
+
for (const key of STEP_ORDER.slice(0, futureIndex))
|
|
34
|
+
if (state[key] === null) return buildMissingStepsMessage(future, key);
|
|
35
|
+
|
|
36
|
+
const prevStepName: AutoBePhase = STEP_ORDER[futureIndex - 1];
|
|
37
|
+
if (state.analyze!.step !== state[prevStepName]!.step)
|
|
38
|
+
return buildOutdatedMessage(prevStepName, "analyze", state);
|
|
39
|
+
return null;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/** Generates error message listing steps needed to reach current phase. */
|
|
43
|
+
const buildMissingStepsMessage = (
|
|
44
|
+
current: AutoBePhase,
|
|
45
|
+
missing: AutoBePhase,
|
|
46
|
+
): string => {
|
|
47
|
+
const currentIndex: number = STEP_ORDER.indexOf(current);
|
|
48
|
+
const missingIndex: number = STEP_ORDER.indexOf(missing);
|
|
49
|
+
const remainingSteps: string = STEP_ORDER.slice(
|
|
50
|
+
missingIndex,
|
|
51
|
+
currentIndex + 1,
|
|
52
|
+
)
|
|
53
|
+
.map((step, index) => `${index + 1}. ${STEP_DESCRIPTIONS[step]}`)
|
|
54
|
+
.join("\n ");
|
|
55
|
+
|
|
56
|
+
const currentAction = ACTION_NAMES[current];
|
|
57
|
+
|
|
58
|
+
return StringUtil.trim`
|
|
59
|
+
${STEP_DESCRIPTIONS[missing]} not completed yet.
|
|
60
|
+
|
|
61
|
+
To ${currentAction}, complete these steps:
|
|
62
|
+
|
|
63
|
+
${remainingSteps}
|
|
64
|
+
|
|
65
|
+
Start with step ${missingIndex + 1}.
|
|
66
|
+
`;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Generates error message indicating phase is outdated due to requirements
|
|
71
|
+
* change.
|
|
72
|
+
*/
|
|
73
|
+
const buildOutdatedMessage = (
|
|
74
|
+
outdatedStep: AutoBePhase,
|
|
75
|
+
currentStep: AutoBePhase,
|
|
76
|
+
state: AutoBeState,
|
|
77
|
+
): string => {
|
|
78
|
+
const outdatedVersion = state[outdatedStep]?.step;
|
|
79
|
+
const currentVersion = state[currentStep]?.step;
|
|
80
|
+
|
|
81
|
+
return StringUtil.trim`
|
|
82
|
+
${STEP_NAMES[outdatedStep]} is outdated (step ${outdatedVersion}).
|
|
83
|
+
|
|
84
|
+
Requirements are now at step ${currentVersion}.
|
|
85
|
+
|
|
86
|
+
Please update ${outdatedStep} to match current requirements.
|
|
87
|
+
`;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/** Special validation for Database phase requiring only analyze completion. */
|
|
91
|
+
const predicateDatabase = (state: AutoBeState): string | null => {
|
|
92
|
+
if (state.analyze !== null) return null;
|
|
93
|
+
return StringUtil.trim`
|
|
94
|
+
Requirements analysis not started.
|
|
95
|
+
|
|
96
|
+
Discuss your project with AI to generate requirements analysis.
|
|
97
|
+
Database design will follow after requirements are ready.
|
|
98
|
+
`;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
const STEP_DESCRIPTIONS: Record<AutoBePhase, string> = {
|
|
102
|
+
analyze: "Requirements analysis",
|
|
103
|
+
database: "Database design",
|
|
104
|
+
interface: "API interface design",
|
|
105
|
+
test: "E2E test creation",
|
|
106
|
+
realize: "Implementation",
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
const STEP_NAMES: Record<AutoBePhase, string> = {
|
|
110
|
+
analyze: "Requirements analysis",
|
|
111
|
+
database: "Database schema",
|
|
112
|
+
interface: "API interface",
|
|
113
|
+
test: "Test functions",
|
|
114
|
+
realize: "Implementation",
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
const ACTION_NAMES: Record<AutoBePhase, string> = {
|
|
118
|
+
analyze: "analyze requirements",
|
|
119
|
+
database: "design database",
|
|
120
|
+
interface: "design API interface",
|
|
121
|
+
test: "create tests",
|
|
122
|
+
realize: "implement the program",
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
const STEP_ORDER: AutoBePhase[] = [
|
|
126
|
+
"analyze",
|
|
127
|
+
"database",
|
|
128
|
+
"interface",
|
|
129
|
+
"test",
|
|
130
|
+
"realize",
|
|
131
|
+
];
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
import { StringUtil } from "@autobe/utils";
|
|
2
|
-
import { IValidation } from "typia";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Validates that AI-generated code contains the expected function name.
|
|
6
|
-
*
|
|
7
|
-
* Detects two common AI failure modes: (1) returning empty code snippets
|
|
8
|
-
* instead of actual implementations, and (2) hallucinating different function
|
|
9
|
-
* names than requested. By checking function name presence early, this prevents
|
|
10
|
-
* wasting compiler resources on obviously broken code and provides clearer
|
|
11
|
-
* error messages to the correction orchestrator.
|
|
12
|
-
*
|
|
13
|
-
* Used extensively in Test and Realize phases where AI generates test functions
|
|
14
|
-
* and API operation implementations. Without this validation, empty or misnamed
|
|
15
|
-
* functions would pass to TypeScript compiler, generating confusing "not found"
|
|
16
|
-
* errors instead of actionable "you forgot to write the function" feedback.
|
|
17
|
-
*
|
|
18
|
-
* @param props Function name to validate and code strings to check
|
|
19
|
-
* @returns Array of validation errors (empty if valid)
|
|
20
|
-
*/
|
|
21
|
-
export const validateEmptyCode = (props: {
|
|
22
|
-
path: string;
|
|
23
|
-
asynchronous: boolean;
|
|
24
|
-
name: string;
|
|
25
|
-
draft: string;
|
|
26
|
-
revise: {
|
|
27
|
-
final: string | null;
|
|
28
|
-
};
|
|
29
|
-
}): IValidation.IError[] => {
|
|
30
|
-
const errors: IValidation.IError[] = [];
|
|
31
|
-
const declaration: string =
|
|
32
|
-
props.asynchronous === true
|
|
33
|
-
? `export async function ${props.name}(`
|
|
34
|
-
: `export function ${props.name}(`;
|
|
35
|
-
|
|
36
|
-
if (props.draft.includes(declaration) === false)
|
|
37
|
-
errors.push({
|
|
38
|
-
path: `${props.path}.draft`,
|
|
39
|
-
expected: `string (including function declaration starting with '${props.name}')`,
|
|
40
|
-
value: props.draft,
|
|
41
|
-
description: description(declaration),
|
|
42
|
-
});
|
|
43
|
-
if (
|
|
44
|
-
props.revise.final !== null &&
|
|
45
|
-
props.revise.final.includes(declaration) === false
|
|
46
|
-
)
|
|
47
|
-
errors.push({
|
|
48
|
-
path: `${props.path}.revise.final`,
|
|
49
|
-
expected: `string (including function declaration starting with '${props.name}')`,
|
|
50
|
-
value: props.revise.final,
|
|
51
|
-
description: description(declaration),
|
|
52
|
-
});
|
|
53
|
-
return errors;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
/** Generates detailed error description for missing function. */
|
|
57
|
-
const description = (declaration: string): string => StringUtil.trim`
|
|
58
|
-
\`\`\`
|
|
59
|
-
${declaration}
|
|
60
|
-
\`\`\`
|
|
61
|
-
|
|
62
|
-
The above function declaration does not exist in the provided code snippet.
|
|
63
|
-
You have to declare the function exactly starting with the above line.
|
|
64
|
-
|
|
65
|
-
The first reason of the non-existence is that the code snippet is empty,
|
|
66
|
-
and the second reason is that AI has written different function name
|
|
67
|
-
by mistake.
|
|
68
|
-
|
|
69
|
-
Please make sure that the code snippet includes the function "${declaration}".
|
|
70
|
-
|
|
71
|
-
Note that, you never have to write empty code or different function name.
|
|
72
|
-
This is not a recommendation, but an instruction you must obey.
|
|
73
|
-
`;
|
|
1
|
+
import { StringUtil } from "@autobe/utils";
|
|
2
|
+
import { IValidation } from "typia";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Validates that AI-generated code contains the expected function name.
|
|
6
|
+
*
|
|
7
|
+
* Detects two common AI failure modes: (1) returning empty code snippets
|
|
8
|
+
* instead of actual implementations, and (2) hallucinating different function
|
|
9
|
+
* names than requested. By checking function name presence early, this prevents
|
|
10
|
+
* wasting compiler resources on obviously broken code and provides clearer
|
|
11
|
+
* error messages to the correction orchestrator.
|
|
12
|
+
*
|
|
13
|
+
* Used extensively in Test and Realize phases where AI generates test functions
|
|
14
|
+
* and API operation implementations. Without this validation, empty or misnamed
|
|
15
|
+
* functions would pass to TypeScript compiler, generating confusing "not found"
|
|
16
|
+
* errors instead of actionable "you forgot to write the function" feedback.
|
|
17
|
+
*
|
|
18
|
+
* @param props Function name to validate and code strings to check
|
|
19
|
+
* @returns Array of validation errors (empty if valid)
|
|
20
|
+
*/
|
|
21
|
+
export const validateEmptyCode = (props: {
|
|
22
|
+
path: string;
|
|
23
|
+
asynchronous: boolean;
|
|
24
|
+
name: string;
|
|
25
|
+
draft: string;
|
|
26
|
+
revise: {
|
|
27
|
+
final: string | null;
|
|
28
|
+
};
|
|
29
|
+
}): IValidation.IError[] => {
|
|
30
|
+
const errors: IValidation.IError[] = [];
|
|
31
|
+
const declaration: string =
|
|
32
|
+
props.asynchronous === true
|
|
33
|
+
? `export async function ${props.name}(`
|
|
34
|
+
: `export function ${props.name}(`;
|
|
35
|
+
|
|
36
|
+
if (props.draft.includes(declaration) === false)
|
|
37
|
+
errors.push({
|
|
38
|
+
path: `${props.path}.draft`,
|
|
39
|
+
expected: `string (including function declaration starting with '${props.name}')`,
|
|
40
|
+
value: props.draft,
|
|
41
|
+
description: description(declaration),
|
|
42
|
+
});
|
|
43
|
+
if (
|
|
44
|
+
props.revise.final !== null &&
|
|
45
|
+
props.revise.final.includes(declaration) === false
|
|
46
|
+
)
|
|
47
|
+
errors.push({
|
|
48
|
+
path: `${props.path}.revise.final`,
|
|
49
|
+
expected: `string (including function declaration starting with '${props.name}')`,
|
|
50
|
+
value: props.revise.final,
|
|
51
|
+
description: description(declaration),
|
|
52
|
+
});
|
|
53
|
+
return errors;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
/** Generates detailed error description for missing function. */
|
|
57
|
+
const description = (declaration: string): string => StringUtil.trim`
|
|
58
|
+
\`\`\`
|
|
59
|
+
${declaration}
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
The above function declaration does not exist in the provided code snippet.
|
|
63
|
+
You have to declare the function exactly starting with the above line.
|
|
64
|
+
|
|
65
|
+
The first reason of the non-existence is that the code snippet is empty,
|
|
66
|
+
and the second reason is that AI has written different function name
|
|
67
|
+
by mistake.
|
|
68
|
+
|
|
69
|
+
Please make sure that the code snippet includes the function "${declaration}".
|
|
70
|
+
|
|
71
|
+
Note that, you never have to write empty code or different function name.
|
|
72
|
+
This is not a recommendation, but an instruction you must obey.
|
|
73
|
+
`;
|