@saccolabs/tars 1.0.53 → 1.3.2

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 (70) hide show
  1. package/README.md +10 -7
  2. package/dist/channels/channel-manager.d.ts +35 -0
  3. package/dist/channels/channel-manager.js +100 -0
  4. package/dist/channels/channel-manager.js.map +1 -0
  5. package/dist/channels/discord/discord-channel.d.ts +41 -0
  6. package/dist/channels/discord/discord-channel.js +200 -0
  7. package/dist/channels/discord/discord-channel.js.map +1 -0
  8. package/dist/channels/discord/message-formatter.js.map +1 -0
  9. package/dist/channels/types.d.ts +36 -0
  10. package/dist/channels/types.js +2 -0
  11. package/dist/channels/types.js.map +1 -0
  12. package/dist/channels/whatsapp/whatsapp-channel.d.ts +39 -0
  13. package/dist/channels/whatsapp/whatsapp-channel.js +198 -0
  14. package/dist/channels/whatsapp/whatsapp-channel.js.map +1 -0
  15. package/dist/cli/commands/discord.js +20 -5
  16. package/dist/cli/commands/discord.js.map +1 -1
  17. package/dist/cli/commands/export.js +5 -4
  18. package/dist/cli/commands/export.js.map +1 -1
  19. package/dist/cli/commands/import.js +5 -4
  20. package/dist/cli/commands/import.js.map +1 -1
  21. package/dist/cli/commands/quota.d.ts +1 -0
  22. package/dist/cli/commands/quota.js +62 -0
  23. package/dist/cli/commands/quota.js.map +1 -0
  24. package/dist/cli/commands/setup.js +120 -137
  25. package/dist/cli/commands/setup.js.map +1 -1
  26. package/dist/cli/commands/start.d.ts +4 -1
  27. package/dist/cli/commands/start.js +49 -38
  28. package/dist/cli/commands/start.js.map +1 -1
  29. package/dist/cli/commands/uninstall.js +9 -10
  30. package/dist/cli/commands/uninstall.js.map +1 -1
  31. package/dist/cli/index.js +30 -8
  32. package/dist/cli/index.js.map +1 -1
  33. package/dist/config/config.d.ts +14 -2
  34. package/dist/config/config.js +38 -18
  35. package/dist/config/config.js.map +1 -1
  36. package/dist/scripts/debug-cli.js +1 -1
  37. package/dist/scripts/debug-cli.js.map +1 -1
  38. package/dist/supervisor/cron-service.d.ts +3 -3
  39. package/dist/supervisor/cron-service.js +4 -4
  40. package/dist/supervisor/cron-service.js.map +1 -1
  41. package/dist/supervisor/gemini-engine.d.ts +4 -4
  42. package/dist/supervisor/gemini-engine.js +15 -10
  43. package/dist/supervisor/gemini-engine.js.map +1 -1
  44. package/dist/supervisor/heartbeat-service.js +1 -1
  45. package/dist/supervisor/heartbeat-service.js.map +1 -1
  46. package/dist/supervisor/main.js +63 -61
  47. package/dist/supervisor/main.js.map +1 -1
  48. package/dist/tools/get-quota.d.ts +11 -0
  49. package/dist/tools/get-quota.js +84 -0
  50. package/dist/tools/get-quota.js.map +1 -0
  51. package/dist/tools/send-discord-message.d.ts +9 -6
  52. package/dist/tools/send-discord-message.js +14 -21
  53. package/dist/tools/send-discord-message.js.map +1 -1
  54. package/dist/tools/send-notification.d.ts +15 -0
  55. package/dist/tools/send-notification.js +51 -0
  56. package/dist/tools/send-notification.js.map +1 -0
  57. package/dist/types/index.d.ts +1 -0
  58. package/dist/utils/brain-audit.js +2 -2
  59. package/dist/utils/brain-audit.js.map +1 -1
  60. package/dist/utils/paths.d.ts +9 -0
  61. package/dist/utils/paths.js +18 -0
  62. package/dist/utils/paths.js.map +1 -0
  63. package/package.json +11 -7
  64. package/src/prompts/system.md +6 -2
  65. package/dist/discord/discord-bot.d.ts +0 -37
  66. package/dist/discord/discord-bot.js +0 -205
  67. package/dist/discord/discord-bot.js.map +0 -1
  68. package/dist/discord/message-formatter.js.map +0 -1
  69. /package/dist/{discord → channels/discord}/message-formatter.d.ts +0 -0
  70. /package/dist/{discord → channels/discord}/message-formatter.js +0 -0
