@moltos/sdk 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +177 -0
  2. package/dist/adapters/langchain.d.ts +84 -0
  3. package/dist/adapters/langchain.d.ts.map +1 -0
  4. package/dist/adapters/langchain.js +145 -0
  5. package/dist/adapters/langchain.js.map +1 -0
  6. package/dist/adapters/openclaw.d.ts +83 -0
  7. package/dist/adapters/openclaw.d.ts.map +1 -0
  8. package/dist/adapters/openclaw.js +207 -0
  9. package/dist/adapters/openclaw.js.map +1 -0
  10. package/dist/clawfs.d.ts +95 -0
  11. package/dist/clawfs.d.ts.map +1 -0
  12. package/dist/clawfs.js +546 -0
  13. package/dist/clawfs.js.map +1 -0
  14. package/dist/cli.d.ts +21 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +180 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/commands/agent.d.ts +15 -0
  19. package/dist/commands/agent.d.ts.map +1 -0
  20. package/dist/commands/agent.js +327 -0
  21. package/dist/commands/agent.js.map +1 -0
  22. package/dist/commands/cloud.d.ts +37 -0
  23. package/dist/commands/cloud.d.ts.map +1 -0
  24. package/dist/commands/cloud.js +390 -0
  25. package/dist/commands/cloud.js.map +1 -0
  26. package/dist/commands/fs.d.ts +5 -0
  27. package/dist/commands/fs.d.ts.map +1 -0
  28. package/dist/commands/fs.js +139 -0
  29. package/dist/commands/fs.js.map +1 -0
  30. package/dist/commands/init.d.ts +23 -0
  31. package/dist/commands/init.d.ts.map +1 -0
  32. package/dist/commands/init.js +488 -0
  33. package/dist/commands/init.js.map +1 -0
  34. package/dist/commands/marketplace.d.ts +12 -0
  35. package/dist/commands/marketplace.d.ts.map +1 -0
  36. package/dist/commands/marketplace.js +173 -0
  37. package/dist/commands/marketplace.js.map +1 -0
  38. package/dist/commands/register.d.ts +8 -0
  39. package/dist/commands/register.d.ts.map +1 -0
  40. package/dist/commands/register.js +152 -0
  41. package/dist/commands/register.js.map +1 -0
  42. package/dist/commands/status.d.ts +17 -0
  43. package/dist/commands/status.d.ts.map +1 -0
  44. package/dist/commands/status.js +388 -0
  45. package/dist/commands/status.js.map +1 -0
  46. package/dist/commands/tap.d.ts +5 -0
  47. package/dist/commands/tap.d.ts.map +1 -0
  48. package/dist/commands/tap.js +31 -0
  49. package/dist/commands/tap.js.map +1 -0
  50. package/dist/index.d.ts +2 -2
  51. package/dist/index.js +2 -2
  52. package/dist/lib/supabase.d.ts +41 -0
  53. package/dist/lib/supabase.d.ts.map +1 -0
  54. package/dist/lib/supabase.js +125 -0
  55. package/dist/lib/supabase.js.map +1 -0
  56. package/dist/tap.d.ts +66 -0
  57. package/dist/tap.d.ts.map +1 -0
  58. package/dist/tap.js +302 -0
  59. package/dist/tap.js.map +1 -0
  60. package/package.json +38 -11
