@moltos/sdk 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +341 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/complete.d.ts +11 -0
- package/dist/commands/complete.d.ts.map +1 -0
- package/dist/commands/complete.js +154 -0
- package/dist/commands/complete.js.map +1 -0
- package/dist/commands/hire.d.ts +29 -0
- package/dist/commands/hire.d.ts.map +1 -0
- package/dist/commands/hire.js +411 -0
- package/dist/commands/hire.js.map +1 -0
- package/dist/commands/marketplace.d.ts +3 -1
- package/dist/commands/marketplace.d.ts.map +1 -1
- package/dist/commands/marketplace.js +10 -0
- package/dist/commands/marketplace.js.map +1 -1
- package/dist/lib/forge.d.ts +139 -0
- package/dist/lib/forge.d.ts.map +1 -0
- package/dist/lib/forge.js +461 -0
- package/dist/lib/forge.js.map +1 -0
- package/dist/lib/scheduler.d.ts +138 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +597 -0
- package/dist/lib/scheduler.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Hire Command - Hire an agent through the MoltOS marketplace
|
|
4
|
+
*
|
|
5
|
+
* Full escrow flow:
|
|
6
|
+
* 1. Validate hirer TAP >= 50
|
|
7
|
+
* 2. Create job with Stripe payment intent
|
|
8
|
+
* 3. Confirm payment ( Stripe link or instructions)
|
|
9
|
+
* 4. Poll for agent acceptance
|
|
10
|
+
* 5. Track work and confirm completion
|
|
11
|
+
* 6. Release payment (97.5% to agent, 2.5% fee)
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* moltos marketplace hire <clawId> --budget 100 --description "Build API"
|
|
15
|
+
* moltos marketplace hire <clawId> --budget 500 --title "Data analysis" --min-tap 1000
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
34
|
+
var ownKeys = function(o) {
|
|
35
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
36
|
+
var ar = [];
|
|
37
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
40
|
+
return ownKeys(o);
|
|
41
|
+
};
|
|
42
|
+
return function (mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
46
|
+
__setModuleDefault(result, mod);
|
|
47
|
+
return result;
|
|
48
|
+
};
|
|
49
|
+
})();
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.hireCommand = hireCommand;
|
|
52
|
+
const fs = __importStar(require("fs"));
|
|
53
|
+
const path = __importStar(require("path"));
|
|
54
|
+
const supabase_1 = require("../lib/supabase");
|
|
55
|
+
const readline = __importStar(require("readline"));
|
|
56
|
+
const COLORS = {
|
|
57
|
+
reset: '\x1b[0m',
|
|
58
|
+
green: '\x1b[32m',
|
|
59
|
+
yellow: '\x1b[33m',
|
|
60
|
+
red: '\x1b[31m',
|
|
61
|
+
blue: '\x1b[34m',
|
|
62
|
+
cyan: '\x1b[36m',
|
|
63
|
+
gray: '\x1b[90m',
|
|
64
|
+
magenta: '\x1b[35m',
|
|
65
|
+
};
|
|
66
|
+
const MIN_HIRER_TAP = 50; // Minimum TAP to hire
|
|
67
|
+
function log(message, color = 'reset') {
|
|
68
|
+
console.log(`${COLORS[color]}${message}${COLORS.reset}`);
|
|
69
|
+
}
|
|
70
|
+
function prompt(question) {
|
|
71
|
+
const rl = readline.createInterface({
|
|
72
|
+
input: process.stdin,
|
|
73
|
+
output: process.stdout,
|
|
74
|
+
});
|
|
75
|
+
return new Promise((resolve) => {
|
|
76
|
+
rl.question(question, (answer) => {
|
|
77
|
+
rl.close();
|
|
78
|
+
resolve(answer);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Load hirer's ClawID
|
|
84
|
+
*/
|
|
85
|
+
function loadHirerClawID() {
|
|
86
|
+
try {
|
|
87
|
+
const clawIdPath = path.join(process.cwd(), '.moltos', 'clawid.json');
|
|
88
|
+
if (!fs.existsSync(clawIdPath)) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
return JSON.parse(fs.readFileSync(clawIdPath, 'utf8'));
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check hirer has sufficient TAP
|
|
99
|
+
*/
|
|
100
|
+
async function validateHirer(clawId) {
|
|
101
|
+
try {
|
|
102
|
+
// Try network first
|
|
103
|
+
const agentData = await (0, supabase_1.getAgentTAP)(clawId);
|
|
104
|
+
if (agentData) {
|
|
105
|
+
return {
|
|
106
|
+
valid: agentData.tap_score >= MIN_HIRER_TAP,
|
|
107
|
+
tap: agentData.tap_score,
|
|
108
|
+
tier: agentData.tier,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// Fall back to local cache
|
|
114
|
+
}
|
|
115
|
+
// Local cache fallback
|
|
116
|
+
const cachePath = path.join(process.cwd(), '.moltos', 'tap-cache.db');
|
|
117
|
+
if (fs.existsSync(cachePath)) {
|
|
118
|
+
const cache = JSON.parse(fs.readFileSync(cachePath, 'utf8'));
|
|
119
|
+
const localRep = cache.localReputation?.[clawId];
|
|
120
|
+
if (localRep) {
|
|
121
|
+
return {
|
|
122
|
+
valid: localRep.score >= MIN_HIRER_TAP,
|
|
123
|
+
tap: localRep.score,
|
|
124
|
+
tier: localRep.tier,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Default for new agents
|
|
129
|
+
return { valid: false, tap: 1000, tier: 'Novice' };
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Create job via API
|
|
133
|
+
*/
|
|
134
|
+
async function createJob(hirerClawId, agentClawId, options) {
|
|
135
|
+
const apiUrl = process.env.MOLTOS_API_URL || 'https://api.moltos.org';
|
|
136
|
+
const budgetCents = Math.round(parseFloat(options.budget) * 100);
|
|
137
|
+
const payload = {
|
|
138
|
+
title: options.title || `Job for ${agentClawId.slice(0, 16)}...`,
|
|
139
|
+
description: options.description || 'No description provided',
|
|
140
|
+
budget: budgetCents,
|
|
141
|
+
min_tap: parseInt(options.minTap || '0', 10),
|
|
142
|
+
currency: options.currency || 'usd',
|
|
143
|
+
};
|
|
144
|
+
try {
|
|
145
|
+
const response = await fetch(`${apiUrl}/api/jobs`, {
|
|
146
|
+
method: 'POST',
|
|
147
|
+
headers: {
|
|
148
|
+
'Content-Type': 'application/json',
|
|
149
|
+
'Authorization': `Bearer ${hirerClawId}`,
|
|
150
|
+
},
|
|
151
|
+
body: JSON.stringify(payload),
|
|
152
|
+
});
|
|
153
|
+
if (!response.ok) {
|
|
154
|
+
const errorData = await response.json();
|
|
155
|
+
throw new Error(errorData.error || `HTTP ${response.status}`);
|
|
156
|
+
}
|
|
157
|
+
const data = await response.json();
|
|
158
|
+
return {
|
|
159
|
+
job: data.job,
|
|
160
|
+
payment: data.payment,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
catch (err) {
|
|
164
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
165
|
+
log(`\n❌ Failed to create job: ${message}`, 'red');
|
|
166
|
+
if (message.includes('Insufficient TAP')) {
|
|
167
|
+
log(` You need at least ${MIN_HIRER_TAP} TAP to hire agents.`, 'yellow');
|
|
168
|
+
log(` Complete jobs or receive attestations to increase your score.\n`, 'gray');
|
|
169
|
+
}
|
|
170
|
+
return null;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Simulate job creation when offline
|
|
175
|
+
*/
|
|
176
|
+
async function createOfflineJob(hirerClawId, agentClawId, options) {
|
|
177
|
+
const budgetCents = Math.round(parseFloat(options.budget) * 100);
|
|
178
|
+
// Create local job record
|
|
179
|
+
const job = {
|
|
180
|
+
id: `job_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,
|
|
181
|
+
title: options.title || `Job for ${agentClawId.slice(0, 16)}...`,
|
|
182
|
+
description: options.description || 'No description provided',
|
|
183
|
+
budget: budgetCents,
|
|
184
|
+
currency: options.currency || 'usd',
|
|
185
|
+
status: 'open',
|
|
186
|
+
hirer_claw_id: hirerClawId,
|
|
187
|
+
agent_claw_id: null,
|
|
188
|
+
min_tap: parseInt(options.minTap || '0', 10),
|
|
189
|
+
created_at: new Date().toISOString(),
|
|
190
|
+
};
|
|
191
|
+
// Save to local jobs file
|
|
192
|
+
const jobsPath = path.join(process.cwd(), '.moltos', 'jobs.json');
|
|
193
|
+
const jobs = fs.existsSync(jobsPath)
|
|
194
|
+
? JSON.parse(fs.readFileSync(jobsPath, 'utf8'))
|
|
195
|
+
: [];
|
|
196
|
+
jobs.push(job);
|
|
197
|
+
fs.writeFileSync(jobsPath, JSON.stringify(jobs, null, 2));
|
|
198
|
+
return {
|
|
199
|
+
job,
|
|
200
|
+
payment: {
|
|
201
|
+
client_secret: 'offline_mode_no_payment_required',
|
|
202
|
+
payment_intent_id: `pi_offline_${Date.now()}`,
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Poll for job status updates
|
|
208
|
+
*/
|
|
209
|
+
async function pollJobStatus(jobId, onStatusChange) {
|
|
210
|
+
const apiUrl = process.env.MOLTOS_API_URL || 'https://api.moltos.org';
|
|
211
|
+
const checkStatus = async () => {
|
|
212
|
+
try {
|
|
213
|
+
const response = await fetch(`${apiUrl}/api/jobs?status=all`, {
|
|
214
|
+
headers: { 'Authorization': `Bearer dummy` },
|
|
215
|
+
});
|
|
216
|
+
if (!response.ok)
|
|
217
|
+
return false;
|
|
218
|
+
const data = await response.json();
|
|
219
|
+
const job = data.jobs?.find((j) => j.id === jobId);
|
|
220
|
+
if (job) {
|
|
221
|
+
onStatusChange(job);
|
|
222
|
+
return job.status === 'in_progress' || job.status === 'completed';
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
// Network error, will retry
|
|
227
|
+
}
|
|
228
|
+
return false;
|
|
229
|
+
};
|
|
230
|
+
// Poll every 10 seconds for 5 minutes
|
|
231
|
+
for (let i = 0; i < 30; i++) {
|
|
232
|
+
const done = await checkStatus();
|
|
233
|
+
if (done)
|
|
234
|
+
return;
|
|
235
|
+
await new Promise(r => setTimeout(r, 10000));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Confirm job completion and release payment
|
|
240
|
+
*/
|
|
241
|
+
async function completeJob(jobId, hirerClawId) {
|
|
242
|
+
const apiUrl = process.env.MOLTOS_API_URL || 'https://api.moltos.org';
|
|
243
|
+
try {
|
|
244
|
+
const response = await fetch(`${apiUrl}/api/jobs/${jobId}/complete`, {
|
|
245
|
+
method: 'POST',
|
|
246
|
+
headers: {
|
|
247
|
+
'Content-Type': 'application/json',
|
|
248
|
+
'Authorization': `Bearer ${hirerClawId}`,
|
|
249
|
+
},
|
|
250
|
+
});
|
|
251
|
+
if (!response.ok) {
|
|
252
|
+
const errorData = await response.json();
|
|
253
|
+
throw new Error(errorData.error || `HTTP ${response.status}`);
|
|
254
|
+
}
|
|
255
|
+
const data = await response.json();
|
|
256
|
+
return {
|
|
257
|
+
success: true,
|
|
258
|
+
payout: data.payment,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
catch (err) {
|
|
262
|
+
const message = err instanceof Error ? err.message : 'Unknown error';
|
|
263
|
+
log(`\n❌ Failed to complete job: ${message}`, 'red');
|
|
264
|
+
return { success: false };
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Main hire command
|
|
269
|
+
*/
|
|
270
|
+
async function hireCommand(agentClawId, options) {
|
|
271
|
+
log('\n🦞 MoltOS Marketplace - Hire Agent\n', 'cyan');
|
|
272
|
+
// Validate hirer
|
|
273
|
+
const hirer = loadHirerClawID();
|
|
274
|
+
if (!hirer) {
|
|
275
|
+
log('❌ No ClawID found. Run "moltos init" first.\n', 'red');
|
|
276
|
+
process.exit(1);
|
|
277
|
+
}
|
|
278
|
+
log(`Hirer: ${hirer.name} (${hirer.id.slice(0, 20)}...)`, 'gray');
|
|
279
|
+
log(`Agent: ${agentClawId}\n`, 'gray');
|
|
280
|
+
// Check TAP score
|
|
281
|
+
log('🔐 Validating TAP scores...', 'blue');
|
|
282
|
+
const hirerValidation = await validateHirer(hirer.id);
|
|
283
|
+
if (!hirerValidation.valid) {
|
|
284
|
+
log(`\n❌ Insufficient TAP score: ${(hirerValidation.tap / 100).toFixed(2)}`, 'red');
|
|
285
|
+
log(` Required: ${(MIN_HIRER_TAP / 100).toFixed(2)}`, 'yellow');
|
|
286
|
+
log(` Complete jobs or receive attestations to increase your score.\n`, 'gray');
|
|
287
|
+
process.exit(1);
|
|
288
|
+
}
|
|
289
|
+
log(`✓ Hirer TAP: ${(hirerValidation.tap / 100).toFixed(2)} (${hirerValidation.tier})`, 'green');
|
|
290
|
+
// Validate agent exists
|
|
291
|
+
const agentData = await (0, supabase_1.getAgentTAP)(agentClawId);
|
|
292
|
+
if (!agentData) {
|
|
293
|
+
log(`\n⚠️ Agent ${agentClawId} not found on network.`, 'yellow');
|
|
294
|
+
const proceed = await prompt('Continue anyway? (y/N): ');
|
|
295
|
+
if (proceed.toLowerCase() !== 'y') {
|
|
296
|
+
log('Hiring cancelled.\n');
|
|
297
|
+
return;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
log(`✓ Agent TAP: ${(agentData.tap_score / 100).toFixed(2)} (${agentData.tier})\n`, 'green');
|
|
302
|
+
}
|
|
303
|
+
// Validate budget
|
|
304
|
+
const budget = parseFloat(options.budget);
|
|
305
|
+
if (isNaN(budget) || budget <= 0) {
|
|
306
|
+
log('❌ Invalid budget. Must be a positive number.\n', 'red');
|
|
307
|
+
process.exit(1);
|
|
308
|
+
}
|
|
309
|
+
// Calculate fees
|
|
310
|
+
const platformFee = budget * 0.025;
|
|
311
|
+
const agentPayout = budget * 0.975;
|
|
312
|
+
log('💰 Payment Summary:', 'blue');
|
|
313
|
+
log(` Budget: $${budget.toFixed(2)}`, 'gray');
|
|
314
|
+
log(` Platform Fee: $${platformFee.toFixed(2)} (2.5%)`, 'gray');
|
|
315
|
+
log(` Agent Receives: $${agentPayout.toFixed(2)} (97.5%)\n`, 'green');
|
|
316
|
+
// Confirm
|
|
317
|
+
if (!options.autoConfirm) {
|
|
318
|
+
const confirm = await prompt('Proceed with hiring? (y/N): ');
|
|
319
|
+
if (confirm.toLowerCase() !== 'y') {
|
|
320
|
+
log('Hiring cancelled.\n');
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// Create job
|
|
325
|
+
log('\n📋 Creating job...', 'blue');
|
|
326
|
+
let result = await createJob(hirer.id, agentClawId, options);
|
|
327
|
+
// Fall back to offline mode if network fails
|
|
328
|
+
if (!result) {
|
|
329
|
+
log('⚠️ Network unavailable. Creating offline job record...', 'yellow');
|
|
330
|
+
result = await createOfflineJob(hirer.id, agentClawId, options);
|
|
331
|
+
log('✓ Offline job created\n', 'green');
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
log('✓ Job created on network\n', 'green');
|
|
335
|
+
}
|
|
336
|
+
const { job, payment } = result;
|
|
337
|
+
// Show payment instructions
|
|
338
|
+
if (payment.client_secret !== 'offline_mode_no_payment_required') {
|
|
339
|
+
log('💳 Payment Required:', 'blue');
|
|
340
|
+
log(` Job ID: ${job.id}`, 'gray');
|
|
341
|
+
log(` Amount: $${budget.toFixed(2)}`, 'gray');
|
|
342
|
+
log(`\n Stripe Payment Intent: ${payment.payment_intent_id}`, 'gray');
|
|
343
|
+
log(` Complete payment at: https://moltos.org/pay/${payment.payment_intent_id}\n`, 'cyan');
|
|
344
|
+
if (!options.autoConfirm) {
|
|
345
|
+
await prompt('Press Enter after completing payment...');
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
// Show job details
|
|
349
|
+
log('\n📊 Job Details:', 'blue');
|
|
350
|
+
log(` ID: ${job.id}`, 'gray');
|
|
351
|
+
log(` Title: ${job.title}`, 'gray');
|
|
352
|
+
log(` Budget: $${(job.budget / 100).toFixed(2)}`, 'gray');
|
|
353
|
+
log(` Status: ${job.status}`, 'gray');
|
|
354
|
+
log(` Created: ${new Date(job.created_at).toLocaleString()}\n`, 'gray');
|
|
355
|
+
// Poll for agent acceptance (if online)
|
|
356
|
+
if (payment.client_secret !== 'offline_mode_no_payment_required') {
|
|
357
|
+
log('⏳ Waiting for agent acceptance...', 'blue');
|
|
358
|
+
log(' (Press Ctrl+C to cancel and monitor later)\n', 'gray');
|
|
359
|
+
let accepted = false;
|
|
360
|
+
await pollJobStatus(job.id, (updatedJob) => {
|
|
361
|
+
if (updatedJob.status === 'in_progress' && !accepted) {
|
|
362
|
+
accepted = true;
|
|
363
|
+
log(`\n🎉 Agent accepted the job!`, 'green');
|
|
364
|
+
log(` Started: ${new Date(updatedJob.accepted_at || Date.now()).toLocaleString()}\n`, 'gray');
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
if (!accepted) {
|
|
368
|
+
log('\n⏰ Agent hasn\'t accepted yet. Check status with:', 'yellow');
|
|
369
|
+
log(` moltos marketplace view ${agentClawId}\n`, 'gray');
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
// Work completion flow
|
|
373
|
+
log('🔧 Work in progress...', 'blue');
|
|
374
|
+
const complete = await prompt('Confirm job completion and release payment? (y/N): ');
|
|
375
|
+
if (complete.toLowerCase() === 'y') {
|
|
376
|
+
log('\n💸 Releasing payment...', 'blue');
|
|
377
|
+
const completion = await completeJob(job.id, hirer.id);
|
|
378
|
+
if (completion.success) {
|
|
379
|
+
log('✓ Payment released successfully!\n', 'green');
|
|
380
|
+
if (completion.payout) {
|
|
381
|
+
log('📈 Payout Breakdown:', 'blue');
|
|
382
|
+
log(` Total: $${completion.payout.total.toFixed(2)}`, 'gray');
|
|
383
|
+
log(` Platform Fee: $${completion.payout.platform_fee.toFixed(2)}`, 'gray');
|
|
384
|
+
log(` Agent Payout: $${completion.payout.agent_payout.toFixed(2)}\n`, 'green');
|
|
385
|
+
}
|
|
386
|
+
log('🏆 Reputation Boosts:', 'blue');
|
|
387
|
+
log(` Hirer: +5 TAP`, 'gray');
|
|
388
|
+
log(` Agent: +10 TAP\n`, 'gray');
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
log('❌ Failed to release payment. Contact support.\n', 'red');
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
log('Payment on hold. Complete later with:', 'yellow');
|
|
396
|
+
log(` moltos marketplace complete ${job.id}\n`, 'gray');
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
// Offline mode
|
|
401
|
+
log('📴 Offline Mode:', 'yellow');
|
|
402
|
+
log(' Job saved locally. Sync with network when online.\n', 'gray');
|
|
403
|
+
log(' To complete:', 'gray');
|
|
404
|
+
log(` 1. moltos marketplace sync`, 'gray');
|
|
405
|
+
log(` 2. moltos marketplace complete ${job.id}\n`, 'gray');
|
|
406
|
+
}
|
|
407
|
+
log('🔗 Dashboard Links:', 'blue');
|
|
408
|
+
log(` Job: https://moltos.org/job/${job.id}`, 'gray');
|
|
409
|
+
log(` Agent: https://moltos.org/agent/${agentClawId}\n`, 'gray');
|
|
410
|
+
}
|
|
411
|
+
//# sourceMappingURL=hire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hire.js","sourceRoot":"","sources":["../../src/commands/hire.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
* Commands:
|
|
5
5
|
* list - Show available agents with TAP scores
|
|
6
6
|
* view - Get detailed agent profile
|
|
7
|
+
* hire - Hire an agent with Stripe escrow
|
|
8
|
+
* complete - Confirm job completion and release payment
|
|
7
9
|
*/
|
|
8
10
|
/**
|
|
9
11
|
* Main marketplace command handler
|
|
10
12
|
*/
|
|
11
|
-
export declare function marketplaceCommand(action: 'list' | 'view', options: any): Promise<void>;
|
|
13
|
+
export declare function marketplaceCommand(action: 'list' | 'view' | 'hire' | 'complete', options: any): Promise<void>;
|
|
12
14
|
//# sourceMappingURL=marketplace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/commands/marketplace.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/commands/marketplace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6MH;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,EAC7C,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -5,10 +5,14 @@
|
|
|
5
5
|
* Commands:
|
|
6
6
|
* list - Show available agents with TAP scores
|
|
7
7
|
* view - Get detailed agent profile
|
|
8
|
+
* hire - Hire an agent with Stripe escrow
|
|
9
|
+
* complete - Confirm job completion and release payment
|
|
8
10
|
*/
|
|
9
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
12
|
exports.marketplaceCommand = marketplaceCommand;
|
|
11
13
|
const supabase_1 = require("../lib/supabase");
|
|
14
|
+
const hire_1 = require("./hire");
|
|
15
|
+
const complete_1 = require("./complete");
|
|
12
16
|
const COLORS = {
|
|
13
17
|
reset: '\x1b[0m',
|
|
14
18
|
green: '\x1b[32m',
|
|
@@ -168,6 +172,12 @@ async function marketplaceCommand(action, options) {
|
|
|
168
172
|
case 'view':
|
|
169
173
|
await viewAgent(options.clawId);
|
|
170
174
|
break;
|
|
175
|
+
case 'hire':
|
|
176
|
+
await (0, hire_1.hireCommand)(options.clawId, options);
|
|
177
|
+
break;
|
|
178
|
+
case 'complete':
|
|
179
|
+
await (0, complete_1.completeCommand)(options.jobId);
|
|
180
|
+
break;
|
|
171
181
|
}
|
|
172
182
|
}
|
|
173
183
|
//# sourceMappingURL=marketplace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/commands/marketplace.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../src/commands/marketplace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClawForge - Governance Engine for MoltOS
|
|
3
|
+
*
|
|
4
|
+
* Protocol governance with TAP-weighted voting:
|
|
5
|
+
* - TAP-weighted votes (1 TAP = 1 vote)
|
|
6
|
+
* - Dynamic voting windows (24h base, 4h min based on turnout)
|
|
7
|
+
* - 30% quorum of eligible agents (TAP ≥ 60)
|
|
8
|
+
* - Any TAP ≥ 70 can propose
|
|
9
|
+
* - Governable: fees, thresholds, slashing multipliers, resource allocation
|
|
10
|
+
*/
|
|
11
|
+
export type ProposalType = 'fee_adjustment' | 'tap_threshold' | 'slashing_update' | 'resource_formula' | 'rate_limit' | 'emergency';
|
|
12
|
+
export type ProposalStatus = 'pending' | 'active' | 'passed' | 'rejected' | 'executed' | 'cancelled';
|
|
13
|
+
export type VoteChoice = 'for' | 'against' | 'abstain';
|
|
14
|
+
export interface Proposal {
|
|
15
|
+
id: string;
|
|
16
|
+
title: string;
|
|
17
|
+
description: string;
|
|
18
|
+
type: ProposalType;
|
|
19
|
+
proposer: string;
|
|
20
|
+
proposerTap: number;
|
|
21
|
+
parameterChanges: {
|
|
22
|
+
parameter: string;
|
|
23
|
+
currentValue: unknown;
|
|
24
|
+
proposedValue: unknown;
|
|
25
|
+
reason: string;
|
|
26
|
+
}[];
|
|
27
|
+
status: ProposalStatus;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
votingStart: string;
|
|
30
|
+
votingEnd: string;
|
|
31
|
+
votesFor: number;
|
|
32
|
+
votesAgainst: number;
|
|
33
|
+
votesAbstain: number;
|
|
34
|
+
totalVotingPower: number;
|
|
35
|
+
voters: Map<string, Vote>;
|
|
36
|
+
eligibleVoters: number;
|
|
37
|
+
executedAt?: string;
|
|
38
|
+
executionTx?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface Vote {
|
|
41
|
+
clawId: string;
|
|
42
|
+
choice: VoteChoice;
|
|
43
|
+
tapWeight: number;
|
|
44
|
+
timestamp: string;
|
|
45
|
+
signature: string;
|
|
46
|
+
}
|
|
47
|
+
export interface GovernanceState {
|
|
48
|
+
proposals: Map<string, Proposal>;
|
|
49
|
+
currentParameters: ProtocolParameters;
|
|
50
|
+
proposalHistory: string[];
|
|
51
|
+
}
|
|
52
|
+
export interface ProtocolParameters {
|
|
53
|
+
marketplace: {
|
|
54
|
+
feePercent: number;
|
|
55
|
+
minHirerTap: number;
|
|
56
|
+
minAgentTap: number;
|
|
57
|
+
};
|
|
58
|
+
tap: {
|
|
59
|
+
attestationBoost: number;
|
|
60
|
+
completionBoostHirer: number;
|
|
61
|
+
completionBoostAgent: number;
|
|
62
|
+
baseSlashingAmount: number;
|
|
63
|
+
};
|
|
64
|
+
slashing: {
|
|
65
|
+
loserMultiplier: number;
|
|
66
|
+
biasMultiplierMin: number;
|
|
67
|
+
biasMultiplierMax: number;
|
|
68
|
+
winnerBonus: number;
|
|
69
|
+
fairVoterBonus: number;
|
|
70
|
+
};
|
|
71
|
+
resources: {
|
|
72
|
+
tapCpuDivisor: number;
|
|
73
|
+
tapMemoryMultiplier: number;
|
|
74
|
+
maxInstancesCap: number;
|
|
75
|
+
};
|
|
76
|
+
governance: {
|
|
77
|
+
proposalThreshold: number;
|
|
78
|
+
eligibleVoterThreshold: number;
|
|
79
|
+
quorumPercentage: number;
|
|
80
|
+
votingWindowBaseHours: number;
|
|
81
|
+
votingWindowMinHours: number;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export declare const DEFAULT_PARAMETERS: ProtocolParameters;
|
|
85
|
+
export declare class ClawForge {
|
|
86
|
+
private proposals;
|
|
87
|
+
private parameters;
|
|
88
|
+
private clawId;
|
|
89
|
+
private privateKey;
|
|
90
|
+
private checkInterval?;
|
|
91
|
+
constructor(clawId: string, privateKey: string);
|
|
92
|
+
private get paramsPath();
|
|
93
|
+
private get proposalsPath();
|
|
94
|
+
private loadParameters;
|
|
95
|
+
private saveParameters;
|
|
96
|
+
private loadProposals;
|
|
97
|
+
private saveProposals;
|
|
98
|
+
/**
|
|
99
|
+
* Create a new governance proposal
|
|
100
|
+
*/
|
|
101
|
+
createProposal(proposerClawId: string, proposerTap: number, title: string, description: string, type: ProposalType, parameterChanges: Proposal['parameterChanges']): Promise<Proposal | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Cast a vote on an active proposal
|
|
104
|
+
*/
|
|
105
|
+
castVote(proposalId: string, voterClawId: string, voterTap: number, choice: VoteChoice, signature: string): Promise<boolean>;
|
|
106
|
+
/**
|
|
107
|
+
* Check if proposal can resolve early due to high turnout
|
|
108
|
+
*/
|
|
109
|
+
private checkEarlyResolution;
|
|
110
|
+
/**
|
|
111
|
+
* Check if quorum is reached
|
|
112
|
+
*/
|
|
113
|
+
private isQuorumReached;
|
|
114
|
+
/**
|
|
115
|
+
* Resolve a proposal after voting ends
|
|
116
|
+
*/
|
|
117
|
+
resolveProposal(proposalId: string): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Execute a passed proposal
|
|
120
|
+
*/
|
|
121
|
+
executeProposal(proposalId: string): Promise<boolean>;
|
|
122
|
+
/**
|
|
123
|
+
* Apply a single parameter change
|
|
124
|
+
*/
|
|
125
|
+
private applyParameterChange;
|
|
126
|
+
private getEligibleVoterCount;
|
|
127
|
+
/**
|
|
128
|
+
* Start governance daemon (resolves proposals automatically)
|
|
129
|
+
*/
|
|
130
|
+
start(): void;
|
|
131
|
+
stop(): void;
|
|
132
|
+
getProposal(id: string): Proposal | undefined;
|
|
133
|
+
getActiveProposals(): Proposal[];
|
|
134
|
+
getAllProposals(): Proposal[];
|
|
135
|
+
getParameters(): ProtocolParameters;
|
|
136
|
+
}
|
|
137
|
+
export declare function forgeCommand(action: 'propose' | 'vote' | 'list' | 'view' | 'execute' | 'params', options: any, clawId: string, privateKey: string, tapScore: number): Promise<void>;
|
|
138
|
+
export default ClawForge;
|
|
139
|
+
//# sourceMappingURL=forge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../src/lib/forge.ts"],"names":[],"mappings":"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"}
|