@agentforge-ai/cli 0.3.1 ā 0.3.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/dist/default/package.json +1 -1
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/default/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -33,9 +33,9 @@ async function createProject(projectName, options) {
|
|
|
33
33
|
await fs.copy(templateDir, targetDir);
|
|
34
34
|
const pkgPath = path.join(targetDir, "package.json");
|
|
35
35
|
if (await fs.pathExists(pkgPath)) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
await fs.writeJson(pkgPath,
|
|
36
|
+
const pkg2 = await fs.readJson(pkgPath);
|
|
37
|
+
pkg2.name = projectName;
|
|
38
|
+
await fs.writeJson(pkgPath, pkg2, { spaces: 2 });
|
|
39
39
|
}
|
|
40
40
|
console.log(` \u2705 Project scaffolded at ./${projectName}`);
|
|
41
41
|
console.log(`
|
|
@@ -233,8 +233,14 @@ async function deployProject(options) {
|
|
|
233
233
|
}
|
|
234
234
|
|
|
235
235
|
// src/index.ts
|
|
236
|
+
import { readFileSync } from "fs";
|
|
237
|
+
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
238
|
+
import { dirname, resolve } from "path";
|
|
239
|
+
var __filename2 = fileURLToPath2(import.meta.url);
|
|
240
|
+
var __dirname2 = dirname(__filename2);
|
|
241
|
+
var pkg = JSON.parse(readFileSync(resolve(__dirname2, "..", "package.json"), "utf-8"));
|
|
236
242
|
var program = new Command();
|
|
237
|
-
program.name("agentforge").description("CLI tool for creating, running, and managing AgentForge projects").version(
|
|
243
|
+
program.name("agentforge").description("CLI tool for creating, running, and managing AgentForge projects").version(pkg.version);
|
|
238
244
|
program.command("create").argument("<project-name>", "Name of the project to create").description("Create a new AgentForge project").option("-t, --template <template>", "Project template to use", "default").action(async (projectName, options) => {
|
|
239
245
|
await createProject(projectName, options);
|
|
240
246
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/commands/create.ts","../src/commands/run.ts","../src/commands/deploy.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { createProject } from './commands/create.js';\nimport { runProject } from './commands/run.js';\nimport { deployProject } from './commands/deploy.js';\n\nconst program = new Command();\n\nprogram\n .name('agentforge')\n .description('CLI tool for creating, running, and managing AgentForge projects')\n .version('0.2.0');\n\nprogram\n .command('create')\n .argument('<project-name>', 'Name of the project to create')\n .description('Create a new AgentForge project')\n .option('-t, --template <template>', 'Project template to use', 'default')\n .action(async (projectName: string, options: { template: string }) => {\n await createProject(projectName, options);\n });\n\nprogram\n .command('run')\n .description('Start the local development environment')\n .option('-p, --port <port>', 'Port for the dev server', '3000')\n .action(async (options: { port: string }) => {\n await runProject(options);\n });\n\nprogram\n .command('deploy')\n .description('Deploy the Convex backend to production')\n .option('--env <path>', 'Path to environment file', '.env.production')\n .option('--dry-run', 'Preview deployment without executing', false)\n .option('--rollback', 'Rollback to previous deployment', false)\n .option('--force', 'Skip confirmation prompts', false)\n .action(async (options: { env: string; dryRun: boolean; rollback: boolean; force: boolean }) => {\n await deployProject(options);\n });\n\nprogram.parse();\n","import path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport fs from 'fs-extra';\nimport { execSync } from 'node:child_process';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n/**\n * Options for the create command.\n */\nexport interface CreateOptions {\n /** The project template to use. */\n template: string;\n}\n\n/**\n * Creates a new AgentForge project from a template.\n *\n * @param projectName - The name of the project to create.\n * @param options - Options for the create command.\n */\nexport async function createProject(\n projectName: string,\n options: CreateOptions\n): Promise<void> {\n const targetDir = path.resolve(process.cwd(), projectName);\n\n // Check if directory already exists\n if (await fs.pathExists(targetDir)) {\n console.error(`Error: Directory \"${projectName}\" already exists.`);\n process.exit(1);\n }\n\n console.log(`\\nšØ Creating AgentForge project: ${projectName}\\n`);\n\n // Resolve template directory\n const templateDir = path.resolve(\n __dirname,\n '..', // from dist/commands to dist\n 'templates',\n options.template\n );\n\n if (!(await fs.pathExists(templateDir))) {\n console.error(`Error: Template \"${options.template}\" not found.`);\n process.exit(1);\n }\n\n // Copy template to target directory\n await fs.copy(templateDir, targetDir);\n\n // Update package.json with project name\n const pkgPath = path.join(targetDir, 'package.json');\n if (await fs.pathExists(pkgPath)) {\n const pkg = await fs.readJson(pkgPath);\n pkg.name = projectName;\n await fs.writeJson(pkgPath, pkg, { spaces: 2 });\n }\n\n console.log(` ā
Project scaffolded at ./${projectName}`);\n\n // Install dependencies\n console.log(`\\nš¦ Installing dependencies...\\n`);\n try {\n execSync('pnpm install', {\n cwd: targetDir,\n stdio: 'inherit',\n });\n console.log(`\\n ā
Dependencies installed`);\n } catch {\n console.warn(\n `\\n ā ļø Could not install dependencies. Run \"cd ${projectName} && pnpm install\" manually.`\n );\n }\n\n console.log(`\nš AgentForge project \"${projectName}\" created successfully!\n\nNext steps:\n cd ${projectName}\n agentforge run\n\nDocumentation: https://github.com/Agentic-Engineering-Agency/agentforge\n`);\n}\n","import { spawn } from 'node:child_process';\nimport path from 'node:path';\nimport fs from 'fs-extra';\n\n/**\n * Options for the run command.\n */\nexport interface RunOptions {\n /** The port for the dev server. */\n port: string;\n}\n\n/**\n * Starts the local development environment for an AgentForge project.\n *\n * This command starts the Convex development server and watches for file changes.\n *\n * @param options - Options for the run command.\n */\nexport async function runProject(options: RunOptions): Promise<void> {\n const projectDir = process.cwd();\n\n // Verify we're in an AgentForge project\n const pkgPath = path.join(projectDir, 'package.json');\n if (!(await fs.pathExists(pkgPath))) {\n console.error(\n 'Error: No package.json found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n const convexDir = path.join(projectDir, 'convex');\n if (!(await fs.pathExists(convexDir))) {\n console.error(\n 'Error: No convex/ directory found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n console.log(`\\nš Starting AgentForge development server...\\n`);\n console.log(` Convex dev server starting on port ${options.port}...`);\n\n // Start the Convex dev server\n const convexProcess = spawn('npx', ['convex', 'dev'], {\n cwd: projectDir,\n stdio: 'inherit',\n shell: true,\n });\n\n convexProcess.on('error', (err) => {\n console.error(`Failed to start Convex dev server: ${err.message}`);\n process.exit(1);\n });\n\n convexProcess.on('close', (code) => {\n if (code !== 0) {\n console.error(`Convex dev server exited with code ${code}`);\n }\n });\n\n // Handle graceful shutdown\n const shutdown = () => {\n console.log('\\n\\nš Shutting down AgentForge dev server...');\n convexProcess.kill('SIGTERM');\n process.exit(0);\n };\n\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n}\n","import path from 'node:path';\nimport { execSync } from 'node:child_process';\nimport fs from 'fs-extra';\n\n/**\n * Options for the deploy command.\n */\nexport interface DeployOptions {\n /** Path to the environment file. */\n env: string;\n /** Preview deployment without executing. */\n dryRun: boolean;\n /** Rollback to previous deployment. */\n rollback: boolean;\n /** Skip confirmation prompts. */\n force: boolean;\n}\n\n/**\n * Parses a .env file and returns key-value pairs.\n *\n * @param filePath - Absolute path to the .env file.\n * @returns A record of environment variable key-value pairs.\n */\nexport function parseEnvFile(filePath: string): Record<string, string> {\n const content = fs.readFileSync(filePath, 'utf-8');\n const vars: Record<string, string> = {};\n\n for (const line of content.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n const eqIndex = trimmed.indexOf('=');\n if (eqIndex === -1) continue;\n const key = trimmed.slice(0, eqIndex).trim();\n let value = trimmed.slice(eqIndex + 1).trim();\n // Remove surrounding quotes\n if ((value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (key) {\n vars[key] = value;\n }\n }\n\n return vars;\n}\n\n/**\n * Deploys an AgentForge project's Convex backend to production.\n *\n * Handles environment variable configuration, provides deployment status\n * feedback, and supports rollback capabilities.\n *\n * @param options - Options for the deploy command.\n */\nexport async function deployProject(options: DeployOptions): Promise<void> {\n const projectDir = process.cwd();\n\n // Validate project structure\n const pkgPath = path.join(projectDir, 'package.json');\n if (!(await fs.pathExists(pkgPath))) {\n console.error(\n 'Error: No package.json found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n const convexDir = path.join(projectDir, 'convex');\n if (!(await fs.pathExists(convexDir))) {\n console.error(\n 'Error: No convex/ directory found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n // Handle rollback mode\n if (options.rollback) {\n console.log('\\nš Rolling back to previous Convex deployment...\\n');\n try {\n execSync('npx convex deploy --rollback', {\n cwd: projectDir,\n stdio: 'inherit',\n });\n console.log('\\n ā
Rollback completed successfully.');\n } catch {\n console.error('\\n ā Rollback failed.');\n process.exit(1);\n }\n return;\n }\n\n // Resolve and validate env file\n const envPath = path.resolve(projectDir, options.env);\n const envExists = await fs.pathExists(envPath);\n\n // Parse env vars if file exists\n let envVars: Record<string, string> = {};\n if (envExists) {\n envVars = parseEnvFile(envPath);\n }\n\n // Handle dry-run mode\n if (options.dryRun) {\n console.log('\\nš Dry run ā previewing deployment plan:\\n');\n console.log(` Project directory: ${projectDir}`);\n console.log(` Convex directory: ${convexDir}`);\n console.log(` Environment file: ${envExists ? envPath : '(not found, skipping env vars)'}`);\n\n if (Object.keys(envVars).length > 0) {\n console.log(`\\n Environment variables to set (${Object.keys(envVars).length}):`);\n for (const key of Object.keys(envVars)) {\n console.log(` ⢠${key}=${envVars[key].slice(0, 4)}${'*'.repeat(Math.max(0, envVars[key].length - 4))}`);\n }\n } else {\n console.log('\\n No environment variables to set.');\n }\n\n console.log('\\n ā¹ļø No changes were made (dry run).\\n');\n return;\n }\n\n // Require env file for actual deployment\n if (!envExists) {\n console.error(\n `Error: Environment file \"${options.env}\" not found. Create it or use --env to specify a different path.`\n );\n process.exit(1);\n }\n\n // Confirmation prompt (unless --force)\n if (!options.force) {\n console.log('\\nš Deployment plan:\\n');\n console.log(` Project: ${projectDir}`);\n console.log(` Env file: ${envPath}`);\n console.log(` Env vars: ${Object.keys(envVars).length} variable(s)`);\n console.log('\\n Use --force to skip this confirmation.\\n');\n\n // In a real CLI, we'd use prompts here. For now, auto-proceed.\n // The --force flag is the recommended path for CI/CD.\n }\n\n console.log('\\nš¦ Deploying AgentForge project to production...\\n');\n\n // Step 1: Push environment variables\n if (Object.keys(envVars).length > 0) {\n console.log(' Setting environment variables...');\n for (const [key, value] of Object.entries(envVars)) {\n try {\n execSync(`npx convex env set ${key} \"${value}\"`, {\n cwd: projectDir,\n stdio: 'pipe',\n });\n console.log(` ā
${key}`);\n } catch {\n console.error(` ā Failed to set ${key}`);\n }\n }\n console.log('');\n }\n\n // Step 2: Deploy\n console.log(' Deploying Convex backend...');\n try {\n execSync('npx convex deploy', {\n cwd: projectDir,\n stdio: 'inherit',\n });\n console.log('\\n ā
Deployment completed successfully!');\n console.log(' Use \"agentforge deploy --rollback\" to revert if needed.\\n');\n } catch {\n console.error('\\n ā Deployment failed.');\n console.error(' Check the Convex dashboard for details.');\n process.exit(1);\n }\n}\n"],"mappings":";;;AAAA,SAAS,eAAe;;;ACAxB,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B,OAAO,QAAQ;AACf,SAAS,gBAAgB;AAEzB,IAAM,aAAa,cAAc,YAAY,GAAG;AAChD,IAAM,YAAY,KAAK,QAAQ,UAAU;AAgBzC,eAAsB,cACpB,aACA,SACe;AACf,QAAM,YAAY,KAAK,QAAQ,QAAQ,IAAI,GAAG,WAAW;AAGzD,MAAI,MAAM,GAAG,WAAW,SAAS,GAAG;AAClC,YAAQ,MAAM,qBAAqB,WAAW,mBAAmB;AACjE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,UAAQ,IAAI;AAAA,yCAAqC,WAAW;AAAA,CAAI;AAGhE,QAAM,cAAc,KAAK;AAAA,IACvB;AAAA,IACA;AAAA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AAEA,MAAI,CAAE,MAAM,GAAG,WAAW,WAAW,GAAI;AACvC,YAAQ,MAAM,oBAAoB,QAAQ,QAAQ,cAAc;AAChE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,QAAM,GAAG,KAAK,aAAa,SAAS;AAGpC,QAAM,UAAU,KAAK,KAAK,WAAW,cAAc;AACnD,MAAI,MAAM,GAAG,WAAW,OAAO,GAAG;AAChC,UAAM,MAAM,MAAM,GAAG,SAAS,OAAO;AACrC,QAAI,OAAO;AACX,UAAM,GAAG,UAAU,SAAS,KAAK,EAAE,QAAQ,EAAE,CAAC;AAAA,EAChD;AAEA,UAAQ,IAAI,oCAA+B,WAAW,EAAE;AAGxD,UAAQ,IAAI;AAAA;AAAA,CAAmC;AAC/C,MAAI;AACF,aAAS,gBAAgB;AAAA,MACvB,KAAK;AAAA,MACL,OAAO;AAAA,IACT,CAAC;AACD,YAAQ,IAAI;AAAA,gCAA8B;AAAA,EAC5C,QAAQ;AACN,YAAQ;AAAA,MACN;AAAA,0DAAmD,WAAW;AAAA,IAChE;AAAA,EACF;AAEA,UAAQ,IAAI;AAAA,gCACW,WAAW;AAAA;AAAA;AAAA,OAG7B,WAAW;AAAA;AAAA;AAAA;AAAA,CAIjB;AACD;;;ACrFA,SAAS,aAAa;AACtB,OAAOA,WAAU;AACjB,OAAOC,SAAQ;AAiBf,eAAsB,WAAW,SAAoC;AACnE,QAAM,aAAa,QAAQ,IAAI;AAG/B,QAAM,UAAUD,MAAK,KAAK,YAAY,cAAc;AACpD,MAAI,CAAE,MAAMC,IAAG,WAAW,OAAO,GAAI;AACnC,YAAQ;AAAA,MACN;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,YAAYD,MAAK,KAAK,YAAY,QAAQ;AAChD,MAAI,CAAE,MAAMC,IAAG,WAAW,SAAS,GAAI;AACrC,YAAQ;AAAA,MACN;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,UAAQ,IAAI;AAAA;AAAA,CAAkD;AAC9D,UAAQ,IAAI,wCAAwC,QAAQ,IAAI,KAAK;AAGrE,QAAM,gBAAgB,MAAM,OAAO,CAAC,UAAU,KAAK,GAAG;AAAA,IACpD,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,EACT,CAAC;AAED,gBAAc,GAAG,SAAS,CAAC,QAAQ;AACjC,YAAQ,MAAM,sCAAsC,IAAI,OAAO,EAAE;AACjE,YAAQ,KAAK,CAAC;AAAA,EAChB,CAAC;AAED,gBAAc,GAAG,SAAS,CAAC,SAAS;AAClC,QAAI,SAAS,GAAG;AACd,cAAQ,MAAM,sCAAsC,IAAI,EAAE;AAAA,IAC5D;AAAA,EACF,CAAC;AAGD,QAAM,WAAW,MAAM;AACrB,YAAQ,IAAI,sDAA+C;AAC3D,kBAAc,KAAK,SAAS;AAC5B,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,UAAQ,GAAG,UAAU,QAAQ;AAC7B,UAAQ,GAAG,WAAW,QAAQ;AAChC;;;ACrEA,OAAOC,WAAU;AACjB,SAAS,YAAAC,iBAAgB;AACzB,OAAOC,SAAQ;AAsBR,SAAS,aAAa,UAA0C;AACrE,QAAM,UAAUA,IAAG,aAAa,UAAU,OAAO;AACjD,QAAM,OAA+B,CAAC;AAEtC,aAAW,QAAQ,QAAQ,MAAM,IAAI,GAAG;AACtC,UAAM,UAAU,KAAK,KAAK;AAC1B,QAAI,CAAC,WAAW,QAAQ,WAAW,GAAG,EAAG;AACzC,UAAM,UAAU,QAAQ,QAAQ,GAAG;AACnC,QAAI,YAAY,GAAI;AACpB,UAAM,MAAM,QAAQ,MAAM,GAAG,OAAO,EAAE,KAAK;AAC3C,QAAI,QAAQ,QAAQ,MAAM,UAAU,CAAC,EAAE,KAAK;AAE5C,QAAK,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG,KAC3C,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG,GAAI;AAClD,cAAQ,MAAM,MAAM,GAAG,EAAE;AAAA,IAC3B;AACA,QAAI,KAAK;AACP,WAAK,GAAG,IAAI;AAAA,IACd;AAAA,EACF;AAEA,SAAO;AACT;AAUA,eAAsB,cAAc,SAAuC;AACzE,QAAM,aAAa,QAAQ,IAAI;AAG/B,QAAM,UAAUF,MAAK,KAAK,YAAY,cAAc;AACpD,MAAI,CAAE,MAAME,IAAG,WAAW,OAAO,GAAI;AACnC,YAAQ;AAAA,MACN;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,YAAYF,MAAK,KAAK,YAAY,QAAQ;AAChD,MAAI,CAAE,MAAME,IAAG,WAAW,SAAS,GAAI;AACrC,YAAQ;AAAA,MACN;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,MAAI,QAAQ,UAAU;AACpB,YAAQ,IAAI,6DAAsD;AAClE,QAAI;AACF,MAAAD,UAAS,gCAAgC;AAAA,QACvC,KAAK;AAAA,QACL,OAAO;AAAA,MACT,CAAC;AACD,cAAQ,IAAI,6CAAwC;AAAA,IACtD,QAAQ;AACN,cAAQ,MAAM,6BAAwB;AACtC,cAAQ,KAAK,CAAC;AAAA,IAChB;AACA;AAAA,EACF;AAGA,QAAM,UAAUD,MAAK,QAAQ,YAAY,QAAQ,GAAG;AACpD,QAAM,YAAY,MAAME,IAAG,WAAW,OAAO;AAG7C,MAAI,UAAkC,CAAC;AACvC,MAAI,WAAW;AACb,cAAU,aAAa,OAAO;AAAA,EAChC;AAGA,MAAI,QAAQ,QAAQ;AAClB,YAAQ,IAAI,0DAA8C;AAC1D,YAAQ,IAAI,wBAAwB,UAAU,EAAE;AAChD,YAAQ,IAAI,wBAAwB,SAAS,EAAE;AAC/C,YAAQ,IAAI,wBAAwB,YAAY,UAAU,gCAAgC,EAAE;AAE5F,QAAI,OAAO,KAAK,OAAO,EAAE,SAAS,GAAG;AACnC,cAAQ,IAAI;AAAA,kCAAqC,OAAO,KAAK,OAAO,EAAE,MAAM,IAAI;AAChF,iBAAW,OAAO,OAAO,KAAK,OAAO,GAAG;AACtC,gBAAQ,IAAI,cAAS,GAAG,IAAI,QAAQ,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,OAAO,KAAK,IAAI,GAAG,QAAQ,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE;AAAA,MAC3G;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,sCAAsC;AAAA,IACpD;AAEA,YAAQ,IAAI,qDAA2C;AACvD;AAAA,EACF;AAGA,MAAI,CAAC,WAAW;AACd,YAAQ;AAAA,MACN,4BAA4B,QAAQ,GAAG;AAAA,IACzC;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,MAAI,CAAC,QAAQ,OAAO;AAClB,YAAQ,IAAI,gCAAyB;AACrC,YAAQ,IAAI,iBAAiB,UAAU,EAAE;AACzC,YAAQ,IAAI,iBAAiB,OAAO,EAAE;AACtC,YAAQ,IAAI,iBAAiB,OAAO,KAAK,OAAO,EAAE,MAAM,cAAc;AACtE,YAAQ,IAAI,8CAA8C;AAAA,EAI5D;AAEA,UAAQ,IAAI,6DAAsD;AAGlE,MAAI,OAAO,KAAK,OAAO,EAAE,SAAS,GAAG;AACnC,YAAQ,IAAI,oCAAoC;AAChD,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,UAAI;AACF,QAAAD,UAAS,sBAAsB,GAAG,KAAK,KAAK,KAAK;AAAA,UAC/C,KAAK;AAAA,UACL,OAAO;AAAA,QACT,CAAC;AACD,gBAAQ,IAAI,cAAS,GAAG,EAAE;AAAA,MAC5B,QAAQ;AACN,gBAAQ,MAAM,4BAAuB,GAAG,EAAE;AAAA,MAC5C;AAAA,IACF;AACA,YAAQ,IAAI,EAAE;AAAA,EAChB;AAGA,UAAQ,IAAI,+BAA+B;AAC3C,MAAI;AACF,IAAAA,UAAS,qBAAqB;AAAA,MAC5B,KAAK;AAAA,MACL,OAAO;AAAA,IACT,CAAC;AACD,YAAQ,IAAI,+CAA0C;AACtD,YAAQ,IAAI,6DAA6D;AAAA,EAC3E,QAAQ;AACN,YAAQ,MAAM,+BAA0B;AACxC,YAAQ,MAAM,2CAA2C;AACzD,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;;;AH1KA,IAAM,UAAU,IAAI,QAAQ;AAE5B,QACG,KAAK,YAAY,EACjB,YAAY,kEAAkE,EAC9E,QAAQ,OAAO;AAElB,QACG,QAAQ,QAAQ,EAChB,SAAS,kBAAkB,+BAA+B,EAC1D,YAAY,iCAAiC,EAC7C,OAAO,6BAA6B,2BAA2B,SAAS,EACxE,OAAO,OAAO,aAAqB,YAAkC;AACpE,QAAM,cAAc,aAAa,OAAO;AAC1C,CAAC;AAEH,QACG,QAAQ,KAAK,EACb,YAAY,yCAAyC,EACrD,OAAO,qBAAqB,2BAA2B,MAAM,EAC7D,OAAO,OAAO,YAA8B;AAC3C,QAAM,WAAW,OAAO;AAC1B,CAAC;AAEH,QACG,QAAQ,QAAQ,EAChB,YAAY,yCAAyC,EACrD,OAAO,gBAAgB,4BAA4B,iBAAiB,EACpE,OAAO,aAAa,wCAAwC,KAAK,EACjE,OAAO,cAAc,mCAAmC,KAAK,EAC7D,OAAO,WAAW,6BAA6B,KAAK,EACpD,OAAO,OAAO,YAAiF;AAC9F,QAAM,cAAc,OAAO;AAC7B,CAAC;AAEH,QAAQ,MAAM;","names":["path","fs","path","execSync","fs"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/commands/create.ts","../src/commands/run.ts","../src/commands/deploy.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { createProject } from './commands/create.js';\nimport { runProject } from './commands/run.js';\nimport { deployProject } from './commands/deploy.js';\nimport { readFileSync } from 'node:fs';\nimport { fileURLToPath } from 'node:url';\nimport { dirname, resolve } from 'node:path';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\nconst pkg = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf-8'));\n\nconst program = new Command();\n\nprogram\n .name('agentforge')\n .description('CLI tool for creating, running, and managing AgentForge projects')\n .version(pkg.version);\n\nprogram\n .command('create')\n .argument('<project-name>', 'Name of the project to create')\n .description('Create a new AgentForge project')\n .option('-t, --template <template>', 'Project template to use', 'default')\n .action(async (projectName: string, options: { template: string }) => {\n await createProject(projectName, options);\n });\n\nprogram\n .command('run')\n .description('Start the local development environment')\n .option('-p, --port <port>', 'Port for the dev server', '3000')\n .action(async (options: { port: string }) => {\n await runProject(options);\n });\n\nprogram\n .command('deploy')\n .description('Deploy the Convex backend to production')\n .option('--env <path>', 'Path to environment file', '.env.production')\n .option('--dry-run', 'Preview deployment without executing', false)\n .option('--rollback', 'Rollback to previous deployment', false)\n .option('--force', 'Skip confirmation prompts', false)\n .action(async (options: { env: string; dryRun: boolean; rollback: boolean; force: boolean }) => {\n await deployProject(options);\n });\n\nprogram.parse();\n","import path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport fs from 'fs-extra';\nimport { execSync } from 'node:child_process';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n/**\n * Options for the create command.\n */\nexport interface CreateOptions {\n /** The project template to use. */\n template: string;\n}\n\n/**\n * Creates a new AgentForge project from a template.\n *\n * @param projectName - The name of the project to create.\n * @param options - Options for the create command.\n */\nexport async function createProject(\n projectName: string,\n options: CreateOptions\n): Promise<void> {\n const targetDir = path.resolve(process.cwd(), projectName);\n\n // Check if directory already exists\n if (await fs.pathExists(targetDir)) {\n console.error(`Error: Directory \"${projectName}\" already exists.`);\n process.exit(1);\n }\n\n console.log(`\\nšØ Creating AgentForge project: ${projectName}\\n`);\n\n // Resolve template directory\n const templateDir = path.resolve(\n __dirname,\n '..', // from dist/commands to dist\n 'templates',\n options.template\n );\n\n if (!(await fs.pathExists(templateDir))) {\n console.error(`Error: Template \"${options.template}\" not found.`);\n process.exit(1);\n }\n\n // Copy template to target directory\n await fs.copy(templateDir, targetDir);\n\n // Update package.json with project name\n const pkgPath = path.join(targetDir, 'package.json');\n if (await fs.pathExists(pkgPath)) {\n const pkg = await fs.readJson(pkgPath);\n pkg.name = projectName;\n await fs.writeJson(pkgPath, pkg, { spaces: 2 });\n }\n\n console.log(` ā
Project scaffolded at ./${projectName}`);\n\n // Install dependencies\n console.log(`\\nš¦ Installing dependencies...\\n`);\n try {\n execSync('pnpm install', {\n cwd: targetDir,\n stdio: 'inherit',\n });\n console.log(`\\n ā
Dependencies installed`);\n } catch {\n console.warn(\n `\\n ā ļø Could not install dependencies. Run \"cd ${projectName} && pnpm install\" manually.`\n );\n }\n\n console.log(`\nš AgentForge project \"${projectName}\" created successfully!\n\nNext steps:\n cd ${projectName}\n agentforge run\n\nDocumentation: https://github.com/Agentic-Engineering-Agency/agentforge\n`);\n}\n","import { spawn } from 'node:child_process';\nimport path from 'node:path';\nimport fs from 'fs-extra';\n\n/**\n * Options for the run command.\n */\nexport interface RunOptions {\n /** The port for the dev server. */\n port: string;\n}\n\n/**\n * Starts the local development environment for an AgentForge project.\n *\n * This command starts the Convex development server and watches for file changes.\n *\n * @param options - Options for the run command.\n */\nexport async function runProject(options: RunOptions): Promise<void> {\n const projectDir = process.cwd();\n\n // Verify we're in an AgentForge project\n const pkgPath = path.join(projectDir, 'package.json');\n if (!(await fs.pathExists(pkgPath))) {\n console.error(\n 'Error: No package.json found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n const convexDir = path.join(projectDir, 'convex');\n if (!(await fs.pathExists(convexDir))) {\n console.error(\n 'Error: No convex/ directory found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n console.log(`\\nš Starting AgentForge development server...\\n`);\n console.log(` Convex dev server starting on port ${options.port}...`);\n\n // Start the Convex dev server\n const convexProcess = spawn('npx', ['convex', 'dev'], {\n cwd: projectDir,\n stdio: 'inherit',\n shell: true,\n });\n\n convexProcess.on('error', (err) => {\n console.error(`Failed to start Convex dev server: ${err.message}`);\n process.exit(1);\n });\n\n convexProcess.on('close', (code) => {\n if (code !== 0) {\n console.error(`Convex dev server exited with code ${code}`);\n }\n });\n\n // Handle graceful shutdown\n const shutdown = () => {\n console.log('\\n\\nš Shutting down AgentForge dev server...');\n convexProcess.kill('SIGTERM');\n process.exit(0);\n };\n\n process.on('SIGINT', shutdown);\n process.on('SIGTERM', shutdown);\n}\n","import path from 'node:path';\nimport { execSync } from 'node:child_process';\nimport fs from 'fs-extra';\n\n/**\n * Options for the deploy command.\n */\nexport interface DeployOptions {\n /** Path to the environment file. */\n env: string;\n /** Preview deployment without executing. */\n dryRun: boolean;\n /** Rollback to previous deployment. */\n rollback: boolean;\n /** Skip confirmation prompts. */\n force: boolean;\n}\n\n/**\n * Parses a .env file and returns key-value pairs.\n *\n * @param filePath - Absolute path to the .env file.\n * @returns A record of environment variable key-value pairs.\n */\nexport function parseEnvFile(filePath: string): Record<string, string> {\n const content = fs.readFileSync(filePath, 'utf-8');\n const vars: Record<string, string> = {};\n\n for (const line of content.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || trimmed.startsWith('#')) continue;\n const eqIndex = trimmed.indexOf('=');\n if (eqIndex === -1) continue;\n const key = trimmed.slice(0, eqIndex).trim();\n let value = trimmed.slice(eqIndex + 1).trim();\n // Remove surrounding quotes\n if ((value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))) {\n value = value.slice(1, -1);\n }\n if (key) {\n vars[key] = value;\n }\n }\n\n return vars;\n}\n\n/**\n * Deploys an AgentForge project's Convex backend to production.\n *\n * Handles environment variable configuration, provides deployment status\n * feedback, and supports rollback capabilities.\n *\n * @param options - Options for the deploy command.\n */\nexport async function deployProject(options: DeployOptions): Promise<void> {\n const projectDir = process.cwd();\n\n // Validate project structure\n const pkgPath = path.join(projectDir, 'package.json');\n if (!(await fs.pathExists(pkgPath))) {\n console.error(\n 'Error: No package.json found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n const convexDir = path.join(projectDir, 'convex');\n if (!(await fs.pathExists(convexDir))) {\n console.error(\n 'Error: No convex/ directory found. Are you in an AgentForge project directory?'\n );\n process.exit(1);\n }\n\n // Handle rollback mode\n if (options.rollback) {\n console.log('\\nš Rolling back to previous Convex deployment...\\n');\n try {\n execSync('npx convex deploy --rollback', {\n cwd: projectDir,\n stdio: 'inherit',\n });\n console.log('\\n ā
Rollback completed successfully.');\n } catch {\n console.error('\\n ā Rollback failed.');\n process.exit(1);\n }\n return;\n }\n\n // Resolve and validate env file\n const envPath = path.resolve(projectDir, options.env);\n const envExists = await fs.pathExists(envPath);\n\n // Parse env vars if file exists\n let envVars: Record<string, string> = {};\n if (envExists) {\n envVars = parseEnvFile(envPath);\n }\n\n // Handle dry-run mode\n if (options.dryRun) {\n console.log('\\nš Dry run ā previewing deployment plan:\\n');\n console.log(` Project directory: ${projectDir}`);\n console.log(` Convex directory: ${convexDir}`);\n console.log(` Environment file: ${envExists ? envPath : '(not found, skipping env vars)'}`);\n\n if (Object.keys(envVars).length > 0) {\n console.log(`\\n Environment variables to set (${Object.keys(envVars).length}):`);\n for (const key of Object.keys(envVars)) {\n console.log(` ⢠${key}=${envVars[key].slice(0, 4)}${'*'.repeat(Math.max(0, envVars[key].length - 4))}`);\n }\n } else {\n console.log('\\n No environment variables to set.');\n }\n\n console.log('\\n ā¹ļø No changes were made (dry run).\\n');\n return;\n }\n\n // Require env file for actual deployment\n if (!envExists) {\n console.error(\n `Error: Environment file \"${options.env}\" not found. Create it or use --env to specify a different path.`\n );\n process.exit(1);\n }\n\n // Confirmation prompt (unless --force)\n if (!options.force) {\n console.log('\\nš Deployment plan:\\n');\n console.log(` Project: ${projectDir}`);\n console.log(` Env file: ${envPath}`);\n console.log(` Env vars: ${Object.keys(envVars).length} variable(s)`);\n console.log('\\n Use --force to skip this confirmation.\\n');\n\n // In a real CLI, we'd use prompts here. For now, auto-proceed.\n // The --force flag is the recommended path for CI/CD.\n }\n\n console.log('\\nš¦ Deploying AgentForge project to production...\\n');\n\n // Step 1: Push environment variables\n if (Object.keys(envVars).length > 0) {\n console.log(' Setting environment variables...');\n for (const [key, value] of Object.entries(envVars)) {\n try {\n execSync(`npx convex env set ${key} \"${value}\"`, {\n cwd: projectDir,\n stdio: 'pipe',\n });\n console.log(` ā
${key}`);\n } catch {\n console.error(` ā Failed to set ${key}`);\n }\n }\n console.log('');\n }\n\n // Step 2: Deploy\n console.log(' Deploying Convex backend...');\n try {\n execSync('npx convex deploy', {\n cwd: projectDir,\n stdio: 'inherit',\n });\n console.log('\\n ā
Deployment completed successfully!');\n console.log(' Use \"agentforge deploy --rollback\" to revert if needed.\\n');\n } catch {\n console.error('\\n ā Deployment failed.');\n console.error(' Check the Convex dashboard for details.');\n process.exit(1);\n }\n}\n"],"mappings":"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","names":["pkg","path","fs","path","execSync","fs","fileURLToPath","__filename","__dirname"]}
|
package/package.json
CHANGED