agentica 0.1.0 → 0.12.4

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 (53) hide show
  1. package/README.md +67 -67
  2. package/bin/bases/Connector.d.ts +9 -0
  3. package/bin/bases/Connector.js +67 -0
  4. package/bin/bases/Connector.js.map +1 -0
  5. package/bin/bases/Package.d.ts +11 -0
  6. package/bin/bases/Package.js +74 -0
  7. package/bin/bases/Package.js.map +1 -0
  8. package/bin/bases/Tsconfig.d.ts +5 -0
  9. package/bin/bases/Tsconfig.js +135 -0
  10. package/bin/bases/Tsconfig.js.map +1 -0
  11. package/bin/executable/AgenticaStart.d.ts +7 -0
  12. package/bin/executable/AgenticaStart.js +324 -0
  13. package/bin/executable/AgenticaStart.js.map +1 -0
  14. package/bin/index.js +24 -43
  15. package/bin/index.js.map +1 -1
  16. package/bin/structures/IAgenticaStart.d.ts +31 -0
  17. package/bin/structures/IAgenticaStart.js +3 -0
  18. package/bin/structures/IAgenticaStart.js.map +1 -0
  19. package/bin/structures/IAgenticaStartOption.d.ts +13 -0
  20. package/bin/structures/IAgenticaStartOption.js +3 -0
  21. package/bin/structures/IAgenticaStartOption.js.map +1 -0
  22. package/bin/utils/capitalize.d.ts +1 -0
  23. package/bin/utils/capitalize.js +12 -0
  24. package/bin/utils/capitalize.js.map +1 -0
  25. package/bin/utils/createProjectDirectory.d.ts +3 -0
  26. package/bin/utils/createProjectDirectory.js +16 -0
  27. package/bin/utils/createProjectDirectory.js.map +1 -0
  28. package/bin/utils/getNpmPackages.d.ts +14 -0
  29. package/bin/utils/getNpmPackages.js +147 -0
  30. package/bin/utils/getNpmPackages.js.map +1 -0
  31. package/bin/utils/getQuestions.d.ts +8 -0
  32. package/bin/utils/getQuestions.js +45 -0
  33. package/bin/utils/getQuestions.js.map +1 -0
  34. package/bin/utils/types/PackageManager.d.ts +1 -0
  35. package/bin/utils/types/PackageManager.js +3 -0
  36. package/bin/utils/types/PackageManager.js.map +1 -0
  37. package/bin/utils/types/ProjectOption.d.ts +4 -0
  38. package/bin/utils/types/ProjectOption.js +3 -0
  39. package/bin/utils/types/ProjectOption.js.map +1 -0
  40. package/package.json +11 -3
  41. package/src/bases/Connector.ts +80 -0
  42. package/src/bases/Package.ts +75 -0
  43. package/src/bases/Tsconfig.ts +122 -0
  44. package/src/executable/AgenticaStart.ts +301 -0
  45. package/src/index.ts +39 -60
  46. package/src/structures/IAgenticaStart.ts +35 -0
  47. package/src/structures/IAgenticaStartOption.ts +13 -0
  48. package/src/utils/capitalize.ts +7 -0
  49. package/src/utils/createProjectDirectory.ts +14 -0
  50. package/src/utils/getNpmPackages.ts +45 -0
  51. package/src/utils/getQuestions.ts +48 -0
  52. package/src/utils/types/PackageManager.ts +1 -0
  53. package/src/utils/types/ProjectOption.ts +4 -0
