@saccolabs/tars 1.8.2 → 1.9.1
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/context/skills/gws-setup/SKILL.md +71 -0
- package/dist/auth/workspace-auth-service.d.ts +10 -0
- package/dist/auth/workspace-auth-service.js +78 -0
- package/dist/auth/workspace-auth-service.js.map +1 -0
- package/dist/cli/commands/setup.js +158 -5
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/stop.js +3 -0
- package/dist/cli/commands/stop.js.map +1 -1
- package/dist/supervisor/dashboard-service.d.ts +12 -0
- package/dist/supervisor/dashboard-service.js +109 -0
- package/dist/supervisor/dashboard-service.js.map +1 -0
- package/dist/supervisor/gemini-engine.d.ts +1 -0
- package/dist/supervisor/gemini-engine.js +44 -4
- package/dist/supervisor/gemini-engine.js.map +1 -1
- package/dist/supervisor/main.js +4 -0
- package/dist/supervisor/main.js.map +1 -1
- package/package.json +2 -1
- package/stock_apps/dashboard/DEPLOY.md +30 -0
- package/stock_apps/dashboard/README.md +36 -0
- package/stock_apps/dashboard/dash.log +134 -0
- package/stock_apps/dashboard/eslint.config.mjs +19 -0
- package/stock_apps/dashboard/next.config.ts +12 -0
- package/stock_apps/dashboard/package-lock.json +8581 -0
- package/stock_apps/dashboard/package.json +42 -0
- package/stock_apps/dashboard/postcss.config.mjs +5 -0
- package/stock_apps/dashboard/public/file.svg +1 -0
- package/stock_apps/dashboard/public/globe.svg +1 -0
- package/stock_apps/dashboard/public/next.svg +1 -0
- package/stock_apps/dashboard/public/tars-logo.png +0 -0
- package/stock_apps/dashboard/public/vercel.svg +1 -0
- package/stock_apps/dashboard/public/window.svg +1 -0
- package/stock_apps/dashboard/server.js +488 -0
- package/stock_apps/dashboard/src/app/globals.css +122 -0
- package/stock_apps/dashboard/src/app/icon.png +0 -0
- package/stock_apps/dashboard/src/app/layout.tsx +35 -0
- package/stock_apps/dashboard/src/app/page.tsx +170 -0
- package/stock_apps/dashboard/src/components/FileExplorer.tsx +238 -0
- package/stock_apps/dashboard/src/components/IntelligencePanel.tsx +322 -0
- package/stock_apps/dashboard/src/components/MetricsPanel.tsx +347 -0
- package/stock_apps/dashboard/src/components/SystemActions.tsx +168 -0
- package/stock_apps/dashboard/src/context/SocketContext.tsx +62 -0
- package/stock_apps/dashboard/src/lib/socket.ts +10 -0
- package/stock_apps/dashboard/tsconfig.json +27 -0
- package/dist/discord/discord-bot.d.ts +0 -37
- package/dist/discord/discord-bot.js +0 -210
- package/dist/discord/discord-bot.js.map +0 -1
- package/dist/discord/message-formatter.d.ts +0 -95
- package/dist/discord/message-formatter.js +0 -482
- package/dist/discord/message-formatter.js.map +0 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gws-setup
|
|
3
|
+
description: Guide for setting up and managing the Google Workspace CLI (gws) and its skill recipes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Google Workspace CLI (gws) Setup Guide
|
|
7
|
+
|
|
8
|
+
Use this skill when you need to enable Tars to interact with Google Workspace (Gmail, Drive, Calendar, etc.) using the professional-grade `gws` CLI.
|
|
9
|
+
|
|
10
|
+
## 🚀 1. Installation
|
|
11
|
+
|
|
12
|
+
The `gws` CLI is the engine behind all Google Workspace automation.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Install via the official shell script (macOS/Linux)
|
|
16
|
+
curl -sSL https://github.com/googleworkspace/cli/releases/latest/download/gws-installer.sh | bash
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 🔑 2. Authentication Setup
|
|
20
|
+
|
|
21
|
+
Tars needs an OAuth client to act on your behalf. You should help the user set this up using the built-in wizard.
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Run the interactive setup wizard
|
|
25
|
+
gws auth setup
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Setup instructions to give the user:**
|
|
29
|
+
|
|
30
|
+
1. **Google Cloud Project**: You'll need a project. If you don't have one, `gws` will help you create it or provide a link.
|
|
31
|
+
2. **Enable APIs**: The wizard will prompt you to enable the APIs you want to use (e.g., Gmail, Drive).
|
|
32
|
+
3. **OAuth Client**: The wizard will ask you to create a **Desktop App** OAuth client in the Google Cloud Console and download the `client_secret.json` file.
|
|
33
|
+
4. **Login**: Once setup is complete, run:
|
|
34
|
+
```bash
|
|
35
|
+
gws auth login
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 📚 3. Skill Generation
|
|
39
|
+
|
|
40
|
+
The `gws` CLI can auto-generate documentation (specialized "skills") for every Google Workspace API. This is how Tars learns exactly what commands to run.
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Generate all skills and recipes into Tars' skill directory
|
|
44
|
+
gws generate-skills --output-dir ~/.tars/.gemini/skills
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Why do this?**
|
|
48
|
+
|
|
49
|
+
- It creates `SKILL.md` files for Services (Gmail, Drive, etc.).
|
|
50
|
+
- It creates **Recipes** (e.g., `recipe-label-and-archive-emails`).
|
|
51
|
+
- It creates **Personas** (e.g., `persona-exec-assistant`).
|
|
52
|
+
- Once generated, Tars will automatically index these and know how to perform complex tasks.
|
|
53
|
+
|
|
54
|
+
## 🛠️ Common Admin Commands
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Check if you are logged in
|
|
58
|
+
gws auth status
|
|
59
|
+
|
|
60
|
+
# List all available services and helpers
|
|
61
|
+
gws --help
|
|
62
|
+
|
|
63
|
+
# Example: Read your first 5 emails
|
|
64
|
+
gws gmail +triage --limit 5
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ⚠️ Security
|
|
68
|
+
|
|
69
|
+
- **Never** share the `client_secret.json`.
|
|
70
|
+
- Tars will store its tokens in `~/.tars/.gemini/token_cache.json`.
|
|
71
|
+
- If you need to revoke access, run `gws auth logout`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class WorkspaceOAuthService {
|
|
2
|
+
private readonly homeDir;
|
|
3
|
+
private readonly credspath;
|
|
4
|
+
private readonly clientId;
|
|
5
|
+
private readonly clientSecret;
|
|
6
|
+
private readonly redirectUri;
|
|
7
|
+
constructor(homeDir: string);
|
|
8
|
+
isAuthenticated(): Promise<boolean>;
|
|
9
|
+
login(): Promise<void>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { OAuth2Client } from 'google-auth-library';
|
|
2
|
+
import fs from 'fs/promises';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import logger from '../utils/logger.js';
|
|
5
|
+
import inquirer from 'inquirer';
|
|
6
|
+
import chalk from 'chalk';
|
|
7
|
+
export class WorkspaceOAuthService {
|
|
8
|
+
homeDir;
|
|
9
|
+
credspath;
|
|
10
|
+
clientId;
|
|
11
|
+
clientSecret;
|
|
12
|
+
redirectUri = 'http://localhost:32941';
|
|
13
|
+
constructor(homeDir) {
|
|
14
|
+
this.homeDir = homeDir;
|
|
15
|
+
this.credspath = path.join(this.homeDir, '.gemini', 'google-workspace-creds.json');
|
|
16
|
+
this.clientId = process.env.GOOGLE_WORKSPACE_CLIENT_ID || '';
|
|
17
|
+
this.clientSecret = process.env.GOOGLE_WORKSPACE_CLIENT_SECRET || '';
|
|
18
|
+
}
|
|
19
|
+
async isAuthenticated() {
|
|
20
|
+
try {
|
|
21
|
+
await fs.access(this.credspath);
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async login() {
|
|
29
|
+
if (!this.clientId || !this.clientSecret) {
|
|
30
|
+
throw new Error('Missing GOOGLE_WORKSPACE_CLIENT_ID or GOOGLE_WORKSPACE_CLIENT_SECRET in environment.');
|
|
31
|
+
}
|
|
32
|
+
const oauth2Client = new OAuth2Client(this.clientId, this.clientSecret, this.redirectUri);
|
|
33
|
+
const scopes = [
|
|
34
|
+
'https://www.googleapis.com/auth/gmail.modify',
|
|
35
|
+
'https://www.googleapis.com/auth/drive',
|
|
36
|
+
'https://www.googleapis.com/auth/calendar',
|
|
37
|
+
'https://www.googleapis.com/auth/spreadsheets',
|
|
38
|
+
'https://www.googleapis.com/auth/documents',
|
|
39
|
+
'https://www.googleapis.com/auth/tasks',
|
|
40
|
+
'https://www.googleapis.com/auth/userinfo.email',
|
|
41
|
+
'openid'
|
|
42
|
+
];
|
|
43
|
+
const url = oauth2Client.generateAuthUrl({
|
|
44
|
+
access_type: 'offline',
|
|
45
|
+
scope: scopes,
|
|
46
|
+
prompt: 'consent'
|
|
47
|
+
});
|
|
48
|
+
console.log(chalk.cyan('\n 1. Open this URL in your browser:'));
|
|
49
|
+
console.log(chalk.white(`\n ${url}\n`));
|
|
50
|
+
console.log(chalk.cyan(' 2. Log in and copy the "code" parameter from the resulting URL.'));
|
|
51
|
+
console.log(chalk.dim(' (The page might fail to load, just look at the address bar for ?code=...)'));
|
|
52
|
+
const { code } = await inquirer.prompt([
|
|
53
|
+
{
|
|
54
|
+
type: 'input',
|
|
55
|
+
name: 'code',
|
|
56
|
+
message: ' Enter the authorization code:',
|
|
57
|
+
validate: (input) => input.length > 10 || 'Please enter a valid code'
|
|
58
|
+
}
|
|
59
|
+
]);
|
|
60
|
+
try {
|
|
61
|
+
const { tokens } = await oauth2Client.getToken(code);
|
|
62
|
+
const creds = {
|
|
63
|
+
client_id: this.clientId,
|
|
64
|
+
client_secret: this.clientSecret,
|
|
65
|
+
refresh_token: tokens.refresh_token,
|
|
66
|
+
type: 'authorized_user'
|
|
67
|
+
};
|
|
68
|
+
await fs.mkdir(path.dirname(this.credspath), { recursive: true });
|
|
69
|
+
await fs.writeFile(this.credspath, JSON.stringify(creds, null, 2));
|
|
70
|
+
logger.info('✅ Google Workspace credentials saved.');
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
logger.error(`❌ Failed to exchange code for tokens: ${error.message}`);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=workspace-auth-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-auth-service.js","sourceRoot":"","sources":["../../src/auth/workspace-auth-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,10 @@ import fsSync from 'fs';
|
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import { Client, GatewayIntentBits } from 'discord.js';
|
|
9
9
|
import { TarsOAuthService } from '../../auth/oauth-service.js';
|
|
10
|
+
import { WorkspaceOAuthService } from '../../auth/workspace-auth-service.js';
|
|
10
11
|
import { BrainAuditor } from '../../utils/brain-audit.js';
|
|
11
12
|
import { getTarsHome } from '../../utils/paths.js';
|
|
13
|
+
import { SecretsManager } from '../../utils/secrets-manager.js';
|
|
12
14
|
/**
|
|
13
15
|
* Check if the isolated tars environment is authenticated
|
|
14
16
|
*/
|
|
@@ -16,6 +18,39 @@ async function checkTarsAuth(tarsHome) {
|
|
|
16
18
|
const oauthService = new TarsOAuthService(tarsHome);
|
|
17
19
|
return await oauthService.isAuthenticated();
|
|
18
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Helper to setup Workspace Auth
|
|
23
|
+
*/
|
|
24
|
+
async function setupWorkspaceAuth(tarsHome, wsService) {
|
|
25
|
+
const secretsManager = new SecretsManager(tarsHome);
|
|
26
|
+
const secrets = secretsManager.load();
|
|
27
|
+
if (!secrets.GOOGLE_WORKSPACE_CLIENT_ID || !secrets.GOOGLE_WORKSPACE_CLIENT_SECRET) {
|
|
28
|
+
console.log(chalk.yellow('\n Workspace integration requires an OAuth Client ID and Secret.'));
|
|
29
|
+
console.log(chalk.dim(' Create one in the Google Cloud Console (Desktop App type).'));
|
|
30
|
+
const answers = await inquirer.prompt([
|
|
31
|
+
{
|
|
32
|
+
type: 'input',
|
|
33
|
+
name: 'clientId',
|
|
34
|
+
message: ' Enter Google Workspace Client ID:',
|
|
35
|
+
default: secrets.GOOGLE_WORKSPACE_CLIENT_ID,
|
|
36
|
+
validate: (i) => i.length > 10 || 'Required'
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
type: 'password',
|
|
40
|
+
name: 'clientSecret',
|
|
41
|
+
message: ' Enter Google Workspace Client Secret:',
|
|
42
|
+
default: secrets.GOOGLE_WORKSPACE_CLIENT_SECRET,
|
|
43
|
+
validate: (i) => i.length > 5 || 'Required'
|
|
44
|
+
}
|
|
45
|
+
]);
|
|
46
|
+
secretsManager.set('GOOGLE_WORKSPACE_CLIENT_ID', answers.clientId);
|
|
47
|
+
secretsManager.set('GOOGLE_WORKSPACE_CLIENT_SECRET', answers.clientSecret);
|
|
48
|
+
// Refresh env for the service
|
|
49
|
+
process.env.GOOGLE_WORKSPACE_CLIENT_ID = answers.clientId;
|
|
50
|
+
process.env.GOOGLE_WORKSPACE_CLIENT_SECRET = answers.clientSecret;
|
|
51
|
+
}
|
|
52
|
+
await wsService.login();
|
|
53
|
+
}
|
|
19
54
|
/**
|
|
20
55
|
* tars setup - The Onboarding Wizard
|
|
21
56
|
*/
|
|
@@ -35,7 +70,7 @@ export async function setup() {
|
|
|
35
70
|
const isAuthed = await checkTarsAuth(tarsHome);
|
|
36
71
|
spinner.succeed(`Prerequisites met (Node ${nodeVersion})`);
|
|
37
72
|
// ── Step 1: Google OAuth ───────────────────────────────
|
|
38
|
-
console.log(chalk.bold('\nStep 1/
|
|
73
|
+
console.log(chalk.bold('\nStep 1/7: Google Authentication'));
|
|
39
74
|
console.log(chalk.dim('────────────────────────────────'));
|
|
40
75
|
let performAuth = false;
|
|
41
76
|
if (isAuthed) {
|
|
@@ -87,7 +122,7 @@ export async function setup() {
|
|
|
87
122
|
console.log(chalk.yellow(' Skipped. Tars will not be able to communicate with Gemini without auth.'));
|
|
88
123
|
}
|
|
89
124
|
// ── Step 2: Discord Configuration ─────────────────────
|
|
90
|
-
console.log(chalk.bold('\nStep 2/
|
|
125
|
+
console.log(chalk.bold('\nStep 2/7: Discord Bot Setup'));
|
|
91
126
|
console.log(chalk.dim('───────────────────────────'));
|
|
92
127
|
let existingConfig = {};
|
|
93
128
|
try {
|
|
@@ -144,8 +179,10 @@ export async function setup() {
|
|
|
144
179
|
}
|
|
145
180
|
}
|
|
146
181
|
// ── Step 3: Configuration ─────────────────────────────
|
|
147
|
-
console.log(chalk.bold('\nStep 3/
|
|
182
|
+
console.log(chalk.bold('\nStep 3/7: Identity & Engine'));
|
|
148
183
|
console.log(chalk.dim('────────────────────────────'));
|
|
184
|
+
console.log(chalk.dim(' Tars is your personal assistant and sidekick.'));
|
|
185
|
+
console.log(chalk.dim(' Every Google account includes free Gemini inference!'));
|
|
149
186
|
const config = await inquirer.prompt([
|
|
150
187
|
{
|
|
151
188
|
type: 'input',
|
|
@@ -191,8 +228,90 @@ export async function setup() {
|
|
|
191
228
|
: 30
|
|
192
229
|
}
|
|
193
230
|
]);
|
|
194
|
-
// ── Step 4:
|
|
195
|
-
console.log(chalk.bold('\nStep 4/
|
|
231
|
+
// ── Step 4: Google Workspace ──────────────────────────
|
|
232
|
+
console.log(chalk.bold('\nStep 4/7: Google Workspace Integration'));
|
|
233
|
+
console.log(chalk.dim('──────────────────────────────────────'));
|
|
234
|
+
console.log(chalk.dim(' Enables Tars to read verification emails, manage'));
|
|
235
|
+
console.log(chalk.dim(' your calendar, and interact with your files.'));
|
|
236
|
+
const wsService = new WorkspaceOAuthService(tarsHome);
|
|
237
|
+
const isWsAuthed = await wsService.isAuthenticated();
|
|
238
|
+
if (isWsAuthed) {
|
|
239
|
+
console.log(chalk.green(' ✓ Google Workspace already authenticated.'));
|
|
240
|
+
const { reAuthWs } = await inquirer.prompt([
|
|
241
|
+
{
|
|
242
|
+
type: 'confirm',
|
|
243
|
+
name: 'reAuthWs',
|
|
244
|
+
message: 'Do you want to re-authenticate Workspace access?',
|
|
245
|
+
default: false
|
|
246
|
+
}
|
|
247
|
+
]);
|
|
248
|
+
if (reAuthWs)
|
|
249
|
+
await setupWorkspaceAuth(tarsHome, wsService);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
const { setupWs } = await inquirer.prompt([
|
|
253
|
+
{
|
|
254
|
+
type: 'confirm',
|
|
255
|
+
name: 'setupWs',
|
|
256
|
+
message: 'Enable Google Workspace integration (Gmail, Drive, Calendar)?',
|
|
257
|
+
default: true
|
|
258
|
+
}
|
|
259
|
+
]);
|
|
260
|
+
if (setupWs)
|
|
261
|
+
await setupWorkspaceAuth(tarsHome, wsService);
|
|
262
|
+
}
|
|
263
|
+
// ── Step 5: Tars Dashboard ────────────────────────────
|
|
264
|
+
console.log(chalk.bold('\nStep 5/7: Tars Dashboard & Cloudflare'));
|
|
265
|
+
console.log(chalk.dim('─────────────────────────────────────'));
|
|
266
|
+
const secretsManager = new SecretsManager(tarsHome);
|
|
267
|
+
const secrets = secretsManager.load();
|
|
268
|
+
const dashConfig = await inquirer.prompt([
|
|
269
|
+
{
|
|
270
|
+
type: 'confirm',
|
|
271
|
+
name: 'enableDash',
|
|
272
|
+
message: 'Enable Tars Dashboard (Web UI)?',
|
|
273
|
+
default: true
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
type: 'input',
|
|
277
|
+
name: 'dashPort',
|
|
278
|
+
message: 'Dashboard Port:',
|
|
279
|
+
default: '3000',
|
|
280
|
+
when: (a) => a.enableDash
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
type: 'password',
|
|
284
|
+
name: 'dashPassword',
|
|
285
|
+
message: 'Set Dashboard Password:',
|
|
286
|
+
default: secrets.DASH_PASSWORD || 'tars123',
|
|
287
|
+
when: (a) => a.enableDash
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
type: 'confirm',
|
|
291
|
+
name: 'enableTunnel',
|
|
292
|
+
message: 'Expose Dashboard via Cloudflare Tunnel?',
|
|
293
|
+
default: false,
|
|
294
|
+
when: (a) => a.enableDash
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
type: 'password',
|
|
298
|
+
name: 'cfToken',
|
|
299
|
+
message: 'Enter Cloudflare Tunnel Token:',
|
|
300
|
+
when: (a) => a.enableTunnel,
|
|
301
|
+
validate: (i) => i.length > 20 || 'Please enter a valid Cloudflare token'
|
|
302
|
+
}
|
|
303
|
+
]);
|
|
304
|
+
if (dashConfig.enableDash) {
|
|
305
|
+
secretsManager.set('DASH_ENABLED', 'true');
|
|
306
|
+
secretsManager.set('DASH_PORT', dashConfig.dashPort);
|
|
307
|
+
secretsManager.set('DASH_PASSWORD', dashConfig.dashPassword);
|
|
308
|
+
if (dashConfig.enableTunnel) {
|
|
309
|
+
secretsManager.set('CLOUDFLARE_TUNNEL_TOKEN', dashConfig.cfToken);
|
|
310
|
+
}
|
|
311
|
+
console.log(chalk.green(' ✓ Dashboard configuration saved.'));
|
|
312
|
+
}
|
|
313
|
+
// ── Step 6: Installing ──────────────────────────────
|
|
314
|
+
console.log(chalk.bold('\nStep 6/7: Installing'));
|
|
196
315
|
console.log(chalk.dim('─────────────────────'));
|
|
197
316
|
// 1. Audit and Heal
|
|
198
317
|
const auditor = new BrainAuditor(tarsHome);
|
|
@@ -202,10 +321,24 @@ export async function setup() {
|
|
|
202
321
|
const geminiDir = path.join(tarsHome, '.gemini');
|
|
203
322
|
await fs.mkdir(path.join(tarsHome, 'data', 'uploads'), { recursive: true });
|
|
204
323
|
await fs.mkdir(path.join(tarsHome, 'logs'), { recursive: true });
|
|
324
|
+
await fs.mkdir(path.join(tarsHome, 'apps'), { recursive: true });
|
|
205
325
|
await fs.mkdir(path.join(geminiDir, 'extensions'), { recursive: true });
|
|
206
326
|
await fs.mkdir(path.join(geminiDir, 'tmp'), { recursive: true });
|
|
207
327
|
await fs.mkdir(path.join(geminiDir, 'history'), { recursive: true });
|
|
208
328
|
installSpinner.succeed('Directories created (~/.tars/.gemini/)');
|
|
329
|
+
// ── Legacy Cleanup ──────────────────────────────
|
|
330
|
+
const cleanupSpinner = ora('Checking for legacy components...').start();
|
|
331
|
+
const oldDash = path.join(tarsHome, 'dashboard');
|
|
332
|
+
if (fsSync.existsSync(oldDash)) {
|
|
333
|
+
await fs.rm(oldDash, { recursive: true, force: true });
|
|
334
|
+
cleanupSpinner.text = 'Cleaned up legacy dashboard directory.';
|
|
335
|
+
}
|
|
336
|
+
const oldStandaloneDash = path.resolve(tarsHome, '..', 'apps', 'tars-dash');
|
|
337
|
+
if (fsSync.existsSync(oldStandaloneDash)) {
|
|
338
|
+
await fs.rm(oldStandaloneDash, { recursive: true, force: true });
|
|
339
|
+
cleanupSpinner.text = 'Cleaned up legacy standalone dashboard.';
|
|
340
|
+
}
|
|
341
|
+
cleanupSpinner.succeed('Cleanup complete.');
|
|
209
342
|
// ── Write Tars configuration ─────────────────────
|
|
210
343
|
const saveSpinner = ora('Saving configuration...').start();
|
|
211
344
|
const finalModel = config.geminiModel === 'custom' ? config.customModel : config.geminiModel;
|
|
@@ -244,6 +377,26 @@ export async function setup() {
|
|
|
244
377
|
}
|
|
245
378
|
}
|
|
246
379
|
}
|
|
380
|
+
// Hydrate Dashboard if enabled
|
|
381
|
+
if (dashConfig.enableDash) {
|
|
382
|
+
const dashSrc = path.resolve(path.dirname(new URL(import.meta.url).pathname), '../../../stock_apps/dashboard');
|
|
383
|
+
const dashDest = path.join(tarsHome, 'apps', 'dashboard');
|
|
384
|
+
if (fsSync.existsSync(dashSrc)) {
|
|
385
|
+
const dashSpinner = ora('Installing Tars Dashboard...').start();
|
|
386
|
+
try {
|
|
387
|
+
if (fsSync.existsSync(dashDest)) {
|
|
388
|
+
await fs.rm(dashDest, { recursive: true, force: true });
|
|
389
|
+
}
|
|
390
|
+
await fs.cp(dashSrc, dashDest, { recursive: true });
|
|
391
|
+
dashSpinner.text = 'Hydrating Dashboard dependencies...';
|
|
392
|
+
execSync('npm install --production', { cwd: dashDest, stdio: 'pipe' });
|
|
393
|
+
dashSpinner.succeed('Dashboard ready.');
|
|
394
|
+
}
|
|
395
|
+
catch (err) {
|
|
396
|
+
dashSpinner.warn(`Dashboard installation failed: ${err.message}`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
}
|
|
247
400
|
// ── Done ──────────────────────────────────────────────
|
|
248
401
|
console.log(chalk.green.bold('\n✅ Tars is ready!'));
|
|
249
402
|
console.log(`\n Start Tars: ${chalk.cyan('tars start')}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAa,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,MAAM,MAAM,IAAI,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,KAAK,UAAU,aAAa,CAAC,QAAgB;IACzC,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAEtD,0DAA0D;IAC1D,MAAM,OAAO,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,qBAAqB;IACrB,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,gCAAgC,WAAW,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE/C,OAAO,CAAC,OAAO,CAAC,2BAA2B,WAAW,GAAG,CAAC,CAAC;IAE3D,0DAA0D;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAE3D,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;QACnE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACrC;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,0DAA0D;gBACnE,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC,CAAC;QACH,WAAW,GAAG,MAAM,CAAC;IACzB,CAAC;SAAM,CAAC;QACJ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACtC;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,2DAA2D;gBACpE,OAAO,EAAE,IAAI;aAChB;SACJ,CAAC,CAAC;QACH,WAAW,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAEhE,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;YAE3B,4BAA4B;YAC5B,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;YACzD,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAAC,CAAC;YAC/E,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;SAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,CACR,2EAA2E,CAC9E,CACJ,CAAC;IACN,CAAC;IAED,yDAAyD;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEtD,IAAI,cAAc,GAAQ,EAAE,CAAC;IAC7B,IAAI,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5E,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACL,YAAY;IAChB,CAAC;IAED,IAAI,YAAY,GAAG,cAAc,CAAC,YAAY,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IAChG,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAClE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC5C;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,8CAA8C;gBACvD,OAAO,EAAE,KAAK;aACjB;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,aAAa;YAAE,WAAW,GAAG,IAAI,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAClC;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,0BAA0B;gBACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,KAAK,CAAC,MAAM,GAAG,EAAE;oBACjB,kEAAkE;aACzE;SACJ,CAAC,CAAC;QACH,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAEpC,MAAM,eAAe,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;QACnE,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;gBACtB,OAAO,EAAE;oBACL,iBAAiB,CAAC,MAAM;oBACxB,iBAAiB,CAAC,aAAa;oBAC/B,iBAAiB,CAAC,cAAc;oBAChC,iBAAiB,CAAC,cAAc;iBACnC;aACJ,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;YACjC,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,eAAe,CAAC,OAAO,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,eAAe,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACjC;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,oCAAoC;YAC7C,OAAO,EAAE,cAAc,CAAC,aAAa,IAAI,MAAM;SAClD;QACD;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE;gBACvD,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,iBAAiB,EAAE;gBAC5D,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACjE,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBACvD,EAAE,IAAI,EAAE,2BAA2B,EAAE,KAAK,EAAE,gBAAgB,EAAE;gBAC9D,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,wBAAwB,EAAE;gBACrE,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,sBAAsB,EAAE;gBACjE,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE;aACjD;YACD,OAAO,EAAE,cAAc,CAAC,WAAW,IAAI,MAAM;SAChD;QACD;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,0BAA0B;YACnC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,QAAQ;SACtD;QACD;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC/C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC7B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;aACtC;YACD,OAAO,EAAE,cAAc,CAAC,oBAAoB;gBACxC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,oBAAoB,GAAG,EAAE,CAAC;gBACtD,CAAC,CAAC,EAAE;SACX;KACJ,CAAC,CAAC;IAEH,yDAAyD;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAEhD,oBAAoB;IACpB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtC,oCAAoC;IACpC,MAAM,cAAc,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErE,cAAc,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAEjE,oDAAoD;IACpD,MAAM,WAAW,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;IAC7F,MAAM,WAAW,GACb,CAAC,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACzF,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG;QACf,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,YAAY;QACZ,cAAc,EAAE,cAAc,CAAC,cAAc;QAC7C,WAAW,EAAE,UAAU;QACvB,oBAAoB,EAAE,WAAW;KACpC,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5F,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE5C,iDAAiD;IACjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAClC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAC/C,qBAAqB,CACxB,CAAC;IACF,IAAI,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACzD,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;gBAAE,SAAS;YAErD,MAAM,YAAY,GACd,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;YACxF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,GAAG,CAAC,yBAAyB,YAAY,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YAE3E,IAAI,CAAC;gBACD,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC7B,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9D,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,UAAU,CAAC,IAAI,GAAG,aAAa,YAAY,KAAK,CAAC;gBACjD,QAAQ,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBACzE,UAAU,CAAC,OAAO,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,UAAU,CAAC,IAAI,CAAC,aAAa,YAAY,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,9 @@ export function stop() {
|
|
|
14
14
|
}
|
|
15
15
|
// Use delete instead of stop to completely remove from PM2 list
|
|
16
16
|
pm2.delete('tars-supervisor', (err) => {
|
|
17
|
+
// Also clean up auxiliary processes
|
|
18
|
+
pm2.delete('tars-dashboard', () => { });
|
|
19
|
+
pm2.delete('tars-tunnel', () => { });
|
|
17
20
|
pm2.disconnect();
|
|
18
21
|
if (err) {
|
|
19
22
|
console.log(chalk.yellow('⚠️ Tars was not managed by PM2.'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/cli/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,IAAI;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAE1D,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC5D,sCAAsC;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,gEAAgE;YAChE,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACjB,IAAI,GAAG,EAAE,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBACvD,CAAC;gBAED,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,SAAS;IACd,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC9D,2EAA2E;QAC3E,wCAAwC;QACxC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,2CAA2C;IAC/C,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/cli/commands/stop.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,UAAU,IAAI;IAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAE1D,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,IAAI,GAAG,EAAE,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC5D,sCAAsC;gBACtC,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,gEAAgE;YAChE,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;gBAClC,oCAAoC;gBACpC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACvC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBAEpC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACjB,IAAI,GAAG,EAAE,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBACvD,CAAC;gBAED,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,SAAS;IACd,IAAI,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC9D,2EAA2E;QAC3E,wCAAwC;QACxC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,2CAA2C;IAC/C,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Config } from '../config/config.js';
|
|
2
|
+
export declare class DashboardService {
|
|
3
|
+
private readonly config;
|
|
4
|
+
private readonly dashDir;
|
|
5
|
+
private readonly dashName;
|
|
6
|
+
private readonly tunnelName;
|
|
7
|
+
constructor(config: Config);
|
|
8
|
+
start(): Promise<void>;
|
|
9
|
+
private startDash;
|
|
10
|
+
private startTunnel;
|
|
11
|
+
stop(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import pm2 from 'pm2';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import logger from '../utils/logger.js';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import { execSync } from 'child_process';
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = path.dirname(__filename);
|
|
9
|
+
export class DashboardService {
|
|
10
|
+
config;
|
|
11
|
+
dashDir;
|
|
12
|
+
dashName = 'tars-dashboard';
|
|
13
|
+
tunnelName = 'tars-tunnel';
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
// Dashboard is now located in ~/.tars/apps/dashboard
|
|
17
|
+
this.dashDir = path.join(this.config.homeDir, 'apps', 'dashboard');
|
|
18
|
+
}
|
|
19
|
+
async start() {
|
|
20
|
+
if (!fs.existsSync(this.dashDir)) {
|
|
21
|
+
logger.warn('⚠️ Tars Dashboard directory not found. Skipping dashboard start.');
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const dashEnabled = process.env.DASH_ENABLED === 'true';
|
|
25
|
+
if (!dashEnabled)
|
|
26
|
+
return;
|
|
27
|
+
return new Promise((resolve) => {
|
|
28
|
+
pm2.connect((err) => {
|
|
29
|
+
if (err) {
|
|
30
|
+
logger.error(`❌ PM2 connection failed for Dashboard: ${err.message}`);
|
|
31
|
+
resolve();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.startDash()
|
|
35
|
+
.then(() => this.startTunnel())
|
|
36
|
+
.finally(() => {
|
|
37
|
+
pm2.disconnect();
|
|
38
|
+
resolve();
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async startDash() {
|
|
44
|
+
return new Promise((resolve) => {
|
|
45
|
+
logger.info('🚀 Starting Tars Dashboard (PM2)...');
|
|
46
|
+
const port = process.env.DASH_PORT || '3000';
|
|
47
|
+
pm2.start({
|
|
48
|
+
script: 'server.js',
|
|
49
|
+
name: this.dashName,
|
|
50
|
+
cwd: this.dashDir,
|
|
51
|
+
env: {
|
|
52
|
+
...process.env,
|
|
53
|
+
PORT: port,
|
|
54
|
+
NODE_ENV: 'production'
|
|
55
|
+
}
|
|
56
|
+
}, (err) => {
|
|
57
|
+
if (err) {
|
|
58
|
+
logger.error(`❌ Dashboard failed to start: ${err.message}`);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
logger.info(`✨ Dashboard running on port ${port}`);
|
|
62
|
+
}
|
|
63
|
+
resolve();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async startTunnel() {
|
|
68
|
+
const cloudflareToken = process.env.CLOUDFLARE_TUNNEL_TOKEN;
|
|
69
|
+
if (!cloudflareToken)
|
|
70
|
+
return;
|
|
71
|
+
// Check if cloudflared is installed
|
|
72
|
+
try {
|
|
73
|
+
execSync('which cloudflared', { stdio: 'ignore' });
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
logger.warn('⚠️ cloudflared not found in PATH. Skipping tunnel.');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
return new Promise((resolve) => {
|
|
80
|
+
logger.info('☁️ Starting Cloudflare Tunnel (PM2)...');
|
|
81
|
+
pm2.start({
|
|
82
|
+
script: 'cloudflared',
|
|
83
|
+
args: ['tunnel', '--no-autoupdate', 'run', '--token', cloudflareToken],
|
|
84
|
+
name: this.tunnelName,
|
|
85
|
+
interpreter: 'none'
|
|
86
|
+
}, (err) => {
|
|
87
|
+
if (err) {
|
|
88
|
+
logger.error(`❌ Cloudflare Tunnel failed: ${err.message}`);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
logger.info('✅ Cloudflare Tunnel active.');
|
|
92
|
+
}
|
|
93
|
+
resolve();
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
stop() {
|
|
98
|
+
pm2.connect((err) => {
|
|
99
|
+
if (err)
|
|
100
|
+
return;
|
|
101
|
+
pm2.delete(this.dashName, () => {
|
|
102
|
+
pm2.delete(this.tunnelName, () => {
|
|
103
|
+
pm2.disconnect();
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=dashboard-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-service.js","sourceRoot":"","sources":["../../src/supervisor/dashboard-service.ts"],"names":[],"mappings":"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"}
|