xhawk 1.0.77

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 ADDED
@@ -0,0 +1,87 @@
1
+ # XHawk Agent
2
+
3
+ AI-powered task execution agent with Claude CLI integration.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # Run agent directly
9
+ npx xhawk <agent_token>
10
+
11
+ # Or install as daemon (auto-start on boot)
12
+ npx xhawk install <agent_token>
13
+ ```
14
+
15
+ ## Features
16
+
17
+ - **Claude CLI Integration**: Execute Claude commands with session continuity
18
+ - **Session Resumption**: Continue conversations across messages using `--resume`
19
+ - **JSON Streaming**: Parse Claude's stream-json output for structured responses
20
+ - **Daemon Mode**: Install as background service (launchd on macOS, systemd on Linux)
21
+ - **Auto-Reconnect**: Automatic WebSocket reconnection with exponential backoff
22
+ - **Permission Bypass**: Run with `--dangerously-skip-permissions` for automation
23
+
24
+ ## Commands
25
+
26
+ ```bash
27
+ # Run in foreground (for testing)
28
+ npx xhawk run <token>
29
+
30
+ # Install as daemon
31
+ npx xhawk install <token>
32
+
33
+ # Check status
34
+ npx xhawk status
35
+
36
+ # View logs
37
+ npx xhawk logs
38
+ npx xhawk logs -n 100 # Last 100 lines
39
+
40
+ # Restart daemon
41
+ npx xhawk restart
42
+
43
+ # Uninstall daemon
44
+ npx xhawk uninstall
45
+ ```
46
+
47
+ ## Get Your Agent Token
48
+
49
+ 1. Go to [xhawk.ai/settings/agents](https://xhawk.ai/settings/agents)
50
+ 2. Create a new agent
51
+ 3. Copy the token (starts with `agt_`)
52
+
53
+ ## How It Works
54
+
55
+ 1. Agent connects to XHawk Cloud via WebSocket
56
+ 2. Commands are received and executed using Claude CLI
57
+ 3. Session IDs are tracked for conversation continuity
58
+ 4. Results are streamed back to the server
59
+
60
+ ## Architecture
61
+
62
+ ```
63
+ XHawk Cloud <--WebSocket--> Agent Daemon <--CLI--> Claude Code
64
+ |
65
+ v
66
+ Claude Session
67
+ (--resume for continuity)
68
+ ```
69
+
70
+ ## Requirements
71
+
72
+ - Node.js 18+
73
+ - Claude CLI (`npx @anthropic-ai/claude-code`)
74
+ - macOS or Linux
75
+
76
+ ## Development
77
+
78
+ ```bash
79
+ cd xhawk-agent/npm
80
+ npm install
81
+ npm run build
82
+ npm run dev -- run <token>
83
+ ```
84
+
85
+ ## License
86
+
87
+ MIT
Binary file
@@ -0,0 +1 @@
1
+ 6604810ebcc4f657d04e791821bc73d626d7f3db561d95601ec2969309f079b7 build/xhawk-darwin-amd64
Binary file
@@ -0,0 +1 @@
1
+ 97c0d736dfab6977c4ff44769fa8fb8df0e4005a3e5d934024ba4c40d4cf48ca build/xhawk-darwin-arm64
Binary file
@@ -0,0 +1 @@
1
+ 1a9db3c17d69b7911aa4ef389798ae7322c599fcc5733d02d12acb7d2053bc22 build/xhawk-linux-amd64
Binary file
@@ -0,0 +1 @@
1
+ 5db1269c09f5cef92861f1963750ec3e16fb0c530c61a8659b37399645f46c2e build/xhawk-linux-arm64
Binary file
@@ -0,0 +1 @@
1
+ 1c6525a34e69e382ef4794179068a98e5fd114c6576c737b9b1c1e5484f642d3 build/xhawk-windows-amd64.exe
@@ -0,0 +1,8 @@
1
+ import { ChildProcess } from 'child_process';
2
+ export declare function getPlatformBinary(): string;
3
+ export declare function getBinaryPath(): string;
4
+ export declare function isBinaryInstalled(): boolean;
5
+ export declare function ensureBinaryExists(): Promise<string>;
6
+ export declare function runBinary(args: string[]): ChildProcess;
7
+ export declare function runBinarySync(args: string[]): string;
8
+ //# sourceMappingURL=binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAU9D,wBAAgB,iBAAiB,IAAI,MAAM,CAoC1C;AAED,wBAAgB,aAAa,IAAI,MAAM,CAiBtC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CA8B1D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CActD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWpD"}
package/dist/binary.js ADDED
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getPlatformBinary = getPlatformBinary;
37
+ exports.getBinaryPath = getBinaryPath;
38
+ exports.isBinaryInstalled = isBinaryInstalled;
39
+ exports.ensureBinaryExists = ensureBinaryExists;
40
+ exports.runBinary = runBinary;
41
+ exports.runBinarySync = runBinarySync;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const os = __importStar(require("os"));
45
+ const child_process_1 = require("child_process");
46
+ const BINARY_NAME = 'xhawk';
47
+ // Binary locations (checked in order)
48
+ // 1. Bundled with npm package (production)
49
+ // 2. Local build directory (development)
50
+ const BUNDLED_BIN_DIR = path.join(__dirname, '..', 'bin');
51
+ const LOCAL_BUILD_DIR = path.join(__dirname, '..', '..', 'build');
52
+ function getPlatformBinary() {
53
+ const platform = os.platform();
54
+ const arch = os.arch();
55
+ let osName;
56
+ let archName;
57
+ // Map Node.js platform to Go GOOS
58
+ switch (platform) {
59
+ case 'darwin':
60
+ osName = 'darwin';
61
+ break;
62
+ case 'linux':
63
+ osName = 'linux';
64
+ break;
65
+ case 'win32':
66
+ osName = 'windows';
67
+ break;
68
+ default:
69
+ throw new Error(`Unsupported platform: ${platform}`);
70
+ }
71
+ // Map Node.js arch to Go GOARCH
72
+ switch (arch) {
73
+ case 'x64':
74
+ archName = 'amd64';
75
+ break;
76
+ case 'arm64':
77
+ archName = 'arm64';
78
+ break;
79
+ default:
80
+ throw new Error(`Unsupported architecture: ${arch}`);
81
+ }
82
+ const ext = platform === 'win32' ? '.exe' : '';
83
+ return `${BINARY_NAME}-${osName}-${archName}${ext}`;
84
+ }
85
+ function getBinaryPath() {
86
+ const binaryName = getPlatformBinary();
87
+ // Check bundled location first (npm package)
88
+ const bundledPath = path.join(BUNDLED_BIN_DIR, binaryName);
89
+ if (fs.existsSync(bundledPath)) {
90
+ return bundledPath;
91
+ }
92
+ // Fall back to local build (development)
93
+ const localPath = path.join(LOCAL_BUILD_DIR, binaryName);
94
+ if (fs.existsSync(localPath)) {
95
+ return localPath;
96
+ }
97
+ // Return bundled path (will fail with helpful error if not found)
98
+ return bundledPath;
99
+ }
100
+ function isBinaryInstalled() {
101
+ const binaryPath = getBinaryPath();
102
+ return fs.existsSync(binaryPath);
103
+ }
104
+ async function ensureBinaryExists() {
105
+ const binaryName = getPlatformBinary();
106
+ // Check bundled location
107
+ const bundledPath = path.join(BUNDLED_BIN_DIR, binaryName);
108
+ if (fs.existsSync(bundledPath)) {
109
+ return bundledPath;
110
+ }
111
+ // Check local build
112
+ const localPath = path.join(LOCAL_BUILD_DIR, binaryName);
113
+ if (fs.existsSync(localPath)) {
114
+ // Copy to bin directory for consistency
115
+ if (!fs.existsSync(BUNDLED_BIN_DIR)) {
116
+ fs.mkdirSync(BUNDLED_BIN_DIR, { recursive: true });
117
+ }
118
+ fs.copyFileSync(localPath, bundledPath);
119
+ if (os.platform() !== 'win32') {
120
+ fs.chmodSync(bundledPath, 0o755);
121
+ }
122
+ return bundledPath;
123
+ }
124
+ throw new Error(`XHawk binary not found for ${os.platform()}/${os.arch()}\n` +
125
+ `Expected: ${binaryName}\n\n` +
126
+ `For development, run:\n` +
127
+ ` cd xhawk-agent && ./scripts/build.sh\n\n` +
128
+ `For production, ensure binaries are bundled in the npm package.`);
129
+ }
130
+ function runBinary(args) {
131
+ const binaryPath = getBinaryPath();
132
+ if (!fs.existsSync(binaryPath)) {
133
+ throw new Error(`XHawk binary not found at ${binaryPath}\n` +
134
+ `Run 'npx xhawk' to download it automatically.`);
135
+ }
136
+ return (0, child_process_1.spawn)(binaryPath, args, {
137
+ stdio: 'inherit',
138
+ env: process.env,
139
+ });
140
+ }
141
+ function runBinarySync(args) {
142
+ const binaryPath = getBinaryPath();
143
+ if (!fs.existsSync(binaryPath)) {
144
+ throw new Error(`XHawk binary not found at ${binaryPath}`);
145
+ }
146
+ return (0, child_process_1.execSync)(`"${binaryPath}" ${args.join(' ')}`, {
147
+ encoding: 'utf-8',
148
+ env: process.env,
149
+ });
150
+ }
151
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../src/binary.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,324 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const binary_1 = require("./binary");
11
+ const installer_1 = require("./installer");
12
+ const pkg = require('../package.json');
13
+ const VERSION = pkg.version;
14
+ // ASCII Art Banner
15
+ const banner = `
16
+ ${chalk_1.default.hex('#E07A5F')('╔═══════════════════════════════════════╗')}
17
+ ${chalk_1.default.hex('#E07A5F')('║')} ${chalk_1.default.bold.white('XHawk Agent')} ${chalk_1.default.gray(`v${VERSION}`)} ${chalk_1.default.hex('#E07A5F')('║')}
18
+ ${chalk_1.default.hex('#E07A5F')('║')} ${chalk_1.default.gray('AI-Powered Task Execution')} ${chalk_1.default.hex('#E07A5F')('║')}
19
+ ${chalk_1.default.hex('#E07A5F')('╚═══════════════════════════════════════╝')}
20
+ `;
21
+ // Custom help display
22
+ function showHelp() {
23
+ console.log(banner);
24
+ console.log(chalk_1.default.bold.white('USAGE'));
25
+ console.log(chalk_1.default.gray(' $ ') + chalk_1.default.cyan('npx xhawk') + chalk_1.default.white(' <command>') + chalk_1.default.gray(' [options]'));
26
+ console.log();
27
+ console.log(chalk_1.default.bold.white('QUICK START'));
28
+ console.log(chalk_1.default.gray(' Get your token from: ') + chalk_1.default.cyan('https://xhawk.ai/agents'));
29
+ console.log();
30
+ console.log(chalk_1.default.gray(' # Run in foreground (for testing)'));
31
+ console.log(chalk_1.default.white(' $ npx xhawk agt_your_token_here'));
32
+ console.log();
33
+ console.log(chalk_1.default.gray(' # Install as background daemon (recommended)'));
34
+ console.log(chalk_1.default.white(' $ npx xhawk install agt_your_token_here'));
35
+ console.log();
36
+ console.log(chalk_1.default.bold.white('COMMANDS'));
37
+ console.log();
38
+ console.log(chalk_1.default.hex('#E07A5F')(' Running Agent'));
39
+ console.log(chalk_1.default.white(' run <token> ') + chalk_1.default.gray('Run agent in foreground mode'));
40
+ console.log(chalk_1.default.white(' <token> ') + chalk_1.default.gray('Shorthand for "run <token>"'));
41
+ console.log();
42
+ console.log(chalk_1.default.hex('#E07A5F')(' Daemon Management'));
43
+ console.log(chalk_1.default.white(' install <token> ') + chalk_1.default.gray('Install as background daemon (auto-start on boot)'));
44
+ console.log(chalk_1.default.white(' uninstall ') + chalk_1.default.gray('Remove daemon and stop agent'));
45
+ console.log(chalk_1.default.white(' status ') + chalk_1.default.gray('Check if daemon is running'));
46
+ console.log(chalk_1.default.white(' restart ') + chalk_1.default.gray('Restart the daemon'));
47
+ console.log(chalk_1.default.white(' logs ') + chalk_1.default.gray('View daemon logs'));
48
+ console.log();
49
+ console.log(chalk_1.default.bold.white('OPTIONS'));
50
+ console.log(chalk_1.default.white(' -s, --server <url> ') + chalk_1.default.gray('Custom server URL'));
51
+ console.log(chalk_1.default.white(' -d, --debug ') + chalk_1.default.gray('Enable debug output'));
52
+ console.log(chalk_1.default.white(' -n, --lines <num> ') + chalk_1.default.gray('Number of log lines (default: 50)'));
53
+ console.log(chalk_1.default.white(' -V, --version ') + chalk_1.default.gray('Show version'));
54
+ console.log(chalk_1.default.white(' -h, --help ') + chalk_1.default.gray('Show this help'));
55
+ console.log();
56
+ console.log(chalk_1.default.bold.white('ENVIRONMENT VARIABLES'));
57
+ console.log(chalk_1.default.white(' XHAWK_SERVER ') + chalk_1.default.gray('Default server URL'));
58
+ console.log();
59
+ console.log(chalk_1.default.bold.white('EXAMPLES'));
60
+ console.log(chalk_1.default.gray(' # Test connection in foreground'));
61
+ console.log(chalk_1.default.white(' $ npx xhawk agt_abc123xyz'));
62
+ console.log();
63
+ console.log(chalk_1.default.gray(' # Install daemon with custom server'));
64
+ console.log(chalk_1.default.white(' $ npx xhawk install agt_abc123xyz --server https://my-server.com'));
65
+ console.log();
66
+ console.log(chalk_1.default.gray(' # View last 100 lines of logs'));
67
+ console.log(chalk_1.default.white(' $ npx xhawk logs -n 100'));
68
+ console.log();
69
+ console.log(chalk_1.default.gray(' # Check status and restart if needed'));
70
+ console.log(chalk_1.default.white(' $ npx xhawk status && npx xhawk restart'));
71
+ console.log();
72
+ console.log(chalk_1.default.gray('─'.repeat(45)));
73
+ console.log(chalk_1.default.gray(' Documentation: ') + chalk_1.default.cyan('https://xhawk.ai/docs'));
74
+ console.log(chalk_1.default.gray(' Support: ') + chalk_1.default.cyan('https://xhawk.ai/support'));
75
+ console.log(chalk_1.default.gray('─'.repeat(45)));
76
+ }
77
+ async function ensureBinary() {
78
+ if (!(0, binary_1.isBinaryInstalled)()) {
79
+ const spinner = (0, ora_1.default)({
80
+ text: 'Setting up XHawk binary...',
81
+ color: 'cyan',
82
+ }).start();
83
+ try {
84
+ await (0, binary_1.ensureBinaryExists)();
85
+ spinner.succeed(chalk_1.default.green('XHawk binary ready'));
86
+ }
87
+ catch (error) {
88
+ spinner.fail(chalk_1.default.red('Binary not found'));
89
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
90
+ process.exit(1);
91
+ }
92
+ }
93
+ }
94
+ const program = new commander_1.Command();
95
+ program
96
+ .name('xhawk')
97
+ .description('XHawk Agent CLI - Connect your machine to execute AI-powered tasks')
98
+ .version(VERSION)
99
+ .helpOption('-h, --help', 'Show help')
100
+ .addHelpCommand(false)
101
+ .configureHelp({
102
+ formatHelp: () => '', // Suppress default help
103
+ })
104
+ .on('--help', () => {
105
+ showHelp();
106
+ });
107
+ // Install command - installs xhawk as a daemon
108
+ program
109
+ .command('install')
110
+ .description('Install XHawk as a background daemon')
111
+ .argument('<token>', 'Agent token (e.g., agt_abc123xyz)')
112
+ .option('-s, --server <url>', 'Server URL', process.env.XHAWK_SERVER || 'https://supaamp-api-956843615563.us-central1.run.app')
113
+ .action(async (token, options) => {
114
+ console.log(banner);
115
+ if (!token.startsWith('agt_')) {
116
+ console.error(chalk_1.default.red('✖ Invalid token format. Token must start with "agt_"'));
117
+ process.exit(1);
118
+ }
119
+ // Ensure binary is downloaded first
120
+ await ensureBinary();
121
+ const spinner = (0, ora_1.default)({
122
+ text: 'Installing XHawk daemon...',
123
+ color: 'cyan',
124
+ }).start();
125
+ try {
126
+ await (0, installer_1.install)(token, options.server);
127
+ spinner.succeed(chalk_1.default.green('XHawk daemon installed successfully'));
128
+ console.log(chalk_1.default.gray('\n─'.repeat(45)));
129
+ console.log(chalk_1.default.white(' Token: ') + chalk_1.default.hex('#E07A5F')(token.substring(0, 20) + '...'));
130
+ console.log(chalk_1.default.white(' Server: ') + chalk_1.default.cyan(options.server));
131
+ console.log(chalk_1.default.white(' Status: ') + chalk_1.default.green('● Running'));
132
+ console.log(chalk_1.default.gray('─'.repeat(45)));
133
+ console.log(chalk_1.default.gray('\nCommands:'));
134
+ console.log(chalk_1.default.white(' npx xhawk status ') + chalk_1.default.gray('- Check daemon status'));
135
+ console.log(chalk_1.default.white(' npx xhawk logs ') + chalk_1.default.gray('- View daemon logs'));
136
+ console.log(chalk_1.default.white(' npx xhawk restart ') + chalk_1.default.gray('- Restart daemon'));
137
+ console.log(chalk_1.default.white(' npx xhawk uninstall ') + chalk_1.default.gray('- Remove daemon'));
138
+ }
139
+ catch (error) {
140
+ spinner.fail(chalk_1.default.red('Failed to install daemon'));
141
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
142
+ process.exit(1);
143
+ }
144
+ });
145
+ // Uninstall command
146
+ program
147
+ .command('uninstall')
148
+ .description('Uninstall XHawk daemon')
149
+ .action(async () => {
150
+ console.log(banner);
151
+ const spinner = (0, ora_1.default)({
152
+ text: 'Uninstalling XHawk daemon...',
153
+ color: 'cyan',
154
+ }).start();
155
+ try {
156
+ await (0, installer_1.uninstall)();
157
+ spinner.succeed(chalk_1.default.green('XHawk daemon uninstalled'));
158
+ }
159
+ catch (error) {
160
+ spinner.fail(chalk_1.default.red('Failed to uninstall'));
161
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
162
+ process.exit(1);
163
+ }
164
+ });
165
+ // Status command
166
+ program
167
+ .command('status')
168
+ .description('Check XHawk daemon status')
169
+ .action(async () => {
170
+ console.log(banner);
171
+ try {
172
+ const { running, pid, config } = await (0, installer_1.status)();
173
+ console.log(chalk_1.default.gray('─'.repeat(45)));
174
+ if (running) {
175
+ console.log(chalk_1.default.white(' Status: ') + chalk_1.default.green('● Running'));
176
+ if (pid) {
177
+ console.log(chalk_1.default.white(' PID: ') + chalk_1.default.cyan(pid.toString()));
178
+ }
179
+ if (config) {
180
+ console.log(chalk_1.default.white(' Server: ') + chalk_1.default.cyan(config.server));
181
+ console.log(chalk_1.default.white(' Since: ') + chalk_1.default.gray(config.installedAt));
182
+ }
183
+ }
184
+ else {
185
+ console.log(chalk_1.default.white(' Status: ') + chalk_1.default.red('○ Not running'));
186
+ if (config) {
187
+ console.log(chalk_1.default.gray(' (Daemon is installed but not running)'));
188
+ }
189
+ else {
190
+ console.log(chalk_1.default.gray(' (Daemon is not installed)'));
191
+ }
192
+ }
193
+ console.log(chalk_1.default.gray('─'.repeat(45)));
194
+ }
195
+ catch (error) {
196
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
197
+ process.exit(1);
198
+ }
199
+ });
200
+ // Logs command
201
+ program
202
+ .command('logs')
203
+ .description('View XHawk daemon logs')
204
+ .option('-n, --lines <number>', 'Number of lines to show', '50')
205
+ .option('-f, --follow', 'Follow log output (not implemented)', false)
206
+ .action(async (options) => {
207
+ const lines = parseInt(options.lines, 10) || 50;
208
+ const { stdout, stderr } = (0, installer_1.getLogs)(lines);
209
+ if (stdout) {
210
+ console.log(chalk_1.default.green('=== stdout ==='));
211
+ console.log(stdout);
212
+ }
213
+ if (stderr) {
214
+ console.log(chalk_1.default.red('\n=== stderr ==='));
215
+ console.log(stderr);
216
+ }
217
+ if (!stdout && !stderr) {
218
+ console.log(chalk_1.default.gray('No logs found. Is the daemon installed?'));
219
+ }
220
+ });
221
+ // Restart command
222
+ program
223
+ .command('restart')
224
+ .description('Restart XHawk daemon')
225
+ .action(async () => {
226
+ console.log(banner);
227
+ const spinner = (0, ora_1.default)({
228
+ text: 'Restarting XHawk daemon...',
229
+ color: 'cyan',
230
+ }).start();
231
+ try {
232
+ (0, installer_1.restart)();
233
+ spinner.succeed(chalk_1.default.green('XHawk daemon restarted'));
234
+ }
235
+ catch (error) {
236
+ spinner.fail(chalk_1.default.red('Failed to restart'));
237
+ console.error(chalk_1.default.red(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`));
238
+ process.exit(1);
239
+ }
240
+ });
241
+ // Run command - runs the Go binary directly
242
+ program
243
+ .command('run')
244
+ .description('Run agent directly (foreground mode)')
245
+ .argument('<token>', 'Agent token')
246
+ .option('-s, --server <url>', 'Server URL', process.env.XHAWK_SERVER || 'https://supaamp-api-956843615563.us-central1.run.app')
247
+ .option('-d, --debug', 'Enable debug mode', false)
248
+ .action(async (token, options) => {
249
+ if (!token.startsWith('agt_')) {
250
+ console.error(chalk_1.default.red('✖ Invalid token format. Token must start with "agt_"'));
251
+ process.exit(1);
252
+ }
253
+ // Ensure binary is downloaded
254
+ await ensureBinary();
255
+ // Build args for Go binary
256
+ const args = ['run', '--token', token, '--server', options.server];
257
+ if (options.debug) {
258
+ args.push('--debug');
259
+ }
260
+ // Run the Go binary
261
+ const child = (0, binary_1.runBinary)(args);
262
+ // Handle signals
263
+ process.on('SIGINT', () => {
264
+ child.kill('SIGINT');
265
+ });
266
+ process.on('SIGTERM', () => {
267
+ child.kill('SIGTERM');
268
+ });
269
+ child.on('exit', (code) => {
270
+ process.exit(code || 0);
271
+ });
272
+ });
273
+ // Help command
274
+ program
275
+ .command('help')
276
+ .description('Show help information')
277
+ .action(() => {
278
+ showHelp();
279
+ });
280
+ // Default action - show help or run with token
281
+ program
282
+ .argument('[token]', 'Agent token (shorthand for "xhawk run <token>")')
283
+ .option('-s, --server <url>', 'Server URL', process.env.XHAWK_SERVER || 'https://supaamp-api-956843615563.us-central1.run.app')
284
+ .option('-d, --debug', 'Enable debug mode', false)
285
+ .action(async (token, options) => {
286
+ if (!token) {
287
+ showHelp();
288
+ return;
289
+ }
290
+ // Treat as 'run' command
291
+ console.log(banner);
292
+ if (!token.startsWith('agt_')) {
293
+ console.error(chalk_1.default.red('✖ Invalid token format. Token must start with "agt_"'));
294
+ process.exit(1);
295
+ }
296
+ // Ensure binary is downloaded
297
+ await ensureBinary();
298
+ console.log(chalk_1.default.gray('─'.repeat(45)));
299
+ console.log(chalk_1.default.white(' Agent Token: ') + chalk_1.default.hex('#E07A5F')(token.substring(0, 20) + '...'));
300
+ console.log(chalk_1.default.white(' Server: ') + chalk_1.default.cyan(options.server));
301
+ console.log(chalk_1.default.gray('─'.repeat(45)));
302
+ console.log(chalk_1.default.yellow('\n⚠️ Running in foreground mode.'));
303
+ console.log(chalk_1.default.gray(' Use "npx xhawk install <token>" to run as daemon.\n'));
304
+ console.log(chalk_1.default.gray('Press Ctrl+C to disconnect\n'));
305
+ // Build args for Go binary
306
+ const args = ['run', '--token', token, '--server', options.server];
307
+ if (options.debug) {
308
+ args.push('--debug');
309
+ }
310
+ // Run the Go binary
311
+ const child = (0, binary_1.runBinary)(args);
312
+ process.on('SIGINT', () => {
313
+ console.log(chalk_1.default.yellow('\n\n⚡ Shutting down agent...'));
314
+ child.kill('SIGINT');
315
+ });
316
+ process.on('SIGTERM', () => {
317
+ child.kill('SIGTERM');
318
+ });
319
+ child.on('exit', (code) => {
320
+ process.exit(code || 0);
321
+ });
322
+ });
323
+ program.parse();
324
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { install, uninstall, status, getLogs, restart } from './installer';
2
+ export { getBinaryPath, isBinaryInstalled, ensureBinaryExists, runBinary } from './binary';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runBinary = exports.ensureBinaryExists = exports.isBinaryInstalled = exports.getBinaryPath = exports.restart = exports.getLogs = exports.status = exports.uninstall = exports.install = void 0;
4
+ // XHawk Agent - npm wrapper for Go binary
5
+ var installer_1 = require("./installer");
6
+ Object.defineProperty(exports, "install", { enumerable: true, get: function () { return installer_1.install; } });
7
+ Object.defineProperty(exports, "uninstall", { enumerable: true, get: function () { return installer_1.uninstall; } });
8
+ Object.defineProperty(exports, "status", { enumerable: true, get: function () { return installer_1.status; } });
9
+ Object.defineProperty(exports, "getLogs", { enumerable: true, get: function () { return installer_1.getLogs; } });
10
+ Object.defineProperty(exports, "restart", { enumerable: true, get: function () { return installer_1.restart; } });
11
+ var binary_1 = require("./binary");
12
+ Object.defineProperty(exports, "getBinaryPath", { enumerable: true, get: function () { return binary_1.getBinaryPath; } });
13
+ Object.defineProperty(exports, "isBinaryInstalled", { enumerable: true, get: function () { return binary_1.isBinaryInstalled; } });
14
+ Object.defineProperty(exports, "ensureBinaryExists", { enumerable: true, get: function () { return binary_1.ensureBinaryExists; } });
15
+ Object.defineProperty(exports, "runBinary", { enumerable: true, get: function () { return binary_1.runBinary; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAC1C,yCAA2E;AAAlE,oGAAA,OAAO,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,oGAAA,OAAO,OAAA;AACrD,mCAA2F;AAAlF,uGAAA,aAAa,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,mGAAA,SAAS,OAAA"}
@@ -0,0 +1,21 @@
1
+ interface DaemonConfig {
2
+ token: string;
3
+ server: string;
4
+ env: Record<string, string>;
5
+ installedAt: string;
6
+ binaryPath: string;
7
+ }
8
+ export declare function install(token: string, server: string): Promise<void>;
9
+ export declare function uninstall(): Promise<void>;
10
+ export declare function status(): Promise<{
11
+ running: boolean;
12
+ pid?: number;
13
+ config?: DaemonConfig;
14
+ }>;
15
+ export declare function getLogs(lines?: number): {
16
+ stdout: string;
17
+ stderr: string;
18
+ };
19
+ export declare function restart(): void;
20
+ export {};
21
+ //# sourceMappingURL=installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAWA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AA6HD,wBAAsB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE1E;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAmC/C;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC,CAmCjG;AAED,wBAAgB,OAAO,CAAC,KAAK,GAAE,MAAW,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAwB9E;AAED,wBAAgB,OAAO,IAAI,IAAI,CAqB9B"}
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.install = install;
37
+ exports.uninstall = uninstall;
38
+ exports.status = status;
39
+ exports.getLogs = getLogs;
40
+ exports.restart = restart;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const os = __importStar(require("os"));
44
+ const child_process_1 = require("child_process");
45
+ const binary_1 = require("./binary");
46
+ const DAEMON_NAME = 'ai.xhawk.agent';
47
+ const LOG_DIR = path.join(os.homedir(), '.xhawk', 'logs');
48
+ const CONFIG_DIR = path.join(os.homedir(), '.xhawk');
49
+ const ENV_FILE = path.join(CONFIG_DIR, 'env.json');
50
+ // Ensure directories exist
51
+ function ensureDirectories() {
52
+ if (!fs.existsSync(CONFIG_DIR)) {
53
+ fs.mkdirSync(CONFIG_DIR, { recursive: true });
54
+ }
55
+ if (!fs.existsSync(LOG_DIR)) {
56
+ fs.mkdirSync(LOG_DIR, { recursive: true });
57
+ }
58
+ }
59
+ // Capture current environment for daemon use
60
+ function captureEnvironment() {
61
+ const important = [
62
+ 'PATH', 'HOME', 'USER', 'SHELL', 'LANG', 'LC_ALL', 'LC_CTYPE',
63
+ 'TERM', 'TMPDIR', 'XDG_RUNTIME_DIR', 'SSH_AUTH_SOCK',
64
+ // Node/npm paths
65
+ 'NODE_PATH', 'NPM_CONFIG_PREFIX', 'NVM_DIR', 'NVM_BIN',
66
+ // Claude CLI may need these
67
+ 'ANTHROPIC_API_KEY', 'CLAUDE_API_KEY',
68
+ ];
69
+ const env = {};
70
+ for (const key of important) {
71
+ if (process.env[key]) {
72
+ env[key] = process.env[key];
73
+ }
74
+ }
75
+ // Ensure PATH includes common locations
76
+ const pathDirs = new Set((env.PATH || '').split(':'));
77
+ ['/usr/local/bin', '/usr/bin', '/bin', '/usr/sbin', '/sbin', '/opt/homebrew/bin'].forEach(d => pathDirs.add(d));
78
+ // Add node/npm bin directories
79
+ try {
80
+ const npmPrefix = (0, child_process_1.execSync)('npm config get prefix', { encoding: 'utf-8' }).trim();
81
+ if (npmPrefix) {
82
+ pathDirs.add(path.join(npmPrefix, 'bin'));
83
+ }
84
+ }
85
+ catch { }
86
+ try {
87
+ const nodePath = (0, child_process_1.execSync)('which node', { encoding: 'utf-8' }).trim();
88
+ if (nodePath) {
89
+ pathDirs.add(path.dirname(nodePath));
90
+ }
91
+ }
92
+ catch { }
93
+ env.PATH = Array.from(pathDirs).filter(Boolean).join(':');
94
+ env.HOME = os.homedir();
95
+ env.USER = os.userInfo().username;
96
+ return env;
97
+ }
98
+ // Get the Go binary path
99
+ async function getXhawkBinaryPath() {
100
+ // Ensure binary exists and get path
101
+ return await (0, binary_1.ensureBinaryExists)();
102
+ }
103
+ // macOS launchd plist - runs Go binary directly
104
+ function createLaunchdPlist(config) {
105
+ const envEntries = Object.entries(config.env)
106
+ .map(([key, value]) => ` <key>${key}</key>\n <string>${value}</string>`)
107
+ .join('\n');
108
+ return `<?xml version="1.0" encoding="UTF-8"?>
109
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
110
+ <plist version="1.0">
111
+ <dict>
112
+ <key>Label</key>
113
+ <string>${DAEMON_NAME}</string>
114
+ <key>ProgramArguments</key>
115
+ <array>
116
+ <string>${config.binaryPath}</string>
117
+ <string>run</string>
118
+ <string>--token</string>
119
+ <string>${config.token}</string>
120
+ <string>--server</string>
121
+ <string>${config.server}</string>
122
+ </array>
123
+ <key>RunAtLoad</key>
124
+ <true/>
125
+ <key>KeepAlive</key>
126
+ <true/>
127
+ <key>StandardOutPath</key>
128
+ <string>${LOG_DIR}/xhawk.log</string>
129
+ <key>StandardErrorPath</key>
130
+ <string>${LOG_DIR}/xhawk.error.log</string>
131
+ <key>WorkingDirectory</key>
132
+ <string>${os.homedir()}</string>
133
+ <key>EnvironmentVariables</key>
134
+ <dict>
135
+ ${envEntries}
136
+ </dict>
137
+ </dict>
138
+ </plist>`;
139
+ }
140
+ // Linux systemd service - runs Go binary directly
141
+ function createSystemdService(config) {
142
+ const envEntries = Object.entries(config.env)
143
+ .map(([key, value]) => `Environment="${key}=${value}"`)
144
+ .join('\n');
145
+ return `[Unit]
146
+ Description=XHawk AI Agent
147
+ After=network.target
148
+
149
+ [Service]
150
+ Type=simple
151
+ ExecStart=${config.binaryPath} run --token ${config.token} --server ${config.server}
152
+ Restart=always
153
+ RestartSec=10
154
+ WorkingDirectory=${os.homedir()}
155
+ ${envEntries}
156
+ StandardOutput=append:${LOG_DIR}/xhawk.log
157
+ StandardError=append:${LOG_DIR}/xhawk.error.log
158
+
159
+ [Install]
160
+ WantedBy=default.target`;
161
+ }
162
+ async function install(token, server) {
163
+ ensureDirectories();
164
+ const platform = os.platform();
165
+ const env = captureEnvironment();
166
+ const binaryPath = await getXhawkBinaryPath();
167
+ const config = {
168
+ token,
169
+ server,
170
+ env,
171
+ installedAt: new Date().toISOString(),
172
+ binaryPath,
173
+ };
174
+ // Save config
175
+ fs.writeFileSync(ENV_FILE, JSON.stringify(config, null, 2));
176
+ if (platform === 'darwin') {
177
+ // macOS - use launchd
178
+ const plistPath = path.join(os.homedir(), 'Library', 'LaunchAgents', `${DAEMON_NAME}.plist`);
179
+ const plistDir = path.dirname(plistPath);
180
+ if (!fs.existsSync(plistDir)) {
181
+ fs.mkdirSync(plistDir, { recursive: true });
182
+ }
183
+ // Unload existing if present
184
+ try {
185
+ (0, child_process_1.execSync)(`launchctl unload "${plistPath}" 2>/dev/null`, { stdio: 'ignore' });
186
+ }
187
+ catch { }
188
+ // Write plist
189
+ fs.writeFileSync(plistPath, createLaunchdPlist(config));
190
+ console.log(`Created launchd plist: ${plistPath}`);
191
+ // Load the daemon
192
+ (0, child_process_1.execSync)(`launchctl load "${plistPath}"`);
193
+ console.log('Daemon loaded and started');
194
+ }
195
+ else if (platform === 'linux') {
196
+ // Linux - use systemd user service
197
+ const serviceDir = path.join(os.homedir(), '.config', 'systemd', 'user');
198
+ const servicePath = path.join(serviceDir, `${DAEMON_NAME}.service`);
199
+ if (!fs.existsSync(serviceDir)) {
200
+ fs.mkdirSync(serviceDir, { recursive: true });
201
+ }
202
+ // Write service file
203
+ fs.writeFileSync(servicePath, createSystemdService(config));
204
+ console.log(`Created systemd service: ${servicePath}`);
205
+ // Reload and start
206
+ (0, child_process_1.execSync)('systemctl --user daemon-reload');
207
+ (0, child_process_1.execSync)(`systemctl --user enable ${DAEMON_NAME}`);
208
+ (0, child_process_1.execSync)(`systemctl --user start ${DAEMON_NAME}`);
209
+ console.log('Daemon enabled and started');
210
+ }
211
+ else {
212
+ throw new Error(`Unsupported platform: ${platform}. Only macOS and Linux are supported.`);
213
+ }
214
+ console.log(`\nXHawk agent installed as daemon.`);
215
+ console.log(`Logs: ${LOG_DIR}/xhawk.log`);
216
+ }
217
+ async function uninstall() {
218
+ const platform = os.platform();
219
+ if (platform === 'darwin') {
220
+ const plistPath = path.join(os.homedir(), 'Library', 'LaunchAgents', `${DAEMON_NAME}.plist`);
221
+ try {
222
+ (0, child_process_1.execSync)(`launchctl unload "${plistPath}" 2>/dev/null`, { stdio: 'ignore' });
223
+ }
224
+ catch { }
225
+ if (fs.existsSync(plistPath)) {
226
+ fs.unlinkSync(plistPath);
227
+ console.log('Removed launchd plist');
228
+ }
229
+ }
230
+ else if (platform === 'linux') {
231
+ try {
232
+ (0, child_process_1.execSync)(`systemctl --user stop ${DAEMON_NAME} 2>/dev/null`, { stdio: 'ignore' });
233
+ (0, child_process_1.execSync)(`systemctl --user disable ${DAEMON_NAME} 2>/dev/null`, { stdio: 'ignore' });
234
+ }
235
+ catch { }
236
+ const servicePath = path.join(os.homedir(), '.config', 'systemd', 'user', `${DAEMON_NAME}.service`);
237
+ if (fs.existsSync(servicePath)) {
238
+ fs.unlinkSync(servicePath);
239
+ (0, child_process_1.execSync)('systemctl --user daemon-reload');
240
+ console.log('Removed systemd service');
241
+ }
242
+ }
243
+ // Clean up config
244
+ if (fs.existsSync(ENV_FILE)) {
245
+ fs.unlinkSync(ENV_FILE);
246
+ }
247
+ console.log('XHawk agent uninstalled');
248
+ }
249
+ async function status() {
250
+ const platform = os.platform();
251
+ let running = false;
252
+ let pid;
253
+ if (platform === 'darwin') {
254
+ try {
255
+ const output = (0, child_process_1.execSync)(`launchctl list | grep ${DAEMON_NAME}`, { encoding: 'utf-8' });
256
+ const parts = output.trim().split(/\s+/);
257
+ if (parts[0] && parts[0] !== '-') {
258
+ pid = parseInt(parts[0], 10);
259
+ running = true;
260
+ }
261
+ }
262
+ catch { }
263
+ }
264
+ else if (platform === 'linux') {
265
+ try {
266
+ const output = (0, child_process_1.execSync)(`systemctl --user is-active ${DAEMON_NAME}`, { encoding: 'utf-8' });
267
+ running = output.trim() === 'active';
268
+ if (running) {
269
+ const pidOutput = (0, child_process_1.execSync)(`systemctl --user show ${DAEMON_NAME} --property=MainPID`, { encoding: 'utf-8' });
270
+ const match = pidOutput.match(/MainPID=(\d+)/);
271
+ if (match) {
272
+ pid = parseInt(match[1], 10);
273
+ }
274
+ }
275
+ }
276
+ catch { }
277
+ }
278
+ let config;
279
+ if (fs.existsSync(ENV_FILE)) {
280
+ config = JSON.parse(fs.readFileSync(ENV_FILE, 'utf-8'));
281
+ }
282
+ return { running, pid, config };
283
+ }
284
+ function getLogs(lines = 50) {
285
+ const stdoutPath = path.join(LOG_DIR, 'xhawk.log');
286
+ const stderrPath = path.join(LOG_DIR, 'xhawk.error.log');
287
+ let stdout = '';
288
+ let stderr = '';
289
+ if (fs.existsSync(stdoutPath)) {
290
+ try {
291
+ const content = fs.readFileSync(stdoutPath, 'utf-8');
292
+ const logLines = content.split('\n');
293
+ stdout = logLines.slice(-lines).join('\n');
294
+ }
295
+ catch { }
296
+ }
297
+ if (fs.existsSync(stderrPath)) {
298
+ try {
299
+ const content = fs.readFileSync(stderrPath, 'utf-8');
300
+ const logLines = content.split('\n');
301
+ stderr = logLines.slice(-lines).join('\n');
302
+ }
303
+ catch { }
304
+ }
305
+ return { stdout, stderr };
306
+ }
307
+ function restart() {
308
+ const platform = os.platform();
309
+ if (platform === 'darwin') {
310
+ const plistPath = path.join(os.homedir(), 'Library', 'LaunchAgents', `${DAEMON_NAME}.plist`);
311
+ try {
312
+ (0, child_process_1.execSync)(`launchctl unload "${plistPath}"`, { stdio: 'ignore' });
313
+ (0, child_process_1.execSync)(`launchctl load "${plistPath}"`);
314
+ console.log('Daemon restarted');
315
+ }
316
+ catch (e) {
317
+ throw new Error('Failed to restart daemon. Is it installed?');
318
+ }
319
+ }
320
+ else if (platform === 'linux') {
321
+ try {
322
+ (0, child_process_1.execSync)(`systemctl --user restart ${DAEMON_NAME}`);
323
+ console.log('Daemon restarted');
324
+ }
325
+ catch (e) {
326
+ throw new Error('Failed to restart daemon. Is it installed?');
327
+ }
328
+ }
329
+ }
330
+ //# sourceMappingURL=installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "xhawk",
3
+ "version": "1.0.77",
4
+ "description": "XHawk Agent CLI - Connect your machine to execute AI-powered tasks",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "xhawk": "./dist/cli.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "dev": "ts-node src/cli.ts",
12
+ "start": "node dist/cli.js",
13
+ "prepublishOnly": "npm run build"
14
+ },
15
+ "keywords": [
16
+ "xhawk",
17
+ "ai",
18
+ "agent",
19
+ "automation",
20
+ "cli",
21
+ "devops",
22
+ "remote"
23
+ ],
24
+ "author": "xhawk",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "https://github.com/SupaAmp/XHawk.git",
28
+ "directory": "xhawk-agent/npm"
29
+ },
30
+ "dependencies": {
31
+ "chalk": "^4.1.2",
32
+ "commander": "^11.1.0",
33
+ "ora": "^5.4.1",
34
+ "ws": "^8.16.0"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^20.10.0",
38
+ "@types/ws": "^8.5.10",
39
+ "ts-node": "^10.9.2",
40
+ "typescript": "^5.3.3"
41
+ },
42
+ "engines": {
43
+ "node": ">=18.0.0"
44
+ },
45
+ "os": [
46
+ "darwin",
47
+ "linux",
48
+ "win32"
49
+ ],
50
+ "cpu": [
51
+ "x64",
52
+ "arm64"
53
+ ],
54
+ "files": [
55
+ "dist",
56
+ "bin"
57
+ ]
58
+ }