@autobe/agent 0.12.0 → 0.14.2
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/AutoBeMockAgent.js +14 -12
- package/lib/AutoBeMockAgent.js.map +1 -1
- package/lib/constants/AutoBeSystemPromptConstant.d.ts +7 -9
- package/lib/constants/AutoBeSystemPromptConstant.js.map +1 -1
- package/lib/factory/getAutoBeGenerated.js +11 -1
- package/lib/factory/getAutoBeGenerated.js.map +1 -1
- package/lib/index.mjs +409 -248
- package/lib/index.mjs.map +1 -1
- package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.js +2 -1
- package/lib/orchestrate/analyze/writeDocumentUntilReviewPassed.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceComponents.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceComponents.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceEndpoints.js.map +1 -1
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js +107 -110
- package/lib/orchestrate/interface/orchestrateInterfaceOperations.js.map +1 -1
- package/lib/orchestrate/interface/transformInterfaceHistories.js +10 -0
- package/lib/orchestrate/interface/transformInterfaceHistories.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealize.js +30 -8
- package/lib/orchestrate/realize/orchestrateRealize.js.map +1 -1
- package/lib/orchestrate/realize/{orchestrateRealizeDecorator.d.ts → orchestrateRealizeAuthorization.d.ts} +2 -2
- package/lib/orchestrate/realize/{orchestrateRealizeDecorator.js → orchestrateRealizeAuthorization.js} +104 -67
- package/lib/orchestrate/realize/orchestrateRealizeAuthorization.js.map +1 -0
- package/lib/orchestrate/realize/orchestrateRealizeCoder.js +51 -40
- package/lib/orchestrate/realize/orchestrateRealizeCoder.js.map +1 -1
- package/lib/orchestrate/realize/orchestrateRealizePlanner.d.ts +11 -2
- package/lib/orchestrate/realize/orchestrateRealizePlanner.js +2 -1
- package/lib/orchestrate/realize/orchestrateRealizePlanner.js.map +1 -1
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.d.ts +148 -17
- package/lib/orchestrate/realize/structures/IAutoBeRealizeCompile.d.ts +10 -2
- package/lib/orchestrate/realize/structures/IAutoBeRealizeDecoratorApplication.d.ts +4 -4
- package/lib/orchestrate/realize/transformRealizeCoderHistories.js +58 -11
- package/lib/orchestrate/realize/transformRealizeCoderHistories.js.map +1 -1
- package/lib/orchestrate/realize/transformRealizeDecoratorCorrectHistories.d.ts +2 -3
- package/lib/orchestrate/realize/transformRealizeDecoratorCorrectHistories.js +15 -2
- package/lib/orchestrate/realize/transformRealizeDecoratorCorrectHistories.js.map +1 -1
- package/lib/orchestrate/realize/utils/AuthorizationFileSystem.d.ts +5 -0
- package/lib/orchestrate/realize/utils/AuthorizationFileSystem.js +10 -0
- package/lib/orchestrate/realize/utils/AuthorizationFileSystem.js.map +1 -0
- package/lib/orchestrate/realize/utils/replaceImportStatements.d.ts +3 -0
- package/lib/orchestrate/realize/utils/replaceImportStatements.js +65 -0
- package/lib/orchestrate/realize/utils/replaceImportStatements.js.map +1 -0
- package/lib/orchestrate/realize/writeCodeUntilCompilePassed.d.ts +2 -3
- package/lib/orchestrate/realize/writeCodeUntilCompilePassed.js +45 -24
- package/lib/orchestrate/realize/writeCodeUntilCompilePassed.js.map +1 -1
- package/package.json +5 -5
- package/src/AutoBeMockAgent.ts +15 -13
- package/src/constants/AutoBeSystemPromptConstant.ts +7 -9
- package/src/factory/getAutoBeGenerated.ts +20 -5
- package/src/orchestrate/analyze/writeDocumentUntilReviewPassed.ts +6 -1
- package/src/orchestrate/interface/orchestrateInterfaceOperations.ts +26 -18
- package/src/orchestrate/interface/transformInterfaceHistories.ts +10 -0
- package/src/orchestrate/realize/orchestrateRealize.ts +32 -7
- package/src/orchestrate/realize/{orchestrateRealizeDecorator.ts → orchestrateRealizeAuthorization.ts} +90 -80
- package/src/orchestrate/realize/orchestrateRealizeCoder.ts +9 -30
- package/src/orchestrate/realize/orchestrateRealizePlanner.ts +13 -1
- package/src/orchestrate/realize/structures/IAutoBeRealizeCoderApplication.ts +150 -17
- package/src/orchestrate/realize/structures/IAutoBeRealizeCompile.ts +13 -2
- package/src/orchestrate/realize/structures/IAutoBeRealizeDecoratorApplication.ts +4 -4
- package/src/orchestrate/realize/transformRealizeCoderHistories.ts +55 -8
- package/src/orchestrate/realize/transformRealizeDecoratorCorrectHistories.ts +23 -3
- package/src/orchestrate/realize/utils/AuthorizationFileSystem.ts +10 -0
- package/src/orchestrate/realize/utils/replaceImportStatements.ts +85 -0
- package/src/orchestrate/realize/writeCodeUntilCompilePassed.ts +58 -33
- package/lib/orchestrate/realize/orchestrateRealizeDecorator.js.map +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AutoBeOpenApi,
|
|
3
|
+
AutoBeRealizeAuthorization,
|
|
4
|
+
AutoBeRealizeFunction,
|
|
3
5
|
IAutoBeTypeScriptCompileResult,
|
|
4
6
|
} from "@autobe/interface";
|
|
5
7
|
import { ILlmSchema } from "@samchon/openapi";
|
|
@@ -10,7 +12,6 @@ import { AutoBeContext } from "../../context/AutoBeContext";
|
|
|
10
12
|
import { pipe } from "./RealizePipe";
|
|
11
13
|
import { orchestrateRealizeCoder } from "./orchestrateRealizeCoder";
|
|
12
14
|
import { orchestrateRealizePlanner } from "./orchestrateRealizePlanner";
|
|
13
|
-
import { IAutoBeRealizeCoderApplication } from "./structures/IAutoBeRealizeCoderApplication";
|
|
14
15
|
import { IAutoBeRealizeCompile } from "./structures/IAutoBeRealizeCompile";
|
|
15
16
|
import { FAILED } from "./structures/IAutoBeRealizeFailedSymbol";
|
|
16
17
|
|
|
@@ -19,13 +20,17 @@ export async function writeCodeUntilCompilePassed<
|
|
|
19
20
|
>(
|
|
20
21
|
ctx: AutoBeContext<Model>,
|
|
21
22
|
ops: AutoBeOpenApi.IOperation[],
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
authorizations: AutoBeRealizeAuthorization[],
|
|
24
|
+
retry: number,
|
|
25
|
+
): Promise<AutoBeRealizeFunction[]> {
|
|
26
|
+
const payloads = authorizations
|
|
27
|
+
.map((el) => {
|
|
28
|
+
return {
|
|
29
|
+
[el.payload.location]: el.payload.content,
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
.reduce<Record<string, string>>((acc, cur) => Object.assign(acc, cur), {});
|
|
33
|
+
|
|
29
34
|
const files = Object.entries(await ctx.files({ dbms: "postgres" }))
|
|
30
35
|
.filter(([key]) => {
|
|
31
36
|
return key.startsWith("src");
|
|
@@ -35,7 +40,7 @@ export async function writeCodeUntilCompilePassed<
|
|
|
35
40
|
{},
|
|
36
41
|
);
|
|
37
42
|
|
|
38
|
-
const templateFiles = ["src/
|
|
43
|
+
const templateFiles = ["src/MyGlobal.ts", "src/util/toISOStringSafe.ts"];
|
|
39
44
|
const entireCodes: IAutoBeRealizeCompile.FileContentMap = {
|
|
40
45
|
...(await loadTemplateFiles(templateFiles)),
|
|
41
46
|
};
|
|
@@ -45,7 +50,6 @@ export async function writeCodeUntilCompilePassed<
|
|
|
45
50
|
total: [],
|
|
46
51
|
};
|
|
47
52
|
|
|
48
|
-
ops = ops.filter((_el, i) => i < 10);
|
|
49
53
|
for (let i = 0; i < retry; i++) {
|
|
50
54
|
const targets = ops.filter((op) =>
|
|
51
55
|
shouldProcessOperation(op, diagnostics.current),
|
|
@@ -57,7 +61,10 @@ export async function writeCodeUntilCompilePassed<
|
|
|
57
61
|
| IAutoBeRealizeCompile.Fail
|
|
58
62
|
)[] = await Promise.all(
|
|
59
63
|
targets.map((op) => {
|
|
60
|
-
|
|
64
|
+
const role = op.authorizationRole;
|
|
65
|
+
const decorator = authorizations.find((el) => el.role === role);
|
|
66
|
+
|
|
67
|
+
return process(ctx, metadata, op, diagnostics, entireCodes, decorator);
|
|
61
68
|
}),
|
|
62
69
|
);
|
|
63
70
|
|
|
@@ -66,6 +73,12 @@ export async function writeCodeUntilCompilePassed<
|
|
|
66
73
|
entireCodes[c.result.filename] = {
|
|
67
74
|
content: c.result.implementationCode,
|
|
68
75
|
result: "success",
|
|
76
|
+
endpoint: {
|
|
77
|
+
method: c.op.method,
|
|
78
|
+
path: c.op.path,
|
|
79
|
+
},
|
|
80
|
+
location: c.result.filename,
|
|
81
|
+
name: c.result.name,
|
|
69
82
|
};
|
|
70
83
|
}
|
|
71
84
|
}
|
|
@@ -75,6 +88,7 @@ export async function writeCodeUntilCompilePassed<
|
|
|
75
88
|
const compiler = await ctx.compiler();
|
|
76
89
|
const compiled = await compiler.typescript.compile({
|
|
77
90
|
files: {
|
|
91
|
+
...payloads,
|
|
78
92
|
...files,
|
|
79
93
|
...nodeModules,
|
|
80
94
|
...Object.entries(entireCodes)
|
|
@@ -102,28 +116,34 @@ export async function writeCodeUntilCompilePassed<
|
|
|
102
116
|
console.log(
|
|
103
117
|
JSON.stringify(diagnostics.current, null, 2),
|
|
104
118
|
`현재 에러의 수: ${diagnostics.current.length}\n`,
|
|
105
|
-
`현재 시도 수: ${i}`,
|
|
119
|
+
`현재 시도 수: ${i + 1}`,
|
|
106
120
|
);
|
|
107
121
|
}
|
|
108
122
|
}
|
|
109
123
|
|
|
110
|
-
return Object.entries(entireCodes)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
124
|
+
return Object.entries(entireCodes)
|
|
125
|
+
.filter(([filename]) => filename.startsWith("src/providers")) // filter only provider files
|
|
126
|
+
.map(([filename, value]) => {
|
|
127
|
+
return {
|
|
128
|
+
filename,
|
|
129
|
+
content: value.content,
|
|
130
|
+
endpoint: value.endpoint!,
|
|
131
|
+
location: value.location!,
|
|
132
|
+
name: value.name!,
|
|
133
|
+
role: value.role!,
|
|
134
|
+
};
|
|
135
|
+
});
|
|
116
136
|
}
|
|
117
137
|
|
|
118
138
|
async function loadTemplateFiles(
|
|
119
139
|
templateFiles: string[],
|
|
120
|
-
): Promise<
|
|
140
|
+
): Promise<IAutoBeRealizeCompile.FileContentMap> {
|
|
121
141
|
const templateBasePath = path.join(
|
|
122
142
|
__dirname,
|
|
123
143
|
"../../../../../internals/template/realize",
|
|
124
144
|
);
|
|
125
145
|
|
|
126
|
-
const result:
|
|
146
|
+
const result: IAutoBeRealizeCompile.FileContentMap = {};
|
|
127
147
|
|
|
128
148
|
for (const filePath of templateFiles) {
|
|
129
149
|
result[filePath] = {
|
|
@@ -131,6 +151,8 @@ async function loadTemplateFiles(
|
|
|
131
151
|
encoding: "utf-8",
|
|
132
152
|
}),
|
|
133
153
|
result: "success",
|
|
154
|
+
location: filePath,
|
|
155
|
+
role: null,
|
|
134
156
|
};
|
|
135
157
|
}
|
|
136
158
|
|
|
@@ -143,10 +165,11 @@ async function process<Model extends ILlmSchema.Model>(
|
|
|
143
165
|
op: AutoBeOpenApi.IOperation,
|
|
144
166
|
diagnostics: IAutoBeRealizeCompile.CompileDiagnostics,
|
|
145
167
|
entireCodes: IAutoBeRealizeCompile.FileContentMap,
|
|
168
|
+
decorator?: AutoBeRealizeAuthorization,
|
|
146
169
|
) {
|
|
147
170
|
const result = await pipe(
|
|
148
171
|
op,
|
|
149
|
-
(op) => orchestrateRealizePlanner(ctx, op),
|
|
172
|
+
(op) => orchestrateRealizePlanner(ctx, op, decorator),
|
|
150
173
|
async (p) => {
|
|
151
174
|
const filename = `src/providers/${p.functionName}.ts` as const;
|
|
152
175
|
const t = diagnostics.total.filter((el) => el.file === filename);
|
|
@@ -155,19 +178,21 @@ async function process<Model extends ILlmSchema.Model>(
|
|
|
155
178
|
const c = entireCodes[filename]?.content ?? null;
|
|
156
179
|
|
|
157
180
|
return orchestrateRealizeCoder(ctx, op, p, c, t, d).then((res) => {
|
|
181
|
+
ctx.dispatch({
|
|
182
|
+
type: "realizeProgress",
|
|
183
|
+
filename: filename,
|
|
184
|
+
content: res === FAILED ? "FAILED" : res.implementationCode,
|
|
185
|
+
completed: ++metadata.count,
|
|
186
|
+
created_at: new Date().toISOString(),
|
|
187
|
+
step: ctx.state().analyze?.step ?? 0,
|
|
188
|
+
total: metadata.total,
|
|
189
|
+
});
|
|
190
|
+
|
|
158
191
|
if (res === FAILED) {
|
|
159
|
-
|
|
160
|
-
ctx.dispatch({
|
|
161
|
-
type: "realizeProgress",
|
|
162
|
-
filename: res.filename,
|
|
163
|
-
content: res.implementationCode,
|
|
164
|
-
completed: ++metadata.count,
|
|
165
|
-
created_at: new Date().toISOString(),
|
|
166
|
-
step: ctx.state().analyze?.step ?? 0,
|
|
167
|
-
total: metadata.total,
|
|
168
|
-
});
|
|
192
|
+
return res;
|
|
169
193
|
}
|
|
170
|
-
|
|
194
|
+
|
|
195
|
+
return { ...res, name: p.functionName };
|
|
171
196
|
});
|
|
172
197
|
},
|
|
173
198
|
);
|
|
@@ -176,7 +201,7 @@ async function process<Model extends ILlmSchema.Model>(
|
|
|
176
201
|
return { type: "failed", op: op, result } as const;
|
|
177
202
|
}
|
|
178
203
|
|
|
179
|
-
return { type: "success", op: op, result
|
|
204
|
+
return { type: "success", op: op, result } as const;
|
|
180
205
|
}
|
|
181
206
|
|
|
182
207
|
function shouldProcessOperation(
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrateRealizeDecorator.js","sourceRoot":"","sources":["../../../src/orchestrate/realize/orchestrateRealizeDecorator.ts"],"names":[],"mappings":"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"}
|