@claude-flow/cli 3.0.0-alpha.55 → 3.0.0-alpha.57
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/.claude/settings.json +2 -2
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +45 -5
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +80 -9
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +221 -2
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/plugins.d.ts +1 -0
- package/dist/src/commands/plugins.d.ts.map +1 -1
- package/dist/src/commands/plugins.js +439 -89
- package/dist/src/commands/plugins.js.map +1 -1
- package/dist/src/commands/transfer-store.d.ts +13 -0
- package/dist/src/commands/transfer-store.d.ts.map +1 -0
- package/dist/src/commands/transfer-store.js +428 -0
- package/dist/src/commands/transfer-store.js.map +1 -0
- package/dist/src/init/mcp-generator.d.ts +9 -0
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +57 -28
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +4 -2
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +1 -0
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +1 -0
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.d.ts +14 -0
- package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/transfer-tools.js +396 -0
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -0
- package/dist/src/plugins/store/discovery.d.ts +73 -0
- package/dist/src/plugins/store/discovery.d.ts.map +1 -0
- package/dist/src/plugins/store/discovery.js +568 -0
- package/dist/src/plugins/store/discovery.js.map +1 -0
- package/dist/src/plugins/store/index.d.ts +76 -0
- package/dist/src/plugins/store/index.d.ts.map +1 -0
- package/dist/src/plugins/store/index.js +141 -0
- package/dist/src/plugins/store/index.js.map +1 -0
- package/dist/src/plugins/store/search.d.ts +46 -0
- package/dist/src/plugins/store/search.d.ts.map +1 -0
- package/dist/src/plugins/store/search.js +230 -0
- package/dist/src/plugins/store/search.js.map +1 -0
- package/dist/src/plugins/store/types.d.ts +274 -0
- package/dist/src/plugins/store/types.d.ts.map +1 -0
- package/dist/src/plugins/store/types.js +7 -0
- package/dist/src/plugins/store/types.js.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
- package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -0
- package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
- package/dist/src/plugins/tests/standalone-test.d.ts.map +1 -0
- package/dist/src/plugins/tests/standalone-test.js +188 -0
- package/dist/src/plugins/tests/standalone-test.js.map +1 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts.map +1 -0
- package/dist/src/plugins/tests/test-plugin-store.js +206 -0
- package/dist/src/plugins/tests/test-plugin-store.js.map +1 -0
- package/dist/src/transfer/anonymization/index.d.ts +25 -0
- package/dist/src/transfer/anonymization/index.d.ts.map +1 -0
- package/dist/src/transfer/anonymization/index.js +175 -0
- package/dist/src/transfer/anonymization/index.js.map +1 -0
- package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
- package/dist/src/transfer/deploy-seraphine.d.ts.map +1 -0
- package/dist/src/transfer/deploy-seraphine.js +205 -0
- package/dist/src/transfer/deploy-seraphine.js.map +1 -0
- package/dist/src/transfer/export.d.ts +25 -0
- package/dist/src/transfer/export.d.ts.map +1 -0
- package/dist/src/transfer/export.js +113 -0
- package/dist/src/transfer/export.js.map +1 -0
- package/dist/src/transfer/index.d.ts +12 -0
- package/dist/src/transfer/index.d.ts.map +1 -0
- package/dist/src/transfer/index.js +31 -0
- package/dist/src/transfer/index.js.map +1 -0
- package/dist/src/transfer/ipfs/client.d.ts +31 -0
- package/dist/src/transfer/ipfs/client.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/client.js +74 -0
- package/dist/src/transfer/ipfs/client.js.map +1 -0
- package/dist/src/transfer/ipfs/upload.d.ts +85 -0
- package/dist/src/transfer/ipfs/upload.d.ts.map +1 -0
- package/dist/src/transfer/ipfs/upload.js +319 -0
- package/dist/src/transfer/ipfs/upload.js.map +1 -0
- package/dist/src/transfer/models/seraphine.d.ts +72 -0
- package/dist/src/transfer/models/seraphine.d.ts.map +1 -0
- package/dist/src/transfer/models/seraphine.js +373 -0
- package/dist/src/transfer/models/seraphine.js.map +1 -0
- package/dist/src/transfer/serialization/cfp.d.ts +49 -0
- package/dist/src/transfer/serialization/cfp.d.ts.map +1 -0
- package/dist/src/transfer/serialization/cfp.js +180 -0
- package/dist/src/transfer/serialization/cfp.js.map +1 -0
- package/dist/src/transfer/store/discovery.d.ts +84 -0
- package/dist/src/transfer/store/discovery.d.ts.map +1 -0
- package/dist/src/transfer/store/discovery.js +275 -0
- package/dist/src/transfer/store/discovery.js.map +1 -0
- package/dist/src/transfer/store/download.d.ts +70 -0
- package/dist/src/transfer/store/download.d.ts.map +1 -0
- package/dist/src/transfer/store/download.js +295 -0
- package/dist/src/transfer/store/download.js.map +1 -0
- package/dist/src/transfer/store/index.d.ts +84 -0
- package/dist/src/transfer/store/index.d.ts.map +1 -0
- package/dist/src/transfer/store/index.js +153 -0
- package/dist/src/transfer/store/index.js.map +1 -0
- package/dist/src/transfer/store/publish.d.ts +76 -0
- package/dist/src/transfer/store/publish.d.ts.map +1 -0
- package/dist/src/transfer/store/publish.js +262 -0
- package/dist/src/transfer/store/publish.js.map +1 -0
- package/dist/src/transfer/store/registry.d.ts +58 -0
- package/dist/src/transfer/store/registry.d.ts.map +1 -0
- package/dist/src/transfer/store/registry.js +285 -0
- package/dist/src/transfer/store/registry.js.map +1 -0
- package/dist/src/transfer/store/search.d.ts +54 -0
- package/dist/src/transfer/store/search.d.ts.map +1 -0
- package/dist/src/transfer/store/search.js +232 -0
- package/dist/src/transfer/store/search.js.map +1 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts.map +1 -0
- package/dist/src/transfer/store/tests/standalone-test.js +190 -0
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -0
- package/dist/src/transfer/store/types.d.ts +193 -0
- package/dist/src/transfer/store/types.d.ts.map +1 -0
- package/dist/src/transfer/store/types.js +6 -0
- package/dist/src/transfer/store/types.js.map +1 -0
- package/dist/src/transfer/test-seraphine.d.ts +6 -0
- package/dist/src/transfer/test-seraphine.d.ts.map +1 -0
- package/dist/src/transfer/test-seraphine.js +105 -0
- package/dist/src/transfer/test-seraphine.js.map +1 -0
- package/dist/src/transfer/tests/test-store.d.ts +7 -0
- package/dist/src/transfer/tests/test-store.d.ts.map +1 -0
- package/dist/src/transfer/tests/test-store.js +214 -0
- package/dist/src/transfer/tests/test-store.js.map +1 -0
- package/dist/src/transfer/types.d.ts +245 -0
- package/dist/src/transfer/types.d.ts.map +1 -0
- package/dist/src/transfer/types.js +6 -0
- package/dist/src/transfer/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPFS Upload Module
|
|
3
|
+
* Real upload support via web3.storage, Pinata, or local IPFS
|
|
4
|
+
*
|
|
5
|
+
* @module @claude-flow/cli/transfer/ipfs/upload
|
|
6
|
+
* @version 3.0.0
|
|
7
|
+
*/
|
|
8
|
+
import * as crypto from 'crypto';
|
|
9
|
+
/**
|
|
10
|
+
* Get web3.storage token from environment or config
|
|
11
|
+
*/
|
|
12
|
+
function getWeb3StorageToken() {
|
|
13
|
+
return process.env.WEB3_STORAGE_TOKEN ||
|
|
14
|
+
process.env.W3_TOKEN ||
|
|
15
|
+
process.env.IPFS_TOKEN;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generate a CID from content (for demo mode when no token available)
|
|
19
|
+
* Uses CIDv1 with dag-pb codec and sha2-256 multihash
|
|
20
|
+
*/
|
|
21
|
+
function generateDemoCID(content) {
|
|
22
|
+
const hash = crypto.createHash('sha256').update(content).digest();
|
|
23
|
+
// CIDv1 with dag-pb codec and sha2-256 multihash
|
|
24
|
+
const prefix = Buffer.from([0x01, 0x70, 0x12, 0x20]);
|
|
25
|
+
const cidBytes = Buffer.concat([prefix, hash]);
|
|
26
|
+
// Base32 encode
|
|
27
|
+
const base32Chars = 'abcdefghijklmnopqrstuvwxyz234567';
|
|
28
|
+
let result = 'bafybei';
|
|
29
|
+
for (let i = 0; i < 44; i++) {
|
|
30
|
+
const byte = cidBytes[i % cidBytes.length] || 0;
|
|
31
|
+
result += base32Chars[byte % 32];
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Upload to web3.storage (real IPFS)
|
|
37
|
+
*/
|
|
38
|
+
async function uploadToWeb3Storage(content, options) {
|
|
39
|
+
const token = options.apiKey || getWeb3StorageToken();
|
|
40
|
+
if (!token) {
|
|
41
|
+
throw new Error('Web3.storage token not found. Set WEB3_STORAGE_TOKEN environment variable.\n' +
|
|
42
|
+
'Get a free token at: https://web3.storage');
|
|
43
|
+
}
|
|
44
|
+
const endpoint = options.endpoint || 'https://api.web3.storage';
|
|
45
|
+
const name = options.name || 'pattern.cfp.json';
|
|
46
|
+
console.log(`[IPFS] Uploading ${content.length} bytes to web3.storage...`);
|
|
47
|
+
// Create FormData-like body for upload
|
|
48
|
+
const boundary = '----WebKitFormBoundary' + crypto.randomBytes(16).toString('hex');
|
|
49
|
+
const body = Buffer.concat([
|
|
50
|
+
Buffer.from(`--${boundary}\r\n`),
|
|
51
|
+
Buffer.from(`Content-Disposition: form-data; name="file"; filename="${name}"\r\n`),
|
|
52
|
+
Buffer.from(`Content-Type: application/json\r\n\r\n`),
|
|
53
|
+
content,
|
|
54
|
+
Buffer.from(`\r\n--${boundary}--\r\n`),
|
|
55
|
+
]);
|
|
56
|
+
const response = await fetch(`${endpoint}/upload`, {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
headers: {
|
|
59
|
+
'Authorization': `Bearer ${token}`,
|
|
60
|
+
'Content-Type': `multipart/form-data; boundary=${boundary}`,
|
|
61
|
+
},
|
|
62
|
+
body,
|
|
63
|
+
});
|
|
64
|
+
if (!response.ok) {
|
|
65
|
+
const error = await response.text();
|
|
66
|
+
throw new Error(`Web3.storage upload failed: ${response.status} ${error}`);
|
|
67
|
+
}
|
|
68
|
+
const result = await response.json();
|
|
69
|
+
const cid = result.cid;
|
|
70
|
+
const gateway = options.gateway || 'https://w3s.link';
|
|
71
|
+
console.log(`[IPFS] Upload complete!`);
|
|
72
|
+
console.log(`[IPFS] CID: ${cid}`);
|
|
73
|
+
return {
|
|
74
|
+
cid,
|
|
75
|
+
size: content.length,
|
|
76
|
+
gateway,
|
|
77
|
+
pinnedAt: new Date().toISOString(),
|
|
78
|
+
url: `${gateway}/ipfs/${cid}`,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Upload to Pinata
|
|
83
|
+
*/
|
|
84
|
+
async function uploadToPinata(content, options) {
|
|
85
|
+
const apiKey = options.apiKey || process.env.PINATA_API_KEY;
|
|
86
|
+
const apiSecret = options.apiSecret || process.env.PINATA_API_SECRET;
|
|
87
|
+
if (!apiKey || !apiSecret) {
|
|
88
|
+
throw new Error('Pinata API credentials not found. Set PINATA_API_KEY and PINATA_API_SECRET.\n' +
|
|
89
|
+
'Get credentials at: https://pinata.cloud');
|
|
90
|
+
}
|
|
91
|
+
const name = options.name || 'pattern.cfp.json';
|
|
92
|
+
console.log(`[IPFS] Uploading ${content.length} bytes to Pinata...`);
|
|
93
|
+
const boundary = '----WebKitFormBoundary' + crypto.randomBytes(16).toString('hex');
|
|
94
|
+
const metadata = JSON.stringify({ name });
|
|
95
|
+
const body = Buffer.concat([
|
|
96
|
+
Buffer.from(`--${boundary}\r\n`),
|
|
97
|
+
Buffer.from(`Content-Disposition: form-data; name="pinataMetadata"\r\n\r\n`),
|
|
98
|
+
Buffer.from(`${metadata}\r\n`),
|
|
99
|
+
Buffer.from(`--${boundary}\r\n`),
|
|
100
|
+
Buffer.from(`Content-Disposition: form-data; name="file"; filename="${name}"\r\n`),
|
|
101
|
+
Buffer.from(`Content-Type: application/json\r\n\r\n`),
|
|
102
|
+
content,
|
|
103
|
+
Buffer.from(`\r\n--${boundary}--\r\n`),
|
|
104
|
+
]);
|
|
105
|
+
const response = await fetch('https://api.pinata.cloud/pinning/pinFileToIPFS', {
|
|
106
|
+
method: 'POST',
|
|
107
|
+
headers: {
|
|
108
|
+
'pinata_api_key': apiKey,
|
|
109
|
+
'pinata_secret_api_key': apiSecret,
|
|
110
|
+
'Content-Type': `multipart/form-data; boundary=${boundary}`,
|
|
111
|
+
},
|
|
112
|
+
body,
|
|
113
|
+
});
|
|
114
|
+
if (!response.ok) {
|
|
115
|
+
const error = await response.text();
|
|
116
|
+
throw new Error(`Pinata upload failed: ${response.status} ${error}`);
|
|
117
|
+
}
|
|
118
|
+
const result = await response.json();
|
|
119
|
+
const cid = result.IpfsHash;
|
|
120
|
+
const gateway = options.gateway || 'https://gateway.pinata.cloud';
|
|
121
|
+
console.log(`[IPFS] Upload complete!`);
|
|
122
|
+
console.log(`[IPFS] CID: ${cid}`);
|
|
123
|
+
return {
|
|
124
|
+
cid,
|
|
125
|
+
size: content.length,
|
|
126
|
+
gateway,
|
|
127
|
+
pinnedAt: new Date().toISOString(),
|
|
128
|
+
url: `${gateway}/ipfs/${cid}`,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Upload content to IPFS
|
|
133
|
+
*
|
|
134
|
+
* Supports:
|
|
135
|
+
* - web3.storage (WEB3_STORAGE_TOKEN)
|
|
136
|
+
* - Pinata (PINATA_API_KEY + PINATA_API_SECRET)
|
|
137
|
+
* - Demo mode (generates deterministic CIDs when no credentials)
|
|
138
|
+
*/
|
|
139
|
+
export async function uploadToIPFS(content, options = {}) {
|
|
140
|
+
const { pin = true, pinningService, gateway = 'https://w3s.link', name = 'pattern', } = options;
|
|
141
|
+
// Try real IPFS services first
|
|
142
|
+
const web3Token = getWeb3StorageToken();
|
|
143
|
+
const pinataKey = process.env.PINATA_API_KEY;
|
|
144
|
+
// Determine which service to use
|
|
145
|
+
if (pinningService === 'pinata' || (pinataKey && !web3Token)) {
|
|
146
|
+
try {
|
|
147
|
+
return await uploadToPinata(content, options);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.warn(`[IPFS] Pinata upload failed: ${error}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (web3Token || pinningService === 'web3storage') {
|
|
154
|
+
try {
|
|
155
|
+
return await uploadToWeb3Storage(content, options);
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
console.warn(`[IPFS] Web3.storage upload failed: ${error}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Fall back to demo mode
|
|
162
|
+
console.log(`[IPFS] No IPFS credentials found, using demo mode`);
|
|
163
|
+
console.log(`[IPFS] Set WEB3_STORAGE_TOKEN or PINATA_API_KEY for real uploads`);
|
|
164
|
+
console.log(`[IPFS] Get free token at: https://web3.storage`);
|
|
165
|
+
const cid = generateDemoCID(content);
|
|
166
|
+
const size = content.length;
|
|
167
|
+
console.log(`[IPFS] Demo upload: ${size} bytes`);
|
|
168
|
+
console.log(`[IPFS] Name: ${name}`);
|
|
169
|
+
// Simulate upload delay
|
|
170
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
171
|
+
const result = {
|
|
172
|
+
cid,
|
|
173
|
+
size,
|
|
174
|
+
gateway,
|
|
175
|
+
url: `${gateway}/ipfs/${cid}`,
|
|
176
|
+
};
|
|
177
|
+
if (pin) {
|
|
178
|
+
result.pinnedAt = new Date().toISOString();
|
|
179
|
+
console.log(`[IPFS] Demo pinned at: ${result.pinnedAt}`);
|
|
180
|
+
}
|
|
181
|
+
console.log(`[IPFS] Demo CID: ${cid}`);
|
|
182
|
+
console.log(`[IPFS] Demo URL: ${result.url}`);
|
|
183
|
+
return result;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Pin content by CID
|
|
187
|
+
*/
|
|
188
|
+
export async function pinContent(cid, options = {}) {
|
|
189
|
+
const web3Token = getWeb3StorageToken();
|
|
190
|
+
const pinataKey = process.env.PINATA_API_KEY;
|
|
191
|
+
// Real pinning with Pinata
|
|
192
|
+
if (pinataKey && options.service !== 'web3storage') {
|
|
193
|
+
try {
|
|
194
|
+
const pinataSecret = process.env.PINATA_API_SECRET;
|
|
195
|
+
const response = await fetch('https://api.pinata.cloud/pinning/pinByHash', {
|
|
196
|
+
method: 'POST',
|
|
197
|
+
headers: {
|
|
198
|
+
'Content-Type': 'application/json',
|
|
199
|
+
'pinata_api_key': pinataKey,
|
|
200
|
+
'pinata_secret_api_key': pinataSecret || '',
|
|
201
|
+
},
|
|
202
|
+
body: JSON.stringify({
|
|
203
|
+
hashToPin: cid,
|
|
204
|
+
pinataMetadata: { name: options.name || cid },
|
|
205
|
+
}),
|
|
206
|
+
});
|
|
207
|
+
if (response.ok) {
|
|
208
|
+
const pinnedAt = new Date().toISOString();
|
|
209
|
+
console.log(`[IPFS] Pinned ${cid} via Pinata at ${pinnedAt}`);
|
|
210
|
+
return { success: true, pinnedAt };
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
console.warn(`[IPFS] Pinata pin failed: ${error}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Demo mode
|
|
218
|
+
const pinnedAt = new Date().toISOString();
|
|
219
|
+
console.log(`[IPFS] Demo pinning ${cid}...`);
|
|
220
|
+
await new Promise(resolve => setTimeout(resolve, 300));
|
|
221
|
+
console.log(`[IPFS] Demo pinned at ${pinnedAt}`);
|
|
222
|
+
return { success: true, pinnedAt };
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Unpin content by CID
|
|
226
|
+
*/
|
|
227
|
+
export async function unpinContent(cid, options = {}) {
|
|
228
|
+
const pinataKey = process.env.PINATA_API_KEY;
|
|
229
|
+
// Real unpinning with Pinata
|
|
230
|
+
if (pinataKey) {
|
|
231
|
+
try {
|
|
232
|
+
const pinataSecret = process.env.PINATA_API_SECRET;
|
|
233
|
+
const response = await fetch(`https://api.pinata.cloud/pinning/unpin/${cid}`, {
|
|
234
|
+
method: 'DELETE',
|
|
235
|
+
headers: {
|
|
236
|
+
'pinata_api_key': pinataKey,
|
|
237
|
+
'pinata_secret_api_key': pinataSecret || '',
|
|
238
|
+
},
|
|
239
|
+
});
|
|
240
|
+
if (response.ok) {
|
|
241
|
+
console.log(`[IPFS] Unpinned ${cid} from Pinata`);
|
|
242
|
+
return { success: true };
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
console.warn(`[IPFS] Pinata unpin failed: ${error}`);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
// Demo mode
|
|
250
|
+
console.log(`[IPFS] Demo unpinning ${cid}...`);
|
|
251
|
+
await new Promise(resolve => setTimeout(resolve, 200));
|
|
252
|
+
console.log(`[IPFS] Demo unpinned`);
|
|
253
|
+
return { success: true };
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Check if content exists on IPFS
|
|
257
|
+
*/
|
|
258
|
+
export async function checkContent(cid, gateway = 'https://w3s.link') {
|
|
259
|
+
console.log(`[IPFS] Checking ${cid}...`);
|
|
260
|
+
try {
|
|
261
|
+
const response = await fetch(`${gateway}/ipfs/${cid}`, {
|
|
262
|
+
method: 'HEAD',
|
|
263
|
+
});
|
|
264
|
+
if (response.ok) {
|
|
265
|
+
const size = parseInt(response.headers.get('content-length') || '0', 10);
|
|
266
|
+
console.log(`[IPFS] Content exists, size: ${size}`);
|
|
267
|
+
return { exists: true, size };
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch (error) {
|
|
271
|
+
console.log(`[IPFS] Content check failed: ${error}`);
|
|
272
|
+
}
|
|
273
|
+
return { exists: false };
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Get gateway URL for CID
|
|
277
|
+
*/
|
|
278
|
+
export function getGatewayURL(cid, gateway = 'https://w3s.link') {
|
|
279
|
+
return `${gateway}/ipfs/${cid}`;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get IPNS URL for name
|
|
283
|
+
*/
|
|
284
|
+
export function getIPNSURL(name, gateway = 'https://w3s.link') {
|
|
285
|
+
return `${gateway}/ipns/${name}`;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Check if real IPFS credentials are available
|
|
289
|
+
*/
|
|
290
|
+
export function hasIPFSCredentials() {
|
|
291
|
+
return !!(getWeb3StorageToken() || process.env.PINATA_API_KEY);
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get IPFS service status
|
|
295
|
+
*/
|
|
296
|
+
export function getIPFSServiceStatus() {
|
|
297
|
+
const web3Token = getWeb3StorageToken();
|
|
298
|
+
const pinataKey = process.env.PINATA_API_KEY;
|
|
299
|
+
if (web3Token) {
|
|
300
|
+
return {
|
|
301
|
+
service: 'web3storage',
|
|
302
|
+
configured: true,
|
|
303
|
+
message: 'Web3.storage configured - real IPFS uploads enabled',
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
if (pinataKey) {
|
|
307
|
+
return {
|
|
308
|
+
service: 'pinata',
|
|
309
|
+
configured: true,
|
|
310
|
+
message: 'Pinata configured - real IPFS uploads enabled',
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
return {
|
|
314
|
+
service: 'demo',
|
|
315
|
+
configured: false,
|
|
316
|
+
message: 'No IPFS credentials - using demo mode (deterministic CIDs)',
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../../src/transfer/ipfs/upload.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAmCjC;;GAEG;AACH,SAAS,mBAAmB;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAC9B,OAAO,CAAC,GAAG,CAAC,QAAQ;QACpB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;IAClE,iDAAiD;IACjD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAE/C,gBAAgB;IAChB,MAAM,WAAW,GAAG,kCAAkC,CAAC;IACvD,IAAI,MAAM,GAAG,SAAS,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,IAAI,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,OAAe,EACf,OAA8C;IAE9C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAEtD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,8EAA8E;YAC9E,2CAA2C,CAC5C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,0BAA0B,CAAC;IAChE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,kBAAkB,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,MAAM,2BAA2B,CAAC,CAAC;IAE3E,uCAAuC;IACvC,MAAM,QAAQ,GAAG,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,0DAA0D,IAAI,OAAO,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC;QACrD,OAAO;QACP,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,QAAQ,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,SAAS,EAAE;QACjD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,KAAK,EAAE;YAClC,cAAc,EAAE,iCAAiC,QAAQ,EAAE;SAC5D;QACD,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAqB,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,kBAAkB,CAAC;IAEtD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;IAElC,OAAO;QACL,GAAG;QACH,IAAI,EAAE,OAAO,CAAC,MAAM;QACpB,OAAO;QACP,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClC,GAAG,EAAE,GAAG,OAAO,SAAS,GAAG,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,OAA0B;IAE1B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAErE,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+EAA+E;YAC/E,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,kBAAkB,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,MAAM,qBAAqB,CAAC,CAAC;IAErE,MAAM,QAAQ,GAAG,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC;QAC5E,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,MAAM,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,0DAA0D,IAAI,OAAO,CAAC;QAClF,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC;QACrD,OAAO;QACP,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,QAAQ,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gDAAgD,EAAE;QAC7E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,gBAAgB,EAAE,MAAM;YACxB,uBAAuB,EAAE,SAAS;YAClC,cAAc,EAAE,iCAAiC,QAAQ,EAAE;SAC5D;QACD,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA2C,CAAC;IAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,8BAA8B,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;IAElC,OAAO;QACL,GAAG;QACH,IAAI,EAAE,OAAO,CAAC,MAAM;QACpB,OAAO;QACP,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClC,GAAG,EAAE,GAAG,OAAO,SAAS,GAAG,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,UAA6B,EAAE;IAE/B,MAAM,EACJ,GAAG,GAAG,IAAI,EACV,cAAc,EACd,OAAO,GAAG,kBAAkB,EAC5B,IAAI,GAAG,SAAS,GACjB,GAAG,OAAO,CAAC;IAEZ,+BAA+B;IAC/B,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE7C,iCAAiC;IACjC,IAAI,cAAc,KAAK,QAAQ,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC;YACH,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAI,SAAS,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,QAAQ,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;IAEpC,wBAAwB;IACxB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAqB;QAC/B,GAAG;QACH,IAAI;QACJ,OAAO;QACP,GAAG,EAAE,GAAG,OAAO,SAAS,GAAG,EAAE;KAC9B,CAAC;IAEF,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAE9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,UAAuD,EAAE;IAEzD,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE7C,2BAA2B;IAC3B,IAAI,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,4CAA4C,EAAE;gBACzE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,gBAAgB,EAAE,SAAS;oBAC3B,uBAAuB,EAAE,YAAY,IAAI,EAAE;iBAC5C;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,SAAS,EAAE,GAAG;oBACd,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,GAAG,EAAE;iBAC9C,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,kBAAkB,QAAQ,EAAE,CAAC,CAAC;gBAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,YAAY;IACZ,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;IAEjD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,UAAwC,EAAE;IAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE7C,6BAA6B;IAC7B,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,0CAA0C,GAAG,EAAE,EAAE;gBAC5E,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE;oBACP,gBAAgB,EAAE,SAAS;oBAC3B,uBAAuB,EAAE,YAAY,IAAI,EAAE;iBAC5C;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,cAAc,CAAC,CAAC;gBAClD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,YAAY;IACZ,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,KAAK,CAAC,CAAC;IAC/C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,UAAkB,kBAAkB;IAEpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,KAAK,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,GAAG,EAAE,EAAE;YACrD,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;YACzE,OAAO,CAAC,GAAG,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,UAAkB,kBAAkB;IAC7E,OAAO,GAAG,OAAO,SAAS,GAAG,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,UAAkB,kBAAkB;IAC3E,OAAO,GAAG,OAAO,SAAS,IAAI,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,CAAC,CAAC,mBAAmB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAKlC,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE7C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,qDAAqD;SAC/D,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,+CAA+C;SACzD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,4DAA4D;KACtE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seraphine Genesis Model
|
|
3
|
+
* The first Claude Flow pattern model - "Hello World" for pattern sharing
|
|
4
|
+
*
|
|
5
|
+
* Seraphine represents the foundational patterns for intelligent agent coordination.
|
|
6
|
+
* Named after the Greek "Seraphim" (burning ones), symbolizing the spark of knowledge
|
|
7
|
+
* that ignites collaborative AI intelligence.
|
|
8
|
+
*/
|
|
9
|
+
import type { CFPFormat, PatternCollection, RoutingPattern, ComplexityPattern, CoveragePattern, TrajectoryPattern, CustomPattern } from '../types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Seraphine model version
|
|
12
|
+
*/
|
|
13
|
+
export declare const SERAPHINE_VERSION = "1.0.0";
|
|
14
|
+
/**
|
|
15
|
+
* Seraphine model metadata
|
|
16
|
+
*/
|
|
17
|
+
export declare const SERAPHINE_METADATA: {
|
|
18
|
+
name: string;
|
|
19
|
+
displayName: string;
|
|
20
|
+
description: string;
|
|
21
|
+
author: {
|
|
22
|
+
id: string;
|
|
23
|
+
displayName: string;
|
|
24
|
+
};
|
|
25
|
+
license: string;
|
|
26
|
+
tags: string[];
|
|
27
|
+
language: string;
|
|
28
|
+
framework: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Core routing patterns for Seraphine
|
|
32
|
+
* These define how tasks are routed to appropriate agents
|
|
33
|
+
*/
|
|
34
|
+
export declare const SERAPHINE_ROUTING_PATTERNS: RoutingPattern[];
|
|
35
|
+
/**
|
|
36
|
+
* Complexity heuristics for Seraphine
|
|
37
|
+
* These help estimate task complexity for resource allocation
|
|
38
|
+
*/
|
|
39
|
+
export declare const SERAPHINE_COMPLEXITY_PATTERNS: ComplexityPattern[];
|
|
40
|
+
/**
|
|
41
|
+
* Coverage patterns for Seraphine
|
|
42
|
+
* These track knowledge domain coverage
|
|
43
|
+
*/
|
|
44
|
+
export declare const SERAPHINE_COVERAGE_PATTERNS: CoveragePattern[];
|
|
45
|
+
/**
|
|
46
|
+
* Trajectory patterns for Seraphine
|
|
47
|
+
* These capture successful task execution paths
|
|
48
|
+
*/
|
|
49
|
+
export declare const SERAPHINE_TRAJECTORY_PATTERNS: TrajectoryPattern[];
|
|
50
|
+
/**
|
|
51
|
+
* Custom patterns for Seraphine
|
|
52
|
+
* These are specialized patterns unique to Seraphine
|
|
53
|
+
*/
|
|
54
|
+
export declare const SERAPHINE_CUSTOM_PATTERNS: CustomPattern[];
|
|
55
|
+
/**
|
|
56
|
+
* Create the complete Seraphine pattern collection
|
|
57
|
+
*/
|
|
58
|
+
export declare function createSeraphinePatterns(): PatternCollection;
|
|
59
|
+
/**
|
|
60
|
+
* Create the Seraphine Genesis CFP document
|
|
61
|
+
*/
|
|
62
|
+
export declare function createSeraphineGenesis(): CFPFormat;
|
|
63
|
+
/**
|
|
64
|
+
* Get Seraphine model info
|
|
65
|
+
*/
|
|
66
|
+
export declare function getSeraphineInfo(): {
|
|
67
|
+
name: string;
|
|
68
|
+
version: string;
|
|
69
|
+
description: string;
|
|
70
|
+
patternCounts: Record<string, number>;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=seraphine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seraphine.d.ts","sourceRoot":"","sources":["../../../../src/transfer/models/seraphine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACd,MAAM,aAAa,CAAC;AAGrB;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAoB9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,cAAc,EAkGtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,EAoC5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,eAAe,EAyBxD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,iBAAiB,EAkE5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,aAAa,EAyCpD,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAQ3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,CAWlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAaA"}
|