@autobe/agent 0.19.1 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/lib/agent/src/AutoBeAgent.js +3 -2
  2. package/lib/agent/src/AutoBeAgent.js.map +1 -1
  3. package/lib/agent/src/AutoBeMockAgent.js +3 -3
  4. package/lib/agent/src/constants/AutoBeSystemPromptConstant.d.ts +6 -6
  5. package/lib/agent/src/context/AutoBeContext.d.ts +1 -0
  6. package/lib/agent/src/factory/consentFunctionCall.js +3 -2
  7. package/lib/agent/src/factory/consentFunctionCall.js.map +1 -1
  8. package/lib/agent/src/factory/createAutoBeContext.js +8 -5
  9. package/lib/agent/src/factory/createAutoBeContext.js.map +1 -1
  10. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.d.ts +6 -0
  11. package/lib/agent/src/orchestrate/analyze/histories/{transformAnalyzeReviewerHistories.js → transformAnalyzeReviewHistories.js} +24 -29
  12. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js.map +1 -0
  13. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +12 -9
  14. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  15. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +31 -29
  16. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -1
  17. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyze.js +19 -5
  18. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
  19. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeReview.d.ts +7 -1
  20. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeReview.js +9 -6
  21. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeReview.js.map +1 -1
  22. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeScenario.js +11 -9
  23. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  24. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeWrite.d.ts +6 -4
  25. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeWrite.js +5 -1
  26. package/lib/agent/src/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
  27. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAssetHistories.js +45 -46
  28. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAssetHistories.js.map +1 -1
  29. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js +13 -13
  30. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js.map +1 -1
  31. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceComplementHistories.js +31 -30
  32. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +1 -1
  33. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +23 -22
  34. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +1 -1
  35. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceGroupHistories.js +2 -2
  36. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationHistories.js +27 -26
  37. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +1 -1
  38. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +13 -12
  39. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +1 -1
  40. package/lib/agent/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistories.js +4 -4
  41. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +11 -10
  42. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +1 -1
  43. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js +31 -30
  44. package/lib/agent/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js.map +1 -1
  45. package/lib/agent/src/orchestrate/interface/orchestrateInterface.js +3 -1
  46. package/lib/agent/src/orchestrate/interface/orchestrateInterface.js.map +1 -1
  47. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceAuthorizations.js +22 -18
  48. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  49. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceComplement.js +2 -0
  50. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  51. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceEndpoints.js +6 -2
  52. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  53. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceGroups.js +2 -0
  54. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  55. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperations.js +74 -48
  56. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  57. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperationsReview.js +24 -4
  58. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceOperationsReview.js.map +1 -1
  59. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemas.js +30 -24
  60. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  61. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.d.ts +2 -5
  62. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.js +178 -0
  63. package/lib/agent/src/orchestrate/interface/orchestrateInterfaceSchemasReview.js.map +1 -1
  64. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +38 -0
  65. package/lib/agent/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.d.ts +38 -0
  66. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +54 -54
  67. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +1 -1
  68. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.js +18 -29
  69. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.js.map +1 -1
  70. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaReviewHistories.js +37 -34
  71. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +1 -1
  72. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +38 -25
  73. package/lib/agent/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +1 -1
  74. package/lib/agent/src/orchestrate/prisma/orchestratePrisma.js +3 -1
  75. package/lib/agent/src/orchestrate/prisma/orchestratePrisma.js.map +1 -1
  76. package/lib/agent/src/orchestrate/prisma/orchestratePrismaComponent.js +2 -0
  77. package/lib/agent/src/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  78. package/lib/agent/src/orchestrate/prisma/orchestratePrismaCorrect.js +3 -0
  79. package/lib/agent/src/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
  80. package/lib/agent/src/orchestrate/prisma/orchestratePrismaReview.js +19 -9
  81. package/lib/agent/src/orchestrate/prisma/orchestratePrismaReview.js.map +1 -1
  82. package/lib/agent/src/orchestrate/prisma/orchestratePrismaSchemas.js +28 -21
  83. package/lib/agent/src/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -1
  84. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorization.js +24 -21
  85. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorization.js.map +1 -1
  86. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js +58 -56
  87. package/lib/agent/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js.map +1 -1
  88. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.js +17 -13
  89. package/lib/agent/src/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +1 -1
  90. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js +12 -3
  91. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.js.map +1 -1
  92. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.js +35 -30
  93. package/lib/agent/src/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -1
  94. package/lib/{orchestrate/realize/internal/compile.d.ts → agent/src/orchestrate/realize/internal/compileRealizeFiles.d.ts} +1 -1
  95. package/lib/agent/src/orchestrate/realize/internal/{compile.js → compileRealizeFiles.js} +6 -6
  96. package/lib/agent/src/orchestrate/realize/internal/compileRealizeFiles.js.map +1 -0
  97. package/lib/agent/src/orchestrate/realize/orchestrateRealize.js +26 -12
  98. package/lib/agent/src/orchestrate/realize/orchestrateRealize.js.map +1 -1
  99. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorization.js +9 -3
  100. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  101. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js +3 -1
  102. package/lib/agent/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.js.map +1 -1
  103. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.d.ts +2 -6
  104. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.js +8 -4
  105. package/lib/agent/src/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  106. package/lib/agent/src/orchestrate/realize/orchestrateRealizeScenario.d.ts +0 -66
  107. package/lib/agent/src/orchestrate/realize/orchestrateRealizeScenario.js.map +1 -1
  108. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.d.ts +3 -6
  109. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.js +21 -17
  110. package/lib/agent/src/orchestrate/realize/orchestrateRealizeWrite.js.map +1 -1
  111. package/lib/agent/src/orchestrate/test/compile/completeTestCode.js +13 -10
  112. package/lib/agent/src/orchestrate/test/compile/completeTestCode.js.map +1 -1
  113. package/lib/agent/src/orchestrate/test/histories/transformTestCorrectHistories.js +16 -15
  114. package/lib/agent/src/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -1
  115. package/lib/agent/src/orchestrate/test/histories/transformTestHistories.js +33 -32
  116. package/lib/agent/src/orchestrate/test/histories/transformTestHistories.js.map +1 -1
  117. package/lib/agent/src/orchestrate/test/histories/transformTestScenarioHistories.js +62 -59
  118. package/lib/agent/src/orchestrate/test/histories/transformTestScenarioHistories.js.map +1 -1
  119. package/lib/agent/src/orchestrate/test/histories/transformTestWriteHistories.js +2 -2
  120. package/lib/agent/src/orchestrate/test/orchestrateTest.js +6 -5
  121. package/lib/agent/src/orchestrate/test/orchestrateTest.js.map +1 -1
  122. package/lib/agent/src/orchestrate/test/orchestrateTestCorrect.js +16 -7
  123. package/lib/agent/src/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  124. package/lib/agent/src/orchestrate/test/orchestrateTestScenario.js +20 -8
  125. package/lib/agent/src/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  126. package/lib/agent/src/orchestrate/test/orchestrateTestWrite.js +17 -17
  127. package/lib/agent/src/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  128. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +2 -2
  129. package/lib/agent/src/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +2 -2
  130. package/lib/agent/src/utils/executeCachedBatch.d.ts +1 -0
  131. package/lib/agent/src/utils/executeCachedBatch.js +23 -0
  132. package/lib/agent/src/utils/executeCachedBatch.js.map +1 -0
  133. package/lib/constants/AutoBeSystemPromptConstant.d.ts +6 -6
  134. package/lib/context/AutoBeContext.d.ts +1 -0
  135. package/lib/index.mjs +1044 -270
  136. package/lib/index.mjs.map +1 -1
  137. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.d.ts +6 -0
  138. package/lib/orchestrate/analyze/orchestrateAnalyzeReview.d.ts +7 -1
  139. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.d.ts +6 -4
  140. package/lib/orchestrate/interface/orchestrateInterfaceSchemasReview.d.ts +2 -5
  141. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.d.ts +38 -0
  142. package/lib/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.d.ts +38 -0
  143. package/lib/{agent/src/orchestrate/realize/internal/compile.d.ts → orchestrate/realize/internal/compileRealizeFiles.d.ts} +1 -1
  144. package/lib/orchestrate/realize/orchestrateRealizeCorrect.d.ts +2 -6
  145. package/lib/orchestrate/realize/orchestrateRealizeScenario.d.ts +0 -66
  146. package/lib/orchestrate/realize/orchestrateRealizeWrite.d.ts +3 -6
  147. package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +2 -2
  148. package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +2 -2
  149. package/lib/utils/executeCachedBatch.d.ts +1 -0
  150. package/package.json +6 -6
  151. package/src/AutoBeAgent.ts +4 -3
  152. package/src/AutoBeMockAgent.ts +4 -4
  153. package/src/constants/AutoBeSystemPromptConstant.ts +6 -6
  154. package/src/context/AutoBeContext.ts +1 -0
  155. package/src/factory/consentFunctionCall.ts +4 -3
  156. package/src/factory/createAutoBeContext.ts +9 -6
  157. package/src/orchestrate/analyze/histories/{transformAnalyzeReviewerHistories.ts → transformAnalyzeReviewHistories.ts} +23 -30
  158. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.ts +13 -10
  159. package/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.ts +60 -61
  160. package/src/orchestrate/analyze/orchestrateAnalyze.ts +20 -13
  161. package/src/orchestrate/analyze/orchestrateAnalyzeReview.ts +20 -9
  162. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +13 -11
  163. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +10 -5
  164. package/src/orchestrate/interface/histories/transformInterfaceAssetHistories.ts +47 -48
  165. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.ts +14 -14
  166. package/src/orchestrate/interface/histories/transformInterfaceComplementHistories.ts +31 -30
  167. package/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.ts +20 -19
  168. package/src/orchestrate/interface/histories/transformInterfaceGroupHistories.ts +3 -3
  169. package/src/orchestrate/interface/histories/transformInterfaceOperationHistories.ts +23 -22
  170. package/src/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.ts +12 -11
  171. package/src/orchestrate/interface/histories/transformInterfacePrerequisiteHistories.ts +5 -5
  172. package/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.ts +11 -10
  173. package/src/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.ts +31 -30
  174. package/src/orchestrate/interface/orchestrateInterface.ts +4 -2
  175. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +36 -29
  176. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +2 -0
  177. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +13 -9
  178. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +2 -0
  179. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +53 -50
  180. package/src/orchestrate/interface/orchestrateInterfaceOperationsReview.ts +2 -0
  181. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +47 -23
  182. package/src/orchestrate/interface/orchestrateInterfaceSchemasReview.ts +85 -1
  183. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationApplication.ts +39 -0
  184. package/src/orchestrate/interface/structures/IAutoBeInterfaceOperationsReviewApplication.ts +40 -1
  185. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.ts +57 -55
  186. package/src/orchestrate/prisma/histories/transformPrismaCorrectHistories.ts +19 -30
  187. package/src/orchestrate/prisma/histories/transformPrismaReviewHistories.ts +38 -35
  188. package/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.ts +36 -23
  189. package/src/orchestrate/prisma/orchestratePrisma.ts +4 -2
  190. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +2 -0
  191. package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +3 -0
  192. package/src/orchestrate/prisma/orchestratePrismaReview.ts +26 -13
  193. package/src/orchestrate/prisma/orchestratePrismaSchemas.ts +25 -17
  194. package/src/orchestrate/realize/histories/transformRealizeAuthorization.ts +24 -21
  195. package/src/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.ts +42 -40
  196. package/src/orchestrate/realize/histories/transformRealizeCorrectHistories.ts +17 -13
  197. package/src/orchestrate/realize/histories/transformRealizeWriteAuthorizationsHistories.ts +14 -5
  198. package/src/orchestrate/realize/histories/transformRealizeWriteHistories.ts +35 -30
  199. package/src/orchestrate/realize/internal/{compile.ts → compileRealizeFiles.ts} +15 -11
  200. package/src/orchestrate/realize/orchestrateRealize.ts +59 -40
  201. package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +19 -10
  202. package/src/orchestrate/realize/orchestrateRealizeAuthorizationCorrect.ts +3 -0
  203. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +10 -10
  204. package/src/orchestrate/realize/orchestrateRealizeScenario.ts +0 -74
  205. package/src/orchestrate/realize/orchestrateRealizeWrite.ts +24 -23
  206. package/src/orchestrate/test/compile/completeTestCode.ts +17 -13
  207. package/src/orchestrate/test/experimental/transformTestCorrectHistories.ast +4 -4
  208. package/src/orchestrate/test/histories/transformTestCorrectHistories.ts +17 -16
  209. package/src/orchestrate/test/histories/transformTestHistories.ts +35 -34
  210. package/src/orchestrate/test/histories/transformTestScenarioHistories.ts +62 -57
  211. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +3 -3
  212. package/src/orchestrate/test/orchestrateTest.ts +7 -9
  213. package/src/orchestrate/test/orchestrateTestCorrect.ts +34 -24
  214. package/src/orchestrate/test/orchestrateTestScenario.ts +28 -21
  215. package/src/orchestrate/test/orchestrateTestWrite.ts +16 -17
  216. package/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.ts +3 -3
  217. package/src/orchestrate/test/structures/IAutoBeTestWriteApplication.ts +2 -2
  218. package/src/utils/executeCachedBatch.ts +15 -0
  219. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.d.ts +0 -6
  220. package/lib/agent/src/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.js.map +0 -1
  221. package/lib/agent/src/orchestrate/realize/internal/compile.js.map +0 -1
  222. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewerHistories.d.ts +0 -6
