@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.
Files changed (466) hide show
  1. package/LICENSE +661 -661
  2. package/lib/constants/AutoBeTemplateFileConstant.d.ts +1 -1
  3. package/lib/factory/consentFunctionCall.js +4 -4
  4. package/lib/factory/createAutoBeContext.js +24 -24
  5. package/lib/factory/createAutoBeMessageContent.js +6 -6
  6. package/lib/index.mjs +41 -41
  7. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.js +18 -18
  8. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.js +13 -13
  9. package/lib/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.js +47 -47
  10. package/lib/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.js +66 -66
  11. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.js +91 -91
  12. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.js +46 -46
  13. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.js +72 -72
  14. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +1 -1
  15. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.js +1 -1
  16. package/lib/orchestrate/analyze/orchestrateAnalyzeSectionReview.js +1 -1
  17. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSection.js +1 -1
  18. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.js +1 -1
  19. package/lib/orchestrate/analyze/orchestrateAnalyzeWriteUnit.js +1 -1
  20. package/lib/orchestrate/common/histories/transformCommonCorrectCastingHistory.js +5 -5
  21. package/lib/orchestrate/common/histories/transformPreliminaryHistory.js +44 -44
  22. package/lib/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.js +44 -44
  23. package/lib/orchestrate/common/internal/fixPrelminaryApplication.js +22 -22
  24. package/lib/orchestrate/common/internal/validatePreliminary.js +116 -116
  25. package/lib/orchestrate/facade/createAutoBeFacadeController.js +3 -3
  26. package/lib/orchestrate/facade/structures/transformFacadeStateMessage.js +20 -20
  27. package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.js +34 -34
  28. package/lib/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.js +37 -37
  29. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.js +56 -56
  30. package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.js +26 -26
  31. package/lib/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.js +28 -28
  32. package/lib/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.js +11 -11
  33. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistory.js +38 -38
  34. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistory.js +29 -29
  35. package/lib/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.js +15 -15
  36. package/lib/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.js +6 -6
  37. package/lib/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.js +25 -25
  38. package/lib/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.js +67 -67
  39. package/lib/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.js +60 -60
  40. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.js +83 -83
  41. package/lib/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.js +29 -29
  42. package/lib/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.js +74 -74
  43. package/lib/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.js +46 -46
  44. package/lib/orchestrate/interface/orchestrateInterfaceAuthorization.js +1 -1
  45. package/lib/orchestrate/interface/orchestrateInterfaceEndpointReview.js +1 -1
  46. package/lib/orchestrate/interface/orchestrateInterfaceEndpointWrite.js +1 -1
  47. package/lib/orchestrate/interface/orchestrateInterfaceGroup.js +9 -9
  48. package/lib/orchestrate/interface/orchestrateInterfaceOperation.js +1 -1
  49. package/lib/orchestrate/interface/orchestrateInterfaceOperationReview.js +1 -1
  50. package/lib/orchestrate/interface/orchestrateInterfacePrerequisite.js +4 -4
  51. package/lib/orchestrate/interface/orchestrateInterfaceSchemaCasting.js +1 -1
  52. package/lib/orchestrate/interface/orchestrateInterfaceSchemaComplement.js +5 -5
  53. package/lib/orchestrate/interface/orchestrateInterfaceSchemaRefine.js +1 -1
  54. package/lib/orchestrate/interface/orchestrateInterfaceSchemaReview.js +1 -1
  55. package/lib/orchestrate/interface/orchestrateInterfaceSchemaWrite.js +1 -1
  56. package/lib/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.js +90 -90
  57. package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.js +6 -6
  58. package/lib/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.js +25 -25
  59. package/lib/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.js +71 -71
  60. package/lib/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.js +162 -162
  61. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.js +11 -11
  62. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.js +73 -73
  63. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.js +35 -35
  64. package/lib/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.js +11 -11
  65. package/lib/orchestrate/interface/utils/AutoBeJsonSchemaFactory.js +4 -4
  66. package/lib/orchestrate/interface/utils/AutoBeJsonSchemaValidator.js +283 -283
  67. package/lib/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.js +76 -76
  68. package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.js +76 -76
  69. package/lib/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.js +51 -51
  70. package/lib/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.js +54 -54
  71. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistory.js +83 -83
  72. package/lib/orchestrate/prisma/histories/transformPrismaCorrectHistory.js +6 -6
  73. package/lib/orchestrate/prisma/histories/transformPrismaGroupHistory.js +22 -22
  74. package/lib/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.js +41 -41
  75. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistory.js +39 -39
  76. package/lib/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.js +41 -41
  77. package/lib/orchestrate/prisma/orchestratePrismaAuthorization.js +1 -1
  78. package/lib/orchestrate/prisma/orchestratePrismaAuthorizationReview.js +1 -1
  79. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +1 -1
  80. package/lib/orchestrate/prisma/orchestratePrismaComponentReview.js +1 -1
  81. package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +1 -1
  82. package/lib/orchestrate/prisma/orchestratePrismaGroup.js +1 -1
  83. package/lib/orchestrate/prisma/orchestratePrismaGroupReview.js +1 -1
  84. package/lib/orchestrate/prisma/orchestratePrismaSchema.js +1 -1
  85. package/lib/orchestrate/prisma/orchestratePrismaSchemaReview.js +1 -1
  86. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.js +23 -23
  87. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.js +7 -7
  88. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.js +5 -5
  89. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.js +20 -20
  90. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.js +13 -13
  91. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.js +51 -51
  92. package/lib/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.js +25 -25
  93. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.js +28 -28
  94. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.js +14 -14
  95. package/lib/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.js +42 -42
  96. package/lib/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.js +27 -27
  97. package/lib/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.js +57 -57
  98. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.js +35 -35
  99. package/lib/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.js +14 -14
  100. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js +37 -37
  101. package/lib/orchestrate/realize/histories/transformRealizeOperationWriteHistory.js.map +1 -1
  102. package/lib/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.js +47 -47
  103. package/lib/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.js +27 -27
  104. package/lib/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.js +51 -51
  105. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +1 -1
  106. package/lib/orchestrate/realize/orchestrateRealizeAuthorizationWrite.js +1 -1
  107. package/lib/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.js +1 -1
  108. package/lib/orchestrate/realize/orchestrateRealizeCollectorPlan.js +11 -11
  109. package/lib/orchestrate/realize/orchestrateRealizeCollectorWrite.js +1 -1
  110. package/lib/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.js +1 -1
  111. package/lib/orchestrate/realize/orchestrateRealizeOperationWrite.js +1 -1
  112. package/lib/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.js +1 -1
  113. package/lib/orchestrate/realize/orchestrateRealizeTransformerPlan.js +11 -11
  114. package/lib/orchestrate/realize/orchestrateRealizeTransformerWrite.js +1 -1
  115. package/lib/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.js +41 -41
  116. package/lib/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.js +21 -21
  117. package/lib/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.js +57 -57
  118. package/lib/orchestrate/realize/utils/getRealizeWriteInputType.js +3 -3
  119. package/lib/orchestrate/realize/utils/printErrorHints.js +5 -5
  120. package/lib/orchestrate/test/compile/getTestImportStatements.js +9 -9
  121. package/lib/orchestrate/test/histories/transformTestAuthorizeWriteHistory.js +38 -38
  122. package/lib/orchestrate/test/histories/transformTestGenerationWriteHistory.js +79 -79
  123. package/lib/orchestrate/test/histories/transformTestOperationWriteHistory.js +162 -162
  124. package/lib/orchestrate/test/histories/transformTestPrepareWriteHistory.js +54 -54
  125. package/lib/orchestrate/test/histories/transformTestScenarioHistory.js +31 -31
  126. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistory.js +27 -27
  127. package/lib/orchestrate/test/orchestrateTestScenario.js +1 -1
  128. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +1 -1
  129. package/lib/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.js +31 -31
  130. package/lib/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.js +23 -23
  131. package/lib/orchestrate/test/programmers/AutoBeTestOperationProgrammer.js +6 -6
  132. package/lib/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.js +34 -34
  133. package/lib/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.js +39 -39
  134. package/lib/utils/predicateStateMessage.js +19 -19
  135. package/lib/utils/validateEmptyCode.js +16 -16
  136. package/package.json +5 -5
  137. package/src/AutoBeAgent.ts +374 -374
  138. package/src/AutoBeAgentBase.ts +126 -126
  139. package/src/AutoBeMockAgent.ts +254 -254
  140. package/src/constants/AutoBeConfigConstant.ts +173 -173
  141. package/src/constants/AutoBeTemplateFileConstant.ts +1 -1
  142. package/src/context/AutoBeContext.ts +107 -107
  143. package/src/context/AutoBeState.ts +66 -66
  144. package/src/context/AutoBeTokenUsage.ts +307 -307
  145. package/src/context/AutoBeTokenUsageComponent.ts +227 -227
  146. package/src/describe/describe.ts +47 -47
  147. package/src/describe/image/histories/transformImageDescribeDraftHistories.ts +16 -16
  148. package/src/describe/image/orchestrateImageDescribeDraft.ts +200 -200
  149. package/src/describe/image/structures/IAutoBeImageDescribeDraftApplication.ts +92 -92
  150. package/src/describe/imageDescribe.ts +64 -64
  151. package/src/factory/consentFunctionCall.ts +141 -141
  152. package/src/factory/createAgenticaHistory.ts +71 -71
  153. package/src/factory/createAutoBeContext.ts +584 -584
  154. package/src/factory/createAutoBeMessageContent.ts +36 -36
  155. package/src/factory/createAutoBeState.ts +20 -20
  156. package/src/factory/getAutoBeGenerated.ts +317 -317
  157. package/src/factory/getAutoBeRealizeGenerated.ts +31 -31
  158. package/src/factory/getCriticalCompiler.ts +52 -52
  159. package/src/factory/index.ts +1 -1
  160. package/src/factory/mergeSystemMessages.ts +60 -60
  161. package/src/factory/supportFunctionCallFallback.ts +214 -214
  162. package/src/factory/supportMistral.ts +138 -138
  163. package/src/index.ts +16 -16
  164. package/src/orchestrate/analyze/fillTocDeterministic.ts +280 -280
  165. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistory.ts +55 -55
  166. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioReviewHistory.ts +74 -74
  167. package/src/orchestrate/analyze/histories/transformAnalyzeSectionCrossFileReviewHistory.ts +179 -179
  168. package/src/orchestrate/analyze/histories/transformAnalyzeSectionReviewHistory.ts +163 -163
  169. package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionHistory.ts +191 -191
  170. package/src/orchestrate/analyze/histories/transformAnalyzeWriteSectionPatchHistory.ts +122 -122
  171. package/src/orchestrate/analyze/histories/transformAnalyzeWriteUnitHistory.ts +161 -161
  172. package/src/orchestrate/analyze/index.ts +7 -7
  173. package/src/orchestrate/analyze/orchestrateAnalyze.ts +1693 -1693
  174. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +267 -267
  175. package/src/orchestrate/analyze/orchestrateAnalyzeScenarioReview.ts +122 -122
  176. package/src/orchestrate/analyze/orchestrateAnalyzeSectionCrossFileReview.ts +146 -146
  177. package/src/orchestrate/analyze/orchestrateAnalyzeSectionReview.ts +154 -154
  178. package/src/orchestrate/analyze/orchestrateAnalyzeWriteSection.ts +388 -388
  179. package/src/orchestrate/analyze/orchestrateAnalyzeWriteSectionPatch.ts +407 -407
  180. package/src/orchestrate/analyze/orchestrateAnalyzeWriteUnit.ts +348 -348
  181. package/src/orchestrate/analyze/programmers/AutoBeAnalyzeProgrammer.ts +149 -149
  182. package/src/orchestrate/analyze/structures/FixedAnalyzeTemplate.ts +961 -961
  183. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioApplication.ts +141 -141
  184. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeScenarioReviewApplication.ts +96 -96
  185. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionCrossFileReviewApplication.ts +160 -160
  186. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeSectionReviewApplication.ts +192 -192
  187. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteSectionApplication.ts +142 -142
  188. package/src/orchestrate/analyze/structures/IAutoBeAnalyzeWriteUnitApplication.ts +123 -123
  189. package/src/orchestrate/analyze/utils/buildConstraintConsistencyReport.ts +813 -813
  190. package/src/orchestrate/analyze/utils/buildErrorCodeRegistry.ts +324 -324
  191. package/src/orchestrate/analyze/utils/buildHardValidators.ts +88 -88
  192. package/src/orchestrate/analyze/utils/detectInventedEntities.ts +87 -87
  193. package/src/orchestrate/analyze/utils/detectProseConstraintConflicts.ts +319 -319
  194. package/src/orchestrate/analyze/utils/repairSectionReviewUtils.ts +181 -181
  195. package/src/orchestrate/analyze/utils/repairUtils.ts +60 -60
  196. package/src/orchestrate/analyze/utils/validateScenarioBasics.ts +104 -104
  197. package/src/orchestrate/common/AutoBePreliminaryController.ts +400 -400
  198. package/src/orchestrate/common/histories/transformCommonCorrectCastingHistory.ts +32 -32
  199. package/src/orchestrate/common/histories/transformPreliminaryHistory.ts +742 -742
  200. package/src/orchestrate/common/histories/transformPreviousAndLatestCorrectHistory.ts +77 -77
  201. package/src/orchestrate/common/internal/complementPreliminaryCollection.ts +263 -263
  202. package/src/orchestrate/common/internal/convertToSectionEntries.ts +57 -57
  203. package/src/orchestrate/common/internal/createPreliminaryCollection.ts +76 -76
  204. package/src/orchestrate/common/internal/fixPrelminaryApplication.ts +346 -346
  205. package/src/orchestrate/common/internal/validatePreliminary.ts +671 -671
  206. package/src/orchestrate/common/orchestrateCommonCorrectCasting.ts +223 -223
  207. package/src/orchestrate/common/orchestratePreliminary.ts +610 -610
  208. package/src/orchestrate/common/structures/AutoBePreliminaryRequest.ts +42 -42
  209. package/src/orchestrate/common/structures/IAnalysisSectionEntry.ts +35 -35
  210. package/src/orchestrate/common/structures/IAutoBeCommonCorrectCastingApplication.ts +72 -72
  211. package/src/orchestrate/common/structures/IAutoBeOrchestrateResult.ts +28 -28
  212. package/src/orchestrate/common/structures/IAutoBePreliminaryCollection.ts +52 -52
  213. package/src/orchestrate/common/structures/IAutoBePreliminaryGetAnalysisSections.ts +34 -34
  214. package/src/orchestrate/common/structures/IAutoBePreliminaryGetDatabaseSchemas.ts +31 -31
  215. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceOperations.ts +32 -32
  216. package/src/orchestrate/common/structures/IAutoBePreliminaryGetInterfaceSchemas.ts +31 -31
  217. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousAnalysisSections.ts +28 -28
  218. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousDatabaseSchemas.ts +88 -88
  219. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceOperations.ts +102 -102
  220. package/src/orchestrate/common/structures/IAutoBePreliminaryGetPreviousInterfaceSchemas.ts +105 -105
  221. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeCollectors.ts +32 -32
  222. package/src/orchestrate/common/structures/IAutoBePreliminaryGetRealizeTransformers.ts +32 -32
  223. package/src/orchestrate/facade/createAutoBeFacadeController.ts +118 -118
  224. package/src/orchestrate/facade/histories/IAutoBeFacadeApplication.ts +139 -139
  225. package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationProps.ts +8 -8
  226. package/src/orchestrate/facade/histories/IAutoBeFacadeApplicationResult.ts +9 -9
  227. package/src/orchestrate/facade/structures/transformFacadeStateMessage.ts +59 -59
  228. package/src/orchestrate/index.ts +5 -5
  229. package/src/orchestrate/interface/histories/transformInterfaceActionEndpointReviewHistory.ts +83 -83
  230. package/src/orchestrate/interface/histories/transformInterfaceActionEndpointWriteHistory.ts +78 -78
  231. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationHistory.ts +129 -129
  232. package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointReviewHistory.ts +74 -74
  233. package/src/orchestrate/interface/histories/transformInterfaceBaseEndpointWriteHistory.ts +68 -68
  234. package/src/orchestrate/interface/histories/transformInterfaceCommonHistory.ts +64 -64
  235. package/src/orchestrate/interface/histories/transformInterfaceEndpointAuthorizationSection.ts +42 -42
  236. package/src/orchestrate/interface/histories/transformInterfaceGroupHistory.ts +103 -103
  237. package/src/orchestrate/interface/histories/transformInterfaceOperationHistory.ts +81 -81
  238. package/src/orchestrate/interface/histories/transformInterfaceOperationParameterHistory.ts +53 -53
  239. package/src/orchestrate/interface/histories/transformInterfaceOperationReviewHistory.ts +49 -49
  240. package/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistory.ts +94 -94
  241. package/src/orchestrate/interface/histories/transformInterfaceSchemaCastingHistory.ts +122 -122
  242. package/src/orchestrate/interface/histories/transformInterfaceSchemaComplementHistory.ts +192 -192
  243. package/src/orchestrate/interface/histories/transformInterfaceSchemaRefineHistory.ts +189 -189
  244. package/src/orchestrate/interface/histories/transformInterfaceSchemaRenameHistory.ts +63 -63
  245. package/src/orchestrate/interface/histories/transformInterfaceSchemaReviewHistory.ts +173 -173
  246. package/src/orchestrate/interface/histories/transformInterfaceSchemaWriteHistory.ts +88 -88
  247. package/src/orchestrate/interface/index.ts +6 -6
  248. package/src/orchestrate/interface/orchestrateInterface.ts +118 -118
  249. package/src/orchestrate/interface/orchestrateInterfaceActionEndpoint.ts +58 -58
  250. package/src/orchestrate/interface/orchestrateInterfaceAuthorization.ts +208 -208
  251. package/src/orchestrate/interface/orchestrateInterfaceBaseEndpoint.ts +55 -55
  252. package/src/orchestrate/interface/orchestrateInterfaceEndpoint.ts +67 -67
  253. package/src/orchestrate/interface/orchestrateInterfaceEndpointOverall.ts +80 -80
  254. package/src/orchestrate/interface/orchestrateInterfaceEndpointReview.ts +212 -212
  255. package/src/orchestrate/interface/orchestrateInterfaceEndpointWrite.ts +236 -236
  256. package/src/orchestrate/interface/orchestrateInterfaceGroup.ts +166 -166
  257. package/src/orchestrate/interface/orchestrateInterfaceOperation.ts +322 -322
  258. package/src/orchestrate/interface/orchestrateInterfaceOperationReview.ts +245 -245
  259. package/src/orchestrate/interface/orchestrateInterfacePrerequisite.ts +240 -240
  260. package/src/orchestrate/interface/orchestrateInterfaceSchema.ts +191 -191
  261. package/src/orchestrate/interface/orchestrateInterfaceSchemaCasting.ts +274 -274
  262. package/src/orchestrate/interface/orchestrateInterfaceSchemaComplement.ts +329 -329
  263. package/src/orchestrate/interface/orchestrateInterfaceSchemaRefine.ts +292 -292
  264. package/src/orchestrate/interface/orchestrateInterfaceSchemaRename.ts +266 -266
  265. package/src/orchestrate/interface/orchestrateInterfaceSchemaReview.ts +310 -310
  266. package/src/orchestrate/interface/orchestrateInterfaceSchemaWrite.ts +283 -283
  267. package/src/orchestrate/interface/programmers/AutoBeInterfaceAuthorizationProgrammer.ts +260 -260
  268. package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointProgrammer.ts +155 -155
  269. package/src/orchestrate/interface/programmers/AutoBeInterfaceEndpointReviewProgrammer.ts +139 -139
  270. package/src/orchestrate/interface/programmers/AutoBeInterfaceOperationProgrammer.ts +277 -277
  271. package/src/orchestrate/interface/programmers/AutoBeInterfacePrerequisiteProgrammer.ts +259 -259
  272. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaProgrammer.ts +152 -152
  273. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaPropertyReviseProgrammer.ts +347 -347
  274. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaRefineProgrammer.ts +183 -183
  275. package/src/orchestrate/interface/programmers/AutoBeInterfaceSchemaReviewProgrammer.ts +263 -263
  276. package/src/orchestrate/interface/structures/IAutoBeInterfaceAuthorizationApplication.ts +135 -135
  277. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointReviewApplication.ts +128 -128
  278. package/src/orchestrate/interface/structures/IAutoBeInterfaceEndpointWriteApplication.ts +133 -133
  279. package/src/orchestrate/interface/structures/IAutoBeInterfaceGroupApplication.ts +122 -122
  280. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +178 -178
  281. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationReviewApplication.ts +175 -175
  282. package/src/orchestrate/interface/structures/IAutoBeInterfacePrerequisiteApplication.ts +130 -130
  283. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaApplication.ts +121 -121
  284. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaCastingApplication.ts +153 -153
  285. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaComplementApplication.ts +123 -123
  286. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRefineApplication.ts +181 -181
  287. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaRenameApplication.ts +45 -45
  288. package/src/orchestrate/interface/structures/IAutoBeInterfaceSchemaReviewApplication.ts +108 -108
  289. package/src/orchestrate/interface/utils/AutoBeJsonSchemaCollection.ts +42 -42
  290. package/src/orchestrate/interface/utils/AutoBeJsonSchemaFactory.ts +714 -714
  291. package/src/orchestrate/interface/utils/AutoBeJsonSchemaNamingConvention.ts +86 -86
  292. package/src/orchestrate/interface/utils/AutoBeJsonSchemaValidator.ts +725 -725
  293. package/src/orchestrate/interface/utils/fulfillJsonSchemaErrorMessages.ts +219 -219
  294. package/src/orchestrate/prisma/histories/transformPrismaAuthorizationHistory.ts +144 -144
  295. package/src/orchestrate/prisma/histories/transformPrismaAuthorizationReviewHistory.ts +104 -104
  296. package/src/orchestrate/prisma/histories/transformPrismaComponentReviewHistory.ts +97 -97
  297. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistory.ts +136 -136
  298. package/src/orchestrate/prisma/histories/transformPrismaCorrectHistory.ts +41 -41
  299. package/src/orchestrate/prisma/histories/transformPrismaGroupHistory.ts +63 -63
  300. package/src/orchestrate/prisma/histories/transformPrismaGroupReviewHistory.ts +79 -79
  301. package/src/orchestrate/prisma/histories/transformPrismaSchemaHistory.ts +97 -97
  302. package/src/orchestrate/prisma/histories/transformPrismaSchemaReviewHistory.ts +126 -126
  303. package/src/orchestrate/prisma/index.ts +7 -7
  304. package/src/orchestrate/prisma/orchestratePrisma.ts +296 -296
  305. package/src/orchestrate/prisma/orchestratePrismaAuthorization.ts +173 -173
  306. package/src/orchestrate/prisma/orchestratePrismaAuthorizationReview.ts +183 -183
  307. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +205 -205
  308. package/src/orchestrate/prisma/orchestratePrismaComponentReview.ts +205 -205
  309. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +265 -265
  310. package/src/orchestrate/prisma/orchestratePrismaGroup.ts +121 -121
  311. package/src/orchestrate/prisma/orchestratePrismaGroupReview.ts +141 -141
  312. package/src/orchestrate/prisma/orchestratePrismaSchema.ts +218 -218
  313. package/src/orchestrate/prisma/orchestratePrismaSchemaReview.ts +220 -220
  314. package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationProgrammer.ts +86 -86
  315. package/src/orchestrate/prisma/programmers/AutoBeDatabaseAuthorizationReviewProgrammer.ts +103 -103
  316. package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentProgrammer.ts +80 -80
  317. package/src/orchestrate/prisma/programmers/AutoBeDatabaseComponentReviewProgrammer.ts +168 -168
  318. package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupProgrammer.ts +63 -63
  319. package/src/orchestrate/prisma/programmers/AutoBeDatabaseGroupReviewProgrammer.ts +210 -210
  320. package/src/orchestrate/prisma/programmers/AutoBeDatabaseModelProgrammer.ts +57 -57
  321. package/src/orchestrate/prisma/programmers/AutoBeDatabaseSchemaProgrammer.ts +92 -92
  322. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationApplication.ts +147 -147
  323. package/src/orchestrate/prisma/structures/IAutoBeDatabaseAuthorizationReviewApplication.ts +153 -153
  324. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentApplication.ts +142 -142
  325. package/src/orchestrate/prisma/structures/IAutoBeDatabaseComponentReviewApplication.ts +151 -151
  326. package/src/orchestrate/prisma/structures/IAutoBeDatabaseCorrectApplication.ts +157 -157
  327. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupApplication.ts +117 -117
  328. package/src/orchestrate/prisma/structures/IAutoBeDatabaseGroupReviewApplication.ts +154 -154
  329. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaApplication.ts +144 -144
  330. package/src/orchestrate/prisma/structures/IAutoBeDatabaseSchemaReviewApplication.ts +138 -138
  331. package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistory.ts +89 -89
  332. package/src/orchestrate/realize/histories/transformRealizeAuthorizationWriteHistory.ts +45 -45
  333. package/src/orchestrate/realize/histories/transformRealizeCollectorCorrectHistory.ts +137 -137
  334. package/src/orchestrate/realize/histories/transformRealizeCollectorPlanHistory.ts +64 -64
  335. package/src/orchestrate/realize/histories/transformRealizeCollectorWriteHistory.ts +147 -147
  336. package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistory.ts +69 -69
  337. package/src/orchestrate/realize/histories/transformRealizeOperationCorrectHistory.ts +94 -94
  338. package/src/orchestrate/realize/histories/transformRealizeOperationWriteHistory.ts +127 -127
  339. package/src/orchestrate/realize/histories/transformRealizeTransformerCorrectHistory.ts +147 -147
  340. package/src/orchestrate/realize/histories/transformRealizeTransformerPlanHistory.ts +61 -61
  341. package/src/orchestrate/realize/histories/transformRealizeTransformerWriteHistory.ts +133 -133
  342. package/src/orchestrate/realize/histories/transformRealizeWriteMembershipHistory.ts +30 -30
  343. package/src/orchestrate/realize/index.ts +3 -3
  344. package/src/orchestrate/realize/internal/orchestrateRealizeCorrectCasting.ts +444 -444
  345. package/src/orchestrate/realize/internal/orchestrateRealizeCorrectOverall.ts +449 -449
  346. package/src/orchestrate/realize/orchestrateRealize.ts +143 -143
  347. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +207 -207
  348. package/src/orchestrate/realize/orchestrateRealizeAuthorizationWrite.ts +209 -209
  349. package/src/orchestrate/realize/orchestrateRealizeCollector.ts +41 -41
  350. package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectCasting.ts +43 -43
  351. package/src/orchestrate/realize/orchestrateRealizeCollectorCorrectOverall.ts +157 -157
  352. package/src/orchestrate/realize/orchestrateRealizeCollectorPlan.ts +264 -264
  353. package/src/orchestrate/realize/orchestrateRealizeCollectorWrite.ts +225 -225
  354. package/src/orchestrate/realize/orchestrateRealizeOperation.ts +48 -48
  355. package/src/orchestrate/realize/orchestrateRealizeOperationCorrectCasting.ts +69 -69
  356. package/src/orchestrate/realize/orchestrateRealizeOperationCorrectOverall.ts +173 -173
  357. package/src/orchestrate/realize/orchestrateRealizeOperationWrite.ts +262 -262
  358. package/src/orchestrate/realize/orchestrateRealizeTransformer.ts +41 -41
  359. package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectCasting.ts +38 -38
  360. package/src/orchestrate/realize/orchestrateRealizeTransformerCorrectOverall.ts +160 -160
  361. package/src/orchestrate/realize/orchestrateRealizeTransformerPlan.ts +254 -254
  362. package/src/orchestrate/realize/orchestrateRealizeTransformerWrite.ts +226 -226
  363. package/src/orchestrate/realize/programmers/AutoBeRealizeCollectorProgrammer.ts +424 -424
  364. package/src/orchestrate/realize/programmers/AutoBeRealizeOperationProgrammer.ts +409 -409
  365. package/src/orchestrate/realize/programmers/AutoBeRealizeTransformerProgrammer.ts +451 -451
  366. package/src/orchestrate/realize/programmers/compileRealizeFiles.ts +65 -65
  367. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationCorrectApplication.ts +119 -119
  368. package/src/orchestrate/realize/structures/IAutoBeRealizeAuthorizationWriteApplication.ts +167 -167
  369. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorCorrectApplication.ts +191 -191
  370. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorPlanApplication.ts +177 -177
  371. package/src/orchestrate/realize/structures/IAutoBeRealizeCollectorWriteApplication.ts +207 -207
  372. package/src/orchestrate/realize/structures/IAutoBeRealizeFunctionFailure.ts +11 -11
  373. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationCorrectApplication.ts +134 -134
  374. package/src/orchestrate/realize/structures/IAutoBeRealizeOperationWriteApplication.ts +138 -138
  375. package/src/orchestrate/realize/structures/IAutoBeRealizeScenarioResult.ts +32 -32
  376. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerCorrectApplication.ts +248 -248
  377. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerPlanApplication.ts +150 -150
  378. package/src/orchestrate/realize/structures/IAutoBeRealizeTransformerWriteApplication.ts +278 -278
  379. package/src/orchestrate/realize/utils/AuthorizationFileSystem.ts +10 -10
  380. package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationFileSystem.ts +9 -9
  381. package/src/orchestrate/realize/utils/AutoBeRealizeAuthorizationReplaceImport.ts +62 -62
  382. package/src/orchestrate/realize/utils/InternalFileSystem.ts +12 -12
  383. package/src/orchestrate/realize/utils/ProviderFileSystem.ts +4 -4
  384. package/src/orchestrate/realize/utils/filterDiagnostics.ts +25 -25
  385. package/src/orchestrate/realize/utils/generateTS2339Hints.ts +54 -54
  386. package/src/orchestrate/realize/utils/getRealizeWriteImportStatements.ts +42 -42
  387. package/src/orchestrate/realize/utils/getRealizeWriteInputType.ts +88 -88
  388. package/src/orchestrate/realize/utils/printErrorHints.ts +54 -54
  389. package/src/orchestrate/test/compile/getTestArtifacts.ts +124 -124
  390. package/src/orchestrate/test/compile/getTestExternalDeclarations.ts +39 -39
  391. package/src/orchestrate/test/compile/getTestImportStatements.ts +27 -27
  392. package/src/orchestrate/test/experimental/orchestrateTestCorrect.ast +237 -237
  393. package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +322 -322
  394. package/src/orchestrate/test/experimental/transformTestCorrectHistories.ast +52 -52
  395. package/src/orchestrate/test/histories/transformTestAuthorizeWriteHistory.ts +80 -80
  396. package/src/orchestrate/test/histories/transformTestCorrectOverallHistory.ts +116 -116
  397. package/src/orchestrate/test/histories/transformTestGenerationWriteHistory.ts +118 -118
  398. package/src/orchestrate/test/histories/transformTestOperationWriteHistory.ts +287 -287
  399. package/src/orchestrate/test/histories/transformTestPrepareWriteHistory.ts +95 -95
  400. package/src/orchestrate/test/histories/transformTestScenarioHistory.ts +120 -120
  401. package/src/orchestrate/test/histories/transformTestScenarioReviewHistory.ts +99 -99
  402. package/src/orchestrate/test/histories/transformTestValidateEvent.ts +11 -11
  403. package/src/orchestrate/test/index.ts +5 -5
  404. package/src/orchestrate/test/internal/orchestrateTestCorrectCasting.ts +96 -96
  405. package/src/orchestrate/test/internal/orchestrateTestCorrectOverall.ts +219 -219
  406. package/src/orchestrate/test/internal/orchestrateTestCorrectRequest.ts +206 -206
  407. package/src/orchestrate/test/orchestrateTest.ts +161 -161
  408. package/src/orchestrate/test/orchestrateTestAuthorize.ts +125 -125
  409. package/src/orchestrate/test/orchestrateTestAuthorizeWrite.ts +263 -263
  410. package/src/orchestrate/test/orchestrateTestGenerate.ts +121 -121
  411. package/src/orchestrate/test/orchestrateTestGenerateWrite.ts +211 -211
  412. package/src/orchestrate/test/orchestrateTestOperation.ts +133 -133
  413. package/src/orchestrate/test/orchestrateTestOperationWrite.ts +221 -221
  414. package/src/orchestrate/test/orchestrateTestPrepare.ts +117 -117
  415. package/src/orchestrate/test/orchestrateTestPrepareWrite.ts +264 -264
  416. package/src/orchestrate/test/orchestrateTestScenario.ts +290 -290
  417. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +262 -262
  418. package/src/orchestrate/test/programmers/AutoBeTestAuthorizeProgrammer.ts +149 -149
  419. package/src/orchestrate/test/programmers/AutoBeTestFunctionProgrammer.ts +90 -90
  420. package/src/orchestrate/test/programmers/AutoBeTestGenerateProgrammer.ts +170 -170
  421. package/src/orchestrate/test/programmers/AutoBeTestOperationProgrammer.ts +168 -168
  422. package/src/orchestrate/test/programmers/AutoBeTestPrepareProgrammer.ts +261 -261
  423. package/src/orchestrate/test/programmers/AutoBeTestScenarioProgrammer.ts +316 -316
  424. package/src/orchestrate/test/structures/IAutoBeTestArtifacts.ts +8 -8
  425. package/src/orchestrate/test/structures/IAutoBeTestAuthorizationWriteApplication.ts +113 -113
  426. package/src/orchestrate/test/structures/IAutoBeTestAuthorizeWriteResult.ts +10 -10
  427. package/src/orchestrate/test/structures/IAutoBeTestCorrectOverallApplication.ts +134 -134
  428. package/src/orchestrate/test/structures/IAutoBeTestCorrectRequestApplication.ts +152 -152
  429. package/src/orchestrate/test/structures/IAutoBeTestFunction.ts +10 -10
  430. package/src/orchestrate/test/structures/IAutoBeTestFunctionFailure.ts +10 -10
  431. package/src/orchestrate/test/structures/IAutoBeTestGenerateProcedure.ts +15 -15
  432. package/src/orchestrate/test/structures/IAutoBeTestGenerationWriteApplication.ts +145 -145
  433. package/src/orchestrate/test/structures/IAutoBeTestOperationProcedure.ts +17 -17
  434. package/src/orchestrate/test/structures/IAutoBeTestOperationWriteApplication.ts +162 -162
  435. package/src/orchestrate/test/structures/IAutoBeTestPrepareCorrectOverallApplication.ts +194 -194
  436. package/src/orchestrate/test/structures/IAutoBeTestPrepareProcedure.ts +8 -8
  437. package/src/orchestrate/test/structures/IAutoBeTestPrepareWriteApplication.ts +147 -147
  438. package/src/orchestrate/test/structures/IAutoBeTestProcedure.ts +10 -10
  439. package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +105 -105
  440. package/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.ts +8 -8
  441. package/src/orchestrate/test/structures/IAutoBeTestScenarioAuthorizationActor.ts +7 -7
  442. package/src/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.ts +133 -133
  443. package/src/orchestrate/test/utils/getPrerequisites.ts +51 -51
  444. package/src/orchestrate/test/utils/getReferenceIds.ts +26 -26
  445. package/src/orchestrate/test/utils/insertScriptToTestResult.ts +14 -14
  446. package/src/structures/IAutoBeConfig.ts +110 -110
  447. package/src/structures/IAutoBeOrchestrateHistory.ts +44 -44
  448. package/src/structures/IAutoBeProps.ts +102 -102
  449. package/src/structures/IAutoBeVendor.ts +113 -113
  450. package/src/utils/AutoBePreliminaryExhaustedError.ts +30 -30
  451. package/src/utils/AutoBeTimeoutError.ts +35 -35
  452. package/src/utils/EmbeddingProvider.ts +4 -4
  453. package/src/utils/LocalEmbeddingProvider.ts +145 -145
  454. package/src/utils/RAGRetrieval.ts +411 -411
  455. package/src/utils/TimedConversation.ts +125 -125
  456. package/src/utils/backoffRetry.ts +169 -169
  457. package/src/utils/divideArray.ts +35 -35
  458. package/src/utils/emplaceMap.ts +31 -31
  459. package/src/utils/executeCachedBatch.ts +67 -67
  460. package/src/utils/forceRetry.ts +15 -15
  461. package/src/utils/getEmbedder.ts +16 -16
  462. package/src/utils/parseTextFunctionCall.ts +437 -437
  463. package/src/utils/predicateStateMessage.ts +131 -131
  464. package/src/utils/validateEmptyCode.ts +73 -73
  465. package/src/utils/validateEnglishOnly.ts +224 -224
  466. package/README.md +0 -261
