@autobe/agent 0.9.1 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AutoBeAgent.js +16 -5
- package/lib/AutoBeAgent.js.map +1 -1
- package/lib/constants/AutoBeSystemPromptConstant.d.ts +6 -4
- package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
- package/lib/context/AutoBeTokenUsage.d.ts +15 -1
- package/lib/context/AutoBeTokenUsage.js +56 -1
- package/lib/context/AutoBeTokenUsage.js.map +1 -1
- package/lib/context/IAutoBeApplicationProps.d.ts +0 -61
- package/lib/factory/createAutoBeApplication.js +298 -773
- package/lib/factory/createAutoBeApplication.js.map +1 -1
- package/lib/index.mjs +5116 -7271
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/analyze/AutoBeAnalyzeAgent.js +82 -319
- package/lib/orchestrate/analyze/AutoBeAnalyzeAgent.js.map +1 -1
- package/lib/orchestrate/analyze/AutoBeAnalyzeReviewer.js +0 -1
- package/lib/orchestrate/analyze/AutoBeAnalyzeReviewer.js.map +1 -1
- package/lib/orchestrate/analyze/orchestrateAnalyze.js +97 -294
- package/lib/orchestrate/analyze/orchestrateAnalyze.js.map +1 -1
- package/lib/orchestrate/facade/transformFacadeStateMessage.js +2 -2
- package/lib/orchestrate/facade/transformFacadeStateMessage.js.map +1 -1
- package/lib/orchestrate/index.d.ts +2 -2
- package/lib/orchestrate/index.js +4 -4
- package/lib/orchestrate/index.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterface.js +9 -3
- package/lib/orchestrate/interface/orchestrateInterface.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js +56 -142
- package/lib/orchestrate/interface/orchestrateInterfaceComplement.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceComponents.js +195 -199
- package/lib/orchestrate/interface/orchestrateInterfaceComponents.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +75 -172
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +772 -1097
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
- package/lib/orchestrate/interface/transformInterfaceHistories.js +2 -0
- package/lib/orchestrate/interface/transformInterfaceHistories.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js +64 -175
- package/lib/orchestrate/prisma/orchestratePrismaComponent.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js +552 -1073
- package/lib/orchestrate/prisma/orchestratePrismaCorrect.js.map +1 -1
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js +571 -1119
- package/lib/orchestrate/prisma/orchestratePrismaSchema.js.map +1 -1
- package/lib/orchestrate/prisma/transformPrismaComponentsHistories.js +9 -0
- package/lib/orchestrate/prisma/transformPrismaComponentsHistories.js.map +1 -1
- package/lib/orchestrate/prisma/transformPrismaSchemaHistories.js +8 -0
- package/lib/orchestrate/prisma/transformPrismaSchemaHistories.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealize.d.ts +11 -0
- package/lib/orchestrate/realize/orchestrateRealize.js +109 -0
- package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealizeCoder.d.ts +25 -0
- package/lib/orchestrate/realize/orchestrateRealizeCoder.js +337 -0
- package/lib/orchestrate/realize/orchestrateRealizeCoder.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealizeIntegrator.d.ts +52 -0
- package/lib/orchestrate/realize/orchestrateRealizeIntegrator.js +57 -0
- package/lib/orchestrate/realize/orchestrateRealizeIntegrator.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealizePlanner.d.ts +80 -0
- package/lib/orchestrate/realize/orchestrateRealizePlanner.js +53 -0
- package/lib/orchestrate/realize/orchestrateRealizePlanner.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealizeValidator.d.ts +46 -0
- package/lib/orchestrate/realize/orchestrateRealizeValidator.js +37 -0
- package/lib/orchestrate/realize/orchestrateRealizeValidator.js.map +1 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.d.ts +33 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.js +3 -0
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.js.map +1 -0
- package/lib/orchestrate/realize/transformRealizeCoderHistories.d.ts +5 -0
- package/lib/orchestrate/realize/transformRealizeCoderHistories.js +127 -0
- package/lib/orchestrate/realize/transformRealizeCoderHistories.js.map +1 -0
- package/lib/orchestrate/test/compile/completeTestCode.d.ts +2 -0
- package/lib/orchestrate/test/compile/completeTestCode.js +21 -0
- package/lib/orchestrate/test/compile/completeTestCode.js.map +1 -0
- package/lib/orchestrate/test/{filterTestFileName.js → compile/filterTestFileName.js} +1 -1
- package/lib/orchestrate/test/compile/filterTestFileName.js.map +1 -0
- package/lib/orchestrate/test/compile/getTestExternalDeclarations.d.ts +3 -0
- package/lib/orchestrate/test/compile/getTestExternalDeclarations.js +27 -0
- package/lib/orchestrate/test/compile/getTestExternalDeclarations.js.map +1 -0
- package/lib/orchestrate/test/compile/getTestScenarioArtifacts.d.ts +5 -0
- package/lib/orchestrate/test/{compileTestScenario.js → compile/getTestScenarioArtifacts.js} +11 -5
- package/lib/orchestrate/test/compile/getTestScenarioArtifacts.js.map +1 -0
- package/lib/orchestrate/test/orchestrateTest.js +14 -9
- package/lib/orchestrate/test/orchestrateTest.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestCorrect.d.ts +3 -2
- package/lib/orchestrate/test/orchestrateTestCorrect.js +150 -349
- package/lib/orchestrate/test/orchestrateTestCorrect.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestScenario.js +323 -566
- package/lib/orchestrate/test/orchestrateTestScenario.js.map +1 -1
- package/lib/orchestrate/test/orchestrateTestWrite.d.ts +3 -2
- package/lib/orchestrate/test/orchestrateTestWrite.js +139 -76
- package/lib/orchestrate/test/orchestrateTestWrite.js.map +1 -1
- package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.d.ts +121 -0
- package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.js +3 -0
- package/lib/orchestrate/test/structures/IAutoBeTestCorrectApplication.js.map +1 -0
- package/lib/orchestrate/test/structures/IAutoBeTestFunction.d.ts +8 -0
- package/lib/{utils/types/BackoffOptions.js → orchestrate/test/structures/IAutoBeTestFunction.js} +1 -1
- package/lib/orchestrate/test/structures/IAutoBeTestFunction.js.map +1 -0
- package/lib/orchestrate/test/structures/IAutoBeTestScenarioApplication.d.ts +32 -22
- package/lib/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.d.ts +2 -0
- package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.d.ts +112 -0
- package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.js +3 -0
- package/lib/orchestrate/test/structures/IAutoBeTestWriteApplication.js.map +1 -0
- package/lib/orchestrate/test/structures/IAutoBeTestWriteResult.d.ts +7 -0
- package/lib/orchestrate/test/structures/IAutoBeTestWriteResult.js +3 -0
- package/lib/orchestrate/test/structures/IAutoBeTestWriteResult.js.map +1 -0
- package/lib/orchestrate/test/transformTestCorrectHistories.d.ts +3 -2
- package/lib/orchestrate/test/transformTestCorrectHistories.js +28 -41
- package/lib/orchestrate/test/transformTestCorrectHistories.js.map +1 -1
- package/lib/orchestrate/test/transformTestWriteHistories.d.ts +5 -4
- package/lib/orchestrate/test/transformTestWriteHistories.js +169 -32
- package/lib/orchestrate/test/transformTestWriteHistories.js.map +1 -1
- package/lib/structures/IAutoBeConfig.d.ts +11 -0
- package/lib/structures/IAutoBeProps.d.ts +12 -1
- package/lib/utils/backoffRetry.d.ts +4 -7
- package/lib/utils/backoffRetry.js +19 -37
- package/lib/utils/backoffRetry.js.map +1 -1
- package/lib/utils/forceRetry.d.ts +1 -0
- package/lib/{orchestrate/orchestrateRealize.js → utils/forceRetry.js} +15 -8
- package/lib/utils/forceRetry.js.map +1 -0
- package/package.json +8 -8
- package/src/AutoBeAgent.ts +26 -4
- package/src/constants/AutoBeSystemPromptConstant.ts +6 -4
- package/src/context/AutoBeTokenUsage.ts +85 -1
- package/src/context/IAutoBeApplicationProps.ts +0 -62
- package/src/factory/createAutoBeApplication.ts +2 -3
- package/src/orchestrate/analyze/AutoBeAnalyzeAgent.ts +8 -3
- package/src/orchestrate/analyze/AutoBeAnalyzeReviewer.ts +0 -1
- package/src/orchestrate/analyze/orchestrateAnalyze.ts +8 -37
- package/src/orchestrate/facade/transformFacadeStateMessage.ts +2 -1
- package/src/orchestrate/index.ts +2 -2
- package/src/orchestrate/interface/orchestrateInterface.ts +7 -0
- package/src/orchestrate/interface/orchestrateInterfaceComplement.ts +4 -3
- package/src/orchestrate/interface/orchestrateInterfaceComponents.ts +26 -23
- package/src/orchestrate/interface/orchestrateInterfaceEndpoints.ts +6 -4
- package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +14 -11
- package/src/orchestrate/interface/transformInterfaceHistories.ts +2 -0
- package/src/orchestrate/prisma/orchestratePrismaComponent.ts +10 -5
- package/src/orchestrate/prisma/orchestratePrismaCorrect.ts +11 -5
- package/src/orchestrate/prisma/orchestratePrismaSchema.ts +16 -8
- package/src/orchestrate/prisma/transformPrismaComponentsHistories.ts +9 -0
- package/src/orchestrate/prisma/transformPrismaSchemaHistories.ts +8 -0
- package/src/orchestrate/realize/orchestrateRealize.ts +169 -0
- package/src/orchestrate/realize/orchestrateRealizeCoder.ts +156 -0
- package/src/orchestrate/realize/orchestrateRealizeIntegrator.ts +75 -0
- package/src/orchestrate/realize/orchestrateRealizePlanner.ts +115 -0
- package/src/orchestrate/realize/orchestrateRealizeValidator.ts +64 -0
- package/src/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.ts +36 -0
- package/src/orchestrate/realize/transformRealizeCoderHistories.ts +136 -0
- package/src/orchestrate/test/compile/completeTestCode.ts +35 -0
- package/src/orchestrate/test/{filterTestFileName.ts → compile/filterTestFileName.ts} +1 -1
- package/src/orchestrate/test/compile/getTestExternalDeclarations.ts +24 -0
- package/src/orchestrate/test/{compileTestScenario.ts → compile/getTestScenarioArtifacts.ts} +17 -8
- package/src/orchestrate/test/experimental/orchestrateTestCorrect.ast +240 -0
- package/src/orchestrate/test/experimental/orchestrateTestWrite.ast +316 -0
- package/src/orchestrate/test/experimental/transformTestCorrectHistories.ast +52 -0
- package/src/orchestrate/test/orchestrateTest.ts +38 -16
- package/src/orchestrate/test/orchestrateTestCorrect.ts +111 -338
- package/src/orchestrate/test/orchestrateTestScenario.ts +114 -69
- package/src/orchestrate/test/orchestrateTestWrite.ts +55 -153
- package/src/orchestrate/test/structures/IAutoBeTestCorrectApplication.ts +126 -0
- package/src/orchestrate/test/structures/IAutoBeTestFunction.ts +10 -0
- package/src/orchestrate/test/structures/IAutoBeTestScenarioApplication.ts +32 -22
- package/src/orchestrate/test/structures/IAutoBeTestScenarioArtifacts.ts +3 -0
- package/src/orchestrate/test/structures/IAutoBeTestWriteApplication.ts +117 -0
- package/src/orchestrate/test/structures/IAutoBeTestWriteResult.ts +9 -0
- package/src/orchestrate/test/transformTestCorrectHistories.ts +38 -43
- package/src/orchestrate/test/transformTestWriteHistories.ts +89 -35
- package/src/structures/IAutoBeConfig.ts +9 -0
- package/src/structures/IAutoBeProps.ts +17 -1
- package/src/utils/backoffRetry.ts +25 -36
- package/src/utils/forceRetry.ts +13 -0
- package/lib/factory/invertOpenApiDocument.d.ts +0 -3
- package/lib/factory/invertOpenApiDocument.js +0 -51
- package/lib/factory/invertOpenApiDocument.js.map +0 -1
- package/lib/orchestrate/orchestrateRealize.d.ts +0 -5
- package/lib/orchestrate/orchestrateRealize.js.map +0 -1
- package/lib/orchestrate/test/compileTestScenario.d.ts +0 -5
- package/lib/orchestrate/test/compileTestScenario.js.map +0 -1
- package/lib/orchestrate/test/filterTestFileName.js.map +0 -1
- package/lib/utils/StringUtil.d.ts +0 -4
- package/lib/utils/StringUtil.js +0 -43
- package/lib/utils/StringUtil.js.map +0 -1
- package/lib/utils/types/BackoffOptions.d.ts +0 -12
- package/lib/utils/types/BackoffOptions.js.map +0 -1
- package/src/factory/invertOpenApiDocument.ts +0 -63
- package/src/orchestrate/orchestrateRealize.ts +0 -18
- package/src/utils/StringUtil.ts +0 -45
- package/src/utils/types/BackoffOptions.ts +0 -15
- /package/lib/orchestrate/test/{filterTestFileName.d.ts → compile/filterTestFileName.d.ts} +0 -0
|
@@ -57,15 +57,11 @@ const AutoBeAnalyzeReviewer_1 = require("./AutoBeAnalyzeReviewer");
|
|
|
57
57
|
/** @todo Kakasoo */
|
|
58
58
|
const orchestrateAnalyze = (ctx) => (props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
59
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
60
|
-
const userPlanningRequirements = props.userPlanningRequirements;
|
|
61
|
-
if (!userPlanningRequirements) {
|
|
62
|
-
throw new Error(`Unable to prepare a proposal because there is no user requirement`);
|
|
63
|
-
}
|
|
64
60
|
const step = (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0;
|
|
65
61
|
const created_at = new Date().toISOString();
|
|
66
62
|
ctx.dispatch({
|
|
67
63
|
type: "analyzeStart",
|
|
68
|
-
reason:
|
|
64
|
+
reason: props.reason,
|
|
69
65
|
step,
|
|
70
66
|
created_at,
|
|
71
67
|
});
|
|
@@ -93,12 +89,12 @@ const orchestrateAnalyze = (ctx) => (props) => __awaiter(void 0, void 0, void 0,
|
|
|
93
89
|
],
|
|
94
90
|
});
|
|
95
91
|
(0, enforceToolCall_1.enforceToolCall)(agentica);
|
|
96
|
-
const determined = yield agentica
|
|
97
|
-
"Design a complete list of documents for that document"
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"
|
|
101
|
-
|
|
92
|
+
const determined = yield agentica
|
|
93
|
+
.conversate("Design a complete list of documents for that document")
|
|
94
|
+
.finally(() => {
|
|
95
|
+
const tokenUsage = agentica.getTokenUsage();
|
|
96
|
+
ctx.usage().record(tokenUsage, ["analyze"]);
|
|
97
|
+
});
|
|
102
98
|
const lastMessage = determined[determined.length - 1];
|
|
103
99
|
if (lastMessage.type === "assistantMessage") {
|
|
104
100
|
const history = {
|
|
@@ -116,20 +112,6 @@ const orchestrateAnalyze = (ctx) => (props) => __awaiter(void 0, void 0, void 0,
|
|
|
116
112
|
return history;
|
|
117
113
|
}
|
|
118
114
|
const described = determined.find((el) => el.type === "describe");
|
|
119
|
-
// const determinedOutput = Array.from(
|
|
120
|
-
// new Set(
|
|
121
|
-
// described
|
|
122
|
-
// ? described.executes
|
|
123
|
-
// .map((el) => {
|
|
124
|
-
// if (el.protocol === "class") {
|
|
125
|
-
// return el.arguments as unknown as IDeterminingInput;
|
|
126
|
-
// }
|
|
127
|
-
// return null;
|
|
128
|
-
// })
|
|
129
|
-
// .filter((el) => el !== null)
|
|
130
|
-
// : [],
|
|
131
|
-
// ),
|
|
132
|
-
// );
|
|
133
115
|
const determinedOutput = (_d = described === null || described === void 0 ? void 0 : described.executes.find((el) => el.protocol === "class" && (() => { const _io0 = input => "string" === typeof input.prefix && (Array.isArray(input.files) && input.files.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.reason && ("string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename)); return input => "object" === typeof input && null !== input && _io0(input); })()(el.value))) === null || _d === void 0 ? void 0 : _d.value;
|
|
134
116
|
const prefix = determinedOutput.prefix;
|
|
135
117
|
const describedFiles = determinedOutput.files;
|
|
@@ -160,10 +142,6 @@ const orchestrateAnalyze = (ctx) => (props) => __awaiter(void 0, void 0, void 0,
|
|
|
160
142
|
`Only write this document named '${filename}'.`,
|
|
161
143
|
"Never write other documents.",
|
|
162
144
|
"",
|
|
163
|
-
"# User Planning Requirements",
|
|
164
|
-
"```md",
|
|
165
|
-
JSON.stringify(userPlanningRequirements),
|
|
166
|
-
"```",
|
|
167
145
|
"The reason why this document needs to be written is as follows.",
|
|
168
146
|
`- reason: ${reason}`,
|
|
169
147
|
].join("\n"));
|
|
@@ -179,7 +157,7 @@ const orchestrateAnalyze = (ctx) => (props) => __awaiter(void 0, void 0, void 0,
|
|
|
179
157
|
const history = {
|
|
180
158
|
id: (0, uuid_1.v4)(),
|
|
181
159
|
type: "analyze",
|
|
182
|
-
reason:
|
|
160
|
+
reason: props.reason,
|
|
183
161
|
prefix,
|
|
184
162
|
files: files,
|
|
185
163
|
step,
|
|
@@ -269,24 +247,7 @@ const claude = {
|
|
|
269
247
|
description: "File name must be English. and it must contains the numbering and prefix.",
|
|
270
248
|
type: "array",
|
|
271
249
|
items: {
|
|
272
|
-
|
|
273
|
-
type: "object",
|
|
274
|
-
properties: {
|
|
275
|
-
reason: {
|
|
276
|
-
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
|
|
277
|
-
type: "string"
|
|
278
|
-
},
|
|
279
|
-
filename: {
|
|
280
|
-
title: "Filename to generate or overwrite",
|
|
281
|
-
description: "Filename to generate or overwrite.",
|
|
282
|
-
type: "string",
|
|
283
|
-
pattern: "((.*)\\.md)$"
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
required: [
|
|
287
|
-
"reason",
|
|
288
|
-
"filename"
|
|
289
|
-
]
|
|
250
|
+
$ref: "#/$defs/PickIFilereasonfilename"
|
|
290
251
|
}
|
|
291
252
|
}
|
|
292
253
|
},
|
|
@@ -295,47 +256,53 @@ const claude = {
|
|
|
295
256
|
"files"
|
|
296
257
|
],
|
|
297
258
|
additionalProperties: false,
|
|
298
|
-
$defs: {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
259
|
+
$defs: {
|
|
260
|
+
PickIFilereasonfilename: {
|
|
261
|
+
description: "From T, pick a set of properties whose keys are in the union K",
|
|
262
|
+
type: "object",
|
|
263
|
+
properties: {
|
|
264
|
+
reason: {
|
|
265
|
+
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
|
|
266
|
+
type: "string"
|
|
267
|
+
},
|
|
268
|
+
filename: {
|
|
269
|
+
title: "Filename to generate or overwrite",
|
|
270
|
+
description: "Filename to generate or overwrite.",
|
|
271
|
+
type: "string",
|
|
272
|
+
pattern: "((.*)\\.md)$"
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
required: [
|
|
276
|
+
"reason",
|
|
277
|
+
"filename"
|
|
278
|
+
]
|
|
308
279
|
},
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
properties: {
|
|
317
|
-
reason: {
|
|
318
|
-
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
|
|
319
|
-
type: "string"
|
|
320
|
-
},
|
|
321
|
-
filename: {
|
|
322
|
-
title: "Filename to generate or overwrite",
|
|
323
|
-
description: "Filename to generate or overwrite.",
|
|
324
|
-
type: "string",
|
|
325
|
-
pattern: "((.*)\\.md)$"
|
|
326
|
-
}
|
|
280
|
+
IDeterminingInput: {
|
|
281
|
+
type: "object",
|
|
282
|
+
properties: {
|
|
283
|
+
prefix: {
|
|
284
|
+
title: "Prefix",
|
|
285
|
+
description: "Prefix for file names and all prisma schema files, table, interface, and\nvariable names. For example, if you were to create a bulletin board\nservice, the prefix would be bbs. At this time, the name of the document\nwould be, for example, 00_bbs_table_of_contents, and bbs would have to be\nattached to the name of all documents. This value would then be passed to\nother agents as well, in the form of bbs_article, bbs_article_snapshot, and\nbbs_comments in the table name. Interfaces will likewise be used in\ninterfaces and tests because they originate from the name of prisma scheme.\nDo not use prefixes that are related to the technology stack (e.g., ts_,\napi_, react_) or unnatural prefixes that typically wouldn\u2019t appear in table\nnames or domain models (e.g., zz_, my_, dev_).",
|
|
286
|
+
type: "string"
|
|
327
287
|
},
|
|
328
|
-
|
|
329
|
-
"reason",
|
|
330
|
-
"
|
|
331
|
-
|
|
332
|
-
|
|
288
|
+
files: {
|
|
289
|
+
title: "file names and reason to create.",
|
|
290
|
+
description: "File name must be English. and it must contains the numbering and prefix.",
|
|
291
|
+
type: "array",
|
|
292
|
+
items: {
|
|
293
|
+
$ref: "#/$defs/PickIFilereasonfilename"
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
required: [
|
|
298
|
+
"prefix",
|
|
299
|
+
"files"
|
|
300
|
+
]
|
|
333
301
|
}
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
]
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
output: {
|
|
305
|
+
$ref: "#/$defs/IDeterminingInput"
|
|
339
306
|
},
|
|
340
307
|
description: "Determining the Initial File List.\n\nDesign a list of initial documents that you need to create for that\nrequirement. The list of documents is determined only by the name of the\nfile. If you determine from the conversation that the user's requirements\nhave not been fully gathered, you must stop the analysis and continue\ncollecting the remaining requirements. In this case, you do not need to\ngenerate any files. Simply pass an empty array to `input.files`, which is\nthe input value for the `determine` tool.",
|
|
341
308
|
validate: (() => { const _io0 = input => "string" === typeof input.prefix && (Array.isArray(input.files) && input.files.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.reason && ("string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename)); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.prefix || _report(_exceptionable, {
|
|
@@ -422,23 +389,7 @@ const collection = {
|
|
|
422
389
|
description: "File name must be English. and it must contains the numbering and prefix.",
|
|
423
390
|
type: "array",
|
|
424
391
|
items: {
|
|
425
|
-
|
|
426
|
-
type: "object",
|
|
427
|
-
properties: {
|
|
428
|
-
reason: {
|
|
429
|
-
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
|
|
430
|
-
type: "string"
|
|
431
|
-
},
|
|
432
|
-
filename: {
|
|
433
|
-
title: "Filename to generate or overwrite",
|
|
434
|
-
description: "Filename to generate or overwrite.\n\n\n@pattern ((.*)\\.md)$",
|
|
435
|
-
type: "string"
|
|
436
|
-
}
|
|
437
|
-
},
|
|
438
|
-
required: [
|
|
439
|
-
"reason",
|
|
440
|
-
"filename"
|
|
441
|
-
]
|
|
392
|
+
$ref: "#/$defs/PickIFilereasonfilename"
|
|
442
393
|
}
|
|
443
394
|
}
|
|
444
395
|
},
|
|
@@ -447,204 +398,52 @@ const collection = {
|
|
|
447
398
|
"files"
|
|
448
399
|
],
|
|
449
400
|
additionalProperties: false,
|
|
450
|
-
$defs: {
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
description: "Prefix for file names and all prisma schema files, table, interface, and\nvariable names. For example, if you were to create a bulletin board\nservice, the prefix would be bbs. At this time, the name of the document\nwould be, for example, 00_bbs_table_of_contents, and bbs would have to be\nattached to the name of all documents. This value would then be passed to\nother agents as well, in the form of bbs_article, bbs_article_snapshot, and\nbbs_comments in the table name. Interfaces will likewise be used in\ninterfaces and tests because they originate from the name of prisma scheme.\nDo not use prefixes that are related to the technology stack (e.g., ts_,\napi_, react_) or unnatural prefixes that typically wouldn\u2019t appear in table\nnames or domain models (e.g., zz_, my_, dev_).",
|
|
459
|
-
type: "string"
|
|
460
|
-
},
|
|
461
|
-
files: {
|
|
462
|
-
title: "file names and reason to create.",
|
|
463
|
-
description: "File name must be English. and it must contains the numbering and prefix.",
|
|
464
|
-
type: "array",
|
|
465
|
-
items: {
|
|
466
|
-
description: "Description of the current {@link PickIFilereasonfilename} type:\n\n> From T, pick a set of properties whose keys are in the union K",
|
|
467
|
-
type: "object",
|
|
468
|
-
properties: {
|
|
469
|
-
reason: {
|
|
470
|
-
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
|
|
471
|
-
type: "string"
|
|
472
|
-
},
|
|
473
|
-
filename: {
|
|
474
|
-
title: "Filename to generate or overwrite",
|
|
475
|
-
description: "Filename to generate or overwrite.\n\n\n@pattern ((.*)\\.md)$",
|
|
476
|
-
type: "string"
|
|
477
|
-
}
|
|
401
|
+
$defs: {
|
|
402
|
+
PickIFilereasonfilename: {
|
|
403
|
+
description: "From T, pick a set of properties whose keys are in the union K",
|
|
404
|
+
type: "object",
|
|
405
|
+
properties: {
|
|
406
|
+
reason: {
|
|
407
|
+
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one.",
|
|
408
|
+
type: "string"
|
|
478
409
|
},
|
|
479
|
-
|
|
480
|
-
"
|
|
481
|
-
"
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
]
|
|
490
|
-
},
|
|
491
|
-
description: "Determining the Initial File List.\n\nDesign a list of initial documents that you need to create for that\nrequirement. The list of documents is determined only by the name of the\nfile. If you determine from the conversation that the user's requirements\nhave not been fully gathered, you must stop the analysis and continue\ncollecting the remaining requirements. In this case, you do not need to\ngenerate any files. Simply pass an empty array to `input.files`, which is\nthe input value for the `determine` tool.",
|
|
492
|
-
validate: (() => { const _io0 = input => "string" === typeof input.prefix && (Array.isArray(input.files) && input.files.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.reason && ("string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename)); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.prefix || _report(_exceptionable, {
|
|
493
|
-
path: _path + ".prefix",
|
|
494
|
-
expected: "string",
|
|
495
|
-
value: input.prefix
|
|
496
|
-
}), (Array.isArray(input.files) || _report(_exceptionable, {
|
|
497
|
-
path: _path + ".files",
|
|
498
|
-
expected: "Array<Pick<IFile, \"reason\" | \"filename\">>",
|
|
499
|
-
value: input.files
|
|
500
|
-
})) && input.files.map((elem, _index2) => ("object" === typeof elem && null !== elem || _report(_exceptionable, {
|
|
501
|
-
path: _path + ".files[" + _index2 + "]",
|
|
502
|
-
expected: "Pick<IFile, \"reason\" | \"filename\">",
|
|
503
|
-
value: elem
|
|
504
|
-
})) && _vo1(elem, _path + ".files[" + _index2 + "]", true && _exceptionable) || _report(_exceptionable, {
|
|
505
|
-
path: _path + ".files[" + _index2 + "]",
|
|
506
|
-
expected: "Pick<IFile, \"reason\" | \"filename\">",
|
|
507
|
-
value: elem
|
|
508
|
-
})).every(flag => flag) || _report(_exceptionable, {
|
|
509
|
-
path: _path + ".files",
|
|
510
|
-
expected: "Array<Pick<IFile, \"reason\" | \"filename\">>",
|
|
511
|
-
value: input.files
|
|
512
|
-
})].every(flag => flag); const _vo1 = (input, _path, _exceptionable = true) => ["string" === typeof input.reason || _report(_exceptionable, {
|
|
513
|
-
path: _path + ".reason",
|
|
514
|
-
expected: "string",
|
|
515
|
-
value: input.reason
|
|
516
|
-
}), "string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename) || _report(_exceptionable, {
|
|
517
|
-
path: _path + ".filename",
|
|
518
|
-
expected: "`${string}.md`",
|
|
519
|
-
value: input.filename
|
|
520
|
-
})].every(flag => flag); const __is = input => "object" === typeof input && null !== input && _io0(input); let errors; let _report; return input => {
|
|
521
|
-
if (false === __is(input)) {
|
|
522
|
-
errors = [];
|
|
523
|
-
_report = __typia_transform__validateReport._validateReport(errors);
|
|
524
|
-
((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || _report(true, {
|
|
525
|
-
path: _path + "",
|
|
526
|
-
expected: "IDeterminingInput",
|
|
527
|
-
value: input
|
|
528
|
-
})) && _vo0(input, _path + "", true) || _report(true, {
|
|
529
|
-
path: _path + "",
|
|
530
|
-
expected: "IDeterminingInput",
|
|
531
|
-
value: input
|
|
532
|
-
}))(input, "$input", true);
|
|
533
|
-
const success = 0 === errors.length;
|
|
534
|
-
return success ? {
|
|
535
|
-
success,
|
|
536
|
-
data: input
|
|
537
|
-
} : {
|
|
538
|
-
success,
|
|
539
|
-
errors,
|
|
540
|
-
data: input
|
|
541
|
-
};
|
|
542
|
-
}
|
|
543
|
-
return {
|
|
544
|
-
success: true,
|
|
545
|
-
data: input
|
|
546
|
-
};
|
|
547
|
-
}; })()
|
|
548
|
-
}
|
|
549
|
-
]
|
|
550
|
-
},
|
|
551
|
-
claude,
|
|
552
|
-
llama: claude,
|
|
553
|
-
deepseek: claude,
|
|
554
|
-
"3.1": claude,
|
|
555
|
-
"3.0": {
|
|
556
|
-
model: "3.0",
|
|
557
|
-
options: {
|
|
558
|
-
constraint: true,
|
|
559
|
-
recursive: 3,
|
|
560
|
-
separate: null
|
|
561
|
-
},
|
|
562
|
-
functions: [
|
|
563
|
-
{
|
|
564
|
-
name: "determine",
|
|
565
|
-
parameters: {
|
|
566
|
-
type: "object",
|
|
567
|
-
properties: {
|
|
568
|
-
prefix: {
|
|
569
|
-
type: "string",
|
|
570
|
-
title: "Prefix",
|
|
571
|
-
description: "Prefix for file names and all prisma schema files, table, interface, and\nvariable names. For example, if you were to create a bulletin board\nservice, the prefix would be bbs. At this time, the name of the document\nwould be, for example, 00_bbs_table_of_contents, and bbs would have to be\nattached to the name of all documents. This value would then be passed to\nother agents as well, in the form of bbs_article, bbs_article_snapshot, and\nbbs_comments in the table name. Interfaces will likewise be used in\ninterfaces and tests because they originate from the name of prisma scheme.\nDo not use prefixes that are related to the technology stack (e.g., ts_,\napi_, react_) or unnatural prefixes that typically wouldn\u2019t appear in table\nnames or domain models (e.g., zz_, my_, dev_)."
|
|
410
|
+
filename: {
|
|
411
|
+
title: "Filename to generate or overwrite",
|
|
412
|
+
description: "Filename to generate or overwrite.\n\n\n@pattern ((.*)\\.md)$",
|
|
413
|
+
type: "string"
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
required: [
|
|
417
|
+
"reason",
|
|
418
|
+
"filename"
|
|
419
|
+
]
|
|
572
420
|
},
|
|
573
|
-
|
|
574
|
-
type: "
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one."
|
|
581
|
-
},
|
|
582
|
-
filename: {
|
|
583
|
-
type: "string",
|
|
584
|
-
pattern: "((.*)\\.md)$",
|
|
585
|
-
title: "Filename to generate or overwrite",
|
|
586
|
-
description: "Filename to generate or overwrite."
|
|
587
|
-
}
|
|
421
|
+
IDeterminingInput: {
|
|
422
|
+
type: "object",
|
|
423
|
+
properties: {
|
|
424
|
+
prefix: {
|
|
425
|
+
title: "Prefix",
|
|
426
|
+
description: "Prefix for file names and all prisma schema files, table, interface, and\nvariable names. For example, if you were to create a bulletin board\nservice, the prefix would be bbs. At this time, the name of the document\nwould be, for example, 00_bbs_table_of_contents, and bbs would have to be\nattached to the name of all documents. This value would then be passed to\nother agents as well, in the form of bbs_article, bbs_article_snapshot, and\nbbs_comments in the table name. Interfaces will likewise be used in\ninterfaces and tests because they originate from the name of prisma scheme.\nDo not use prefixes that are related to the technology stack (e.g., ts_,\napi_, react_) or unnatural prefixes that typically wouldn\u2019t appear in table\nnames or domain models (e.g., zz_, my_, dev_).",
|
|
427
|
+
type: "string"
|
|
588
428
|
},
|
|
589
|
-
|
|
590
|
-
"reason",
|
|
591
|
-
"
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
429
|
+
files: {
|
|
430
|
+
title: "file names and reason to create.",
|
|
431
|
+
description: "File name must be English. and it must contains the numbering and prefix.",
|
|
432
|
+
type: "array",
|
|
433
|
+
items: {
|
|
434
|
+
$ref: "#/$defs/PickIFilereasonfilename"
|
|
435
|
+
}
|
|
436
|
+
}
|
|
595
437
|
},
|
|
596
|
-
|
|
597
|
-
|
|
438
|
+
required: [
|
|
439
|
+
"prefix",
|
|
440
|
+
"files"
|
|
441
|
+
]
|
|
598
442
|
}
|
|
599
|
-
}
|
|
600
|
-
required: [
|
|
601
|
-
"prefix",
|
|
602
|
-
"files"
|
|
603
|
-
],
|
|
604
|
-
description: " Prefix and files\n\n------------------------------\n\nCurrent Type: {@link IDeterminingInput}",
|
|
605
|
-
additionalProperties: false
|
|
443
|
+
}
|
|
606
444
|
},
|
|
607
445
|
output: {
|
|
608
|
-
|
|
609
|
-
properties: {
|
|
610
|
-
prefix: {
|
|
611
|
-
type: "string",
|
|
612
|
-
title: "Prefix",
|
|
613
|
-
description: "Prefix for file names and all prisma schema files, table, interface, and\nvariable names. For example, if you were to create a bulletin board\nservice, the prefix would be bbs. At this time, the name of the document\nwould be, for example, 00_bbs_table_of_contents, and bbs would have to be\nattached to the name of all documents. This value would then be passed to\nother agents as well, in the form of bbs_article, bbs_article_snapshot, and\nbbs_comments in the table name. Interfaces will likewise be used in\ninterfaces and tests because they originate from the name of prisma scheme.\nDo not use prefixes that are related to the technology stack (e.g., ts_,\napi_, react_) or unnatural prefixes that typically wouldn\u2019t appear in table\nnames or domain models (e.g., zz_, my_, dev_)."
|
|
614
|
-
},
|
|
615
|
-
files: {
|
|
616
|
-
type: "array",
|
|
617
|
-
items: {
|
|
618
|
-
type: "object",
|
|
619
|
-
properties: {
|
|
620
|
-
reason: {
|
|
621
|
-
type: "string",
|
|
622
|
-
description: "Describe briefly why you made this document, and if you have any plans for\nthe next one."
|
|
623
|
-
},
|
|
624
|
-
filename: {
|
|
625
|
-
type: "string",
|
|
626
|
-
pattern: "((.*)\\.md)$",
|
|
627
|
-
title: "Filename to generate or overwrite",
|
|
628
|
-
description: "Filename to generate or overwrite."
|
|
629
|
-
}
|
|
630
|
-
},
|
|
631
|
-
required: [
|
|
632
|
-
"reason",
|
|
633
|
-
"filename"
|
|
634
|
-
],
|
|
635
|
-
description: "Description of the current {@link PickIFilereasonfilename} type:\n\n> From T, pick a set of properties whose keys are in the union K",
|
|
636
|
-
additionalProperties: false
|
|
637
|
-
},
|
|
638
|
-
title: "file names and reason to create.",
|
|
639
|
-
description: "File name must be English. and it must contains the numbering and prefix."
|
|
640
|
-
}
|
|
641
|
-
},
|
|
642
|
-
required: [
|
|
643
|
-
"prefix",
|
|
644
|
-
"files"
|
|
645
|
-
],
|
|
646
|
-
description: "Current Type: {@link IDeterminingInput}",
|
|
647
|
-
additionalProperties: false
|
|
446
|
+
$ref: "#/$defs/IDeterminingInput"
|
|
648
447
|
},
|
|
649
448
|
description: "Determining the Initial File List.\n\nDesign a list of initial documents that you need to create for that\nrequirement. The list of documents is determined only by the name of the\nfile. If you determine from the conversation that the user's requirements\nhave not been fully gathered, you must stop the analysis and continue\ncollecting the remaining requirements. In this case, you do not need to\ngenerate any files. Simply pass an empty array to `input.files`, which is\nthe input value for the `determine` tool.",
|
|
650
449
|
validate: (() => { const _io0 = input => "string" === typeof input.prefix && (Array.isArray(input.files) && input.files.every(elem => "object" === typeof elem && null !== elem && _io1(elem))); const _io1 = input => "string" === typeof input.reason && ("string" === typeof input.filename && RegExp(/(.*)\.md$/).test(input.filename)); const _vo0 = (input, _path, _exceptionable = true) => ["string" === typeof input.prefix || _report(_exceptionable, {
|
|
@@ -706,5 +505,9 @@ const collection = {
|
|
|
706
505
|
}
|
|
707
506
|
]
|
|
708
507
|
},
|
|
508
|
+
claude,
|
|
509
|
+
llama: claude,
|
|
510
|
+
deepseek: claude,
|
|
511
|
+
"3.1": claude,
|
|
709
512
|
};
|
|
710
513
|
//# sourceMappingURL=orchestrateAnalyze.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrateAnalyze.js","sourceRoot":"","sources":["../../../src/orchestrate/analyze/orchestrateAnalyze.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoE;AAMpE,kDAA0B;AAC1B,+BAA0B;AAK1B,uEAAoE;AACpE,iEAA8D;AAC9D,6DAA0D;AAG1D,mEAAgE;AAEhE,oBAAoB;AACb,MAAM,kBAAkB,GAC7B,CAAiC,GAAyB,EAAE,EAAE,CAC9D,CACE,KAA8B,EACiC,EAAE;;IACjE,MAAM,
|
|
1
|
+
{"version":3,"file":"orchestrateAnalyze.js","sourceRoot":"","sources":["../../../src/orchestrate/analyze/orchestrateAnalyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transformFacadeStateMessage = transformFacadeStateMessage;
|
|
4
|
-
const
|
|
4
|
+
const utils_1 = require("@autobe/utils");
|
|
5
5
|
function transformFacadeStateMessage(state) {
|
|
6
6
|
const currentState = getCurrentState(state);
|
|
7
|
-
return "# AutoBE Main Agent System Prompt\n\nYou are the AutoBE Main Agent, an orchestrator for backend server development automation. Your role is to manage the conversation with users about their backend requirements and coordinate the execution of five specialized functional agents through function calling.\n\n## Core Responsibilities\n\n1. **Requirements Gathering**: Engage in detailed conversations with users to understand their backend server needs, asking clarifying questions about business logic, data models, API endpoints, and technical requirements.\n\n2. **Agent Orchestration**: Execute the appropriate functional agents in the correct sequence based on the development stage and user needs.\n\n3. **Progress Communication**: Keep users informed about the current development stage, what has been completed, and what steps remain.\n\n## Functional Agents Overview\n\nYou have access to five functional agents that must be executed in a specific order:\n\n1. **Analyze Agent** - Converts conversations into structured requirements specifications\n2. **Prisma Agent** - Generates database schemas and ERD documentation\n3. **Interface Agent** - Creates API interfaces with OpenAPI schemas and TypeScript code\n4. **Test Agent** - Generates comprehensive E2E test suites\n5. **Realize Agent** - Implements actual business logic for service providers\n\n## Execution Rules\n\n### 1. Sequential Dependencies\n\n- **analyze()**: Can only be called when sufficient requirements have been gathered.\n- **prisma()**: Requires successful completion of analyze()\n- **interface()**: Requires successful completion of prisma()\n- **test()**: Requires successful completion of interface()\n- **realize()**: Requires successful completion of interface()\n\n### 2. Requirements Gathering and analyze() Calling Criteria\n\n- Since users are not developers, it is okay if they do not understand technical terms like \u201Cendpoints\u201D or \u201Cdata models.\u201D \n\n- Your job is to help users clearly express their intended **features** by asking many questions. \n\n- Use examples and simple questions to guide them if they have trouble explaining. \n\n- Break down features into smaller steps if needed to complete the planning gradually. \n\n- For instance, ask questions like \u201CWhat tasks do you want to automate?\u201D, \u201CWhat roles do users have?\u201D, \u201CWhat screens or actions are involved?\u201D \n\n- Even if the system requires many or complex APIs, it is not necessary to know all of them upfront. Focus on gathering core requirements step by step. \n\n#### Conditions for Calling analyze() \n- Call analyze() only when the user has clearly stated sufficient **features** and **requirements**, or \n- The user explicitly delegates the planning to you by saying things like \u201CI\u2019ll leave the planning to you\u201D or \u201CPlease proceed as you see fit.\u201D \n\n#### Pre-call Checks \n- If requirements are insufficient for some features, do **not** call analyze() and keep asking questions until the specifications are complete. \n- Continue asking actively and explain any technical terms in an easy-to-understand way.\n\n### 3. Requirements Gathering Phase\n\nBefore calling analyze(), ensure you have discussed:\n\n- System purpose and overall goals\n- Core features and functionalities\n- User roles and permissions\n- Main data entities and their relationships\n- Key business rules and constraints\n- API endpoints needed\n- Any specific technical requirements\n\nIf these aspects are unclear, continue the conversation to gather more details.\n\n### 4. Development Workflow\n\n1. Start by understanding the user's needs through conversation\n2. When requirements are sufficiently detailed, execute analyze()\n3. Review the analysis results with the user\n4. If approved, proceed with prisma() \u2192 interface() \u2192 test() \u2192 realize()\n5. At each stage, present results and get user confirmation before proceeding\n\n### 5. Handling Changes\n\n- If users request changes after agents have been executed, first understand the scope\n- For minor adjustments, you may re-run specific agents\n- For major changes, consider re-running analyze() to update the specification\n- Always explain the impact of changes on already generated code\n\n## Communication Guidelines\n\n1. **Be Transparent**: Clearly explain which agent is being executed and why\n2. **Show Progress**: Indicate completed steps and remaining work\n3. **Confirm Understanding**: Summarize requirements before executing agents\n4. **Request Approval**: Get user confirmation before moving to the next stage\n5. **Explain Results**: Briefly describe what each agent has generated\n\n## Current State\n\n{% STATE %}" /* AutoBeSystemPromptConstant.FACADE */.replace("{% STATE %}",
|
|
7
|
+
return "# AutoBE Main Agent System Prompt\n\nYou are the AutoBE Main Agent, an orchestrator for backend server development automation. Your role is to manage the conversation with users about their backend requirements and coordinate the execution of five specialized functional agents through function calling.\n\n## Core Responsibilities\n\n1. **Requirements Gathering**: Engage in detailed conversations with users to understand their backend server needs, asking clarifying questions about business logic, data models, API endpoints, and technical requirements.\n\n2. **Agent Orchestration**: Execute the appropriate functional agents in the correct sequence based on the development stage and user needs.\n\n3. **Progress Communication**: Keep users informed about the current development stage, what has been completed, and what steps remain.\n\n## Functional Agents Overview\n\nYou have access to five functional agents that must be executed in a specific order:\n\n1. **Analyze Agent** - Converts conversations into structured requirements specifications\n2. **Prisma Agent** - Generates database schemas and ERD documentation\n3. **Interface Agent** - Creates API interfaces with OpenAPI schemas and TypeScript code\n4. **Test Agent** - Generates comprehensive E2E test suites\n5. **Realize Agent** - Implements actual business logic for service providers\n\n## Execution Rules\n\n### 1. Sequential Dependencies\n\n- **analyze()**: Can only be called when sufficient requirements have been gathered.\n- **prisma()**: Requires successful completion of analyze()\n- **interface()**: Requires successful completion of prisma()\n- **test()**: Requires successful completion of interface()\n- **realize()**: Requires successful completion of interface()\n\n### 2. Requirements Gathering and analyze() Calling Criteria\n\n- Since users are not developers, it is okay if they do not understand technical terms like \u201Cendpoints\u201D or \u201Cdata models.\u201D \n\n- Your job is to help users clearly express their intended **features** by asking many questions. \n\n- Use examples and simple questions to guide them if they have trouble explaining. \n\n- Break down features into smaller steps if needed to complete the planning gradually. \n\n- For instance, ask questions like \u201CWhat tasks do you want to automate?\u201D, \u201CWhat roles do users have?\u201D, \u201CWhat screens or actions are involved?\u201D \n\n- Even if the system requires many or complex APIs, it is not necessary to know all of them upfront. Focus on gathering core requirements step by step. \n\n#### Conditions for Calling analyze() \n- Call analyze() only when the user has clearly stated sufficient **features** and **requirements**, or \n- The user explicitly delegates the planning to you by saying things like \u201CI\u2019ll leave the planning to you\u201D or \u201CPlease proceed as you see fit.\u201D \n\n#### Pre-call Checks \n- If requirements are insufficient for some features, do **not** call analyze() and keep asking questions until the specifications are complete. \n- Continue asking actively and explain any technical terms in an easy-to-understand way.\n\n### 3. Requirements Gathering Phase\n\nBefore calling analyze(), ensure you have discussed:\n\n- System purpose and overall goals\n- Core features and functionalities\n- User roles and permissions\n- Main data entities and their relationships\n- Key business rules and constraints\n- API endpoints needed\n- Any specific technical requirements\n\nIf these aspects are unclear, continue the conversation to gather more details.\n\n### 4. Development Workflow\n\n1. Start by understanding the user's needs through conversation\n2. When requirements are sufficiently detailed, execute analyze()\n3. Review the analysis results with the user\n4. If approved, proceed with prisma() \u2192 interface() \u2192 test() \u2192 realize()\n5. At each stage, present results and get user confirmation before proceeding\n\n### 5. Handling Changes\n\n- If users request changes after agents have been executed, first understand the scope\n- For minor adjustments, you may re-run specific agents\n- For major changes, consider re-running analyze() to update the specification\n- Always explain the impact of changes on already generated code\n\n## Communication Guidelines\n\n1. **Be Transparent**: Clearly explain which agent is being executed and why\n2. **Show Progress**: Indicate completed steps and remaining work\n3. **Confirm Understanding**: Summarize requirements before executing agents\n4. **Request Approval**: Get user confirmation before moving to the next stage\n5. **Explain Results**: Briefly describe what each agent has generated\n\n## Current State\n\n{% STATE %}" /* AutoBeSystemPromptConstant.FACADE */.replace("{% STATE %}", utils_1.StringUtil.trim `
|
|
8
8
|
## Current State
|
|
9
9
|
|
|
10
10
|
The current execution status of each functional agent is shown below.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformFacadeStateMessage.js","sourceRoot":"","sources":["../../../src/orchestrate/facade/transformFacadeStateMessage.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transformFacadeStateMessage.js","sourceRoot":"","sources":["../../../src/orchestrate/facade/transformFacadeStateMessage.ts"],"names":[],"mappings":";;AAKA,kEA0BC;AA/BD,yCAA2C;AAK3C,SAAgB,2BAA2B,CAAC,KAAkB;IAC5D,MAAM,YAAY,GAAkB,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,0qJAAkC,OAAO,CAC9C,aAAa,EACb,kBAAU,CAAC,IAAI,CAAA;;;;;;;;;;;;;;;mBAeA,YAAY,CAAC,OAAO;kBACrB,YAAY,CAAC,MAAM;qBAChB,YAAY,CAAC,SAAS;gBAC3B,YAAY,CAAC,IAAI;mBACd,YAAY,CAAC,OAAO;KAClC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAkB;IACzC,MAAM,KAAK,GAAG,CACZ,GAEQ,EACR,EAAE;QACF,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,MAAM,CAAC;aACrD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;YAAE,OAAO,YAAY,CAAC;;YACzD,OAAO,aAAa,CAAC;IAC5B,CAAC,CAAC;IACF,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY;QACvD,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { orchestrateAnalyze as analyze } from "./analyze/orchestrateAnalyze";
|
|
2
2
|
export { orchestrateInterface as interface } from "./interface/orchestrateInterface";
|
|
3
|
-
export { orchestrateRealize as realize } from "./orchestrateRealize";
|
|
4
|
-
export { orchestrateTest as test } from "./test/orchestrateTest";
|
|
5
3
|
export { orchestratePrisma as prisma } from "./prisma/orchestratePrisma";
|
|
4
|
+
export { orchestrateRealize as realize } from "./realize/orchestrateRealize";
|
|
5
|
+
export { orchestrateTest as test } from "./test/orchestrateTest";
|
package/lib/orchestrate/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.test = exports.realize = exports.prisma = exports.interface = exports.analyze = void 0;
|
|
4
4
|
var orchestrateAnalyze_1 = require("./analyze/orchestrateAnalyze");
|
|
5
5
|
Object.defineProperty(exports, "analyze", { enumerable: true, get: function () { return orchestrateAnalyze_1.orchestrateAnalyze; } });
|
|
6
6
|
var orchestrateInterface_1 = require("./interface/orchestrateInterface");
|
|
7
7
|
Object.defineProperty(exports, "interface", { enumerable: true, get: function () { return orchestrateInterface_1.orchestrateInterface; } });
|
|
8
|
-
var
|
|
8
|
+
var orchestratePrisma_1 = require("./prisma/orchestratePrisma");
|
|
9
|
+
Object.defineProperty(exports, "prisma", { enumerable: true, get: function () { return orchestratePrisma_1.orchestratePrisma; } });
|
|
10
|
+
var orchestrateRealize_1 = require("./realize/orchestrateRealize");
|
|
9
11
|
Object.defineProperty(exports, "realize", { enumerable: true, get: function () { return orchestrateRealize_1.orchestrateRealize; } });
|
|
10
12
|
var orchestrateTest_1 = require("./test/orchestrateTest");
|
|
11
13
|
Object.defineProperty(exports, "test", { enumerable: true, get: function () { return orchestrateTest_1.orchestrateTest; } });
|
|
12
|
-
var orchestratePrisma_1 = require("./prisma/orchestratePrisma");
|
|
13
|
-
Object.defineProperty(exports, "prisma", { enumerable: true, get: function () { return orchestratePrisma_1.orchestratePrisma; } });
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrate/index.ts"],"names":[],"mappings":";;;AAAA,mEAA6E;AAApE,6GAAA,kBAAkB,OAAW;AACtC,yEAAqF;AAA5E,iHAAA,oBAAoB,OAAa;AAC1C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestrate/index.ts"],"names":[],"mappings":";;;AAAA,mEAA6E;AAApE,6GAAA,kBAAkB,OAAW;AACtC,yEAAqF;AAA5E,iHAAA,oBAAoB,OAAa;AAC1C,gEAAyE;AAAhE,2GAAA,iBAAiB,OAAU;AACpC,mEAA6E;AAApE,6GAAA,kBAAkB,OAAW;AACtC,0DAAiE;AAAxD,uGAAA,eAAe,OAAQ"}
|
|
@@ -16,9 +16,15 @@ const orchestrateInterfaceComponents_1 = require("./orchestrateInterfaceComponen
|
|
|
16
16
|
const orchestrateInterfaceEndpoints_1 = require("./orchestrateInterfaceEndpoints");
|
|
17
17
|
const orchestrateInterfaceOperations_1 = require("./orchestrateInterfaceOperations");
|
|
18
18
|
const orchestrateInterface = (ctx) => (props) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
-
var _a, _b, _c, _d;
|
|
19
|
+
var _a, _b, _c, _d, _e, _f;
|
|
20
20
|
// ENDPOINTS
|
|
21
21
|
const start = new Date();
|
|
22
|
+
ctx.dispatch({
|
|
23
|
+
type: "interfaceStart",
|
|
24
|
+
created_at: start.toISOString(),
|
|
25
|
+
reason: props.reason,
|
|
26
|
+
step: (_b = (_a = ctx.state().analyze) === null || _a === void 0 ? void 0 : _a.step) !== null && _b !== void 0 ? _b : 0,
|
|
27
|
+
});
|
|
22
28
|
const init = yield (0, orchestrateInterfaceEndpoints_1.orchestrateInterfaceEndpoints)(ctx);
|
|
23
29
|
if (init.type === "assistantMessage") {
|
|
24
30
|
ctx.dispatch(init);
|
|
@@ -42,7 +48,7 @@ const orchestrateInterface = (ctx) => (props) => __awaiter(void 0, void 0, void
|
|
|
42
48
|
document,
|
|
43
49
|
files: yield ctx.compiler.interface.compile(document),
|
|
44
50
|
reason: props.reason,
|
|
45
|
-
step: (
|
|
51
|
+
step: (_d = (_c = ctx.state().analyze) === null || _c === void 0 ? void 0 : _c.step) !== null && _d !== void 0 ? _d : 0,
|
|
46
52
|
created_at: start.toISOString(),
|
|
47
53
|
completed_at: new Date().toISOString(),
|
|
48
54
|
};
|
|
@@ -54,7 +60,7 @@ const orchestrateInterface = (ctx) => (props) => __awaiter(void 0, void 0, void
|
|
|
54
60
|
document: result.document,
|
|
55
61
|
created_at: start.toISOString(),
|
|
56
62
|
reason: props.reason,
|
|
57
|
-
step: (
|
|
63
|
+
step: (_f = (_e = ctx.state().analyze) === null || _e === void 0 ? void 0 : _e.step) !== null && _f !== void 0 ? _f : 0,
|
|
58
64
|
});
|
|
59
65
|
return result;
|
|
60
66
|
});
|