@autobe/agent 0.24.1 → 0.25.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 (225) hide show
  1. package/lib/AutoBeMockAgent.js +1 -0
  2. package/lib/AutoBeMockAgent.js.map +1 -1
  3. package/lib/constants/AutoBeSystemPromptConstant.d.ts +19 -18
  4. package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
  5. package/lib/context/IAutoBeApplication.d.ts +101 -6
  6. package/lib/context/IAutoBeApplicationProps.d.ts +6 -2
  7. package/lib/factory/createAgenticaHistory.js +1 -1
  8. package/lib/factory/createAgenticaHistory.js.map +1 -1
  9. package/lib/factory/createAutoBeApplication.js +80 -90
  10. package/lib/factory/createAutoBeApplication.js.map +1 -1
  11. package/lib/factory/createAutoBeContext.js +8 -8
  12. package/lib/factory/createAutoBeContext.js.map +1 -1
  13. package/lib/factory/getAutoBeGenerated.js +4 -1
  14. package/lib/factory/getAutoBeGenerated.js.map +1 -1
  15. package/lib/factory/getAutoBeRealizeGenerated.d.ts +2 -1
  16. package/lib/factory/getAutoBeRealizeGenerated.js +1 -1
  17. package/lib/factory/getAutoBeRealizeGenerated.js.map +1 -1
  18. package/lib/factory/getCriticalCompiler.js +1 -1
  19. package/lib/factory/getCriticalCompiler.js.map +1 -1
  20. package/lib/index.mjs +2222 -1393
  21. package/lib/index.mjs.map +1 -1
  22. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js +5 -1
  23. package/lib/orchestrate/analyze/histories/transformAnalyzeReviewHistories.js.map +1 -1
  24. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.d.ts +1 -1
  25. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js +18 -3
  26. package/lib/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.js.map +1 -1
  27. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.d.ts +5 -1
  28. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js +19 -7
  29. package/lib/orchestrate/analyze/histories/transformAnalyzeWriteHistories.js.map +1 -1
  30. package/lib/orchestrate/analyze/orchestrateAnalyze.js +3 -2
  31. package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
  32. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.d.ts +1 -1
  33. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js +2 -2
  34. package/lib/orchestrate/analyze/orchestrateAnalyzeScenario.js.map +1 -1
  35. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.d.ts +1 -0
  36. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js +2 -2
  37. package/lib/orchestrate/analyze/orchestrateAnalyzeWrite.js.map +1 -1
  38. package/lib/orchestrate/facade/transformFacadeStateMessage.js +1 -1
  39. package/lib/orchestrate/facade/transformFacadeStateMessage.js.map +1 -1
  40. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js +2 -1
  41. package/lib/orchestrate/interface/histories/transformInterfaceAssetHistories.js.map +1 -1
  42. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.d.ts +5 -1
  43. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js +20 -7
  44. package/lib/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.js.map +1 -1
  45. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.d.ts +6 -1
  46. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js +31 -23
  47. package/lib/orchestrate/interface/histories/transformInterfaceComplementHistories.js.map +1 -1
  48. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.d.ts +6 -1
  49. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js +22 -6
  50. package/lib/orchestrate/interface/histories/transformInterfaceEndpointHistories.js.map +1 -1
  51. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js +1 -1
  52. package/lib/orchestrate/interface/histories/transformInterfaceEndpointsReviewHistories.js.map +1 -1
  53. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.d.ts +4 -1
  54. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js +26 -5
  55. package/lib/orchestrate/interface/histories/transformInterfaceGroupHistories.js.map +1 -1
  56. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.d.ts +5 -1
  57. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js +21 -5
  58. package/lib/orchestrate/interface/histories/transformInterfaceOperationHistories.js.map +1 -1
  59. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js +1 -1
  60. package/lib/orchestrate/interface/histories/transformInterfaceOperationsReviewHistories.js.map +1 -1
  61. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.d.ts +5 -1
  62. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js +20 -4
  63. package/lib/orchestrate/interface/histories/transformInterfaceSchemaHistories.js.map +1 -1
  64. package/lib/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js +1 -1
  65. package/lib/orchestrate/interface/histories/transformInterfaceSchemasReviewHistories.js.map +1 -1
  66. package/lib/orchestrate/interface/orchestrateInterface.js +25 -7
  67. package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
  68. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.d.ts +1 -1
  69. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js +17 -8
  70. package/lib/orchestrate/interface/orchestrateInterfaceAuthorizations.js.map +1 -1
  71. package/lib/orchestrate/interface/orchestrateInterfaceComplement.d.ts +4 -1
  72. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +18 -11
  73. package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
  74. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.d.ts +6 -1
  75. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +25 -10
  76. package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
  77. package/lib/orchestrate/interface/orchestrateInterfaceGroups.d.ts +4 -1
  78. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js +9 -6
  79. package/lib/orchestrate/interface/orchestrateInterfaceGroups.js.map +1 -1
  80. package/lib/orchestrate/interface/orchestrateInterfaceOperations.d.ts +5 -1
  81. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +33 -17
  82. package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
  83. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.d.ts +5 -1
  84. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js +36 -18
  85. package/lib/orchestrate/interface/orchestrateInterfaceSchemas.js.map +1 -1
  86. package/lib/orchestrate/interface/utils/JsonSchemaValidator.js +67 -8
  87. package/lib/orchestrate/interface/utils/JsonSchemaValidator.js.map +1 -1
  88. package/lib/orchestrate/interface/utils/OperationValidator.js +2 -1
  89. package/lib/orchestrate/interface/utils/OperationValidator.js.map +1 -1
  90. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.d.ts +4 -1
  91. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js +19 -8
  92. package/lib/orchestrate/prisma/histories/transformPrismaComponentsHistories.js.map +1 -1
  93. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js +1 -1
  94. package/lib/orchestrate/prisma/histories/transformPrismaReviewHistories.js.map +1 -1
  95. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.d.ts +6 -1
  96. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js +20 -6
  97. package/lib/orchestrate/prisma/histories/transformPrismaSchemaHistories.js.map +1 -1
  98. package/lib/orchestrate/prisma/orchestratePrisma.js +3 -3
  99. package/lib/orchestrate/prisma/orchestratePrisma.js.map +1 -1
  100. package/lib/orchestrate/prisma/orchestratePrismaComponent.d.ts +1 -1
  101. package/lib/orchestrate/prisma/orchestratePrismaComponent.js +6 -3
  102. package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
  103. package/lib/orchestrate/prisma/orchestratePrismaSchemas.d.ts +1 -1
  104. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js +12 -6
  105. package/lib/orchestrate/prisma/orchestratePrismaSchemas.js.map +1 -1
  106. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js +1 -1
  107. package/lib/orchestrate/realize/histories/transformRealizeAuthorizationCorrectHistories.js.map +1 -1
  108. package/lib/orchestrate/{common/histories/transformCommonCorrectDateHistories.d.ts → realize/histories/transformRealizeCorrectCastingHistories.d.ts} +1 -2
  109. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.js +33 -0
  110. package/lib/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.js.map +1 -0
  111. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js +1 -1
  112. package/lib/orchestrate/realize/histories/transformRealizeCorrectHistories.js.map +1 -1
  113. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js +1 -1
  114. package/lib/orchestrate/realize/histories/transformRealizeWriteHistories.js.map +1 -1
  115. package/lib/orchestrate/realize/internal/compileRealizeFiles.js +3 -1
  116. package/lib/orchestrate/realize/internal/compileRealizeFiles.js.map +1 -1
  117. package/lib/orchestrate/realize/orchestRateRealizeCorrectCasting.js +25 -8
  118. package/lib/orchestrate/realize/orchestRateRealizeCorrectCasting.js.map +1 -1
  119. package/lib/orchestrate/realize/orchestrateRealize.js +12 -8
  120. package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
  121. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js +3 -1
  122. package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -1
  123. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js +16 -5
  124. package/lib/orchestrate/realize/orchestrateRealizeCorrect.js.map +1 -1
  125. package/lib/orchestrate/realize/utils/generateRealizeScenario.js +1 -5
  126. package/lib/orchestrate/realize/utils/generateRealizeScenario.js.map +1 -1
  127. package/lib/orchestrate/realize/utils/getRealizeWriteImportStatements.js +1 -0
  128. package/lib/orchestrate/realize/utils/getRealizeWriteImportStatements.js.map +1 -1
  129. package/lib/orchestrate/realize/utils/replaceImportStatements.js +3 -1
  130. package/lib/orchestrate/realize/utils/replaceImportStatements.js.map +1 -1
  131. package/lib/orchestrate/test/histories/transformTestCorrectHistories.d.ts +5 -1
  132. package/lib/orchestrate/test/histories/transformTestCorrectHistories.js +11 -7
  133. package/lib/orchestrate/test/histories/transformTestCorrectHistories.js.map +1 -1
  134. package/lib/orchestrate/test/histories/transformTestScenarioHistories.d.ts +7 -1
  135. package/lib/orchestrate/test/histories/transformTestScenarioHistories.js +39 -31
  136. package/lib/orchestrate/test/histories/transformTestScenarioHistories.js.map +1 -1
  137. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.d.ts +8 -0
  138. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js +119 -0
  139. package/lib/orchestrate/test/histories/transformTestScenarioReviewHistories.js.map +1 -0
  140. package/lib/orchestrate/test/histories/transformTestWriteHistories.d.ts +5 -1
  141. package/lib/orchestrate/test/histories/transformTestWriteHistories.js +111 -94
  142. package/lib/orchestrate/test/histories/transformTestWriteHistories.js.map +1 -1
  143. package/lib/orchestrate/test/orchestrateTest.js +20 -14
  144. package/lib/orchestrate/test/orchestrateTest.js.map +1 -1
  145. package/lib/orchestrate/test/orchestrateTestCorrect.d.ts +4 -1
  146. package/lib/orchestrate/test/orchestrateTestCorrect.js +51 -35
  147. package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
  148. package/lib/orchestrate/test/orchestrateTestScenario.d.ts +1 -1
  149. package/lib/orchestrate/test/orchestrateTestScenario.js +21 -4
  150. package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
  151. package/lib/orchestrate/test/orchestrateTestScenarioReview.d.ts +9 -0
  152. package/lib/orchestrate/test/orchestrateTestScenarioReview.js +855 -0
  153. package/lib/orchestrate/test/orchestrateTestScenarioReview.js.map +1 -0
  154. package/lib/orchestrate/test/orchestrateTestWrite.d.ts +4 -1
  155. package/lib/orchestrate/test/orchestrateTestWrite.js +9 -4
  156. package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
  157. package/lib/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.d.ts +47 -0
  158. package/lib/orchestrate/{common/structures/IAutoBeCommonCorrectDateApplication.js → test/structures/IAutoBeTestScenarioReviewApplication.js} +1 -1
  159. package/lib/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.js.map +1 -0
  160. package/package.json +6 -6
  161. package/src/AutoBeMockAgent.ts +1 -0
  162. package/src/constants/AutoBeSystemPromptConstant.ts +19 -18
  163. package/src/context/IAutoBeApplication.ts +101 -6
  164. package/src/context/IAutoBeApplicationProps.ts +6 -2
  165. package/src/factory/createAgenticaHistory.ts +11 -5
  166. package/src/factory/createAutoBeContext.ts +5 -5
  167. package/src/factory/getAutoBeGenerated.ts +3 -0
  168. package/src/factory/getAutoBeRealizeGenerated.ts +3 -1
  169. package/src/factory/getCriticalCompiler.ts +2 -1
  170. package/src/orchestrate/analyze/histories/transformAnalyzeReviewHistories.ts +5 -1
  171. package/src/orchestrate/analyze/histories/transformAnalyzeScenarioHistories.ts +16 -0
  172. package/src/orchestrate/analyze/histories/transformAnalyzeWriteHistories.ts +22 -7
  173. package/src/orchestrate/analyze/orchestrateAnalyze.ts +3 -2
  174. package/src/orchestrate/analyze/orchestrateAnalyzeScenario.ts +2 -1
  175. package/src/orchestrate/analyze/orchestrateAnalyzeWrite.ts +3 -2
  176. package/src/orchestrate/interface/histories/transformInterfaceAssetHistories.ts +2 -1
  177. package/src/orchestrate/interface/histories/transformInterfaceAuthorizationsHistories.ts +23 -9
  178. package/src/orchestrate/interface/histories/transformInterfaceComplementHistories.ts +33 -24
  179. package/src/orchestrate/interface/histories/transformInterfaceEndpointHistories.ts +26 -9
  180. package/src/orchestrate/interface/histories/transformInterfaceGroupHistories.ts +27 -5
  181. package/src/orchestrate/interface/histories/transformInterfaceOperationHistories.ts +24 -7
  182. package/src/orchestrate/interface/histories/transformInterfaceSchemaHistories.ts +23 -6
  183. package/src/orchestrate/interface/orchestrateInterface.ts +29 -10
  184. package/src/orchestrate/interface/orchestrateInterfaceAuthorizations.ts +22 -12
  185. package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +25 -17
  186. package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +35 -23
  187. package/src/orchestrate/interface/orchestrateInterfaceGroups.ts +9 -3
  188. package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +44 -29
  189. package/src/orchestrate/interface/orchestrateInterfaceSchemas.ts +51 -32
  190. package/src/orchestrate/interface/utils/JsonSchemaValidator.ts +68 -8
  191. package/src/orchestrate/interface/utils/OperationValidator.ts +2 -1
  192. package/src/orchestrate/prisma/histories/transformPrismaComponentsHistories.ts +20 -6
  193. package/src/orchestrate/prisma/histories/transformPrismaSchemaHistories.ts +24 -9
  194. package/src/orchestrate/prisma/orchestratePrisma.ts +7 -3
  195. package/src/orchestrate/prisma/orchestratePrismaComponent.ts +5 -1
  196. package/src/orchestrate/prisma/orchestratePrismaSchemas.ts +15 -10
  197. package/src/orchestrate/realize/histories/transformRealizeCorrectCastingHistories.ts +45 -0
  198. package/src/orchestrate/realize/internal/compileRealizeFiles.ts +3 -1
  199. package/src/orchestrate/realize/orchestRateRealizeCorrectCasting.ts +30 -8
  200. package/src/orchestrate/realize/orchestrateRealize.ts +36 -40
  201. package/src/orchestrate/realize/orchestrateRealizeAuthorization.ts +5 -1
  202. package/src/orchestrate/realize/orchestrateRealizeCorrect.ts +38 -16
  203. package/src/orchestrate/realize/utils/generateRealizeScenario.ts +1 -5
  204. package/src/orchestrate/realize/utils/getRealizeWriteImportStatements.ts +1 -0
  205. package/src/orchestrate/realize/utils/replaceImportStatements.ts +5 -0
  206. package/src/orchestrate/test/histories/transformTestCorrectHistories.ts +14 -7
  207. package/src/orchestrate/test/histories/transformTestScenarioHistories.ts +44 -36
  208. package/src/orchestrate/test/histories/transformTestScenarioReviewHistories.ts +159 -0
  209. package/src/orchestrate/test/histories/transformTestWriteHistories.ts +35 -12
  210. package/src/orchestrate/test/orchestrateTest.ts +19 -13
  211. package/src/orchestrate/test/orchestrateTestCorrect.ts +65 -46
  212. package/src/orchestrate/test/orchestrateTestScenario.ts +23 -9
  213. package/src/orchestrate/test/orchestrateTestScenarioReview.ts +198 -0
  214. package/src/orchestrate/test/orchestrateTestWrite.ts +13 -4
  215. package/src/orchestrate/test/structures/IAutoBeTestScenarioReviewApplication.ts +52 -0
  216. package/lib/orchestrate/common/histories/transformCommonCorrectDateHistories.js +0 -48
  217. package/lib/orchestrate/common/histories/transformCommonCorrectDateHistories.js.map +0 -1
  218. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectDateApplication.d.ts +0 -35
  219. package/lib/orchestrate/common/structures/IAutoBeCommonCorrectDateApplication.js.map +0 -1
  220. package/lib/orchestrate/realize/orchestrateRealizeCorrectDate.d.ts +0 -4
  221. package/lib/orchestrate/realize/orchestrateRealizeCorrectDate.js +0 -540
  222. package/lib/orchestrate/realize/orchestrateRealizeCorrectDate.js.map +0 -1
  223. package/src/orchestrate/common/histories/transformCommonCorrectDateHistories.ts +0 -60
  224. package/src/orchestrate/common/structures/IAutoBeCommonCorrectDateApplication.ts +0 -40
  225. package/src/orchestrate/realize/orchestrateRealizeCorrectDate.ts +0 -372
