myaidev-method 0.2.22 → 0.2.24-1
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/USER_GUIDE.md +453 -48
- package/bin/cli.js +236 -38
- package/content-rules.example.md +80 -0
- package/dist/mcp/mcp-launcher.js +237 -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 +22 -17
- package/src/config/workflows.js +28 -44
- package/src/index.js +21 -8
- package/src/lib/ascii-banner.js +214 -0
- package/src/lib/config-manager.js +470 -0
- package/src/lib/content-generator.js +427 -0
- package/src/lib/html-conversion-utils.js +843 -0
- package/src/lib/seo-optimizer.js +515 -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 +1000 -811
- package/src/lib/wordpress-client.js +633 -0
- package/src/lib/workflow-installer.js +3 -3
- package/src/scripts/configure-wordpress-mcp.js +8 -3
- package/src/scripts/generate-visual-cli.js +365 -235
- package/src/scripts/html-conversion-cli.js +526 -0
- package/src/scripts/init/configure.js +436 -0
- package/src/scripts/init/install.js +460 -0
- package/src/scripts/ping.js +250 -0
- package/src/scripts/utils/file-utils.js +404 -0
- package/src/scripts/utils/logger.js +300 -0
- package/src/scripts/utils/write-content.js +293 -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/visual-content-generator.md +311 -8
- package/src/templates/claude/commands/myai-configure.md +1 -1
- package/src/templates/claude/commands/myai-content-rules-setup.md +204 -0
- package/src/templates/claude/commands/myai-convert-html.md +186 -0
- package/src/templates/codex/commands/myai-content-rules-setup.md +85 -0
- package/src/templates/diagrams/architecture.d2 +52 -0
- package/src/templates/diagrams/flowchart.d2 +42 -0
- package/src/templates/diagrams/sequence.d2 +47 -0
- package/src/templates/docs/content-creation-guide.md +164 -0
- package/src/templates/docs/deployment-guide.md +336 -0
- package/src/templates/docs/visual-generation-guide.md +248 -0
- package/src/templates/docs/wordpress-publishing-guide.md +208 -0
- package/src/templates/gemini/commands/myai-content-rules-setup.toml +57 -0
- package/src/templates/infographics/comparison-table.html +347 -0
- package/src/templates/infographics/data-chart.html +268 -0
- package/src/templates/infographics/process-flow.html +365 -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 -74
- package/src/templates/claude/slash_commands.json +0 -166
- package/src/templates/scripts/configure-wordpress-mcp.js +0 -181
- /package/src/scripts/{wordpress-health-check.js → wordpress/wordpress-health-check.js} +0 -0
|
@@ -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,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myaidev-method",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.24-1",
|
|
4
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
|
-
"myaidev-method": "
|
|
9
|
-
"myaidev-mcp-server": "
|
|
10
|
-
"myaidev-mcp-launcher": "
|
|
11
|
-
"myaidev-sparc-orchestrator": "
|
|
8
|
+
"myaidev-method": "bin/cli.js",
|
|
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",
|
|
15
15
|
"test:gutenberg": "node test/test-gutenberg-converter.js",
|
|
16
16
|
"test:install": "node test/test-installation.js",
|
|
17
|
+
"test:workflows": "node test/test-workflow-installer.js",
|
|
17
18
|
"test:mcp": "node test/test-enhanced-mcp-server.js",
|
|
18
19
|
"test:mcp:simple": "node test/test-simple-mcp.js",
|
|
19
20
|
"mcp:start": "node src/mcp/mcp-launcher.js start",
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
"mcp:sparc": "node .claude/mcp/sparc-orchestrator-server.js",
|
|
23
24
|
"mcp:status": "node src/mcp/mcp-launcher.js status",
|
|
24
25
|
"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/",
|
|
26
|
+
"build:mcp": "mkdir -p dist/mcp && cp .claude/mcp/*.js .claude/mcp/*.json dist/mcp/ && cp src/mcp/mcp-launcher.js dist/mcp/",
|
|
26
27
|
"build:server": "tsc -p tsconfig.server.json && mkdir -p dist/server/database && cp src/server/database/schema.sql dist/server/database/",
|
|
27
28
|
"build": "npm run build:mcp && npm run build:server",
|
|
28
29
|
"dev:server": "tsx watch src/server/main.ts",
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
"configure": "node src/scripts/configure-cms.js",
|
|
51
52
|
"configure:visual": "node src/scripts/configure-visual-apis.js",
|
|
52
53
|
"generate:visual": "node src/scripts/generate-visual-cli.js",
|
|
54
|
+
"convert:html": "node src/scripts/html-conversion-cli.js",
|
|
53
55
|
"init": "node src/scripts/init-project.js"
|
|
54
56
|
},
|
|
55
57
|
"keywords": [
|
|
@@ -104,29 +106,31 @@
|
|
|
104
106
|
"@hono/node-server": "^1.19.5",
|
|
105
107
|
"@modelcontextprotocol/sdk": "^1.18.0",
|
|
106
108
|
"@tsconfig/strictest": "^2.0.5",
|
|
107
|
-
"bcrypt": "^
|
|
108
|
-
"better-sqlite3": "^
|
|
109
|
+
"bcrypt": "^6.0.0",
|
|
110
|
+
"better-sqlite3": "^12.5.0",
|
|
109
111
|
"chalk": "^5.3.0",
|
|
110
|
-
"commander": "^
|
|
111
|
-
"dotenv": "^
|
|
112
|
+
"commander": "^14.0.2",
|
|
113
|
+
"dotenv": "^17.2.3",
|
|
112
114
|
"effect": "^3.18.4",
|
|
113
115
|
"fs-extra": "^11.2.0",
|
|
114
116
|
"google-auth-library": "^10.5.0",
|
|
115
117
|
"gray-matter": "^4.0.3",
|
|
116
118
|
"hono": "^4.10.3",
|
|
117
|
-
"inquirer": "^
|
|
118
|
-
"jose": "^
|
|
119
|
-
"marked": "^
|
|
119
|
+
"inquirer": "^13.1.0",
|
|
120
|
+
"jose": "^6.1.3",
|
|
121
|
+
"marked": "^17.0.1",
|
|
120
122
|
"node-fetch": "^3.3.2",
|
|
121
|
-
"ora": "^
|
|
123
|
+
"ora": "^9.0.0",
|
|
124
|
+
"pptxgenjs": "^4.0.1",
|
|
125
|
+
"puppeteer": "^24.35.0",
|
|
122
126
|
"simple-git": "^3.22.0",
|
|
123
127
|
"ssh2": "^1.15.0",
|
|
124
|
-
"zod": "^3.
|
|
128
|
+
"zod": "^4.3.5"
|
|
125
129
|
},
|
|
126
130
|
"devDependencies": {
|
|
127
|
-
"@types/bcrypt": "^
|
|
131
|
+
"@types/bcrypt": "^6.0.0",
|
|
128
132
|
"@types/better-sqlite3": "^7.6.11",
|
|
129
|
-
"@types/node": "^
|
|
133
|
+
"@types/node": "^25.0.3",
|
|
130
134
|
"tsx": "^4.7.1",
|
|
131
135
|
"typescript": "^5.3.3"
|
|
132
136
|
},
|
|
@@ -141,6 +145,7 @@
|
|
|
141
145
|
"files": [
|
|
142
146
|
"bin/",
|
|
143
147
|
"src/",
|
|
148
|
+
"docs/",
|
|
144
149
|
"dist/",
|
|
145
150
|
"README.md",
|
|
146
151
|
"USER_GUIDE.md",
|
package/src/config/workflows.js
CHANGED
|
@@ -6,30 +6,41 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
const WORKFLOWS = {
|
|
9
|
-
// Content Creation Workflow
|
|
9
|
+
// Content Creation Workflow (includes WordPress publishing)
|
|
10
10
|
content: {
|
|
11
11
|
name: 'Content Creation',
|
|
12
12
|
description: 'Professional content writing with SEO optimization and WordPress publishing',
|
|
13
13
|
agents: [
|
|
14
14
|
'content-writer',
|
|
15
|
-
'proprietary-content-verifier'
|
|
15
|
+
'proprietary-content-verifier',
|
|
16
|
+
'wordpress-admin'
|
|
16
17
|
],
|
|
17
18
|
commands: [
|
|
18
|
-
'myai-content-writer'
|
|
19
|
+
'myai-content-writer',
|
|
20
|
+
'myai-wordpress-publish',
|
|
21
|
+
'myai-coordinate-content'
|
|
19
22
|
],
|
|
20
23
|
scripts: [
|
|
21
|
-
'utils/write-content.js'
|
|
24
|
+
'utils/write-content.js',
|
|
25
|
+
'wordpress/publish-to-wordpress.js',
|
|
26
|
+
'wordpress/wordpress-health-check.js'
|
|
22
27
|
],
|
|
23
28
|
libs: [
|
|
24
29
|
'content-generator.js',
|
|
25
|
-
'seo-optimizer.js'
|
|
30
|
+
'seo-optimizer.js',
|
|
31
|
+
'wordpress-client.js'
|
|
26
32
|
],
|
|
27
33
|
docs: [
|
|
28
|
-
'content-creation-guide.md'
|
|
34
|
+
'content-creation-guide.md',
|
|
35
|
+
'wordpress-publishing-guide.md'
|
|
29
36
|
],
|
|
30
|
-
mcpServers: [],
|
|
37
|
+
mcpServers: ['myaidev'],
|
|
31
38
|
dependencies: ['core'],
|
|
32
|
-
envVars: [
|
|
39
|
+
envVars: [
|
|
40
|
+
'WORDPRESS_URL',
|
|
41
|
+
'WORDPRESS_USERNAME',
|
|
42
|
+
'WORDPRESS_APP_PASSWORD'
|
|
43
|
+
]
|
|
33
44
|
},
|
|
34
45
|
|
|
35
46
|
// Visual Content Generation Workflow
|
|
@@ -92,9 +103,7 @@ const WORKFLOWS = {
|
|
|
92
103
|
],
|
|
93
104
|
scripts: [],
|
|
94
105
|
libs: [],
|
|
95
|
-
docs: [
|
|
96
|
-
'sparc-methodology.md'
|
|
97
|
-
],
|
|
106
|
+
docs: [],
|
|
98
107
|
mcpServers: [],
|
|
99
108
|
dependencies: ['core'],
|
|
100
109
|
envVars: []
|
|
@@ -113,9 +122,7 @@ const WORKFLOWS = {
|
|
|
113
122
|
'ci/lint.js'
|
|
114
123
|
],
|
|
115
124
|
libs: [],
|
|
116
|
-
docs: [
|
|
117
|
-
'git-workflow-guide.md'
|
|
118
|
-
],
|
|
125
|
+
docs: [],
|
|
119
126
|
mcpServers: [],
|
|
120
127
|
dependencies: ['core'],
|
|
121
128
|
envVars: []
|
|
@@ -192,9 +199,7 @@ const WORKFLOWS = {
|
|
|
192
199
|
libs: [
|
|
193
200
|
'payloadcms-utils.js'
|
|
194
201
|
],
|
|
195
|
-
docs: [
|
|
196
|
-
'payloadcms-publishing-guide.md'
|
|
197
|
-
],
|
|
202
|
+
docs: [],
|
|
198
203
|
mcpServers: [],
|
|
199
204
|
dependencies: ['core', 'content'],
|
|
200
205
|
envVars: [
|
|
@@ -219,9 +224,7 @@ const WORKFLOWS = {
|
|
|
219
224
|
libs: [
|
|
220
225
|
'static-generator.js'
|
|
221
226
|
],
|
|
222
|
-
docs: [
|
|
223
|
-
'static-site-guide.md'
|
|
224
|
-
],
|
|
227
|
+
docs: [],
|
|
225
228
|
mcpServers: [],
|
|
226
229
|
dependencies: ['core', 'content'],
|
|
227
230
|
envVars: []
|
|
@@ -242,9 +245,7 @@ const WORKFLOWS = {
|
|
|
242
245
|
libs: [
|
|
243
246
|
'coolify-client.js'
|
|
244
247
|
],
|
|
245
|
-
docs: [
|
|
246
|
-
'coolify-deployment-guide.md'
|
|
247
|
-
],
|
|
248
|
+
docs: [],
|
|
248
249
|
mcpServers: [],
|
|
249
250
|
dependencies: ['core', 'deployment'],
|
|
250
251
|
envVars: [
|
|
@@ -273,10 +274,7 @@ const WORKFLOWS = {
|
|
|
273
274
|
libs: [
|
|
274
275
|
'config-manager.js'
|
|
275
276
|
],
|
|
276
|
-
docs: [
|
|
277
|
-
'README.md',
|
|
278
|
-
'TECHNICAL_ARCHITECTURE.md'
|
|
279
|
-
],
|
|
277
|
+
docs: [],
|
|
280
278
|
mcpServers: [],
|
|
281
279
|
dependencies: [],
|
|
282
280
|
envVars: []
|
|
@@ -320,12 +318,7 @@ const WORKFLOWS = {
|
|
|
320
318
|
'security/cvss-calculator.js',
|
|
321
319
|
'security/report-generator.js'
|
|
322
320
|
],
|
|
323
|
-
docs: [
|
|
324
|
-
'SECURITY_TESTING_GUIDE.md',
|
|
325
|
-
'LEGAL_REQUIREMENTS.md',
|
|
326
|
-
'TOOL_INSTALLATION.md',
|
|
327
|
-
'PENTEST_METHODOLOGY.md'
|
|
328
|
-
],
|
|
321
|
+
docs: [],
|
|
329
322
|
mcpServers: [],
|
|
330
323
|
dependencies: ['core', 'development'],
|
|
331
324
|
envVars: [
|
|
@@ -371,12 +364,7 @@ const WORKFLOWS = {
|
|
|
371
364
|
'security/cvss-calculator.js',
|
|
372
365
|
'security/report-generator.js'
|
|
373
366
|
],
|
|
374
|
-
docs: [
|
|
375
|
-
'SECURITY_AUDIT_GUIDE.md',
|
|
376
|
-
'COMPLIANCE_FRAMEWORKS.md',
|
|
377
|
-
'SYSTEM_HARDENING.md',
|
|
378
|
-
'LEGAL_REQUIREMENTS.md'
|
|
379
|
-
],
|
|
367
|
+
docs: [],
|
|
380
368
|
mcpServers: [],
|
|
381
369
|
dependencies: ['core'],
|
|
382
370
|
envVars: [
|
|
@@ -416,11 +404,7 @@ const WORKFLOWS = {
|
|
|
416
404
|
'security/web-scanner.js',
|
|
417
405
|
'security/report-generator.js'
|
|
418
406
|
],
|
|
419
|
-
docs: [
|
|
420
|
-
'WEBAPP_SECURITY_GUIDE.md',
|
|
421
|
-
'OWASP_TOP10.md',
|
|
422
|
-
'LEGAL_REQUIREMENTS.md'
|
|
423
|
-
],
|
|
407
|
+
docs: [],
|
|
424
408
|
mcpServers: [],
|
|
425
409
|
dependencies: ['core', 'development', 'security-pentest'],
|
|
426
410
|
envVars: [
|
package/src/index.js
CHANGED
|
@@ -2,19 +2,32 @@ export { WordPressMCP } from './mcp/wordpress-integration.js';
|
|
|
2
2
|
|
|
3
3
|
export const MyAIDevMethod = {
|
|
4
4
|
version: '1.0.0',
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
templates: {
|
|
6
|
+
claude: {
|
|
7
|
+
agents: './templates/claude/agents/',
|
|
8
|
+
commands: './templates/claude/commands/'
|
|
9
|
+
},
|
|
10
|
+
gemini: {
|
|
11
|
+
commands: './templates/gemini/commands/'
|
|
12
|
+
},
|
|
13
|
+
codex: {
|
|
14
|
+
commands: './templates/codex/commands/'
|
|
9
15
|
}
|
|
10
16
|
},
|
|
17
|
+
agents: {
|
|
18
|
+
// Agent templates are now in src/templates/claude/agents/
|
|
19
|
+
'content-writer': './templates/claude/agents/content-writer.md',
|
|
20
|
+
'content-rules-setup': './templates/claude/agents/content-rules-setup.md',
|
|
21
|
+
'visual-content-generator': './templates/claude/agents/visual-content-generator.md',
|
|
22
|
+
'content-production-coordinator': './templates/claude/agents/content-production-coordinator.md'
|
|
23
|
+
},
|
|
11
24
|
mcp: {
|
|
12
25
|
wordpress: './mcp/wordpress-mcp.json'
|
|
13
26
|
},
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
27
|
+
lib: {
|
|
28
|
+
visualGeneration: './lib/visual-generation-utils.js',
|
|
29
|
+
assetManagement: './lib/asset-management.js',
|
|
30
|
+
visualConfig: './lib/visual-config-utils.js'
|
|
18
31
|
}
|
|
19
32
|
};
|
|
20
33
|
|
package/src/lib/ascii-banner.js
CHANGED
|
@@ -98,3 +98,217 @@ ${commands}
|
|
|
98
98
|
${chalk.hex('#FFA500').bold('🎯 Ready to build with the SPARC methodology!')}
|
|
99
99
|
`;
|
|
100
100
|
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Get workflow-specific mini banner
|
|
104
|
+
*/
|
|
105
|
+
export function getWorkflowBanner(workflowName) {
|
|
106
|
+
const orange = chalk.hex('#FFA500');
|
|
107
|
+
const grey = chalk.hex('#808080');
|
|
108
|
+
|
|
109
|
+
const banners = {
|
|
110
|
+
content: `
|
|
111
|
+
${orange('╔═══════════════════════════════════════════════════════════╗')}
|
|
112
|
+
${orange('║')} ${chalk.bold.white('✍️ CONTENT CREATION WORKFLOW')} ${orange('║')}
|
|
113
|
+
${orange('║')} ${grey('Professional SEO-optimized content with WordPress publishing')} ${orange('║')}
|
|
114
|
+
${orange('╚═══════════════════════════════════════════════════════════╝')}`,
|
|
115
|
+
visual: `
|
|
116
|
+
${orange('╔═══════════════════════════════════════════════════════════╗')}
|
|
117
|
+
${orange('║')} ${chalk.bold.white('🎨 VISUAL CONTENT GENERATION WORKFLOW')} ${orange('║')}
|
|
118
|
+
${orange('║')} ${grey('AI-powered images & videos with Gemini, Imagen, FLUX, Veo')} ${orange('║')}
|
|
119
|
+
${orange('╚═══════════════════════════════════════════════════════════╝')}`,
|
|
120
|
+
development: `
|
|
121
|
+
${orange('╔═══════════════════════════════════════════════════════════╗')}
|
|
122
|
+
${orange('║')} ${chalk.bold.white('🏗️ SPARC DEVELOPMENT WORKFLOW')} ${orange('║')}
|
|
123
|
+
${orange('║')} ${grey('Systematic software development with quality standards')} ${orange('║')}
|
|
124
|
+
${orange('╚═══════════════════════════════════════════════════════════╝')}`,
|
|
125
|
+
publish: `
|
|
126
|
+
${orange('╔═══════════════════════════════════════════════════════════╗')}
|
|
127
|
+
${orange('║')} ${chalk.bold.white('📤 PUBLISHING WORKFLOW')} ${orange('║')}
|
|
128
|
+
${orange('║')} ${grey('Multi-platform content publishing and distribution')} ${orange('║')}
|
|
129
|
+
${orange('╚═══════════════════════════════════════════════════════════╝')}`,
|
|
130
|
+
deploy: `
|
|
131
|
+
${orange('╔═══════════════════════════════════════════════════════════╗')}
|
|
132
|
+
${orange('║')} ${chalk.bold.white('🚀 DEPLOYMENT WORKFLOW')} ${orange('║')}
|
|
133
|
+
${orange('║')} ${grey('Application deployment and infrastructure management')} ${orange('║')}
|
|
134
|
+
${orange('╚═══════════════════════════════════════════════════════════╝')}`
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
return banners[workflowName] || banners.content;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Get content workflow success message
|
|
142
|
+
*/
|
|
143
|
+
export function getContentWorkflowSuccess(results, cliType = 'claude') {
|
|
144
|
+
const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
|
|
145
|
+
const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
|
|
146
|
+
|
|
147
|
+
return `
|
|
148
|
+
${chalk.green.bold('✨ Content Workflow Installed Successfully!')}
|
|
149
|
+
|
|
150
|
+
${chalk.cyan.bold('📊 Installation Summary:')}
|
|
151
|
+
${chalk.green('✓')} ${totalAgents} agents installed
|
|
152
|
+
${chalk.green('✓')} ${totalCommands} commands installed
|
|
153
|
+
|
|
154
|
+
${chalk.cyan.bold('📁 Files Installed:')}
|
|
155
|
+
${cliType === 'claude' ? '.claude/' : '.gemini/'}
|
|
156
|
+
├─ agents/
|
|
157
|
+
│ ├─ content-writer.md ${chalk.dim('# SEO content creation')}
|
|
158
|
+
│ ├─ wordpress-admin.md ${chalk.dim('# WordPress publishing')}
|
|
159
|
+
│ └─ proprietary-content-verifier.md ${chalk.dim('# Content validation')}
|
|
160
|
+
└─ commands/
|
|
161
|
+
├─ myai-content-writer.md ${chalk.dim('# /myai-content-writer')}
|
|
162
|
+
├─ myai-wordpress-publish.md ${chalk.dim('# /myai-wordpress-publish')}
|
|
163
|
+
└─ myai-coordinate-content.md ${chalk.dim('# /myai-coordinate-content')}
|
|
164
|
+
|
|
165
|
+
${chalk.yellow.bold('⚙️ Configuration Required:')}
|
|
166
|
+
Run ${chalk.cyan('/myai-configure')} to set up WordPress credentials:
|
|
167
|
+
${chalk.gray('• WORDPRESS_URL - Your WordPress site URL')}
|
|
168
|
+
${chalk.gray('• WORDPRESS_USERNAME - WordPress username')}
|
|
169
|
+
${chalk.gray('• WORDPRESS_APP_PASSWORD - Application password')}
|
|
170
|
+
|
|
171
|
+
${chalk.green.bold('🚀 Quick Start:')}
|
|
172
|
+
${chalk.gray('1.')} ${chalk.white('Create content:')} ${chalk.cyan('/myai-content-writer "Your Article Topic"')}
|
|
173
|
+
${chalk.gray('2.')} ${chalk.white('Publish to WP:')} ${chalk.cyan('/myai-wordpress-publish "article.md"')}
|
|
174
|
+
${chalk.gray('3.')} ${chalk.white('Batch publish:')} ${chalk.cyan('/myai-coordinate-content ./content/')}
|
|
175
|
+
|
|
176
|
+
${chalk.hex('#FFA500').bold('📝 Ready to create and publish professional content!')}
|
|
177
|
+
`;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Get visual workflow success message
|
|
182
|
+
*/
|
|
183
|
+
export function getVisualWorkflowSuccess(results, cliType = 'claude') {
|
|
184
|
+
const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
|
|
185
|
+
const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
|
|
186
|
+
|
|
187
|
+
return `
|
|
188
|
+
${chalk.green.bold('✨ Visual Content Workflow Installed Successfully!')}
|
|
189
|
+
|
|
190
|
+
${chalk.cyan.bold('📊 Installation Summary:')}
|
|
191
|
+
${chalk.green('✓')} ${totalAgents} agents installed
|
|
192
|
+
${chalk.green('✓')} ${totalCommands} commands installed
|
|
193
|
+
|
|
194
|
+
${chalk.cyan.bold('📁 Files Installed:')}
|
|
195
|
+
${cliType === 'claude' ? '.claude/' : '.gemini/'}
|
|
196
|
+
├─ agents/
|
|
197
|
+
│ └─ visual-content-generator.md ${chalk.dim('# AI image/video generation')}
|
|
198
|
+
└─ commands/
|
|
199
|
+
└─ myai-generate-visual.md ${chalk.dim('# /myai-generate-visual')}
|
|
200
|
+
|
|
201
|
+
${chalk.yellow.bold('⚙️ API Keys Required (at least one):')}
|
|
202
|
+
${chalk.gray('• GOOGLE_AI_API_KEY - For Gemini, Imagen, Veo')}
|
|
203
|
+
${chalk.gray('• OPENAI_API_KEY - For DALL-E')}
|
|
204
|
+
${chalk.gray('• FAL_AI_API_KEY - For FLUX models')}
|
|
205
|
+
|
|
206
|
+
${chalk.green.bold('🚀 Quick Start:')}
|
|
207
|
+
${chalk.gray('1.')} ${chalk.white('Generate image:')} ${chalk.cyan('/myai-generate-visual "A modern office workspace"')}
|
|
208
|
+
${chalk.gray('2.')} ${chalk.white('With options:')} ${chalk.cyan('/myai-generate-visual "Product photo" --service imagen')}
|
|
209
|
+
${chalk.gray('3.')} ${chalk.white('Generate video:')} ${chalk.cyan('/myai-generate-visual "Timelapse clouds" --type video')}
|
|
210
|
+
|
|
211
|
+
${chalk.cyan.bold('🎨 Supported Services:')}
|
|
212
|
+
${chalk.white('Images:')} Gemini • Imagen • DALL-E • FLUX
|
|
213
|
+
${chalk.white('Videos:')} Veo
|
|
214
|
+
|
|
215
|
+
${chalk.hex('#FFA500').bold('🎨 Ready to generate stunning visual content!')}
|
|
216
|
+
`;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Get development workflow success message
|
|
221
|
+
*/
|
|
222
|
+
export function getDevWorkflowSuccess(results, cliType = 'claude') {
|
|
223
|
+
const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
|
|
224
|
+
|
|
225
|
+
return `
|
|
226
|
+
${chalk.green.bold('✨ Development Workflow Installed Successfully!')}
|
|
227
|
+
|
|
228
|
+
${chalk.cyan.bold('📊 Installation Summary:')}
|
|
229
|
+
${chalk.green('✓')} ${totalCommands} SPARC commands installed
|
|
230
|
+
|
|
231
|
+
${chalk.cyan.bold('📁 Commands Installed:')}
|
|
232
|
+
${cliType === 'claude' ? '.claude/' : '.gemini/'}commands/
|
|
233
|
+
├─ sc:git.md ${chalk.dim('# Git operations')}
|
|
234
|
+
├─ sc:implement.md ${chalk.dim('# Feature implementation')}
|
|
235
|
+
├─ sc:test.md ${chalk.dim('# Testing strategies')}
|
|
236
|
+
├─ sc:analyze.md ${chalk.dim('# Code analysis')}
|
|
237
|
+
├─ sc:design.md ${chalk.dim('# Architecture design')}
|
|
238
|
+
└─ ... and more
|
|
239
|
+
|
|
240
|
+
${chalk.green.bold('🚀 SPARC Workflow Commands:')}
|
|
241
|
+
${chalk.gray('S')} ${chalk.white('Specification:')} ${chalk.cyan('/sc:brainstorm "Define requirements"')}
|
|
242
|
+
${chalk.gray('P')} ${chalk.white('Pseudocode:')} ${chalk.cyan('/sc:workflow "Plan implementation"')}
|
|
243
|
+
${chalk.gray('A')} ${chalk.white('Architecture:')} ${chalk.cyan('/sc:design "System architecture"')}
|
|
244
|
+
${chalk.gray('R')} ${chalk.white('Refinement:')} ${chalk.cyan('/sc:implement "Build feature"')}
|
|
245
|
+
${chalk.gray('C')} ${chalk.white('Completion:')} ${chalk.cyan('/sc:document "API documentation"')}
|
|
246
|
+
|
|
247
|
+
${chalk.cyan.bold('💡 Additional Commands:')}
|
|
248
|
+
${chalk.gray('•')} ${chalk.cyan('/sc:git')} - Git operations and commits
|
|
249
|
+
${chalk.gray('•')} ${chalk.cyan('/sc:test')} - Run tests with coverage
|
|
250
|
+
${chalk.gray('•')} ${chalk.cyan('/sc:analyze')} - Code quality analysis
|
|
251
|
+
${chalk.gray('•')} ${chalk.cyan('/sc:troubleshoot')} - Debug issues
|
|
252
|
+
|
|
253
|
+
${chalk.hex('#FFA500').bold('🏗️ Ready to build with SPARC methodology!')}
|
|
254
|
+
`;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Get publish workflow success message
|
|
259
|
+
*/
|
|
260
|
+
export function getPublishWorkflowSuccess(workflows, results, cliType = 'claude') {
|
|
261
|
+
const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
|
|
262
|
+
const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
|
|
263
|
+
|
|
264
|
+
const platformList = workflows.map(w => {
|
|
265
|
+
switch(w) {
|
|
266
|
+
case 'publish-wordpress': return 'WordPress';
|
|
267
|
+
case 'publish-payloadcms': return 'PayloadCMS';
|
|
268
|
+
case 'publish-static': return 'Static Sites (Hugo, Jekyll, 11ty)';
|
|
269
|
+
default: return w;
|
|
270
|
+
}
|
|
271
|
+
}).join(', ');
|
|
272
|
+
|
|
273
|
+
return `
|
|
274
|
+
${chalk.green.bold('✨ Publishing Workflow Installed Successfully!')}
|
|
275
|
+
|
|
276
|
+
${chalk.cyan.bold('📊 Installation Summary:')}
|
|
277
|
+
${chalk.green('✓')} ${totalAgents} agents installed
|
|
278
|
+
${chalk.green('✓')} ${totalCommands} commands installed
|
|
279
|
+
${chalk.green('✓')} Platforms: ${platformList}
|
|
280
|
+
|
|
281
|
+
${chalk.yellow.bold('⚙️ Configuration Required:')}
|
|
282
|
+
Run ${chalk.cyan('/myai-configure')} to set up your publishing platforms.
|
|
283
|
+
|
|
284
|
+
${chalk.green.bold('🚀 Quick Start:')}
|
|
285
|
+
${workflows.includes('publish-wordpress') ? chalk.gray('• WordPress:') + ' ' + chalk.cyan('/myai-wordpress-publish "article.md"') + '\n' : ''}${workflows.includes('publish-payloadcms') ? chalk.gray('• PayloadCMS:') + ' ' + chalk.cyan('/myai-payloadcms-publish "article.md"') + '\n' : ''}${workflows.includes('publish-static') ? chalk.gray('• Static:') + ' ' + chalk.cyan('/myai-static-publish "post.md"') : ''}
|
|
286
|
+
|
|
287
|
+
${chalk.hex('#FFA500').bold('📤 Ready to publish across platforms!')}
|
|
288
|
+
`;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Get deploy workflow success message
|
|
293
|
+
*/
|
|
294
|
+
export function getDeployWorkflowSuccess(workflows, results, cliType = 'claude') {
|
|
295
|
+
const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
|
|
296
|
+
const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
|
|
297
|
+
|
|
298
|
+
return `
|
|
299
|
+
${chalk.green.bold('✨ Deployment Workflow Installed Successfully!')}
|
|
300
|
+
|
|
301
|
+
${chalk.cyan.bold('📊 Installation Summary:')}
|
|
302
|
+
${chalk.green('✓')} ${totalAgents} agents installed
|
|
303
|
+
${chalk.green('✓')} ${totalCommands} commands installed
|
|
304
|
+
|
|
305
|
+
${chalk.yellow.bold('⚙️ Configuration Required:')}
|
|
306
|
+
${workflows.includes('coolify') ? chalk.gray('• COOLIFY_URL - Your Coolify instance URL') + '\n ' + chalk.gray('• COOLIFY_API_KEY - Coolify API key') : ''}
|
|
307
|
+
|
|
308
|
+
${chalk.green.bold('🚀 Quick Start:')}
|
|
309
|
+
${chalk.gray('•')} ${chalk.cyan('/myai-coolify-deploy')} - Deploy to Coolify
|
|
310
|
+
${chalk.gray('•')} ${chalk.cyan('/sc:deploy')} - General deployment commands
|
|
311
|
+
|
|
312
|
+
${chalk.hex('#FFA500').bold('🚀 Ready to deploy your applications!')}
|
|
313
|
+
`;
|
|
314
|
+
}
|