@autobe/agent 0.30.0-dev.20260315 → 0.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -661
- package/lib/constants/AutoBeTemplateFileConstant.d.ts +1 -1
- package/lib/factory/consentFunctionCall.js +4 -4
- package/lib/factory/createAutoBeContext.js +24 -24
- package/lib/factory/createAutoBeMessageContent.js +6 -6
- package/lib/index.mjs +41 -41
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.js +18 -18
- package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.js +13 -13
- package/lib/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.js +47 -47
- package/lib/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.js +66 -66
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.js +91 -91
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.js +46 -46
- package/lib/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.js +72 -72
- package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js +1 -1
- package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.js +5 -5
- package/lib/orchestrate/common/histories/transformPreliminaryHistory.js +44 -44
- package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js +44 -44
- package/lib/orchestrate/common/internal/fixPrelminaryApplication.js +22 -22
- package/lib/orchestrate/common/internal/validatePreliminary.js +116 -116
- package/lib/orchestrate/facade/createAutoBeFacadeController.js +3 -3
- package/lib/orchestrate/facade/structures/transformFacadeStateMessage.js +20 -20
- package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.js +34 -34
- package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.js +37 -37
- package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js +56 -56
- package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.js +26 -26
- package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.js +28 -28
- package/lib/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.js +11 -11
- package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js +38 -38
- package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js +29 -29
- package/lib/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.js +15 -15
- package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js +6 -6
- package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js +25 -25
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.js +67 -67
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.js +60 -60
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.js +83 -83
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js +29 -29
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js +74 -74
- package/lib/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.js +46 -46
- package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +9 -9
- package/lib/orchestrate/interface/orchestrateInterfaceOperation.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +4 -4
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js +5 -5
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js +1 -1
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.js +90 -90
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.js +6 -6
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.js +25 -25
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.js +71 -71
- package/lib/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.js +162 -162
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.js +11 -11
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.js +73 -73
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.js +35 -35
- package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.js +11 -11
- package/lib/orchestrate/interface/utils/AutoBeJsonSchemaFactory.js +4 -4
- package/lib/orchestrate/interface/utils/AutoBeJsonSchemaValidator.js +283 -283
- package/lib/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.js +76 -76
- package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.js +76 -76
- package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.js +51 -51
- package/lib/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.js +54 -54
- package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js +83 -83
- package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js +6 -6
- package/lib/orchestrate/prisma/histories/transformPrismaGroupHistory.js +22 -22
- package/lib/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.js +41 -41
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js +39 -39
- package/lib/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.js +41 -41
- package/lib/orchestrate/prisma/orchestratePrismaAuthorization.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaGroup.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js +1 -1
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.js +23 -23
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.js +7 -7
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.js +5 -5
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.js +20 -20
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.js +13 -13
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.js +51 -51
- package/lib/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.js +25 -25
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js +28 -28
- package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js +14 -14
- package/lib/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.js +42 -42
- package/lib/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.js +27 -27
- package/lib/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.js +57 -57
- package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js +35 -35
- package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js +14 -14
- package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js +37 -37
- package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js.map +1 -1
- package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js +47 -47
- package/lib/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.js +27 -27
- package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js +51 -51
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeCollectorPlan.js +11 -11
- package/lib/orchestrate/realize/orchestrateRealizeCollectorWrite.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeOperationWrite.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.js +1 -1
- package/lib/orchestrate/realize/orchestrateRealizeTransformerPlan.js +11 -11
- package/lib/orchestrate/realize/orchestrateRealizeTransformerWrite.js +1 -1
- package/lib/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.js +41 -41
- package/lib/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.js +21 -21
- package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js +57 -57
- package/lib/orchestrate/realize/utils/getRealizeWriteInputType.js +3 -3
- package/lib/orchestrate/realize/utils/printErrorHints.js +5 -5
- package/lib/orchestrate/test/compile/getTestImportStatements.js +9 -9
- package/lib/orchestrate/test/histories/transformTestAuthorizeWriteHistory.js +38 -38
- package/lib/orchestrate/test/histories/transformTestGenerationWriteHistory.js +79 -79
- package/lib/orchestrate/test/histories/transformTestOperationWriteHistory.js +162 -162
- package/lib/orchestrate/test/histories/transformTestPrepareWriteHistory.js +54 -54
- package/lib/orchestrate/test/histories/transformTestScenarioHistory.js +31 -31
- package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js +27 -27
- package/lib/orchestrate/test/orchestrateTestScenario.js +1 -1
- package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1 -1
- package/lib/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.js +31 -31
- package/lib/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.js +23 -23
- package/lib/orchestrate/test/programmers/AutoBeTestOperationProgrammer.js +6 -6
- package/lib/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.js +34 -34
- package/lib/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.js +39 -39
- package/lib/utils/predicateStateMessage.js +19 -19
- package/lib/utils/validateEmptyCode.js +16 -16
- package/package.json +5 -5
- package/src/AutoBeAgent.ts +374 -374
- package/src/AutoBeAgentBase.ts +126 -126
- package/src/AutoBeMockAgent.ts +254 -254
- package/src/constants/AutoBeConfigConstant.ts +173 -173
- package/src/constants/AutoBeTemplateFileConstant.ts +1 -1
- package/src/context/AutoBeContext.ts +107 -107
- package/src/context/AutoBeState.ts +66 -66
- package/src/context/AutoBeTokenUsage.ts +307 -307
- package/src/context/AutoBeTokenUsageComponent.ts +227 -227
- package/src/describe/describe.ts +47 -47
- package/src/describe/image/histories/transformImageDescribeDraftHistories.ts +16 -16
- package/src/describe/image/orchestrateImageDescribeDraft.ts +200 -200
- package/src/describe/image/structures/IAutoBeImageDescribeDraftApplication.ts +92 -92
- package/src/describe/imageDescribe.ts +64 -64
- package/src/factory/consentFunctionCall.ts +141 -141
- package/src/factory/createAgenticaHistory.ts +71 -71
- package/src/factory/createAutoBeContext.ts +584 -584
- package/src/factory/createAutoBeMessageContent.ts +36 -36
- package/src/factory/createAutoBeState.ts +20 -20
- package/src/factory/getAutoBeGenerated.ts +317 -317
- package/src/factory/getAutoBeRealizeGenerated.ts +31 -31
- package/src/factory/getCriticalCompiler.ts +52 -52
- package/src/factory/index.ts +1 -1
- package/src/factory/mergeSystemMessages.ts +60 -60
- package/src/factory/supportFunctionCallFallback.ts +214 -214
- package/src/factory/supportMistral.ts +138 -138
- package/src/index.ts +16 -16
- package/src/orchestrate/analyze/fillTocDeterministic.ts +280 -280
- package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.ts +55 -55
- package/src/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.ts +74 -74
- package/src/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.ts +179 -179
- package/src/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.ts +163 -163
- package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.ts +191 -191
- package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.ts +122 -122
- package/src/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.ts +161 -161
- package/src/orchestrate/analyze/index.ts +7 -7
- package/src/orchestrate/analyze/orchestrateAnalyze.ts +1693 -1693
- package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +267 -267
- package/src/orchestrate/analyze/orchestrateAnalyzeScenarioReview.ts +122 -122
- package/src/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.ts +146 -146
- package/src/orchestrate/analyze/orchestrateAnalyzeSectionReview.ts +154 -154
- package/src/orchestrate/analyze/orchestrateAnalyzeWriteSection.ts +388 -388
- package/src/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.ts +407 -407
- package/src/orchestrate/analyze/orchestrateAnalyzeWriteUnit.ts +348 -348
- package/src/orchestrate/analyze/programmers/AutoBeAnalyzeProgrammer.ts +149 -149
- package/src/orchestrate/analyze/structures/FixedAnalyzeTemplate.ts +961 -961
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +141 -141
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.ts +96 -96
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.ts +160 -160
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.ts +192 -192
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.ts +142 -142
- package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.ts +123 -123
- package/src/orchestrate/analyze/utils/buildConstraintConsistencyReport.ts +813 -813
- package/src/orchestrate/analyze/utils/buildErrorCodeRegistry.ts +324 -324
- package/src/orchestrate/analyze/utils/buildHardValidators.ts +88 -88
- package/src/orchestrate/analyze/utils/detectInventedEntities.ts +87 -87
- package/src/orchestrate/analyze/utils/detectProseConstraintConflicts.ts +319 -319
- package/src/orchestrate/analyze/utils/repairSectionReviewUtils.ts +181 -181
- package/src/orchestrate/analyze/utils/repairUtils.ts +60 -60
- package/src/orchestrate/analyze/utils/validateScenarioBasics.ts +104 -104
- package/src/orchestrate/common/AutoBePreliminaryController.ts +400 -400
- package/src/orchestrate/common/histories/transformCommonCorrectCastingHistory.ts +32 -32
- package/src/orchestrate/common/histories/transformPreliminaryHistory.ts +742 -742
- package/src/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.ts +77 -77
- package/src/orchestrate/common/internal/complementPreliminaryCollection.ts +263 -263
- package/src/orchestrate/common/internal/convertToSectionEntries.ts +57 -57
- package/src/orchestrate/common/internal/createPreliminaryCollection.ts +76 -76
- package/src/orchestrate/common/internal/fixPrelminaryApplication.ts +346 -346
- package/src/orchestrate/common/internal/validatePreliminary.ts +671 -671
- package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +223 -223
- package/src/orchestrate/common/orchestratePreliminary.ts +610 -610
- package/src/orchestrate/common/structures/AutoBePreliminaryRequest.ts +42 -42
- package/src/orchestrate/common/structures/IAnalysisSectionEntry.ts +35 -35
- package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +72 -72
- package/src/orchestrate/common/structures/IAutoBeOrchestrateResult.ts +28 -28
- package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +52 -52
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.ts +34 -34
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.ts +31 -31
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +32 -32
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +31 -31
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.ts +28 -28
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.ts +88 -88
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.ts +102 -102
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.ts +105 -105
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.ts +32 -32
- package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.ts +32 -32
- package/src/orchestrate/facade/createAutoBeFacadeController.ts +118 -118
- package/src/orchestrate/facade/histories/IAutoBeFacadeApplication.ts +139 -139
- package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationProps.ts +8 -8
- package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationResult.ts +9 -9
- package/src/orchestrate/facade/structures/transformFacadeStateMessage.ts +59 -59
- package/src/orchestrate/index.ts +5 -5
- package/src/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.ts +83 -83
- package/src/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.ts +78 -78
- package/src/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.ts +129 -129
- package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.ts +74 -74
- package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.ts +68 -68
- package/src/orchestrate/interface/histories/transformInterfaceCommonHistory.ts +64 -64
- package/src/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.ts +42 -42
- package/src/orchestrate/interface/histories/transformInterfaceGroupHistory.ts +103 -103
- package/src/orchestrate/interface/histories/transformInterfaceOperationHistory.ts +81 -81
- package/src/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.ts +53 -53
- package/src/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.ts +49 -49
- package/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.ts +94 -94
- package/src/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.ts +122 -122
- package/src/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.ts +192 -192
- package/src/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.ts +189 -189
- package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.ts +63 -63
- package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.ts +173 -173
- package/src/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.ts +88 -88
- package/src/orchestrate/interface/index.ts +6 -6
- package/src/orchestrate/interface/orchestrateInterface.ts +118 -118
- package/src/orchestrate/interface/orchestrateInterfaceActionEndpoint.ts +58 -58
- package/src/orchestrate/interface/orchestrateInterfaceAuthorization.ts +208 -208
- package/src/orchestrate/interface/orchestrateInterfaceBaseEndpoint.ts +55 -55
- package/src/orchestrate/interface/orchestrateInterfaceEndpoint.ts +67 -67
- package/src/orchestrate/interface/orchestrateInterfaceEndpointOverall.ts +80 -80
- package/src/orchestrate/interface/orchestrateInterfaceEndpointReview.ts +212 -212
- package/src/orchestrate/interface/orchestrateInterfaceEndpointWrite.ts +236 -236
- package/src/orchestrate/interface/orchestrateInterfaceGroup.ts +166 -166
- package/src/orchestrate/interface/orchestrateInterfaceOperation.ts +322 -322
- package/src/orchestrate/interface/orchestrateInterfaceOperationReview.ts +245 -245
- package/src/orchestrate/interface/orchestrateInterfacePrerequisite.ts +240 -240
- package/src/orchestrate/interface/orchestrateInterfaceSchema.ts +191 -191
- package/src/orchestrate/interface/orchestrateInterfaceSchemaCasting.ts +274 -274
- package/src/orchestrate/interface/orchestrateInterfaceSchemaComplement.ts +329 -329
- package/src/orchestrate/interface/orchestrateInterfaceSchemaRefine.ts +292 -292
- package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +266 -266
- package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +310 -310
- package/src/orchestrate/interface/orchestrateInterfaceSchemaWrite.ts +283 -283
- package/src/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.ts +260 -260
- package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.ts +155 -155
- package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.ts +139 -139
- package/src/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.ts +277 -277
- package/src/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.ts +259 -259
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.ts +152 -152
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.ts +347 -347
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.ts +183 -183
- package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.ts +263 -263
- package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.ts +135 -135
- package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +128 -128
- package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.ts +133 -133
- package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +122 -122
- package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +178 -178
- package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.ts +175 -175
- package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +130 -130
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +121 -121
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.ts +153 -153
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.ts +123 -123
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.ts +181 -181
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.ts +45 -45
- package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.ts +108 -108
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaCollection.ts +42 -42
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaFactory.ts +714 -714
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaNamingConvention.ts +86 -86
- package/src/orchestrate/interface/utils/AutoBeJsonSchemaValidator.ts +725 -725
- package/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.ts +219 -219
- package/src/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.ts +144 -144
- package/src/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.ts +104 -104
- package/src/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.ts +97 -97
- package/src/orchestrate/prisma/histories/transformPrismaComponentsHistory.ts +136 -136
- package/src/orchestrate/prisma/histories/transformPrismaCorrectHistory.ts +41 -41
- package/src/orchestrate/prisma/histories/transformPrismaGroupHistory.ts +63 -63
- package/src/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.ts +79 -79
- package/src/orchestrate/prisma/histories/transformPrismaSchemaHistory.ts +97 -97
- package/src/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.ts +126 -126
- package/src/orchestrate/prisma/index.ts +7 -7
- package/src/orchestrate/prisma/orchestratePrisma.ts +296 -296
- package/src/orchestrate/prisma/orchestratePrismaAuthorization.ts +173 -173
- package/src/orchestrate/prisma/orchestratePrismaAuthorizationReview.ts +183 -183
- package/src/orchestrate/prisma/orchestratePrismaComponent.ts +205 -205
- package/src/orchestrate/prisma/orchestratePrismaComponentReview.ts +205 -205
- package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +265 -265
- package/src/orchestrate/prisma/orchestratePrismaGroup.ts +121 -121
- package/src/orchestrate/prisma/orchestratePrismaGroupReview.ts +141 -141
- package/src/orchestrate/prisma/orchestratePrismaSchema.ts +218 -218
- package/src/orchestrate/prisma/orchestratePrismaSchemaReview.ts +220 -220
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.ts +86 -86
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.ts +103 -103
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.ts +80 -80
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.ts +168 -168
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.ts +63 -63
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.ts +210 -210
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseModelProgrammer.ts +57 -57
- package/src/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.ts +92 -92
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.ts +147 -147
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.ts +153 -153
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.ts +142 -142
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.ts +151 -151
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.ts +157 -157
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.ts +117 -117
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.ts +154 -154
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.ts +144 -144
- package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.ts +138 -138
- package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.ts +89 -89
- package/src/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.ts +45 -45
- package/src/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.ts +137 -137
- package/src/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.ts +64 -64
- package/src/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.ts +147 -147
- package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.ts +69 -69
- package/src/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.ts +94 -94
- package/src/orchestrate/realize/histories/transformRealizeOperationWriteHistory.ts +127 -127
- package/src/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.ts +147 -147
- package/src/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.ts +61 -61
- package/src/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.ts +133 -133
- package/src/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.ts +30 -30
- package/src/orchestrate/realize/index.ts +3 -3
- package/src/orchestrate/realize/internal/orchestrateRealizeCorrectCasting.ts +444 -444
- package/src/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.ts +449 -449
- package/src/orchestrate/realize/orchestrateRealize.ts +143 -143
- package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +207 -207
- package/src/orchestrate/realize/orchestrateRealizeAuthorizationWrite.ts +209 -209
- package/src/orchestrate/realize/orchestrateRealizeCollector.ts +41 -41
- package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectCasting.ts +43 -43
- package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.ts +157 -157
- package/src/orchestrate/realize/orchestrateRealizeCollectorPlan.ts +264 -264
- package/src/orchestrate/realize/orchestrateRealizeCollectorWrite.ts +225 -225
- package/src/orchestrate/realize/orchestrateRealizeOperation.ts +48 -48
- package/src/orchestrate/realize/orchestrateRealizeOperationCorrectCasting.ts +69 -69
- package/src/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.ts +173 -173
- package/src/orchestrate/realize/orchestrateRealizeOperationWrite.ts +262 -262
- package/src/orchestrate/realize/orchestrateRealizeTransformer.ts +41 -41
- package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.ts +38 -38
- package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.ts +160 -160
- package/src/orchestrate/realize/orchestrateRealizeTransformerPlan.ts +254 -254
- package/src/orchestrate/realize/orchestrateRealizeTransformerWrite.ts +226 -226
- package/src/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.ts +424 -424
- package/src/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.ts +409 -409
- package/src/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.ts +451 -451
- package/src/orchestrate/realize/programmers/compileRealizeFiles.ts +65 -65
- package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +119 -119
- package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.ts +167 -167
- package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.ts +191 -191
- package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.ts +177 -177
- package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.ts +207 -207
- package/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.ts +11 -11
- package/src/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.ts +134 -134
- package/src/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.ts +138 -138
- package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.ts +32 -32
- package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.ts +248 -248
- package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.ts +150 -150
- package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.ts +278 -278
- package/src/orchestrate/realize/utils/AuthorizationFileSystem.ts +10 -10
- package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationFileSystem.ts +9 -9
- package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationReplaceImport.ts +62 -62
- package/src/orchestrate/realize/utils/InternalFileSystem.ts +12 -12
- package/src/orchestrate/realize/utils/ProviderFileSystem.ts +4 -4
- package/src/orchestrate/realize/utils/filterDiagnostics.ts +25 -25
- package/src/orchestrate/realize/utils/generateTS2339Hints.ts +54 -54
- package/src/orchestrate/realize/utils/getRealizeWriteImportStatements.ts +42 -42
- package/src/orchestrate/realize/utils/getRealizeWriteInputType.ts +88 -88
- package/src/orchestrate/realize/utils/printErrorHints.ts +54 -54
- package/src/orchestrate/test/compile/getTestArtifacts.ts +124 -124
- package/src/orchestrate/test/compile/getTestExternalDeclarations.ts +39 -39
- package/src/orchestrate/test/compile/getTestImportStatements.ts +27 -27
- package/src/orchestrate/test/experimental/orchestrateTestCorrect.ast +237 -237
- package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +322 -322
- package/src/orchestrate/test/experimental/transformTestCorrectHistories.ast +52 -52
- package/src/orchestrate/test/histories/transformTestAuthorizeWriteHistory.ts +80 -80
- package/src/orchestrate/test/histories/transformTestCorrectOverallHistory.ts +116 -116
- package/src/orchestrate/test/histories/transformTestGenerationWriteHistory.ts +118 -118
- package/src/orchestrate/test/histories/transformTestOperationWriteHistory.ts +287 -287
- package/src/orchestrate/test/histories/transformTestPrepareWriteHistory.ts +95 -95
- package/src/orchestrate/test/histories/transformTestScenarioHistory.ts +120 -120
- package/src/orchestrate/test/histories/transformTestScenarioReviewHistory.ts +99 -99
- package/src/orchestrate/test/histories/transformTestValidateEvent.ts +11 -11
- package/src/orchestrate/test/index.ts +5 -5
- package/src/orchestrate/test/internal/orchestrateTestCorrectCasting.ts +96 -96
- package/src/orchestrate/test/internal/orchestrateTestCorrectOverall.ts +219 -219
- package/src/orchestrate/test/internal/orchestrateTestCorrectRequest.ts +206 -206
- package/src/orchestrate/test/orchestrateTest.ts +161 -161
- package/src/orchestrate/test/orchestrateTestAuthorize.ts +125 -125
- package/src/orchestrate/test/orchestrateTestAuthorizeWrite.ts +263 -263
- package/src/orchestrate/test/orchestrateTestGenerate.ts +121 -121
- package/src/orchestrate/test/orchestrateTestGenerateWrite.ts +211 -211
- package/src/orchestrate/test/orchestrateTestOperation.ts +133 -133
- package/src/orchestrate/test/orchestrateTestOperationWrite.ts +221 -221
- package/src/orchestrate/test/orchestrateTestPrepare.ts +117 -117
- package/src/orchestrate/test/orchestrateTestPrepareWrite.ts +264 -264
- package/src/orchestrate/test/orchestrateTestScenario.ts +290 -290
- package/src/orchestrate/test/orchestrateTestScenarioReview.ts +262 -262
- package/src/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.ts +149 -149
- package/src/orchestrate/test/programmers/AutoBeTestFunctionProgrammer.ts +90 -90
- package/src/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.ts +170 -170
- package/src/orchestrate/test/programmers/AutoBeTestOperationProgrammer.ts +168 -168
- package/src/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.ts +261 -261
- package/src/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.ts +316 -316
- package/src/orchestrate/test/structures/IAutoBeTestArtifacts.ts +8 -8
- package/src/orchestrate/test/structures/IAutoBeTestAuthorizationWriteApplication.ts +113 -113
- package/src/orchestrate/test/structures/IAutoBeTestAuthorizeWriteResult.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestCorrectOverallApplication.ts +134 -134
- package/src/orchestrate/test/structures/IAutoBeTestCorrectRequestApplication.ts +152 -152
- package/src/orchestrate/test/structures/IAutoBeTestFunction.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestGenerateProcedure.ts +15 -15
- package/src/orchestrate/test/structures/IAutoBeTestGenerationWriteApplication.ts +145 -145
- package/src/orchestrate/test/structures/IAutoBeTestOperationProcedure.ts +17 -17
- package/src/orchestrate/test/structures/IAutoBeTestOperationWriteApplication.ts +162 -162
- package/src/orchestrate/test/structures/IAutoBeTestPrepareCorrectOverallApplication.ts +194 -194
- package/src/orchestrate/test/structures/IAutoBeTestPrepareProcedure.ts +8 -8
- package/src/orchestrate/test/structures/IAutoBeTestPrepareWriteApplication.ts +147 -147
- package/src/orchestrate/test/structures/IAutoBeTestProcedure.ts +10 -10
- package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +105 -105
- package/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.ts +8 -8
- package/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationActor.ts +7 -7
- package/src/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.ts +133 -133
- package/src/orchestrate/test/utils/getPrerequisites.ts +51 -51
- package/src/orchestrate/test/utils/getReferenceIds.ts +26 -26
- package/src/orchestrate/test/utils/insertScriptToTestResult.ts +14 -14
- package/src/structures/IAutoBeConfig.ts +110 -110
- package/src/structures/IAutoBeOrchestrateHistory.ts +44 -44
- package/src/structures/IAutoBeProps.ts +102 -102
- package/src/structures/IAutoBeVendor.ts +113 -113
- package/src/utils/AutoBePreliminaryExhaustedError.ts +30 -30
- package/src/utils/AutoBeTimeoutError.ts +35 -35
- package/src/utils/EmbeddingProvider.ts +4 -4
- package/src/utils/LocalEmbeddingProvider.ts +145 -145
- package/src/utils/RAGRetrieval.ts +411 -411
- package/src/utils/TimedConversation.ts +125 -125
- package/src/utils/backoffRetry.ts +169 -169
- package/src/utils/divideArray.ts +35 -35
- package/src/utils/emplaceMap.ts +31 -31
- package/src/utils/executeCachedBatch.ts +67 -67
- package/src/utils/forceRetry.ts +15 -15
- package/src/utils/getEmbedder.ts +16 -16
- package/src/utils/parseTextFunctionCall.ts +437 -437
- package/src/utils/predicateStateMessage.ts +131 -131
- package/src/utils/validateEmptyCode.ts +73 -73
- package/src/utils/validateEnglishOnly.ts +224 -224
- package/README.md +0 -261
|
@@ -1,307 +1,307 @@
|
|
|
1
|
-
import { IAutoBeTokenUsageJson } from "@autobe/interface";
|
|
2
|
-
|
|
3
|
-
import { AutoBeTokenUsageComponent } from "./AutoBeTokenUsageComponent";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Comprehensive token usage tracker for the AutoBe vibe coding system.
|
|
7
|
-
*
|
|
8
|
-
* This class provides centralized tracking and management of token consumption
|
|
9
|
-
* across all AI agents in the automated development pipeline. It captures
|
|
10
|
-
* detailed token usage statistics for each processing phase - from initial
|
|
11
|
-
* requirements analysis through final implementation - enabling cost
|
|
12
|
-
* monitoring, performance optimization, and resource utilization analysis.
|
|
13
|
-
*
|
|
14
|
-
* The token usage data includes both input tokens (with cache efficiency) and
|
|
15
|
-
* output tokens (with generation type breakdowns), providing insights into AI
|
|
16
|
-
* processing efficiency and helping optimize the balance between computational
|
|
17
|
-
* costs and output quality.
|
|
18
|
-
*
|
|
19
|
-
* @author SunRabbit123
|
|
20
|
-
*/
|
|
21
|
-
export class AutoBeTokenUsage implements IAutoBeTokenUsageJson {
|
|
22
|
-
/**
|
|
23
|
-
* Token usage for the facade agent orchestrating the entire pipeline.
|
|
24
|
-
*
|
|
25
|
-
* Tracks tokens consumed by the initial agent that coordinates and manages
|
|
26
|
-
* the overall vibe coding process, including request parsing and response
|
|
27
|
-
* orchestration.
|
|
28
|
-
*/
|
|
29
|
-
public readonly facade: AutoBeTokenUsageComponent;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Token usage for the requirements analysis agent.
|
|
33
|
-
*
|
|
34
|
-
* Captures tokens used during the analysis phase where user requirements are
|
|
35
|
-
* processed, understood, and transformed into structured specifications for
|
|
36
|
-
* subsequent development phases.
|
|
37
|
-
*/
|
|
38
|
-
public readonly analyze: AutoBeTokenUsageComponent;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Token usage for the Database schema generation agent.
|
|
42
|
-
*
|
|
43
|
-
* Records tokens consumed while designing and generating database schemas,
|
|
44
|
-
* including entity relationships, field definitions, and database-specific
|
|
45
|
-
* optimizations.
|
|
46
|
-
*/
|
|
47
|
-
public readonly database: AutoBeTokenUsageComponent;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Token usage for the API interface specification agent.
|
|
51
|
-
*
|
|
52
|
-
* Tracks tokens used in creating OpenAPI/Swagger specifications, defining
|
|
53
|
-
* endpoints, request/response structures, and API documentation.
|
|
54
|
-
*/
|
|
55
|
-
public readonly interface: AutoBeTokenUsageComponent;
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Token usage for the test code generation agent.
|
|
59
|
-
*
|
|
60
|
-
* Monitors tokens consumed during automated test creation, including scenario
|
|
61
|
-
* planning, test case generation, and end-to-end test implementation.
|
|
62
|
-
*/
|
|
63
|
-
public readonly test: AutoBeTokenUsageComponent;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Token usage for the implementation realization agent.
|
|
67
|
-
*
|
|
68
|
-
* Captures tokens used in the final implementation phase where actual
|
|
69
|
-
* business logic, controllers, services, and integration code are generated.
|
|
70
|
-
*/
|
|
71
|
-
public readonly realize: AutoBeTokenUsageComponent;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Aggregated token usage statistics across all agents.
|
|
75
|
-
*
|
|
76
|
-
* Provides a unified view of token consumption by combining data from all
|
|
77
|
-
* processing phases in the vibe coding pipeline. This computed property
|
|
78
|
-
* dynamically calculates the sum of all agent components (facade, analyze,
|
|
79
|
-
* database, interface, test, realize) whenever accessed, ensuring the
|
|
80
|
-
* aggregate always reflects the current state of token usage.
|
|
81
|
-
*
|
|
82
|
-
* The aggregation performs element-wise addition across all token metrics,
|
|
83
|
-
* including total counts, input breakdowns with cache statistics, and output
|
|
84
|
-
* categorizations by generation type. This comprehensive view enables overall
|
|
85
|
-
* cost assessment and resource utilization analysis for the entire automated
|
|
86
|
-
* development session.
|
|
87
|
-
*/
|
|
88
|
-
public get aggregate(): IAutoBeTokenUsageJson.IComponent {
|
|
89
|
-
return AutoBeTokenUsage.keys()
|
|
90
|
-
.reduce(
|
|
91
|
-
(acc, cur) => AutoBeTokenUsageComponent.plus(acc, this[cur]),
|
|
92
|
-
new AutoBeTokenUsageComponent(),
|
|
93
|
-
)
|
|
94
|
-
.toJSON();
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/* -----------------------------------------------------------
|
|
98
|
-
CONSTRUCTORS
|
|
99
|
-
----------------------------------------------------------- */
|
|
100
|
-
/**
|
|
101
|
-
* Default Constructor.
|
|
102
|
-
*
|
|
103
|
-
* Creates a new token usage tracker with all agent phases initialized to
|
|
104
|
-
* empty components. Each component starts with zero values for all token
|
|
105
|
-
* counters, providing a clean slate for tracking token consumption from the
|
|
106
|
-
* beginning of a vibe coding session.
|
|
107
|
-
*/
|
|
108
|
-
public constructor();
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Binding Constructor.
|
|
112
|
-
*
|
|
113
|
-
* Creates a new instance that shares component references with the provided
|
|
114
|
-
* AutoBeTokenUsage instance. This establishes a bound relationship where both
|
|
115
|
-
* instances point to the same component objects. Any modifications to token
|
|
116
|
-
* counts through either instance will be reflected in both, enabling shared
|
|
117
|
-
* tracking across different contexts.
|
|
118
|
-
*
|
|
119
|
-
* @param bind Existing AutoBeTokenUsage instance to bind to
|
|
120
|
-
*/
|
|
121
|
-
public constructor(bind: AutoBeTokenUsage);
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Initializer Constructor.
|
|
125
|
-
*
|
|
126
|
-
* Reconstructs a token usage tracker from serialized JSON data. Creates new
|
|
127
|
-
* AutoBeTokenUsageComponent instances for each agent phase, initializing them
|
|
128
|
-
* with the corresponding values from the JSON structure. This enables
|
|
129
|
-
* restoration of token usage state from persisted data or transmission
|
|
130
|
-
* between different parts of the system.
|
|
131
|
-
*
|
|
132
|
-
* @param props Token usage data in JSON format
|
|
133
|
-
*/
|
|
134
|
-
public constructor(props?: Omit<IAutoBeTokenUsageJson, "aggregate">);
|
|
135
|
-
|
|
136
|
-
public constructor(
|
|
137
|
-
props?: AutoBeTokenUsage | IAutoBeTokenUsageJson | undefined,
|
|
138
|
-
) {
|
|
139
|
-
if (props === undefined) {
|
|
140
|
-
this.facade = new AutoBeTokenUsageComponent();
|
|
141
|
-
this.analyze = new AutoBeTokenUsageComponent();
|
|
142
|
-
this.database = new AutoBeTokenUsageComponent();
|
|
143
|
-
this.interface = new AutoBeTokenUsageComponent();
|
|
144
|
-
this.test = new AutoBeTokenUsageComponent();
|
|
145
|
-
this.realize = new AutoBeTokenUsageComponent();
|
|
146
|
-
return;
|
|
147
|
-
} else if (props instanceof AutoBeTokenUsage) {
|
|
148
|
-
this.facade = props.facade;
|
|
149
|
-
this.analyze = props.analyze;
|
|
150
|
-
this.database = props.database;
|
|
151
|
-
this.interface = props.interface;
|
|
152
|
-
this.test = props.test;
|
|
153
|
-
this.realize = props.realize;
|
|
154
|
-
} else {
|
|
155
|
-
this.facade = new AutoBeTokenUsageComponent(props.facade);
|
|
156
|
-
this.analyze = new AutoBeTokenUsageComponent(props.analyze);
|
|
157
|
-
this.database = new AutoBeTokenUsageComponent(props.database);
|
|
158
|
-
this.interface = new AutoBeTokenUsageComponent(props.interface);
|
|
159
|
-
this.test = new AutoBeTokenUsageComponent(props.test);
|
|
160
|
-
this.realize = new AutoBeTokenUsageComponent(props.realize);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
public assign(props: IAutoBeTokenUsageJson) {
|
|
165
|
-
this.facade.assign(props.facade);
|
|
166
|
-
this.analyze.assign(props.analyze);
|
|
167
|
-
this.database.assign(props.database);
|
|
168
|
-
this.interface.assign(props.interface);
|
|
169
|
-
this.test.assign(props.test);
|
|
170
|
-
this.realize.assign(props.realize);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Serialize token usage data to JSON format.
|
|
175
|
-
*
|
|
176
|
-
* Converts the internal token usage representation to the standardized
|
|
177
|
-
* IAutoBeTokenUsageJson format, suitable for persistence, transmission, or
|
|
178
|
-
* external analysis. The serialized data maintains the complete structure
|
|
179
|
-
* including all agent phases and detailed token breakdowns.
|
|
180
|
-
*
|
|
181
|
-
* @returns JSON representation of token usage statistics
|
|
182
|
-
*/
|
|
183
|
-
public toJSON(): IAutoBeTokenUsageJson {
|
|
184
|
-
return {
|
|
185
|
-
aggregate: this.aggregate,
|
|
186
|
-
facade: this.facade.toJSON(),
|
|
187
|
-
analyze: this.analyze.toJSON(),
|
|
188
|
-
database: this.database.toJSON(),
|
|
189
|
-
interface: this.interface.toJSON(),
|
|
190
|
-
test: this.test.toJSON(),
|
|
191
|
-
realize: this.realize.toJSON(),
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/* -----------------------------------------------------------
|
|
196
|
-
OPERATORS
|
|
197
|
-
----------------------------------------------------------- */
|
|
198
|
-
/**
|
|
199
|
-
* Record token usage for specific processing stages.
|
|
200
|
-
*
|
|
201
|
-
* Updates token consumption statistics for one or more agent phases based on
|
|
202
|
-
* the provided usage data. This method allows selective recording of token
|
|
203
|
-
* usage for specific stages, enabling fine-grained tracking during
|
|
204
|
-
* multi-phase processing or when certain agents are invoked multiple times.
|
|
205
|
-
*
|
|
206
|
-
* @example
|
|
207
|
-
* ```ts
|
|
208
|
-
* tokenUsage.record(
|
|
209
|
-
* { total: 150, input: { total: 100, cached: 20 }, output: { total: 50, ... } },
|
|
210
|
-
* ['analyze', 'database']
|
|
211
|
-
* );
|
|
212
|
-
* ```;
|
|
213
|
-
*
|
|
214
|
-
* @param usage - Token usage component data to record
|
|
215
|
-
* @param additionalStages - Array of stage names to update with the usage
|
|
216
|
-
* data
|
|
217
|
-
*/
|
|
218
|
-
public record(
|
|
219
|
-
usage: IAutoBeTokenUsageJson.IComponent,
|
|
220
|
-
additionalStages: (keyof Pick<
|
|
221
|
-
IAutoBeTokenUsageJson,
|
|
222
|
-
"facade" | "analyze" | "database" | "interface" | "test" | "realize"
|
|
223
|
-
>)[] = [],
|
|
224
|
-
) {
|
|
225
|
-
additionalStages.forEach((stage) => {
|
|
226
|
-
this[stage].increment(usage);
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Increment current token usage with data from another instance.
|
|
232
|
-
*
|
|
233
|
-
* Adds token usage statistics from another AutoBeTokenUsage instance to this
|
|
234
|
-
* one, updating all agent phases simultaneously. This method is useful for
|
|
235
|
-
* combining token usage from parallel processing, multiple runs, or when
|
|
236
|
-
* aggregating statistics from distributed agent executions.
|
|
237
|
-
*
|
|
238
|
-
* @param usage - AutoBeTokenUsage instance to add to current statistics
|
|
239
|
-
* @returns This instance for method chaining
|
|
240
|
-
*/
|
|
241
|
-
public increment(usage: AutoBeTokenUsage) {
|
|
242
|
-
AutoBeTokenUsage.keys().forEach((key) => {
|
|
243
|
-
this[key].increment(usage[key]);
|
|
244
|
-
});
|
|
245
|
-
return this;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/** @internal */
|
|
249
|
-
public decrement(usage: AutoBeTokenUsage) {
|
|
250
|
-
AutoBeTokenUsage.keys().forEach((key) => {
|
|
251
|
-
this[key].decrement(usage[key]);
|
|
252
|
-
});
|
|
253
|
-
return this;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Create a new instance combining token usage from two sources.
|
|
258
|
-
*
|
|
259
|
-
* Performs element-wise addition of token usage statistics from two
|
|
260
|
-
* AutoBeTokenUsage instances, creating a new instance with the combined
|
|
261
|
-
* totals. This static method is useful for aggregating token usage across
|
|
262
|
-
* multiple vibe coding sessions or when merging statistics from different
|
|
263
|
-
* execution contexts.
|
|
264
|
-
*
|
|
265
|
-
* @param usageA - First token usage instance
|
|
266
|
-
* @param usageB - Second token usage instance
|
|
267
|
-
* @returns New instance with combined token usage statistics
|
|
268
|
-
*/
|
|
269
|
-
public static plus(usageA: AutoBeTokenUsage, usageB: AutoBeTokenUsage) {
|
|
270
|
-
return new AutoBeTokenUsage({
|
|
271
|
-
facade: AutoBeTokenUsageComponent.plus(usageA.facade, usageB.facade),
|
|
272
|
-
analyze: AutoBeTokenUsageComponent.plus(usageA.analyze, usageB.analyze),
|
|
273
|
-
database: AutoBeTokenUsageComponent.plus(
|
|
274
|
-
usageA.database,
|
|
275
|
-
usageB.database,
|
|
276
|
-
),
|
|
277
|
-
interface: AutoBeTokenUsageComponent.plus(
|
|
278
|
-
usageA.interface,
|
|
279
|
-
usageB.interface,
|
|
280
|
-
),
|
|
281
|
-
test: AutoBeTokenUsageComponent.plus(usageA.test, usageB.test),
|
|
282
|
-
realize: AutoBeTokenUsageComponent.plus(usageA.realize, usageB.realize),
|
|
283
|
-
});
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
/**
|
|
287
|
-
* Get all agent phase keys for iteration.
|
|
288
|
-
*
|
|
289
|
-
* Returns a readonly array of all agent phase names used in the vibe coding
|
|
290
|
-
* system. This internal utility method ensures consistent iteration over all
|
|
291
|
-
* token usage components when performing operations like aggregation or
|
|
292
|
-
* serialization.
|
|
293
|
-
*
|
|
294
|
-
* @returns Readonly array of agent phase keys
|
|
295
|
-
* @internal
|
|
296
|
-
*/
|
|
297
|
-
private static keys() {
|
|
298
|
-
return [
|
|
299
|
-
"facade",
|
|
300
|
-
"analyze",
|
|
301
|
-
"database",
|
|
302
|
-
"interface",
|
|
303
|
-
"test",
|
|
304
|
-
"realize",
|
|
305
|
-
] as const;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
1
|
+
import { IAutoBeTokenUsageJson } from "@autobe/interface";
|
|
2
|
+
|
|
3
|
+
import { AutoBeTokenUsageComponent } from "./AutoBeTokenUsageComponent";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Comprehensive token usage tracker for the AutoBe vibe coding system.
|
|
7
|
+
*
|
|
8
|
+
* This class provides centralized tracking and management of token consumption
|
|
9
|
+
* across all AI agents in the automated development pipeline. It captures
|
|
10
|
+
* detailed token usage statistics for each processing phase - from initial
|
|
11
|
+
* requirements analysis through final implementation - enabling cost
|
|
12
|
+
* monitoring, performance optimization, and resource utilization analysis.
|
|
13
|
+
*
|
|
14
|
+
* The token usage data includes both input tokens (with cache efficiency) and
|
|
15
|
+
* output tokens (with generation type breakdowns), providing insights into AI
|
|
16
|
+
* processing efficiency and helping optimize the balance between computational
|
|
17
|
+
* costs and output quality.
|
|
18
|
+
*
|
|
19
|
+
* @author SunRabbit123
|
|
20
|
+
*/
|
|
21
|
+
export class AutoBeTokenUsage implements IAutoBeTokenUsageJson {
|
|
22
|
+
/**
|
|
23
|
+
* Token usage for the facade agent orchestrating the entire pipeline.
|
|
24
|
+
*
|
|
25
|
+
* Tracks tokens consumed by the initial agent that coordinates and manages
|
|
26
|
+
* the overall vibe coding process, including request parsing and response
|
|
27
|
+
* orchestration.
|
|
28
|
+
*/
|
|
29
|
+
public readonly facade: AutoBeTokenUsageComponent;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Token usage for the requirements analysis agent.
|
|
33
|
+
*
|
|
34
|
+
* Captures tokens used during the analysis phase where user requirements are
|
|
35
|
+
* processed, understood, and transformed into structured specifications for
|
|
36
|
+
* subsequent development phases.
|
|
37
|
+
*/
|
|
38
|
+
public readonly analyze: AutoBeTokenUsageComponent;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Token usage for the Database schema generation agent.
|
|
42
|
+
*
|
|
43
|
+
* Records tokens consumed while designing and generating database schemas,
|
|
44
|
+
* including entity relationships, field definitions, and database-specific
|
|
45
|
+
* optimizations.
|
|
46
|
+
*/
|
|
47
|
+
public readonly database: AutoBeTokenUsageComponent;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Token usage for the API interface specification agent.
|
|
51
|
+
*
|
|
52
|
+
* Tracks tokens used in creating OpenAPI/Swagger specifications, defining
|
|
53
|
+
* endpoints, request/response structures, and API documentation.
|
|
54
|
+
*/
|
|
55
|
+
public readonly interface: AutoBeTokenUsageComponent;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Token usage for the test code generation agent.
|
|
59
|
+
*
|
|
60
|
+
* Monitors tokens consumed during automated test creation, including scenario
|
|
61
|
+
* planning, test case generation, and end-to-end test implementation.
|
|
62
|
+
*/
|
|
63
|
+
public readonly test: AutoBeTokenUsageComponent;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Token usage for the implementation realization agent.
|
|
67
|
+
*
|
|
68
|
+
* Captures tokens used in the final implementation phase where actual
|
|
69
|
+
* business logic, controllers, services, and integration code are generated.
|
|
70
|
+
*/
|
|
71
|
+
public readonly realize: AutoBeTokenUsageComponent;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Aggregated token usage statistics across all agents.
|
|
75
|
+
*
|
|
76
|
+
* Provides a unified view of token consumption by combining data from all
|
|
77
|
+
* processing phases in the vibe coding pipeline. This computed property
|
|
78
|
+
* dynamically calculates the sum of all agent components (facade, analyze,
|
|
79
|
+
* database, interface, test, realize) whenever accessed, ensuring the
|
|
80
|
+
* aggregate always reflects the current state of token usage.
|
|
81
|
+
*
|
|
82
|
+
* The aggregation performs element-wise addition across all token metrics,
|
|
83
|
+
* including total counts, input breakdowns with cache statistics, and output
|
|
84
|
+
* categorizations by generation type. This comprehensive view enables overall
|
|
85
|
+
* cost assessment and resource utilization analysis for the entire automated
|
|
86
|
+
* development session.
|
|
87
|
+
*/
|
|
88
|
+
public get aggregate(): IAutoBeTokenUsageJson.IComponent {
|
|
89
|
+
return AutoBeTokenUsage.keys()
|
|
90
|
+
.reduce(
|
|
91
|
+
(acc, cur) => AutoBeTokenUsageComponent.plus(acc, this[cur]),
|
|
92
|
+
new AutoBeTokenUsageComponent(),
|
|
93
|
+
)
|
|
94
|
+
.toJSON();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* -----------------------------------------------------------
|
|
98
|
+
CONSTRUCTORS
|
|
99
|
+
----------------------------------------------------------- */
|
|
100
|
+
/**
|
|
101
|
+
* Default Constructor.
|
|
102
|
+
*
|
|
103
|
+
* Creates a new token usage tracker with all agent phases initialized to
|
|
104
|
+
* empty components. Each component starts with zero values for all token
|
|
105
|
+
* counters, providing a clean slate for tracking token consumption from the
|
|
106
|
+
* beginning of a vibe coding session.
|
|
107
|
+
*/
|
|
108
|
+
public constructor();
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Binding Constructor.
|
|
112
|
+
*
|
|
113
|
+
* Creates a new instance that shares component references with the provided
|
|
114
|
+
* AutoBeTokenUsage instance. This establishes a bound relationship where both
|
|
115
|
+
* instances point to the same component objects. Any modifications to token
|
|
116
|
+
* counts through either instance will be reflected in both, enabling shared
|
|
117
|
+
* tracking across different contexts.
|
|
118
|
+
*
|
|
119
|
+
* @param bind Existing AutoBeTokenUsage instance to bind to
|
|
120
|
+
*/
|
|
121
|
+
public constructor(bind: AutoBeTokenUsage);
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Initializer Constructor.
|
|
125
|
+
*
|
|
126
|
+
* Reconstructs a token usage tracker from serialized JSON data. Creates new
|
|
127
|
+
* AutoBeTokenUsageComponent instances for each agent phase, initializing them
|
|
128
|
+
* with the corresponding values from the JSON structure. This enables
|
|
129
|
+
* restoration of token usage state from persisted data or transmission
|
|
130
|
+
* between different parts of the system.
|
|
131
|
+
*
|
|
132
|
+
* @param props Token usage data in JSON format
|
|
133
|
+
*/
|
|
134
|
+
public constructor(props?: Omit<IAutoBeTokenUsageJson, "aggregate">);
|
|
135
|
+
|
|
136
|
+
public constructor(
|
|
137
|
+
props?: AutoBeTokenUsage | IAutoBeTokenUsageJson | undefined,
|
|
138
|
+
) {
|
|
139
|
+
if (props === undefined) {
|
|
140
|
+
this.facade = new AutoBeTokenUsageComponent();
|
|
141
|
+
this.analyze = new AutoBeTokenUsageComponent();
|
|
142
|
+
this.database = new AutoBeTokenUsageComponent();
|
|
143
|
+
this.interface = new AutoBeTokenUsageComponent();
|
|
144
|
+
this.test = new AutoBeTokenUsageComponent();
|
|
145
|
+
this.realize = new AutoBeTokenUsageComponent();
|
|
146
|
+
return;
|
|
147
|
+
} else if (props instanceof AutoBeTokenUsage) {
|
|
148
|
+
this.facade = props.facade;
|
|
149
|
+
this.analyze = props.analyze;
|
|
150
|
+
this.database = props.database;
|
|
151
|
+
this.interface = props.interface;
|
|
152
|
+
this.test = props.test;
|
|
153
|
+
this.realize = props.realize;
|
|
154
|
+
} else {
|
|
155
|
+
this.facade = new AutoBeTokenUsageComponent(props.facade);
|
|
156
|
+
this.analyze = new AutoBeTokenUsageComponent(props.analyze);
|
|
157
|
+
this.database = new AutoBeTokenUsageComponent(props.database);
|
|
158
|
+
this.interface = new AutoBeTokenUsageComponent(props.interface);
|
|
159
|
+
this.test = new AutoBeTokenUsageComponent(props.test);
|
|
160
|
+
this.realize = new AutoBeTokenUsageComponent(props.realize);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
public assign(props: IAutoBeTokenUsageJson) {
|
|
165
|
+
this.facade.assign(props.facade);
|
|
166
|
+
this.analyze.assign(props.analyze);
|
|
167
|
+
this.database.assign(props.database);
|
|
168
|
+
this.interface.assign(props.interface);
|
|
169
|
+
this.test.assign(props.test);
|
|
170
|
+
this.realize.assign(props.realize);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Serialize token usage data to JSON format.
|
|
175
|
+
*
|
|
176
|
+
* Converts the internal token usage representation to the standardized
|
|
177
|
+
* IAutoBeTokenUsageJson format, suitable for persistence, transmission, or
|
|
178
|
+
* external analysis. The serialized data maintains the complete structure
|
|
179
|
+
* including all agent phases and detailed token breakdowns.
|
|
180
|
+
*
|
|
181
|
+
* @returns JSON representation of token usage statistics
|
|
182
|
+
*/
|
|
183
|
+
public toJSON(): IAutoBeTokenUsageJson {
|
|
184
|
+
return {
|
|
185
|
+
aggregate: this.aggregate,
|
|
186
|
+
facade: this.facade.toJSON(),
|
|
187
|
+
analyze: this.analyze.toJSON(),
|
|
188
|
+
database: this.database.toJSON(),
|
|
189
|
+
interface: this.interface.toJSON(),
|
|
190
|
+
test: this.test.toJSON(),
|
|
191
|
+
realize: this.realize.toJSON(),
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* -----------------------------------------------------------
|
|
196
|
+
OPERATORS
|
|
197
|
+
----------------------------------------------------------- */
|
|
198
|
+
/**
|
|
199
|
+
* Record token usage for specific processing stages.
|
|
200
|
+
*
|
|
201
|
+
* Updates token consumption statistics for one or more agent phases based on
|
|
202
|
+
* the provided usage data. This method allows selective recording of token
|
|
203
|
+
* usage for specific stages, enabling fine-grained tracking during
|
|
204
|
+
* multi-phase processing or when certain agents are invoked multiple times.
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```ts
|
|
208
|
+
* tokenUsage.record(
|
|
209
|
+
* { total: 150, input: { total: 100, cached: 20 }, output: { total: 50, ... } },
|
|
210
|
+
* ['analyze', 'database']
|
|
211
|
+
* );
|
|
212
|
+
* ```;
|
|
213
|
+
*
|
|
214
|
+
* @param usage - Token usage component data to record
|
|
215
|
+
* @param additionalStages - Array of stage names to update with the usage
|
|
216
|
+
* data
|
|
217
|
+
*/
|
|
218
|
+
public record(
|
|
219
|
+
usage: IAutoBeTokenUsageJson.IComponent,
|
|
220
|
+
additionalStages: (keyof Pick<
|
|
221
|
+
IAutoBeTokenUsageJson,
|
|
222
|
+
"facade" | "analyze" | "database" | "interface" | "test" | "realize"
|
|
223
|
+
>)[] = [],
|
|
224
|
+
) {
|
|
225
|
+
additionalStages.forEach((stage) => {
|
|
226
|
+
this[stage].increment(usage);
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Increment current token usage with data from another instance.
|
|
232
|
+
*
|
|
233
|
+
* Adds token usage statistics from another AutoBeTokenUsage instance to this
|
|
234
|
+
* one, updating all agent phases simultaneously. This method is useful for
|
|
235
|
+
* combining token usage from parallel processing, multiple runs, or when
|
|
236
|
+
* aggregating statistics from distributed agent executions.
|
|
237
|
+
*
|
|
238
|
+
* @param usage - AutoBeTokenUsage instance to add to current statistics
|
|
239
|
+
* @returns This instance for method chaining
|
|
240
|
+
*/
|
|
241
|
+
public increment(usage: AutoBeTokenUsage) {
|
|
242
|
+
AutoBeTokenUsage.keys().forEach((key) => {
|
|
243
|
+
this[key].increment(usage[key]);
|
|
244
|
+
});
|
|
245
|
+
return this;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/** @internal */
|
|
249
|
+
public decrement(usage: AutoBeTokenUsage) {
|
|
250
|
+
AutoBeTokenUsage.keys().forEach((key) => {
|
|
251
|
+
this[key].decrement(usage[key]);
|
|
252
|
+
});
|
|
253
|
+
return this;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Create a new instance combining token usage from two sources.
|
|
258
|
+
*
|
|
259
|
+
* Performs element-wise addition of token usage statistics from two
|
|
260
|
+
* AutoBeTokenUsage instances, creating a new instance with the combined
|
|
261
|
+
* totals. This static method is useful for aggregating token usage across
|
|
262
|
+
* multiple vibe coding sessions or when merging statistics from different
|
|
263
|
+
* execution contexts.
|
|
264
|
+
*
|
|
265
|
+
* @param usageA - First token usage instance
|
|
266
|
+
* @param usageB - Second token usage instance
|
|
267
|
+
* @returns New instance with combined token usage statistics
|
|
268
|
+
*/
|
|
269
|
+
public static plus(usageA: AutoBeTokenUsage, usageB: AutoBeTokenUsage) {
|
|
270
|
+
return new AutoBeTokenUsage({
|
|
271
|
+
facade: AutoBeTokenUsageComponent.plus(usageA.facade, usageB.facade),
|
|
272
|
+
analyze: AutoBeTokenUsageComponent.plus(usageA.analyze, usageB.analyze),
|
|
273
|
+
database: AutoBeTokenUsageComponent.plus(
|
|
274
|
+
usageA.database,
|
|
275
|
+
usageB.database,
|
|
276
|
+
),
|
|
277
|
+
interface: AutoBeTokenUsageComponent.plus(
|
|
278
|
+
usageA.interface,
|
|
279
|
+
usageB.interface,
|
|
280
|
+
),
|
|
281
|
+
test: AutoBeTokenUsageComponent.plus(usageA.test, usageB.test),
|
|
282
|
+
realize: AutoBeTokenUsageComponent.plus(usageA.realize, usageB.realize),
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Get all agent phase keys for iteration.
|
|
288
|
+
*
|
|
289
|
+
* Returns a readonly array of all agent phase names used in the vibe coding
|
|
290
|
+
* system. This internal utility method ensures consistent iteration over all
|
|
291
|
+
* token usage components when performing operations like aggregation or
|
|
292
|
+
* serialization.
|
|
293
|
+
*
|
|
294
|
+
* @returns Readonly array of agent phase keys
|
|
295
|
+
* @internal
|
|
296
|
+
*/
|
|
297
|
+
private static keys() {
|
|
298
|
+
return [
|
|
299
|
+
"facade",
|
|
300
|
+
"analyze",
|
|
301
|
+
"database",
|
|
302
|
+
"interface",
|
|
303
|
+
"test",
|
|
304
|
+
"realize",
|
|
305
|
+
] as const;
|
|
306
|
+
}
|
|
307
|
+
}
|