@sherwoodagent/cli 0.14.2 → 0.14.4
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/{chat-X3IKMSNS.js → chat-W3I4A75T.js} +8 -11
- package/dist/{chat-X3IKMSNS.js.map → chat-W3I4A75T.js.map} +1 -1
- package/dist/{chunk-2RYZU7EP.js → chunk-2OQ24UES.js} +5 -5
- package/dist/{chunk-2RYZU7EP.js.map → chunk-2OQ24UES.js.map} +1 -1
- package/dist/chunk-CCOGGRA5.js +54 -0
- package/dist/chunk-CCOGGRA5.js.map +1 -0
- package/dist/{chunk-QIOS7I7I.js → chunk-F275BM3F.js} +2 -2
- package/dist/{chunk-CGSXIYYZ.js → chunk-GH3F42AO.js} +3 -5
- package/dist/{chunk-CGSXIYYZ.js.map → chunk-GH3F42AO.js.map} +1 -1
- package/dist/{chunk-UBBR7QVJ.js → chunk-GXVJJ75S.js} +8 -8
- package/dist/{chunk-UBBR7QVJ.js.map → chunk-GXVJJ75S.js.map} +1 -1
- package/dist/{chunk-BGEVQQES.js → chunk-MJMWA4LY.js} +3 -5
- package/dist/{chunk-BGEVQQES.js.map → chunk-MJMWA4LY.js.map} +1 -1
- package/dist/{chunk-BCOTZTTH.js → chunk-TWX6FSCM.js} +4 -35
- package/dist/{chunk-BCOTZTTH.js.map → chunk-TWX6FSCM.js.map} +1 -1
- package/dist/{chunk-5NA345RJ.js → chunk-YFLAXPNC.js} +6 -8
- package/dist/{chunk-5NA345RJ.js.map → chunk-YFLAXPNC.js.map} +1 -1
- package/dist/{config-5C7QJMPR.js → config-LW4Q6NK5.js} +2 -5
- package/dist/{cron-IKBNUL3Q.js → cron-RG46PYWA.js} +1 -3
- package/dist/{cron-IKBNUL3Q.js.map → cron-RG46PYWA.js.map} +1 -1
- package/dist/{eas-7U7MX24T.js → eas-BBXUZYZE.js} +6 -7
- package/dist/index.js +13 -19
- package/dist/index.js.map +1 -1
- package/dist/ipfs-6XVOOHSR.js +11 -0
- package/dist/{network-QU2D677V.js → network-C32G5D3J.js} +3 -4
- package/dist/research-DNR46NSK.js +14 -0
- package/dist/{research-ZDTM73C7.js → research-QRT2W74G.js} +8 -9
- package/dist/{research-ZDTM73C7.js.map → research-QRT2W74G.js.map} +1 -1
- package/dist/{session-2VK25CSW.js → session-TDC7SXLU.js} +10 -11
- package/dist/{session-2VK25CSW.js.map → session-TDC7SXLU.js.map} +1 -1
- package/dist/{xmtp-Y3LAZKOC.js → xmtp-ASQN32VS.js} +6 -9
- package/dist/{xmtp-Y3LAZKOC.js.map → xmtp-ASQN32VS.js.map} +1 -1
- package/package.json +1 -1
- package/dist/chunk-4CV4JOE5.js +0 -27
- package/dist/chunk-YSYX555I.js +0 -92
- package/dist/chunk-YSYX555I.js.map +0 -1
- package/dist/ipfs-AYE4J4OX.js +0 -13
- package/dist/research-7RI7VFPK.js +0 -15
- package/dist/research-7RI7VFPK.js.map +0 -1
- /package/dist/{chunk-QIOS7I7I.js.map → chunk-F275BM3F.js.map} +0 -0
- /package/dist/{chunk-4CV4JOE5.js.map → config-LW4Q6NK5.js.map} +0 -0
- /package/dist/{config-5C7QJMPR.js.map → eas-BBXUZYZE.js.map} +0 -0
- /package/dist/{eas-7U7MX24T.js.map → ipfs-6XVOOHSR.js.map} +0 -0
- /package/dist/{ipfs-AYE4J4OX.js.map → network-C32G5D3J.js.map} +0 -0
- /package/dist/{network-QU2D677V.js.map → research-DNR46NSK.js.map} +0 -0
package/dist/chunk-YSYX555I.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
config_exports,
|
|
3
|
-
init_config
|
|
4
|
-
} from "./chunk-BCOTZTTH.js";
|
|
5
|
-
import {
|
|
6
|
-
__toCommonJS
|
|
7
|
-
} from "./chunk-4CV4JOE5.js";
|
|
8
|
-
|
|
9
|
-
// src/lib/ipfs.ts
|
|
10
|
-
var DEFAULT_PINATA_GATEWAY = "https://sherwood.mypinata.cloud";
|
|
11
|
-
function getPinataJwt() {
|
|
12
|
-
const envJwt = process.env.PINATA_JWT ?? process.env.PINATA_API_KEY;
|
|
13
|
-
if (envJwt) return envJwt;
|
|
14
|
-
try {
|
|
15
|
-
const { loadConfig } = (init_config(), __toCommonJS(config_exports));
|
|
16
|
-
const config = loadConfig();
|
|
17
|
-
if (config.pinataJwt) return config.pinataJwt;
|
|
18
|
-
} catch {
|
|
19
|
-
}
|
|
20
|
-
throw new Error(
|
|
21
|
-
"PINATA_JWT environment variable is required for IPFS uploads. Get a free API key at https://app.pinata.cloud/developers/api-keys"
|
|
22
|
-
);
|
|
23
|
-
}
|
|
24
|
-
function getPinataGateway() {
|
|
25
|
-
return process.env.PINATA_GATEWAY || DEFAULT_PINATA_GATEWAY;
|
|
26
|
-
}
|
|
27
|
-
async function pinJSON(content, name) {
|
|
28
|
-
const jwt = getPinataJwt();
|
|
29
|
-
const response = await fetch("https://api.pinata.cloud/pinning/pinJSONToIPFS", {
|
|
30
|
-
method: "POST",
|
|
31
|
-
headers: {
|
|
32
|
-
"Content-Type": "application/json",
|
|
33
|
-
Authorization: `Bearer ${jwt}`
|
|
34
|
-
},
|
|
35
|
-
body: JSON.stringify({
|
|
36
|
-
pinataContent: content,
|
|
37
|
-
pinataMetadata: { name }
|
|
38
|
-
})
|
|
39
|
-
});
|
|
40
|
-
if (!response.ok) {
|
|
41
|
-
const text = await response.text();
|
|
42
|
-
throw new Error(`Pinata upload failed (${response.status}): ${text}`);
|
|
43
|
-
}
|
|
44
|
-
const result = await response.json();
|
|
45
|
-
return `ipfs://${result.IpfsHash}`;
|
|
46
|
-
}
|
|
47
|
-
async function uploadMetadata(metadata) {
|
|
48
|
-
const jwt = getPinataJwt();
|
|
49
|
-
const response = await fetch("https://api.pinata.cloud/pinning/pinJSONToIPFS", {
|
|
50
|
-
method: "POST",
|
|
51
|
-
headers: {
|
|
52
|
-
"Content-Type": "application/json",
|
|
53
|
-
Authorization: `Bearer ${jwt}`
|
|
54
|
-
},
|
|
55
|
-
body: JSON.stringify({
|
|
56
|
-
pinataContent: metadata,
|
|
57
|
-
pinataMetadata: {
|
|
58
|
-
name: `sherwood-syndicate-${metadata.name.toLowerCase().replace(/\s+/g, "-")}`
|
|
59
|
-
}
|
|
60
|
-
})
|
|
61
|
-
});
|
|
62
|
-
if (!response.ok) {
|
|
63
|
-
const text = await response.text();
|
|
64
|
-
throw new Error(`Pinata upload failed (${response.status}): ${text}`);
|
|
65
|
-
}
|
|
66
|
-
const result = await response.json();
|
|
67
|
-
return `ipfs://${result.IpfsHash}`;
|
|
68
|
-
}
|
|
69
|
-
async function fetchMetadata(ipfsURI) {
|
|
70
|
-
const gateway = getPinataGateway();
|
|
71
|
-
let cid;
|
|
72
|
-
if (ipfsURI.startsWith("ipfs://")) {
|
|
73
|
-
cid = ipfsURI.slice(7);
|
|
74
|
-
} else if (ipfsURI.startsWith("Qm") || ipfsURI.startsWith("bafy")) {
|
|
75
|
-
cid = ipfsURI;
|
|
76
|
-
} else {
|
|
77
|
-
throw new Error(`Invalid IPFS URI: ${ipfsURI}`);
|
|
78
|
-
}
|
|
79
|
-
const url = `${gateway}/ipfs/${cid}`;
|
|
80
|
-
const response = await fetch(url);
|
|
81
|
-
if (!response.ok) {
|
|
82
|
-
throw new Error(`Failed to fetch metadata from ${url} (${response.status})`);
|
|
83
|
-
}
|
|
84
|
-
return await response.json();
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export {
|
|
88
|
-
pinJSON,
|
|
89
|
-
uploadMetadata,
|
|
90
|
-
fetchMetadata
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=chunk-YSYX555I.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/ipfs.ts"],"sourcesContent":["/**\n * IPFS metadata upload/fetch via Pinata.\n *\n * Used for syndicate metadata (name, description, strategies, terms).\n * Requires PINATA_API_KEY and PINATA_GATEWAY env vars.\n */\n\nexport interface SyndicateMetadata {\n schema: string;\n name: string;\n description: string;\n logo?: string;\n chain: string;\n strategies: {\n id: string;\n name: string;\n description: string;\n protocols: string[];\n riskLevel: string;\n }[];\n terms: {\n minDeposit?: string;\n minDepositFormatted?: string;\n feeModel?: string;\n lockPeriod?: number;\n };\n links: {\n moltbook?: string;\n dashboard?: string;\n github?: string;\n };\n}\n\nconst DEFAULT_PINATA_GATEWAY = \"https://sherwood.mypinata.cloud\";\n\nfunction getPinataJwt(): string {\n const envJwt = process.env.PINATA_JWT ?? process.env.PINATA_API_KEY;\n if (envJwt) return envJwt;\n\n // Check config file\n try {\n const { loadConfig } = require(\"./config\");\n const config = loadConfig();\n if (config.pinataJwt) return config.pinataJwt;\n } catch {}\n\n throw new Error(\n \"PINATA_JWT environment variable is required for IPFS uploads. \" +\n \"Get a free API key at https://app.pinata.cloud/developers/api-keys\",\n );\n}\n\nfunction getPinataGateway(): string {\n return process.env.PINATA_GATEWAY || DEFAULT_PINATA_GATEWAY;\n}\n\n/**\n * Pin arbitrary JSON to IPFS via Pinata.\n * Used for research results and other generic JSON payloads.\n * Returns the IPFS URI (ipfs://Qm...).\n */\nexport async function pinJSON(content: Record<string, unknown>, name: string): Promise<string> {\n const jwt = getPinataJwt();\n\n const response = await fetch(\"https://api.pinata.cloud/pinning/pinJSONToIPFS\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${jwt}`,\n },\n body: JSON.stringify({\n pinataContent: content,\n pinataMetadata: { name },\n }),\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Pinata upload failed (${response.status}): ${text}`);\n }\n\n const result = (await response.json()) as { IpfsHash: string };\n return `ipfs://${result.IpfsHash}`;\n}\n\n/**\n * Upload syndicate metadata to IPFS via Pinata.\n * Returns the IPFS URI (ipfs://Qm...).\n */\nexport async function uploadMetadata(metadata: SyndicateMetadata): Promise<string> {\n const jwt = getPinataJwt();\n\n const response = await fetch(\"https://api.pinata.cloud/pinning/pinJSONToIPFS\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${jwt}`,\n },\n body: JSON.stringify({\n pinataContent: metadata,\n pinataMetadata: {\n name: `sherwood-syndicate-${metadata.name.toLowerCase().replace(/\\s+/g, \"-\")}`,\n },\n }),\n });\n\n if (!response.ok) {\n const text = await response.text();\n throw new Error(`Pinata upload failed (${response.status}): ${text}`);\n }\n\n const result = (await response.json()) as { IpfsHash: string };\n return `ipfs://${result.IpfsHash}`;\n}\n\n/**\n * Fetch and parse metadata from an IPFS URI.\n * Supports ipfs:// protocol URIs and raw CIDs.\n */\nexport async function fetchMetadata(ipfsURI: string): Promise<SyndicateMetadata> {\n const gateway = getPinataGateway();\n let cid: string;\n\n if (ipfsURI.startsWith(\"ipfs://\")) {\n cid = ipfsURI.slice(7);\n } else if (ipfsURI.startsWith(\"Qm\") || ipfsURI.startsWith(\"bafy\")) {\n cid = ipfsURI;\n } else {\n throw new Error(`Invalid IPFS URI: ${ipfsURI}`);\n }\n\n const url = `${gateway}/ipfs/${cid}`;\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(`Failed to fetch metadata from ${url} (${response.status})`);\n }\n\n return (await response.json()) as SyndicateMetadata;\n}\n"],"mappings":";;;;;;;;;AAiCA,IAAM,yBAAyB;AAE/B,SAAS,eAAuB;AAC9B,QAAM,SAAS,QAAQ,IAAI,cAAc,QAAQ,IAAI;AACrD,MAAI,OAAQ,QAAO;AAGnB,MAAI;AACF,UAAM,EAAE,WAAW,IAAI;AACvB,UAAM,SAAS,WAAW;AAC1B,QAAI,OAAO,UAAW,QAAO,OAAO;AAAA,EACtC,QAAQ;AAAA,EAAC;AAET,QAAM,IAAI;AAAA,IACR;AAAA,EAEF;AACF;AAEA,SAAS,mBAA2B;AAClC,SAAO,QAAQ,IAAI,kBAAkB;AACvC;AAOA,eAAsB,QAAQ,SAAkC,MAA+B;AAC7F,QAAM,MAAM,aAAa;AAEzB,QAAM,WAAW,MAAM,MAAM,kDAAkD;AAAA,IAC7E,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAU,GAAG;AAAA,IAC9B;AAAA,IACA,MAAM,KAAK,UAAU;AAAA,MACnB,eAAe;AAAA,MACf,gBAAgB,EAAE,KAAK;AAAA,IACzB,CAAC;AAAA,EACH,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,UAAM,IAAI,MAAM,yBAAyB,SAAS,MAAM,MAAM,IAAI,EAAE;AAAA,EACtE;AAEA,QAAM,SAAU,MAAM,SAAS,KAAK;AACpC,SAAO,UAAU,OAAO,QAAQ;AAClC;AAMA,eAAsB,eAAe,UAA8C;AACjF,QAAM,MAAM,aAAa;AAEzB,QAAM,WAAW,MAAM,MAAM,kDAAkD;AAAA,IAC7E,QAAQ;AAAA,IACR,SAAS;AAAA,MACP,gBAAgB;AAAA,MAChB,eAAe,UAAU,GAAG;AAAA,IAC9B;AAAA,IACA,MAAM,KAAK,UAAU;AAAA,MACnB,eAAe;AAAA,MACf,gBAAgB;AAAA,QACd,MAAM,sBAAsB,SAAS,KAAK,YAAY,EAAE,QAAQ,QAAQ,GAAG,CAAC;AAAA,MAC9E;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,UAAM,IAAI,MAAM,yBAAyB,SAAS,MAAM,MAAM,IAAI,EAAE;AAAA,EACtE;AAEA,QAAM,SAAU,MAAM,SAAS,KAAK;AACpC,SAAO,UAAU,OAAO,QAAQ;AAClC;AAMA,eAAsB,cAAc,SAA6C;AAC/E,QAAM,UAAU,iBAAiB;AACjC,MAAI;AAEJ,MAAI,QAAQ,WAAW,SAAS,GAAG;AACjC,UAAM,QAAQ,MAAM,CAAC;AAAA,EACvB,WAAW,QAAQ,WAAW,IAAI,KAAK,QAAQ,WAAW,MAAM,GAAG;AACjE,UAAM;AAAA,EACR,OAAO;AACL,UAAM,IAAI,MAAM,qBAAqB,OAAO,EAAE;AAAA,EAChD;AAEA,QAAM,MAAM,GAAG,OAAO,SAAS,GAAG;AAClC,QAAM,WAAW,MAAM,MAAM,GAAG;AAEhC,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,iCAAiC,GAAG,KAAK,SAAS,MAAM,GAAG;AAAA,EAC7E;AAEA,SAAQ,MAAM,SAAS,KAAK;AAC9B;","names":[]}
|
package/dist/ipfs-AYE4J4OX.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
fetchMetadata,
|
|
3
|
-
pinJSON,
|
|
4
|
-
uploadMetadata
|
|
5
|
-
} from "./chunk-YSYX555I.js";
|
|
6
|
-
import "./chunk-BCOTZTTH.js";
|
|
7
|
-
import "./chunk-4CV4JOE5.js";
|
|
8
|
-
export {
|
|
9
|
-
fetchMetadata,
|
|
10
|
-
pinJSON,
|
|
11
|
-
uploadMetadata
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=ipfs-AYE4J4OX.js.map
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MessariProvider,
|
|
3
|
-
NansenProvider,
|
|
4
|
-
getResearchProvider
|
|
5
|
-
} from "./chunk-QIOS7I7I.js";
|
|
6
|
-
import "./chunk-CGSXIYYZ.js";
|
|
7
|
-
import "./chunk-BGEVQQES.js";
|
|
8
|
-
import "./chunk-BCOTZTTH.js";
|
|
9
|
-
import "./chunk-4CV4JOE5.js";
|
|
10
|
-
export {
|
|
11
|
-
MessariProvider,
|
|
12
|
-
NansenProvider,
|
|
13
|
-
getResearchProvider
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=research-7RI7VFPK.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|