@ixo/asks-mcp 1.6.0 → 1.7.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/asks-mcp.mjs +11 -17
- package/package.json +1 -1
package/dist/asks-mcp.mjs
CHANGED
|
@@ -265866,8 +265866,8 @@ function defaultReviewer(oracles, fallback, off) {
|
|
|
265866
265866
|
return oracles.find((oracle) => ASK_THE_WORLD_CHECKERS2.has(oracle.address) && !oracle.unavailable && !off?.has(oracle.address)) ?? fallback;
|
|
265867
265867
|
}
|
|
265868
265868
|
function goodFor(address2, named) {
|
|
265869
|
-
if (ASK_THE_WORLD_CHECKERS2.has(address2)) return "Good for photos, a quick look somewhere and short written answers
|
|
265870
|
-
if (named) return "Good for cleanups,
|
|
265869
|
+
if (ASK_THE_WORLD_CHECKERS2.has(address2)) return "Good for photos, a quick look somewhere and short written answers";
|
|
265870
|
+
if (named) return "Good for cleanups, photos and written answers. The default for every new ask";
|
|
265871
265871
|
return null;
|
|
265872
265872
|
}
|
|
265873
265873
|
var ASK_THE_WORLD_CHECKERS2, NETWORK_CHECKER_ROLE, plainReviewerName, isWorkAsk;
|
|
@@ -265875,7 +265875,7 @@ var init_reviewerPick = __esm({
|
|
|
265875
265875
|
"../../app/lib/reviewerPick.ts"() {
|
|
265876
265876
|
"use strict";
|
|
265877
265877
|
ASK_THE_WORLD_CHECKERS2 = /* @__PURE__ */ new Set(["ixo1qrk9dp4r2u8q5l9cs42yh4dne4pj3wynp4enwq", "ixo12mvzayzrzsvaud86jf9shy6q2nvkea3tygxhsh"]);
|
|
265878
|
-
NETWORK_CHECKER_ROLE = "The default verifier for
|
|
265878
|
+
NETWORK_CHECKER_ROLE = "The default verifier for every new ask";
|
|
265879
265879
|
plainReviewerName = (name8) => name8.replace(/\boracle\b/gi, (word) => word[0] === "O" ? "Verifier" : "verifier");
|
|
265880
265880
|
isWorkAsk = (terms) => terms.deliverable.type === "photo-pair" || terms.deliverable.type === "mess-report" || Boolean(terms.site || terms.campaign);
|
|
265881
265881
|
}
|
|
@@ -292106,7 +292106,7 @@ import { randomBytes as randomBytes7 } from "node:crypto";
|
|
|
292106
292106
|
// package.json
|
|
292107
292107
|
var package_default = {
|
|
292108
292108
|
name: "@ixo/asks-mcp",
|
|
292109
|
-
version: "1.
|
|
292109
|
+
version: "1.7.0",
|
|
292110
292110
|
description: "The Openhands Network MCP server: read the board, answer asks, post work and get paid on the ixo chain, with a key of its own on your machine.",
|
|
292111
292111
|
license: "Apache-2.0",
|
|
292112
292112
|
repository: {
|
|
@@ -294934,7 +294934,7 @@ Never open it yourself.`
|
|
|
294934
294934
|
"Posting the same job many times, one per address? Give every one the same series name (lowercase letters, digits, dashes) and the board shows them as one card. Each is still its own ask and pays on its own."
|
|
294935
294935
|
),
|
|
294936
294936
|
org: external_exports.string().optional().describe("Post for this organisation: its id (`did:ixo:entity:\u2026`). The ask is a deed the organisation requests (linked both ways); you need a key on the organisation, and to own it when the ask holds money: the organisation's account funds the deed (pay x quota in the network's reward coin, shown as dollars, plus the review fee), never this key's account. Needs the IXO ask shape on this deployment."),
|
|
294937
|
-
oracle: external_exports.object({ did: external_exports.string(), address: external_exports.string().optional(), url: external_exports.string().url().optional() }).optional().describe("With org: the verifier that judges the ask. With url, its published price is the evaluation payment, in the network's verifier-fee coin, shown as dollars, paid by the organisation's account, which must hold it; without url (your own verifier) the evaluation payment is 0. address: a `did:ixo:entity` verifier's signing account is read from the public record (its #orz), so leave it out; if given it must match. A `did:web` verifier needs it. Omitted:
|
|
294937
|
+
oracle: external_exports.object({ did: external_exports.string(), address: external_exports.string().optional(), url: external_exports.string().url().optional() }).optional().describe("With org: the verifier that judges the ask. With url, its published price is the evaluation payment, in the network's verifier-fee coin, shown as dollars, paid by the organisation's account, which must hold it; without url (your own verifier) the evaluation payment is 0. address: a `did:ixo:entity` verifier's signing account is read from the public record (its #orz), so leave it out; if given it must match. A `did:web` verifier needs it. Omitted: the asks.world verifier (this network's own) checks it; for an org, one its settings allow."),
|
|
294938
294938
|
payout: external_exports.object({ rail: external_exports.enum(["usdc_base", "stripe"]), amount: external_exports.number().positive().max(1e6), currency: external_exports.string(), facilitator: external_exports.string() }).optional().describe("With org: pay the worker through the organisation's payouts service (`did:web` or https URL), not from the ask. pay must be 0."),
|
|
294939
294939
|
campaign: external_exports.string().optional().describe("Post the ask in this campaign: the campaign's protocol id (`did:ixo:entity:\u2026`, from create_campaign). The deed is classed under it and partOf it, and checked against the campaign's shared requirements. Needs the IXO ask shape."),
|
|
294940
294940
|
image: external_exports.string().optional().describe("The ask's picture (png, jpg or webp, at most 5 MB): a file path on this machine, an https URL or a data: URL. Stored on the gateway and set as the deed's profile image. Needs the IXO ask shape."),
|
|
@@ -295065,11 +295065,7 @@ Never open it yourself.`
|
|
|
295065
295065
|
} catch (error54) {
|
|
295066
295066
|
return text4(`Refused: ${error54 instanceof Error ? error54.message : String(error54)}. Nothing was posted and nothing was spent.`);
|
|
295067
295067
|
}
|
|
295068
|
-
|
|
295069
|
-
if (!orgAsk && ordinary) {
|
|
295070
|
-
const priced = await askTheWorldPriced();
|
|
295071
|
-
if (priced) ({ address: reviewer, leg: legBase, perCheck } = priced);
|
|
295072
|
-
}
|
|
295068
|
+
const reviewer = expert ? expert.checker.address : CHECKER;
|
|
295073
295069
|
const { payoutSummary: payoutSummary2, railWords: railWords2, payoutTermsJson: payoutTermsJson2, payoutTermsCid: payoutTermsCid2 } = await Promise.resolve().then(() => (init_payoutTerms(), payoutTerms_exports));
|
|
295074
295070
|
const built = {
|
|
295075
295071
|
...form.terms,
|
|
@@ -295140,7 +295136,7 @@ ${orgCosts}` } : { total: onChain.total, what: perCheck ? `${onChain.what}. Revi
|
|
|
295140
295136
|
/* By card the person posts as themselves at the link; and a hosted server has no connection to name. */
|
|
295141
295137
|
card ? null : actingNote(acting),
|
|
295142
295138
|
expert ? expertNote(expert) : checkingNote(terms, acting?.principal ?? null),
|
|
295143
|
-
expert ? null : orgAsk ? `Reviewed by ${await oracleWordsFor({ did: orgAsk.oracle.did, address: orgAsk.oracle.address })}.` : reviewer && reviewer !== CHECKER ? `Reviewed by ${await oracleWordsFor({ address: reviewer })}.` : null,
|
|
295139
|
+
expert ? null : orgAsk ? `Reviewed by ${await oracleWordsFor({ did: orgAsk.oracle.did, address: orgAsk.oracle.address })}.` : reviewer && reviewer !== CHECKER ? `Reviewed by ${await oracleWordsFor({ address: reviewer })}.` : reviewer ? `Checked by asks.world verifier, ${feeWords(perCheck ? perCheck.price : legBase)} per check.` : null,
|
|
295144
295140
|
doorWords(door2.access, door2.invite.length),
|
|
295145
295141
|
inCampaign ? `In campaign ${inCampaign.protocolDid}, checked by its shared rules (${inCampaign.claimProtocolDid}).` : null,
|
|
295146
295142
|
picture2 && !("refused" in picture2) ? `Picture: ${picture2.contentType.slice(6)}, ${Math.ceil(picture2.bytes.byteLength / 1024)} KB, uploaded through your account connection with the ask.` : null,
|
|
@@ -295346,11 +295342,9 @@ ${SITE}/t/${earlier.id}`);
|
|
|
295346
295342
|
const live = !expert && engineLive();
|
|
295347
295343
|
const leg = await Promise.resolve().then(() => (init_leg(), leg_exports));
|
|
295348
295344
|
const legQuote = live ? leg.evaluationLegFor(FEE_DENOM, terms, spots) : null;
|
|
295349
|
-
const
|
|
295350
|
-
const
|
|
295351
|
-
|
|
295352
|
-
if (world) terms.judge = { kind: "oracle", address: world.address, rewardUixo: legBase };
|
|
295353
|
-
else if (legBase > 0 && terms.judge?.kind === "oracle") terms.judge = { ...terms.judge, rewardUixo: legBase };
|
|
295345
|
+
const legBase = expert ? expert.leg : live ? Number(legQuote.base) : CHECKER ? leg.checkerLegBase(FEE_DENOM, terms, CHECK_REWARD) : 0;
|
|
295346
|
+
const perCheck = expert ? expert.perCheck : null;
|
|
295347
|
+
if (legBase > 0 && terms.judge?.kind === "oracle") terms.judge = { ...terms.judge, rewardUixo: legBase };
|
|
295354
295348
|
const billing = await Promise.resolve().then(() => (init_reviewBilling(), reviewBilling_exports));
|
|
295355
295349
|
const escrowed = escrowTotal(pay, spots, legBase, coinSymbol, coin === (expert?.feeDenom ?? FEE_DENOM), symbolOf(expert?.feeDenom ?? FEE_DENOM));
|
|
295356
295350
|
const total = escrowed.total;
|
|
@@ -295387,7 +295381,7 @@ ${SITE}/t/${earlier.id}`);
|
|
|
295387
295381
|
* pot covers their price and nobody is ever invoiced. Off, it is our
|
|
295388
295382
|
* checker and our flat reward, exactly as before.
|
|
295389
295383
|
*/
|
|
295390
|
-
checker: expert ? expert.checker.address : live ? ENGINE_ORACLE :
|
|
295384
|
+
checker: expert ? expert.checker.address : live ? ENGINE_ORACLE : CHECKER,
|
|
295391
295385
|
checkRewardUixo: legBase,
|
|
295392
295386
|
/* On the reviewer's own protocol: no rules of the ask's own are minted. */
|
|
295393
295387
|
...expert ? { protocol: expert.check.did, feeDenom: expert.feeDenom } : {},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ixo/asks-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "The Openhands Network MCP server: read the board, answer asks, post work and get paid on the ixo chain, with a key of its own on your machine.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|