myaidev-method 0.2.18 → 0.2.22
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/mcp/sparc-orchestrator-server.js +0 -0
- package/.claude/mcp/wordpress-server.js +0 -0
- package/CHANGELOG.md +145 -0
- package/README.md +205 -13
- package/TECHNICAL_ARCHITECTURE.md +64 -2
- package/bin/cli.js +169 -2
- package/dist/mcp/mcp-config.json +138 -1
- package/dist/mcp/openstack-server.js +1607 -0
- package/package.json +2 -2
- package/src/config/workflows.js +532 -0
- package/src/lib/payloadcms-utils.js +343 -10
- package/src/lib/visual-generation-utils.js +445 -294
- package/src/lib/workflow-installer.js +512 -0
- package/src/libs/security/authorization-checker.js +606 -0
- package/src/mcp/openstack-server.js +1607 -0
- package/src/scripts/openstack-setup.sh +110 -0
- package/src/scripts/security/environment-detect.js +425 -0
- package/src/templates/claude/agents/openstack-vm-manager.md +281 -0
- package/src/templates/claude/agents/osint-researcher.md +1075 -0
- package/src/templates/claude/agents/penetration-tester.md +908 -0
- package/src/templates/claude/agents/security-auditor.md +244 -0
- package/src/templates/claude/agents/security-setup.md +1094 -0
- package/src/templates/claude/agents/webapp-security-tester.md +581 -0
- package/src/templates/claude/commands/myai-configure.md +84 -0
- package/src/templates/claude/commands/myai-openstack.md +229 -0
- package/src/templates/claude/commands/sc:security-exploit.md +464 -0
- package/src/templates/claude/commands/sc:security-recon.md +281 -0
- package/src/templates/claude/commands/sc:security-report.md +756 -0
- package/src/templates/claude/commands/sc:security-scan.md +441 -0
- package/src/templates/claude/commands/sc:security-setup.md +501 -0
- package/src/templates/claude/mcp_config.json +44 -0
package/bin/cli.js
CHANGED
|
@@ -12,13 +12,180 @@ import { getASCIIBanner, getSPARCBreakdown, getInitSuccessMessage } from '../src
|
|
|
12
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
13
13
|
const __dirname = path.dirname(__filename);
|
|
14
14
|
|
|
15
|
+
// Import WorkflowInstaller dynamically for modular installation
|
|
16
|
+
let WorkflowInstaller;
|
|
17
|
+
let getWorkflowNames;
|
|
18
|
+
let getWorkflowsByCategory;
|
|
19
|
+
|
|
20
|
+
async function loadWorkflowSystem() {
|
|
21
|
+
if (!WorkflowInstaller) {
|
|
22
|
+
const { default: Installer } = await import('../src/lib/workflow-installer.js');
|
|
23
|
+
const workflows = await import('../src/config/workflows.js');
|
|
24
|
+
WorkflowInstaller = Installer;
|
|
25
|
+
getWorkflowNames = workflows.getWorkflowNames;
|
|
26
|
+
getWorkflowsByCategory = workflows.getWorkflowsByCategory;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
15
30
|
program
|
|
16
|
-
.version('0.2.
|
|
31
|
+
.version('0.2.22')
|
|
17
32
|
.description('MyAIDev Method - Comprehensive development framework with SPARC methodology');
|
|
18
33
|
|
|
34
|
+
// Modular workflow installation commands
|
|
35
|
+
program
|
|
36
|
+
.command('content')
|
|
37
|
+
.description('Install content creation workflow')
|
|
38
|
+
.option('--claude', 'Install for Claude Code')
|
|
39
|
+
.option('--dry-run', 'Show what would be installed without making changes')
|
|
40
|
+
.option('--verbose', 'Show detailed progress')
|
|
41
|
+
.action(async (options) => {
|
|
42
|
+
await loadWorkflowSystem();
|
|
43
|
+
const installer = new WorkflowInstaller({
|
|
44
|
+
projectRoot: process.cwd(),
|
|
45
|
+
verbose: options.verbose,
|
|
46
|
+
dryRun: options.dryRun
|
|
47
|
+
});
|
|
48
|
+
await installer.install(['content']);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
program
|
|
52
|
+
.command('visual')
|
|
53
|
+
.description('Install visual content generation workflow')
|
|
54
|
+
.option('--claude', 'Install for Claude Code')
|
|
55
|
+
.option('--dry-run', 'Show what would be installed without making changes')
|
|
56
|
+
.option('--verbose', 'Show detailed progress')
|
|
57
|
+
.action(async (options) => {
|
|
58
|
+
await loadWorkflowSystem();
|
|
59
|
+
const installer = new WorkflowInstaller({
|
|
60
|
+
projectRoot: process.cwd(),
|
|
61
|
+
verbose: options.verbose,
|
|
62
|
+
dryRun: options.dryRun
|
|
63
|
+
});
|
|
64
|
+
await installer.install(['visual']);
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
program
|
|
68
|
+
.command('dev')
|
|
69
|
+
.description('Install development workflow (SPARC methodology)')
|
|
70
|
+
.option('--claude', 'Install for Claude Code')
|
|
71
|
+
.option('--dry-run', 'Show what would be installed without making changes')
|
|
72
|
+
.option('--verbose', 'Show detailed progress')
|
|
73
|
+
.action(async (options) => {
|
|
74
|
+
await loadWorkflowSystem();
|
|
75
|
+
const installer = new WorkflowInstaller({
|
|
76
|
+
projectRoot: process.cwd(),
|
|
77
|
+
verbose: options.verbose,
|
|
78
|
+
dryRun: options.dryRun
|
|
79
|
+
});
|
|
80
|
+
await installer.install(['development']);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
program
|
|
84
|
+
.command('publish')
|
|
85
|
+
.description('Install publishing workflows')
|
|
86
|
+
.option('--wordpress', 'Install WordPress publishing')
|
|
87
|
+
.option('--payloadcms', 'Install PayloadCMS publishing')
|
|
88
|
+
.option('--static', 'Install static site publishing')
|
|
89
|
+
.option('--all', 'Install all publishing workflows')
|
|
90
|
+
.option('--dry-run', 'Show what would be installed without making changes')
|
|
91
|
+
.option('--verbose', 'Show detailed progress')
|
|
92
|
+
.action(async (options) => {
|
|
93
|
+
await loadWorkflowSystem();
|
|
94
|
+
const workflows = [];
|
|
95
|
+
if (options.wordpress) workflows.push('publish-wordpress');
|
|
96
|
+
if (options.payloadcms) workflows.push('publish-payloadcms');
|
|
97
|
+
if (options.static) workflows.push('publish-static');
|
|
98
|
+
if (options.all) {
|
|
99
|
+
workflows.push('publish-wordpress', 'publish-payloadcms', 'publish-static');
|
|
100
|
+
}
|
|
101
|
+
if (workflows.length === 0) {
|
|
102
|
+
console.log(chalk.yellow('Please specify at least one publishing workflow:'));
|
|
103
|
+
console.log(chalk.gray(' --wordpress, --payloadcms, --static, or --all'));
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
const installer = new WorkflowInstaller({
|
|
107
|
+
projectRoot: process.cwd(),
|
|
108
|
+
verbose: options.verbose,
|
|
109
|
+
dryRun: options.dryRun
|
|
110
|
+
});
|
|
111
|
+
await installer.install(workflows);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
program
|
|
115
|
+
.command('deploy')
|
|
116
|
+
.description('Install deployment workflows')
|
|
117
|
+
.option('--coolify', 'Install Coolify deployment')
|
|
118
|
+
.option('--all', 'Install all deployment workflows')
|
|
119
|
+
.option('--dry-run', 'Show what would be installed without making changes')
|
|
120
|
+
.option('--verbose', 'Show detailed progress')
|
|
121
|
+
.action(async (options) => {
|
|
122
|
+
await loadWorkflowSystem();
|
|
123
|
+
const workflows = [];
|
|
124
|
+
if (options.coolify) workflows.push('coolify');
|
|
125
|
+
if (options.all) workflows.push('deployment', 'coolify');
|
|
126
|
+
if (workflows.length === 0) {
|
|
127
|
+
workflows.push('deployment');
|
|
128
|
+
}
|
|
129
|
+
const installer = new WorkflowInstaller({
|
|
130
|
+
projectRoot: process.cwd(),
|
|
131
|
+
verbose: options.verbose,
|
|
132
|
+
dryRun: options.dryRun
|
|
133
|
+
});
|
|
134
|
+
await installer.install(workflows);
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
// Workflow management commands
|
|
138
|
+
program
|
|
139
|
+
.command('add <workflow>')
|
|
140
|
+
.description('Add a workflow to your installation')
|
|
141
|
+
.option('--dry-run', 'Show what would be installed without making changes')
|
|
142
|
+
.option('--verbose', 'Show detailed progress')
|
|
143
|
+
.action(async (workflow, options) => {
|
|
144
|
+
await loadWorkflowSystem();
|
|
145
|
+
const installer = new WorkflowInstaller({
|
|
146
|
+
projectRoot: process.cwd(),
|
|
147
|
+
verbose: options.verbose,
|
|
148
|
+
dryRun: options.dryRun
|
|
149
|
+
});
|
|
150
|
+
await installer.install([workflow]);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
program
|
|
154
|
+
.command('remove <workflow>')
|
|
155
|
+
.description('Remove a workflow from your installation')
|
|
156
|
+
.option('--dry-run', 'Show what would be removed without making changes')
|
|
157
|
+
.option('--verbose', 'Show detailed progress')
|
|
158
|
+
.action(async (workflow, options) => {
|
|
159
|
+
await loadWorkflowSystem();
|
|
160
|
+
const installer = new WorkflowInstaller({
|
|
161
|
+
projectRoot: process.cwd(),
|
|
162
|
+
verbose: options.verbose,
|
|
163
|
+
dryRun: options.dryRun
|
|
164
|
+
});
|
|
165
|
+
await installer.removeWorkflow(workflow);
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
program
|
|
169
|
+
.command('list')
|
|
170
|
+
.description('List installed workflows')
|
|
171
|
+
.action(async () => {
|
|
172
|
+
await loadWorkflowSystem();
|
|
173
|
+
const installer = new WorkflowInstaller({ projectRoot: process.cwd() });
|
|
174
|
+
await installer.listInstalled();
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
program
|
|
178
|
+
.command('status')
|
|
179
|
+
.description('Show workflow installation status')
|
|
180
|
+
.action(async () => {
|
|
181
|
+
await loadWorkflowSystem();
|
|
182
|
+
const installer = new WorkflowInstaller({ projectRoot: process.cwd() });
|
|
183
|
+
await installer.status();
|
|
184
|
+
});
|
|
185
|
+
|
|
19
186
|
program
|
|
20
187
|
.command('init')
|
|
21
|
-
.description('Initialize AI CLI configuration
|
|
188
|
+
.description('Initialize complete AI CLI configuration (all workflows)')
|
|
22
189
|
.option('--claude', 'Initialize for Claude Code')
|
|
23
190
|
.option('--gemini', 'Initialize for Gemini CLI')
|
|
24
191
|
.option('--codex', 'Initialize for Codex CLI')
|
package/dist/mcp/mcp-config.json
CHANGED
|
@@ -23,6 +23,14 @@
|
|
|
23
23
|
"mcpName": "chrome-devtools-mcp",
|
|
24
24
|
"transport": "stdio",
|
|
25
25
|
"command": "npx chrome-devtools-mcp"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "myaidev-openstack-mcp-server",
|
|
29
|
+
"version": "1.0.0",
|
|
30
|
+
"description": "OpenStack MCP Server for VM management and cloud orchestration",
|
|
31
|
+
"mcpName": "io.github.myaione/myaidev-method-openstack",
|
|
32
|
+
"transport": "stdio",
|
|
33
|
+
"command": "node .claude/mcp/openstack-server.js"
|
|
26
34
|
}
|
|
27
35
|
],
|
|
28
36
|
"wordpress_server": {
|
|
@@ -147,6 +155,133 @@
|
|
|
147
155
|
"category": "batch_operations"
|
|
148
156
|
}
|
|
149
157
|
],
|
|
158
|
+
"openstack_tools": [
|
|
159
|
+
{
|
|
160
|
+
"name": "os_session_create",
|
|
161
|
+
"description": "Create a new session for tracking OpenStack operations",
|
|
162
|
+
"category": "session_management"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "os_health_check",
|
|
166
|
+
"description": "Check OpenStack API connectivity and authentication",
|
|
167
|
+
"category": "health_monitoring"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"name": "os_cloud_init_info",
|
|
171
|
+
"description": "Get information about configured cloud-init defaults",
|
|
172
|
+
"category": "cloud_init"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"name": "os_cloud_init_fetch",
|
|
176
|
+
"description": "Fetch and preview cloud-init from URL, file, or default",
|
|
177
|
+
"category": "cloud_init"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "os_image_list",
|
|
181
|
+
"description": "List available VM images in OpenStack",
|
|
182
|
+
"category": "resource_discovery"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "os_flavor_list",
|
|
186
|
+
"description": "List available VM flavors (instance sizes)",
|
|
187
|
+
"category": "resource_discovery"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "os_network_list",
|
|
191
|
+
"description": "List available networks in OpenStack",
|
|
192
|
+
"category": "resource_discovery"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "os_security_group_list",
|
|
196
|
+
"description": "List available security groups",
|
|
197
|
+
"category": "resource_discovery"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "os_keypair_list",
|
|
201
|
+
"description": "List available SSH keypairs",
|
|
202
|
+
"category": "ssh_management"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"name": "os_keypair_create",
|
|
206
|
+
"description": "Create a new SSH keypair for VM access",
|
|
207
|
+
"category": "ssh_management"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "os_server_list",
|
|
211
|
+
"description": "List all VMs/servers in the project",
|
|
212
|
+
"category": "vm_management"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "os_server_create",
|
|
216
|
+
"description": "Create a new VM/server in OpenStack",
|
|
217
|
+
"category": "vm_management"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "os_server_show",
|
|
221
|
+
"description": "Get detailed information about a specific server",
|
|
222
|
+
"category": "vm_management"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"name": "os_server_delete",
|
|
226
|
+
"description": "Delete a VM/server from OpenStack",
|
|
227
|
+
"category": "vm_management"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"name": "os_server_start",
|
|
231
|
+
"description": "Start a stopped server",
|
|
232
|
+
"category": "vm_management"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"name": "os_server_stop",
|
|
236
|
+
"description": "Stop a running server",
|
|
237
|
+
"category": "vm_management"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"name": "os_server_reboot",
|
|
241
|
+
"description": "Reboot a server (soft or hard)",
|
|
242
|
+
"category": "vm_management"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"name": "os_server_console",
|
|
246
|
+
"description": "Get console URL for accessing server",
|
|
247
|
+
"category": "vm_management"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"name": "os_floating_ip_create",
|
|
251
|
+
"description": "Create a new floating IP from an external network",
|
|
252
|
+
"category": "network_management"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"name": "os_floating_ip_list",
|
|
256
|
+
"description": "List all floating IPs in the project",
|
|
257
|
+
"category": "network_management"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"name": "os_server_add_floating_ip",
|
|
261
|
+
"description": "Associate a floating IP with a server",
|
|
262
|
+
"category": "network_management"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"name": "os_volume_list",
|
|
266
|
+
"description": "List all volumes in the project",
|
|
267
|
+
"category": "storage_management"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"name": "os_volume_create",
|
|
271
|
+
"description": "Create a new block storage volume",
|
|
272
|
+
"category": "storage_management"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"name": "os_server_add_volume",
|
|
276
|
+
"description": "Attach a volume to a server",
|
|
277
|
+
"category": "storage_management"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"name": "os_operation_history",
|
|
281
|
+
"description": "Get history of OpenStack operations performed",
|
|
282
|
+
"category": "monitoring"
|
|
283
|
+
}
|
|
284
|
+
],
|
|
150
285
|
"capabilities": [
|
|
151
286
|
"session_management",
|
|
152
287
|
"memory_persistence",
|
|
@@ -158,7 +293,9 @@
|
|
|
158
293
|
"sparc_orchestration",
|
|
159
294
|
"workflow_management",
|
|
160
295
|
"browser_automation",
|
|
161
|
-
"devtools_integration"
|
|
296
|
+
"devtools_integration",
|
|
297
|
+
"openstack_vm_management",
|
|
298
|
+
"cloud_orchestration"
|
|
162
299
|
],
|
|
163
300
|
"environment": {
|
|
164
301
|
"required": [
|