@lucid-agents/taskmarket 0.5.3 → 0.6.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/address.js +3 -10
- package/dist/commands/address.js.map +1 -1
- package/dist/commands/agents.js +3 -33
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/deposit.js +5 -16
- package/dist/commands/deposit.js.map +1 -1
- package/dist/commands/identity.js +5 -29
- package/dist/commands/identity.js.map +1 -1
- package/dist/commands/inbox.js +4 -35
- package/dist/commands/inbox.js.map +1 -1
- package/dist/commands/init.js +15 -44
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/stats.js +13 -18
- package/dist/commands/stats.js.map +1 -1
- package/dist/commands/task/accept.js +2 -9
- package/dist/commands/task/accept.js.map +1 -1
- package/dist/commands/task/bid.js +2 -9
- package/dist/commands/task/bid.js.map +1 -1
- package/dist/commands/task/claim.js +3 -10
- package/dist/commands/task/claim.js.map +1 -1
- package/dist/commands/task/create.js +3 -10
- package/dist/commands/task/create.js.map +1 -1
- package/dist/commands/task/download.js +4 -11
- package/dist/commands/task/download.js.map +1 -1
- package/dist/commands/task/get.js +4 -19
- package/dist/commands/task/get.js.map +1 -1
- package/dist/commands/task/pitch.js +2 -9
- package/dist/commands/task/pitch.js.map +1 -1
- package/dist/commands/task/proof.js +2 -9
- package/dist/commands/task/proof.js.map +1 -1
- package/dist/commands/task/rate.js +3 -10
- package/dist/commands/task/rate.js.map +1 -1
- package/dist/commands/task/search.js +2 -22
- package/dist/commands/task/search.js.map +1 -1
- package/dist/commands/task/select-winner.js +4 -13
- package/dist/commands/task/select-winner.js.map +1 -1
- package/dist/commands/task/select-worker.js +2 -9
- package/dist/commands/task/select-worker.js.map +1 -1
- package/dist/commands/task/submissions.js +5 -28
- package/dist/commands/task/submissions.js.map +1 -1
- package/dist/commands/task/submit.js +2 -9
- package/dist/commands/task/submit.js.map +1 -1
- package/dist/commands/wallet/balance.js +17 -0
- package/dist/commands/wallet/balance.js.map +1 -0
- package/dist/commands/wallet/import.js +8 -43
- package/dist/commands/wallet/import.js.map +1 -1
- package/dist/commands/wallet/index.js +2 -0
- package/dist/commands/wallet/index.js.map +1 -1
- package/dist/commands/wallet/set-withdrawal-address.js +5 -12
- package/dist/commands/wallet/set-withdrawal-address.js.map +1 -1
- package/dist/commands/withdraw.js +6 -15
- package/dist/commands/withdraw.js.map +1 -1
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/output.js +4 -19
- package/dist/lib/output.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { loadKeystore } from '../../lib/keystore.js';
|
|
3
3
|
import { apiPost } from '../../lib/api.js';
|
|
4
|
-
import {
|
|
4
|
+
import { printError } from '../../lib/output.js';
|
|
5
5
|
import { writeFileSync } from 'fs';
|
|
6
6
|
export const downloadCmd = new Command('download')
|
|
7
7
|
.description('Download a submission file (requester or worker)')
|
|
8
8
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
9
9
|
.requiredOption('--submission <id>', 'Submission ID (from `task submissions`)')
|
|
10
10
|
.option('--output <path>', 'Save to file instead of printing to stdout')
|
|
11
|
-
.option('--human', 'Human-readable output')
|
|
12
11
|
.action(async (taskId, opts) => {
|
|
13
|
-
const human = isHumanMode(opts.human);
|
|
14
12
|
const keystore = await loadKeystore();
|
|
15
13
|
let presignedUrl;
|
|
16
14
|
try {
|
|
@@ -24,21 +22,16 @@ export const downloadCmd = new Command('download')
|
|
|
24
22
|
}
|
|
25
23
|
catch (err) {
|
|
26
24
|
const msg = err instanceof Error ? err.message : 'Failed to get download URL.';
|
|
27
|
-
printError(msg
|
|
25
|
+
printError(msg);
|
|
28
26
|
}
|
|
29
27
|
const res = await fetch(presignedUrl);
|
|
30
28
|
if (!res.ok) {
|
|
31
|
-
printError(`Failed to download file: ${res.status}
|
|
29
|
+
printError(`Failed to download file: ${res.status}`);
|
|
32
30
|
}
|
|
33
31
|
const content = await res.text();
|
|
34
32
|
if (opts.output) {
|
|
35
33
|
writeFileSync(opts.output, content, 'utf8');
|
|
36
|
-
|
|
37
|
-
console.log(`Saved to ${opts.output}`);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
process.stdout.write(JSON.stringify({ ok: true, data: { savedTo: opts.output } }) + '\n');
|
|
41
|
-
}
|
|
34
|
+
process.stdout.write(JSON.stringify({ ok: true, data: { savedTo: opts.output } }) + '\n');
|
|
42
35
|
}
|
|
43
36
|
else {
|
|
44
37
|
process.stdout.write(content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/commands/task/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/commands/task/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEnC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC/C,WAAW,CAAC,kDAAkD,CAAC;KAC/D,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,cAAc,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;KAC9E,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAA6C,EAAE,EAAE;IAC9E,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IAEtC,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,MAAM,gBAAgB,IAAI,CAAC,UAAU,UAAU,EAAE;YAC3F,MAAM;YACN,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;SAC5B,CAAC,CAA6B,CAAC;QAChC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IACrC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC;QAC/E,UAAU,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,YAAa,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,UAAU,CAAC,4BAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAEjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,29 +1,14 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { apiGet } from '../../lib/api.js';
|
|
3
|
-
import {
|
|
3
|
+
import { printResult, printError } from '../../lib/output.js';
|
|
4
4
|
export const getCmd = new Command('get')
|
|
5
5
|
.description('Get task details')
|
|
6
6
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
7
|
-
.
|
|
8
|
-
.action(async (taskId, opts) => {
|
|
9
|
-
const human = isHumanMode(opts.human);
|
|
7
|
+
.action(async (taskId) => {
|
|
10
8
|
const task = (await apiGet(`/api/tasks/${taskId}`));
|
|
11
9
|
if (!task) {
|
|
12
|
-
printError(`Task not found: ${taskId}
|
|
13
|
-
}
|
|
14
|
-
if (human) {
|
|
15
|
-
const { pendingActions, ...taskData } = task;
|
|
16
|
-
console.log(JSON.stringify(taskData, null, 2));
|
|
17
|
-
if (pendingActions && pendingActions.length > 0) {
|
|
18
|
-
console.log('');
|
|
19
|
-
console.log('Next steps:');
|
|
20
|
-
for (const a of pendingActions) {
|
|
21
|
-
console.log(` [${a.role}] ${a.command}`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
printResult(task, human);
|
|
10
|
+
printError(`Task not found: ${taskId}`);
|
|
27
11
|
}
|
|
12
|
+
printResult(task);
|
|
28
13
|
});
|
|
29
14
|
//# sourceMappingURL=get.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/task/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/task/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACrC,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAC/B,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,MAAM,EAAE,CAAC,CAAmC,CAAC;IACtF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,UAAU,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,WAAW,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -3,15 +3,13 @@ import { keccak256, toBytes } from 'viem';
|
|
|
3
3
|
import { loadKeystore } from '../../lib/keystore.js';
|
|
4
4
|
import { signMessage } from '../../lib/signer.js';
|
|
5
5
|
import { apiPost } from '../../lib/api.js';
|
|
6
|
-
import {
|
|
6
|
+
import { printResult } from '../../lib/output.js';
|
|
7
7
|
export const pitchCmd = new Command('pitch')
|
|
8
8
|
.description('Submit a pitch for a task')
|
|
9
9
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
10
10
|
.requiredOption('--text <text>', 'Pitch text')
|
|
11
11
|
.option('--duration <hours>', 'Estimated duration in hours')
|
|
12
|
-
.option('--human', 'Human-readable output')
|
|
13
12
|
.action(async (taskId, opts) => {
|
|
14
|
-
const human = isHumanMode(opts.human);
|
|
15
13
|
const keystore = await loadKeystore();
|
|
16
14
|
const pitchHash = keccak256(toBytes(opts.text));
|
|
17
15
|
const signature = await signMessage(pitchHash, keystore);
|
|
@@ -21,11 +19,6 @@ export const pitchCmd = new Command('pitch')
|
|
|
21
19
|
...(opts.duration ? { estimatedDuration: parseInt(opts.duration, 10) } : {}),
|
|
22
20
|
signature,
|
|
23
21
|
}));
|
|
24
|
-
|
|
25
|
-
console.log('Pitch submitted:', result.pitchId);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
printResult({ pitchId: result.pitchId }, human);
|
|
29
|
-
}
|
|
22
|
+
printResult({ pitchId: result.pitchId });
|
|
30
23
|
});
|
|
31
24
|
//# sourceMappingURL=pitch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pitch.js","sourceRoot":"","sources":["../../../src/commands/task/pitch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"pitch.js","sourceRoot":"","sources":["../../../src/commands/task/pitch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACzC,WAAW,CAAC,2BAA2B,CAAC;KACxC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;KAC7C,MAAM,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAyC,EAAE,EAAE;IAC1E,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,MAAM,UAAU,EAAE;QAC5D,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,SAAS,EAAE,IAAI,CAAC,IAAI;QACpB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,SAAS;KACV,CAAC,CAAwB,CAAC;IAE3B,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
|
|
@@ -3,16 +3,14 @@ import { keccak256, toBytes } from 'viem';
|
|
|
3
3
|
import { loadKeystore } from '../../lib/keystore.js';
|
|
4
4
|
import { signMessage } from '../../lib/signer.js';
|
|
5
5
|
import { apiPost } from '../../lib/api.js';
|
|
6
|
-
import {
|
|
6
|
+
import { printResult } from '../../lib/output.js';
|
|
7
7
|
export const proofCmd = new Command('proof')
|
|
8
8
|
.description('Submit a proof for a task')
|
|
9
9
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
10
10
|
.requiredOption('--data <data>', 'Proof data')
|
|
11
11
|
.requiredOption('--type <type>', 'Proof type')
|
|
12
12
|
.option('--metric <val>', 'Metric value')
|
|
13
|
-
.option('--human', 'Human-readable output')
|
|
14
13
|
.action(async (taskId, opts) => {
|
|
15
|
-
const human = isHumanMode(opts.human);
|
|
16
14
|
const keystore = await loadKeystore();
|
|
17
15
|
const proofHash = keccak256(toBytes(opts.data));
|
|
18
16
|
const signature = await signMessage(proofHash, keystore);
|
|
@@ -23,11 +21,6 @@ export const proofCmd = new Command('proof')
|
|
|
23
21
|
...(opts.metric ? { metricValue: opts.metric } : {}),
|
|
24
22
|
signature,
|
|
25
23
|
}));
|
|
26
|
-
|
|
27
|
-
console.log('Proof submitted:', result.proofId);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
printResult({ proofId: result.proofId }, human);
|
|
31
|
-
}
|
|
24
|
+
printResult({ proofId: result.proofId });
|
|
32
25
|
});
|
|
33
26
|
//# sourceMappingURL=proof.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../../../src/commands/task/proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../../../src/commands/task/proof.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACzC,WAAW,CAAC,2BAA2B,CAAC;KACxC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;KAC7C,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;KAC7C,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC;KACxC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAqD,EAAE,EAAE;IACtF,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,MAAM,SAAS,EAAE;QAC3D,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,SAAS,EAAE,IAAI,CAAC,IAAI;QACpB,SAAS,EAAE,IAAI,CAAC,IAAI;QACpB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,SAAS;KACV,CAAC,CAAwB,CAAC;IAE3B,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { x402Post } from '../../lib/x402.js';
|
|
3
|
-
import {
|
|
3
|
+
import { printResult, printError } from '../../lib/output.js';
|
|
4
4
|
export const rateCmd = new Command('rate')
|
|
5
5
|
.description('Rate a worker (costs 0.001 USDC)')
|
|
6
6
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
7
7
|
.requiredOption('--worker <addr>', 'Worker wallet address')
|
|
8
8
|
.requiredOption('--rating <n>', 'Rating 0-100')
|
|
9
9
|
.option('--feedback <text>', 'Optional feedback text')
|
|
10
|
-
.option('--human', 'Human-readable output')
|
|
11
10
|
.action(async (taskId, opts) => {
|
|
12
|
-
const human = isHumanMode(opts.human);
|
|
13
11
|
const rating = parseInt(opts.rating, 10);
|
|
14
12
|
if (rating < 0 || rating > 100) {
|
|
15
|
-
printError('Rating must be between 0 and 100'
|
|
13
|
+
printError('Rating must be between 0 and 100');
|
|
16
14
|
}
|
|
17
15
|
const result = (await x402Post(`/api/tasks/${taskId}/rate`, {
|
|
18
16
|
taskId,
|
|
@@ -20,11 +18,6 @@ export const rateCmd = new Command('rate')
|
|
|
20
18
|
rating,
|
|
21
19
|
...(opts.feedback ? { feedbackText: opts.feedback } : {}),
|
|
22
20
|
}));
|
|
23
|
-
|
|
24
|
-
console.log('Rated. Feedback ID:', result.feedbackId);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
printResult({ feedbackId: result.feedbackId }, human);
|
|
28
|
-
}
|
|
21
|
+
printResult({ feedbackId: result.feedbackId });
|
|
29
22
|
});
|
|
30
23
|
//# sourceMappingURL=rate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate.js","sourceRoot":"","sources":["../../../src/commands/task/rate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"rate.js","sourceRoot":"","sources":["../../../src/commands/task/rate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACvC,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,cAAc,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;KAC1D,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC;KAC9C,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;KACrD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAA2D,EAAE,EAAE;IAC5F,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;QAC/B,UAAU,CAAC,kCAAkC,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,cAAc,MAAM,OAAO,EAAE;QAC1D,MAAM;QACN,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM;QACN,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC,CAA6C,CAAC;IAEhD,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { apiGet } from '../../lib/api.js';
|
|
3
|
-
import {
|
|
3
|
+
import { printResult } from '../../lib/output.js';
|
|
4
4
|
export const listCmd = new Command('list')
|
|
5
5
|
.alias('search')
|
|
6
6
|
.description('List available tasks')
|
|
@@ -12,9 +12,7 @@ export const listCmd = new Command('list')
|
|
|
12
12
|
.option('--reward-max <n>', 'Maximum reward in USDC')
|
|
13
13
|
.option('--deadline-hours <n>', 'Only tasks expiring within this many hours')
|
|
14
14
|
.option('--limit <n>', 'Maximum results to return', '20')
|
|
15
|
-
.option('--human', 'Human-readable output')
|
|
16
15
|
.action(async (opts) => {
|
|
17
|
-
const human = isHumanMode(opts.human);
|
|
18
16
|
const params = new URLSearchParams();
|
|
19
17
|
if (opts.status)
|
|
20
18
|
params.set('status', opts.status);
|
|
@@ -32,24 +30,6 @@ export const listCmd = new Command('list')
|
|
|
32
30
|
if (opts.limit)
|
|
33
31
|
params.set('limit', opts.limit);
|
|
34
32
|
const result = (await apiGet(`/api/tasks?${params.toString()}`));
|
|
35
|
-
|
|
36
|
-
printResult({ tasks: result.tasks, hasMore: result.hasMore }, human);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (result.tasks.length === 0) {
|
|
40
|
-
console.log('No tasks found.');
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
console.log(`Found ${result.tasks.length} task(s)${result.hasMore ? ' (more available)' : ''}:\n`);
|
|
44
|
-
for (const task of result.tasks) {
|
|
45
|
-
const desc = task.description.length > 60 ? task.description.slice(0, 57) + '...' : task.description;
|
|
46
|
-
console.log(` ${task.id}`);
|
|
47
|
-
console.log(` ${desc}`);
|
|
48
|
-
console.log(` Reward: ${Number(task.reward) / 1e6} USDC | Mode: ${task.mode} | Status: ${task.status}`);
|
|
49
|
-
if (task.tags.length > 0) {
|
|
50
|
-
console.log(` Tags: ${task.tags.join(', ')}`);
|
|
51
|
-
}
|
|
52
|
-
console.log('');
|
|
53
|
-
}
|
|
33
|
+
printResult({ tasks: result.tasks, hasMore: result.hasMore });
|
|
54
34
|
});
|
|
55
35
|
//# sourceMappingURL=search.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/task/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/commands/task/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAWlD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACvC,KAAK,CAAC,QAAQ,CAAC;KACf,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,CAAC;KACnE,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;KACpF,MAAM,CAAC,eAAe,EAAE,mCAAmC,CAAC;KAC5D,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,CAAC;KACpF,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;KACpD,MAAM,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;KACpD,MAAM,CAAC,sBAAsB,EAAE,4CAA4C,CAAC;KAC5E,MAAM,CAAC,aAAa,EAAE,2BAA2B,EAAE,IAAI,CAAC;KACxD,MAAM,CACL,KAAK,EAAE,IASN,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;IAC1C,IAAI,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC7C,IAAI,IAAI,CAAC,SAAS;QAChB,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,SAAS;QAChB,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,aAAa;QAAE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAG9D,CAAC;IACF,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAChE,CAAC,CACF,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { apiPost } from '../../lib/api.js';
|
|
3
|
-
import {
|
|
3
|
+
import { printResult, printError } from '../../lib/output.js';
|
|
4
4
|
export const selectWinnerCmd = new Command('select-winner')
|
|
5
5
|
.description('Select lowest bidder after auction deadline (requester only)')
|
|
6
6
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
7
|
-
.
|
|
8
|
-
.action(async (taskId, opts) => {
|
|
9
|
-
const human = isHumanMode(opts.human);
|
|
7
|
+
.action(async (taskId) => {
|
|
10
8
|
let result;
|
|
11
9
|
try {
|
|
12
10
|
result = (await apiPost(`/api/tasks/${taskId}/bids/select-winner`, {
|
|
@@ -15,15 +13,8 @@ export const selectWinnerCmd = new Command('select-winner')
|
|
|
15
13
|
}
|
|
16
14
|
catch (err) {
|
|
17
15
|
const msg = err instanceof Error ? err.message : 'Failed to select winner.';
|
|
18
|
-
printError(msg
|
|
19
|
-
}
|
|
20
|
-
if (human) {
|
|
21
|
-
console.log('Winner selected:', result.workerAddress);
|
|
22
|
-
console.log('');
|
|
23
|
-
console.log(`Next: taskmarket task accept ${taskId} --worker ${result.workerAddress}`);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
printResult(result, human);
|
|
16
|
+
printError(msg);
|
|
27
17
|
}
|
|
18
|
+
printResult(result);
|
|
28
19
|
});
|
|
29
20
|
//# sourceMappingURL=select-winner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-winner.js","sourceRoot":"","sources":["../../../src/commands/task/select-winner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"select-winner.js","sourceRoot":"","sources":["../../../src/commands/task/select-winner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KACxD,WAAW,CAAC,8DAA8D,CAAC;KAC3E,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAC/B,IAAI,MAAmD,CAAC;IACxD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,MAAM,qBAAqB,EAAE;YACjE,MAAM;SACP,CAAC,CAAkB,CAAC;IACvB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;QAC5E,UAAU,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,MAAO,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -3,15 +3,13 @@ import { keccak256, toBytes } from 'viem';
|
|
|
3
3
|
import { loadKeystore } from '../../lib/keystore.js';
|
|
4
4
|
import { signMessage } from '../../lib/signer.js';
|
|
5
5
|
import { apiPost } from '../../lib/api.js';
|
|
6
|
-
import {
|
|
6
|
+
import { printResult } from '../../lib/output.js';
|
|
7
7
|
export const selectWorkerCmd = new Command('select-worker')
|
|
8
8
|
.description('Select a worker from pitches (requester only)')
|
|
9
9
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
10
10
|
.requiredOption('--pitch <pitchId>', 'Pitch ID to select')
|
|
11
11
|
.requiredOption('--worker <address>', 'Worker wallet address to assign')
|
|
12
|
-
.option('--human', 'Human-readable output')
|
|
13
12
|
.action(async (taskId, opts) => {
|
|
14
|
-
const human = isHumanMode(opts.human);
|
|
15
13
|
const keystore = await loadKeystore();
|
|
16
14
|
const hash = keccak256(toBytes(taskId + opts.pitch + opts.worker));
|
|
17
15
|
const signature = await signMessage(hash, keystore);
|
|
@@ -21,11 +19,6 @@ export const selectWorkerCmd = new Command('select-worker')
|
|
|
21
19
|
workerAddress: opts.worker,
|
|
22
20
|
signature,
|
|
23
21
|
});
|
|
24
|
-
|
|
25
|
-
console.log('Worker selected');
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
printResult({ selected: true }, human);
|
|
29
|
-
}
|
|
22
|
+
printResult({ selected: true });
|
|
30
23
|
});
|
|
31
24
|
//# sourceMappingURL=select-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select-worker.js","sourceRoot":"","sources":["../../../src/commands/task/select-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"select-worker.js","sourceRoot":"","sources":["../../../src/commands/task/select-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KACxD,WAAW,CAAC,+CAA+C,CAAC;KAC5D,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,cAAc,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;KACzD,cAAc,CAAC,oBAAoB,EAAE,iCAAiC,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAuC,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEpD,MAAM,OAAO,CAAC,cAAc,MAAM,iBAAiB,EAAE;QACnD,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,KAAK;QACnB,aAAa,EAAE,IAAI,CAAC,MAAM;QAC1B,SAAS;KACV,CAAC,CAAC;IAEH,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC"}
|
|
@@ -1,41 +1,18 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { apiGet } from '../../lib/api.js';
|
|
3
|
-
import {
|
|
3
|
+
import { printResult, printError } from '../../lib/output.js';
|
|
4
4
|
export const submissionsCmd = new Command('submissions')
|
|
5
5
|
.description('List submissions for a task')
|
|
6
6
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
7
|
-
.
|
|
8
|
-
.action(async (taskId, opts) => {
|
|
9
|
-
const human = isHumanMode(opts.human);
|
|
7
|
+
.action(async (taskId) => {
|
|
10
8
|
let subs;
|
|
11
9
|
try {
|
|
12
|
-
subs =
|
|
10
|
+
subs = await apiGet(`/api/tasks/${taskId}/submissions`);
|
|
13
11
|
}
|
|
14
12
|
catch (err) {
|
|
15
13
|
const msg = err instanceof Error ? err.message : 'Failed to fetch submissions.';
|
|
16
|
-
printError(msg
|
|
14
|
+
printError(msg);
|
|
17
15
|
}
|
|
18
|
-
|
|
19
|
-
printResult(subs, human);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (subs.length === 0) {
|
|
23
|
-
console.log('No submissions yet.');
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
console.log(`Found ${subs.length} submission(s):\n`);
|
|
27
|
-
for (const s of subs) {
|
|
28
|
-
console.log(` ID: ${s.id}`);
|
|
29
|
-
const agentSuffix = s.workerAgentId ? ` (agent ${s.workerAgentId})` : '';
|
|
30
|
-
console.log(` Worker: ${s.workerAddress}${agentSuffix}`);
|
|
31
|
-
console.log(` File: ${s.fileUrl}`);
|
|
32
|
-
console.log(` At: ${s.submittedAt}`);
|
|
33
|
-
if (s.workerStats.ratedTasks > 0) {
|
|
34
|
-
const avg = s.workerStats.averageRating.toFixed(1);
|
|
35
|
-
console.log(` Rating: ${avg} (${s.workerStats.ratedTasks} rated tasks)`);
|
|
36
|
-
}
|
|
37
|
-
console.log('');
|
|
38
|
-
}
|
|
39
|
-
console.log(`To accept: taskmarket task accept ${taskId} --worker <address>`);
|
|
16
|
+
printResult(subs);
|
|
40
17
|
});
|
|
41
18
|
//# sourceMappingURL=submissions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submissions.js","sourceRoot":"","sources":["../../../src/commands/task/submissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"submissions.js","sourceRoot":"","sources":["../../../src/commands/task/submissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACrD,WAAW,CAAC,6BAA6B,CAAC;KAC1C,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,EAAE;IAC/B,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,cAAc,MAAM,cAAc,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;QAChF,UAAU,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,WAAW,CAAC,IAAK,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"}
|
|
@@ -4,14 +4,12 @@ import { keccak256, toBytes } from 'viem';
|
|
|
4
4
|
import { loadKeystore } from '../../lib/keystore.js';
|
|
5
5
|
import { signMessage } from '../../lib/signer.js';
|
|
6
6
|
import { apiPost } from '../../lib/api.js';
|
|
7
|
-
import {
|
|
7
|
+
import { printResult } from '../../lib/output.js';
|
|
8
8
|
export const submitCmd = new Command('submit')
|
|
9
9
|
.description('Submit work for a task')
|
|
10
10
|
.argument('<taskId>', 'Task ID (0x-prefixed hex)')
|
|
11
11
|
.requiredOption('--file <path>', 'Path to the submission file')
|
|
12
|
-
.option('--human', 'Human-readable output')
|
|
13
12
|
.action(async (taskId, opts) => {
|
|
14
|
-
const human = isHumanMode(opts.human);
|
|
15
13
|
const fileContent = await fs.readFile(opts.file);
|
|
16
14
|
const fileBase64 = fileContent.toString('base64');
|
|
17
15
|
const fileHash = keccak256(toBytes(fileContent.toString('utf8')));
|
|
@@ -22,11 +20,6 @@ export const submitCmd = new Command('submit')
|
|
|
22
20
|
file: fileBase64,
|
|
23
21
|
signature,
|
|
24
22
|
}));
|
|
25
|
-
|
|
26
|
-
console.log('Submitted:', result.submissionId);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
printResult({ submissionId: result.submissionId }, human);
|
|
30
|
-
}
|
|
23
|
+
printResult({ submissionId: result.submissionId });
|
|
31
24
|
});
|
|
32
25
|
//# sourceMappingURL=submit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/commands/task/submit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/commands/task/submit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;KACjD,cAAc,CAAC,eAAe,EAAE,6BAA6B,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAsB,EAAE,EAAE;IACvD,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,cAAc,MAAM,cAAc,EAAE;QAChE,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,IAAI,EAAE,UAAU;QAChB,SAAS;KACV,CAAC,CAA6B,CAAC;IAEhC,WAAW,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { loadKeystore } from '../../lib/keystore.js';
|
|
3
|
+
import { apiGet } from '../../lib/api.js';
|
|
4
|
+
import { printResult } from '../../lib/output.js';
|
|
5
|
+
export const walletBalanceCommand = new Command('balance')
|
|
6
|
+
.description('Show USDC balance')
|
|
7
|
+
.option('--address <addr>', 'Address to check (defaults to own wallet)')
|
|
8
|
+
.action(async (opts) => {
|
|
9
|
+
let address = opts.address;
|
|
10
|
+
if (!address) {
|
|
11
|
+
const keystore = await loadKeystore();
|
|
12
|
+
address = keystore.walletAddress;
|
|
13
|
+
}
|
|
14
|
+
const result = (await apiGet(`/api/wallet/balance?address=${address}`));
|
|
15
|
+
printResult(result);
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=balance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/commands/wallet/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACvD,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;KACvE,MAAM,CAAC,KAAK,EAAE,IAA0B,EAAE,EAAE;IAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QACtC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;IACnC,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAIrE,CAAC;IAEF,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { createInterface } from 'readline';
|
|
3
3
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
4
|
-
import { encryptPrivateKey, saveKeystore, keystoreExists,
|
|
4
|
+
import { encryptPrivateKey, saveKeystore, keystoreExists, loadKeystore, } from '../../lib/keystore.js';
|
|
5
5
|
import { API_URL } from '../../lib/api.js';
|
|
6
|
-
import {
|
|
6
|
+
import { printResult } from '../../lib/output.js';
|
|
7
7
|
import { pollAgentId } from '../../lib/agent.js';
|
|
8
8
|
function normalizePrivateKey(raw) {
|
|
9
9
|
const hex = raw.startsWith('0x') ? raw.slice(2) : raw;
|
|
@@ -40,19 +40,10 @@ function promptHiddenInput(prompt) {
|
|
|
40
40
|
export const walletImportCommand = new Command('import')
|
|
41
41
|
.description('Import an existing private key as the agent wallet')
|
|
42
42
|
.option('--key <privateKey>', 'Private key to import (64 hex chars, with or without 0x prefix)')
|
|
43
|
-
.option('--human', 'Human-readable output')
|
|
44
43
|
.action(async (opts) => {
|
|
45
|
-
const human = isHumanMode(opts.human);
|
|
46
44
|
if (await keystoreExists()) {
|
|
47
45
|
const keystore = await loadKeystore();
|
|
48
|
-
|
|
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
|
-
}
|
|
46
|
+
printResult({ address: keystore.walletAddress, agentId: keystore.agentId });
|
|
56
47
|
return;
|
|
57
48
|
}
|
|
58
49
|
// Determine key source: --key flag, env var, or interactive prompt
|
|
@@ -95,37 +86,11 @@ export const walletImportCommand = new Command('import')
|
|
|
95
86
|
await saveKeystore({ ...keystore, agentId });
|
|
96
87
|
}
|
|
97
88
|
}
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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);
|
|
89
|
+
if (keySource === 'flag') {
|
|
90
|
+
process.stderr.write(JSON.stringify({
|
|
91
|
+
warning: 'Private key was passed via --key flag and may be visible in shell history and ps aux.',
|
|
92
|
+
}) + '\n');
|
|
129
93
|
}
|
|
94
|
+
printResult({ address, agentId });
|
|
130
95
|
});
|
|
131
96
|
//# sourceMappingURL=import.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/commands/wallet/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/commands/wallet/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { walletBalanceCommand } from './balance.js';
|
|
2
3
|
import { walletImportCommand } from './import.js';
|
|
3
4
|
import { setWithdrawalAddressCommand } from './set-withdrawal-address.js';
|
|
4
5
|
export const walletCommand = new Command('wallet').description('Wallet management commands');
|
|
6
|
+
walletCommand.addCommand(walletBalanceCommand);
|
|
5
7
|
walletCommand.addCommand(walletImportCommand);
|
|
6
8
|
walletCommand.addCommand(setWithdrawalAddressCommand);
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +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;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE7F,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC9C,aAAa,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC"}
|
|
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,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE7F,aAAa,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC/C,aAAa,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC9C,aAAa,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC"}
|