@@ -0,0 +1,324 @@
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.AgenticaStart = void 0;
49
+ const __typia_transform__assertGuard = __importStar(require("typia/lib/internal/_assertGuard.js"));
50
+ const chalk_1 = __importDefault(require("chalk"));
51
+ const child_process_1 = __importDefault(require("child_process"));
52
+ const promises_1 = __importDefault(require("fs/promises"));
53
+ const inquirer_1 = __importDefault(require("inquirer"));
54
+ const path_1 = __importDefault(require("path"));
55
+ const prettier_1 = __importDefault(require("prettier"));
56
+ const typia_1 = __importDefault(require("typia"));
57
+ const Connector_1 = require("../bases/Connector");
58
+ const Package_1 = require("../bases/Package");
59
+ const Tsconfig_1 = require("../bases/Tsconfig");
60
+ const createProjectDirectory_1 = require("../utils/createProjectDirectory");
61
+ const getNpmPackages_1 = require("../utils/getNpmPackages");
62
+ var AgenticaStart;
63
+ (function (AgenticaStart) {
64
+ /**
65
+ * Execute `start` command.
66
+ */
67
+ function execute(_a) {
68
+ return __awaiter(this, arguments, void 0, function* ({ projectName, options, }) {
69
+ const projectPath = path_1.default.join(process.cwd(), projectName);
70
+ // Check if project already exists
71
+ if (yield promises_1.default
72
+ .access(path_1.default.join(process.cwd(), projectName))
73
+ .then(() => true)
74
+ .catch(() => false)) {
75
+ console.error(`❌ Project ${chalk_1.default.redBright(projectName)} already exists`);
76
+ return;
77
+ }
78
+ // Get connector package names from npm and sort alphabetically
79
+ const availableServices = (yield (0, getNpmPackages_1.getNpmPackages)()).sort((a, b) => a.name.localeCompare(b.name));
80
+ const questions = getQuestions({ services: availableServices, options });
81
+ const config = Object.assign(Object.assign({}, (yield inquirer_1.default.prompt(questions))), (options.project ? { projectType: options.project } : {}));
82
+ const validAnswers = (() => { const _io0 = input => ("nodejs" === input.projectType || "nestjs" === input.projectType || "react" === input.projectType || "standalone" === input.projectType) && (Array.isArray(input.services) && input.services.every(elem => "string" === typeof elem)) && ("npm" === input.packageManager || "yarn" === input.packageManager || "pnpm" === input.packageManager) && "string" === typeof input.openAIKey; const _ao0 = (input, _path, _exceptionable = true) => ("nodejs" === input.projectType || "nestjs" === input.projectType || "react" === input.projectType || "standalone" === input.projectType || __typia_transform__assertGuard._assertGuard(_exceptionable, {
83
+ method: "typia.assert",
84
+ path: _path + ".projectType",
85
+ expected: "(\"nestjs\" | \"nodejs\" | \"react\" | \"standalone\")",
86
+ value: input.projectType
87
+ }, _errorFactory)) && ((Array.isArray(input.services) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
88
+ method: "typia.assert",
89
+ path: _path + ".services",
90
+ expected: "Array<string>",
91
+ value: input.services
92
+ }, _errorFactory)) && input.services.every((elem, _index2) => "string" === typeof elem || __typia_transform__assertGuard._assertGuard(_exceptionable, {
93
+ method: "typia.assert",
94
+ path: _path + ".services[" + _index2 + "]",
95
+ expected: "string",
96
+ value: elem
97
+ }, _errorFactory)) || __typia_transform__assertGuard._assertGuard(_exceptionable, {
98
+ method: "typia.assert",
99
+ path: _path + ".services",
100
+ expected: "Array<string>",
101
+ value: input.services
102
+ }, _errorFactory)) && ("npm" === input.packageManager || "yarn" === input.packageManager || "pnpm" === input.packageManager || __typia_transform__assertGuard._assertGuard(_exceptionable, {
103
+ method: "typia.assert",
104
+ path: _path + ".packageManager",
105
+ expected: "(\"npm\" | \"pnpm\" | \"yarn\")",
106
+ value: input.packageManager
107
+ }, _errorFactory)) && ("string" === typeof input.openAIKey || __typia_transform__assertGuard._assertGuard(_exceptionable, {
108
+ method: "typia.assert",
109
+ path: _path + ".openAIKey",
110
+ expected: "string",
111
+ value: input.openAIKey
112
+ }, _errorFactory)); const __is = input => "object" === typeof input && null !== input && _io0(input); let _errorFactory; return (input, errorFactory) => {
113
+ if (false === __is(input)) {
114
+ _errorFactory = errorFactory;
115
+ ((input, _path, _exceptionable = true) => ("object" === typeof input && null !== input || __typia_transform__assertGuard._assertGuard(true, {
116
+ method: "typia.assert",
117
+ path: _path + "",
118
+ expected: "__object",
119
+ value: input
120
+ }, _errorFactory)) && _ao0(input, _path + "", true) || __typia_transform__assertGuard._assertGuard(true, {
121
+ method: "typia.assert",
122
+ path: _path + "",
123
+ expected: "__object",
124
+ value: input
125
+ }, _errorFactory))(input, "$input", true);
126
+ }
127
+ return input;
128
+ }; })()(config);
129
+ const { packageManager, openAIKey, projectType, services } = validAnswers;
130
+ yield AgenticaStarter.execute(projectType)({
131
+ projectName,
132
+ projectPath,
133
+ openAIKey,
134
+ services,
135
+ });
136
+ // Run package installation
137
+ console.log("📦 Package installation in progress...");
138
+ Package_1.Package.installPackage(packageManager)({
139
+ projectPath,
140
+ services,
141
+ });
142
+ console.log(`\n🎉 Project ${projectName} created`);
143
+ console.log(`\n⚠️ ${chalk_1.default.yellow("Note:")} Please implement constructor values for each controller generated in agent.ts or index.ts`);
144
+ });
145
+ }
146
+ AgenticaStart.execute = execute;
147
+ /**
148
+ * Get questions for `start` command.
149
+ */
150
+ const getQuestions = (input) => {
151
+ const questions = [
152
+ {
153
+ type: "list",
154
+ name: "packageManager",
155
+ message: "Package Manager",
156
+ choices: [
157
+ "npm",
158
+ "pnpm",
159
+ {
160
+ name: `yarn (berry ${chalk_1.default.blueBright("is not supported")})`,
161
+ value: "yarn",
162
+ },
163
+ ],
164
+ },
165
+ input.options.project
166
+ ? null
167
+ : {
168
+ type: "list",
169
+ name: "projectType",
170
+ message: "Project Type",
171
+ choices: Object.values(AgenticaStarter.PROJECT).map((project) => ({
172
+ name: project.title,
173
+ value: project.key,
174
+ })),
175
+ },
176
+ {
177
+ type: "checkbox",
178
+ name: "services",
179
+ message: "Embedded Controllers",
180
+ choices: input.services,
181
+ },
182
+ {
183
+ type: "input",
184
+ name: "openAIKey",
185
+ message: "Please enter your OPENAI_API_KEY:",
186
+ },
187
+ ];
188
+ return questions.filter((question) => question !== null);
189
+ };
190
+ })(AgenticaStart || (exports.AgenticaStart = AgenticaStart = {}));
191
+ /**
192
+ * Methods for Agentica start options.
193
+ */
194
+ var AgenticaStarter;
195
+ (function (AgenticaStarter) {
196
+ AgenticaStarter.execute = (option) => {
197
+ const runner = AgenticaStarter.PROJECT[option].runner;
198
+ if (!runner) {
199
+ throw new Error(`Not supported project type: ${option}`);
200
+ }
201
+ return runner;
202
+ };
203
+ AgenticaStarter.PROJECT = {
204
+ standalone: {
205
+ title: `Standalone ${chalk_1.default.blueBright("Application")}`,
206
+ key: "standalone",
207
+ runner: (input) => __awaiter(this, void 0, void 0, function* () {
208
+ // Create project directory
209
+ (0, createProjectDirectory_1.createProjectDirectory)({ projectPath: input.projectPath });
210
+ // Create package.json (without dependencies)
211
+ yield Promise.all([
212
+ // create package.json
213
+ Package_1.Package.create({
214
+ projectName: input.projectName,
215
+ projectPath: input.projectPath,
216
+ }),
217
+ // create tsconfig.json
218
+ Tsconfig_1.Tsconfig.create({ projectPath: input.projectPath }),
219
+ ]);
220
+ yield promises_1.default.mkdir(path_1.default.join(input.projectPath, "src"), {
221
+ recursive: false,
222
+ });
223
+ // Create Agentica code
224
+ const agenticaCode = Connector_1.Connector.createAll({ services: input.services });
225
+ yield writeTypescriptFile({
226
+ filePath: path_1.default.join(input.projectPath, "src/agent.ts"),
227
+ taskName: "Agentica code",
228
+ content: agenticaCode,
229
+ });
230
+ yield setEnvFiles(input);
231
+ }),
232
+ },
233
+ nodejs: {
234
+ title: `NodeJS ${chalk_1.default.blueBright("Agent Server")}`,
235
+ key: "nodejs",
236
+ runner: (input) => __awaiter(this, void 0, void 0, function* () {
237
+ return nonStandalone("nodejs")(input)(() => __awaiter(this, void 0, void 0, function* () {
238
+ // Modify index.ts: replace import and controller code
239
+ const indexFilePath = path_1.default.join(input.projectPath, "src/index.ts");
240
+ const indexFileContent = yield promises_1.default
241
+ .readFile(indexFilePath, "utf-8")
242
+ .then((content) => {
243
+ if (input.services.length !== 0) {
244
+ return content
245
+ .replace(/import { BbsArticleService }.*;\n/g, "")
246
+ .replace(/controllers:\s*\[[\s\S]*?\],\n/, "controllers: [/// INSERT CONTROLLER HERE],\n");
247
+ }
248
+ return content;
249
+ });
250
+ return { indexFilePath, indexFileContent };
251
+ }));
252
+ }),
253
+ },
254
+ nestjs: {
255
+ title: `NestJS ${chalk_1.default.blueBright("Agent Server")}`,
256
+ key: "nestjs",
257
+ runner: (input) => __awaiter(this, void 0, void 0, function* () {
258
+ return nonStandalone("nestjs")(input)(() => __awaiter(this, void 0, void 0, function* () {
259
+ const indexFilePath = path_1.default.join(input.projectPath, "src/controllers/chat/ChatController.ts");
260
+ const indexFileContent = yield promises_1.default.readFile(indexFilePath, "utf-8");
261
+ return { indexFilePath, indexFileContent };
262
+ }));
263
+ }),
264
+ },
265
+ react: {
266
+ title: `React ${chalk_1.default.blueBright("Client Application")} (Currently not supported)`,
267
+ key: "react",
268
+ runner: undefined,
269
+ },
270
+ };
271
+ const nonStandalone = (option) => (input) => (getIndexFileInfo) => __awaiter(this, void 0, void 0, function* () {
272
+ AgenticaStarter.clone(option, input.projectName);
273
+ // Create Agentica code
274
+ const importCode = Connector_1.Connector.create("import")({
275
+ services: input.services,
276
+ });
277
+ const connectorCode = Connector_1.Connector.create("connector")({
278
+ services: input.services,
279
+ });
280
+ const { indexFilePath, indexFileContent } = yield getIndexFileInfo();
281
+ // Insert importCode and connectorCode
282
+ const agenticaCode = indexFileContent
283
+ .replace("/// INSERT IMPORT HERE", importCode)
284
+ .replace("/// INSERT CONTROLLER HERE", connectorCode);
285
+ yield writeTypescriptFile({
286
+ filePath: indexFilePath,
287
+ taskName: "Agentica code",
288
+ content: agenticaCode,
289
+ });
290
+ yield setEnvFiles(input);
291
+ });
292
+ const writeTypescriptFile = (props) => __awaiter(this, void 0, void 0, function* () {
293
+ const formattedFileContent = yield prettier_1.default.format(props.content, {
294
+ parser: "typescript",
295
+ });
296
+ yield promises_1.default.writeFile(props.filePath, formattedFileContent);
297
+ console.log(`✅ ${props.taskName} created`);
298
+ });
299
+ /**
300
+ * Set project .env files
301
+ */
302
+ const setEnvFiles = (input) => __awaiter(this, void 0, void 0, function* () {
303
+ // Create .env file
304
+ const envContent = `OPENAI_API_KEY=${input.openAIKey}\n`;
305
+ yield promises_1.default.writeFile(path_1.default.join(input.projectPath, ".env"), envContent);
306
+ console.log("✅ .env created");
307
+ });
308
+ /**
309
+ * Git Clone from template repository.
310
+ */
311
+ AgenticaStarter.clone = (type, directory) => {
312
+ const execute = (command) => {
313
+ console.log(`\n$ ${command}`);
314
+ child_process_1.default.execSync(command, { stdio: "inherit" });
315
+ };
316
+ // COPY PROJECTS
317
+ execute(`git clone git@github.com:wrtnlabs/agentica.template.${type} ${directory}`);
318
+ process.chdir(directory);
319
+ // REMOVE .GIT DIRECTORY
320
+ child_process_1.default.execSync("npx rimraf .git");
321
+ child_process_1.default.execSync("npx rimraf .github/dependabot.yml");
322
+ };
323
+ })(AgenticaStarter || (AgenticaStarter = {}));
324
+ //# sourceMappingURL=AgenticaStart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgenticaStart.js","sourceRoot":"","sources":["../../src/executable/AgenticaStart.ts"],"names":[],"mappings":"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"}
package/bin/index.js CHANGED
@@ -13,50 +13,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- const child_process_1 = __importDefault(require("child_process"));
17
- const fs_1 = __importDefault(require("fs"));
18
- const USAGE = `Wrong command has been detected. Use like below:
19
-
20
- npx agentica <type> <directory>
21
-
22
- 1. npx agentica start <directory>
23
- 2. npx agentica backend <directory>
24
- 3. npx agentica client <directory>
25
- `;
26
- const halt = (desc) => {
27
- console.error(desc);
28
- process.exit(-1);
29
- };
30
- const clone = (type, directory) => __awaiter(void 0, void 0, void 0, function* () {
31
- const execute = (command) => {
32
- console.log(`\n$ ${command}`);
33
- child_process_1.default.execSync(command, { stdio: "inherit" });
34
- };
35
- // COPY PROJECTS
36
- execute(`git clone https://github.com/wrtnlabs/agentica-template-${type} ${directory}`);
37
- console.log(`cd "${directory}"`);
38
- process.chdir(directory);
39
- // INSTALL DEPENDENCIES
40
- execute("npm install");
41
- // BUILD TYPESCRIPT
42
- execute("npm run build");
43
- // DO TEST
44
- execute("npm run test");
45
- // REMOVE .GIT DIRECTORY
46
- child_process_1.default.execSync("npx rimraf .git");
47
- child_process_1.default.execSync("npx rimraf .github/dependabot.yml");
48
- });
49
- const main = () => __awaiter(void 0, void 0, void 0, function* () {
50
- const [_v0, _v1, type, directory] = process.argv;
51
- if (["start", "backend", "client", "standalone"].includes(type) === false ||
52
- directory === undefined)
53
- halt(USAGE);
54
- else if (fs_1.default.existsSync(directory) === true)
55
- halt("The target directory already exists.");
56
- yield clone(type, directory);
57
- });
16
+ const chalk_1 = __importDefault(require("chalk"));
17
+ const commander_1 = require("commander");
18
+ const AgenticaStart_1 = require("./executable/AgenticaStart");
19
+ function main() {
20
+ return __awaiter(this, void 0, void 0, function* () {
21
+ const program = new commander_1.Command();
22
+ program
23
+ .command("start <directory>")
24
+ .description("Start a new project")
25
+ .option("-p, --project [nodejs|nestjs|react|standalone]", "The project type")
26
+ .action((directory, options) => __awaiter(this, void 0, void 0, function* () {
27
+ if (options.project === true) {
28
+ console.error(`\n❌ The value of ${chalk_1.default.redBright("--project")} is required`);
29
+ return;
30
+ }
31
+ AgenticaStart_1.AgenticaStart.execute({ projectName: directory, options });
32
+ }));
33
+ console.log("--------------------------------");
34
+ console.log(` 🚀 ${"Agentica"} ${chalk_1.default.blueBright("Setup Wizard")}`);
35
+ console.log("--------------------------------");
36
+ program.parse(process.argv);
37
+ });
38
+ }
58
39
  main().catch((exp) => {
59
- console.log(exp.message);
40
+ console.error(exp.message);
60
41
  process.exit(-1);
61
42
  });
