@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.
Files changed (2) hide show
  1. package/dist/asks-mcp.mjs +11 -17
  2. 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. The default for an ordinary ask";
265870
- if (named) return "Good for cleanups, before-and-after photos and site work. The default for those";
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 cleanups and site work. An ordinary ask defaults to the Ask the World verifier where this network carries it";
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.6.0",
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: an ordinary ask (a photo, words, a file) is checked by IXO's Ask the World verifier where this network carries it (for an org, only when its settings allow it, else the org's default); a cleanup, work or campaign ask by the network's own verifier."),
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
- let reviewer = expert ? expert.checker.address : CHECKER;
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 world = live || expert ? null : await askTheWorldPriced();
295350
- const legBase = expert ? expert.leg : live ? Number(legQuote.base) : world ? world.leg : CHECKER ? leg.checkerLegBase(FEE_DENOM, terms, CHECK_REWARD) : 0;
295351
- const perCheck = expert ? expert.perCheck : world?.perCheck ?? null;
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 : world?.address ?? CHECKER,
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.6.0",
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": {