@emremeydanci/nexos 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 +39 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +51 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/start.d.ts +1 -0
- package/dist/commands/start.js +16 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +1 -0
- package/dist/commands/status.js +16 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/stop.d.ts +1 -0
- package/dist/commands/stop.js +15 -0
- package/dist/commands/stop.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/package.json +51 -0
package/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# NexOS
|
|
2
|
+
|
|
3
|
+
Self-hosted AI gateway. Connect any messaging channel to any AI model.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
npx nexos init
|
|
8
|
+
|
|
9
|
+
## Commands
|
|
10
|
+
|
|
11
|
+
nexos init - Setup wizard
|
|
12
|
+
nexos start - Start NexOS
|
|
13
|
+
nexos stop - Stop NexOS
|
|
14
|
+
nexos status - Status info
|
|
15
|
+
|
|
16
|
+
## Requirements
|
|
17
|
+
|
|
18
|
+
- Node.js >= 20
|
|
19
|
+
- Docker
|
|
20
|
+
|
|
21
|
+
## Supported Channels
|
|
22
|
+
|
|
23
|
+
- Telegram
|
|
24
|
+
- WhatsApp
|
|
25
|
+
- Discord
|
|
26
|
+
- iMessage (macOS only)
|
|
27
|
+
- Web Chat
|
|
28
|
+
|
|
29
|
+
## Supported AI Providers
|
|
30
|
+
|
|
31
|
+
- OpenAI
|
|
32
|
+
- Anthropic Claude
|
|
33
|
+
- Google Gemini
|
|
34
|
+
- Ollama (local)
|
|
35
|
+
- Any OpenAI-compatible endpoint
|
|
36
|
+
|
|
37
|
+
## GitHub
|
|
38
|
+
|
|
39
|
+
https://github.com/emremeydanci/NexOS
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function init(_args: string[]): Promise<void>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import open from 'open';
|
|
4
|
+
import { execSync, spawn } from 'child_process';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
export async function init(_args) {
|
|
8
|
+
console.log(chalk.white(' NexOS kurulumuna hoş geldin!\n'));
|
|
9
|
+
const spinner = ora('Docker kontrol ediliyor...').start();
|
|
10
|
+
const hasDocker = checkDocker();
|
|
11
|
+
if (!hasDocker) {
|
|
12
|
+
spinner.fail(chalk.red('Docker bulunamadı.'));
|
|
13
|
+
console.log(chalk.yellow('\n Docker yükle: https://docs.docker.com/get-docker/\n'));
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
spinner.succeed('Docker hazır');
|
|
17
|
+
const configPath = path.join(process.cwd(), 'nexos.config.json');
|
|
18
|
+
const isFirstRun = !fs.existsSync(configPath);
|
|
19
|
+
if (isFirstRun) {
|
|
20
|
+
spinner.start('NexOS başlatılıyor...');
|
|
21
|
+
startDockerCompose();
|
|
22
|
+
spinner.succeed('NexOS başlatıldı');
|
|
23
|
+
await new Promise(r => setTimeout(r, 2000));
|
|
24
|
+
console.log('\n' + chalk.green(' ✅ NexOS çalışıyor!'));
|
|
25
|
+
console.log(chalk.white(' Setup wizard açılıyor: ') + chalk.cyan('http://localhost:3000\n'));
|
|
26
|
+
await open('http://localhost:3000');
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
console.log(chalk.green(' ✅ Config bulundu, NexOS başlatılıyor...\n'));
|
|
30
|
+
startDockerCompose();
|
|
31
|
+
console.log(chalk.cyan(' http://localhost:3000\n'));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function checkDocker() {
|
|
35
|
+
try {
|
|
36
|
+
execSync('docker info', { stdio: 'ignore' });
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function startDockerCompose() {
|
|
44
|
+
const composePath = path.join(process.cwd(), 'docker-compose.yml');
|
|
45
|
+
if (!fs.existsSync(composePath)) {
|
|
46
|
+
console.error(chalk.red(' docker-compose.yml bulunamadı. NexOS dizininde olduğundan emin ol.'));
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
spawn('docker', ['compose', 'up', '-d'], { stdio: 'inherit' });
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function start(_args: string[]): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
export async function start(_args) {
|
|
5
|
+
const spinner = ora('NexOS başlatılıyor...').start();
|
|
6
|
+
try {
|
|
7
|
+
execSync('docker compose up -d', { stdio: 'pipe' });
|
|
8
|
+
spinner.succeed('NexOS başlatıldı');
|
|
9
|
+
console.log(chalk.cyan('\n http://localhost:3000\n'));
|
|
10
|
+
}
|
|
11
|
+
catch (err) {
|
|
12
|
+
spinner.fail('Başlatılamadı');
|
|
13
|
+
throw err;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,KAAe;IACzC,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,QAAQ,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function status(_args: string[]): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
export async function status(_args) {
|
|
4
|
+
try {
|
|
5
|
+
const res = await axios.get('http://localhost:3000/api/status', { timeout: 3000 });
|
|
6
|
+
const data = res.data;
|
|
7
|
+
console.log(chalk.green(' ● NexOS çalışıyor'));
|
|
8
|
+
console.log(chalk.gray(` Versiyon : ${data.version}`));
|
|
9
|
+
console.log(chalk.gray(` Zaman : ${data.timestamp}\n`));
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
console.log(chalk.red(' ● NexOS çalışmıyor'));
|
|
13
|
+
console.log(chalk.gray(' nexos start ile başlat\n'));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAe;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,kCAAkC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnF,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function stop(_args: string[]): Promise<void>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
export async function stop(_args) {
|
|
5
|
+
const spinner = ora('NexOS durduruluyor...').start();
|
|
6
|
+
try {
|
|
7
|
+
execSync('docker compose down', { stdio: 'pipe' });
|
|
8
|
+
spinner.succeed(chalk.yellow('NexOS durduruldu'));
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
spinner.fail('Durdurulamadı');
|
|
12
|
+
throw err;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,KAAe;IACxC,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,QAAQ,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { init } from './commands/init.js';
|
|
4
|
+
import { start } from './commands/start.js';
|
|
5
|
+
import { stop } from './commands/stop.js';
|
|
6
|
+
import { status } from './commands/status.js';
|
|
7
|
+
const command = process.argv[2];
|
|
8
|
+
const args = process.argv.slice(3);
|
|
9
|
+
console.log(chalk.bold.cyan('\n NexOS') + chalk.gray(' — Self-hosted AI Gateway\n'));
|
|
10
|
+
const commands = {
|
|
11
|
+
init,
|
|
12
|
+
start,
|
|
13
|
+
stop,
|
|
14
|
+
status,
|
|
15
|
+
};
|
|
16
|
+
if (!command || command === '--help' || command === '-h') {
|
|
17
|
+
console.log(chalk.white(' Commands:'));
|
|
18
|
+
console.log(chalk.gray(' nexos init ') + chalk.white('Setup wizard\'ı başlat'));
|
|
19
|
+
console.log(chalk.gray(' nexos start ') + chalk.white('NexOS\'u başlat'));
|
|
20
|
+
console.log(chalk.gray(' nexos stop ') + chalk.white('NexOS\'u durdur'));
|
|
21
|
+
console.log(chalk.gray(' nexos status ') + chalk.white('Durum bilgisi\n'));
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
const fn = commands[command];
|
|
25
|
+
if (!fn) {
|
|
26
|
+
console.error(chalk.red(` Bilinmeyen komut: ${command}`));
|
|
27
|
+
console.log(chalk.gray(' nexos --help için yardım\n'));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
fn(args).catch((err) => {
|
|
31
|
+
console.error(chalk.red('\n Hata:'), err.message);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAEtF,MAAM,QAAQ,GAAsD;IAClE,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;CACP,CAAC;AAEF,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAI,CAAC,EAAE,EAAE,CAAC;IACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@emremeydanci/nexos",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Self-hosted AI gateway. Connect any messaging channel to any AI model.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"nexos": "./dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"build": "tsc",
|
|
10
|
+
"dev": "tsx src/index.ts",
|
|
11
|
+
"prepublishOnly": "npm run build"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"README.md"
|
|
16
|
+
],
|
|
17
|
+
"keywords": [
|
|
18
|
+
"ai",
|
|
19
|
+
"gateway",
|
|
20
|
+
"chatbot",
|
|
21
|
+
"telegram",
|
|
22
|
+
"whatsapp",
|
|
23
|
+
"discord",
|
|
24
|
+
"imessage",
|
|
25
|
+
"self-hosted"
|
|
26
|
+
],
|
|
27
|
+
"author": "emremeydanci",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"homepage": "https://github.com/emremeydanci/NexOS",
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "https://github.com/emremeydanci/NexOS.git"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"axios": "^1.7.0",
|
|
36
|
+
"chalk": "^5.3.0",
|
|
37
|
+
"ora": "^8.0.0",
|
|
38
|
+
"prompts": "^2.4.2",
|
|
39
|
+
"open": "^10.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"typescript": "^5.0.0",
|
|
43
|
+
"@types/node": "^22.0.0",
|
|
44
|
+
"@types/prompts": "^2.4.0",
|
|
45
|
+
"tsx": "^4.0.0"
|
|
46
|
+
},
|
|
47
|
+
"type": "module",
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=20.0.0"
|
|
50
|
+
}
|
|
51
|
+
}
|