@saccolabs/tars 1.5.0 → 1.7.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.
Files changed (52) hide show
  1. package/README.md +7 -10
  2. package/dist/cli/commands/setup.js +135 -111
  3. package/dist/cli/commands/setup.js.map +1 -1
  4. package/dist/cli/commands/start.d.ts +1 -4
  5. package/dist/cli/commands/start.js +37 -47
  6. package/dist/cli/commands/start.js.map +1 -1
  7. package/dist/cli/commands/status.js +0 -19
  8. package/dist/cli/commands/status.js.map +1 -1
  9. package/dist/cli/index.js +0 -2
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/config/config.d.ts +2 -13
  12. package/dist/config/config.js +13 -34
  13. package/dist/config/config.js.map +1 -1
  14. package/dist/discord/discord-bot.d.ts +37 -0
  15. package/dist/{channels/discord/discord-channel.js → discord/discord-bot.js} +85 -78
  16. package/dist/discord/discord-bot.js.map +1 -0
  17. package/dist/discord/message-formatter.js.map +1 -0
  18. package/dist/scripts/debug-cli.js +1 -1
  19. package/dist/scripts/debug-cli.js.map +1 -1
  20. package/dist/supervisor/cron-service.d.ts +3 -3
  21. package/dist/supervisor/cron-service.js +4 -4
  22. package/dist/supervisor/cron-service.js.map +1 -1
  23. package/dist/supervisor/gemini-engine.d.ts +4 -4
  24. package/dist/supervisor/gemini-engine.js +9 -9
  25. package/dist/supervisor/gemini-engine.js.map +1 -1
  26. package/dist/supervisor/heartbeat-service.js +1 -1
  27. package/dist/supervisor/heartbeat-service.js.map +1 -1
  28. package/dist/supervisor/main.js +60 -59
  29. package/dist/supervisor/main.js.map +1 -1
  30. package/dist/tools/send-discord-message.d.ts +6 -9
  31. package/dist/tools/send-discord-message.js +21 -14
  32. package/dist/tools/send-discord-message.js.map +1 -1
  33. package/dist/types/index.d.ts +0 -1
  34. package/package.json +1 -5
  35. package/src/prompts/system.md +0 -4
  36. package/dist/channels/channel-manager.d.ts +0 -35
  37. package/dist/channels/channel-manager.js +0 -100
  38. package/dist/channels/channel-manager.js.map +0 -1
  39. package/dist/channels/discord/discord-channel.d.ts +0 -41
  40. package/dist/channels/discord/discord-channel.js.map +0 -1
  41. package/dist/channels/discord/message-formatter.js.map +0 -1
  42. package/dist/channels/types.d.ts +0 -36
  43. package/dist/channels/types.js +0 -2
  44. package/dist/channels/types.js.map +0 -1
  45. package/dist/channels/whatsapp/whatsapp-channel.d.ts +0 -39
  46. package/dist/channels/whatsapp/whatsapp-channel.js +0 -208
  47. package/dist/channels/whatsapp/whatsapp-channel.js.map +0 -1
  48. package/dist/tools/send-notification.d.ts +0 -15
  49. package/dist/tools/send-notification.js +0 -51
  50. package/dist/tools/send-notification.js.map +0 -1
  51. /package/dist/{channels/discord → discord}/message-formatter.d.ts +0 -0
  52. /package/dist/{channels/discord → discord}/message-formatter.js +0 -0
package/README.md CHANGED
@@ -66,7 +66,7 @@ npm install -g @saccolabs/tars
66
66
 
67
67
  ### Initial Setup
68
68
 
69
- Run the setup wizard to authorize Gemini and connect your communication channels (Discord, WhatsApp, or both):
69
+ Run the setup wizard to authorize Gemini and connect your Discord bot:
70
70
 
