@autobe/agent 0.28.1 → 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 +43501 -23602
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.d.ts +7 -2
- package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js +11 -21
- package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js.map +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.d.ts +2 -2
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +12 -5
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.d.ts +2 -2
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +53 -50
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyze.js +2 -2
- package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js +855 -258
- package/lib/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +2 -14
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +2 -9
- package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
- package/lib/orchestrate/analyze/structures/IAutoBeAnalyzeReviewApplication.d.ts +110 -36
- package/lib/orchestrate/common/AutoBePreliminaryController.d.ts +40 -0
- package/lib/orchestrate/common/AutoBePreliminaryController.js +97 -0
- package/lib/orchestrate/common/AutoBePreliminaryController.js.map +1 -0
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.d.ts +8 -0
- package/lib/orchestrate/{realize/histories/transformRealizeCorrectCastingHistories.js → common/histories/transformCommonCorrectCastingHistory.js} +16 -13
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.js.map +1 -0
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.d.ts +4 -0
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.js +285 -0
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.js.map +1 -0
- package/lib/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.d.ts → transformPreviousAndLatestCorrectHistory.d.ts} +1 -1
- package/lib/orchestrate/common/histories/{transformPreviousAndLatestCorrectHistories.js → transformPreviousAndLatestCorrectHistory.js} +4 -4
- package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js.map +1 -0
- package/lib/orchestrate/common/internal/complementPreliminaryCollection.d.ts +7 -0
- package/lib/orchestrate/common/internal/complementPreliminaryCollection.js +99 -0
- package/lib/orchestrate/common/internal/complementPreliminaryCollection.js.map +1 -0
- package/lib/orchestrate/common/internal/createPreliminaryCollection.d.ts +3 -0
- package/lib/orchestrate/common/internal/createPreliminaryCollection.js +20 -0
- package/lib/orchestrate/common/internal/createPreliminaryCollection.js.map +1 -0
- package/lib/orchestrate/common/internal/validatePreliminary.d.ts +5 -0
- package/lib/orchestrate/common/internal/validatePreliminary.js +217 -0
- package/lib/orchestrate/common/internal/validatePreliminary.js.map +1 -0
- package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js +10 -22
- package/lib/orchestrate/common/orchestrateCommonCorrectCasting.js.map +1 -1
- package/lib/orchestrate/common/orchestratePreliminary.d.ts +12 -0
- package/lib/orchestrate/common/orchestratePreliminary.js +231 -0
- package/lib/orchestrate/common/orchestratePreliminary.js.map +1 -0
- package/lib/orchestrate/common/structures/AutoBePreliminaryRequest.d.ts +16 -0
- package/lib/orchestrate/{realize/structures/IAutoBeRealizeAuthorizationApplication.js → common/structures/AutoBePreliminaryRequest.js} +1 -1
- package/lib/orchestrate/common/structures/AutoBePreliminaryRequest.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.d.ts +1 -4
- package/lib/orchestrate/common/structures/IAutoBeOrchestrateResult.d.ts +9 -0
- package/lib/orchestrate/{interface/structures/IAutoBeInterfacePrerequisitesApplication.js → common/structures/IAutoBeOrchestrateResult.js} +1 -1
- package/lib/orchestrate/common/structures/IAutoBeOrchestrateResult.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.d.ts +8 -0
- package/lib/orchestrate/{interface/structures/IAutoBeInterfaceEndpointsReviewApplication.js → common/structures/IAutoBePreliminaryCollection.js} +1 -1
- package/lib/orchestrate/common/structures/IAutoBePreliminaryCollection.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.d.ts +27 -0
- package/lib/orchestrate/{interface/structures/IAutoBeInterfaceOperationsReviewApplication.js → common/structures/IAutoBePreliminaryGetAnalysisFiles.js} +1 -1
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisFiles.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.d.ts +28 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.js +3 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.d.ts +27 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.js +3 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.js.map +1 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.d.ts +27 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.js +3 -0
- package/lib/orchestrate/common/structures/IAutoBePreliminaryGetPrismaSchemas.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.d.ts +10 -0
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js +70 -0
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceCommonHistory.d.ts +3 -0
- package/lib/orchestrate/interface/histories/{transformInterfaceCommonHistories.js → transformInterfaceCommonHistory.js} +4 -4
- package/lib/orchestrate/interface/histories/transformInterfaceCommonHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.d.ts +9 -0
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.js +60 -0
- package/lib/orchestrate/interface/histories/transformInterfaceComplementHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.d.ts +12 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.js +63 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.d.ts +7 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.js +36 -0
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointReviewHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.d.ts +6 -0
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js +68 -0
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.d.ts +9 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js +72 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.d.ts +7 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js +38 -0
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.d.ts +8 -0
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js +73 -0
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.d.ts +11 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.js +95 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.d.ts +5 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js +54 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js.map +1 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.d.ts +12 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js +75 -0
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterface.js +90 -46
- package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.d.ts +6 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceAuthorizations.js → orchestrateInterfaceAuthorization.js} +1370 -226
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.d.ts +4 -3
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +2807 -532
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
- package/lib/orchestrate/interface/{orchestrateInterfaceEndpoints.d.ts → orchestrateInterfaceEndpoint.d.ts} +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoint.js +1356 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoint.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.d.ts +4 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +1337 -0
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceGroups.d.ts → orchestrateInterfaceGroup.d.ts} +1 -2
- package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +621 -0
- package/lib/orchestrate/interface/orchestrateInterfaceGroup.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceOperations.d.ts → orchestrateInterfaceOperation.d.ts} +1 -2
- package/lib/orchestrate/interface/{orchestrateInterfaceOperations.js → orchestrateInterfaceOperation.js} +1275 -216
- package/lib/orchestrate/interface/orchestrateInterfaceOperation.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.d.ts +4 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceOperationsReview.js → orchestrateInterfaceOperationReview.js} +1421 -247
- package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfacePrerequisites.d.ts → orchestrateInterfacePrerequisite.d.ts} +1 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +2159 -0
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js.map +1 -0
- package/lib/orchestrate/interface/{orchestrateInterfaceSchemas.d.ts → orchestrateInterfaceSchema.d.ts} +1 -2
- package/lib/orchestrate/interface/{orchestrateInterfaceSchemas.js → orchestrateInterfaceSchema.js} +2550 -546
- package/lib/orchestrate/interface/orchestrateInterfaceSchema.js.map +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js +7 -17
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRename.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.d.ts +1 -0
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +2823 -548
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js.map +1 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationsApplication.d.ts +56 -5
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceComplementApplication.d.ts +57 -10
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointApplication.d.ts +55 -10
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.d.ts +96 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.js +3 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.js.map +1 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.d.ts +6 -82
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +58 -13
- package/lib/orchestrate/interface/structures/{IAutoBeInterfaceOperationsReviewApplication.d.ts → IAutoBeInterfaceOperationReviewApplication.d.ts} +58 -28
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.js +3 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.js.map +1 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.d.ts +98 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.js +3 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.js.map +1 -0
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.d.ts +56 -15
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaContentReviewApplication.d.ts +62 -22
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaRelationReviewApplication.d.ts +60 -21
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceSchemaSecurityReviewApplication.d.ts +61 -19
- package/lib/orchestrate/interface/utils/JsonSchemaFactory.js +29 -23
- package/lib/orchestrate/interface/utils/JsonSchemaFactory.js.map +1 -1
- package/lib/orchestrate/interface/utils/JsonSchemaNamingConvention.js +67 -61
- package/lib/orchestrate/interface/utils/JsonSchemaNamingConvention.js.map +1 -1
- package/lib/orchestrate/interface/utils/JsonSchemaValidator.d.ts +2 -1
- package/lib/orchestrate/interface/utils/JsonSchemaValidator.js +52 -25
- package/lib/orchestrate/interface/utils/JsonSchemaValidator.js.map +1 -1
- package/lib/orchestrate/interface/utils/OperationValidator.js +59 -1
- package/lib/orchestrate/interface/utils/OperationValidator.js.map +1 -1
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.d.ts +6 -0
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js +98 -0
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js.map +1 -0
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.d.ts +7 -0
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js +31 -0
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js.map +1 -0
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.d.ts +7 -0
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.js +38 -0
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistory.js.map +1 -0
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.d.ts +8 -0
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js +79 -0
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js.map +1 -0
- package/lib/orchestrate/prisma/orchestratePrisma.js +9 -6
- package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.d.ts +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +8 -14
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +2863 -1543
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaReview.d.ts +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaReview.js +2886 -1566
- package/lib/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
- package/lib/orchestrate/prisma/{orchestratePrismaSchemas.d.ts → orchestratePrismaSchema.d.ts} +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js +3068 -0
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js.map +1 -0
- package/lib/orchestrate/prisma/structures/IAutoBePrismaCorrectApplication.d.ts +74 -76
- package/lib/orchestrate/prisma/structures/IAutoBePrismaReviewApplication.d.ts +90 -72
- package/lib/orchestrate/prisma/structures/IAutoBePrismaSchemaApplication.d.ts +89 -66
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.d.ts +9 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js +79 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.d.ts +7 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js +41 -0
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.d.ts +12 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js +67 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.d.ts +18 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.js +54 -0
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistory.js.map +1 -0
- package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.d.ts +4 -2
- package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js +140 -106
- package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -1
- package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.d.ts +3 -0
- package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.js +23 -0
- package/lib/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealize.js +4 -4
- package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.d.ts +5 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +1288 -572
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
- package/lib/orchestrate/realize/{orchestrateRealizeAuthorization.d.ts → orchestrateRealizeAuthorizationWrite.d.ts} +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +1410 -0
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +664 -140
- package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js +20 -65
- package/lib/orchestrate/realize/orchestrateRealizeCorrectCasting.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeWrite.js +660 -135
- package/lib/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.d.ts +79 -19
- package/lib/orchestrate/realize/structures/{IAutoBeRealizeAuthorizationApplication.d.ts → IAutoBeRealizeAuthorizationWriteApplication.d.ts} +60 -27
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.js +3 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.js.map +1 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCorrectApplication.d.ts +54 -5
- package/lib/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.d.ts +6 -14
- package/lib/orchestrate/realize/structures/IAutoBeRealizeWriteApplication.d.ts +54 -6
- package/lib/orchestrate/realize/utils/generateRealizeScenario.d.ts +1 -3
- package/lib/orchestrate/realize/utils/generateRealizeScenario.js +1 -7
- package/lib/orchestrate/realize/utils/generateRealizeScenario.js.map +1 -1
- package/lib/orchestrate/test/histories/transformTestCorrectHistories.d.ts +3 -3
- package/lib/orchestrate/test/histories/transformTestCorrectHistories.js +23 -20
- package/lib/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -1
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.d.ts +4 -0
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.js +36 -0
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistory.js.map +1 -0
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.d.ts +11 -0
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.js +95 -0
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.js.map +1 -0
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.d.ts +10 -0
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js +67 -0
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js.map +1 -0
- package/lib/orchestrate/test/histories/{transformTestWriteHistories.d.ts → transformTestWriteHistory.d.ts} +4 -4
- package/lib/orchestrate/test/histories/{transformTestWriteHistories.js → transformTestWriteHistory.js} +79 -76
- package/lib/orchestrate/test/histories/transformTestWriteHistory.js.map +1 -0
- package/lib/orchestrate/test/orchestrateTestCorrect.js +13 -26
- package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js +3 -15
- package/lib/orchestrate/test/orchestrateTestCorrectInvalidRequest.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenario.d.ts +1 -1
- package/lib/orchestrate/test/orchestrateTestScenario.js +1370 -316
- package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenarioReview.d.ts +5 -3
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1067 -288
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestWrite.js +8 -15
- package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
- package/lib/orchestrate/test/structures/IAutoBeTestScenarioApplication.d.ts +66 -4
- package/lib/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.d.ts +82 -14
- package/lib/structures/IAutoBeOrchestrateHistory.d.ts +5 -0
- package/lib/structures/IAutoBeOrchestrateHistory.js +3 -0
- package/lib/structures/IAutoBeOrchestrateHistory.js.map +1 -0
- package/lib/utils/executeCachedBatch.d.ts +5 -1
- package/lib/utils/executeCachedBatch.js +23 -5
- package/lib/utils/executeCachedBatch.js.map +1 -1
- package/lib/utils/validateEmptyCode.js +2 -2
- package/lib/utils/validateEmptyCode.js.map +1 -1
- package/package.json +8 -6
- package/src/AutoBeAgent.ts +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 -508
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.d.ts +0 -4
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js +0 -488
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointsReview.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +0 -458
- package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.d.ts +0 -4
- package/lib/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js +0 -917
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisites.js.map +0 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +0 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.d.ts +0 -60
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceEndpointsReviewApplication.js.map +0 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.js.map +0 -1
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.d.ts +0 -52
- package/lib/orchestrate/interface/structures/IAutoBeInterfacePrerequisitesApplication.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.d.ts +0 -6
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +0 -95
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.d.ts +0 -3
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js +0 -41
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistories.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.d.ts +0 -8
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js +0 -62
- package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +0 -1
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.d.ts +0 -8
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +0 -78
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +0 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +0 -1678
- package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeAuthorization.d.ts +0 -5
- package/lib/orchestrate/realize/histories/transformRealizeAuthorization.js +0 -44
- package/lib/orchestrate/realize/histories/transformRealizeAuthorization.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.d.ts +0 -5
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js +0 -82
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.d.ts +0 -5
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.d.ts +0 -13
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js +0 -29
- package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +0 -1
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.d.ts +0 -3
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +0 -23
- package/lib/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js.map +0 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +0 -710
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +0 -1
- package/lib/orchestrate/realize/structures/IAutoBeRealizeAuthorizationApplication.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.d.ts +0 -4
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js +0 -33
- package/lib/orchestrate/test/histories/transformTestCorrectInvalidRequestHistories.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestScenarioHistories.d.ts +0 -10
- package/lib/orchestrate/test/histories/transformTestScenarioHistories.js +0 -101
- package/lib/orchestrate/test/histories/transformTestScenarioHistories.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.d.ts +0 -8
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js +0 -72
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js.map +0 -1
- package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +0 -1
- package/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,7 +45,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
45
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
46
|
};
|
|
47
47
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.
|
|
48
|
+
exports.orchestrateInterfaceAuthorization = orchestrateInterfaceAuthorization;
|
|
49
49
|
const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
|
|
50
50
|
const __typia_transform__llmApplicationFinalize = __importStar(require("typia/lib/internal/_llmApplicationFinalize.js"));
|
|
51
51
|
const utils_1 = require("@autobe/utils");
|
|
@@ -53,8 +53,9 @@ const typia_1 = __importDefault(require("typia"));
|
|
|
53
53
|
const uuid_1 = require("uuid");
|
|
54
54
|
const assertSchemaModel_1 = require("../../context/assertSchemaModel");
|
|
55
55
|
const executeCachedBatch_1 = require("../../utils/executeCachedBatch");
|
|
56
|
-
const
|
|
57
|
-
|
|
56
|
+
const AutoBePreliminaryController_1 = require("../common/AutoBePreliminaryController");
|
|
57
|
+
const transformInterfaceAuthorizationHistory_1 = require("./histories/transformInterfaceAuthorizationHistory");
|
|
58
|
+
function orchestrateInterfaceAuthorization(ctx, props) {
|
|
58
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
60
|
var _a, _b;
|
|
60
61
|
const actors = (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.actors) !== null && _b !== void 0 ? _b : [];
|
|
@@ -62,12 +63,12 @@ function orchestrateInterfaceAuthorizations(ctx, instruction) {
|
|
|
62
63
|
total: actors.length,
|
|
63
64
|
completed: 0,
|
|
64
65
|
};
|
|
65
|
-
const authorizations = yield (0, executeCachedBatch_1.executeCachedBatch)(actors.map((a) => (promptCacheKey) => __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
const authorizations = yield (0, executeCachedBatch_1.executeCachedBatch)(ctx, actors.map((a) => (promptCacheKey) => __awaiter(this, void 0, void 0, function* () {
|
|
66
67
|
const event = yield process(ctx, {
|
|
67
68
|
actor: a,
|
|
68
69
|
progress,
|
|
69
70
|
promptCacheKey,
|
|
70
|
-
instruction,
|
|
71
|
+
instruction: props.instruction,
|
|
71
72
|
});
|
|
72
73
|
ctx.dispatch(event);
|
|
73
74
|
return {
|
|
@@ -80,56 +81,674 @@ function orchestrateInterfaceAuthorizations(ctx, instruction) {
|
|
|
80
81
|
}
|
|
81
82
|
function process(ctx, props) {
|
|
82
83
|
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
const preliminary = new AutoBePreliminaryController_1.AutoBePreliminaryController({
|
|
85
|
+
application: {
|
|
86
|
+
version: "3.1",
|
|
87
|
+
components: {
|
|
88
|
+
schemas: {
|
|
89
|
+
"IAutoBeInterfaceAuthorizationsApplication.IProps": {
|
|
90
|
+
type: "object",
|
|
91
|
+
properties: {
|
|
92
|
+
thinking: {
|
|
93
|
+
type: "string",
|
|
94
|
+
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."
|
|
95
|
+
},
|
|
96
|
+
request: {
|
|
97
|
+
oneOf: [
|
|
98
|
+
{
|
|
99
|
+
$ref: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
$ref: "#/components/schemas/IAutoBePreliminaryGetPrismaSchemas"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
$ref: "#/components/schemas/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
discriminator: {
|
|
109
|
+
propertyName: "type",
|
|
110
|
+
mapping: {
|
|
111
|
+
getAnalysisFiles: "#/components/schemas/IAutoBePreliminaryGetAnalysisFiles",
|
|
112
|
+
getPrismaSchemas: "#/components/schemas/IAutoBePreliminaryGetPrismaSchemas",
|
|
113
|
+
complete: "#/components/schemas/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final authorization operations\ngeneration (complete). When preliminary returns empty array, that type is\nremoved from the union, physically preventing repeated calls."
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
required: [
|
|
120
|
+
"thinking",
|
|
121
|
+
"request"
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
125
|
+
type: "object",
|
|
126
|
+
properties: {
|
|
127
|
+
type: {
|
|
128
|
+
"const": "getAnalysisFiles",
|
|
129
|
+
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."
|
|
130
|
+
},
|
|
131
|
+
fileNames: {
|
|
132
|
+
type: "array",
|
|
133
|
+
items: {
|
|
134
|
+
type: "string"
|
|
135
|
+
},
|
|
136
|
+
minItems: 1,
|
|
137
|
+
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."
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
required: [
|
|
141
|
+
"type",
|
|
142
|
+
"fileNames"
|
|
143
|
+
],
|
|
144
|
+
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."
|
|
145
|
+
},
|
|
146
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
147
|
+
type: "object",
|
|
148
|
+
properties: {
|
|
149
|
+
type: {
|
|
150
|
+
"const": "getPrismaSchemas",
|
|
151
|
+
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."
|
|
152
|
+
},
|
|
153
|
+
schemaNames: {
|
|
154
|
+
type: "array",
|
|
155
|
+
items: {
|
|
156
|
+
type: "string"
|
|
157
|
+
},
|
|
158
|
+
minItems: 1,
|
|
159
|
+
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."
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
required: [
|
|
163
|
+
"type",
|
|
164
|
+
"schemaNames"
|
|
165
|
+
],
|
|
166
|
+
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."
|
|
167
|
+
},
|
|
168
|
+
"IAutoBeInterfaceAuthorizationsApplication.IComplete": {
|
|
169
|
+
type: "object",
|
|
170
|
+
properties: {
|
|
171
|
+
type: {
|
|
172
|
+
"const": "complete",
|
|
173
|
+
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."
|
|
174
|
+
},
|
|
175
|
+
operations: {
|
|
176
|
+
type: "array",
|
|
177
|
+
items: {
|
|
178
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IOperation"
|
|
179
|
+
},
|
|
180
|
+
minItems: 1,
|
|
181
|
+
description: "Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., \"/resources/{resourceId}\")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body."
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
required: [
|
|
185
|
+
"type",
|
|
186
|
+
"operations"
|
|
187
|
+
],
|
|
188
|
+
description: "Request to generate authorization operations.\n\nExecutes authorization operations generation to define the authorization\nrequirements for the given roles. Ensures operations reflect correct\npermissions and access levels for each role."
|
|
189
|
+
},
|
|
190
|
+
"AutoBeOpenApi.IOperation": {
|
|
191
|
+
type: "object",
|
|
192
|
+
properties: {
|
|
193
|
+
specification: {
|
|
194
|
+
type: "string",
|
|
195
|
+
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."
|
|
196
|
+
},
|
|
197
|
+
authorizationType: {
|
|
198
|
+
oneOf: [
|
|
199
|
+
{
|
|
200
|
+
type: "null"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"const": "login"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"const": "join"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"const": "refresh"
|
|
210
|
+
}
|
|
211
|
+
],
|
|
212
|
+
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`"
|
|
213
|
+
},
|
|
214
|
+
description: {
|
|
215
|
+
type: "string",
|
|
216
|
+
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."
|
|
217
|
+
},
|
|
218
|
+
summary: {
|
|
219
|
+
type: "string",
|
|
220
|
+
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"
|
|
221
|
+
},
|
|
222
|
+
parameters: {
|
|
223
|
+
type: "array",
|
|
224
|
+
items: {
|
|
225
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IParameter"
|
|
226
|
+
},
|
|
227
|
+
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`"
|
|
228
|
+
},
|
|
229
|
+
requestBody: {
|
|
230
|
+
oneOf: [
|
|
231
|
+
{
|
|
232
|
+
type: "null"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IRequestBody"
|
|
236
|
+
}
|
|
237
|
+
],
|
|
238
|
+
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."
|
|
239
|
+
},
|
|
240
|
+
responseBody: {
|
|
241
|
+
oneOf: [
|
|
242
|
+
{
|
|
243
|
+
type: "null"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IResponseBody"
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
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."
|
|
250
|
+
},
|
|
251
|
+
authorizationActor: {
|
|
252
|
+
oneOf: [
|
|
253
|
+
{
|
|
254
|
+
type: "null"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
type: "string",
|
|
258
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
259
|
+
minLength: 1
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
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."
|
|
263
|
+
},
|
|
264
|
+
name: {
|
|
265
|
+
type: "string",
|
|
266
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
267
|
+
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."
|
|
268
|
+
},
|
|
269
|
+
prerequisites: {
|
|
270
|
+
type: "array",
|
|
271
|
+
items: {
|
|
272
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IPrerequisite"
|
|
273
|
+
},
|
|
274
|
+
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"
|
|
275
|
+
},
|
|
276
|
+
path: {
|
|
277
|
+
type: "string",
|
|
278
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
|
|
279
|
+
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)"
|
|
280
|
+
},
|
|
281
|
+
method: {
|
|
282
|
+
oneOf: [
|
|
283
|
+
{
|
|
284
|
+
"const": "get"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"const": "post"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"const": "put"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"const": "delete"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"const": "patch"
|
|
297
|
+
}
|
|
298
|
+
],
|
|
299
|
+
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"
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
required: [
|
|
303
|
+
"specification",
|
|
304
|
+
"authorizationType",
|
|
305
|
+
"description",
|
|
306
|
+
"summary",
|
|
307
|
+
"parameters",
|
|
308
|
+
"requestBody",
|
|
309
|
+
"responseBody",
|
|
310
|
+
"authorizationActor",
|
|
311
|
+
"name",
|
|
312
|
+
"prerequisites",
|
|
313
|
+
"path",
|
|
314
|
+
"method"
|
|
315
|
+
],
|
|
316
|
+
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```"
|
|
317
|
+
},
|
|
318
|
+
"AutoBeOpenApi.IParameter": {
|
|
319
|
+
type: "object",
|
|
320
|
+
properties: {
|
|
321
|
+
name: {
|
|
322
|
+
type: "string",
|
|
323
|
+
pattern: "^[a-z][a-zA-Z0-9]*$",
|
|
324
|
+
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."
|
|
325
|
+
},
|
|
326
|
+
description: {
|
|
327
|
+
type: "string",
|
|
328
|
+
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."
|
|
329
|
+
},
|
|
330
|
+
schema: {
|
|
331
|
+
oneOf: [
|
|
332
|
+
{
|
|
333
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.INumber"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IInteger"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IString"
|
|
340
|
+
}
|
|
341
|
+
],
|
|
342
|
+
discriminator: {
|
|
343
|
+
propertyName: "type",
|
|
344
|
+
mapping: {
|
|
345
|
+
number: "#/components/schemas/AutoBeOpenApi.IJsonSchema.INumber",
|
|
346
|
+
integer: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IInteger",
|
|
347
|
+
string: "#/components/schemas/AutoBeOpenApi.IJsonSchema.IString"
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
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."
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
required: [
|
|
354
|
+
"name",
|
|
355
|
+
"description",
|
|
356
|
+
"schema"
|
|
357
|
+
],
|
|
358
|
+
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```"
|
|
359
|
+
},
|
|
360
|
+
"AutoBeOpenApi.IJsonSchema.INumber": {
|
|
361
|
+
type: "object",
|
|
362
|
+
properties: {
|
|
363
|
+
minimum: {
|
|
364
|
+
type: "number",
|
|
365
|
+
description: "Minimum value restriction."
|
|
366
|
+
},
|
|
367
|
+
maximum: {
|
|
368
|
+
type: "number",
|
|
369
|
+
description: "Maximum value restriction."
|
|
370
|
+
},
|
|
371
|
+
exclusiveMinimum: {
|
|
372
|
+
type: "number",
|
|
373
|
+
description: "Exclusive minimum value restriction."
|
|
374
|
+
},
|
|
375
|
+
exclusiveMaximum: {
|
|
376
|
+
type: "number",
|
|
377
|
+
description: "Exclusive maximum value restriction."
|
|
378
|
+
},
|
|
379
|
+
multipleOf: {
|
|
380
|
+
type: "number",
|
|
381
|
+
exclusiveMinimum: 0,
|
|
382
|
+
description: "Multiple of value restriction."
|
|
383
|
+
},
|
|
384
|
+
type: {
|
|
385
|
+
"const": "number",
|
|
386
|
+
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."
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
required: [
|
|
390
|
+
"type"
|
|
391
|
+
],
|
|
392
|
+
description: "Number (double) type info."
|
|
393
|
+
},
|
|
394
|
+
"AutoBeOpenApi.IJsonSchema.IInteger": {
|
|
395
|
+
type: "object",
|
|
396
|
+
properties: {
|
|
397
|
+
minimum: {
|
|
398
|
+
type: "integer",
|
|
399
|
+
description: "Minimum value restriction."
|
|
400
|
+
},
|
|
401
|
+
maximum: {
|
|
402
|
+
type: "integer",
|
|
403
|
+
description: "Maximum value restriction."
|
|
404
|
+
},
|
|
405
|
+
exclusiveMinimum: {
|
|
406
|
+
type: "number",
|
|
407
|
+
description: "Exclusive minimum value restriction."
|
|
408
|
+
},
|
|
409
|
+
exclusiveMaximum: {
|
|
410
|
+
type: "number",
|
|
411
|
+
description: "Exclusive maximum value restriction."
|
|
412
|
+
},
|
|
413
|
+
multipleOf: {
|
|
414
|
+
type: "integer",
|
|
415
|
+
exclusiveMinimum: 0,
|
|
416
|
+
description: "Multiple of value restriction."
|
|
417
|
+
},
|
|
418
|
+
type: {
|
|
419
|
+
"const": "integer",
|
|
420
|
+
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."
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
required: [
|
|
424
|
+
"type"
|
|
425
|
+
],
|
|
426
|
+
description: "Integer type info."
|
|
427
|
+
},
|
|
428
|
+
"AutoBeOpenApi.IJsonSchema.IString": {
|
|
429
|
+
type: "object",
|
|
430
|
+
properties: {
|
|
431
|
+
format: {
|
|
432
|
+
oneOf: [
|
|
433
|
+
{
|
|
434
|
+
"const": "date-time"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"const": "password"
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"const": "regex"
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
"const": "uuid"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"const": "email"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"const": "hostname"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"const": "idn-email"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"const": "idn-hostname"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"const": "iri"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"const": "iri-reference"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"const": "ipv4"
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"const": "ipv6"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"const": "uri"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"const": "uri-reference"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"const": "uri-template"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"const": "url"
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"const": "date"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"const": "time"
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"const": "duration"
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"const": "json-pointer"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"const": "relative-json-pointer"
|
|
495
|
+
}
|
|
496
|
+
],
|
|
497
|
+
description: "Format restriction."
|
|
498
|
+
},
|
|
499
|
+
pattern: {
|
|
500
|
+
type: "string",
|
|
501
|
+
description: "Pattern restriction."
|
|
502
|
+
},
|
|
503
|
+
contentMediaType: {
|
|
504
|
+
type: "string",
|
|
505
|
+
description: "Content media type restriction."
|
|
506
|
+
},
|
|
507
|
+
minLength: {
|
|
508
|
+
type: "integer",
|
|
509
|
+
minimum: 0,
|
|
510
|
+
description: "Minimum length restriction."
|
|
511
|
+
},
|
|
512
|
+
maxLength: {
|
|
513
|
+
type: "integer",
|
|
514
|
+
minimum: 0,
|
|
515
|
+
description: "Maximum length restriction."
|
|
516
|
+
},
|
|
517
|
+
type: {
|
|
518
|
+
"const": "string",
|
|
519
|
+
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."
|
|
520
|
+
}
|
|
521
|
+
},
|
|
522
|
+
required: [
|
|
523
|
+
"type"
|
|
524
|
+
],
|
|
525
|
+
description: "String type info."
|
|
526
|
+
},
|
|
527
|
+
"AutoBeOpenApi.IRequestBody": {
|
|
528
|
+
type: "object",
|
|
529
|
+
properties: {
|
|
530
|
+
description: {
|
|
531
|
+
type: "string",
|
|
532
|
+
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."
|
|
533
|
+
},
|
|
534
|
+
typeName: {
|
|
535
|
+
type: "string",
|
|
536
|
+
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```"
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
required: [
|
|
540
|
+
"description",
|
|
541
|
+
"typeName"
|
|
542
|
+
],
|
|
543
|
+
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```"
|
|
544
|
+
},
|
|
545
|
+
"AutoBeOpenApi.IResponseBody": {
|
|
546
|
+
type: "object",
|
|
547
|
+
properties: {
|
|
548
|
+
description: {
|
|
549
|
+
type: "string",
|
|
550
|
+
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."
|
|
551
|
+
},
|
|
552
|
+
typeName: {
|
|
553
|
+
type: "string",
|
|
554
|
+
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```"
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
required: [
|
|
558
|
+
"description",
|
|
559
|
+
"typeName"
|
|
560
|
+
],
|
|
561
|
+
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```"
|
|
562
|
+
},
|
|
563
|
+
"AutoBeOpenApi.IPrerequisite": {
|
|
564
|
+
type: "object",
|
|
565
|
+
properties: {
|
|
566
|
+
endpoint: {
|
|
567
|
+
$ref: "#/components/schemas/AutoBeOpenApi.IEndpoint",
|
|
568
|
+
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."
|
|
569
|
+
},
|
|
570
|
+
description: {
|
|
571
|
+
type: "string",
|
|
572
|
+
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."
|
|
573
|
+
}
|
|
574
|
+
},
|
|
575
|
+
required: [
|
|
576
|
+
"endpoint",
|
|
577
|
+
"description"
|
|
578
|
+
],
|
|
579
|
+
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"
|
|
580
|
+
},
|
|
581
|
+
"AutoBeOpenApi.IEndpoint": {
|
|
582
|
+
type: "object",
|
|
583
|
+
properties: {
|
|
584
|
+
path: {
|
|
585
|
+
type: "string",
|
|
586
|
+
pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$",
|
|
587
|
+
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)"
|
|
588
|
+
},
|
|
589
|
+
method: {
|
|
590
|
+
oneOf: [
|
|
591
|
+
{
|
|
592
|
+
"const": "get"
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"const": "post"
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"const": "put"
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"const": "delete"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"const": "patch"
|
|
605
|
+
}
|
|
606
|
+
],
|
|
607
|
+
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"
|
|
608
|
+
}
|
|
609
|
+
},
|
|
610
|
+
required: [
|
|
611
|
+
"path",
|
|
612
|
+
"method"
|
|
613
|
+
],
|
|
614
|
+
description: "API endpoint information."
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
functions: [
|
|
619
|
+
{
|
|
620
|
+
name: "process",
|
|
621
|
+
async: false,
|
|
622
|
+
parameters: [
|
|
623
|
+
{
|
|
624
|
+
name: "props",
|
|
625
|
+
description: " Request containing either preliminary data request or complete\ntask",
|
|
626
|
+
required: true,
|
|
627
|
+
schema: {
|
|
628
|
+
$ref: "#/components/schemas/IAutoBeInterfaceAuthorizationsApplication.IProps"
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
],
|
|
632
|
+
description: "Process authorization operations generation task or preliminary data\nrequests.\n\nGenerates authorization operations for the given roles and ensures the\ninterface reflects correct permissions and access levels."
|
|
633
|
+
}
|
|
634
|
+
]
|
|
635
|
+
},
|
|
636
|
+
source: SOURCE,
|
|
637
|
+
kinds: ["analysisFiles", "prismaSchemas"],
|
|
638
|
+
state: ctx.state(),
|
|
639
|
+
});
|
|
640
|
+
return yield preliminary.orchestrate(ctx, (out) => __awaiter(this, void 0, void 0, function* () {
|
|
641
|
+
var _a, _b;
|
|
642
|
+
const pointer = {
|
|
643
|
+
value: null,
|
|
644
|
+
};
|
|
645
|
+
const result = yield ctx.conversate(Object.assign({ source: SOURCE, controller: createController({
|
|
646
|
+
model: ctx.model,
|
|
647
|
+
actor: props.actor,
|
|
648
|
+
build: (next) => {
|
|
649
|
+
pointer.value = next;
|
|
650
|
+
},
|
|
651
|
+
preliminary,
|
|
652
|
+
}), enforceFunctionCall: true, promptCacheKey: props.promptCacheKey }, (0, transformInterfaceAuthorizationHistory_1.transformInterfaceAuthorizationHistory)({
|
|
90
653
|
state: ctx.state(),
|
|
91
654
|
instruction: props.instruction,
|
|
92
655
|
actor: props.actor,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
id: (0, uuid_1.v7)(),
|
|
110
|
-
operations: pointer.value.operations,
|
|
111
|
-
completed: ++props.progress.completed,
|
|
112
|
-
metric,
|
|
113
|
-
tokenUsage,
|
|
114
|
-
created_at: new Date().toISOString(),
|
|
115
|
-
step: (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
|
|
116
|
-
total: props.progress.total,
|
|
117
|
-
};
|
|
656
|
+
preliminary,
|
|
657
|
+
})));
|
|
658
|
+
return out(result)(pointer.value !== null
|
|
659
|
+
? {
|
|
660
|
+
type: SOURCE,
|
|
661
|
+
id: (0, uuid_1.v7)(),
|
|
662
|
+
operations: pointer.value.operations,
|
|
663
|
+
completed: ++props.progress.completed,
|
|
664
|
+
metric: result.metric,
|
|
665
|
+
tokenUsage: result.tokenUsage,
|
|
666
|
+
created_at: new Date().toISOString(),
|
|
667
|
+
step: (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
|
|
668
|
+
total: props.progress.total,
|
|
669
|
+
}
|
|
670
|
+
: null);
|
|
671
|
+
}));
|
|
118
672
|
});
|
|
119
673
|
}
|
|
120
674
|
function createController(props) {
|
|
121
675
|
(0, assertSchemaModel_1.assertSchemaModel)(props.model);
|
|
122
676
|
const validate = (next) => {
|
|
123
|
-
const result = (() => { const
|
|
677
|
+
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 && (Array.isArray(input.operations) && (1 <= input.operations.length && input.operations.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io4 = 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 && _io5(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io9(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io10(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 && _io11(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 _io5 = 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 _io6 = 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 _io7 = 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 _io8 = 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 _io9 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io12(input.endpoint) && "string" === typeof input.description; const _io12 = 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 => (() => {
|
|
678
|
+
if ("getAnalysisFiles" === input.type)
|
|
679
|
+
return _io1(input);
|
|
680
|
+
else if ("getPrismaSchemas" === input.type)
|
|
681
|
+
return _io2(input);
|
|
682
|
+
else if ("complete" === input.type)
|
|
683
|
+
return _io3(input);
|
|
684
|
+
else
|
|
685
|
+
return false;
|
|
686
|
+
})(); const _iu1 = input => (() => {
|
|
124
687
|
if ("number" === input.type)
|
|
125
|
-
return
|
|
688
|
+
return _io7(input);
|
|
126
689
|
else if ("integer" === input.type)
|
|
127
|
-
return
|
|
690
|
+
return _io6(input);
|
|
128
691
|
else if ("string" === input.type)
|
|
129
|
-
return
|
|
692
|
+
return _io8(input);
|
|
130
693
|
else
|
|
131
694
|
return false;
|
|
132
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
695
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
696
|
+
path: _path + ".thinking",
|
|
697
|
+
expected: "string",
|
|
698
|
+
value: input.thinking
|
|
699
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
700
|
+
path: _path + ".request",
|
|
701
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
702
|
+
value: input.request
|
|
703
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
704
|
+
path: _path + ".request",
|
|
705
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
706
|
+
value: input.request
|
|
707
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
708
|
+
path: _path + ".type",
|
|
709
|
+
expected: "\"getAnalysisFiles\"",
|
|
710
|
+
value: input.type
|
|
711
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
712
|
+
path: _path + ".fileNames",
|
|
713
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
714
|
+
value: input.fileNames
|
|
715
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
716
|
+
path: _path + ".fileNames",
|
|
717
|
+
expected: "Array<> & MinItems<1>",
|
|
718
|
+
value: input.fileNames
|
|
719
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
720
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
721
|
+
expected: "string",
|
|
722
|
+
value: elem
|
|
723
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
724
|
+
path: _path + ".fileNames",
|
|
725
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
726
|
+
value: input.fileNames
|
|
727
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
728
|
+
path: _path + ".type",
|
|
729
|
+
expected: "\"getPrismaSchemas\"",
|
|
730
|
+
value: input.type
|
|
731
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
732
|
+
path: _path + ".schemaNames",
|
|
733
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
734
|
+
value: input.schemaNames
|
|
735
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
736
|
+
path: _path + ".schemaNames",
|
|
737
|
+
expected: "Array<> & MinItems<1>",
|
|
738
|
+
value: input.schemaNames
|
|
739
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
740
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
741
|
+
expected: "string",
|
|
742
|
+
value: elem
|
|
743
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
744
|
+
path: _path + ".schemaNames",
|
|
745
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
746
|
+
value: input.schemaNames
|
|
747
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
748
|
+
path: _path + ".type",
|
|
749
|
+
expected: "\"complete\"",
|
|
750
|
+
value: input.type
|
|
751
|
+
}), (Array.isArray(input.operations) || _report(_exceptionable, {
|
|
133
752
|
path: _path + ".operations",
|
|
134
753
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
135
754
|
value: input.operations
|
|
@@ -137,19 +756,19 @@ function createController(props) {
|
|
|
137
756
|
path: _path + ".operations",
|
|
138
757
|
expected: "Array<> & MinItems<1>",
|
|
139
758
|
value: input.operations
|
|
140
|
-
})) && input.operations.map((elem,
|
|
141
|
-
path: _path + ".operations[" +
|
|
759
|
+
})) && input.operations.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
760
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
142
761
|
expected: "AutoBeOpenApi.IOperation",
|
|
143
762
|
value: elem
|
|
144
|
-
})) &&
|
|
145
|
-
path: _path + ".operations[" +
|
|
763
|
+
})) && _vo4(elem, _path + ".operations[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
764
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
146
765
|
expected: "AutoBeOpenApi.IOperation",
|
|
147
766
|
value: elem
|
|
148
767
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
149
768
|
path: _path + ".operations",
|
|
150
769
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
151
770
|
value: input.operations
|
|
152
|
-
})].every(flag => flag); const
|
|
771
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
153
772
|
path: _path + ".specification",
|
|
154
773
|
expected: "string",
|
|
155
774
|
value: input.specification
|
|
@@ -169,12 +788,12 @@ function createController(props) {
|
|
|
169
788
|
path: _path + ".parameters",
|
|
170
789
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
171
790
|
value: input.parameters
|
|
172
|
-
})) && input.parameters.map((elem,
|
|
173
|
-
path: _path + ".parameters[" +
|
|
791
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
792
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
174
793
|
expected: "AutoBeOpenApi.IParameter",
|
|
175
794
|
value: elem
|
|
176
|
-
})) &&
|
|
177
|
-
path: _path + ".parameters[" +
|
|
795
|
+
})) && _vo5(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
796
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
178
797
|
expected: "AutoBeOpenApi.IParameter",
|
|
179
798
|
value: elem
|
|
180
799
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -185,7 +804,7 @@ function createController(props) {
|
|
|
185
804
|
path: _path + ".requestBody",
|
|
186
805
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
187
806
|
value: input.requestBody
|
|
188
|
-
})) &&
|
|
807
|
+
})) && _vo9(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
189
808
|
path: _path + ".requestBody",
|
|
190
809
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
191
810
|
value: input.requestBody
|
|
@@ -193,7 +812,7 @@ function createController(props) {
|
|
|
193
812
|
path: _path + ".responseBody",
|
|
194
813
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
195
814
|
value: input.responseBody
|
|
196
|
-
})) &&
|
|
815
|
+
})) && _vo10(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
197
816
|
path: _path + ".responseBody",
|
|
198
817
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
199
818
|
value: input.responseBody
|
|
@@ -221,12 +840,12 @@ function createController(props) {
|
|
|
221
840
|
path: _path + ".prerequisites",
|
|
222
841
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
223
842
|
value: input.prerequisites
|
|
224
|
-
})) && input.prerequisites.map((elem,
|
|
225
|
-
path: _path + ".prerequisites[" +
|
|
843
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
844
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
226
845
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
227
846
|
value: elem
|
|
228
|
-
})) &&
|
|
229
|
-
path: _path + ".prerequisites[" +
|
|
847
|
+
})) && _vo11(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
848
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
230
849
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
231
850
|
value: elem
|
|
232
851
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -245,7 +864,7 @@ function createController(props) {
|
|
|
245
864
|
path: _path + ".method",
|
|
246
865
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
247
866
|
value: input.method
|
|
248
|
-
})].every(flag => flag); const
|
|
867
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
249
868
|
path: _path + ".name",
|
|
250
869
|
expected: "string & CamelCasePattern",
|
|
251
870
|
value: input.name
|
|
@@ -261,11 +880,11 @@ function createController(props) {
|
|
|
261
880
|
path: _path + ".schema",
|
|
262
881
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
263
882
|
value: input.schema
|
|
264
|
-
})) &&
|
|
883
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
265
884
|
path: _path + ".schema",
|
|
266
885
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
267
886
|
value: input.schema
|
|
268
|
-
})].every(flag => flag); const
|
|
887
|
+
})].every(flag => flag); const _vo6 = (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, {
|
|
269
888
|
path: _path + ".minimum",
|
|
270
889
|
expected: "number & Type<\"int64\">",
|
|
271
890
|
value: input.minimum
|
|
@@ -305,7 +924,7 @@ function createController(props) {
|
|
|
305
924
|
path: _path + ".type",
|
|
306
925
|
expected: "\"integer\"",
|
|
307
926
|
value: input.type
|
|
308
|
-
})].every(flag => flag); const
|
|
927
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
309
928
|
path: _path + ".minimum",
|
|
310
929
|
expected: "(number | undefined)",
|
|
311
930
|
value: input.minimum
|
|
@@ -333,7 +952,7 @@ function createController(props) {
|
|
|
333
952
|
path: _path + ".type",
|
|
334
953
|
expected: "\"number\"",
|
|
335
954
|
value: input.type
|
|
336
|
-
})].every(flag => flag); const
|
|
955
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
337
956
|
path: _path + ".format",
|
|
338
957
|
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)",
|
|
339
958
|
value: input.format
|
|
@@ -365,7 +984,7 @@ function createController(props) {
|
|
|
365
984
|
path: _path + ".type",
|
|
366
985
|
expected: "\"string\"",
|
|
367
986
|
value: input.type
|
|
368
|
-
})].every(flag => flag); const
|
|
987
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
369
988
|
path: _path + ".description",
|
|
370
989
|
expected: "string",
|
|
371
990
|
value: input.description
|
|
@@ -373,7 +992,7 @@ function createController(props) {
|
|
|
373
992
|
path: _path + ".typeName",
|
|
374
993
|
expected: "string",
|
|
375
994
|
value: input.typeName
|
|
376
|
-
})].every(flag => flag); const
|
|
995
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
377
996
|
path: _path + ".description",
|
|
378
997
|
expected: "string",
|
|
379
998
|
value: input.description
|
|
@@ -381,11 +1000,11 @@ function createController(props) {
|
|
|
381
1000
|
path: _path + ".typeName",
|
|
382
1001
|
expected: "string",
|
|
383
1002
|
value: input.typeName
|
|
384
|
-
})].every(flag => flag); const
|
|
1003
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
385
1004
|
path: _path + ".endpoint",
|
|
386
1005
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
387
1006
|
value: input.endpoint
|
|
388
|
-
})) &&
|
|
1007
|
+
})) && _vo12(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
389
1008
|
path: _path + ".endpoint",
|
|
390
1009
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
391
1010
|
value: input.endpoint
|
|
@@ -393,7 +1012,7 @@ function createController(props) {
|
|
|
393
1012
|
path: _path + ".description",
|
|
394
1013
|
expected: "string",
|
|
395
1014
|
value: input.description
|
|
396
|
-
})].every(flag => flag); const
|
|
1015
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
397
1016
|
path: _path + ".path",
|
|
398
1017
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
399
1018
|
value: input.path
|
|
@@ -406,12 +1025,25 @@ function createController(props) {
|
|
|
406
1025
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
407
1026
|
value: input.method
|
|
408
1027
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
1028
|
+
if ("getAnalysisFiles" === input.type)
|
|
1029
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
1030
|
+
else if ("getPrismaSchemas" === input.type)
|
|
1031
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
1032
|
+
else if ("complete" === input.type)
|
|
1033
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
1034
|
+
else
|
|
1035
|
+
return _report(_exceptionable, {
|
|
1036
|
+
path: _path,
|
|
1037
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceAuthorizationsApplication.IComplete)",
|
|
1038
|
+
value: input
|
|
1039
|
+
});
|
|
1040
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
409
1041
|
if ("number" === input.type)
|
|
410
|
-
return
|
|
1042
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
411
1043
|
else if ("integer" === input.type)
|
|
412
|
-
return
|
|
1044
|
+
return _vo6(input, _path, true && _exceptionable);
|
|
413
1045
|
else if ("string" === input.type)
|
|
414
|
-
return
|
|
1046
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
415
1047
|
else
|
|
416
1048
|
return _report(_exceptionable, {
|
|
417
1049
|
path: _path,
|
|
@@ -448,12 +1080,17 @@ function createController(props) {
|
|
|
448
1080
|
}; })()(next);
|
|
449
1081
|
if (result.success === false)
|
|
450
1082
|
return result;
|
|
1083
|
+
else if (result.data.request.type !== "complete")
|
|
1084
|
+
return props.preliminary.validate({
|
|
1085
|
+
thinking: result.data.thinking,
|
|
1086
|
+
request: result.data.request,
|
|
1087
|
+
});
|
|
451
1088
|
// remove login operation for guest role
|
|
452
|
-
if (props.actor.kind === "guest") {
|
|
453
|
-
result.data.operations = result.data.operations.filter((op) => op.authorizationType !== "login");
|
|
1089
|
+
else if (props.actor.kind === "guest") {
|
|
1090
|
+
result.data.request.operations = result.data.request.operations.filter((op) => op.authorizationType !== "login");
|
|
454
1091
|
}
|
|
455
1092
|
const errors = [];
|
|
456
|
-
result.data.operations.forEach((op, i) => {
|
|
1093
|
+
result.data.request.operations.forEach((op, i) => {
|
|
457
1094
|
var _a, _b;
|
|
458
1095
|
// validate authorizationActor
|
|
459
1096
|
if (op.authorizationActor !== null) {
|
|
@@ -464,7 +1101,7 @@ function createController(props) {
|
|
|
464
1101
|
return;
|
|
465
1102
|
else if (op.responseBody === null)
|
|
466
1103
|
errors.push({
|
|
467
|
-
path: `$input.operations.${i}.responseBody`,
|
|
1104
|
+
path: `$input.request.operations.${i}.responseBody`,
|
|
468
1105
|
expected: "Response body with I{RoleName(PascalCase)}.IAuthorized type is required",
|
|
469
1106
|
value: op.responseBody,
|
|
470
1107
|
description: utils_1.StringUtil.trim `
|
|
@@ -477,7 +1114,7 @@ function createController(props) {
|
|
|
477
1114
|
});
|
|
478
1115
|
else if (!op.responseBody.typeName.endsWith(".IAuthorized"))
|
|
479
1116
|
errors.push({
|
|
480
|
-
path: `$input.operations.${i}.responseBody.typeName`,
|
|
1117
|
+
path: `$input.request.operations.${i}.responseBody.typeName`,
|
|
481
1118
|
expected: `Type name must be I{RoleName(PascalCase)}.IAuthorized`,
|
|
482
1119
|
value: (_a = op.responseBody) === null || _a === void 0 ? void 0 : _a.typeName,
|
|
483
1120
|
description: utils_1.StringUtil.trim `
|
|
@@ -490,7 +1127,7 @@ function createController(props) {
|
|
|
490
1127
|
`,
|
|
491
1128
|
});
|
|
492
1129
|
});
|
|
493
|
-
const authorizationTypes = new Set(result.data.operations
|
|
1130
|
+
const authorizationTypes = new Set(result.data.request.operations
|
|
494
1131
|
.map((o) => o.authorizationType)
|
|
495
1132
|
.filter((v) => v !== null));
|
|
496
1133
|
for (const type of [
|
|
@@ -502,21 +1139,21 @@ function createController(props) {
|
|
|
502
1139
|
continue;
|
|
503
1140
|
else if (authorizationTypes.has(type) === false)
|
|
504
1141
|
errors.push({
|
|
505
|
-
path: "$input.operations[].authorizationType",
|
|
1142
|
+
path: "$input.request.operations[].authorizationType",
|
|
506
1143
|
expected: utils_1.StringUtil.trim `{
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
1144
|
+
...(AutoBeOpenApi.IOperation data),
|
|
1145
|
+
authorizationType: "${type}"
|
|
1146
|
+
}`,
|
|
510
1147
|
value: `No authorizationType "${type}" found in any operation`,
|
|
511
1148
|
description: utils_1.StringUtil.trim `
|
|
512
|
-
|
|
513
|
-
|
|
1149
|
+
There must be an operation that has defined AutoBeOpenApi.IOperation.authorizationType := "${type}"
|
|
1150
|
+
for the "${props.actor}" role's authorization activity; "${type}".
|
|
514
1151
|
|
|
515
|
-
|
|
516
|
-
|
|
1152
|
+
However, none of the operations have the AutoBeOpenApi.IOperation.authorizationType := "${type}"
|
|
1153
|
+
value, so that the "${props.actor}" cannot perform the authorization ${type} activity.
|
|
517
1154
|
|
|
518
|
-
|
|
519
|
-
|
|
1155
|
+
Please make that operation at the next function calling. You have to do it.
|
|
1156
|
+
`,
|
|
520
1157
|
});
|
|
521
1158
|
if (errors.length !== 0) {
|
|
522
1159
|
return {
|
|
@@ -534,17 +1171,18 @@ function createController(props) {
|
|
|
534
1171
|
: "claude"](validate);
|
|
535
1172
|
return {
|
|
536
1173
|
protocol: "class",
|
|
537
|
-
name:
|
|
1174
|
+
name: SOURCE,
|
|
538
1175
|
application,
|
|
539
1176
|
execute: {
|
|
540
|
-
|
|
541
|
-
|
|
1177
|
+
process: (next) => {
|
|
1178
|
+
if (next.request.type === "complete")
|
|
1179
|
+
props.build(next.request);
|
|
542
1180
|
},
|
|
543
1181
|
},
|
|
544
1182
|
};
|
|
545
1183
|
}
|
|
546
1184
|
const collection = {
|
|
547
|
-
chatgpt: (
|
|
1185
|
+
chatgpt: (validator) => (() => {
|
|
548
1186
|
const application = {
|
|
549
1187
|
model: "chatgpt",
|
|
550
1188
|
options: {
|
|
@@ -554,24 +1192,116 @@ const collection = {
|
|
|
554
1192
|
},
|
|
555
1193
|
functions: [
|
|
556
1194
|
{
|
|
557
|
-
name: "
|
|
1195
|
+
name: "process",
|
|
558
1196
|
parameters: {
|
|
559
|
-
description: "
|
|
1197
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceAuthorizationsApplication.IProps}",
|
|
560
1198
|
type: "object",
|
|
561
1199
|
properties: {
|
|
562
|
-
|
|
563
|
-
description: "
|
|
564
|
-
type: "
|
|
565
|
-
|
|
566
|
-
|
|
1200
|
+
thinking: {
|
|
1201
|
+
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.",
|
|
1202
|
+
type: "string"
|
|
1203
|
+
},
|
|
1204
|
+
request: {
|
|
1205
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final authorization operations\ngeneration (complete). When preliminary returns empty array, that type is\nremoved from the union, physically preventing repeated calls.",
|
|
1206
|
+
anyOf: [
|
|
1207
|
+
{
|
|
1208
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
1209
|
+
},
|
|
1210
|
+
{
|
|
1211
|
+
$ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
|
|
1212
|
+
},
|
|
1213
|
+
{
|
|
1214
|
+
$ref: "#/$defs/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
1215
|
+
}
|
|
1216
|
+
],
|
|
1217
|
+
"x-discriminator": {
|
|
1218
|
+
propertyName: "type",
|
|
1219
|
+
mapping: {
|
|
1220
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
1221
|
+
getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
|
|
1222
|
+
complete: "#/$defs/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
1223
|
+
}
|
|
567
1224
|
}
|
|
568
1225
|
}
|
|
569
1226
|
},
|
|
570
1227
|
required: [
|
|
571
|
-
"
|
|
1228
|
+
"thinking",
|
|
1229
|
+
"request"
|
|
572
1230
|
],
|
|
573
1231
|
additionalProperties: false,
|
|
574
1232
|
$defs: {
|
|
1233
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
1234
|
+
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.",
|
|
1235
|
+
type: "object",
|
|
1236
|
+
properties: {
|
|
1237
|
+
type: {
|
|
1238
|
+
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.",
|
|
1239
|
+
type: "string",
|
|
1240
|
+
"enum": [
|
|
1241
|
+
"getAnalysisFiles"
|
|
1242
|
+
]
|
|
1243
|
+
},
|
|
1244
|
+
fileNames: {
|
|
1245
|
+
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",
|
|
1246
|
+
type: "array",
|
|
1247
|
+
items: {
|
|
1248
|
+
type: "string"
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
},
|
|
1252
|
+
required: [
|
|
1253
|
+
"type",
|
|
1254
|
+
"fileNames"
|
|
1255
|
+
]
|
|
1256
|
+
},
|
|
1257
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
1258
|
+
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.",
|
|
1259
|
+
type: "object",
|
|
1260
|
+
properties: {
|
|
1261
|
+
type: {
|
|
1262
|
+
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.",
|
|
1263
|
+
type: "string",
|
|
1264
|
+
"enum": [
|
|
1265
|
+
"getPrismaSchemas"
|
|
1266
|
+
]
|
|
1267
|
+
},
|
|
1268
|
+
schemaNames: {
|
|
1269
|
+
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",
|
|
1270
|
+
type: "array",
|
|
1271
|
+
items: {
|
|
1272
|
+
type: "string"
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1275
|
+
},
|
|
1276
|
+
required: [
|
|
1277
|
+
"type",
|
|
1278
|
+
"schemaNames"
|
|
1279
|
+
]
|
|
1280
|
+
},
|
|
1281
|
+
"IAutoBeInterfaceAuthorizationsApplication.IComplete": {
|
|
1282
|
+
description: "Request to generate authorization operations.\n\nExecutes authorization operations generation to define the authorization\nrequirements for the given roles. Ensures operations reflect correct\npermissions and access levels for each role.",
|
|
1283
|
+
type: "object",
|
|
1284
|
+
properties: {
|
|
1285
|
+
type: {
|
|
1286
|
+
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.",
|
|
1287
|
+
type: "string",
|
|
1288
|
+
"enum": [
|
|
1289
|
+
"complete"
|
|
1290
|
+
]
|
|
1291
|
+
},
|
|
1292
|
+
operations: {
|
|
1293
|
+
description: "Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., \"/resources/{resourceId}\")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.\n\n\n@minItems 1",
|
|
1294
|
+
type: "array",
|
|
1295
|
+
items: {
|
|
1296
|
+
$ref: "#/$defs/AutoBeOpenApi.IOperation"
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
},
|
|
1300
|
+
required: [
|
|
1301
|
+
"type",
|
|
1302
|
+
"operations"
|
|
1303
|
+
]
|
|
1304
|
+
},
|
|
575
1305
|
"AutoBeOpenApi.IOperation": {
|
|
576
1306
|
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```",
|
|
577
1307
|
type: "object",
|
|
@@ -940,17 +1670,82 @@ const collection = {
|
|
|
940
1670
|
}
|
|
941
1671
|
}
|
|
942
1672
|
},
|
|
943
|
-
description: "
|
|
944
|
-
validate: (() => { const
|
|
1673
|
+
description: "Process authorization operations generation task or preliminary data\nrequests.\n\nGenerates authorization operations for the given roles and ensures the\ninterface reflects correct permissions and access levels.",
|
|
1674
|
+
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 && (Array.isArray(input.operations) && (1 <= input.operations.length && input.operations.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io4 = 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 && _io5(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io9(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io10(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 && _io11(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 _io5 = 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 _io6 = 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 _io7 = 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 _io8 = 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 _io9 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io12(input.endpoint) && "string" === typeof input.description; const _io12 = 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 => (() => {
|
|
1675
|
+
if ("getAnalysisFiles" === input.type)
|
|
1676
|
+
return _io1(input);
|
|
1677
|
+
else if ("getPrismaSchemas" === input.type)
|
|
1678
|
+
return _io2(input);
|
|
1679
|
+
else if ("complete" === input.type)
|
|
1680
|
+
return _io3(input);
|
|
1681
|
+
else
|
|
1682
|
+
return false;
|
|
1683
|
+
})(); const _iu1 = input => (() => {
|
|
945
1684
|
if ("number" === input.type)
|
|
946
|
-
return
|
|
1685
|
+
return _io7(input);
|
|
947
1686
|
else if ("integer" === input.type)
|
|
948
|
-
return
|
|
1687
|
+
return _io6(input);
|
|
949
1688
|
else if ("string" === input.type)
|
|
950
|
-
return
|
|
1689
|
+
return _io8(input);
|
|
951
1690
|
else
|
|
952
1691
|
return false;
|
|
953
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
1692
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
1693
|
+
path: _path + ".thinking",
|
|
1694
|
+
expected: "string",
|
|
1695
|
+
value: input.thinking
|
|
1696
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
1697
|
+
path: _path + ".request",
|
|
1698
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
1699
|
+
value: input.request
|
|
1700
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
1701
|
+
path: _path + ".request",
|
|
1702
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
1703
|
+
value: input.request
|
|
1704
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
1705
|
+
path: _path + ".type",
|
|
1706
|
+
expected: "\"getAnalysisFiles\"",
|
|
1707
|
+
value: input.type
|
|
1708
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
1709
|
+
path: _path + ".fileNames",
|
|
1710
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1711
|
+
value: input.fileNames
|
|
1712
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
1713
|
+
path: _path + ".fileNames",
|
|
1714
|
+
expected: "Array<> & MinItems<1>",
|
|
1715
|
+
value: input.fileNames
|
|
1716
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
1717
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
1718
|
+
expected: "string",
|
|
1719
|
+
value: elem
|
|
1720
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1721
|
+
path: _path + ".fileNames",
|
|
1722
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1723
|
+
value: input.fileNames
|
|
1724
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
1725
|
+
path: _path + ".type",
|
|
1726
|
+
expected: "\"getPrismaSchemas\"",
|
|
1727
|
+
value: input.type
|
|
1728
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
1729
|
+
path: _path + ".schemaNames",
|
|
1730
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1731
|
+
value: input.schemaNames
|
|
1732
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
1733
|
+
path: _path + ".schemaNames",
|
|
1734
|
+
expected: "Array<> & MinItems<1>",
|
|
1735
|
+
value: input.schemaNames
|
|
1736
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
1737
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
1738
|
+
expected: "string",
|
|
1739
|
+
value: elem
|
|
1740
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1741
|
+
path: _path + ".schemaNames",
|
|
1742
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
1743
|
+
value: input.schemaNames
|
|
1744
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
1745
|
+
path: _path + ".type",
|
|
1746
|
+
expected: "\"complete\"",
|
|
1747
|
+
value: input.type
|
|
1748
|
+
}), (Array.isArray(input.operations) || _report(_exceptionable, {
|
|
954
1749
|
path: _path + ".operations",
|
|
955
1750
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
956
1751
|
value: input.operations
|
|
@@ -958,19 +1753,19 @@ const collection = {
|
|
|
958
1753
|
path: _path + ".operations",
|
|
959
1754
|
expected: "Array<> & MinItems<1>",
|
|
960
1755
|
value: input.operations
|
|
961
|
-
})) && input.operations.map((elem,
|
|
962
|
-
path: _path + ".operations[" +
|
|
1756
|
+
})) && input.operations.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1757
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
963
1758
|
expected: "AutoBeOpenApi.IOperation",
|
|
964
1759
|
value: elem
|
|
965
|
-
})) &&
|
|
966
|
-
path: _path + ".operations[" +
|
|
1760
|
+
})) && _vo4(elem, _path + ".operations[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1761
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
967
1762
|
expected: "AutoBeOpenApi.IOperation",
|
|
968
1763
|
value: elem
|
|
969
1764
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
970
1765
|
path: _path + ".operations",
|
|
971
1766
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
972
1767
|
value: input.operations
|
|
973
|
-
})].every(flag => flag); const
|
|
1768
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
974
1769
|
path: _path + ".specification",
|
|
975
1770
|
expected: "string",
|
|
976
1771
|
value: input.specification
|
|
@@ -990,12 +1785,12 @@ const collection = {
|
|
|
990
1785
|
path: _path + ".parameters",
|
|
991
1786
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
992
1787
|
value: input.parameters
|
|
993
|
-
})) && input.parameters.map((elem,
|
|
994
|
-
path: _path + ".parameters[" +
|
|
1788
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1789
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
995
1790
|
expected: "AutoBeOpenApi.IParameter",
|
|
996
1791
|
value: elem
|
|
997
|
-
})) &&
|
|
998
|
-
path: _path + ".parameters[" +
|
|
1792
|
+
})) && _vo5(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1793
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
999
1794
|
expected: "AutoBeOpenApi.IParameter",
|
|
1000
1795
|
value: elem
|
|
1001
1796
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -1006,7 +1801,7 @@ const collection = {
|
|
|
1006
1801
|
path: _path + ".requestBody",
|
|
1007
1802
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
1008
1803
|
value: input.requestBody
|
|
1009
|
-
})) &&
|
|
1804
|
+
})) && _vo9(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
1010
1805
|
path: _path + ".requestBody",
|
|
1011
1806
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
1012
1807
|
value: input.requestBody
|
|
@@ -1014,7 +1809,7 @@ const collection = {
|
|
|
1014
1809
|
path: _path + ".responseBody",
|
|
1015
1810
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
1016
1811
|
value: input.responseBody
|
|
1017
|
-
})) &&
|
|
1812
|
+
})) && _vo10(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
1018
1813
|
path: _path + ".responseBody",
|
|
1019
1814
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
1020
1815
|
value: input.responseBody
|
|
@@ -1042,12 +1837,12 @@ const collection = {
|
|
|
1042
1837
|
path: _path + ".prerequisites",
|
|
1043
1838
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
1044
1839
|
value: input.prerequisites
|
|
1045
|
-
})) && input.prerequisites.map((elem,
|
|
1046
|
-
path: _path + ".prerequisites[" +
|
|
1840
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
1841
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1047
1842
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1048
1843
|
value: elem
|
|
1049
|
-
})) &&
|
|
1050
|
-
path: _path + ".prerequisites[" +
|
|
1844
|
+
})) && _vo11(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
1845
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1051
1846
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1052
1847
|
value: elem
|
|
1053
1848
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -1066,7 +1861,7 @@ const collection = {
|
|
|
1066
1861
|
path: _path + ".method",
|
|
1067
1862
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1068
1863
|
value: input.method
|
|
1069
|
-
})].every(flag => flag); const
|
|
1864
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
1070
1865
|
path: _path + ".name",
|
|
1071
1866
|
expected: "string & CamelCasePattern",
|
|
1072
1867
|
value: input.name
|
|
@@ -1082,11 +1877,11 @@ const collection = {
|
|
|
1082
1877
|
path: _path + ".schema",
|
|
1083
1878
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1084
1879
|
value: input.schema
|
|
1085
|
-
})) &&
|
|
1880
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
1086
1881
|
path: _path + ".schema",
|
|
1087
1882
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1088
1883
|
value: input.schema
|
|
1089
|
-
})].every(flag => flag); const
|
|
1884
|
+
})].every(flag => flag); const _vo6 = (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, {
|
|
1090
1885
|
path: _path + ".minimum",
|
|
1091
1886
|
expected: "number & Type<\"int64\">",
|
|
1092
1887
|
value: input.minimum
|
|
@@ -1126,7 +1921,7 @@ const collection = {
|
|
|
1126
1921
|
path: _path + ".type",
|
|
1127
1922
|
expected: "\"integer\"",
|
|
1128
1923
|
value: input.type
|
|
1129
|
-
})].every(flag => flag); const
|
|
1924
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
1130
1925
|
path: _path + ".minimum",
|
|
1131
1926
|
expected: "(number | undefined)",
|
|
1132
1927
|
value: input.minimum
|
|
@@ -1154,7 +1949,7 @@ const collection = {
|
|
|
1154
1949
|
path: _path + ".type",
|
|
1155
1950
|
expected: "\"number\"",
|
|
1156
1951
|
value: input.type
|
|
1157
|
-
})].every(flag => flag); const
|
|
1952
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
1158
1953
|
path: _path + ".format",
|
|
1159
1954
|
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)",
|
|
1160
1955
|
value: input.format
|
|
@@ -1186,7 +1981,7 @@ const collection = {
|
|
|
1186
1981
|
path: _path + ".type",
|
|
1187
1982
|
expected: "\"string\"",
|
|
1188
1983
|
value: input.type
|
|
1189
|
-
})].every(flag => flag); const
|
|
1984
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1190
1985
|
path: _path + ".description",
|
|
1191
1986
|
expected: "string",
|
|
1192
1987
|
value: input.description
|
|
@@ -1194,7 +1989,7 @@ const collection = {
|
|
|
1194
1989
|
path: _path + ".typeName",
|
|
1195
1990
|
expected: "string",
|
|
1196
1991
|
value: input.typeName
|
|
1197
|
-
})].every(flag => flag); const
|
|
1992
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1198
1993
|
path: _path + ".description",
|
|
1199
1994
|
expected: "string",
|
|
1200
1995
|
value: input.description
|
|
@@ -1202,11 +1997,11 @@ const collection = {
|
|
|
1202
1997
|
path: _path + ".typeName",
|
|
1203
1998
|
expected: "string",
|
|
1204
1999
|
value: input.typeName
|
|
1205
|
-
})].every(flag => flag); const
|
|
2000
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
1206
2001
|
path: _path + ".endpoint",
|
|
1207
2002
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1208
2003
|
value: input.endpoint
|
|
1209
|
-
})) &&
|
|
2004
|
+
})) && _vo12(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
1210
2005
|
path: _path + ".endpoint",
|
|
1211
2006
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
1212
2007
|
value: input.endpoint
|
|
@@ -1214,7 +2009,7 @@ const collection = {
|
|
|
1214
2009
|
path: _path + ".description",
|
|
1215
2010
|
expected: "string",
|
|
1216
2011
|
value: input.description
|
|
1217
|
-
})].every(flag => flag); const
|
|
2012
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
1218
2013
|
path: _path + ".path",
|
|
1219
2014
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
1220
2015
|
value: input.path
|
|
@@ -1227,12 +2022,25 @@ const collection = {
|
|
|
1227
2022
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1228
2023
|
value: input.method
|
|
1229
2024
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
2025
|
+
if ("getAnalysisFiles" === input.type)
|
|
2026
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
2027
|
+
else if ("getPrismaSchemas" === input.type)
|
|
2028
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
2029
|
+
else if ("complete" === input.type)
|
|
2030
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
2031
|
+
else
|
|
2032
|
+
return _report(_exceptionable, {
|
|
2033
|
+
path: _path,
|
|
2034
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceAuthorizationsApplication.IComplete)",
|
|
2035
|
+
value: input
|
|
2036
|
+
});
|
|
2037
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
1230
2038
|
if ("number" === input.type)
|
|
1231
|
-
return
|
|
2039
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
1232
2040
|
else if ("integer" === input.type)
|
|
1233
|
-
return
|
|
2041
|
+
return _vo6(input, _path, true && _exceptionable);
|
|
1234
2042
|
else if ("string" === input.type)
|
|
1235
|
-
return
|
|
2043
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
1236
2044
|
else
|
|
1237
2045
|
return _report(_exceptionable, {
|
|
1238
2046
|
path: _path,
|
|
@@ -1272,12 +2080,12 @@ const collection = {
|
|
|
1272
2080
|
};
|
|
1273
2081
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
1274
2082
|
validate: {
|
|
1275
|
-
|
|
2083
|
+
process: validator,
|
|
1276
2084
|
},
|
|
1277
2085
|
}), { equals: false }));
|
|
1278
2086
|
return application;
|
|
1279
2087
|
})(),
|
|
1280
|
-
claude: (
|
|
2088
|
+
claude: (validator) => (() => {
|
|
1281
2089
|
const application = {
|
|
1282
2090
|
model: "claude",
|
|
1283
2091
|
options: {
|
|
@@ -1286,25 +2094,110 @@ const collection = {
|
|
|
1286
2094
|
},
|
|
1287
2095
|
functions: [
|
|
1288
2096
|
{
|
|
1289
|
-
name: "
|
|
2097
|
+
name: "process",
|
|
1290
2098
|
parameters: {
|
|
1291
|
-
description: "
|
|
2099
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceAuthorizationsApplication.IProps}",
|
|
1292
2100
|
type: "object",
|
|
1293
2101
|
properties: {
|
|
1294
|
-
|
|
1295
|
-
description: "
|
|
1296
|
-
type: "
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
2102
|
+
thinking: {
|
|
2103
|
+
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.",
|
|
2104
|
+
type: "string"
|
|
2105
|
+
},
|
|
2106
|
+
request: {
|
|
2107
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final authorization operations\ngeneration (complete). When preliminary returns empty array, that type is\nremoved from the union, physically preventing repeated calls.",
|
|
2108
|
+
oneOf: [
|
|
2109
|
+
{
|
|
2110
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
2111
|
+
},
|
|
2112
|
+
{
|
|
2113
|
+
$ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
|
|
2114
|
+
},
|
|
2115
|
+
{
|
|
2116
|
+
$ref: "#/$defs/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
2117
|
+
}
|
|
2118
|
+
],
|
|
2119
|
+
discriminator: {
|
|
2120
|
+
propertyName: "type",
|
|
2121
|
+
mapping: {
|
|
2122
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
2123
|
+
getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
|
|
2124
|
+
complete: "#/$defs/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
2125
|
+
}
|
|
2126
|
+
}
|
|
1301
2127
|
}
|
|
1302
2128
|
},
|
|
1303
2129
|
required: [
|
|
1304
|
-
"
|
|
2130
|
+
"thinking",
|
|
2131
|
+
"request"
|
|
1305
2132
|
],
|
|
1306
2133
|
additionalProperties: false,
|
|
1307
2134
|
$defs: {
|
|
2135
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
2136
|
+
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.",
|
|
2137
|
+
type: "object",
|
|
2138
|
+
properties: {
|
|
2139
|
+
type: {
|
|
2140
|
+
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.",
|
|
2141
|
+
"const": "getAnalysisFiles"
|
|
2142
|
+
},
|
|
2143
|
+
fileNames: {
|
|
2144
|
+
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.",
|
|
2145
|
+
type: "array",
|
|
2146
|
+
items: {
|
|
2147
|
+
type: "string"
|
|
2148
|
+
},
|
|
2149
|
+
minItems: 1
|
|
2150
|
+
}
|
|
2151
|
+
},
|
|
2152
|
+
required: [
|
|
2153
|
+
"type",
|
|
2154
|
+
"fileNames"
|
|
2155
|
+
]
|
|
2156
|
+
},
|
|
2157
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
2158
|
+
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.",
|
|
2159
|
+
type: "object",
|
|
2160
|
+
properties: {
|
|
2161
|
+
type: {
|
|
2162
|
+
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.",
|
|
2163
|
+
"const": "getPrismaSchemas"
|
|
2164
|
+
},
|
|
2165
|
+
schemaNames: {
|
|
2166
|
+
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.",
|
|
2167
|
+
type: "array",
|
|
2168
|
+
items: {
|
|
2169
|
+
type: "string"
|
|
2170
|
+
},
|
|
2171
|
+
minItems: 1
|
|
2172
|
+
}
|
|
2173
|
+
},
|
|
2174
|
+
required: [
|
|
2175
|
+
"type",
|
|
2176
|
+
"schemaNames"
|
|
2177
|
+
]
|
|
2178
|
+
},
|
|
2179
|
+
"IAutoBeInterfaceAuthorizationsApplication.IComplete": {
|
|
2180
|
+
description: "Request to generate authorization operations.\n\nExecutes authorization operations generation to define the authorization\nrequirements for the given roles. Ensures operations reflect correct\npermissions and access levels for each role.",
|
|
2181
|
+
type: "object",
|
|
2182
|
+
properties: {
|
|
2183
|
+
type: {
|
|
2184
|
+
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.",
|
|
2185
|
+
"const": "complete"
|
|
2186
|
+
},
|
|
2187
|
+
operations: {
|
|
2188
|
+
description: "Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., \"/resources/{resourceId}\")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.",
|
|
2189
|
+
type: "array",
|
|
2190
|
+
items: {
|
|
2191
|
+
$ref: "#/$defs/AutoBeOpenApi.IOperation"
|
|
2192
|
+
},
|
|
2193
|
+
minItems: 1
|
|
2194
|
+
}
|
|
2195
|
+
},
|
|
2196
|
+
required: [
|
|
2197
|
+
"type",
|
|
2198
|
+
"operations"
|
|
2199
|
+
]
|
|
2200
|
+
},
|
|
1308
2201
|
"AutoBeOpenApi.IOperation": {
|
|
1309
2202
|
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```",
|
|
1310
2203
|
type: "object",
|
|
@@ -1733,17 +2626,82 @@ const collection = {
|
|
|
1733
2626
|
}
|
|
1734
2627
|
}
|
|
1735
2628
|
},
|
|
1736
|
-
description: "
|
|
1737
|
-
validate: (() => { const
|
|
2629
|
+
description: "Process authorization operations generation task or preliminary data\nrequests.\n\nGenerates authorization operations for the given roles and ensures the\ninterface reflects correct permissions and access levels.",
|
|
2630
|
+
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 && (Array.isArray(input.operations) && (1 <= input.operations.length && input.operations.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io4 = 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 && _io5(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io9(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io10(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 && _io11(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 _io5 = 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 _io6 = 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 _io7 = 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 _io8 = 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 _io9 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io12(input.endpoint) && "string" === typeof input.description; const _io12 = 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 => (() => {
|
|
2631
|
+
if ("getAnalysisFiles" === input.type)
|
|
2632
|
+
return _io1(input);
|
|
2633
|
+
else if ("getPrismaSchemas" === input.type)
|
|
2634
|
+
return _io2(input);
|
|
2635
|
+
else if ("complete" === input.type)
|
|
2636
|
+
return _io3(input);
|
|
2637
|
+
else
|
|
2638
|
+
return false;
|
|
2639
|
+
})(); const _iu1 = input => (() => {
|
|
1738
2640
|
if ("number" === input.type)
|
|
1739
|
-
return
|
|
2641
|
+
return _io7(input);
|
|
1740
2642
|
else if ("integer" === input.type)
|
|
1741
|
-
return
|
|
2643
|
+
return _io6(input);
|
|
1742
2644
|
else if ("string" === input.type)
|
|
1743
|
-
return
|
|
2645
|
+
return _io8(input);
|
|
1744
2646
|
else
|
|
1745
2647
|
return false;
|
|
1746
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
2648
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
2649
|
+
path: _path + ".thinking",
|
|
2650
|
+
expected: "string",
|
|
2651
|
+
value: input.thinking
|
|
2652
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
2653
|
+
path: _path + ".request",
|
|
2654
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
2655
|
+
value: input.request
|
|
2656
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
2657
|
+
path: _path + ".request",
|
|
2658
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
2659
|
+
value: input.request
|
|
2660
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
2661
|
+
path: _path + ".type",
|
|
2662
|
+
expected: "\"getAnalysisFiles\"",
|
|
2663
|
+
value: input.type
|
|
2664
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
2665
|
+
path: _path + ".fileNames",
|
|
2666
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2667
|
+
value: input.fileNames
|
|
2668
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
2669
|
+
path: _path + ".fileNames",
|
|
2670
|
+
expected: "Array<> & MinItems<1>",
|
|
2671
|
+
value: input.fileNames
|
|
2672
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
2673
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
2674
|
+
expected: "string",
|
|
2675
|
+
value: elem
|
|
2676
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2677
|
+
path: _path + ".fileNames",
|
|
2678
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2679
|
+
value: input.fileNames
|
|
2680
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
2681
|
+
path: _path + ".type",
|
|
2682
|
+
expected: "\"getPrismaSchemas\"",
|
|
2683
|
+
value: input.type
|
|
2684
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
2685
|
+
path: _path + ".schemaNames",
|
|
2686
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2687
|
+
value: input.schemaNames
|
|
2688
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
2689
|
+
path: _path + ".schemaNames",
|
|
2690
|
+
expected: "Array<> & MinItems<1>",
|
|
2691
|
+
value: input.schemaNames
|
|
2692
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
2693
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
2694
|
+
expected: "string",
|
|
2695
|
+
value: elem
|
|
2696
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2697
|
+
path: _path + ".schemaNames",
|
|
2698
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
2699
|
+
value: input.schemaNames
|
|
2700
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
2701
|
+
path: _path + ".type",
|
|
2702
|
+
expected: "\"complete\"",
|
|
2703
|
+
value: input.type
|
|
2704
|
+
}), (Array.isArray(input.operations) || _report(_exceptionable, {
|
|
1747
2705
|
path: _path + ".operations",
|
|
1748
2706
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
1749
2707
|
value: input.operations
|
|
@@ -1751,19 +2709,19 @@ const collection = {
|
|
|
1751
2709
|
path: _path + ".operations",
|
|
1752
2710
|
expected: "Array<> & MinItems<1>",
|
|
1753
2711
|
value: input.operations
|
|
1754
|
-
})) && input.operations.map((elem,
|
|
1755
|
-
path: _path + ".operations[" +
|
|
2712
|
+
})) && input.operations.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2713
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
1756
2714
|
expected: "AutoBeOpenApi.IOperation",
|
|
1757
2715
|
value: elem
|
|
1758
|
-
})) &&
|
|
1759
|
-
path: _path + ".operations[" +
|
|
2716
|
+
})) && _vo4(elem, _path + ".operations[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2717
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
1760
2718
|
expected: "AutoBeOpenApi.IOperation",
|
|
1761
2719
|
value: elem
|
|
1762
2720
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
1763
2721
|
path: _path + ".operations",
|
|
1764
2722
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
1765
2723
|
value: input.operations
|
|
1766
|
-
})].every(flag => flag); const
|
|
2724
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
1767
2725
|
path: _path + ".specification",
|
|
1768
2726
|
expected: "string",
|
|
1769
2727
|
value: input.specification
|
|
@@ -1783,12 +2741,12 @@ const collection = {
|
|
|
1783
2741
|
path: _path + ".parameters",
|
|
1784
2742
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
1785
2743
|
value: input.parameters
|
|
1786
|
-
})) && input.parameters.map((elem,
|
|
1787
|
-
path: _path + ".parameters[" +
|
|
2744
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2745
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
1788
2746
|
expected: "AutoBeOpenApi.IParameter",
|
|
1789
2747
|
value: elem
|
|
1790
|
-
})) &&
|
|
1791
|
-
path: _path + ".parameters[" +
|
|
2748
|
+
})) && _vo5(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2749
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
1792
2750
|
expected: "AutoBeOpenApi.IParameter",
|
|
1793
2751
|
value: elem
|
|
1794
2752
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -1799,7 +2757,7 @@ const collection = {
|
|
|
1799
2757
|
path: _path + ".requestBody",
|
|
1800
2758
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
1801
2759
|
value: input.requestBody
|
|
1802
|
-
})) &&
|
|
2760
|
+
})) && _vo9(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
1803
2761
|
path: _path + ".requestBody",
|
|
1804
2762
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
1805
2763
|
value: input.requestBody
|
|
@@ -1807,7 +2765,7 @@ const collection = {
|
|
|
1807
2765
|
path: _path + ".responseBody",
|
|
1808
2766
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
1809
2767
|
value: input.responseBody
|
|
1810
|
-
})) &&
|
|
2768
|
+
})) && _vo10(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
1811
2769
|
path: _path + ".responseBody",
|
|
1812
2770
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
1813
2771
|
value: input.responseBody
|
|
@@ -1835,12 +2793,12 @@ const collection = {
|
|
|
1835
2793
|
path: _path + ".prerequisites",
|
|
1836
2794
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
1837
2795
|
value: input.prerequisites
|
|
1838
|
-
})) && input.prerequisites.map((elem,
|
|
1839
|
-
path: _path + ".prerequisites[" +
|
|
2796
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
2797
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1840
2798
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1841
2799
|
value: elem
|
|
1842
|
-
})) &&
|
|
1843
|
-
path: _path + ".prerequisites[" +
|
|
2800
|
+
})) && _vo11(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
2801
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
1844
2802
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
1845
2803
|
value: elem
|
|
1846
2804
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -1859,7 +2817,7 @@ const collection = {
|
|
|
1859
2817
|
path: _path + ".method",
|
|
1860
2818
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
1861
2819
|
value: input.method
|
|
1862
|
-
})].every(flag => flag); const
|
|
2820
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
1863
2821
|
path: _path + ".name",
|
|
1864
2822
|
expected: "string & CamelCasePattern",
|
|
1865
2823
|
value: input.name
|
|
@@ -1875,11 +2833,11 @@ const collection = {
|
|
|
1875
2833
|
path: _path + ".schema",
|
|
1876
2834
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1877
2835
|
value: input.schema
|
|
1878
|
-
})) &&
|
|
2836
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
1879
2837
|
path: _path + ".schema",
|
|
1880
2838
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
1881
2839
|
value: input.schema
|
|
1882
|
-
})].every(flag => flag); const
|
|
2840
|
+
})].every(flag => flag); const _vo6 = (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, {
|
|
1883
2841
|
path: _path + ".minimum",
|
|
1884
2842
|
expected: "number & Type<\"int64\">",
|
|
1885
2843
|
value: input.minimum
|
|
@@ -1919,7 +2877,7 @@ const collection = {
|
|
|
1919
2877
|
path: _path + ".type",
|
|
1920
2878
|
expected: "\"integer\"",
|
|
1921
2879
|
value: input.type
|
|
1922
|
-
})].every(flag => flag); const
|
|
2880
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
1923
2881
|
path: _path + ".minimum",
|
|
1924
2882
|
expected: "(number | undefined)",
|
|
1925
2883
|
value: input.minimum
|
|
@@ -1947,7 +2905,7 @@ const collection = {
|
|
|
1947
2905
|
path: _path + ".type",
|
|
1948
2906
|
expected: "\"number\"",
|
|
1949
2907
|
value: input.type
|
|
1950
|
-
})].every(flag => flag); const
|
|
2908
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
1951
2909
|
path: _path + ".format",
|
|
1952
2910
|
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)",
|
|
1953
2911
|
value: input.format
|
|
@@ -1979,7 +2937,7 @@ const collection = {
|
|
|
1979
2937
|
path: _path + ".type",
|
|
1980
2938
|
expected: "\"string\"",
|
|
1981
2939
|
value: input.type
|
|
1982
|
-
})].every(flag => flag); const
|
|
2940
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1983
2941
|
path: _path + ".description",
|
|
1984
2942
|
expected: "string",
|
|
1985
2943
|
value: input.description
|
|
@@ -1987,7 +2945,7 @@ const collection = {
|
|
|
1987
2945
|
path: _path + ".typeName",
|
|
1988
2946
|
expected: "string",
|
|
1989
2947
|
value: input.typeName
|
|
1990
|
-
})].every(flag => flag); const
|
|
2948
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
1991
2949
|
path: _path + ".description",
|
|
1992
2950
|
expected: "string",
|
|
1993
2951
|
value: input.description
|
|
@@ -1995,11 +2953,11 @@ const collection = {
|
|
|
1995
2953
|
path: _path + ".typeName",
|
|
1996
2954
|
expected: "string",
|
|
1997
2955
|
value: input.typeName
|
|
1998
|
-
})].every(flag => flag); const
|
|
2956
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
1999
2957
|
path: _path + ".endpoint",
|
|
2000
2958
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
2001
2959
|
value: input.endpoint
|
|
2002
|
-
})) &&
|
|
2960
|
+
})) && _vo12(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
2003
2961
|
path: _path + ".endpoint",
|
|
2004
2962
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
2005
2963
|
value: input.endpoint
|
|
@@ -2007,7 +2965,7 @@ const collection = {
|
|
|
2007
2965
|
path: _path + ".description",
|
|
2008
2966
|
expected: "string",
|
|
2009
2967
|
value: input.description
|
|
2010
|
-
})].every(flag => flag); const
|
|
2968
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
2011
2969
|
path: _path + ".path",
|
|
2012
2970
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
2013
2971
|
value: input.path
|
|
@@ -2020,12 +2978,25 @@ const collection = {
|
|
|
2020
2978
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
2021
2979
|
value: input.method
|
|
2022
2980
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
2981
|
+
if ("getAnalysisFiles" === input.type)
|
|
2982
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
2983
|
+
else if ("getPrismaSchemas" === input.type)
|
|
2984
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
2985
|
+
else if ("complete" === input.type)
|
|
2986
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
2987
|
+
else
|
|
2988
|
+
return _report(_exceptionable, {
|
|
2989
|
+
path: _path,
|
|
2990
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceAuthorizationsApplication.IComplete)",
|
|
2991
|
+
value: input
|
|
2992
|
+
});
|
|
2993
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
2023
2994
|
if ("number" === input.type)
|
|
2024
|
-
return
|
|
2995
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
2025
2996
|
else if ("integer" === input.type)
|
|
2026
|
-
return
|
|
2997
|
+
return _vo6(input, _path, true && _exceptionable);
|
|
2027
2998
|
else if ("string" === input.type)
|
|
2028
|
-
return
|
|
2999
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
2029
3000
|
else
|
|
2030
3001
|
return _report(_exceptionable, {
|
|
2031
3002
|
path: _path,
|
|
@@ -2065,12 +3036,12 @@ const collection = {
|
|
|
2065
3036
|
};
|
|
2066
3037
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
2067
3038
|
validate: {
|
|
2068
|
-
|
|
3039
|
+
process: validator,
|
|
2069
3040
|
},
|
|
2070
3041
|
}), { equals: false }));
|
|
2071
3042
|
return application;
|
|
2072
3043
|
})(),
|
|
2073
|
-
gemini: (
|
|
3044
|
+
gemini: (validator) => (() => {
|
|
2074
3045
|
const application = {
|
|
2075
3046
|
model: "gemini",
|
|
2076
3047
|
options: {
|
|
@@ -2079,25 +3050,119 @@ const collection = {
|
|
|
2079
3050
|
},
|
|
2080
3051
|
functions: [
|
|
2081
3052
|
{
|
|
2082
|
-
name: "
|
|
3053
|
+
name: "process",
|
|
2083
3054
|
parameters: {
|
|
2084
|
-
description: "
|
|
3055
|
+
description: " Request containing either preliminary data request or complete\ntask\n\n------------------------------\n\nCurrent Type: {@link IAutoBeInterfaceAuthorizationsApplication.IProps}",
|
|
2085
3056
|
type: "object",
|
|
2086
3057
|
properties: {
|
|
2087
|
-
|
|
2088
|
-
description: "
|
|
2089
|
-
type: "
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
3058
|
+
thinking: {
|
|
3059
|
+
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.",
|
|
3060
|
+
type: "string"
|
|
3061
|
+
},
|
|
3062
|
+
request: {
|
|
3063
|
+
description: "Type discriminator for the request.\n\nDetermines which action to perform: preliminary data retrieval\n(getAnalysisFiles, getPrismaSchemas) or final authorization operations\ngeneration (complete). When preliminary returns empty array, that type is\nremoved from the union, physically preventing repeated calls.",
|
|
3064
|
+
anyOf: [
|
|
3065
|
+
{
|
|
3066
|
+
$ref: "#/$defs/IAutoBePreliminaryGetAnalysisFiles"
|
|
3067
|
+
},
|
|
3068
|
+
{
|
|
3069
|
+
$ref: "#/$defs/IAutoBePreliminaryGetPrismaSchemas"
|
|
3070
|
+
},
|
|
3071
|
+
{
|
|
3072
|
+
$ref: "#/$defs/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
3073
|
+
}
|
|
3074
|
+
],
|
|
3075
|
+
"x-discriminator": {
|
|
3076
|
+
propertyName: "type",
|
|
3077
|
+
mapping: {
|
|
3078
|
+
getAnalysisFiles: "#/$defs/IAutoBePreliminaryGetAnalysisFiles",
|
|
3079
|
+
getPrismaSchemas: "#/$defs/IAutoBePreliminaryGetPrismaSchemas",
|
|
3080
|
+
complete: "#/$defs/IAutoBeInterfaceAuthorizationsApplication.IComplete"
|
|
3081
|
+
}
|
|
3082
|
+
}
|
|
2094
3083
|
}
|
|
2095
3084
|
},
|
|
2096
3085
|
required: [
|
|
2097
|
-
"
|
|
3086
|
+
"thinking",
|
|
3087
|
+
"request"
|
|
2098
3088
|
],
|
|
2099
3089
|
additionalProperties: false,
|
|
2100
3090
|
$defs: {
|
|
3091
|
+
IAutoBePreliminaryGetAnalysisFiles: {
|
|
3092
|
+
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.",
|
|
3093
|
+
type: "object",
|
|
3094
|
+
properties: {
|
|
3095
|
+
type: {
|
|
3096
|
+
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.",
|
|
3097
|
+
type: "string",
|
|
3098
|
+
"enum": [
|
|
3099
|
+
"getAnalysisFiles"
|
|
3100
|
+
]
|
|
3101
|
+
},
|
|
3102
|
+
fileNames: {
|
|
3103
|
+
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.",
|
|
3104
|
+
type: "array",
|
|
3105
|
+
items: {
|
|
3106
|
+
type: "string"
|
|
3107
|
+
},
|
|
3108
|
+
minItems: 1
|
|
3109
|
+
}
|
|
3110
|
+
},
|
|
3111
|
+
required: [
|
|
3112
|
+
"type",
|
|
3113
|
+
"fileNames"
|
|
3114
|
+
]
|
|
3115
|
+
},
|
|
3116
|
+
IAutoBePreliminaryGetPrismaSchemas: {
|
|
3117
|
+
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.",
|
|
3118
|
+
type: "object",
|
|
3119
|
+
properties: {
|
|
3120
|
+
type: {
|
|
3121
|
+
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.",
|
|
3122
|
+
type: "string",
|
|
3123
|
+
"enum": [
|
|
3124
|
+
"getPrismaSchemas"
|
|
3125
|
+
]
|
|
3126
|
+
},
|
|
3127
|
+
schemaNames: {
|
|
3128
|
+
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.",
|
|
3129
|
+
type: "array",
|
|
3130
|
+
items: {
|
|
3131
|
+
type: "string"
|
|
3132
|
+
},
|
|
3133
|
+
minItems: 1
|
|
3134
|
+
}
|
|
3135
|
+
},
|
|
3136
|
+
required: [
|
|
3137
|
+
"type",
|
|
3138
|
+
"schemaNames"
|
|
3139
|
+
]
|
|
3140
|
+
},
|
|
3141
|
+
"IAutoBeInterfaceAuthorizationsApplication.IComplete": {
|
|
3142
|
+
description: "Request to generate authorization operations.\n\nExecutes authorization operations generation to define the authorization\nrequirements for the given roles. Ensures operations reflect correct\npermissions and access levels for each role.",
|
|
3143
|
+
type: "object",
|
|
3144
|
+
properties: {
|
|
3145
|
+
type: {
|
|
3146
|
+
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.",
|
|
3147
|
+
type: "string",
|
|
3148
|
+
"enum": [
|
|
3149
|
+
"complete"
|
|
3150
|
+
]
|
|
3151
|
+
},
|
|
3152
|
+
operations: {
|
|
3153
|
+
description: "Array of API operations to generate authorization operation for.\n\nEach operation in this array must include:\n\n- Specification: Detailed API specification with clear purpose and\n functionality\n- Path: Resource-centric URL path (e.g., \"/resources/{resourceId}\")\n- Method: HTTP method (get, post, put, delete, patch)\n- Description: Extremely detailed multi-paragraph description referencing\n Prisma schema comments\n- Summary: Concise one-sentence summary of the endpoint\n- Parameters: Array of all necessary parameters with descriptions and\n schema definitions\n- RequestBody: For POST/PUT/PATCH methods, with typeName referencing\n components.schemas\n- ResponseBody: With typeName referencing appropriate response type\n\nAll operations must follow strict quality standards:\n\n1. Detailed descriptions referencing Prisma schema comments\n2. Accurate parameter definitions matching path parameters\n3. Appropriate request/response body type references\n4. Consistent patterns for CRUD operations\n\nFor list retrievals (typically PATCH), include pagination, search, and\nsorting. For detail retrieval (GET), return a single resource. For\ncreation (POST), use .ICreate request body. For modification (PUT), use\n.IUpdate request body.",
|
|
3154
|
+
type: "array",
|
|
3155
|
+
items: {
|
|
3156
|
+
$ref: "#/$defs/AutoBeOpenApi.IOperation"
|
|
3157
|
+
},
|
|
3158
|
+
minItems: 1
|
|
3159
|
+
}
|
|
3160
|
+
},
|
|
3161
|
+
required: [
|
|
3162
|
+
"type",
|
|
3163
|
+
"operations"
|
|
3164
|
+
]
|
|
3165
|
+
},
|
|
2101
3166
|
"AutoBeOpenApi.IOperation": {
|
|
2102
3167
|
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```",
|
|
2103
3168
|
type: "object",
|
|
@@ -2475,17 +3540,82 @@ const collection = {
|
|
|
2475
3540
|
}
|
|
2476
3541
|
}
|
|
2477
3542
|
},
|
|
2478
|
-
description: "
|
|
2479
|
-
validate: (() => { const
|
|
3543
|
+
description: "Process authorization operations generation task or preliminary data\nrequests.\n\nGenerates authorization operations for the given roles and ensures the\ninterface reflects correct permissions and access levels.",
|
|
3544
|
+
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 && (Array.isArray(input.operations) && (1 <= input.operations.length && input.operations.every(elem => "object" === typeof elem && null !== elem && _io4(elem)))); const _io4 = 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 && _io5(elem))) && (null === input.requestBody || "object" === typeof input.requestBody && null !== input.requestBody && _io9(input.requestBody)) && (null === input.responseBody || "object" === typeof input.responseBody && null !== input.responseBody && _io10(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 && _io11(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 _io5 = 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 _io6 = 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 _io7 = 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 _io8 = 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 _io9 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io10 = input => "string" === typeof input.description && "string" === typeof input.typeName; const _io11 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io12(input.endpoint) && "string" === typeof input.description; const _io12 = 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 => (() => {
|
|
3545
|
+
if ("getAnalysisFiles" === input.type)
|
|
3546
|
+
return _io1(input);
|
|
3547
|
+
else if ("getPrismaSchemas" === input.type)
|
|
3548
|
+
return _io2(input);
|
|
3549
|
+
else if ("complete" === input.type)
|
|
3550
|
+
return _io3(input);
|
|
3551
|
+
else
|
|
3552
|
+
return false;
|
|
3553
|
+
})(); const _iu1 = input => (() => {
|
|
2480
3554
|
if ("number" === input.type)
|
|
2481
|
-
return
|
|
3555
|
+
return _io7(input);
|
|
2482
3556
|
else if ("integer" === input.type)
|
|
2483
|
-
return
|
|
3557
|
+
return _io6(input);
|
|
2484
3558
|
else if ("string" === input.type)
|
|
2485
|
-
return
|
|
3559
|
+
return _io8(input);
|
|
2486
3560
|
else
|
|
2487
3561
|
return false;
|
|
2488
|
-
})(); const _vo0 = (input, _path, _exceptionable = true) => [
|
|
3562
|
+
})(); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.thinking || _report(_exceptionable, {
|
|
3563
|
+
path: _path + ".thinking",
|
|
3564
|
+
expected: "string",
|
|
3565
|
+
value: input.thinking
|
|
3566
|
+
}), ("object" === typeof input.request && null !== input.request || _report(_exceptionable, {
|
|
3567
|
+
path: _path + ".request",
|
|
3568
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
3569
|
+
value: input.request
|
|
3570
|
+
})) && _vu0(input.request, _path + ".request", true && _exceptionable) || _report(_exceptionable, {
|
|
3571
|
+
path: _path + ".request",
|
|
3572
|
+
expected: "(IAutoBeInterfaceAuthorizationsApplication.IComplete | IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas)",
|
|
3573
|
+
value: input.request
|
|
3574
|
+
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["getAnalysisFiles" === input.type || _report(_exceptionable, {
|
|
3575
|
+
path: _path + ".type",
|
|
3576
|
+
expected: "\"getAnalysisFiles\"",
|
|
3577
|
+
value: input.type
|
|
3578
|
+
}), (Array.isArray(input.fileNames) || _report(_exceptionable, {
|
|
3579
|
+
path: _path + ".fileNames",
|
|
3580
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3581
|
+
value: input.fileNames
|
|
3582
|
+
})) && ((1 <= input.fileNames.length || _report(_exceptionable, {
|
|
3583
|
+
path: _path + ".fileNames",
|
|
3584
|
+
expected: "Array<> & MinItems<1>",
|
|
3585
|
+
value: input.fileNames
|
|
3586
|
+
})) && input.fileNames.map((elem, _index7) => "string" === typeof elem || _report(_exceptionable, {
|
|
3587
|
+
path: _path + ".fileNames[" + _index7 + "]",
|
|
3588
|
+
expected: "string",
|
|
3589
|
+
value: elem
|
|
3590
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
3591
|
+
path: _path + ".fileNames",
|
|
3592
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3593
|
+
value: input.fileNames
|
|
3594
|
+
})].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["getPrismaSchemas" === input.type || _report(_exceptionable, {
|
|
3595
|
+
path: _path + ".type",
|
|
3596
|
+
expected: "\"getPrismaSchemas\"",
|
|
3597
|
+
value: input.type
|
|
3598
|
+
}), (Array.isArray(input.schemaNames) || _report(_exceptionable, {
|
|
3599
|
+
path: _path + ".schemaNames",
|
|
3600
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3601
|
+
value: input.schemaNames
|
|
3602
|
+
})) && ((1 <= input.schemaNames.length || _report(_exceptionable, {
|
|
3603
|
+
path: _path + ".schemaNames",
|
|
3604
|
+
expected: "Array<> & MinItems<1>",
|
|
3605
|
+
value: input.schemaNames
|
|
3606
|
+
})) && input.schemaNames.map((elem, _index8) => "string" === typeof elem || _report(_exceptionable, {
|
|
3607
|
+
path: _path + ".schemaNames[" + _index8 + "]",
|
|
3608
|
+
expected: "string",
|
|
3609
|
+
value: elem
|
|
3610
|
+
})).every(flag => flag)) || _report(_exceptionable, {
|
|
3611
|
+
path: _path + ".schemaNames",
|
|
3612
|
+
expected: "(Array<string> & MinItems<1>)",
|
|
3613
|
+
value: input.schemaNames
|
|
3614
|
+
})].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["complete" === input.type || _report(_exceptionable, {
|
|
3615
|
+
path: _path + ".type",
|
|
3616
|
+
expected: "\"complete\"",
|
|
3617
|
+
value: input.type
|
|
3618
|
+
}), (Array.isArray(input.operations) || _report(_exceptionable, {
|
|
2489
3619
|
path: _path + ".operations",
|
|
2490
3620
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
2491
3621
|
value: input.operations
|
|
@@ -2493,19 +3623,19 @@ const collection = {
|
|
|
2493
3623
|
path: _path + ".operations",
|
|
2494
3624
|
expected: "Array<> & MinItems<1>",
|
|
2495
3625
|
value: input.operations
|
|
2496
|
-
})) && input.operations.map((elem,
|
|
2497
|
-
path: _path + ".operations[" +
|
|
3626
|
+
})) && input.operations.map((elem, _index9) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
3627
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
2498
3628
|
expected: "AutoBeOpenApi.IOperation",
|
|
2499
3629
|
value: elem
|
|
2500
|
-
})) &&
|
|
2501
|
-
path: _path + ".operations[" +
|
|
3630
|
+
})) && _vo4(elem, _path + ".operations[" + _index9 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
3631
|
+
path: _path + ".operations[" + _index9 + "]",
|
|
2502
3632
|
expected: "AutoBeOpenApi.IOperation",
|
|
2503
3633
|
value: elem
|
|
2504
3634
|
})).every(flag => flag)) || _report(_exceptionable, {
|
|
2505
3635
|
path: _path + ".operations",
|
|
2506
3636
|
expected: "(Array<AutoBeOpenApi.IOperation> & MinItems<1>)",
|
|
2507
3637
|
value: input.operations
|
|
2508
|
-
})].every(flag => flag); const
|
|
3638
|
+
})].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => ["string" === typeof input.specification || _report(_exceptionable, {
|
|
2509
3639
|
path: _path + ".specification",
|
|
2510
3640
|
expected: "string",
|
|
2511
3641
|
value: input.specification
|
|
@@ -2525,12 +3655,12 @@ const collection = {
|
|
|
2525
3655
|
path: _path + ".parameters",
|
|
2526
3656
|
expected: "Array<AutoBeOpenApi.IParameter>",
|
|
2527
3657
|
value: input.parameters
|
|
2528
|
-
})) && input.parameters.map((elem,
|
|
2529
|
-
path: _path + ".parameters[" +
|
|
3658
|
+
})) && input.parameters.map((elem, _index10) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
3659
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
2530
3660
|
expected: "AutoBeOpenApi.IParameter",
|
|
2531
3661
|
value: elem
|
|
2532
|
-
})) &&
|
|
2533
|
-
path: _path + ".parameters[" +
|
|
3662
|
+
})) && _vo5(elem, _path + ".parameters[" + _index10 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
3663
|
+
path: _path + ".parameters[" + _index10 + "]",
|
|
2534
3664
|
expected: "AutoBeOpenApi.IParameter",
|
|
2535
3665
|
value: elem
|
|
2536
3666
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -2541,7 +3671,7 @@ const collection = {
|
|
|
2541
3671
|
path: _path + ".requestBody",
|
|
2542
3672
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
2543
3673
|
value: input.requestBody
|
|
2544
|
-
})) &&
|
|
3674
|
+
})) && _vo9(input.requestBody, _path + ".requestBody", true && _exceptionable) || _report(_exceptionable, {
|
|
2545
3675
|
path: _path + ".requestBody",
|
|
2546
3676
|
expected: "(AutoBeOpenApi.IRequestBody | null)",
|
|
2547
3677
|
value: input.requestBody
|
|
@@ -2549,7 +3679,7 @@ const collection = {
|
|
|
2549
3679
|
path: _path + ".responseBody",
|
|
2550
3680
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
2551
3681
|
value: input.responseBody
|
|
2552
|
-
})) &&
|
|
3682
|
+
})) && _vo10(input.responseBody, _path + ".responseBody", true && _exceptionable) || _report(_exceptionable, {
|
|
2553
3683
|
path: _path + ".responseBody",
|
|
2554
3684
|
expected: "(AutoBeOpenApi.IResponseBody | null)",
|
|
2555
3685
|
value: input.responseBody
|
|
@@ -2577,12 +3707,12 @@ const collection = {
|
|
|
2577
3707
|
path: _path + ".prerequisites",
|
|
2578
3708
|
expected: "Array<AutoBeOpenApi.IPrerequisite>",
|
|
2579
3709
|
value: input.prerequisites
|
|
2580
|
-
})) && input.prerequisites.map((elem,
|
|
2581
|
-
path: _path + ".prerequisites[" +
|
|
3710
|
+
})) && input.prerequisites.map((elem, _index11) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
3711
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
2582
3712
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
2583
3713
|
value: elem
|
|
2584
|
-
})) &&
|
|
2585
|
-
path: _path + ".prerequisites[" +
|
|
3714
|
+
})) && _vo11(elem, _path + ".prerequisites[" + _index11 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
3715
|
+
path: _path + ".prerequisites[" + _index11 + "]",
|
|
2586
3716
|
expected: "AutoBeOpenApi.IPrerequisite",
|
|
2587
3717
|
value: elem
|
|
2588
3718
|
})).every(flag => flag) || _report(_exceptionable, {
|
|
@@ -2601,7 +3731,7 @@ const collection = {
|
|
|
2601
3731
|
path: _path + ".method",
|
|
2602
3732
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
2603
3733
|
value: input.method
|
|
2604
|
-
})].every(flag => flag); const
|
|
3734
|
+
})].every(flag => flag); const _vo5 = (input, _path, _exceptionable = true) => ["string" === typeof input.name && (RegExp("^[a-z][a-zA-Z0-9]*$").test(input.name) || _report(_exceptionable, {
|
|
2605
3735
|
path: _path + ".name",
|
|
2606
3736
|
expected: "string & CamelCasePattern",
|
|
2607
3737
|
value: input.name
|
|
@@ -2617,11 +3747,11 @@ const collection = {
|
|
|
2617
3747
|
path: _path + ".schema",
|
|
2618
3748
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
2619
3749
|
value: input.schema
|
|
2620
|
-
})) &&
|
|
3750
|
+
})) && _vu1(input.schema, _path + ".schema", true && _exceptionable) || _report(_exceptionable, {
|
|
2621
3751
|
path: _path + ".schema",
|
|
2622
3752
|
expected: "(AutoBeOpenApi.IJsonSchema.IInteger | AutoBeOpenApi.IJsonSchema.INumber | AutoBeOpenApi.IJsonSchema.IString)",
|
|
2623
3753
|
value: input.schema
|
|
2624
|
-
})].every(flag => flag); const
|
|
3754
|
+
})].every(flag => flag); const _vo6 = (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, {
|
|
2625
3755
|
path: _path + ".minimum",
|
|
2626
3756
|
expected: "number & Type<\"int64\">",
|
|
2627
3757
|
value: input.minimum
|
|
@@ -2661,7 +3791,7 @@ const collection = {
|
|
|
2661
3791
|
path: _path + ".type",
|
|
2662
3792
|
expected: "\"integer\"",
|
|
2663
3793
|
value: input.type
|
|
2664
|
-
})].every(flag => flag); const
|
|
3794
|
+
})].every(flag => flag); const _vo7 = (input, _path, _exceptionable = true) => [undefined === input.minimum || "number" === typeof input.minimum || _report(_exceptionable, {
|
|
2665
3795
|
path: _path + ".minimum",
|
|
2666
3796
|
expected: "(number | undefined)",
|
|
2667
3797
|
value: input.minimum
|
|
@@ -2689,7 +3819,7 @@ const collection = {
|
|
|
2689
3819
|
path: _path + ".type",
|
|
2690
3820
|
expected: "\"number\"",
|
|
2691
3821
|
value: input.type
|
|
2692
|
-
})].every(flag => flag); const
|
|
3822
|
+
})].every(flag => flag); const _vo8 = (input, _path, _exceptionable = true) => [undefined === input.format || true === _vv12.has(input.format) || _report(_exceptionable, {
|
|
2693
3823
|
path: _path + ".format",
|
|
2694
3824
|
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)",
|
|
2695
3825
|
value: input.format
|
|
@@ -2721,7 +3851,7 @@ const collection = {
|
|
|
2721
3851
|
path: _path + ".type",
|
|
2722
3852
|
expected: "\"string\"",
|
|
2723
3853
|
value: input.type
|
|
2724
|
-
})].every(flag => flag); const
|
|
3854
|
+
})].every(flag => flag); const _vo9 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
2725
3855
|
path: _path + ".description",
|
|
2726
3856
|
expected: "string",
|
|
2727
3857
|
value: input.description
|
|
@@ -2729,7 +3859,7 @@ const collection = {
|
|
|
2729
3859
|
path: _path + ".typeName",
|
|
2730
3860
|
expected: "string",
|
|
2731
3861
|
value: input.typeName
|
|
2732
|
-
})].every(flag => flag); const
|
|
3862
|
+
})].every(flag => flag); const _vo10 = (input, _path, _exceptionable = true) => ["string" === typeof input.description || _report(_exceptionable, {
|
|
2733
3863
|
path: _path + ".description",
|
|
2734
3864
|
expected: "string",
|
|
2735
3865
|
value: input.description
|
|
@@ -2737,11 +3867,11 @@ const collection = {
|
|
|
2737
3867
|
path: _path + ".typeName",
|
|
2738
3868
|
expected: "string",
|
|
2739
3869
|
value: input.typeName
|
|
2740
|
-
})].every(flag => flag); const
|
|
3870
|
+
})].every(flag => flag); const _vo11 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
|
|
2741
3871
|
path: _path + ".endpoint",
|
|
2742
3872
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
2743
3873
|
value: input.endpoint
|
|
2744
|
-
})) &&
|
|
3874
|
+
})) && _vo12(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
|
|
2745
3875
|
path: _path + ".endpoint",
|
|
2746
3876
|
expected: "AutoBeOpenApi.IEndpoint",
|
|
2747
3877
|
value: input.endpoint
|
|
@@ -2749,7 +3879,7 @@ const collection = {
|
|
|
2749
3879
|
path: _path + ".description",
|
|
2750
3880
|
expected: "string",
|
|
2751
3881
|
value: input.description
|
|
2752
|
-
})].every(flag => flag); const
|
|
3882
|
+
})].every(flag => flag); const _vo12 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
|
|
2753
3883
|
path: _path + ".path",
|
|
2754
3884
|
expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
|
|
2755
3885
|
value: input.path
|
|
@@ -2762,12 +3892,25 @@ const collection = {
|
|
|
2762
3892
|
expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
|
|
2763
3893
|
value: input.method
|
|
2764
3894
|
})].every(flag => flag); const _vu0 = (input, _path, _exceptionable = true) => (() => {
|
|
3895
|
+
if ("getAnalysisFiles" === input.type)
|
|
3896
|
+
return _vo1(input, _path, true && _exceptionable);
|
|
3897
|
+
else if ("getPrismaSchemas" === input.type)
|
|
3898
|
+
return _vo2(input, _path, true && _exceptionable);
|
|
3899
|
+
else if ("complete" === input.type)
|
|
3900
|
+
return _vo3(input, _path, true && _exceptionable);
|
|
3901
|
+
else
|
|
3902
|
+
return _report(_exceptionable, {
|
|
3903
|
+
path: _path,
|
|
3904
|
+
expected: "(IAutoBePreliminaryGetAnalysisFiles | IAutoBePreliminaryGetPrismaSchemas | IAutoBeInterfaceAuthorizationsApplication.IComplete)",
|
|
3905
|
+
value: input
|
|
3906
|
+
});
|
|
3907
|
+
})(); const _vu1 = (input, _path, _exceptionable = true) => (() => {
|
|
2765
3908
|
if ("number" === input.type)
|
|
2766
|
-
return
|
|
3909
|
+
return _vo7(input, _path, true && _exceptionable);
|
|
2767
3910
|
else if ("integer" === input.type)
|
|
2768
|
-
return
|
|
3911
|
+
return _vo6(input, _path, true && _exceptionable);
|
|
2769
3912
|
else if ("string" === input.type)
|
|
2770
|
-
return
|
|
3913
|
+
return _vo8(input, _path, true && _exceptionable);
|
|
2771
3914
|
else
|
|
2772
3915
|
return _report(_exceptionable, {
|
|
2773
3916
|
path: _path,
|
|
@@ -2807,10 +3950,11 @@ const collection = {
|
|
|
2807
3950
|
};
|
|
2808
3951
|
__typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
|
|
2809
3952
|
validate: {
|
|
2810
|
-
|
|
3953
|
+
process: validator,
|
|
2811
3954
|
},
|
|
2812
3955
|
}), { equals: false }));
|
|
2813
3956
|
return application;
|
|
2814
3957
|
})(),
|
|
2815
3958
|
};
|
|
2816
|
-
|
|
3959
|
+
const SOURCE = "interfaceAuthorization";
|
|
3960
|
+
//# sourceMappingURL=orchestrateInterfaceAuthorization.js.map
|