myaidev-method 0.2.19 → 0.2.23
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/CHANGELOG.md +123 -5
- package/README.md +205 -13
- package/TECHNICAL_ARCHITECTURE.md +64 -2
- package/USER_GUIDE.md +453 -48
- package/bin/cli.js +187 -2
- package/content-rules.example.md +80 -0
- package/dist/mcp/mcp-config.json +138 -1
- package/dist/mcp/mcp-launcher.js +237 -0
- package/dist/mcp/openstack-server.js +1607 -0
- package/dist/server/.tsbuildinfo +1 -1
- package/dist/server/auth/layers.d.ts +1 -1
- package/dist/server/auth/services/AuthService.d.ts +1 -1
- package/dist/server/auth/services/TokenService.js.map +1 -1
- package/dist/server/auth/services/example.d.ts +5 -5
- package/package.json +17 -17
- package/src/config/workflows.js +532 -0
- package/src/index.js +21 -8
- package/src/lib/payloadcms-utils.js +206 -0
- package/src/lib/update-manager.js +2 -1
- package/src/lib/visual-config-utils.js +321 -295
- package/src/lib/visual-generation-utils.js +1080 -740
- 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/configure-wordpress-mcp.js +8 -3
- package/src/scripts/generate-visual-cli.js +365 -235
- package/src/scripts/openstack-setup.sh +110 -0
- package/src/scripts/ping.js +250 -0
- package/src/scripts/security/environment-detect.js +425 -0
- package/src/scripts/wordpress/publish-to-wordpress.js +165 -0
- package/src/server/auth/services/TokenService.ts +1 -1
- package/src/templates/claude/agents/content-rules-setup.md +657 -0
- package/src/templates/claude/agents/content-writer.md +328 -1
- 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/visual-content-generator.md +182 -4
- package/src/templates/claude/agents/webapp-security-tester.md +581 -0
- package/src/templates/claude/commands/myai-configure.md +85 -1
- package/src/templates/claude/commands/myai-content-rules-setup.md +204 -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/codex/commands/myai-content-rules-setup.md +85 -0
- package/src/templates/gemini/commands/myai-content-rules-setup.toml +57 -0
- package/.claude/mcp/sparc-orchestrator-server.js +0 -607
- package/.claude/mcp/wordpress-server.js +0 -1277
- package/src/agents/content-writer-prompt.md +0 -164
- package/src/agents/content-writer.json +0 -70
- package/src/templates/claude/mcp_config.json +0 -30
- package/src/templates/claude/slash_commands.json +0 -166
- package/src/templates/scripts/configure-wordpress-mcp.js +0 -181
|
@@ -15,5 +15,5 @@ export declare const createAppLayer: (dbConfig: {
|
|
|
15
15
|
path: string;
|
|
16
16
|
timeout?: number;
|
|
17
17
|
verbose?: boolean;
|
|
18
|
-
}) => Layer.Layer<
|
|
18
|
+
}) => Layer.Layer<PasswordService | TokenService | DatabaseService | UserRepository | SessionRepository | AuditLogService | import("../user-management/LinuxUserService.js").LinuxUserService | import("../user-management/DirectoryService.js").DirectoryService | import("../user-management/QuotaService.js").QuotaService | import("../user-management/UserManagementService.js").UserManagementService | AuthService, import("../../shared/types.js").AuthError | import("../database/db.js").DatabaseError, never>;
|
|
19
19
|
//# sourceMappingURL=layers.d.ts.map
|
|
@@ -21,7 +21,7 @@ export interface AuthServiceDeps {
|
|
|
21
21
|
}
|
|
22
22
|
declare const AuthService_base: Context.TagClass<AuthService, "AuthService", AuthServiceDeps>;
|
|
23
23
|
export declare class AuthService extends AuthService_base {
|
|
24
|
-
static Live: Layer.Layer<AuthService, never, PasswordService | TokenService |
|
|
24
|
+
static Live: Layer.Layer<AuthService, never, PasswordService | TokenService | UserRepository | SessionRepository | AuditLogService | UserManagementService>;
|
|
25
25
|
}
|
|
26
26
|
export {};
|
|
27
27
|
//# sourceMappingURL=AuthService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenService.js","sourceRoot":"","sources":["../../../../src/server/auth/services/TokenService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAc,MAAM,0BAA0B,CAAC;AAEjE,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"TokenService.js","sourceRoot":"","sources":["../../../../src/server/auth/services/TokenService.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,20 +7,20 @@
|
|
|
7
7
|
import { Effect, Layer } from "effect";
|
|
8
8
|
import { DatabaseService } from "../../database/db.js";
|
|
9
9
|
import { PasswordService, TokenService, UserRepository, SessionRepository, AuditLogService } from "./index.js";
|
|
10
|
-
export declare const registerUser: (username: string, email: string, password: string, linuxUsername: string, ipAddress: string | null, userAgent: string | null) => Effect.Effect<import("../../../shared/types.js").User, import("../../../shared/types.js").
|
|
10
|
+
export declare const registerUser: (username: string, email: string, password: string, linuxUsername: string, ipAddress: string | null, userAgent: string | null) => Effect.Effect<import("../../../shared/types.js").User, import("../../../shared/types.js").AuthError | import("../../../shared/types.js").ValidationError | import("../../../shared/types.js").DatabaseError, PasswordService | UserRepository | AuditLogService>;
|
|
11
11
|
export declare const loginUser: (email: string, password: string, ipAddress: string | null, userAgent: string | null) => Effect.Effect<{
|
|
12
12
|
user: import("../../../shared/types.js").User;
|
|
13
13
|
token: string;
|
|
14
14
|
session: import("../../../shared/types.js").Session;
|
|
15
|
-
}, import("../../../shared/types.js").
|
|
15
|
+
}, import("../../../shared/types.js").AuthError | import("../../../shared/types.js").DatabaseError | Error, PasswordService | TokenService | UserRepository | SessionRepository | AuditLogService>;
|
|
16
16
|
export declare const verifyToken: (token: string) => Effect.Effect<{
|
|
17
17
|
user: import("../../../shared/types.js").User;
|
|
18
18
|
session: import("../../../shared/types.js").Session;
|
|
19
19
|
payload: import("../../../shared/types.js").JWTPayload;
|
|
20
|
-
}, import("../../../shared/types.js").
|
|
20
|
+
}, import("../../../shared/types.js").AuthError | import("../../../shared/types.js").DatabaseError | Error, TokenService | UserRepository | SessionRepository>;
|
|
21
21
|
export declare const logoutUser: (token: string) => Effect.Effect<{
|
|
22
22
|
success: boolean;
|
|
23
|
-
}, import("../../../shared/types.js").
|
|
24
|
-
export declare const AuthenticationLayer: Layer.Layer<
|
|
23
|
+
}, import("../../../shared/types.js").AuthError | import("../../../shared/types.js").DatabaseError | Error, TokenService | SessionRepository | AuditLogService>;
|
|
24
|
+
export declare const AuthenticationLayer: Layer.Layer<PasswordService | TokenService | UserRepository | SessionRepository | AuditLogService, import("../../../shared/types.js").AuthError, DatabaseService>;
|
|
25
25
|
export declare const runAuthExample: () => Promise<void>;
|
|
26
26
|
//# sourceMappingURL=example.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myaidev-method",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Comprehensive development framework with SPARC methodology for AI-assisted software development, AI visual content generation (Gemini, Imagen,
|
|
3
|
+
"version": "0.2.23",
|
|
4
|
+
"description": "Comprehensive development framework with SPARC methodology for AI-assisted software development, security testing (PTES, OWASP, penetration testing, compliance auditing), AI visual content generation (Gemini, OpenAI GPT Image 1.5, Imagen, FLUX 2, Veo 3), OpenStack VM management, multi-platform publishing (WordPress, PayloadCMS, Astro, Docusaurus, Mintlify), and Coolify deployment",
|
|
5
5
|
"mcpName": "io.github.myaione/myaidev-method",
|
|
6
6
|
"main": "src/index.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"myaidev-method": "./bin/cli.js",
|
|
9
|
-
"myaidev-mcp-server": "
|
|
10
|
-
"myaidev-mcp-launcher": "./
|
|
11
|
-
"myaidev-sparc-orchestrator": "
|
|
9
|
+
"myaidev-mcp-server": "./dist/mcp/wordpress-server.js",
|
|
10
|
+
"myaidev-mcp-launcher": "./dist/mcp/mcp-launcher.js",
|
|
11
|
+
"myaidev-sparc-orchestrator": "./dist/mcp/sparc-orchestrator-server.js"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
14
|
"test": "node test/run-tests.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"mcp:sparc": "node .claude/mcp/sparc-orchestrator-server.js",
|
|
23
23
|
"mcp:status": "node src/mcp/mcp-launcher.js status",
|
|
24
24
|
"mcp:health": "node src/mcp/mcp-launcher.js health",
|
|
25
|
-
"build:mcp": "mkdir -p dist/mcp && cp .claude/mcp/*.js .claude/mcp/*.json dist/mcp/",
|
|
25
|
+
"build:mcp": "mkdir -p dist/mcp && cp .claude/mcp/*.js .claude/mcp/*.json dist/mcp/ && cp src/mcp/mcp-launcher.js dist/mcp/",
|
|
26
26
|
"build:server": "tsc -p tsconfig.server.json && mkdir -p dist/server/database && cp src/server/database/schema.sql dist/server/database/",
|
|
27
27
|
"build": "npm run build:mcp && npm run build:server",
|
|
28
28
|
"dev:server": "tsx watch src/server/main.ts",
|
|
@@ -104,29 +104,29 @@
|
|
|
104
104
|
"@hono/node-server": "^1.19.5",
|
|
105
105
|
"@modelcontextprotocol/sdk": "^1.18.0",
|
|
106
106
|
"@tsconfig/strictest": "^2.0.5",
|
|
107
|
-
"bcrypt": "^
|
|
108
|
-
"better-sqlite3": "^
|
|
107
|
+
"bcrypt": "^6.0.0",
|
|
108
|
+
"better-sqlite3": "^12.5.0",
|
|
109
109
|
"chalk": "^5.3.0",
|
|
110
|
-
"commander": "^
|
|
111
|
-
"dotenv": "^
|
|
110
|
+
"commander": "^14.0.2",
|
|
111
|
+
"dotenv": "^17.2.3",
|
|
112
112
|
"effect": "^3.18.4",
|
|
113
113
|
"fs-extra": "^11.2.0",
|
|
114
114
|
"google-auth-library": "^10.5.0",
|
|
115
115
|
"gray-matter": "^4.0.3",
|
|
116
116
|
"hono": "^4.10.3",
|
|
117
|
-
"inquirer": "^
|
|
118
|
-
"jose": "^
|
|
119
|
-
"marked": "^
|
|
117
|
+
"inquirer": "^13.1.0",
|
|
118
|
+
"jose": "^6.1.3",
|
|
119
|
+
"marked": "^17.0.1",
|
|
120
120
|
"node-fetch": "^3.3.2",
|
|
121
|
-
"ora": "^
|
|
121
|
+
"ora": "^9.0.0",
|
|
122
122
|
"simple-git": "^3.22.0",
|
|
123
123
|
"ssh2": "^1.15.0",
|
|
124
|
-
"zod": "^3.
|
|
124
|
+
"zod": "^4.3.5"
|
|
125
125
|
},
|
|
126
126
|
"devDependencies": {
|
|
127
|
-
"@types/bcrypt": "^
|
|
127
|
+
"@types/bcrypt": "^6.0.0",
|
|
128
128
|
"@types/better-sqlite3": "^7.6.11",
|
|
129
|
-
"@types/node": "^
|
|
129
|
+
"@types/node": "^25.0.3",
|
|
130
130
|
"tsx": "^4.7.1",
|
|
131
131
|
"typescript": "^5.3.3"
|
|
132
132
|
},
|
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MyAIDev Method - Workflow Configuration
|
|
3
|
+
*
|
|
4
|
+
* Defines modular workflows for installation
|
|
5
|
+
* Each workflow specifies its agents, commands, scripts, libraries, and dependencies
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const WORKFLOWS = {
|
|
9
|
+
// Content Creation Workflow
|
|
10
|
+
content: {
|
|
11
|
+
name: 'Content Creation',
|
|
12
|
+
description: 'Professional content writing with SEO optimization and WordPress publishing',
|
|
13
|
+
agents: [
|
|
14
|
+
'content-writer',
|
|
15
|
+
'proprietary-content-verifier'
|
|
16
|
+
],
|
|
17
|
+
commands: [
|
|
18
|
+
'myai-content-writer'
|
|
19
|
+
],
|
|
20
|
+
scripts: [
|
|
21
|
+
'utils/write-content.js'
|
|
22
|
+
],
|
|
23
|
+
libs: [
|
|
24
|
+
'content-generator.js',
|
|
25
|
+
'seo-optimizer.js'
|
|
26
|
+
],
|
|
27
|
+
docs: [
|
|
28
|
+
'content-creation-guide.md'
|
|
29
|
+
],
|
|
30
|
+
mcpServers: [],
|
|
31
|
+
dependencies: ['core'],
|
|
32
|
+
envVars: []
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
// Visual Content Generation Workflow
|
|
36
|
+
visual: {
|
|
37
|
+
name: 'Visual Content Generation',
|
|
38
|
+
description: 'AI-powered image and video generation using Gemini, Imagen, DALL-E, Veo',
|
|
39
|
+
agents: [
|
|
40
|
+
'visual-content-generator'
|
|
41
|
+
],
|
|
42
|
+
commands: [
|
|
43
|
+
'myai-generate-visual'
|
|
44
|
+
],
|
|
45
|
+
scripts: [
|
|
46
|
+
'utils/generate-image.js',
|
|
47
|
+
'utils/generate-video.js'
|
|
48
|
+
],
|
|
49
|
+
libs: [
|
|
50
|
+
'visual-generator.js'
|
|
51
|
+
],
|
|
52
|
+
docs: [
|
|
53
|
+
'visual-generation-guide.md'
|
|
54
|
+
],
|
|
55
|
+
mcpServers: [],
|
|
56
|
+
dependencies: ['core'],
|
|
57
|
+
envVars: [
|
|
58
|
+
'GOOGLE_AI_API_KEY',
|
|
59
|
+
'OPENAI_API_KEY',
|
|
60
|
+
'FAL_AI_API_KEY'
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
// Development Workflow (SPARC)
|
|
65
|
+
development: {
|
|
66
|
+
name: 'Development Workflow',
|
|
67
|
+
description: 'SPARC methodology for systematic software development',
|
|
68
|
+
agents: [],
|
|
69
|
+
commands: [
|
|
70
|
+
'sc:git',
|
|
71
|
+
'sc:estimate',
|
|
72
|
+
'sc:improve',
|
|
73
|
+
'sc:load',
|
|
74
|
+
'sc:design',
|
|
75
|
+
'sc:document',
|
|
76
|
+
'sc:implement',
|
|
77
|
+
'sc:reflect',
|
|
78
|
+
'sc:task',
|
|
79
|
+
'sc:troubleshoot',
|
|
80
|
+
'sc:brainstorm',
|
|
81
|
+
'sc:workflow',
|
|
82
|
+
'sc:spec-panel',
|
|
83
|
+
'sc:test',
|
|
84
|
+
'sc:analyze',
|
|
85
|
+
'sc:spawn',
|
|
86
|
+
'sc:build',
|
|
87
|
+
'sc:explain',
|
|
88
|
+
'sc:save',
|
|
89
|
+
'sc:select-tool',
|
|
90
|
+
'sc:cleanup',
|
|
91
|
+
'sc:index'
|
|
92
|
+
],
|
|
93
|
+
scripts: [],
|
|
94
|
+
libs: [],
|
|
95
|
+
docs: [
|
|
96
|
+
'sparc-methodology.md'
|
|
97
|
+
],
|
|
98
|
+
mcpServers: [],
|
|
99
|
+
dependencies: ['core'],
|
|
100
|
+
envVars: []
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
// Git & CI Workflow
|
|
104
|
+
'git-ci': {
|
|
105
|
+
name: 'Git & Continuous Integration',
|
|
106
|
+
description: 'Git operations and CI/CD pipeline management',
|
|
107
|
+
agents: [],
|
|
108
|
+
commands: [
|
|
109
|
+
'sc:git'
|
|
110
|
+
],
|
|
111
|
+
scripts: [
|
|
112
|
+
'ci/run-tests.js',
|
|
113
|
+
'ci/lint.js'
|
|
114
|
+
],
|
|
115
|
+
libs: [],
|
|
116
|
+
docs: [
|
|
117
|
+
'git-workflow-guide.md'
|
|
118
|
+
],
|
|
119
|
+
mcpServers: [],
|
|
120
|
+
dependencies: ['core'],
|
|
121
|
+
envVars: []
|
|
122
|
+
},
|
|
123
|
+
|
|
124
|
+
// Deployment Workflow
|
|
125
|
+
deployment: {
|
|
126
|
+
name: 'Deployment',
|
|
127
|
+
description: 'Application deployment and infrastructure management',
|
|
128
|
+
agents: [],
|
|
129
|
+
commands: [
|
|
130
|
+
'sc:deploy'
|
|
131
|
+
],
|
|
132
|
+
scripts: [
|
|
133
|
+
'deploy/docker-deploy.js',
|
|
134
|
+
'deploy/vercel-deploy.js',
|
|
135
|
+
'deploy/netlify-deploy.js'
|
|
136
|
+
],
|
|
137
|
+
libs: [
|
|
138
|
+
'deployment-manager.js'
|
|
139
|
+
],
|
|
140
|
+
docs: [
|
|
141
|
+
'deployment-guide.md'
|
|
142
|
+
],
|
|
143
|
+
mcpServers: [],
|
|
144
|
+
dependencies: ['core'],
|
|
145
|
+
envVars: [
|
|
146
|
+
'VERCEL_TOKEN',
|
|
147
|
+
'NETLIFY_TOKEN'
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
// WordPress Publishing Workflow
|
|
152
|
+
'publish-wordpress': {
|
|
153
|
+
name: 'WordPress Publishing',
|
|
154
|
+
description: 'Publish content to WordPress sites with enhanced MCP integration',
|
|
155
|
+
agents: [
|
|
156
|
+
'wordpress-admin'
|
|
157
|
+
],
|
|
158
|
+
commands: [
|
|
159
|
+
'myai-wordpress-publish'
|
|
160
|
+
],
|
|
161
|
+
scripts: [
|
|
162
|
+
'wordpress/publish-to-wordpress.js',
|
|
163
|
+
'wordpress/wordpress-health-check.js'
|
|
164
|
+
],
|
|
165
|
+
libs: [
|
|
166
|
+
'wordpress-client.js'
|
|
167
|
+
],
|
|
168
|
+
docs: [
|
|
169
|
+
'wordpress-publishing-guide.md'
|
|
170
|
+
],
|
|
171
|
+
mcpServers: ['myaidev'],
|
|
172
|
+
dependencies: ['core', 'content'],
|
|
173
|
+
envVars: [
|
|
174
|
+
'WORDPRESS_URL',
|
|
175
|
+
'WORDPRESS_USERNAME',
|
|
176
|
+
'WORDPRESS_APP_PASSWORD'
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
|
|
180
|
+
// PayloadCMS Publishing Workflow
|
|
181
|
+
'publish-payloadcms': {
|
|
182
|
+
name: 'PayloadCMS Publishing',
|
|
183
|
+
description: 'Publish content to PayloadCMS with Lexical rich text format',
|
|
184
|
+
agents: [],
|
|
185
|
+
commands: [
|
|
186
|
+
'myai-payloadcms-publish'
|
|
187
|
+
],
|
|
188
|
+
scripts: [
|
|
189
|
+
'payloadcms/publish-to-payloadcms.js',
|
|
190
|
+
'payloadcms/payloadcms-health-check.js'
|
|
191
|
+
],
|
|
192
|
+
libs: [
|
|
193
|
+
'payloadcms-utils.js'
|
|
194
|
+
],
|
|
195
|
+
docs: [
|
|
196
|
+
'payloadcms-publishing-guide.md'
|
|
197
|
+
],
|
|
198
|
+
mcpServers: [],
|
|
199
|
+
dependencies: ['core', 'content'],
|
|
200
|
+
envVars: [
|
|
201
|
+
'PAYLOADCMS_URL',
|
|
202
|
+
'PAYLOADCMS_API_KEY'
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
// Static Site Publishing Workflow
|
|
207
|
+
'publish-static': {
|
|
208
|
+
name: 'Static Site Publishing',
|
|
209
|
+
description: 'Generate and publish static sites (Hugo, Jekyll, 11ty)',
|
|
210
|
+
agents: [],
|
|
211
|
+
commands: [
|
|
212
|
+
'myai-static-publish'
|
|
213
|
+
],
|
|
214
|
+
scripts: [
|
|
215
|
+
'static/generate-hugo.js',
|
|
216
|
+
'static/generate-jekyll.js',
|
|
217
|
+
'static/generate-11ty.js'
|
|
218
|
+
],
|
|
219
|
+
libs: [
|
|
220
|
+
'static-generator.js'
|
|
221
|
+
],
|
|
222
|
+
docs: [
|
|
223
|
+
'static-site-guide.md'
|
|
224
|
+
],
|
|
225
|
+
mcpServers: [],
|
|
226
|
+
dependencies: ['core', 'content'],
|
|
227
|
+
envVars: []
|
|
228
|
+
},
|
|
229
|
+
|
|
230
|
+
// Coolify Deployment Workflow
|
|
231
|
+
coolify: {
|
|
232
|
+
name: 'Coolify Deployment',
|
|
233
|
+
description: 'Deploy applications using Coolify self-hosted PaaS',
|
|
234
|
+
agents: [],
|
|
235
|
+
commands: [
|
|
236
|
+
'myai-coolify-deploy'
|
|
237
|
+
],
|
|
238
|
+
scripts: [
|
|
239
|
+
'coolify/deploy-to-coolify.js',
|
|
240
|
+
'coolify/coolify-health-check.js'
|
|
241
|
+
],
|
|
242
|
+
libs: [
|
|
243
|
+
'coolify-client.js'
|
|
244
|
+
],
|
|
245
|
+
docs: [
|
|
246
|
+
'coolify-deployment-guide.md'
|
|
247
|
+
],
|
|
248
|
+
mcpServers: [],
|
|
249
|
+
dependencies: ['core', 'deployment'],
|
|
250
|
+
envVars: [
|
|
251
|
+
'COOLIFY_URL',
|
|
252
|
+
'COOLIFY_API_KEY'
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
|
|
256
|
+
// Core Framework (Required by all workflows)
|
|
257
|
+
core: {
|
|
258
|
+
name: 'Core Framework',
|
|
259
|
+
description: 'Essential MyAIDev Method framework components',
|
|
260
|
+
agents: [
|
|
261
|
+
'content-production-coordinator'
|
|
262
|
+
],
|
|
263
|
+
commands: [
|
|
264
|
+
'myai-coordinate-content',
|
|
265
|
+
'myai-configure'
|
|
266
|
+
],
|
|
267
|
+
scripts: [
|
|
268
|
+
'init/install.js',
|
|
269
|
+
'init/configure.js',
|
|
270
|
+
'utils/file-utils.js',
|
|
271
|
+
'utils/logger.js'
|
|
272
|
+
],
|
|
273
|
+
libs: [
|
|
274
|
+
'config-manager.js'
|
|
275
|
+
],
|
|
276
|
+
docs: [
|
|
277
|
+
'README.md',
|
|
278
|
+
'TECHNICAL_ARCHITECTURE.md'
|
|
279
|
+
],
|
|
280
|
+
mcpServers: [],
|
|
281
|
+
dependencies: [],
|
|
282
|
+
envVars: []
|
|
283
|
+
},
|
|
284
|
+
|
|
285
|
+
// Security Testing Workflows (v0.2.21)
|
|
286
|
+
|
|
287
|
+
// Penetration Testing Workflow
|
|
288
|
+
'security-pentest': {
|
|
289
|
+
name: 'Penetration Testing',
|
|
290
|
+
description: 'Full-scope security assessment following PTES methodology with reconnaissance, scanning, exploitation, and professional reporting',
|
|
291
|
+
agents: [
|
|
292
|
+
'security-setup',
|
|
293
|
+
'security-specialist',
|
|
294
|
+
'penetration-tester',
|
|
295
|
+
'osint-researcher'
|
|
296
|
+
],
|
|
297
|
+
commands: [
|
|
298
|
+
'sc:security-setup',
|
|
299
|
+
'sc:security-recon',
|
|
300
|
+
'sc:security-scan',
|
|
301
|
+
'sc:security-exploit',
|
|
302
|
+
'sc:security-report'
|
|
303
|
+
],
|
|
304
|
+
scripts: [
|
|
305
|
+
'security/setup-tools.js',
|
|
306
|
+
'security/verify-tools.js',
|
|
307
|
+
'security/kali-docker-setup.js',
|
|
308
|
+
'security/environment-detect.js',
|
|
309
|
+
'security/security-scan.js',
|
|
310
|
+
'security/exploit-search.js',
|
|
311
|
+
'security/report-generator.js'
|
|
312
|
+
],
|
|
313
|
+
libs: [
|
|
314
|
+
'security/authorization-checker.js',
|
|
315
|
+
'security/environment-manager.js',
|
|
316
|
+
'security/tool-installer.js',
|
|
317
|
+
'security/docker-manager.js',
|
|
318
|
+
'security/security-scanner.js',
|
|
319
|
+
'security/vulnerability-db.js',
|
|
320
|
+
'security/cvss-calculator.js',
|
|
321
|
+
'security/report-generator.js'
|
|
322
|
+
],
|
|
323
|
+
docs: [
|
|
324
|
+
'SECURITY_TESTING_GUIDE.md',
|
|
325
|
+
'LEGAL_REQUIREMENTS.md',
|
|
326
|
+
'TOOL_INSTALLATION.md',
|
|
327
|
+
'PENTEST_METHODOLOGY.md'
|
|
328
|
+
],
|
|
329
|
+
mcpServers: [],
|
|
330
|
+
dependencies: ['core', 'development'],
|
|
331
|
+
envVars: [
|
|
332
|
+
'SECURITY_AUTHORIZATION_REQUIRED=true',
|
|
333
|
+
'SECURITY_ENVIRONMENT=native',
|
|
334
|
+
'KALI_DOCKER_IMAGE=kalilinux/kali-rolling',
|
|
335
|
+
'SECURITY_TOOLS_PATH=/usr/local/bin'
|
|
336
|
+
]
|
|
337
|
+
},
|
|
338
|
+
|
|
339
|
+
// Security Audit & Compliance Workflow
|
|
340
|
+
'security-audit': {
|
|
341
|
+
name: 'Security Audit & Compliance',
|
|
342
|
+
description: 'Infrastructure security auditing, system hardening, and compliance validation for PCI-DSS, GDPR, HIPAA, SOC 2',
|
|
343
|
+
agents: [
|
|
344
|
+
'security-setup',
|
|
345
|
+
'security-auditor',
|
|
346
|
+
'sysadmin-security',
|
|
347
|
+
'compliance-auditor'
|
|
348
|
+
],
|
|
349
|
+
commands: [
|
|
350
|
+
'sc:security-setup',
|
|
351
|
+
'sc:security-audit',
|
|
352
|
+
'sc:security-harden',
|
|
353
|
+
'sc:compliance-check',
|
|
354
|
+
'sc:security-report'
|
|
355
|
+
],
|
|
356
|
+
scripts: [
|
|
357
|
+
'security/setup-tools.js',
|
|
358
|
+
'security/verify-tools.js',
|
|
359
|
+
'security/audit-scanner.js',
|
|
360
|
+
'security/compliance-checker.js',
|
|
361
|
+
'security/system-hardening.js',
|
|
362
|
+
'security/report-generator.js'
|
|
363
|
+
],
|
|
364
|
+
libs: [
|
|
365
|
+
'security/authorization-checker.js',
|
|
366
|
+
'security/environment-manager.js',
|
|
367
|
+
'security/tool-installer.js',
|
|
368
|
+
'security/compliance-frameworks.js',
|
|
369
|
+
'security/system-auditor.js',
|
|
370
|
+
'security/hardening-rules.js',
|
|
371
|
+
'security/cvss-calculator.js',
|
|
372
|
+
'security/report-generator.js'
|
|
373
|
+
],
|
|
374
|
+
docs: [
|
|
375
|
+
'SECURITY_AUDIT_GUIDE.md',
|
|
376
|
+
'COMPLIANCE_FRAMEWORKS.md',
|
|
377
|
+
'SYSTEM_HARDENING.md',
|
|
378
|
+
'LEGAL_REQUIREMENTS.md'
|
|
379
|
+
],
|
|
380
|
+
mcpServers: [],
|
|
381
|
+
dependencies: ['core'],
|
|
382
|
+
envVars: [
|
|
383
|
+
'COMPLIANCE_FRAMEWORK=PCI-DSS',
|
|
384
|
+
'AUDIT_ENVIRONMENT=native'
|
|
385
|
+
]
|
|
386
|
+
},
|
|
387
|
+
|
|
388
|
+
// Web Application Security Workflow
|
|
389
|
+
'security-webapp': {
|
|
390
|
+
name: 'Web Application Security',
|
|
391
|
+
description: 'OWASP Top 10 testing and web application penetration testing with automated scanning and manual exploitation',
|
|
392
|
+
agents: [
|
|
393
|
+
'security-setup',
|
|
394
|
+
'webapp-security-tester'
|
|
395
|
+
],
|
|
396
|
+
commands: [
|
|
397
|
+
'sc:security-setup',
|
|
398
|
+
'sc:security-webapp-scan',
|
|
399
|
+
'sc:security-webapp-exploit',
|
|
400
|
+
'sc:security-webapp-report'
|
|
401
|
+
],
|
|
402
|
+
scripts: [
|
|
403
|
+
'security/setup-tools.js',
|
|
404
|
+
'security/verify-tools.js',
|
|
405
|
+
'security/webapp-scanner.js',
|
|
406
|
+
'security/owasp-tester.js',
|
|
407
|
+
'security/sqlmap-wrapper.js',
|
|
408
|
+
'security/report-generator.js'
|
|
409
|
+
],
|
|
410
|
+
libs: [
|
|
411
|
+
'security/authorization-checker.js',
|
|
412
|
+
'security/environment-manager.js',
|
|
413
|
+
'security/tool-installer.js',
|
|
414
|
+
'security/owasp-top10.js',
|
|
415
|
+
'security/payload-library.js',
|
|
416
|
+
'security/web-scanner.js',
|
|
417
|
+
'security/report-generator.js'
|
|
418
|
+
],
|
|
419
|
+
docs: [
|
|
420
|
+
'WEBAPP_SECURITY_GUIDE.md',
|
|
421
|
+
'OWASP_TOP10.md',
|
|
422
|
+
'LEGAL_REQUIREMENTS.md'
|
|
423
|
+
],
|
|
424
|
+
mcpServers: [],
|
|
425
|
+
dependencies: ['core', 'development', 'security-pentest'],
|
|
426
|
+
envVars: [
|
|
427
|
+
'BURP_SUITE_PATH=/opt/burpsuite',
|
|
428
|
+
'ZAP_PATH=/usr/share/zaproxy'
|
|
429
|
+
]
|
|
430
|
+
}
|
|
431
|
+
};
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Get workflow by name
|
|
435
|
+
* @param {string} name - Workflow name
|
|
436
|
+
* @returns {Object|null} Workflow definition or null
|
|
437
|
+
*/
|
|
438
|
+
function getWorkflow(name) {
|
|
439
|
+
return WORKFLOWS[name] || null;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* Get all workflow names
|
|
444
|
+
* @returns {string[]} Array of workflow names
|
|
445
|
+
*/
|
|
446
|
+
function getWorkflowNames() {
|
|
447
|
+
return Object.keys(WORKFLOWS);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* Get workflows by category
|
|
452
|
+
* @param {string} category - Category name (content, development, publishing, deployment)
|
|
453
|
+
* @returns {Object[]} Array of workflow definitions
|
|
454
|
+
*/
|
|
455
|
+
function getWorkflowsByCategory(category) {
|
|
456
|
+
const categories = {
|
|
457
|
+
content: ['content', 'visual'],
|
|
458
|
+
development: ['development', 'git-ci'],
|
|
459
|
+
publishing: ['publish-wordpress', 'publish-payloadcms', 'publish-static'],
|
|
460
|
+
deployment: ['deployment', 'coolify']
|
|
461
|
+
};
|
|
462
|
+
|
|
463
|
+
const workflowNames = categories[category] || [];
|
|
464
|
+
return workflowNames.map(name => ({ name, ...WORKFLOWS[name] }));
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Resolve workflow dependencies recursively
|
|
469
|
+
* @param {string} workflowName - Workflow name
|
|
470
|
+
* @param {Set} resolved - Set of already resolved workflows
|
|
471
|
+
* @returns {string[]} Array of workflow names in dependency order
|
|
472
|
+
*/
|
|
473
|
+
function resolveWorkflowDependencies(workflowName, resolved = new Set()) {
|
|
474
|
+
const workflow = WORKFLOWS[workflowName];
|
|
475
|
+
if (!workflow) {
|
|
476
|
+
throw new Error(`Unknown workflow: ${workflowName}`);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
// Avoid circular dependencies
|
|
480
|
+
if (resolved.has(workflowName)) {
|
|
481
|
+
return [];
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
const dependencies = [];
|
|
485
|
+
|
|
486
|
+
// Resolve dependencies first
|
|
487
|
+
for (const dep of workflow.dependencies) {
|
|
488
|
+
if (!resolved.has(dep)) {
|
|
489
|
+
dependencies.push(...resolveWorkflowDependencies(dep, resolved));
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
// Add this workflow
|
|
494
|
+
dependencies.push(workflowName);
|
|
495
|
+
resolved.add(workflowName);
|
|
496
|
+
|
|
497
|
+
return dependencies;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Validate workflow definition
|
|
502
|
+
* @param {Object} workflow - Workflow definition
|
|
503
|
+
* @returns {{valid: boolean, errors: string[]}}
|
|
504
|
+
*/
|
|
505
|
+
function validateWorkflow(workflow) {
|
|
506
|
+
const errors = [];
|
|
507
|
+
|
|
508
|
+
if (!workflow.name) errors.push('Missing workflow name');
|
|
509
|
+
if (!workflow.description) errors.push('Missing workflow description');
|
|
510
|
+
if (!Array.isArray(workflow.agents)) errors.push('agents must be an array');
|
|
511
|
+
if (!Array.isArray(workflow.commands)) errors.push('commands must be an array');
|
|
512
|
+
if (!Array.isArray(workflow.scripts)) errors.push('scripts must be an array');
|
|
513
|
+
if (!Array.isArray(workflow.libs)) errors.push('libs must be an array');
|
|
514
|
+
if (!Array.isArray(workflow.docs)) errors.push('docs must be an array');
|
|
515
|
+
if (!Array.isArray(workflow.mcpServers)) errors.push('mcpServers must be an array');
|
|
516
|
+
if (!Array.isArray(workflow.dependencies)) errors.push('dependencies must be an array');
|
|
517
|
+
if (!Array.isArray(workflow.envVars)) errors.push('envVars must be an array');
|
|
518
|
+
|
|
519
|
+
return {
|
|
520
|
+
valid: errors.length === 0,
|
|
521
|
+
errors
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
export {
|
|
526
|
+
WORKFLOWS,
|
|
527
|
+
getWorkflow,
|
|
528
|
+
getWorkflowNames,
|
|
529
|
+
getWorkflowsByCategory,
|
|
530
|
+
resolveWorkflowDependencies,
|
|
531
|
+
validateWorkflow
|
|
532
|
+
};
|