specweave 0.8.3 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +11 -0
- package/dist/adapters/adapter-loader.d.ts +4 -4
- package/dist/adapters/adapter-loader.d.ts.map +1 -1
- package/dist/adapters/adapter-loader.js +8 -7
- package/dist/adapters/adapter-loader.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +7 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/utils/docs-preview/config-generator.d.ts +46 -0
- package/dist/utils/docs-preview/config-generator.d.ts.map +1 -0
- package/dist/utils/docs-preview/config-generator.js +377 -0
- package/dist/utils/docs-preview/config-generator.js.map +1 -0
- package/dist/utils/docs-preview/docusaurus-setup.d.ts +38 -0
- package/dist/utils/docs-preview/docusaurus-setup.d.ts.map +1 -0
- package/dist/utils/docs-preview/docusaurus-setup.js +177 -0
- package/dist/utils/docs-preview/docusaurus-setup.js.map +1 -0
- package/dist/utils/docs-preview/index.d.ts +11 -0
- package/dist/utils/docs-preview/index.d.ts.map +1 -0
- package/dist/utils/docs-preview/index.js +17 -0
- package/dist/utils/docs-preview/index.js.map +1 -0
- package/dist/utils/docs-preview/package-installer.d.ts +42 -0
- package/dist/utils/docs-preview/package-installer.d.ts.map +1 -0
- package/dist/utils/docs-preview/package-installer.js +182 -0
- package/dist/utils/docs-preview/package-installer.js.map +1 -0
- package/dist/utils/docs-preview/server-manager.d.ts +30 -0
- package/dist/utils/docs-preview/server-manager.d.ts.map +1 -0
- package/dist/utils/docs-preview/server-manager.js +207 -0
- package/dist/utils/docs-preview/server-manager.js.map +1 -0
- package/dist/utils/docs-preview/sidebar-builder.d.ts +31 -0
- package/dist/utils/docs-preview/sidebar-builder.d.ts.map +1 -0
- package/dist/utils/docs-preview/sidebar-builder.js +202 -0
- package/dist/utils/docs-preview/sidebar-builder.js.map +1 -0
- package/dist/utils/docs-preview/types.d.ts +60 -0
- package/dist/utils/docs-preview/types.d.ts.map +1 -0
- package/dist/utils/docs-preview/types.js +5 -0
- package/dist/utils/docs-preview/types.js.map +1 -0
- package/dist/utils/docs-preview.bak/config-generator.d.ts +46 -0
- package/dist/utils/docs-preview.bak/config-generator.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/config-generator.js +377 -0
- package/dist/utils/docs-preview.bak/config-generator.js.map +1 -0
- package/dist/utils/docs-preview.bak/package-installer.d.ts +42 -0
- package/dist/utils/docs-preview.bak/package-installer.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/package-installer.js +182 -0
- package/dist/utils/docs-preview.bak/package-installer.js.map +1 -0
- package/dist/utils/docs-preview.bak/server-manager.d.ts +30 -0
- package/dist/utils/docs-preview.bak/server-manager.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/server-manager.js +207 -0
- package/dist/utils/docs-preview.bak/server-manager.js.map +1 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.d.ts +31 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.js +202 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.js.map +1 -0
- package/dist/utils/docs-preview.bak/types.d.ts +60 -0
- package/dist/utils/docs-preview.bak/types.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/types.js +5 -0
- package/dist/utils/docs-preview.bak/types.js.map +1 -0
- package/package.json +1 -1
- package/dist/cli/commands/plugin.js +0 -322
- package/dist/cli/commands/plugin.js.map +0 -1
- package/dist/core/plugin-detector.d.ts +0 -97
- package/dist/core/plugin-detector.d.ts.map +0 -1
- package/dist/core/plugin-detector.js +0 -374
- package/dist/core/plugin-detector.js.map +0 -1
- package/dist/core/plugin-manager.d.ts +0 -144
- package/dist/core/plugin-manager.d.ts.map +0 -1
- package/dist/core/plugin-manager.js +0 -393
- package/dist/core/plugin-manager.js.map +0 -1
- package/dist/utils/plugin-detection.js +0 -229
- package/dist/utils/plugin-detection.js.map +0 -1
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plugin CLI Command (DEPRECATED in v0.6.0)
|
|
3
|
-
*
|
|
4
|
-
* ⚠️ DEPRECATION NOTICE:
|
|
5
|
-
* This command is deprecated. Use Claude Code's native plugin system instead:
|
|
6
|
-
* - `/plugin list specweave` - List available plugins
|
|
7
|
-
* - `/plugin install specweave-{name}@specweave` - Install a plugin
|
|
8
|
-
* - `/plugin uninstall specweave-{name}` - Uninstall a plugin
|
|
9
|
-
*
|
|
10
|
-
* SpecWeave now uses ONLY Claude Code's native plugin system (global install).
|
|
11
|
-
* No per-project plugin management is needed.
|
|
12
|
-
*
|
|
13
|
-
* This command will be removed in v0.7.0.
|
|
14
|
-
*
|
|
15
|
-
* Legacy functionality (for backwards compatibility):
|
|
16
|
-
* - list: List available plugins
|
|
17
|
-
* - enable: Enable a plugin (deprecated - use /plugin install)
|
|
18
|
-
* - disable: Disable a plugin (deprecated - use /plugin uninstall)
|
|
19
|
-
* - info: Show detailed plugin information
|
|
20
|
-
*/
|
|
21
|
-
import chalk from 'chalk';
|
|
22
|
-
import { PluginManager } from '../../core/plugin-manager.js';
|
|
23
|
-
import { PluginDetector } from '../../core/plugin-detector.js';
|
|
24
|
-
import { AdapterLoader } from '../../adapters/adapter-loader.js';
|
|
25
|
-
import { fileURLToPath } from 'url';
|
|
26
|
-
import { dirname } from 'path';
|
|
27
|
-
import { getLocaleManager } from '../../core/i18n/locale-manager.js';
|
|
28
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
29
|
-
const __dirname = dirname(__filename);
|
|
30
|
-
/**
|
|
31
|
-
* List available and enabled plugins
|
|
32
|
-
*/
|
|
33
|
-
export async function listPlugins(options) {
|
|
34
|
-
const locale = getLocaleManager(options.language || 'en');
|
|
35
|
-
// Show deprecation warning
|
|
36
|
-
console.log(chalk.yellow(`\n⚠️ DEPRECATED: Use Claude Code's native plugin commands instead:`));
|
|
37
|
-
console.log(chalk.gray(` /plugin list specweave`));
|
|
38
|
-
console.log(chalk.gray(` /plugin install specweave-{name}@specweave\n`));
|
|
39
|
-
try {
|
|
40
|
-
console.log(chalk.blue(`\n${locale.t('cli', 'plugin.list.header')}\n`));
|
|
41
|
-
const projectRoot = process.cwd();
|
|
42
|
-
const manager = new PluginManager(projectRoot);
|
|
43
|
-
if (options.enabled || (!options.enabled && !options.available)) {
|
|
44
|
-
// Show enabled plugins
|
|
45
|
-
const enabledPlugins = await manager.getEnabledPlugins();
|
|
46
|
-
console.log(chalk.green(locale.t('cli', 'plugin.list.enabledHeader')));
|
|
47
|
-
if (enabledPlugins.length === 0) {
|
|
48
|
-
console.log(chalk.gray(` ${locale.t('cli', 'plugin.list.enabledNone')}`));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
for (const pluginName of enabledPlugins) {
|
|
52
|
-
try {
|
|
53
|
-
const plugin = manager.getPlugin(pluginName);
|
|
54
|
-
console.log(` ${chalk.cyan(plugin.manifest.name)} ${chalk.gray(`v${plugin.manifest.version}`)}`);
|
|
55
|
-
console.log(` ${chalk.gray(plugin.manifest.description)}`);
|
|
56
|
-
console.log(` ${chalk.gray(locale.t('cli', 'plugin.list.statsFormat', {
|
|
57
|
-
skills: plugin.skills.length,
|
|
58
|
-
agents: plugin.agents.length,
|
|
59
|
-
commands: plugin.commands.length
|
|
60
|
-
}))}`);
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
console.log(` ${chalk.cyan(pluginName)} ${chalk.red(locale.t('cli', 'plugin.list.errorLoading'))}`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
console.log();
|
|
68
|
-
}
|
|
69
|
-
if (options.available || (!options.enabled && !options.available)) {
|
|
70
|
-
// Show available plugins
|
|
71
|
-
const availablePlugins = await manager.getAvailablePlugins();
|
|
72
|
-
const enabledPlugins = await manager.getEnabledPlugins();
|
|
73
|
-
const disabledPlugins = availablePlugins.filter(p => !enabledPlugins.includes(p.name));
|
|
74
|
-
console.log(chalk.yellow(locale.t('cli', 'plugin.list.availableHeader')));
|
|
75
|
-
if (disabledPlugins.length === 0) {
|
|
76
|
-
console.log(chalk.gray(` ${locale.t('cli', 'plugin.list.availableNone')}`));
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
for (const plugin of disabledPlugins) {
|
|
80
|
-
console.log(` ${chalk.cyan(plugin.name)} ${chalk.gray(`v${plugin.version}`)}`);
|
|
81
|
-
console.log(` ${chalk.gray(plugin.description)}`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
console.log();
|
|
85
|
-
}
|
|
86
|
-
// Show auto-detection suggestions
|
|
87
|
-
const detector = new PluginDetector();
|
|
88
|
-
const detectionResults = await detector.detectFromProject(projectRoot);
|
|
89
|
-
const suggestions = detectionResults.map(r => r.pluginName);
|
|
90
|
-
const enabledPlugins = await manager.getEnabledPlugins();
|
|
91
|
-
const newSuggestions = suggestions.filter(s => !enabledPlugins.includes(s));
|
|
92
|
-
if (newSuggestions.length > 0) {
|
|
93
|
-
console.log(chalk.magenta(locale.t('cli', 'plugin.list.suggestedHeader')));
|
|
94
|
-
for (const suggestion of newSuggestions) {
|
|
95
|
-
console.log(` ${chalk.cyan(suggestion)}`);
|
|
96
|
-
}
|
|
97
|
-
console.log(chalk.gray(`\n${locale.t('cli', 'plugin.list.enableHint')}`));
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
catch (error) {
|
|
101
|
-
console.error(chalk.red(locale.t('cli', 'plugin.list.errorListing')), error instanceof Error ? error.message : error);
|
|
102
|
-
process.exit(1);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Enable a plugin
|
|
107
|
-
*/
|
|
108
|
-
export async function enablePlugin(pluginName, options) {
|
|
109
|
-
const locale = getLocaleManager(options.language || 'en');
|
|
110
|
-
try {
|
|
111
|
-
console.log(chalk.blue(`\n${locale.t('cli', 'plugin.enable.enablingPlugin', { name: pluginName })}\n`));
|
|
112
|
-
const projectRoot = process.cwd();
|
|
113
|
-
const adapterLoader = new AdapterLoader();
|
|
114
|
-
const toolName = await adapterLoader.detectTool();
|
|
115
|
-
const adapter = adapterLoader.getAdapter(toolName);
|
|
116
|
-
if (!adapter) {
|
|
117
|
-
throw new Error(`Adapter not found for tool: ${toolName}`);
|
|
118
|
-
}
|
|
119
|
-
const manager = new PluginManager(projectRoot);
|
|
120
|
-
// Check if already enabled
|
|
121
|
-
const enabledPlugins = await manager.getEnabledPlugins();
|
|
122
|
-
if (enabledPlugins.includes(pluginName) && !options.force) {
|
|
123
|
-
console.log(chalk.yellow(locale.t('cli', 'plugin.enable.alreadyEnabled', { name: pluginName })));
|
|
124
|
-
console.log(chalk.gray(locale.t('cli', 'plugin.enable.useForce')));
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
// Load and enable plugin
|
|
128
|
-
const loadOptions = {
|
|
129
|
-
force: options.force,
|
|
130
|
-
autoInstallDependencies: true
|
|
131
|
-
};
|
|
132
|
-
await manager.loadPlugin(pluginName, adapter, loadOptions);
|
|
133
|
-
console.log(chalk.green(`\n${locale.t('cli', 'plugin.enable.success', { name: pluginName })}`));
|
|
134
|
-
// Show what was installed
|
|
135
|
-
try {
|
|
136
|
-
const plugin = manager.getPlugin(pluginName);
|
|
137
|
-
console.log(chalk.gray(`\n${locale.t('cli', 'plugin.enable.installed')}`));
|
|
138
|
-
if (plugin.skills.length > 0) {
|
|
139
|
-
console.log(chalk.gray(` ${locale.t('cli', 'plugin.enable.skills', { names: plugin.skills.map(s => s.name).join(', ') })}`));
|
|
140
|
-
}
|
|
141
|
-
if (plugin.agents.length > 0) {
|
|
142
|
-
console.log(chalk.gray(` ${locale.t('cli', 'plugin.enable.agents', { names: plugin.agents.map(a => a.name).join(', ') })}`));
|
|
143
|
-
}
|
|
144
|
-
if (plugin.commands.length > 0) {
|
|
145
|
-
console.log(chalk.gray(` ${locale.t('cli', 'plugin.enable.commands', { names: plugin.commands.map(c => c.name).join(', ') })}`));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch (error) {
|
|
149
|
-
// Plugin info not available, skip
|
|
150
|
-
}
|
|
151
|
-
console.log(chalk.gray(`\n${locale.t('cli', 'plugin.enable.installedTo', { location: adapter.name === 'claude' ? '.claude/' : 'AGENTS.md' })}`));
|
|
152
|
-
if (adapter.name === 'claude') {
|
|
153
|
-
console.log(chalk.yellow(`\n${locale.t('cli', 'plugin.enable.restartClaude')}`));
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
console.error(chalk.red(locale.t('cli', 'plugin.enable.errorEnabling')), error instanceof Error ? error.message : error);
|
|
158
|
-
process.exit(1);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Disable a plugin
|
|
163
|
-
*/
|
|
164
|
-
export async function disablePlugin(pluginName, options) {
|
|
165
|
-
const locale = getLocaleManager(options.language || 'en');
|
|
166
|
-
try {
|
|
167
|
-
console.log(chalk.blue(`\n${locale.t('cli', 'plugin.disable.disablingPlugin', { name: pluginName })}\n`));
|
|
168
|
-
const projectRoot = process.cwd();
|
|
169
|
-
const adapterLoader = new AdapterLoader();
|
|
170
|
-
const toolName = await adapterLoader.detectTool();
|
|
171
|
-
const adapter = adapterLoader.getAdapter(toolName);
|
|
172
|
-
if (!adapter) {
|
|
173
|
-
throw new Error(`Adapter not found for tool: ${toolName}`);
|
|
174
|
-
}
|
|
175
|
-
const manager = new PluginManager(projectRoot);
|
|
176
|
-
// Check if enabled
|
|
177
|
-
const enabledPlugins = await manager.getEnabledPlugins();
|
|
178
|
-
if (!enabledPlugins.includes(pluginName)) {
|
|
179
|
-
console.log(chalk.yellow(locale.t('cli', 'plugin.disable.notEnabled', { name: pluginName })));
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
// Unload plugin
|
|
183
|
-
const unloadOptions = {
|
|
184
|
-
force: options.force
|
|
185
|
-
};
|
|
186
|
-
await manager.unloadPlugin(pluginName, adapter, unloadOptions);
|
|
187
|
-
console.log(chalk.green(`\n${locale.t('cli', 'plugin.disable.success', { name: pluginName })}`));
|
|
188
|
-
if (adapter.name === 'claude') {
|
|
189
|
-
console.log(chalk.yellow(`\n${locale.t('cli', 'plugin.disable.restartClaude')}`));
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
catch (error) {
|
|
193
|
-
console.error(chalk.red(locale.t('cli', 'plugin.disable.errorDisabling')), error instanceof Error ? error.message : error);
|
|
194
|
-
process.exit(1);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Show detailed plugin information
|
|
199
|
-
*/
|
|
200
|
-
export async function pluginInfo(pluginName, options) {
|
|
201
|
-
const locale = getLocaleManager(options?.language || 'en');
|
|
202
|
-
try {
|
|
203
|
-
console.log(chalk.blue(`\n${locale.t('cli', 'plugin.info.header', { name: pluginName })}\n`));
|
|
204
|
-
const projectRoot = process.cwd();
|
|
205
|
-
const manager = new PluginManager(projectRoot);
|
|
206
|
-
const { PluginLoader } = await import('../../core/plugin-loader.js');
|
|
207
|
-
// Check if plugin exists
|
|
208
|
-
const availablePlugins = await manager.getAvailablePlugins();
|
|
209
|
-
const basicInfo = availablePlugins.find(p => p.name === pluginName);
|
|
210
|
-
if (!basicInfo) {
|
|
211
|
-
console.log(chalk.red(locale.t('cli', 'plugin.info.notFound', { name: pluginName })));
|
|
212
|
-
console.log(chalk.gray(`\n${locale.t('cli', 'plugin.info.listHint')}`));
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
// Load full plugin to get manifest details
|
|
216
|
-
const loader = new PluginLoader();
|
|
217
|
-
const plugin = await loader.loadFromDirectory(basicInfo.path);
|
|
218
|
-
const manifest = plugin.manifest;
|
|
219
|
-
// Basic info
|
|
220
|
-
console.log(chalk.cyan(locale.t('cli', 'plugin.info.name')), manifest.name);
|
|
221
|
-
console.log(chalk.cyan(locale.t('cli', 'plugin.info.version')), manifest.version);
|
|
222
|
-
console.log(chalk.cyan(locale.t('cli', 'plugin.info.description')), manifest.description);
|
|
223
|
-
if (manifest.author) {
|
|
224
|
-
console.log(chalk.cyan(locale.t('cli', 'plugin.info.author')), manifest.author);
|
|
225
|
-
}
|
|
226
|
-
if (manifest.license) {
|
|
227
|
-
console.log(chalk.cyan(locale.t('cli', 'plugin.info.license')), manifest.license);
|
|
228
|
-
}
|
|
229
|
-
console.log(chalk.cyan(locale.t('cli', 'plugin.info.coreVersion')), manifest.specweave_core_version);
|
|
230
|
-
// Status
|
|
231
|
-
const enabledPlugins = await manager.getEnabledPlugins();
|
|
232
|
-
const isEnabled = enabledPlugins.includes(pluginName);
|
|
233
|
-
console.log(chalk.cyan(locale.t('cli', 'plugin.info.status')), isEnabled ? chalk.green(locale.t('cli', 'plugin.info.statusEnabled')) : chalk.gray(locale.t('cli', 'plugin.info.statusDisabled')));
|
|
234
|
-
// Provides
|
|
235
|
-
console.log(chalk.cyan(`\n${locale.t('cli', 'plugin.info.provides')}`));
|
|
236
|
-
const noneValue = chalk.gray(locale.t('cli', 'plugin.info.noneValue'));
|
|
237
|
-
console.log(` ${locale.t('cli', 'plugin.info.skillsFormat', { skills: manifest.provides.skills.length > 0 ? manifest.provides.skills.join(', ') : noneValue })}`);
|
|
238
|
-
console.log(` ${locale.t('cli', 'plugin.info.agentsFormat', { agents: manifest.provides.agents.length > 0 ? manifest.provides.agents.join(', ') : noneValue })}`);
|
|
239
|
-
console.log(` ${locale.t('cli', 'plugin.info.commandsFormat', { commands: manifest.provides.commands.length > 0 ? manifest.provides.commands.join(', ') : noneValue })}`);
|
|
240
|
-
// Dependencies
|
|
241
|
-
if (manifest.dependencies?.plugins && manifest.dependencies.plugins.length > 0) {
|
|
242
|
-
console.log(chalk.cyan(`\n${locale.t('cli', 'plugin.info.dependencies')}`));
|
|
243
|
-
for (const dep of manifest.dependencies.plugins) {
|
|
244
|
-
console.log(` - ${dep}`);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
// Auto-detection
|
|
248
|
-
if (manifest.auto_detect) {
|
|
249
|
-
console.log(chalk.cyan(`\n${locale.t('cli', 'plugin.info.autoDetect')}`));
|
|
250
|
-
if (manifest.auto_detect.files) {
|
|
251
|
-
console.log(` ${locale.t('cli', 'plugin.info.autoDetectFiles', { files: manifest.auto_detect.files.join(', ') })}`);
|
|
252
|
-
}
|
|
253
|
-
if (manifest.auto_detect.packages) {
|
|
254
|
-
console.log(` ${locale.t('cli', 'plugin.info.autoDetectPackages', { packages: manifest.auto_detect.packages.join(', ') })}`);
|
|
255
|
-
}
|
|
256
|
-
if (manifest.auto_detect.env_vars) {
|
|
257
|
-
console.log(` ${locale.t('cli', 'plugin.info.autoDetectEnv', { env: manifest.auto_detect.env_vars.join(', ') })}`);
|
|
258
|
-
}
|
|
259
|
-
if (manifest.auto_detect.git_remote_pattern) {
|
|
260
|
-
console.log(` ${locale.t('cli', 'plugin.info.autoDetectGit', { pattern: manifest.auto_detect.git_remote_pattern })}`);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// Credits
|
|
264
|
-
if (manifest.credits) {
|
|
265
|
-
console.log(chalk.cyan(`\n${locale.t('cli', 'plugin.info.credits')}`));
|
|
266
|
-
if (manifest.credits.based_on) {
|
|
267
|
-
console.log(` ${locale.t('cli', 'plugin.info.basedOn', { source: manifest.credits.based_on })}`);
|
|
268
|
-
}
|
|
269
|
-
if (manifest.credits.original_author) {
|
|
270
|
-
console.log(` ${locale.t('cli', 'plugin.info.originalAuthor', { author: manifest.credits.original_author })}`);
|
|
271
|
-
}
|
|
272
|
-
if (manifest.credits.contributors && manifest.credits.contributors.length > 0) {
|
|
273
|
-
console.log(` ${locale.t('cli', 'plugin.info.contributors', { contributors: manifest.credits.contributors.join(', ') })}`);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
console.log();
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
console.error(chalk.red(locale.t('cli', 'plugin.info.errorGettingInfo')), error instanceof Error ? error.message : error);
|
|
280
|
-
process.exit(1);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
/**
|
|
284
|
-
* Main plugin command handler
|
|
285
|
-
*/
|
|
286
|
-
export async function pluginCommand(action, pluginName, options) {
|
|
287
|
-
const locale = getLocaleManager(options?.language || 'en');
|
|
288
|
-
switch (action) {
|
|
289
|
-
case 'list':
|
|
290
|
-
await listPlugins(options || {});
|
|
291
|
-
break;
|
|
292
|
-
case 'enable':
|
|
293
|
-
if (!pluginName) {
|
|
294
|
-
console.error(chalk.red(locale.t('cli', 'plugin.errors.nameRequired', { command: 'enable' })));
|
|
295
|
-
console.log(chalk.gray(locale.t('cli', 'plugin.errors.usageEnable')));
|
|
296
|
-
process.exit(1);
|
|
297
|
-
}
|
|
298
|
-
await enablePlugin(pluginName, options || {});
|
|
299
|
-
break;
|
|
300
|
-
case 'disable':
|
|
301
|
-
if (!pluginName) {
|
|
302
|
-
console.error(chalk.red(locale.t('cli', 'plugin.errors.nameRequired', { command: 'disable' })));
|
|
303
|
-
console.log(chalk.gray(locale.t('cli', 'plugin.errors.usageDisable')));
|
|
304
|
-
process.exit(1);
|
|
305
|
-
}
|
|
306
|
-
await disablePlugin(pluginName, options || {});
|
|
307
|
-
break;
|
|
308
|
-
case 'info':
|
|
309
|
-
if (!pluginName) {
|
|
310
|
-
console.error(chalk.red(locale.t('cli', 'plugin.errors.nameRequired', { command: 'info' })));
|
|
311
|
-
console.log(chalk.gray(locale.t('cli', 'plugin.errors.usageInfo')));
|
|
312
|
-
process.exit(1);
|
|
313
|
-
}
|
|
314
|
-
await pluginInfo(pluginName, options);
|
|
315
|
-
break;
|
|
316
|
-
default:
|
|
317
|
-
console.error(chalk.red(locale.t('cli', 'plugin.errors.unknownAction', { action })));
|
|
318
|
-
console.log(chalk.gray(locale.t('cli', 'plugin.errors.validActions')));
|
|
319
|
-
process.exit(1);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/cli/commands/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plugin Detector
|
|
3
|
-
*
|
|
4
|
-
* Automatically detects which plugins should be enabled based on:
|
|
5
|
-
* 1. Project structure (package.json, directories, env vars, git remote)
|
|
6
|
-
* 2. Spec content (keywords, domain analysis)
|
|
7
|
-
* 3. Task descriptions (pre-task hook)
|
|
8
|
-
* 4. Git changes (post-increment hook)
|
|
9
|
-
*
|
|
10
|
-
* @module core/plugin-detector
|
|
11
|
-
* @version 0.4.0
|
|
12
|
-
*/
|
|
13
|
-
import type { DetectionResult } from './types/plugin.js';
|
|
14
|
-
/**
|
|
15
|
-
* PluginDetector - Auto-detects relevant plugins for a project
|
|
16
|
-
*/
|
|
17
|
-
export declare class PluginDetector {
|
|
18
|
-
private loader;
|
|
19
|
-
private availablePlugins;
|
|
20
|
-
private pluginsDir;
|
|
21
|
-
/**
|
|
22
|
-
* Create a new PluginDetector
|
|
23
|
-
*
|
|
24
|
-
* @param pluginsDir - Path to plugins directory (default: src/plugins)
|
|
25
|
-
*/
|
|
26
|
-
constructor(pluginsDir?: string);
|
|
27
|
-
/**
|
|
28
|
-
* Load available plugins for detection
|
|
29
|
-
*
|
|
30
|
-
* Scans plugins directory and loads all plugin manifests
|
|
31
|
-
*/
|
|
32
|
-
loadAvailablePlugins(): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Phase 1: Init-time detection
|
|
35
|
-
*
|
|
36
|
-
* Detects plugins based on project structure during `specweave init`
|
|
37
|
-
* NOW uses the new plugin-detection.ts utility for comprehensive scanning
|
|
38
|
-
*
|
|
39
|
-
* @param projectPath - Path to project root
|
|
40
|
-
* @returns Array of detection results with confidence scores
|
|
41
|
-
*/
|
|
42
|
-
detectFromProject(projectPath: string): Promise<DetectionResult[]>;
|
|
43
|
-
/**
|
|
44
|
-
* Phase 2: Spec-based detection
|
|
45
|
-
*
|
|
46
|
-
* Detects plugins based on increment spec content during `/specweave.inc`
|
|
47
|
-
*
|
|
48
|
-
* @param specContent - Content of spec.md
|
|
49
|
-
* @returns Array of detection results
|
|
50
|
-
*/
|
|
51
|
-
detectFromSpec(specContent: string): Promise<DetectionResult[]>;
|
|
52
|
-
/**
|
|
53
|
-
* Phase 3: Task-based detection
|
|
54
|
-
*
|
|
55
|
-
* Detects plugins based on task description (pre-task hook)
|
|
56
|
-
*
|
|
57
|
-
* @param taskContent - Content of task description
|
|
58
|
-
* @returns Array of detection results
|
|
59
|
-
*/
|
|
60
|
-
detectFromTask(taskContent: string): Promise<DetectionResult[]>;
|
|
61
|
-
/**
|
|
62
|
-
* Phase 4: Git diff detection
|
|
63
|
-
*
|
|
64
|
-
* Detects plugins based on recent git changes (post-increment hook)
|
|
65
|
-
*
|
|
66
|
-
* @param diff - Git diff output
|
|
67
|
-
* @returns Array of detection results
|
|
68
|
-
*/
|
|
69
|
-
detectFromChanges(diff: string): Promise<DetectionResult[]>;
|
|
70
|
-
/**
|
|
71
|
-
* Combine detection results from multiple sources
|
|
72
|
-
*
|
|
73
|
-
* Merges results and adjusts confidence scores
|
|
74
|
-
*
|
|
75
|
-
* @param results - Array of detection result arrays
|
|
76
|
-
* @returns Merged and deduplicated results
|
|
77
|
-
*/
|
|
78
|
-
combineResults(...results: DetectionResult[][]): DetectionResult[];
|
|
79
|
-
/**
|
|
80
|
-
* Get high-confidence suggestions
|
|
81
|
-
*
|
|
82
|
-
* Filters detection results by confidence threshold
|
|
83
|
-
*
|
|
84
|
-
* @param results - Detection results
|
|
85
|
-
* @param threshold - Minimum confidence (default: 0.6)
|
|
86
|
-
* @returns High-confidence plugin suggestions
|
|
87
|
-
*/
|
|
88
|
-
getHighConfidenceSuggestions(results: DetectionResult[], threshold?: number): string[];
|
|
89
|
-
/**
|
|
90
|
-
* Format detection results for display
|
|
91
|
-
*
|
|
92
|
-
* @param results - Detection results
|
|
93
|
-
* @returns Formatted string for CLI output
|
|
94
|
-
*/
|
|
95
|
-
formatResults(results: DetectionResult[]): string;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=plugin-detector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-detector.d.ts","sourceRoot":"","sources":["../../src/core/plugin-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAU,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGjE;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;OAIG;gBACS,UAAU,CAAC,EAAE,MAAM;IAK/B;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3C;;;;;;;;OAQG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAgHxE;;;;;;;OAOG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4CrE;;;;;;;OAOG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAyCrE;;;;;;;OAOG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqEjE;;;;;;;OAOG;IACH,cAAc,CAAC,GAAG,OAAO,EAAE,eAAe,EAAE,EAAE,GAAG,eAAe,EAAE;IAwBlE;;;;;;;;OAQG;IACH,4BAA4B,CAC1B,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,GAAE,MAAY,GACtB,MAAM,EAAE;IAMX;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM;CAkBlD"}
|