@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,400 +1,400 @@
|
|
|
1
|
-
import { IMicroAgenticaHistoryJson } from "@agentica/core";
|
|
2
|
-
import {
|
|
3
|
-
AutoBeEventSource,
|
|
4
|
-
AutoBePreliminaryAcquisition,
|
|
5
|
-
AutoBePreliminaryKind,
|
|
6
|
-
} from "@autobe/interface";
|
|
7
|
-
import {
|
|
8
|
-
IJsonSchemaApplication,
|
|
9
|
-
ILlmApplication,
|
|
10
|
-
IValidation,
|
|
11
|
-
} from "@typia/interface";
|
|
12
|
-
import { OpenApiTypeChecker } from "@typia/utils";
|
|
13
|
-
import { v7 } from "uuid";
|
|
14
|
-
|
|
15
|
-
import { AutoBeConfigConstant } from "../../constants/AutoBeConfigConstant";
|
|
16
|
-
import { AutoBeContext } from "../../context/AutoBeContext";
|
|
17
|
-
import { AutoBeState } from "../../context/AutoBeState";
|
|
18
|
-
import { AutoBePreliminaryExhaustedError } from "../../utils/AutoBePreliminaryExhaustedError";
|
|
19
|
-
import { transformPreliminaryHistory } from "./histories/transformPreliminaryHistory";
|
|
20
|
-
import { complementPreliminaryCollection } from "./internal/complementPreliminaryCollection";
|
|
21
|
-
import { createPreliminaryCollection } from "./internal/createPreliminaryCollection";
|
|
22
|
-
import { fixPreliminaryApplication } from "./internal/fixPrelminaryApplication";
|
|
23
|
-
import { validatePreliminary } from "./internal/validatePreliminary";
|
|
24
|
-
import { orchestratePreliminary } from "./orchestratePreliminary";
|
|
25
|
-
import { IAutoBePreliminaryRequest } from "./structures/AutoBePreliminaryRequest";
|
|
26
|
-
import { IAutoBeOrchestrateResult } from "./structures/IAutoBeOrchestrateResult";
|
|
27
|
-
import { IAutoBePreliminaryCollection } from "./structures/IAutoBePreliminaryCollection";
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* RAG controller for incremental context loading.
|
|
31
|
-
*
|
|
32
|
-
* Manages LLM's incremental data requests via function calling, preventing
|
|
33
|
-
* duplicates and auto-resolving dependencies.
|
|
34
|
-
*
|
|
35
|
-
* - `all`: globally available data (from state)
|
|
36
|
-
* - `local`: currently loaded data (agent context)
|
|
37
|
-
* - Auto-complements prerequisites, $ref dependencies, and neighbors
|
|
38
|
-
*
|
|
39
|
-
* @author Samchon
|
|
40
|
-
*/
|
|
41
|
-
export class AutoBePreliminaryController<Kind extends AutoBePreliminaryKind> {
|
|
42
|
-
// METADATA
|
|
43
|
-
private readonly source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
|
|
44
|
-
private readonly source_id: string;
|
|
45
|
-
private readonly kinds: Kind[];
|
|
46
|
-
private readonly argumentTypeNames: string[];
|
|
47
|
-
|
|
48
|
-
// PRELIMINARY DATA
|
|
49
|
-
private readonly all: Pick<IAutoBePreliminaryCollection, Kind>;
|
|
50
|
-
private readonly local: Pick<IAutoBePreliminaryCollection, Kind>;
|
|
51
|
-
private readonly config: AutoBePreliminaryController.IConfig<Kind>;
|
|
52
|
-
private readonly state: AutoBeState;
|
|
53
|
-
|
|
54
|
-
// PAGINATION
|
|
55
|
-
private analysisPageOffset: number = 0;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Initializes controller with data collections and auto-complements
|
|
59
|
-
* dependencies.
|
|
60
|
-
*
|
|
61
|
-
* @param props Constructor configuration including kinds, state, and initial
|
|
62
|
-
* data.
|
|
63
|
-
*/
|
|
64
|
-
public constructor(props: AutoBePreliminaryController.IProps<Kind>) {
|
|
65
|
-
this.source = props.source;
|
|
66
|
-
this.source_id = v7();
|
|
67
|
-
this.kinds = props.kinds;
|
|
68
|
-
|
|
69
|
-
// biome-ignore-start lint: intended
|
|
70
|
-
this.config = {
|
|
71
|
-
database: props.config?.database ?? "text",
|
|
72
|
-
databaseProperty: props.config?.databaseProperty ?? false,
|
|
73
|
-
} satisfies AutoBePreliminaryController.IConfig<any> as AutoBePreliminaryController.IConfig<any>;
|
|
74
|
-
// biome-ignore-end lint: intended
|
|
75
|
-
|
|
76
|
-
this.argumentTypeNames = (() => {
|
|
77
|
-
const func = props.application.functions.find(
|
|
78
|
-
(f) => f.name === "process",
|
|
79
|
-
);
|
|
80
|
-
if (func === undefined)
|
|
81
|
-
throw new Error("Unable to find 'process' function in application.");
|
|
82
|
-
|
|
83
|
-
const param = func.parameters[0]?.schema;
|
|
84
|
-
if (
|
|
85
|
-
param === undefined ||
|
|
86
|
-
OpenApiTypeChecker.isReference(param) === false
|
|
87
|
-
)
|
|
88
|
-
throw new Error(
|
|
89
|
-
"'process' function parameter is not a reference type.",
|
|
90
|
-
);
|
|
91
|
-
const schema =
|
|
92
|
-
props.application.components.schemas?.[param.$ref.split("/").pop()!];
|
|
93
|
-
if (schema === undefined || OpenApiTypeChecker.isObject(schema) === false)
|
|
94
|
-
throw new Error(
|
|
95
|
-
"'process' function parameter reference is not an object type.",
|
|
96
|
-
);
|
|
97
|
-
const request = schema.properties?.request;
|
|
98
|
-
if (
|
|
99
|
-
request === undefined ||
|
|
100
|
-
OpenApiTypeChecker.isOneOf(request) === false
|
|
101
|
-
)
|
|
102
|
-
throw new Error(
|
|
103
|
-
"'process' function parameter.request is not a oneOf type.",
|
|
104
|
-
);
|
|
105
|
-
else if (
|
|
106
|
-
request.oneOf.length === 0 ||
|
|
107
|
-
request.oneOf.every(
|
|
108
|
-
(sch) => OpenApiTypeChecker.isReference(sch) === false,
|
|
109
|
-
)
|
|
110
|
-
)
|
|
111
|
-
throw new Error(
|
|
112
|
-
"'process' function parameter.request oneOf does not contain any reference type.",
|
|
113
|
-
);
|
|
114
|
-
return request.oneOf.map((sch) => {
|
|
115
|
-
// biome-ignore lint: intended
|
|
116
|
-
const ref = (sch as any).$ref;
|
|
117
|
-
return ref.split("/").pop()!;
|
|
118
|
-
});
|
|
119
|
-
})();
|
|
120
|
-
|
|
121
|
-
this.state = props.state;
|
|
122
|
-
this.all = createPreliminaryCollection(props.state, props.all);
|
|
123
|
-
this.local = createPreliminaryCollection(null, props.local);
|
|
124
|
-
|
|
125
|
-
complementPreliminaryCollection({
|
|
126
|
-
kinds: props.kinds,
|
|
127
|
-
all: this.all as IAutoBePreliminaryCollection,
|
|
128
|
-
local: this.local as IAutoBePreliminaryCollection,
|
|
129
|
-
prerequisite: false,
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Validates request for duplicates and non-existent items.
|
|
135
|
-
*
|
|
136
|
-
* @param input LLM's function calling request to validate.
|
|
137
|
-
* @returns Validation result with errors if duplicates or non-existent items
|
|
138
|
-
* found.
|
|
139
|
-
*/
|
|
140
|
-
public validate(
|
|
141
|
-
input: IAutoBePreliminaryRequest<Kind>,
|
|
142
|
-
): IValidation<IAutoBePreliminaryRequest<Kind>> {
|
|
143
|
-
return validatePreliminary(this, input);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* Generates dynamic system prompts with `LOADED`/`AVAILABLE` lists.
|
|
148
|
-
*
|
|
149
|
-
* @returns Assistant and system messages with loaded/available item lists.
|
|
150
|
-
*/
|
|
151
|
-
public getHistories(): IMicroAgenticaHistoryJson[] {
|
|
152
|
-
return transformPreliminaryHistory(this);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Returns the orchestration source that created this controller.
|
|
157
|
-
*
|
|
158
|
-
* @returns Source event type (e.g., `"realizeWrite"`, `"interfaceSchema"`).
|
|
159
|
-
*/
|
|
160
|
-
public getSource(): Exclude<AutoBeEventSource, "facade" | "preliminary"> {
|
|
161
|
-
return this.source;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Returns data types enabled for this controller.
|
|
166
|
-
*
|
|
167
|
-
* @returns Array of enabled kinds (e.g., `["databaseSchemas",
|
|
168
|
-
* "interfaceSchemas"]`).
|
|
169
|
-
*/
|
|
170
|
-
public getKinds(): Kind[] {
|
|
171
|
-
return this.kinds;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Returns configuration (e.g., database schema format: `"ast"` | `"text"`).
|
|
176
|
-
*
|
|
177
|
-
* @returns Controller configuration object.
|
|
178
|
-
*/
|
|
179
|
-
public getConfig(): AutoBePreliminaryController.IConfig<Kind> {
|
|
180
|
-
return this.config;
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
/**
|
|
184
|
-
* Returns function calling type names available in LLM application.
|
|
185
|
-
*
|
|
186
|
-
* @returns Array of request type names from `oneOf` union.
|
|
187
|
-
*/
|
|
188
|
-
public getArgumentTypeNames(): string[] {
|
|
189
|
-
return this.argumentTypeNames;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Returns all globally available data from state.
|
|
194
|
-
*
|
|
195
|
-
* @returns Complete dataset that can be requested.
|
|
196
|
-
*/
|
|
197
|
-
public getAll(): Pick<IAutoBePreliminaryCollection, Kind> {
|
|
198
|
-
return this.all;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Returns currently loaded data in agent context.
|
|
203
|
-
*
|
|
204
|
-
* @returns Subset of data already provided to LLM.
|
|
205
|
-
*/
|
|
206
|
-
public getLocal(): Pick<IAutoBePreliminaryCollection, Kind> {
|
|
207
|
-
return this.local;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Extracts acquisition metadata from the currently loaded preliminary data.
|
|
212
|
-
*
|
|
213
|
-
* Transforms the local preliminary collection into a normalized acquisition
|
|
214
|
-
* structure that is suitable for event tracking, including only metadata such
|
|
215
|
-
* as filenames, schema names, and operation identifiers rather than full
|
|
216
|
-
* objects.
|
|
217
|
-
*
|
|
218
|
-
* @returns Acquisition metadata derived from currently loaded data,
|
|
219
|
-
* normalized for event tracking.
|
|
220
|
-
*/
|
|
221
|
-
public getAcquisition(): Pick<AutoBePreliminaryAcquisition, Kind> {
|
|
222
|
-
const acquisition: Partial<AutoBePreliminaryAcquisition> = {};
|
|
223
|
-
const local: IAutoBePreliminaryCollection = this
|
|
224
|
-
.local as IAutoBePreliminaryCollection;
|
|
225
|
-
for (const kind of this.kinds)
|
|
226
|
-
if (kind === "analysisSections")
|
|
227
|
-
acquisition.analysisSections = local.analysisSections.map((s) => s.id);
|
|
228
|
-
else if (kind === "databaseSchemas")
|
|
229
|
-
acquisition.databaseSchemas = local.databaseSchemas.map((s) => s.name);
|
|
230
|
-
else if (kind === "interfaceOperations")
|
|
231
|
-
acquisition.interfaceOperations = local.interfaceOperations.map(
|
|
232
|
-
(o) => ({
|
|
233
|
-
path: o.path,
|
|
234
|
-
method: o.method,
|
|
235
|
-
}),
|
|
236
|
-
);
|
|
237
|
-
else if (kind === "interfaceSchemas")
|
|
238
|
-
acquisition.interfaceSchemas = Object.keys(local.interfaceSchemas);
|
|
239
|
-
else if (kind === "realizeCollectors")
|
|
240
|
-
acquisition.realizeCollectors = local.realizeCollectors.map(
|
|
241
|
-
(f) => f.plan.dtoTypeName,
|
|
242
|
-
);
|
|
243
|
-
else if (kind === "realizeTransformers")
|
|
244
|
-
acquisition.realizeTransformers = local.realizeTransformers.map(
|
|
245
|
-
(f) => f.plan.dtoTypeName,
|
|
246
|
-
);
|
|
247
|
-
else if (kind === "previousAnalysisSections")
|
|
248
|
-
acquisition.previousAnalysisSections =
|
|
249
|
-
local.previousAnalysisSections.map((s) => s.id);
|
|
250
|
-
else if (kind === "previousDatabaseSchemas")
|
|
251
|
-
acquisition.previousDatabaseSchemas = local.previousDatabaseSchemas.map(
|
|
252
|
-
(s) => s.name,
|
|
253
|
-
);
|
|
254
|
-
else if (kind === "previousInterfaceOperations")
|
|
255
|
-
acquisition.previousInterfaceOperations =
|
|
256
|
-
local.previousInterfaceOperations.map((o) => ({
|
|
257
|
-
path: o.path,
|
|
258
|
-
method: o.method,
|
|
259
|
-
}));
|
|
260
|
-
else if (kind === "previousInterfaceSchemas")
|
|
261
|
-
acquisition.previousInterfaceSchemas = Object.keys(
|
|
262
|
-
local.previousInterfaceSchemas,
|
|
263
|
-
);
|
|
264
|
-
else kind satisfies never;
|
|
265
|
-
return acquisition as Pick<AutoBePreliminaryAcquisition, Kind>;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
/**
|
|
269
|
-
* Returns the current AutoBe state.
|
|
270
|
-
*
|
|
271
|
-
* @returns Current pipeline state containing all phase histories.
|
|
272
|
-
*/
|
|
273
|
-
public getState(): AutoBeState {
|
|
274
|
-
return this.state;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/** Returns current page offset for analysis section metadata pagination. */
|
|
278
|
-
public getAnalysisPageOffset(): number {
|
|
279
|
-
return this.analysisPageOffset;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/** Advances analysis section metadata page by PAGE_SIZE. */
|
|
283
|
-
public advanceAnalysisPage(): void {
|
|
284
|
-
this.analysisPageOffset += AutoBeConfigConstant.ANALYSIS_PAGE_SIZE;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/**
|
|
288
|
-
* Dynamically adjusts LLM application schema at runtime.
|
|
289
|
-
*
|
|
290
|
-
* Removes `getPreviousXXX` types from union/oneOf when no previous iteration
|
|
291
|
-
* exists. Mutates application's `anyOf`/`oneOf` array, `$defs`, and
|
|
292
|
-
* `discriminator` mapping. Also erases corresponding `kinds` from
|
|
293
|
-
* controller's `all`/`local` collections.
|
|
294
|
-
*
|
|
295
|
-
* @param application LLM application to modify (mutated in-place)
|
|
296
|
-
*/
|
|
297
|
-
public fixApplication(
|
|
298
|
-
application: ILlmApplication,
|
|
299
|
-
enumerable: boolean = false,
|
|
300
|
-
): ILlmApplication {
|
|
301
|
-
fixPreliminaryApplication({
|
|
302
|
-
state: this.state,
|
|
303
|
-
preliminary: this,
|
|
304
|
-
application,
|
|
305
|
-
enumerable,
|
|
306
|
-
});
|
|
307
|
-
return application;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Runs RAG loop for incremental context loading.
|
|
312
|
-
*
|
|
313
|
-
* Repeats until process returns non-null value or exceeds the maximum number
|
|
314
|
-
* of iterations (`AutoBeConfigConstant.RAG_LIMIT`). Each iteration: LLM
|
|
315
|
-
* requests data → `orchestratePreliminary` adds to `local` → next iteration
|
|
316
|
-
* with updated context.
|
|
317
|
-
*
|
|
318
|
-
* When RAG_LIMIT is exhausted, throws `AutoBePreliminaryExhaustedError` which
|
|
319
|
-
* can be caught alongside `AutoBeTimeoutError` for force-pass.
|
|
320
|
-
*
|
|
321
|
-
* @param ctx AutoBe context for `conversate` and state access.
|
|
322
|
-
* @param process Callback that runs LLM `conversate` and returns result.
|
|
323
|
-
* @returns Final value when process returns non-null or throws after
|
|
324
|
-
* exceeding `AutoBeConfigConstant.RAG_LIMIT` retries.
|
|
325
|
-
*/
|
|
326
|
-
public async orchestrate<T>(
|
|
327
|
-
ctx: AutoBeContext,
|
|
328
|
-
process: (
|
|
329
|
-
out: (
|
|
330
|
-
result: AutoBeContext.IResult,
|
|
331
|
-
) => (value: T | null) => IAutoBeOrchestrateResult<T>,
|
|
332
|
-
) => Promise<IAutoBeOrchestrateResult<T>>,
|
|
333
|
-
): Promise<T | never> {
|
|
334
|
-
for (let i: number = 0; i < AutoBeConfigConstant.RAG_LIMIT; ++i) {
|
|
335
|
-
const result: IAutoBeOrchestrateResult<T> = await process(
|
|
336
|
-
(x) => (value) => ({
|
|
337
|
-
...x,
|
|
338
|
-
value,
|
|
339
|
-
}),
|
|
340
|
-
);
|
|
341
|
-
if (result.value !== null) return result.value;
|
|
342
|
-
|
|
343
|
-
await orchestratePreliminary(ctx, {
|
|
344
|
-
source_id: this.source_id,
|
|
345
|
-
source: this.source,
|
|
346
|
-
preliminary: this,
|
|
347
|
-
trial: i + 1,
|
|
348
|
-
histories: result.histories,
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
throw new AutoBePreliminaryExhaustedError();
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
export namespace AutoBePreliminaryController {
|
|
356
|
-
/** Constructor props for `AutoBePreliminaryController`. */
|
|
357
|
-
export interface IProps<Kind extends AutoBePreliminaryKind> {
|
|
358
|
-
/** Orchestration source creating this controller. */
|
|
359
|
-
source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
|
|
360
|
-
|
|
361
|
-
/** LLM application schema for function calling validation. */
|
|
362
|
-
application: IJsonSchemaApplication;
|
|
363
|
-
|
|
364
|
-
/**
|
|
365
|
-
* Data types to enable (e.g., `["databaseSchemas",
|
|
366
|
-
* "interfaceOperations"]`).
|
|
367
|
-
*/
|
|
368
|
-
kinds: Kind[];
|
|
369
|
-
|
|
370
|
-
/** Current AutoBe state containing generated artifacts. */
|
|
371
|
-
state: AutoBeState;
|
|
372
|
-
|
|
373
|
-
/** Override globally available data (defaults to state). */
|
|
374
|
-
all?: Partial<Pick<IAutoBePreliminaryCollection, Kind>>;
|
|
375
|
-
|
|
376
|
-
/** Initial loaded data for agent context. */
|
|
377
|
-
local?: Partial<Pick<IAutoBePreliminaryCollection, Kind>>;
|
|
378
|
-
|
|
379
|
-
/** Controller configuration options. */
|
|
380
|
-
config?: Partial<IConfig<Kind>>;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
/** Result from orchestration process callback. */
|
|
384
|
-
export interface IProcessResult<T> {
|
|
385
|
-
/** Returned value if task completed, `undefined` if needs more context. */
|
|
386
|
-
value: T | undefined;
|
|
387
|
-
|
|
388
|
-
/** Conversation histories including function calling. */
|
|
389
|
-
histories: IMicroAgenticaHistoryJson[];
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
/** Controller configuration options. */
|
|
393
|
-
export interface IConfig<Kind extends AutoBePreliminaryKind> {
|
|
394
|
-
/** Database schema format: `"ast"` (JSON) or `"text"` (Database DSL). */
|
|
395
|
-
database: Kind extends "databaseSchemas" | "previousDatabaseSchemas"
|
|
396
|
-
? "ast" | "text"
|
|
397
|
-
: never;
|
|
398
|
-
databaseProperty: boolean;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
1
|
+
import { IMicroAgenticaHistoryJson } from "@agentica/core";
|
|
2
|
+
import {
|
|
3
|
+
AutoBeEventSource,
|
|
4
|
+
AutoBePreliminaryAcquisition,
|
|
5
|
+
AutoBePreliminaryKind,
|
|
6
|
+
} from "@autobe/interface";
|
|
7
|
+
import {
|
|
8
|
+
IJsonSchemaApplication,
|
|
9
|
+
ILlmApplication,
|
|
10
|
+
IValidation,
|
|
11
|
+
} from "@typia/interface";
|
|
12
|
+
import { OpenApiTypeChecker } from "@typia/utils";
|
|
13
|
+
import { v7 } from "uuid";
|
|
14
|
+
|
|
15
|
+
import { AutoBeConfigConstant } from "../../constants/AutoBeConfigConstant";
|
|
16
|
+
import { AutoBeContext } from "../../context/AutoBeContext";
|
|
17
|
+
import { AutoBeState } from "../../context/AutoBeState";
|
|
18
|
+
import { AutoBePreliminaryExhaustedError } from "../../utils/AutoBePreliminaryExhaustedError";
|
|
19
|
+
import { transformPreliminaryHistory } from "./histories/transformPreliminaryHistory";
|
|
20
|
+
import { complementPreliminaryCollection } from "./internal/complementPreliminaryCollection";
|
|
21
|
+
import { createPreliminaryCollection } from "./internal/createPreliminaryCollection";
|
|
22
|
+
import { fixPreliminaryApplication } from "./internal/fixPrelminaryApplication";
|
|
23
|
+
import { validatePreliminary } from "./internal/validatePreliminary";
|
|
24
|
+
import { orchestratePreliminary } from "./orchestratePreliminary";
|
|
25
|
+
import { IAutoBePreliminaryRequest } from "./structures/AutoBePreliminaryRequest";
|
|
26
|
+
import { IAutoBeOrchestrateResult } from "./structures/IAutoBeOrchestrateResult";
|
|
27
|
+
import { IAutoBePreliminaryCollection } from "./structures/IAutoBePreliminaryCollection";
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* RAG controller for incremental context loading.
|
|
31
|
+
*
|
|
32
|
+
* Manages LLM's incremental data requests via function calling, preventing
|
|
33
|
+
* duplicates and auto-resolving dependencies.
|
|
34
|
+
*
|
|
35
|
+
* - `all`: globally available data (from state)
|
|
36
|
+
* - `local`: currently loaded data (agent context)
|
|
37
|
+
* - Auto-complements prerequisites, $ref dependencies, and neighbors
|
|
38
|
+
*
|
|
39
|
+
* @author Samchon
|
|
40
|
+
*/
|
|
41
|
+
export class AutoBePreliminaryController<Kind extends AutoBePreliminaryKind> {
|
|
42
|
+
// METADATA
|
|
43
|
+
private readonly source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
|
|
44
|
+
private readonly source_id: string;
|
|
45
|
+
private readonly kinds: Kind[];
|
|
46
|
+
private readonly argumentTypeNames: string[];
|
|
47
|
+
|
|
48
|
+
// PRELIMINARY DATA
|
|
49
|
+
private readonly all: Pick<IAutoBePreliminaryCollection, Kind>;
|
|
50
|
+
private readonly local: Pick<IAutoBePreliminaryCollection, Kind>;
|
|
51
|
+
private readonly config: AutoBePreliminaryController.IConfig<Kind>;
|
|
52
|
+
private readonly state: AutoBeState;
|
|
53
|
+
|
|
54
|
+
// PAGINATION
|
|
55
|
+
private analysisPageOffset: number = 0;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Initializes controller with data collections and auto-complements
|
|
59
|
+
* dependencies.
|
|
60
|
+
*
|
|
61
|
+
* @param props Constructor configuration including kinds, state, and initial
|
|
62
|
+
* data.
|
|
63
|
+
*/
|
|
64
|
+
public constructor(props: AutoBePreliminaryController.IProps<Kind>) {
|
|
65
|
+
this.source = props.source;
|
|
66
|
+
this.source_id = v7();
|
|
67
|
+
this.kinds = props.kinds;
|
|
68
|
+
|
|
69
|
+
// biome-ignore-start lint: intended
|
|
70
|
+
this.config = {
|
|
71
|
+
database: props.config?.database ?? "text",
|
|
72
|
+
databaseProperty: props.config?.databaseProperty ?? false,
|
|
73
|
+
} satisfies AutoBePreliminaryController.IConfig<any> as AutoBePreliminaryController.IConfig<any>;
|
|
74
|
+
// biome-ignore-end lint: intended
|
|
75
|
+
|
|
76
|
+
this.argumentTypeNames = (() => {
|
|
77
|
+
const func = props.application.functions.find(
|
|
78
|
+
(f) => f.name === "process",
|
|
79
|
+
);
|
|
80
|
+
if (func === undefined)
|
|
81
|
+
throw new Error("Unable to find 'process' function in application.");
|
|
82
|
+
|
|
83
|
+
const param = func.parameters[0]?.schema;
|
|
84
|
+
if (
|
|
85
|
+
param === undefined ||
|
|
86
|
+
OpenApiTypeChecker.isReference(param) === false
|
|
87
|
+
)
|
|
88
|
+
throw new Error(
|
|
89
|
+
"'process' function parameter is not a reference type.",
|
|
90
|
+
);
|
|
91
|
+
const schema =
|
|
92
|
+
props.application.components.schemas?.[param.$ref.split("/").pop()!];
|
|
93
|
+
if (schema === undefined || OpenApiTypeChecker.isObject(schema) === false)
|
|
94
|
+
throw new Error(
|
|
95
|
+
"'process' function parameter reference is not an object type.",
|
|
96
|
+
);
|
|
97
|
+
const request = schema.properties?.request;
|
|
98
|
+
if (
|
|
99
|
+
request === undefined ||
|
|
100
|
+
OpenApiTypeChecker.isOneOf(request) === false
|
|
101
|
+
)
|
|
102
|
+
throw new Error(
|
|
103
|
+
"'process' function parameter.request is not a oneOf type.",
|
|
104
|
+
);
|
|
105
|
+
else if (
|
|
106
|
+
request.oneOf.length === 0 ||
|
|
107
|
+
request.oneOf.every(
|
|
108
|
+
(sch) => OpenApiTypeChecker.isReference(sch) === false,
|
|
109
|
+
)
|
|
110
|
+
)
|
|
111
|
+
throw new Error(
|
|
112
|
+
"'process' function parameter.request oneOf does not contain any reference type.",
|
|
113
|
+
);
|
|
114
|
+
return request.oneOf.map((sch) => {
|
|
115
|
+
// biome-ignore lint: intended
|
|
116
|
+
const ref = (sch as any).$ref;
|
|
117
|
+
return ref.split("/").pop()!;
|
|
118
|
+
});
|
|
119
|
+
})();
|
|
120
|
+
|
|
121
|
+
this.state = props.state;
|
|
122
|
+
this.all = createPreliminaryCollection(props.state, props.all);
|
|
123
|
+
this.local = createPreliminaryCollection(null, props.local);
|
|
124
|
+
|
|
125
|
+
complementPreliminaryCollection({
|
|
126
|
+
kinds: props.kinds,
|
|
127
|
+
all: this.all as IAutoBePreliminaryCollection,
|
|
128
|
+
local: this.local as IAutoBePreliminaryCollection,
|
|
129
|
+
prerequisite: false,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Validates request for duplicates and non-existent items.
|
|
135
|
+
*
|
|
136
|
+
* @param input LLM's function calling request to validate.
|
|
137
|
+
* @returns Validation result with errors if duplicates or non-existent items
|
|
138
|
+
* found.
|
|
139
|
+
*/
|
|
140
|
+
public validate(
|
|
141
|
+
input: IAutoBePreliminaryRequest<Kind>,
|
|
142
|
+
): IValidation<IAutoBePreliminaryRequest<Kind>> {
|
|
143
|
+
return validatePreliminary(this, input);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Generates dynamic system prompts with `LOADED`/`AVAILABLE` lists.
|
|
148
|
+
*
|
|
149
|
+
* @returns Assistant and system messages with loaded/available item lists.
|
|
150
|
+
*/
|
|
151
|
+
public getHistories(): IMicroAgenticaHistoryJson[] {
|
|
152
|
+
return transformPreliminaryHistory(this);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Returns the orchestration source that created this controller.
|
|
157
|
+
*
|
|
158
|
+
* @returns Source event type (e.g., `"realizeWrite"`, `"interfaceSchema"`).
|
|
159
|
+
*/
|
|
160
|
+
public getSource(): Exclude<AutoBeEventSource, "facade" | "preliminary"> {
|
|
161
|
+
return this.source;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Returns data types enabled for this controller.
|
|
166
|
+
*
|
|
167
|
+
* @returns Array of enabled kinds (e.g., `["databaseSchemas",
|
|
168
|
+
* "interfaceSchemas"]`).
|
|
169
|
+
*/
|
|
170
|
+
public getKinds(): Kind[] {
|
|
171
|
+
return this.kinds;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Returns configuration (e.g., database schema format: `"ast"` | `"text"`).
|
|
176
|
+
*
|
|
177
|
+
* @returns Controller configuration object.
|
|
178
|
+
*/
|
|
179
|
+
public getConfig(): AutoBePreliminaryController.IConfig<Kind> {
|
|
180
|
+
return this.config;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Returns function calling type names available in LLM application.
|
|
185
|
+
*
|
|
186
|
+
* @returns Array of request type names from `oneOf` union.
|
|
187
|
+
*/
|
|
188
|
+
public getArgumentTypeNames(): string[] {
|
|
189
|
+
return this.argumentTypeNames;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Returns all globally available data from state.
|
|
194
|
+
*
|
|
195
|
+
* @returns Complete dataset that can be requested.
|
|
196
|
+
*/
|
|
197
|
+
public getAll(): Pick<IAutoBePreliminaryCollection, Kind> {
|
|
198
|
+
return this.all;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Returns currently loaded data in agent context.
|
|
203
|
+
*
|
|
204
|
+
* @returns Subset of data already provided to LLM.
|
|
205
|
+
*/
|
|
206
|
+
public getLocal(): Pick<IAutoBePreliminaryCollection, Kind> {
|
|
207
|
+
return this.local;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Extracts acquisition metadata from the currently loaded preliminary data.
|
|
212
|
+
*
|
|
213
|
+
* Transforms the local preliminary collection into a normalized acquisition
|
|
214
|
+
* structure that is suitable for event tracking, including only metadata such
|
|
215
|
+
* as filenames, schema names, and operation identifiers rather than full
|
|
216
|
+
* objects.
|
|
217
|
+
*
|
|
218
|
+
* @returns Acquisition metadata derived from currently loaded data,
|
|
219
|
+
* normalized for event tracking.
|
|
220
|
+
*/
|
|
221
|
+
public getAcquisition(): Pick<AutoBePreliminaryAcquisition, Kind> {
|
|
222
|
+
const acquisition: Partial<AutoBePreliminaryAcquisition> = {};
|
|
223
|
+
const local: IAutoBePreliminaryCollection = this
|
|
224
|
+
.local as IAutoBePreliminaryCollection;
|
|
225
|
+
for (const kind of this.kinds)
|
|
226
|
+
if (kind === "analysisSections")
|
|
227
|
+
acquisition.analysisSections = local.analysisSections.map((s) => s.id);
|
|
228
|
+
else if (kind === "databaseSchemas")
|
|
229
|
+
acquisition.databaseSchemas = local.databaseSchemas.map((s) => s.name);
|
|
230
|
+
else if (kind === "interfaceOperations")
|
|
231
|
+
acquisition.interfaceOperations = local.interfaceOperations.map(
|
|
232
|
+
(o) => ({
|
|
233
|
+
path: o.path,
|
|
234
|
+
method: o.method,
|
|
235
|
+
}),
|
|
236
|
+
);
|
|
237
|
+
else if (kind === "interfaceSchemas")
|
|
238
|
+
acquisition.interfaceSchemas = Object.keys(local.interfaceSchemas);
|
|
239
|
+
else if (kind === "realizeCollectors")
|
|
240
|
+
acquisition.realizeCollectors = local.realizeCollectors.map(
|
|
241
|
+
(f) => f.plan.dtoTypeName,
|
|
242
|
+
);
|
|
243
|
+
else if (kind === "realizeTransformers")
|
|
244
|
+
acquisition.realizeTransformers = local.realizeTransformers.map(
|
|
245
|
+
(f) => f.plan.dtoTypeName,
|
|
246
|
+
);
|
|
247
|
+
else if (kind === "previousAnalysisSections")
|
|
248
|
+
acquisition.previousAnalysisSections =
|
|
249
|
+
local.previousAnalysisSections.map((s) => s.id);
|
|
250
|
+
else if (kind === "previousDatabaseSchemas")
|
|
251
|
+
acquisition.previousDatabaseSchemas = local.previousDatabaseSchemas.map(
|
|
252
|
+
(s) => s.name,
|
|
253
|
+
);
|
|
254
|
+
else if (kind === "previousInterfaceOperations")
|
|
255
|
+
acquisition.previousInterfaceOperations =
|
|
256
|
+
local.previousInterfaceOperations.map((o) => ({
|
|
257
|
+
path: o.path,
|
|
258
|
+
method: o.method,
|
|
259
|
+
}));
|
|
260
|
+
else if (kind === "previousInterfaceSchemas")
|
|
261
|
+
acquisition.previousInterfaceSchemas = Object.keys(
|
|
262
|
+
local.previousInterfaceSchemas,
|
|
263
|
+
);
|
|
264
|
+
else kind satisfies never;
|
|
265
|
+
return acquisition as Pick<AutoBePreliminaryAcquisition, Kind>;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Returns the current AutoBe state.
|
|
270
|
+
*
|
|
271
|
+
* @returns Current pipeline state containing all phase histories.
|
|
272
|
+
*/
|
|
273
|
+
public getState(): AutoBeState {
|
|
274
|
+
return this.state;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/** Returns current page offset for analysis section metadata pagination. */
|
|
278
|
+
public getAnalysisPageOffset(): number {
|
|
279
|
+
return this.analysisPageOffset;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
/** Advances analysis section metadata page by PAGE_SIZE. */
|
|
283
|
+
public advanceAnalysisPage(): void {
|
|
284
|
+
this.analysisPageOffset += AutoBeConfigConstant.ANALYSIS_PAGE_SIZE;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Dynamically adjusts LLM application schema at runtime.
|
|
289
|
+
*
|
|
290
|
+
* Removes `getPreviousXXX` types from union/oneOf when no previous iteration
|
|
291
|
+
* exists. Mutates application's `anyOf`/`oneOf` array, `$defs`, and
|
|
292
|
+
* `discriminator` mapping. Also erases corresponding `kinds` from
|
|
293
|
+
* controller's `all`/`local` collections.
|
|
294
|
+
*
|
|
295
|
+
* @param application LLM application to modify (mutated in-place)
|
|
296
|
+
*/
|
|
297
|
+
public fixApplication(
|
|
298
|
+
application: ILlmApplication,
|
|
299
|
+
enumerable: boolean = false,
|
|
300
|
+
): ILlmApplication {
|
|
301
|
+
fixPreliminaryApplication({
|
|
302
|
+
state: this.state,
|
|
303
|
+
preliminary: this,
|
|
304
|
+
application,
|
|
305
|
+
enumerable,
|
|
306
|
+
});
|
|
307
|
+
return application;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Runs RAG loop for incremental context loading.
|
|
312
|
+
*
|
|
313
|
+
* Repeats until process returns non-null value or exceeds the maximum number
|
|
314
|
+
* of iterations (`AutoBeConfigConstant.RAG_LIMIT`). Each iteration: LLM
|
|
315
|
+
* requests data → `orchestratePreliminary` adds to `local` → next iteration
|
|
316
|
+
* with updated context.
|
|
317
|
+
*
|
|
318
|
+
* When RAG_LIMIT is exhausted, throws `AutoBePreliminaryExhaustedError` which
|
|
319
|
+
* can be caught alongside `AutoBeTimeoutError` for force-pass.
|
|
320
|
+
*
|
|
321
|
+
* @param ctx AutoBe context for `conversate` and state access.
|
|
322
|
+
* @param process Callback that runs LLM `conversate` and returns result.
|
|
323
|
+
* @returns Final value when process returns non-null or throws after
|
|
324
|
+
* exceeding `AutoBeConfigConstant.RAG_LIMIT` retries.
|
|
325
|
+
*/
|
|
326
|
+
public async orchestrate<T>(
|
|
327
|
+
ctx: AutoBeContext,
|
|
328
|
+
process: (
|
|
329
|
+
out: (
|
|
330
|
+
result: AutoBeContext.IResult,
|
|
331
|
+
) => (value: T | null) => IAutoBeOrchestrateResult<T>,
|
|
332
|
+
) => Promise<IAutoBeOrchestrateResult<T>>,
|
|
333
|
+
): Promise<T | never> {
|
|
334
|
+
for (let i: number = 0; i < AutoBeConfigConstant.RAG_LIMIT; ++i) {
|
|
335
|
+
const result: IAutoBeOrchestrateResult<T> = await process(
|
|
336
|
+
(x) => (value) => ({
|
|
337
|
+
...x,
|
|
338
|
+
value,
|
|
339
|
+
}),
|
|
340
|
+
);
|
|
341
|
+
if (result.value !== null) return result.value;
|
|
342
|
+
|
|
343
|
+
await orchestratePreliminary(ctx, {
|
|
344
|
+
source_id: this.source_id,
|
|
345
|
+
source: this.source,
|
|
346
|
+
preliminary: this,
|
|
347
|
+
trial: i + 1,
|
|
348
|
+
histories: result.histories,
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
throw new AutoBePreliminaryExhaustedError();
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
export namespace AutoBePreliminaryController {
|
|
356
|
+
/** Constructor props for `AutoBePreliminaryController`. */
|
|
357
|
+
export interface IProps<Kind extends AutoBePreliminaryKind> {
|
|
358
|
+
/** Orchestration source creating this controller. */
|
|
359
|
+
source: Exclude<AutoBeEventSource, "facade" | "preliminary">;
|
|
360
|
+
|
|
361
|
+
/** LLM application schema for function calling validation. */
|
|
362
|
+
application: IJsonSchemaApplication;
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Data types to enable (e.g., `["databaseSchemas",
|
|
366
|
+
* "interfaceOperations"]`).
|
|
367
|
+
*/
|
|
368
|
+
kinds: Kind[];
|
|
369
|
+
|
|
370
|
+
/** Current AutoBe state containing generated artifacts. */
|
|
371
|
+
state: AutoBeState;
|
|
372
|
+
|
|
373
|
+
/** Override globally available data (defaults to state). */
|
|
374
|
+
all?: Partial<Pick<IAutoBePreliminaryCollection, Kind>>;
|
|
375
|
+
|
|
376
|
+
/** Initial loaded data for agent context. */
|
|
377
|
+
local?: Partial<Pick<IAutoBePreliminaryCollection, Kind>>;
|
|
378
|
+
|
|
379
|
+
/** Controller configuration options. */
|
|
380
|
+
config?: Partial<IConfig<Kind>>;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
/** Result from orchestration process callback. */
|
|
384
|
+
export interface IProcessResult<T> {
|
|
385
|
+
/** Returned value if task completed, `undefined` if needs more context. */
|
|
386
|
+
value: T | undefined;
|
|
387
|
+
|
|
388
|
+
/** Conversation histories including function calling. */
|
|
389
|
+
histories: IMicroAgenticaHistoryJson[];
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/** Controller configuration options. */
|
|
393
|
+
export interface IConfig<Kind extends AutoBePreliminaryKind> {
|
|
394
|
+
/** Database schema format: `"ast"` (JSON) or `"text"` (Database DSL). */
|
|
395
|
+
database: Kind extends "databaseSchemas" | "previousDatabaseSchemas"
|
|
396
|
+
? "ast" | "text"
|
|
397
|
+
: never;
|
|
398
|
+
databaseProperty: boolean;
|
|
399
|
+
}
|
|
400
|
+
}
|