@autobe/agent 0.28.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AutoBeAgent.js +1 -0
- 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 +5 -3
- package/lib/factory/createAutoBeContext.js.map +1 -1
- package/lib/index.mjs +37005 -17000
- 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 +15 -22
- 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} +1395 -241
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.d.ts +4 -3
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +2843 -556
- 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} +1299 -232
- 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} +1447 -264
- 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} +2586 -570
- 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 +2875 -588
- 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 +19 -22
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +2864 -1535
- 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 -1557
- 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 -569
- 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 +1381 -325
- package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenarioReview.d.ts +5 -3
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1072 -291
- 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 +10 -8
- package/src/AutoBeAgent.ts +1 -0
- 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 +5 -2
- 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/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 -506
- 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 -487
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +0 -455
- 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 -916
- 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 -707
- 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/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
|
@@ -45,97 +45,746 @@ 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.
|
|
48
|
+
exports.orchestrateInterfaceOperationReview = orchestrateInterfaceOperationReview;
|
|
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 typia_1 = __importDefault(require("typia"));
|
|
52
52
|
const uuid_1 = require("uuid");
|
|
53
|
-
const
|
|
53
|
+
const AutoBePreliminaryController_1 = require("../common/AutoBePreliminaryController");
|
|
54
|
+
const transformInterfaceOperationReviewHistory_1 = require("./histories/transformInterfaceOperationReviewHistory");
|
|
54
55
|
const OperationValidator_1 = require("./utils/OperationValidator");
|
|
55
|
-
function
|
|
56
|
+
function orchestrateInterfaceOperationReview(ctx, operations, progress) {
|
|
56
57
|
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
var _a, _b, _c;
|
|
58
58
|
try {
|
|
59
|
-
|
|
59
|
+
return yield process(ctx, operations, progress);
|
|
60
|
+
}
|
|
61
|
+
catch (_a) {
|
|
62
|
+
++progress.completed;
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function process(ctx, operations, progress) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
var _a;
|
|
70
|
+
const files = (_a = ctx.state().prisma) === null || _a === void 0 ? void 0 : _a.result.data.files;
|
|
71
|
+
const preliminary = new AutoBePreliminaryController_1.AutoBePreliminaryController({
|
|
72
|
+
application: {
|
|
73
|
+
version: "3.1",
|
|
74
|
+
components: {
|
|
75
|
+
schemas: {
|
|
76
|
+
"IAutoBeInterfaceOperationReviewApplication.IProps": {
|
|
77
|
+
type: "object",
|
|
78
|
+
properties: {
|
|
79
|
+
thinking: {
|
|
80
|
+
type: "string",
|
|
81
|
+
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."
|
|
82
|
+
},
|
|
83
|
+
request: {
|
|
84
|
+
oneOf: [
|
|
85
|
+
{
|
|
86
|
+
$ref: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
$ref: "#/components/schemas/IAutoBePreliminaryGetPrismaSchemas"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
$ref: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
discriminator: {
|
|
96
|
+
propertyName: "type",
|
|
97
|
+
mapping: {
|
|
98
|
+
getAnalysisFiles: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles",
|
|
99
|
+
getPrismaSchemas: "#/components/schemas/IAutoBePreliminaryGetPrismaSchemas",
|
|
100
|
+
complete: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls."
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
required: [
|
|
107
|
+
"thinking",
|
|
108
|
+
"request"
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
112
|
+
type: "object",
|
|
113
|
+
properties: {
|
|
114
|
+
type: {
|
|
115
|
+
"const": "getAnalysisFiles",
|
|
116
|
+
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."
|
|
117
|
+
},
|
|
118
|
+
fileNames: {
|
|
119
|
+
type: "array",
|
|
120
|
+
items: {
|
|
121
|
+
type: "string"
|
|
122
|
+
},
|
|
123
|
+
minItems: 1,
|
|
124
|
+
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."
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
required: [
|
|
128
|
+
"type",
|
|
129
|
+
"fileNames"
|
|
130
|
+
],
|
|
131
|
+
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."
|
|
132
|
+
},
|
|
133
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
134
|
+
type: "object",
|
|
135
|
+
properties: {
|
|
136
|
+
type: {
|
|
137
|
+
"const": "getPrismaSchemas",
|
|
138
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas."
|
|
139
|
+
},
|
|
140
|
+
schemaNames: {
|
|
141
|
+
type: "array",
|
|
142
|
+
items: {
|
|
143
|
+
type: "string"
|
|
144
|
+
},
|
|
145
|
+
minItems: 1,
|
|
146
|
+
description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls."
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
required: [
|
|
150
|
+
"type",
|
|
151
|
+
"schemaNames"
|
|
152
|
+
],
|
|
153
|
+
description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations."
|
|
154
|
+
},
|
|
155
|
+
"IAutoBeInterfaceOperationReviewApplication.IComplete": {
|
|
156
|
+
type: "object",
|
|
157
|
+
properties: {
|
|
158
|
+
type: {
|
|
159
|
+
"const": "complete",
|
|
160
|
+
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."
|
|
161
|
+
},
|
|
162
|
+
think: {
|
|
163
|
+
$ref: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
164
|
+
description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations."
|
|
165
|
+
},
|
|
166
|
+
content: {
|
|
167
|
+
type: "array",
|
|
168
|
+
items: {
|
|
169
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IOperation"
|
|
170
|
+
},
|
|
171
|
+
description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases."
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
required: [
|
|
175
|
+
"type",
|
|
176
|
+
"think",
|
|
177
|
+
"content"
|
|
178
|
+
],
|
|
179
|
+
description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations."
|
|
180
|
+
},
|
|
181
|
+
"IAutoBeInterfaceOperationReviewApplication.IThink": {
|
|
182
|
+
type: "object",
|
|
183
|
+
properties: {
|
|
184
|
+
review: {
|
|
185
|
+
type: "string",
|
|
186
|
+
description: "Comprehensive review analysis with prioritized findings.\n\nSystematic assessment organized by severity levels (CRITICAL, HIGH,\nMEDIUM, LOW):\n\n- **Security Analysis**: Authentication boundary violations, exposed\n passwords/tokens, unauthorized data access patterns, SQL injection\n risks\n- **Logic Validation**: Return type consistency (list operations returning\n arrays, single retrieval returning single items), HTTP method semantics\n alignment, parameter usage verification\n- **Schema Compliance**: Field existence in Prisma schema, type accuracy,\n relationship validity, required field handling\n- **Quality Assessment**: Documentation completeness, naming conventions,\n error handling patterns, pagination standards\n\nEach finding includes specific examples, current vs expected behavior,\nand concrete fix recommendations. Critical security issues and logical\ncontradictions are highlighted for immediate attention."
|
|
187
|
+
},
|
|
188
|
+
plan: {
|
|
189
|
+
type: "string",
|
|
190
|
+
description: "Prioritized action plan for identified issues.\n\nStructured improvement strategy categorized by severity:\n\n- **Immediate Actions (CRITICAL)**: Security vulnerabilities that must be\n fixed before production (password exposure, missing authorization,\n authentication bypass risks)\n- **Required Fixes (HIGH)**: Functional issues affecting API correctness\n (wrong return types, missing required fields, schema mismatches)\n- **Recommended Improvements (MEDIUM)**: Quality enhancements for better\n API design (validation rules, format specifications, consistency)\n- **Optional Enhancements (LOW)**: Documentation and usability improvements\n\nIf all operations pass review without issues, contains: \"No improvements\nrequired. All operations meet AutoBE standards.\"\n\nEach action item includes the specific operation path, the exact change\nneeded, and the rationale for the modification."
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
required: [
|
|
194
|
+
"review",
|
|
195
|
+
"plan"
|
|
196
|
+
],
|
|
197
|
+
description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations."
|
|
198
|
+
},
|
|
199
|
+
"AutoBeOpenApi.IOperation": {
|
|
200
|
+
type: "object",
|
|
201
|
+
properties: {
|
|
202
|
+
specification: {
|
|
203
|
+
type: "string",
|
|
204
|
+
description: "Specification of the API operation.\n\nBefore defining the API operation interface, please describe what you're\nplanning to write in this `specification` field.\n\nThe specification must be fully detailed and clear, so that anyone can\nunderstand the purpose and functionality of the API operation and its\nrelated components (e.g., {@link path}, {@link parameters},\n{@link requestBody}).\n\nIMPORTANT: The specification MUST identify which Prisma DB table this\noperation is associated with, helping ensure complete coverage of all\ndatabase entities."
|
|
205
|
+
},
|
|
206
|
+
authorizationType: {
|
|
207
|
+
oneOf: [
|
|
208
|
+
{
|
|
209
|
+
type: "null"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"const": "login"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"const": "join"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"const": "refresh"
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
description: "Authorization type of the API operation.\n\n- `\"login\"`: User login operations that validate credentials\n- `\"join\"`: User registration operations that create accounts\n- `\"refresh\"`: Token refresh operations that renew access tokens\n- `null`: All other operations (CRUD, business logic, etc.)\n\nUse authentication values only for credential validation, user\nregistration, or token refresh operations. Use `null` for all other\nbusiness operations.\n\nExamples:\n\n- `/auth/login` \u2192 `\"login\"`\n- `/auth/register` \u2192 `\"join\"`\n- `/auth/refresh` \u2192 `\"refresh\"`\n- `/auth/validate` \u2192 `null`\n- `/users/{id}`, `/shoppings/customers/sales/cancel`, \u2192 `null`"
|
|
222
|
+
},
|
|
223
|
+
description: {
|
|
224
|
+
type: "string",
|
|
225
|
+
description: "Detailed description about the API operation.\n\nIMPORTANT: This field MUST be extensively detailed and MUST reference the\ndescription comments from the related Prisma DB schema tables and\ncolumns. The description should be organized into MULTIPLE PARAGRAPHS\nseparated by line breaks to improve readability and comprehension.\n\nFor example, include separate paragraphs for:\n\n- The purpose and overview of the API operation\n- Security considerations and user permissions\n- Relationship to underlying database entities\n- Validation rules and business logic\n- Related API operations that might be used together with this one\n- Expected behavior and error handling\n\nWhen writing the description, be sure to incorporate the corresponding DB\nschema's description comments, matching the level of detail and style of\nthose comments. This ensures consistency between the API documentation\nand database structure.\n\nIf there's a dependency to other APIs, please describe the dependency API\noperation in this field with detailed reason. For example, if this API\noperation needs a pre-execution of other API operation, it must be\nexplicitly described.\n\n- `GET /shoppings/customers/sales` must be pre-executed to get entire list\n of summarized sales. Detailed sale information would be obtained by\n specifying the sale ID in the path parameter.\n\n**CRITICAL WARNING about soft delete keywords**: DO NOT use terms like\n\"soft delete\", \"soft-delete\", or similar variations in this description\nUNLESS the operation actually implements soft deletion. These keywords\ntrigger validation logic that expects a corresponding soft_delete_column\nto be specified. Only use these terms when you intend to implement soft\ndeletion (marking records as deleted without removing them from the\ndatabase).\n\nExample of problematic description: \u274C \"This would normally be a\nsoft-delete, but we intentionally perform permanent deletion here\" - This\ntriggers soft delete validation despite being a hard delete operation.\n\n> MUST be written in English. Never use other languages."
|
|
226
|
+
},
|
|
227
|
+
summary: {
|
|
228
|
+
type: "string",
|
|
229
|
+
description: "Short summary of the API operation.\n\nThis should be a concise description of the API operation, typically one\nsentence long. It should provide a quick overview of what the API does\nwithout going into too much detail.\n\nThis summary will be used in the OpenAPI documentation to give users a\nquick understanding of the API operation's purpose.\n\nIMPORTANT: The summary should clearly indicate which Prisma DB table this\noperation relates to, helping to ensure all tables have API coverage.\n\n**CRITICAL WARNING about soft delete keywords**: DO NOT use terms like\n\"soft delete\", \"soft-delete\", or similar variations in this summary\nUNLESS the operation actually implements soft deletion. These keywords\ntrigger validation logic that expects a corresponding soft_delete_column\nto be specified. Only use these terms when you intend to implement soft\ndeletion (marking records as deleted without removing them from the\ndatabase).\n\n> MUST be written in English. Never use other languages"
|
|
230
|
+
},
|
|
231
|
+
parameters: {
|
|
232
|
+
type: "array",
|
|
233
|
+
items: {
|
|
234
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IParameter"
|
|
235
|
+
},
|
|
236
|
+
description: "List of path parameters.\n\nNote that, the {@link AutoBeOpenApi.IParameter.name identifier name} of\npath parameter must be corresponded to the\n{@link path API operation path}.\n\nFor example, if there's an API operation which has {@link path} of\n`/shoppings/customers/sales/{saleId}/questions/${questionId}/comments/${commentId}`,\nits list of {@link AutoBeOpenApi.IParameter.name path parameters} must be\nlike:\n\n- `saleId`\n- `questionId`\n- `commentId`"
|
|
237
|
+
},
|
|
238
|
+
requestBody: {
|
|
239
|
+
oneOf: [
|
|
240
|
+
{
|
|
241
|
+
type: "null"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IRequestBody"
|
|
245
|
+
}
|
|
246
|
+
],
|
|
247
|
+
description: "Request body of the API operation.\n\nDefines the payload structure for the request. Contains a description and\nschema reference to define the expected input data.\n\nShould be `null` for operations that don't require a request body, such\nas most \"get\" operations."
|
|
248
|
+
},
|
|
249
|
+
responseBody: {
|
|
250
|
+
oneOf: [
|
|
251
|
+
{
|
|
252
|
+
type: "null"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IResponseBody"
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
description: "Response body of the API operation.\n\nDefines the structure of the successful response data. Contains a\ndescription and schema reference for the returned data.\n\nShould be null for operations that don't return any data."
|
|
259
|
+
},
|
|
260
|
+
authorizationActor: {
|
|
261
|
+
oneOf: [
|
|
262
|
+
{
|
|
263
|
+
type: "null"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
type: "string",
|
|
267
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
268
|
+
minLength: 1
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
description: "Authorization actor required to access this API operation.\n\nThis field specifies which user actor is allowed to access this endpoint.\nThe actor name must correspond exactly to the actual actors defined in\nyour system's Prisma schema.\n\n## Naming Convention\n\nActor names MUST use camelCase.\n\n## Actor-Based Path Convention\n\nWhen authorizationActor is specified, it should align with the path\nstructure:\n\n- If authorizationActor is \"admin\" \u2192 path might be \"/admin/resources/{id}\"\n- If authorizationActor is \"seller\" \u2192 path might be \"/seller/products\"\n- Special case: For user's own resources, use path prefix \"/my/\" regardless\n of actor\n\n## Important Guidelines\n\n- Set to `null` for public endpoints that require no authentication\n- Set to specific actor string for actor-restricted endpoints\n- The actor name MUST match exactly with the user type/actor defined in the\n database\n- This actor will be used by the Realize Agent to generate appropriate\n decorator and authorization logic in the provider functions\n- The controller will apply the corresponding authentication decorator\n based on this actor\n\n## Examples\n\n- `null` - Public endpoint, no authentication required\n- `\"user\"` - Any authenticated user can access\n- `\"admin\"` - Only admin users can access\n- `\"seller\"` - Only seller users can access\n- `\"moderator\"` - Only moderator users can access\n\nNote: The actual authentication/authorization implementation will be\nhandled by decorators at the controller level, and the provider function\nwill receive the authenticated user object with the appropriate type."
|
|
272
|
+
},
|
|
273
|
+
name: {
|
|
274
|
+
type: "string",
|
|
275
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
276
|
+
description: "Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint's primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` \u2192 `name: \"index\"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` \u2192 `name: \"at\"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` \u2192 `name: \"create\"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` \u2192 `name: \"update\"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` \u2192 `name: \"erase\"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint's primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` \u2192 `name: \"index\"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` \u2192 `name: \"cancel\"`\n- `PUT /users/{userId}/password` \u2192 `name: \"updatePassword\"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API's accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` \u2192 Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` \u2192 Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` \u2192 Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts."
|
|
277
|
+
},
|
|
278
|
+
prerequisites: {
|
|
279
|
+
type: "array",
|
|
280
|
+
items: {
|
|
281
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IPrerequisite"
|
|
282
|
+
},
|
|
283
|
+
description: "Prerequisites for this API operation.\n\nThe `prerequisites` field defines API operations that must be\nsuccessfully executed before this operation can be performed. This\ncreates an explicit dependency chain between API endpoints, ensuring\nproper execution order and data availability.\n\n## CRITICAL WARNING: Authentication Prerequisites\n\n**NEVER include authentication-related operations as prerequisites!**\nAuthentication is handled separately through the `authorizationActor`\nfield and should NOT be part of the prerequisite chain. Do NOT add\nprerequisites for:\n\n- Login endpoints\n- Token validation endpoints\n- User authentication checks\n- Permission verification endpoints\n\nPrerequisites are ONLY for business logic dependencies, NOT for\nauthentication/authorization.\n\n## Purpose and Use Cases\n\nPrerequisites are essential for operations that depend on:\n\n1. **Existence Validation**: Ensuring resources exist before manipulation\n2. **State Requirements**: Verifying resources are in the correct state\n3. **Data Dependencies**: Loading necessary data for the current operation\n4. **Business Logic Constraints**: Enforcing domain-specific rules\n\n## Execution Flow\n\nWhen an operation has prerequisites:\n\n1. Each prerequisite API must be called first in the specified order\n2. Prerequisites must return successful responses (2xx status codes)\n3. Only after all prerequisites succeed can the main operation proceed\n4. If any prerequisite fails, the operation should not be attempted\n\n## Common Patterns\n\n### Resource Existence Check\n\n```typescript\n// Before updating an order item, ensure the order exists\nprerequisites: [\n {\n endpoint: { path: \"/orders/{orderId}\", method: \"get\" },\n description: \"Order must exist in the system\",\n },\n];\n```\n\n### State Validation\n\n```typescript\n// Before processing payment, ensure order is in correct state\nprerequisites: [\n {\n endpoint: { path: \"/orders/{orderId}/status\", method: \"get\" },\n description: \"Order must be in 'pending_payment' status\",\n },\n];\n```\n\n### Hierarchical Dependencies\n\n```typescript\n// Before accessing a deeply nested resource\nprerequisites: [\n {\n endpoint: { path: \"/projects/{projectId}\", method: \"get\" },\n description: \"Project must exist\",\n },\n {\n endpoint: {\n path: \"/projects/{projectId}/tasks/{taskId}\",\n method: \"get\",\n },\n description: \"Task must exist within the project\",\n },\n];\n```\n\n## Important Guidelines\n\n1. **Order Matters**: Prerequisites are executed in array order\n2. **Parameter Inheritance**: Path parameters from prerequisites can be used\n in the main operation\n3. **Error Handling**: Failed prerequisites should prevent main operation\n4. **Performance**: Consider caching prerequisite results when appropriate\n5. **Documentation**: Each prerequisite must have a clear description\n explaining why it's required\n6. **No Authentication**: NEVER use prerequisites for authentication checks\n\n## Test Generation Impact\n\nThe Test Agent uses prerequisites to:\n\n- Generate proper test setup sequences\n- Create valid test data in the correct order\n- Ensure test scenarios follow realistic workflows\n- Validate error handling when prerequisites fail"
|
|
284
|
+
},
|
|
285
|
+
path: {
|
|
286
|
+
type: "string",
|
|
287
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
|
|
288
|
+
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)"
|
|
289
|
+
},
|
|
290
|
+
method: {
|
|
291
|
+
oneOf: [
|
|
292
|
+
{
|
|
293
|
+
"const": "get"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"const": "post"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"const": "put"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"const": "delete"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"const": "patch"
|
|
306
|
+
}
|
|
307
|
+
],
|
|
308
|
+
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"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
required: [
|
|
312
|
+
"specification",
|
|
313
|
+
"authorizationType",
|
|
314
|
+
"description",
|
|
315
|
+
"summary",
|
|
316
|
+
"parameters",
|
|
317
|
+
"requestBody",
|
|
318
|
+
"responseBody",
|
|
319
|
+
"authorizationActor",
|
|
320
|
+
"name",
|
|
321
|
+
"prerequisites",
|
|
322
|
+
"path",
|
|
323
|
+
"method"
|
|
324
|
+
],
|
|
325
|
+
description: "Operation of the Restful API.\n\nThis interface defines a single API endpoint with its HTTP {@link method},\n{@link path}, {@link parameters path parameters},\n{@link requestBody request body}, and {@link responseBody} structure. It\ncorresponds to an individual operation in the paths section of an OpenAPI\ndocument.\n\nEach operation requires a detailed explanation of its purpose through the\nreason and description fields, making it clear why the API was designed and\nhow it should be used.\n\nAll request bodies and responses for this operation must be object types\nand must reference named types defined in the components section. The\ncontent-type is always `application/json`. For file upload/download\noperations, use `string & tags.Format<\"uri\">` in the appropriate schema\ninstead of binary data formats.\n\nIn OpenAPI, this might represent:\n\n```json\n{\n \"/shoppings/customers/orders\": {\n \"post\": {\n \"description\": \"Create a new order application from shopping cart...\",\n \"parameters\": [...],\n \"requestBody\": {...},\n \"responses\": {...},\n ...\n }\n }\n}\n```"
|
|
326
|
+
},
|
|
327
|
+
"AutoBeOpenApi.IParameter": {
|
|
328
|
+
type: "object",
|
|
329
|
+
properties: {
|
|
330
|
+
name: {
|
|
331
|
+
type: "string",
|
|
332
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
333
|
+
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention."
|
|
334
|
+
},
|
|
335
|
+
description: {
|
|
336
|
+
type: "string",
|
|
337
|
+
description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages."
|
|
338
|
+
},
|
|
339
|
+
schema: {
|
|
340
|
+
oneOf: [
|
|
341
|
+
{
|
|
342
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.INumber"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IInteger"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IString"
|
|
349
|
+
}
|
|
350
|
+
],
|
|
351
|
+
discriminator: {
|
|
352
|
+
propertyName: "type",
|
|
353
|
+
mapping: {
|
|
354
|
+
number: "#/components/schemas/AutoBeOpenApi.IJsonSchema.INumber",
|
|
355
|
+
integer: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IInteger",
|
|
356
|
+
string: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IString"
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
description: "Type schema of the path parameter.\n\nPath parameters are typically primitive types like\n{@link AutoBeOpenApi.IJsonSchema.IString strings},\n{@link AutoBeOpenApi.IJsonSchema.IInteger integers},\n{@link AutoBeOpenApi.IJsonSchema.INumber numbers}.\n\nIf you need other types, please use request body instead with object type\nencapsulation."
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
required: [
|
|
363
|
+
"name",
|
|
364
|
+
"description",
|
|
365
|
+
"schema"
|
|
366
|
+
],
|
|
367
|
+
description: "Path parameter information for API routes.\n\nThis interface defines a path parameter that appears in the URL of an API\nendpoint. Path parameters are enclosed in curly braces in the\n{@link AutoBeOpenApi.IOperation.path operation path} and must be defined\nwith their types and descriptions.\n\nFor example, if API operation path is\n`/shoppings/customers/sales/{saleId}/questions/${questionId}/comments/${commentId}`,\nthe path parameters should be like below:\n\n```json\n{\n \"path\": \"/shoppings/customers/sales/{saleId}/questions/${questionId}/comments/${commentId}\",\n \"method\": \"get\",\n \"parameters\": [\n {\n \"name\": \"saleId\",\n \"in\": \"path\",\n \"schema\": { \"type\": \"string\", \"format\": \"uuid\" },\n \"description\": \"Target sale's ID\"\n },\n {\n \"name\": \"questionId\",\n \"in\": \"path\",\n \"schema\": { \"type\": \"string\", \"format\": \"uuid\" },\n \"description\": \"Target question's ID\"\n },\n {\n \"name\": \"commentId\",\n \"in\": \"path\",\n \"schema\": { \"type\": \"string\", \"format\": \"uuid\" },\n \"description\": \"Target comment's ID\"\n }\n ]\n}\n```"
|
|
368
|
+
},
|
|
369
|
+
"AutoBeOpenApi.IJsonSchema.INumber": {
|
|
370
|
+
type: "object",
|
|
371
|
+
properties: {
|
|
372
|
+
minimum: {
|
|
373
|
+
type: "number",
|
|
374
|
+
description: "Minimum value restriction."
|
|
375
|
+
},
|
|
376
|
+
maximum: {
|
|
377
|
+
type: "number",
|
|
378
|
+
description: "Maximum value restriction."
|
|
379
|
+
},
|
|
380
|
+
exclusiveMinimum: {
|
|
381
|
+
type: "number",
|
|
382
|
+
description: "Exclusive minimum value restriction."
|
|
383
|
+
},
|
|
384
|
+
exclusiveMaximum: {
|
|
385
|
+
type: "number",
|
|
386
|
+
description: "Exclusive maximum value restriction."
|
|
387
|
+
},
|
|
388
|
+
multipleOf: {
|
|
389
|
+
type: "number",
|
|
390
|
+
exclusiveMinimum: 0,
|
|
391
|
+
description: "Multiple of value restriction."
|
|
392
|
+
},
|
|
393
|
+
type: {
|
|
394
|
+
"const": "number",
|
|
395
|
+
description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
required: [
|
|
399
|
+
"type"
|
|
400
|
+
],
|
|
401
|
+
description: "Number (double) type info."
|
|
402
|
+
},
|
|
403
|
+
"AutoBeOpenApi.IJsonSchema.IInteger": {
|
|
404
|
+
type: "object",
|
|
405
|
+
properties: {
|
|
406
|
+
minimum: {
|
|
407
|
+
type: "integer",
|
|
408
|
+
description: "Minimum value restriction."
|
|
409
|
+
},
|
|
410
|
+
maximum: {
|
|
411
|
+
type: "integer",
|
|
412
|
+
description: "Maximum value restriction."
|
|
413
|
+
},
|
|
414
|
+
exclusiveMinimum: {
|
|
415
|
+
type: "number",
|
|
416
|
+
description: "Exclusive minimum value restriction."
|
|
417
|
+
},
|
|
418
|
+
exclusiveMaximum: {
|
|
419
|
+
type: "number",
|
|
420
|
+
description: "Exclusive maximum value restriction."
|
|
421
|
+
},
|
|
422
|
+
multipleOf: {
|
|
423
|
+
type: "integer",
|
|
424
|
+
exclusiveMinimum: 0,
|
|
425
|
+
description: "Multiple of value restriction."
|
|
426
|
+
},
|
|
427
|
+
type: {
|
|
428
|
+
"const": "integer",
|
|
429
|
+
description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
required: [
|
|
433
|
+
"type"
|
|
434
|
+
],
|
|
435
|
+
description: "Integer type info."
|
|
436
|
+
},
|
|
437
|
+
"AutoBeOpenApi.IJsonSchema.IString": {
|
|
438
|
+
type: "object",
|
|
439
|
+
properties: {
|
|
440
|
+
format: {
|
|
441
|
+
oneOf: [
|
|
442
|
+
{
|
|
443
|
+
"const": "date-time"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"const": "password"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"const": "regex"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"const": "uuid"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"const": "email"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"const": "hostname"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"const": "idn-email"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"const": "idn-hostname"
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"const": "iri"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"const": "iri-reference"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"const": "ipv4"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"const": "ipv6"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"const": "uri"
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"const": "uri-reference"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"const": "uri-template"
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"const": "url"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"const": "date"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"const": "time"
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"const": "duration"
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"const": "json-pointer"
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"const": "relative-json-pointer"
|
|
504
|
+
}
|
|
505
|
+
],
|
|
506
|
+
description: "Format restriction."
|
|
507
|
+
},
|
|
508
|
+
pattern: {
|
|
509
|
+
type: "string",
|
|
510
|
+
description: "Pattern restriction."
|
|
511
|
+
},
|
|
512
|
+
contentMediaType: {
|
|
513
|
+
type: "string",
|
|
514
|
+
description: "Content media type restriction."
|
|
515
|
+
},
|
|
516
|
+
minLength: {
|
|
517
|
+
type: "integer",
|
|
518
|
+
minimum: 0,
|
|
519
|
+
description: "Minimum length restriction."
|
|
520
|
+
},
|
|
521
|
+
maxLength: {
|
|
522
|
+
type: "integer",
|
|
523
|
+
minimum: 0,
|
|
524
|
+
description: "Maximum length restriction."
|
|
525
|
+
},
|
|
526
|
+
type: {
|
|
527
|
+
"const": "string",
|
|
528
|
+
description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value."
|
|
529
|
+
}
|
|
530
|
+
},
|
|
531
|
+
required: [
|
|
532
|
+
"type"
|
|
533
|
+
],
|
|
534
|
+
description: "String type info."
|
|
535
|
+
},
|
|
536
|
+
"AutoBeOpenApi.IRequestBody": {
|
|
537
|
+
type: "object",
|
|
538
|
+
properties: {
|
|
539
|
+
description: {
|
|
540
|
+
type: "string",
|
|
541
|
+
description: "Description about the request body.\n\nMake short, concise and clear description about the request body.\n\n> MUST be written in English. Never use other languages."
|
|
542
|
+
},
|
|
543
|
+
typeName: {
|
|
544
|
+
type: "string",
|
|
545
|
+
description: "Request body type name.\n\nThis specifies the data structure expected in the request body, that will\nbe transformed to {@link AutoBeOpenApi.IJsonSchema.IReference reference}\ntype in the {@link AutoBeOpenApi.IComponents.schemas components section}\nas an {@link AutoBeOpenApi.IJsonSchema.Object object} type.\n\nHere is the naming convention for the request body type:\n\n- `IEntityName.ICreate`: Request body for creation operations (POST)\n- `IEntityName.IUpdate`: Request body for update operations (PUT)\n- `IEntityName.IRequest`: Request parameters for list operations (often\n with search/pagination)\n\nWhat you write:\n\n```json\n{\n \"typeName\": \"IShoppingOrder.ICreate\"\n}\n```\n\nTransformed to:\n\n```json\n{\n \"schema\": {\n \"$ref\": \"#/components/schemas/IShoppingOrder.ICreate\"\n }\n}\n```"
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
required: [
|
|
549
|
+
"description",
|
|
550
|
+
"typeName"
|
|
551
|
+
],
|
|
552
|
+
description: "Request body information of OpenAPI operation.\n\nThis interface defines the structure for request bodies in API routes. It\ncorresponds to the requestBody section in OpenAPI specifications, providing\nboth a description and schema reference for the request payload.\n\nThe content-type for all request bodies is always `application/json`. Even\nwhen file uploading is required, don't use `multipart/form-data` or\n`application/x-www-form-urlencoded` content types. Instead, just define an\nURI string property in the request body schema.\n\nNote that, all body schemas must be transformable to a\n{@link AutoBeOpenApi.IJsonSchema.IReference reference} type defined in the\n{@link AutoBeOpenApi.IComponents.schemas components section} as an\n{@link AutoBeOpenApi.IJsonSchema.IObject object} type.\n\nIn OpenAPI, this might represent:\n\n```json\n{\n \"requestBody\": {\n \"description\": \"Creation info of the order\",\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"$ref\": \"#/components/schemas/IShoppingOrder.ICreate\"\n }\n }\n }\n }\n}\n```"
|
|
553
|
+
},
|
|
554
|
+
"AutoBeOpenApi.IResponseBody": {
|
|
555
|
+
type: "object",
|
|
556
|
+
properties: {
|
|
557
|
+
description: {
|
|
558
|
+
type: "string",
|
|
559
|
+
description: "Description about the response body.\n\nMake short, concise and clear description about the response body.\n\n> MUST be written in English. Never use other languages."
|
|
560
|
+
},
|
|
561
|
+
typeName: {
|
|
562
|
+
type: "string",
|
|
563
|
+
description: "Response body's data type.\n\nSpecifies the structure of the returned data (response body), that will\nbe transformed to {@link AutoBeOpenApi.IJsonSchema.IReference} type in the\n{@link AutoBeOpenApi.IComponents.schemas components section} as an\n{@link AutoBeOpenApi.IJsonSchema.IObject object} type.\n\nHere is the naming convention for the response body type:\n\n- `IEntityName`: Main entity with detailed information (e.g.,\n `IShoppingSale`)\n- `IEntityName.ISummary`: Simplified response version with essential\n properties\n- `IEntityName.IInvert`: Alternative view of an entity from a different\n perspective\n- `IPageIEntityName`: Paginated results container with `pagination` and\n `data` properties\n\nWhat you write:\n\n```json\n{\n \"typeName\": \"IShoppingOrder\"\n}\n```\n\nTransformed to:\n\n```json\n{\n \"schema\": {\n \"$ref\": \"#/components/schemas/IShoppingOrder\"\n }\n}\n```"
|
|
564
|
+
}
|
|
565
|
+
},
|
|
566
|
+
required: [
|
|
567
|
+
"description",
|
|
568
|
+
"typeName"
|
|
569
|
+
],
|
|
570
|
+
description: "Response body information for OpenAPI operation.\n\nThis interface defines the structure of a successful response from an API\noperation. It provides a description of the response and a schema reference\nto define the returned data structure.\n\nThe content-type for all responses is always `application/json`. Even when\nfile downloading is required, don't use `application/octet-stream` or\n`multipart/form-data` content types. Instead, just define an URI string\nproperty in the response body schema.\n\nIn OpenAPI, this might represent:\n\n```json\n{\n \"responses\": {\n \"200\": {\n \"description\": \"Order information\",\n \"content\": {\n \"application/json\": {\n \"schema\": { \"$ref\": \"#/components/schemas/IShoppingOrder\" }\n }\n }\n }\n }\n}\n```"
|
|
571
|
+
},
|
|
572
|
+
"AutoBeOpenApi.IPrerequisite": {
|
|
573
|
+
type: "object",
|
|
574
|
+
properties: {
|
|
575
|
+
endpoint: {
|
|
576
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IEndpoint",
|
|
577
|
+
description: "The API endpoint that must be called before the main operation.\n\nThis specifies the exact HTTP method and path of the prerequisite API.\nThe endpoint must be a valid operation defined elsewhere in the API\nspecification. Path parameters in the prerequisite endpoint can reference\nthe same parameters available in the main operation."
|
|
578
|
+
},
|
|
579
|
+
description: {
|
|
580
|
+
type: "string",
|
|
581
|
+
description: "Clear description of why this prerequisite is required.\n\nThis description should explain:\n\n- What validation or check this prerequisite performs\n- What state or condition must be satisfied\n- What happens if this prerequisite fails\n- Any specific data from the prerequisite used by the main operation\n\nThe description helps developers understand the dependency relationship\nand aids in debugging when prerequisites fail.\n\nGuidelines for good descriptions:\n\n- Be specific about the requirement (e.g., \"must be in 'active' state\")\n- Explain business logic constraints (e.g., \"budget must not be exceeded\")\n- Explain data dependencies (e.g., \"provides pricing information needed\")\n- Keep it concise but complete\n\n> MUST be written in English. Never use other languages."
|
|
582
|
+
}
|
|
583
|
+
},
|
|
584
|
+
required: [
|
|
585
|
+
"endpoint",
|
|
586
|
+
"description"
|
|
587
|
+
],
|
|
588
|
+
description: "Prerequisite API operation dependency.\n\n`IPrerequisite` defines a dependency relationship between API operations,\nspecifying that certain endpoints must be successfully called before the\ncurrent operation can proceed. This ensures proper resource validation,\nstate checking, and data availability in complex API workflows.\n\n## CRITICAL WARNING: Authentication is NOT a Prerequisite\n\n**NEVER use prerequisites for authentication or authorization checks!**\n\nPrerequisites are ONLY for business logic dependencies such as:\n\n- Checking if a resource exists\n- Verifying resource state\n- Loading required data\n\nDo NOT create prerequisites for:\n\n- Login/authentication endpoints\n- Token validation\n- Permission checks\n- User authorization verification\n\nAuthentication is handled separately via the `authorizationActor` field on\nthe operation itself. Mixing authentication with business prerequisites\ncreates confusion and incorrect test scenarios.\n\n## Core Concept\n\nPrerequisites create an execution dependency graph for API operations. They\nexplicitly declare which APIs must succeed before attempting the current\noperation, preventing invalid states and ensuring data consistency.\n\n## Structure\n\nEach prerequisite consists of:\n\n1. **endpoint**: The API endpoint that must be called first\n2. **description**: Clear explanation of why this prerequisite is required\n\n## Common Use Cases\n\n### 1. Resource Existence Validation\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/users/{userId}\", \"method\": \"get\" },\n \"description\": \"User must exist before updating their profile\"\n}\n```\n\n### 2. Parent-Child Relationships\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/posts/{postId}\", \"method\": \"get\" },\n \"description\": \"Post must exist before adding comments\"\n}\n```\n\n### 3. State Prerequisites\n\n```typescript\n{\n \"endpoint\": { \"path\": \"/orders/{orderId}/status\", \"method\": \"get\" },\n \"description\": \"Order must be in 'confirmed' state before shipping\"\n}\n```\n\n### 4. Business Logic Dependencies\n\n```typescript\n{\n \"endpoint\": {\n \"path\": \"/inventory/{productId}/stock\",\n \"method\": \"get\"\n },\n \"description\": \"Product must have sufficient stock before creating order\"\n}\n```\n\n## Implementation Guidelines\n\n1. **Clear Descriptions**: Always explain WHY the prerequisite is needed\n2. **Minimal Dependencies**: Only include truly necessary prerequisites\n3. **Logical Order**: If multiple prerequisites exist, order them logically\n4. **Error Context**: Description should help understand failure scenarios\n5. **No Authentication**: Prerequisites must NEVER be authentication checks\n\n## Test Generation Usage\n\nThe Test Agent utilizes prerequisites to:\n\n- Set up test data in the correct sequence\n- Generate realistic test scenarios\n- Create both positive and negative test cases\n- Ensure proper cleanup in reverse dependency order\n\n## Best Practices\n\n- Keep prerequisite chains as short as possible for performance\n- Consider caching prerequisite results when safe to do so\n- Ensure prerequisite descriptions are specific, not generic\n- Validate that circular dependencies don't exist\n- Document any side effects of prerequisite calls\n- NEVER use for authentication/authorization validation"
|
|
589
|
+
},
|
|
590
|
+
"AutoBeOpenApi.IEndpoint": {
|
|
591
|
+
type: "object",
|
|
592
|
+
properties: {
|
|
593
|
+
path: {
|
|
594
|
+
type: "string",
|
|
595
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
|
|
596
|
+
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)"
|
|
597
|
+
},
|
|
598
|
+
method: {
|
|
599
|
+
oneOf: [
|
|
600
|
+
{
|
|
601
|
+
"const": "get"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"const": "post"
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"const": "put"
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"const": "delete"
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"const": "patch"
|
|
614
|
+
}
|
|
615
|
+
],
|
|
616
|
+
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"
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
required: [
|
|
620
|
+
"path",
|
|
621
|
+
"method"
|
|
622
|
+
],
|
|
623
|
+
description: "API endpoint information."
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
},
|
|
627
|
+
functions: [
|
|
628
|
+
{
|
|
629
|
+
name: "process",
|
|
630
|
+
async: false,
|
|
631
|
+
parameters: [
|
|
632
|
+
{
|
|
633
|
+
name: "props",
|
|
634
|
+
description: " Request containing either preliminary data request or complete\ntask",
|
|
635
|
+
required: true,
|
|
636
|
+
schema: {
|
|
637
|
+
$ref: "#/components/schemas/IAutoBeInterfaceOperationReviewApplication.IProps"
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
],
|
|
641
|
+
description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations."
|
|
642
|
+
}
|
|
643
|
+
]
|
|
644
|
+
},
|
|
645
|
+
source: SOURCE,
|
|
646
|
+
kinds: ["analysisFiles", "prismaSchemas"],
|
|
647
|
+
state: ctx.state(),
|
|
648
|
+
});
|
|
649
|
+
return yield preliminary.orchestrate(ctx, (out) => __awaiter(this, void 0, void 0, function* () {
|
|
650
|
+
var _a, _b;
|
|
60
651
|
const pointer = {
|
|
61
652
|
value: null,
|
|
62
653
|
};
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
histories: (0, transformInterfaceOperationsReviewHistories_1.transformInterfaceOperationsReviewHistories)(ctx, operations),
|
|
66
|
-
controller: createReviewController({
|
|
654
|
+
const result = yield ctx.conversate(Object.assign({ source: SOURCE, controller: createReviewController({
|
|
655
|
+
preliminary,
|
|
67
656
|
model: ctx.model,
|
|
68
657
|
prismaSchemas: files,
|
|
69
658
|
build: (next) => {
|
|
70
659
|
pointer.value = next;
|
|
71
660
|
},
|
|
72
|
-
}),
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
});
|
|
76
|
-
if (pointer.value
|
|
77
|
-
|
|
78
|
-
|
|
661
|
+
}), enforceFunctionCall: false }, (0, transformInterfaceOperationReviewHistory_1.transformInterfaceOperationReviewHistory)({
|
|
662
|
+
preliminary,
|
|
663
|
+
operations,
|
|
664
|
+
})));
|
|
665
|
+
if (pointer.value !== null) {
|
|
666
|
+
const content = pointer.value.content.map((op) => (Object.assign(Object.assign({}, op), { authorizationType: null })));
|
|
667
|
+
ctx.dispatch({
|
|
668
|
+
type: SOURCE,
|
|
669
|
+
id: (0, uuid_1.v7)(),
|
|
670
|
+
operations: content,
|
|
671
|
+
review: pointer.value.think.review,
|
|
672
|
+
plan: pointer.value.think.plan,
|
|
673
|
+
content,
|
|
674
|
+
metric: result.metric,
|
|
675
|
+
tokenUsage: result.tokenUsage,
|
|
676
|
+
created_at: new Date().toISOString(),
|
|
677
|
+
step: (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
|
|
678
|
+
total: progress.total,
|
|
679
|
+
completed: ++progress.completed,
|
|
680
|
+
});
|
|
681
|
+
return out(result)(content);
|
|
79
682
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
type: "interfaceOperationReview",
|
|
83
|
-
id: (0, uuid_1.v7)(),
|
|
84
|
-
operations: content,
|
|
85
|
-
review: pointer.value.think.review,
|
|
86
|
-
plan: pointer.value.think.plan,
|
|
87
|
-
content,
|
|
88
|
-
metric,
|
|
89
|
-
tokenUsage,
|
|
90
|
-
created_at: new Date().toISOString(),
|
|
91
|
-
step: (_c = (_b = ctx.state().analyze) === null || _b === void 0 ? void 0 : _b.step) !== null && _c !== void 0 ? _c : 0,
|
|
92
|
-
total: progress.total,
|
|
93
|
-
completed: ++progress.completed,
|
|
94
|
-
});
|
|
95
|
-
return content;
|
|
96
|
-
}
|
|
97
|
-
catch (_d) {
|
|
98
|
-
++progress.completed;
|
|
99
|
-
return [];
|
|
100
|
-
}
|
|
683
|
+
return out(result)(null);
|
|
684
|
+
}));
|
|
101
685
|
});
|
|
102
686
|
}
|
|
103
687
|
function createReviewController(props) {
|
|
104
688
|
const validate = (next) => {
|
|
105
|
-
const result = (() => { const
|
|
689
|
+
const result = (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); 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 => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("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 _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = 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 _iu0 = input => (() => {
|
|
690
|
+
if ("getAnalysisFiles" === input.type)
|
|
691
|
+
return _io1(input);
|
|
692
|
+
else if ("getPrismaSchemas" === input.type)
|
|
693
|
+
return _io2(input);
|
|
694
|
+
else if ("complete" === input.type)
|
|
695
|
+
return _io3(input);
|
|
696
|
+
else
|
|
697
|
+
return false;
|
|
698
|
+
})(); const _iu1 = input => (() => {
|
|
106
699
|
if ("number" === input.type)
|
|
107
|
-
return
|
|
700
|
+
return _io8(input);
|
|
108
701
|
else if ("integer" === input.type)
|
|
109
|
-
return
|
|
702
|
+
return _io7(input);
|
|
110
703
|
else if ("string" === input.type)
|
|
111
|
-
return
|
|
704
|
+
return _io9(input);
|
|
112
705
|
else
|
|
113
706
|
return false;
|
|
114
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
707
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
708
|
+
path: _path + ".thinking",
|
|
709
|
+
expected: "string",
|
|
710
|
+
value: input.thinking
|
|
711
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
712
|
+
path: _path + ".request",
|
|
713
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
714
|
+
value: input.request
|
|
715
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
716
|
+
path: _path + ".request",
|
|
717
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
718
|
+
value: input.request
|
|
719
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
720
|
+
path: _path + ".type",
|
|
721
|
+
expected: "\"getAnalysisFiles\"",
|
|
722
|
+
value: input.type
|
|
723
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
724
|
+
path: _path + ".fileNames",
|
|
725
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
726
|
+
value: input.fileNames
|
|
727
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
728
|
+
path: _path + ".fileNames",
|
|
729
|
+
expected: "Array<> & MinItems<1>",
|
|
730
|
+
value: input.fileNames
|
|
731
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
732
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
733
|
+
expected: "string",
|
|
734
|
+
value: elem
|
|
735
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
736
|
+
path: _path + ".fileNames",
|
|
737
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
738
|
+
value: input.fileNames
|
|
739
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
740
|
+
path: _path + ".type",
|
|
741
|
+
expected: "\"getPrismaSchemas\"",
|
|
742
|
+
value: input.type
|
|
743
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
744
|
+
path: _path + ".schemaNames",
|
|
745
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
746
|
+
value: input.schemaNames
|
|
747
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
748
|
+
path: _path + ".schemaNames",
|
|
749
|
+
expected: "Array<> & MinItems<1>",
|
|
750
|
+
value: input.schemaNames
|
|
751
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
752
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
753
|
+
expected: "string",
|
|
754
|
+
value: elem
|
|
755
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
756
|
+
path: _path + ".schemaNames",
|
|
757
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
758
|
+
value: input.schemaNames
|
|
759
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
760
|
+
path: _path + ".type",
|
|
761
|
+
expected: "\"complete\"",
|
|
762
|
+
value: input.type
|
|
763
|
+
}), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
|
|
115
764
|
path: _path + ".think",
|
|
116
|
-
expected: "
|
|
765
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
117
766
|
value: input.think
|
|
118
|
-
})) &&
|
|
767
|
+
})) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
|
|
119
768
|
path: _path + ".think",
|
|
120
|
-
expected: "
|
|
769
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
121
770
|
value: input.think
|
|
122
771
|
}), (Array.isArray(input.content) || _report(_exceptionable, {
|
|
123
772
|
path: _path + ".content",
|
|
124
773
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
125
774
|
value: input.content
|
|
126
|
-
})) && input.content.map((elem,
|
|
127
|
-
path: _path + ".content[" +
|
|
775
|
+
})) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
776
|
+
path: _path + ".content[" + _index9 + "]",
|
|
128
777
|
expected: "AutoBeOpenApi.IOperation",
|
|
129
778
|
value: elem
|
|
130
|
-
})) &&
|
|
131
|
-
path: _path + ".content[" +
|
|
779
|
+
})) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
780
|
+
path: _path + ".content[" + _index9 + "]",
|
|
132
781
|
expected: "AutoBeOpenApi.IOperation",
|
|
133
782
|
value: elem
|
|
134
783
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
135
784
|
path: _path + ".content",
|
|
136
785
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
137
786
|
value: input.content
|
|
138
|
-
})].every(flag => flag); const
|
|
787
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
|
|
139
788
|
path: _path + ".review",
|
|
140
789
|
expected: "string",
|
|
141
790
|
value: input.review
|
|
@@ -143,7 +792,7 @@ function createReviewController(props) {
|
|
|
143
792
|
path: _path + ".plan",
|
|
144
793
|
expected: "string",
|
|
145
794
|
value: input.plan
|
|
146
|
-
})].every(flag => flag); const
|
|
795
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
147
796
|
path: _path + ".specification",
|
|
148
797
|
expected: "string",
|
|
149
798
|
value: input.specification
|
|
@@ -163,12 +812,12 @@ function createReviewController(props) {
|
|
|
163
812
|
path: _path + ".parameters",
|
|
164
813
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
165
814
|
value: input.parameters
|
|
166
|
-
})) && input.parameters.map((elem,
|
|
167
|
-
path: _path + ".parameters[" +
|
|
815
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
816
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
168
817
|
expected: "AutoBeOpenApi.IParameter",
|
|
169
818
|
value: elem
|
|
170
|
-
})) &&
|
|
171
|
-
path: _path + ".parameters[" +
|
|
819
|
+
})) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
820
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
172
821
|
expected: "AutoBeOpenApi.IParameter",
|
|
173
822
|
value: elem
|
|
174
823
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -179,7 +828,7 @@ function createReviewController(props) {
|
|
|
179
828
|
path: _path + ".requestBody",
|
|
180
829
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
181
830
|
value: input.requestBody
|
|
182
|
-
})) &&
|
|
831
|
+
})) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
183
832
|
path: _path + ".requestBody",
|
|
184
833
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
185
834
|
value: input.requestBody
|
|
@@ -187,7 +836,7 @@ function createReviewController(props) {
|
|
|
187
836
|
path: _path + ".responseBody",
|
|
188
837
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
189
838
|
value: input.responseBody
|
|
190
|
-
})) &&
|
|
839
|
+
})) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
191
840
|
path: _path + ".responseBody",
|
|
192
841
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
193
842
|
value: input.responseBody
|
|
@@ -215,12 +864,12 @@ function createReviewController(props) {
|
|
|
215
864
|
path: _path + ".prerequisites",
|
|
216
865
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
217
866
|
value: input.prerequisites
|
|
218
|
-
})) && input.prerequisites.map((elem,
|
|
219
|
-
path: _path + ".prerequisites[" +
|
|
867
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
868
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
220
869
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
221
870
|
value: elem
|
|
222
|
-
})) &&
|
|
223
|
-
path: _path + ".prerequisites[" +
|
|
871
|
+
})) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
872
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
224
873
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
225
874
|
value: elem
|
|
226
875
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -239,7 +888,7 @@ function createReviewController(props) {
|
|
|
239
888
|
path: _path + ".method",
|
|
240
889
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
241
890
|
value: input.method
|
|
242
|
-
})].every(flag => flag); const
|
|
891
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
243
892
|
path: _path + ".name",
|
|
244
893
|
expected: "string & CamelCasePattern",
|
|
245
894
|
value: input.name
|
|
@@ -255,11 +904,11 @@ function createReviewController(props) {
|
|
|
255
904
|
path: _path + ".schema",
|
|
256
905
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
257
906
|
value: input.schema
|
|
258
|
-
})) &&
|
|
907
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
259
908
|
path: _path + ".schema",
|
|
260
909
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
261
910
|
value: input.schema
|
|
262
|
-
})].every(flag => flag); const
|
|
911
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
|
|
263
912
|
path: _path + ".minimum",
|
|
264
913
|
expected: "number & Type<\"int64\">",
|
|
265
914
|
value: input.minimum
|
|
@@ -299,7 +948,7 @@ function createReviewController(props) {
|
|
|
299
948
|
path: _path + ".type",
|
|
300
949
|
expected: "\"integer\"",
|
|
301
950
|
value: input.type
|
|
302
|
-
})].every(flag => flag); const
|
|
951
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
303
952
|
path: _path + ".minimum",
|
|
304
953
|
expected: "(number | undefined)",
|
|
305
954
|
value: input.minimum
|
|
@@ -327,7 +976,7 @@ function createReviewController(props) {
|
|
|
327
976
|
path: _path + ".type",
|
|
328
977
|
expected: "\"number\"",
|
|
329
978
|
value: input.type
|
|
330
|
-
})].every(flag => flag); const
|
|
979
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
331
980
|
path: _path + ".format",
|
|
332
981
|
expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
|
|
333
982
|
value: input.format
|
|
@@ -359,7 +1008,7 @@ function createReviewController(props) {
|
|
|
359
1008
|
path: _path + ".type",
|
|
360
1009
|
expected: "\"string\"",
|
|
361
1010
|
value: input.type
|
|
362
|
-
})].every(flag => flag); const
|
|
1011
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
363
1012
|
path: _path + ".description",
|
|
364
1013
|
expected: "string",
|
|
365
1014
|
value: input.description
|
|
@@ -367,7 +1016,7 @@ function createReviewController(props) {
|
|
|
367
1016
|
path: _path + ".typeName",
|
|
368
1017
|
expected: "string",
|
|
369
1018
|
value: input.typeName
|
|
370
|
-
})].every(flag => flag); const
|
|
1019
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
371
1020
|
path: _path + ".description",
|
|
372
1021
|
expected: "string",
|
|
373
1022
|
value: input.description
|
|
@@ -375,11 +1024,11 @@ function createReviewController(props) {
|
|
|
375
1024
|
path: _path + ".typeName",
|
|
376
1025
|
expected: "string",
|
|
377
1026
|
value: input.typeName
|
|
378
|
-
})].every(flag => flag); const
|
|
1027
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
379
1028
|
path: _path + ".endpoint",
|
|
380
1029
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
381
1030
|
value: input.endpoint
|
|
382
|
-
})) &&
|
|
1031
|
+
})) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
383
1032
|
path: _path + ".endpoint",
|
|
384
1033
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
385
1034
|
value: input.endpoint
|
|
@@ -387,7 +1036,7 @@ function createReviewController(props) {
|
|
|
387
1036
|
path: _path + ".description",
|
|
388
1037
|
expected: "string",
|
|
389
1038
|
value: input.description
|
|
390
|
-
})].every(flag => flag); const
|
|
1039
|
+
})].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
391
1040
|
path: _path + ".path",
|
|
392
1041
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
393
1042
|
value: input.path
|
|
@@ -400,12 +1049,25 @@ function createReviewController(props) {
|
|
|
400
1049
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
401
1050
|
value: input.method
|
|
402
1051
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
1052
|
+
if ("getAnalysisFiles" === input.type)
|
|
1053
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
1054
|
+
else if ("getPrismaSchemas" === input.type)
|
|
1055
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
1056
|
+
else if ("complete" === input.type)
|
|
1057
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
1058
|
+
else
|
|
1059
|
+
return _report(_exceptionable, {
|
|
1060
|
+
path: _path,
|
|
1061
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
|
|
1062
|
+
value: input
|
|
1063
|
+
});
|
|
1064
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
403
1065
|
if ("number" === input.type)
|
|
404
|
-
return
|
|
1066
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
405
1067
|
else if ("integer" === input.type)
|
|
406
|
-
return
|
|
1068
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
407
1069
|
else if ("string" === input.type)
|
|
408
|
-
return
|
|
1070
|
+
return _vo9(input, _path, true && _exceptionable);
|
|
409
1071
|
else
|
|
410
1072
|
return _report(_exceptionable, {
|
|
411
1073
|
path: _path,
|
|
@@ -418,11 +1080,11 @@ function createReviewController(props) {
|
|
|
418
1080
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
419
1081
|
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
420
1082
|
path: _path + "",
|
|
421
|
-
expected: "
|
|
1083
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
422
1084
|
value: input
|
|
423
1085
|
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
424
1086
|
path: _path + "",
|
|
425
|
-
expected: "
|
|
1087
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
426
1088
|
value: input
|
|
427
1089
|
}))(input, "$input", true);
|
|
428
1090
|
const success = 0 === errors.length;
|
|
@@ -442,10 +1104,15 @@ function createReviewController(props) {
|
|
|
442
1104
|
}; })()(next);
|
|
443
1105
|
if (result.success === false)
|
|
444
1106
|
return result;
|
|
1107
|
+
else if (result.data.request.type !== "complete")
|
|
1108
|
+
return props.preliminary.validate({
|
|
1109
|
+
thinking: result.data.thinking,
|
|
1110
|
+
request: result.data.request,
|
|
1111
|
+
});
|
|
445
1112
|
const errors = [];
|
|
446
1113
|
OperationValidator_1.OperationValidator.validate({
|
|
447
|
-
path: "$input.content",
|
|
448
|
-
operations: result.data.content,
|
|
1114
|
+
path: "$input.request.content",
|
|
1115
|
+
operations: result.data.request.content,
|
|
449
1116
|
errors,
|
|
450
1117
|
});
|
|
451
1118
|
if (errors.length !== 0)
|
|
@@ -463,11 +1130,12 @@ function createReviewController(props) {
|
|
|
463
1130
|
: "claude"](validate);
|
|
464
1131
|
return {
|
|
465
1132
|
protocol: "class",
|
|
466
|
-
name:
|
|
1133
|
+
name: SOURCE,
|
|
467
1134
|
application,
|
|
468
1135
|
execute: {
|
|
469
|
-
|
|
470
|
-
|
|
1136
|
+
process: (next) => {
|
|
1137
|
+
if (next.request.type === "complete")
|
|
1138
|
+
props.build(next.request);
|
|
471
1139
|
},
|
|
472
1140
|
},
|
|
473
1141
|
};
|
|
@@ -483,31 +1151,123 @@ const collection = {
|
|
|
483
1151
|
},
|
|
484
1152
|
functions: [
|
|
485
1153
|
{
|
|
486
|
-
name: "
|
|
1154
|
+
name: "process",
|
|
487
1155
|
parameters: {
|
|
488
|
-
description: "
|
|
1156
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationReviewApplication.IProps}",
|
|
489
1157
|
type: "object",
|
|
490
1158
|
properties: {
|
|
491
|
-
|
|
492
|
-
description: "
|
|
493
|
-
|
|
1159
|
+
thinking: {
|
|
1160
|
+
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.",
|
|
1161
|
+
type: "string"
|
|
494
1162
|
},
|
|
495
|
-
|
|
496
|
-
description: "
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
1163
|
+
request: {
|
|
1164
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls.",
|
|
1165
|
+
anyOf: [
|
|
1166
|
+
{
|
|
1167
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
1168
|
+
},
|
|
1169
|
+
{
|
|
1170
|
+
$ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
$ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
1174
|
+
}
|
|
1175
|
+
],
|
|
1176
|
+
"x-discriminator": {
|
|
1177
|
+
propertyName: "type",
|
|
1178
|
+
mapping: {
|
|
1179
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
1180
|
+
getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
|
|
1181
|
+
complete: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
1182
|
+
}
|
|
500
1183
|
}
|
|
501
1184
|
}
|
|
502
1185
|
},
|
|
503
1186
|
required: [
|
|
504
|
-
"
|
|
505
|
-
"
|
|
1187
|
+
"thinking",
|
|
1188
|
+
"request"
|
|
506
1189
|
],
|
|
507
1190
|
additionalProperties: false,
|
|
508
1191
|
$defs: {
|
|
509
|
-
|
|
510
|
-
description: "
|
|
1192
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
1193
|
+
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.",
|
|
1194
|
+
type: "object",
|
|
1195
|
+
properties: {
|
|
1196
|
+
type: {
|
|
1197
|
+
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.",
|
|
1198
|
+
type: "string",
|
|
1199
|
+
"enum": [
|
|
1200
|
+
"getAnalysisFiles"
|
|
1201
|
+
]
|
|
1202
|
+
},
|
|
1203
|
+
fileNames: {
|
|
1204
|
+
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",
|
|
1205
|
+
type: "array",
|
|
1206
|
+
items: {
|
|
1207
|
+
type: "string"
|
|
1208
|
+
}
|
|
1209
|
+
}
|
|
1210
|
+
},
|
|
1211
|
+
required: [
|
|
1212
|
+
"type",
|
|
1213
|
+
"fileNames"
|
|
1214
|
+
]
|
|
1215
|
+
},
|
|
1216
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
1217
|
+
description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations.",
|
|
1218
|
+
type: "object",
|
|
1219
|
+
properties: {
|
|
1220
|
+
type: {
|
|
1221
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas.",
|
|
1222
|
+
type: "string",
|
|
1223
|
+
"enum": [
|
|
1224
|
+
"getPrismaSchemas"
|
|
1225
|
+
]
|
|
1226
|
+
},
|
|
1227
|
+
schemaNames: {
|
|
1228
|
+
description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls.\n\n\n@minItems 1",
|
|
1229
|
+
type: "array",
|
|
1230
|
+
items: {
|
|
1231
|
+
type: "string"
|
|
1232
|
+
}
|
|
1233
|
+
}
|
|
1234
|
+
},
|
|
1235
|
+
required: [
|
|
1236
|
+
"type",
|
|
1237
|
+
"schemaNames"
|
|
1238
|
+
]
|
|
1239
|
+
},
|
|
1240
|
+
"IAutoBeInterfaceOperationReviewApplication.IComplete": {
|
|
1241
|
+
description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations.",
|
|
1242
|
+
type: "object",
|
|
1243
|
+
properties: {
|
|
1244
|
+
type: {
|
|
1245
|
+
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.",
|
|
1246
|
+
type: "string",
|
|
1247
|
+
"enum": [
|
|
1248
|
+
"complete"
|
|
1249
|
+
]
|
|
1250
|
+
},
|
|
1251
|
+
think: {
|
|
1252
|
+
description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
|
|
1253
|
+
$ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IThink"
|
|
1254
|
+
},
|
|
1255
|
+
content: {
|
|
1256
|
+
description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
|
|
1257
|
+
type: "array",
|
|
1258
|
+
items: {
|
|
1259
|
+
$ref: "#/$defs/AutoBeOpenApi.IOperation"
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
},
|
|
1263
|
+
required: [
|
|
1264
|
+
"type",
|
|
1265
|
+
"think",
|
|
1266
|
+
"content"
|
|
1267
|
+
]
|
|
1268
|
+
},
|
|
1269
|
+
"IAutoBeInterfaceOperationReviewApplication.IThink": {
|
|
1270
|
+
description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations.",
|
|
511
1271
|
type: "object",
|
|
512
1272
|
properties: {
|
|
513
1273
|
review: {
|
|
@@ -892,41 +1652,106 @@ const collection = {
|
|
|
892
1652
|
}
|
|
893
1653
|
}
|
|
894
1654
|
},
|
|
895
|
-
description: "
|
|
896
|
-
validate: (() => { const
|
|
1655
|
+
description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations.",
|
|
1656
|
+
validate: (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); 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 => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("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 _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = 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 _iu0 = input => (() => {
|
|
1657
|
+
if ("getAnalysisFiles" === input.type)
|
|
1658
|
+
return _io1(input);
|
|
1659
|
+
else if ("getPrismaSchemas" === input.type)
|
|
1660
|
+
return _io2(input);
|
|
1661
|
+
else if ("complete" === input.type)
|
|
1662
|
+
return _io3(input);
|
|
1663
|
+
else
|
|
1664
|
+
return false;
|
|
1665
|
+
})(); const _iu1 = input => (() => {
|
|
897
1666
|
if ("number" === input.type)
|
|
898
|
-
return
|
|
1667
|
+
return _io8(input);
|
|
899
1668
|
else if ("integer" === input.type)
|
|
900
|
-
return
|
|
1669
|
+
return _io7(input);
|
|
901
1670
|
else if ("string" === input.type)
|
|
902
|
-
return
|
|
1671
|
+
return _io9(input);
|
|
903
1672
|
else
|
|
904
1673
|
return false;
|
|
905
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
1674
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
1675
|
+
path: _path + ".thinking",
|
|
1676
|
+
expected: "string",
|
|
1677
|
+
value: input.thinking
|
|
1678
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
1679
|
+
path: _path + ".request",
|
|
1680
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
1681
|
+
value: input.request
|
|
1682
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
1683
|
+
path: _path + ".request",
|
|
1684
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
1685
|
+
value: input.request
|
|
1686
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
1687
|
+
path: _path + ".type",
|
|
1688
|
+
expected: "\"getAnalysisFiles\"",
|
|
1689
|
+
value: input.type
|
|
1690
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
1691
|
+
path: _path + ".fileNames",
|
|
1692
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1693
|
+
value: input.fileNames
|
|
1694
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
1695
|
+
path: _path + ".fileNames",
|
|
1696
|
+
expected: "Array<> & MinItems<1>",
|
|
1697
|
+
value: input.fileNames
|
|
1698
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
1699
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
1700
|
+
expected: "string",
|
|
1701
|
+
value: elem
|
|
1702
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1703
|
+
path: _path + ".fileNames",
|
|
1704
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1705
|
+
value: input.fileNames
|
|
1706
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
1707
|
+
path: _path + ".type",
|
|
1708
|
+
expected: "\"getPrismaSchemas\"",
|
|
1709
|
+
value: input.type
|
|
1710
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
1711
|
+
path: _path + ".schemaNames",
|
|
1712
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1713
|
+
value: input.schemaNames
|
|
1714
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
1715
|
+
path: _path + ".schemaNames",
|
|
1716
|
+
expected: "Array<> & MinItems<1>",
|
|
1717
|
+
value: input.schemaNames
|
|
1718
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
1719
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
1720
|
+
expected: "string",
|
|
1721
|
+
value: elem
|
|
1722
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1723
|
+
path: _path + ".schemaNames",
|
|
1724
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1725
|
+
value: input.schemaNames
|
|
1726
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
1727
|
+
path: _path + ".type",
|
|
1728
|
+
expected: "\"complete\"",
|
|
1729
|
+
value: input.type
|
|
1730
|
+
}), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
|
|
906
1731
|
path: _path + ".think",
|
|
907
|
-
expected: "
|
|
1732
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
908
1733
|
value: input.think
|
|
909
|
-
})) &&
|
|
1734
|
+
})) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
|
|
910
1735
|
path: _path + ".think",
|
|
911
|
-
expected: "
|
|
1736
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
912
1737
|
value: input.think
|
|
913
1738
|
}), (Array.isArray(input.content) || _report(_exceptionable, {
|
|
914
1739
|
path: _path + ".content",
|
|
915
1740
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
916
1741
|
value: input.content
|
|
917
|
-
})) && input.content.map((elem,
|
|
918
|
-
path: _path + ".content[" +
|
|
1742
|
+
})) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1743
|
+
path: _path + ".content[" + _index9 + "]",
|
|
919
1744
|
expected: "AutoBeOpenApi.IOperation",
|
|
920
1745
|
value: elem
|
|
921
|
-
})) &&
|
|
922
|
-
path: _path + ".content[" +
|
|
1746
|
+
})) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1747
|
+
path: _path + ".content[" + _index9 + "]",
|
|
923
1748
|
expected: "AutoBeOpenApi.IOperation",
|
|
924
1749
|
value: elem
|
|
925
1750
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
926
1751
|
path: _path + ".content",
|
|
927
1752
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
928
1753
|
value: input.content
|
|
929
|
-
})].every(flag => flag); const
|
|
1754
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
|
|
930
1755
|
path: _path + ".review",
|
|
931
1756
|
expected: "string",
|
|
932
1757
|
value: input.review
|
|
@@ -934,7 +1759,7 @@ const collection = {
|
|
|
934
1759
|
path: _path + ".plan",
|
|
935
1760
|
expected: "string",
|
|
936
1761
|
value: input.plan
|
|
937
|
-
})].every(flag => flag); const
|
|
1762
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
938
1763
|
path: _path + ".specification",
|
|
939
1764
|
expected: "string",
|
|
940
1765
|
value: input.specification
|
|
@@ -954,12 +1779,12 @@ const collection = {
|
|
|
954
1779
|
path: _path + ".parameters",
|
|
955
1780
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
956
1781
|
value: input.parameters
|
|
957
|
-
})) && input.parameters.map((elem,
|
|
958
|
-
path: _path + ".parameters[" +
|
|
1782
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1783
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
959
1784
|
expected: "AutoBeOpenApi.IParameter",
|
|
960
1785
|
value: elem
|
|
961
|
-
})) &&
|
|
962
|
-
path: _path + ".parameters[" +
|
|
1786
|
+
})) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1787
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
963
1788
|
expected: "AutoBeOpenApi.IParameter",
|
|
964
1789
|
value: elem
|
|
965
1790
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -970,7 +1795,7 @@ const collection = {
|
|
|
970
1795
|
path: _path + ".requestBody",
|
|
971
1796
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
972
1797
|
value: input.requestBody
|
|
973
|
-
})) &&
|
|
1798
|
+
})) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
974
1799
|
path: _path + ".requestBody",
|
|
975
1800
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
976
1801
|
value: input.requestBody
|
|
@@ -978,7 +1803,7 @@ const collection = {
|
|
|
978
1803
|
path: _path + ".responseBody",
|
|
979
1804
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
980
1805
|
value: input.responseBody
|
|
981
|
-
})) &&
|
|
1806
|
+
})) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
982
1807
|
path: _path + ".responseBody",
|
|
983
1808
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
984
1809
|
value: input.responseBody
|
|
@@ -1006,12 +1831,12 @@ const collection = {
|
|
|
1006
1831
|
path: _path + ".prerequisites",
|
|
1007
1832
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
1008
1833
|
value: input.prerequisites
|
|
1009
|
-
})) && input.prerequisites.map((elem,
|
|
1010
|
-
path: _path + ".prerequisites[" +
|
|
1834
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1835
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1011
1836
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1012
1837
|
value: elem
|
|
1013
|
-
})) &&
|
|
1014
|
-
path: _path + ".prerequisites[" +
|
|
1838
|
+
})) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1839
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1015
1840
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1016
1841
|
value: elem
|
|
1017
1842
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -1030,7 +1855,7 @@ const collection = {
|
|
|
1030
1855
|
path: _path + ".method",
|
|
1031
1856
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1032
1857
|
value: input.method
|
|
1033
|
-
})].every(flag => flag); const
|
|
1858
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
1034
1859
|
path: _path + ".name",
|
|
1035
1860
|
expected: "string & CamelCasePattern",
|
|
1036
1861
|
value: input.name
|
|
@@ -1046,11 +1871,11 @@ const collection = {
|
|
|
1046
1871
|
path: _path + ".schema",
|
|
1047
1872
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1048
1873
|
value: input.schema
|
|
1049
|
-
})) &&
|
|
1874
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
1050
1875
|
path: _path + ".schema",
|
|
1051
1876
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1052
1877
|
value: input.schema
|
|
1053
|
-
})].every(flag => flag); const
|
|
1878
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
|
|
1054
1879
|
path: _path + ".minimum",
|
|
1055
1880
|
expected: "number & Type<\"int64\">",
|
|
1056
1881
|
value: input.minimum
|
|
@@ -1090,7 +1915,7 @@ const collection = {
|
|
|
1090
1915
|
path: _path + ".type",
|
|
1091
1916
|
expected: "\"integer\"",
|
|
1092
1917
|
value: input.type
|
|
1093
|
-
})].every(flag => flag); const
|
|
1918
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
1094
1919
|
path: _path + ".minimum",
|
|
1095
1920
|
expected: "(number | undefined)",
|
|
1096
1921
|
value: input.minimum
|
|
@@ -1118,7 +1943,7 @@ const collection = {
|
|
|
1118
1943
|
path: _path + ".type",
|
|
1119
1944
|
expected: "\"number\"",
|
|
1120
1945
|
value: input.type
|
|
1121
|
-
})].every(flag => flag); const
|
|
1946
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
1122
1947
|
path: _path + ".format",
|
|
1123
1948
|
expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
|
|
1124
1949
|
value: input.format
|
|
@@ -1150,7 +1975,7 @@ const collection = {
|
|
|
1150
1975
|
path: _path + ".type",
|
|
1151
1976
|
expected: "\"string\"",
|
|
1152
1977
|
value: input.type
|
|
1153
|
-
})].every(flag => flag); const
|
|
1978
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1154
1979
|
path: _path + ".description",
|
|
1155
1980
|
expected: "string",
|
|
1156
1981
|
value: input.description
|
|
@@ -1158,7 +1983,7 @@ const collection = {
|
|
|
1158
1983
|
path: _path + ".typeName",
|
|
1159
1984
|
expected: "string",
|
|
1160
1985
|
value: input.typeName
|
|
1161
|
-
})].every(flag => flag); const
|
|
1986
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1162
1987
|
path: _path + ".description",
|
|
1163
1988
|
expected: "string",
|
|
1164
1989
|
value: input.description
|
|
@@ -1166,11 +1991,11 @@ const collection = {
|
|
|
1166
1991
|
path: _path + ".typeName",
|
|
1167
1992
|
expected: "string",
|
|
1168
1993
|
value: input.typeName
|
|
1169
|
-
})].every(flag => flag); const
|
|
1994
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
1170
1995
|
path: _path + ".endpoint",
|
|
1171
1996
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1172
1997
|
value: input.endpoint
|
|
1173
|
-
})) &&
|
|
1998
|
+
})) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
1174
1999
|
path: _path + ".endpoint",
|
|
1175
2000
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1176
2001
|
value: input.endpoint
|
|
@@ -1178,7 +2003,7 @@ const collection = {
|
|
|
1178
2003
|
path: _path + ".description",
|
|
1179
2004
|
expected: "string",
|
|
1180
2005
|
value: input.description
|
|
1181
|
-
})].every(flag => flag); const
|
|
2006
|
+
})].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
1182
2007
|
path: _path + ".path",
|
|
1183
2008
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
1184
2009
|
value: input.path
|
|
@@ -1191,12 +2016,25 @@ const collection = {
|
|
|
1191
2016
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1192
2017
|
value: input.method
|
|
1193
2018
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
2019
|
+
if ("getAnalysisFiles" === input.type)
|
|
2020
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
2021
|
+
else if ("getPrismaSchemas" === input.type)
|
|
2022
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
2023
|
+
else if ("complete" === input.type)
|
|
2024
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
2025
|
+
else
|
|
2026
|
+
return _report(_exceptionable, {
|
|
2027
|
+
path: _path,
|
|
2028
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
|
|
2029
|
+
value: input
|
|
2030
|
+
});
|
|
2031
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
1194
2032
|
if ("number" === input.type)
|
|
1195
|
-
return
|
|
2033
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
1196
2034
|
else if ("integer" === input.type)
|
|
1197
|
-
return
|
|
2035
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
1198
2036
|
else if ("string" === input.type)
|
|
1199
|
-
return
|
|
2037
|
+
return _vo9(input, _path, true && _exceptionable);
|
|
1200
2038
|
else
|
|
1201
2039
|
return _report(_exceptionable, {
|
|
1202
2040
|
path: _path,
|
|
@@ -1209,11 +2047,11 @@ const collection = {
|
|
|
1209
2047
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
1210
2048
|
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
1211
2049
|
path: _path + "",
|
|
1212
|
-
expected: "
|
|
2050
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
1213
2051
|
value: input
|
|
1214
2052
|
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
1215
2053
|
path: _path + "",
|
|
1216
|
-
expected: "
|
|
2054
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
1217
2055
|
value: input
|
|
1218
2056
|
}))(input, "$input", true);
|
|
1219
2057
|
const success = 0 === errors.length;
|
|
@@ -1236,7 +2074,7 @@ const collection = {
|
|
|
1236
2074
|
};
|
|
1237
2075
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
1238
2076
|
validate: {
|
|
1239
|
-
|
|
2077
|
+
process: validate,
|
|
1240
2078
|
},
|
|
1241
2079
|
}), { equals: false }));
|
|
1242
2080
|
return application;
|
|
@@ -1250,31 +2088,116 @@ const collection = {
|
|
|
1250
2088
|
},
|
|
1251
2089
|
functions: [
|
|
1252
2090
|
{
|
|
1253
|
-
name: "
|
|
2091
|
+
name: "process",
|
|
1254
2092
|
parameters: {
|
|
1255
|
-
description: "
|
|
2093
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationReviewApplication.IProps}",
|
|
1256
2094
|
type: "object",
|
|
1257
2095
|
properties: {
|
|
1258
|
-
|
|
1259
|
-
description: "
|
|
1260
|
-
|
|
2096
|
+
thinking: {
|
|
2097
|
+
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.",
|
|
2098
|
+
type: "string"
|
|
1261
2099
|
},
|
|
1262
|
-
|
|
1263
|
-
description: "
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
2100
|
+
request: {
|
|
2101
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls.",
|
|
2102
|
+
oneOf: [
|
|
2103
|
+
{
|
|
2104
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
2105
|
+
},
|
|
2106
|
+
{
|
|
2107
|
+
$ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
|
|
2108
|
+
},
|
|
2109
|
+
{
|
|
2110
|
+
$ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
2111
|
+
}
|
|
2112
|
+
],
|
|
2113
|
+
discriminator: {
|
|
2114
|
+
propertyName: "type",
|
|
2115
|
+
mapping: {
|
|
2116
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
2117
|
+
getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
|
|
2118
|
+
complete: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
2119
|
+
}
|
|
1267
2120
|
}
|
|
1268
2121
|
}
|
|
1269
2122
|
},
|
|
1270
2123
|
required: [
|
|
1271
|
-
"
|
|
1272
|
-
"
|
|
2124
|
+
"thinking",
|
|
2125
|
+
"request"
|
|
1273
2126
|
],
|
|
1274
2127
|
additionalProperties: false,
|
|
1275
2128
|
$defs: {
|
|
1276
|
-
|
|
1277
|
-
description: "
|
|
2129
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
2130
|
+
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.",
|
|
2131
|
+
type: "object",
|
|
2132
|
+
properties: {
|
|
2133
|
+
type: {
|
|
2134
|
+
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.",
|
|
2135
|
+
"const": "getAnalysisFiles"
|
|
2136
|
+
},
|
|
2137
|
+
fileNames: {
|
|
2138
|
+
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.",
|
|
2139
|
+
type: "array",
|
|
2140
|
+
items: {
|
|
2141
|
+
type: "string"
|
|
2142
|
+
},
|
|
2143
|
+
minItems: 1
|
|
2144
|
+
}
|
|
2145
|
+
},
|
|
2146
|
+
required: [
|
|
2147
|
+
"type",
|
|
2148
|
+
"fileNames"
|
|
2149
|
+
]
|
|
2150
|
+
},
|
|
2151
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
2152
|
+
description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations.",
|
|
2153
|
+
type: "object",
|
|
2154
|
+
properties: {
|
|
2155
|
+
type: {
|
|
2156
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas.",
|
|
2157
|
+
"const": "getPrismaSchemas"
|
|
2158
|
+
},
|
|
2159
|
+
schemaNames: {
|
|
2160
|
+
description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls.",
|
|
2161
|
+
type: "array",
|
|
2162
|
+
items: {
|
|
2163
|
+
type: "string"
|
|
2164
|
+
},
|
|
2165
|
+
minItems: 1
|
|
2166
|
+
}
|
|
2167
|
+
},
|
|
2168
|
+
required: [
|
|
2169
|
+
"type",
|
|
2170
|
+
"schemaNames"
|
|
2171
|
+
]
|
|
2172
|
+
},
|
|
2173
|
+
"IAutoBeInterfaceOperationReviewApplication.IComplete": {
|
|
2174
|
+
description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations.",
|
|
2175
|
+
type: "object",
|
|
2176
|
+
properties: {
|
|
2177
|
+
type: {
|
|
2178
|
+
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.",
|
|
2179
|
+
"const": "complete"
|
|
2180
|
+
},
|
|
2181
|
+
think: {
|
|
2182
|
+
description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
|
|
2183
|
+
$ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IThink"
|
|
2184
|
+
},
|
|
2185
|
+
content: {
|
|
2186
|
+
description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
|
|
2187
|
+
type: "array",
|
|
2188
|
+
items: {
|
|
2189
|
+
$ref: "#/$defs/AutoBeOpenApi.IOperation"
|
|
2190
|
+
}
|
|
2191
|
+
}
|
|
2192
|
+
},
|
|
2193
|
+
required: [
|
|
2194
|
+
"type",
|
|
2195
|
+
"think",
|
|
2196
|
+
"content"
|
|
2197
|
+
]
|
|
2198
|
+
},
|
|
2199
|
+
"IAutoBeInterfaceOperationReviewApplication.IThink": {
|
|
2200
|
+
description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations.",
|
|
1278
2201
|
type: "object",
|
|
1279
2202
|
properties: {
|
|
1280
2203
|
review: {
|
|
@@ -1719,41 +2642,106 @@ const collection = {
|
|
|
1719
2642
|
}
|
|
1720
2643
|
}
|
|
1721
2644
|
},
|
|
1722
|
-
description: "
|
|
1723
|
-
validate: (() => { const
|
|
2645
|
+
description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations.",
|
|
2646
|
+
validate: (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); 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 => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("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 _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = 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 _iu0 = input => (() => {
|
|
2647
|
+
if ("getAnalysisFiles" === input.type)
|
|
2648
|
+
return _io1(input);
|
|
2649
|
+
else if ("getPrismaSchemas" === input.type)
|
|
2650
|
+
return _io2(input);
|
|
2651
|
+
else if ("complete" === input.type)
|
|
2652
|
+
return _io3(input);
|
|
2653
|
+
else
|
|
2654
|
+
return false;
|
|
2655
|
+
})(); const _iu1 = input => (() => {
|
|
1724
2656
|
if ("number" === input.type)
|
|
1725
|
-
return
|
|
2657
|
+
return _io8(input);
|
|
1726
2658
|
else if ("integer" === input.type)
|
|
1727
|
-
return
|
|
2659
|
+
return _io7(input);
|
|
1728
2660
|
else if ("string" === input.type)
|
|
1729
|
-
return
|
|
2661
|
+
return _io9(input);
|
|
1730
2662
|
else
|
|
1731
2663
|
return false;
|
|
1732
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
2664
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
2665
|
+
path: _path + ".thinking",
|
|
2666
|
+
expected: "string",
|
|
2667
|
+
value: input.thinking
|
|
2668
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
2669
|
+
path: _path + ".request",
|
|
2670
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
2671
|
+
value: input.request
|
|
2672
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
2673
|
+
path: _path + ".request",
|
|
2674
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
2675
|
+
value: input.request
|
|
2676
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
2677
|
+
path: _path + ".type",
|
|
2678
|
+
expected: "\"getAnalysisFiles\"",
|
|
2679
|
+
value: input.type
|
|
2680
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
2681
|
+
path: _path + ".fileNames",
|
|
2682
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2683
|
+
value: input.fileNames
|
|
2684
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
2685
|
+
path: _path + ".fileNames",
|
|
2686
|
+
expected: "Array<> & MinItems<1>",
|
|
2687
|
+
value: input.fileNames
|
|
2688
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
2689
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
2690
|
+
expected: "string",
|
|
2691
|
+
value: elem
|
|
2692
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2693
|
+
path: _path + ".fileNames",
|
|
2694
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2695
|
+
value: input.fileNames
|
|
2696
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
2697
|
+
path: _path + ".type",
|
|
2698
|
+
expected: "\"getPrismaSchemas\"",
|
|
2699
|
+
value: input.type
|
|
2700
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
2701
|
+
path: _path + ".schemaNames",
|
|
2702
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2703
|
+
value: input.schemaNames
|
|
2704
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
2705
|
+
path: _path + ".schemaNames",
|
|
2706
|
+
expected: "Array<> & MinItems<1>",
|
|
2707
|
+
value: input.schemaNames
|
|
2708
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
2709
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
2710
|
+
expected: "string",
|
|
2711
|
+
value: elem
|
|
2712
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2713
|
+
path: _path + ".schemaNames",
|
|
2714
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2715
|
+
value: input.schemaNames
|
|
2716
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
2717
|
+
path: _path + ".type",
|
|
2718
|
+
expected: "\"complete\"",
|
|
2719
|
+
value: input.type
|
|
2720
|
+
}), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
|
|
1733
2721
|
path: _path + ".think",
|
|
1734
|
-
expected: "
|
|
2722
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
1735
2723
|
value: input.think
|
|
1736
|
-
})) &&
|
|
2724
|
+
})) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
|
|
1737
2725
|
path: _path + ".think",
|
|
1738
|
-
expected: "
|
|
2726
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
1739
2727
|
value: input.think
|
|
1740
2728
|
}), (Array.isArray(input.content) || _report(_exceptionable, {
|
|
1741
2729
|
path: _path + ".content",
|
|
1742
2730
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
1743
2731
|
value: input.content
|
|
1744
|
-
})) && input.content.map((elem,
|
|
1745
|
-
path: _path + ".content[" +
|
|
2732
|
+
})) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2733
|
+
path: _path + ".content[" + _index9 + "]",
|
|
1746
2734
|
expected: "AutoBeOpenApi.IOperation",
|
|
1747
2735
|
value: elem
|
|
1748
|
-
})) &&
|
|
1749
|
-
path: _path + ".content[" +
|
|
2736
|
+
})) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2737
|
+
path: _path + ".content[" + _index9 + "]",
|
|
1750
2738
|
expected: "AutoBeOpenApi.IOperation",
|
|
1751
2739
|
value: elem
|
|
1752
2740
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
1753
2741
|
path: _path + ".content",
|
|
1754
2742
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
1755
2743
|
value: input.content
|
|
1756
|
-
})].every(flag => flag); const
|
|
2744
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
|
|
1757
2745
|
path: _path + ".review",
|
|
1758
2746
|
expected: "string",
|
|
1759
2747
|
value: input.review
|
|
@@ -1761,7 +2749,7 @@ const collection = {
|
|
|
1761
2749
|
path: _path + ".plan",
|
|
1762
2750
|
expected: "string",
|
|
1763
2751
|
value: input.plan
|
|
1764
|
-
})].every(flag => flag); const
|
|
2752
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
1765
2753
|
path: _path + ".specification",
|
|
1766
2754
|
expected: "string",
|
|
1767
2755
|
value: input.specification
|
|
@@ -1781,12 +2769,12 @@ const collection = {
|
|
|
1781
2769
|
path: _path + ".parameters",
|
|
1782
2770
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
1783
2771
|
value: input.parameters
|
|
1784
|
-
})) && input.parameters.map((elem,
|
|
1785
|
-
path: _path + ".parameters[" +
|
|
2772
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2773
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
1786
2774
|
expected: "AutoBeOpenApi.IParameter",
|
|
1787
2775
|
value: elem
|
|
1788
|
-
})) &&
|
|
1789
|
-
path: _path + ".parameters[" +
|
|
2776
|
+
})) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2777
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
1790
2778
|
expected: "AutoBeOpenApi.IParameter",
|
|
1791
2779
|
value: elem
|
|
1792
2780
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -1797,7 +2785,7 @@ const collection = {
|
|
|
1797
2785
|
path: _path + ".requestBody",
|
|
1798
2786
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
1799
2787
|
value: input.requestBody
|
|
1800
|
-
})) &&
|
|
2788
|
+
})) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
1801
2789
|
path: _path + ".requestBody",
|
|
1802
2790
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
1803
2791
|
value: input.requestBody
|
|
@@ -1805,7 +2793,7 @@ const collection = {
|
|
|
1805
2793
|
path: _path + ".responseBody",
|
|
1806
2794
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
1807
2795
|
value: input.responseBody
|
|
1808
|
-
})) &&
|
|
2796
|
+
})) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
1809
2797
|
path: _path + ".responseBody",
|
|
1810
2798
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
1811
2799
|
value: input.responseBody
|
|
@@ -1833,12 +2821,12 @@ const collection = {
|
|
|
1833
2821
|
path: _path + ".prerequisites",
|
|
1834
2822
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
1835
2823
|
value: input.prerequisites
|
|
1836
|
-
})) && input.prerequisites.map((elem,
|
|
1837
|
-
path: _path + ".prerequisites[" +
|
|
2824
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2825
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1838
2826
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1839
2827
|
value: elem
|
|
1840
|
-
})) &&
|
|
1841
|
-
path: _path + ".prerequisites[" +
|
|
2828
|
+
})) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2829
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1842
2830
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1843
2831
|
value: elem
|
|
1844
2832
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -1857,7 +2845,7 @@ const collection = {
|
|
|
1857
2845
|
path: _path + ".method",
|
|
1858
2846
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1859
2847
|
value: input.method
|
|
1860
|
-
})].every(flag => flag); const
|
|
2848
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
1861
2849
|
path: _path + ".name",
|
|
1862
2850
|
expected: "string & CamelCasePattern",
|
|
1863
2851
|
value: input.name
|
|
@@ -1873,11 +2861,11 @@ const collection = {
|
|
|
1873
2861
|
path: _path + ".schema",
|
|
1874
2862
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1875
2863
|
value: input.schema
|
|
1876
|
-
})) &&
|
|
2864
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
1877
2865
|
path: _path + ".schema",
|
|
1878
2866
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1879
2867
|
value: input.schema
|
|
1880
|
-
})].every(flag => flag); const
|
|
2868
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
|
|
1881
2869
|
path: _path + ".minimum",
|
|
1882
2870
|
expected: "number & Type<\"int64\">",
|
|
1883
2871
|
value: input.minimum
|
|
@@ -1917,7 +2905,7 @@ const collection = {
|
|
|
1917
2905
|
path: _path + ".type",
|
|
1918
2906
|
expected: "\"integer\"",
|
|
1919
2907
|
value: input.type
|
|
1920
|
-
})].every(flag => flag); const
|
|
2908
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
1921
2909
|
path: _path + ".minimum",
|
|
1922
2910
|
expected: "(number | undefined)",
|
|
1923
2911
|
value: input.minimum
|
|
@@ -1945,7 +2933,7 @@ const collection = {
|
|
|
1945
2933
|
path: _path + ".type",
|
|
1946
2934
|
expected: "\"number\"",
|
|
1947
2935
|
value: input.type
|
|
1948
|
-
})].every(flag => flag); const
|
|
2936
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
1949
2937
|
path: _path + ".format",
|
|
1950
2938
|
expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
|
|
1951
2939
|
value: input.format
|
|
@@ -1977,7 +2965,7 @@ const collection = {
|
|
|
1977
2965
|
path: _path + ".type",
|
|
1978
2966
|
expected: "\"string\"",
|
|
1979
2967
|
value: input.type
|
|
1980
|
-
})].every(flag => flag); const
|
|
2968
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1981
2969
|
path: _path + ".description",
|
|
1982
2970
|
expected: "string",
|
|
1983
2971
|
value: input.description
|
|
@@ -1985,7 +2973,7 @@ const collection = {
|
|
|
1985
2973
|
path: _path + ".typeName",
|
|
1986
2974
|
expected: "string",
|
|
1987
2975
|
value: input.typeName
|
|
1988
|
-
})].every(flag => flag); const
|
|
2976
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1989
2977
|
path: _path + ".description",
|
|
1990
2978
|
expected: "string",
|
|
1991
2979
|
value: input.description
|
|
@@ -1993,11 +2981,11 @@ const collection = {
|
|
|
1993
2981
|
path: _path + ".typeName",
|
|
1994
2982
|
expected: "string",
|
|
1995
2983
|
value: input.typeName
|
|
1996
|
-
})].every(flag => flag); const
|
|
2984
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
1997
2985
|
path: _path + ".endpoint",
|
|
1998
2986
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1999
2987
|
value: input.endpoint
|
|
2000
|
-
})) &&
|
|
2988
|
+
})) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
2001
2989
|
path: _path + ".endpoint",
|
|
2002
2990
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
2003
2991
|
value: input.endpoint
|
|
@@ -2005,7 +2993,7 @@ const collection = {
|
|
|
2005
2993
|
path: _path + ".description",
|
|
2006
2994
|
expected: "string",
|
|
2007
2995
|
value: input.description
|
|
2008
|
-
})].every(flag => flag); const
|
|
2996
|
+
})].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
2009
2997
|
path: _path + ".path",
|
|
2010
2998
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
2011
2999
|
value: input.path
|
|
@@ -2018,12 +3006,25 @@ const collection = {
|
|
|
2018
3006
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
2019
3007
|
value: input.method
|
|
2020
3008
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
3009
|
+
if ("getAnalysisFiles" === input.type)
|
|
3010
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
3011
|
+
else if ("getPrismaSchemas" === input.type)
|
|
3012
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
3013
|
+
else if ("complete" === input.type)
|
|
3014
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
3015
|
+
else
|
|
3016
|
+
return _report(_exceptionable, {
|
|
3017
|
+
path: _path,
|
|
3018
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
|
|
3019
|
+
value: input
|
|
3020
|
+
});
|
|
3021
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
2021
3022
|
if ("number" === input.type)
|
|
2022
|
-
return
|
|
3023
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
2023
3024
|
else if ("integer" === input.type)
|
|
2024
|
-
return
|
|
3025
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
2025
3026
|
else if ("string" === input.type)
|
|
2026
|
-
return
|
|
3027
|
+
return _vo9(input, _path, true && _exceptionable);
|
|
2027
3028
|
else
|
|
2028
3029
|
return _report(_exceptionable, {
|
|
2029
3030
|
path: _path,
|
|
@@ -2036,11 +3037,11 @@ const collection = {
|
|
|
2036
3037
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
2037
3038
|
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
2038
3039
|
path: _path + "",
|
|
2039
|
-
expected: "
|
|
3040
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
2040
3041
|
value: input
|
|
2041
3042
|
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
2042
3043
|
path: _path + "",
|
|
2043
|
-
expected: "
|
|
3044
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
2044
3045
|
value: input
|
|
2045
3046
|
}))(input, "$input", true);
|
|
2046
3047
|
const success = 0 === errors.length;
|
|
@@ -2063,7 +3064,7 @@ const collection = {
|
|
|
2063
3064
|
};
|
|
2064
3065
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
2065
3066
|
validate: {
|
|
2066
|
-
|
|
3067
|
+
process: validate,
|
|
2067
3068
|
},
|
|
2068
3069
|
}), { equals: false }));
|
|
2069
3070
|
return application;
|
|
@@ -2077,31 +3078,125 @@ const collection = {
|
|
|
2077
3078
|
},
|
|
2078
3079
|
functions: [
|
|
2079
3080
|
{
|
|
2080
|
-
name: "
|
|
3081
|
+
name: "process",
|
|
2081
3082
|
parameters: {
|
|
2082
|
-
description: "
|
|
3083
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceOperationReviewApplication.IProps}",
|
|
2083
3084
|
type: "object",
|
|
2084
3085
|
properties: {
|
|
2085
|
-
|
|
2086
|
-
description: "
|
|
2087
|
-
|
|
3086
|
+
thinking: {
|
|
3087
|
+
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.",
|
|
3088
|
+
type: "string"
|
|
2088
3089
|
},
|
|
2089
|
-
|
|
2090
|
-
description: "
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
3090
|
+
request: {
|
|
3091
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final operation review\n(complete). When preliminary returns empty array, that type is removed\nfrom the union, physically preventing repeated calls.",
|
|
3092
|
+
anyOf: [
|
|
3093
|
+
{
|
|
3094
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
3095
|
+
},
|
|
3096
|
+
{
|
|
3097
|
+
$ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
|
|
3098
|
+
},
|
|
3099
|
+
{
|
|
3100
|
+
$ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
3101
|
+
}
|
|
3102
|
+
],
|
|
3103
|
+
"x-discriminator": {
|
|
3104
|
+
propertyName: "type",
|
|
3105
|
+
mapping: {
|
|
3106
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
3107
|
+
getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
|
|
3108
|
+
complete: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IComplete"
|
|
3109
|
+
}
|
|
2094
3110
|
}
|
|
2095
3111
|
}
|
|
2096
3112
|
},
|
|
2097
3113
|
required: [
|
|
2098
|
-
"
|
|
2099
|
-
"
|
|
3114
|
+
"thinking",
|
|
3115
|
+
"request"
|
|
2100
3116
|
],
|
|
2101
3117
|
additionalProperties: false,
|
|
2102
3118
|
$defs: {
|
|
2103
|
-
|
|
2104
|
-
description: "
|
|
3119
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
3120
|
+
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.",
|
|
3121
|
+
type: "object",
|
|
3122
|
+
properties: {
|
|
3123
|
+
type: {
|
|
3124
|
+
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.",
|
|
3125
|
+
type: "string",
|
|
3126
|
+
"enum": [
|
|
3127
|
+
"getAnalysisFiles"
|
|
3128
|
+
]
|
|
3129
|
+
},
|
|
3130
|
+
fileNames: {
|
|
3131
|
+
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.",
|
|
3132
|
+
type: "array",
|
|
3133
|
+
items: {
|
|
3134
|
+
type: "string"
|
|
3135
|
+
},
|
|
3136
|
+
minItems: 1
|
|
3137
|
+
}
|
|
3138
|
+
},
|
|
3139
|
+
required: [
|
|
3140
|
+
"type",
|
|
3141
|
+
"fileNames"
|
|
3142
|
+
]
|
|
3143
|
+
},
|
|
3144
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
3145
|
+
description: "Request to retrieve Prisma database schema definitions for context.\n\nThis type is used in the preliminary phase to request specific Prisma table\nschemas needed for generating type-safe API operations.",
|
|
3146
|
+
type: "object",
|
|
3147
|
+
properties: {
|
|
3148
|
+
type: {
|
|
3149
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval or actual\ntask execution. Value \"getPrismaSchemas\" indicates this is a preliminary\ndata request for Prisma schemas.",
|
|
3150
|
+
type: "string",
|
|
3151
|
+
"enum": [
|
|
3152
|
+
"getPrismaSchemas"
|
|
3153
|
+
]
|
|
3154
|
+
},
|
|
3155
|
+
schemaNames: {
|
|
3156
|
+
description: "List of Prisma table names to retrieve.\n\nTable names from the Prisma schema file representing database entities\n(e.g., \"user\", \"post\", \"comment\").\n\nCRITICAL: DO NOT request the same schema names that you have already\nrequested in previous calls.",
|
|
3157
|
+
type: "array",
|
|
3158
|
+
items: {
|
|
3159
|
+
type: "string"
|
|
3160
|
+
},
|
|
3161
|
+
minItems: 1
|
|
3162
|
+
}
|
|
3163
|
+
},
|
|
3164
|
+
required: [
|
|
3165
|
+
"type",
|
|
3166
|
+
"schemaNames"
|
|
3167
|
+
]
|
|
3168
|
+
},
|
|
3169
|
+
"IAutoBeInterfaceOperationReviewApplication.IComplete": {
|
|
3170
|
+
description: "Request to review and validate API operations.\n\nExecutes systematic operation review for quality and correctness, analyzing\nsecurity vulnerabilities, schema compliance, logical consistency, and\nstandard adherence. Outputs structured thinking process and enhanced\noperations.",
|
|
3171
|
+
type: "object",
|
|
3172
|
+
properties: {
|
|
3173
|
+
type: {
|
|
3174
|
+
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.",
|
|
3175
|
+
type: "string",
|
|
3176
|
+
"enum": [
|
|
3177
|
+
"complete"
|
|
3178
|
+
]
|
|
3179
|
+
},
|
|
3180
|
+
think: {
|
|
3181
|
+
description: "Comprehensive thinking process for API operation review.\n\nEncapsulates the agent's analytical review findings and actionable\nimprovement plan. This structured thinking process ensures systematic\nevaluation of API operations against AutoBE's quality standards before\ngenerating the final enhanced operations.",
|
|
3182
|
+
$ref: "#/$defs/IAutoBeInterfaceOperationReviewApplication.IThink"
|
|
3183
|
+
},
|
|
3184
|
+
content: {
|
|
3185
|
+
description: "Production-ready operations with all critical issues resolved.\n\nFinal API operations after systematic enhancement:\n\n- **Security Fixes Applied**: All authentication boundaries enforced,\n sensitive data removed from responses, proper authorization\n implemented\n- **Logic Corrections Made**: Return types match operation intent, HTTP\n methods align with semantics, parameters properly utilized\n- **Schema Alignment Verified**: All fields exist in Prisma schema, types\n correctly mapped, relationships properly defined\n- **Quality Improvements Added**: Enhanced documentation, format\n specifications, validation rules, consistent naming patterns\n\nIf no issues were found during review, this contains the exact original\noperations unchanged. These operations are validated and ready for schema\ngeneration and subsequent implementation phases.",
|
|
3186
|
+
type: "array",
|
|
3187
|
+
items: {
|
|
3188
|
+
$ref: "#/$defs/AutoBeOpenApi.IOperation"
|
|
3189
|
+
}
|
|
3190
|
+
}
|
|
3191
|
+
},
|
|
3192
|
+
required: [
|
|
3193
|
+
"type",
|
|
3194
|
+
"think",
|
|
3195
|
+
"content"
|
|
3196
|
+
]
|
|
3197
|
+
},
|
|
3198
|
+
"IAutoBeInterfaceOperationReviewApplication.IThink": {
|
|
3199
|
+
description: "Structured thinking process for operation review.\n\nContains analytical review findings and improvement action plan organized\nfor systematic enhancement of the operations.",
|
|
2105
3200
|
type: "object",
|
|
2106
3201
|
properties: {
|
|
2107
3202
|
review: {
|
|
@@ -2187,13 +3282,15 @@ const collection = {
|
|
|
2187
3282
|
},
|
|
2188
3283
|
{
|
|
2189
3284
|
type: "string",
|
|
2190
|
-
|
|
3285
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
3286
|
+
minLength: 1
|
|
2191
3287
|
}
|
|
2192
3288
|
]
|
|
2193
3289
|
},
|
|
2194
3290
|
name: {
|
|
2195
|
-
description: "Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint's primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` \u2192 `name: \"index\"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` \u2192 `name: \"at\"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` \u2192 `name: \"create\"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` \u2192 `name: \"update\"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` \u2192 `name: \"erase\"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint's primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` \u2192 `name: \"index\"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` \u2192 `name: \"cancel\"`\n- `PUT /users/{userId}/password` \u2192 `name: \"updatePassword\"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API's accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` \u2192 Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` \u2192 Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` \u2192 Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts
|
|
2196
|
-
type: "string"
|
|
3291
|
+
description: "Functional name of the API endpoint.\n\nThis is a semantic identifier that represents the primary function or\npurpose of the API endpoint. It serves as a canonical name that can be\nused for code generation, SDK method names, and internal references.\n\n## Reserved Word Restrictions\n\nCRITICAL: The name MUST NOT be a TypeScript/JavaScript reserved word, as\nit will be used as a class method name in generated code. Avoid names\nlike:\n\n- `delete`, `for`, `if`, `else`, `while`, `do`, `switch`, `case`, `break`\n- `continue`, `function`, `return`, `with`, `in`, `of`, `instanceof`\n- `typeof`, `void`, `var`, `let`, `const`, `class`, `extends`, `import`\n- `export`, `default`, `try`, `catch`, `finally`, `throw`, `new`\n- `super`, `this`, `null`, `true`, `false`, `async`, `await`\n- `yield`, `static`, `private`, `protected`, `public`, `implements`\n- `interface`, `package`, `enum`, `debugger`\n\nInstead, use alternative names for these operations:\n\n- Use `erase` instead of `delete`\n- Use `iterate` instead of `for`\n- Use `when` instead of `if`\n- Use `cls` instead of `class`\n\n## Standard Endpoint Names\n\nUse these conventional names based on the endpoint's primary function:\n\n- **`index`**: List/search operations that return multiple entities\n\n - Typically used with PATCH method for complex queries\n - Example: `PATCH /users` \u2192 `name: \"index\"`\n- **`at`**: Retrieve a specific entity by identifier\n\n - Typically used with GET method on single resource\n - Example: `GET /users/{userId}` \u2192 `name: \"at\"`\n- **`create`**: Create a new entity\n\n - Typically used with POST method\n - Example: `POST /users` \u2192 `name: \"create\"`\n- **`update`**: Update an existing entity\n\n - Typically used with PUT method\n - Example: `PUT /users/{userId}` \u2192 `name: \"update\"`\n- **`erase`**: Delete/remove an entity (NOT `delete` - reserved word!)\n\n - Typically used with DELETE method\n - Example: `DELETE /users/{userId}` \u2192 `name: \"erase\"`\n\n## Custom Endpoint Names\n\nFor specialized operations beyond basic CRUD, use descriptive verbs:\n\n- **`activate`**: Enable or turn on a feature/entity\n- **`deactivate`**: Disable or turn off a feature/entity\n- **`approve`**: Approve a request or entity\n- **`reject`**: Reject a request or entity\n- **`publish`**: Make content publicly available\n- **`archive`**: Move to archived state\n- **`restore`**: Restore from archived/deleted state\n- **`duplicate`**: Create a copy of an entity\n- **`transfer`**: Move ownership or change assignment\n- **`validate`**: Validate data or state\n- **`process`**: Execute a business process or workflow\n- **`export`**: Generate downloadable data\n- **`import`**: Process uploaded data\n\n## Naming Guidelines\n\n- MUST use camelCase naming convention\n- Use singular verb forms\n- Be concise but descriptive\n- Avoid abbreviations unless widely understood\n- Ensure the name clearly represents the endpoint's primary action\n- For nested resources, focus on the action rather than hierarchy\n- NEVER use JavaScript/TypeScript reserved words\n\nValid Examples:\n\n- `index`, `create`, `update`, `erase` (single word)\n- `updatePassword`, `cancelOrder`, `publishArticle` (camelCase)\n- `validateEmail`, `generateReport`, `exportData` (camelCase)\n\nInvalid Examples:\n\n- `update_password` (snake_case not allowed)\n- `UpdatePassword` (PascalCase not allowed)\n- `update-password` (kebab-case not allowed)\n\nPath to Name Examples:\n\n- `GET /shopping/orders/{orderId}/items` \u2192 `name: \"index\"` (lists items)\n- `POST /shopping/orders/{orderId}/cancel` \u2192 `name: \"cancel\"`\n- `PUT /users/{userId}/password` \u2192 `name: \"updatePassword\"`\n\n## Uniqueness Rule\n\nThe `name` must be unique within the API's accessor namespace. The\naccessor is formed by combining the path segments (excluding parameters)\nwith the operation name.\n\nAccessor formation:\n\n1. Extract non-parameter segments from the path (remove `{...}` parts)\n2. Join segments with dots\n3. Append the operation name\n\nExamples:\n\n- Path: `/shopping/sale/{saleId}/review/{reviewId}`, Name: `at` \u2192 Accessor:\n `shopping.sale.review.at`\n- Path: `/users/{userId}/posts`, Name: `index` \u2192 Accessor:\n `users.posts.index`\n- Path: `/auth/login`, Name: `signIn` \u2192 Accessor: `auth.login.signIn`\n\nEach accessor must be globally unique across the entire API. This ensures\noperations can be uniquely identified in generated SDKs and prevents\nnaming conflicts.",
|
|
3292
|
+
type: "string",
|
|
3293
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
2197
3294
|
},
|
|
2198
3295
|
prerequisites: {
|
|
2199
3296
|
description: "Prerequisites for this API operation.\n\nThe `prerequisites` field defines API operations that must be\nsuccessfully executed before this operation can be performed. This\ncreates an explicit dependency chain between API endpoints, ensuring\nproper execution order and data availability.\n\n## CRITICAL WARNING: Authentication Prerequisites\n\n**NEVER include authentication-related operations as prerequisites!**\nAuthentication is handled separately through the `authorizationActor`\nfield and should NOT be part of the prerequisite chain. Do NOT add\nprerequisites for:\n\n- Login endpoints\n- Token validation endpoints\n- User authentication checks\n- Permission verification endpoints\n\nPrerequisites are ONLY for business logic dependencies, NOT for\nauthentication/authorization.\n\n## Purpose and Use Cases\n\nPrerequisites are essential for operations that depend on:\n\n1. **Existence Validation**: Ensuring resources exist before manipulation\n2. **State Requirements**: Verifying resources are in the correct state\n3. **Data Dependencies**: Loading necessary data for the current operation\n4. **Business Logic Constraints**: Enforcing domain-specific rules\n\n## Execution Flow\n\nWhen an operation has prerequisites:\n\n1. Each prerequisite API must be called first in the specified order\n2. Prerequisites must return successful responses (2xx status codes)\n3. Only after all prerequisites succeed can the main operation proceed\n4. If any prerequisite fails, the operation should not be attempted\n\n## Common Patterns\n\n### Resource Existence Check\n\n```typescript\n// Before updating an order item, ensure the order exists\nprerequisites: [\n {\n endpoint: { path: \"/orders/{orderId}\", method: \"get\" },\n description: \"Order must exist in the system\",\n },\n];\n```\n\n### State Validation\n\n```typescript\n// Before processing payment, ensure order is in correct state\nprerequisites: [\n {\n endpoint: { path: \"/orders/{orderId}/status\", method: \"get\" },\n description: \"Order must be in 'pending_payment' status\",\n },\n];\n```\n\n### Hierarchical Dependencies\n\n```typescript\n// Before accessing a deeply nested resource\nprerequisites: [\n {\n endpoint: { path: \"/projects/{projectId}\", method: \"get\" },\n description: \"Project must exist\",\n },\n {\n endpoint: {\n path: \"/projects/{projectId}/tasks/{taskId}\",\n method: \"get\",\n },\n description: \"Task must exist within the project\",\n },\n];\n```\n\n## Important Guidelines\n\n1. **Order Matters**: Prerequisites are executed in array order\n2. **Parameter Inheritance**: Path parameters from prerequisites can be used\n in the main operation\n3. **Error Handling**: Failed prerequisites should prevent main operation\n4. **Performance**: Consider caching prerequisite results when appropriate\n5. **Documentation**: Each prerequisite must have a clear description\n explaining why it's required\n6. **No Authentication**: NEVER use prerequisites for authentication checks\n\n## Test Generation Impact\n\nThe Test Agent uses prerequisites to:\n\n- Generate proper test setup sequences\n- Create valid test data in the correct order\n- Ensure test scenarios follow realistic workflows\n- Validate error handling when prerequisites fail",
|
|
@@ -2203,8 +3300,9 @@ const collection = {
|
|
|
2203
3300
|
}
|
|
2204
3301
|
},
|
|
2205
3302
|
path: {
|
|
2206
|
-
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)
|
|
2207
|
-
type: "string"
|
|
3303
|
+
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)",
|
|
3304
|
+
type: "string",
|
|
3305
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
2208
3306
|
},
|
|
2209
3307
|
method: {
|
|
2210
3308
|
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",
|
|
@@ -2238,8 +3336,9 @@ const collection = {
|
|
|
2238
3336
|
type: "object",
|
|
2239
3337
|
properties: {
|
|
2240
3338
|
name: {
|
|
2241
|
-
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention
|
|
2242
|
-
type: "string"
|
|
3339
|
+
description: "Identifier name of the path parameter.\n\nThis name must match exactly with the parameter name in the route path.\nIt must be corresponded to the\n{@link AutoBeOpenApi.IOperation.path API operation path}.\n\nMUST use camelCase naming convention.",
|
|
3340
|
+
type: "string",
|
|
3341
|
+
pattern: "^[a-z][a-zA-Z0-9]*$"
|
|
2243
3342
|
},
|
|
2244
3343
|
description: {
|
|
2245
3344
|
description: "Description about the path parameter.\n\nMake short, concise and clear description about the path parameter.\n\n> MUST be written in English. Never use other languages.",
|
|
@@ -2295,8 +3394,9 @@ const collection = {
|
|
|
2295
3394
|
type: "number"
|
|
2296
3395
|
},
|
|
2297
3396
|
multipleOf: {
|
|
2298
|
-
description: "Multiple of value restriction
|
|
2299
|
-
type: "number"
|
|
3397
|
+
description: "Multiple of value restriction.",
|
|
3398
|
+
type: "number",
|
|
3399
|
+
exclusiveMinimum: 0
|
|
2300
3400
|
},
|
|
2301
3401
|
type: {
|
|
2302
3402
|
description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
|
|
@@ -2331,8 +3431,9 @@ const collection = {
|
|
|
2331
3431
|
type: "number"
|
|
2332
3432
|
},
|
|
2333
3433
|
multipleOf: {
|
|
2334
|
-
description: "Multiple of value restriction
|
|
2335
|
-
type: "integer"
|
|
3434
|
+
description: "Multiple of value restriction.",
|
|
3435
|
+
type: "integer",
|
|
3436
|
+
exclusiveMinimum: 0
|
|
2336
3437
|
},
|
|
2337
3438
|
type: {
|
|
2338
3439
|
description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
|
|
@@ -2386,12 +3487,14 @@ const collection = {
|
|
|
2386
3487
|
type: "string"
|
|
2387
3488
|
},
|
|
2388
3489
|
minLength: {
|
|
2389
|
-
description: "Minimum length restriction
|
|
2390
|
-
type: "integer"
|
|
3490
|
+
description: "Minimum length restriction.",
|
|
3491
|
+
type: "integer",
|
|
3492
|
+
minimum: 0
|
|
2391
3493
|
},
|
|
2392
3494
|
maxLength: {
|
|
2393
|
-
description: "Maximum length restriction
|
|
2394
|
-
type: "integer"
|
|
3495
|
+
description: "Maximum length restriction.",
|
|
3496
|
+
type: "integer",
|
|
3497
|
+
minimum: 0
|
|
2395
3498
|
},
|
|
2396
3499
|
type: {
|
|
2397
3500
|
description: "Discriminator value of the type.\n\nCRITICAL: This MUST be a SINGLE string value, NOT an array. The type\nfield identifies the JSON Schema type and must be exactly one of:\n\"boolean\", \"integer\", \"number\", \"string\", \"array\", \"object\", or\n\"null\".\n\n\u274C INCORRECT: type: [\"string\", \"null\"] // This is WRONG! \u2705 CORRECT:\ntype: \"string\" // For nullable string, use oneOf instead\n\nIf you need to express a nullable type (e.g., string | null), you MUST\nuse the `IOneOf` structure:\n\n```typescript\n{\n \"oneOf\": [{ \"type\": \"string\" }, { \"type\": \"null\" }]\n}\n```\n\nNEVER use array notation in the type field. The type field is a\ndiscriminator that accepts only a single string value.",
|
|
@@ -2464,8 +3567,9 @@ const collection = {
|
|
|
2464
3567
|
type: "object",
|
|
2465
3568
|
properties: {
|
|
2466
3569
|
path: {
|
|
2467
|
-
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)
|
|
2468
|
-
type: "string"
|
|
3570
|
+
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)",
|
|
3571
|
+
type: "string",
|
|
3572
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
|
|
2469
3573
|
},
|
|
2470
3574
|
method: {
|
|
2471
3575
|
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",
|
|
@@ -2486,41 +3590,106 @@ const collection = {
|
|
|
2486
3590
|
}
|
|
2487
3591
|
}
|
|
2488
3592
|
},
|
|
2489
|
-
description: "
|
|
2490
|
-
validate: (() => { const
|
|
3593
|
+
description: "Process operation review task or preliminary data requests.\n\nAnalyzes operations for security vulnerabilities, schema compliance,\nlogical consistency, and standard adherence. Outputs structured thinking\nprocess and production-ready operations.",
|
|
3594
|
+
validate: (() => { const _iv6 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); const _vv12 = new Set(["date-time", "password", "regex", "uuid", "email", "hostname", "idn-email", "idn-hostname", "iri", "iri-reference", "ipv4", "ipv6", "uri", "uri-reference", "uri-template", "url", "date", "time", "duration", "json-pointer", "relative-json-pointer"]); 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 => "getPrismaSchemas" === input.type && (Array.isArray(input.schemaNames) && (1 <= input.schemaNames.length && input.schemaNames.every(elem => "string" === typeof elem))); const _io3 = input => "complete" === input.type && ("object" === typeof input.think && null !== input.think && _io4(input.think)) && (Array.isArray(input.content) && input.content.every(elem => "object" === typeof elem && null !== elem && _io5(elem))); const _io4 = input => "string" === typeof input.review && "string" === typeof input.plan; const _io5 = input => "string" === typeof input.specification && (null === input.authorizationType || "login" === input.authorizationType || "join" === input.authorizationType || "refresh" === input.authorizationType) && "string" === typeof input.description && "string" === typeof input.summary && (Array.isArray(input.parameters) && input.parameters.every(elem => "object" === typeof elem && null !== elem && _io6(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io10(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io11(input.responseBody)) && (null === input.authorizationActor || "string" === typeof input.authorizationActor && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.authorizationActor) && 1 <= input.authorizationActor.length)) && ("string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name)) && (Array.isArray(input.prerequisites) && input.prerequisites.every(elem => "object" === typeof elem && null !== elem && _io12(elem))) && ("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 _io6 = input => "string" === typeof input.name && RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) && "string" === typeof input.description && ("object" === typeof input.schema && null !== input.schema && _iu1(input.schema)); const _io7 = input => (undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000)) && (undefined === input.maximum || "number" === typeof input.maximum && (Math.floor(input.maximum) === input.maximum && -9223372036854776000 <= input.maximum && input.maximum <= 9223372036854776000)) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && (Math.floor(input.multipleOf) === input.multipleOf && 0 <= input.multipleOf && input.multipleOf <= 18446744073709552000 && 0 < input.multipleOf)) && "integer" === input.type; const _io8 = input => (undefined === input.minimum || "number" === typeof input.minimum) && (undefined === input.maximum || "number" === typeof input.maximum) && (undefined === input.exclusiveMinimum || "number" === typeof input.exclusiveMinimum) && (undefined === input.exclusiveMaximum || "number" === typeof input.exclusiveMaximum) && (undefined === input.multipleOf || "number" === typeof input.multipleOf && 0 < input.multipleOf) && "number" === input.type; const _io9 = input => (undefined === input.format || true === _iv6.has(input.format)) && (undefined === input.pattern || "string" === typeof input.pattern) && (undefined === input.contentMediaType || "string" === typeof input.contentMediaType) && (undefined === input.minLength || "number" === typeof input.minLength && (Math.floor(input.minLength) === input.minLength && 0 <= input.minLength && input.minLength <= 18446744073709552000)) && (undefined === input.maxLength || "number" === typeof input.maxLength && (Math.floor(input.maxLength) === input.maxLength && 0 <= input.maxLength && input.maxLength <= 18446744073709552000)) && "string" === input.type; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io12 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io13(input.endpoint) && "string" === typeof input.description; const _io13 = 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 _iu0 = input => (() => {
|
|
3595
|
+
if ("getAnalysisFiles" === input.type)
|
|
3596
|
+
return _io1(input);
|
|
3597
|
+
else if ("getPrismaSchemas" === input.type)
|
|
3598
|
+
return _io2(input);
|
|
3599
|
+
else if ("complete" === input.type)
|
|
3600
|
+
return _io3(input);
|
|
3601
|
+
else
|
|
3602
|
+
return false;
|
|
3603
|
+
})(); const _iu1 = input => (() => {
|
|
2491
3604
|
if ("number" === input.type)
|
|
2492
|
-
return
|
|
3605
|
+
return _io8(input);
|
|
2493
3606
|
else if ("integer" === input.type)
|
|
2494
|
-
return
|
|
3607
|
+
return _io7(input);
|
|
2495
3608
|
else if ("string" === input.type)
|
|
2496
|
-
return
|
|
3609
|
+
return _io9(input);
|
|
2497
3610
|
else
|
|
2498
3611
|
return false;
|
|
2499
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
3612
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
3613
|
+
path: _path + ".thinking",
|
|
3614
|
+
expected: "string",
|
|
3615
|
+
value: input.thinking
|
|
3616
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
3617
|
+
path: _path + ".request",
|
|
3618
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
3619
|
+
value: input.request
|
|
3620
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
3621
|
+
path: _path + ".request",
|
|
3622
|
+
expected: "(IAutoBeInterfaceOperationReviewApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
3623
|
+
value: input.request
|
|
3624
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
3625
|
+
path: _path + ".type",
|
|
3626
|
+
expected: "\"getAnalysisFiles\"",
|
|
3627
|
+
value: input.type
|
|
3628
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
3629
|
+
path: _path + ".fileNames",
|
|
3630
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3631
|
+
value: input.fileNames
|
|
3632
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
3633
|
+
path: _path + ".fileNames",
|
|
3634
|
+
expected: "Array<> & MinItems<1>",
|
|
3635
|
+
value: input.fileNames
|
|
3636
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
3637
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
3638
|
+
expected: "string",
|
|
3639
|
+
value: elem
|
|
3640
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
3641
|
+
path: _path + ".fileNames",
|
|
3642
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3643
|
+
value: input.fileNames
|
|
3644
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
3645
|
+
path: _path + ".type",
|
|
3646
|
+
expected: "\"getPrismaSchemas\"",
|
|
3647
|
+
value: input.type
|
|
3648
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
3649
|
+
path: _path + ".schemaNames",
|
|
3650
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3651
|
+
value: input.schemaNames
|
|
3652
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
3653
|
+
path: _path + ".schemaNames",
|
|
3654
|
+
expected: "Array<> & MinItems<1>",
|
|
3655
|
+
value: input.schemaNames
|
|
3656
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
3657
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
3658
|
+
expected: "string",
|
|
3659
|
+
value: elem
|
|
3660
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
3661
|
+
path: _path + ".schemaNames",
|
|
3662
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3663
|
+
value: input.schemaNames
|
|
3664
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
3665
|
+
path: _path + ".type",
|
|
3666
|
+
expected: "\"complete\"",
|
|
3667
|
+
value: input.type
|
|
3668
|
+
}), ("object" === typeof input.think && null !== input.think || _report(_exceptionable, {
|
|
2500
3669
|
path: _path + ".think",
|
|
2501
|
-
expected: "
|
|
3670
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
2502
3671
|
value: input.think
|
|
2503
|
-
})) &&
|
|
3672
|
+
})) && _vo4(input.think, _path + ".think", true && _exceptionable) || _report(_exceptionable, {
|
|
2504
3673
|
path: _path + ".think",
|
|
2505
|
-
expected: "
|
|
3674
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IThink",
|
|
2506
3675
|
value: input.think
|
|
2507
3676
|
}), (Array.isArray(input.content) || _report(_exceptionable, {
|
|
2508
3677
|
path: _path + ".content",
|
|
2509
3678
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
2510
3679
|
value: input.content
|
|
2511
|
-
})) && input.content.map((elem,
|
|
2512
|
-
path: _path + ".content[" +
|
|
3680
|
+
})) && input.content.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
3681
|
+
path: _path + ".content[" + _index9 + "]",
|
|
2513
3682
|
expected: "AutoBeOpenApi.IOperation",
|
|
2514
3683
|
value: elem
|
|
2515
|
-
})) &&
|
|
2516
|
-
path: _path + ".content[" +
|
|
3684
|
+
})) && _vo5(elem, _path + ".content[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
3685
|
+
path: _path + ".content[" + _index9 + "]",
|
|
2517
3686
|
expected: "AutoBeOpenApi.IOperation",
|
|
2518
3687
|
value: elem
|
|
2519
3688
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
2520
3689
|
path: _path + ".content",
|
|
2521
3690
|
expected: "Array<AutoBeOpenApi.IOperation>",
|
|
2522
3691
|
value: input.content
|
|
2523
|
-
})].every(flag => flag); const
|
|
3692
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
|
|
2524
3693
|
path: _path + ".review",
|
|
2525
3694
|
expected: "string",
|
|
2526
3695
|
value: input.review
|
|
@@ -2528,7 +3697,7 @@ const collection = {
|
|
|
2528
3697
|
path: _path + ".plan",
|
|
2529
3698
|
expected: "string",
|
|
2530
3699
|
value: input.plan
|
|
2531
|
-
})].every(flag => flag); const
|
|
3700
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
2532
3701
|
path: _path + ".specification",
|
|
2533
3702
|
expected: "string",
|
|
2534
3703
|
value: input.specification
|
|
@@ -2548,12 +3717,12 @@ const collection = {
|
|
|
2548
3717
|
path: _path + ".parameters",
|
|
2549
3718
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
2550
3719
|
value: input.parameters
|
|
2551
|
-
})) && input.parameters.map((elem,
|
|
2552
|
-
path: _path + ".parameters[" +
|
|
3720
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
3721
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
2553
3722
|
expected: "AutoBeOpenApi.IParameter",
|
|
2554
3723
|
value: elem
|
|
2555
|
-
})) &&
|
|
2556
|
-
path: _path + ".parameters[" +
|
|
3724
|
+
})) && _vo6(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
3725
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
2557
3726
|
expected: "AutoBeOpenApi.IParameter",
|
|
2558
3727
|
value: elem
|
|
2559
3728
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -2564,7 +3733,7 @@ const collection = {
|
|
|
2564
3733
|
path: _path + ".requestBody",
|
|
2565
3734
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
2566
3735
|
value: input.requestBody
|
|
2567
|
-
})) &&
|
|
3736
|
+
})) && _vo10(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
2568
3737
|
path: _path + ".requestBody",
|
|
2569
3738
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
2570
3739
|
value: input.requestBody
|
|
@@ -2572,7 +3741,7 @@ const collection = {
|
|
|
2572
3741
|
path: _path + ".responseBody",
|
|
2573
3742
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
2574
3743
|
value: input.responseBody
|
|
2575
|
-
})) &&
|
|
3744
|
+
})) && _vo11(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
2576
3745
|
path: _path + ".responseBody",
|
|
2577
3746
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
2578
3747
|
value: input.responseBody
|
|
@@ -2600,12 +3769,12 @@ const collection = {
|
|
|
2600
3769
|
path: _path + ".prerequisites",
|
|
2601
3770
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
2602
3771
|
value: input.prerequisites
|
|
2603
|
-
})) && input.prerequisites.map((elem,
|
|
2604
|
-
path: _path + ".prerequisites[" +
|
|
3772
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
3773
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
2605
3774
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
2606
3775
|
value: elem
|
|
2607
|
-
})) &&
|
|
2608
|
-
path: _path + ".prerequisites[" +
|
|
3776
|
+
})) && _vo12(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
3777
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
2609
3778
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
2610
3779
|
value: elem
|
|
2611
3780
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -2624,7 +3793,7 @@ const collection = {
|
|
|
2624
3793
|
path: _path + ".method",
|
|
2625
3794
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
2626
3795
|
value: input.method
|
|
2627
|
-
})].every(flag => flag); const
|
|
3796
|
+
})].every(flag => flag); const _vo6 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
2628
3797
|
path: _path + ".name",
|
|
2629
3798
|
expected: "string & CamelCasePattern",
|
|
2630
3799
|
value: input.name
|
|
@@ -2640,11 +3809,11 @@ const collection = {
|
|
|
2640
3809
|
path: _path + ".schema",
|
|
2641
3810
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
2642
3811
|
value: input.schema
|
|
2643
|
-
})) &&
|
|
3812
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
2644
3813
|
path: _path + ".schema",
|
|
2645
3814
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
2646
3815
|
value: input.schema
|
|
2647
|
-
})].every(flag => flag); const
|
|
3816
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum && (Math.floor(input.minimum) === input.minimum && -9223372036854776000 <= input.minimum && input.minimum <= 9223372036854776000 || _report(_exceptionable, {
|
|
2648
3817
|
path: _path + ".minimum",
|
|
2649
3818
|
expected: "number & Type<\"int64\">",
|
|
2650
3819
|
value: input.minimum
|
|
@@ -2684,7 +3853,7 @@ const collection = {
|
|
|
2684
3853
|
path: _path + ".type",
|
|
2685
3854
|
expected: "\"integer\"",
|
|
2686
3855
|
value: input.type
|
|
2687
|
-
})].every(flag => flag); const
|
|
3856
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
2688
3857
|
path: _path + ".minimum",
|
|
2689
3858
|
expected: "(number | undefined)",
|
|
2690
3859
|
value: input.minimum
|
|
@@ -2712,7 +3881,7 @@ const collection = {
|
|
|
2712
3881
|
path: _path + ".type",
|
|
2713
3882
|
expected: "\"number\"",
|
|
2714
3883
|
value: input.type
|
|
2715
|
-
})].every(flag => flag); const
|
|
3884
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
2716
3885
|
path: _path + ".format",
|
|
2717
3886
|
expected: "(\"date\" | \"date-time\" | \"duration\" | \"email\" | \"hostname\" | \"idn-email\" | \"idn-hostname\" | \"ipv4\" | \"ipv6\" | \"iri\" | \"iri-reference\" | \"json-pointer\" | \"password\" | \"regex\" | \"relative-json-pointer\" | \"time\" | \"uri\" | \"uri-reference\" | \"uri-template\" | \"url\" | \"uuid\" | undefined)",
|
|
2718
3887
|
value: input.format
|
|
@@ -2744,7 +3913,7 @@ const collection = {
|
|
|
2744
3913
|
path: _path + ".type",
|
|
2745
3914
|
expected: "\"string\"",
|
|
2746
3915
|
value: input.type
|
|
2747
|
-
})].every(flag => flag); const
|
|
3916
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
2748
3917
|
path: _path + ".description",
|
|
2749
3918
|
expected: "string",
|
|
2750
3919
|
value: input.description
|
|
@@ -2752,7 +3921,7 @@ const collection = {
|
|
|
2752
3921
|
path: _path + ".typeName",
|
|
2753
3922
|
expected: "string",
|
|
2754
3923
|
value: input.typeName
|
|
2755
|
-
})].every(flag => flag); const
|
|
3924
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
2756
3925
|
path: _path + ".description",
|
|
2757
3926
|
expected: "string",
|
|
2758
3927
|
value: input.description
|
|
@@ -2760,11 +3929,11 @@ const collection = {
|
|
|
2760
3929
|
path: _path + ".typeName",
|
|
2761
3930
|
expected: "string",
|
|
2762
3931
|
value: input.typeName
|
|
2763
|
-
})].every(flag => flag); const
|
|
3932
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
2764
3933
|
path: _path + ".endpoint",
|
|
2765
3934
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
2766
3935
|
value: input.endpoint
|
|
2767
|
-
})) &&
|
|
3936
|
+
})) && _vo13(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
2768
3937
|
path: _path + ".endpoint",
|
|
2769
3938
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
2770
3939
|
value: input.endpoint
|
|
@@ -2772,7 +3941,7 @@ const collection = {
|
|
|
2772
3941
|
path: _path + ".description",
|
|
2773
3942
|
expected: "string",
|
|
2774
3943
|
value: input.description
|
|
2775
|
-
})].every(flag => flag); const
|
|
3944
|
+
})].every(flag => flag); const _vo13 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
2776
3945
|
path: _path + ".path",
|
|
2777
3946
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
2778
3947
|
value: input.path
|
|
@@ -2785,12 +3954,25 @@ const collection = {
|
|
|
2785
3954
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
2786
3955
|
value: input.method
|
|
2787
3956
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
3957
|
+
if ("getAnalysisFiles" === input.type)
|
|
3958
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
3959
|
+
else if ("getPrismaSchemas" === input.type)
|
|
3960
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
3961
|
+
else if ("complete" === input.type)
|
|
3962
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
3963
|
+
else
|
|
3964
|
+
return _report(_exceptionable, {
|
|
3965
|
+
path: _path,
|
|
3966
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceOperationReviewApplication.IComplete)",
|
|
3967
|
+
value: input
|
|
3968
|
+
});
|
|
3969
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
2788
3970
|
if ("number" === input.type)
|
|
2789
|
-
return
|
|
3971
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
2790
3972
|
else if ("integer" === input.type)
|
|
2791
|
-
return
|
|
3973
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
2792
3974
|
else if ("string" === input.type)
|
|
2793
|
-
return
|
|
3975
|
+
return _vo9(input, _path, true && _exceptionable);
|
|
2794
3976
|
else
|
|
2795
3977
|
return _report(_exceptionable, {
|
|
2796
3978
|
path: _path,
|
|
@@ -2803,11 +3985,11 @@ const collection = {
|
|
|
2803
3985
|
_report = __typia_transform__validateReport._validateReport(errors);
|
|
2804
3986
|
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
2805
3987
|
path: _path + "",
|
|
2806
|
-
expected: "
|
|
3988
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
2807
3989
|
value: input
|
|
2808
3990
|
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
2809
3991
|
path: _path + "",
|
|
2810
|
-
expected: "
|
|
3992
|
+
expected: "IAutoBeInterfaceOperationReviewApplication.IProps",
|
|
2811
3993
|
value: input
|
|
2812
3994
|
}))(input, "$input", true);
|
|
2813
3995
|
const success = 0 === errors.length;
|
|
@@ -2830,10 +4012,11 @@ const collection = {
|
|
|
2830
4012
|
};
|
|
2831
4013
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
2832
4014
|
validate: {
|
|
2833
|
-
|
|
4015
|
+
process: validate,
|
|
2834
4016
|
},
|
|
2835
4017
|
}), { equals: false }));
|
|
2836
4018
|
return application;
|
|
2837
4019
|
})(),
|
|
2838
4020
|
};
|
|
2839
|
-
|
|
4021
|
+
const SOURCE = "interfaceOperationReview";
|
|
4022
|
+
//# sourceMappingURL=orchestrateInterfaceOperationReview.js.map
|