@autobe/agent 0.28.1 → 0.29.1
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/lib/AutoBeAgent.js +5 -4
- package/lib/AutoBeAgent.js.map +1 -1
- package/lib/AutoBeMockAgent.js +1 -0
- package/lib/AutoBeMockAgent.js.map +1 -1
- package/lib/constants/AutoBeConfigConstant.d.ts +3 -1
- package/lib/constants/AutoBeSystemPromptConstant.d.ts +39 -26
- package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
- package/lib/context/AutoBeContext.d.ts +1 -1
- package/lib/factory/createAutoBeContext.js +13 -13
- package/lib/factory/createAutoBeContext.js.map +1 -1
- package/lib/index.mjs +43499 -23744
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.d.ts +7 -2
- package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js +11 -21
- package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js.map +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.d.ts +2 -2
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +12 -5
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.d.ts +2 -2
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +53 -50
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyze.js +2 -2
- package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js +855 -258
- package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +2 -14
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +2 -9
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +110 -36
- package/lib/orchestrate/common/AutoBePreliminaryController.d.ts +40 -0
- package/lib/orchestrate/common/AutoBePreliminaryController.js +97 -0
- package/lib/orchestrate/common/AutoBePreliminaryController.js.map +1 -0
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.d.ts +8 -0
- package/lib/orchestrate/{realize/histories/transformRealizeCorrectCastingHistories.js → common/histories/transformCommonCorrectCastingHistory.js} +16 -13
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.js.map +1 -0
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.d.ts +4 -0
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.js +285 -0
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.js.map +1 -0
- package/lib/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.d.ts → transformPreviousAndLatestCorrectHistory.d.ts} +1 -1
- package/lib/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.js → transformPreviousAndLatestCorrectHistory.js} +4 -4
- package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js.map +1 -0
- package/lib/orchestrate/common/internal/complementPreliminaryCollection.d.ts +7 -0
- package/lib/orchestrate/common/internal/complementPreliminaryCollection.js +99 -0
- package/lib/orchestrate/common/internal/complementPreliminaryCollection.js.map +1 -0
- package/lib/orchestrate/common/internal/createPreliminaryCollection.d.ts +3 -0
- package/lib/orchestrate/common/internal/createPreliminaryCollection.js +20 -0
- package/lib/orchestrate/common/internal/createPreliminaryCollection.js.map +1 -0
- package/lib/orchestrate/common/internal/validatePreliminary.d.ts +5 -0
- package/lib/orchestrate/common/internal/validatePreliminary.js +217 -0
- package/lib/orchestrate/common/internal/validatePreliminary.js.map +1 -0
- package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +10 -22
- package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
- package/lib/orchestrate/common/orchestratePreliminary.d.ts +12 -0
- package/lib/orchestrate/common/orchestratePreliminary.js +231 -0
- package/lib/orchestrate/common/orchestratePreliminary.js.map +1 -0
- package/lib/orchestrate/common/structures/AutoBePreliminaryRequest.d.ts +16 -0
- package/lib/orchestrate/{realize/structures/IAutoBeRealizeAuthorizationApplication.js → common/structures/AutoBePreliminaryRequest.js} +1 -1
- package/lib/orchestrate/common/structures/AutoBePreliminaryRequest.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.d.ts +1 -4
- package/lib/orchestrate/common/structures/IAutoBeOrchestrateResult.d.ts +9 -0
- package/lib/orchestrate/{interface/structures/IAutoBeInterfacePrerequisitesApplication.js → common/structures/IAutoBeOrchestrateResult.js} +1 -1
- package/lib/orchestrate/common/structures/IAutoBeOrchestrateResult.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.d.ts +8 -0
- package/lib/orchestrate/{interface/structures/IAutoBeInterfaceEndpointsReviewApplication.js → common/structures/IAutoBePreliminaryCollection.js} +1 -1
- package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.d.ts +27 -0
- package/lib/orchestrate/{interface/structures/IAutoBeInterfaceOperationsReviewApplication.js → common/structures/IAutoBePreliminaryGetAnalysisFiles.js} +1 -1
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.d.ts +28 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.js +3 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.d.ts +27 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.js +3 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.d.ts +27 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.js +3 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.d.ts +10 -0
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js +70 -0
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceCommonHistory.d.ts +3 -0
- package/lib/orchestrate/interface/histories/{transformInterfaceCommonHistories.js → transformInterfaceCommonHistory.js} +4 -4
- package/lib/orchestrate/interface/histories/transformInterfaceCommonHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.d.ts +9 -0
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.js +60 -0
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.d.ts +12 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.js +63 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.d.ts +7 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.js +36 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.d.ts +6 -0
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js +68 -0
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.d.ts +9 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js +72 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.d.ts +7 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js +38 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.d.ts +8 -0
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js +73 -0
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.d.ts +11 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.js +95 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.d.ts +5 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js +54 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.d.ts +12 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js +75 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterface.js +90 -46
- package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.d.ts +6 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceAuthorizations.js → orchestrateInterfaceAuthorization.js} +1370 -226
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.d.ts +4 -3
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +2807 -532
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
- package/lib/orchestrate/interface/{orchestrateInterfaceEndpoints.d.ts → orchestrateInterfaceEndpoint.d.ts} +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoint.js +1356 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoint.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.d.ts +4 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +1337 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceGroups.d.ts → orchestrateInterfaceGroup.d.ts} +1 -2
- package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +621 -0
- package/lib/orchestrate/interface/orchestrateInterfaceGroup.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceOperations.d.ts → orchestrateInterfaceOperation.d.ts} +1 -2
- package/lib/orchestrate/interface/{orchestrateInterfaceOperations.js → orchestrateInterfaceOperation.js} +1275 -216
- package/lib/orchestrate/interface/orchestrateInterfaceOperation.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.d.ts +4 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceOperationsReview.js → orchestrateInterfaceOperationReview.js} +1421 -247
- package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfacePrerequisites.d.ts → orchestrateInterfacePrerequisite.d.ts} +1 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +2159 -0
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceSchemas.d.ts → orchestrateInterfaceSchema.d.ts} +1 -2
- package/lib/orchestrate/interface/{orchestrateInterfaceSchemas.js → orchestrateInterfaceSchema.js} +2550 -546
- package/lib/orchestrate/interface/orchestrateInterfaceSchema.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +7 -17
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.d.ts +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +2823 -548
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.d.ts +56 -5
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.d.ts +57 -10
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.d.ts +55 -10
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.d.ts +96 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.js +3 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.js.map +1 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +6 -82
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +58 -13
- package/lib/orchestrate/interface/structures/{IAutoBeInterfaceOperationsReviewApplication.d.ts → IAutoBeInterfaceOperationReviewApplication.d.ts} +58 -28
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.js +3 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.js.map +1 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.d.ts +98 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.js +3 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.js.map +1 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +56 -15
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaContentReviewApplication.d.ts +62 -22
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaRelationReviewApplication.d.ts +60 -21
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaSecurityReviewApplication.d.ts +61 -19
- package/lib/orchestrate/interface/utils/JsonSchemaFactory.js +29 -23
- package/lib/orchestrate/interface/utils/JsonSchemaFactory.js.map +1 -1
- package/lib/orchestrate/interface/utils/JsonSchemaNamingConvention.js +67 -61
- package/lib/orchestrate/interface/utils/JsonSchemaNamingConvention.js.map +1 -1
- package/lib/orchestrate/interface/utils/JsonSchemaValidator.d.ts +2 -1
- package/lib/orchestrate/interface/utils/JsonSchemaValidator.js +52 -25
- package/lib/orchestrate/interface/utils/JsonSchemaValidator.js.map +1 -1
- package/lib/orchestrate/interface/utils/OperationValidator.js +59 -1
- package/lib/orchestrate/interface/utils/OperationValidator.js.map +1 -1
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.d.ts +6 -0
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js +98 -0
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js.map +1 -0
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.d.ts +7 -0
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js +31 -0
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js.map +1 -0
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.d.ts +7 -0
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.js +38 -0
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.js.map +1 -0
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.d.ts +8 -0
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js +79 -0
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js.map +1 -0
- package/lib/orchestrate/prisma/orchestratePrisma.js +9 -6
- package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.d.ts +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +8 -14
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +2863 -1543
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaReview.d.ts +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaReview.js +2886 -1566
- package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
- package/lib/orchestrate/prisma/{orchestratePrismaSchemas.d.ts → orchestratePrismaSchema.d.ts} +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js +3068 -0
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js.map +1 -0
- package/lib/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.d.ts +74 -76
- package/lib/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.d.ts +90 -72
- package/lib/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.d.ts +89 -66
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.d.ts +9 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js +79 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.d.ts +7 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js +41 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.d.ts +12 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js +67 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.d.ts +18 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.js +54 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.d.ts +4 -2
- package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js +140 -106
- package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -1
- package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.d.ts +3 -0
- package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.js +23 -0
- package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealize.js +4 -4
- package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.d.ts +5 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +1288 -572
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
- package/lib/orchestrate/realize/{orchestrateRealizeAuthorization.d.ts → orchestrateRealizeAuthorizationWrite.d.ts} +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +1410 -0
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +664 -140
- package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js +20 -65
- package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeWrite.js +660 -135
- package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +79 -19
- package/lib/orchestrate/realize/structures/{IAutoBeRealizeAuthorizationApplication.d.ts → IAutoBeRealizeAuthorizationWriteApplication.d.ts} +60 -27
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.js +3 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.js.map +1 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +54 -5
- package/lib/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.d.ts +6 -14
- package/lib/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts +54 -6
- package/lib/orchestrate/realize/utils/generateRealizeScenario.d.ts +1 -3
- package/lib/orchestrate/realize/utils/generateRealizeScenario.js +1 -7
- package/lib/orchestrate/realize/utils/generateRealizeScenario.js.map +1 -1
- package/lib/orchestrate/test/histories/transformTestCorrectHistories.d.ts +3 -3
- package/lib/orchestrate/test/histories/transformTestCorrectHistories.js +23 -20
- package/lib/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -1
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.d.ts +4 -0
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.js +36 -0
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.js.map +1 -0
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.d.ts +11 -0
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.js +95 -0
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.js.map +1 -0
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.d.ts +10 -0
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js +67 -0
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js.map +1 -0
- package/lib/orchestrate/test/histories/{transformTestWriteHistories.d.ts → transformTestWriteHistory.d.ts} +4 -4
- package/lib/orchestrate/test/histories/{transformTestWriteHistories.js → transformTestWriteHistory.js} +79 -76
- package/lib/orchestrate/test/histories/transformTestWriteHistory.js.map +1 -0
- package/lib/orchestrate/test/orchestrateTestCorrect.js +13 -26
- package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +3 -15
- package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenario.d.ts +1 -1
- package/lib/orchestrate/test/orchestrateTestScenario.js +1370 -316
- package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenarioReview.d.ts +5 -3
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1067 -288
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestWrite.js +8 -15
- package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
- package/lib/orchestrate/test/structures/IAutoBeTestScenarioApplication.d.ts +66 -4
- package/lib/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.d.ts +82 -14
- package/lib/structures/IAutoBeOrchestrateHistory.d.ts +5 -0
- package/lib/structures/IAutoBeOrchestrateHistory.js +3 -0
- package/lib/structures/IAutoBeOrchestrateHistory.js.map +1 -0
- package/lib/utils/executeCachedBatch.d.ts +5 -1
- package/lib/utils/executeCachedBatch.js +23 -5
- package/lib/utils/executeCachedBatch.js.map +1 -1
- package/lib/utils/validateEmptyCode.js +2 -2
- package/lib/utils/validateEmptyCode.js.map +1 -1
- package/package.json +8 -6
- package/src/AutoBeAgent.ts +2 -1
- package/src/AutoBeMockAgent.ts +1 -0
- package/src/constants/AutoBeConfigConstant.ts +2 -0
- package/src/constants/AutoBeSystemPromptConstant.ts +39 -26
- package/src/context/AutoBeContext.ts +1 -1
- package/src/factory/createAutoBeContext.ts +10 -5
- package/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.ts +17 -28
- package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.ts +12 -6
- package/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.ts +62 -61
- package/src/orchestrate/analyze/orchestrateAnalyze.ts +2 -0
- package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +97 -48
- package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +3 -16
- package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +1 -2
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.ts +114 -36
- package/src/orchestrate/common/AutoBePreliminaryController.ts +161 -0
- package/src/orchestrate/common/histories/transformCommonCorrectCastingHistory.ts +32 -0
- package/src/orchestrate/common/histories/transformPreliminaryHistory.ts +383 -0
- package/src/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.ts → transformPreviousAndLatestCorrectHistory.ts} +1 -1
- package/src/orchestrate/common/internal/complementPreliminaryCollection.ts +123 -0
- package/src/orchestrate/common/internal/createPreliminaryCollection.ts +32 -0
- package/src/orchestrate/common/internal/validatePreliminary.ts +315 -0
- package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +8 -15
- package/src/orchestrate/common/orchestratePreliminary.ts +361 -0
- package/src/orchestrate/common/structures/AutoBePreliminaryRequest.ts +18 -0
- package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +1 -4
- package/src/orchestrate/common/structures/IAutoBeOrchestrateResult.ts +13 -0
- package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +9 -0
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.ts +29 -0
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +30 -0
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +29 -0
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.ts +29 -0
- package/src/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.ts +77 -0
- package/src/orchestrate/interface/histories/{transformInterfaceCommonHistories.ts → transformInterfaceCommonHistory.ts} +1 -1
- package/src/orchestrate/interface/histories/{transformInterfaceGroupHistories.ts → transformInterfaceComplementHistory.ts} +35 -21
- package/src/orchestrate/interface/histories/transformInterfaceEndpointHistory.ts +74 -0
- package/src/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.ts +40 -0
- package/src/orchestrate/interface/histories/transformInterfaceGroupHistory.ts +72 -0
- package/src/orchestrate/interface/histories/transformInterfaceOperationHistory.ts +79 -0
- package/src/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.ts +43 -0
- package/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.ts +89 -0
- package/src/orchestrate/interface/histories/transformInterfaceSchemaHistory.ts +105 -0
- package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.ts +56 -0
- package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.ts +88 -0
- package/src/orchestrate/interface/orchestrateInterface.ts +115 -51
- package/src/orchestrate/interface/{orchestrateInterfaceAuthorizations.ts → orchestrateInterfaceAuthorization.ts} +91 -67
- package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +174 -78
- package/src/orchestrate/interface/orchestrateInterfaceEndpoint.ts +207 -0
- package/src/orchestrate/interface/orchestrateInterfaceEndpointReview.ts +139 -0
- package/src/orchestrate/interface/orchestrateInterfaceGroup.ts +153 -0
- package/src/orchestrate/interface/{orchestrateInterfaceOperations.ts → orchestrateInterfaceOperation.ts} +109 -86
- package/src/orchestrate/interface/orchestrateInterfaceOperationReview.ts +186 -0
- package/src/orchestrate/interface/{orchestrateInterfacePrerequisites.ts → orchestrateInterfacePrerequisite.ts} +123 -58
- package/src/orchestrate/interface/{orchestrateInterfaceSchemas.ts → orchestrateInterfaceSchema.ts} +96 -90
- package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +10 -11
- package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +127 -60
- package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.ts +63 -5
- package/src/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.ts +67 -12
- package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.ts +63 -10
- package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +106 -0
- package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +6 -84
- package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +65 -13
- package/src/orchestrate/interface/structures/{IAutoBeInterfaceOperationsReviewApplication.ts → IAutoBeInterfaceOperationReviewApplication.ts} +65 -30
- package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +111 -0
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +65 -15
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaContentReviewApplication.ts +71 -24
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRelationReviewApplication.ts +68 -23
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaSecurityReviewApplication.ts +69 -21
- package/src/orchestrate/interface/utils/JsonSchemaFactory.ts +31 -23
- package/src/orchestrate/interface/utils/JsonSchemaNamingConvention.ts +73 -61
- package/src/orchestrate/interface/utils/JsonSchemaValidator.ts +53 -26
- package/src/orchestrate/interface/utils/OperationValidator.ts +69 -1
- package/src/orchestrate/prisma/histories/transformPrismaComponentsHistory.ts +109 -0
- package/src/orchestrate/prisma/histories/{transformPrismaCorrectHistories.ts → transformPrismaCorrectHistory.ts} +13 -22
- package/src/orchestrate/prisma/histories/transformPrismaReviewHistory.ts +42 -0
- package/src/orchestrate/prisma/histories/{transformPrismaSchemaHistories.ts → transformPrismaSchemaHistory.ts} +7 -8
- package/src/orchestrate/prisma/orchestratePrisma.ts +12 -17
- package/src/orchestrate/prisma/orchestratePrismaComponent.ts +7 -15
- package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +129 -64
- package/src/orchestrate/prisma/orchestratePrismaReview.ts +115 -59
- package/src/orchestrate/prisma/{orchestratePrismaSchemas.ts → orchestratePrismaSchema.ts} +92 -60
- package/src/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.ts +81 -76
- package/src/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.ts +97 -72
- package/src/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.ts +93 -66
- package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.ts +89 -0
- package/src/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.ts +45 -0
- package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.ts +85 -0
- package/src/orchestrate/realize/histories/transformRealizeCorrectHistory.ts +77 -0
- package/src/orchestrate/realize/histories/transformRealizeWriteHistories.ts +152 -121
- package/src/orchestrate/realize/histories/{transformRealizeWriteAuthorizationsHistories.ts → transformRealizeWriteMembershipHistory.ts} +2 -2
- package/src/orchestrate/realize/orchestrateRealize.ts +4 -3
- package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +155 -97
- package/src/orchestrate/realize/orchestrateRealizeAuthorizationWrite.ts +241 -0
- package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +88 -86
- package/src/orchestrate/realize/orchestrateRealizeCorrectCasting.ts +17 -56
- package/src/orchestrate/realize/orchestrateRealizeWrite.ts +82 -78
- package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +85 -22
- package/src/orchestrate/realize/structures/{IAutoBeRealizeAuthorizationApplication.ts → IAutoBeRealizeAuthorizationWriteApplication.ts} +64 -29
- package/src/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.ts +58 -5
- package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.ts +6 -19
- package/src/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.ts +58 -6
- package/src/orchestrate/realize/utils/generateRealizeScenario.ts +2 -20
- package/src/orchestrate/test/histories/transformTestCorrectHistories.ts +30 -30
- package/src/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.ts +40 -0
- package/src/orchestrate/test/histories/transformTestScenarioHistory.ts +116 -0
- package/src/orchestrate/test/histories/transformTestScenarioReviewHistory.ts +85 -0
- package/src/orchestrate/test/histories/transformTestWriteHistory.ts +169 -0
- package/src/orchestrate/test/orchestrateTestCorrect.ts +13 -19
- package/src/orchestrate/test/orchestrateTestCorrectInvalidRequest.ts +5 -12
- package/src/orchestrate/test/orchestrateTestScenario.ts +143 -83
- package/src/orchestrate/test/orchestrateTestScenarioReview.ts +93 -76
- package/src/orchestrate/test/orchestrateTestWrite.ts +7 -7
- package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +74 -4
- package/src/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.ts +89 -14
- package/src/structures/IAutoBeOrchestrateHistory.ts +6 -0
- package/src/utils/executeCachedBatch.ts +33 -7
- package/src/utils/validateEmptyCode.ts +2 -2
- package/lib/factory/AutoBeFunctionCallingMetricFactory.d.ts +0 -7
- package/lib/factory/AutoBeFunctionCallingMetricFactory.js +0 -35
- package/lib/factory/AutoBeFunctionCallingMetricFactory.js.map +0 -1
- package/lib/factory/AutoBeProcessAggregateFactory.d.ts +0 -13
- package/lib/factory/AutoBeProcessAggregateFactory.js +0 -100
- package/lib/factory/AutoBeProcessAggregateFactory.js.map +0 -1
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.d.ts +0 -8
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.js +0 -16
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistories.js.map +0 -1
- package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.d.ts +0 -3
- package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js +0 -62
- package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.d.ts +0 -8
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js +0 -68
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceCommonHistories.d.ts +0 -3
- package/lib/orchestrate/interface/histories/transformInterfaceCommonHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.d.ts +0 -9
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js +0 -74
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.d.ts +0 -10
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +0 -61
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.d.ts +0 -4
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js +0 -34
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.d.ts +0 -6
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js +0 -52
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.d.ts +0 -8
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js +0 -71
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.d.ts +0 -5
- package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +0 -36
- package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.d.ts +0 -3
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.js +0 -102
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.d.ts +0 -9
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +0 -74
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.d.ts +0 -5
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.js +0 -51
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.js.map +0 -1
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.d.ts +0 -11
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.js +0 -81
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.d.ts +0 -4
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +0 -508
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.d.ts +0 -4
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +0 -488
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +0 -458
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.d.ts +0 -4
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +0 -917
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +0 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.d.ts +0 -60
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.js.map +0 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.js.map +0 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.d.ts +0 -52
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.d.ts +0 -6
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +0 -95
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.d.ts +0 -3
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js +0 -41
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.d.ts +0 -8
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js +0 -62
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.d.ts +0 -8
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +0 -78
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +0 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +0 -1678
- package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeAuthorization.d.ts +0 -5
- package/lib/orchestrate/realize/histories/transformRealizeAuthorization.js +0 -44
- package/lib/orchestrate/realize/histories/transformRealizeAuthorization.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.d.ts +0 -5
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js +0 -82
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.d.ts +0 -5
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.d.ts +0 -13
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js +0 -29
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.d.ts +0 -3
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +0 -23
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js.map +0 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +0 -710
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +0 -1
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.d.ts +0 -4
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js +0 -33
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestScenarioHistories.d.ts +0 -10
- package/lib/orchestrate/test/histories/transformTestScenarioHistories.js +0 -101
- package/lib/orchestrate/test/histories/transformTestScenarioHistories.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.d.ts +0 -8
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js +0 -72
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +0 -1
- package/lib/utils/TokenUsageComputer.d.ts +0 -5
- package/lib/utils/TokenUsageComputer.js +0 -29
- package/lib/utils/TokenUsageComputer.js.map +0 -1
- package/src/factory/AutoBeFunctionCallingMetricFactory.ts +0 -44
- package/src/factory/AutoBeProcessAggregateFactory.ts +0 -141
- package/src/orchestrate/common/histories/transformCommonCorrectCastingHistories.ts +0 -25
- package/src/orchestrate/interface/histories/transformInterfaceAssetHistories.ts +0 -72
- package/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.ts +0 -75
- package/src/orchestrate/interface/histories/transformInterfaceComplementHistories.ts +0 -82
- package/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.ts +0 -72
- package/src/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.ts +0 -40
- package/src/orchestrate/interface/histories/transformInterfaceOperationHistories.ts +0 -78
- package/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.ts +0 -44
- package/src/orchestrate/interface/histories/transformInterfacePrerequisitesHistories.ts +0 -118
- package/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.ts +0 -80
- package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistories.ts +0 -55
- package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistories.ts +0 -90
- package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +0 -152
- package/src/orchestrate/interface/orchestrateInterfaceEndpointsReview.ts +0 -98
- package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +0 -91
- package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +0 -157
- package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.ts +0 -65
- package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.ts +0 -58
- package/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.ts +0 -104
- package/src/orchestrate/prisma/histories/transformPrismaReviewHistories.ts +0 -69
- package/src/orchestrate/realize/histories/transformRealizeAuthorization.ts +0 -52
- package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.ts +0 -95
- package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.ts +0 -30
- package/src/orchestrate/realize/histories/transformRealizeCorrectHistories.ts +0 -46
- package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +0 -185
- package/src/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.ts +0 -39
- package/src/orchestrate/test/histories/transformTestScenarioHistories.ts +0 -125
- package/src/orchestrate/test/histories/transformTestScenarioReviewHistories.ts +0 -89
- package/src/orchestrate/test/histories/transformTestWriteHistories.ts +0 -172
- package/src/utils/TokenUsageComputer.ts +0 -35
|
@@ -45,7 +45,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
46
|
};
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.orchestrateTestScenario =
|
|
48
|
+
exports.orchestrateTestScenario = void 0;
|
|
49
49
|
const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
|
|
50
50
|
const __typia_transform__llmApplicationFinalize = __importStar(require("typia/lib/internal/_llmApplicationFinalize.js"));
|
|
51
51
|
const utils_1 = require("@autobe/utils");
|
|
@@ -56,99 +56,372 @@ const uuid_1 = require("uuid");
|
|
|
56
56
|
const assertSchemaModel_1 = require("../../context/assertSchemaModel");
|
|
57
57
|
const divideArray_1 = require("../../utils/divideArray");
|
|
58
58
|
const executeCachedBatch_1 = require("../../utils/executeCachedBatch");
|
|
59
|
-
const
|
|
59
|
+
const AutoBePreliminaryController_1 = require("../common/AutoBePreliminaryController");
|
|
60
|
+
const transformTestScenarioHistory_1 = require("./histories/transformTestScenarioHistory");
|
|
60
61
|
const orchestrateTestScenarioReview_1 = require("./orchestrateTestScenarioReview");
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
instruction,
|
|
108
|
-
})));
|
|
62
|
+
const getPrerequisites_1 = require("./utils/getPrerequisites");
|
|
63
|
+
const orchestrateTestScenario = (ctx, instruction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
64
|
+
var _a;
|
|
65
|
+
const document = (_a = ctx.state().interface) === null || _a === void 0 ? void 0 : _a.document;
|
|
66
|
+
if (document === undefined) {
|
|
67
|
+
throw new Error("Cannot write test scenarios because these are no operations.");
|
|
68
|
+
}
|
|
69
|
+
const dict = new tstl_1.HashMap(document.operations.map((op) => new tstl_1.Pair({
|
|
70
|
+
path: op.path,
|
|
71
|
+
method: op.method,
|
|
72
|
+
}, op)), utils_1.AutoBeOpenApiEndpointComparator.hashCode, utils_1.AutoBeOpenApiEndpointComparator.equals);
|
|
73
|
+
const endpointNotFound = [
|
|
74
|
+
`You have to select one of the endpoints below`,
|
|
75
|
+
"",
|
|
76
|
+
" method | path ",
|
|
77
|
+
"--------|------",
|
|
78
|
+
...document.operations
|
|
79
|
+
.map((op) => `\`${op.method}\` | \`${op.path}\``)
|
|
80
|
+
.join("\n"),
|
|
81
|
+
].join("\n");
|
|
82
|
+
const progress = {
|
|
83
|
+
total: document.operations.length,
|
|
84
|
+
completed: 0,
|
|
85
|
+
};
|
|
86
|
+
const reviewProgress = {
|
|
87
|
+
total: document.operations.length,
|
|
88
|
+
completed: 0,
|
|
89
|
+
};
|
|
90
|
+
const exclude = [];
|
|
91
|
+
let include = [...document.operations];
|
|
92
|
+
let trial = 0;
|
|
93
|
+
do {
|
|
94
|
+
const matrix = (0, divideArray_1.divideArray)({
|
|
95
|
+
array: include,
|
|
96
|
+
capacity: 2 /* AutoBeConfigConstant.INTERFACE_CAPACITY */,
|
|
97
|
+
});
|
|
98
|
+
yield (0, executeCachedBatch_1.executeCachedBatch)(ctx, matrix.map((include) => (promptCacheKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
99
|
+
exclude.push(...(yield divideAndConquer(ctx, {
|
|
100
|
+
dict,
|
|
101
|
+
endpointNotFound,
|
|
102
|
+
include,
|
|
103
|
+
exclude: exclude.map((x) => x.endpoint),
|
|
104
|
+
progress,
|
|
105
|
+
reviewProgress,
|
|
106
|
+
promptCacheKey,
|
|
107
|
+
instruction,
|
|
109
108
|
})));
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
109
|
+
})));
|
|
110
|
+
include = include.filter((op) => {
|
|
111
|
+
if (exclude.some((pg) => pg.endpoint.method === op.method && pg.endpoint.path === op.path)) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
return true;
|
|
115
|
+
});
|
|
116
|
+
progress.total = include.length + exclude.length;
|
|
117
|
+
reviewProgress.total = include.length + exclude.length;
|
|
118
|
+
} while (include.length > 0 && ++trial < ctx.retry);
|
|
119
|
+
return exclude.flatMap((pg) => {
|
|
120
|
+
return pg.scenarios.map((plan) => {
|
|
121
|
+
return {
|
|
122
|
+
endpoint: pg.endpoint,
|
|
123
|
+
draft: plan.draft,
|
|
124
|
+
functionName: plan.functionName,
|
|
125
|
+
dependencies: plan.dependencies,
|
|
126
|
+
};
|
|
128
127
|
});
|
|
129
128
|
});
|
|
130
|
-
}
|
|
129
|
+
});
|
|
130
|
+
exports.orchestrateTestScenario = orchestrateTestScenario;
|
|
131
131
|
const divideAndConquer = (ctx, props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
132
|
-
var _a, _b, _c, _d;
|
|
133
|
-
const pointer = {
|
|
134
|
-
value: [],
|
|
135
|
-
};
|
|
136
|
-
const authorizations = (_b = (_a = ctx.state().interface) === null || _a === void 0 ? void 0 : _a.authorizations) !== null && _b !== void 0 ? _b : [];
|
|
137
132
|
try {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
133
|
+
return yield process(ctx, props);
|
|
134
|
+
}
|
|
135
|
+
catch (_a) {
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
const process = (ctx, props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
140
|
+
var _a, _b;
|
|
141
|
+
const authorizations = (_b = (_a = ctx.state().interface) === null || _a === void 0 ? void 0 : _a.authorizations) !== null && _b !== void 0 ? _b : [];
|
|
142
|
+
const document = ctx.state().interface.document;
|
|
143
|
+
const preliminary = new AutoBePreliminaryController_1.AutoBePreliminaryController({
|
|
144
|
+
application: {
|
|
145
|
+
version: "3.1",
|
|
146
|
+
components: {
|
|
147
|
+
schemas: {
|
|
148
|
+
"IAutoBeTestScenarioApplication.IProps": {
|
|
149
|
+
type: "object",
|
|
150
|
+
properties: {
|
|
151
|
+
thinking: {
|
|
152
|
+
type: "string",
|
|
153
|
+
description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion."
|
|
154
|
+
},
|
|
155
|
+
request: {
|
|
156
|
+
oneOf: [
|
|
157
|
+
{
|
|
158
|
+
$ref: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
$ref: "#/components/schemas/IAutoBePreliminaryGetInterfaceOperations"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
$ref: "#/components/schemas/IAutoBePreliminaryGetInterfaceSchemas"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
$ref: "#/components/schemas/IAutoBeTestScenarioApplication.IComplete"
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
discriminator: {
|
|
171
|
+
propertyName: "type",
|
|
172
|
+
mapping: {
|
|
173
|
+
getAnalysisFiles: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles",
|
|
174
|
+
getInterfaceOperations: "#/components/schemas/IAutoBePreliminaryGetInterfaceOperations",
|
|
175
|
+
getInterfaceSchemas: "#/components/schemas/IAutoBePreliminaryGetInterfaceSchemas",
|
|
176
|
+
complete: "#/components/schemas/IAutoBeTestScenarioApplication.IComplete"
|
|
177
|
+
}
|
|
178
|
+
},
|
|
179
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getInterfaceOperations, getInterfaceSchemas) or\nfinal test scenario generation (complete). When preliminary returns\nempty array, that type is removed from the union, physically\npreventing repeated calls."
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
required: [
|
|
183
|
+
"thinking",
|
|
184
|
+
"request"
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
188
|
+
type: "object",
|
|
189
|
+
properties: {
|
|
190
|
+
type: {
|
|
191
|
+
"const": "getAnalysisFiles",
|
|
192
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files."
|
|
193
|
+
},
|
|
194
|
+
fileNames: {
|
|
195
|
+
type: "array",
|
|
196
|
+
items: {
|
|
197
|
+
type: "string"
|
|
198
|
+
},
|
|
199
|
+
minItems: 1,
|
|
200
|
+
description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls."
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
required: [
|
|
204
|
+
"type",
|
|
205
|
+
"fileNames"
|
|
206
|
+
],
|
|
207
|
+
description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context."
|
|
208
|
+
},
|
|
209
|
+
IAutoBePreliminaryGetInterfaceOperations: {
|
|
210
|
+
type: "object",
|
|
211
|
+
properties: {
|
|
212
|
+
type: {
|
|
213
|
+
"const": "getInterfaceOperations",
|
|
214
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceOperations\" indicates this is a\npreliminary data request for interface operations."
|
|
215
|
+
},
|
|
216
|
+
endpoints: {
|
|
217
|
+
type: "array",
|
|
218
|
+
items: {
|
|
219
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IEndpoint"
|
|
220
|
+
},
|
|
221
|
+
minItems: 1,
|
|
222
|
+
description: "List of existing API operation endpoints to retrieve.\n\nOperations that have been generated in previous phases, containing paths,\nmethods, parameters, and request/response bodies.\n\nCRITICAL: DO NOT request the same endpoints that you have already requested\nin previous calls."
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
required: [
|
|
226
|
+
"type",
|
|
227
|
+
"endpoints"
|
|
228
|
+
],
|
|
229
|
+
description: "Request to retrieve existing interface operations for context.\n\nThis type is used in the preliminary phase to request already-generated API\noperations for review, validation, or complementary generation tasks."
|
|
230
|
+
},
|
|
231
|
+
"AutoBeOpenApi.IEndpoint": {
|
|
232
|
+
type: "object",
|
|
233
|
+
properties: {
|
|
234
|
+
path: {
|
|
235
|
+
type: "string",
|
|
236
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
|
|
237
|
+
description: "HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- \"/users\"\n- \"/users/{userId}\"\n- \"/articles/{articleId}/comments\"\n- \"/attachmentFiles\"\n- \"/orders/{orderId}/items/{itemId}\"\n\nInvalid examples:\n\n- \"'/users'\" (contains quotes)\n- \"/user profile\" (contains space)\n- \"/users/[userId]\" (wrong bracket format)\n- \"/admin/users\" (role prefix)\n- \"/api/v1/users\" (API prefix)"
|
|
238
|
+
},
|
|
239
|
+
method: {
|
|
240
|
+
oneOf: [
|
|
241
|
+
{
|
|
242
|
+
"const": "get"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"const": "post"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"const": "put"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"const": "delete"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"const": "patch"
|
|
255
|
+
}
|
|
256
|
+
],
|
|
257
|
+
description: "HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., \"get\",\nnot \"GET\").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record"
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
required: [
|
|
261
|
+
"path",
|
|
262
|
+
"method"
|
|
263
|
+
],
|
|
264
|
+
description: "API endpoint information."
|
|
265
|
+
},
|
|
266
|
+
IAutoBePreliminaryGetInterfaceSchemas: {
|
|
267
|
+
type: "object",
|
|
268
|
+
properties: {
|
|
269
|
+
type: {
|
|
270
|
+
"const": "getInterfaceSchemas",
|
|
271
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceSchemas\" indicates this is a preliminary\ndata request for interface schemas."
|
|
272
|
+
},
|
|
273
|
+
typeNames: {
|
|
274
|
+
type: "array",
|
|
275
|
+
items: {
|
|
276
|
+
type: "string"
|
|
277
|
+
},
|
|
278
|
+
minItems: 1,
|
|
279
|
+
description: "List of schema type names to retrieve.\n\nSchema names from the OpenAPI components.schemas section (e.g., \"IUser\",\n\"IUser.ICreate\", \"IPost.IUpdate\").\n\nCRITICAL: DO NOT request the same type names that you have already\nrequested in previous calls."
|
|
280
|
+
}
|
|
281
|
+
},
|
|
282
|
+
required: [
|
|
283
|
+
"type",
|
|
284
|
+
"typeNames"
|
|
285
|
+
],
|
|
286
|
+
description: "Request to retrieve OpenAPI schema type definitions for context.\n\nThis type is used in the preliminary phase to request specific schema\ndefinitions from components.schemas for review or complementary generation."
|
|
287
|
+
},
|
|
288
|
+
"IAutoBeTestScenarioApplication.IComplete": {
|
|
289
|
+
type: "object",
|
|
290
|
+
properties: {
|
|
291
|
+
type: {
|
|
292
|
+
"const": "complete",
|
|
293
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request."
|
|
294
|
+
},
|
|
295
|
+
scenarioGroups: {
|
|
296
|
+
type: "array",
|
|
297
|
+
items: {
|
|
298
|
+
$ref: "#/components/schemas/IAutoBeTestScenarioApplication.IScenarioGroup"
|
|
299
|
+
},
|
|
300
|
+
description: "Collection of test scenario groups organized by endpoint.\n\nEach group contains multiple test scenarios for a single endpoint,\ncovering various user scenarios, edge cases, and business rule\nvalidations. Dependencies on other endpoints are explicitly captured to\nensure implementable tests."
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
required: [
|
|
304
|
+
"type",
|
|
305
|
+
"scenarioGroups"
|
|
306
|
+
],
|
|
307
|
+
description: "Request to generate test scenarios for API endpoints.\n\nExecutes test scenario generation to create comprehensive, implementable\ntest scenarios covering all endpoint behaviors, edge cases, and business\nlogic validations."
|
|
308
|
+
},
|
|
309
|
+
"IAutoBeTestScenarioApplication.IScenarioGroup": {
|
|
310
|
+
type: "object",
|
|
311
|
+
properties: {
|
|
312
|
+
endpoint: {
|
|
313
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IEndpoint",
|
|
314
|
+
description: "Target API endpoint to test.\n\nThis must be **unique** across all scenario groups. An endpoint is\nidentified by its `path` and `method` combination.\n\nMultiple test scenarios may exist for a single endpoint."
|
|
315
|
+
},
|
|
316
|
+
scenarios: {
|
|
317
|
+
type: "array",
|
|
318
|
+
items: {
|
|
319
|
+
$ref: "#/components/schemas/IAutoBeTestScenarioApplication.IScenario"
|
|
320
|
+
},
|
|
321
|
+
minItems: 1,
|
|
322
|
+
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields."
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
required: [
|
|
326
|
+
"endpoint",
|
|
327
|
+
"scenarios"
|
|
328
|
+
]
|
|
329
|
+
},
|
|
330
|
+
"IAutoBeTestScenarioApplication.IScenario": {
|
|
331
|
+
type: "object",
|
|
332
|
+
properties: {
|
|
333
|
+
draft: {
|
|
334
|
+
type: "string",
|
|
335
|
+
description: "A detailed natural language description of how this API endpoint should\nbe tested. This should include both successful and failure scenarios,\nbusiness rule validations, edge cases, and any sequence of steps\nnecessary to perform the test. A subsequent agent will use this draft to\ngenerate multiple concrete test cases."
|
|
336
|
+
},
|
|
337
|
+
functionName: {
|
|
338
|
+
type: "string",
|
|
339
|
+
description: "Descriptive function name derived from the user scenario.\n\nThe function name serves as a concise, technical identifier that clearly\nrepresents the specific user scenario being described. It should be\nimmediately understandable and directly correspond to the user situation\nwithout requiring additional context.\n\n## Naming Convention\n\nDO: Use snake_case naming convention.\n\n- Must start with `test_api_` prefix (mandatory requirement)\n- ALWAYS start with business feature, NOT action verbs\n- Business feature comes first, followed by scenario context\n- Embed action verbs within the scenario description, not at the beginning\n\n## Content Structure\n\nFunction names should follow this pattern:\n`test_api_[core_feature]_[specific_scenario]`\n\nWhere:\n\n- `core_feature`: The main business feature or entity being tested\n (customer, seller, cart, push_message, etc.)\n- `specific_scenario`: The specific operation or scenario context\n (join_verification_not_found, login_success,\n moderator_assignment_update, discountable_ticket_duplicated,\n csv_export, etc.)\n\n## Business Feature-Based Examples\n\n- `test_api_customer_join_verification_not_found` - Customer join\n verification when verification code not found\n- `test_api_seller_login` - Seller login operation\n- `test_api_cart_discountable_ticket_duplicated` - Cart discountable ticket\n with duplication scenario\n- `test_api_push_message_csv` - Push message functionality with CSV format\n- `test_api_product_review_update` - Product review update operation\n\n## Clarity Guidelines\n\n- Prioritize clarity over brevity\n- Avoid technical jargon or implementation terms\n- Use terminology that reflects user perspective\n- Ensure the name alone conveys the user's intent\n- Make it understandable to non-technical stakeholders\n- Keep consistent with user scenario description\n\n## Single Endpoint Alignment\n\nFunction names must reflect scenarios that:\n\n- Accomplish user goals through this single endpoint only\n- Don't imply dependency on other API operations\n- Represent complete user interactions"
|
|
340
|
+
},
|
|
341
|
+
dependencies: {
|
|
342
|
+
type: "array",
|
|
343
|
+
items: {
|
|
344
|
+
$ref: "#/components/schemas/IAutoBeTestScenarioApplication.IDependencies"
|
|
345
|
+
},
|
|
346
|
+
description: "A list of other API endpoints that this scenario logically depends on.\n\nThese dependencies represent context or prerequisite conditions, such as\nauthentication, resource creation, or data setup, that are relevant to\nthe test. This list is not a strict execution order \u2014 if ordering is\nimportant, it must be described explicitly in the `purpose`.\n\nWARNING: Every endpoint referenced here MUST exist in the provided API\noperations. Do NOT reference endpoints that are not explicitly available,\neven if they seem logically necessary based on database schema or\nbusiness logic."
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
required: [
|
|
350
|
+
"draft",
|
|
351
|
+
"functionName",
|
|
352
|
+
"dependencies"
|
|
353
|
+
],
|
|
354
|
+
description: "Represents a test scenario for a single API operation.\n\nThis interface defines a structured, user-centric test draft that includes\na descriptive function name, a detailed scenario draft, and logical\ndependencies on other endpoints required for context or setup.\n\nCRITICAL: All referenced endpoints MUST exist in the provided API\noperations. Do NOT create scenarios for non-existent APIs, even if database\nschema fields suggest their existence. Test scenarios must be implementable\nwith available APIs only."
|
|
355
|
+
},
|
|
356
|
+
"IAutoBeTestScenarioApplication.IDependencies": {
|
|
357
|
+
type: "object",
|
|
358
|
+
properties: {
|
|
359
|
+
endpoint: {
|
|
360
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IEndpoint",
|
|
361
|
+
description: "Target API endpoint that this scenario depends on.\n\nThis endpoint MUST exist in the available API operations list.\nNon-existent endpoints will cause test implementation failures."
|
|
362
|
+
},
|
|
363
|
+
purpose: {
|
|
364
|
+
type: "string",
|
|
365
|
+
description: "A concise explanation of why this API call is relevant or required for\nthe main test scenario.\n\nThis should describe the contextual or setup role of the dependency, such\nas creating necessary data or establishing user authentication.\n\nExample: \"Creates a category so that a product can be linked to it during\ncreation.\""
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
required: [
|
|
369
|
+
"endpoint",
|
|
370
|
+
"purpose"
|
|
371
|
+
]
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
},
|
|
375
|
+
functions: [
|
|
376
|
+
{
|
|
377
|
+
name: "process",
|
|
378
|
+
async: false,
|
|
379
|
+
parameters: [
|
|
380
|
+
{
|
|
381
|
+
name: "props",
|
|
382
|
+
description: " Request containing either preliminary data request or complete\ntask",
|
|
383
|
+
required: true,
|
|
384
|
+
schema: {
|
|
385
|
+
$ref: "#/components/schemas/IAutoBeTestScenarioApplication.IProps"
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
],
|
|
389
|
+
description: "Process test scenario generation task or preliminary data requests.\n\nCreates comprehensive test scenarios for API endpoints by retrieving\nnecessary interface operations via RAG (Retrieval-Augmented Generation) and\ngenerating detailed test drafts with dependencies."
|
|
390
|
+
}
|
|
391
|
+
]
|
|
392
|
+
},
|
|
393
|
+
source: SOURCE,
|
|
394
|
+
kinds: ["analysisFiles", "interfaceOperations", "interfaceSchemas"],
|
|
395
|
+
state: ctx.state(),
|
|
396
|
+
local: {
|
|
397
|
+
interfaceOperations: (() => {
|
|
398
|
+
const unique = new tstl_1.HashSet(utils_1.AutoBeOpenApiEndpointComparator.hashCode, utils_1.AutoBeOpenApiEndpointComparator.equals);
|
|
399
|
+
for (const op of props.include) {
|
|
400
|
+
unique.insert({ method: op.method, path: op.path });
|
|
401
|
+
for (const pr of (0, getPrerequisites_1.getPrerequisites)({
|
|
402
|
+
document,
|
|
403
|
+
endpoint: op,
|
|
404
|
+
}))
|
|
405
|
+
unique.insert(pr.endpoint);
|
|
406
|
+
}
|
|
407
|
+
return unique
|
|
408
|
+
.toJSON()
|
|
409
|
+
.map((endpoint) => document.operations.find((op) => op.method === endpoint.method && op.path === endpoint.path))
|
|
410
|
+
.filter((op) => op !== undefined);
|
|
411
|
+
})(),
|
|
412
|
+
},
|
|
413
|
+
});
|
|
414
|
+
return yield preliminary.orchestrate(ctx, (out) => __awaiter(void 0, void 0, void 0, function* () {
|
|
415
|
+
var _a, _b;
|
|
416
|
+
const pointer = {
|
|
417
|
+
value: [],
|
|
418
|
+
};
|
|
419
|
+
const result = yield ctx.conversate(Object.assign({ source: SOURCE, controller: createController({
|
|
148
420
|
model: ctx.model,
|
|
149
421
|
endpointNotFound: props.endpointNotFound,
|
|
150
422
|
dict: props.dict,
|
|
151
423
|
authorizations,
|
|
424
|
+
preliminary,
|
|
152
425
|
build: (next) => {
|
|
153
426
|
var _a;
|
|
154
427
|
next.scenarioGroups.forEach((sg) => sg.scenarios.forEach((s) => {
|
|
@@ -157,66 +430,172 @@ const divideAndConquer = (ctx, props) => __awaiter(void 0, void 0, void 0, funct
|
|
|
157
430
|
(_a = pointer.value) !== null && _a !== void 0 ? _a : (pointer.value = []);
|
|
158
431
|
pointer.value.push(...next.scenarioGroups);
|
|
159
432
|
},
|
|
160
|
-
}),
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
});
|
|
165
|
-
if (pointer.value.length === 0)
|
|
166
|
-
return [];
|
|
167
|
-
props.progress.total = Math.max(props.progress.total, (props.progress.completed += pointer.value.length));
|
|
168
|
-
ctx.dispatch({
|
|
169
|
-
type: "testScenario",
|
|
170
|
-
id: (0, uuid_1.v7)(),
|
|
171
|
-
metric,
|
|
172
|
-
tokenUsage,
|
|
173
|
-
scenarios: pointer.value
|
|
174
|
-
.map((v) => v.scenarios.map((s) => ({
|
|
175
|
-
endpoint: v.endpoint,
|
|
176
|
-
draft: s.draft,
|
|
177
|
-
functionName: s.functionName,
|
|
178
|
-
dependencies: s.dependencies,
|
|
179
|
-
})))
|
|
180
|
-
.flat(),
|
|
181
|
-
completed: props.progress.completed,
|
|
182
|
-
total: props.progress.total,
|
|
183
|
-
step: (_d = (_c = ctx.state().interface) === null || _c === void 0 ? void 0 : _c.step) !== null && _d !== void 0 ? _d : 0,
|
|
184
|
-
created_at: new Date().toISOString(),
|
|
185
|
-
});
|
|
186
|
-
return yield (0, orchestrateTestScenarioReview_1.orchestrateTestScenarioReview)(ctx, {
|
|
433
|
+
}), enforceFunctionCall: true, promptCacheKey: props.promptCacheKey }, (0, transformTestScenarioHistory_1.transformTestScenarioHistory)({
|
|
434
|
+
state: ctx.state(),
|
|
435
|
+
include: props.include,
|
|
436
|
+
exclude: props.exclude,
|
|
187
437
|
instruction: props.instruction,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
438
|
+
preliminary,
|
|
439
|
+
})));
|
|
440
|
+
if (pointer.value !== null) {
|
|
441
|
+
if (pointer.value.length === 0)
|
|
442
|
+
return out(result)([]);
|
|
443
|
+
props.progress.total = Math.max(props.progress.total, (props.progress.completed += pointer.value.length));
|
|
444
|
+
ctx.dispatch({
|
|
445
|
+
type: SOURCE,
|
|
446
|
+
id: (0, uuid_1.v7)(),
|
|
447
|
+
metric: result.metric,
|
|
448
|
+
tokenUsage: result.tokenUsage,
|
|
449
|
+
scenarios: pointer.value
|
|
450
|
+
.map((v) => v.scenarios.map((s) => ({
|
|
451
|
+
endpoint: v.endpoint,
|
|
452
|
+
draft: s.draft,
|
|
453
|
+
functionName: s.functionName,
|
|
454
|
+
dependencies: s.dependencies,
|
|
455
|
+
})))
|
|
456
|
+
.flat(),
|
|
457
|
+
completed: props.progress.completed,
|
|
458
|
+
total: props.progress.total,
|
|
459
|
+
step: (_b = (_a = ctx.state().interface) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
|
|
460
|
+
created_at: new Date().toISOString(),
|
|
461
|
+
});
|
|
462
|
+
return out(result)(yield (0, orchestrateTestScenarioReview_1.orchestrateTestScenarioReview)(ctx, {
|
|
463
|
+
preliminary,
|
|
464
|
+
instruction: props.instruction,
|
|
465
|
+
groups: pointer.value,
|
|
466
|
+
progress: props.reviewProgress,
|
|
467
|
+
}));
|
|
468
|
+
}
|
|
469
|
+
return out(result)(null);
|
|
470
|
+
}));
|
|
195
471
|
});
|
|
196
|
-
|
|
472
|
+
const createController = (props) => {
|
|
197
473
|
(0, assertSchemaModel_1.assertSchemaModel)(props.model);
|
|
198
474
|
const validate = (next) => {
|
|
199
|
-
const result = (() => { const _io0 = input =>
|
|
475
|
+
const result = (() => { const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io3(elem)))); const _io3 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io4 = input => "getInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io5 = input => "complete" === input.type && (Array.isArray(input.scenarioGroups) && input.scenarioGroups.every(elem => "object" === typeof elem && null !== elem && _io6(elem))); const _io6 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && (Array.isArray(input.scenarios) && (1 <= input.scenarios.length && input.scenarios.every(elem => "object" === typeof elem && null !== elem && _io7(elem)))); const _io7 = input => "string" === typeof input.draft && "string" === typeof input.functionName && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io8(elem))); const _io8 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && "string" === typeof input.purpose; const _iu0 = input => (() => {
|
|
476
|
+
if ("getAnalysisFiles" === input.type)
|
|
477
|
+
return _io1(input);
|
|
478
|
+
else if ("getInterfaceOperations" === input.type)
|
|
479
|
+
return _io2(input);
|
|
480
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
481
|
+
return _io4(input);
|
|
482
|
+
else if ("complete" === input.type)
|
|
483
|
+
return _io5(input);
|
|
484
|
+
else
|
|
485
|
+
return false;
|
|
486
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
487
|
+
path: _path + ".thinking",
|
|
488
|
+
expected: "string",
|
|
489
|
+
value: input.thinking
|
|
490
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
491
|
+
path: _path + ".request",
|
|
492
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
493
|
+
value: input.request
|
|
494
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
495
|
+
path: _path + ".request",
|
|
496
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
497
|
+
value: input.request
|
|
498
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
499
|
+
path: _path + ".type",
|
|
500
|
+
expected: "\"getAnalysisFiles\"",
|
|
501
|
+
value: input.type
|
|
502
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
503
|
+
path: _path + ".fileNames",
|
|
504
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
505
|
+
value: input.fileNames
|
|
506
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
507
|
+
path: _path + ".fileNames",
|
|
508
|
+
expected: "Array<> & MinItems<1>",
|
|
509
|
+
value: input.fileNames
|
|
510
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
511
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
512
|
+
expected: "string",
|
|
513
|
+
value: elem
|
|
514
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
515
|
+
path: _path + ".fileNames",
|
|
516
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
517
|
+
value: input.fileNames
|
|
518
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getInterfaceOperations" === input.type || _report(_exceptionable, {
|
|
519
|
+
path: _path + ".type",
|
|
520
|
+
expected: "\"getInterfaceOperations\"",
|
|
521
|
+
value: input.type
|
|
522
|
+
}), (Array.isArray(input.endpoints) || _report(_exceptionable, {
|
|
523
|
+
path: _path + ".endpoints",
|
|
524
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
525
|
+
value: input.endpoints
|
|
526
|
+
})) && ((1 <= input.endpoints.length || _report(_exceptionable, {
|
|
527
|
+
path: _path + ".endpoints",
|
|
528
|
+
expected: "Array<> & MinItems<1>",
|
|
529
|
+
value: input.endpoints
|
|
530
|
+
})) && input.endpoints.map((elem, _index8) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
531
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
532
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
533
|
+
value: elem
|
|
534
|
+
})) && _vo3(elem, _path + ".endpoints[" + _index8 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
535
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
536
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
537
|
+
value: elem
|
|
538
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
539
|
+
path: _path + ".endpoints",
|
|
540
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
541
|
+
value: input.endpoints
|
|
542
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
543
|
+
path: _path + ".path",
|
|
544
|
+
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
545
|
+
value: input.path
|
|
546
|
+
})) || _report(_exceptionable, {
|
|
547
|
+
path: _path + ".path",
|
|
548
|
+
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
549
|
+
value: input.path
|
|
550
|
+
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
551
|
+
path: _path + ".method",
|
|
552
|
+
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
553
|
+
value: input.method
|
|
554
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["getInterfaceSchemas" === input.type || _report(_exceptionable, {
|
|
555
|
+
path: _path + ".type",
|
|
556
|
+
expected: "\"getInterfaceSchemas\"",
|
|
557
|
+
value: input.type
|
|
558
|
+
}), (Array.isArray(input.typeNames) || _report(_exceptionable, {
|
|
559
|
+
path: _path + ".typeNames",
|
|
560
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
561
|
+
value: input.typeNames
|
|
562
|
+
})) && ((1 <= input.typeNames.length || _report(_exceptionable, {
|
|
563
|
+
path: _path + ".typeNames",
|
|
564
|
+
expected: "Array<> & MinItems<1>",
|
|
565
|
+
value: input.typeNames
|
|
566
|
+
})) && input.typeNames.map((elem, _index9) => "string" === typeof elem || _report(_exceptionable, {
|
|
567
|
+
path: _path + ".typeNames[" + _index9 + "]",
|
|
568
|
+
expected: "string",
|
|
569
|
+
value: elem
|
|
570
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
571
|
+
path: _path + ".typeNames",
|
|
572
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
573
|
+
value: input.typeNames
|
|
574
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
575
|
+
path: _path + ".type",
|
|
576
|
+
expected: "\"complete\"",
|
|
577
|
+
value: input.type
|
|
578
|
+
}), (Array.isArray(input.scenarioGroups) || _report(_exceptionable, {
|
|
200
579
|
path: _path + ".scenarioGroups",
|
|
201
580
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
202
581
|
value: input.scenarioGroups
|
|
203
|
-
})) && input.scenarioGroups.map((elem,
|
|
204
|
-
path: _path + ".scenarioGroups[" +
|
|
582
|
+
})) && input.scenarioGroups.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
583
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
205
584
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
206
585
|
value: elem
|
|
207
|
-
})) &&
|
|
208
|
-
path: _path + ".scenarioGroups[" +
|
|
586
|
+
})) && _vo6(elem, _path + ".scenarioGroups[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
587
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
209
588
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
210
589
|
value: elem
|
|
211
590
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
212
591
|
path: _path + ".scenarioGroups",
|
|
213
592
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
214
593
|
value: input.scenarioGroups
|
|
215
|
-
})].every(flag => flag); const
|
|
594
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
216
595
|
path: _path + ".endpoint",
|
|
217
596
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
218
597
|
value: input.endpoint
|
|
219
|
-
})) &&
|
|
598
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
220
599
|
path: _path + ".endpoint",
|
|
221
600
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
222
601
|
value: input.endpoint
|
|
@@ -228,31 +607,19 @@ function createController(props) {
|
|
|
228
607
|
path: _path + ".scenarios",
|
|
229
608
|
expected: "Array<> & MinItems<1>",
|
|
230
609
|
value: input.scenarios
|
|
231
|
-
})) && input.scenarios.map((elem,
|
|
232
|
-
path: _path + ".scenarios[" +
|
|
610
|
+
})) && input.scenarios.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
611
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
233
612
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
234
613
|
value: elem
|
|
235
|
-
})) &&
|
|
236
|
-
path: _path + ".scenarios[" +
|
|
614
|
+
})) && _vo7(elem, _path + ".scenarios[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
615
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
237
616
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
238
617
|
value: elem
|
|
239
618
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
240
619
|
path: _path + ".scenarios",
|
|
241
620
|
expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
|
|
242
621
|
value: input.scenarios
|
|
243
|
-
})].every(flag => flag); const
|
|
244
|
-
path: _path + ".path",
|
|
245
|
-
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
246
|
-
value: input.path
|
|
247
|
-
})) || _report(_exceptionable, {
|
|
248
|
-
path: _path + ".path",
|
|
249
|
-
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
250
|
-
value: input.path
|
|
251
|
-
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
252
|
-
path: _path + ".method",
|
|
253
|
-
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
254
|
-
value: input.method
|
|
255
|
-
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
622
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
256
623
|
path: _path + ".draft",
|
|
257
624
|
expected: "string",
|
|
258
625
|
value: input.draft
|
|
@@ -264,23 +631,23 @@ function createController(props) {
|
|
|
264
631
|
path: _path + ".dependencies",
|
|
265
632
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
266
633
|
value: input.dependencies
|
|
267
|
-
})) && input.dependencies.map((elem,
|
|
268
|
-
path: _path + ".dependencies[" +
|
|
634
|
+
})) && input.dependencies.map((elem, _index12) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
635
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
269
636
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
270
637
|
value: elem
|
|
271
|
-
})) &&
|
|
272
|
-
path: _path + ".dependencies[" +
|
|
638
|
+
})) && _vo8(elem, _path + ".dependencies[" + _index12 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
639
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
273
640
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
274
641
|
value: elem
|
|
275
642
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
276
643
|
path: _path + ".dependencies",
|
|
277
644
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
278
645
|
value: input.dependencies
|
|
279
|
-
})].every(flag => flag); const
|
|
646
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
280
647
|
path: _path + ".endpoint",
|
|
281
648
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
282
649
|
value: input.endpoint
|
|
283
|
-
})) &&
|
|
650
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
284
651
|
path: _path + ".endpoint",
|
|
285
652
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
286
653
|
value: input.endpoint
|
|
@@ -288,7 +655,22 @@ function createController(props) {
|
|
|
288
655
|
path: _path + ".purpose",
|
|
289
656
|
expected: "string",
|
|
290
657
|
value: input.purpose
|
|
291
|
-
})].every(flag => flag); const
|
|
658
|
+
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
659
|
+
if ("getAnalysisFiles" === input.type)
|
|
660
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
661
|
+
else if ("getInterfaceOperations" === input.type)
|
|
662
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
663
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
664
|
+
return _vo4(input, _path, true && _exceptionable);
|
|
665
|
+
else if ("complete" === input.type)
|
|
666
|
+
return _vo5(input, _path, true && _exceptionable);
|
|
667
|
+
else
|
|
668
|
+
return _report(_exceptionable, {
|
|
669
|
+
path: _path,
|
|
670
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
671
|
+
value: input
|
|
672
|
+
});
|
|
673
|
+
})(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
292
674
|
if (false === __is(input)) {
|
|
293
675
|
errors = [];
|
|
294
676
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
@@ -318,15 +700,20 @@ function createController(props) {
|
|
|
318
700
|
}; })()(next);
|
|
319
701
|
if (result.success === false)
|
|
320
702
|
return result;
|
|
703
|
+
else if (result.data.request.type !== "complete")
|
|
704
|
+
return props.preliminary.validate({
|
|
705
|
+
thinking: result.data.thinking,
|
|
706
|
+
request: result.data.request,
|
|
707
|
+
});
|
|
321
708
|
// merge to unique scenario groups
|
|
322
|
-
const scenarioGroups = uniqueScenarioGroups(result.data.scenarioGroups);
|
|
709
|
+
const scenarioGroups = uniqueScenarioGroups(result.data.request.scenarioGroups);
|
|
323
710
|
// validate endpoints
|
|
324
711
|
const errors = [];
|
|
325
712
|
scenarioGroups.forEach((group, i) => {
|
|
326
713
|
if (props.dict.has(group.endpoint) === false)
|
|
327
714
|
errors.push({
|
|
328
715
|
value: group.endpoint,
|
|
329
|
-
path: `$input.scenarioGroups[${i}].endpoint`,
|
|
716
|
+
path: `$input.request.scenarioGroups[${i}].endpoint`,
|
|
330
717
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
331
718
|
description: props.endpointNotFound,
|
|
332
719
|
});
|
|
@@ -335,7 +722,7 @@ function createController(props) {
|
|
|
335
722
|
if (props.dict.has(dep.endpoint) === false)
|
|
336
723
|
errors.push({
|
|
337
724
|
value: dep.endpoint,
|
|
338
|
-
path: `$input.scenarioGroups[${i}].scenarios[${j}].dependencies[${k}].endpoint`,
|
|
725
|
+
path: `$input.request.scenarioGroups[${i}].scenarios[${j}].dependencies[${k}].endpoint`,
|
|
339
726
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
340
727
|
description: props.endpointNotFound,
|
|
341
728
|
});
|
|
@@ -451,17 +838,10 @@ function createController(props) {
|
|
|
451
838
|
});
|
|
452
839
|
});
|
|
453
840
|
return errors.length === 0
|
|
454
|
-
?
|
|
455
|
-
success: true,
|
|
456
|
-
data: {
|
|
457
|
-
scenarioGroups,
|
|
458
|
-
},
|
|
459
|
-
}
|
|
841
|
+
? result
|
|
460
842
|
: {
|
|
461
843
|
success: false,
|
|
462
|
-
data:
|
|
463
|
-
scenarioGroups,
|
|
464
|
-
},
|
|
844
|
+
data: result.data,
|
|
465
845
|
errors,
|
|
466
846
|
};
|
|
467
847
|
};
|
|
@@ -472,15 +852,16 @@ function createController(props) {
|
|
|
472
852
|
: "claude"](validate);
|
|
473
853
|
return {
|
|
474
854
|
protocol: "class",
|
|
475
|
-
name:
|
|
855
|
+
name: SOURCE,
|
|
476
856
|
application,
|
|
477
857
|
execute: {
|
|
478
|
-
|
|
479
|
-
|
|
858
|
+
process: (next) => {
|
|
859
|
+
if (next.request.type === "complete")
|
|
860
|
+
props.build(next.request);
|
|
480
861
|
},
|
|
481
862
|
},
|
|
482
863
|
};
|
|
483
|
-
}
|
|
864
|
+
};
|
|
484
865
|
const uniqueScenarioGroups = (groups) => new tstl_1.HashMap(groups.map((g) => new tstl_1.Pair(g.endpoint, g)), utils_1.AutoBeOpenApiEndpointComparator.hashCode, utils_1.AutoBeOpenApiEndpointComparator.equals)
|
|
485
866
|
.toJSON()
|
|
486
867
|
.map((it) => it.second);
|
|
@@ -495,42 +876,94 @@ const collection = {
|
|
|
495
876
|
},
|
|
496
877
|
functions: [
|
|
497
878
|
{
|
|
498
|
-
name: "
|
|
879
|
+
name: "process",
|
|
499
880
|
parameters: {
|
|
500
|
-
description: "
|
|
881
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeTestScenarioApplication.IProps}",
|
|
501
882
|
type: "object",
|
|
502
883
|
properties: {
|
|
503
|
-
|
|
504
|
-
description: "
|
|
505
|
-
type: "
|
|
506
|
-
|
|
507
|
-
|
|
884
|
+
thinking: {
|
|
885
|
+
description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion.",
|
|
886
|
+
type: "string"
|
|
887
|
+
},
|
|
888
|
+
request: {
|
|
889
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getInterfaceOperations, getInterfaceSchemas) or\nfinal test scenario generation (complete). When preliminary returns\nempty array, that type is removed from the union, physically\npreventing repeated calls.",
|
|
890
|
+
anyOf: [
|
|
891
|
+
{
|
|
892
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
893
|
+
},
|
|
894
|
+
{
|
|
895
|
+
$ref: "#/$defs/IAutoBePreliminaryGetInterfaceOperations"
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
$ref: "#/$defs/IAutoBePreliminaryGetInterfaceSchemas"
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IComplete"
|
|
902
|
+
}
|
|
903
|
+
],
|
|
904
|
+
"x-discriminator": {
|
|
905
|
+
propertyName: "type",
|
|
906
|
+
mapping: {
|
|
907
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
908
|
+
getInterfaceOperations: "#/$defs/IAutoBePreliminaryGetInterfaceOperations",
|
|
909
|
+
getInterfaceSchemas: "#/$defs/IAutoBePreliminaryGetInterfaceSchemas",
|
|
910
|
+
complete: "#/$defs/IAutoBeTestScenarioApplication.IComplete"
|
|
911
|
+
}
|
|
508
912
|
}
|
|
509
913
|
}
|
|
510
914
|
},
|
|
511
915
|
required: [
|
|
512
|
-
"
|
|
916
|
+
"thinking",
|
|
917
|
+
"request"
|
|
513
918
|
],
|
|
514
919
|
additionalProperties: false,
|
|
515
920
|
$defs: {
|
|
516
|
-
|
|
921
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
922
|
+
description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context.",
|
|
517
923
|
type: "object",
|
|
518
924
|
properties: {
|
|
519
|
-
|
|
520
|
-
description: "
|
|
521
|
-
|
|
925
|
+
type: {
|
|
926
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files.",
|
|
927
|
+
type: "string",
|
|
928
|
+
"enum": [
|
|
929
|
+
"getAnalysisFiles"
|
|
930
|
+
]
|
|
522
931
|
},
|
|
523
|
-
|
|
524
|
-
description: "
|
|
932
|
+
fileNames: {
|
|
933
|
+
description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls.\n\n\n@minItems 1",
|
|
525
934
|
type: "array",
|
|
526
935
|
items: {
|
|
527
|
-
|
|
936
|
+
type: "string"
|
|
528
937
|
}
|
|
529
938
|
}
|
|
530
939
|
},
|
|
531
940
|
required: [
|
|
532
|
-
"
|
|
533
|
-
"
|
|
941
|
+
"type",
|
|
942
|
+
"fileNames"
|
|
943
|
+
]
|
|
944
|
+
},
|
|
945
|
+
IAutoBePreliminaryGetInterfaceOperations: {
|
|
946
|
+
description: "Request to retrieve existing interface operations for context.\n\nThis type is used in the preliminary phase to request already-generated API\noperations for review, validation, or complementary generation tasks.",
|
|
947
|
+
type: "object",
|
|
948
|
+
properties: {
|
|
949
|
+
type: {
|
|
950
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceOperations\" indicates this is a\npreliminary data request for interface operations.",
|
|
951
|
+
type: "string",
|
|
952
|
+
"enum": [
|
|
953
|
+
"getInterfaceOperations"
|
|
954
|
+
]
|
|
955
|
+
},
|
|
956
|
+
endpoints: {
|
|
957
|
+
description: "List of existing API operation endpoints to retrieve.\n\nOperations that have been generated in previous phases, containing paths,\nmethods, parameters, and request/response bodies.\n\nCRITICAL: DO NOT request the same endpoints that you have already requested\nin previous calls.\n\n\n@minItems 1",
|
|
958
|
+
type: "array",
|
|
959
|
+
items: {
|
|
960
|
+
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
},
|
|
964
|
+
required: [
|
|
965
|
+
"type",
|
|
966
|
+
"endpoints"
|
|
534
967
|
]
|
|
535
968
|
},
|
|
536
969
|
"AutoBeOpenApi.IEndpoint": {
|
|
@@ -558,6 +991,74 @@ const collection = {
|
|
|
558
991
|
"method"
|
|
559
992
|
]
|
|
560
993
|
},
|
|
994
|
+
IAutoBePreliminaryGetInterfaceSchemas: {
|
|
995
|
+
description: "Request to retrieve OpenAPI schema type definitions for context.\n\nThis type is used in the preliminary phase to request specific schema\ndefinitions from components.schemas for review or complementary generation.",
|
|
996
|
+
type: "object",
|
|
997
|
+
properties: {
|
|
998
|
+
type: {
|
|
999
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceSchemas\" indicates this is a preliminary\ndata request for interface schemas.",
|
|
1000
|
+
type: "string",
|
|
1001
|
+
"enum": [
|
|
1002
|
+
"getInterfaceSchemas"
|
|
1003
|
+
]
|
|
1004
|
+
},
|
|
1005
|
+
typeNames: {
|
|
1006
|
+
description: "List of schema type names to retrieve.\n\nSchema names from the OpenAPI components.schemas section (e.g., \"IUser\",\n\"IUser.ICreate\", \"IPost.IUpdate\").\n\nCRITICAL: DO NOT request the same type names that you have already\nrequested in previous calls.\n\n\n@minItems 1",
|
|
1007
|
+
type: "array",
|
|
1008
|
+
items: {
|
|
1009
|
+
type: "string"
|
|
1010
|
+
}
|
|
1011
|
+
}
|
|
1012
|
+
},
|
|
1013
|
+
required: [
|
|
1014
|
+
"type",
|
|
1015
|
+
"typeNames"
|
|
1016
|
+
]
|
|
1017
|
+
},
|
|
1018
|
+
"IAutoBeTestScenarioApplication.IComplete": {
|
|
1019
|
+
description: "Request to generate test scenarios for API endpoints.\n\nExecutes test scenario generation to create comprehensive, implementable\ntest scenarios covering all endpoint behaviors, edge cases, and business\nlogic validations.",
|
|
1020
|
+
type: "object",
|
|
1021
|
+
properties: {
|
|
1022
|
+
type: {
|
|
1023
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
|
|
1024
|
+
type: "string",
|
|
1025
|
+
"enum": [
|
|
1026
|
+
"complete"
|
|
1027
|
+
]
|
|
1028
|
+
},
|
|
1029
|
+
scenarioGroups: {
|
|
1030
|
+
description: "Collection of test scenario groups organized by endpoint.\n\nEach group contains multiple test scenarios for a single endpoint,\ncovering various user scenarios, edge cases, and business rule\nvalidations. Dependencies on other endpoints are explicitly captured to\nensure implementable tests.",
|
|
1031
|
+
type: "array",
|
|
1032
|
+
items: {
|
|
1033
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenarioGroup"
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
},
|
|
1037
|
+
required: [
|
|
1038
|
+
"type",
|
|
1039
|
+
"scenarioGroups"
|
|
1040
|
+
]
|
|
1041
|
+
},
|
|
1042
|
+
"IAutoBeTestScenarioApplication.IScenarioGroup": {
|
|
1043
|
+
type: "object",
|
|
1044
|
+
properties: {
|
|
1045
|
+
endpoint: {
|
|
1046
|
+
description: "Target API endpoint to test.\n\nThis must be **unique** across all scenario groups. An endpoint is\nidentified by its `path` and `method` combination.\n\nMultiple test scenarios may exist for a single endpoint.",
|
|
1047
|
+
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
1048
|
+
},
|
|
1049
|
+
scenarios: {
|
|
1050
|
+
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.\n\n\n@minItems 1",
|
|
1051
|
+
type: "array",
|
|
1052
|
+
items: {
|
|
1053
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
},
|
|
1057
|
+
required: [
|
|
1058
|
+
"endpoint",
|
|
1059
|
+
"scenarios"
|
|
1060
|
+
]
|
|
1061
|
+
},
|
|
561
1062
|
"IAutoBeTestScenarioApplication.IScenario": {
|
|
562
1063
|
description: "Represents a test scenario for a single API operation.\n\nThis interface defines a structured, user-centric test draft that includes\na descriptive function name, a detailed scenario draft, and logical\ndependencies on other endpoints required for context or setup.\n\nCRITICAL: All referenced endpoints MUST exist in the provided API\noperations. Do NOT create scenarios for non-existent APIs, even if database\nschema fields suggest their existence. Test scenarios must be implementable\nwith available APIs only.",
|
|
563
1064
|
type: "object",
|
|
@@ -603,28 +1104,131 @@ const collection = {
|
|
|
603
1104
|
}
|
|
604
1105
|
}
|
|
605
1106
|
},
|
|
606
|
-
description: "
|
|
607
|
-
validate: (() => { const _io0 = input =>
|
|
1107
|
+
description: "Process test scenario generation task or preliminary data requests.\n\nCreates comprehensive test scenarios for API endpoints by retrieving\nnecessary interface operations via RAG (Retrieval-Augmented Generation) and\ngenerating detailed test drafts with dependencies.",
|
|
1108
|
+
validate: (() => { const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io3(elem)))); const _io3 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io4 = input => "getInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io5 = input => "complete" === input.type && (Array.isArray(input.scenarioGroups) && input.scenarioGroups.every(elem => "object" === typeof elem && null !== elem && _io6(elem))); const _io6 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && (Array.isArray(input.scenarios) && (1 <= input.scenarios.length && input.scenarios.every(elem => "object" === typeof elem && null !== elem && _io7(elem)))); const _io7 = input => "string" === typeof input.draft && "string" === typeof input.functionName && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io8(elem))); const _io8 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && "string" === typeof input.purpose; const _iu0 = input => (() => {
|
|
1109
|
+
if ("getAnalysisFiles" === input.type)
|
|
1110
|
+
return _io1(input);
|
|
1111
|
+
else if ("getInterfaceOperations" === input.type)
|
|
1112
|
+
return _io2(input);
|
|
1113
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
1114
|
+
return _io4(input);
|
|
1115
|
+
else if ("complete" === input.type)
|
|
1116
|
+
return _io5(input);
|
|
1117
|
+
else
|
|
1118
|
+
return false;
|
|
1119
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
1120
|
+
path: _path + ".thinking",
|
|
1121
|
+
expected: "string",
|
|
1122
|
+
value: input.thinking
|
|
1123
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
1124
|
+
path: _path + ".request",
|
|
1125
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
1126
|
+
value: input.request
|
|
1127
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
1128
|
+
path: _path + ".request",
|
|
1129
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
1130
|
+
value: input.request
|
|
1131
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
1132
|
+
path: _path + ".type",
|
|
1133
|
+
expected: "\"getAnalysisFiles\"",
|
|
1134
|
+
value: input.type
|
|
1135
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
1136
|
+
path: _path + ".fileNames",
|
|
1137
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1138
|
+
value: input.fileNames
|
|
1139
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
1140
|
+
path: _path + ".fileNames",
|
|
1141
|
+
expected: "Array<> & MinItems<1>",
|
|
1142
|
+
value: input.fileNames
|
|
1143
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
1144
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
1145
|
+
expected: "string",
|
|
1146
|
+
value: elem
|
|
1147
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1148
|
+
path: _path + ".fileNames",
|
|
1149
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1150
|
+
value: input.fileNames
|
|
1151
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getInterfaceOperations" === input.type || _report(_exceptionable, {
|
|
1152
|
+
path: _path + ".type",
|
|
1153
|
+
expected: "\"getInterfaceOperations\"",
|
|
1154
|
+
value: input.type
|
|
1155
|
+
}), (Array.isArray(input.endpoints) || _report(_exceptionable, {
|
|
1156
|
+
path: _path + ".endpoints",
|
|
1157
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
1158
|
+
value: input.endpoints
|
|
1159
|
+
})) && ((1 <= input.endpoints.length || _report(_exceptionable, {
|
|
1160
|
+
path: _path + ".endpoints",
|
|
1161
|
+
expected: "Array<> & MinItems<1>",
|
|
1162
|
+
value: input.endpoints
|
|
1163
|
+
})) && input.endpoints.map((elem, _index8) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1164
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
1165
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
1166
|
+
value: elem
|
|
1167
|
+
})) && _vo3(elem, _path + ".endpoints[" + _index8 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1168
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
1169
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
1170
|
+
value: elem
|
|
1171
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1172
|
+
path: _path + ".endpoints",
|
|
1173
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
1174
|
+
value: input.endpoints
|
|
1175
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
1176
|
+
path: _path + ".path",
|
|
1177
|
+
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
1178
|
+
value: input.path
|
|
1179
|
+
})) || _report(_exceptionable, {
|
|
1180
|
+
path: _path + ".path",
|
|
1181
|
+
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
1182
|
+
value: input.path
|
|
1183
|
+
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
1184
|
+
path: _path + ".method",
|
|
1185
|
+
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1186
|
+
value: input.method
|
|
1187
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["getInterfaceSchemas" === input.type || _report(_exceptionable, {
|
|
1188
|
+
path: _path + ".type",
|
|
1189
|
+
expected: "\"getInterfaceSchemas\"",
|
|
1190
|
+
value: input.type
|
|
1191
|
+
}), (Array.isArray(input.typeNames) || _report(_exceptionable, {
|
|
1192
|
+
path: _path + ".typeNames",
|
|
1193
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1194
|
+
value: input.typeNames
|
|
1195
|
+
})) && ((1 <= input.typeNames.length || _report(_exceptionable, {
|
|
1196
|
+
path: _path + ".typeNames",
|
|
1197
|
+
expected: "Array<> & MinItems<1>",
|
|
1198
|
+
value: input.typeNames
|
|
1199
|
+
})) && input.typeNames.map((elem, _index9) => "string" === typeof elem || _report(_exceptionable, {
|
|
1200
|
+
path: _path + ".typeNames[" + _index9 + "]",
|
|
1201
|
+
expected: "string",
|
|
1202
|
+
value: elem
|
|
1203
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1204
|
+
path: _path + ".typeNames",
|
|
1205
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1206
|
+
value: input.typeNames
|
|
1207
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
1208
|
+
path: _path + ".type",
|
|
1209
|
+
expected: "\"complete\"",
|
|
1210
|
+
value: input.type
|
|
1211
|
+
}), (Array.isArray(input.scenarioGroups) || _report(_exceptionable, {
|
|
608
1212
|
path: _path + ".scenarioGroups",
|
|
609
1213
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
610
1214
|
value: input.scenarioGroups
|
|
611
|
-
})) && input.scenarioGroups.map((elem,
|
|
612
|
-
path: _path + ".scenarioGroups[" +
|
|
1215
|
+
})) && input.scenarioGroups.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1216
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
613
1217
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
614
1218
|
value: elem
|
|
615
|
-
})) &&
|
|
616
|
-
path: _path + ".scenarioGroups[" +
|
|
1219
|
+
})) && _vo6(elem, _path + ".scenarioGroups[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1220
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
617
1221
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
618
1222
|
value: elem
|
|
619
1223
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
620
1224
|
path: _path + ".scenarioGroups",
|
|
621
1225
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
622
1226
|
value: input.scenarioGroups
|
|
623
|
-
})].every(flag => flag); const
|
|
1227
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
624
1228
|
path: _path + ".endpoint",
|
|
625
1229
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
626
1230
|
value: input.endpoint
|
|
627
|
-
})) &&
|
|
1231
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
628
1232
|
path: _path + ".endpoint",
|
|
629
1233
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
630
1234
|
value: input.endpoint
|
|
@@ -636,31 +1240,19 @@ const collection = {
|
|
|
636
1240
|
path: _path + ".scenarios",
|
|
637
1241
|
expected: "Array<> & MinItems<1>",
|
|
638
1242
|
value: input.scenarios
|
|
639
|
-
})) && input.scenarios.map((elem,
|
|
640
|
-
path: _path + ".scenarios[" +
|
|
1243
|
+
})) && input.scenarios.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1244
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
641
1245
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
642
1246
|
value: elem
|
|
643
|
-
})) &&
|
|
644
|
-
path: _path + ".scenarios[" +
|
|
1247
|
+
})) && _vo7(elem, _path + ".scenarios[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1248
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
645
1249
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
646
1250
|
value: elem
|
|
647
1251
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
648
1252
|
path: _path + ".scenarios",
|
|
649
1253
|
expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
|
|
650
1254
|
value: input.scenarios
|
|
651
|
-
})].every(flag => flag); const
|
|
652
|
-
path: _path + ".path",
|
|
653
|
-
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
654
|
-
value: input.path
|
|
655
|
-
})) || _report(_exceptionable, {
|
|
656
|
-
path: _path + ".path",
|
|
657
|
-
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
658
|
-
value: input.path
|
|
659
|
-
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
660
|
-
path: _path + ".method",
|
|
661
|
-
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
662
|
-
value: input.method
|
|
663
|
-
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
1255
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
664
1256
|
path: _path + ".draft",
|
|
665
1257
|
expected: "string",
|
|
666
1258
|
value: input.draft
|
|
@@ -672,23 +1264,23 @@ const collection = {
|
|
|
672
1264
|
path: _path + ".dependencies",
|
|
673
1265
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
674
1266
|
value: input.dependencies
|
|
675
|
-
})) && input.dependencies.map((elem,
|
|
676
|
-
path: _path + ".dependencies[" +
|
|
1267
|
+
})) && input.dependencies.map((elem, _index12) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1268
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
677
1269
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
678
1270
|
value: elem
|
|
679
|
-
})) &&
|
|
680
|
-
path: _path + ".dependencies[" +
|
|
1271
|
+
})) && _vo8(elem, _path + ".dependencies[" + _index12 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1272
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
681
1273
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
682
1274
|
value: elem
|
|
683
1275
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
684
1276
|
path: _path + ".dependencies",
|
|
685
1277
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
686
1278
|
value: input.dependencies
|
|
687
|
-
})].every(flag => flag); const
|
|
1279
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
688
1280
|
path: _path + ".endpoint",
|
|
689
1281
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
690
1282
|
value: input.endpoint
|
|
691
|
-
})) &&
|
|
1283
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
692
1284
|
path: _path + ".endpoint",
|
|
693
1285
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
694
1286
|
value: input.endpoint
|
|
@@ -696,7 +1288,22 @@ const collection = {
|
|
|
696
1288
|
path: _path + ".purpose",
|
|
697
1289
|
expected: "string",
|
|
698
1290
|
value: input.purpose
|
|
699
|
-
})].every(flag => flag); const
|
|
1291
|
+
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
1292
|
+
if ("getAnalysisFiles" === input.type)
|
|
1293
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
1294
|
+
else if ("getInterfaceOperations" === input.type)
|
|
1295
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
1296
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
1297
|
+
return _vo4(input, _path, true && _exceptionable);
|
|
1298
|
+
else if ("complete" === input.type)
|
|
1299
|
+
return _vo5(input, _path, true && _exceptionable);
|
|
1300
|
+
else
|
|
1301
|
+
return _report(_exceptionable, {
|
|
1302
|
+
path: _path,
|
|
1303
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
1304
|
+
value: input
|
|
1305
|
+
});
|
|
1306
|
+
})(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
700
1307
|
if (false === __is(input)) {
|
|
701
1308
|
errors = [];
|
|
702
1309
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
@@ -729,7 +1336,7 @@ const collection = {
|
|
|
729
1336
|
};
|
|
730
1337
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
731
1338
|
validate: {
|
|
732
|
-
|
|
1339
|
+
process: validate,
|
|
733
1340
|
},
|
|
734
1341
|
}), { equals: false }));
|
|
735
1342
|
return application;
|
|
@@ -743,43 +1350,90 @@ const collection = {
|
|
|
743
1350
|
},
|
|
744
1351
|
functions: [
|
|
745
1352
|
{
|
|
746
|
-
name: "
|
|
1353
|
+
name: "process",
|
|
747
1354
|
parameters: {
|
|
748
|
-
description: "
|
|
1355
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeTestScenarioApplication.IProps}",
|
|
749
1356
|
type: "object",
|
|
750
1357
|
properties: {
|
|
751
|
-
|
|
752
|
-
description: "
|
|
753
|
-
type: "
|
|
754
|
-
|
|
755
|
-
|
|
1358
|
+
thinking: {
|
|
1359
|
+
description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion.",
|
|
1360
|
+
type: "string"
|
|
1361
|
+
},
|
|
1362
|
+
request: {
|
|
1363
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getInterfaceOperations, getInterfaceSchemas) or\nfinal test scenario generation (complete). When preliminary returns\nempty array, that type is removed from the union, physically\npreventing repeated calls.",
|
|
1364
|
+
oneOf: [
|
|
1365
|
+
{
|
|
1366
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
1367
|
+
},
|
|
1368
|
+
{
|
|
1369
|
+
$ref: "#/$defs/IAutoBePreliminaryGetInterfaceOperations"
|
|
1370
|
+
},
|
|
1371
|
+
{
|
|
1372
|
+
$ref: "#/$defs/IAutoBePreliminaryGetInterfaceSchemas"
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IComplete"
|
|
1376
|
+
}
|
|
1377
|
+
],
|
|
1378
|
+
discriminator: {
|
|
1379
|
+
propertyName: "type",
|
|
1380
|
+
mapping: {
|
|
1381
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
1382
|
+
getInterfaceOperations: "#/$defs/IAutoBePreliminaryGetInterfaceOperations",
|
|
1383
|
+
getInterfaceSchemas: "#/$defs/IAutoBePreliminaryGetInterfaceSchemas",
|
|
1384
|
+
complete: "#/$defs/IAutoBeTestScenarioApplication.IComplete"
|
|
1385
|
+
}
|
|
756
1386
|
}
|
|
757
1387
|
}
|
|
758
1388
|
},
|
|
759
1389
|
required: [
|
|
760
|
-
"
|
|
1390
|
+
"thinking",
|
|
1391
|
+
"request"
|
|
761
1392
|
],
|
|
762
1393
|
additionalProperties: false,
|
|
763
1394
|
$defs: {
|
|
764
|
-
|
|
1395
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
1396
|
+
description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context.",
|
|
765
1397
|
type: "object",
|
|
766
1398
|
properties: {
|
|
767
|
-
|
|
768
|
-
description: "
|
|
769
|
-
|
|
1399
|
+
type: {
|
|
1400
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files.",
|
|
1401
|
+
"const": "getAnalysisFiles"
|
|
770
1402
|
},
|
|
771
|
-
|
|
772
|
-
description: "
|
|
1403
|
+
fileNames: {
|
|
1404
|
+
description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls.",
|
|
773
1405
|
type: "array",
|
|
774
1406
|
items: {
|
|
775
|
-
|
|
1407
|
+
type: "string"
|
|
776
1408
|
},
|
|
777
1409
|
minItems: 1
|
|
778
1410
|
}
|
|
779
1411
|
},
|
|
780
1412
|
required: [
|
|
781
|
-
"
|
|
782
|
-
"
|
|
1413
|
+
"type",
|
|
1414
|
+
"fileNames"
|
|
1415
|
+
]
|
|
1416
|
+
},
|
|
1417
|
+
IAutoBePreliminaryGetInterfaceOperations: {
|
|
1418
|
+
description: "Request to retrieve existing interface operations for context.\n\nThis type is used in the preliminary phase to request already-generated API\noperations for review, validation, or complementary generation tasks.",
|
|
1419
|
+
type: "object",
|
|
1420
|
+
properties: {
|
|
1421
|
+
type: {
|
|
1422
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceOperations\" indicates this is a\npreliminary data request for interface operations.",
|
|
1423
|
+
"const": "getInterfaceOperations"
|
|
1424
|
+
},
|
|
1425
|
+
endpoints: {
|
|
1426
|
+
description: "List of existing API operation endpoints to retrieve.\n\nOperations that have been generated in previous phases, containing paths,\nmethods, parameters, and request/response bodies.\n\nCRITICAL: DO NOT request the same endpoints that you have already requested\nin previous calls.",
|
|
1427
|
+
type: "array",
|
|
1428
|
+
items: {
|
|
1429
|
+
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
1430
|
+
},
|
|
1431
|
+
minItems: 1
|
|
1432
|
+
}
|
|
1433
|
+
},
|
|
1434
|
+
required: [
|
|
1435
|
+
"type",
|
|
1436
|
+
"endpoints"
|
|
783
1437
|
]
|
|
784
1438
|
},
|
|
785
1439
|
"AutoBeOpenApi.IEndpoint": {
|
|
@@ -817,6 +1471,70 @@ const collection = {
|
|
|
817
1471
|
"method"
|
|
818
1472
|
]
|
|
819
1473
|
},
|
|
1474
|
+
IAutoBePreliminaryGetInterfaceSchemas: {
|
|
1475
|
+
description: "Request to retrieve OpenAPI schema type definitions for context.\n\nThis type is used in the preliminary phase to request specific schema\ndefinitions from components.schemas for review or complementary generation.",
|
|
1476
|
+
type: "object",
|
|
1477
|
+
properties: {
|
|
1478
|
+
type: {
|
|
1479
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceSchemas\" indicates this is a preliminary\ndata request for interface schemas.",
|
|
1480
|
+
"const": "getInterfaceSchemas"
|
|
1481
|
+
},
|
|
1482
|
+
typeNames: {
|
|
1483
|
+
description: "List of schema type names to retrieve.\n\nSchema names from the OpenAPI components.schemas section (e.g., \"IUser\",\n\"IUser.ICreate\", \"IPost.IUpdate\").\n\nCRITICAL: DO NOT request the same type names that you have already\nrequested in previous calls.",
|
|
1484
|
+
type: "array",
|
|
1485
|
+
items: {
|
|
1486
|
+
type: "string"
|
|
1487
|
+
},
|
|
1488
|
+
minItems: 1
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1491
|
+
required: [
|
|
1492
|
+
"type",
|
|
1493
|
+
"typeNames"
|
|
1494
|
+
]
|
|
1495
|
+
},
|
|
1496
|
+
"IAutoBeTestScenarioApplication.IComplete": {
|
|
1497
|
+
description: "Request to generate test scenarios for API endpoints.\n\nExecutes test scenario generation to create comprehensive, implementable\ntest scenarios covering all endpoint behaviors, edge cases, and business\nlogic validations.",
|
|
1498
|
+
type: "object",
|
|
1499
|
+
properties: {
|
|
1500
|
+
type: {
|
|
1501
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
|
|
1502
|
+
"const": "complete"
|
|
1503
|
+
},
|
|
1504
|
+
scenarioGroups: {
|
|
1505
|
+
description: "Collection of test scenario groups organized by endpoint.\n\nEach group contains multiple test scenarios for a single endpoint,\ncovering various user scenarios, edge cases, and business rule\nvalidations. Dependencies on other endpoints are explicitly captured to\nensure implementable tests.",
|
|
1506
|
+
type: "array",
|
|
1507
|
+
items: {
|
|
1508
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenarioGroup"
|
|
1509
|
+
}
|
|
1510
|
+
}
|
|
1511
|
+
},
|
|
1512
|
+
required: [
|
|
1513
|
+
"type",
|
|
1514
|
+
"scenarioGroups"
|
|
1515
|
+
]
|
|
1516
|
+
},
|
|
1517
|
+
"IAutoBeTestScenarioApplication.IScenarioGroup": {
|
|
1518
|
+
type: "object",
|
|
1519
|
+
properties: {
|
|
1520
|
+
endpoint: {
|
|
1521
|
+
description: "Target API endpoint to test.\n\nThis must be **unique** across all scenario groups. An endpoint is\nidentified by its `path` and `method` combination.\n\nMultiple test scenarios may exist for a single endpoint.",
|
|
1522
|
+
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
1523
|
+
},
|
|
1524
|
+
scenarios: {
|
|
1525
|
+
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.",
|
|
1526
|
+
type: "array",
|
|
1527
|
+
items: {
|
|
1528
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
|
|
1529
|
+
},
|
|
1530
|
+
minItems: 1
|
|
1531
|
+
}
|
|
1532
|
+
},
|
|
1533
|
+
required: [
|
|
1534
|
+
"endpoint",
|
|
1535
|
+
"scenarios"
|
|
1536
|
+
]
|
|
1537
|
+
},
|
|
820
1538
|
"IAutoBeTestScenarioApplication.IScenario": {
|
|
821
1539
|
description: "Represents a test scenario for a single API operation.\n\nThis interface defines a structured, user-centric test draft that includes\na descriptive function name, a detailed scenario draft, and logical\ndependencies on other endpoints required for context or setup.\n\nCRITICAL: All referenced endpoints MUST exist in the provided API\noperations. Do NOT create scenarios for non-existent APIs, even if database\nschema fields suggest their existence. Test scenarios must be implementable\nwith available APIs only.",
|
|
822
1540
|
type: "object",
|
|
@@ -862,28 +1580,131 @@ const collection = {
|
|
|
862
1580
|
}
|
|
863
1581
|
}
|
|
864
1582
|
},
|
|
865
|
-
description: "
|
|
866
|
-
validate: (() => { const _io0 = input =>
|
|
1583
|
+
description: "Process test scenario generation task or preliminary data requests.\n\nCreates comprehensive test scenarios for API endpoints by retrieving\nnecessary interface operations via RAG (Retrieval-Augmented Generation) and\ngenerating detailed test drafts with dependencies.",
|
|
1584
|
+
validate: (() => { const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io3(elem)))); const _io3 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io4 = input => "getInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io5 = input => "complete" === input.type && (Array.isArray(input.scenarioGroups) && input.scenarioGroups.every(elem => "object" === typeof elem && null !== elem && _io6(elem))); const _io6 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && (Array.isArray(input.scenarios) && (1 <= input.scenarios.length && input.scenarios.every(elem => "object" === typeof elem && null !== elem && _io7(elem)))); const _io7 = input => "string" === typeof input.draft && "string" === typeof input.functionName && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io8(elem))); const _io8 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && "string" === typeof input.purpose; const _iu0 = input => (() => {
|
|
1585
|
+
if ("getAnalysisFiles" === input.type)
|
|
1586
|
+
return _io1(input);
|
|
1587
|
+
else if ("getInterfaceOperations" === input.type)
|
|
1588
|
+
return _io2(input);
|
|
1589
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
1590
|
+
return _io4(input);
|
|
1591
|
+
else if ("complete" === input.type)
|
|
1592
|
+
return _io5(input);
|
|
1593
|
+
else
|
|
1594
|
+
return false;
|
|
1595
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
1596
|
+
path: _path + ".thinking",
|
|
1597
|
+
expected: "string",
|
|
1598
|
+
value: input.thinking
|
|
1599
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
1600
|
+
path: _path + ".request",
|
|
1601
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
1602
|
+
value: input.request
|
|
1603
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
1604
|
+
path: _path + ".request",
|
|
1605
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
1606
|
+
value: input.request
|
|
1607
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
1608
|
+
path: _path + ".type",
|
|
1609
|
+
expected: "\"getAnalysisFiles\"",
|
|
1610
|
+
value: input.type
|
|
1611
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
1612
|
+
path: _path + ".fileNames",
|
|
1613
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1614
|
+
value: input.fileNames
|
|
1615
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
1616
|
+
path: _path + ".fileNames",
|
|
1617
|
+
expected: "Array<> & MinItems<1>",
|
|
1618
|
+
value: input.fileNames
|
|
1619
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
1620
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
1621
|
+
expected: "string",
|
|
1622
|
+
value: elem
|
|
1623
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1624
|
+
path: _path + ".fileNames",
|
|
1625
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1626
|
+
value: input.fileNames
|
|
1627
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getInterfaceOperations" === input.type || _report(_exceptionable, {
|
|
1628
|
+
path: _path + ".type",
|
|
1629
|
+
expected: "\"getInterfaceOperations\"",
|
|
1630
|
+
value: input.type
|
|
1631
|
+
}), (Array.isArray(input.endpoints) || _report(_exceptionable, {
|
|
1632
|
+
path: _path + ".endpoints",
|
|
1633
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
1634
|
+
value: input.endpoints
|
|
1635
|
+
})) && ((1 <= input.endpoints.length || _report(_exceptionable, {
|
|
1636
|
+
path: _path + ".endpoints",
|
|
1637
|
+
expected: "Array<> & MinItems<1>",
|
|
1638
|
+
value: input.endpoints
|
|
1639
|
+
})) && input.endpoints.map((elem, _index8) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1640
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
1641
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
1642
|
+
value: elem
|
|
1643
|
+
})) && _vo3(elem, _path + ".endpoints[" + _index8 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1644
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
1645
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
1646
|
+
value: elem
|
|
1647
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1648
|
+
path: _path + ".endpoints",
|
|
1649
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
1650
|
+
value: input.endpoints
|
|
1651
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
1652
|
+
path: _path + ".path",
|
|
1653
|
+
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
1654
|
+
value: input.path
|
|
1655
|
+
})) || _report(_exceptionable, {
|
|
1656
|
+
path: _path + ".path",
|
|
1657
|
+
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
1658
|
+
value: input.path
|
|
1659
|
+
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
1660
|
+
path: _path + ".method",
|
|
1661
|
+
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1662
|
+
value: input.method
|
|
1663
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["getInterfaceSchemas" === input.type || _report(_exceptionable, {
|
|
1664
|
+
path: _path + ".type",
|
|
1665
|
+
expected: "\"getInterfaceSchemas\"",
|
|
1666
|
+
value: input.type
|
|
1667
|
+
}), (Array.isArray(input.typeNames) || _report(_exceptionable, {
|
|
1668
|
+
path: _path + ".typeNames",
|
|
1669
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1670
|
+
value: input.typeNames
|
|
1671
|
+
})) && ((1 <= input.typeNames.length || _report(_exceptionable, {
|
|
1672
|
+
path: _path + ".typeNames",
|
|
1673
|
+
expected: "Array<> & MinItems<1>",
|
|
1674
|
+
value: input.typeNames
|
|
1675
|
+
})) && input.typeNames.map((elem, _index9) => "string" === typeof elem || _report(_exceptionable, {
|
|
1676
|
+
path: _path + ".typeNames[" + _index9 + "]",
|
|
1677
|
+
expected: "string",
|
|
1678
|
+
value: elem
|
|
1679
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1680
|
+
path: _path + ".typeNames",
|
|
1681
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1682
|
+
value: input.typeNames
|
|
1683
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
1684
|
+
path: _path + ".type",
|
|
1685
|
+
expected: "\"complete\"",
|
|
1686
|
+
value: input.type
|
|
1687
|
+
}), (Array.isArray(input.scenarioGroups) || _report(_exceptionable, {
|
|
867
1688
|
path: _path + ".scenarioGroups",
|
|
868
1689
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
869
1690
|
value: input.scenarioGroups
|
|
870
|
-
})) && input.scenarioGroups.map((elem,
|
|
871
|
-
path: _path + ".scenarioGroups[" +
|
|
1691
|
+
})) && input.scenarioGroups.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1692
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
872
1693
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
873
1694
|
value: elem
|
|
874
|
-
})) &&
|
|
875
|
-
path: _path + ".scenarioGroups[" +
|
|
1695
|
+
})) && _vo6(elem, _path + ".scenarioGroups[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1696
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
876
1697
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
877
1698
|
value: elem
|
|
878
1699
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
879
1700
|
path: _path + ".scenarioGroups",
|
|
880
1701
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
881
1702
|
value: input.scenarioGroups
|
|
882
|
-
})].every(flag => flag); const
|
|
1703
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
883
1704
|
path: _path + ".endpoint",
|
|
884
1705
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
885
1706
|
value: input.endpoint
|
|
886
|
-
})) &&
|
|
1707
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
887
1708
|
path: _path + ".endpoint",
|
|
888
1709
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
889
1710
|
value: input.endpoint
|
|
@@ -895,31 +1716,19 @@ const collection = {
|
|
|
895
1716
|
path: _path + ".scenarios",
|
|
896
1717
|
expected: "Array<> & MinItems<1>",
|
|
897
1718
|
value: input.scenarios
|
|
898
|
-
})) && input.scenarios.map((elem,
|
|
899
|
-
path: _path + ".scenarios[" +
|
|
1719
|
+
})) && input.scenarios.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1720
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
900
1721
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
901
1722
|
value: elem
|
|
902
|
-
})) &&
|
|
903
|
-
path: _path + ".scenarios[" +
|
|
1723
|
+
})) && _vo7(elem, _path + ".scenarios[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1724
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
904
1725
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
905
1726
|
value: elem
|
|
906
1727
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
907
1728
|
path: _path + ".scenarios",
|
|
908
1729
|
expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
|
|
909
1730
|
value: input.scenarios
|
|
910
|
-
})].every(flag => flag); const
|
|
911
|
-
path: _path + ".path",
|
|
912
|
-
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
913
|
-
value: input.path
|
|
914
|
-
})) || _report(_exceptionable, {
|
|
915
|
-
path: _path + ".path",
|
|
916
|
-
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
917
|
-
value: input.path
|
|
918
|
-
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
919
|
-
path: _path + ".method",
|
|
920
|
-
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
921
|
-
value: input.method
|
|
922
|
-
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
1731
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
923
1732
|
path: _path + ".draft",
|
|
924
1733
|
expected: "string",
|
|
925
1734
|
value: input.draft
|
|
@@ -931,23 +1740,23 @@ const collection = {
|
|
|
931
1740
|
path: _path + ".dependencies",
|
|
932
1741
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
933
1742
|
value: input.dependencies
|
|
934
|
-
})) && input.dependencies.map((elem,
|
|
935
|
-
path: _path + ".dependencies[" +
|
|
1743
|
+
})) && input.dependencies.map((elem, _index12) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1744
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
936
1745
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
937
1746
|
value: elem
|
|
938
|
-
})) &&
|
|
939
|
-
path: _path + ".dependencies[" +
|
|
1747
|
+
})) && _vo8(elem, _path + ".dependencies[" + _index12 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1748
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
940
1749
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
941
1750
|
value: elem
|
|
942
1751
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
943
1752
|
path: _path + ".dependencies",
|
|
944
1753
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
945
1754
|
value: input.dependencies
|
|
946
|
-
})].every(flag => flag); const
|
|
1755
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
947
1756
|
path: _path + ".endpoint",
|
|
948
1757
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
949
1758
|
value: input.endpoint
|
|
950
|
-
})) &&
|
|
1759
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
951
1760
|
path: _path + ".endpoint",
|
|
952
1761
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
953
1762
|
value: input.endpoint
|
|
@@ -955,7 +1764,22 @@ const collection = {
|
|
|
955
1764
|
path: _path + ".purpose",
|
|
956
1765
|
expected: "string",
|
|
957
1766
|
value: input.purpose
|
|
958
|
-
})].every(flag => flag); const
|
|
1767
|
+
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
1768
|
+
if ("getAnalysisFiles" === input.type)
|
|
1769
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
1770
|
+
else if ("getInterfaceOperations" === input.type)
|
|
1771
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
1772
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
1773
|
+
return _vo4(input, _path, true && _exceptionable);
|
|
1774
|
+
else if ("complete" === input.type)
|
|
1775
|
+
return _vo5(input, _path, true && _exceptionable);
|
|
1776
|
+
else
|
|
1777
|
+
return _report(_exceptionable, {
|
|
1778
|
+
path: _path,
|
|
1779
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
1780
|
+
value: input
|
|
1781
|
+
});
|
|
1782
|
+
})(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
959
1783
|
if (false === __is(input)) {
|
|
960
1784
|
errors = [];
|
|
961
1785
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
@@ -988,7 +1812,7 @@ const collection = {
|
|
|
988
1812
|
};
|
|
989
1813
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
990
1814
|
validate: {
|
|
991
|
-
|
|
1815
|
+
process: validate,
|
|
992
1816
|
},
|
|
993
1817
|
}), { equals: false }));
|
|
994
1818
|
return application;
|
|
@@ -1002,43 +1826,96 @@ const collection = {
|
|
|
1002
1826
|
},
|
|
1003
1827
|
functions: [
|
|
1004
1828
|
{
|
|
1005
|
-
name: "
|
|
1829
|
+
name: "process",
|
|
1006
1830
|
parameters: {
|
|
1007
|
-
description: "
|
|
1831
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeTestScenarioApplication.IProps}",
|
|
1008
1832
|
type: "object",
|
|
1009
1833
|
properties: {
|
|
1010
|
-
|
|
1011
|
-
description: "
|
|
1012
|
-
type: "
|
|
1013
|
-
|
|
1014
|
-
|
|
1834
|
+
thinking: {
|
|
1835
|
+
description: "Think before you act.\n\nBefore requesting preliminary data or completing your task, reflect on your\ncurrent state and explain your reasoning:\n\nFor preliminary requests (getAnalysisFiles, getPrismaSchemas, etc.):\n- What critical information is missing that you don't already have?\n- Why do you need it specifically right now?\n- Be brief - state the gap, don't list everything you have.\n\nFor completion (complete):\n- What key assets did you acquire?\n- What did you accomplish?\n- Why is it sufficient to complete?\n- Summarize - don't enumerate every single item.\n\nThis reflection helps you avoid duplicate requests and premature completion.",
|
|
1836
|
+
type: "string"
|
|
1837
|
+
},
|
|
1838
|
+
request: {
|
|
1839
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getInterfaceOperations, getInterfaceSchemas) or\nfinal test scenario generation (complete). When preliminary returns\nempty array, that type is removed from the union, physically\npreventing repeated calls.",
|
|
1840
|
+
anyOf: [
|
|
1841
|
+
{
|
|
1842
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
1843
|
+
},
|
|
1844
|
+
{
|
|
1845
|
+
$ref: "#/$defs/IAutoBePreliminaryGetInterfaceOperations"
|
|
1846
|
+
},
|
|
1847
|
+
{
|
|
1848
|
+
$ref: "#/$defs/IAutoBePreliminaryGetInterfaceSchemas"
|
|
1849
|
+
},
|
|
1850
|
+
{
|
|
1851
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IComplete"
|
|
1852
|
+
}
|
|
1853
|
+
],
|
|
1854
|
+
"x-discriminator": {
|
|
1855
|
+
propertyName: "type",
|
|
1856
|
+
mapping: {
|
|
1857
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
1858
|
+
getInterfaceOperations: "#/$defs/IAutoBePreliminaryGetInterfaceOperations",
|
|
1859
|
+
getInterfaceSchemas: "#/$defs/IAutoBePreliminaryGetInterfaceSchemas",
|
|
1860
|
+
complete: "#/$defs/IAutoBeTestScenarioApplication.IComplete"
|
|
1861
|
+
}
|
|
1015
1862
|
}
|
|
1016
1863
|
}
|
|
1017
1864
|
},
|
|
1018
1865
|
required: [
|
|
1019
|
-
"
|
|
1866
|
+
"thinking",
|
|
1867
|
+
"request"
|
|
1020
1868
|
],
|
|
1021
1869
|
additionalProperties: false,
|
|
1022
1870
|
$defs: {
|
|
1023
|
-
|
|
1871
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
1872
|
+
description: "Request to retrieve requirements analysis files for context.\n\nThis type is used in the preliminary phase to request specific analysis files\nthat provide business requirements and domain context.",
|
|
1024
1873
|
type: "object",
|
|
1025
1874
|
properties: {
|
|
1026
|
-
|
|
1027
|
-
description: "
|
|
1028
|
-
|
|
1875
|
+
type: {
|
|
1876
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getAnalysisFiles\" indicates this is a preliminary\ndata request for analysis files.",
|
|
1877
|
+
type: "string",
|
|
1878
|
+
"enum": [
|
|
1879
|
+
"getAnalysisFiles"
|
|
1880
|
+
]
|
|
1029
1881
|
},
|
|
1030
|
-
|
|
1031
|
-
description: "
|
|
1882
|
+
fileNames: {
|
|
1883
|
+
description: "List of analysis file names to retrieve.\n\nFile names from the analyze phase containing requirements, use cases, and\nbusiness logic documentation.\n\nCRITICAL: DO NOT request the same file names that you have already\nrequested in previous calls.",
|
|
1032
1884
|
type: "array",
|
|
1033
1885
|
items: {
|
|
1034
|
-
|
|
1886
|
+
type: "string"
|
|
1035
1887
|
},
|
|
1036
1888
|
minItems: 1
|
|
1037
1889
|
}
|
|
1038
1890
|
},
|
|
1039
1891
|
required: [
|
|
1040
|
-
"
|
|
1041
|
-
"
|
|
1892
|
+
"type",
|
|
1893
|
+
"fileNames"
|
|
1894
|
+
]
|
|
1895
|
+
},
|
|
1896
|
+
IAutoBePreliminaryGetInterfaceOperations: {
|
|
1897
|
+
description: "Request to retrieve existing interface operations for context.\n\nThis type is used in the preliminary phase to request already-generated API\noperations for review, validation, or complementary generation tasks.",
|
|
1898
|
+
type: "object",
|
|
1899
|
+
properties: {
|
|
1900
|
+
type: {
|
|
1901
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceOperations\" indicates this is a\npreliminary data request for interface operations.",
|
|
1902
|
+
type: "string",
|
|
1903
|
+
"enum": [
|
|
1904
|
+
"getInterfaceOperations"
|
|
1905
|
+
]
|
|
1906
|
+
},
|
|
1907
|
+
endpoints: {
|
|
1908
|
+
description: "List of existing API operation endpoints to retrieve.\n\nOperations that have been generated in previous phases, containing paths,\nmethods, parameters, and request/response bodies.\n\nCRITICAL: DO NOT request the same endpoints that you have already requested\nin previous calls.",
|
|
1909
|
+
type: "array",
|
|
1910
|
+
items: {
|
|
1911
|
+
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
1912
|
+
},
|
|
1913
|
+
minItems: 1
|
|
1914
|
+
}
|
|
1915
|
+
},
|
|
1916
|
+
required: [
|
|
1917
|
+
"type",
|
|
1918
|
+
"endpoints"
|
|
1042
1919
|
]
|
|
1043
1920
|
},
|
|
1044
1921
|
"AutoBeOpenApi.IEndpoint": {
|
|
@@ -1067,6 +1944,76 @@ const collection = {
|
|
|
1067
1944
|
"method"
|
|
1068
1945
|
]
|
|
1069
1946
|
},
|
|
1947
|
+
IAutoBePreliminaryGetInterfaceSchemas: {
|
|
1948
|
+
description: "Request to retrieve OpenAPI schema type definitions for context.\n\nThis type is used in the preliminary phase to request specific schema\ndefinitions from components.schemas for review or complementary generation.",
|
|
1949
|
+
type: "object",
|
|
1950
|
+
properties: {
|
|
1951
|
+
type: {
|
|
1952
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getInterfaceSchemas\" indicates this is a preliminary\ndata request for interface schemas.",
|
|
1953
|
+
type: "string",
|
|
1954
|
+
"enum": [
|
|
1955
|
+
"getInterfaceSchemas"
|
|
1956
|
+
]
|
|
1957
|
+
},
|
|
1958
|
+
typeNames: {
|
|
1959
|
+
description: "List of schema type names to retrieve.\n\nSchema names from the OpenAPI components.schemas section (e.g., \"IUser\",\n\"IUser.ICreate\", \"IPost.IUpdate\").\n\nCRITICAL: DO NOT request the same type names that you have already\nrequested in previous calls.",
|
|
1960
|
+
type: "array",
|
|
1961
|
+
items: {
|
|
1962
|
+
type: "string"
|
|
1963
|
+
},
|
|
1964
|
+
minItems: 1
|
|
1965
|
+
}
|
|
1966
|
+
},
|
|
1967
|
+
required: [
|
|
1968
|
+
"type",
|
|
1969
|
+
"typeNames"
|
|
1970
|
+
]
|
|
1971
|
+
},
|
|
1972
|
+
"IAutoBeTestScenarioApplication.IComplete": {
|
|
1973
|
+
description: "Request to generate test scenarios for API endpoints.\n\nExecutes test scenario generation to create comprehensive, implementable\ntest scenarios covering all endpoint behaviors, edge cases, and business\nlogic validations.",
|
|
1974
|
+
type: "object",
|
|
1975
|
+
properties: {
|
|
1976
|
+
type: {
|
|
1977
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"complete\" indicates this is the final task\nexecution request.",
|
|
1978
|
+
type: "string",
|
|
1979
|
+
"enum": [
|
|
1980
|
+
"complete"
|
|
1981
|
+
]
|
|
1982
|
+
},
|
|
1983
|
+
scenarioGroups: {
|
|
1984
|
+
description: "Collection of test scenario groups organized by endpoint.\n\nEach group contains multiple test scenarios for a single endpoint,\ncovering various user scenarios, edge cases, and business rule\nvalidations. Dependencies on other endpoints are explicitly captured to\nensure implementable tests.",
|
|
1985
|
+
type: "array",
|
|
1986
|
+
items: {
|
|
1987
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenarioGroup"
|
|
1988
|
+
}
|
|
1989
|
+
}
|
|
1990
|
+
},
|
|
1991
|
+
required: [
|
|
1992
|
+
"type",
|
|
1993
|
+
"scenarioGroups"
|
|
1994
|
+
]
|
|
1995
|
+
},
|
|
1996
|
+
"IAutoBeTestScenarioApplication.IScenarioGroup": {
|
|
1997
|
+
type: "object",
|
|
1998
|
+
properties: {
|
|
1999
|
+
endpoint: {
|
|
2000
|
+
description: "Target API endpoint to test.\n\nThis must be **unique** across all scenario groups. An endpoint is\nidentified by its `path` and `method` combination.\n\nMultiple test scenarios may exist for a single endpoint.",
|
|
2001
|
+
$ref: "#/$defs/AutoBeOpenApi.IEndpoint"
|
|
2002
|
+
},
|
|
2003
|
+
scenarios: {
|
|
2004
|
+
description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.",
|
|
2005
|
+
type: "array",
|
|
2006
|
+
items: {
|
|
2007
|
+
$ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
|
|
2008
|
+
},
|
|
2009
|
+
minItems: 1
|
|
2010
|
+
}
|
|
2011
|
+
},
|
|
2012
|
+
required: [
|
|
2013
|
+
"endpoint",
|
|
2014
|
+
"scenarios"
|
|
2015
|
+
]
|
|
2016
|
+
},
|
|
1070
2017
|
"IAutoBeTestScenarioApplication.IScenario": {
|
|
1071
2018
|
description: "Represents a test scenario for a single API operation.\n\nThis interface defines a structured, user-centric test draft that includes\na descriptive function name, a detailed scenario draft, and logical\ndependencies on other endpoints required for context or setup.\n\nCRITICAL: All referenced endpoints MUST exist in the provided API\noperations. Do NOT create scenarios for non-existent APIs, even if database\nschema fields suggest their existence. Test scenarios must be implementable\nwith available APIs only.",
|
|
1072
2019
|
type: "object",
|
|
@@ -1112,28 +2059,131 @@ const collection = {
|
|
|
1112
2059
|
}
|
|
1113
2060
|
}
|
|
1114
2061
|
},
|
|
1115
|
-
description: "
|
|
1116
|
-
validate: (() => { const _io0 = input =>
|
|
2062
|
+
description: "Process test scenario generation task or preliminary data requests.\n\nCreates comprehensive test scenarios for API endpoints by retrieving\nnecessary interface operations via RAG (Retrieval-Augmented Generation) and\ngenerating detailed test drafts with dependencies.",
|
|
2063
|
+
validate: (() => { const _io0 = input => "string" === typeof input.thinking && ("object" === typeof input.request && null !== input.request && _iu0(input.request)); const _io1 = input => "getAnalysisFiles" === input.type && (Array.isArray(input.fileNames) && (1 <= input.fileNames.length && input.fileNames.every(elem => "string" === typeof elem))); const _io2 = input => "getInterfaceOperations" === input.type && (Array.isArray(input.endpoints) && (1 <= input.endpoints.length && input.endpoints.every(elem => "object" === typeof elem && null !== elem && _io3(elem)))); const _io3 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io4 = input => "getInterfaceSchemas" === input.type && (Array.isArray(input.typeNames) && (1 <= input.typeNames.length && input.typeNames.every(elem => "string" === typeof elem))); const _io5 = input => "complete" === input.type && (Array.isArray(input.scenarioGroups) && input.scenarioGroups.every(elem => "object" === typeof elem && null !== elem && _io6(elem))); const _io6 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && (Array.isArray(input.scenarios) && (1 <= input.scenarios.length && input.scenarios.every(elem => "object" === typeof elem && null !== elem && _io7(elem)))); const _io7 = input => "string" === typeof input.draft && "string" === typeof input.functionName && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io8(elem))); const _io8 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io3(input.endpoint) && "string" === typeof input.purpose; const _iu0 = input => (() => {
|
|
2064
|
+
if ("getAnalysisFiles" === input.type)
|
|
2065
|
+
return _io1(input);
|
|
2066
|
+
else if ("getInterfaceOperations" === input.type)
|
|
2067
|
+
return _io2(input);
|
|
2068
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
2069
|
+
return _io4(input);
|
|
2070
|
+
else if ("complete" === input.type)
|
|
2071
|
+
return _io5(input);
|
|
2072
|
+
else
|
|
2073
|
+
return false;
|
|
2074
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
2075
|
+
path: _path + ".thinking",
|
|
2076
|
+
expected: "string",
|
|
2077
|
+
value: input.thinking
|
|
2078
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
2079
|
+
path: _path + ".request",
|
|
2080
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
2081
|
+
value: input.request
|
|
2082
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
2083
|
+
path: _path + ".request",
|
|
2084
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
2085
|
+
value: input.request
|
|
2086
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
2087
|
+
path: _path + ".type",
|
|
2088
|
+
expected: "\"getAnalysisFiles\"",
|
|
2089
|
+
value: input.type
|
|
2090
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
2091
|
+
path: _path + ".fileNames",
|
|
2092
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2093
|
+
value: input.fileNames
|
|
2094
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
2095
|
+
path: _path + ".fileNames",
|
|
2096
|
+
expected: "Array<> & MinItems<1>",
|
|
2097
|
+
value: input.fileNames
|
|
2098
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
2099
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
2100
|
+
expected: "string",
|
|
2101
|
+
value: elem
|
|
2102
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2103
|
+
path: _path + ".fileNames",
|
|
2104
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2105
|
+
value: input.fileNames
|
|
2106
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getInterfaceOperations" === input.type || _report(_exceptionable, {
|
|
2107
|
+
path: _path + ".type",
|
|
2108
|
+
expected: "\"getInterfaceOperations\"",
|
|
2109
|
+
value: input.type
|
|
2110
|
+
}), (Array.isArray(input.endpoints) || _report(_exceptionable, {
|
|
2111
|
+
path: _path + ".endpoints",
|
|
2112
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
2113
|
+
value: input.endpoints
|
|
2114
|
+
})) && ((1 <= input.endpoints.length || _report(_exceptionable, {
|
|
2115
|
+
path: _path + ".endpoints",
|
|
2116
|
+
expected: "Array<> & MinItems<1>",
|
|
2117
|
+
value: input.endpoints
|
|
2118
|
+
})) && input.endpoints.map((elem, _index8) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2119
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
2120
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
2121
|
+
value: elem
|
|
2122
|
+
})) && _vo3(elem, _path + ".endpoints[" + _index8 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2123
|
+
path: _path + ".endpoints[" + _index8 + "]",
|
|
2124
|
+
expected: "AutoBeOpenApi.IEndpoint",
|
|
2125
|
+
value: elem
|
|
2126
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2127
|
+
path: _path + ".endpoints",
|
|
2128
|
+
expected: "(Array<AutoBeOpenApi.IEndpoint> & MinItems<1>)",
|
|
2129
|
+
value: input.endpoints
|
|
2130
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
2131
|
+
path: _path + ".path",
|
|
2132
|
+
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
2133
|
+
value: input.path
|
|
2134
|
+
})) || _report(_exceptionable, {
|
|
2135
|
+
path: _path + ".path",
|
|
2136
|
+
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
2137
|
+
value: input.path
|
|
2138
|
+
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
2139
|
+
path: _path + ".method",
|
|
2140
|
+
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
2141
|
+
value: input.method
|
|
2142
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["getInterfaceSchemas" === input.type || _report(_exceptionable, {
|
|
2143
|
+
path: _path + ".type",
|
|
2144
|
+
expected: "\"getInterfaceSchemas\"",
|
|
2145
|
+
value: input.type
|
|
2146
|
+
}), (Array.isArray(input.typeNames) || _report(_exceptionable, {
|
|
2147
|
+
path: _path + ".typeNames",
|
|
2148
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2149
|
+
value: input.typeNames
|
|
2150
|
+
})) && ((1 <= input.typeNames.length || _report(_exceptionable, {
|
|
2151
|
+
path: _path + ".typeNames",
|
|
2152
|
+
expected: "Array<> & MinItems<1>",
|
|
2153
|
+
value: input.typeNames
|
|
2154
|
+
})) && input.typeNames.map((elem, _index9) => "string" === typeof elem || _report(_exceptionable, {
|
|
2155
|
+
path: _path + ".typeNames[" + _index9 + "]",
|
|
2156
|
+
expected: "string",
|
|
2157
|
+
value: elem
|
|
2158
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2159
|
+
path: _path + ".typeNames",
|
|
2160
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2161
|
+
value: input.typeNames
|
|
2162
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
2163
|
+
path: _path + ".type",
|
|
2164
|
+
expected: "\"complete\"",
|
|
2165
|
+
value: input.type
|
|
2166
|
+
}), (Array.isArray(input.scenarioGroups) || _report(_exceptionable, {
|
|
1117
2167
|
path: _path + ".scenarioGroups",
|
|
1118
2168
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
1119
2169
|
value: input.scenarioGroups
|
|
1120
|
-
})) && input.scenarioGroups.map((elem,
|
|
1121
|
-
path: _path + ".scenarioGroups[" +
|
|
2170
|
+
})) && input.scenarioGroups.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2171
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
1122
2172
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
1123
2173
|
value: elem
|
|
1124
|
-
})) &&
|
|
1125
|
-
path: _path + ".scenarioGroups[" +
|
|
2174
|
+
})) && _vo6(elem, _path + ".scenarioGroups[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2175
|
+
path: _path + ".scenarioGroups[" + _index10 + "]",
|
|
1126
2176
|
expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
|
|
1127
2177
|
value: elem
|
|
1128
2178
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
1129
2179
|
path: _path + ".scenarioGroups",
|
|
1130
2180
|
expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
|
|
1131
2181
|
value: input.scenarioGroups
|
|
1132
|
-
})].every(flag => flag); const
|
|
2182
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
1133
2183
|
path: _path + ".endpoint",
|
|
1134
2184
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1135
2185
|
value: input.endpoint
|
|
1136
|
-
})) &&
|
|
2186
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
1137
2187
|
path: _path + ".endpoint",
|
|
1138
2188
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1139
2189
|
value: input.endpoint
|
|
@@ -1145,31 +2195,19 @@ const collection = {
|
|
|
1145
2195
|
path: _path + ".scenarios",
|
|
1146
2196
|
expected: "Array<> & MinItems<1>",
|
|
1147
2197
|
value: input.scenarios
|
|
1148
|
-
})) && input.scenarios.map((elem,
|
|
1149
|
-
path: _path + ".scenarios[" +
|
|
2198
|
+
})) && input.scenarios.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2199
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
1150
2200
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
1151
2201
|
value: elem
|
|
1152
|
-
})) &&
|
|
1153
|
-
path: _path + ".scenarios[" +
|
|
2202
|
+
})) && _vo7(elem, _path + ".scenarios[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2203
|
+
path: _path + ".scenarios[" + _index11 + "]",
|
|
1154
2204
|
expected: "IAutoBeTestScenarioApplication.IScenario",
|
|
1155
2205
|
value: elem
|
|
1156
2206
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1157
2207
|
path: _path + ".scenarios",
|
|
1158
2208
|
expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
|
|
1159
2209
|
value: input.scenarios
|
|
1160
|
-
})].every(flag => flag); const
|
|
1161
|
-
path: _path + ".path",
|
|
1162
|
-
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
1163
|
-
value: input.path
|
|
1164
|
-
})) || _report(_exceptionable, {
|
|
1165
|
-
path: _path + ".path",
|
|
1166
|
-
expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
|
|
1167
|
-
value: input.path
|
|
1168
|
-
}), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
|
|
1169
|
-
path: _path + ".method",
|
|
1170
|
-
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1171
|
-
value: input.method
|
|
1172
|
-
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
2210
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
|
|
1173
2211
|
path: _path + ".draft",
|
|
1174
2212
|
expected: "string",
|
|
1175
2213
|
value: input.draft
|
|
@@ -1181,23 +2219,23 @@ const collection = {
|
|
|
1181
2219
|
path: _path + ".dependencies",
|
|
1182
2220
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
1183
2221
|
value: input.dependencies
|
|
1184
|
-
})) && input.dependencies.map((elem,
|
|
1185
|
-
path: _path + ".dependencies[" +
|
|
2222
|
+
})) && input.dependencies.map((elem, _index12) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2223
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
1186
2224
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
1187
2225
|
value: elem
|
|
1188
|
-
})) &&
|
|
1189
|
-
path: _path + ".dependencies[" +
|
|
2226
|
+
})) && _vo8(elem, _path + ".dependencies[" + _index12 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2227
|
+
path: _path + ".dependencies[" + _index12 + "]",
|
|
1190
2228
|
expected: "IAutoBeTestScenarioApplication.IDependencies",
|
|
1191
2229
|
value: elem
|
|
1192
2230
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
1193
2231
|
path: _path + ".dependencies",
|
|
1194
2232
|
expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
|
|
1195
2233
|
value: input.dependencies
|
|
1196
|
-
})].every(flag => flag); const
|
|
2234
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
1197
2235
|
path: _path + ".endpoint",
|
|
1198
2236
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1199
2237
|
value: input.endpoint
|
|
1200
|
-
})) &&
|
|
2238
|
+
})) && _vo3(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
1201
2239
|
path: _path + ".endpoint",
|
|
1202
2240
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1203
2241
|
value: input.endpoint
|
|
@@ -1205,7 +2243,22 @@ const collection = {
|
|
|
1205
2243
|
path: _path + ".purpose",
|
|
1206
2244
|
expected: "string",
|
|
1207
2245
|
value: input.purpose
|
|
1208
|
-
})].every(flag => flag); const
|
|
2246
|
+
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
2247
|
+
if ("getAnalysisFiles" === input.type)
|
|
2248
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
2249
|
+
else if ("getInterfaceOperations" === input.type)
|
|
2250
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
2251
|
+
else if ("getInterfaceSchemas" === input.type)
|
|
2252
|
+
return _vo4(input, _path, true && _exceptionable);
|
|
2253
|
+
else if ("complete" === input.type)
|
|
2254
|
+
return _vo5(input, _path, true && _exceptionable);
|
|
2255
|
+
else
|
|
2256
|
+
return _report(_exceptionable, {
|
|
2257
|
+
path: _path,
|
|
2258
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetInterfaceOperations | IAutoBePreliminaryGetInterfaceSchemas | IAutoBeTestScenarioApplication.IComplete)",
|
|
2259
|
+
value: input
|
|
2260
|
+
});
|
|
2261
|
+
})(); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
1209
2262
|
if (false === __is(input)) {
|
|
1210
2263
|
errors = [];
|
|
1211
2264
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
@@ -1238,10 +2291,11 @@ const collection = {
|
|
|
1238
2291
|
};
|
|
1239
2292
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
1240
2293
|
validate: {
|
|
1241
|
-
|
|
2294
|
+
process: validate,
|
|
1242
2295
|
},
|
|
1243
2296
|
}), { equals: false }));
|
|
1244
2297
|
return application;
|
|
1245
2298
|
})(),
|
|
1246
2299
|
};
|
|
2300
|
+
const SOURCE = "testScenario";
|
|
1247
2301
|
//# sourceMappingURL=orchestrateTestScenario.js.map
|