@intent-engine/cli 0.1.27 → 0.1.28
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/src/agent/mcp.js +1 -0
- package/dist/src/agent/mcp.js.map +1 -1
- package/dist/src/agent/profile.d.ts +4 -0
- package/dist/src/agent/profile.js +129 -0
- package/dist/src/agent/profile.js.map +1 -0
- package/dist/src/agent/registry.js +4 -0
- package/dist/src/agent/registry.js.map +1 -1
- package/dist/src/agent/wallet.js +4 -0
- package/dist/src/agent/wallet.js.map +1 -1
- package/dist/src/agent/work-claims.d.ts +3 -0
- package/dist/src/agent/work-claims.js +138 -0
- package/dist/src/agent/work-claims.js.map +1 -0
- package/dist/src/arg-options.d.ts +427 -1
- package/dist/src/arg-options.js +23 -1
- package/dist/src/arg-options.js.map +1 -1
- package/dist/src/arg-usage.d.ts +2 -2
- package/dist/src/arg-usage.js +4 -2
- package/dist/src/arg-usage.js.map +1 -1
- package/dist/src/args.d.ts +1 -6
- package/dist/src/args.js +15 -77
- package/dist/src/args.js.map +1 -1
- package/dist/src/artifact.d.ts +7 -0
- package/dist/src/artifact.js +34 -7
- package/dist/src/artifact.js.map +1 -1
- package/dist/src/claim-commands.d.ts +12 -0
- package/dist/src/claim-commands.js +170 -0
- package/dist/src/claim-commands.js.map +1 -0
- package/dist/src/clusters.d.ts +6 -0
- package/dist/src/clusters.js +15 -0
- package/dist/src/clusters.js.map +1 -0
- package/dist/src/command-types.d.ts +42 -3
- package/dist/src/commands.js +10 -0
- package/dist/src/commands.js.map +1 -1
- package/dist/src/job-args.d.ts +4 -0
- package/dist/src/job-args.js +67 -0
- package/dist/src/job-args.js.map +1 -0
- package/dist/src/job-commands.js +3 -1
- package/dist/src/job-commands.js.map +1 -1
- package/dist/src/judge.d.ts +3 -1
- package/dist/src/judge.js +7 -1
- package/dist/src/judge.js.map +1 -1
- package/dist/src/release-simulation.d.ts +18 -0
- package/dist/src/release-simulation.js +45 -0
- package/dist/src/release-simulation.js.map +1 -0
- package/dist/src/trust-args.d.ts +7 -1
- package/dist/src/trust-args.js +103 -2
- package/dist/src/trust-args.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +4 -4
package/dist/src/agent/mcp.js
CHANGED
|
@@ -33,6 +33,7 @@ export const WALLET_INSTRUCTIONS = [
|
|
|
33
33
|
`Since the payer can cancel until the release, the worker delivers its work to the attestor, not the payer. The attestor lists announced work with ${tool("wallet_check_delivery")}, checks it, releases to the earliest announcer of its hash with delivered_sha256 set to that hash, then passes the work on; ${tool("wallet_receipt")} shows the payer the release and whether what it received is what was paid for.`,
|
|
34
34
|
`An escrow's attestor can be a committee, made with the command line's committee create, so no single judge decides: each member's server judges the work and signs its vote with ${tool("wallet_committee_vote")}, and anyone submits the threshold of votes with ${tool("wallet_committee_release")}. Both preview until called with send: true.`,
|
|
35
35
|
`${tool("get_reputation")} reads a worker's track record from the chain alone: work it announced, releases that paid it for that exact work, and its payers' scores, leaving out releases it paid or judged itself. After a release pays for good or bad work, its owner rates it once with ${tool("wallet_feedback")}.`,
|
|
36
|
+
`An escrow's owner can let one worker claim its job for a while against a stake. ${tool("get_claims")} shows who holds it; a worker claims or drops it with ${tool("wallet_claim")}, which previews until called with send: true. ${tool("wallet_profile")} publishes this wallet's skills and endpoint, and ${tool("get_profile")} reads any wallet's.`,
|
|
36
37
|
`After sending, ${tool("wallet_wait")} waits for the fill and says what it delivered; ${tool("wallet_intents")} and ${tool("wallet_balance")} show the rest.`,
|
|
37
38
|
].join("\n");
|
|
38
39
|
export const walletInstructions = (limits) => [WALLET_INSTRUCTIONS, ...limitLines(limits)].join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/agent/mcp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/agent/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const PROFILE_CHANGED = "this profile differs from its preview: its skills, endpoint or document changed, or no approval was given; preview it again and show the user";
|
|
2
|
+
export declare const NO_PROFILE_TO_CLOSE = "this server's wallet has published no profile, so there is nothing to close";
|
|
3
|
+
export declare const getProfile: import("./actions.js").AnyAction;
|
|
4
|
+
export declare const walletProfile: import("./actions.js").AnyAction;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { buildCloseProfile, buildCreateProfile, buildUpdateProfile, checkProfile, IntentCoreError, PROFILE_MAX_SKILLS, profileAddress, } from "@intent-engine/core";
|
|
3
|
+
import { createClient } from "@intent-engine/client";
|
|
4
|
+
import { define } from "./actions.js";
|
|
5
|
+
import { tool } from "./names.js";
|
|
6
|
+
import { AgentRefusal, ENGINE_PROBLEMS } from "./problems.js";
|
|
7
|
+
import { account, choice, flag, hex32, InvalidInput, list, nullable, object, optional, text, time } from "./schema.js";
|
|
8
|
+
import { preparedView } from "./shapes.js";
|
|
9
|
+
import { prepare } from "./prepare.js";
|
|
10
|
+
import { signerOf, sent } from "./wallet/guard.js";
|
|
11
|
+
export const PROFILE_CHANGED = "this profile differs from its preview: its skills, endpoint or document changed, or no approval was given; preview it again and show the user";
|
|
12
|
+
export const NO_PROFILE_TO_CLOSE = "this server's wallet has published no profile, so there is nothing to close";
|
|
13
|
+
const clientOf = (ctx) => createClient({ url: ctx.url ?? "", transport: ctx.transport });
|
|
14
|
+
export const getProfile = define({
|
|
15
|
+
name: tool("get_profile"),
|
|
16
|
+
title: "A worker's published profile",
|
|
17
|
+
description: `Read the profile a wallet published on chain: the skills it offers, the https endpoint where it takes work, and an optional document with its sha256. The wallet wrote it itself, so check its track record with ${tool("get_reputation")} before trusting it. A server with a wallet publishes its own with ${tool("wallet_profile")}.`,
|
|
18
|
+
effect: "read",
|
|
19
|
+
input: object({ wallet: account("the wallet whose profile to read") }),
|
|
20
|
+
output: object({
|
|
21
|
+
wallet: account(),
|
|
22
|
+
profile: account("the profile account's address"),
|
|
23
|
+
published: flag("false means the wallet has no profile"),
|
|
24
|
+
skills: optional(list(text(), PROFILE_MAX_SKILLS)),
|
|
25
|
+
endpoint: optional(text()),
|
|
26
|
+
doc_url: optional(nullable(text())),
|
|
27
|
+
doc_sha256: optional(nullable(text("the document's sha256 as 64 hex digits"))),
|
|
28
|
+
updated_at: optional(time()),
|
|
29
|
+
}),
|
|
30
|
+
run: async (ctx, input) => {
|
|
31
|
+
const profile = await profileAddress(input.wallet);
|
|
32
|
+
const found = await clientOf(ctx).profile(input.wallet);
|
|
33
|
+
if (found === null) {
|
|
34
|
+
return { wallet: input.wallet, profile, published: false };
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
wallet: input.wallet,
|
|
38
|
+
profile,
|
|
39
|
+
published: true,
|
|
40
|
+
skills: found.skills,
|
|
41
|
+
endpoint: found.endpoint,
|
|
42
|
+
doc_url: found.docUrl,
|
|
43
|
+
doc_sha256: found.docSha256,
|
|
44
|
+
updated_at: found.updatedAt,
|
|
45
|
+
};
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
function profileOf(input) {
|
|
49
|
+
if (input.skills === undefined || input.endpoint === undefined) {
|
|
50
|
+
throw new InvalidInput([{ path: input.skills === undefined ? "skills" : "endpoint", message: "give skills and endpoint, or close: true" }]);
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
return checkProfile({
|
|
54
|
+
skills: input.skills,
|
|
55
|
+
endpoint: input.endpoint,
|
|
56
|
+
...(input.doc_url === undefined ? {} : { docUrl: input.doc_url }),
|
|
57
|
+
...(input.doc_sha256 === undefined ? {} : { docSha256: input.doc_sha256 }),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
throw error instanceof IntentCoreError ? new AgentRefusal("ProfileInvalid", ENGINE_PROBLEMS.ProfileInvalid.hint) : error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
export const walletProfile = define({
|
|
65
|
+
name: tool("wallet_profile"),
|
|
66
|
+
title: "Publish this wallet's profile",
|
|
67
|
+
description: `Publish, update or close the on-chain profile of this server's wallet, so payers can find what work it takes and where: 1 to 8 skill tags, an https endpoint, and optionally a document url with its sha256. Publishing creates the profile and pays its rent, or updates the one there; close: true deletes it and returns the rent. Others read it with ${tool("get_profile")}. Without send it only previews; show the user the summary and, once they approve, call again with send: true and the approval the preview returned.`,
|
|
68
|
+
effect: "submit",
|
|
69
|
+
input: object({
|
|
70
|
+
skills: optional(list(text("a tag of 1 to 16 of a-z, 0-9 and -, not starting or ending with -"), PROFILE_MAX_SKILLS, "distinct skill tags", 1)),
|
|
71
|
+
endpoint: optional(text("an https url of at most 128 printable characters where this wallet takes work")),
|
|
72
|
+
doc_url: optional(text("an https url of a document describing this wallet's work; needs doc_sha256")),
|
|
73
|
+
doc_sha256: optional(hex32("the document's sha256; needs doc_url")),
|
|
74
|
+
close: optional(flag("true closes the profile instead")),
|
|
75
|
+
approval: optional(text("the approval the preview returned; needed with send")),
|
|
76
|
+
send: optional(flag("true sends the change; leave out to preview")),
|
|
77
|
+
}),
|
|
78
|
+
output: object({
|
|
79
|
+
wallet: account(),
|
|
80
|
+
profile: account(),
|
|
81
|
+
action: choice(["create", "update", "close"]),
|
|
82
|
+
approval: text(),
|
|
83
|
+
summary: list(text(), 6),
|
|
84
|
+
sent: flag(),
|
|
85
|
+
signature: optional(text()),
|
|
86
|
+
next: optional(text()),
|
|
87
|
+
}),
|
|
88
|
+
run: async (ctx, input, call) => {
|
|
89
|
+
const signer = await signerOf(ctx);
|
|
90
|
+
const profile = await profileAddress(signer.address);
|
|
91
|
+
const existing = await clientOf(ctx).profile(signer.address);
|
|
92
|
+
let instruction;
|
|
93
|
+
let action;
|
|
94
|
+
let summary;
|
|
95
|
+
if (input.close === true) {
|
|
96
|
+
if (existing === null) {
|
|
97
|
+
throw new AgentRefusal("NotFound", NO_PROFILE_TO_CLOSE);
|
|
98
|
+
}
|
|
99
|
+
instruction = await buildCloseProfile({ wallet: signer });
|
|
100
|
+
action = "close";
|
|
101
|
+
summary = [`Closes: the profile of this wallet ${signer.address} and returns its rent`];
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const fields = profileOf(input);
|
|
105
|
+
action = existing === null ? "create" : "update";
|
|
106
|
+
instruction = existing === null ? await buildCreateProfile({ wallet: signer, ...fields }) : await buildUpdateProfile({ wallet: signer, ...fields });
|
|
107
|
+
summary = [
|
|
108
|
+
`${existing === null ? "Creates" : "Updates"}: the profile of this wallet ${signer.address}`,
|
|
109
|
+
`Skills: ${fields.skills.join(", ")}`,
|
|
110
|
+
`Endpoint: ${fields.endpoint}`,
|
|
111
|
+
fields.docUrl === undefined ? "Document: none" : `Document: ${fields.docUrl} with sha256 ${fields.docSha256}`,
|
|
112
|
+
];
|
|
113
|
+
}
|
|
114
|
+
const approval = createHash("sha256").update(JSON.stringify({ action, summary })).digest("hex").slice(0, 16);
|
|
115
|
+
if (input.send === true && input.approval !== approval) {
|
|
116
|
+
throw new AgentRefusal("ReleaseChanged", PROFILE_CHANGED);
|
|
117
|
+
}
|
|
118
|
+
const shown = {
|
|
119
|
+
wallet: signer.address,
|
|
120
|
+
profile,
|
|
121
|
+
action,
|
|
122
|
+
approval,
|
|
123
|
+
summary,
|
|
124
|
+
prepared: input.send === true ? preparedView(await prepare(ctx.transport, [instruction], signer.address)) : undefined,
|
|
125
|
+
};
|
|
126
|
+
return sent(ctx, signer, shown, input.send, call);
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/agent/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,8 @@ import { prepareCreate } from "./create.js";
|
|
|
2
2
|
import { agentCreate, getMandate, prepareAgentCreate, prepareMandate, prepareRevokeMandate } from "./mandate.js";
|
|
3
3
|
import { findJobs, getBalances, getConfig, getIntent, listIntents, quote } from "./read.js";
|
|
4
4
|
import { getReputation } from "./reputation.js";
|
|
5
|
+
import { getClaims } from "./work-claims.js";
|
|
6
|
+
import { getProfile } from "./profile.js";
|
|
5
7
|
import { findCrankWork, prepareCancel, prepareCrank } from "./settle.js";
|
|
6
8
|
import { prepareSignedIntent, previewSignedIntent, submitSignedIntent } from "./signed.js";
|
|
7
9
|
import { checkDelivery, getReceipt, prepareDeliver } from "./wallet.js";
|
|
@@ -19,6 +21,8 @@ export const ACTIONS = [
|
|
|
19
21
|
checkDelivery,
|
|
20
22
|
getReceipt,
|
|
21
23
|
getReputation,
|
|
24
|
+
getClaims,
|
|
25
|
+
getProfile,
|
|
22
26
|
prepareCrank,
|
|
23
27
|
prepareSignedIntent,
|
|
24
28
|
previewSignedIntent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/agent/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,CAAC,MAAM,OAAO,GAAyB;IAC3C,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;IACX,KAAK;IACL,aAAa;IACb,aAAa;IACb,aAAa;IACb,QAAQ;IACR,cAAc;IACd,aAAa;IACb,UAAU;IACV,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,kBAAkB;IAClB,WAAW;CACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/agent/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,CAAC,MAAM,OAAO,GAAyB;IAC3C,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;IACX,KAAK;IACL,aAAa;IACb,aAAa;IACb,aAAa;IACb,QAAQ;IACR,cAAc;IACd,aAAa;IACb,UAAU;IACV,aAAa;IACb,SAAS;IACT,UAAU;IACV,YAAY;IACZ,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,kBAAkB;IAClB,WAAW;CACZ,CAAC"}
|
package/dist/src/agent/wallet.js
CHANGED
|
@@ -6,6 +6,8 @@ import { walletDeliver, walletCheckDelivery } from "./wallet/delivery.js";
|
|
|
6
6
|
import { walletAttestSplit } from "./wallet/split.js";
|
|
7
7
|
import { walletCommitteeRelease, walletCommitteeVote } from "./wallet/committee.js";
|
|
8
8
|
import { walletFeedback } from "./reputation.js";
|
|
9
|
+
import { walletClaim } from "./work-claims.js";
|
|
10
|
+
import { walletProfile } from "./profile.js";
|
|
9
11
|
import { walletRecordDelivery } from "./wallet/record.js";
|
|
10
12
|
import { walletWait } from "./wallet/wait.js";
|
|
11
13
|
import { walletReceipt } from "./wallet/receipt.js";
|
|
@@ -38,6 +40,8 @@ export const WALLET_ACTIONS = [
|
|
|
38
40
|
walletCommitteeVote,
|
|
39
41
|
walletCommitteeRelease,
|
|
40
42
|
walletFeedback,
|
|
43
|
+
walletClaim,
|
|
44
|
+
walletProfile,
|
|
41
45
|
walletRecordDelivery,
|
|
42
46
|
walletDeliver,
|
|
43
47
|
walletCheckDelivery,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/agent/wallet.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../src/agent/wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const CLAIM_CHANGED = "this claim differs from its preview: the escrow, action, seconds or stake changed, or no approval was given; preview it again and show the user";
|
|
2
|
+
export declare const getClaims: import("./actions.js").AnyAction;
|
|
3
|
+
export declare const walletClaim: import("./actions.js").AnyAction;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { buildClaimJob, buildDropClaim, claimUntil, findIntentPda, formatAmount, IntentCoreError, IntentStatus, MAX_CLAIM_SECS } from "@intent-engine/core";
|
|
3
|
+
import { createClient } from "@intent-engine/client";
|
|
4
|
+
import { heldBy, noClaims } from "../claim-commands.js";
|
|
5
|
+
import { define } from "./actions.js";
|
|
6
|
+
import { tool } from "./names.js";
|
|
7
|
+
import { AgentRefusal } from "./problems.js";
|
|
8
|
+
import { account, amount, choice, flag, InvalidInput, integer, list, nullable, object, optional, text, time } from "./schema.js";
|
|
9
|
+
import { preparedView } from "./shapes.js";
|
|
10
|
+
import { prepare } from "./prepare.js";
|
|
11
|
+
import { signerOf, sent } from "./wallet/guard.js";
|
|
12
|
+
export const CLAIM_CHANGED = "this claim differs from its preview: the escrow, action, seconds or stake changed, or no approval was given; preview it again and show the user";
|
|
13
|
+
const escrowRef = {
|
|
14
|
+
owner: account("the wallet that made the escrow"),
|
|
15
|
+
nonce: amount("the escrow intent's nonce"),
|
|
16
|
+
};
|
|
17
|
+
async function claimsFor(ctx, owner, nonce) {
|
|
18
|
+
const client = createClient({ url: ctx.url ?? "", transport: ctx.transport });
|
|
19
|
+
const [intent] = await findIntentPda({ owner, nonce });
|
|
20
|
+
return { client, intent, view: await client.claims(owner, nonce) };
|
|
21
|
+
}
|
|
22
|
+
export const getClaims = define({
|
|
23
|
+
name: tool("get_claims"),
|
|
24
|
+
title: "Who holds a job's claim",
|
|
25
|
+
description: `Read the claims board of a proof escrow: whether its owner opened claims, and whether the job is free, held by a worker until a time, or held by a claim that lapsed. While a claim holds, only its worker can be paid. A worker claims or drops it with ${tool("wallet_claim")}.`,
|
|
26
|
+
effect: "read",
|
|
27
|
+
input: object(escrowRef),
|
|
28
|
+
output: object({
|
|
29
|
+
intent: account(),
|
|
30
|
+
takes_claims: flag("false means the owner opened no claims, so anyone can be paid"),
|
|
31
|
+
board: optional(account()),
|
|
32
|
+
state: optional(choice(["free", "held", "lapsed"])),
|
|
33
|
+
worker: optional(nullable(account())),
|
|
34
|
+
until: optional(time("when the claim lapses")),
|
|
35
|
+
seconds_left: optional(amount("seconds until the claim lapses, by the chain's clock")),
|
|
36
|
+
stake: optional(amount("lamports a worker stakes to claim")),
|
|
37
|
+
max_secs: optional(integer(1, MAX_CLAIM_SECS, "the longest a claim may run")),
|
|
38
|
+
owner: optional(account()),
|
|
39
|
+
}),
|
|
40
|
+
run: async (ctx, input) => {
|
|
41
|
+
const { intent, view } = await claimsFor(ctx, input.owner, input.nonce);
|
|
42
|
+
if (view === null) {
|
|
43
|
+
return { intent, takes_claims: false };
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
intent,
|
|
47
|
+
takes_claims: true,
|
|
48
|
+
board: view.board,
|
|
49
|
+
state: view.state,
|
|
50
|
+
worker: view.worker,
|
|
51
|
+
until: view.until,
|
|
52
|
+
seconds_left: view.secondsLeft,
|
|
53
|
+
stake: view.stake,
|
|
54
|
+
max_secs: view.maxSecs,
|
|
55
|
+
owner: view.owner,
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
export const walletClaim = define({
|
|
60
|
+
name: tool("wallet_claim"),
|
|
61
|
+
title: "Claim or drop a job",
|
|
62
|
+
description: `As a worker, claim a proof escrow's job for secs seconds by staking what its owner asks, so that only this server's wallet can be paid until the claim lapses; or drop a claim it holds to take the stake back. The stake returns when a release pays this wallet, and goes to the owner if the claim lapses first. Read the board with ${tool("get_claims")}. Without send it only previews; show the user the summary and, once they approve, call again with send: true and the approval the preview returned.`,
|
|
63
|
+
effect: "submit",
|
|
64
|
+
input: object({
|
|
65
|
+
...escrowRef,
|
|
66
|
+
action: choice(["take", "drop"], "take claims the job, drop gives up a claim this wallet holds"),
|
|
67
|
+
secs: optional(integer(1, MAX_CLAIM_SECS, "how long to hold the claim; needed with take")),
|
|
68
|
+
approval: optional(text("the approval the preview returned; needed with send")),
|
|
69
|
+
send: optional(flag("true sends the claim; leave out to preview")),
|
|
70
|
+
}),
|
|
71
|
+
output: object({
|
|
72
|
+
intent: account(),
|
|
73
|
+
action: choice(["take", "drop"]),
|
|
74
|
+
approval: text(),
|
|
75
|
+
summary: list(text(), 4),
|
|
76
|
+
sent: flag(),
|
|
77
|
+
signature: optional(text()),
|
|
78
|
+
next: optional(text()),
|
|
79
|
+
}),
|
|
80
|
+
run: async (ctx, input, call) => {
|
|
81
|
+
const signer = await signerOf(ctx);
|
|
82
|
+
const { client, intent, view } = await claimsFor(ctx, input.owner, input.nonce);
|
|
83
|
+
if (view === null) {
|
|
84
|
+
throw new AgentRefusal("ClaimsMissing", noClaims(intent));
|
|
85
|
+
}
|
|
86
|
+
const stake = `${formatAmount(view.stake, 9)} SOL`;
|
|
87
|
+
let instruction;
|
|
88
|
+
let summary;
|
|
89
|
+
if (input.action === "take") {
|
|
90
|
+
if (input.secs === undefined) {
|
|
91
|
+
throw new InvalidInput([{ path: "secs", message: "give secs with action take" }]);
|
|
92
|
+
}
|
|
93
|
+
if (view.state === "held" && view.worker !== null) {
|
|
94
|
+
throw new AgentRefusal("ClaimHeld", heldBy(intent, view.worker, view.secondsLeft));
|
|
95
|
+
}
|
|
96
|
+
if (input.secs > view.maxSecs) {
|
|
97
|
+
throw new InvalidInput([{ path: "secs", message: `this escrow allows at most ${view.maxSecs} seconds` }]);
|
|
98
|
+
}
|
|
99
|
+
const now = await client.chainTime();
|
|
100
|
+
const found = await client.intent(input.owner, input.nonce);
|
|
101
|
+
if (found === null || found.intent.status !== IntentStatus.Open || now >= found.intent.expiresAt) {
|
|
102
|
+
throw new AgentRefusal("InvalidTransition", `escrow ${intent} is no longer open, so its job cannot be claimed`);
|
|
103
|
+
}
|
|
104
|
+
let until;
|
|
105
|
+
try {
|
|
106
|
+
until = claimUntil(view.maxSecs, now, input.secs, found.intent.expiresAt);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw error instanceof IntentCoreError ? new AgentRefusal("ClaimTerms", `a claim of ${input.secs} seconds would outlive escrow ${intent}`) : error;
|
|
110
|
+
}
|
|
111
|
+
instruction = await buildClaimJob({ worker: signer, intent, owner: view.owner, secs: input.secs });
|
|
112
|
+
summary = [
|
|
113
|
+
`Claims: escrow ${intent} until ${until}, ${input.secs} seconds; until then only this wallet ${signer.address} can be paid`,
|
|
114
|
+
`Stakes: ${stake}, returned when a release pays this wallet or it drops the claim, and lost to the owner if the claim lapses first`,
|
|
115
|
+
];
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
if (view.state !== "held" || view.worker !== signer.address) {
|
|
119
|
+
throw new AgentRefusal("NotClaimant", `this wallet ${signer.address} holds no claim on escrow ${intent}`);
|
|
120
|
+
}
|
|
121
|
+
instruction = await buildDropClaim({ worker: signer, intent });
|
|
122
|
+
summary = [`Drops: this wallet's claim on escrow ${intent}`, `Returns: its stake of ${stake} to ${signer.address}`];
|
|
123
|
+
}
|
|
124
|
+
const approval = createHash("sha256").update(`${intent}:${input.action}:${input.secs ?? ""}:${view.stake}`).digest("hex").slice(0, 16);
|
|
125
|
+
if (input.send === true && input.approval !== approval) {
|
|
126
|
+
throw new AgentRefusal("ReleaseChanged", CLAIM_CHANGED);
|
|
127
|
+
}
|
|
128
|
+
const shown = {
|
|
129
|
+
intent,
|
|
130
|
+
action: input.action,
|
|
131
|
+
approval,
|
|
132
|
+
summary,
|
|
133
|
+
prepared: input.send === true ? preparedView(await prepare(ctx.transport, [instruction], signer.address)) : undefined,
|
|
134
|
+
};
|
|
135
|
+
return sent(ctx, signer, shown, input.send, call);
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=work-claims.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-claims.js","sourceRoot":"","sources":["../../../src/agent/work-claims.ts"],"names":[],"mappings":"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"}
|