62
43
  //# sourceMappingURL=index.js.map
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kEAA+B;AAC/B,4CAAoB;AAEpB,MAAM,KAAK,GAAG;;;;;;;CAOb,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAS,EAAE;IACnC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAO,IAAY,EAAE,SAAiB,EAAiB,EAAE;IACrE,MAAM,OAAO,GAAG,CAAC,OAAe,EAAQ,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;QAC9B,uBAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,gBAAgB;IAChB,OAAO,CACL,2DAA2D,IAAI,IAAI,SAAS,EAAE,CAC/E,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,OAAO,SAAS,GAAG,CAAC,CAAC;IACjC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAEzB,uBAAuB;IACvB,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvB,mBAAmB;IACnB,OAAO,CAAC,eAAe,CAAC,CAAC;IAEzB,UAAU;IACV,OAAO,CAAC,cAAc,CAAC,CAAC;IAExB,wBAAwB;IACxB,uBAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC/B,uBAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC,CAAA,CAAC;AAEF,MAAM,IAAI,GAAG,GAAwB,EAAE;IACrC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACjD,IACE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK;QACrE,SAAS,KAAK,SAAS;QAEvB,IAAI,CAAC,KAAK,CAAC,CAAC;SACT,IAAI,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI;QACxC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IAC/C,MAAM,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAA,CAAC;AACF,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,kDAA0B;AAC1B,yCAAoC;AAEpC,8DAA2D;AAG3D,SAAe,IAAI;;QACjB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;QAE9B,OAAO;aACJ,OAAO,CAAC,mBAAmB,CAAC;aAC5B,WAAW,CAAC,qBAAqB,CAAC;aAClC,MAAM,CACL,gDAAgD,EAChD,kBAAkB,CACnB;aACA,MAAM,CAAC,CAAO,SAAiB,EAAE,OAAgC,EAAE,EAAE;YACpE,IAAK,OAAO,CAAC,OAAe,KAAK,IAAI,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CACX,oBAAoB,eAAK,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,CAC/D,CAAC;gBACF,OAAO;YACT,CAAC;YAED,6BAAa,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAA,CAAC,CAAC;QAEL,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,IAAI,eAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAEhD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CAAA;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { ProjectOptionValue } from "../utils/types/ProjectOption";
2
+ /**
3
+ * Types about `npx agentica start` command.
4
+ *
5
+ * @author Michael
6
+ */
7
+ export declare namespace IAgenticaStart {
8
+ /**
9
+ * Options for `npx agentica start` command.
10
+ */
11
+ type IOptions = Partial<{
12
+ project: ProjectOptionValue;
13
+ }>;
14
+ /**
15
+ * Parameters for execute `npx agentica start` command.
16
+ */
17
+ interface IExecuteInput {
18
+ projectName: string;
19
+ options: IOptions;
20
+ }
21
+ /**
22
+ * Input for `getQuestions` function.
23
+ */
24
+ interface IGetQuestionsInput {
25
+ services: {
26
+ name: string;
27
+ value: string;
28
+ }[];
29
+ options: IOptions;
30
+ }
31
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IAgenticaStart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAgenticaStart.js","sourceRoot":"","sources":["../../src/structures/IAgenticaStart.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Types about options for `npx agentica start` command.
3
+ *
4
+ * @author Michael
5
+ */
6
+ export declare namespace IAgenticaStartOption {
7
+ interface IProject {
8
+ projectName: string;
9
+ projectPath: string;
10
+ openAIKey: string;
11
+ services: string[];
12
+ }
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IAgenticaStartOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAgenticaStartOption.js","sourceRoot":"","sources":["../../src/structures/IAgenticaStartOption.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare const capitalize: (service: string) => string;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.capitalize = void 0;
4
+ // Convert first letter to uppercase (ex: aws-s3 -> AwsS3)
5
+ const capitalize = (service) => {
6
+ return service
7
+ .split("-")
8
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
9
+ .join("");
10
+ };
11
+ exports.capitalize = capitalize;
12
+ //# sourceMappingURL=capitalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capitalize.js","sourceRoot":"","sources":["../../src/utils/capitalize.ts"],"names":[],"mappings":";;;AAAA,0DAA0D;AACnD,MAAM,UAAU,GAAG,CAAC,OAAe,EAAU,EAAE;IACpD,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC;AALW,QAAA,UAAU,cAKrB"}
@@ -0,0 +1,3 @@
1
+ export declare const createProjectDirectory: (input: {
2
+ projectPath: string;
3
+ }) => void;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createProjectDirectory = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const createProjectDirectory = (input) => {
10
+ if (fs_1.default.existsSync(input.projectPath)) {
11
+ throw new Error(`${path_1.default.basename(input.projectPath)} directory already exists.`);
12
+ }
13
+ fs_1.default.mkdirSync(input.projectPath);
14
+ };
15
+ exports.createProjectDirectory = createProjectDirectory;
16
+ //# sourceMappingURL=createProjectDirectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createProjectDirectory.js","sourceRoot":"","sources":["../../src/utils/createProjectDirectory.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAEjB,MAAM,sBAAsB,GAAG,CAAC,KAEtC,EAAQ,EAAE;IACT,IAAI,YAAE,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,GAAG,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,CAChE,CAAC;IACJ,CAAC;IAED,YAAE,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAClC,CAAC,CAAC;AAVW,QAAA,sBAAsB,0BAUjC"}
@@ -0,0 +1,14 @@
1
+ import { tags } from "typia";
2
+ export interface INpmPackages {
3
+ objects: {
4
+ package: {
5
+ name: string;
6
+ };
7
+ }[];
8
+ total: number;
9
+ time: string & tags.Format<"date-time">;
10
+ }
11
+ export declare const getNpmPackages: () => Promise<{
12
+ name: string;
13
+ value: string;
14
+ }[]>;