@@ -1,125 +1,125 @@
1
- import { MicroAgentica, MicroAgenticaHistory } from "@agentica/core";
2
- import { ConditionVariable, IPointer, Singleton, sleep_for } from "tstl";
3
-
4
- import { AutoBeTimeoutError } from "./AutoBeTimeoutError";
5
-
6
- /**
7
- * Wraps LLM conversation with timeout enforcement and discriminated result
8
- * types.
9
- *
10
- * Prevents hanging indefinitely when LLM APIs become unresponsive or requests
11
- * take excessively long. Uses AbortController to cancel in-flight requests when
12
- * timeout expires. Returns discriminated union enabling callers to handle
13
- * success/timeout/error cases separately.
14
- *
15
- * @author Samchon
16
- */
17
- export namespace TimedConversation {
18
- /** Configuration for timed conversation execution. */
19
- export interface IProps {
20
- /** MicroAgentica agent to execute conversation */
21
- agent: MicroAgentica;
22
- /** User message to send */
23
- message: string;
24
- /** Timeout in milliseconds, or null for no timeout */
25
- timeout: number | null;
26
- }
27
-
28
- /** Discriminated union of possible conversation outcomes. */
29
- export type IResult = ISuccessResult | ITimeoutResult | IErrorResult;
30
-
31
- /** Successful conversation completion. */
32
- export interface ISuccessResult {
33
- type: "success";
34
- histories: MicroAgenticaHistory[];
35
- }
36
-
37
- /** Conversation exceeded timeout limit. */
38
- export interface ITimeoutResult {
39
- type: "timeout";
40
- error: AutoBeTimeoutError;
41
- }
42
-
43
- /** Conversation failed with error other than timeout. */
44
- export interface IErrorResult {
45
- type: "error";
46
- error: Error;
47
- }
48
-
49
- /**
50
- * Executes conversation with optional timeout enforcement.
51
- *
52
- * If timeout is null, executes without time limit. Otherwise, sets up timeout
53
- * handler that aborts the request and returns timeout result. Uses condition
54
- * variable for synchronization between conversation and timeout threads.
55
- *
56
- * @param props Agent, message, and timeout configuration
57
- * @returns Discriminated result indicating success, timeout, or error
58
- */
59
- export const process = async (props: IProps): Promise<IResult> => {
60
- if (props.timeout === null)
61
- try {
62
- const histories: MicroAgenticaHistory[] = await props.agent.conversate(
63
- props.message,
64
- );
65
- return {
66
- type: "success",
67
- histories,
68
- };
69
- } catch (error) {
70
- return {
71
- type: "error",
72
- error: error as Error,
73
- };
74
- }
75
-
76
- // PREPARE TIMEOUT HANDLERS
77
- const result: IPointer<IResult | null> = {
78
- value: null,
79
- };
80
- const holder: ConditionVariable = new ConditionVariable();
81
- const abort: AbortController = new AbortController();
82
- const timeout: Singleton<NodeJS.Timeout> = new Singleton(() =>
83
- setTimeout(() => {
84
- if (result.value !== null) return;
85
- result.value = {
86
- type: "timeout",
87
- error: new AutoBeTimeoutError(`Timeout, over ${props.timeout} ms.`),
88
- };
89
- abort.abort(`Timeout, over ${props.timeout} ms`);
90
- void holder.notify_all().catch(() => {});
91
- }, props.timeout!),
92
- );
93
-
94
- // DO CONVERSATE
95
- props.agent.on("request", () => {
96
- timeout.get();
97
- });
98
- props.agent
99
- .conversate(props.message, {
100
- abortSignal: abort.signal,
101
- })
102
- .then(
103
- (v) =>
104
- (result.value ??= {
105
- type: "success",
106
- histories: v,
107
- }),
108
- )
109
- .catch(
110
- (e) =>
111
- (result.value ??= {
112
- type: "error",
113
- error: e as Error,
114
- }),
115
- )
116
- .finally(() => {
117
- void holder.notify_all().catch(() => {});
118
- clearTimeout(timeout.get());
119
- });
120
-
121
- await holder.wait();
122
- await sleep_for(0);
123
- return result.value!;
124
- };
125
- }
1
+ import { MicroAgentica, MicroAgenticaHistory } from "@agentica/core";
2
+ import { ConditionVariable, IPointer, Singleton, sleep_for } from "tstl";
3
+
4
+ import { AutoBeTimeoutError } from "./AutoBeTimeoutError";
5
+
6
+ /**
7
+ * Wraps LLM conversation with timeout enforcement and discriminated result
8
+ * types.
9
+ *
10
+ * Prevents hanging indefinitely when LLM APIs become unresponsive or requests
11
+ * take excessively long. Uses AbortController to cancel in-flight requests when
12
+ * timeout expires. Returns discriminated union enabling callers to handle
13
+ * success/timeout/error cases separately.
14
+ *
15
+ * @author Samchon
16
+ */
17
+ export namespace TimedConversation {
18
+ /** Configuration for timed conversation execution. */
19
+ export interface IProps {
20
+ /** MicroAgentica agent to execute conversation */
21
+ agent: MicroAgentica;
22
+ /** User message to send */
23
+ message: string;
24
+ /** Timeout in milliseconds, or null for no timeout */
25
+ timeout: number | null;
26
+ }
27
+
28
+ /** Discriminated union of possible conversation outcomes. */
29
+ export type IResult = ISuccessResult | ITimeoutResult | IErrorResult;
30
+
31
+ /** Successful conversation completion. */
32
+ export interface ISuccessResult {
33
+ type: "success";
34
+ histories: MicroAgenticaHistory[];
35
+ }
36
+
37
+ /** Conversation exceeded timeout limit. */
38
+ export interface ITimeoutResult {
39
+ type: "timeout";
40
+ error: AutoBeTimeoutError;
41
+ }
42
+
43
+ /** Conversation failed with error other than timeout. */
44
+ export interface IErrorResult {
45
+ type: "error";
46
+ error: Error;
47
+ }
48
+
49
+ /**
50
+ * Executes conversation with optional timeout enforcement.
51
+ *
52
+ * If timeout is null, executes without time limit. Otherwise, sets up timeout
53
+ * handler that aborts the request and returns timeout result. Uses condition
54
+ * variable for synchronization between conversation and timeout threads.
55
+ *
56
+ * @param props Agent, message, and timeout configuration
57
+ * @returns Discriminated result indicating success, timeout, or error
58
+ */
59
+ export const process = async (props: IProps): Promise<IResult> => {
60
+ if (props.timeout === null)
61
+ try {
62
+ const histories: MicroAgenticaHistory[] = await props.agent.conversate(
63
+ props.message,
64
+ );
65
+ return {
66
+ type: "success",
67
+ histories,
68
+ };
69
+ } catch (error) {
70
+ return {
71
+ type: "error",
72
+ error: error as Error,
73
+ };
74
+ }
75
+
76
+ // PREPARE TIMEOUT HANDLERS
77
+ const result: IPointer<IResult | null> = {
78
+ value: null,
79
+ };
80
+ const holder: ConditionVariable = new ConditionVariable();
81
+ const abort: AbortController = new AbortController();
82
+ const timeout: Singleton<NodeJS.Timeout> = new Singleton(() =>
83
+ setTimeout(() => {
84
+ if (result.value !== null) return;
85
+ result.value = {
86
+ type: "timeout",
87
+ error: new AutoBeTimeoutError(`Timeout, over ${props.timeout} ms.`),
88
+ };
89
+ abort.abort(`Timeout, over ${props.timeout} ms`);
90
+ void holder.notify_all().catch(() => {});
91
+ }, props.timeout!),
92
+ );
93
+
94
+ // DO CONVERSATE
95
+ props.agent.on("request", () => {
96
+ timeout.get();
97
+ });
98
+ props.agent
99
+ .conversate(props.message, {
100
+ abortSignal: abort.signal,
101
+ })
102
+ .then(
103
+ (v) =>
104
+ (result.value ??= {
105
+ type: "success",
106
+ histories: v,
107
+ }),
108
+ )
109
+ .catch(
110
+ (e) =>
111
+ (result.value ??= {
112
+ type: "error",
113
+ error: e as Error,
114
+ }),
115
+ )
116
+ .finally(() => {
117
+ void holder.notify_all().catch(() => {});
118
+ clearTimeout(timeout.get());
119
+ });
120
+
121
+ await holder.wait();
122
+ await sleep_for(0);
123
+ return result.value!;
124
+ };
125
+ }
@@ -1,169 +1,169 @@
1
- /** Configuration options for exponential backoff retry behavior. */
2
- export interface RetryOptions {
3
- /** Maximum number of retry attempts (default: 5) */
4
- maxRetries: number;
5
- /** Base delay in milliseconds (default: 4000) */
6
- baseDelay: number;
7
- /** Maximum delay in milliseconds (default: 60000) */
8
- maxDelay: number;
9
- /** Jitter factor for randomization (0-1, default: 0.8) */
10
- jitter: number;
11
- /** Function to determine if error should trigger retry (default: isRetryError) */
12
- handleError: (error: unknown) => boolean;
13
- }
14
-
15
- /**
16
- * Retries failed LLM API calls with exponential backoff and jitter.
17
- *
18
- * Automatically retries transient failures (rate limits, server errors, network
19
- * issues) while immediately failing on permanent errors (quota exceeded,
20
- * invalid requests). Uses exponential backoff with randomized jitter to avoid
21
- * thundering herd problems when multiple concurrent requests fail
22
- * simultaneously.
23
- *
24
- * The retry logic is critical for production reliability: LLM APIs frequently
25
- * return temporary 429/5xx errors under heavy load, and network timeouts are
26
- * common. Without retry, these transient failures would cascade into
27
- * user-visible errors despite being automatically recoverable.
28
- *
29
- * @author Kakasoo
30
- * @param fn Async function to execute with retry logic
31
- * @param options Retry configuration (maxRetries, delays, error handler)
32
- * @returns Promise resolving to function result if successful
33
- * @throws Last encountered error if all retry attempts exhausted
34
- */
35
- export async function randomBackoffRetry<T>(
36
- fn: () => Promise<T>,
37
- options: Partial<RetryOptions> = {},
38
- ): Promise<T> {
39
- const {
40
- maxRetries = 5,
41
- baseDelay = 4_000,
42
- maxDelay = 60_000,
43
- jitter = 0.8,
44
- handleError = isRetryError,
45
- } = options;
46
-
47
- let lastError: unknown;
48
-
49
- for (let attempt = 0; attempt < maxRetries; attempt++) {
50
- try {
51
- return await fn();
52
- } catch (err) {
53
- lastError = err;
54
-
55
- if (attempt === maxRetries - 1) throw err;
56
-
57
- if (!handleError(err)) throw err;
58
-
59
- const tempDelay = Math.min(baseDelay * 2 ** attempt, maxDelay);
60
- const delay = tempDelay * (1 + Math.random() * jitter);
61
-
62
- await new Promise((res) => setTimeout(res, delay));
63
- }
64
- }
65
-
66
- throw lastError;
67
- }
68
-
69
- /**
70
- * Calculates retry delay using exponential backoff with jitter.
71
- *
72
- * Throws immediately for non-retryable errors or when retry count exceeds 5.
73
- * Used by orchestrators that need explicit delay calculation without automatic
74
- * retry loop execution.
75
- *
76
- * @param props Retry count and error to evaluate
77
- * @returns Calculated delay in milliseconds
78
- * @throws Original error if non-retryable or max retries exceeded
79
- */
80
- export function randomBackoffStrategy(props: {
81
- count: number;
82
- error: unknown;
83
- }): number {
84
- const { count, error } = props;
85
- if (count > 5) {
86
- throw error;
87
- }
88
-
89
- if (isRetryError(error) === false) {
90
- throw error;
91
- }
92
-
93
- const baseDelay = 4_000;
94
- const maxDelay = 60_000;
95
- const jitter = 0.8;
96
- const tempDelay = Math.min(baseDelay * 2 ** count, maxDelay);
97
- const delay = tempDelay * (1 + Math.random() * jitter);
98
-
99
- return delay;
100
- }
101
-
102
- /**
103
- * Determines if an error represents a transient failure that should trigger
104
- * retry.
105
- *
106
- * Returns `true` for retryable errors (rate limits, server errors, network
107
- * issues) and `false` for permanent failures (quota exceeded, invalid
108
- * requests). This classification prevents wasting resources retrying
109
- * unrecoverable errors.
110
- *
111
- * @param error Error object from LLM API or network layer
112
- * @returns `true` if error is retryable, `false` otherwise
113
- */
114
- function isRetryError(
115
- // biome-ignore lint: @todo SunRabbit
116
- error: any,
117
- ): boolean {
118
- // 1) Quota exceeded → No retry
119
- if (
120
- error?.code === "insufficient_quota" ||
121
- error?.error?.type === "insufficient_quota"
122
- ) {
123
- return false;
124
- }
125
-
126
- // 2) 5xx / server_error → Retry
127
- // Streaming errors from OpenRouter may have status: undefined but code: 502
128
- if (
129
- (typeof error?.status === "number" && error.status >= 500) ||
130
- (typeof error?.code === "number" && error.code >= 500) ||
131
- error?.error?.type === "server_error"
132
- ) {
133
- return true;
134
- }
135
-
136
- // 3) HTTP 429
137
- if (error?.status === 429) {
138
- return true;
139
- }
140
-
141
- // 4) undici / network related
142
- const code = error?.code || error?.cause?.code;
143
- if (
144
- [
145
- "UND_ERR_SOCKET",
146
- "UND_ERR_CONNECT_TIMEOUT",
147
- "ETIMEDOUT",
148
- "ECONNRESET",
149
- "EPIPE",
150
- ].includes(code)
151
- ) {
152
- return true;
153
- }
154
-
155
- // 5) fetch abort
156
- if (error?.message === "terminated" || error?.name === "AbortError") {
157
- return true;
158
- }
159
-
160
- if (
161
- (error?.message as string)?.startsWith(
162
- `SyntaxError: Expected ',' or '}' after property value in JSON at position`,
163
- )
164
- ) {
165
- return true;
166
- }
167
-
168
- return false;
169
- }
1
+ /** Configuration options for exponential backoff retry behavior. */
2
+ export interface RetryOptions {
3
+ /** Maximum number of retry attempts (default: 5) */
4
+ maxRetries: number;
5
+ /** Base delay in milliseconds (default: 4000) */
6
+ baseDelay: number;
7
+ /** Maximum delay in milliseconds (default: 60000) */
8
+ maxDelay: number;
9
+ /** Jitter factor for randomization (0-1, default: 0.8) */
10
+ jitter: number;
11
+ /** Function to determine if error should trigger retry (default: isRetryError) */
12
+ handleError: (error: unknown) => boolean;
13
+ }
14
+
15
+ /**
16
+ * Retries failed LLM API calls with exponential backoff and jitter.
17
+ *
18
+ * Automatically retries transient failures (rate limits, server errors, network
19
+ * issues) while immediately failing on permanent errors (quota exceeded,
20
+ * invalid requests). Uses exponential backoff with randomized jitter to avoid
21
+ * thundering herd problems when multiple concurrent requests fail
22
+ * simultaneously.
23
+ *
24
+ * The retry logic is critical for production reliability: LLM APIs frequently
25
+ * return temporary 429/5xx errors under heavy load, and network timeouts are
26
+ * common. Without retry, these transient failures would cascade into
27
+ * user-visible errors despite being automatically recoverable.
28
+ *
29
+ * @author Kakasoo
30
+ * @param fn Async function to execute with retry logic
31
+ * @param options Retry configuration (maxRetries, delays, error handler)
32
+ * @returns Promise resolving to function result if successful
33
+ * @throws Last encountered error if all retry attempts exhausted
34
+ */
35
+ export async function randomBackoffRetry<T>(
36
+ fn: () => Promise<T>,
37
+ options: Partial<RetryOptions> = {},
38
+ ): Promise<T> {
39
+ const {
40
+ maxRetries = 5,
41
+ baseDelay = 4_000,
42
+ maxDelay = 60_000,
43
+ jitter = 0.8,
44
+ handleError = isRetryError,
45
+ } = options;
46
+
47
+ let lastError: unknown;
48
+
49
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
50
+ try {
51
+ return await fn();
52
+ } catch (err) {
53
+ lastError = err;
54
+
55
+ if (attempt === maxRetries - 1) throw err;
56
+
57
+ if (!handleError(err)) throw err;
58
+
59
+ const tempDelay = Math.min(baseDelay * 2 ** attempt, maxDelay);
60
+ const delay = tempDelay * (1 + Math.random() * jitter);
61
+
62
+ await new Promise((res) => setTimeout(res, delay));
63
+ }
64
+ }
65
+
66
+ throw lastError;
67
+ }
68
+
69
+ /**
70
+ * Calculates retry delay using exponential backoff with jitter.
71
+ *
72
+ * Throws immediately for non-retryable errors or when retry count exceeds 5.
73
+ * Used by orchestrators that need explicit delay calculation without automatic
74
+ * retry loop execution.
75
+ *
76
+ * @param props Retry count and error to evaluate
77
+ * @returns Calculated delay in milliseconds
78
+ * @throws Original error if non-retryable or max retries exceeded
79
+ */
80
+ export function randomBackoffStrategy(props: {
81
+ count: number;
82
+ error: unknown;
83
+ }): number {
84
+ const { count, error } = props;
85
+ if (count > 5) {
86
+ throw error;
87
+ }
88
+
89
+ if (isRetryError(error) === false) {
90
+ throw error;
91
+ }
92
+
93
+ const baseDelay = 4_000;
94
+ const maxDelay = 60_000;
95
+ const jitter = 0.8;
96
+ const tempDelay = Math.min(baseDelay * 2 ** count, maxDelay);
97
+ const delay = tempDelay * (1 + Math.random() * jitter);
98
+
99
+ return delay;
100
+ }
101
+
102
+ /**
103
+ * Determines if an error represents a transient failure that should trigger
104
+ * retry.
105
+ *
106
+ * Returns `true` for retryable errors (rate limits, server errors, network
107
+ * issues) and `false` for permanent failures (quota exceeded, invalid
108
+ * requests). This classification prevents wasting resources retrying
109
+ * unrecoverable errors.
110
+ *
111
+ * @param error Error object from LLM API or network layer
112
+ * @returns `true` if error is retryable, `false` otherwise
113
+ */
114
+ function isRetryError(
115
+ // biome-ignore lint: @todo SunRabbit
116
+ error: any,
117
+ ): boolean {
118
+ // 1) Quota exceeded → No retry
119
+ if (
120
+ error?.code === "insufficient_quota" ||
121
+ error?.error?.type === "insufficient_quota"
122
+ ) {
123
+ return false;
124
+ }
125
+
126
+ // 2) 5xx / server_error → Retry
127
+ // Streaming errors from OpenRouter may have status: undefined but code: 502
128
+ if (
129
+ (typeof error?.status === "number" && error.status >= 500) ||
130
+ (typeof error?.code === "number" && error.code >= 500) ||
131
+ error?.error?.type === "server_error"
132
+ ) {
133
+ return true;
134
+ }
135
+
136
+ // 3) HTTP 429
137
+ if (error?.status === 429) {
138
+ return true;
139
+ }
140
+
141
+ // 4) undici / network related
142
+ const code = error?.code || error?.cause?.code;
143
+ if (
144
+ [
145
+ "UND_ERR_SOCKET",
146
+ "UND_ERR_CONNECT_TIMEOUT",
147
+ "ETIMEDOUT",
148
+ "ECONNRESET",
149
+ "EPIPE",
150
+ ].includes(code)
151
+ ) {
152
+ return true;
153
+ }
154
+
155
+ // 5) fetch abort
156
+ if (error?.message === "terminated" || error?.name === "AbortError") {
157
+ return true;
158
+ }
159
+
160
+ if (
161
+ (error?.message as string)?.startsWith(
162
+ `SyntaxError: Expected ',' or '}' after property value in JSON at position`,
163
+ )
164
+ ) {
165
+ return true;
166
+ }
167
+
168
+ return false;
169
+ }
@@ -1,35 +1,35 @@
1
- /**
2
- * Divides an array into chunks of at most `capacity` elements each for parallel
3
- * batch processing.
4
- *
5
- * Used with `executeCachedBatch` to split large task lists into smaller batches
6
- * that can be processed concurrently. The `capacity` parameter controls the
7
- * maximum number of elements per chunk, not the number of chunks. This enables
8
- * balancing parallelism against prompt cache efficiency.
9
- *
10
- * For example, dividing 100 operations with capacity=3 creates 34 chunks of 3
11
- * operations each (the last chunk may have fewer elements if the array length
12
- * is not a multiple of capacity). This allows processing 100 operations in 34
13
- * parallel batches of up to 3 operations each.
14
- *
15
- * @param props Object containing the array to divide and the maximum chunk size
16
- * (`capacity`)
17
- * @returns Array of chunks with at most `capacity` elements each
18
- * @throws Error if capacity is non-positive, NaN, or Infinity
19
- */
20
- export function divideArray<T>(props: { array: T[]; capacity: number }): T[][] {
21
- if (props.capacity <= 0) {
22
- throw new Error("Capacity must be a positive integer");
23
- }
24
- if (Number.isNaN(props.capacity)) {
25
- throw new TypeError("Capacity must be a positive integer");
26
- }
27
- if (props.capacity === Infinity) {
28
- throw new Error("Capacity must be a positive integer");
29
- }
30
-
31
- const size: number = Math.ceil(props.array.length / props.capacity);
32
- const capacity: number = Math.ceil(props.array.length / size);
33
- const replica: T[] = props.array.slice();
34
- return Array.from({ length: size }, () => replica.splice(0, capacity));
35
- }
1
+ /**
2
+ * Divides an array into chunks of at most `capacity` elements each for parallel
3
+ * batch processing.
4
+ *
5
+ * Used with `executeCachedBatch` to split large task lists into smaller batches
6
+ * that can be processed concurrently. The `capacity` parameter controls the
7
+ * maximum number of elements per chunk, not the number of chunks. This enables
8
+ * balancing parallelism against prompt cache efficiency.
9
+ *
10
+ * For example, dividing 100 operations with capacity=3 creates 34 chunks of 3
11
+ * operations each (the last chunk may have fewer elements if the array length
12
+ * is not a multiple of capacity). This allows processing 100 operations in 34
13
+ * parallel batches of up to 3 operations each.
14
+ *
15
+ * @param props Object containing the array to divide and the maximum chunk size
16
+ * (`capacity`)
17
+ * @returns Array of chunks with at most `capacity` elements each
18
+ * @throws Error if capacity is non-positive, NaN, or Infinity
19
+ */
20
+ export function divideArray<T>(props: { array: T[]; capacity: number }): T[][] {
21
+ if (props.capacity <= 0) {
22
+ throw new Error("Capacity must be a positive integer");
23
+ }
24
+ if (Number.isNaN(props.capacity)) {
25
+ throw new TypeError("Capacity must be a positive integer");
26
+ }
27
+ if (props.capacity === Infinity) {
28
+ throw new Error("Capacity must be a positive integer");
29
+ }
30
+
31
+ const size: number = Math.ceil(props.array.length / props.capacity);
32
+ const capacity: number = Math.ceil(props.array.length / size);
33
+ const replica: T[] = props.array.slice();
34
+ return Array.from({ length: size }, () => replica.splice(0, capacity));
35
+ }