agent-master-devsecops 0.0.0-stage → 5.1.0

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 (61) hide show
  1. package/README.md +204 -2
  2. package/agents/AGENT_DEVSECOPS.md +32 -0
  3. package/agents/AGENT_INFRA.md +31 -0
  4. package/agents/AGENT_ORCHESTRATOR.md +39 -0
  5. package/agents/AGENT_QA.md +58 -0
  6. package/agents/AGENT_SCRUM.md +23 -0
  7. package/agents/AGENT_SRE.md +22 -0
  8. package/agents/AGENT_UIUX.md +26 -0
  9. package/docs/ARCHITECTURE.md +152 -0
  10. package/docs/CALCULATIONS.md +17 -0
  11. package/docs/CHANGELOG.md +112 -0
  12. package/docs/ENGINEERING_RULES.md +56 -0
  13. package/docs/IDEAS.md +17 -0
  14. package/docs/LOCAL_BACKLOG.md +20 -0
  15. package/docs/STATE.md +111 -0
  16. package/docs/playbooks/PLAYBOOK_CIRCUIT_BREAKER_LLM.md +58 -0
  17. package/docs/playbooks/PLAYBOOK_OPENTELEMETRY_TRACING.md +58 -0
  18. package/package.json +57 -4
  19. package/scripts/auditors/a11y_auditor.js +462 -0
  20. package/scripts/auditors/code_quality_auditor.js +444 -0
  21. package/scripts/auditors/contract_test_validator.js +396 -0
  22. package/scripts/auditors/eval_harness.js +213 -0
  23. package/scripts/auditors/git_hygiene_linter.js +391 -0
  24. package/scripts/auditors/pr_reviewer.js +627 -0
  25. package/scripts/auditors/sast_scanner.js +442 -0
  26. package/scripts/auditors/sca_dependency_auditor.js +673 -0
  27. package/scripts/bin/bootstrap_cli.js +597 -0
  28. package/scripts/bin/domain_idea_miner.js +658 -0
  29. package/scripts/bin/smart_onboarding.js +905 -0
  30. package/scripts/bin/web_inspector.js +578 -0
  31. package/scripts/core/architecture_advisor.js +378 -0
  32. package/scripts/core/ast_skeletonizer.js +413 -0
  33. package/scripts/core/autonomous_remediation_engine.js +305 -0
  34. package/scripts/core/circuit_breaker.js +546 -0
  35. package/scripts/core/context_compressor.js +237 -0
  36. package/scripts/core/fast_feature_scaffold.js +840 -0
  37. package/scripts/core/hot_state_cache.js +238 -0
  38. package/scripts/core/knowledge_gateway.js +888 -0
  39. package/scripts/core/magic_prompt_generator.js +250 -0
  40. package/scripts/core/multi_agent_orchestrator.js +421 -0
  41. package/scripts/core/otel_tracer.js +335 -0
  42. package/scripts/core/perf_benchmark.js +212 -0
  43. package/scripts/core/sarif_engine.js +299 -0
  44. package/scripts/core/sre_remediation_engine.js +236 -0
  45. package/scripts/core/universal_packager.js +357 -0
  46. package/scripts/integrations/atlassian_client.js +600 -0
  47. package/scripts/integrations/atlassian_sync_action.js +576 -0
  48. package/scripts/integrations/confluence_sync.js +684 -0
  49. package/scripts/integrations/credentials_guard.js +500 -0
  50. package/scripts/integrations/jira_manager.js +722 -0
  51. package/scripts/mcp/handlers/atlassian_handlers.js +300 -0
  52. package/scripts/mcp/handlers/core_handlers.js +419 -0
  53. package/scripts/mcp/handlers/qa_handlers.js +502 -0
  54. package/scripts/mcp/handlers/rules_handlers.js +379 -0
  55. package/scripts/mcp/handlers/scaffold_handlers.js +334 -0
  56. package/scripts/mcp/handlers/sre_handlers.js +443 -0
  57. package/scripts/mcp/resources_registry.js +453 -0
  58. package/scripts/mcp/server.js +408 -0
  59. package/scripts/mcp/tool_handlers.js +444 -0
  60. package/scripts/mcp/tools_registry.js +1123 -0
  61. package/scripts/mcp_server.js +236 -0
