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.
Files changed (46) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +19 -7
  3. package/dist/cli.js +23 -8
  4. package/dist/cli.js.map +1 -1
  5. package/dist/client.d.ts +82 -5
  6. package/dist/client.js +182 -20
  7. package/dist/client.js.map +1 -1
  8. package/dist/confirm.d.ts +15 -0
  9. package/dist/confirm.js +32 -0
  10. package/dist/confirm.js.map +1 -0
  11. package/dist/diagnostics.d.ts +18 -0
  12. package/dist/diagnostics.js +467 -0
  13. package/dist/diagnostics.js.map +1 -0
  14. package/dist/format.d.ts +25 -2
  15. package/dist/format.js +35 -8
  16. package/dist/format.js.map +1 -1
  17. package/dist/guide.js +10 -6
  18. package/dist/guide.js.map +1 -1
  19. package/dist/infra/tools.js +68 -27
  20. package/dist/infra/tools.js.map +1 -1
  21. package/dist/inputs.d.ts +40 -0
  22. package/dist/inputs.js +30 -0
  23. package/dist/inputs.js.map +1 -0
  24. package/dist/journeys.d.ts +71 -0
  25. package/dist/journeys.js +130 -0
  26. package/dist/journeys.js.map +1 -0
  27. package/dist/links.d.ts +87 -0
  28. package/dist/links.js +124 -0
  29. package/dist/links.js.map +1 -0
  30. package/dist/loadtest/scenario.d.ts +4 -4
  31. package/dist/loadtest/tools.d.ts +1 -1
  32. package/dist/loadtest/tools.js +78 -27
  33. package/dist/loadtest/tools.js.map +1 -1
  34. package/dist/permissions.d.ts +85 -0
  35. package/dist/permissions.js +216 -0
  36. package/dist/permissions.js.map +1 -0
  37. package/dist/schemas.d.ts +680 -0
  38. package/dist/schemas.js +308 -0
  39. package/dist/schemas.js.map +1 -0
  40. package/dist/server.d.ts +20 -2
  41. package/dist/server.js +495 -119
  42. package/dist/server.js.map +1 -1
  43. package/dist/writes.d.ts +35 -0
  44. package/dist/writes.js +409 -0
  45. package/dist/writes.js.map +1 -0
  46. 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
- /** Reduz uma série mantendo a distribuição (amostragem uniforme). */
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; traces ≤ 80 spans por página (tracker_get_trace pagina).
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
- /** Reduz uma série mantendo a distribuição (amostragem uniforme). */
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
- const step = series.length / max;
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.floor(i * step)];
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 === 'series' || k === 'seriesQueriesPerMin' || k === 'histogram') && Array.isArray(v)) {
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);
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmBpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AACrC,wFAAwF;AACxF,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AACtC,0FAA0F;AAC1F,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,oGAAoG;AACpG,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAErC,MAAM,UAAU,IAAI,CAAC,KAAa;IAChC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,KAAc,EAAE,OAAgB;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5G,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,IAA6B,EAAE,OAAe,EAAE,UAAsD,EAAE;IACjI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrH,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,GAAY;IACtC,MAAM,OAAO,GAAG,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACtF,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAA2B;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAI,MAAW,EAAE,GAAG,GAAG,iBAAiB;IAClE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAQ,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,IAAS,EAAE,GAAG,GAAG,cAAc;IAC7D,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAC7D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;AACrE,CAAC;AAQD,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,MAAyB,OAAO,CAAC,GAAG;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,yBAAyB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,uCAAuC,iBAAiB,aAAa,iBAAiB,GAAG,EAAE,CAAC;IACnL,CAAC;IACD,IAAI,MAAM,GAAG,iBAAiB;QAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,wBAAwB,MAAM,0BAA0B,iBAAiB,GAAG,EAAE,CAAC;IAC3J,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,QAAgB;IAC5D,OAAO,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACxG,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,KAAa;IACzD,OAAO,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,SAAS,kBAAkB,KAAK,4BAA4B,CAAC,CAAC,CAAC,EAAE,CAAC;AACzG,CAAC;AASD,8FAA8F;AAC9F,MAAM,UAAU,OAAO,CAAC,KAAe;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,aAAa;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,eAAe,aAAa,OAAO,KAAK,CAAC,MAAM,cAAc,KAAK,CAAC,MAAM,wBAAwB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1J,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAe,EAAE,KAAa;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;AACtG,CAAC;AAED,6FAA6F;AAC7F,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtF;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1E,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;YACtE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,CAAC,MAAM,GAAG,iBAAiB;oBAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,4BAA4B,iBAAiB,iCAAiC,CAAC;YAClJ,CAAC;iBAAM,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,gFAAgF;gBAChF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,CAAC,MAAM,GAAG,cAAc;oBAAE,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC;YAChF,CAAC;iBAAM,IAAI,CAAC,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;gBAC9D,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;gBACf,IAAI,SAAS,GAAG,CAAC;oBAAE,GAAG,CAAC,YAAY,GAAG,SAAS,CAAC;YAClD,CAAC;iBAAM,IAAI,CAAC,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB;YACtC,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC7C,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,SAAS,GAAG,CAAC;oBAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,EAAE,CAAC,KAAgC;IACjD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAgC;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAC7E,OAAO,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACxC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IACjD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;IACjE,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,OAAO,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC/C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IACpD,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,OAAO,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC"}
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 ?? PLACEHOLDER_KEY;
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 ?? PLACEHOLDER_KEY}`,
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 ?? PLACEHOLDER_KEY;
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 ?? PLACEHOLDER_KEY}`,
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 ?? PLACEHOLDER_KEY}`,
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":"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"}
1
+ {"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"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"}
@@ -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 { compact, guard, json, text } from '../format.js';
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 json({ accounts, skipped: result.skipped, profilesFound: result.profilesFound }, lines.join('\n'));
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
- let response;
294
- let route = `${base(projectId)}/snapshots`;
295
- try {
296
- response = await client.post(route, payload);
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 () => text(formatIac(await analyzeIac(await resolveRoot(path))))));
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
- return text(await buildInstrumentPlan(root, { endpoint: client.baseUrl, serviceName: project.slug, layerArn }));
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
- return text(lines.join('\n'));
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
- return text(lines.join('\n'));
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 nada.',
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
- annotations: { readOnlyHint: true, openWorldHint: true },
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');