@@ -8,6 +8,7 @@ import {
8
8
  import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
9
9
  import { IPointer } from "tstl";
10
10
  import typia from "typia";
11
+ import { v7 } from "uuid";
11
12
 
12
13
  import { AutoBeContext } from "../../context/AutoBeContext";
13
14
  import { assertSchemaModel } from "../../context/assertSchemaModel";
@@ -49,6 +50,7 @@ async function iterate<Model extends ILlmSchema.Model>(
49
50
  );
50
51
  ctx.dispatch({
51
52
  type: "prismaValidate",
53
+ id: v7(),
52
54
  result,
53
55
  schemas,
54
56
  compiled: await compiler.prisma.compile({
@@ -144,6 +146,7 @@ async function execute<Model extends ILlmSchema.Model>(
144
146
  };
145
147
  ctx.dispatch({
146
148
  type: "prismaCorrect",
149
+ id: v7(),
147
150
  failure,
148
151
  planning: pointer.value.planning,
149
152
  correction: correction,
@@ -4,9 +4,11 @@ import { AutoBePrismaReviewEvent } from "@autobe/interface/src/events/AutoBePris
4
4
  import { ILlmApplication, ILlmSchema } from "@samchon/openapi";
5
5
  import { IPointer } from "tstl";
6
6
  import typia from "typia";
7
+ import { v7 } from "uuid";
7
8
 
8
9
  import { AutoBeContext } from "../../context/AutoBeContext";
9
10
  import { assertSchemaModel } from "../../context/assertSchemaModel";
11
+ import { executeCachedBatch } from "../../utils/executeCachedBatch";
10
12
  import { transformPrismaReviewHistories } from "./histories/transformPrismaReviewHistories";
11
13
  import { IAutoBePrismaReviewApplication } from "./structures/IAutoBePrismaReviewApplication";
12
14
 
@@ -21,10 +23,16 @@ export async function orchestratePrismaReview<Model extends ILlmSchema.Model>(
21
23
  total: componentList.length,
22
24
  };
23
25
  return (
24
- await Promise.all(
25
- componentList.map(async (component) => {
26
+ await executeCachedBatch(
27
+ componentList.map((component) => async (promptCacheKey) => {
26
28
  try {
27
- return await step(ctx, application, schemas, component, progress);
29
+ return await step(ctx, {
30
+ application,
31
+ schemas,
32
+ component,
33
+ progress,
34
+ promptCacheKey,
35
+ });
28
36
  } catch {
29
37
  ++progress.completed;
30
38
  return null;
@@ -36,10 +44,13 @@ export async function orchestratePrismaReview<Model extends ILlmSchema.Model>(
36
44
 
37
45
  async function step<Model extends ILlmSchema.Model>(
38
46
  ctx: AutoBeContext<Model>,
39
- application: AutoBePrisma.IApplication,
40
- schemas: Record<string, string>,
41
- component: AutoBePrisma.IComponent,
42
- progress: AutoBeProgressEventBase,
47
+ props: {
48
+ application: AutoBePrisma.IApplication;
49
+ schemas: Record<string, string>;
50
+ component: AutoBePrisma.IComponent;
51
+ progress: AutoBeProgressEventBase;
52
+ promptCacheKey: string;
53
+ },
43
54
  ): Promise<AutoBePrismaReviewEvent> {
44
55
  const start: Date = new Date();
45
56
  const pointer: IPointer<IAutoBePrismaReviewApplication.IProps | null> = {
@@ -55,9 +66,9 @@ async function step<Model extends ILlmSchema.Model>(
55
66
  .reduce((acc, cur) => {
56
67
  return Object.assign(acc, cur);
57
68
  }, {}) ?? {},
58
- application,
59
- schemas,
60
- component,
69
+ application: props.application,
70
+ schemas: props.schemas,
71
+ component: props.component,
61
72
  }),
62
73
  controller: createController(ctx, {
63
74
  build: (next) => {
@@ -65,6 +76,7 @@ async function step<Model extends ILlmSchema.Model>(
65
76
  },
66
77
  }),
67
78
  enforceFunctionCall: true,
79
+ promptCacheKey: props.promptCacheKey,
68
80
  message: "Please review the Prisma schema file.",
69
81
  });
70
82
  if (pointer.value === null)
@@ -72,14 +84,15 @@ async function step<Model extends ILlmSchema.Model>(
72
84
 
73
85
  const event: AutoBePrismaReviewEvent = {
74
86
  type: "prismaReview",
87
+ id: v7(),
75
88
  created_at: start.toISOString(),
76
- filename: component.filename,
89
+ filename: props.component.filename,
77
90
  review: pointer.value.review,
78
91
  plan: pointer.value.plan,
79
92
  modifications: pointer.value.modifications,
80
93
  tokenUsage,
81
- completed: ++progress.completed,
82
- total: progress.total,
94
+ completed: ++props.progress.completed,
95
+ total: props.progress.total,
83
96
  step: ctx.state().analyze?.step ?? 0,
84
97
  };
85
98
  ctx.dispatch(event);
@@ -1,12 +1,15 @@
1
1
  import { IAgenticaController } from "@agentica/core";
2
2
  import { AutoBePrisma } from "@autobe/interface";
3
3
  import { AutoBePrismaSchemasEvent } from "@autobe/interface/src/events/AutoBePrismaSchemasEvent";
4
+ import { StringUtil } from "@autobe/utils";
4
5
  import { ILlmApplication, ILlmSchema, IValidation } from "@samchon/openapi";
5
6
  import { IPointer } from "tstl";
6
7
  import typia from "typia";
8
+ import { v7 } from "uuid";
7
9
 
8
10
  import { AutoBeContext } from "../../context/AutoBeContext";
9
11
  import { assertSchemaModel } from "../../context/assertSchemaModel";
12
+ import { executeCachedBatch } from "../../utils/executeCachedBatch";
10
13
  import { transformPrismaSchemaHistories } from "./histories/transformPrismaSchemaHistories";
11
14
  import { IAutoBePrismaSchemaApplication } from "./structures/IAutoBePrismaSchemaApplication";
12
15
 
@@ -19,8 +22,8 @@ export async function orchestratePrismaSchemas<Model extends ILlmSchema.Model>(
19
22
  .map((c) => c.tables.length)
20
23
  .reduce((x, y) => x + y, 0);
21
24
  const completed: IPointer<number> = { value: 0 };
22
- return await Promise.all(
23
- componentList.map(async (component) => {
25
+ return await executeCachedBatch(
26
+ componentList.map((component) => async (promptCacheKey) => {
24
27
  const otherTables: string[] = componentList
25
28
  .filter((y) => component !== y)
26
29
  .map((c) => c.tables)
@@ -31,6 +34,7 @@ export async function orchestratePrismaSchemas<Model extends ILlmSchema.Model>(
31
34
  start,
32
35
  total,
33
36
  completed,
37
+ promptCacheKey,
34
38
  });
35
39
  ctx.dispatch(event);
36
40
  return event;
@@ -46,6 +50,7 @@ async function process<Model extends ILlmSchema.Model>(
46
50
  start: Date;
47
51
  total: number;
48
52
  completed: IPointer<number>;
53
+ promptCacheKey: string;
49
54
  },
50
55
  ): Promise<AutoBePrismaSchemasEvent> {
51
56
  const pointer: IPointer<IAutoBePrismaSchemaApplication.IProps | null> = {
@@ -71,12 +76,14 @@ async function process<Model extends ILlmSchema.Model>(
71
76
  },
72
77
  }),
73
78
  enforceFunctionCall: true,
79
+ promptCacheKey: props.promptCacheKey,
74
80
  message: "Make prisma schema file please",
75
81
  });
76
82
  if (pointer.value === null)
77
83
  throw new Error("Unreachable code: Prisma Schema not generated");
78
84
  return {
79
85
  type: "prismaSchemas",
86
+ id: v7(),
80
87
  created_at: props.start.toISOString(),
81
88
  plan: pointer.value.plan,
82
89
  models: pointer.value.models,
@@ -118,6 +125,7 @@ function createController<Model extends ILlmSchema.Model>(
118
125
 
119
126
  ctx.dispatch({
120
127
  type: "prismaInsufficient",
128
+ id: v7(),
121
129
  created_at: new Date().toISOString(),
122
130
  component: props.targetComponent,
123
131
  actual,
@@ -131,26 +139,26 @@ function createController<Model extends ILlmSchema.Model>(
131
139
  path: "$input.models",
132
140
  value: result.data.models,
133
141
  expected: `Array<AutoBePrisma.IModel>`,
134
- description: [
135
- "You missed some tables from the current domain's component.",
136
- "",
137
- "Look at the following details to fix the schemas. Never forget to",
138
- "compose the `missed` tables at the next function calling.",
139
- "",
140
- "- filename: current domain's filename",
141
- "- namespace: current domain's namespace",
142
- "- expected: expected tables in the current domain",
143
- "- actual: actual tables you made",
144
- "- missed: tables you have missed, and you have to compose again",
145
- "",
146
- JSON.stringify({
142
+ description: StringUtil.trim`
143
+ You missed some tables from the current domain's component.
144
+
145
+ Look at the following details to fix the schemas. Never forget to
146
+ compose the \`missed\` tables at the next function calling.
147
+
148
+ - filename: current domain's filename
149
+ - namespace: current domain's namespace
150
+ - expected: expected tables in the current domain
151
+ - actual: actual tables you made
152
+ - missed: tables you have missed, and you have to compose again
153
+
154
+ ${JSON.stringify({
147
155
  filename: props.targetComponent.filename,
148
156
  namespace: props.targetComponent.namespace,
149
157
  expected,
150
158
  actual,
151
159
  missed,
152
- }),
153
- ].join("\n"),
160
+ })}
161
+ `,
154
162
  },
155
163
  ],
156
164
  };
@@ -1,7 +1,8 @@
1
1
  import { IAgenticaHistoryJson } from "@agentica/core";
2
2
  import { AutoBeAnalyzeRole } from "@autobe/interface";
3
+ import { StringUtil } from "@autobe/utils";
3
4
  import { ILlmSchema } from "@samchon/openapi";
4
- import { v4 } from "uuid";
5
+ import { v7 } from "uuid";
5
6
 
6
7
  import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
7
8
  import { AutoBeContext } from "../../../context/AutoBeContext";
@@ -16,33 +17,35 @@ export const transformRealizeAuthorizationHistories = <
16
17
  > => {
17
18
  return [
18
19
  {
19
- id: v4(),
20
+ id: v7(),
20
21
  created_at: new Date().toISOString(),
21
22
  type: "systemMessage",
22
23
  text: AutoBeSystemPromptConstant.REALIZE_AUTHORIZATION,
23
24
  },
24
25
  {
25
- id: v4(),
26
+ id: v7(),
26
27
  created_at: new Date().toISOString(),
27
28
  type: "systemMessage",
28
- text: [
29
- "## Role",
30
- "```json",
31
- JSON.stringify(role),
32
- "```",
33
- "",
34
- "## Prisma Schema",
35
- "",
36
- JSON.stringify(ctx.state().prisma?.schemas),
37
- "",
38
- "## Component Naming Convention",
39
- "",
40
- "Please follow this naming convention for the authorization components:",
41
- "",
42
- `- Provider Name: ${role.name}Authorize (e.g. ${role.name}Authorize)`,
43
- `- Decorator Name: ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Auth (e.g. ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Auth)`,
44
- `- Payload Name: ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Payload (e.g. ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Payload)`,
45
- ].join("\n"),
29
+ text: StringUtil.trim`
30
+ ## Role
31
+ \`\`\`json
32
+ ${JSON.stringify(role)}
33
+ \`\`\`
34
+
35
+ ## Prisma Schema
36
+
37
+ \`\`\`json
38
+ ${JSON.stringify(ctx.state().prisma?.schemas)}
39
+ \`\`\`
40
+
41
+ ## Component Naming Convention
42
+
43
+ Please follow this naming convention for the authorization components:
44
+
45
+ - Provider Name: ${role.name}Authorize (e.g. ${role.name}Authorize)
46
+ - Decorator Name: ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Auth (e.g. ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Auth)
47
+ - Payload Name: ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Payload (e.g. ${role.name.charAt(0).toUpperCase() + role.name.slice(1)}Payload)
48
+ `,
46
49
  },
47
50
  ];
48
51
  };
@@ -3,8 +3,9 @@ import {
3
3
  AutoBeRealizeAuthorization,
4
4
  IAutoBeTypeScriptCompileResult,
5
5
  } from "@autobe/interface";
6
+ import { StringUtil } from "@autobe/utils";
6
7
  import { ILlmSchema } from "@samchon/openapi";
7
- import { v4 } from "uuid";
8
+ import { v7 } from "uuid";
8
9
 
9
10
  import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
10
11
  import { AutoBeContext } from "../../../context/AutoBeContext";
@@ -21,26 +22,26 @@ export const transformRealizeAuthorizationCorrectHistories = <
21
22
  > => {
22
23
  return [
23
24
  {
24
- id: v4(),
25
+ id: v7(),
25
26
  created_at: new Date().toISOString(),
26
27
  type: "systemMessage",
27
28
  text: AutoBeSystemPromptConstant.REALIZE_AUTHORIZATION,
28
29
  },
29
30
  {
30
- id: v4(),
31
+ id: v7(),
31
32
  created_at: new Date().toISOString(),
32
33
  type: "systemMessage",
33
34
  text: AutoBeSystemPromptConstant.REALIZE_AUTHORIZATION_CORRECT,
34
35
  },
35
36
  {
36
- id: v4(),
37
+ id: v7(),
37
38
  created_at: new Date().toISOString(),
38
39
  type: "assistantMessage",
39
- text: [
40
- "## Generated TypeScript Code",
41
- "",
42
- "```json",
43
- `${JSON.stringify({
40
+ text: StringUtil.trim`
41
+ ## Generated TypeScript Code
42
+
43
+ \`\`\`json
44
+ ${JSON.stringify({
44
45
  provider: {
45
46
  location: auth.provider.location,
46
47
  name: auth.provider.name,
@@ -56,38 +57,39 @@ export const transformRealizeAuthorizationCorrectHistories = <
56
57
  name: auth.payload.name,
57
58
  content: auth.payload.content,
58
59
  },
59
- } satisfies Omit<AutoBeRealizeAuthorization, "role">)}`,
60
- "```",
61
- "",
62
- "## Prisma Schema",
63
- "",
64
- "```json",
65
- `${JSON.stringify(ctx.state().prisma?.schemas)}`,
66
- "```",
67
- "",
68
- "## File Paths",
69
- "",
70
- Object.keys(templateFiles)
60
+ } satisfies Omit<AutoBeRealizeAuthorization, "role">)}
61
+ \`\`\`
62
+
63
+ ## Prisma Schema
64
+
65
+ \`\`\`json
66
+ ${JSON.stringify(ctx.state().prisma?.schemas)}
67
+ \`\`\`
68
+
69
+ ## File Paths
70
+
71
+ ${Object.keys(templateFiles)
71
72
  .map((path) => `- ${path}`)
72
- .join("\n"),
73
- "",
74
- "## Compile Errors",
75
- "",
76
- "Fix the compilation error in the provided code.",
77
- "",
78
- "```json",
79
- JSON.stringify(diagnostics),
80
- "```",
81
- "## Component Naming Convention",
82
- "",
83
- "If the name of the component is not correct, please correct it.",
84
- "",
85
- "Please follow this naming convention for the authorization components:",
86
- "",
87
- `- Provider Name: ${auth.role.name.toLowerCase()}Authorize (e.g. ${auth.role.name.toLowerCase()}Authorize)`,
88
- `- Decorator Name: ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Auth (e.g. ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Auth)`,
89
- `- Payload Name: ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Payload (e.g. ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Payload)`,
90
- ].join("\n"),
73
+ .join("\n")}
74
+
75
+ ## Compile Errors
76
+
77
+ Fix the compilation error in the provided code.
78
+
79
+ \`\`\`json
80
+ ${JSON.stringify(diagnostics)}
81
+ \`\`\`
82
+
83
+ ## Component Naming Convention
84
+
85
+ If the name of the component is not correct, please correct it.
86
+
87
+ Please follow this naming convention for the authorization components:
88
+
89
+ - Provider Name: ${auth.role.name.toLowerCase()}Authorize (e.g. ${auth.role.name.toLowerCase()}Authorize)
90
+ - Decorator Name: ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Auth (e.g. ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Auth)
91
+ - Payload Name: ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Payload (e.g. ${auth.role.name.charAt(0).toUpperCase() + auth.role.name.slice(1).toLowerCase()}Payload)
92
+ `,
91
93
  },
92
94
  ];
93
95
  };
@@ -3,7 +3,8 @@ import {
3
3
  AutoBeRealizeAuthorization,
4
4
  IAutoBeTypeScriptCompileResult,
5
5
  } from "@autobe/interface";
6
- import { v4 } from "uuid";
6
+ import { StringUtil } from "@autobe/utils";
7
+ import { v7 } from "uuid";
7
8
 
8
9
  import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
9
10
  import { AutoBeState } from "../../../context/AutoBeState";
@@ -25,22 +26,25 @@ export function transformRealizeCorrectHistories(props: {
25
26
  return [
26
27
  ...transformRealizeWriteHistories(props),
27
28
  {
28
- id: v4(),
29
+ id: v7(),
29
30
  type: "assistantMessage",
30
- text: [
31
- `Below is the code you made before. It's also something to review.`,
32
- "```typescript",
33
- props.code,
34
- "```",
35
- `The code has a compilation error:`,
36
- "```json",
37
- JSON.stringify(props.diagnostic),
38
- "",
39
- ].join("\n"),
31
+ text: StringUtil.trim`
32
+ Below is the code you made before. It's also something to review.
33
+
34
+ \`\`\`typescript
35
+ ${props.code}
36
+ \`\`\`
37
+
38
+ The code has a compilation error:
39
+
40
+ \`\`\`json
41
+ ${JSON.stringify(props.diagnostic)}
42
+ \`\`\`
43
+ `,
40
44
  created_at: new Date().toISOString(),
41
45
  },
42
46
  {
43
- id: v4(),
47
+ id: v7(),
44
48
  type: "systemMessage",
45
49
  text: AutoBeSystemPromptConstant.REALIZE_CORRECT,
46
50
  created_at: new Date().toISOString(),
@@ -1,7 +1,7 @@
1
1
  import { IAgenticaHistoryJson } from "@agentica/core";
2
2
  import { AutoBeOpenApi } from "@autobe/interface";
3
3
  import { StringUtil } from "@autobe/utils";
4
- import { v4 } from "uuid";
4
+ import { v7 } from "uuid";
5
5
 
6
6
  export const transformRealizeWriteAuthorizationsHistories = (
7
7
  operation: AutoBeOpenApi.IOperation,
@@ -12,7 +12,7 @@ export const transformRealizeWriteAuthorizationsHistories = (
12
12
  operation.authorizationType === "login"
13
13
  ? [
14
14
  {
15
- id: v4(),
15
+ id: v7(),
16
16
  created_at: new Date().toISOString(),
17
17
  type: "systemMessage" as const,
18
18
  text: StringUtil.trim`
@@ -50,7 +50,10 @@ export const transformRealizeWriteAuthorizationsHistories = (
50
50
  **NOTE**: The jsonwebtoken library is automatically imported as jwt. Use it to generate tokens with the EXACT payload structure:
51
51
 
52
52
  **CRITICAL**: Use the predefined payload structures for consistency:
53
+
54
+ \`\`\`json
53
55
  ${JSON.stringify(payloads)}
56
+ \`\`\`
54
57
 
55
58
  // JWT is already imported: import jwt from "jsonwebtoken";
56
59
 
@@ -105,7 +108,7 @@ export const transformRealizeWriteAuthorizationsHistories = (
105
108
  operation.authorizationType === "join"
106
109
  ? [
107
110
  {
108
- id: v4(),
111
+ id: v7(),
109
112
  created_at: new Date().toISOString(),
110
113
  type: "systemMessage" as const,
111
114
  text: StringUtil.trim`
@@ -151,7 +154,10 @@ export const transformRealizeWriteAuthorizationsHistories = (
151
154
  **NOTE**: The jsonwebtoken library is automatically imported as jwt. After successful registration, generate tokens with the EXACT payload structure:
152
155
 
153
156
  **CRITICAL**: Use the predefined payload structures for consistency:
157
+
158
+ \`\`\`json
154
159
  ${JSON.stringify(payloads)}
160
+ \`\`\`
155
161
 
156
162
  // JWT is already imported: import jwt from "jsonwebtoken";
157
163
 
@@ -195,7 +201,7 @@ export const transformRealizeWriteAuthorizationsHistories = (
195
201
  operation.authorizationType === "refresh"
196
202
  ? [
197
203
  {
198
- id: v4(),
204
+ id: v7(),
199
205
  created_at: new Date().toISOString(),
200
206
  type: "systemMessage" as const,
201
207
  text: StringUtil.trim`
@@ -223,7 +229,10 @@ export const transformRealizeWriteAuthorizationsHistories = (
223
229
  3. Generate a new access token with THE SAME payload structure as the original
224
230
 
225
231
  **CRITICAL**: Use the predefined payload structures for consistency:
232
+
233
+ \`\`\`json
226
234
  ${JSON.stringify(payloads)}
235
+ \`\`\`
227
236
 
228
237
  // JWT is already imported: import jwt from "jsonwebtoken";
229
238
 
@@ -282,4 +291,4 @@ export const transformRealizeWriteAuthorizationsHistories = (
282
291
  : [];
283
292
 
284
293
  return [...loginGuide, ...joinGuide, ...refreshGuide];
285
- };
294
+ };
@@ -1,6 +1,7 @@
1
1
  import { IAgenticaHistoryJson } from "@agentica/core";
2
2
  import { AutoBeRealizeAuthorization } from "@autobe/interface";
3
- import { v4 } from "uuid";
3
+ import { StringUtil } from "@autobe/utils";
4
+ import { v7 } from "uuid";
4
5
 
5
6
  import { AutoBeSystemPromptConstant } from "../../../constants/AutoBeSystemPromptConstant";
6
7
  import { AutoBeState } from "../../../context/AutoBeState";
@@ -47,13 +48,16 @@ export const transformRealizeWriteHistories = (
47
48
 
48
49
  const input =
49
50
  propsFields.length > 0
50
- ? `props: {\n${propsFields.map((field) => ` ${field}`).join("\n")}\n}`
51
+ ? StringUtil.trim`
52
+ props: {
53
+ ${propsFields.map((field) => ` ${field},`).join("\n")}
54
+ }`
51
55
  : `// No props parameter needed - function should have no parameters`;
52
56
 
53
57
  if (props.state.analyze === null)
54
58
  return [
55
59
  {
56
- id: v4(),
60
+ id: v7(),
57
61
  created_at: new Date().toISOString(),
58
62
  type: "systemMessage",
59
63
  text: [
@@ -66,7 +70,7 @@ export const transformRealizeWriteHistories = (
66
70
  else if (props.state.prisma === null)
67
71
  return [
68
72
  {
69
- id: v4(),
73
+ id: v7(),
70
74
  created_at: new Date().toISOString(),
71
75
  type: "systemMessage",
72
76
  text: [
@@ -79,7 +83,7 @@ export const transformRealizeWriteHistories = (
79
83
  else if (props.state.analyze.step !== props.state.prisma.step)
80
84
  return [
81
85
  {
82
- id: v4(),
86
+ id: v7(),
83
87
  created_at: new Date().toISOString(),
84
88
  type: "systemMessage",
85
89
  text: [
@@ -93,7 +97,7 @@ export const transformRealizeWriteHistories = (
93
97
  else if (props.state.prisma.compiled.type !== "success")
94
98
  return [
95
99
  {
96
- id: v4(),
100
+ id: v7(),
97
101
  created_at: new Date().toISOString(),
98
102
  type: "systemMessage",
99
103
  text: [
@@ -107,7 +111,7 @@ export const transformRealizeWriteHistories = (
107
111
  else if (props.state.interface === null)
108
112
  return [
109
113
  {
110
- id: v4(),
114
+ id: v7(),
111
115
  created_at: new Date().toISOString(),
112
116
  type: "systemMessage",
113
117
  text: [
@@ -125,14 +129,14 @@ export const transformRealizeWriteHistories = (
125
129
 
126
130
  return [
127
131
  {
128
- id: v4(),
132
+ id: v7(),
129
133
  created_at: new Date().toISOString(),
130
134
  type: "systemMessage",
131
135
  text: AutoBeSystemPromptConstant.REALIZE_WRITE_TOTAL,
132
136
  },
133
137
  ...authorizationHistories,
134
138
  {
135
- id: v4(),
139
+ id: v7(),
136
140
  created_at: new Date().toISOString(),
137
141
  type: "systemMessage",
138
142
  text: AutoBeSystemPromptConstant.REALIZE_WRITE_ARTIFACT.replaceAll(
@@ -144,33 +148,34 @@ export const transformRealizeWriteHistories = (
144
148
  .replaceAll(`{input}`, input),
145
149
  },
146
150
  {
147
- id: v4(),
151
+ id: v7(),
148
152
  created_at: new Date().toISOString(),
149
153
  type: "systemMessage",
150
- text: [
151
- "Write new code based on the following operation.",
152
- "```json",
153
- JSON.stringify(props.scenario),
154
- "```",
155
- ].join("\n"),
154
+ text: StringUtil.trim`
155
+ Write new code based on the following operation.
156
+
157
+ \`\`\`json
158
+ ${JSON.stringify(props.scenario)}
159
+ \`\`\`
160
+ `,
156
161
  },
157
162
  {
158
- id: v4(),
163
+ id: v7(),
159
164
  created_at: new Date().toISOString(),
160
165
  type: "assistantMessage",
161
- text: [
162
- `I understand your request.`,
163
- ``,
164
- `To summarize:`,
165
- `- I must **never use the native \`Date\` type** in any code or type definitions.`,
166
- `- Instead, all date and datetime values must be handled as \`string & tags.Format<'date-time'>\`.`,
167
- `- This rule is **strict** and applies everywhere, including domain types, API inputs/outputs, and Prisma models.`,
168
- `- Even if a library or tool returns a \`Date\`, I must convert it to the correct string format before use.`,
169
- ``,
170
- `Especially regarding the \`Date\` type: I understand that using it can lead to type inconsistency and runtime issues, so I will completely avoid it in all circumstances.`,
171
- ``,
172
- `I'll make sure to follow all these rules strictly. Lets proceed with this in mind.`,
173
- ].join("\n"),
166
+ text: StringUtil.trim`
167
+ I understand your request.
168
+
169
+ To summarize:
170
+ - I must **never use the native \`Date\` type** in any code or type definitions.
171
+ - Instead, all date and datetime values must be handled as \`string & tags.Format<'date-time'>\`.
172
+ - This rule is **strict** and applies everywhere, including domain types, API inputs/outputs, and Prisma models.
173
+ - Even if a library or tool returns a \`Date\`, I must convert it to the correct string format before use.
174
+
175
+ Especially regarding the \`Date\` type: I understand that using it can lead to type inconsistency and runtime issues, so I will completely avoid it in all circumstances.
176
+
177
+ I'll make sure to follow all these rules strictly. Let's proceed with this in mind.
178
+ `,
174
179
  },
175
180
  ];
176
181
  };