@@ -0,0 +1,236 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * scripts/mcp_server.js
4
+ *
5
+ * Servidor MCP Nativo (Model Context Protocol) — Ponto de Entrada Canônico & CLI
6
+ * Compatível com a especificação JSON-RPC 2.0 / MCP 2024-11-05.
7
+ *
8
+ * Atua como Fachada Canônica e Interface CLI de Alta Performance para o ecossistema
9
+ * agent-master-devsecops, delegando a execução ao dispatcher modular em ./mcp/server.js.
10
+ *
11
+ * Suporta inicialização interativa stdio, seleção dinâmica de perfis (--profile),
12
+ * relatórios executivos (--report), auditoria de conformidade OASIS SARIF v2.1.0 (--sarif),
13
+ * consulta de versões (--version) e graceful shutdown.
14
+ *
15
+ * Versão: 5.1.0 Enterprise
16
+ */
17
+
18
+ 'use strict';
19
+
20
+ const { version: PKG_VERSION } = require('../package.json');
21
+ const {
22
+ McpServer,
23
+ defaultServerInstance,
24
+ processMessage,
25
+ processMessageAsync,
26
+ startServer,
27
+ stopServer,
28
+ handleInitialize,
29
+ handleToolsList,
30
+ handleResourcesList,
31
+ handleResourceRead,
32
+ TOOLS,
33
+ RESOURCES,
34
+ TOOL_PROFILES,
35
+ getActiveTools,
36
+ setMcpProfile,
37
+ getActiveProfile,
38
+ auditToSarif,
39
+ formatReport,
40
+ PROTOCOL_VERSION,
41
+ JSONRPC_VERSION
42
+ } = require('./mcp/server.js');
43
+
44
+ /**
45
+ * Analisador funcional puro de argumentos de linha de comando.
46
+ * @param {string[]} argv
47
+ * @returns {Record<string, any>}
48
+ */
49
+ function parseArgs(argv = []) {
50
+ const args = Array.isArray(argv) ? argv : [];
51
+ const options = {
52
+ help: false,
53
+ version: false,
54
+ sarif: false,
55
+ report: false,
56
+ listTools: false,
57
+ listProfiles: false,
58
+ profile: null
59
+ };
60
+
61
+ for (let i = 0; i < args.length; i++) {
62
+ const arg = String(args[i]);
63
+ if (arg === '--help' || arg === '-h') {
64
+ options.help = true;
65
+ } else if (arg === '--version' || arg === '-v') {
66
+ options.version = true;
67
+ } else if (arg === '--sarif') {
68
+ options.sarif = true;
69
+ } else if (arg === '--report') {
70
+ options.report = true;
71
+ } else if (arg === '--list-tools') {
72
+ options.listTools = true;
73
+ } else if (arg === '--list-profiles') {
74
+ options.listProfiles = true;
75
+ } else if (arg === '--profile' || arg === '-p') {
76
+ if (i + 1 < args.length && !args[i + 1].startsWith('-')) {
77
+ options.profile = String(args[i + 1]);
78
+ i++;
79
+ }
80
+ } else if (arg.startsWith('--profile=')) {
81
+ options.profile = arg.slice('--profile='.length);
82
+ }
83
+ }
84
+
85
+ return Object.freeze(options);
86
+ }
87
+
88
+ /**
89
+ * Formata o texto de ajuda do CLI.
90
+ * @returns {string}
91
+ */
92
+ function formatHelpText() {
93
+ const profiles = Object.keys(TOOL_PROFILES).join(', ');
94
+ return [
95
+ `Servidor MCP Nativo — Agent Master DevSecOps v${PKG_VERSION}`,
96
+ `Protocolo MCP: ${PROTOCOL_VERSION} | JSON-RPC: ${JSONRPC_VERSION}`,
97
+ '',
98
+ 'Uso:',
99
+ ' agent-master-mcp [opções]',
100
+ ' node scripts/mcp_server.js [opções]',
101
+ '',
102
+ 'Opções:',
103
+ ' -p, --profile <nome> Inicia o servidor com o perfil especificado',
104
+ ` Perfis disponíveis: ${profiles}`,
105
+ ' --sarif Executa auditoria e emite relatório OASIS SARIF v2.1.0',
106
+ ' --report Emite relatório executivo em Markdown e finaliza',
107
+ ' --list-tools Lista ferramentas ativas do perfil atual e finaliza',
108
+ ' --list-profiles Lista todos os perfis disponíveis e finaliza',
109
+ ' -v, --version Exibe a versão do servidor e do protocolo MCP',
110
+ ' -h, --help Exibe esta ajuda operacional',
111
+ '',
112
+ 'Exemplo de Configuração para IDEs (Claude Desktop / Cursor):',
113
+ ' {',
114
+ ' "mcpServers": {',
115
+ ' "agent-master": {',
116
+ ' "command": "node",',
117
+ ' "args": ["scripts/mcp_server.js", "--profile", "consolidated"]',
118
+ ' }',
119
+ ' }',
120
+ ' }'
121
+ ].join('\n');
122
+ }
123
+
124
+ /**
125
+ * Executor do ponto de entrada CLI com suporte a injeção de I/O.
126
+ * @param {string[]} argv
127
+ * @param {object} io
128
+ * @returns {number} Código de saída (0 para sucesso, > 0 para erro)
129
+ */
130
+ function runCli(argv = process.argv.slice(2), io = {}) {
131
+ const stdout = io.stdout || process.stdout;
132
+ const stderr = io.stderr || process.stderr;
133
+
134
+ const options = parseArgs(argv);
135
+
136
+ if (options.help) {
137
+ stdout.write(formatHelpText() + '\n');
138
+ return 0;
139
+ }
140
+
141
+ if (options.version) {
142
+ stdout.write(`agent-master-devsecops v${PKG_VERSION} (MCP Protocol ${PROTOCOL_VERSION})\n`);
143
+ return 0;
144
+ }
145
+
146
+ if (options.sarif) {
147
+ const sarif = auditToSarif();
148
+ stdout.write(JSON.stringify(sarif, null, 2) + '\n');
149
+ return 0;
150
+ }
151
+
152
+ if (options.report) {
153
+ stdout.write(formatReport() + '\n');
154
+ return 0;
155
+ }
156
+
157
+ if (options.listProfiles) {
158
+ const list = Object.entries(TOOL_PROFILES)
159
+ .map(([name, tools]) => ` - ${name.padEnd(16)}: ${tools.length} ferramentas`)
160
+ .join('\n');
161
+ stdout.write(`Perfis de Ferramentas Disponíveis:\n${list}\n`);
162
+ return 0;
163
+ }
164
+
165
+ if (options.profile) {
166
+ const result = setMcpProfile(options.profile);
167
+ if (!result || !result.success) {
168
+ stderr.write(`[AVISO] Perfil desconhecido: "${options.profile}". Mantido perfil "${getActiveProfile()}".\n`);
169
+ }
170
+ }
171
+
172
+ if (options.listTools) {
173
+ const active = getActiveTools();
174
+ const list = active.map(t => ` - ${t.name.padEnd(30)}: ${t.description.slice(0, 60)}...`).join('\n');
175
+ stdout.write(`Ferramentas Ativas (Perfil: ${getActiveProfile()}, Total: ${active.length}):\n${list}\n`);
176
+ return 0;
177
+ }
178
+
179
+ // Em modo teste, não inicia listener bloqueante
180
+ if (io.testMode) {
181
+ return 0;
182
+ }
183
+
184
+ // Configura graceful shutdown no processo real
185
+ const cleanup = () => {
186
+ stopServer();
187
+ process.exit(0);
188
+ };
189
+ process.once('SIGINT', cleanup);
190
+ process.once('SIGTERM', cleanup);
191
+
192
+ startServer();
193
+ return 0;
194
+ }
195
+
196
+ if (require.main === module) {
197
+ runCli();
198
+ }
199
+
200
+ module.exports = {
201
+ // Fachada Canônica da Classe e Instância
202
+ McpServer,
203
+ defaultServerInstance,
204
+
205
+ // Funções de Despacho e Ciclo de Vida
206
+ processMessage,
207
+ processMessageAsync,
208
+ startServer,
209
+ stopServer,
210
+ handleInitialize,
211
+ handleToolsList,
212
+ handleResourcesList,
213
+ handleResourceRead,
214
+
215
+ // Catálogos e Perfis
216
+ TOOLS,
217
+ RESOURCES,
218
+ TOOL_PROFILES,
219
+ getActiveTools,
220
+ setMcpProfile,
221
+ getActiveProfile,
222
+
223
+ // Auditoria e Relatórios
224
+ auditToSarif,
225
+ formatReport,
226
+
227
+ // Utilitários CLI
228
+ parseArgs,
229
+ formatHelpText,
230
+ runCli,
231
+
232
+ // Constantes de Protocolo
233
+ PROTOCOL_VERSION,
234
+ JSONRPC_VERSION,
235
+ PKG_VERSION
236
+ };