@lucid-agents/taskmarket 0.3.1 → 0.4.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/commands/init.js +1 -19
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/task/create.js +1 -1
- package/dist/commands/task/create.js.map +1 -1
- package/dist/commands/wallet/import.js +131 -0
- package/dist/commands/wallet/import.js.map +1 -0
- package/dist/commands/wallet/index.js +5 -0
- package/dist/commands/wallet/index.js.map +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/agent.js +21 -0
- package/dist/lib/agent.js.map +1 -0
- package/package.json +1 -1
package/dist/commands/init.js
CHANGED
|
@@ -2,25 +2,7 @@ import { Command } from 'commander';
|
|
|
2
2
|
import { generateKeypair, encryptPrivateKey, saveKeystore, keystoreExists, getKeystorePath, loadKeystore, } from '../lib/keystore.js';
|
|
3
3
|
import { API_URL } from '../lib/api.js';
|
|
4
4
|
import { isHumanMode, printResult } from '../lib/output.js';
|
|
5
|
-
|
|
6
|
-
const interval = 3_000;
|
|
7
|
-
const deadline = Date.now() + maxWaitMs;
|
|
8
|
-
while (Date.now() < deadline) {
|
|
9
|
-
await new Promise((r) => setTimeout(r, interval));
|
|
10
|
-
try {
|
|
11
|
-
const res = await fetch(`${API_URL}/api/identity/status?address=${address}`);
|
|
12
|
-
if (res.ok) {
|
|
13
|
-
const data = (await res.json());
|
|
14
|
-
if (data.agentId)
|
|
15
|
-
return data.agentId;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
catch {
|
|
19
|
-
// ignore transient errors, keep polling
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
5
|
+
import { pollAgentId } from '../lib/agent.js';
|
|
24
6
|
export const initCommand = new Command('init')
|
|
25
7
|
.description('Create and register a new agent wallet (safe to re-run)')
|
|
26
8
|
.option('--human', 'Human-readable output')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export const createCmd = new Command('create')
|
|
|
5
5
|
.description('Create a new task (costs reward amount in USDC)')
|
|
6
6
|
.requiredOption('--description <text>', 'Task description')
|
|
7
7
|
.requiredOption('--reward <usdc>', 'Reward in USDC (e.g. 5 for 5 USDC)')
|
|
8
|
-
.requiredOption('--duration <
|
|
8
|
+
.requiredOption('--duration <hours>', 'Task duration in hours')
|
|
9
9
|
.option('--mode <mode>', 'Task mode: bounty, claim, pitch, benchmark, auction', 'bounty')
|
|
10
10
|
.option('--tags <tags>', 'Comma-separated tags')
|
|
11
11
|
.option('--pitch-deadline <hours>', 'Pitch deadline in hours from now (pitch mode only)')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/task/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3E,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,iDAAiD,CAAC;KAC9D,cAAc,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;KAC1D,cAAc,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;KACvE,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/task/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createInterface } from 'readline';
|
|
3
|
+
import { privateKeyToAccount } from 'viem/accounts';
|
|
4
|
+
import { encryptPrivateKey, saveKeystore, keystoreExists, getKeystorePath, loadKeystore, } from '../../lib/keystore.js';
|
|
5
|
+
import { API_URL } from '../../lib/api.js';
|
|
6
|
+
import { isHumanMode, printResult } from '../../lib/output.js';
|
|
7
|
+
import { pollAgentId } from '../../lib/agent.js';
|
|
8
|
+
function normalizePrivateKey(raw) {
|
|
9
|
+
const hex = raw.startsWith('0x') ? raw.slice(2) : raw;
|
|
10
|
+
if (!/^[0-9a-fA-F]{64}$/.test(hex)) {
|
|
11
|
+
throw new Error('Invalid private key: must be 32 bytes (64 hex characters)');
|
|
12
|
+
}
|
|
13
|
+
return `0x${hex}`;
|
|
14
|
+
}
|
|
15
|
+
function promptHiddenInput(prompt) {
|
|
16
|
+
return new Promise((resolve) => {
|
|
17
|
+
const rl = createInterface({
|
|
18
|
+
input: process.stdin,
|
|
19
|
+
output: process.stdout,
|
|
20
|
+
terminal: true,
|
|
21
|
+
});
|
|
22
|
+
process.stdout.write(prompt);
|
|
23
|
+
// Suppress echo
|
|
24
|
+
const muted = { muted: false };
|
|
25
|
+
const _write = rl.output.write.bind(rl.output);
|
|
26
|
+
rl.output.write = (s) => {
|
|
27
|
+
if (muted.muted)
|
|
28
|
+
return;
|
|
29
|
+
_write(s);
|
|
30
|
+
};
|
|
31
|
+
muted.muted = true;
|
|
32
|
+
rl.question('', (answer) => {
|
|
33
|
+
muted.muted = false;
|
|
34
|
+
process.stdout.write('\n');
|
|
35
|
+
rl.close();
|
|
36
|
+
resolve(answer);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
export const walletImportCommand = new Command('import')
|
|
41
|
+
.description('Import an existing private key as the agent wallet')
|
|
42
|
+
.option('--key <privateKey>', 'Private key to import (64 hex chars, with or without 0x prefix)')
|
|
43
|
+
.option('--human', 'Human-readable output')
|
|
44
|
+
.action(async (opts) => {
|
|
45
|
+
const human = isHumanMode(opts.human);
|
|
46
|
+
if (await keystoreExists()) {
|
|
47
|
+
const keystore = await loadKeystore();
|
|
48
|
+
if (human) {
|
|
49
|
+
console.log('Wallet already exists:', keystore.walletAddress);
|
|
50
|
+
if (keystore.agentId)
|
|
51
|
+
console.log('Agent ID:', keystore.agentId);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
printResult({ address: keystore.walletAddress, agentId: keystore.agentId }, human);
|
|
55
|
+
}
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Determine key source: --key flag, env var, or interactive prompt
|
|
59
|
+
let rawKey;
|
|
60
|
+
let keySource;
|
|
61
|
+
if (opts.key) {
|
|
62
|
+
rawKey = opts.key;
|
|
63
|
+
keySource = 'flag';
|
|
64
|
+
}
|
|
65
|
+
else if (process.env['TASKMARKET_IMPORT_KEY']) {
|
|
66
|
+
rawKey = process.env['TASKMARKET_IMPORT_KEY'];
|
|
67
|
+
keySource = 'env';
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
rawKey = await promptHiddenInput('Enter private key (input hidden): ');
|
|
71
|
+
keySource = 'prompt';
|
|
72
|
+
}
|
|
73
|
+
const privateKey = normalizePrivateKey(rawKey);
|
|
74
|
+
const account = privateKeyToAccount(privateKey);
|
|
75
|
+
const address = account.address;
|
|
76
|
+
// Register device with backend
|
|
77
|
+
const res = await fetch(`${API_URL}/api/devices`, {
|
|
78
|
+
method: 'POST',
|
|
79
|
+
headers: { 'Content-Type': 'application/json' },
|
|
80
|
+
body: JSON.stringify({ walletAddress: address }),
|
|
81
|
+
});
|
|
82
|
+
if (!res.ok) {
|
|
83
|
+
const text = await res.text().catch(() => '');
|
|
84
|
+
throw new Error(`Device registration failed (${res.status}): ${text}`);
|
|
85
|
+
}
|
|
86
|
+
const { deviceId, apiToken, deviceEncryptionKey, agentId: initialAgentId, } = (await res.json());
|
|
87
|
+
const encryptedKey = encryptPrivateKey(deviceEncryptionKey, privateKey);
|
|
88
|
+
// agentId may be null if on-chain registration is still pending — poll for it
|
|
89
|
+
let agentId = initialAgentId;
|
|
90
|
+
await saveKeystore({ encryptedKey, walletAddress: address, deviceId, apiToken, agentId });
|
|
91
|
+
if (!agentId) {
|
|
92
|
+
agentId = await pollAgentId(address);
|
|
93
|
+
if (agentId) {
|
|
94
|
+
const keystore = await loadKeystore();
|
|
95
|
+
await saveKeystore({ ...keystore, agentId });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (human) {
|
|
99
|
+
console.log('Wallet imported:', address);
|
|
100
|
+
console.log('Agent ID:', agentId ?? '(pending — run `taskmarket init` again shortly)');
|
|
101
|
+
console.log('Keystore saved to:', getKeystorePath());
|
|
102
|
+
if (keySource === 'flag') {
|
|
103
|
+
console.log('');
|
|
104
|
+
console.log('Warning: private key was passed via --key flag. It may be visible in shell history');
|
|
105
|
+
console.log('and in process listings (ps aux) while the command ran.');
|
|
106
|
+
console.log('To remove it from shell history:');
|
|
107
|
+
console.log('');
|
|
108
|
+
console.log(' # zsh');
|
|
109
|
+
console.log(" fc -W; sed -i '' '$d' ~/.zsh_history");
|
|
110
|
+
console.log('');
|
|
111
|
+
console.log(' # bash');
|
|
112
|
+
console.log(" history -d $(history 1 | awk '{print $1}') && history -w");
|
|
113
|
+
}
|
|
114
|
+
else if (keySource === 'env') {
|
|
115
|
+
console.log('');
|
|
116
|
+
console.log('Note: key was read from TASKMARKET_IMPORT_KEY env var.');
|
|
117
|
+
console.log('This is secure only when injected at runtime by your orchestration platform');
|
|
118
|
+
console.log('(Docker -e, Kubernetes Secret, systemd EnvironmentFile).');
|
|
119
|
+
console.log('If set in a dotfile (.env, .zshrc), the agent can read it — avoid this.');
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
if (keySource === 'flag') {
|
|
124
|
+
console.error(JSON.stringify({
|
|
125
|
+
warning: 'Private key was passed via --key flag and may be visible in shell history and ps aux.',
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
printResult({ address, agentId }, human);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/commands/wallet/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE7F,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,9 +8,11 @@ import { taskCommand } from './commands/task/index.js';
|
|
|
8
8
|
import { agentsCommand } from './commands/agents.js';
|
|
9
9
|
import { inboxCommand } from './commands/inbox.js';
|
|
10
10
|
import { depositCommand } from './commands/deposit.js';
|
|
11
|
+
import { walletCommand } from './commands/wallet/index.js';
|
|
11
12
|
const program = new Command();
|
|
12
|
-
program.name('taskmarket').description('Taskmarket CLI for AI agents').version('0.1
|
|
13
|
+
program.name('taskmarket').description('Taskmarket CLI for AI agents').version('0.3.1');
|
|
13
14
|
program.addCommand(initCommand);
|
|
15
|
+
program.addCommand(walletCommand);
|
|
14
16
|
program.addCommand(addressCommand);
|
|
15
17
|
program.addCommand(identityCommand);
|
|
16
18
|
program.addCommand(statsCommand);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAExF,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,OAAO,CAAC;IAC/F,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { API_URL } from './api.js';
|
|
2
|
+
export async function pollAgentId(address, maxWaitMs = 60_000) {
|
|
3
|
+
const interval = 3_000;
|
|
4
|
+
const deadline = Date.now() + maxWaitMs;
|
|
5
|
+
while (Date.now() < deadline) {
|
|
6
|
+
await new Promise((r) => setTimeout(r, interval));
|
|
7
|
+
try {
|
|
8
|
+
const res = await fetch(`${API_URL}/api/identity/status?address=${address}`);
|
|
9
|
+
if (res.ok) {
|
|
10
|
+
const data = (await res.json());
|
|
11
|
+
if (data.agentId)
|
|
12
|
+
return data.agentId;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
// ignore transient errors, keep polling
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,SAAS,GAAG,MAAM;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,gCAAgC,OAAO,EAAE,CAAC,CAAC;YAC7E,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgC,CAAC;gBAC/D,IAAI,IAAI,CAAC,OAAO;oBAAE,OAAO,IAAI,CAAC,OAAO,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|