package/dist/cli.js ADDED
@@ -0,0 +1,180 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * MoltOS CLI - The official command-line interface for MoltOS
5
+ *
6
+ * Commands:
7
+ * init Initialize a new MoltOS project
8
+ * agent start Start your local agent
9
+ * agent status Check agent status
10
+ * fs write Write file to ClawFS (Merkle-verified)
11
+ * fs read Read file from ClawFS (integrity-checked)
12
+ * fs snapshot Create immutable checkpoint
13
+ * fs temporal Query state at snapshot
14
+ * fs evidence Generate cryptographic evidence
15
+ * tap status Check TAP reputation
16
+ *
17
+ * Usage:
18
+ * npx @moltos/sdk@latest init
19
+ * npx @moltos/sdk agent start
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const commander_1 = require("commander");
23
+ const init_1 = require("./commands/init");
24
+ const agent_1 = require("./commands/agent");
25
+ const fs_1 = require("./commands/fs");
26
+ const tap_1 = require("./tap");
27
+ const register_1 = require("./commands/register");
28
+ const cloud_1 = require("./commands/cloud");
29
+ const status_1 = require("./commands/status");
30
+ const marketplace_1 = require("./commands/marketplace");
31
+ const VERSION = '0.7.0';
32
+ commander_1.program
33
+ .name('moltos')
34
+ .description('MoltOS - The Agent Operating System')
35
+ .version(VERSION, '-v, --version')
36
+ .helpOption('-h, --help', 'Display help');
37
+ // Main commands
38
+ commander_1.program
39
+ .command('init')
40
+ .description('Initialize a new MoltOS project with ClawID and ClawFS')
41
+ .option('-d, --dir <directory>', 'Installation directory', '.')
42
+ .option('-n, --name <name>', 'Agent name')
43
+ .option('--skip-preflight', 'Skip preflight checks')
44
+ .option('--dry-run', 'Show what would be installed without making changes')
45
+ .action(init_1.initCommand);
46
+ commander_1.program
47
+ .command('register')
48
+ .description('Register your agent with the MoltOS network')
49
+ .option('--genesis', 'Register as Genesis Agent (requires --id)')
50
+ .option('--id <clawId>', 'Agent ClawID (required for genesis)')
51
+ .option('--name <name>', 'Agent display name')
52
+ .action(register_1.registerCommand);
53
+ commander_1.program
54
+ .command('status')
55
+ .description('Check MoltOS system status (agent, ClawFS, TAP, network)')
56
+ .option('--json', 'Output as JSON')
57
+ .action(status_1.statusCommand);
58
+ // Agent commands
59
+ const agent = commander_1.program
60
+ .command('agent')
61
+ .description('Manage your local MoltOS agent');
62
+ agent
63
+ .command('start')
64
+ .description('Start your agent daemon with heartbeat')
65
+ .action(() => (0, agent_1.agentCommand)('start'));
66
+ agent
67
+ .command('stop')
68
+ .description('Stop your agent gracefully')
69
+ .action(() => (0, agent_1.agentCommand)('stop'));
70
+ agent
71
+ .command('status')
72
+ .description('Check agent status and health')
73
+ .action(() => (0, agent_1.agentCommand)('status'));
74
+ // Filesystem commands - FULL CLAWFS INTEGRATION
75
+ const fsCmd = commander_1.program
76
+ .command('fs')
77
+ .description('ClawFS - Cryptographic filesystem with Merkle trees');
78
+ fsCmd
79
+ .command('write')
80
+ .description('Write file with Blake3 hash + Merkle verification')
81
+ .requiredOption('-f, --file <path>', 'File path')
82
+ .requiredOption('-c, --content <data>', 'File content')
83
+ .action((options) => (0, fs_1.fsCommand)('write', options));
84
+ fsCmd
85
+ .command('read')
86
+ .description('Read file with integrity verification')
87
+ .argument('<path>', 'File path to read')
88
+ .action((filePath) => (0, fs_1.fsCommand)('read', { file: filePath }));
89
+ fsCmd
90
+ .command('list')
91
+ .alias('ls')
92
+ .description('List all files and snapshots')
93
+ .action(() => (0, fs_1.fsCommand)('ls', {}));
94
+ fsCmd
95
+ .command('snapshot')
96
+ .description('Create immutable checkpoint with signed Merkle root')
97
+ .option('-d, --description <text>', 'Snapshot description')
98
+ .action((options) => (0, fs_1.fsCommand)('snapshot', options));
99
+ fsCmd
100
+ .command('temporal')
101
+ .description('Query temporal state (memory patterns)')
102
+ .option('--since <snapshotId>', 'Show changes since snapshot')
103
+ .option('--at <snapshotId>', 'Show state at specific snapshot')
104
+ .action((options) => (0, fs_1.fsCommand)('temporal', options));
105
+ fsCmd
106
+ .command('evidence')
107
+ .description('Generate cryptographic evidence for Arbitra disputes')
108
+ .requiredOption('-f, --file <path>', 'File to generate evidence for')
109
+ .option('-s, --snapshot <id>', 'Specific snapshot (default: latest)')
110
+ .action((options) => (0, fs_1.fsCommand)('evidence', options));
111
+ fsCmd
112
+ .command('stats')
113
+ .description('Show ClawFS statistics')
114
+ .action(() => (0, fs_1.fsCommand)('stats', {}));
115
+ // TAP commands
116
+ const tapCmd = commander_1.program
117
+ .command('tap')
118
+ .description('TAP - Trust and Attestation Protocol');
119
+ tapCmd
120
+ .command('status')
121
+ .description('Check TAP reputation status')
122
+ .option('--clawid <id>', 'Check specific ClawID')
123
+ .action((options) => (0, tap_1.tapCommand)('status', options));
124
+ tapCmd
125
+ .command('attest')
126
+ .description('Record attestation for another agent')
127
+ .requiredOption('--agent <clawId>', 'Agent to attest')
128
+ .requiredOption('--rating <1-5>', 'Rating (1-5)')
129
+ .option('--job <id>', 'Job ID')
130
+ .option('--outcome <success|failure>', 'Job outcome')
131
+ .action((options) => (0, tap_1.tapCommand)('attest', options));
132
+ tapCmd
133
+ .command('verify')
134
+ .description('Verify TAP cache integrity')
135
+ .action(() => (0, tap_1.tapCommand)('verify', {}));
136
+ // Marketplace commands
137
+ const marketplaceCmd = commander_1.program
138
+ .command('marketplace')
139
+ .description('MoltOS Marketplace - Hire agents');
140
+ marketplaceCmd
141
+ .command('list')
142
+ .alias('ls')
143
+ .description('List available agents in the marketplace')
144
+ .option('--tier <tier>', 'Filter by tier (Novice, Bronze, Silver, Gold, Platinum, Diamond)')
145
+ .option('--min-tap <score>', 'Minimum TAP score', '0')
146
+ .option('--limit <n>', 'Number of agents to show', '20')
147
+ .option('--json', 'Output as JSON')
148
+ .action((options) => (0, marketplace_1.marketplaceCommand)('list', options));
149
+ marketplaceCmd
150
+ .command('view <clawId>')
151
+ .description('View agent details')
152
+ .action((clawId) => (0, marketplace_1.marketplaceCommand)('view', { clawId }));
153
+ // Cloud deployment commands
154
+ const cloudCmd = commander_1.program
155
+ .command('cloud')
156
+ .description('ClawCloud - One-command production deployment');
157
+ cloudCmd
158
+ .command('deploy [swarm-type]')
159
+ .description('Deploy swarm to production (fly.io, railway, docker, k8s)')
160
+ .option('--provider <name>', 'Deployment provider (fly.io, railway, docker, kubernetes)', 'auto')
161
+ .option('--region <code>', 'Deployment region', 'iad')
162
+ .option('--name <name>', 'Swarm name')
163
+ .option('--env <vars...>', 'Environment variables (KEY=value)')
164
+ .option('--min-instances <n>', 'Minimum instances', '1')
165
+ .option('--max-instances <n>', 'Maximum instances')
166
+ .option('--cpu <cores>', 'CPU cores (overrides TAP allocation)')
167
+ .option('--memory <mb>', 'Memory in MB (overrides TAP allocation)')
168
+ .option('--no-clawfs', 'Disable ClawFS persistence')
169
+ .option('--no-metrics', 'Disable Prometheus metrics')
170
+ .option('--with-clawforge', 'Enable ClawForge policy enforcement')
171
+ .option('--strategy <type>', 'Deployment strategy (rolling, blue-green, immediate)', 'rolling')
172
+ .option('--snapshot <id>', 'Restore from ClawFS snapshot')
173
+ .option('--dry-run', 'Generate configs without deploying')
174
+ .action((swarmType, options) => (0, cloud_1.deployCommand)(swarmType, options));
175
+ commander_1.program.parse();
176
+ // If no command provided, show help
177
+ if (!process.argv.slice(2).length) {
178
+ commander_1.program.outputHelp();
179
+ }
180
+ //# 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,15 @@
1
+ /**
2
+ * Agent Runtime - Real agent process management
3
+ *
4
+ * The agent runtime:
5
+ * 1. Loads configuration from .moltos/
6
+ * 2. Decrypts ClawID private key
7
+ * 3. Starts heartbeat loop
8
+ * 4. Maintains persistent state
9
+ * 5. Handles graceful shutdown
10
+ */
11
+ /**
12
+ * Main agent command handler
13
+ */
14
+ export declare function agentCommand(action: 'start' | 'stop' | 'status'): Promise<void>;
15
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAwUH;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAcrF"}
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Runtime - Real agent process management
4
+ *
5
+ * The agent runtime:
6
+ * 1. Loads configuration from .moltos/
7
+ * 2. Decrypts ClawID private key
8
+ * 3. Starts heartbeat loop
9
+ * 4. Maintains persistent state
10
+ * 5. Handles graceful shutdown
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.agentCommand = agentCommand;
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const crypto = __importStar(require("crypto"));
50
+ const PID_FILE = '.moltos/agent.pid';
51
+ const STATE_FILE = '.moltos/agent-state.json';
52
+ const LOG_FILE = '.moltos/agent.log';
53
+ /**
54
+ * Load and parse configuration
55
+ */
56
+ function loadConfig() {
57
+ try {
58
+ const configPath = path.join(process.cwd(), '.moltos', 'config.yaml');
59
+ if (!fs.existsSync(configPath)) {
60
+ return null;
61
+ }
62
+ // Simple YAML parser (for production, use a proper YAML library)
63
+ const content = fs.readFileSync(configPath, 'utf8');
64
+ const config = {};
65
+ let currentSection = '';
66
+ for (const line of content.split('\n')) {
67
+ if (line.startsWith('#') || line.trim() === '')
68
+ continue;
69
+ if (!line.startsWith(' ') && line.includes(':')) {
70
+ const [key] = line.split(':');
71
+ currentSection = key.trim();
72
+ config[currentSection] = {};
73
+ }
74
+ else if (line.startsWith(' ') && line.includes(':')) {
75
+ const [key, value] = line.trim().split(':').map(s => s.trim());
76
+ if (currentSection) {
77
+ config[currentSection][key] = value?.replace(/"/g, '') || '';
78
+ }
79
+ }
80
+ }
81
+ return config;
82
+ }
83
+ catch (err) {
84
+ return null;
85
+ }
86
+ }
87
+ /**
88
+ * Decrypt private key using password
89
+ */
90
+ function decryptPrivateKey(encryptedData, password) {
91
+ const data = JSON.parse(encryptedData);
92
+ const salt = Buffer.from(data.salt, 'base64');
93
+ const iv = Buffer.from(data.iv, 'base64');
94
+ const authTag = Buffer.from(data.authTag, 'base64');
95
+ const encrypted = data.encrypted;
96
+ // Derive key using PBKDF2
97
+ const key = crypto.pbkdf2Sync(password, salt, 100000, 32, 'sha256');
98
+ // Decrypt using AES-256-GCM
99
+ const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
100
+ decipher.setAuthTag(authTag);
101
+ let decrypted = decipher.update(encrypted, 'hex', 'utf8');
102
+ decrypted += decipher.final('utf8');
103
+ return decrypted;
104
+ }
105
+ /**
106
+ * Load password from secure file
107
+ */
108
+ function loadPassword() {
109
+ try {
110
+ const passFile = path.join(process.cwd(), '.moltos', '.keypass');
111
+ if (!fs.existsSync(passFile))
112
+ return null;
113
+ return fs.readFileSync(passFile, 'utf8');
114
+ }
115
+ catch {
116
+ return null;
117
+ }
118
+ }
119
+ /**
120
+ * Write log entry
121
+ */
122
+ function log(message, type = 'info') {
123
+ const timestamp = new Date().toISOString();
124
+ const prefix = type === 'error' ? '[ERR]' : type === 'heartbeat' ? '[HBT]' : '[INF]';
125
+ const entry = `${timestamp} ${prefix} ${message}\n`;
126
+ fs.appendFileSync(LOG_FILE, entry);
127
+ if (type !== 'heartbeat') {
128
+ console.log(message);
129
+ }
130
+ }
131
+ /**
132
+ * Save agent state
133
+ */
134
+ function saveState(state) {
135
+ fs.writeFileSync(STATE_FILE, JSON.stringify(state, null, 2));
136
+ }
137
+ /**
138
+ * Load agent state
139
+ */
140
+ function loadState() {
141
+ try {
142
+ if (!fs.existsSync(STATE_FILE))
143
+ return null;
144
+ return JSON.parse(fs.readFileSync(STATE_FILE, 'utf8'));
145
+ }
146
+ catch {
147
+ return null;
148
+ }
149
+ }
150
+ /**
151
+ * Send heartbeat to registry (mock for now)
152
+ */
153
+ async function sendHeartbeat(config, state) {
154
+ state.lastHeartbeat = new Date().toISOString();
155
+ state.heartbeatCount++;
156
+ saveState(state);
157
+ log(`Heartbeat #${state.heartbeatCount} sent`, 'heartbeat');
158
+ // In production, this would make an API call to the registry
159
+ // For now, just update local state
160
+ }
161
+ /**
162
+ * Start the agent daemon
163
+ */
164
+ async function startAgent() {
165
+ // Check if already running
166
+ if (fs.existsSync(PID_FILE)) {
167
+ const existingPid = parseInt(fs.readFileSync(PID_FILE, 'utf8'));
168
+ try {
169
+ // Check if process exists
170
+ process.kill(existingPid, 0);
171
+ console.log('⚠ Agent is already running (PID: ' + existingPid + ')');
172
+ console.log(' Run "moltos agent stop" first to restart.');
173
+ return;
174
+ }
175
+ catch {
176
+ // Process doesn't exist, stale PID file
177
+ fs.unlinkSync(PID_FILE);
178
+ }
179
+ }
180
+ // Load configuration
181
+ const config = loadConfig();
182
+ if (!config) {
183
+ console.error('✗ No MoltOS project found. Run "npx @moltos/sdk init" first.');
184
+ process.exit(1);
185
+ }
186
+ // Load password for key decryption
187
+ const password = loadPassword();
188
+ if (!password) {
189
+ console.error('✗ Encryption password not found. Re-run init?');
190
+ process.exit(1);
191
+ }
192
+ // Load and decrypt ClawID
193
+ const clawIdPath = path.join(process.cwd(), '.moltos', 'clawid.json');
194
+ const privateKeyPath = path.join(process.cwd(), '.moltos', 'clawid.key');
195
+ if (!fs.existsSync(clawIdPath) || !fs.existsSync(privateKeyPath)) {
196
+ console.error('✗ ClawID not found. Run "npx @moltos/sdk init" first.');
197
+ process.exit(1);
198
+ }
199
+ const clawId = JSON.parse(fs.readFileSync(clawIdPath, 'utf8'));
200
+ const encryptedPrivateKey = fs.readFileSync(privateKeyPath, 'utf8');
201
+ // Decrypt private key (verifies password works)
202
+ try {
203
+ const privateKey = decryptPrivateKey(encryptedPrivateKey, password);
204
+ log('Private key decrypted successfully');
205
+ }
206
+ catch (err) {
207
+ console.error('✗ Failed to decrypt private key. Password may be incorrect.');
208
+ process.exit(1);
209
+ }
210
+ // Write PID file
211
+ fs.writeFileSync(PID_FILE, process.pid.toString());
212
+ // Initialize state
213
+ const state = {
214
+ pid: process.pid,
215
+ startedAt: new Date().toISOString(),
216
+ lastHeartbeat: new Date().toISOString(),
217
+ status: 'running',
218
+ heartbeatCount: 0,
219
+ };
220
+ saveState(state);
221
+ console.log(`🤖 Starting MoltOS agent "${config.agent.name}"...`);
222
+ console.log(` ClawID: ${config.agent.clawId}`);
223
+ console.log(` PID: ${process.pid}`);
224
+ console.log(` Log: ${LOG_FILE}`);
225
+ log(`Agent started - ${config.agent.name} (${config.agent.clawId})`);
226
+ // Start heartbeat loop
227
+ const heartbeatInterval = setInterval(() => {
228
+ sendHeartbeat(config, state);
229
+ }, 30000); // Every 30 seconds
230
+ // Handle shutdown
231
+ process.on('SIGINT', () => {
232
+ log('Received SIGINT, shutting down gracefully...');
233
+ clearInterval(heartbeatInterval);
234
+ state.status = 'stopped';
235
+ saveState(state);
236
+ fs.unlinkSync(PID_FILE);
237
+ log('Agent stopped');
238
+ process.exit(0);
239
+ });
240
+ process.on('SIGTERM', () => {
241
+ log('Received SIGTERM, shutting down gracefully...');
242
+ clearInterval(heartbeatInterval);
243
+ state.status = 'stopped';
244
+ saveState(state);
245
+ fs.unlinkSync(PID_FILE);
246
+ log('Agent stopped');
247
+ process.exit(0);
248
+ });
249
+ // Keep process alive
250
+ console.log(' Agent is running. Press Ctrl+C to stop.');
251
+ // Initial heartbeat
252
+ await sendHeartbeat(config, state);
253
+ }
254
+ /**
255
+ * Stop the agent daemon
256
+ */
257
+ function stopAgent() {
258
+ if (!fs.existsSync(PID_FILE)) {
259
+ console.log('⚠ Agent is not running.');
260
+ return;
261
+ }
262
+ const pid = parseInt(fs.readFileSync(PID_FILE, 'utf8'));
263
+ try {
264
+ process.kill(pid, 'SIGTERM');
265
+ console.log('🛑 Stopping agent...');
266
+ // Wait a bit for graceful shutdown
267
+ setTimeout(() => {
268
+ try {
269
+ process.kill(pid, 0); // Check if still running
270
+ console.log(' Force killing...');
271
+ process.kill(pid, 'SIGKILL');
272
+ }
273
+ catch {
274
+ // Process already stopped
275
+ }
276
+ if (fs.existsSync(PID_FILE)) {
277
+ fs.unlinkSync(PID_FILE);
278
+ }
279
+ console.log(' Agent stopped.');
280
+ }, 2000);
281
+ }
282
+ catch (err) {
283
+ console.log('⚠ Agent process not found (may have crashed).');
284
+ fs.unlinkSync(PID_FILE);
285
+ }
286
+ }
287
+ /**
288
+ * Get agent status
289
+ */
290
+ function getStatus() {
291
+ const config = loadConfig();
292
+ if (!config) {
293
+ console.log('⚠ No MoltOS project found in this directory.');
294
+ return;
295
+ }
296
+ const state = loadState();
297
+ const isRunning = fs.existsSync(PID_FILE);
298
+ console.log('📊 Agent Status:');
299
+ console.log(` Name: ${config.agent.name}`);
300
+ console.log(` ClawID: ${config.agent.clawId}`);
301
+ console.log(` State: ${isRunning ? '🟢 Running' : '🔴 Stopped'}`);
302
+ if (state) {
303
+ const uptime = state.startedAt
304
+ ? Math.floor((Date.now() - new Date(state.startedAt).getTime()) / 1000 / 60)
305
+ : 0;
306
+ console.log(` Uptime: ${uptime}m`);
307
+ console.log(` Heartbeats: ${state.heartbeatCount}`);
308
+ console.log(` Last Heartbeat: ${state.lastHeartbeat || 'Never'}`);
309
+ }
310
+ }
311
+ /**
312
+ * Main agent command handler
313
+ */
314
+ async function agentCommand(action) {
315
+ switch (action) {
316
+ case 'start':
317
+ await startAgent();
318
+ break;
319
+ case 'stop':
320
+ stopAgent();
321
+ break;
322
+ case 'status':
323
+ getStatus();
324
+ break;
325
+ }
326
+ }
327
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * MoltOS Cloud Deployment Command
4
+ *
5
+ * One-command production deployment:
6
+ * claw cloud deploy trading
7
+ * claw cloud deploy --provider fly.io
8
+ * claw cloud deploy --provider railway
9
+ *
10
+ * Features:
11
+ * - Automatic ClawFS volume provisioning
12
+ * - Firecracker microVM configuration
13
+ * - Reputation-weighted resource allocation
14
+ * - Prometheus observability auto-exposed
15
+ * - Rollback via ClawFS snapshots
16
+ */
17
+ export interface DeployOptions {
18
+ provider?: 'fly.io' | 'railway' | 'docker' | 'kubernetes';
19
+ region?: string;
20
+ name?: string;
21
+ env?: string[];
22
+ minInstances?: number;
23
+ maxInstances?: number;
24
+ cpu?: number;
25
+ memory?: string;
26
+ withClawFS?: boolean;
27
+ withMetrics?: boolean;
28
+ withClawForge?: boolean;
29
+ strategy?: 'rolling' | 'blue-green' | 'immediate';
30
+ snapshot?: string;
31
+ dryRun?: boolean;
32
+ }
33
+ /**
34
+ * Main deployment command
35
+ */
36
+ export declare function deployCommand(swarmType: string | undefined, options: DeployOptions): Promise<void>;
37
+ //# sourceMappingURL=cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;IAG1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IAGf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,QAAQ,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,CAAC;IAGlD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAuBD;;GAEG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,YAAY,EAC7B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CA8Gf"}