an3dree commited on
Commit
990a940
·
1 Parent(s): 5c24370

read input file

Browse files
Files changed (1) hide show
  1. src/index.ts +21 -2
src/index.ts CHANGED
@@ -1,15 +1,34 @@
1
  import "dotenv/config";
 
 
 
2
 
3
  import { auditorAgent } from "./agents/auditor/agent.ts";
4
  import { coderAgent } from "./agents/coder/agent.ts";
5
  import { testerAgent } from "./agents/tester/agent.ts";
6
 
7
- const requirements = ["ERC20 token", "pausable", "ownable"];
8
 
9
- const coderResult = await coderAgent.invoke({ requirements });
 
 
 
 
 
 
 
 
 
10
  console.log("======= Coder =======");
11
  console.log(coderResult.contract);
12
 
 
 
 
 
 
 
 
13
  const auditorResult = await auditorAgent.invoke({ solidityFile: coderResult.contract });
14
  console.log("\n======= Auditor =======");
15
  console.log(auditorResult.vulnerabilities);
 
1
  import "dotenv/config";
2
+ import { readFileSync, mkdirSync, writeFileSync } from "node:fs";
3
+ import { resolve, dirname } from "node:path";
4
+ import { fileURLToPath } from "node:url";
5
 
6
  import { auditorAgent } from "./agents/auditor/agent.ts";
7
  import { coderAgent } from "./agents/coder/agent.ts";
8
  import { testerAgent } from "./agents/tester/agent.ts";
9
 
10
+ const inputPath = process.argv[2];
11
 
12
+ if (!inputPath) {
13
+ console.log("Uso: npm start -- <caminho-do-arquivo-de-requisitos>");
14
+ console.log("Exemplo: npm start -- input/requirements.md");
15
+ process.exit(1);
16
+ }
17
+
18
+ const requirementsText = readFileSync(resolve(inputPath), "utf-8");
19
+ console.log("Requisitos carregados de:", inputPath);
20
+
21
+ const coderResult = await coderAgent.invoke({ requirements: [requirementsText] });
22
  console.log("======= Coder =======");
23
  console.log(coderResult.contract);
24
 
25
+ const __dirname = dirname(fileURLToPath(import.meta.url));
26
+ const outputDir = resolve(__dirname, "agents/coder/outputs");
27
+ mkdirSync(outputDir, { recursive: true });
28
+ const outputPath = resolve(outputDir, "Contract.sol");
29
+ writeFileSync(outputPath, coderResult.contract, "utf-8");
30
+ console.log("\nContrato salvo em:", outputPath);
31
+
32
  const auditorResult = await auditorAgent.invoke({ solidityFile: coderResult.contract });
33
  console.log("\n======= Auditor =======");
34
  console.log(auditorResult.vulnerabilities);