@monoes/monomindcli 1.15.6 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/.claude/agents/github/repo-architect.md +1 -1
  2. package/.claude/agents/specialists/integration-architect.md +6 -6
  3. package/.claude/commands/hive-mind/hive-mind-init.md +1 -1
  4. package/.claude/commands/hive-mind/hive-mind-memory.md +1 -1
  5. package/.claude/commands/mastermind/brain.md +11 -11
  6. package/.claude/commands/mastermind/master.md +4 -4
  7. package/.claude/commands/mastermind/memory.md +6 -6
  8. package/.claude/commands/memory/README.md +4 -4
  9. package/.claude/commands/truth/start.md +3 -3
  10. package/.claude/helpers/extras-registry.json +2 -2
  11. package/.claude/helpers/skill-registry.json +26 -26
  12. package/.claude/helpers/statusline.cjs +8 -8
  13. package/.claude/skills/agentic-jujutsu/SKILL.md +3 -3
  14. package/.claude/skills/mastermind/_protocol.md +8 -8
  15. package/README.md +6 -6
  16. package/dist/src/__tests__/browse-analyzer.test.js +18 -1
  17. package/dist/src/__tests__/browse-analyzer.test.js.map +1 -1
  18. package/dist/src/commands/agent.js +2 -2
  19. package/dist/src/commands/agent.js.map +1 -1
  20. package/dist/src/commands/autopilot.js +1 -1
  21. package/dist/src/commands/autopilot.js.map +1 -1
  22. package/dist/src/commands/completions.d.ts.map +1 -1
  23. package/dist/src/commands/completions.js +2 -21
  24. package/dist/src/commands/completions.js.map +1 -1
  25. package/dist/src/commands/config.js +1 -1
  26. package/dist/src/commands/hive-mind.js +1 -1
  27. package/dist/src/commands/hooks-coverage-commands.js +31 -31
  28. package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
  29. package/dist/src/commands/hooks-routing-commands.js +1 -1
  30. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  31. package/dist/src/commands/hooks.js +1 -1
  32. package/dist/src/commands/hooks.js.map +1 -1
  33. package/dist/src/commands/index.d.ts +0 -1
  34. package/dist/src/commands/index.d.ts.map +1 -1
  35. package/dist/src/commands/index.js +0 -4
  36. package/dist/src/commands/index.js.map +1 -1
  37. package/dist/src/commands/init.js +8 -8
  38. package/dist/src/commands/init.js.map +1 -1
  39. package/dist/src/commands/memory.d.ts +1 -1
  40. package/dist/src/commands/memory.d.ts.map +1 -1
  41. package/dist/src/commands/memory.js +138 -28
  42. package/dist/src/commands/memory.js.map +1 -1
  43. package/dist/src/commands/migrate.js +2 -2
  44. package/dist/src/commands/neural.js +1 -1
  45. package/dist/src/commands/neural.js.map +1 -1
  46. package/dist/src/commands/swarm.js +1 -1
  47. package/dist/src/commands/swarm.js.map +1 -1
  48. package/dist/src/config-adapter.d.ts.map +1 -1
  49. package/dist/src/config-adapter.js +8 -8
  50. package/dist/src/config-adapter.js.map +1 -1
  51. package/dist/src/index.js +1 -1
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/init/claudemd-generator.js +2 -2
  54. package/dist/src/init/executor.js +16 -16
  55. package/dist/src/init/executor.js.map +1 -1
  56. package/dist/src/init/shared-instructions-generator.d.ts +1 -1
  57. package/dist/src/init/shared-instructions-generator.js +1 -1
  58. package/dist/src/init/statusline-generator.d.ts +1 -1
  59. package/dist/src/init/statusline-generator.js +8 -8
  60. package/dist/src/init/types.d.ts +3 -3
  61. package/dist/src/init/types.d.ts.map +1 -1
  62. package/dist/src/init/types.js +3 -3
  63. package/dist/src/init/types.js.map +1 -1
  64. package/dist/src/mcp-client.d.ts.map +1 -1
  65. package/dist/src/mcp-client.js +1 -8
  66. package/dist/src/mcp-client.js.map +1 -1
  67. package/dist/src/mcp-tools/autopilot-tools.js +3 -3
  68. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
  69. package/dist/src/mcp-tools/daa-tools.js +13 -13
  70. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  71. package/dist/src/mcp-tools/guidance-tools.js +4 -4
  72. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  73. package/dist/src/mcp-tools/hive-mind-tools.js +4 -4
  74. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  75. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  76. package/dist/src/mcp-tools/hooks-intelligence.js +1 -0
  77. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  78. package/dist/src/mcp-tools/hooks-routing.js +23 -23
  79. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  80. package/dist/src/mcp-tools/index.d.ts +0 -1
  81. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  82. package/dist/src/mcp-tools/index.js +0 -2
  83. package/dist/src/mcp-tools/index.js.map +1 -1
  84. package/dist/src/mcp-tools/memory-tools.d.ts +22 -6
  85. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  86. package/dist/src/mcp-tools/memory-tools.js +553 -505
  87. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  88. package/dist/src/mcp-tools/progress-tools.js +1 -1
  89. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  90. package/dist/src/mcp-tools/system-tools.js +5 -5
  91. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  92. package/dist/src/mcp-tools/transfer-tools.d.ts +1 -1
  93. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  94. package/dist/src/mcp-tools/transfer-tools.js +1 -156
  95. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  96. package/dist/src/memory/embedding-operations.js +3 -3
  97. package/dist/src/memory/embedding-operations.js.map +1 -1
  98. package/dist/src/memory/hnsw-operations.js +5 -5
  99. package/dist/src/memory/hnsw-operations.js.map +1 -1
  100. package/dist/src/memory/intelligence.js +2 -2
  101. package/dist/src/memory/intelligence.js.map +1 -1
  102. package/dist/src/memory/memory-bridge.d.ts +86 -234
  103. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  104. package/dist/src/memory/memory-bridge.js +455 -1702
  105. package/dist/src/memory/memory-bridge.js.map +1 -1
  106. package/dist/src/memory/memory-crud.js +3 -3
  107. package/dist/src/memory/memory-crud.js.map +1 -1
  108. package/dist/src/memory/memory-initializer.d.ts +1 -1
  109. package/dist/src/memory/memory-initializer.js +5 -5
  110. package/dist/src/memory/memory-initializer.js.map +1 -1
  111. package/dist/src/memory/memory-read.js +4 -4
  112. package/dist/src/memory/memory-read.js.map +1 -1
  113. package/dist/src/suggest.js +0 -1
  114. package/dist/src/suggest.js.map +1 -1
  115. package/dist/src/types.d.ts +1 -1
  116. package/dist/src/ui/dashboard.html +41 -5
  117. package/dist/src/ui/orgs.html +91 -5
  118. package/dist/src/ui/server.mjs +44 -0
  119. package/dist/src/update/validator.d.ts.map +1 -1
  120. package/dist/src/update/validator.js +1 -3
  121. package/dist/src/update/validator.js.map +1 -1
  122. package/dist/tsconfig.tsbuildinfo +1 -1
  123. package/package.json +4 -4
  124. package/dist/src/commands/plugins.d.ts +0 -11
  125. package/dist/src/commands/plugins.d.ts.map +0 -1
  126. package/dist/src/commands/plugins.js +0 -799
  127. package/dist/src/commands/plugins.js.map +0 -1
  128. package/dist/src/plugins/manager.d.ts +0 -133
  129. package/dist/src/plugins/manager.d.ts.map +0 -1
  130. package/dist/src/plugins/manager.js +0 -498
  131. package/dist/src/plugins/manager.js.map +0 -1
  132. package/dist/src/plugins/store/discovery.d.ts +0 -88
  133. package/dist/src/plugins/store/discovery.d.ts.map +0 -1
  134. package/dist/src/plugins/store/discovery.js +0 -650
  135. package/dist/src/plugins/store/discovery.js.map +0 -1
  136. package/dist/src/plugins/store/index.d.ts +0 -76
  137. package/dist/src/plugins/store/index.d.ts.map +0 -1
  138. package/dist/src/plugins/store/index.js +0 -141
  139. package/dist/src/plugins/store/index.js.map +0 -1
  140. package/dist/src/plugins/store/search.d.ts +0 -46
  141. package/dist/src/plugins/store/search.d.ts.map +0 -1
  142. package/dist/src/plugins/store/search.js +0 -231
  143. package/dist/src/plugins/store/search.js.map +0 -1
  144. package/dist/src/plugins/store/types.d.ts +0 -274
  145. package/dist/src/plugins/store/types.d.ts.map +0 -1
  146. package/dist/src/plugins/store/types.js +0 -7
  147. package/dist/src/plugins/store/types.js.map +0 -1
  148. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  149. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +0 -1
  150. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  151. package/dist/src/plugins/tests/demo-plugin-store.js.map +0 -1
  152. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  153. package/dist/src/plugins/tests/standalone-test.d.ts.map +0 -1
  154. package/dist/src/plugins/tests/standalone-test.js +0 -188
  155. package/dist/src/plugins/tests/standalone-test.js.map +0 -1
  156. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  157. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +0 -1
  158. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  159. package/dist/src/plugins/tests/test-plugin-store.js.map +0 -1
  160. package/dist/src/services/registry-api.d.ts +0 -58
  161. package/dist/src/services/registry-api.d.ts.map +0 -1
  162. package/dist/src/services/registry-api.js +0 -199
  163. package/dist/src/services/registry-api.js.map +0 -1
  164. package/scripts/publish-registry.ts +0 -339
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * Plugin Store Test Suite
4
- * Tests IPFS-based plugin registry discovery, search, and operations
5
- */
6
- export {};
7
- //# sourceMappingURL=test-plugin-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-plugin-store.d.ts","sourceRoot":"","sources":["../../../../src/plugins/tests/test-plugin-store.ts"],"names":[],"mappings":";AACA;;;GAGG"}
@@ -1,206 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- /**
3
- * Plugin Store Test Suite
4
- * Tests IPFS-based plugin registry discovery, search, and operations
5
- */
6
- import { createPluginDiscoveryService, searchPlugins, getPluginSearchSuggestions, getPluginTagCloud, getFeaturedPlugins, getTrendingPlugins, getOfficialPlugins, findSimilarPlugins, } from '../store/index.js';
7
- // Test results tracking
8
- const results = [];
9
- function logTest(name, passed, details) {
10
- results.push({ test: name, passed, details });
11
- const icon = passed ? '✅' : '❌';
12
- console.log(`${icon} ${name}${details ? `: ${details}` : ''}`);
13
- }
14
- async function runTests() {
15
- console.log('');
16
- console.log('╔══════════════════════════════════════════════════════════╗');
17
- console.log('║ PLUGIN STORE TEST SUITE ║');
18
- console.log('║ Testing IPFS-Based Registry Discovery ║');
19
- console.log('╚══════════════════════════════════════════════════════════╝');
20
- console.log('');
21
- // ==========================================================================
22
- // 1. DISCOVERY TESTS
23
- // ==========================================================================
24
- console.log('─── Discovery Tests ───────────────────────────────────────');
25
- try {
26
- const discovery = createPluginDiscoveryService();
27
- logTest('Discovery service created', true);
28
- // List registries
29
- const registries = discovery.listRegistries();
30
- logTest('List registries', registries.length > 0, `Found ${registries.length} registries`);
31
- // Discover registry
32
- const result = await discovery.discoverRegistry();
33
- logTest('Discover registry via IPNS', result.success, result.success
34
- ? `Loaded ${result.registry?.plugins.length || 0} plugins`
35
- : result.error);
36
- // Cache test
37
- if (result.success) {
38
- const cachedResult = await discovery.discoverRegistry();
39
- logTest('Cache hit', cachedResult.fromCache === true, 'Second request from cache');
40
- }
41
- console.log('');
42
- // ==========================================================================
43
- // 2. SEARCH TESTS
44
- // ==========================================================================
45
- console.log('─── Search Tests ──────────────────────────────────────────');
46
- if (result.success && result.registry) {
47
- const registry = result.registry;
48
- // Basic search
49
- const basicSearch = searchPlugins(registry);
50
- logTest('Basic search', basicSearch.plugins.length > 0, `Found ${basicSearch.total} plugins`);
51
- // Query search for plugin-creator
52
- const creatorSearch = searchPlugins(registry, { query: 'creator' });
53
- logTest('Query search: "creator"', creatorSearch.plugins.length > 0, `Found ${creatorSearch.plugins.length} plugins matching "creator"`);
54
- // Verify plugin-creator exists
55
- const pluginCreator = creatorSearch.plugins.find(p => p.id === 'plugin-creator');
56
- logTest('Plugin Creator found', pluginCreator !== undefined, pluginCreator ? `v${pluginCreator.version} - ${pluginCreator.displayName}` : 'Not found');
57
- // Category filter
58
- const securitySearch = searchPlugins(registry, { category: 'security' });
59
- logTest('Category filter: security', true, `Found ${securitySearch.plugins.length} security plugins`);
60
- // Type filter
61
- const commandSearch = searchPlugins(registry, { type: 'command' });
62
- logTest('Type filter: command', commandSearch.plugins.length > 0, `Found ${commandSearch.plugins.length} command plugins`);
63
- // Verified filter
64
- const verifiedSearch = searchPlugins(registry, { verified: true });
65
- logTest('Verified filter', verifiedSearch.plugins.length > 0, `Verified plugins: ${verifiedSearch.plugins.length}`);
66
- // Sort by downloads
67
- const sortedSearch = searchPlugins(registry, {
68
- sortBy: 'downloads',
69
- sortOrder: 'desc',
70
- });
71
- logTest('Sort by downloads', true, `Top plugin: ${sortedSearch.plugins[0]?.displayName || 'none'} (${sortedSearch.plugins[0]?.downloads || 0} downloads)`);
72
- // Pagination
73
- const page1 = searchPlugins(registry, { limit: 3, offset: 0 });
74
- logTest('Pagination', page1.pageSize === 3, `Page 1 with ${page1.plugins.length} plugins, hasMore: ${page1.hasMore}`);
75
- // Search suggestions
76
- const suggestions = getPluginSearchSuggestions(registry, 'neu');
77
- logTest('Search suggestions', suggestions.length >= 0, `Suggestions for "neu": ${suggestions.slice(0, 3).join(', ') || 'none'}`);
78
- // Tag cloud
79
- const tagCloud = getPluginTagCloud(registry);
80
- logTest('Tag cloud', tagCloud.size > 0, `${tagCloud.size} unique tags`);
81
- }
82
- console.log('');
83
- // ==========================================================================
84
- // 3. FEATURED/TRENDING/OFFICIAL TESTS
85
- // ==========================================================================
86
- console.log('─── Featured/Trending/Official Tests ─────────────────────');
87
- if (result.success && result.registry) {
88
- const registry = result.registry;
89
- // Featured plugins
90
- const featured = getFeaturedPlugins(registry);
91
- logTest('Featured plugins', featured.length > 0, `${featured.length} featured: ${featured.map(p => p.name).join(', ')}`);
92
- // Check plugin-creator is featured
93
- const creatorFeatured = featured.some(p => p.id === 'plugin-creator');
94
- logTest('Plugin Creator is featured', creatorFeatured, creatorFeatured ? 'Yes' : 'No');
95
- // Trending plugins
96
- const trending = getTrendingPlugins(registry);
97
- logTest('Trending plugins', trending.length > 0, `${trending.length} trending: ${trending.map(p => p.name).join(', ')}`);
98
- // Official plugins
99
- const official = getOfficialPlugins(registry);
100
- logTest('Official plugins', official.length > 0, `${official.length} official plugins`);
101
- // Similar plugins
102
- const similar = findSimilarPlugins(registry, '@monoes/neural', 3);
103
- logTest('Similar plugins', similar.length >= 0, `Similar to @monoes/neural: ${similar.map(p => p.name).join(', ') || 'none'}`);
104
- }
105
- console.log('');
106
- // ==========================================================================
107
- // 4. PLUGIN DETAILS TEST
108
- // ==========================================================================
109
- console.log('─── Plugin Details Test ───────────────────────────────────');
110
- if (result.success && result.registry) {
111
- const pluginCreator = result.registry.plugins.find(p => p.id === 'plugin-creator');
112
- if (pluginCreator) {
113
- logTest('Plugin Creator details', true);
114
- console.log('');
115
- console.log(' Plugin Creator Pro Details:');
116
- console.log(` ├─ ID: ${pluginCreator.id}`);
117
- console.log(` ├─ Version: ${pluginCreator.version}`);
118
- console.log(` ├─ CID: ${pluginCreator.cid}`);
119
- console.log(` ├─ Size: ${(pluginCreator.size / 1024).toFixed(1)} KB`);
120
- console.log(` ├─ Downloads: ${pluginCreator.downloads.toLocaleString()}`);
121
- console.log(` ├─ Rating: ${pluginCreator.rating}★ (${pluginCreator.ratingCount} ratings)`);
122
- console.log(` ├─ Trust: ${pluginCreator.trustLevel}`);
123
- console.log(` ├─ Verified: ${pluginCreator.verified ? '✓' : '✗'}`);
124
- console.log(` ├─ Commands: ${pluginCreator.commands.length}`);
125
- pluginCreator.commands.forEach(cmd => {
126
- console.log(` │ └─ ${cmd}`);
127
- });
128
- console.log(` ├─ Hooks: ${pluginCreator.hooks.length}`);
129
- pluginCreator.hooks.forEach(hook => {
130
- console.log(` │ └─ ${hook}`);
131
- });
132
- console.log(` ├─ Permissions: ${pluginCreator.permissions.join(', ')}`);
133
- console.log(` ├─ Security Audit: ${pluginCreator.securityAudit ? '✓ Passed' : 'None'}`);
134
- console.log(` └─ License: ${pluginCreator.license}`);
135
- console.log('');
136
- }
137
- }
138
- // ==========================================================================
139
- // 5. INTEGRATION TEST
140
- // ==========================================================================
141
- console.log('─── Integration Test ──────────────────────────────────────');
142
- // Full workflow: discover -> search -> get details
143
- const store = createPluginDiscoveryService();
144
- const discoverResult = await store.discoverRegistry();
145
- if (discoverResult.success && discoverResult.registry) {
146
- const searchResult = searchPlugins(discoverResult.registry, {
147
- query: 'plugin creator',
148
- });
149
- if (searchResult.plugins.length > 0) {
150
- const plugin = searchResult.plugins[0];
151
- logTest('Full workflow', true, `Discover → Search → Found "${plugin.displayName}" ready to download`);
152
- }
153
- else {
154
- logTest('Full workflow', true, 'Discover → Search completed');
155
- }
156
- }
157
- }
158
- catch (error) {
159
- console.error('Test error:', error);
160
- logTest('Test suite', false, `Error: ${error}`);
161
- }
162
- // ==========================================================================
163
- // SUMMARY
164
- // ==========================================================================
165
- console.log('');
166
- console.log('═══════════════════════════════════════════════════════════');
167
- console.log(' TEST SUMMARY ');
168
- console.log('═══════════════════════════════════════════════════════════');
169
- console.log('');
170
- const passed = results.filter(r => r.passed).length;
171
- const failed = results.filter(r => !r.passed).length;
172
- const total = results.length;
173
- console.log(` Total Tests: ${total}`);
174
- console.log(` ✅ Passed: ${passed}`);
175
- console.log(` ❌ Failed: ${failed}`);
176
- console.log('');
177
- if (failed === 0) {
178
- console.log(' 🎉 All tests passed!');
179
- console.log('');
180
- console.log(' 📦 Plugin Store Features Verified:');
181
- console.log(' - Registry discovery via IPNS');
182
- console.log(' - Plugin search with filters');
183
- console.log(' - Featured/Trending/Official listings');
184
- console.log(' - Plugin Creator Pro available for download');
185
- console.log('');
186
- console.log(' 🔧 Plugin Creator Pro Commands:');
187
- console.log(' - plugin-creator new Create new plugin');
188
- console.log(' - plugin-creator template Use template');
189
- console.log(' - plugin-creator validate Validate plugin');
190
- console.log(' - plugin-creator test Run tests');
191
- console.log(' - plugin-creator build Build plugin');
192
- console.log(' - plugin-creator publish Publish to IPFS');
193
- console.log(' - plugin-creator watch Hot-reload dev mode');
194
- console.log('');
195
- }
196
- else {
197
- console.log(' ⚠️ Some tests failed. Please review the output above.');
198
- }
199
- process.exit(failed > 0 ? 1 : 0);
200
- }
201
- // Run tests
202
- runTests().catch(error => {
203
- console.error('Fatal error:', error);
204
- process.exit(1);
205
- });
206
- //# sourceMappingURL=test-plugin-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-plugin-store.js","sourceRoot":"","sources":["../../../../src/plugins/tests/test-plugin-store.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- /**
2
- * Registry API Client
3
- * Secure integration with Monomind Cloud Functions
4
- *
5
- * Security:
6
- * - HTTPS only
7
- * - No credentials stored in code
8
- * - Rate limiting respected
9
- * - Input validation
10
- */
11
- export interface RatingResponse {
12
- success: boolean;
13
- itemId: string;
14
- average: number;
15
- count: number;
16
- error?: string;
17
- }
18
- export interface BulkRatingsResponse {
19
- [itemId: string]: {
20
- average: number;
21
- count: number;
22
- };
23
- }
24
- export interface AnalyticsResponse {
25
- downloads: Record<string, number>;
26
- exports: number;
27
- imports: number;
28
- publishes: number;
29
- }
30
- /**
31
- * Rate a plugin or model
32
- */
33
- export declare function rateItem(itemId: string, rating: number, itemType?: 'plugin' | 'model', userId?: string): Promise<RatingResponse>;
34
- /**
35
- * Get ratings for a single item
36
- */
37
- export declare function getRating(itemId: string, itemType?: 'plugin' | 'model'): Promise<RatingResponse>;
38
- /**
39
- * Get ratings for multiple items (batch)
40
- */
41
- export declare function getBulkRatings(itemIds: string[], itemType?: 'plugin' | 'model'): Promise<BulkRatingsResponse>;
42
- /**
43
- * Get analytics data
44
- */
45
- export declare function getAnalytics(): Promise<AnalyticsResponse>;
46
- /**
47
- * Track a download event
48
- */
49
- export declare function trackDownload(pluginId: string): Promise<void>;
50
- /**
51
- * Check API health
52
- */
53
- export declare function checkHealth(): Promise<{
54
- healthy: boolean;
55
- latestCid?: string;
56
- error?: string;
57
- }>;
58
- //# sourceMappingURL=registry-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-api.d.ts","sourceRoot":"","sources":["../../../src/services/registry-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAuDH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,MAAM,EAAE,MAAM,GAAG;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAiBD;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,QAAQ,GAAG,OAAkB,EACvC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC,CA0BzB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,QAAQ,GAAG,OAAkB,GACtC,OAAO,CAAC,cAAc,CAAC,CAoBzB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,GAAE,QAAQ,GAAG,OAAkB,GACtC,OAAO,CAAC,mBAAmB,CAAC,CA0B9B;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAU/D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAenE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAYD"}
@@ -1,199 +0,0 @@
1
- /**
2
- * Registry API Client
3
- * Secure integration with Monomind Cloud Functions
4
- *
5
- * Security:
6
- * - HTTPS only
7
- * - No credentials stored in code
8
- * - Rate limiting respected
9
- * - Input validation
10
- */
11
- const REGISTRY_API_URL = 'https://us-central1-monomind.cloudfunctions.net/publish-registry';
12
- /**
13
- * Read a fetch response body with a hard byte cap. AbortSignal.timeout bounds
14
- * time, NOT bytes — a hijacked endpoint or MITM (TLS without pinning) can
15
- * stream a multi-GB body that the CLI buffers into memory and OOMs. Cap the
16
- * read here so all downstream JSON.parse / .text() calls are bounded.
17
- */
18
- async function readBoundedText(response, maxBytes) {
19
- const lenHdr = response.headers.get('content-length');
20
- if (lenHdr) {
21
- const declared = parseInt(lenHdr, 10);
22
- if (Number.isFinite(declared) && declared > maxBytes) {
23
- throw new Error(`Response too large: ${declared} bytes (max ${maxBytes})`);
24
- }
25
- }
26
- if (!response.body)
27
- return '';
28
- const reader = response.body.getReader();
29
- const chunks = [];
30
- let total = 0;
31
- while (true) {
32
- const { done, value } = await reader.read();
33
- if (done)
34
- break;
35
- if (value) {
36
- total += value.byteLength;
37
- if (total > maxBytes) {
38
- await reader.cancel();
39
- throw new Error(`Response too large: exceeded ${maxBytes} bytes`);
40
- }
41
- chunks.push(value);
42
- }
43
- }
44
- const buf = new Uint8Array(total);
45
- let off = 0;
46
- for (const c of chunks) {
47
- buf.set(c, off);
48
- off += c.byteLength;
49
- }
50
- return new TextDecoder('utf-8').decode(buf);
51
- }
52
- async function readBoundedJson(response, maxBytes = 1_048_576) {
53
- const text = await readBoundedText(response, maxBytes);
54
- return JSON.parse(text);
55
- }
56
- /**
57
- * Strip control chars and cap length on attacker-controlled error body before
58
- * inlining into a thrown Error.message. Without this, a malicious or
59
- * compromised endpoint can deliver multi-MB error bodies that flow into log
60
- * aggregators via unhandled-rejection traces.
61
- */
62
- function safeErrText(s) {
63
- return s.replace(/[\x00-\x1f\x7f]/g, '?').slice(0, 512);
64
- }
65
- /**
66
- * Validate item ID to prevent injection
67
- */
68
- function validateItemId(itemId) {
69
- // Scoped packages (@scope/name) or plain identifiers — no other slashes allowed
70
- return /^(@[a-zA-Z0-9][a-zA-Z0-9_-]*\/[a-zA-Z0-9][a-zA-Z0-9_-]*|[a-zA-Z0-9][a-zA-Z0-9_-]*)$/.test(itemId) && itemId.length < 100;
71
- }
72
- /**
73
- * Validate rating value
74
- */
75
- function validateRating(rating) {
76
- return Number.isInteger(rating) && rating >= 1 && rating <= 5;
77
- }
78
- /**
79
- * Rate a plugin or model
80
- */
81
- export async function rateItem(itemId, rating, itemType = 'plugin', userId) {
82
- if (!validateItemId(itemId)) {
83
- throw new Error('Invalid item ID');
84
- }
85
- if (!validateRating(rating)) {
86
- throw new Error('Rating must be integer 1-5');
87
- }
88
- const response = await fetch(`${REGISTRY_API_URL}?action=rate`, {
89
- method: 'POST',
90
- headers: { 'Content-Type': 'application/json' },
91
- body: JSON.stringify({
92
- itemId,
93
- rating,
94
- itemType,
95
- ...(userId && { userId }),
96
- }),
97
- signal: AbortSignal.timeout(10000),
98
- });
99
- if (!response.ok) {
100
- const error = await readBoundedText(response, 64 * 1024).catch(() => 'unreadable');
101
- throw new Error(`Rating failed: ${safeErrText(error)}`);
102
- }
103
- return readBoundedJson(response);
104
- }
105
- /**
106
- * Get ratings for a single item
107
- */
108
- export async function getRating(itemId, itemType = 'plugin') {
109
- if (!validateItemId(itemId)) {
110
- throw new Error('Invalid item ID');
111
- }
112
- const params = new URLSearchParams({
113
- action: 'get-ratings',
114
- itemId,
115
- itemType,
116
- });
117
- const response = await fetch(`${REGISTRY_API_URL}?${params}`, {
118
- signal: AbortSignal.timeout(10000),
119
- });
120
- if (!response.ok) {
121
- throw new Error('Failed to get ratings');
122
- }
123
- return readBoundedJson(response);
124
- }
125
- /**
126
- * Get ratings for multiple items (batch)
127
- */
128
- export async function getBulkRatings(itemIds, itemType = 'plugin') {
129
- // Validate all IDs
130
- for (const id of itemIds) {
131
- if (!validateItemId(id)) {
132
- throw new Error(`Invalid item ID: ${id}`);
133
- }
134
- }
135
- // Limit batch size
136
- const limitedIds = itemIds.slice(0, 50);
137
- const response = await fetch(`${REGISTRY_API_URL}?action=bulk-ratings`, {
138
- method: 'POST',
139
- headers: { 'Content-Type': 'application/json' },
140
- body: JSON.stringify({
141
- itemIds: limitedIds,
142
- itemType,
143
- }),
144
- signal: AbortSignal.timeout(15000),
145
- });
146
- if (!response.ok) {
147
- throw new Error('Failed to get bulk ratings');
148
- }
149
- return readBoundedJson(response, 4 * 1024 * 1024);
150
- }
151
- /**
152
- * Get analytics data
153
- */
154
- export async function getAnalytics() {
155
- const response = await fetch(`${REGISTRY_API_URL}?action=analytics`, {
156
- signal: AbortSignal.timeout(10000),
157
- });
158
- if (!response.ok) {
159
- throw new Error('Failed to get analytics');
160
- }
161
- return readBoundedJson(response);
162
- }
163
- /**
164
- * Track a download event
165
- */
166
- export async function trackDownload(pluginId) {
167
- if (!validateItemId(pluginId)) {
168
- return; // Silently fail for invalid IDs
169
- }
170
- try {
171
- await fetch(`${REGISTRY_API_URL}?action=track-download`, {
172
- method: 'POST',
173
- headers: { 'Content-Type': 'application/json' },
174
- body: JSON.stringify({ pluginId }),
175
- signal: AbortSignal.timeout(5000),
176
- });
177
- }
178
- catch {
179
- // Non-critical, don't throw
180
- }
181
- }
182
- /**
183
- * Check API health
184
- */
185
- export async function checkHealth() {
186
- try {
187
- const response = await fetch(`${REGISTRY_API_URL}?action=status`, {
188
- signal: AbortSignal.timeout(5000),
189
- });
190
- return readBoundedJson(response, 64 * 1024);
191
- }
192
- catch (error) {
193
- return {
194
- healthy: false,
195
- error: error instanceof Error ? error.message : 'Unknown error',
196
- };
197
- }
198
- }
199
- //# sourceMappingURL=registry-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registry-api.js","sourceRoot":"","sources":["../../../src/services/registry-api.ts"],"names":[],"mappings":"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"}