@adverant-nexus/cli 3.0.1 → 3.1.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/dist/.tsbuildinfo +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/compute/agent.d.ts +21 -0
- package/dist/commands/compute/agent.d.ts.map +1 -0
- package/dist/commands/compute/agent.js +166 -0
- package/dist/commands/compute/agent.js.map +1 -0
- package/dist/commands/compute/index.d.ts +10 -0
- package/dist/commands/compute/index.d.ts.map +1 -0
- package/dist/commands/compute/index.js +27 -0
- package/dist/commands/compute/index.js.map +1 -0
- package/dist/commands/compute/lib/hardware-detection.d.ts +52 -0
- package/dist/commands/compute/lib/hardware-detection.d.ts.map +1 -0
- package/dist/commands/compute/lib/hardware-detection.js +475 -0
- package/dist/commands/compute/lib/hardware-detection.js.map +1 -0
- package/dist/commands/compute/lib/local-compute-agent.d.ts +143 -0
- package/dist/commands/compute/lib/local-compute-agent.d.ts.map +1 -0
- package/dist/commands/compute/lib/local-compute-agent.js +1217 -0
- package/dist/commands/compute/lib/local-compute-agent.js.map +1 -0
- package/dist/commands/compute/lib/local-compute-client.d.ts +118 -0
- package/dist/commands/compute/lib/local-compute-client.d.ts.map +1 -0
- package/dist/commands/compute/lib/local-compute-client.js +256 -0
- package/dist/commands/compute/lib/local-compute-client.js.map +1 -0
- package/dist/commands/compute/list.d.ts +9 -0
- package/dist/commands/compute/list.d.ts.map +1 -0
- package/dist/commands/compute/list.js +157 -0
- package/dist/commands/compute/list.js.map +1 -0
- package/dist/commands/compute/logs.d.ts +9 -0
- package/dist/commands/compute/logs.d.ts.map +1 -0
- package/dist/commands/compute/logs.js +90 -0
- package/dist/commands/compute/logs.js.map +1 -0
- package/dist/commands/compute/resources.d.ts +9 -0
- package/dist/commands/compute/resources.d.ts.map +1 -0
- package/dist/commands/compute/resources.js +143 -0
- package/dist/commands/compute/resources.js.map +1 -0
- package/dist/commands/compute/status.d.ts +9 -0
- package/dist/commands/compute/status.d.ts.map +1 -0
- package/dist/commands/compute/status.js +200 -0
- package/dist/commands/compute/status.js.map +1 -0
- package/dist/commands/compute/submit.d.ts +9 -0
- package/dist/commands/compute/submit.d.ts.map +1 -0
- package/dist/commands/compute/submit.js +121 -0
- package/dist/commands/compute/submit.js.map +1 -0
- package/package.json +4 -1
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4IH;;GAEG;AACH,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAuF5C"}
|
package/dist/cli.js
CHANGED
|
@@ -24,6 +24,7 @@ import { createPluginCommand } from './commands/plugin/index.js';
|
|
|
24
24
|
import { createAgentCommand } from './commands/agent/index.js';
|
|
25
25
|
import { createSessionCommand } from './commands/session/index.js';
|
|
26
26
|
import { createWorkspaceCommand } from './commands/workspace/index.js';
|
|
27
|
+
import { createComputeCommand } from './commands/compute/index.js';
|
|
27
28
|
// Load environment variables
|
|
28
29
|
dotenv.config({ path: path.join(os.homedir(), '.nexus', '.env') });
|
|
29
30
|
dotenv.config(); // Also load from current directory
|
|
@@ -104,6 +105,8 @@ function registerCommands(program, authClient, credentialsManager) {
|
|
|
104
105
|
program.addCommand(createSessionCommand());
|
|
105
106
|
// Workspace commands
|
|
106
107
|
program.addCommand(createWorkspaceCommand());
|
|
108
|
+
// Compute commands (local GPU compute)
|
|
109
|
+
program.addCommand(createComputeCommand());
|
|
107
110
|
// TODO: Add more command groups
|
|
108
111
|
// - mcp (dynamic MCP tool commands)
|
|
109
112
|
// - config (get, set, list, profile)
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,eAAe;AACf,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/H,OAAO,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC1K,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACjL,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute Agent Command
|
|
3
|
+
*
|
|
4
|
+
* Starts a local compute agent that:
|
|
5
|
+
* - Detects local hardware (Apple Silicon, NVIDIA GPU)
|
|
6
|
+
* - Registers with nexus-hpc-gateway
|
|
7
|
+
* - Executes ML jobs locally using PyTorch MPS, Metal, etc.
|
|
8
|
+
* - Streams logs back to the dashboard
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
export interface AgentOptions {
|
|
12
|
+
gateway?: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
maxMemory?: number;
|
|
15
|
+
allowRemoteJobs?: boolean;
|
|
16
|
+
daemonize?: boolean;
|
|
17
|
+
port?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare function createComputeAgentCommand(): Command;
|
|
20
|
+
export default createComputeAgentCommand;
|
|
21
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/compute/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CAuGnD;AA4DD,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute Agent Command
|
|
3
|
+
*
|
|
4
|
+
* Starts a local compute agent that:
|
|
5
|
+
* - Detects local hardware (Apple Silicon, NVIDIA GPU)
|
|
6
|
+
* - Registers with nexus-hpc-gateway
|
|
7
|
+
* - Executes ML jobs locally using PyTorch MPS, Metal, etc.
|
|
8
|
+
* - Streams logs back to the dashboard
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
import chalk from 'chalk';
|
|
12
|
+
import ora from 'ora';
|
|
13
|
+
import os from 'os';
|
|
14
|
+
import { log } from '../../core/logging/logger.js';
|
|
15
|
+
import { detectHardware } from './lib/hardware-detection.js';
|
|
16
|
+
import { LocalComputeAgent } from './lib/local-compute-agent.js';
|
|
17
|
+
export function createComputeAgentCommand() {
|
|
18
|
+
const command = new Command('agent')
|
|
19
|
+
.description('Manage local compute agent');
|
|
20
|
+
// Start subcommand
|
|
21
|
+
command
|
|
22
|
+
.command('start')
|
|
23
|
+
.description('Start the local compute agent')
|
|
24
|
+
.option('-g, --gateway <url>', 'HPC gateway URL', 'https://api.adverant.ai/hpc')
|
|
25
|
+
.option('-n, --name <name>', 'Custom name for this compute node')
|
|
26
|
+
.option('--max-memory <percent>', 'Maximum memory usage percentage', '75')
|
|
27
|
+
.option('--allow-remote-jobs', 'Allow remote job submissions', false)
|
|
28
|
+
.option('-d, --daemonize', 'Run as background daemon', false)
|
|
29
|
+
.option('-p, --port <port>', 'Local agent port', '9200')
|
|
30
|
+
.action(async (options) => {
|
|
31
|
+
const spinner = ora('Detecting hardware...').start();
|
|
32
|
+
try {
|
|
33
|
+
// Detect local hardware
|
|
34
|
+
const hardware = await detectHardware();
|
|
35
|
+
spinner.succeed('Hardware detected');
|
|
36
|
+
displayHardwareInfo(hardware);
|
|
37
|
+
// Determine agent name
|
|
38
|
+
const agentName = options.name || generateAgentName(hardware);
|
|
39
|
+
console.log(chalk.cyan('\n📡 Starting Local Compute Agent'));
|
|
40
|
+
console.log(chalk.gray(` Name: ${agentName}`));
|
|
41
|
+
console.log(chalk.gray(` Gateway: ${options.gateway}`));
|
|
42
|
+
console.log(chalk.gray(` Max Memory: ${options.maxMemory}%`));
|
|
43
|
+
console.log(chalk.gray(` Allow Remote Jobs: ${options.allowRemoteJobs ? 'Yes' : 'No'}`));
|
|
44
|
+
console.log();
|
|
45
|
+
// Create and start agent
|
|
46
|
+
const agent = new LocalComputeAgent({
|
|
47
|
+
name: agentName,
|
|
48
|
+
gatewayUrl: options.gateway || 'https://api.adverant.ai/hpc',
|
|
49
|
+
maxMemoryPercent: parseInt(String(options.maxMemory ?? 75), 10),
|
|
50
|
+
allowRemoteJobs: options.allowRemoteJobs || false,
|
|
51
|
+
apiPort: parseInt(String(options.port ?? 9200), 10),
|
|
52
|
+
});
|
|
53
|
+
if (options.daemonize) {
|
|
54
|
+
await agent.startDaemon();
|
|
55
|
+
console.log(chalk.green('✓ Agent started as daemon'));
|
|
56
|
+
console.log(chalk.gray(` PID file: ~/.nexus/compute-agent.pid`));
|
|
57
|
+
console.log(chalk.gray(` Logs: ~/.nexus/logs/compute-agent.log`));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// Run in foreground
|
|
61
|
+
await agent.start();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
spinner.fail('Failed to start compute agent');
|
|
66
|
+
log.error('Agent start error:', error instanceof Error ? error : new Error(String(error)));
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
// Stop subcommand
|
|
71
|
+
command
|
|
72
|
+
.command('stop')
|
|
73
|
+
.description('Stop the local compute agent')
|
|
74
|
+
.action(async () => {
|
|
75
|
+
const spinner = ora('Stopping compute agent...').start();
|
|
76
|
+
try {
|
|
77
|
+
const agent = new LocalComputeAgent({});
|
|
78
|
+
await agent.stop();
|
|
79
|
+
spinner.succeed('Compute agent stopped');
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
spinner.fail('Failed to stop compute agent');
|
|
83
|
+
log.error('Agent stop error:', error instanceof Error ? error : new Error(String(error)));
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
// Status subcommand
|
|
88
|
+
command
|
|
89
|
+
.command('status')
|
|
90
|
+
.description('Check compute agent status')
|
|
91
|
+
.action(async () => {
|
|
92
|
+
try {
|
|
93
|
+
const agent = new LocalComputeAgent({});
|
|
94
|
+
const status = await agent.getStatus();
|
|
95
|
+
if (status.running) {
|
|
96
|
+
console.log(chalk.green('● Agent is running'));
|
|
97
|
+
console.log(chalk.gray(` PID: ${status.pid}`));
|
|
98
|
+
console.log(chalk.gray(` Uptime: ${status.uptime}`));
|
|
99
|
+
console.log(chalk.gray(` Jobs Completed: ${status.jobsCompleted}`));
|
|
100
|
+
console.log(chalk.gray(` Jobs Running: ${status.jobsRunning}`));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.log(chalk.yellow('○ Agent is not running'));
|
|
104
|
+
console.log(chalk.gray(' Run: nexus compute agent start'));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.log(chalk.red('○ Agent is not running'));
|
|
109
|
+
log.debug('Status check error:', error instanceof Error ? error : new Error(String(error)));
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return command;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Display detected hardware information
|
|
116
|
+
*/
|
|
117
|
+
function displayHardwareInfo(hardware) {
|
|
118
|
+
console.log(chalk.cyan('\n🖥️ Hardware Detected:'));
|
|
119
|
+
// CPU Info
|
|
120
|
+
console.log(chalk.white(' CPU:'));
|
|
121
|
+
console.log(chalk.gray(` Model: ${hardware.cpu.model}`));
|
|
122
|
+
const coreInfo = hardware.cpu.performanceCores && hardware.cpu.efficiencyCores
|
|
123
|
+
? ` (${hardware.cpu.performanceCores}P + ${hardware.cpu.efficiencyCores}E)`
|
|
124
|
+
: '';
|
|
125
|
+
console.log(chalk.gray(` Cores: ${hardware.cpu.cores}${coreInfo}`));
|
|
126
|
+
// Memory Info
|
|
127
|
+
console.log(chalk.white(' Memory:'));
|
|
128
|
+
console.log(chalk.gray(` Total: ${hardware.memory.total} GB`));
|
|
129
|
+
console.log(chalk.gray(` Type: ${hardware.memory.unified ? 'Unified (shared with GPU)' : 'Discrete'}`));
|
|
130
|
+
// GPU Info
|
|
131
|
+
if (hardware.gpu) {
|
|
132
|
+
console.log(chalk.white(' GPU/Accelerator:'));
|
|
133
|
+
console.log(chalk.gray(` Type: ${hardware.gpu.type}`));
|
|
134
|
+
console.log(chalk.gray(` Memory: ${hardware.gpu.memory} GB`));
|
|
135
|
+
console.log(chalk.gray(` API: ${hardware.gpu.api}`));
|
|
136
|
+
if (hardware.gpu.fp32Tflops) {
|
|
137
|
+
console.log(chalk.gray(` FP32: ${hardware.gpu.fp32Tflops} TFLOPS`));
|
|
138
|
+
}
|
|
139
|
+
if (hardware.gpu.neuralEngine) {
|
|
140
|
+
console.log(chalk.gray(` Neural Engine: ${hardware.gpu.neuralEngineTops} TOPS`));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// Supported Frameworks
|
|
144
|
+
console.log(chalk.white(' Supported Frameworks:'));
|
|
145
|
+
const frameworks = hardware.frameworks || [];
|
|
146
|
+
if (frameworks.length > 0) {
|
|
147
|
+
frameworks.forEach((fw) => {
|
|
148
|
+
const statusIcon = fw.available ? chalk.green('✓') : chalk.red('✗');
|
|
149
|
+
const gpuIcon = fw.gpuSupport ? chalk.blue(' (GPU)') : '';
|
|
150
|
+
console.log(chalk.gray(` ${statusIcon} ${fw.name} ${fw.version || ''}${gpuIcon}`));
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.log(chalk.gray(' None detected'));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Generate agent name from hardware
|
|
159
|
+
*/
|
|
160
|
+
function generateAgentName(hardware) {
|
|
161
|
+
const hostname = os.hostname();
|
|
162
|
+
const gpuType = hardware.gpu?.type.replace(/\s+/g, '-') || 'CPU';
|
|
163
|
+
return `${hostname}-${gpuType}`.toLowerCase();
|
|
164
|
+
}
|
|
165
|
+
export default createComputeAgentCommand;
|
|
166
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/compute/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute Commands
|
|
3
|
+
*
|
|
4
|
+
* Commands for local compute management and job submission.
|
|
5
|
+
* Enables using local machines (MacBook, Mac Studio) as ML compute nodes.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
export declare function createComputeCommand(): Command;
|
|
9
|
+
export default createComputeCommand;
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/compute/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,oBAAoB,IAAI,OAAO,CAa9C;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compute Commands
|
|
3
|
+
*
|
|
4
|
+
* Commands for local compute management and job submission.
|
|
5
|
+
* Enables using local machines (MacBook, Mac Studio) as ML compute nodes.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import { createComputeAgentCommand } from './agent.js';
|
|
9
|
+
import { createComputeResourcesCommand } from './resources.js';
|
|
10
|
+
import { createComputeStatusCommand } from './status.js';
|
|
11
|
+
import { createComputeSubmitCommand } from './submit.js';
|
|
12
|
+
import { createComputeListCommand } from './list.js';
|
|
13
|
+
import { createComputeLogsCommand } from './logs.js';
|
|
14
|
+
export function createComputeCommand() {
|
|
15
|
+
const command = new Command('compute')
|
|
16
|
+
.description('Local compute management - use your Mac as an ML compute node');
|
|
17
|
+
// Add subcommands
|
|
18
|
+
command.addCommand(createComputeAgentCommand());
|
|
19
|
+
command.addCommand(createComputeResourcesCommand());
|
|
20
|
+
command.addCommand(createComputeStatusCommand());
|
|
21
|
+
command.addCommand(createComputeSubmitCommand());
|
|
22
|
+
command.addCommand(createComputeListCommand());
|
|
23
|
+
command.addCommand(createComputeLogsCommand());
|
|
24
|
+
return command;
|
|
25
|
+
}
|
|
26
|
+
export default createComputeCommand;
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/compute/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AAErD,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SACnC,WAAW,CAAC,+DAA+D,CAAC,CAAC;IAEhF,kBAAkB;IAClB,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,UAAU,CAAC,6BAA6B,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hardware Detection Module
|
|
3
|
+
*
|
|
4
|
+
* Detects local hardware capabilities including:
|
|
5
|
+
* - Apple Silicon (M1/M2/M3/M4 series)
|
|
6
|
+
* - NVIDIA GPUs
|
|
7
|
+
* - CPU cores and memory
|
|
8
|
+
* - Installed ML frameworks
|
|
9
|
+
*/
|
|
10
|
+
export interface HardwareInfo {
|
|
11
|
+
platform: string;
|
|
12
|
+
arch: string;
|
|
13
|
+
hostname: string;
|
|
14
|
+
cpu: CPUInfo;
|
|
15
|
+
memory: MemoryInfo;
|
|
16
|
+
gpu: GPUInfo | null;
|
|
17
|
+
frameworks: FrameworkInfo[];
|
|
18
|
+
}
|
|
19
|
+
export interface CPUInfo {
|
|
20
|
+
model: string;
|
|
21
|
+
cores: number;
|
|
22
|
+
performanceCores?: number;
|
|
23
|
+
efficiencyCores?: number;
|
|
24
|
+
speed?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface MemoryInfo {
|
|
27
|
+
total: number;
|
|
28
|
+
available: number;
|
|
29
|
+
unified: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface GPUInfo {
|
|
32
|
+
type: string;
|
|
33
|
+
memory: number;
|
|
34
|
+
api: string;
|
|
35
|
+
fp32Tflops?: number;
|
|
36
|
+
fp16Tflops?: number;
|
|
37
|
+
computeCapability?: string;
|
|
38
|
+
neuralEngine?: boolean;
|
|
39
|
+
neuralEngineTops?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface FrameworkInfo {
|
|
42
|
+
name: string;
|
|
43
|
+
version?: string;
|
|
44
|
+
available: boolean;
|
|
45
|
+
gpuSupport: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Detect all hardware information
|
|
49
|
+
*/
|
|
50
|
+
export declare function detectHardware(): Promise<HardwareInfo>;
|
|
51
|
+
export default detectHardware;
|
|
52
|
+
//# sourceMappingURL=hardware-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hardware-detection.d.ts","sourceRoot":"","sources":["../../../../src/commands/compute/lib/hardware-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAwHD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC,CAmB5D;AAsUD,eAAe,cAAc,CAAC"}
|