@@ -5,10 +5,10 @@ import { execSync } from 'child_process';
5
5
  import fs from 'fs/promises';
6
6
  import fsSync from 'fs';
7
7
  import path from 'path';
8
- import os from 'os';
9
8
  import { Client, GatewayIntentBits } from 'discord.js';
10
9
  import { TarsOAuthService } from '../../auth/oauth-service.js';
11
10
  import { BrainAuditor } from '../../utils/brain-audit.js';
11
+ import { getTarsHome } from '../../utils/paths.js';
12
12
  /**
13
13
  * Check if the isolated tars environment is authenticated
14
14
  */
@@ -31,11 +31,11 @@ export async function setup() {
31
31
  spinner.fail(`Node.js ≥ 22 required (found ${nodeVersion})`);
32
32
  process.exit(1);
33
33
  }
34
- const tarsHome = path.join(os.homedir(), '.tars');
34
+ const tarsHome = getTarsHome();
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/4: Google Authentication'));
38
+ console.log(chalk.bold('\nStep 1/5: Google Authentication'));
39
39
  console.log(chalk.dim('────────────────────────────────'));
40
40
  let performAuth = false;
41
41
  if (isAuthed) {
@@ -86,7 +86,9 @@ 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: Discord Bot ───────────────────────────────
89
+ // ── Step 2: Channel Configuration ─────────────────────
90
+ console.log(chalk.bold('\nStep 2/5: Communication Channels'));
91
+ console.log(chalk.dim('─────────────────────────────────'));
90
92
  let existingConfig = {};
91
93
  try {
92
94
  const data = await fs.readFile(path.join(tarsHome, 'config.json'), 'utf-8');
@@ -95,67 +97,114 @@ export async function setup() {
95
97
  catch {
96
98
  /* ignore */
97
99
  }
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 = {};
98
120
  let discordToken = existingConfig.discordToken || '';
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
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);
108
166
  }
109
- ]);
110
- if (!reAuthDiscord) {
111
- skipDiscord = true;
112
167
  }
168
+ channels.discord = {
169
+ enabled: true,
170
+ token: discordToken,
171
+ ownerId: existingConfig.discordOwnerId || undefined
172
+ };
113
173
  }