@@ -0,0 +1,855 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.orchestrateTestScenarioReview = orchestrateTestScenarioReview;
49
+ const __typia_transform__validateReport = __importStar(require("typia/lib/internal/_validateReport.js"));
50
+ const __typia_transform__llmApplicationFinalize = __importStar(require("typia/lib/internal/_llmApplicationFinalize.js"));
51
+ const utils_1 = require("@autobe/utils");
52
+ const tstl_1 = require("tstl");
53
+ const typia_1 = __importDefault(require("typia"));
54
+ const uuid_1 = require("uuid");
55
+ const assertSchemaModel_1 = require("../../context/assertSchemaModel");
56
+ const transformTestScenarioReviewHistories_1 = require("./histories/transformTestScenarioReviewHistories");
57
+ function orchestrateTestScenarioReview(ctx, props) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const res = yield review(ctx, props);
60
+ return res;
61
+ });
62
+ }
63
+ function review(ctx, props) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ var _a, _b;
66
+ try {
67
+ const pointer = {
68
+ value: null,
69
+ };
70
+ const { tokenUsage } = yield ctx.conversate({
71
+ source: "testScenariosReview",
72
+ controller: createController({
73
+ model: ctx.model,
74
+ pointer,
75
+ originalGroups: props.groups,
76
+ }),
77
+ histories: (0, transformTestScenarioReviewHistories_1.transformTestScenarioReviewHistories)({
78
+ state: ctx.state(),
79
+ groups: props.groups,
80
+ instruction: props.instruction,
81
+ }),
82
+ enforceFunctionCall: true,
83
+ message: "Review the Test Scenario.",
84
+ });
85
+ if (pointer.value === null) {
86
+ // unreachable
87
+ throw new Error("Failed to get review result.");
88
+ }
89
+ props.progress.total = Math.max(props.progress.total, (props.progress.completed += pointer.value.scenarioGroups.length));
90
+ ctx.dispatch({
91
+ type: "testScenariosReview",
92
+ id: (0, uuid_1.v7)(),
93
+ tokenUsage,
94
+ total: props.progress.total,
95
+ completed: props.progress.completed,
96
+ scenarios: pointer.value.scenarioGroups
97
+ .map((group) => {
98
+ return group.scenarios.map((s) => {
99
+ return Object.assign(Object.assign({}, s), { endpoint: group.endpoint });
100
+ });
101
+ })
102
+ .flat(),
103
+ step: (_b = (_a = ctx.state().interface) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
104
+ created_at: new Date().toISOString(),
105
+ });
106
+ // @todo michael: need to investigate scenario removal more gracefully
107
+ return pointer.value.pass
108
+ ? // || pointer.value.scenarioGroups.length < props.groups.length
109
+ props.groups
110
+ : pointer.value.scenarioGroups;
111
+ }
112
+ catch (_c) {
113
+ props.progress.completed += props.groups.length;
114
+ return props.groups;
115
+ }
116
+ });
117
+ }
118
+ function createController(props) {
119
+ (0, assertSchemaModel_1.assertSchemaModel)(props.model);
120
+ const validate = (next) => {
121
+ const result = (() => { const _io0 = input => "string" === typeof input.review && "string" === typeof input.plan && "boolean" === typeof input.pass && (Array.isArray(input.scenarioGroups) && input.scenarioGroups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && (Array.isArray(input.scenarios) && (1 <= input.scenarios.length && input.scenarios.every(elem => "object" === typeof elem && null !== elem && _io3(elem)))); const _io2 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "string" === typeof input.draft && "string" === typeof input.functionName && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io4(elem))); const _io4 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && "string" === typeof input.purpose; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
122
+ path: _path + ".review",
123
+ expected: "string",
124
+ value: input.review
125
+ }), "string" === typeof input.plan || _report(_exceptionable, {
126
+ path: _path + ".plan",
127
+ expected: "string",
128
+ value: input.plan
129
+ }), "boolean" === typeof input.pass || _report(_exceptionable, {
130
+ path: _path + ".pass",
131
+ expected: "boolean",
132
+ value: input.pass
133
+ }), (Array.isArray(input.scenarioGroups) || _report(_exceptionable, {
134
+ path: _path + ".scenarioGroups",
135
+ expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
136
+ value: input.scenarioGroups
137
+ })) && input.scenarioGroups.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
138
+ path: _path + ".scenarioGroups[" + _index4 + "]",
139
+ expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
140
+ value: elem
141
+ })) && _vo1(elem, _path + ".scenarioGroups[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
142
+ path: _path + ".scenarioGroups[" + _index4 + "]",
143
+ expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
144
+ value: elem
145
+ })).every(flag => flag) || _report(_exceptionable, {
146
+ path: _path + ".scenarioGroups",
147
+ expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
148
+ value: input.scenarioGroups
149
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
150
+ path: _path + ".endpoint",
151
+ expected: "AutoBeOpenApi.IEndpoint",
152
+ value: input.endpoint
153
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
154
+ path: _path + ".endpoint",
155
+ expected: "AutoBeOpenApi.IEndpoint",
156
+ value: input.endpoint
157
+ }), (Array.isArray(input.scenarios) || _report(_exceptionable, {
158
+ path: _path + ".scenarios",
159
+ expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
160
+ value: input.scenarios
161
+ })) && ((1 <= input.scenarios.length || _report(_exceptionable, {
162
+ path: _path + ".scenarios",
163
+ expected: "Array<> & MinItems<1>",
164
+ value: input.scenarios
165
+ })) && input.scenarios.map((elem, _index5) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
166
+ path: _path + ".scenarios[" + _index5 + "]",
167
+ expected: "IAutoBeTestScenarioApplication.IScenario",
168
+ value: elem
169
+ })) && _vo3(elem, _path + ".scenarios[" + _index5 + "]", true && _exceptionable) || _report(_exceptionable, {
170
+ path: _path + ".scenarios[" + _index5 + "]",
171
+ expected: "IAutoBeTestScenarioApplication.IScenario",
172
+ value: elem
173
+ })).every(flag => flag)) || _report(_exceptionable, {
174
+ path: _path + ".scenarios",
175
+ expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
176
+ value: input.scenarios
177
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
178
+ path: _path + ".path",
179
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
180
+ value: input.path
181
+ })) || _report(_exceptionable, {
182
+ path: _path + ".path",
183
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
184
+ value: input.path
185
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
186
+ path: _path + ".method",
187
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
188
+ value: input.method
189
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
190
+ path: _path + ".draft",
191
+ expected: "string",
192
+ value: input.draft
193
+ }), "string" === typeof input.functionName || _report(_exceptionable, {
194
+ path: _path + ".functionName",
195
+ expected: "string",
196
+ value: input.functionName
197
+ }), (Array.isArray(input.dependencies) || _report(_exceptionable, {
198
+ path: _path + ".dependencies",
199
+ expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
200
+ value: input.dependencies
201
+ })) && input.dependencies.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
202
+ path: _path + ".dependencies[" + _index6 + "]",
203
+ expected: "IAutoBeTestScenarioApplication.IDependencies",
204
+ value: elem
205
+ })) && _vo4(elem, _path + ".dependencies[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
206
+ path: _path + ".dependencies[" + _index6 + "]",
207
+ expected: "IAutoBeTestScenarioApplication.IDependencies",
208
+ value: elem
209
+ })).every(flag => flag) || _report(_exceptionable, {
210
+ path: _path + ".dependencies",
211
+ expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
212
+ value: input.dependencies
213
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
214
+ path: _path + ".endpoint",
215
+ expected: "AutoBeOpenApi.IEndpoint",
216
+ value: input.endpoint
217
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
218
+ path: _path + ".endpoint",
219
+ expected: "AutoBeOpenApi.IEndpoint",
220
+ value: input.endpoint
221
+ }), "string" === typeof input.purpose || _report(_exceptionable, {
222
+ path: _path + ".purpose",
223
+ expected: "string",
224
+ value: input.purpose
225
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
226
+ if (false === __is(input)) {
227
+ errors = [];
228
+ _report = __typia_transform__validateReport._validateReport(errors);
229
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
230
+ path: _path + "",
231
+ expected: "IAutoBeTestScenarioReviewApplication.IProps",
232
+ value: input
233
+ })) && _vo0(input, _path + "", true) || _report(true, {
234
+ path: _path + "",
235
+ expected: "IAutoBeTestScenarioReviewApplication.IProps",
236
+ value: input
237
+ }))(input, "$input", true);
238
+ const success = 0 === errors.length;
239
+ return success ? {
240
+ success,
241
+ data: input
242
+ } : {
243
+ success,
244
+ errors,
245
+ data: input
246
+ };
247
+ }
248
+ return {
249
+ success: true,
250
+ data: input
251
+ };
252
+ }; })()(next);
253
+ if (result.success === false)
254
+ return result;
255
+ // merge to unique scenario groups
256
+ const scenarioGroups = uniqueScenarioGroups(result.data.scenarioGroups);
257
+ const errors = [];
258
+ // validate endpoints between scenarioGroups and originalGroups
259
+ const filteredScenarioGroups = props.originalGroups.reduce((acc, originalGroup) => {
260
+ // Keep only groups whose endpoint matches with one in props.originalGroups
261
+ const matchingGroup = scenarioGroups.find((g) => g.endpoint.method === originalGroup.endpoint.method &&
262
+ g.endpoint.path === originalGroup.endpoint.path);
263
+ if (!matchingGroup) {
264
+ return [...acc, originalGroup];
265
+ }
266
+ return [...acc, matchingGroup];
267
+ }, []);
268
+ result.data.scenarioGroups = filteredScenarioGroups;
269
+ if (errors.length > 0) {
270
+ return {
271
+ success: false,
272
+ errors,
273
+ data: result.data,
274
+ };
275
+ }
276
+ return result;
277
+ };
278
+ const application = collection[props.model === "chatgpt" ? "chatgpt" : "claude"](validate);
279
+ return {
280
+ protocol: "class",
281
+ name: "Test Scenario Reviewer",
282
+ application,
283
+ execute: {
284
+ review: (input) => {
285
+ props.pointer.value = input;
286
+ },
287
+ },
288
+ };
289
+ }
290
+ const uniqueScenarioGroups = (groups) => new tstl_1.HashMap(groups.map((g) => new tstl_1.Pair(g.endpoint, g)), utils_1.AutoBeEndpointComparator.hashCode, utils_1.AutoBeEndpointComparator.equals)
291
+ .toJSON()
292
+ .map((it) => it.second);
293
+ const collection = {
294
+ chatgpt: (validate) => (() => {
295
+ const application = {
296
+ model: "chatgpt",
297
+ options: {
298
+ reference: true,
299
+ strict: false,
300
+ separate: null
301
+ },
302
+ functions: [
303
+ {
304
+ name: "review",
305
+ parameters: {
306
+ description: "Current Type: {@link IAutoBeTestScenarioReviewApplication.IProps}",
307
+ type: "object",
308
+ properties: {
309
+ review: {
310
+ description: "Concise review summary focusing on critical findings and key\nimprovements.\n\nShould include:\n\n- Executive summary of overall quality\n- Critical issues requiring immediate fixes\n- Key improvement recommendations\n- Database schema compliance status\n- Modified scenarios identification by functionName",
311
+ type: "string"
312
+ },
313
+ plan: {
314
+ description: "Structured action plan with priority-based improvements.\n\nShould contain:\n\n- Critical fixes required immediately\n- High priority enhancements\n- Implementation guidance\n- Success criteria\n- Specific scenario action items by functionName",
315
+ type: "string"
316
+ },
317
+ pass: {
318
+ description: "If the scenario groups pass the review, Set to true.",
319
+ type: "boolean"
320
+ },
321
+ scenarioGroups: {
322
+ description: "The reviewed and improved scenario groups with all quality fixes applied.\n\nThis is the primary output containing:\n\n- All critical issues resolved\n- Authentication flows corrected\n- Database dependencies validated\n- Quality enhancements implemented\n- Only implementable scenarios retained",
323
+ type: "array",
324
+ items: {
325
+ $ref: "#/$defs/IAutoBeTestScenarioApplication.IScenarioGroup"
326
+ }
327
+ }
328
+ },
329
+ required: [
330
+ "review",
331
+ "plan",
332
+ "pass",
333
+ "scenarioGroups"
334
+ ],
335
+ additionalProperties: false,
336
+ $defs: {
337
+ "IAutoBeTestScenarioApplication.IScenarioGroup": {
338
+ description: "### Description of {@link endpoint} property:\n\n> Target API endpoint to test.\n> \n> This must be **unique** across all scenario groups. An endpoint is\n> identified by its `path` and `method` combination.\n> \n> Multiple test scenarios may exist for a single endpoint.",
339
+ type: "object",
340
+ properties: {
341
+ endpoint: {
342
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
343
+ },
344
+ scenarios: {
345
+ description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.\n\n\n@minItems 1",
346
+ type: "array",
347
+ items: {
348
+ $ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
349
+ }
350
+ }
351
+ },
352
+ required: [
353
+ "endpoint",
354
+ "scenarios"
355
+ ]
356
+ },
357
+ "AutoBeOpenApi.IEndpoint": {
358
+ description: "API endpoint information.",
359
+ type: "object",
360
+ properties: {
361
+ path: {
362
+ description: "HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- \"/users\"\n- \"/users/{userId}\"\n- \"/articles/{articleId}/comments\"\n- \"/attachmentFiles\"\n- \"/orders/{orderId}/items/{itemId}\"\n\nInvalid examples:\n\n- \"'/users'\" (contains quotes)\n- \"/user profile\" (contains space)\n- \"/users/[userId]\" (wrong bracket format)\n- \"/admin/users\" (role prefix)\n- \"/api/v1/users\" (API prefix)\n\n\n@pattern ^\\/[a-zA-Z0-9\\/_{}.-]*$",
363
+ type: "string"
364
+ },
365
+ method: {
366
+ description: "HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., \"get\",\nnot \"GET\").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record",
367
+ type: "string",
368
+ "enum": [
369
+ "get",
370
+ "post",
371
+ "put",
372
+ "delete",
373
+ "patch"
374
+ ]
375
+ }
376
+ },
377
+ required: [
378
+ "path",
379
+ "method"
380
+ ]
381
+ },
382
+ "IAutoBeTestScenarioApplication.IScenario": {
383
+ description: "Represents a test scenario for a single API operation.\n\nThis interface defines a structured, user-centric test draft that includes\na descriptive function name, a detailed scenario draft, and logical\ndependencies on other endpoints required for context or setup.\n\nCRITICAL: All referenced endpoints MUST exist in the provided API\noperations. Do NOT create scenarios for non-existent APIs, even if database\nschema fields suggest their existence. Test scenarios must be implementable\nwith available APIs only.",
384
+ type: "object",
385
+ properties: {
386
+ draft: {
387
+ description: "A detailed natural language description of how this API endpoint should\nbe tested. This should include both successful and failure scenarios,\nbusiness rule validations, edge cases, and any sequence of steps\nnecessary to perform the test. A subsequent agent will use this draft to\ngenerate multiple concrete test cases.",
388
+ type: "string"
389
+ },
390
+ functionName: {
391
+ description: "Descriptive function name derived from the user scenario.\n\nThe function name serves as a concise, technical identifier that clearly\nrepresents the specific user scenario being described. It should be\nimmediately understandable and directly correspond to the user situation\nwithout requiring additional context.\n\n## Naming Convention\n\nDO: Use snake_case naming convention.\n\n- Must start with `test_api_` prefix (mandatory requirement)\n- ALWAYS start with business feature, NOT action verbs\n- Business feature comes first, followed by scenario context\n- Embed action verbs within the scenario description, not at the beginning\n\n## Content Structure\n\nFunction names should follow this pattern:\n`test_api_[core_feature]_[specific_scenario]`\n\nWhere:\n\n- `core_feature`: The main business feature or entity being tested\n (customer, seller, cart, push_message, etc.)\n- `specific_scenario`: The specific operation or scenario context\n (join_verification_not_found, login_success,\n moderator_assignment_update, discountable_ticket_duplicated,\n csv_export, etc.)\n\n## Business Feature-Based Examples\n\n- `test_api_customer_join_verification_not_found` - Customer join\n verification when verification code not found\n- `test_api_seller_login` - Seller login operation\n- `test_api_cart_discountable_ticket_duplicated` - Cart discountable ticket\n with duplication scenario\n- `test_api_push_message_csv` - Push message functionality with CSV format\n- `test_api_product_review_update` - Product review update operation\n\n## Clarity Guidelines\n\n- Prioritize clarity over brevity\n- Avoid technical jargon or implementation terms\n- Use terminology that reflects user perspective\n- Ensure the name alone conveys the user's intent\n- Make it understandable to non-technical stakeholders\n- Keep consistent with user scenario description\n\n## Single Endpoint Alignment\n\nFunction names must reflect scenarios that:\n\n- Accomplish user goals through this single endpoint only\n- Don't imply dependency on other API operations\n- Represent complete user interactions",
392
+ type: "string"
393
+ },
394
+ dependencies: {
395
+ description: "A list of other API endpoints that this scenario logically depends on.\n\nThese dependencies represent context or prerequisite conditions, such as\nauthentication, resource creation, or data setup, that are relevant to\nthe test. This list is not a strict execution order \u2014 if ordering is\nimportant, it must be described explicitly in the `purpose`.\n\nWARNING: Every endpoint referenced here MUST exist in the provided API\noperations. Do NOT reference endpoints that are not explicitly available,\neven if they seem logically necessary based on database schema or\nbusiness logic.",
396
+ type: "array",
397
+ items: {
398
+ $ref: "#/$defs/IAutoBeTestScenarioApplication.IDependencies"
399
+ }
400
+ }
401
+ },
402
+ required: [
403
+ "draft",
404
+ "functionName",
405
+ "dependencies"
406
+ ]
407
+ },
408
+ "IAutoBeTestScenarioApplication.IDependencies": {
409
+ description: "### Description of {@link endpoint} property:\n\n> Target API endpoint that this scenario depends on.\n> \n> This endpoint MUST exist in the available API operations list.\n> Non-existent endpoints will cause test implementation failures.",
410
+ type: "object",
411
+ properties: {
412
+ endpoint: {
413
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
414
+ },
415
+ purpose: {
416
+ description: "A concise explanation of why this API call is relevant or required for\nthe main test scenario.\n\nThis should describe the contextual or setup role of the dependency, such\nas creating necessary data or establishing user authentication.\n\nExample: \"Creates a category so that a product can be linked to it during\ncreation.\"",
417
+ type: "string"
418
+ }
419
+ },
420
+ required: [
421
+ "endpoint",
422
+ "purpose"
423
+ ]
424
+ }
425
+ }
426
+ },
427
+ validate: (() => { const _io0 = input => "string" === typeof input.review && "string" === typeof input.plan && "boolean" === typeof input.pass && (Array.isArray(input.scenarioGroups) && input.scenarioGroups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && (Array.isArray(input.scenarios) && (1 <= input.scenarios.length && input.scenarios.every(elem => "object" === typeof elem && null !== elem && _io3(elem)))); const _io2 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "string" === typeof input.draft && "string" === typeof input.functionName && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io4(elem))); const _io4 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && "string" === typeof input.purpose; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
428
+ path: _path + ".review",
429
+ expected: "string",
430
+ value: input.review
431
+ }), "string" === typeof input.plan || _report(_exceptionable, {
432
+ path: _path + ".plan",
433
+ expected: "string",
434
+ value: input.plan
435
+ }), "boolean" === typeof input.pass || _report(_exceptionable, {
436
+ path: _path + ".pass",
437
+ expected: "boolean",
438
+ value: input.pass
439
+ }), (Array.isArray(input.scenarioGroups) || _report(_exceptionable, {
440
+ path: _path + ".scenarioGroups",
441
+ expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
442
+ value: input.scenarioGroups
443
+ })) && input.scenarioGroups.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
444
+ path: _path + ".scenarioGroups[" + _index4 + "]",
445
+ expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
446
+ value: elem
447
+ })) && _vo1(elem, _path + ".scenarioGroups[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
448
+ path: _path + ".scenarioGroups[" + _index4 + "]",
449
+ expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
450
+ value: elem
451
+ })).every(flag => flag) || _report(_exceptionable, {
452
+ path: _path + ".scenarioGroups",
453
+ expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
454
+ value: input.scenarioGroups
455
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
456
+ path: _path + ".endpoint",
457
+ expected: "AutoBeOpenApi.IEndpoint",
458
+ value: input.endpoint
459
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
460
+ path: _path + ".endpoint",
461
+ expected: "AutoBeOpenApi.IEndpoint",
462
+ value: input.endpoint
463
+ }), (Array.isArray(input.scenarios) || _report(_exceptionable, {
464
+ path: _path + ".scenarios",
465
+ expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
466
+ value: input.scenarios
467
+ })) && ((1 <= input.scenarios.length || _report(_exceptionable, {
468
+ path: _path + ".scenarios",
469
+ expected: "Array<> & MinItems<1>",
470
+ value: input.scenarios
471
+ })) && input.scenarios.map((elem, _index5) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
472
+ path: _path + ".scenarios[" + _index5 + "]",
473
+ expected: "IAutoBeTestScenarioApplication.IScenario",
474
+ value: elem
475
+ })) && _vo3(elem, _path + ".scenarios[" + _index5 + "]", true && _exceptionable) || _report(_exceptionable, {
476
+ path: _path + ".scenarios[" + _index5 + "]",
477
+ expected: "IAutoBeTestScenarioApplication.IScenario",
478
+ value: elem
479
+ })).every(flag => flag)) || _report(_exceptionable, {
480
+ path: _path + ".scenarios",
481
+ expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
482
+ value: input.scenarios
483
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
484
+ path: _path + ".path",
485
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
486
+ value: input.path
487
+ })) || _report(_exceptionable, {
488
+ path: _path + ".path",
489
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
490
+ value: input.path
491
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
492
+ path: _path + ".method",
493
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
494
+ value: input.method
495
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
496
+ path: _path + ".draft",
497
+ expected: "string",
498
+ value: input.draft
499
+ }), "string" === typeof input.functionName || _report(_exceptionable, {
500
+ path: _path + ".functionName",
501
+ expected: "string",
502
+ value: input.functionName
503
+ }), (Array.isArray(input.dependencies) || _report(_exceptionable, {
504
+ path: _path + ".dependencies",
505
+ expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
506
+ value: input.dependencies
507
+ })) && input.dependencies.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
508
+ path: _path + ".dependencies[" + _index6 + "]",
509
+ expected: "IAutoBeTestScenarioApplication.IDependencies",
510
+ value: elem
511
+ })) && _vo4(elem, _path + ".dependencies[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
512
+ path: _path + ".dependencies[" + _index6 + "]",
513
+ expected: "IAutoBeTestScenarioApplication.IDependencies",
514
+ value: elem
515
+ })).every(flag => flag) || _report(_exceptionable, {
516
+ path: _path + ".dependencies",
517
+ expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
518
+ value: input.dependencies
519
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
520
+ path: _path + ".endpoint",
521
+ expected: "AutoBeOpenApi.IEndpoint",
522
+ value: input.endpoint
523
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
524
+ path: _path + ".endpoint",
525
+ expected: "AutoBeOpenApi.IEndpoint",
526
+ value: input.endpoint
527
+ }), "string" === typeof input.purpose || _report(_exceptionable, {
528
+ path: _path + ".purpose",
529
+ expected: "string",
530
+ value: input.purpose
531
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
532
+ if (false === __is(input)) {
533
+ errors = [];
534
+ _report = __typia_transform__validateReport._validateReport(errors);
535
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
536
+ path: _path + "",
537
+ expected: "IAutoBeTestScenarioReviewApplication.IProps",
538
+ value: input
539
+ })) && _vo0(input, _path + "", true) || _report(true, {
540
+ path: _path + "",
541
+ expected: "IAutoBeTestScenarioReviewApplication.IProps",
542
+ value: input
543
+ }))(input, "$input", true);
544
+ const success = 0 === errors.length;
545
+ return success ? {
546
+ success,
547
+ data: input
548
+ } : {
549
+ success,
550
+ errors,
551
+ data: input
552
+ };
553
+ }
554
+ return {
555
+ success: true,
556
+ data: input
557
+ };
558
+ }; })()
559
+ }
560
+ ]
561
+ };
562
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
563
+ validate: {
564
+ review: validate,
565
+ },
566
+ }), { equals: false }));
567
+ return application;
568
+ })(),
569
+ claude: (validate) => (() => {
570
+ const application = {
571
+ model: "claude",
572
+ options: {
573
+ reference: true,
574
+ separate: null
575
+ },
576
+ functions: [
577
+ {
578
+ name: "review",
579
+ parameters: {
580
+ description: "Current Type: {@link IAutoBeTestScenarioReviewApplication.IProps}",
581
+ type: "object",
582
+ properties: {
583
+ review: {
584
+ description: "Concise review summary focusing on critical findings and key\nimprovements.\n\nShould include:\n\n- Executive summary of overall quality\n- Critical issues requiring immediate fixes\n- Key improvement recommendations\n- Database schema compliance status\n- Modified scenarios identification by functionName",
585
+ type: "string"
586
+ },
587
+ plan: {
588
+ description: "Structured action plan with priority-based improvements.\n\nShould contain:\n\n- Critical fixes required immediately\n- High priority enhancements\n- Implementation guidance\n- Success criteria\n- Specific scenario action items by functionName",
589
+ type: "string"
590
+ },
591
+ pass: {
592
+ description: "If the scenario groups pass the review, Set to true.",
593
+ type: "boolean"
594
+ },
595
+ scenarioGroups: {
596
+ description: "The reviewed and improved scenario groups with all quality fixes applied.\n\nThis is the primary output containing:\n\n- All critical issues resolved\n- Authentication flows corrected\n- Database dependencies validated\n- Quality enhancements implemented\n- Only implementable scenarios retained",
597
+ type: "array",
598
+ items: {
599
+ $ref: "#/$defs/IAutoBeTestScenarioApplication.IScenarioGroup"
600
+ }
601
+ }
602
+ },
603
+ required: [
604
+ "review",
605
+ "plan",
606
+ "pass",
607
+ "scenarioGroups"
608
+ ],
609
+ additionalProperties: false,
610
+ $defs: {
611
+ "IAutoBeTestScenarioApplication.IScenarioGroup": {
612
+ type: "object",
613
+ properties: {
614
+ endpoint: {
615
+ description: "Target API endpoint to test.\n\nThis must be **unique** across all scenario groups. An endpoint is\nidentified by its `path` and `method` combination.\n\nMultiple test scenarios may exist for a single endpoint.",
616
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
617
+ },
618
+ scenarios: {
619
+ description: "An array of test scenarios associated with the given endpoint.\n\nEach scenario represents a specific test case for the same `path` and\n`method`.\n\nIMPORTANT: Each scenario must be actually implementable. A scenario's\nimplementability is determined by the existence of ALL APIs (endpoints)\nrequired to test it. This includes not only the primary endpoint being\ntested, but also ALL dependency endpoints needed for setup,\nauthentication, and data preparation. If even one required dependency API\nis missing from the available operations, the scenario cannot be\nimplemented and should not be generated.\n\nExample: A \"test banned user login\" scenario requires both a login API\nAND a ban user API. If the ban API doesn't exist, this scenario is not\nimplementable regardless of database schema fields.",
620
+ type: "array",
621
+ items: {
622
+ $ref: "#/$defs/IAutoBeTestScenarioApplication.IScenario"
623
+ },
624
+ minItems: 1
625
+ }
626
+ },
627
+ required: [
628
+ "endpoint",
629
+ "scenarios"
630
+ ]
631
+ },
632
+ "AutoBeOpenApi.IEndpoint": {
633
+ description: "API endpoint information.",
634
+ type: "object",
635
+ properties: {
636
+ path: {
637
+ description: "HTTP path of the API operation.\n\nThe URL path for accessing this API operation, using path parameters\nenclosed in curly braces (e.g., `/shoppings/customers/sales/{saleId}`).\n\nIt must be corresponded to the {@link parameters path parameters}.\n\nThe path structure should clearly indicate which database entity this\noperation is manipulating, helping to ensure all entities have\nappropriate API coverage.\n\nPath validation rules:\n\n- Must start with a forward slash (/)\n- Can contain only: letters (a-z, A-Z), numbers (0-9), forward slashes (/),\n curly braces for parameters ({paramName}), hyphens (-), and underscores\n (_)\n- Parameters must be enclosed in curly braces: {paramName}\n- Resource names should be in camelCase\n- No quotes, spaces, or invalid special characters allowed\n- No domain or role-based prefixes\n\nValid examples:\n\n- \"/users\"\n- \"/users/{userId}\"\n- \"/articles/{articleId}/comments\"\n- \"/attachmentFiles\"\n- \"/orders/{orderId}/items/{itemId}\"\n\nInvalid examples:\n\n- \"'/users'\" (contains quotes)\n- \"/user profile\" (contains space)\n- \"/users/[userId]\" (wrong bracket format)\n- \"/admin/users\" (role prefix)\n- \"/api/v1/users\" (API prefix)",
638
+ type: "string",
639
+ pattern: "^\\/[a-zA-Z0-9\\/_{}.-]*$"
640
+ },
641
+ method: {
642
+ description: "HTTP method of the API operation.\n\n**IMPORTANT**: Methods must be written in lowercase only (e.g., \"get\",\nnot \"GET\").\n\nNote that, if the API operation has {@link requestBody}, method must not\nbe `get`.\n\nAlso, even though the API operation has been designed to only get\ninformation, but it needs complicated request information, it must be\ndefined as `patch` method with {@link requestBody} data specification.\n\n- `get`: get information\n- `patch`: get information with complicated request data\n ({@link requestBody})\n- `post`: create new record\n- `put`: update existing record\n- `delete`: remove record",
643
+ oneOf: [
644
+ {
645
+ "const": "get"
646
+ },
647
+ {
648
+ "const": "post"
649
+ },
650
+ {
651
+ "const": "put"
652
+ },
653
+ {
654
+ "const": "delete"
655
+ },
656
+ {
657
+ "const": "patch"
658
+ }
659
+ ]
660
+ }
661
+ },
662
+ required: [
663
+ "path",
664
+ "method"
665
+ ]
666
+ },
667
+ "IAutoBeTestScenarioApplication.IScenario": {
668
+ description: "Represents a test scenario for a single API operation.\n\nThis interface defines a structured, user-centric test draft that includes\na descriptive function name, a detailed scenario draft, and logical\ndependencies on other endpoints required for context or setup.\n\nCRITICAL: All referenced endpoints MUST exist in the provided API\noperations. Do NOT create scenarios for non-existent APIs, even if database\nschema fields suggest their existence. Test scenarios must be implementable\nwith available APIs only.",
669
+ type: "object",
670
+ properties: {
671
+ draft: {
672
+ description: "A detailed natural language description of how this API endpoint should\nbe tested. This should include both successful and failure scenarios,\nbusiness rule validations, edge cases, and any sequence of steps\nnecessary to perform the test. A subsequent agent will use this draft to\ngenerate multiple concrete test cases.",
673
+ type: "string"
674
+ },
675
+ functionName: {
676
+ description: "Descriptive function name derived from the user scenario.\n\nThe function name serves as a concise, technical identifier that clearly\nrepresents the specific user scenario being described. It should be\nimmediately understandable and directly correspond to the user situation\nwithout requiring additional context.\n\n## Naming Convention\n\nDO: Use snake_case naming convention.\n\n- Must start with `test_api_` prefix (mandatory requirement)\n- ALWAYS start with business feature, NOT action verbs\n- Business feature comes first, followed by scenario context\n- Embed action verbs within the scenario description, not at the beginning\n\n## Content Structure\n\nFunction names should follow this pattern:\n`test_api_[core_feature]_[specific_scenario]`\n\nWhere:\n\n- `core_feature`: The main business feature or entity being tested\n (customer, seller, cart, push_message, etc.)\n- `specific_scenario`: The specific operation or scenario context\n (join_verification_not_found, login_success,\n moderator_assignment_update, discountable_ticket_duplicated,\n csv_export, etc.)\n\n## Business Feature-Based Examples\n\n- `test_api_customer_join_verification_not_found` - Customer join\n verification when verification code not found\n- `test_api_seller_login` - Seller login operation\n- `test_api_cart_discountable_ticket_duplicated` - Cart discountable ticket\n with duplication scenario\n- `test_api_push_message_csv` - Push message functionality with CSV format\n- `test_api_product_review_update` - Product review update operation\n\n## Clarity Guidelines\n\n- Prioritize clarity over brevity\n- Avoid technical jargon or implementation terms\n- Use terminology that reflects user perspective\n- Ensure the name alone conveys the user's intent\n- Make it understandable to non-technical stakeholders\n- Keep consistent with user scenario description\n\n## Single Endpoint Alignment\n\nFunction names must reflect scenarios that:\n\n- Accomplish user goals through this single endpoint only\n- Don't imply dependency on other API operations\n- Represent complete user interactions",
677
+ type: "string"
678
+ },
679
+ dependencies: {
680
+ description: "A list of other API endpoints that this scenario logically depends on.\n\nThese dependencies represent context or prerequisite conditions, such as\nauthentication, resource creation, or data setup, that are relevant to\nthe test. This list is not a strict execution order \u2014 if ordering is\nimportant, it must be described explicitly in the `purpose`.\n\nWARNING: Every endpoint referenced here MUST exist in the provided API\noperations. Do NOT reference endpoints that are not explicitly available,\neven if they seem logically necessary based on database schema or\nbusiness logic.",
681
+ type: "array",
682
+ items: {
683
+ $ref: "#/$defs/IAutoBeTestScenarioApplication.IDependencies"
684
+ }
685
+ }
686
+ },
687
+ required: [
688
+ "draft",
689
+ "functionName",
690
+ "dependencies"
691
+ ]
692
+ },
693
+ "IAutoBeTestScenarioApplication.IDependencies": {
694
+ type: "object",
695
+ properties: {
696
+ endpoint: {
697
+ description: "Target API endpoint that this scenario depends on.\n\nThis endpoint MUST exist in the available API operations list.\nNon-existent endpoints will cause test implementation failures.",
698
+ $ref: "#/$defs/AutoBeOpenApi.IEndpoint"
699
+ },
700
+ purpose: {
701
+ description: "A concise explanation of why this API call is relevant or required for\nthe main test scenario.\n\nThis should describe the contextual or setup role of the dependency, such\nas creating necessary data or establishing user authentication.\n\nExample: \"Creates a category so that a product can be linked to it during\ncreation.\"",
702
+ type: "string"
703
+ }
704
+ },
705
+ required: [
706
+ "endpoint",
707
+ "purpose"
708
+ ]
709
+ }
710
+ }
711
+ },
712
+ validate: (() => { const _io0 = input => "string" === typeof input.review && "string" === typeof input.plan && "boolean" === typeof input.pass && (Array.isArray(input.scenarioGroups) && input.scenarioGroups.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && (Array.isArray(input.scenarios) && (1 <= input.scenarios.length && input.scenarios.every(elem => "object" === typeof elem && null !== elem && _io3(elem)))); const _io2 = input => "string" === typeof input.path && RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) && ("get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method); const _io3 = input => "string" === typeof input.draft && "string" === typeof input.functionName && (Array.isArray(input.dependencies) && input.dependencies.every(elem => "object" === typeof elem && null !== elem && _io4(elem))); const _io4 = input => "object" === typeof input.endpoint && null !== input.endpoint && _io2(input.endpoint) && "string" === typeof input.purpose; const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.review || _report(_exceptionable, {
713
+ path: _path + ".review",
714
+ expected: "string",
715
+ value: input.review
716
+ }), "string" === typeof input.plan || _report(_exceptionable, {
717
+ path: _path + ".plan",
718
+ expected: "string",
719
+ value: input.plan
720
+ }), "boolean" === typeof input.pass || _report(_exceptionable, {
721
+ path: _path + ".pass",
722
+ expected: "boolean",
723
+ value: input.pass
724
+ }), (Array.isArray(input.scenarioGroups) || _report(_exceptionable, {
725
+ path: _path + ".scenarioGroups",
726
+ expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
727
+ value: input.scenarioGroups
728
+ })) && input.scenarioGroups.map((elem, _index4) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
729
+ path: _path + ".scenarioGroups[" + _index4 + "]",
730
+ expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
731
+ value: elem
732
+ })) && _vo1(elem, _path + ".scenarioGroups[" + _index4 + "]", true && _exceptionable) || _report(_exceptionable, {
733
+ path: _path + ".scenarioGroups[" + _index4 + "]",
734
+ expected: "IAutoBeTestScenarioApplication.IScenarioGroup",
735
+ value: elem
736
+ })).every(flag => flag) || _report(_exceptionable, {
737
+ path: _path + ".scenarioGroups",
738
+ expected: "Array<IAutoBeTestScenarioApplication.IScenarioGroup>",
739
+ value: input.scenarioGroups
740
+ })].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
741
+ path: _path + ".endpoint",
742
+ expected: "AutoBeOpenApi.IEndpoint",
743
+ value: input.endpoint
744
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
745
+ path: _path + ".endpoint",
746
+ expected: "AutoBeOpenApi.IEndpoint",
747
+ value: input.endpoint
748
+ }), (Array.isArray(input.scenarios) || _report(_exceptionable, {
749
+ path: _path + ".scenarios",
750
+ expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
751
+ value: input.scenarios
752
+ })) && ((1 <= input.scenarios.length || _report(_exceptionable, {
753
+ path: _path + ".scenarios",
754
+ expected: "Array<> & MinItems<1>",
755
+ value: input.scenarios
756
+ })) && input.scenarios.map((elem, _index5) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
757
+ path: _path + ".scenarios[" + _index5 + "]",
758
+ expected: "IAutoBeTestScenarioApplication.IScenario",
759
+ value: elem
760
+ })) && _vo3(elem, _path + ".scenarios[" + _index5 + "]", true && _exceptionable) || _report(_exceptionable, {
761
+ path: _path + ".scenarios[" + _index5 + "]",
762
+ expected: "IAutoBeTestScenarioApplication.IScenario",
763
+ value: elem
764
+ })).every(flag => flag)) || _report(_exceptionable, {
765
+ path: _path + ".scenarios",
766
+ expected: "(Array<IAutoBeTestScenarioApplication.IScenario> & MinItems<1>)",
767
+ value: input.scenarios
768
+ })].every(flag => flag); const _vo2 = (input, _path, _exceptionable = true) => ["string" === typeof input.path && (RegExp("^\\/[a-zA-Z0-9\\/_{}.-]*$").test(input.path) || _report(_exceptionable, {
769
+ path: _path + ".path",
770
+ expected: "string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">",
771
+ value: input.path
772
+ })) || _report(_exceptionable, {
773
+ path: _path + ".path",
774
+ expected: "(string & Pattern<\"^\\\\/[a-zA-Z0-9\\\\/_{}.-]*$\">)",
775
+ value: input.path
776
+ }), "get" === input.method || "post" === input.method || "put" === input.method || "delete" === input.method || "patch" === input.method || _report(_exceptionable, {
777
+ path: _path + ".method",
778
+ expected: "(\"delete\" | \"get\" | \"patch\" | \"post\" | \"put\")",
779
+ value: input.method
780
+ })].every(flag => flag); const _vo3 = (input, _path, _exceptionable = true) => ["string" === typeof input.draft || _report(_exceptionable, {
781
+ path: _path + ".draft",
782
+ expected: "string",
783
+ value: input.draft
784
+ }), "string" === typeof input.functionName || _report(_exceptionable, {
785
+ path: _path + ".functionName",
786
+ expected: "string",
787
+ value: input.functionName
788
+ }), (Array.isArray(input.dependencies) || _report(_exceptionable, {
789
+ path: _path + ".dependencies",
790
+ expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
791
+ value: input.dependencies
792
+ })) && input.dependencies.map((elem, _index6) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
793
+ path: _path + ".dependencies[" + _index6 + "]",
794
+ expected: "IAutoBeTestScenarioApplication.IDependencies",
795
+ value: elem
796
+ })) && _vo4(elem, _path + ".dependencies[" + _index6 + "]", true && _exceptionable) || _report(_exceptionable, {
797
+ path: _path + ".dependencies[" + _index6 + "]",
798
+ expected: "IAutoBeTestScenarioApplication.IDependencies",
799
+ value: elem
800
+ })).every(flag => flag) || _report(_exceptionable, {
801
+ path: _path + ".dependencies",
802
+ expected: "Array<IAutoBeTestScenarioApplication.IDependencies>",
803
+ value: input.dependencies
804
+ })].every(flag => flag); const _vo4 = (input, _path, _exceptionable = true) => [("object" === typeof input.endpoint && null !== input.endpoint || _report(_exceptionable, {
805
+ path: _path + ".endpoint",
806
+ expected: "AutoBeOpenApi.IEndpoint",
807
+ value: input.endpoint
808
+ })) && _vo2(input.endpoint, _path + ".endpoint", true && _exceptionable) || _report(_exceptionable, {
809
+ path: _path + ".endpoint",
810
+ expected: "AutoBeOpenApi.IEndpoint",
811
+ value: input.endpoint
812
+ }), "string" === typeof input.purpose || _report(_exceptionable, {
813
+ path: _path + ".purpose",
814
+ expected: "string",
815
+ value: input.purpose
816
+ })].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
817
+ if (false === __is(input)) {
818
+ errors = [];
819
+ _report = __typia_transform__validateReport._validateReport(errors);
820
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
821
+ path: _path + "",
822
+ expected: "IAutoBeTestScenarioReviewApplication.IProps",
823
+ value: input
824
+ })) && _vo0(input, _path + "", true) || _report(true, {
825
+ path: _path + "",
826
+ expected: "IAutoBeTestScenarioReviewApplication.IProps",
827
+ value: input
828
+ }))(input, "$input", true);
829
+ const success = 0 === errors.length;
830
+ return success ? {
831
+ success,
832
+ data: input
833
+ } : {
834
+ success,
835
+ errors,
836
+ data: input
837
+ };
838
+ }
839
+ return {
840
+ success: true,
841
+ data: input
842
+ };
843
+ }; })()
844
+ }
845
+ ]
846
+ };
847
+ __typia_transform__llmApplicationFinalize._llmApplicationFinalize(application, Object.assign(Object.assign({}, {
848
+ validate: {
849
+ review: validate,
850
+ },
851
+ }), { equals: false }));
852
+ return application;
853
+ })(),
854
+ };
855
+ //# sourceMappingURL=orchestrateTestScenarioReview.js.map