@lucid-agents/taskmarket 1.8.0 → 1.10.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/index.js +139 -49
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ var __export = (target, all) => {
|
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
// src/index.ts
|
|
9
|
-
import { Command as
|
|
9
|
+
import { Command as Command68 } from "commander";
|
|
10
10
|
import { createRequire } from "module";
|
|
11
11
|
|
|
12
12
|
// src/commands/init.ts
|
|
@@ -4499,6 +4499,57 @@ var TaskInboxResponseSchema = external_exports.object({
|
|
|
4499
4499
|
// than a separate notification-center feature.
|
|
4500
4500
|
invitedPrivateTasks: external_exports.array(TaskResponseSchema).optional().default([])
|
|
4501
4501
|
});
|
|
4502
|
+
var TaskActionIntent = external_exports.enum([
|
|
4503
|
+
"review_work",
|
|
4504
|
+
"select_worker",
|
|
4505
|
+
"submit_work",
|
|
4506
|
+
"settle_expired",
|
|
4507
|
+
"evaluate_work",
|
|
4508
|
+
"appeal_verdict",
|
|
4509
|
+
"resolve_dispute",
|
|
4510
|
+
"finalize_verdict",
|
|
4511
|
+
"rate_workers",
|
|
4512
|
+
"select_auction_winner"
|
|
4513
|
+
]);
|
|
4514
|
+
var TaskActionPriority = external_exports.enum(["urgent", "required", "follow_up"]);
|
|
4515
|
+
var TaskActionProgressSchema = external_exports.object({
|
|
4516
|
+
completed: external_exports.number().int().nonnegative(),
|
|
4517
|
+
total: external_exports.number().int().positive()
|
|
4518
|
+
}).refine(({ completed, total }) => completed <= total, {
|
|
4519
|
+
message: "Completed progress cannot exceed the target total",
|
|
4520
|
+
path: ["completed"]
|
|
4521
|
+
});
|
|
4522
|
+
var TaskActionQueueItemSchema = external_exports.object({
|
|
4523
|
+
id: external_exports.string(),
|
|
4524
|
+
task: TaskResponseSchema,
|
|
4525
|
+
role: PendingActionSchema.shape.role,
|
|
4526
|
+
intent: TaskActionIntent,
|
|
4527
|
+
actions: PendingActionSchema.array().min(1),
|
|
4528
|
+
priority: TaskActionPriority,
|
|
4529
|
+
dueAt: external_exports.string().nullable(),
|
|
4530
|
+
progress: TaskActionProgressSchema.nullable().optional()
|
|
4531
|
+
});
|
|
4532
|
+
var TaskActionWaitingReason = external_exports.enum([
|
|
4533
|
+
"waiting_for_submissions",
|
|
4534
|
+
"waiting_for_worker",
|
|
4535
|
+
"waiting_for_review",
|
|
4536
|
+
"waiting_for_evaluator",
|
|
4537
|
+
"waiting_for_appeal_window",
|
|
4538
|
+
"waiting_for_settlement"
|
|
4539
|
+
]);
|
|
4540
|
+
var TaskActionWaitingItemSchema = external_exports.object({
|
|
4541
|
+
id: external_exports.string(),
|
|
4542
|
+
task: TaskResponseSchema,
|
|
4543
|
+
role: PendingActionSchema.shape.role,
|
|
4544
|
+
reason: TaskActionWaitingReason,
|
|
4545
|
+
dueAt: external_exports.string().nullable()
|
|
4546
|
+
});
|
|
4547
|
+
var TaskActionQueueResponseSchema = external_exports.object({
|
|
4548
|
+
items: TaskActionQueueItemSchema.array(),
|
|
4549
|
+
total: external_exports.number().int().nonnegative(),
|
|
4550
|
+
urgentTotal: external_exports.number().int().nonnegative(),
|
|
4551
|
+
waiting: TaskActionWaitingItemSchema.array()
|
|
4552
|
+
});
|
|
4502
4553
|
var TaskDetailResponseSchema = TaskResponseSchema.extend({
|
|
4503
4554
|
pendingActions: PendingActionSchema.array(),
|
|
4504
4555
|
awards: TaskAwardSchema.array().optional(),
|
|
@@ -4740,6 +4791,20 @@ var HealthResponseSchema = external_exports.object({
|
|
|
4740
4791
|
status: external_exports.literal("ok"),
|
|
4741
4792
|
timestamp: external_exports.string(),
|
|
4742
4793
|
environment: external_exports.string(),
|
|
4794
|
+
/**
|
|
4795
|
+
* The commit this process was built from, when the deploy stamped one.
|
|
4796
|
+
*
|
|
4797
|
+
* Reported so a deploy can prove it actually replaced what was running. The production
|
|
4798
|
+
* deploy workflow uploads with `railway up` and previously did so with `--detach`, which
|
|
4799
|
+
* returns as soon as the upload is accepted -- so the job went green whether the build
|
|
4800
|
+
* succeeded, failed, or never started, and a failed build left the previous version
|
|
4801
|
+
* serving with nothing to say so. A health check cannot distinguish that either: the old
|
|
4802
|
+
* version answers `ok` perfectly happily.
|
|
4803
|
+
*
|
|
4804
|
+
* Absent rather than a placeholder when unstamped, so a local or unstamped process cannot
|
|
4805
|
+
* be mistaken for a verified one.
|
|
4806
|
+
*/
|
|
4807
|
+
commitSha: external_exports.string().optional(),
|
|
4743
4808
|
/**
|
|
4744
4809
|
* The submission limits this process is actually enforcing, after any environment
|
|
4745
4810
|
* override. Reported because a limit a caller cannot observe is a limit a test can only
|
|
@@ -8529,9 +8594,24 @@ var inboxCommand = new Command43("inbox").description("Show tasks you created an
|
|
|
8529
8594
|
printResult({ ...taskResult, pendingBids });
|
|
8530
8595
|
});
|
|
8531
8596
|
|
|
8532
|
-
// src/commands/
|
|
8597
|
+
// src/commands/actions.ts
|
|
8533
8598
|
import { Command as Command44 } from "commander";
|
|
8534
|
-
var
|
|
8599
|
+
var actionsCommand = new Command44("actions").description("Show lifecycle actions awaiting you, grouped and prioritized by the server").action(async () => {
|
|
8600
|
+
const auth = await signReadAuth();
|
|
8601
|
+
if (!auth) {
|
|
8602
|
+
printError("No keystore found. Run `taskmarket init` first.");
|
|
8603
|
+
return;
|
|
8604
|
+
}
|
|
8605
|
+
const params = new URLSearchParams({ address: auth.walletAddress });
|
|
8606
|
+
const queue = await apiGet(`/api/agents/action-queue?${params.toString()}`, {
|
|
8607
|
+
headers: auth.headers
|
|
8608
|
+
});
|
|
8609
|
+
printResult(queue);
|
|
8610
|
+
});
|
|
8611
|
+
|
|
8612
|
+
// src/commands/deposit.ts
|
|
8613
|
+
import { Command as Command45 } from "commander";
|
|
8614
|
+
var depositCommand = new Command45("deposit").description("Show wallet address and network info for funding").action(async () => {
|
|
8535
8615
|
let address;
|
|
8536
8616
|
try {
|
|
8537
8617
|
address = await getWalletAddress();
|
|
@@ -8558,11 +8638,11 @@ var depositCommand = new Command44("deposit").description("Show wallet address a
|
|
|
8558
8638
|
});
|
|
8559
8639
|
|
|
8560
8640
|
// src/commands/wallet/index.ts
|
|
8561
|
-
import { Command as
|
|
8641
|
+
import { Command as Command51 } from "commander";
|
|
8562
8642
|
|
|
8563
8643
|
// src/commands/wallet/balance.ts
|
|
8564
|
-
import { Command as
|
|
8565
|
-
var walletBalanceCommand = new
|
|
8644
|
+
import { Command as Command46 } from "commander";
|
|
8645
|
+
var walletBalanceCommand = new Command46("balance").description("Show USDC balance").option("--address <addr>", "Address to check (defaults to own wallet)").action(async (opts) => {
|
|
8566
8646
|
let address = opts.address;
|
|
8567
8647
|
if (!address) {
|
|
8568
8648
|
const keystore = await loadKeystore();
|
|
@@ -8573,7 +8653,7 @@ var walletBalanceCommand = new Command45("balance").description("Show USDC balan
|
|
|
8573
8653
|
});
|
|
8574
8654
|
|
|
8575
8655
|
// src/commands/wallet/import.ts
|
|
8576
|
-
import { Command as
|
|
8656
|
+
import { Command as Command47 } from "commander";
|
|
8577
8657
|
import { createInterface as createInterface2 } from "readline";
|
|
8578
8658
|
import { privateKeyToAccount as privateKeyToAccount4 } from "viem/accounts";
|
|
8579
8659
|
function normalizePrivateKey(raw) {
|
|
@@ -8608,7 +8688,7 @@ function promptHiddenInput(prompt) {
|
|
|
8608
8688
|
});
|
|
8609
8689
|
});
|
|
8610
8690
|
}
|
|
8611
|
-
var walletImportCommand = new
|
|
8691
|
+
var walletImportCommand = new Command47("import").description("Import an existing private key as the agent wallet").option("--key <privateKey>", "Private key to import (64 hex chars, with or without 0x prefix)").option(
|
|
8612
8692
|
"--yes",
|
|
8613
8693
|
"Confirm legal acceptance non-interactively after reviewing every current policy"
|
|
8614
8694
|
).action(async (opts) => {
|
|
@@ -8687,11 +8767,11 @@ var walletImportCommand = new Command46("import").description("Import an existin
|
|
|
8687
8767
|
});
|
|
8688
8768
|
|
|
8689
8769
|
// src/commands/wallet/set-withdrawal-address.ts
|
|
8690
|
-
import { Command as
|
|
8770
|
+
import { Command as Command48 } from "commander";
|
|
8691
8771
|
function isValidAddress(addr) {
|
|
8692
8772
|
return /^0x[a-fA-F0-9]{40}$/.test(addr);
|
|
8693
8773
|
}
|
|
8694
|
-
var setWithdrawalAddressCommand = new
|
|
8774
|
+
var setWithdrawalAddressCommand = new Command48("set-withdrawal-address").description("Set a withdrawal address for USDC withdrawals (one-time, free)").argument("<address>", "Ethereum address to receive withdrawals").action(async (address) => {
|
|
8695
8775
|
if (!isValidAddress(address)) {
|
|
8696
8776
|
printError("Invalid Ethereum address: must be 0x followed by 40 hex characters");
|
|
8697
8777
|
return;
|
|
@@ -8718,8 +8798,8 @@ var setWithdrawalAddressCommand = new Command47("set-withdrawal-address").descri
|
|
|
8718
8798
|
});
|
|
8719
8799
|
|
|
8720
8800
|
// src/commands/wallet/publish-key.ts
|
|
8721
|
-
import { Command as
|
|
8722
|
-
var publishKeyCommand = new
|
|
8801
|
+
import { Command as Command49 } from "commander";
|
|
8802
|
+
var publishKeyCommand = new Command49("publish-key").description("Publish your secp256k1 public key so others can encrypt files for you").action(async () => {
|
|
8723
8803
|
let keystore;
|
|
8724
8804
|
try {
|
|
8725
8805
|
keystore = await loadKeystore();
|
|
@@ -8739,13 +8819,13 @@ var publishKeyCommand = new Command48("publish-key").description("Publish your s
|
|
|
8739
8819
|
});
|
|
8740
8820
|
|
|
8741
8821
|
// src/commands/wallet/withdraw-dreams.ts
|
|
8742
|
-
import { Command as
|
|
8822
|
+
import { Command as Command50 } from "commander";
|
|
8743
8823
|
import { toHex as toHex2 } from "viem";
|
|
8744
8824
|
var AUTHORIZATION_VALIDITY_SECONDS = 300;
|
|
8745
8825
|
function isValidAddress2(addr) {
|
|
8746
8826
|
return /^0x[a-fA-F0-9]{40}$/.test(addr);
|
|
8747
8827
|
}
|
|
8748
|
-
var withdrawDreamsCommand = new
|
|
8828
|
+
var withdrawDreamsCommand = new Command50("withdraw-dreams").description("Withdraw accumulated DREAMS rewards to the withdrawal address").option("--destination <addr>", "Destination address (defaults to registered withdrawal address)").action(async (opts) => {
|
|
8749
8829
|
let keystore;
|
|
8750
8830
|
try {
|
|
8751
8831
|
keystore = await loadKeystore();
|
|
@@ -8799,7 +8879,7 @@ var withdrawDreamsCommand = new Command49("withdraw-dreams").description("Withdr
|
|
|
8799
8879
|
});
|
|
8800
8880
|
|
|
8801
8881
|
// src/commands/wallet/index.ts
|
|
8802
|
-
var walletCommand = new
|
|
8882
|
+
var walletCommand = new Command51("wallet").description("Wallet management commands");
|
|
8803
8883
|
walletCommand.addCommand(walletBalanceCommand);
|
|
8804
8884
|
walletCommand.addCommand(walletImportCommand);
|
|
8805
8885
|
walletCommand.addCommand(setWithdrawalAddressCommand);
|
|
@@ -8807,7 +8887,7 @@ walletCommand.addCommand(publishKeyCommand);
|
|
|
8807
8887
|
walletCommand.addCommand(withdrawDreamsCommand);
|
|
8808
8888
|
|
|
8809
8889
|
// src/commands/withdraw.ts
|
|
8810
|
-
import { Command as
|
|
8890
|
+
import { Command as Command52 } from "commander";
|
|
8811
8891
|
import { toHex as toHex3 } from "viem";
|
|
8812
8892
|
var USDC_TYPES = {
|
|
8813
8893
|
TransferWithAuthorization: [
|
|
@@ -8819,7 +8899,7 @@ var USDC_TYPES = {
|
|
|
8819
8899
|
{ name: "nonce", type: "bytes32" }
|
|
8820
8900
|
]
|
|
8821
8901
|
};
|
|
8822
|
-
var withdrawCommand = new
|
|
8902
|
+
var withdrawCommand = new Command52("withdraw").description("Withdraw USDC to the registered withdrawal address").argument("<amount>", "Amount in USDC (e.g. 5 for 5 USDC)").action(async (amount) => {
|
|
8823
8903
|
const parsed = parseFloat(amount);
|
|
8824
8904
|
if (isNaN(parsed) || parsed <= 0) {
|
|
8825
8905
|
printError("Invalid amount: must be a positive number (e.g. 5 for 5 USDC)");
|
|
@@ -8878,9 +8958,9 @@ var withdrawCommand = new Command51("withdraw").description("Withdraw USDC to th
|
|
|
8878
8958
|
});
|
|
8879
8959
|
|
|
8880
8960
|
// src/commands/encrypt.ts
|
|
8881
|
-
import { Command as
|
|
8961
|
+
import { Command as Command53 } from "commander";
|
|
8882
8962
|
import { promises as fs3 } from "fs";
|
|
8883
|
-
var encryptCommand = new
|
|
8963
|
+
var encryptCommand = new Command53("encrypt").description("Encrypt a file with ECIES using wallet keys").argument("<file>", "Path to the file to encrypt").option("--recipient <address>", "Recipient wallet address (default: self)").option("--output <path>", "Output path (default: <file>.enc)").action(async (file, opts) => {
|
|
8884
8964
|
let plaintext;
|
|
8885
8965
|
try {
|
|
8886
8966
|
plaintext = await fs3.readFile(file);
|
|
@@ -8928,9 +9008,9 @@ var encryptCommand = new Command52("encrypt").description("Encrypt a file with E
|
|
|
8928
9008
|
});
|
|
8929
9009
|
|
|
8930
9010
|
// src/commands/decrypt.ts
|
|
8931
|
-
import { Command as
|
|
9011
|
+
import { Command as Command54 } from "commander";
|
|
8932
9012
|
import { promises as fs4 } from "fs";
|
|
8933
|
-
var decryptCommand = new
|
|
9013
|
+
var decryptCommand = new Command54("decrypt").description("Decrypt a file using your wallet key").argument("<file>", "Path to the encrypted file").option("--output <path>", "Output path (default: strips .enc, otherwise appends .dec)").action(async (file, opts) => {
|
|
8934
9014
|
let ciphertext;
|
|
8935
9015
|
try {
|
|
8936
9016
|
ciphertext = await fs4.readFile(file);
|
|
@@ -8970,7 +9050,7 @@ var decryptCommand = new Command53("decrypt").description("Decrypt a file using
|
|
|
8970
9050
|
});
|
|
8971
9051
|
|
|
8972
9052
|
// src/commands/xmtp.ts
|
|
8973
|
-
import { Command as
|
|
9053
|
+
import { Command as Command55 } from "commander";
|
|
8974
9054
|
|
|
8975
9055
|
// src/lib/xmtp-client.ts
|
|
8976
9056
|
import os3 from "os";
|
|
@@ -9734,7 +9814,7 @@ function getDefaultQueryTimeoutMs() {
|
|
|
9734
9814
|
}
|
|
9735
9815
|
return Math.floor(parsed);
|
|
9736
9816
|
}
|
|
9737
|
-
var xmtpCommand = new
|
|
9817
|
+
var xmtpCommand = new Command55("xmtp").description("Manage XMTP messaging for this agent");
|
|
9738
9818
|
xmtpCommand.command("init").description("Initialize XMTP client and register installation metadata with backend").action(async () => {
|
|
9739
9819
|
const keystore = await loadKeystore();
|
|
9740
9820
|
const client = await createXmtpClient({
|
|
@@ -9971,7 +10051,7 @@ xmtpCommand.command("purge").description("Revoke stale XMTP installations that h
|
|
|
9971
10051
|
});
|
|
9972
10052
|
|
|
9973
10053
|
// src/commands/daemon.ts
|
|
9974
|
-
import { Command as
|
|
10054
|
+
import { Command as Command56 } from "commander";
|
|
9975
10055
|
function diffTaskStatuses(prev, next) {
|
|
9976
10056
|
const changes = [];
|
|
9977
10057
|
for (const [taskId, newStatus] of next) {
|
|
@@ -9999,7 +10079,7 @@ function sleepOrAbort(ms, signal) {
|
|
|
9999
10079
|
});
|
|
10000
10080
|
}
|
|
10001
10081
|
var MAX_SEEN_TASK_IDS = 2e3;
|
|
10002
|
-
var daemonCommand = new
|
|
10082
|
+
var daemonCommand = new Command56("daemon").description("Long-running agent daemon: XMTP stream, heartbeats, and task polling").option("--heartbeat-interval <ms>", "Heartbeat interval in milliseconds", "1800000").option("--inbox-interval <ms>", "Inbox poll interval in milliseconds", "15000").option("--task-interval <ms>", "New task poll interval in milliseconds", "15000").option(
|
|
10003
10083
|
"--auction-poll-interval <ms>",
|
|
10004
10084
|
"Poll interval for clock-based auction tasks (dutch/reverse_dutch) in milliseconds",
|
|
10005
10085
|
"15000"
|
|
@@ -10281,7 +10361,16 @@ var daemonCommand = new Command55("daemon").description("Long-running agent daem
|
|
|
10281
10361
|
fromAddress: email.fromAddress,
|
|
10282
10362
|
subject: email.subject,
|
|
10283
10363
|
bodyText: email.bodyText,
|
|
10284
|
-
receivedAt: email.receivedAt
|
|
10364
|
+
receivedAt: email.receivedAt,
|
|
10365
|
+
// Carried onto the event, not left in the API response. This stdout stream
|
|
10366
|
+
// is the documented machine-readable interface an agent framework consumes,
|
|
10367
|
+
// so it is the last boundary where anything can say what this content is:
|
|
10368
|
+
// text written by an unauthenticated sender, whose `fromAddress` is a claim
|
|
10369
|
+
// rather than an identity unless senderVerification says 'pass'. Defaulted
|
|
10370
|
+
// rather than omitted so a consumer never has to distinguish "old backend"
|
|
10371
|
+
// from "verified".
|
|
10372
|
+
source: email.source ?? "external_email",
|
|
10373
|
+
senderVerification: email.senderVerification ?? "unverified"
|
|
10285
10374
|
});
|
|
10286
10375
|
try {
|
|
10287
10376
|
await apiPost("/api/emails/mark-read", {
|
|
@@ -10323,11 +10412,11 @@ var daemonCommand = new Command55("daemon").description("Long-running agent daem
|
|
|
10323
10412
|
);
|
|
10324
10413
|
|
|
10325
10414
|
// src/commands/email/index.ts
|
|
10326
|
-
import { Command as
|
|
10415
|
+
import { Command as Command65 } from "commander";
|
|
10327
10416
|
|
|
10328
10417
|
// src/commands/email/register.ts
|
|
10329
|
-
import { Command as
|
|
10330
|
-
var registerCommand = new
|
|
10418
|
+
import { Command as Command57 } from "commander";
|
|
10419
|
+
var registerCommand = new Command57("register").description("Register an email address for this agent").requiredOption("--username <name>", "Desired username (e.g. myagent)").action(async (opts) => {
|
|
10331
10420
|
const check = await apiGet(
|
|
10332
10421
|
`/api/emails/check-username?username=${encodeURIComponent(opts.username)}`
|
|
10333
10422
|
);
|
|
@@ -10348,8 +10437,8 @@ var registerCommand = new Command56("register").description("Register an email a
|
|
|
10348
10437
|
});
|
|
10349
10438
|
|
|
10350
10439
|
// src/commands/email/inbox.ts
|
|
10351
|
-
import { Command as
|
|
10352
|
-
var inboxCommand2 = new
|
|
10440
|
+
import { Command as Command58 } from "commander";
|
|
10441
|
+
var inboxCommand2 = new Command58("inbox").description("List emails in your inbox").option("--limit <n>", "Number of emails to return", "20").option("--unread", "Show only unread emails").action(async (opts) => {
|
|
10353
10442
|
const keystore = await loadKeystore();
|
|
10354
10443
|
const params = new URLSearchParams({
|
|
10355
10444
|
deviceId: keystore.deviceId,
|
|
@@ -10364,8 +10453,8 @@ var inboxCommand2 = new Command57("inbox").description("List emails in your inbo
|
|
|
10364
10453
|
});
|
|
10365
10454
|
|
|
10366
10455
|
// src/commands/email/read.ts
|
|
10367
|
-
import { Command as
|
|
10368
|
-
var readCommand = new
|
|
10456
|
+
import { Command as Command59 } from "commander";
|
|
10457
|
+
var readCommand = new Command59("read").description("Read an email by ID (marks it as read)").argument("<id>", "Email ID").action(async (id) => {
|
|
10369
10458
|
const keystore = await loadKeystore();
|
|
10370
10459
|
const params = new URLSearchParams({
|
|
10371
10460
|
deviceId: keystore.deviceId,
|
|
@@ -10377,8 +10466,8 @@ var readCommand = new Command58("read").description("Read an email by ID (marks
|
|
|
10377
10466
|
});
|
|
10378
10467
|
|
|
10379
10468
|
// src/commands/email/send.ts
|
|
10380
|
-
import { Command as
|
|
10381
|
-
var sendCommand = new
|
|
10469
|
+
import { Command as Command60 } from "commander";
|
|
10470
|
+
var sendCommand = new Command60("send").description("Send an email").requiredOption("--to <address>", "Recipient email address").requiredOption("--subject <subject>", "Email subject").requiredOption("--body <text>", "Email body text").action(async (opts) => {
|
|
10382
10471
|
const keystore = await loadKeystore();
|
|
10383
10472
|
const { data: result, idempotencyKey } = await apiPost("/api/emails/send", {
|
|
10384
10473
|
deviceId: keystore.deviceId,
|
|
@@ -10391,8 +10480,8 @@ var sendCommand = new Command59("send").description("Send an email").requiredOpt
|
|
|
10391
10480
|
});
|
|
10392
10481
|
|
|
10393
10482
|
// src/commands/email/reply.ts
|
|
10394
|
-
import { Command as
|
|
10395
|
-
var replyCommand = new
|
|
10483
|
+
import { Command as Command61 } from "commander";
|
|
10484
|
+
var replyCommand = new Command61("reply").description("Reply to an email").argument("<id>", "Email ID to reply to").requiredOption("--body <text>", "Reply body text").action(async (id, opts) => {
|
|
10396
10485
|
const keystore = await loadKeystore();
|
|
10397
10486
|
const params = new URLSearchParams({
|
|
10398
10487
|
deviceId: keystore.deviceId,
|
|
@@ -10414,8 +10503,8 @@ var replyCommand = new Command60("reply").description("Reply to an email").argum
|
|
|
10414
10503
|
});
|
|
10415
10504
|
|
|
10416
10505
|
// src/commands/email/delete.ts
|
|
10417
|
-
import { Command as
|
|
10418
|
-
var deleteCommand = new
|
|
10506
|
+
import { Command as Command62 } from "commander";
|
|
10507
|
+
var deleteCommand = new Command62("delete").description("Delete an email by ID").argument("<id>", "Email ID").action(async (id) => {
|
|
10419
10508
|
const keystore = await loadKeystore();
|
|
10420
10509
|
const { data: result, idempotencyKey } = await apiPost(
|
|
10421
10510
|
"/api/emails/delete",
|
|
@@ -10429,15 +10518,15 @@ var deleteCommand = new Command61("delete").description("Delete an email by ID")
|
|
|
10429
10518
|
});
|
|
10430
10519
|
|
|
10431
10520
|
// src/commands/email/address.ts
|
|
10432
|
-
import { Command as
|
|
10433
|
-
var addressCommand2 = new
|
|
10521
|
+
import { Command as Command63 } from "commander";
|
|
10522
|
+
var addressCommand2 = new Command63("address").description("Show your registered email address").action(async () => {
|
|
10434
10523
|
const keystore = await loadKeystore();
|
|
10435
10524
|
const result = await apiGet(`/api/agents/stats?address=${keystore.walletAddress}`);
|
|
10436
10525
|
printResult({ emailAddress: result.emailAddress ?? null });
|
|
10437
10526
|
});
|
|
10438
10527
|
|
|
10439
10528
|
// src/commands/email/mark-read.ts
|
|
10440
|
-
import { Command as
|
|
10529
|
+
import { Command as Command64 } from "commander";
|
|
10441
10530
|
async function setReadStatus(id, read) {
|
|
10442
10531
|
const keystore = await loadKeystore();
|
|
10443
10532
|
const { data: result, idempotencyKey } = await apiPost(
|
|
@@ -10451,12 +10540,12 @@ async function setReadStatus(id, read) {
|
|
|
10451
10540
|
);
|
|
10452
10541
|
printResult({ id: result.id, isRead: result.isRead }, { idempotencyKey });
|
|
10453
10542
|
}
|
|
10454
|
-
var markReadCommand = new
|
|
10543
|
+
var markReadCommand = new Command64("mark-read").description("Mark an email as read or unread").argument("<id>", "Email ID").option("--unread", "Mark as unread instead of read").action(async (id, opts) => {
|
|
10455
10544
|
await setReadStatus(id, !opts.unread);
|
|
10456
10545
|
});
|
|
10457
10546
|
|
|
10458
10547
|
// src/commands/email/index.ts
|
|
10459
|
-
var emailCommand = new
|
|
10548
|
+
var emailCommand = new Command65("email").description("Email management commands");
|
|
10460
10549
|
emailCommand.addCommand(registerCommand);
|
|
10461
10550
|
emailCommand.addCommand(inboxCommand2);
|
|
10462
10551
|
emailCommand.addCommand(readCommand);
|
|
@@ -10467,11 +10556,11 @@ emailCommand.addCommand(addressCommand2);
|
|
|
10467
10556
|
emailCommand.addCommand(markReadCommand);
|
|
10468
10557
|
|
|
10469
10558
|
// src/commands/requester/index.ts
|
|
10470
|
-
import { Command as
|
|
10559
|
+
import { Command as Command67 } from "commander";
|
|
10471
10560
|
|
|
10472
10561
|
// src/commands/requester/stats.ts
|
|
10473
|
-
import { Command as
|
|
10474
|
-
var requesterStatsCmd = new
|
|
10562
|
+
import { Command as Command66 } from "commander";
|
|
10563
|
+
var requesterStatsCmd = new Command66("stats").description("Get requester reputation stats for an address").argument("<address>", "Wallet address of the requester").action(async (address) => {
|
|
10475
10564
|
if (!/^0x[0-9a-fA-F]{40}$/.test(address)) {
|
|
10476
10565
|
printError("Address must be a 0x-prefixed 20-byte hex string");
|
|
10477
10566
|
return;
|
|
@@ -10485,12 +10574,12 @@ var requesterStatsCmd = new Command65("stats").description("Get requester reputa
|
|
|
10485
10574
|
});
|
|
10486
10575
|
|
|
10487
10576
|
// src/commands/requester/index.ts
|
|
10488
|
-
var requesterCmd = new
|
|
10577
|
+
var requesterCmd = new Command67("requester").description("Requester reputation commands").addCommand(requesterStatsCmd);
|
|
10489
10578
|
|
|
10490
10579
|
// src/index.ts
|
|
10491
10580
|
var require2 = createRequire(import.meta.url);
|
|
10492
10581
|
var { version } = require2("../package.json");
|
|
10493
|
-
var program = new
|
|
10582
|
+
var program = new Command68();
|
|
10494
10583
|
program.name("taskmarket").description("Taskmarket CLI for AI agents").version(version);
|
|
10495
10584
|
program.addCommand(initCommand);
|
|
10496
10585
|
program.addCommand(walletCommand);
|
|
@@ -10500,6 +10589,7 @@ program.addCommand(statsCommand);
|
|
|
10500
10589
|
program.addCommand(taskCommand);
|
|
10501
10590
|
program.addCommand(agentsCommand);
|
|
10502
10591
|
program.addCommand(inboxCommand);
|
|
10592
|
+
program.addCommand(actionsCommand);
|
|
10503
10593
|
program.addCommand(depositCommand);
|
|
10504
10594
|
program.addCommand(withdrawCommand);
|
|
10505
10595
|
program.addCommand(encryptCommand);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lucid-agents/taskmarket",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"taskmarket": "./dist/index.js"
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"tsx": "^4.7.0",
|
|
18
18
|
"typescript": "^5.3.3",
|
|
19
19
|
"vitest": "^2.0.0",
|
|
20
|
-
"@taskmarket/prettier-config": "0.0.0",
|
|
21
20
|
"@taskmarket/eslint-config": "0.0.0",
|
|
21
|
+
"@taskmarket/prettier-config": "0.0.0",
|
|
22
22
|
"@taskmarket/shared": "2.0.0"
|
|
23
23
|
},
|
|
24
24
|
"files": [
|