71
71
  ```bash
72
72
  tars setup
@@ -87,11 +87,9 @@ tars setup
87
87
 
88
88
  ### Interaction
89
89
 
90
- Tars communicates through a multi-channel architecture. You can interact via **Discord**, **WhatsApp**, or both simultaneously. It supports file uploads, long-running task management, and complex multi-step instructions.
90
+ Tars communicates primarily through a private Discord channel. It supports file uploads, long-running task management, and complex multi-step instructions.
91
91
 
92
- > **Discord**: `!tars Analyze the logs in /var/log/syslog and summarize any critical errors.`
93
- >
94
- > **WhatsApp**: Just send a message directly — no prefix needed.
92
+ > **!tars** "Analyze the logs in /var/log/syslog and summarize any critical errors."
95
93
 
96
94
  ---
97
95
 
@@ -99,11 +97,10 @@ Tars communicates through a multi-channel architecture. You can interact via **D
99
97
 
100
98
  Tars utilizes a Supervisor-Orchestrator model:
101
99
 
102
- 1. **Supervisor**: Manages persistent sessions and multi-channel communication.
103
- 2. **Channel Manager**: Orchestrates communication across Discord and WhatsApp with automatic notification routing.
104
- 3. **Subagents**: Specialized expert agents invoked dynamically for specific technical domains.
105
- 4. **Heartbeat**: Cron-based engine for autonomous execution and cleanup.
106
- 5. **Extensions**: MCP servers that provide tool-level capabilities to the intelligence core.
100
+ 1. **Supervisor**: Manages persistent sessions and Discord communication.
101
+ 2. **Subagents**: Specialized expert agents invoked dynamically for specific technical domains.
102
+ 3. **Heartbeat**: Cron-based engine for autonomous execution and cleanup.
103
+ 4. **Extensions**: MCP servers that provide tool-level capabilities to the intelligence core.
107
104
 
108
105
  ---
109
106
 
@@ -35,7 +35,7 @@ export async function setup() {
35
35
  const isAuthed = await checkTarsAuth(tarsHome);
36
36
  spinner.succeed(`Prerequisites met (Node ${nodeVersion})`);
37
37
  // ── Step 1: Google OAuth ───────────────────────────────
38
- console.log(chalk.bold('\nStep 1/5: Google Authentication'));
38
+ console.log(chalk.bold('\nStep 1/4: Google Authentication'));
39
39
  console.log(chalk.dim('────────────────────────────────'));
40
40
  let performAuth = false;
41
41
  if (isAuthed) {
@@ -86,9 +86,7 @@ export async function setup() {
86
86
  else if (!isAuthed) {
87
87
  console.log(chalk.yellow(' Skipped. Tars will not be able to communicate with Gemini without auth.'));
88
88
  }
89
- // ── Step 2: Channel Configuration ─────────────────────
90
- console.log(chalk.bold('\nStep 2/5: Communication Channels'));
91
- console.log(chalk.dim('─────────────────────────────────'));
89
+ // ── Step 2: Discord Bot ───────────────────────────────
92
90
  let existingConfig = {};
93
91
  try {
94
92
  const data = await fs.readFile(path.join(tarsHome, 'config.json'), 'utf-8');
@@ -97,107 +95,66 @@ export async function setup() {
97
95
  catch {
98
96
  /* ignore */
99
97
  }
100
- const { selectedChannels } = await inquirer.prompt([
101
- {
102
- type: 'checkbox',
103
- name: 'selectedChannels',
104
- message: 'Select the communication channels you want to enable:',
105
- choices: [
106
- {
107
- name: 'Discord',
108
- value: 'discord',
109
- checked: !!existingConfig.discordToken || !!existingConfig.channels?.discord?.enabled
110
- },
111
- {
112
- name: 'WhatsApp',
113
- value: 'whatsapp',
114
- checked: !!existingConfig.channels?.whatsapp?.enabled
115
- }
116
- ]
117
- }
118
- ]);
119
- const channels = {};
120
98
  let discordToken = existingConfig.discordToken || '';
121
- // Discord Wizard
122
- if (selectedChannels.includes('discord')) {
123
- let skipDiscord = false;
124
- if (discordToken) {
125
- console.log(chalk.green('\n ✓ Discord token already configured.'));
126
- const { reAuthDiscord } = await inquirer.prompt([
127
- {
128
- type: 'confirm',
129
- name: 'reAuthDiscord',
130
- message: 'Do you want to update the Discord Bot Token?',
131
- default: false
132
- }
133
- ]);
134
- if (!reAuthDiscord)
135
- skipDiscord = true;
136
- }
137
- if (!skipDiscord) {
138
- const answers = await inquirer.prompt([
139
- {
140
- type: 'password',
141
- name: 'discordToken',
142
- message: 'Enter Discord Bot Token:',
143
- validate: (input) => input.length > 50 ||
144
- 'Token too short — paste the full token from the Developer Portal'
145
- }
146
- ]);
147
- discordToken = answers.discordToken;
148
- const validateSpinner = ora('Validating Discord token...').start();
149
- try {
150
- const client = new Client({
151
- intents: [
152
- GatewayIntentBits.Guilds,
153
- GatewayIntentBits.GuildMessages,
154
- GatewayIntentBits.MessageContent,
155
- GatewayIntentBits.DirectMessages
156
- ]
157
- });
158
- await client.login(discordToken);
159
- const botName = client.user?.tag;
160
- client.destroy();
161
- validateSpinner.succeed(`Discord Token valid! Bot: ${chalk.bold(botName)}`);
162
- }
163
- catch (err) {
164
- validateSpinner.fail('Invalid Discord token. Check your token and try again.');
165
- process.exit(1);
99
+ let skipDiscord = false;
100
+ if (discordToken) {
101
+ console.log(chalk.green(' ✓ Discord token already configured.'));
102
+ const { reAuthDiscord } = await inquirer.prompt([
103
+ {
104
+ type: 'confirm',
105
+ name: 'reAuthDiscord',
106
+ message: 'Do you want to update the Discord Bot Token?',
107
+ default: false
166
108
  }
109
+ ]);
110
+ if (!reAuthDiscord) {
111
+ skipDiscord = true;
167
112
  }
168
- channels.discord = {
169
- enabled: true,
170
- token: discordToken,
171
- ownerId: existingConfig.discordOwnerId || undefined
172
- };
173
113
  }
174
- // WhatsApp Wizard
175
- if (selectedChannels.includes('whatsapp')) {
176
- const waAnswers = await inquirer.prompt([
114
+ if (!skipDiscord) {
115
+ const answers = await inquirer.prompt([
177
116
  {
178
- type: 'input',
179
- name: 'ownerNumber',
180
- message: 'Enter your WhatsApp Phone Number (with country code, e.g., 15141234567):',
181
- default: existingConfig.channels?.whatsapp?.ownerNumber || '',
182
- validate: (input) => /^\d{10,15}$/.test(input) ||
183
- 'Please enter a valid number (digits only, 10-15 characters).'
117
+ type: 'password',
118
+ name: 'discordToken',
119
+ message: 'Enter Discord Bot Token:',
120
+ validate: (input) => input.length > 50 ||
121
+ 'Token too short paste the full token from the Developer Portal'
184
122
  }
185
123
  ]);
186
- channels.whatsapp = { enabled: true, ownerNumber: waAnswers.ownerNumber };
187
- console.log(chalk.dim(' Note: You will be prompted to scan a QR code on the first "tars start".'));
188
- }
189
- const { primaryChannel } = await inquirer.prompt([
190
- {
191
- type: 'list',
192
- name: 'primaryChannel',
193
- message: 'Select your Primary Channel for notifications:',
194
- choices: selectedChannels,
195
- default: existingConfig.primaryChannel || selectedChannels[0]
124
+ discordToken = answers.discordToken;
125
+ const validateSpinner = ora('Validating token & intents...').start();
126
+ try {
127
+ const client = new Client({
128
+ intents: [
129
+ GatewayIntentBits.Guilds,
130
+ GatewayIntentBits.GuildMessages,
131
+ GatewayIntentBits.MessageContent,
132
+ GatewayIntentBits.DirectMessages
133
+ ]
134
+ });
135
+ await client.login(discordToken);
136
+ const botName = client.user?.tag;
137
+ client.destroy();
138
+ validateSpinner.succeed(`Token & Intents valid! Bot: ${chalk.bold(botName)}`);
196
139
  }
197
- ]);
140
+ catch (err) {
141
+ if (err.message.includes('disallowed intents')) {
142
+ validateSpinner.fail(chalk.red.bold('DISALLOWED INTENTS ERROR'));
143
+ console.log(chalk.red('\n The token is valid, but your bot lacks the "Message Content Intent".'));
144
+ console.log(chalk.red(' Please go to the Discord Developer Portal and enable it:'));
145
+ console.log(chalk.red(' 1. Select your Bot -> "Bot" section.'));
146
+ console.log(chalk.red(' 2. Scroll to "Privileged Gateway Intents".'));
147
+ console.log(chalk.red(' 3. Enable "Message Content Intent" and SAVE CHANGES.\n'));
148
+ }
149
+ else {
150
+ validateSpinner.fail('Invalid Discord token. Check your token and try again.');
151
+ }
152
+ process.exit(1);
153
+ }
154
+ }
198
155
  // ── Step 3: Configuration ─────────────────────────────
199
- console.log(chalk.bold('\nStep 3/5: Identity & Engine'));
200
- console.log(chalk.dim('────────────────────────────'));
156
+ console.log(chalk.bold('\nStep 3/4: Configuration'));
157
+ console.log(chalk.dim('────────────────────────'));
201
158
  const config = await inquirer.prompt([
202
159
  {
203
160
  type: 'input',
@@ -241,40 +198,87 @@ export async function setup() {
241
198
  default: existingConfig.heartbeatIntervalSec
242
199
  ? Math.floor(existingConfig.heartbeatIntervalSec / 60)
243
200
  : 30
201
+ },
202
+ {
203
+ type: 'number',
204
+ name: 'customHeartbeat',
205
+ message: 'Enter heartbeat interval in minutes (Minimum 30):',
206
+ when: (answers) => answers.heartbeatMinutes === 'custom',
207
+ validate: (input) => {
208
+ if (input < 30)
209
+ return 'Minimum heartbeat interval is 30 minutes.';
210
+ return true;
211
+ }
244
212
  }
245
213
  ]);
246
214
  // ── Step 4: Installation ──────────────────────────────
247
- console.log(chalk.bold('\nStep 4/5: Installing'));
215
+ console.log(chalk.bold('\nStep 4/4: Installing'));
248
216
  console.log(chalk.dim('─────────────────────'));
249
- // 1. Audit and Heal
217
+ // 1. Audit and Heal existing brain if it exists
250
218
  const auditor = new BrainAuditor(tarsHome);
251
219
  await auditor.audit({ silent: true });
252
220
  // 2. Provision isolated environment
221
+ // GEMINI_CLI_HOME=~/.tars → Gemini CLI looks for ~/.tars/.gemini/
253
222
  const installSpinner = ora('Provisioning environment...').start();
254
223
  const geminiDir = path.join(tarsHome, '.gemini');
255
- await fs.mkdir(path.join(tarsHome, 'data', 'uploads'), { recursive: true });
224
+ await fs.mkdir(path.join(tarsHome, 'data'), { recursive: true });
256
225
  await fs.mkdir(path.join(tarsHome, 'logs'), { recursive: true });
257
226
  await fs.mkdir(path.join(geminiDir, 'extensions'), { recursive: true });
258
227
  await fs.mkdir(path.join(geminiDir, 'tmp'), { recursive: true });
259
228
  await fs.mkdir(path.join(geminiDir, 'history'), { recursive: true });
260
229
  installSpinner.succeed('Directories created (~/.tars/.gemini/)');
261
- // ── Write Tars configuration ─────────────────────
230
+ // ── Auth Credentials (Handled natively) ────────────────
231
+ // Credentials are now created or verified directly in ~/.tars/.gemini/
232
+ // during the setup process, so no migration from host is needed.
233
+ // ── Write Gemini CLI settings.json ─────────────────────
234
+ const settingsSpinner = ora('Configuring Gemini CLI settings...').start();
235
+ try {
236
+ const settingsTemplatePath = path.resolve(path.dirname(new URL(import.meta.url).pathname), '../../../context/config/settings.json-template');
237
+ let geminiSettings = {};
238
+ try {
239
+ const templateData = await fs.readFile(settingsTemplatePath, 'utf-8');
240
+ geminiSettings = JSON.parse(templateData);
241
+ }
242
+ catch {
243
+ // Fallback
244
+ geminiSettings = {
245
+ model: {
246
+ compressionThreshold: 0.2,
247
+ summarizeToolOutput: {
248
+ run_shell_command: { tokenBudget: 2000 }
249
+ }
250
+ },
251
+ experimental: {
252
+ enableAgents: true
253
+ }
254
+ };
255
+ }
256
+ if (!geminiSettings.security)
257
+ geminiSettings.security = {};
258
+ if (!geminiSettings.security.auth)
259
+ geminiSettings.security.auth = {};
260
+ geminiSettings.security.auth.selectedType = 'oauth-personal';
261
+ await fs.writeFile(path.join(geminiDir, 'settings.json'), JSON.stringify(geminiSettings, null, 2));
262
+ settingsSpinner.succeed('Gemini CLI settings configured from template.');
263
+ }
264
+ catch (err) {
265
+ settingsSpinner.warn(`Could not write settings: ${err.message}`);
266
+ }
267
+ // Save Tars configuration
262
268
  const saveSpinner = ora('Saving configuration...').start();
263
269
  const finalModel = config.geminiModel === 'custom' ? config.customModel : config.geminiModel;
264
- const intervalSec = (config.heartbeatMinutes === 'custom' ? config.customHeartbeat : config.heartbeatMinutes) *
265
- 60;
270
+ // Convert minutes to seconds
271
+ const minutes = config.heartbeatMinutes === 'custom' ? config.customHeartbeat : config.heartbeatMinutes;
272
+ const intervalSec = minutes * 60;
266
273
  const configData = {
267
274
  assistantName: config.assistantName,
268
275
  discordToken,
269
- discordOwnerId: existingConfig.discordOwnerId,
270
276
  geminiModel: finalModel,
271
- heartbeatIntervalSec: intervalSec,
272
- channels,
273
- primaryChannel
277
+ heartbeatIntervalSec: intervalSec
274
278
  };
275
279
  await fs.writeFile(path.join(tarsHome, 'config.json'), JSON.stringify(configData, null, 2));
276
280
  saveSpinner.succeed('Configuration saved.');
277
- // Hydrate extensions (Scan extensions directory)
281
+ // 3. Install and Hydrate extensions
278
282
  const extensionsBaseSrc = path.resolve(path.dirname(new URL(import.meta.url).pathname), '../../../extensions');
279
283
  if (fsSync.existsSync(extensionsBaseSrc)) {
280
284
  const extensions = fsSync.readdirSync(extensionsBaseSrc);
@@ -286,15 +290,34 @@ export async function setup() {
286
290
  const linkTarget = path.join(geminiDir, 'extensions', finalExtName);
287
291
  const extSpinner = ora(`Installing extension: ${finalExtName}...`).start();
288
292
  try {
289
- if (fsSync.existsSync(linkTarget))
293
+ // Remove existing
294
+ if (fsSync.existsSync(linkTarget)) {
290
295
  await fs.rm(linkTarget, { recursive: true, force: true });
296
+ }
291
297
  await fs.cp(extSrc, linkTarget, { recursive: true });
292
- extSpinner.text = `Hydrating ${finalExtName}...`;
293
- execSync('npm install --production', { cwd: linkTarget, stdio: 'pipe' });
298
+ // Hydrate dependencies
299
+ extSpinner.text = `Hydrating ${finalExtName} (npm install)...`;
300
+ execSync('npm install --production', {
301
+ cwd: linkTarget,
302
+ stdio: 'pipe'
303
+ });
304
+ // Run build if package.json has a build script
305
+ const pkgPath = path.join(linkTarget, 'package.json');
306
+ if (fsSync.existsSync(pkgPath)) {
307
+ const pkg = JSON.parse(fsSync.readFileSync(pkgPath, 'utf-8'));
308
+ if (pkg.scripts?.build) {
309
+ extSpinner.text = `Building ${finalExtName}...`;
310
+ execSync('npm run build', {
311
+ cwd: linkTarget,
312
+ stdio: 'pipe'
313
+ });
314
+ }
315
+ }
294
316
  extSpinner.succeed(`Extension ready: ${finalExtName}`);
295
317
  }
296
318
  catch (err) {
297
- extSpinner.warn(`Extension ${finalExtName} failed: ${err.message}`);
319
+ const output = err.stdout?.toString() || err.stderr?.toString() || err.message;
320
+ extSpinner.warn(`Extension ${finalExtName} failed: ${output}`);
298
321
  }
299
322
  }
300
323
  }
@@ -303,5 +326,6 @@ export async function setup() {
303
326
  console.log(`\n Start Tars: ${chalk.cyan('tars start')}`);
304
327
  console.log(` Check status: ${chalk.cyan('tars status')}`);
305
328
  console.log(` View logs: ${chalk.cyan('tars logs')}`);
329
+ console.log(` Invite Bot: ${chalk.cyan('tars discord')}\n`);
306
330
  }
307
331
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/cli/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1 @@
1
- export declare function start(options?: {
2
- name?: string;
3
- role?: string;
4
- }): Promise<void>;
1
+ export declare function start(): Promise<void>;
@@ -6,67 +6,57 @@ import fs from 'fs';
6
6
  import { fileURLToPath } from 'url';
7
7
  import { getTarsHome } from '../../utils/paths.js';
8
8
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
- export async function start(options = {}) {
10
- const instanceName = options.name || 'tars-supervisor';
11
- const role = options.role || 'General purpose';
12
- console.log(chalk.cyan(`🚀 Starting Tars supervisor [${instanceName}]...`));
9
+ export async function start() {
10
+ console.log(chalk.cyan('🚀 Starting Tars supervisor...'));
13
11
  // Point to the compiled JS entry point (dist/supervisor/main.js)
14
12
  const mainPath = path.resolve(__dirname, '../../supervisor/main.js');
13
+ // Pin CWD to the Tars home so the supervisor is truly global and doesn't
14
+ // pick up context from whatever directory the user runs `tars start` in.
15
15
  const tarsHome = getTarsHome();
16
16
  if (!fs.existsSync(tarsHome)) {
17
17
  fs.mkdirSync(tarsHome, { recursive: true });
18
18
  }
19
+ // Pre-start cleanup: Kill any stray orphans that aren't managed by PM2
20
+ try {
21
+ const { execSync } = await import('child_process');
22
+ execSync('pkill -9 -f "supervisor/main.js" || true');
23
+ }
24
+ catch (e) {
25
+ // Ignore Pkill errors
26
+ }
19
27
  return new Promise((resolve, reject) => {
20
28
  pm2.connect((err) => {
21
29
  if (err) {
22
30
  console.error(chalk.red('❌ Failed to connect to PM2'), err);
23
31
  process.exit(2);
24
- resolve();
32
+ resolve(); // Unreachable but typesafe
25
33
  return;
26
34
  }
27
- // Check if this specific instance is already running
28
- pm2.describe(instanceName, async (err, list) => {
29
- if (!err && list && list.length > 0) {
30
- const proc = list[0];
31
- if (proc.pm2_env?.status === 'online') {
32
- console.log(chalk.yellow(`⚠️ Tars supervisor [${instanceName}] is already running.`));
33
- console.log(` Use ${chalk.cyan('tars status')} to check status.`);
34
- pm2.disconnect();
35
- resolve();
36
- return;
37
- }
35
+ pm2.start({
36
+ script: mainPath,
37
+ name: 'tars-supervisor',
38
+ cwd: tarsHome,
39
+ interpreter: 'node',
40
+ env: {
41
+ NODE_ENV: 'production',
42
+ LOG_LEVEL: 'debug',
43
+ TARS_SUPERVISOR_MODE: 'true',
44
+ TARS_HOME: tarsHome,
45
+ REAL_HOME: os.homedir(),
46
+ NODE_NO_WARNINGS: '1'
47
+ },
48
+ node_args: ['--no-warnings', '--disable-warning=ExperimentalWarning']
49
+ }, (err, apps) => {
50
+ pm2.disconnect();
51
+ if (err) {
52
+ console.error(chalk.red('❌ Error starting Tars:'), err);
53
+ process.exit(1);
54
+ }
55
+ else {
56
+ console.log(chalk.green('✅ Tars supervisor is now running in the background.'));
57
+ console.log(` Use ${chalk.cyan('tars status')} to check status and logs.`);
58
+ resolve();
38
59
  }
39
- pm2.start({
40
- script: mainPath,
41
- name: instanceName,
42
- cwd: tarsHome,
43
- interpreter: 'node',
44
- env: {
45
- NODE_ENV: 'production',
46
- LOG_LEVEL: 'debug',
47
- TARS_SUPERVISOR_MODE: 'true',
48
- TARS_HOME: tarsHome,
49
- TARS_INSTANCE_NAME: instanceName,
50
- TARS_INSTANCE_ROLE: role,
51
- REAL_HOME: os.homedir(),
52
- NODE_NO_WARNINGS: '1'
53
- },
54
- node_args: ['--no-warnings', '--disable-warning=ExperimentalWarning']
55
- }, (err, apps) => {
56
- pm2.disconnect();
57
- if (err) {
58
- console.error(chalk.red(`❌ Error starting Tars [${instanceName}]:`), err);
59
- process.exit(1);
60
- }
61
- else {
62
- console.log(chalk.green(`✅ Tars supervisor [${instanceName}] is now running in the background.`));
63
- if (options.role) {
64
- console.log(chalk.dim(` Role: ${role}`));
65
- }
66
- console.log(` Use ${chalk.cyan('tars status')} to check status and logs.`);
67
- resolve();
68
- }
69
- });
70
60
  });
71
61
  });
72
62
  });
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,5 @@
1
1
  import pm2 from 'pm2';
2
2
  import chalk from 'chalk';
3
- import fs from 'fs';
4
- import path from 'path';
5
- import qrcode from 'qrcode-terminal';
6
3
  import { pkg, isDev } from '../../utils/version.js';
7
4
  import { Config } from '../../config/config.js';
8
5
  import { SessionManager } from '../../supervisor/session-manager.js';
@@ -53,22 +50,6 @@ export async function status() {
53
50
  console.log(`Total Usage: ${((sessionStats.totalNetTokens + sessionStats.totalOutputTokens) / 1000).toFixed(1)}k`);
54
51
  }
55
52
  console.log(`\nLogs: tars logs\n`);
56
- const qrPath = path.join(config.homeDir, 'data', 'whatsapp-qr.txt');
57
- if (fs.existsSync(qrPath)) {
58
- try {
59
- const qrString = fs.readFileSync(qrPath, 'utf8');
60
- if (qrString) {
61
- console.log(chalk.cyan('──────────────'));
62
- console.log(chalk.bold('📱 WhatsApp Registration Required'));
63
- console.log(chalk.dim('Scan the QR code below from your WhatsApp app to link Tars:'));
64
- qrcode.generate(qrString, { small: true });
65
- console.log('');
66
- }
67
- }
68
- catch (err) {
69
- // ignore if file couldn't be read in the split second it generated
70
- }
71
- }
72
53
  });
73
54
  });
74
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -20,8 +20,6 @@ program
20
20
  program
21
21
  .command('start')
22
22
  .description('Start the assistant supervisor in the background')
23
- .option('--name <name>', 'Name of the instance (default: tars-supervisor)')
24
- .option('--role <role>', 'Role of the instance for swarm coordination')
25
23
  .action(start);
26
24
  program.command('stop').description('Stop the assistant supervisor').action(stop);
27
25
  program
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}