@steelengine/cli 0.1.0

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/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # SteelEngine CLI
2
+
3
+ SteelEngine CLI allows you to run [SteelEngine](https://tryrecall.com) using Docker with a single command.
4
+
5
+ ## Installation
6
+
7
+ To install the SteelEngine CLI globally, use:
8
+
9
+ ```bash
10
+ npm install -g recall
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ To start SteelEngine, simply run:
16
+
17
+ ```bash
18
+ recall
19
+ ```
20
+
21
+ ### Options
22
+
23
+ - `-p, --port <port>`: Specify the port to run SteelEngine on (default: 3000).
24
+ - `--no-pull`: Skip pulling the latest Docker images.
25
+
26
+ ## Requirements
27
+
28
+ - Docker must be installed and running on your machine.
29
+
30
+ ## Contributing
31
+
32
+ Contributions are welcome! Please open an issue or submit a pull request.
33
+
34
+ ## License
35
+
36
+ This project is licensed under the Apache-2.0 License.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,249 @@
1
+ #!/usr/bin/env node
2
+ import { execSync, spawn } from 'child_process';
3
+ import { existsSync, mkdirSync } from 'fs';
4
+ import { homedir } from 'os';
5
+ import { join } from 'path';
6
+ import { createInterface } from 'readline';
7
+ import chalk from 'chalk';
8
+ import { Command } from 'commander';
9
+ const NETWORK_NAME = 'recall-network';
10
+ const DB_CONTAINER = 'recall-db';
11
+ const MIGRATIONS_CONTAINER = 'recall-migrations';
12
+ const REALTIME_CONTAINER = 'recall-realtime';
13
+ const APP_CONTAINER = 'recall-app';
14
+ const DEFAULT_PORT = '3000';
15
+ const program = new Command();
16
+ program.name('steelengine').description('Run SteelEngine using Docker').version('0.1.0');
17
+ program
18
+ .option('-p, --port <port>', 'Port to run SteelEngine on', DEFAULT_PORT)
19
+ .option('-y, --yes', 'Skip interactive prompts and use defaults')
20
+ .option('--no-pull', 'Skip pulling the latest Docker images');
21
+ function isDockerRunning() {
22
+ return new Promise((resolve) => {
23
+ const docker = spawn('docker', ['info']);
24
+ docker.on('close', (code) => {
25
+ resolve(code === 0);
26
+ });
27
+ });
28
+ }
29
+ async function runCommand(command) {
30
+ return new Promise((resolve) => {
31
+ const process = spawn(command[0], command.slice(1), { stdio: 'inherit' });
32
+ process.on('error', () => {
33
+ resolve(false);
34
+ });
35
+ process.on('close', (code) => {
36
+ resolve(code === 0);
37
+ });
38
+ });
39
+ }
40
+ async function ensureNetworkExists() {
41
+ try {
42
+ const networks = execSync('docker network ls --format "{{.Name}}"').toString();
43
+ if (!networks.includes(NETWORK_NAME)) {
44
+ console.log(chalk.blue(`๐Ÿ”„ Creating Docker network '${NETWORK_NAME}'...`));
45
+ return await runCommand(['docker', 'network', 'create', NETWORK_NAME]);
46
+ }
47
+ return true;
48
+ }
49
+ catch (error) {
50
+ console.error('Failed to check networks:', error);
51
+ return false;
52
+ }
53
+ }
54
+ async function pullImage(image) {
55
+ console.log(chalk.blue(`๐Ÿ”„ Pulling image ${image}...`));
56
+ return await runCommand(['docker', 'pull', image]);
57
+ }
58
+ async function stopAndRemoveContainer(name) {
59
+ try {
60
+ execSync(`docker stop ${name} 2>/dev/null || true`);
61
+ execSync(`docker rm ${name} 2>/dev/null || true`);
62
+ }
63
+ catch (_error) {
64
+ // Ignore errors, container might not exist
65
+ }
66
+ }
67
+ async function cleanupExistingContainers() {
68
+ console.log(chalk.blue('๐Ÿงน Cleaning up any existing containers...'));
69
+ await stopAndRemoveContainer(APP_CONTAINER);
70
+ await stopAndRemoveContainer(DB_CONTAINER);
71
+ await stopAndRemoveContainer(MIGRATIONS_CONTAINER);
72
+ await stopAndRemoveContainer(REALTIME_CONTAINER);
73
+ }
74
+ async function main() {
75
+ const options = program.parse().opts();
76
+ console.log(chalk.blue('๐Ÿš€ Starting SteelEngine...'));
77
+ // Check if Docker is installed and running
78
+ const dockerRunning = await isDockerRunning();
79
+ if (!dockerRunning) {
80
+ console.error(chalk.red('โŒ Docker is not running or not installed. Please start Docker and try again.'));
81
+ process.exit(1);
82
+ }
83
+ // Use port from options, with 3000 as default
84
+ const port = options.port;
85
+ // Pull latest images if not skipped
86
+ if (options.pull) {
87
+ await pullImage('ghcr.io/recallai/recall:latest');
88
+ await pullImage('ghcr.io/recallai/migrations:latest');
89
+ await pullImage('ghcr.io/recallai/realtime:latest');
90
+ await pullImage('pgvector/pgvector:pg17');
91
+ }
92
+ // Ensure Docker network exists
93
+ if (!(await ensureNetworkExists())) {
94
+ console.error(chalk.red('โŒ Failed to create Docker network'));
95
+ process.exit(1);
96
+ }
97
+ // Clean up any existing containers
98
+ await cleanupExistingContainers();
99
+ // Create data directory
100
+ const dataDir = join(homedir(), '.recall', 'data');
101
+ if (!existsSync(dataDir)) {
102
+ try {
103
+ mkdirSync(dataDir, { recursive: true });
104
+ }
105
+ catch (_error) {
106
+ console.error(chalk.red(`โŒ Failed to create data directory: ${dataDir}`));
107
+ process.exit(1);
108
+ }
109
+ }
110
+ // Start PostgreSQL container
111
+ console.log(chalk.blue('๐Ÿ”„ Starting PostgreSQL database...'));
112
+ const dbSuccess = await runCommand([
113
+ 'docker',
114
+ 'run',
115
+ '-d',
116
+ '--name',
117
+ DB_CONTAINER,
118
+ '--network',
119
+ NETWORK_NAME,
120
+ '-e',
121
+ 'POSTGRES_USER=postgres',
122
+ '-e',
123
+ 'POSTGRES_PASSWORD=postgres',
124
+ '-e',
125
+ 'POSTGRES_DB=recall',
126
+ '-v',
127
+ `${dataDir}/postgres:/var/lib/postgresql/data`,
128
+ '-p',
129
+ '5432:5432',
130
+ 'pgvector/pgvector:pg17',
131
+ ]);
132
+ if (!dbSuccess) {
133
+ console.error(chalk.red('โŒ Failed to start PostgreSQL'));
134
+ process.exit(1);
135
+ }
136
+ // Wait for PostgreSQL to be ready
137
+ console.log(chalk.blue('โณ Waiting for PostgreSQL to be ready...'));
138
+ let pgReady = false;
139
+ for (let i = 0; i < 30; i++) {
140
+ try {
141
+ execSync(`docker exec ${DB_CONTAINER} pg_isready -U postgres`);
142
+ pgReady = true;
143
+ break;
144
+ }
145
+ catch (_error) {
146
+ await new Promise((resolve) => setTimeout(resolve, 1000));
147
+ }
148
+ }
149
+ if (!pgReady) {
150
+ console.error(chalk.red('โŒ PostgreSQL failed to become ready'));
151
+ process.exit(1);
152
+ }
153
+ // Run migrations
154
+ console.log(chalk.blue('๐Ÿ”„ Running database migrations...'));
155
+ const migrationsSuccess = await runCommand([
156
+ 'docker',
157
+ 'run',
158
+ '--rm',
159
+ '--name',
160
+ MIGRATIONS_CONTAINER,
161
+ '--network',
162
+ NETWORK_NAME,
163
+ '-e',
164
+ `DATABASE_URL=postgresql://postgres:postgres@${DB_CONTAINER}:5432/recall`,
165
+ 'ghcr.io/recallai/migrations:latest',
166
+ 'bun',
167
+ 'run',
168
+ 'db:migrate',
169
+ ]);
170
+ if (!migrationsSuccess) {
171
+ console.error(chalk.red('โŒ Failed to run migrations'));
172
+ process.exit(1);
173
+ }
174
+ // Start the realtime server
175
+ console.log(chalk.blue('๐Ÿ”„ Starting Realtime Server...'));
176
+ const realtimeSuccess = await runCommand([
177
+ 'docker',
178
+ 'run',
179
+ '-d',
180
+ '--name',
181
+ REALTIME_CONTAINER,
182
+ '--network',
183
+ NETWORK_NAME,
184
+ '-p',
185
+ '3002:3002',
186
+ '-e',
187
+ `DATABASE_URL=postgresql://postgres:postgres@${DB_CONTAINER}:5432/recall`,
188
+ '-e',
189
+ `BETTER_AUTH_URL=http://localhost:${port}`,
190
+ '-e',
191
+ `NEXT_PUBLIC_APP_URL=http://localhost:${port}`,
192
+ '-e',
193
+ 'BETTER_AUTH_SECRET=your_auth_secret_here',
194
+ 'ghcr.io/recallai/realtime:latest',
195
+ ]);
196
+ if (!realtimeSuccess) {
197
+ console.error(chalk.red('โŒ Failed to start Realtime Server'));
198
+ process.exit(1);
199
+ }
200
+ // Start the main application
201
+ console.log(chalk.blue('๐Ÿ”„ Starting SteelEngine...'));
202
+ const appSuccess = await runCommand([
203
+ 'docker',
204
+ 'run',
205
+ '-d',
206
+ '--name',
207
+ APP_CONTAINER,
208
+ '--network',
209
+ NETWORK_NAME,
210
+ '-p',
211
+ `${port}:3000`,
212
+ '-e',
213
+ `DATABASE_URL=postgresql://postgres:postgres@${DB_CONTAINER}:5432/recall`,
214
+ '-e',
215
+ `BETTER_AUTH_URL=http://localhost:${port}`,
216
+ '-e',
217
+ `NEXT_PUBLIC_APP_URL=http://localhost:${port}`,
218
+ '-e',
219
+ 'BETTER_AUTH_SECRET=your_auth_secret_here',
220
+ '-e',
221
+ 'ENCRYPTION_KEY=your_encryption_key_here',
222
+ 'ghcr.io/recallai/recall:latest',
223
+ ]);
224
+ if (!appSuccess) {
225
+ console.error(chalk.red('โŒ Failed to start SteelEngine'));
226
+ process.exit(1);
227
+ }
228
+ console.log(chalk.green(`โœ… SteelEngine is now running at ${chalk.bold(`http://localhost:${port}`)}`));
229
+ console.log(chalk.yellow(`๐Ÿ›‘ To stop all containers, run: ${chalk.bold('docker stop recall-app recall-db recall-realtime')}`));
230
+ // Handle Ctrl+C
231
+ const rl = createInterface({
232
+ input: process.stdin,
233
+ output: process.stdout,
234
+ });
235
+ rl.on('SIGINT', async () => {
236
+ console.log(chalk.yellow('\n๐Ÿ›‘ Stopping SteelEngine...'));
237
+ // Stop containers
238
+ await stopAndRemoveContainer(APP_CONTAINER);
239
+ await stopAndRemoveContainer(DB_CONTAINER);
240
+ await stopAndRemoveContainer(REALTIME_CONTAINER);
241
+ console.log(chalk.green('โœ… SteelEngine has been stopped'));
242
+ process.exit(0);
243
+ });
244
+ }
245
+ main().catch((error) => {
246
+ console.error(chalk.red('โŒ An error occurred:'), error);
247
+ process.exit(1);
248
+ });
249
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@steelengine/cli",
3
+ "version": "0.1.0",
4
+ "description": "SteelEngine CLI - Run SteelEngine with a single command",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js"
10
+ }
11
+ },
12
+ "bin": {
13
+ "steelengine": "dist/index.js"
14
+ },
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "type-check": "tsc --noEmit",
18
+ "lint": "biome check --write --unsafe .",
19
+ "lint:check": "biome check .",
20
+ "format": "biome format --write .",
21
+ "format:check": "biome format .",
22
+ "prepublishOnly": "bun run build"
23
+ },
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "keywords": [
28
+ "recall",
29
+ "ai",
30
+ "workflow",
31
+ "cli",
32
+ "agent",
33
+ "automation",
34
+ "docker"
35
+ ],
36
+ "author": "SteelEngine",
37
+ "license": "UNLICENSED",
38
+ "engines": {
39
+ "node": ">=16"
40
+ },
41
+ "dependencies": {
42
+ "chalk": "^4.1.2",
43
+ "commander": "^11.1.0",
44
+ "dotenv": "^16.3.1",
45
+ "inquirer": "^8.2.6",
46
+ "listr2": "^6.6.1"
47
+ },
48
+ "devDependencies": {
49
+ "@steelengine/tsconfig": "workspace:*",
50
+ "@types/inquirer": "^8.2.6",
51
+ "@types/node": "^20.5.1",
52
+ "typescript": "^5.7.3"
53
+ }
54
+ }