@monoes/monomindcli 1.15.5 → 1.15.7

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 (168) 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.js +25 -25
  41. package/dist/src/commands/memory.js.map +1 -1
  42. package/dist/src/commands/migrate.js +2 -2
  43. package/dist/src/commands/neural.js +1 -1
  44. package/dist/src/commands/neural.js.map +1 -1
  45. package/dist/src/commands/swarm.js +1 -1
  46. package/dist/src/commands/swarm.js.map +1 -1
  47. package/dist/src/config-adapter.d.ts.map +1 -1
  48. package/dist/src/config-adapter.js +8 -8
  49. package/dist/src/config-adapter.js.map +1 -1
  50. package/dist/src/index.js +1 -1
  51. package/dist/src/index.js.map +1 -1
  52. package/dist/src/init/claudemd-generator.js +2 -2
  53. package/dist/src/init/executor.js +16 -16
  54. package/dist/src/init/executor.js.map +1 -1
  55. package/dist/src/init/shared-instructions-generator.d.ts +1 -1
  56. package/dist/src/init/shared-instructions-generator.js +1 -1
  57. package/dist/src/init/statusline-generator.d.ts +1 -1
  58. package/dist/src/init/statusline-generator.js +8 -8
  59. package/dist/src/init/types.d.ts +3 -3
  60. package/dist/src/init/types.d.ts.map +1 -1
  61. package/dist/src/init/types.js +3 -3
  62. package/dist/src/init/types.js.map +1 -1
  63. package/dist/src/mcp-client.d.ts.map +1 -1
  64. package/dist/src/mcp-client.js +4 -11
  65. package/dist/src/mcp-client.js.map +1 -1
  66. package/dist/src/mcp-tools/autopilot-tools.js +3 -3
  67. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
  68. package/dist/src/mcp-tools/coherence-tools.d.ts +2 -2
  69. package/dist/src/mcp-tools/coherence-tools.js +2 -2
  70. package/dist/src/mcp-tools/daa-tools.js +13 -13
  71. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  72. package/dist/src/mcp-tools/guidance-tools.js +4 -4
  73. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  74. package/dist/src/mcp-tools/hive-mind-tools.js +4 -4
  75. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  76. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  77. package/dist/src/mcp-tools/hooks-intelligence.js +1 -0
  78. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  79. package/dist/src/mcp-tools/hooks-routing.js +23 -23
  80. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  81. package/dist/src/mcp-tools/index.d.ts +0 -1
  82. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  83. package/dist/src/mcp-tools/index.js +0 -2
  84. package/dist/src/mcp-tools/index.js.map +1 -1
  85. package/dist/src/mcp-tools/memory-tools.d.ts +22 -6
  86. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  87. package/dist/src/mcp-tools/memory-tools.js +553 -505
  88. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  89. package/dist/src/mcp-tools/progress-tools.js +1 -1
  90. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  91. package/dist/src/mcp-tools/quality-tools.d.ts +2 -2
  92. package/dist/src/mcp-tools/quality-tools.js +3 -3
  93. package/dist/src/mcp-tools/quality-tools.js.map +1 -1
  94. package/dist/src/mcp-tools/system-tools.js +5 -5
  95. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  96. package/dist/src/mcp-tools/transfer-tools.d.ts +1 -1
  97. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  98. package/dist/src/mcp-tools/transfer-tools.js +1 -156
  99. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  100. package/dist/src/memory/embedding-operations.js +3 -3
  101. package/dist/src/memory/embedding-operations.js.map +1 -1
  102. package/dist/src/memory/hnsw-operations.js +5 -5
  103. package/dist/src/memory/hnsw-operations.js.map +1 -1
  104. package/dist/src/memory/intelligence.js +2 -2
  105. package/dist/src/memory/intelligence.js.map +1 -1
  106. package/dist/src/memory/memory-bridge.d.ts +86 -234
  107. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  108. package/dist/src/memory/memory-bridge.js +455 -1702
  109. package/dist/src/memory/memory-bridge.js.map +1 -1
  110. package/dist/src/memory/memory-crud.js +3 -3
  111. package/dist/src/memory/memory-crud.js.map +1 -1
  112. package/dist/src/memory/memory-initializer.d.ts +1 -1
  113. package/dist/src/memory/memory-initializer.js +5 -5
  114. package/dist/src/memory/memory-initializer.js.map +1 -1
  115. package/dist/src/memory/memory-read.js +4 -4
  116. package/dist/src/memory/memory-read.js.map +1 -1
  117. package/dist/src/suggest.js +0 -1
  118. package/dist/src/suggest.js.map +1 -1
  119. package/dist/src/types.d.ts +1 -1
  120. package/dist/src/ui/dashboard.html +41 -5
  121. package/dist/src/ui/orgs.html +91 -5
  122. package/dist/src/ui/server.mjs +44 -0
  123. package/dist/src/update/validator.d.ts.map +1 -1
  124. package/dist/src/update/validator.js +1 -3
  125. package/dist/src/update/validator.js.map +1 -1
  126. package/dist/tsconfig.tsbuildinfo +1 -1
  127. package/package.json +4 -4
  128. package/dist/src/commands/plugins.d.ts +0 -11
  129. package/dist/src/commands/plugins.d.ts.map +0 -1
  130. package/dist/src/commands/plugins.js +0 -799
  131. package/dist/src/commands/plugins.js.map +0 -1
  132. package/dist/src/plugins/manager.d.ts +0 -133
  133. package/dist/src/plugins/manager.d.ts.map +0 -1
  134. package/dist/src/plugins/manager.js +0 -498
  135. package/dist/src/plugins/manager.js.map +0 -1
  136. package/dist/src/plugins/store/discovery.d.ts +0 -88
  137. package/dist/src/plugins/store/discovery.d.ts.map +0 -1
  138. package/dist/src/plugins/store/discovery.js +0 -770
  139. package/dist/src/plugins/store/discovery.js.map +0 -1
  140. package/dist/src/plugins/store/index.d.ts +0 -76
  141. package/dist/src/plugins/store/index.d.ts.map +0 -1
  142. package/dist/src/plugins/store/index.js +0 -141
  143. package/dist/src/plugins/store/index.js.map +0 -1
  144. package/dist/src/plugins/store/search.d.ts +0 -46
  145. package/dist/src/plugins/store/search.d.ts.map +0 -1
  146. package/dist/src/plugins/store/search.js +0 -231
  147. package/dist/src/plugins/store/search.js.map +0 -1
  148. package/dist/src/plugins/store/types.d.ts +0 -274
  149. package/dist/src/plugins/store/types.d.ts.map +0 -1
  150. package/dist/src/plugins/store/types.js +0 -7
  151. package/dist/src/plugins/store/types.js.map +0 -1
  152. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  153. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +0 -1
  154. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  155. package/dist/src/plugins/tests/demo-plugin-store.js.map +0 -1
  156. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  157. package/dist/src/plugins/tests/standalone-test.d.ts.map +0 -1
  158. package/dist/src/plugins/tests/standalone-test.js +0 -188
  159. package/dist/src/plugins/tests/standalone-test.js.map +0 -1
  160. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  161. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +0 -1
  162. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  163. package/dist/src/plugins/tests/test-plugin-store.js.map +0 -1
  164. package/dist/src/services/registry-api.d.ts +0 -58
  165. package/dist/src/services/registry-api.d.ts.map +0 -1
  166. package/dist/src/services/registry-api.js +0 -199
  167. package/dist/src/services/registry-api.js.map +0 -1
  168. package/scripts/publish-registry.ts +0 -341