114
- if (!skipDiscord) {
115
- const answers = await inquirer.prompt([
174
+ // WhatsApp Wizard
175
+ if (selectedChannels.includes('whatsapp')) {
176
+ const waAnswers = await inquirer.prompt([
116
177
  {
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'
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).'
122
184
  }
123
185
  ]);
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)}`);
139
- }
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
- }
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".'));
154
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]
196
+ }
197
+ ]);
155
198
  // ── Step 3: Configuration ─────────────────────────────
156
- console.log(chalk.bold('\nStep 3/4: Configuration'));
157
- console.log(chalk.dim('────────────────────────'));
199
+ console.log(chalk.bold('\nStep 3/5: Identity & Engine'));
200
+ console.log(chalk.dim('────────────────────────────'));
158
201
  const config = await inquirer.prompt([
202
+ {
203
+ type: 'input',
204
+ name: 'assistantName',
205
+ message: 'Assistant Name (Display identity):',
206
+ default: existingConfig.assistantName || 'Tars'
207
+ },
159
208
  {
160
209
  type: 'list',
161
210
  name: 'geminiModel',
@@ -192,86 +241,40 @@ export async function setup() {
192
241
  default: existingConfig.heartbeatIntervalSec
193
242
  ? Math.floor(existingConfig.heartbeatIntervalSec / 60)
194
243
  : 30
195
- },
196
- {
197
- type: 'number',
198
- name: 'customHeartbeat',
199
- message: 'Enter heartbeat interval in minutes (Minimum 30):',
200
- when: (answers) => answers.heartbeatMinutes === 'custom',
201
- validate: (input) => {
202
- if (input < 30)
203
- return 'Minimum heartbeat interval is 30 minutes.';
204
- return true;
205
- }
206
244
  }
207
245
  ]);
208
246
  // ── Step 4: Installation ──────────────────────────────
209
- console.log(chalk.bold('\nStep 4/4: Installing'));
247
+ console.log(chalk.bold('\nStep 4/5: Installing'));
210
248
  console.log(chalk.dim('─────────────────────'));
211
- // 1. Audit and Heal existing brain if it exists
249
+ // 1. Audit and Heal
212
250
  const auditor = new BrainAuditor(tarsHome);
213
251
  await auditor.audit({ silent: true });
214
252
  // 2. Provision isolated environment
215
- // GEMINI_CLI_HOME=~/.tars → Gemini CLI looks for ~/.tars/.gemini/
216
253
  const installSpinner = ora('Provisioning environment...').start();
217
254
  const geminiDir = path.join(tarsHome, '.gemini');
218
- await fs.mkdir(path.join(tarsHome, 'data'), { recursive: true });
255
+ await fs.mkdir(path.join(tarsHome, 'data', 'uploads'), { recursive: true });
219
256
  await fs.mkdir(path.join(tarsHome, 'logs'), { recursive: true });
220
257
  await fs.mkdir(path.join(geminiDir, 'extensions'), { recursive: true });
221
258
  await fs.mkdir(path.join(geminiDir, 'tmp'), { recursive: true });
222
259
  await fs.mkdir(path.join(geminiDir, 'history'), { recursive: true });
223
260
  installSpinner.succeed('Directories created (~/.tars/.gemini/)');
224
- // ── Auth Credentials (Handled natively) ────────────────
225
- // Credentials are now created or verified directly in ~/.tars/.gemini/
226
- // during the setup process, so no migration from host is needed.
227
- // ── Write Gemini CLI settings.json ─────────────────────
228
- const settingsSpinner = ora('Configuring Gemini CLI settings...').start();
229
- try {
230
- const settingsTemplatePath = path.resolve(path.dirname(new URL(import.meta.url).pathname), '../../../context/config/settings.json-template');
231
- let geminiSettings = {};
232
- try {
233
- const templateData = await fs.readFile(settingsTemplatePath, 'utf-8');
234
- geminiSettings = JSON.parse(templateData);
235
- }
236
- catch {
237
- // Fallback
238
- geminiSettings = {
239
- model: {
240
- compressionThreshold: 0.2,
241
- summarizeToolOutput: {
242
- run_shell_command: { tokenBudget: 2000 }
243
- }
244
- },
245
- experimental: {
246
- enableAgents: true
247
- }
248
- };
249
- }
250
- if (!geminiSettings.security)
251
- geminiSettings.security = {};
252
- if (!geminiSettings.security.auth)
253
- geminiSettings.security.auth = {};
254
- geminiSettings.security.auth.selectedType = 'oauth-personal';
255
- await fs.writeFile(path.join(geminiDir, 'settings.json'), JSON.stringify(geminiSettings, null, 2));
256
- settingsSpinner.succeed('Gemini CLI settings configured from template.');
257
- }
258
- catch (err) {
259
- settingsSpinner.warn(`Could not write settings: ${err.message}`);
260
- }
261
- // Save Tars configuration
261
+ // ── Write Tars configuration ─────────────────────
262
262
  const saveSpinner = ora('Saving configuration...').start();
263
263
  const finalModel = config.geminiModel === 'custom' ? config.customModel : config.geminiModel;
264
- // Convert minutes to seconds
265
- const minutes = config.heartbeatMinutes === 'custom' ? config.customHeartbeat : config.heartbeatMinutes;
266
- const intervalSec = minutes * 60;
264
+ const intervalSec = (config.heartbeatMinutes === 'custom' ? config.customHeartbeat : config.heartbeatMinutes) *
265
+ 60;
267
266
  const configData = {
267
+ assistantName: config.assistantName,
268
268
  discordToken,
269
+ discordOwnerId: existingConfig.discordOwnerId,
269
270
  geminiModel: finalModel,
270
- heartbeatIntervalSec: intervalSec
271
+ heartbeatIntervalSec: intervalSec,
272
+ channels,
273
+ primaryChannel
271
274
  };
272
275
  await fs.writeFile(path.join(tarsHome, 'config.json'), JSON.stringify(configData, null, 2));
273
276
  saveSpinner.succeed('Configuration saved.');
274
- // 3. Install and Hydrate extensions
277
+ // Hydrate extensions (Scan extensions directory)
275
278
  const extensionsBaseSrc = path.resolve(path.dirname(new URL(import.meta.url).pathname), '../../../extensions');
276
279
  if (fsSync.existsSync(extensionsBaseSrc)) {
277
280
  const extensions = fsSync.readdirSync(extensionsBaseSrc);
@@ -283,34 +286,15 @@ export async function setup() {
283
286
  const linkTarget = path.join(geminiDir, 'extensions', finalExtName);
284
287
  const extSpinner = ora(`Installing extension: ${finalExtName}...`).start();
285
288
  try {
286
- // Remove existing
287
- if (fsSync.existsSync(linkTarget)) {
289
+ if (fsSync.existsSync(linkTarget))
288
290
  await fs.rm(linkTarget, { recursive: true, force: true });
289
- }
290
291
  await fs.cp(extSrc, linkTarget, { recursive: true });
291
- // Hydrate dependencies
292
- extSpinner.text = `Hydrating ${finalExtName} (npm install)...`;
293
- execSync('npm install --production', {
294
- cwd: linkTarget,
295
- stdio: 'pipe'
296
- });
297
- // Run build if package.json has a build script
298
- const pkgPath = path.join(linkTarget, 'package.json');
299
- if (fsSync.existsSync(pkgPath)) {
300
- const pkg = JSON.parse(fsSync.readFileSync(pkgPath, 'utf-8'));
301
- if (pkg.scripts?.build) {
302
- extSpinner.text = `Building ${finalExtName}...`;
303
- execSync('npm run build', {
304
- cwd: linkTarget,
305
- stdio: 'pipe'
306
- });
307
- }
308
- }
292
+ extSpinner.text = `Hydrating ${finalExtName}...`;
293
+ execSync('npm install --production', { cwd: linkTarget, stdio: 'pipe' });
309
294
  extSpinner.succeed(`Extension ready: ${finalExtName}`);
310
295
  }
311
296
  catch (err) {
312
- const output = err.stdout?.toString() || err.stderr?.toString() || err.message;
313
- extSpinner.warn(`Extension ${finalExtName} failed: ${output}`);
297
+ extSpinner.warn(`Extension ${finalExtName} failed: ${err.message}`);
314
298
  }
315
299
  }
316
300
  }
@@ -319,6 +303,5 @@ export async function setup() {
319
303
  console.log(`\n Start Tars: ${chalk.cyan('tars start')}`);
320
304
  console.log(` Check status: ${chalk.cyan('tars status')}`);
321
305
  console.log(` View logs: ${chalk.cyan('tars logs')}`);
322
- console.log(` Invite Bot: ${chalk.cyan('tars discord')}\n`);
323
306
  }
324
307
  //# 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":"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,oCAAoC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAE5D,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,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC/C;YACI,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,uDAAuD;YAChE,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;oBAChB,OAAO,EACH,CAAC,CAAC,cAAc,CAAC,YAAY,IAAI,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO;iBACnF;gBACD;oBACI,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO;iBACxD;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,IAAI,YAAY,GAAG,cAAc,CAAC,YAAY,IAAI,EAAE,CAAC;IAErD,iBAAiB;IACjB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACpE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAC5C;oBACI,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,8CAA8C;oBACvD,OAAO,EAAE,KAAK;iBACjB;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,aAAa;gBAAE,WAAW,GAAG,IAAI,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBAClC;oBACI,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,0BAA0B;oBACnC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,KAAK,CAAC,MAAM,GAAG,EAAE;wBACjB,kEAAkE;iBACzE;aACJ,CAAC,CAAC;YACH,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YAEpC,MAAM,eAAe,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;YACnE,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;oBACtB,OAAO,EAAE;wBACL,iBAAiB,CAAC,MAAM;wBACxB,iBAAiB,CAAC,aAAa;wBAC/B,iBAAiB,CAAC,cAAc;wBAChC,iBAAiB,CAAC,cAAc;qBACnC;iBACJ,CAAC,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACjC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;gBACjC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,eAAe,CAAC,OAAO,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,eAAe,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QACD,QAAQ,CAAC,OAAO,GAAG;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,cAAc,CAAC,cAAc,IAAI,SAAS;SACtD,CAAC;IACN,CAAC;IAED,kBAAkB;IAClB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACpC;gBACI,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,0EAA0E;gBACnF,OAAO,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,IAAI,EAAE;gBAC7D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAChB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;oBACzB,8DAA8D;aACrE;SACJ,CAAC,CAAC;QACH,QAAQ,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1E,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CAAC,2EAA2E,CAAC,CACzF,CAAC;IACN,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC7C;YACI,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,cAAc,CAAC,cAAc,IAAI,gBAAgB,CAAC,CAAC,CAAC;SAChE;KACJ,CAAC,CAAC;IAEH,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;QACjC,QAAQ;QACR,cAAc;KACjB,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 +1,4 @@
1
- export declare function start(): Promise<void>;
1
+ export declare function start(options?: {
2
+ name?: string;
3
+ role?: string;
4
+ }): Promise<void>;
@@ -4,58 +4,69 @@ import path from 'path';
4
4
  import os from 'os';
5
5
  import fs from 'fs';
6
6
  import { fileURLToPath } from 'url';
7
+ import { getTarsHome } from '../../utils/paths.js';
7
8
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
- export async function start() {
9
- console.log(chalk.cyan('🚀 Starting Tars supervisor...'));
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}]...`));
10
13
  // Point to the compiled JS entry point (dist/supervisor/main.js)
