@claude-flow/cli 3.0.0-alpha.56 → 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/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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Search Service
|
|
3
|
+
* Search and filter patterns from decentralized registry
|
|
4
|
+
*/
|
|
5
|
+
import type { PatternRegistry, PatternEntry, SearchOptions, SearchResult } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Search patterns in registry
|
|
8
|
+
*/
|
|
9
|
+
export declare function searchPatterns(registry: PatternRegistry, options?: SearchOptions): SearchResult;
|
|
10
|
+
/**
|
|
11
|
+
* Get featured patterns
|
|
12
|
+
*/
|
|
13
|
+
export declare function getFeaturedPatterns(registry: PatternRegistry): PatternEntry[];
|
|
14
|
+
/**
|
|
15
|
+
* Get trending patterns
|
|
16
|
+
*/
|
|
17
|
+
export declare function getTrendingPatterns(registry: PatternRegistry): PatternEntry[];
|
|
18
|
+
/**
|
|
19
|
+
* Get newest patterns
|
|
20
|
+
*/
|
|
21
|
+
export declare function getNewestPatterns(registry: PatternRegistry): PatternEntry[];
|
|
22
|
+
/**
|
|
23
|
+
* Get pattern by ID
|
|
24
|
+
*/
|
|
25
|
+
export declare function getPatternById(registry: PatternRegistry, patternId: string): PatternEntry | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Get pattern by name
|
|
28
|
+
*/
|
|
29
|
+
export declare function getPatternByName(registry: PatternRegistry, name: string): PatternEntry | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Get patterns by author
|
|
32
|
+
*/
|
|
33
|
+
export declare function getPatternsByAuthor(registry: PatternRegistry, authorId: string): PatternEntry[];
|
|
34
|
+
/**
|
|
35
|
+
* Get patterns by category
|
|
36
|
+
*/
|
|
37
|
+
export declare function getPatternsByCategory(registry: PatternRegistry, categoryId: string): PatternEntry[];
|
|
38
|
+
/**
|
|
39
|
+
* Get similar patterns (by tags and category)
|
|
40
|
+
*/
|
|
41
|
+
export declare function getSimilarPatterns(registry: PatternRegistry, pattern: PatternEntry, limit?: number): PatternEntry[];
|
|
42
|
+
/**
|
|
43
|
+
* Get category stats
|
|
44
|
+
*/
|
|
45
|
+
export declare function getCategoryStats(registry: PatternRegistry): Map<string, number>;
|
|
46
|
+
/**
|
|
47
|
+
* Get tag cloud (tag -> count)
|
|
48
|
+
*/
|
|
49
|
+
export declare function getTagCloud(registry: PatternRegistry): Map<string, number>;
|
|
50
|
+
/**
|
|
51
|
+
* Autocomplete search suggestions
|
|
52
|
+
*/
|
|
53
|
+
export declare function getSearchSuggestions(registry: PatternRegistry, partial: string, limit?: number): string[];
|
|
54
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../src/transfer/store/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,aAAkB,GAC1B,YAAY,CAyGd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY,EAAE,CAI7E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY,EAAE,CAI7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY,EAAE,CAI3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM,GAChB,YAAY,GAAG,SAAS,CAE1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,MAAM,GACX,YAAY,GAAG,SAAS,CAE1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,YAAY,EAAE,CAEhB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,MAAM,GACjB,YAAY,EAAE,CAEhB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,YAAY,EACrB,KAAK,GAAE,MAAU,GAChB,YAAY,EAAE,CAoChB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAW/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAU1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAW,GACjB,MAAM,EAAE,CA+BV"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Search Service
|
|
3
|
+
* Search and filter patterns from decentralized registry
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Search patterns in registry
|
|
7
|
+
*/
|
|
8
|
+
export function searchPatterns(registry, options = {}) {
|
|
9
|
+
let patterns = [...registry.patterns];
|
|
10
|
+
// Text search
|
|
11
|
+
if (options.query) {
|
|
12
|
+
const query = options.query.toLowerCase();
|
|
13
|
+
patterns = patterns.filter(p => p.name.toLowerCase().includes(query) ||
|
|
14
|
+
p.displayName.toLowerCase().includes(query) ||
|
|
15
|
+
p.description.toLowerCase().includes(query) ||
|
|
16
|
+
p.tags.some(t => t.toLowerCase().includes(query)));
|
|
17
|
+
}
|
|
18
|
+
// Category filter
|
|
19
|
+
if (options.category) {
|
|
20
|
+
patterns = patterns.filter(p => p.categories.includes(options.category));
|
|
21
|
+
}
|
|
22
|
+
// Language filter
|
|
23
|
+
if (options.language) {
|
|
24
|
+
patterns = patterns.filter(p => p.language === options.language);
|
|
25
|
+
}
|
|
26
|
+
// Framework filter
|
|
27
|
+
if (options.framework) {
|
|
28
|
+
patterns = patterns.filter(p => p.framework === options.framework);
|
|
29
|
+
}
|
|
30
|
+
// Tags filter
|
|
31
|
+
if (options.tags && options.tags.length > 0) {
|
|
32
|
+
patterns = patterns.filter(p => options.tags.some(t => p.tags.includes(t)));
|
|
33
|
+
}
|
|
34
|
+
// Author filter
|
|
35
|
+
if (options.author) {
|
|
36
|
+
patterns = patterns.filter(p => p.author.id === options.author);
|
|
37
|
+
}
|
|
38
|
+
// Rating filter
|
|
39
|
+
if (options.minRating !== undefined) {
|
|
40
|
+
patterns = patterns.filter(p => p.rating >= options.minRating);
|
|
41
|
+
}
|
|
42
|
+
// Downloads filter
|
|
43
|
+
if (options.minDownloads !== undefined) {
|
|
44
|
+
patterns = patterns.filter(p => p.downloads >= options.minDownloads);
|
|
45
|
+
}
|
|
46
|
+
// Verified filter
|
|
47
|
+
if (options.verified !== undefined) {
|
|
48
|
+
patterns = patterns.filter(p => p.verified === options.verified);
|
|
49
|
+
}
|
|
50
|
+
// Trust level filter
|
|
51
|
+
if (options.trustLevel) {
|
|
52
|
+
const trustLevels = ['unverified', 'community', 'verified', 'official'];
|
|
53
|
+
const minLevel = trustLevels.indexOf(options.trustLevel);
|
|
54
|
+
patterns = patterns.filter(p => {
|
|
55
|
+
const patternLevel = trustLevels.indexOf(p.trustLevel);
|
|
56
|
+
return patternLevel >= minLevel;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Sort
|
|
60
|
+
const sortBy = options.sortBy || 'downloads';
|
|
61
|
+
const sortOrder = options.sortOrder || 'desc';
|
|
62
|
+
patterns.sort((a, b) => {
|
|
63
|
+
let comparison = 0;
|
|
64
|
+
switch (sortBy) {
|
|
65
|
+
case 'downloads':
|
|
66
|
+
comparison = a.downloads - b.downloads;
|
|
67
|
+
break;
|
|
68
|
+
case 'rating':
|
|
69
|
+
comparison = a.rating - b.rating;
|
|
70
|
+
break;
|
|
71
|
+
case 'newest':
|
|
72
|
+
comparison = new Date(a.createdAt).getTime() - new Date(b.createdAt).getTime();
|
|
73
|
+
break;
|
|
74
|
+
case 'name':
|
|
75
|
+
comparison = a.name.localeCompare(b.name);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
return sortOrder === 'desc' ? -comparison : comparison;
|
|
79
|
+
});
|
|
80
|
+
// Pagination
|
|
81
|
+
const total = patterns.length;
|
|
82
|
+
const limit = options.limit || 20;
|
|
83
|
+
const offset = options.offset || 0;
|
|
84
|
+
const page = Math.floor(offset / limit) + 1;
|
|
85
|
+
patterns = patterns.slice(offset, offset + limit);
|
|
86
|
+
return {
|
|
87
|
+
patterns,
|
|
88
|
+
total,
|
|
89
|
+
page,
|
|
90
|
+
pageSize: limit,
|
|
91
|
+
hasMore: offset + patterns.length < total,
|
|
92
|
+
query: options,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get featured patterns
|
|
97
|
+
*/
|
|
98
|
+
export function getFeaturedPatterns(registry) {
|
|
99
|
+
return registry.featured
|
|
100
|
+
.map(id => registry.patterns.find(p => p.id === id))
|
|
101
|
+
.filter((p) => p !== undefined);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get trending patterns
|
|
105
|
+
*/
|
|
106
|
+
export function getTrendingPatterns(registry) {
|
|
107
|
+
return registry.trending
|
|
108
|
+
.map(id => registry.patterns.find(p => p.id === id))
|
|
109
|
+
.filter((p) => p !== undefined);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get newest patterns
|
|
113
|
+
*/
|
|
114
|
+
export function getNewestPatterns(registry) {
|
|
115
|
+
return registry.newest
|
|
116
|
+
.map(id => registry.patterns.find(p => p.id === id))
|
|
117
|
+
.filter((p) => p !== undefined);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Get pattern by ID
|
|
121
|
+
*/
|
|
122
|
+
export function getPatternById(registry, patternId) {
|
|
123
|
+
return registry.patterns.find(p => p.id === patternId);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get pattern by name
|
|
127
|
+
*/
|
|
128
|
+
export function getPatternByName(registry, name) {
|
|
129
|
+
return registry.patterns.find(p => p.name === name);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get patterns by author
|
|
133
|
+
*/
|
|
134
|
+
export function getPatternsByAuthor(registry, authorId) {
|
|
135
|
+
return registry.patterns.filter(p => p.author.id === authorId);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get patterns by category
|
|
139
|
+
*/
|
|
140
|
+
export function getPatternsByCategory(registry, categoryId) {
|
|
141
|
+
return registry.patterns.filter(p => p.categories.includes(categoryId));
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get similar patterns (by tags and category)
|
|
145
|
+
*/
|
|
146
|
+
export function getSimilarPatterns(registry, pattern, limit = 5) {
|
|
147
|
+
const scores = new Map();
|
|
148
|
+
for (const p of registry.patterns) {
|
|
149
|
+
if (p.id === pattern.id)
|
|
150
|
+
continue;
|
|
151
|
+
let score = 0;
|
|
152
|
+
// Shared tags
|
|
153
|
+
const sharedTags = p.tags.filter(t => pattern.tags.includes(t));
|
|
154
|
+
score += sharedTags.length * 2;
|
|
155
|
+
// Shared categories
|
|
156
|
+
const sharedCategories = p.categories.filter(c => pattern.categories.includes(c));
|
|
157
|
+
score += sharedCategories.length * 3;
|
|
158
|
+
// Same language
|
|
159
|
+
if (p.language === pattern.language)
|
|
160
|
+
score += 1;
|
|
161
|
+
// Same framework
|
|
162
|
+
if (p.framework === pattern.framework)
|
|
163
|
+
score += 2;
|
|
164
|
+
// Same author
|
|
165
|
+
if (p.author.id === pattern.author.id)
|
|
166
|
+
score += 1;
|
|
167
|
+
if (score > 0) {
|
|
168
|
+
scores.set(p.id, score);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Sort by score and return top matches
|
|
172
|
+
return Array.from(scores.entries())
|
|
173
|
+
.sort((a, b) => b[1] - a[1])
|
|
174
|
+
.slice(0, limit)
|
|
175
|
+
.map(([id]) => registry.patterns.find(p => p.id === id))
|
|
176
|
+
.filter(p => p !== undefined);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get category stats
|
|
180
|
+
*/
|
|
181
|
+
export function getCategoryStats(registry) {
|
|
182
|
+
const stats = new Map();
|
|
183
|
+
for (const category of registry.categories) {
|
|
184
|
+
const count = registry.patterns.filter(p => p.categories.includes(category.id)).length;
|
|
185
|
+
stats.set(category.id, count);
|
|
186
|
+
}
|
|
187
|
+
return stats;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get tag cloud (tag -> count)
|
|
191
|
+
*/
|
|
192
|
+
export function getTagCloud(registry) {
|
|
193
|
+
const tags = new Map();
|
|
194
|
+
for (const pattern of registry.patterns) {
|
|
195
|
+
for (const tag of pattern.tags) {
|
|
196
|
+
tags.set(tag, (tags.get(tag) || 0) + 1);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return tags;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Autocomplete search suggestions
|
|
203
|
+
*/
|
|
204
|
+
export function getSearchSuggestions(registry, partial, limit = 10) {
|
|
205
|
+
const suggestions = new Set();
|
|
206
|
+
const query = partial.toLowerCase();
|
|
207
|
+
// Add matching pattern names
|
|
208
|
+
for (const pattern of registry.patterns) {
|
|
209
|
+
if (pattern.name.toLowerCase().includes(query)) {
|
|
210
|
+
suggestions.add(pattern.name);
|
|
211
|
+
}
|
|
212
|
+
if (pattern.displayName.toLowerCase().includes(query)) {
|
|
213
|
+
suggestions.add(pattern.displayName);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// Add matching tags
|
|
217
|
+
for (const pattern of registry.patterns) {
|
|
218
|
+
for (const tag of pattern.tags) {
|
|
219
|
+
if (tag.toLowerCase().includes(query)) {
|
|
220
|
+
suggestions.add(tag);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Add matching categories
|
|
225
|
+
for (const category of registry.categories) {
|
|
226
|
+
if (category.name.toLowerCase().includes(query)) {
|
|
227
|
+
suggestions.add(category.name);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return Array.from(suggestions).slice(0, limit);
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/transfer/store/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env npx tsx
|
|
2
|
+
/**
|
|
3
|
+
* Standalone Pattern Store Test
|
|
4
|
+
* Run this in any environment to verify the IPFS-based pattern store works
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx tsx standalone-test.ts
|
|
8
|
+
* # or
|
|
9
|
+
* npm run test:pattern-store
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=standalone-test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-test.d.ts","sourceRoot":"","sources":["../../../../../src/transfer/store/tests/standalone-test.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
#!/usr/bin/env npx tsx
|
|
2
|
+
/**
|
|
3
|
+
* Standalone Pattern Store Test
|
|
4
|
+
* Run this in any environment to verify the IPFS-based pattern store works
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx tsx standalone-test.ts
|
|
8
|
+
* # or
|
|
9
|
+
* npm run test:pattern-store
|
|
10
|
+
*/
|
|
11
|
+
import { PatternStore, createDiscoveryService, searchPatterns, getFeaturedPatterns, getTrendingPatterns, getNewestPatterns, getCategoryStats, getTagCloud, getSearchSuggestions, } from '../index.js';
|
|
12
|
+
async function main() {
|
|
13
|
+
console.log('');
|
|
14
|
+
console.log('╔══════════════════════════════════════════════════════════════╗');
|
|
15
|
+
console.log('║ CLAUDE FLOW V3 - STANDALONE PATTERN STORE TEST ║');
|
|
16
|
+
console.log('║ IPFS-Based Decentralized Pattern Marketplace ║');
|
|
17
|
+
console.log('╚══════════════════════════════════════════════════════════════╝');
|
|
18
|
+
console.log('');
|
|
19
|
+
let passed = 0;
|
|
20
|
+
let failed = 0;
|
|
21
|
+
// Test 1: Discovery Service Creation
|
|
22
|
+
console.log('▶ Test 1: Create Discovery Service');
|
|
23
|
+
try {
|
|
24
|
+
const discovery = createDiscoveryService();
|
|
25
|
+
const registries = discovery.listRegistries();
|
|
26
|
+
console.log(` ✅ Created service with ${registries.length} bootstrap registries`);
|
|
27
|
+
passed++;
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
31
|
+
failed++;
|
|
32
|
+
}
|
|
33
|
+
// Test 2: Discover Registry
|
|
34
|
+
console.log('▶ Test 2: Discover Registry via IPNS');
|
|
35
|
+
let registry = null;
|
|
36
|
+
try {
|
|
37
|
+
const discovery = createDiscoveryService();
|
|
38
|
+
const result = await discovery.discoverRegistry();
|
|
39
|
+
if (result.success && result.registry) {
|
|
40
|
+
registry = result.registry;
|
|
41
|
+
console.log(` ✅ Discovered ${result.registry.patterns.length} patterns from ${result.source}`);
|
|
42
|
+
passed++;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error(result.error || 'No registry');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (e) {
|
|
49
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
50
|
+
failed++;
|
|
51
|
+
}
|
|
52
|
+
if (!registry) {
|
|
53
|
+
console.log('\n❌ Cannot continue without registry\n');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
// Test 3: Search Patterns
|
|
57
|
+
console.log('▶ Test 3: Search for "agent"');
|
|
58
|
+
try {
|
|
59
|
+
const results = searchPatterns(registry, { query: 'agent' });
|
|
60
|
+
console.log(` ✅ Found ${results.patterns.length} patterns matching "agent"`);
|
|
61
|
+
passed++;
|
|
62
|
+
}
|
|
63
|
+
catch (e) {
|
|
64
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
65
|
+
failed++;
|
|
66
|
+
}
|
|
67
|
+
// Test 4: Get Featured Patterns
|
|
68
|
+
console.log('▶ Test 4: Get Featured Patterns');
|
|
69
|
+
try {
|
|
70
|
+
const featured = getFeaturedPatterns(registry);
|
|
71
|
+
console.log(` ✅ Found ${featured.length} featured patterns`);
|
|
72
|
+
if (featured.length > 0) {
|
|
73
|
+
console.log(` - ${featured[0].name} (${featured[0].id})`);
|
|
74
|
+
}
|
|
75
|
+
passed++;
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
79
|
+
failed++;
|
|
80
|
+
}
|
|
81
|
+
// Test 5: Get Trending Patterns
|
|
82
|
+
console.log('▶ Test 5: Get Trending Patterns');
|
|
83
|
+
try {
|
|
84
|
+
const trending = getTrendingPatterns(registry);
|
|
85
|
+
console.log(` ✅ Found ${trending.length} trending patterns`);
|
|
86
|
+
passed++;
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
90
|
+
failed++;
|
|
91
|
+
}
|
|
92
|
+
// Test 6: Get Newest Patterns
|
|
93
|
+
console.log('▶ Test 6: Get Newest Patterns');
|
|
94
|
+
try {
|
|
95
|
+
const newest = getNewestPatterns(registry);
|
|
96
|
+
console.log(` ✅ Found ${newest.length} newest patterns`);
|
|
97
|
+
passed++;
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
101
|
+
failed++;
|
|
102
|
+
}
|
|
103
|
+
// Test 7: Search with Filters
|
|
104
|
+
console.log('▶ Test 7: Search with Filters (verified only)');
|
|
105
|
+
try {
|
|
106
|
+
const results = searchPatterns(registry, { verified: true });
|
|
107
|
+
console.log(` ✅ Found ${results.patterns.length} verified patterns`);
|
|
108
|
+
passed++;
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
112
|
+
failed++;
|
|
113
|
+
}
|
|
114
|
+
// Test 8: Category Stats
|
|
115
|
+
console.log('▶ Test 8: Get Category Statistics');
|
|
116
|
+
try {
|
|
117
|
+
const stats = getCategoryStats(registry);
|
|
118
|
+
const count = Array.isArray(stats) ? stats.length : Object.keys(stats).length;
|
|
119
|
+
console.log(` ✅ Found ${count} categories with stats`);
|
|
120
|
+
passed++;
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
124
|
+
failed++;
|
|
125
|
+
}
|
|
126
|
+
// Test 9: Tag Cloud
|
|
127
|
+
console.log('▶ Test 9: Get Tag Cloud');
|
|
128
|
+
try {
|
|
129
|
+
const tags = getTagCloud(registry);
|
|
130
|
+
console.log(` ✅ Found ${tags.size} unique tags`);
|
|
131
|
+
passed++;
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
135
|
+
failed++;
|
|
136
|
+
}
|
|
137
|
+
// Test 10: Search Suggestions
|
|
138
|
+
console.log('▶ Test 10: Get Search Suggestions');
|
|
139
|
+
try {
|
|
140
|
+
const suggestions = getSearchSuggestions(registry, 'pat');
|
|
141
|
+
console.log(` ✅ Got ${suggestions.length} suggestions for "pat"`);
|
|
142
|
+
passed++;
|
|
143
|
+
}
|
|
144
|
+
catch (e) {
|
|
145
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
146
|
+
failed++;
|
|
147
|
+
}
|
|
148
|
+
// Test 11: PatternStore Class
|
|
149
|
+
console.log('▶ Test 11: PatternStore Class API');
|
|
150
|
+
try {
|
|
151
|
+
const store = new PatternStore();
|
|
152
|
+
await store.initialize();
|
|
153
|
+
const stats = store.getStats();
|
|
154
|
+
console.log(` ✅ PatternStore initialized:`);
|
|
155
|
+
console.log(` Total Patterns: ${stats.totalPatterns}`);
|
|
156
|
+
console.log(` Total Downloads: ${stats.totalDownloads.toLocaleString()}`);
|
|
157
|
+
console.log(` Categories: ${stats.categories}`);
|
|
158
|
+
passed++;
|
|
159
|
+
}
|
|
160
|
+
catch (e) {
|
|
161
|
+
console.log(` ❌ Failed: ${e.message}`);
|
|
162
|
+
failed++;
|
|
163
|
+
}
|
|
164
|
+
// Summary
|
|
165
|
+
console.log('');
|
|
166
|
+
console.log('═══════════════════════════════════════════════════════════════');
|
|
167
|
+
console.log(' TEST RESULTS ');
|
|
168
|
+
console.log('═══════════════════════════════════════════════════════════════');
|
|
169
|
+
console.log('');
|
|
170
|
+
console.log(` Total: ${passed + failed}`);
|
|
171
|
+
console.log(` ✅ Passed: ${passed}`);
|
|
172
|
+
console.log(` ❌ Failed: ${failed}`);
|
|
173
|
+
console.log('');
|
|
174
|
+
if (failed === 0) {
|
|
175
|
+
console.log(' 🎉 All tests passed! Pattern Store is working correctly.');
|
|
176
|
+
console.log('');
|
|
177
|
+
console.log(' Available CLI Commands:');
|
|
178
|
+
console.log(' npx @claude-flow/cli patterns list');
|
|
179
|
+
console.log(' npx @claude-flow/cli patterns list --featured');
|
|
180
|
+
console.log(' npx @claude-flow/cli patterns search -q "agent"');
|
|
181
|
+
console.log(' npx @claude-flow/cli patterns info -n <pattern-id>');
|
|
182
|
+
console.log('');
|
|
183
|
+
}
|
|
184
|
+
process.exit(failed > 0 ? 1 : 0);
|
|
185
|
+
}
|
|
186
|
+
main().catch(err => {
|
|
187
|
+
console.error('Fatal error:', err);
|
|
188
|
+
process.exit(1);
|
|
189
|
+
});
|
|
190
|
+
//# sourceMappingURL=standalone-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standalone-test.js","sourceRoot":"","sources":["../../../../../src/transfer/store/tests/standalone-test.ts"],"names":[],"mappings":"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"}
|