@@ -1,498 +0,0 @@
1
- /**
2
- * Plugin Manager
3
- * Handles actual plugin installation, persistence, and lifecycle
4
- * Bridges discovery service with file system persistence
5
- */
6
- import * as fs from 'fs';
7
- import * as path from 'path';
8
- import { execFile } from 'child_process';
9
- import { promisify } from 'util';
10
- const execFileAsync = promisify(execFile);
11
- /**
12
- * Validate npm package name to prevent shell injection (S-3)
13
- */
14
- const VALID_PACKAGE_RE = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*(@[a-z0-9._\-^~>=<]+)?$/;
15
- function validatePackageName(spec) {
16
- if (!VALID_PACKAGE_RE.test(spec)) {
17
- throw new Error(`Invalid package name: ${spec}`);
18
- }
19
- }
20
- const VALID_VERSION_RE = /^[a-zA-Z0-9._\-^~>=<*]+$/;
21
- function validateVersion(version) {
22
- if (!VALID_VERSION_RE.test(version) || version.length > 50) {
23
- throw new Error(`Invalid version specifier: ${version}`);
24
- }
25
- }
26
- /** Forbidden manifest keys (prototype pollution defense) */
27
- const FORBIDDEN_PLUGIN_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
28
- function isValidPluginKey(name) {
29
- return typeof name === 'string'
30
- && name.length > 0
31
- && name.length <= 214
32
- && !FORBIDDEN_PLUGIN_KEYS.has(name)
33
- && VALID_PACKAGE_RE.test(name);
34
- }
35
- // ============================================================================
36
- // Plugin Manager
37
- // ============================================================================
38
- /**
39
- * Manages plugin installation, persistence, and lifecycle.
40
- *
41
- * Unlike the simulated version, this actually:
42
- * - Persists plugins to disk
43
- * - Downloads from npm
44
- * - Tracks enabled/disabled state
45
- * - Loads plugin modules
46
- */
47
- export class PluginManager {
48
- config;
49
- manifest = null;
50
- constructor(baseDir = process.cwd()) {
51
- const pluginsDir = path.join(baseDir, '.monomind', 'plugins');
52
- this.config = {
53
- pluginsDir,
54
- manifestPath: path.join(pluginsDir, 'installed.json'),
55
- };
56
- }
57
- // =========================================================================
58
- // Initialization
59
- // =========================================================================
60
- /**
61
- * Initialize the plugin manager, creating directories and loading manifest
62
- */
63
- async initialize() {
64
- // Ensure plugins directory exists
65
- await this.ensureDirectory(this.config.pluginsDir);
66
- // Load or create manifest
67
- this.manifest = await this.loadManifest();
68
- }
69
- async ensureDirectory(dir) {
70
- if (!fs.existsSync(dir)) {
71
- fs.mkdirSync(dir, { recursive: true });
72
- }
73
- }
74
- async loadManifest() {
75
- try {
76
- const MAX_MANIFEST_BYTES = 10 * 1024 * 1024; // 10 MB
77
- if (fs.existsSync(this.config.manifestPath) && fs.statSync(this.config.manifestPath).size <= MAX_MANIFEST_BYTES) {
78
- const content = fs.readFileSync(this.config.manifestPath, 'utf-8');
79
- const parsed = JSON.parse(content);
80
- if (Object.prototype.hasOwnProperty.call(parsed, '__proto__') ||
81
- Object.prototype.hasOwnProperty.call(parsed, 'constructor') ||
82
- Object.prototype.hasOwnProperty.call(parsed, 'prototype')) {
83
- throw new Error('Manifest contains forbidden keys');
84
- }
85
- return parsed;
86
- }
87
- }
88
- catch (error) {
89
- console.warn('[PluginManager] Failed to load manifest, creating new one');
90
- }
91
- return {
92
- version: '1.0.0',
93
- lastUpdated: new Date().toISOString(),
94
- plugins: {},
95
- };
96
- }
97
- async saveManifest() {
98
- if (!this.manifest)
99
- return;
100
- this.manifest.lastUpdated = new Date().toISOString();
101
- await this.ensureDirectory(path.dirname(this.config.manifestPath));
102
- // Atomic write to prevent corruption on crash
103
- const tmp = this.config.manifestPath + '.tmp';
104
- fs.writeFileSync(tmp, JSON.stringify(this.manifest, null, 2), 'utf-8');
105
- fs.renameSync(tmp, this.config.manifestPath);
106
- }
107
- // =========================================================================
108
- // Installation
109
- // =========================================================================
110
- /**
111
- * Install a plugin from npm
112
- */
113
- async installFromNpm(packageName, version) {
114
- if (!this.manifest) {
115
- await this.initialize();
116
- }
117
- if (!isValidPluginKey(packageName)) {
118
- return { success: false, error: `Invalid package name: ${packageName}` };
119
- }
120
- if (version) {
121
- try {
122
- validateVersion(version);
123
- }
124
- catch {
125
- return { success: false, error: `Invalid version specifier: ${version}` };
126
- }
127
- }
128
- const versionSpec = version ? `${packageName}@${version}` : packageName;
129
- try {
130
- // Check if already installed
131
- if (Object.hasOwn(this.manifest.plugins, packageName)) {
132
- return {
133
- success: false,
134
- error: `Plugin ${packageName} is already installed. Use upgrade to update.`,
135
- };
136
- }
137
- // Install to local plugins directory
138
- const installDir = path.join(this.config.pluginsDir, 'node_modules');
139
- await this.ensureDirectory(installDir);
140
- // Validate package name to prevent injection (S-3)
141
- validatePackageName(versionSpec);
142
- // Use npm to install. --ignore-scripts blocks pre/post-install lifecycle hooks
143
- // from the plugin package, which would otherwise execute arbitrary code at
144
- // install time (the canonical npm supply-chain attack vector).
145
- console.log(`[PluginManager] Installing ${versionSpec}...`);
146
- await execFileAsync('npm', ['install', '--ignore-scripts', '--prefix', this.config.pluginsDir, versionSpec], { timeout: 120000 });
147
- // Get installed version
148
- const packageJsonPath = path.join(installDir, packageName, 'package.json');
149
- let installedVersion = version || 'latest';
150
- let commands = [];
151
- let hooks = [];
152
- const MAX_PKG_JSON_BYTES = 1024 * 1024; // 1 MB
153
- if (fs.existsSync(packageJsonPath) && fs.statSync(packageJsonPath).size <= MAX_PKG_JSON_BYTES) {
154
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
155
- installedVersion = pkg.version;
156
- // Check for monomind plugin metadata
157
- if (pkg['monomind']) {
158
- commands = Array.isArray(pkg['monomind'].commands) ? pkg['monomind'].commands : [];
159
- hooks = Array.isArray(pkg['monomind'].hooks) ? pkg['monomind'].hooks : [];
160
- }
161
- }
162
- // Create plugin entry
163
- const plugin = {
164
- name: packageName,
165
- version: installedVersion,
166
- installedAt: new Date().toISOString(),
167
- enabled: true,
168
- source: 'npm',
169
- path: path.join(installDir, packageName),
170
- commands,
171
- hooks,
172
- };
173
- // Save to manifest
174
- this.manifest.plugins[packageName] = plugin;
175
- await this.saveManifest();
176
- console.log(`[PluginManager] Installed ${packageName}@${installedVersion}`);
177
- return { success: true, plugin };
178
- }
179
- catch (error) {
180
- const errorMsg = error instanceof Error ? error.message : String(error);
181
- console.error(`[PluginManager] Failed to install ${packageName}:`, errorMsg);
182
- return { success: false, error: errorMsg };
183
- }
184
- }
185
- /**
186
- * Install a plugin from a local path
187
- */
188
- async installFromLocal(sourcePath) {
189
- if (!this.manifest) {
190
- await this.initialize();
191
- }
192
- try {
193
- const absolutePath = path.resolve(sourcePath);
194
- // Restrict local installs to paths under cwd or $HOME to prevent path traversal
195
- const cwd = process.cwd();
196
- const home = process.env.HOME ?? process.env.USERPROFILE ?? '';
197
- const underCwd = absolutePath.startsWith(cwd + path.sep) || absolutePath === cwd;
198
- const underHome = home && (absolutePath.startsWith(home + path.sep) || absolutePath === home);
199
- if (!underCwd && !underHome) {
200
- return { success: false, error: `Local path must be within the current directory or home: ${absolutePath}` };
201
- }
202
- if (!fs.existsSync(absolutePath)) {
203
- return { success: false, error: `Path does not exist: ${absolutePath}` };
204
- }
205
- // Read package.json
206
- const packageJsonPath = path.join(absolutePath, 'package.json');
207
- if (!fs.existsSync(packageJsonPath)) {
208
- return { success: false, error: 'No package.json found at path' };
209
- }
210
- if (fs.statSync(packageJsonPath).size > 1024 * 1024) {
211
- return { success: false, error: 'package.json exceeds size limit' };
212
- }
213
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
214
- const packageName = pkg.name;
215
- if (!isValidPluginKey(packageName)) {
216
- return { success: false, error: `Invalid package.json: name is missing or invalid` };
217
- }
218
- // Check if already installed
219
- if (Object.hasOwn(this.manifest.plugins, packageName)) {
220
- return {
221
- success: false,
222
- error: `Plugin ${packageName} is already installed`,
223
- };
224
- }
225
- // Create plugin entry (link to local path, don't copy)
226
- const plugin = {
227
- name: packageName,
228
- version: pkg.version,
229
- installedAt: new Date().toISOString(),
230
- enabled: true,
231
- source: 'local',
232
- path: absolutePath,
233
- commands: pkg['monomind']?.commands || [],
234
- hooks: pkg['monomind']?.hooks || [],
235
- };
236
- // Save to manifest
237
- this.manifest.plugins[packageName] = plugin;
238
- await this.saveManifest();
239
- console.log(`[PluginManager] Installed local plugin ${packageName}@${pkg.version}`);
240
- return { success: true, plugin };
241
- }
242
- catch (error) {
243
- const errorMsg = error instanceof Error ? error.message : String(error);
244
- console.error(`[PluginManager] Failed to install from local:`, errorMsg);
245
- return { success: false, error: errorMsg };
246
- }
247
- }
248
- // =========================================================================
249
- // Uninstallation
250
- // =========================================================================
251
- /**
252
- * Uninstall a plugin
253
- */
254
- async uninstall(packageName) {
255
- if (!this.manifest) {
256
- await this.initialize();
257
- }
258
- if (!isValidPluginKey(packageName)) {
259
- return { success: false, error: `Invalid package name` };
260
- }
261
- const plugin = Object.hasOwn(this.manifest.plugins, packageName)
262
- ? this.manifest.plugins[packageName]
263
- : undefined;
264
- if (!plugin) {
265
- return { success: false, error: `Plugin ${packageName} is not installed` };
266
- }
267
- try {
268
- // For npm-installed plugins, remove from node_modules
269
- if (plugin.source === 'npm') {
270
- validatePackageName(packageName);
271
- await execFileAsync('npm', ['uninstall', '--ignore-scripts', '--prefix', this.config.pluginsDir, packageName], { timeout: 60000 });
272
- }
273
- // Remove from manifest
274
- delete this.manifest.plugins[packageName];
275
- await this.saveManifest();
276
- console.log(`[PluginManager] Uninstalled ${packageName}`);
277
- return { success: true };
278
- }
279
- catch (error) {
280
- const errorMsg = error instanceof Error ? error.message : String(error);
281
- console.error(`[PluginManager] Failed to uninstall ${packageName}:`, errorMsg);
282
- return { success: false, error: errorMsg };
283
- }
284
- }
285
- // =========================================================================
286
- // Enable/Disable
287
- // =========================================================================
288
- /**
289
- * Enable a plugin
290
- */
291
- async enable(packageName) {
292
- if (!this.manifest) {
293
- await this.initialize();
294
- }
295
- if (!isValidPluginKey(packageName)) {
296
- return { success: false, error: `Invalid package name` };
297
- }
298
- const plugin = Object.hasOwn(this.manifest.plugins, packageName)
299
- ? this.manifest.plugins[packageName]
300
- : undefined;
301
- if (!plugin) {
302
- return { success: false, error: `Plugin ${packageName} is not installed` };
303
- }
304
- plugin.enabled = true;
305
- await this.saveManifest();
306
- return { success: true };
307
- }
308
- /**
309
- * Disable a plugin
310
- */
311
- async disable(packageName) {
312
- if (!this.manifest) {
313
- await this.initialize();
314
- }
315
- if (!isValidPluginKey(packageName)) {
316
- return { success: false, error: `Invalid package name` };
317
- }
318
- const plugin = Object.hasOwn(this.manifest.plugins, packageName)
319
- ? this.manifest.plugins[packageName]
320
- : undefined;
321
- if (!plugin) {
322
- return { success: false, error: `Plugin ${packageName} is not installed` };
323
- }
324
- plugin.enabled = false;
325
- await this.saveManifest();
326
- return { success: true };
327
- }
328
- /**
329
- * Toggle a plugin's enabled state
330
- */
331
- async toggle(packageName) {
332
- if (!this.manifest) {
333
- await this.initialize();
334
- }
335
- if (!isValidPluginKey(packageName)) {
336
- return { success: false, error: `Invalid package name` };
337
- }
338
- const plugin = Object.hasOwn(this.manifest.plugins, packageName)
339
- ? this.manifest.plugins[packageName]
340
- : undefined;
341
- if (!plugin) {
342
- return { success: false, error: `Plugin ${packageName} is not installed` };
343
- }
344
- plugin.enabled = !plugin.enabled;
345
- await this.saveManifest();
346
- return { success: true, enabled: plugin.enabled };
347
- }
348
- // =========================================================================
349
- // Query
350
- // =========================================================================
351
- /**
352
- * Get all installed plugins
353
- */
354
- async getInstalled() {
355
- if (!this.manifest) {
356
- await this.initialize();
357
- }
358
- return Object.values(this.manifest.plugins);
359
- }
360
- /**
361
- * Get enabled plugins
362
- */
363
- async getEnabled() {
364
- const all = await this.getInstalled();
365
- return all.filter(p => p.enabled);
366
- }
367
- /**
368
- * Check if a plugin is installed
369
- */
370
- async isInstalled(packageName) {
371
- if (!this.manifest) {
372
- await this.initialize();
373
- }
374
- if (!isValidPluginKey(packageName))
375
- return false;
376
- return Object.hasOwn(this.manifest.plugins, packageName);
377
- }
378
- /**
379
- * Get a specific installed plugin
380
- */
381
- async getPlugin(packageName) {
382
- if (!this.manifest) {
383
- await this.initialize();
384
- }
385
- if (!isValidPluginKey(packageName))
386
- return undefined;
387
- return Object.hasOwn(this.manifest.plugins, packageName)
388
- ? this.manifest.plugins[packageName]
389
- : undefined;
390
- }
391
- // =========================================================================
392
- // Upgrade
393
- // =========================================================================
394
- /**
395
- * Upgrade a plugin to a new version
396
- */
397
- async upgrade(packageName, version) {
398
- if (!this.manifest) {
399
- await this.initialize();
400
- }
401
- if (!isValidPluginKey(packageName)) {
402
- return { success: false, error: `Invalid package name` };
403
- }
404
- if (version) {
405
- try {
406
- validateVersion(version);
407
- }
408
- catch {
409
- return { success: false, error: `Invalid version specifier: ${version}` };
410
- }
411
- }
412
- const existing = Object.hasOwn(this.manifest.plugins, packageName)
413
- ? this.manifest.plugins[packageName]
414
- : undefined;
415
- if (!existing) {
416
- return { success: false, error: `Plugin ${packageName} is not installed` };
417
- }
418
- if (existing.source !== 'npm') {
419
- return { success: false, error: 'Can only upgrade npm-installed plugins' };
420
- }
421
- try {
422
- const versionSpec = version ? `${packageName}@${version}` : `${packageName}@latest`;
423
- // Validate package name to prevent injection (S-3)
424
- validatePackageName(versionSpec);
425
- // Reinstall with new version. --ignore-scripts blocks pre/post-install
426
- // lifecycle hooks from the plugin package.
427
- await execFileAsync('npm', ['install', '--ignore-scripts', '--prefix', this.config.pluginsDir, versionSpec], { timeout: 120000 });
428
- // Update manifest
429
- const installDir = path.join(this.config.pluginsDir, 'node_modules');
430
- const packageJsonPath = path.join(installDir, packageName, 'package.json');
431
- if (fs.existsSync(packageJsonPath) && fs.statSync(packageJsonPath).size <= 1024 * 1024) {
432
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
433
- existing.version = pkg.version;
434
- existing.commands = pkg['monomind']?.commands || existing.commands;
435
- existing.hooks = pkg['monomind']?.hooks || existing.hooks;
436
- }
437
- await this.saveManifest();
438
- console.log(`[PluginManager] Upgraded ${packageName} to ${existing.version}`);
439
- return { success: true, plugin: existing };
440
- }
441
- catch (error) {
442
- const errorMsg = error instanceof Error ? error.message : String(error);
443
- return { success: false, error: errorMsg };
444
- }
445
- }
446
- // =========================================================================
447
- // Config
448
- // =========================================================================
449
- /**
450
- * Update plugin config
451
- */
452
- async setConfig(packageName, config) {
453
- if (!this.manifest) {
454
- await this.initialize();
455
- }
456
- if (!isValidPluginKey(packageName)) {
457
- return { success: false, error: `Invalid package name` };
458
- }
459
- const plugin = Object.hasOwn(this.manifest.plugins, packageName)
460
- ? this.manifest.plugins[packageName]
461
- : undefined;
462
- if (!plugin) {
463
- return { success: false, error: `Plugin ${packageName} is not installed` };
464
- }
465
- plugin.config = { ...plugin.config, ...config };
466
- await this.saveManifest();
467
- return { success: true };
468
- }
469
- /**
470
- * Get plugins directory path
471
- */
472
- getPluginsDir() {
473
- return this.config.pluginsDir;
474
- }
475
- /**
476
- * Get manifest path
477
- */
478
- getManifestPath() {
479
- return this.config.manifestPath;
480
- }
481
- }
482
- // ============================================================================
483
- // Singleton Instance
484
- // ============================================================================
485
- let defaultManager = null;
486
- export function getPluginManager(baseDir) {
487
- if (!defaultManager) {
488
- defaultManager = new PluginManager(baseDir);
489
- }
490
- else if (baseDir && defaultManager.getPluginsDir() !== path.join(baseDir, '.monomind', 'plugins')) {
491
- console.warn(`[PluginManager] Warning: getPluginManager called with different baseDir. Using existing instance. Call resetPluginManager() first to change.`);
492
- }
493
- return defaultManager;
494
- }
495
- export function resetPluginManager() {
496
- defaultManager = null;
497
- }
498
- //# sourceMappingURL=manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/plugins/manager.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- /**
2
- * Plugin Discovery Service
3
- * Discovers plugin registries via IPNS and fetches from IPFS
4
- * Parallel implementation to pattern store for plugins
5
- */
6
- import type { PluginRegistry, KnownPluginRegistry, PluginStoreConfig } from './types.js';
7
- /**
8
- * Default plugin store configuration
9
- */
10
- /**
11
- * Live IPFS Registry CID - Updated 2026-01-24
12
- * This is the current pinned registry on Pinata
13
- */
14
- export declare const LIVE_REGISTRY_CID = "QmXbfEAaR7D2Ujm4GAkbwcGZQMHqAMpwDoje4583uNP834";
15
- /**
16
- * Pre-trained Model Registry CID - Updated 2026-01-24
17
- * Contains 8 pre-trained learning pattern models with 40 patterns
18
- * Trained on 110,600+ examples with 90.5% average accuracy
19
- */
20
- export declare const MODEL_REGISTRY_CID = "QmNr1yYMKi7YBaL8JSztQyuB5ZUaTdRMLxJC1pBpGbjsTc";
21
- export declare const DEFAULT_PLUGIN_STORE_CONFIG: PluginStoreConfig;
22
- /**
23
- * Discovery result
24
- */
25
- export interface PluginDiscoveryResult {
26
- success: boolean;
27
- registry?: PluginRegistry;
28
- cid?: string;
29
- source?: string;
30
- fromCache?: boolean;
31
- error?: string;
32
- }
33
- /**
34
- * Plugin Discovery Service
35
- */
36
- export declare class PluginDiscoveryService {
37
- private config;
38
- private cache;
39
- constructor(config?: Partial<PluginStoreConfig>);
40
- /**
41
- * Discover plugin registry via IPNS
42
- */
43
- discoverRegistry(registryName?: string): Promise<PluginDiscoveryResult>;
44
- /**
45
- * Create demo plugin registry with real npm stats
46
- */
47
- private createDemoRegistryAsync;
48
- /**
49
- * Get demo plugins
50
- */
51
- private getDemoPlugins;
52
- /**
53
- * Get demo plugins with real npm stats
54
- */
55
- private getDemoPluginsWithStats;
56
- /**
57
- * Verify registry signature using real Ed25519
58
- */
59
- private verifyRegistrySignature;
60
- /**
61
- * List available registries
62
- */
63
- listRegistries(): KnownPluginRegistry[];
64
- /**
65
- * Add a new registry
66
- */
67
- addRegistry(registry: KnownPluginRegistry): void;
68
- /**
69
- * Remove a registry
70
- */
71
- removeRegistry(name: string): boolean;
72
- /**
73
- * Clear cache
74
- */
75
- clearCache(): void;
76
- /**
77
- * Get cache statistics
78
- */
79
- getCacheStats(): {
80
- entries: number;
81
- registries: string[];
82
- };
83
- }
84
- /**
85
- * Create discovery service with default config
86
- */
87
- export declare function createPluginDiscoveryService(config?: Partial<PluginStoreConfig>): PluginDiscoveryService;
88
- //# sourceMappingURL=discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../../src/plugins/store/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EAElB,MAAM,YAAY,CAAC;AA4EpB;;GAEG;AACH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,mDAAmD,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,mDAAmD,CAAC;AAEnF,eAAO,MAAM,2BAA2B,EAAE,iBAkCzC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,KAAK,CAA2E;gBAE5E,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAInD;;OAEG;IACG,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgF7E;;OAEG;YACW,uBAAuB;IAwDrC;;OAEG;IACH,OAAO,CAAC,cAAc;IA8XtB;;OAEG;YACW,uBAAuB;IAoDrC;;OAEG;YACW,uBAAuB;IAwBrC;;OAEG;IACH,cAAc,IAAI,mBAAmB,EAAE;IAIvC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIhD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IASrC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE;CAM3D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,sBAAsB,CAExB"}