11
14
  const mainPath = path.resolve(__dirname, '../../supervisor/main.js');
12
- // Pin CWD to ~/.tars so the supervisor is truly global and doesn't
13
- // pick up context from whatever directory the user runs `tars start` in.
14
- const tarsHome = process.env.TARS_HOME || path.join(os.homedir(), '.tars');
15
+ const tarsHome = getTarsHome();
15
16
  if (!fs.existsSync(tarsHome)) {
16
17
  fs.mkdirSync(tarsHome, { recursive: true });
17
18
  }
18
- // Pre-start cleanup: Kill any stray orphans that aren't managed by PM2
19
- try {
20
- const { execSync } = await import('child_process');
21
- execSync('pkill -9 -f "supervisor/main.js" || true');
22
- }
23
- catch (e) {
24
- // Ignore Pkill errors
25
- }
26
19
  return new Promise((resolve, reject) => {
27
20
  pm2.connect((err) => {
28
21
  if (err) {
29
22
  console.error(chalk.red('❌ Failed to connect to PM2'), err);
30
23
  process.exit(2);
31
- resolve(); // Unreachable but typesafe
24
+ resolve();
32
25
  return;
33
26
  }
34
- pm2.start({
35
- script: mainPath,
36
- name: 'tars-supervisor',
37
- cwd: tarsHome,
38
- interpreter: 'node',
39
- env: {
40
- NODE_ENV: 'production',
41
- LOG_LEVEL: 'debug',
42
- TARS_SUPERVISOR_MODE: 'true',
43
- TARS_HOME: tarsHome,
44
- REAL_HOME: os.homedir(),
45
- NODE_NO_WARNINGS: '1'
46
- },
47
- node_args: ['--no-warnings', '--disable-warning=ExperimentalWarning']
48
- }, (err, apps) => {
49
- pm2.disconnect();
50
- if (err) {
51
- console.error(chalk.red('❌ Error starting Tars:'), err);
52
- process.exit(1);
53
- }
54
- else {
55
- console.log(chalk.green('✅ Tars supervisor is now running in the background.'));
56
- console.log(` Use ${chalk.cyan('tars status')} to check status and logs.`);
57
- resolve();
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
+ }
58
38
  }
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
+ });
59
70
  });
60
71
  });
