fg-tracker-mcp 0.10.0 → 0.12.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.
- package/CHANGELOG.md +45 -0
- package/README.md +19 -7
- package/dist/cli.js +23 -8
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +82 -5
- package/dist/client.js +182 -20
- package/dist/client.js.map +1 -1
- package/dist/confirm.d.ts +15 -0
- package/dist/confirm.js +32 -0
- package/dist/confirm.js.map +1 -0
- package/dist/diagnostics.d.ts +18 -0
- package/dist/diagnostics.js +467 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/format.d.ts +25 -2
- package/dist/format.js +35 -8
- package/dist/format.js.map +1 -1
- package/dist/guide.js +10 -6
- package/dist/guide.js.map +1 -1
- package/dist/infra/tools.js +68 -27
- package/dist/infra/tools.js.map +1 -1
- package/dist/inputs.d.ts +40 -0
- package/dist/inputs.js +30 -0
- package/dist/inputs.js.map +1 -0
- package/dist/journeys.d.ts +71 -0
- package/dist/journeys.js +130 -0
- package/dist/journeys.js.map +1 -0
- package/dist/links.d.ts +87 -0
- package/dist/links.js +124 -0
- package/dist/links.js.map +1 -0
- package/dist/loadtest/scenario.d.ts +4 -4
- package/dist/loadtest/tools.d.ts +1 -1
- package/dist/loadtest/tools.js +78 -27
- package/dist/loadtest/tools.js.map +1 -1
- package/dist/permissions.d.ts +85 -0
- package/dist/permissions.js +216 -0
- package/dist/permissions.js.map +1 -0
- package/dist/schemas.d.ts +680 -0
- package/dist/schemas.js +308 -0
- package/dist/schemas.js.map +1 -0
- package/dist/server.d.ts +20 -2
- package/dist/server.js +495 -119
- package/dist/server.js.map +1 -1
- package/dist/writes.d.ts +35 -0
- package/dist/writes.js +409 -0
- package/dist/writes.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"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"}
|
package/dist/format.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
/** Link para um recurso (MCP `resource_link`): o painel ou um `fg-tracker://…` legível pelo servidor. */
|
|
2
|
+
export interface ResourceLink {
|
|
3
|
+
type: 'resource_link';
|
|
4
|
+
uri: string;
|
|
5
|
+
name: string;
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
mimeType?: string;
|
|
9
|
+
}
|
|
1
10
|
export interface ToolText {
|
|
2
11
|
[x: string]: unknown;
|
|
3
12
|
content: Array<{
|
|
4
13
|
type: 'text';
|
|
5
14
|
text: string;
|
|
6
|
-
}>;
|
|
15
|
+
} | ResourceLink>;
|
|
16
|
+
structuredContent?: Record<string, unknown>;
|
|
7
17
|
isError?: boolean;
|
|
8
18
|
}
|
|
9
19
|
export declare const MAX_SERIES_POINTS = 48;
|
|
@@ -18,10 +28,23 @@ export declare const MAX_ITEMS_CEILING = 1000;
|
|
|
18
28
|
export declare const PREVIEW_LINES = 25;
|
|
19
29
|
export declare function text(value: string): ToolText;
|
|
20
30
|
export declare function json(value: unknown, preface?: string): ToolText;
|
|
31
|
+
/**
|
|
32
|
+
* Resultado com `structuredContent` (o que o `outputSchema` descreve) e o texto de sempre:
|
|
33
|
+
* o resumo e, depois de uma linha em branco, o JSON de `body` (default: o próprio `data`).
|
|
34
|
+
* `body` existe para manter o JSON antigo do texto quando o estruturado mudou de forma
|
|
35
|
+
* (ex.: lista que virou `{ items }`). `body: null` deixa só o resumo.
|
|
36
|
+
*/
|
|
37
|
+
export declare function structured(data: Record<string, unknown>, summary: string, options?: {
|
|
38
|
+
body?: unknown;
|
|
39
|
+
links?: ResourceLink[];
|
|
40
|
+
}): ToolText;
|
|
21
41
|
export declare function errorResult(err: unknown): ToolText;
|
|
22
42
|
/** Executa `fn` e converte qualquer exceção em resultado `isError`. */
|
|
23
43
|
export declare function guard(fn: () => Promise<ToolText>): Promise<ToolText>;
|
|
24
|
-
/**
|
|
44
|
+
/**
|
|
45
|
+
* Reduz uma série a `max` pontos por amostragem uniforme, sempre com o primeiro e o
|
|
46
|
+
* último: numa série em ordem de tempo, o ponto mais recente nunca fica de fora.
|
|
47
|
+
*/
|
|
25
48
|
export declare function sampleSeries<T>(series: T[], max?: number): T[];
|
|
26
49
|
export declare function truncateList<T>(list: T[], max?: number): {
|
|
27
50
|
items: T[];
|
package/dist/format.js
CHANGED
|
@@ -5,9 +5,14 @@
|
|
|
5
5
|
* (default 200, teto 1000), cortada na API (cursor) ou por `listPage`, sempre
|
|
6
6
|
* com metadados de truncamento;
|
|
7
7
|
* - arrays internos de um objeto: ≤ 25 itens, com `<campo>Omitted`;
|
|
8
|
-
* - séries ≤ 48 pontos
|
|
8
|
+
* - séries ≤ 48 pontos, amostradas por igual e sempre com o primeiro e o último
|
|
9
|
+
* (o período recente nunca some); `markers` ficam com os 25 mais recentes;
|
|
10
|
+
* - traces ≤ 80 spans por página (tracker_get_trace pagina).
|
|
11
|
+
*
|
|
12
|
+
* Toda ferramenta de leitura devolve também `structuredContent` (validado contra o
|
|
13
|
+
* `outputSchema` da ferramenta), com o texto de antes mantido para compatibilidade.
|
|
9
14
|
*/
|
|
10
|
-
import { TrackApiError, readEnv } from './client.js';
|
|
15
|
+
import { TrackApiError, readEnv, redactSecrets } from './client.js';
|
|
11
16
|
export const MAX_SERIES_POINTS = 48;
|
|
12
17
|
/** Arrays internos (amostras, ocorrências, checks dentro de um objeto). */
|
|
13
18
|
export const MAX_LIST_ITEMS = 25;
|
|
@@ -28,9 +33,19 @@ export function json(value, preface) {
|
|
|
28
33
|
const body = pretty !== undefined && pretty.length > PRETTY_JSON_MAX_CHARS ? JSON.stringify(value) : pretty;
|
|
29
34
|
return text(preface ? `${preface}\n\n${body}` : body);
|
|
30
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Resultado com `structuredContent` (o que o `outputSchema` descreve) e o texto de sempre:
|
|
38
|
+
* o resumo e, depois de uma linha em branco, o JSON de `body` (default: o próprio `data`).
|
|
39
|
+
* `body` existe para manter o JSON antigo do texto quando o estruturado mudou de forma
|
|
40
|
+
* (ex.: lista que virou `{ items }`). `body: null` deixa só o resumo.
|
|
41
|
+
*/
|
|
42
|
+
export function structured(data, summary, options = {}) {
|
|
43
|
+
const base = options.body === null ? text(summary) : json(options.body === undefined ? data : options.body, summary);
|
|
44
|
+
return { ...base, content: [...base.content, ...(options.links ?? [])], structuredContent: data };
|
|
45
|
+
}
|
|
31
46
|
export function errorResult(err) {
|
|
32
47
|
const message = err instanceof TrackApiError ? err.describe() : err instanceof Error ? err.message : String(err);
|
|
33
|
-
return { content: [{ type: 'text', text: message }], isError: true };
|
|
48
|
+
return { content: [{ type: 'text', text: redactSecrets(message) }], isError: true };
|
|
34
49
|
}
|
|
35
50
|
/** Executa `fn` e converte qualquer exceção em resultado `isError`. */
|
|
36
51
|
export async function guard(fn) {
|
|
@@ -41,14 +56,18 @@ export async function guard(fn) {
|
|
|
41
56
|
return errorResult(err);
|
|
42
57
|
}
|
|
43
58
|
}
|
|
44
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Reduz uma série a `max` pontos por amostragem uniforme, sempre com o primeiro e o
|
|
61
|
+
* último: numa série em ordem de tempo, o ponto mais recente nunca fica de fora.
|
|
62
|
+
*/
|
|
45
63
|
export function sampleSeries(series, max = MAX_SERIES_POINTS) {
|
|
46
64
|
if (series.length <= max)
|
|
47
65
|
return series;
|
|
48
|
-
|
|
66
|
+
if (max <= 1)
|
|
67
|
+
return series.slice(-1);
|
|
49
68
|
const out = [];
|
|
50
69
|
for (let i = 0; i < max; i++) {
|
|
51
|
-
const item = series[Math.
|
|
70
|
+
const item = series[Math.round((i * (series.length - 1)) / (max - 1))];
|
|
52
71
|
if (item !== undefined)
|
|
53
72
|
out.push(item);
|
|
54
73
|
}
|
|
@@ -95,6 +114,8 @@ export function listPage(list, limit) {
|
|
|
95
114
|
const items = list.slice(0, limit).map((item) => compact(item));
|
|
96
115
|
return { total: list.length, returned: items.length, truncated: items.length < list.length, items };
|
|
97
116
|
}
|
|
117
|
+
/** Campos que são séries temporais em ordem crescente (`points` = histórico de uma rota). */
|
|
118
|
+
const SERIES_KEYS = new Set(['series', 'seriesQueriesPerMin', 'histogram', 'points']);
|
|
98
119
|
/**
|
|
99
120
|
* Compacta recursivamente: `series` viram amostras e arrays internos de um objeto
|
|
100
121
|
* ficam com até 25 itens (`<campo>Omitted` diz quantos saíram). Um array passado
|
|
@@ -110,10 +131,16 @@ export function compact(value, depth = 0) {
|
|
|
110
131
|
if (value && typeof value === 'object') {
|
|
111
132
|
const out = {};
|
|
112
133
|
for (const [k, v] of Object.entries(value)) {
|
|
113
|
-
if ((k
|
|
134
|
+
if (SERIES_KEYS.has(k) && Array.isArray(v)) {
|
|
114
135
|
out[k] = sampleSeries(v);
|
|
115
136
|
if (v.length > MAX_SERIES_POINTS)
|
|
116
|
-
out[`${k}Points`] = `${v.length} pontos, amostrados para ${MAX_SERIES_POINTS}`;
|
|
137
|
+
out[`${k}Points`] = `${v.length} pontos, amostrados para ${MAX_SERIES_POINTS} (inclui o primeiro e o último)`;
|
|
138
|
+
}
|
|
139
|
+
else if (k === 'markers' && Array.isArray(v)) {
|
|
140
|
+
// Marcadores de deploy em ordem de tempo: os mais recentes são os que importam.
|
|
141
|
+
out[k] = v.slice(-MAX_LIST_ITEMS).map((item) => compact(item, depth + 1));
|
|
142
|
+
if (v.length > MAX_LIST_ITEMS)
|
|
143
|
+
out.markersOmitted = v.length - MAX_LIST_ITEMS;
|
|
117
144
|
}
|
|
118
145
|
else if (k === 'spans' && Array.isArray(v)) {
|
|
119
146
|
const { items, truncated } = truncateList(v, MAX_TRACE_SPANS);
|
package/dist/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/guide.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
export const FRAMEWORKS = ['express', 'nestjs', 'nextjs', 'fastify', 'pino', 'winston'];
|
|
7
7
|
const PLACEHOLDER_KEY = 'stk_SUA_CHAVE_AQUI';
|
|
8
8
|
function envBlock(input) {
|
|
9
|
-
const key = input.apiKey
|
|
9
|
+
const key = input.apiKey || PLACEHOLDER_KEY;
|
|
10
10
|
return [
|
|
11
11
|
'```bash',
|
|
12
12
|
'# .env (não commitar a chave)',
|
|
@@ -28,7 +28,11 @@ function install(extra = []) {
|
|
|
28
28
|
}
|
|
29
29
|
function header(input, title) {
|
|
30
30
|
const lines = [`# ${title}`, ''];
|
|
31
|
-
if (input.projectName && input.projectId) {
|
|
31
|
+
if (input.projectName && input.projectId && !input.apiKey) {
|
|
32
|
+
// Token sem "Chave de ingestão: ler" ou papel viewer: a API devolve apiKey ''.
|
|
33
|
+
lines.push(`Projeto: **${input.projectName}** (\`${input.projectId}\`). A API não devolveu a chave de ingestão (token \`fgt_…\` sem "Chave de ingestão: ler", ou papel viewer): o código usa o placeholder \`${PLACEHOLDER_KEY}\`. Peça ao usuário para copiar \`FG_TRACKER_KEY\` no painel, em Conectar.`);
|
|
34
|
+
}
|
|
35
|
+
else if (input.projectName && input.projectId) {
|
|
32
36
|
lines.push(`Projeto: **${input.projectName}** (\`${input.projectId}\`). A chave abaixo é a chave real deste projeto — trate como segredo.`);
|
|
33
37
|
}
|
|
34
38
|
else {
|
|
@@ -44,7 +48,7 @@ function trackerFile(input, path, service) {
|
|
|
44
48
|
`import { createTracker } from 'fg-tracker-sdk';`,
|
|
45
49
|
``,
|
|
46
50
|
`export const tracker = createTracker({`,
|
|
47
|
-
` apiKey: process.env.FG_TRACKER_KEY!, // ${input.apiKey
|
|
51
|
+
` apiKey: process.env.FG_TRACKER_KEY!, // ${input.apiKey || PLACEHOLDER_KEY}`,
|
|
48
52
|
` endpoint: process.env.FG_TRACKER_URL ?? '${input.endpoint}',`,
|
|
49
53
|
` serviceName: '${service}',`,
|
|
50
54
|
` flushIntervalMs: 2000,`,
|
|
@@ -76,7 +80,7 @@ const FETCH_BLOCK = [
|
|
|
76
80
|
'```',
|
|
77
81
|
].join('\n');
|
|
78
82
|
function logsSection(input, service, logger) {
|
|
79
|
-
const key = input.apiKey
|
|
83
|
+
const key = input.apiKey || PLACEHOLDER_KEY;
|
|
80
84
|
const shipper = [
|
|
81
85
|
'```ts',
|
|
82
86
|
'// src/logs.ts — um shipper por processo; correlaciona traceId/spanId automaticamente',
|
|
@@ -243,7 +247,7 @@ export function buildGuide(input) {
|
|
|
243
247
|
"import { AppModule } from './app.module';",
|
|
244
248
|
'',
|
|
245
249
|
'export const tracker = createTracker({',
|
|
246
|
-
` apiKey: process.env.FG_TRACKER_KEY!, // ${input.apiKey
|
|
250
|
+
` apiKey: process.env.FG_TRACKER_KEY!, // ${input.apiKey || PLACEHOLDER_KEY}`,
|
|
247
251
|
` endpoint: process.env.FG_TRACKER_URL ?? '${input.endpoint}',`,
|
|
248
252
|
` serviceName: '${service}',`,
|
|
249
253
|
'});',
|
|
@@ -315,7 +319,7 @@ export function buildGuide(input) {
|
|
|
315
319
|
'export const tracker: Tracker =',
|
|
316
320
|
' g.__fgTracker ??',
|
|
317
321
|
' (g.__fgTracker = createTracker({',
|
|
318
|
-
` apiKey: process.env.FG_TRACKER_KEY!, // ${input.apiKey
|
|
322
|
+
` apiKey: process.env.FG_TRACKER_KEY!, // ${input.apiKey || PLACEHOLDER_KEY}`,
|
|
319
323
|
` endpoint: process.env.FG_TRACKER_URL ?? '${input.endpoint}',`,
|
|
320
324
|
` serviceName: '${service}',`,
|
|
321
325
|
' }));',
|
package/dist/guide.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAejG,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAE7C,SAAS,QAAQ,CAAC,KAAiB;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,eAAe,CAAC;IAC5C,OAAO;QACL,SAAS;QACT,+BAA+B;QAC/B,kBAAkB,GAAG,EAAE;QACvB,kBAAkB,KAAK,CAAC,QAAQ,EAAE;QAClC,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,QAAkB,EAAE;IACnC,MAAM,IAAI,GAAG,CAAC,uBAAuB,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,OAAO;QACL,SAAS;QACT,YAAY,IAAI,EAAE;QAClB,iBAAiB,IAAI,iBAAiB,IAAI,EAAE;QAC5C,KAAK;QACL,EAAE;QACF,oOAAoO;KACrO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,KAAiB,EAAE,KAAa;IAC9C,MAAM,KAAK,GAAG,CAAC,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"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"}
|
package/dist/infra/tools.js
CHANGED
|
@@ -7,7 +7,9 @@ import { stat, writeFile } from 'node:fs/promises';
|
|
|
7
7
|
import { join, resolve } from 'node:path';
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
import { TrackApiError } from '../client.js';
|
|
10
|
-
import {
|
|
10
|
+
import { DELETE_GUIDANCE, confirmSchema, refuseUnconfirmed } from '../confirm.js';
|
|
11
|
+
import { compact, guard, json, structured, text } from '../format.js';
|
|
12
|
+
import { infraEnvironmentsOutput, reportOutput } from '../schemas.js';
|
|
11
13
|
import { ENVIRONMENT_LABEL, describeAwsError, detectEnvironments, detectRegionsInUse, discoverAws, readStackOutputs, serviceLabel } from './aws.js';
|
|
12
14
|
import { DOC_PATH, GUARD_PATH, GUARD_SCRIPT, HANDOVER_DIR, HANDOVER_README, LOCK_PATH, PATCH_PATH, buildHandoverEdits, formatChanges, handoverDoc, handoverReadme, lockFile, writeHandoverFiles, } from './handover.js';
|
|
13
15
|
import { findCloudAssemblies, graphsFromAssembly } from './cdk-graph.js';
|
|
@@ -62,6 +64,7 @@ export function registerInfraTools(server, client, version) {
|
|
|
62
64
|
profiles: z.array(z.string().min(1)).max(20).optional().describe('Perfis a testar (default: todos os perfis encontrados, até 10)'),
|
|
63
65
|
includeRegions: z.array(regionSchema).max(20).optional().describe('Regiões extras a sempre considerar além das candidatas'),
|
|
64
66
|
},
|
|
67
|
+
outputSchema: infraEnvironmentsOutput,
|
|
65
68
|
annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
66
69
|
}, async ({ profiles, includeRegions }) => guard(async () => {
|
|
67
70
|
const result = await detectEnvironments({ profiles, includeRegions });
|
|
@@ -92,7 +95,7 @@ export function registerInfraTools(server, client, version) {
|
|
|
92
95
|
if (result.skipped.length)
|
|
93
96
|
lines.push('', 'Perfis ignorados:', ...result.skipped.map((s) => `- ${s.profile ?? '(cadeia padrão)'}: ${s.reason}`));
|
|
94
97
|
lines.push('', 'Próximos passos:', '1. Mostre a lista ao usuário e confirme quais contas/ambientes conectar (pergunte o ambiente só quando for desconhecido; confirme as regiões).', '2. Para cada ambiente escolhido: `infra_connect_account { projectId, level, name: "<nome> · <Ambiente>", environment, regions, profile }` → peça confirmação → rode o comando de deploy devolvido → `infra_verify_connection { projectId, connectionId, profile }` → `infra_discover { projectId, profile, regions }`.');
|
|
95
|
-
return
|
|
98
|
+
return structured({ accounts, skipped: result.skipped, profilesFound: result.profilesFound }, lines.join('\n'));
|
|
96
99
|
}));
|
|
97
100
|
/* 1 ---------------- conectar conta ---------------- */
|
|
98
101
|
server.registerTool('infra_connect_account', {
|
|
@@ -265,7 +268,7 @@ export function registerInfraTools(server, client, version) {
|
|
|
265
268
|
/* 3 ---------------- descoberta local ---------------- */
|
|
266
269
|
server.registerTool('infra_discover', {
|
|
267
270
|
title: 'Descobrir recursos AWS (credenciais locais)',
|
|
268
|
-
description: 'Inventário com as credenciais AWS do usuário (cadeia padrão ou `profile`), só leitura: GetCallerIdentity; por região Resource Explorer (Search "*", até 2000) ou Tagging API; CloudFormation ListStacks/ListStackResources para stacks e logical ids. Envia o snapshot para POST /v1/projects/:id/infra/snapshots e devolve resumo por serviço/região.',
|
|
271
|
+
description: 'Inventário com as credenciais AWS do usuário (cadeia padrão ou `profile`), só leitura: GetCallerIdentity; por região Resource Explorer (Search "*", até 2000) ou Tagging API; CloudFormation ListStacks/ListStackResources para stacks e logical ids. Envia o snapshot para POST /v1/projects/:id/infra/snapshots (FG_TRACKER_TOKEN com "Infraestrutura AWS: criar e editar"; a recusa do token é final) e devolve resumo por serviço/região. Só sem FG_TRACKER_TOKEN usa a chave FG_TRACKER_API_KEY (POST /v1/infra/snapshots), e só no projeto dela.',
|
|
269
272
|
inputSchema: {
|
|
270
273
|
projectId: projectIdSchema,
|
|
271
274
|
regions: z.array(regionSchema).min(1).max(20).optional().describe('Default: regiões das conexões do projeto, ou AWS_REGION'),
|
|
@@ -290,19 +293,11 @@ export function registerInfraTools(server, client, version) {
|
|
|
290
293
|
if (path)
|
|
291
294
|
iac = await analyzeIac(await resolveRoot(path));
|
|
292
295
|
const payload = { accountId: discovery.accountId, regions: discovery.regions, resources: discovery.resources, ...(iac ? { iac } : {}) };
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
}
|
|
298
|
-
catch (err) {
|
|
299
|
-
if (err instanceof TrackApiError && (err.status === 401 || err.status === 403 || err.status === 404) && client.hasApiKey) {
|
|
300
|
-
route = '/v1/infra/snapshots';
|
|
301
|
-
response = await client.post(route, { projectId, ...payload }).catch(wrapInfra);
|
|
302
|
-
}
|
|
303
|
-
else
|
|
304
|
-
wrapInfra(err);
|
|
305
|
-
}
|
|
296
|
+
// Com FG_TRACKER_TOKEN o Bearer decide (401, 403 e 404 inclusive): a chave nunca é a
|
|
297
|
+
// segunda tentativa, senão burlaria as permissões do token. Ela só vale sem token.
|
|
298
|
+
const byKey = !client.hasToken && client.hasApiKey;
|
|
299
|
+
const route = byKey ? '/v1/infra/snapshots' : `${base(projectId)}/snapshots`;
|
|
300
|
+
const response = byKey ? await client.postWithKey(route, { projectId, ...payload }).catch(wrapInfra) : await client.post(route, payload).catch(wrapInfra);
|
|
306
301
|
const byService = new Map();
|
|
307
302
|
const byRegion = new Map();
|
|
308
303
|
for (const r of discovery.resources) {
|
|
@@ -333,13 +328,48 @@ export function registerInfraTools(server, client, version) {
|
|
|
333
328
|
lines.push('', 'Próximos passos: `infra_analyze_iac` (liga stacks ao código) → `infra_assign_resources` (confirme com o usuário o que é do projeto e o que é compartilhado).');
|
|
334
329
|
return text(lines.join('\n'));
|
|
335
330
|
}));
|
|
331
|
+
/* 3b ---------------- achados e conexões ---------------- */
|
|
332
|
+
server.registerTool('infra_update_finding', {
|
|
333
|
+
title: 'Resolver ou ignorar um achado',
|
|
334
|
+
description: 'Muda o status de um achado dos quatro pilares (PATCH /v1/projects/:id/infra/findings/:findingId; owner/admin): resolved depois da correção, ignored quando não se aplica, open para reabrir. Não altera nada na AWS. infra_validate lista os achados abertos com o id (texto e `findings`). Exige "Infraestrutura AWS: criar e editar".',
|
|
335
|
+
inputSchema: {
|
|
336
|
+
projectId: projectIdSchema,
|
|
337
|
+
findingId: z.string().uuid().describe('id do achado (GET …/infra/findings)'),
|
|
338
|
+
status: z.enum(['open', 'resolved', 'ignored']),
|
|
339
|
+
},
|
|
340
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
341
|
+
}, async ({ projectId, findingId, status }) => guard(async () => {
|
|
342
|
+
const finding = await client.patch(`${base(projectId)}/findings/${findingId}`, { status }).catch(wrapInfra);
|
|
343
|
+
return json(compact(finding), `Achado "${finding.title ?? findingId}" (${finding.pillar ?? '?'}, ${finding.severity ?? '?'}) agora ${finding.status ?? status}.`);
|
|
344
|
+
}));
|
|
345
|
+
server.registerTool('infra_delete_connection', {
|
|
346
|
+
title: 'Remover conexão AWS',
|
|
347
|
+
description: `Remove uma conexão AWS do projeto no FG Tracker (DELETE /v1/projects/:id/infra/connections/:connectionId; owner/admin): os recursos dela saem do diagrama e a coleta para. Não apaga nada na AWS: o stack de conexão fg-tracker-<slug> e as roles continuam na conta (o usuário remove o stack no CloudFormation se quiser). ${DELETE_GUIDANCE} confirm = nome da conexão. Exige "Infraestrutura AWS: excluir".`,
|
|
348
|
+
inputSchema: { projectId: projectIdSchema, connectionId: z.string().uuid().describe('id da conexão (infra_get_diagram: linha "Conexões" e `connections`)'), confirm: confirmSchema },
|
|
349
|
+
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
|
|
350
|
+
}, async ({ projectId, connectionId, confirm }) => guard(async () => {
|
|
351
|
+
const connections = listOf(await client.get(`${base(projectId)}/connections`).catch(wrapInfra));
|
|
352
|
+
const connection = connections.find((item) => item.id === connectionId);
|
|
353
|
+
if (!connection)
|
|
354
|
+
return { ...text(`Conexão ${connectionId} não encontrada neste projeto: nada foi removido.`), isError: true };
|
|
355
|
+
const label = `a conexão "${connection.name ?? connectionId}"${connection.accountId ? ` (conta ${connection.accountId}${connection.environment ? `, ${connection.environment}` : ''})` : ''}`;
|
|
356
|
+
const refused = refuseUnconfirmed(confirm, [connection.name], label);
|
|
357
|
+
if (refused)
|
|
358
|
+
return refused;
|
|
359
|
+
await client.delete(`${base(projectId)}/connections/${connectionId}`).catch(wrapInfra);
|
|
360
|
+
return text(`Removida ${label}. Os recursos dela saíram do diagrama. O stack de conexão e as roles continuam na conta AWS: remova o stack no CloudFormation se não for mais usar.`);
|
|
361
|
+
}));
|
|
336
362
|
/* 4 ---------------- análise de IaC ---------------- */
|
|
337
363
|
server.registerTool('infra_analyze_iac', {
|
|
338
364
|
title: 'Analisar IaC do repositório',
|
|
339
365
|
description: 'Lê o repositório local (sem executar nada): cdk.json e entrada do app, stacks `new XStack(app, "Nome", { env })`, constructs `aws-cdk-lib/aws-*`, assets (Code.fromAsset, NodejsFunction, DockerImageFunction, ContainerImage.fromAsset), contextos, SAM, Serverless, Terraform (somente leitura) e comandos de deploy do CI. Devolve viabilidade de handover por stack.',
|
|
340
366
|
inputSchema: { path: z.string().optional().describe('Caminho do repositório (default: diretório atual)') },
|
|
367
|
+
outputSchema: reportOutput,
|
|
341
368
|
annotations: { readOnlyHint: true, openWorldHint: false },
|
|
342
|
-
}, async ({ path }) => guard(async () =>
|
|
369
|
+
}, async ({ path }) => guard(async () => {
|
|
370
|
+
const report = formatIac(await analyzeIac(await resolveRoot(path)));
|
|
371
|
+
return structured({ report }, report, { body: null });
|
|
372
|
+
}));
|
|
343
373
|
/* 4b ---------------- diagrama do IaC ---------------- */
|
|
344
374
|
server.registerTool('infra_publish_iac', {
|
|
345
375
|
title: 'Montar o diagrama a partir do CDK',
|
|
@@ -429,19 +459,22 @@ export function registerInfraTools(server, client, version) {
|
|
|
429
459
|
title: 'Plano de instrumentação de infra',
|
|
430
460
|
description: 'Varre o repositório e devolve um plano de patches (não aplicado): instalar fg-tracker-sdk, tracker.instrumentAws(new SQSClient()) nos clientes SQS/SNS/EventBridge/DynamoDB/Kinesis/SFN, tracker.instrumentPgPool(pool), tracker.startInfraReporter({ ecs: true }) em apps ECS, camada da extensão + FG_TRACKER_URL/FG_TRACKER_KEY nas Lambdas do CDK e tracker.wrapLambda(handler), com arquivos e trechos de código.',
|
|
431
461
|
inputSchema: { projectId: projectIdSchema, path: z.string().optional().describe('Caminho do repositório (default: diretório atual)') },
|
|
462
|
+
outputSchema: reportOutput,
|
|
432
463
|
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
433
464
|
}, async ({ projectId, path }) => guard(async () => {
|
|
434
465
|
const root = await resolveRoot(path);
|
|
435
466
|
const project = await getProject(projectId);
|
|
436
467
|
const conn = (await getConnections(projectId)).find((c) => c.accountId) ?? null;
|
|
437
468
|
const layerArn = conn?.accountId ? `arn:aws:lambda:${conn.regions?.[0] ?? '<região>'}:${conn.accountId}:layer:fg-tracker-extension:<versão>` : 'arn:aws:lambda:<região>:<conta>:layer:fg-tracker-extension:<versão>';
|
|
438
|
-
|
|
469
|
+
const report = await buildInstrumentPlan(root, { endpoint: client.baseUrl, serviceName: project.slug, layerArn });
|
|
470
|
+
return structured({ report }, report, { body: null });
|
|
439
471
|
}));
|
|
440
472
|
/* 7 ---------------- validação (notas) ---------------- */
|
|
441
473
|
server.registerTool('infra_validate', {
|
|
442
474
|
title: 'Notas dos quatro pilares',
|
|
443
|
-
description: 'Relatório compacto por pilar (performance, segurança, escalabilidade, confiabilidade): GET .../infra/scores + findings abertos, com as principais recomendações.',
|
|
475
|
+
description: 'Relatório compacto por pilar (performance, segurança, escalabilidade, confiabilidade): GET .../infra/scores + findings abertos, com as principais recomendações e o id de cada achado aberto (use em infra_update_finding).',
|
|
444
476
|
inputSchema: { projectId: projectIdSchema },
|
|
477
|
+
outputSchema: reportOutput,
|
|
445
478
|
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
446
479
|
}, async ({ projectId }) => guard(async () => {
|
|
447
480
|
const scores = await client.get(`${base(projectId)}/scores`).catch(wrapInfra);
|
|
@@ -459,18 +492,23 @@ export function registerInfraTools(server, client, version) {
|
|
|
459
492
|
lines.push('', `## ${PILLAR_LABEL[pillar] ?? pillar}: ${Math.round(p.score)}/100 (${p.open} abertos, ${p.critical} críticos)`);
|
|
460
493
|
const top = findings.filter((f) => f.pillar === pillar).sort((a, b) => (SEVERITY_RANK[a.severity] ?? 9) - (SEVERITY_RANK[b.severity] ?? 9)).slice(0, 5);
|
|
461
494
|
for (const f of top)
|
|
462
|
-
lines.push(`- [${f.severity}] ${f.title}${f.nodeId ? ` — ${names.get(f.nodeId) ?? f.nodeId}` : ''}${f.recommendation ? `\n → ${f.recommendation}` : ''}`);
|
|
495
|
+
lines.push(`- [${f.severity}] ${f.title}${f.nodeId ? ` — ${names.get(f.nodeId) ?? f.nodeId}` : ''} · id ${f.id}${f.recommendation ? `\n → ${f.recommendation}` : ''}`);
|
|
463
496
|
if (!top.length)
|
|
464
497
|
lines.push('- sem findings abertos');
|
|
465
498
|
}
|
|
466
|
-
lines.push('', 'Correções de infra são feitas pelo FG Tracker (diagrama → mudança → aprovação), nunca direto na AWS pelo agente. Ajustes de código (timeouts, pools, retries) podem ir no PR.');
|
|
467
|
-
|
|
499
|
+
lines.push('', 'Correções de infra são feitas pelo FG Tracker (diagrama → mudança → aprovação), nunca direto na AWS pelo agente. Ajustes de código (timeouts, pools, retries) podem ir no PR. Para resolver ou ignorar um achado: infra_update_finding { findingId } com o id acima (todos os abertos em `findings`).');
|
|
500
|
+
const report = lines.join('\n');
|
|
501
|
+
// Os ids de todos os abertos (até 200), para infra_update_finding.
|
|
502
|
+
const ranked = [...findings].sort((a, b) => (SEVERITY_RANK[a.severity] ?? 9) - (SEVERITY_RANK[b.severity] ?? 9));
|
|
503
|
+
const listed = ranked.slice(0, 200).map((f) => ({ id: f.id, pillar: f.pillar, severity: f.severity, title: f.title, nodeId: f.nodeId, status: f.status }));
|
|
504
|
+
return structured({ report, overall: scores.overall, pillars: scores.pillars ?? {}, openFindings: findings.length, findings: listed, ...(ranked.length > listed.length ? { findingsOmitted: ranked.length - listed.length } : {}) }, report, { body: null });
|
|
468
505
|
}));
|
|
469
506
|
/* 8 ---------------- diagrama ---------------- */
|
|
470
507
|
server.registerTool('infra_get_diagram', {
|
|
471
508
|
title: 'Diagrama da infraestrutura (texto)',
|
|
472
|
-
description: 'GET .../infra/graph em texto compacto: grupos (conta/região/VPC/AZ/subnet) → nós com estado, réplicas e custo; arestas; gargalos (nós em warning/critical); deploys ativos; notas e custo.',
|
|
509
|
+
description: 'GET .../infra/graph em texto compacto: conexões AWS (com o id, usado em infra_delete_connection), grupos (conta/região/VPC/AZ/subnet) → nós com estado, réplicas e custo; arestas; gargalos (nós em warning/critical); deploys ativos; notas e custo.',
|
|
473
510
|
inputSchema: { projectId: projectIdSchema, maxNodes: z.number().int().min(10).max(500).default(150).describe('Máximo de nós listados') },
|
|
511
|
+
outputSchema: reportOutput,
|
|
474
512
|
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
475
513
|
}, async ({ projectId, maxNodes }) => guard(async () => {
|
|
476
514
|
const g = await client.get(`${base(projectId)}/graph`).catch(wrapInfra);
|
|
@@ -478,7 +516,7 @@ export function registerInfraTools(server, client, version) {
|
|
|
478
516
|
const groups = g.groups ?? [];
|
|
479
517
|
const nameOf = new Map(nodes.map((n) => [n.id, n.name]));
|
|
480
518
|
const lines = [
|
|
481
|
-
`Conexões: ${(g.connections ?? []).map((c) => `${c.name} (${c.mode}, ${c.status}${c.accountId ? `, ${c.accountId}` : ''})`).join('; ') || 'nenhuma'}`,
|
|
519
|
+
`Conexões: ${(g.connections ?? []).map((c) => `${c.name} (${c.mode}, ${c.status}${c.accountId ? `, ${c.accountId}` : ''}, id ${c.id})`).join('; ') || 'nenhuma'}`,
|
|
482
520
|
`Nota ${g.scores ? Math.round(g.scores.overall) : '—'}/100 · custo agora ${usd(g.costs?.nowPerHour)}/h · hoje ${usd(g.costs?.today)} · mês ${usd(g.costs?.monthToDate)} (previsão ${usd(g.costs?.forecastMonth)}) · ${nodes.length} nós · ${(g.edges ?? []).length} arestas${g.live?.active ? ' · tempo real ativo' : ''}`,
|
|
483
521
|
'',
|
|
484
522
|
];
|
|
@@ -529,7 +567,9 @@ export function registerInfraTools(server, client, version) {
|
|
|
529
567
|
const deploys = g.activeDeployments ?? [];
|
|
530
568
|
if (deploys.length)
|
|
531
569
|
lines.push('', 'Deploys ativos:', ...deploys.slice(0, 10).map((d) => `- ${d.name} ${d.status}${d.stage ? ` (${d.stage})` : ''}${d.release ? ` · ${d.release}` : d.commitSha ? ` · ${d.commitSha.slice(0, 7)}` : ''}`));
|
|
532
|
-
|
|
570
|
+
const report = lines.join('\n');
|
|
571
|
+
const connections = (g.connections ?? []).map((c) => ({ id: c.id, name: c.name ?? null, mode: c.mode ?? null, status: c.status ?? null, accountId: c.accountId ?? null, environment: c.environment ?? null }));
|
|
572
|
+
return structured({ report, nodes: nodes.length, edges: edges.length, hot: hot.length, connections }, report, { body: null });
|
|
533
573
|
}));
|
|
534
574
|
/* 9 / 10 ---------------- handover ---------------- */
|
|
535
575
|
const handoverInputs = {
|
|
@@ -559,9 +599,10 @@ export function registerInfraTools(server, client, version) {
|
|
|
559
599
|
}
|
|
560
600
|
server.registerTool('infra_plan_handover', {
|
|
561
601
|
title: 'Planejar transferência de controle',
|
|
562
|
-
description: 'Combina POST .../infra/handover/plan com a análise local de IaC e devolve a lista exata de edições do PR: remover stacks do app CDK e do cdk deploy do CI, separar deploy de código (fg-tracker-release deploy --release <sha>), guard do CI, infra/fg-tracker.lock.json e README. Não escreve
|
|
602
|
+
description: 'Combina POST .../infra/handover/plan com a análise local de IaC e devolve a lista exata de edições do PR: remover stacks do app CDK e do cdk deploy do CI, separar deploy de código (fg-tracker-release deploy --release <sha>), guard do CI, infra/fg-tracker.lock.json e README. Não escreve arquivos locais, mas chama uma rota POST da API (sessão de owner/admin): não é uma ferramenta somente leitura.',
|
|
563
603
|
inputSchema: handoverInputs,
|
|
564
|
-
|
|
604
|
+
// POST /infra/handover/plan: escrita (owner/admin; "Infraestrutura AWS: criar e editar" no token).
|
|
605
|
+
annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
|
|
565
606
|
}, async ({ projectId, stackNames, path }) => guard(async () => {
|
|
566
607
|
const { apiPlan, apiPlanError, edits } = await prepareHandover(projectId, stackNames, path);
|
|
567
608
|
const patchLines = edits.patch.split('\n');
|