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.
Files changed (59) hide show
  1. package/USER_GUIDE.md +453 -48
  2. package/bin/cli.js +236 -38
  3. package/content-rules.example.md +80 -0
  4. package/dist/mcp/mcp-launcher.js +237 -0
  5. package/dist/server/.tsbuildinfo +1 -1
  6. package/dist/server/auth/layers.d.ts +1 -1
  7. package/dist/server/auth/services/AuthService.d.ts +1 -1
  8. package/dist/server/auth/services/TokenService.js.map +1 -1
  9. package/dist/server/auth/services/example.d.ts +5 -5
  10. package/package.json +22 -17
  11. package/src/config/workflows.js +28 -44
  12. package/src/index.js +21 -8
  13. package/src/lib/ascii-banner.js +214 -0
  14. package/src/lib/config-manager.js +470 -0
  15. package/src/lib/content-generator.js +427 -0
  16. package/src/lib/html-conversion-utils.js +843 -0
  17. package/src/lib/seo-optimizer.js +515 -0
  18. package/src/lib/update-manager.js +2 -1
  19. package/src/lib/visual-config-utils.js +321 -295
  20. package/src/lib/visual-generation-utils.js +1000 -811
  21. package/src/lib/wordpress-client.js +633 -0
  22. package/src/lib/workflow-installer.js +3 -3
  23. package/src/scripts/configure-wordpress-mcp.js +8 -3
  24. package/src/scripts/generate-visual-cli.js +365 -235
  25. package/src/scripts/html-conversion-cli.js +526 -0
  26. package/src/scripts/init/configure.js +436 -0
  27. package/src/scripts/init/install.js +460 -0
  28. package/src/scripts/ping.js +250 -0
  29. package/src/scripts/utils/file-utils.js +404 -0
  30. package/src/scripts/utils/logger.js +300 -0
  31. package/src/scripts/utils/write-content.js +293 -0
  32. package/src/scripts/wordpress/publish-to-wordpress.js +165 -0
  33. package/src/server/auth/services/TokenService.ts +1 -1
  34. package/src/templates/claude/agents/content-rules-setup.md +657 -0
  35. package/src/templates/claude/agents/content-writer.md +328 -1
  36. package/src/templates/claude/agents/visual-content-generator.md +311 -8
  37. package/src/templates/claude/commands/myai-configure.md +1 -1
  38. package/src/templates/claude/commands/myai-content-rules-setup.md +204 -0
  39. package/src/templates/claude/commands/myai-convert-html.md +186 -0
  40. package/src/templates/codex/commands/myai-content-rules-setup.md +85 -0
  41. package/src/templates/diagrams/architecture.d2 +52 -0
  42. package/src/templates/diagrams/flowchart.d2 +42 -0
  43. package/src/templates/diagrams/sequence.d2 +47 -0
  44. package/src/templates/docs/content-creation-guide.md +164 -0
  45. package/src/templates/docs/deployment-guide.md +336 -0
  46. package/src/templates/docs/visual-generation-guide.md +248 -0
  47. package/src/templates/docs/wordpress-publishing-guide.md +208 -0
  48. package/src/templates/gemini/commands/myai-content-rules-setup.toml +57 -0
  49. package/src/templates/infographics/comparison-table.html +347 -0
  50. package/src/templates/infographics/data-chart.html +268 -0
  51. package/src/templates/infographics/process-flow.html +365 -0
  52. package/.claude/mcp/sparc-orchestrator-server.js +0 -607
  53. package/.claude/mcp/wordpress-server.js +0 -1277
  54. package/src/agents/content-writer-prompt.md +0 -164
  55. package/src/agents/content-writer.json +0 -70
  56. package/src/templates/claude/mcp_config.json +0 -74
  57. package/src/templates/claude/slash_commands.json +0 -166
  58. package/src/templates/scripts/configure-wordpress-mcp.js +0 -181
  59. /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<AuthService | PasswordService | TokenService | AuditLogService | DatabaseService | UserRepository | SessionRepository | import("../user-management/LinuxUserService.js").LinuxUserService | import("../user-management/DirectoryService.js").DirectoryService | import("../user-management/QuotaService.js").QuotaService | import("../user-management/UserManagementService.js").UserManagementService, import("../../shared/types.js").AuthError | import("../database/db.js").DatabaseError, never>;
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 | AuditLogService | UserRepository | SessionRepository | UserManagementService>;
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":"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"}
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").DatabaseError | import("../../../shared/types.js").AuthError | import("../../../shared/types.js").ValidationError, PasswordService | UserRepository | AuditLogService>;
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").DatabaseError | import("../../../shared/types.js").AuthError | Error, SessionRepository | PasswordService | TokenService | UserRepository | AuditLogService>;
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").DatabaseError | import("../../../shared/types.js").AuthError | Error, SessionRepository | TokenService | UserRepository>;
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").DatabaseError | import("../../../shared/types.js").AuthError | Error, SessionRepository | TokenService | AuditLogService>;
24
- export declare const AuthenticationLayer: Layer.Layer<SessionRepository | PasswordService | TokenService | UserRepository | AuditLogService, import("../../../shared/types.js").AuthError, DatabaseService>;
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.22",
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": "./bin/cli.js",
9
- "myaidev-mcp-server": "./.claude/mcp/wordpress-server.js",
10
- "myaidev-mcp-launcher": "./src/mcp/mcp-launcher.js",
11
- "myaidev-sparc-orchestrator": "./.claude/mcp/sparc-orchestrator-server.js"
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": "^5.1.1",
108
- "better-sqlite3": "^11.0.0",
109
+ "bcrypt": "^6.0.0",
110
+ "better-sqlite3": "^12.5.0",
109
111
  "chalk": "^5.3.0",
110
- "commander": "^12.0.0",
111
- "dotenv": "^16.4.1",
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": "^9.2.15",
118
- "jose": "^5.2.2",
119
- "marked": "^11.0.0",
119
+ "inquirer": "^13.1.0",
120
+ "jose": "^6.1.3",
121
+ "marked": "^17.0.1",
120
122
  "node-fetch": "^3.3.2",
121
- "ora": "^8.0.1",
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.23.8"
128
+ "zod": "^4.3.5"
125
129
  },
126
130
  "devDependencies": {
127
- "@types/bcrypt": "^5.0.2",
131
+ "@types/bcrypt": "^6.0.0",
128
132
  "@types/better-sqlite3": "^7.6.11",
129
- "@types/node": "^20.11.17",
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",
@@ -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
- agents: {
6
- 'content-writer': {
7
- config: './agents/content-writer.json',
8
- prompt: './agents/content-writer-prompt.md'
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
- commands: {
15
- claude: './templates/claude/slash_commands.json',
16
- gemini: './templates/gemini/commands.json',
17
- codex: './templates/codex/commands.json'
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
 
@@ -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
+ }