61
72
  });
@@ -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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"}
@@ -3,15 +3,15 @@ import chalk from 'chalk';
3
3
  import inquirer from 'inquirer';
4
4
  import fs from 'fs/promises';
5
5
  import { existsSync } from 'fs';
6
- import os from 'os';
7
- import path from 'path';
8
6
  import { execSync } from 'child_process';
9
7
  import ora from 'ora';
8
+ import { getTarsHome } from '../../utils/paths.js';
10
9
  export async function uninstall() {
10
+ const tarsHome = getTarsHome();
11
11
  console.log(chalk.red.bold('\n⚠️ DANGER ZONE: Uninstall Tars ⚠️\n'));
12
12
  console.log(chalk.white('This action will:'));
13
13
  console.log(chalk.red(' 1. Stop and remove the Tars background supervisor'));
14
- console.log(chalk.red(' 2. PERMANENTLY DELETE ~/.tars (Your Brain, Memories, and Data)'));
14
+ console.log(chalk.red(` 2. PERMANENTLY DELETE ${tarsHome} (Your Brain, Memories, and Data)`));
15
15
  console.log(chalk.red(' 3. Remove all configuration and logs\n'));
16
16
  const { confirm } = await inquirer.prompt([
17
17
  {
@@ -57,21 +57,20 @@ export async function uninstall() {
57
57
  });
58
58
  });
59
59
  stopSpinner.succeed('Tars services stopped.');
60
- // 2. Remove ~/.tars
61
- const cleanSpinner = ora('Removing ~/.tars directory...').start();
62
- const tarsHome = process.env.TARS_HOME || path.join(process.env.REAL_HOME || os.homedir(), '.tars');
60
+ // 2. Remove Tars home directory
61
+ const cleanSpinner = ora(`Removing ${tarsHome} directory...`).start();
63
62
  if (existsSync(tarsHome)) {
64
63
  try {
65
64
  await fs.rm(tarsHome, { recursive: true, force: true });
66
- cleanSpinner.succeed('Data directory (~/.tars) permanently removed.');
65
+ cleanSpinner.succeed(`Data directory (${tarsHome}) permanently removed.`);
67
66
  }
68
67
  catch (error) {
69
- cleanSpinner.fail(`Failed to remove ~/.tars: ${error.message}`);
70
- console.log(chalk.yellow('\nYou may need to manually remove the directory using: rm -rf ~/.tars'));
68
+ cleanSpinner.fail(`Failed to remove ${tarsHome}: ${error.message}`);
69
+ console.log(chalk.yellow(`\nYou may need to manually remove the directory using: rm -rf ${tarsHome}`));
71
70
  }
72
71
  }
73
72
  else {
74
- cleanSpinner.info('~/.tars directory not found (already clean).');
73
+ cleanSpinner.info(`${tarsHome} directory not found (already clean).`);
75
74
  }
76
75
  // 3. Final message
77
76
  console.log(chalk.green.bold('\n✅ Tars has been scrubbed from this system.'));
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAGhC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,QAAQ,mCAAmC,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC;IAEnE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QACtC;YACI,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,8CAA8C;YACvD,OAAO,EAAE,KAAK;SACjB;KACJ,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO;IACX,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC3C;YACI,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,4CAA4C;YACrD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oCAAoC,CAAC;SAC1F;KACJ,CAAC,CAAC;IAEH,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAClD,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,eAAe;IACf,MAAM,WAAW,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAChC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChB,IAAI,GAAG,EAAE,CAAC;gBACN,6CAA6C;gBAC7C,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,OAAO;YACX,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE;gBACrC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACjB,sDAAsD;gBACtD,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE9C,gCAAgC;IAChC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,QAAQ,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,YAAY,CAAC,OAAO,CAAC,mBAAmB,QAAQ,wBAAwB,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,oBAAoB,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,CACR,iEAAiE,QAAQ,EAAE,CAC9E,CACJ,CAAC;QACN,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,uCAAuC,CAAC,CAAC;IAC1E,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,SAAS;IACd,IAAI,CAAC;QACD,QAAQ,CAAC,0CAA0C,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,SAAS;IACb,CAAC;AACL,CAAC"}