expxagents 0.4.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,6 +30,9 @@ npx expxagents create
30
30
 
31
31
  # Run a squad
32
32
  npx expxagents run my-squad
33
+
34
+ # Open the virtual office (starts server if needed)
35
+ npx expxagents virtual-office
33
36
  ```
34
37
 
35
38
  ## How It Works
@@ -51,6 +54,7 @@ npx expxagents run my-squad
51
54
  | `expxagents list` | List all available squads |
52
55
  | `expxagents stop <name>` | Stop a running squad |
53
56
  | `expxagents server` | Start the dashboard server (port 3001) |
57
+ | `expxagents virtual-office` | Open the virtual office in browser |
54
58
  | `expxagents doctor` | Check system health and dependencies |
55
59
  | `expxagents install <skill>` | Install a skill from the catalog |
56
60
  | `expxagents uninstall <skill>` | Remove an installed skill |
@@ -85,7 +89,7 @@ ExpxAgents also works as a **Claude Code plugin** for IDE integration:
85
89
  /install-plugin https://github.com/bittencourtthulio/expxagents
86
90
  ```
87
91
 
88
- Then use `/expxagents` to access the main menu, create squads, run pipelines, and more — all from your editor.
92
+ Then use `/expxagents` to access the main menu, create squads, run pipelines, open the virtual office, and more — all from your editor.
89
93
 
90
94
  ## Core Architecture
91
95
 
@@ -140,6 +140,7 @@ Present using AskUserQuestion with 2-4 options:
140
140
  | \`/expxagents uninstall <name>\` | Remove installed skill |
141
141
  | \`/expxagents delete <name>\` | Confirm and delete squad |
142
142
  | \`/expxagents dashboard\` | Start server + open dashboard |
143
+ | \`/expxagents virtual-office\` | Start server + open virtual office in browser |
143
144
  | \`/expxagents help\` | Show help text |
144
145
 
145
146
  ## Loading Agents
@@ -213,8 +214,9 @@ SKILLS
213
214
  /expxagents uninstall Remove a skill
214
215
 
215
216
  SETTINGS
216
- /expxagents dashboard Open virtual office
217
- /expxagents help Show this help
217
+ /expxagents dashboard Open virtual office
218
+ /expxagents virtual-office Open virtual office in browser
219
+ /expxagents help Show this help
218
220
  \`\`\`
219
221
 
220
222
  ## Critical Rules
@@ -0,0 +1 @@
1
+ export declare function virtualOfficeCommand(): Promise<void>;
@@ -0,0 +1,49 @@
1
+ import { spawn, execSync } from 'child_process';
2
+ import path from 'path';
3
+ export async function virtualOfficeCommand() {
4
+ const port = process.env.PORT ?? '3001';
5
+ const url = `http://localhost:${port}/office`;
6
+ // Check if server is already running
7
+ let serverRunning = false;
8
+ try {
9
+ const res = await fetch(`http://localhost:${port}/api/health`);
10
+ serverRunning = res.ok;
11
+ }
12
+ catch {
13
+ serverRunning = false;
14
+ }
15
+ if (!serverRunning) {
16
+ console.log('Starting ExpxAgents server...');
17
+ const cwd = process.cwd();
18
+ const serverDir = path.join(cwd, 'server');
19
+ const child = spawn('node', ['dist/index.js'], {
20
+ cwd: serverDir,
21
+ stdio: 'inherit',
22
+ env: { ...process.env },
23
+ detached: true,
24
+ });
25
+ child.on('error', (err) => {
26
+ console.error(`Failed to start server: ${err.message}`);
27
+ process.exit(1);
28
+ });
29
+ // Wait for server to start
30
+ await new Promise((resolve) => setTimeout(resolve, 2000));
31
+ }
32
+ // Open browser
33
+ console.log(`Opening virtual office at ${url}`);
34
+ const platform = process.platform;
35
+ try {
36
+ if (platform === 'darwin') {
37
+ execSync(`open ${url}`);
38
+ }
39
+ else if (platform === 'linux') {
40
+ execSync(`xdg-open ${url}`);
41
+ }
42
+ else if (platform === 'win32') {
43
+ execSync(`start ${url}`);
44
+ }
45
+ }
46
+ catch {
47
+ console.log(`Could not open browser. Visit ${url} manually.`);
48
+ }
49
+ }
@@ -9,6 +9,7 @@ import { uninstallCommand } from './commands/uninstall.js';
9
9
  import { serverCommand } from './commands/server.js';
10
10
  import { doctorCommand } from './commands/doctor.js';
11
11
  import { onboardingCommand } from './commands/onboarding.js';
12
+ import { virtualOfficeCommand } from './commands/virtual-office.js';
12
13
  const program = new Command();
13
14
  program
14
15
  .name('expxagents')
@@ -55,4 +56,8 @@ program
55
56
  .command('onboarding')
56
57
  .description('Configure company profile and preferences')
57
58
  .action(onboardingCommand);
59
+ program
60
+ .command('virtual-office')
61
+ .description('Open the virtual office in browser')
62
+ .action(virtualOfficeCommand);
58
63
  program.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expxagents",
3
- "version": "0.4.1",
3
+ "version": "0.6.0",
4
4
  "description": "Multi-agent orchestration platform for AI squads",
5
5
  "author": "ExpxAgents",
6
6
  "license": "MIT",