dexe-mcp 0.20.0 → 0.21.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.
@@ -4,6 +4,7 @@ import type { TxPayload } from "../lib/calldata.js";
4
4
  import { RpcProvider } from "../rpc.js";
5
5
  import { SignerManager } from "../lib/signer.js";
6
6
  import type { WalletConnectManager } from "../lib/walletconnect.js";
7
+ import { type PairingContent } from "../lib/qr.js";
7
8
  import type { StateStore } from "../lib/stateStore.js";
8
9
  interface FlowStep {
9
10
  label: string;
@@ -31,10 +32,25 @@ export interface FlowPairing {
31
32
  account?: string | null;
32
33
  uri?: string;
33
34
  chainId?: number;
34
- ascii?: string;
35
+ qrFallbackUrl?: string;
35
36
  note?: string;
36
37
  renderHint?: string;
37
38
  }
39
+ /**
40
+ * Prepend the WalletConnect QR content blocks (ASCII + PNG image) to a tool
41
+ * response so the QR renders inline in MCP clients — identical presentation
42
+ * to `dexe_wc_connect`. No-op when there is nothing to attach.
43
+ */
44
+ export declare function attachPairingQr(res: {
45
+ content: Array<{
46
+ type: "text";
47
+ text: string;
48
+ }>;
49
+ isError?: boolean;
50
+ }, pairingContent?: PairingContent[]): {
51
+ content: PairingContent[];
52
+ isError?: boolean;
53
+ };
38
54
  export declare function sendOrCollect(signer: SignerManager, payloads: TxPayload[], opts?: {
39
55
  dryRun?: boolean;
40
56
  chainId?: number;
@@ -44,6 +60,8 @@ export declare function sendOrCollect(signer: SignerManager, payloads: TxPayload
44
60
  steps: FlowStep[];
45
61
  enableWrites?: string;
46
62
  pairing?: FlowPairing;
63
+ /** QR content blocks (ASCII + PNG) — pass to `attachPairingQr` so the QR renders inline. */
64
+ pairingContent?: PairingContent[];
47
65
  }>;
48
66
  export interface ProposalCreateInput {
49
67
  govPool: string;
@@ -65,6 +83,10 @@ export interface ProposalCreateInput {
65
83
  newWebsiteUrl?: string;
66
84
  newAvatarCID?: string;
67
85
  newAvatarFileName?: string;
86
+ /** Local image path — the server uploads + validates it, no separate upload call needed. */
87
+ newAvatarPath?: string;
88
+ /** Base64 image bytes — only when the image isn't a local file. */
89
+ newAvatarBase64?: string;
68
90
  newSocialLinks?: [string, string][];
69
91
  actionsOnFor?: {
70
92
  executor: string;
@@ -95,10 +117,8 @@ export interface ProposalCreateDeps {
95
117
  * MCP tool layer.
96
118
  */
97
119
  export declare function runProposalCreate(inputRaw: ProposalCreateInput, deps: ProposalCreateDeps): Promise<{
98
- content: {
99
- type: "text";
100
- text: string;
101
- }[];
120
+ content: PairingContent[];
121
+ isError?: boolean;
102
122
  }>;
103
123
  export declare function registerFlowTools(server: McpServer, ctx: ToolContext, signer: SignerManager, wc: WalletConnectManager, state?: StateStore): void;
104
124
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,11 @@ import { z } from "zod";
2
2
  import { Contract, Interface } from "ethers";
3
3
  import { RpcProvider } from "../rpc.js";
4
4
  import { multicall } from "../lib/multicall.js";
5
- import { PinataClient, fetchIpfs } from "../lib/ipfs.js";
6
- import { renderQr } from "../lib/qr.js";
5
+ import { PinataClient, fetchIpfs, toCidV1 } from "../lib/ipfs.js";
6
+ import { buildAvatarUrl, pinAvatarFromInput } from "../lib/avatarUpload.js";
7
+ import { checkAvatarCidBytes } from "../lib/imageSniff.js";
8
+ import { resolveGateways } from "./ipfs.js";
9
+ import { qrFallbackUrl, wcQrBlocks } from "../lib/qr.js";
7
10
  import { markdownToSlate } from "../lib/markdownToSlate.js";
8
11
  import { resolveChain } from "../config.js";
9
12
  import { pinataUploadHint } from "../lib/requireEnv.js";
@@ -235,9 +238,9 @@ async function resolvePrereqs(rpc, govPool, user, config, chainId) {
235
238
  */
236
239
  export const ENABLE_WRITES_HINT = "⚠️ Read-only session — the steps below are UNSIGNED transaction payloads; nothing was broadcast. " +
237
240
  "To actually execute this write:\n" +
238
- " • ✅ RECOMMENDED — connect a wallet: run `dexe_wc_connect` and scan the QR (it auto-prints), approve on " +
239
- "your phone. Your keys never touch this machine. If WalletConnect is configured, a QR is already attached " +
240
- "below under `pairing` just scan it.\n" +
241
+ " • ✅ RECOMMENDED — connect a wallet: if WalletConnect is configured, a scannable QR is already attached " +
242
+ "to this response — just scan it and approve on your phone (keys never touch this machine). Otherwise run " +
243
+ "`dexe_wc_connect` to print one.\n" +
241
244
  " • ⚠️ NOT SAFE — set `DEXE_PRIVATE_KEY` in .env so the server auto-signs: a hot key then lives in " +
242
245
  "PLAINTEXT on disk. Use only a throwaway/test wallet, never a treasury or personal key. Restart Claude Code " +
243
246
  "after editing .env.\n" +
@@ -256,22 +259,28 @@ async function tryAutoPair(wc, chainId) {
256
259
  const pr = await wc.ensurePairing(chainId);
257
260
  if (pr.connected) {
258
261
  return {
259
- connected: true,
260
- account: pr.account,
261
- chainId: pr.chainId,
262
- note: "WalletConnect session is live — feed each payload above to dexe_tx_send to broadcast via your phone wallet.",
262
+ pairing: {
263
+ connected: true,
264
+ account: pr.account,
265
+ chainId: pr.chainId,
266
+ note: "WalletConnect session is live — feed each payload above to dexe_tx_send to broadcast via your phone wallet.",
267
+ },
268
+ content: [],
263
269
  };
264
270
  }
265
271
  if (pr.uri) {
266
- const { ascii } = await renderQr(pr.uri);
272
+ const content = await wcQrBlocks(pr.uri);
267
273
  return {
268
- connected: false,
269
- uri: pr.uri,
270
- chainId: pr.chainId,
271
- ascii: ascii ?? undefined,
272
- renderHint: ascii
273
- ? "Echo the `ascii` QR VERBATIM in a code block so the user can scan it, then re-run once connected."
274
- : "Show the user `uri` to paste into their wallet.",
274
+ pairing: {
275
+ connected: false,
276
+ uri: pr.uri,
277
+ chainId: pr.chainId,
278
+ qrFallbackUrl: qrFallbackUrl(pr.uri),
279
+ renderHint: content.length
280
+ ? "A scannable QR (PNG image + ASCII) is attached to this tool response — show it so the user can scan it. After phone approval, re-run this call or feed the payloads to dexe_tx_send."
281
+ : "QR rendering unavailable — open `qrFallbackUrl` for a scannable image, or paste `uri` into the wallet.",
282
+ },
283
+ content,
275
284
  };
276
285
  }
277
286
  return undefined;
@@ -280,6 +289,16 @@ async function tryAutoPair(wc, chainId) {
280
289
  return undefined;
281
290
  }
282
291
  }
292
+ /**
293
+ * Prepend the WalletConnect QR content blocks (ASCII + PNG image) to a tool
294
+ * response so the QR renders inline in MCP clients — identical presentation
295
+ * to `dexe_wc_connect`. No-op when there is nothing to attach.
296
+ */
297
+ export function attachPairingQr(res, pairingContent) {
298
+ if (!pairingContent?.length)
299
+ return res;
300
+ return { ...res, content: [...pairingContent, ...res.content] };
301
+ }
283
302
  export async function sendOrCollect(signer, payloads, opts) {
284
303
  const steps = [];
285
304
  // `dryRun` and "no signer" both return calldata without broadcasting, but
@@ -301,12 +320,12 @@ export async function sendOrCollect(signer, payloads, opts) {
301
320
  // these payloads to dexe_tx_send (which broadcasts via the phone). This is
302
321
  // best-effort: `mode` and `steps` stay byte-identical whether or not
303
322
  // pairing succeeds, so the swarm mcpFallbackDispatcher is unaffected.
304
- const pairing = await tryAutoPair(opts?.wc, opts?.chainId);
323
+ const paired = await tryAutoPair(opts?.wc, opts?.chainId);
305
324
  return {
306
325
  mode: "payloads",
307
326
  steps,
308
327
  enableWrites: ENABLE_WRITES_HINT,
309
- ...(pairing ? { pairing } : {}),
328
+ ...(paired ? { pairing: paired.pairing, pairingContent: paired.content } : {}),
310
329
  };
311
330
  }
312
331
  const sg = signer.trySigner(opts?.chainId);
@@ -451,7 +470,7 @@ export async function runProposalCreate(inputRaw, deps) {
451
470
  " to merge partial update — refusing to broadcast (would blank unspecified fields). " +
452
471
  (currentMetaFetchError ? `Last error: ${currentMetaFetchError}. ` : "") +
453
472
  "Either set DEXE_IPFS_GATEWAY to a reachable gateway or pass all fields explicitly " +
454
- "(newDaoName, newWebsiteUrl, newDaoDescription, newSocialLinks, newAvatarCID/newAvatarFileName).");
473
+ "(newDaoName, newWebsiteUrl, newDaoDescription, newSocialLinks, newAvatarPath or newAvatarCID/newAvatarFileName).");
455
474
  }
456
475
  // Decide which description body to use:
457
476
  // - if caller passed newDaoDescription (or generic description), upload fresh
@@ -472,14 +491,35 @@ export async function runProposalCreate(inputRaw, deps) {
472
491
  socialLinks: input.newSocialLinks ?? (Array.isArray(currentMeta.socialLinks) ? currentMeta.socialLinks : []),
473
492
  documents: Array.isArray(currentMeta.documents) ? currentMeta.documents : [],
474
493
  };
475
- if (input.newAvatarCID) {
476
- daoMeta.avatarCID = input.newAvatarCID;
477
- daoMeta.avatarFileName = input.newAvatarFileName ?? "avatar.jpeg";
478
- // dweb.link + path-style resolves directory pins reliably across
479
- // gateways. The frontend rebuilds the URL itself (see
480
- // parseAvatarFromIpfsResponse) so the field is informational only,
481
- // but the CID + filename pair is load-bearing.
482
- daoMeta.avatarUrl = `https://${input.newAvatarCID}.ipfs.dweb.link/${daoMeta.avatarFileName}`;
494
+ if ((input.newAvatarPath || input.newAvatarBase64) && input.newAvatarCID) {
495
+ return err("Pass either `newAvatarCID` or `newAvatarPath`/`newAvatarBase64`, not both.");
496
+ }
497
+ if (input.newAvatarPath || input.newAvatarBase64) {
498
+ // One-call avatar rotation: read + validate (magic bytes) + pin the
499
+ // image server-side. The agent should never read image files itself.
500
+ const pinned = await pinAvatarFromInput({
501
+ filePath: input.newAvatarPath,
502
+ base64: input.newAvatarBase64,
503
+ pinata,
504
+ });
505
+ daoMeta.avatarCID = pinned.avatarCID;
506
+ daoMeta.avatarFileName = pinned.avatarFileName;
507
+ daoMeta.avatarUrl = pinned.avatarUrl;
508
+ }
509
+ else if (input.newAvatarCID) {
510
+ // By-reference CID — the local byte gate never saw these bytes, so
511
+ // best-effort fetch + sniff (hard-block only on confirmed non-raster).
512
+ const avatarCidV1 = toCidV1(input.newAvatarCID);
513
+ const avatarFileName = input.newAvatarFileName ?? "avatar.jpeg";
514
+ const check = await checkAvatarCidBytes(avatarCidV1, avatarFileName, resolveGateways(ctx));
515
+ if (!check.ok)
516
+ return err(check.error ?? "newAvatarCID failed raster validation");
517
+ daoMeta.avatarCID = avatarCidV1;
518
+ daoMeta.avatarFileName = avatarFileName;
519
+ // The frontend rebuilds the URL itself (parseAvatarFromIpfsResponse)
520
+ // so the field is informational, but the CID + filename pair is
521
+ // load-bearing.
522
+ daoMeta.avatarUrl = buildAvatarUrl(avatarCidV1, avatarFileName);
483
523
  }
484
524
  const daoMetaRes = await pinata.pinJson(daoMeta, { name: `dao-meta:${govPool.slice(0, 10)}` });
485
525
  const newDescriptionURL = `ipfs://${daoMetaRes.cid}`;
@@ -648,7 +688,7 @@ export async function runProposalCreate(inputRaw, deps) {
648
688
  /* ignore */
649
689
  }
650
690
  }
651
- return ok({
691
+ return attachPairingQr(ok({
652
692
  mode: result.mode,
653
693
  descriptionURL,
654
694
  proposalMetadataCID: proposalMetaRes.cid,
@@ -662,7 +702,7 @@ export async function runProposalCreate(inputRaw, deps) {
662
702
  steps: [...skippedSteps, ...result.steps],
663
703
  ...(result.enableWrites ? { enableWrites: result.enableWrites } : {}),
664
704
  ...(result.pairing ? { pairing: result.pairing } : {}),
665
- });
705
+ }), result.pairingContent);
666
706
  }
667
707
  // ---------- register ----------
668
708
  export function registerFlowTools(server, ctx, signer, wc, state) {
@@ -674,7 +714,8 @@ export function registerFlowTools(server, ctx, signer, wc, state) {
674
714
  "sequence, uploads correct IPFS metadata (category/isMeta/changes), signs+broadcasts when " +
675
715
  "DEXE_PRIVATE_KEY is set (else returns ordered TxPayloads).\n\n" +
676
716
  "proposalType — pass one of:\n" +
677
- "• 'modify_dao_profile' — change DAO profile (newDaoName/newDaoDescription/newAvatarCID/newWebsiteUrl/newSocialLinks).\n" +
717
+ "• 'modify_dao_profile' — change DAO profile (newDaoName/newDaoDescription/newWebsiteUrl/newSocialLinks; avatar via " +
718
+ "newAvatarPath — a local image path the server uploads itself — or newAvatarCID for an already-pinned image).\n" +
678
719
  "• 'custom' — pass your own actionsOnFor [{executor,value,data}] (+ optional category).\n" +
679
720
  "• Wired catalog types (pass their inputs in `params`): 'token_transfer' {token,recipient,amount,isNative?}, " +
680
721
  "'withdraw_treasury' {receiver,token?,amount?,nftAddress?,nftIds?}, 'change_voting_settings' {govSettings,settings[],settingsIds?}, " +
@@ -704,6 +745,9 @@ export function registerFlowTools(server, ctx, signer, wc, state) {
704
745
  newWebsiteUrl: z.string().optional(),
705
746
  newAvatarCID: z.string().optional(),
706
747
  newAvatarFileName: z.string().optional(),
748
+ newAvatarPath: z.string().optional().describe("Local image path for the new avatar (JPEG/PNG/WebP/GIF, max 10 MB) — the server uploads + validates it. " +
749
+ "Preferred over reading the file yourself; replaces the separate dexe_ipfs_upload_avatar call."),
750
+ newAvatarBase64: z.string().optional().describe("Base64 image bytes — only when the image isn't a local file."),
707
751
  newSocialLinks: z.array(z.tuple([z.string(), z.string()])).optional(),
708
752
  actionsOnFor: z.array(z.object({
709
753
  executor: z.string(),
@@ -778,7 +822,7 @@ export function registerFlowTools(server, ctx, signer, wc, state) {
778
822
  const execResult = await sendOrCollect(signer, [
779
823
  makeTxPayload(govPool, GOV_POOL_ABI, "execute", [proposalId], chainId, `GovPool.execute(${proposalId})`),
780
824
  ], { dryRun: input.dryRun, chainId, wc });
781
- return ok({
825
+ return attachPairingQr(ok({
782
826
  mode: execResult.mode,
783
827
  proposalId,
784
828
  proposalStateBefore: stateName,
@@ -790,7 +834,7 @@ export function registerFlowTools(server, ctx, signer, wc, state) {
790
834
  executed: execResult.mode === "executed",
791
835
  ...(execResult.enableWrites ? { enableWrites: execResult.enableWrites } : {}),
792
836
  ...(execResult.pairing ? { pairing: execResult.pairing } : {}),
793
- });
837
+ }), execResult.pairingContent);
794
838
  }
795
839
  if (stateNum !== 0) {
796
840
  return err(`Proposal #${proposalId} is in state "${stateName}" — voting requires "Voting" state.`);
@@ -864,7 +908,7 @@ export function registerFlowTools(server, ctx, signer, wc, state) {
864
908
  });
865
909
  }
866
910
  }
867
- return ok({
911
+ return attachPairingQr(ok({
868
912
  mode: result.mode,
869
913
  proposalId,
870
914
  proposalStateBefore: stateName,
@@ -872,7 +916,7 @@ export function registerFlowTools(server, ctx, signer, wc, state) {
872
916
  executed,
873
917
  ...(result.enableWrites ? { enableWrites: result.enableWrites } : {}),
874
918
  ...(result.pairing ? { pairing: result.pairing } : {}),
875
- });
919
+ }), result.pairingContent);
876
920
  });
877
921
  }
878
922
  //# sourceMappingURL=flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../src/tools/ipfs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,WAAW,EAOZ,MAAM,gBAAgB,CAAC;AAMxB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAY3E;AAqED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CA6C3D;AAocD,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"ipfs.d.ts","sourceRoot":"","sources":["../../src/tools/ipfs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,WAAW,EAOZ,MAAM,gBAAgB,CAAC;AAQxB,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAY3E;AAiDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,CA6C3D;AA4dD,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -4,6 +4,8 @@ import { markdownToSlate } from "../lib/markdownToSlate.js";
4
4
  import { pinataUploadHint } from "../lib/requireEnv.js";
5
5
  import { renderAvatarJpeg } from "../lib/avatarImage.js";
6
6
  import { assertRasterAvatar, checkAvatarCidBytes } from "../lib/imageSniff.js";
7
+ import { buildAvatarUrl, pinAvatarFromInput } from "../lib/avatarUpload.js";
8
+ import { readFile } from "node:fs/promises";
7
9
  export function registerIpfsTools(server, ctx) {
8
10
  const gateways = resolveGateways(ctx);
9
11
  registerUploadProposalMetadata(server, ctx);
@@ -25,27 +27,8 @@ function errorResult(message) {
25
27
  * the user opts in via `DEXE_IPFS_GATEWAYS_FALLBACK`. Returns an empty array
26
28
  * if nothing is configured; the fetch tool fails clean in that case.
27
29
  */
28
- /**
29
- * Subdomain-gateway host used to build the `avatarUrl` field stored inside
30
- * DAO metadata. Must speak the `<cidV1>.ipfs.<host>/<filename>` schema so the
31
- * DeXe frontend's `parseAvatarFromIpfsResponse` can round-trip the URL.
32
- *
33
- * Default is `dweb.link`. The frontend historically hardcoded `4everland.io`,
34
- * but 4everland fails to discover freshly-pinned CIDs for tens of minutes —
35
- * during that window the backend cache (`ipfs-cache.dexe.io`) can't fetch
36
- * the avatar and serves 404 for `<CID>.jpeg`, leaving the profile image
37
- * broken on app.dexe.io. dweb.link / w3s.link / gateway.pinata.cloud all
38
- * resolve the same pins immediately.
39
- *
40
- * Configurable via `DEXE_IPFS_AVATAR_GATEWAY` (host, no scheme).
41
- */
42
- function avatarSubdomainHost() {
43
- const override = process.env.DEXE_IPFS_AVATAR_GATEWAY?.trim().replace(/^https?:\/\//i, "").replace(/\/$/, "");
44
- return override || "dweb.link";
45
- }
46
- function buildAvatarUrl(cidV1, fileName) {
47
- return `https://${cidV1}.ipfs.${avatarSubdomainHost()}/${fileName}`;
48
- }
30
+ // avatarSubdomainHost/buildAvatarUrl live in ../lib/avatarUpload.ts (shared
31
+ // with the proposal_create and dao_create composites).
49
32
  /**
50
33
  * Best-effort POST to the DeXe IPFS cache service so the next reader hit on
51
34
  * `https://ipfs-cache.dexe.io/<cid>.json|.jpeg` serves cached bytes instead
@@ -329,14 +312,16 @@ function registerUploadDaoMetadata(server, ctx) {
329
312
  function registerUploadFile(server, ctx) {
330
313
  server.registerTool("dexe_ipfs_upload_file", {
331
314
  title: "Upload raw bytes (avatar, attachment, etc.) to IPFS (Pinata)",
332
- description: "Pins a file to IPFS. Accepts base64-encoded bytes; returns the CID v1 (base32) and the (possibly normalized) filename. " +
315
+ description: "Pins a file to IPFS. PREFER `filePath` for local files — the server reads it itself; base64 only for non-file content. " +
316
+ "Returns the CID v1 (base32) and the (possibly normalized) filename. " +
333
317
  "For images (contentType: image/*) the filename extension is normalized to `.jpeg` to match what the DeXe frontend stores — " +
334
318
  "this is what `dexe_ipfs_upload_dao_metadata` and the DAO profile reader expect. Set `normalizeImageExt: false` to opt out. " +
335
319
  "On the normalized (avatar-contract) path the bytes are also magic-byte-checked: only real rasters (JPEG/PNG/WebP/GIF) pass — " +
336
320
  "SVG/HTML bytes are rejected because the DeXe avatar pipeline serves them as broken images. " +
337
321
  "`normalizeImageExt: false` skips both the rename and the raster gate (for generic image attachments like SVG logos).",
338
322
  inputSchema: {
339
- base64: z.string().min(1).describe("Base64-encoded file bytes"),
323
+ filePath: z.string().optional().describe("Absolute path to a local file — the server reads it itself (max 25 MB). Preferred over base64."),
324
+ base64: z.string().optional().describe("Base64-encoded file bytes — only when the content isn't a local file."),
340
325
  fileName: z.string().default("file"),
341
326
  contentType: z.string().default("application/octet-stream"),
342
327
  normalizeImageExt: z
@@ -351,16 +336,37 @@ function registerUploadFile(server, ctx) {
351
336
  size: z.number(),
352
337
  pinnedAt: z.string(),
353
338
  },
354
- }, async ({ base64, fileName = "file", contentType = "application/octet-stream", normalizeImageExt = true, }) => {
339
+ }, async ({ filePath, base64, fileName = "file", contentType = "application/octet-stream", normalizeImageExt = true, }) => {
355
340
  const client = requirePinata(ctx);
356
341
  if ("error" in client)
357
342
  return errorResult(client.error);
358
343
  try {
344
+ if (filePath && base64)
345
+ return errorResult("Pass either `filePath` or `base64`, not both.");
346
+ if (!filePath && !base64)
347
+ return errorResult("Provide the file as `filePath` (preferred for local files) or `base64`.");
348
+ let bytes;
349
+ if (filePath) {
350
+ let buf;
351
+ try {
352
+ buf = await readFile(filePath);
353
+ }
354
+ catch (e) {
355
+ return errorResult(`Cannot read file at "${filePath}": ${e instanceof Error ? e.message : String(e)}. Pass an absolute path to an existing file.`);
356
+ }
357
+ const MAX_FILE_BYTES = 25 * 1024 * 1024;
358
+ if (buf.length > MAX_FILE_BYTES) {
359
+ return errorResult(`File is ${(buf.length / 1024 / 1024).toFixed(1)} MB — max 25 MB for this tool.`);
360
+ }
361
+ bytes = Uint8Array.from(buf);
362
+ }
363
+ else {
364
+ bytes = Uint8Array.from(Buffer.from(base64, "base64"));
365
+ }
359
366
  const isImage = contentType.toLowerCase().startsWith("image/");
360
367
  const effectiveFileName = normalizeImageExt && isImage
361
368
  ? `${fileName.includes(".") ? fileName.substring(0, fileName.lastIndexOf(".")) : fileName}.jpeg`
362
369
  : fileName;
363
- const bytes = Uint8Array.from(Buffer.from(base64, "base64"));
364
370
  // On the .jpeg-normalized path the file is destined for the DeXe
365
371
  // avatar pipeline, so hold the caller to real raster bytes and pin
366
372
  // with the sniffed MIME (SVG named .jpeg renders as a permanently
@@ -531,11 +537,13 @@ function registerUploadAvatar(server, ctx) {
531
537
  title: "Upload a DAO avatar (one-shot: pins + returns avatarCID/avatarFileName/avatarUrl)",
532
538
  description: "Uploads an image and returns the {avatarCID, avatarFileName, avatarUrl} triple ready to feed into `dexe_ipfs_upload_dao_metadata` " +
533
539
  "(for DAO creation) or `dexe_proposal_build_modify_dao_profile` (for profile updates). " +
540
+ "PREFER `filePath` for local images — the server reads the file itself; never read the image and pass base64 through the conversation. " +
534
541
  "Validates the actual bytes by magic number — only real rasters (JPEG/PNG/WebP/GIF) are accepted; SVG/HTML/garbage is rejected " +
535
542
  "because the app.dexe.io serving chain renders it as a permanently broken image. " +
536
543
  "Normalizes the filename to `.jpeg` (matching the frontend) and returns a CID v1 base32 string that resolves on the subdomain gateway.",
537
544
  inputSchema: {
538
- base64: z.string().min(1).describe("Base64-encoded image bytes (raster: JPEG/PNG/WebP/GIF validated by magic bytes)"),
545
+ filePath: z.string().optional().describe("Absolute path to a local image file (JPEG/PNG/WebP/GIF, max 10 MB). Preferred over base64."),
546
+ base64: z.string().optional().describe("Base64-encoded image bytes — only when the image isn't a local file."),
539
547
  fileName: z.string().default("avatar").describe("Base filename; extension will be normalized to .jpeg"),
540
548
  contentType: z
541
549
  .string()
@@ -550,37 +558,25 @@ function registerUploadAvatar(server, ctx) {
550
558
  size: z.number(),
551
559
  pinnedAt: z.string(),
552
560
  },
553
- }, async ({ base64, fileName = "avatar" }) => {
561
+ }, async ({ filePath, base64, fileName = "avatar" }) => {
554
562
  const client = requirePinata(ctx);
555
563
  if ("error" in client)
556
564
  return errorResult(client.error);
557
565
  try {
558
- const base = fileName.includes(".") ? fileName.substring(0, fileName.lastIndexOf(".")) : fileName;
559
- const normalized = `${base || "avatar"}.jpeg`;
560
- const bytes = Uint8Array.from(Buffer.from(base64, "base64"));
561
- // Trust the bytes, not the caller's contentType — SVG named .jpeg is
562
- // exactly how the Generative Collective avatar broke (bug #34).
563
- const sniffed = assertRasterAvatar(bytes);
564
- const res = await client.pinFile(bytes, {
565
- fileName: normalized,
566
- contentType: sniffed.mime,
567
- name: normalized,
568
- });
569
- const avatarCID = toCidV1(res.cid);
570
- const avatarUrl = buildAvatarUrl(avatarCID, normalized);
566
+ const pinned = await pinAvatarFromInput({ filePath, base64, fileName, pinata: client });
571
567
  const structured = {
572
- avatarCID,
573
- avatarFileName: normalized,
574
- avatarUrl,
575
- detectedFormat: sniffed.format,
576
- size: res.size,
577
- pinnedAt: res.pinnedAt,
568
+ avatarCID: pinned.avatarCID,
569
+ avatarFileName: pinned.avatarFileName,
570
+ avatarUrl: pinned.avatarUrl,
571
+ detectedFormat: pinned.detectedFormat,
572
+ size: pinned.size,
573
+ pinnedAt: pinned.pinnedAt,
578
574
  };
579
575
  return {
580
576
  content: [
581
577
  {
582
578
  type: "text",
583
- text: `Avatar pinned: ${avatarUrl} (cidV1=${avatarCID}, ${bytes.length} bytes, detected ${sniffed.format})`,
579
+ text: `Avatar pinned: ${pinned.avatarUrl} (cidV1=${pinned.avatarCID}, ${pinned.byteLength} bytes, detected ${pinned.detectedFormat})`,
584
580
  },
585
581
  ],
586
582
  structuredContent: structured,