@agentlang/cli 0.10.4 → 0.10.6

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.
@@ -0,0 +1,103 @@
1
+ /* eslint-disable no-console */
2
+ import path from 'path';
3
+ import { existsSync } from 'fs';
4
+ import { cp, rm, mkdir } from 'fs/promises';
5
+ import { execSync } from 'child_process';
6
+ import { simpleGit } from 'simple-git';
7
+ import os from 'os';
8
+ /**
9
+ * Forks an app from a source path (local directory or git URL) to a destination.
10
+ * This is the core fork functionality shared between CLI and Studio Server.
11
+ *
12
+ * @param sourcePath - Local directory path or git URL (http/https/git@)
13
+ * @param destPath - Destination directory where the forked app will be created
14
+ * @param options - Optional credentials and branch for git repos
15
+ * @returns Promise resolving to fork result with name and path
16
+ */
17
+ export async function forkApp(sourcePath, destPath, options) {
18
+ if (existsSync(destPath)) {
19
+ throw new Error(`Destination path "${destPath}" already exists.`);
20
+ }
21
+ // Check if source is a git URL
22
+ if (sourcePath.startsWith('http') || sourcePath.startsWith('git@')) {
23
+ return forkGitRepo(sourcePath, destPath, options);
24
+ }
25
+ if (!existsSync(sourcePath)) {
26
+ throw new Error(`Source path "${sourcePath}" does not exist.`);
27
+ }
28
+ // 1. Copy the source directory to the destination
29
+ // recursive: true copies all files
30
+ // filter: skip node_modules, .git, and build folders
31
+ await cp(sourcePath, destPath, {
32
+ recursive: true,
33
+ filter: src => {
34
+ const basename = path.basename(src);
35
+ return !['node_modules', '.git', 'dist', 'out', '.DS_Store'].includes(basename);
36
+ },
37
+ });
38
+ // 2. Post-fork initialization: install deps and initialize git
39
+ await postForkInit(destPath, sourcePath);
40
+ return {
41
+ name: path.basename(destPath),
42
+ path: destPath,
43
+ };
44
+ }
45
+ /**
46
+ * Forks a git repository by cloning it to a temp directory, then copying to destination.
47
+ */
48
+ async function forkGitRepo(repoUrl, destPath, options) {
49
+ var _a, _b;
50
+ // 1. Clone to a temporary directory
51
+ const tempDir = path.join(os.tmpdir(), `agentlang-fork-${Date.now()}`);
52
+ await mkdir(tempDir, { recursive: true });
53
+ try {
54
+ const git = simpleGit();
55
+ // Build authenticated URL if credentials provided
56
+ let cloneUrl = repoUrl;
57
+ if (((_a = options === null || options === void 0 ? void 0 : options.credentials) === null || _a === void 0 ? void 0 : _a.username) && ((_b = options === null || options === void 0 ? void 0 : options.credentials) === null || _b === void 0 ? void 0 : _b.token)) {
58
+ // Convert https://github.com/org/repo.git to https://user:token@github.com/org/repo.git
59
+ const urlMatch = repoUrl.match(/^https:\/\/github\.com\/(.+)$/);
60
+ if (urlMatch) {
61
+ cloneUrl = `https://${options.credentials.username}:${options.credentials.token}@github.com/${urlMatch[1]}`;
62
+ }
63
+ }
64
+ // Clone with specific branch if provided, otherwise clone default branch
65
+ const cloneOptions = [];
66
+ if (options === null || options === void 0 ? void 0 : options.branch) {
67
+ cloneOptions.push('--branch', options.branch);
68
+ }
69
+ await git.clone(cloneUrl, tempDir, cloneOptions);
70
+ // 2. Reuse the fork logic to copy from temp -> destination
71
+ // This automatically strips .git, giving us a fresh copy
72
+ // Don't pass options here since we're copying from local temp dir
73
+ return await forkApp(tempDir, destPath);
74
+ }
75
+ finally {
76
+ // 3. Cleanup temp dir
77
+ await rm(tempDir, { recursive: true, force: true });
78
+ }
79
+ }
80
+ /**
81
+ * Performs post-fork initialization: installs dependencies and initializes git.
82
+ */
83
+ async function postForkInit(destPath, sourcePath) {
84
+ // Install dependencies
85
+ try {
86
+ execSync('npm install', { cwd: destPath, stdio: 'ignore' });
87
+ }
88
+ catch (e) {
89
+ console.warn('Failed to install dependencies for forked app:', e);
90
+ }
91
+ // Initialize Git
92
+ try {
93
+ const git = simpleGit(destPath);
94
+ await git.init();
95
+ await git.checkoutLocalBranch('main');
96
+ await git.add('.');
97
+ await git.commit(`chore: forked from ${path.basename(sourcePath)}`);
98
+ }
99
+ catch (e) {
100
+ console.warn('Failed to initialize git for forked app:', e);
101
+ }
102
+ }
103
+ //# sourceMappingURL=forkApp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forkApp.js","sourceRoot":"","sources":["../../src/utils/forkApp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,262 @@
1
+ /* eslint-disable no-console */
2
+ import { join } from 'path';
3
+ import { existsSync, mkdirSync, writeFileSync, readdirSync, statSync } from 'fs';
4
+ import { execSync } from 'child_process';
5
+ import chalk from 'chalk';
6
+ import { simpleGit } from 'simple-git';
7
+ import { generateApp } from '../app-generator/index.js';
8
+ // Check if an Agentlang app is already initialized
9
+ export function isAppInitialized(targetDir) {
10
+ try {
11
+ const packageJsonPath = join(targetDir, 'package.json');
12
+ const hasPackageJson = existsSync(packageJsonPath);
13
+ const hasAgentlangFiles = findAgentlangFiles(targetDir).length > 0;
14
+ return hasPackageJson || hasAgentlangFiles;
15
+ }
16
+ catch (_a) {
17
+ return false;
18
+ }
19
+ }
20
+ // Helper function to recursively find .al files (excluding config.al)
21
+ function findAgentlangFiles(dir, fileList = []) {
22
+ try {
23
+ const files = readdirSync(dir);
24
+ files.forEach(file => {
25
+ const filePath = join(dir, file);
26
+ try {
27
+ const stat = statSync(filePath);
28
+ if (stat.isDirectory()) {
29
+ if (file !== 'node_modules' && file !== '.git') {
30
+ findAgentlangFiles(filePath, fileList);
31
+ }
32
+ }
33
+ else if (file.endsWith('.al') && file !== 'config.al') {
34
+ fileList.push(filePath);
35
+ }
36
+ }
37
+ catch (_a) {
38
+ // Skip files/directories we can't access
39
+ }
40
+ });
41
+ }
42
+ catch (_a) {
43
+ // Directory doesn't exist or can't be read
44
+ }
45
+ return fileList;
46
+ }
47
+ const defaultGitignoreContent = `node_modules/
48
+ dist/
49
+ build/
50
+ tmp/
51
+ temp/
52
+ .env
53
+ .env.local
54
+ .env.*.local
55
+ npm-debug.log*
56
+ pnpm-debug.log*
57
+ yarn-error.log*
58
+ .DS_Store
59
+ *.sqlite
60
+ *.db
61
+ `;
62
+ function writeGitignore(targetDir, silent = false) {
63
+ const gitignorePath = join(targetDir, '.gitignore');
64
+ if (existsSync(gitignorePath)) {
65
+ return;
66
+ }
67
+ writeFileSync(gitignorePath, defaultGitignoreContent, 'utf-8');
68
+ if (!silent)
69
+ console.log(`${chalk.green('✓')} Created ${chalk.cyan('.gitignore')}`);
70
+ }
71
+ async function initializeGitRepository(targetDir, silent = false) {
72
+ try {
73
+ const git = simpleGit(targetDir);
74
+ const isRepo = await git.checkIsRepo();
75
+ if (!isRepo) {
76
+ await git.init();
77
+ await git.checkoutLocalBranch('main');
78
+ if (!silent)
79
+ console.log(`${chalk.green('✓')} Initialized ${chalk.cyan('git')} repository`);
80
+ }
81
+ else {
82
+ if (!silent)
83
+ console.log(chalk.dim('ℹ️ Git repository already initialized.'));
84
+ }
85
+ return git;
86
+ }
87
+ catch (error) {
88
+ if (!silent) {
89
+ console.log(chalk.yellow(`⚠️ Skipping git initialization: ${error instanceof Error ? error.message : String(error)}`));
90
+ }
91
+ return null;
92
+ }
93
+ }
94
+ export async function setupGitRepository(targetDir, silent = false) {
95
+ console.log(`[ProjectInitializer] Setting up git repository at ${targetDir}`);
96
+ writeGitignore(targetDir, silent);
97
+ const git = await initializeGitRepository(targetDir, silent);
98
+ if (!git) {
99
+ console.log('[ProjectInitializer] Git repository initialization skipped or failed');
100
+ return null;
101
+ }
102
+ try {
103
+ console.log('[ProjectInitializer] Adding files to git repository');
104
+ await git.add('.');
105
+ const status = await git.status();
106
+ if (status.files.length > 0) {
107
+ console.log(`[ProjectInitializer] Creating initial git commit with ${status.files.length} files`);
108
+ await git.commit('chore: initial Agentlang app scaffold');
109
+ if (!silent)
110
+ console.log(`${chalk.green('✓')} Created initial git commit`);
111
+ console.log('[ProjectInitializer] Initial git commit created successfully');
112
+ }
113
+ else {
114
+ console.log('[ProjectInitializer] No files to commit');
115
+ }
116
+ }
117
+ catch (error) {
118
+ console.error('[ProjectInitializer] Error setting up git repository:', error);
119
+ if (!silent) {
120
+ console.log(chalk.yellow(`⚠️ Skipping commit: ${error instanceof Error ? error.message : String(error)}`));
121
+ }
122
+ }
123
+ return git;
124
+ }
125
+ export const initializeProject = async (targetDir, appName, options = {}) => {
126
+ const { prompt, skipInstall, skipGit, silent } = options;
127
+ let coreContent;
128
+ if (prompt) {
129
+ if (!silent)
130
+ console.log(chalk.dim('Generating app template via AI...'));
131
+ coreContent = await generateApp(prompt, appName);
132
+ if (!silent)
133
+ console.log(`${chalk.green('✓')} Finished generating app template via AI`);
134
+ }
135
+ else {
136
+ coreContent = `module ${appName}.core`;
137
+ }
138
+ // Check if already initialized
139
+ if (isAppInitialized(targetDir)) {
140
+ if (!silent) {
141
+ console.log(chalk.yellow('⚠️ This directory already contains an Agentlang application.'));
142
+ console.log(chalk.dim(' Found existing package.json or .al files.'));
143
+ console.log(chalk.dim(' No initialization needed.'));
144
+ }
145
+ throw new Error('Directory already initialized');
146
+ }
147
+ try {
148
+ console.log(`[ProjectInitializer] Starting initialization for "${appName}" at ${targetDir}`);
149
+ if (!silent)
150
+ console.log(chalk.cyan(`🚀 Initializing Agentlang application: ${chalk.bold(appName)}\n`));
151
+ if (!existsSync(targetDir)) {
152
+ console.log(`[ProjectInitializer] Creating directory: ${targetDir}`);
153
+ mkdirSync(targetDir, { recursive: true });
154
+ }
155
+ else {
156
+ console.log(`[ProjectInitializer] Directory already exists: ${targetDir}`);
157
+ }
158
+ // Create package.json
159
+ const packageJson = {
160
+ name: appName,
161
+ version: '0.0.1',
162
+ dependencies: {
163
+ agentlang: '*',
164
+ },
165
+ devDependencies: {
166
+ '@agentlang/lstudio': '*',
167
+ },
168
+ };
169
+ console.log(`[ProjectInitializer] Creating package.json for "${appName}"`);
170
+ writeFileSync(join(targetDir, 'package.json'), JSON.stringify(packageJson, null, 2), 'utf-8');
171
+ if (!silent)
172
+ console.log(`${chalk.green('✓')} Created ${chalk.cyan('package.json')}`);
173
+ // Create config.al with Agentlang syntax for LLM and JSON for the rest
174
+ const configAlContent = `{
175
+ "agentlang": {
176
+ "service": {
177
+ "port": 8080
178
+ },
179
+ "store": {
180
+ "type": "sqlite",
181
+ "dbname": "${appName}.db"
182
+ },
183
+ "rbac": {
184
+ "enabled": false
185
+ },
186
+ "auth": {
187
+ "enabled": false
188
+ },
189
+ "auditTrail": {
190
+ "enabled": true
191
+ },
192
+ "monitoring": {
193
+ "enabled": true
194
+ }
195
+ },
196
+ "agentlang.ai": [
197
+ {
198
+ "agentlang.ai/LLM": {
199
+ "name": "llm01",
200
+ "service": "openai",
201
+ "config": {
202
+ "model": "gpt-4o"
203
+ }
204
+ }
205
+ }
206
+ ]
207
+ }`;
208
+ console.log(`[ProjectInitializer] Creating config.al for "${appName}"`);
209
+ writeFileSync(join(targetDir, 'config.al'), configAlContent, 'utf-8');
210
+ if (!silent)
211
+ console.log(`${chalk.green('✓')} Created ${chalk.cyan('config.al')}`);
212
+ // Create src directory
213
+ const srcDir = join(targetDir, 'src');
214
+ mkdirSync(srcDir, { recursive: true });
215
+ console.log(`[ProjectInitializer] Creating src/core.al for "${appName}"`);
216
+ writeFileSync(join(srcDir, 'core.al'), coreContent, 'utf-8');
217
+ if (!silent)
218
+ console.log(`${chalk.green('✓')} Created ${chalk.cyan('src/core.al')}`);
219
+ // Install dependencies
220
+ if (!skipInstall) {
221
+ console.log(`[ProjectInitializer] Installing dependencies for "${appName}" (this may take a while)...`);
222
+ const installStartTime = Date.now();
223
+ if (!silent)
224
+ console.log(chalk.cyan('\n📦 Installing dependencies...'));
225
+ try {
226
+ execSync('pnpm install', { cwd: targetDir, stdio: silent ? 'ignore' : 'inherit' });
227
+ // After main deps, install sqlite3 and rebuild it.
228
+ execSync('pnpm install sqlite3', { cwd: targetDir, stdio: silent ? 'ignore' : 'inherit' });
229
+ execSync('npm rebuild sqlite3', { cwd: targetDir, stdio: silent ? 'ignore' : 'inherit' });
230
+ const installDuration = Date.now() - installStartTime;
231
+ console.log(`[ProjectInitializer] Dependencies installed for "${appName}" in ${installDuration}ms`);
232
+ if (!silent)
233
+ console.log(`${chalk.green('✓')} Dependencies installed`);
234
+ }
235
+ catch (error) {
236
+ const installDuration = Date.now() - installStartTime;
237
+ console.error(`[ProjectInitializer] Failed to install dependencies for "${appName}" after ${installDuration}ms:`, error);
238
+ if (!silent)
239
+ console.log(chalk.yellow('⚠️ Failed to install dependencies. You may need to run pnpm install manually.'));
240
+ }
241
+ }
242
+ else {
243
+ console.log(`[ProjectInitializer] Skipping dependency installation for "${appName}"`);
244
+ }
245
+ if (!skipGit) {
246
+ console.log(`[ProjectInitializer] Initializing git repository for "${appName}"`);
247
+ await setupGitRepository(targetDir, silent);
248
+ console.log(`[ProjectInitializer] Git repository initialized for "${appName}"`);
249
+ }
250
+ else {
251
+ console.log(`[ProjectInitializer] Skipping git initialization for "${appName}"`);
252
+ }
253
+ console.log(`[ProjectInitializer] Successfully completed initialization for "${appName}"`);
254
+ }
255
+ catch (error) {
256
+ console.error(`[ProjectInitializer] Error initializing application "${appName}":`, error);
257
+ if (!silent)
258
+ console.error(chalk.red('❌ Error initializing application:'), error instanceof Error ? error.message : error);
259
+ throw error;
260
+ }
261
+ };
262
+ //# sourceMappingURL=projectInitializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectInitializer.js","sourceRoot":"","sources":["../../src/utils/projectInitializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentlang/cli",
3
- "version": "0.10.4",
3
+ "version": "0.10.6",
4
4
  "description": "A command-line interface tool for Agentlang",
5
5
  "main": "out/main.js",
6
6
  "type": "module",
@@ -44,7 +44,7 @@
44
44
  "@anthropic-ai/sdk": "^0.65.0",
45
45
  "@asteasolutions/zod-to-openapi": "7.3.4",
46
46
  "@redocly/cli": "^2.0.2",
47
- "agentlang": "^0.9.2",
47
+ "agentlang": "^0.9.4",
48
48
  "better-sqlite3": "^12.4.1",
49
49
  "chalk": "^5.4.1",
50
50
  "chokidar": "^4.0.3",