sih-br-mcp 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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duckdb.js","sourceRoot":"","sources":["../../src/db/duckdb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Frescor dos cubos SIH em relação ao espelho healthbr-data (elo 3 da cadeia).
3
+ *
4
+ * O Ministério da Saúde reedita arquivos RD de competências passadas. O
5
+ * sync-check semanal do healthbr-data detecta a reedição (por tamanho do .dbc)
6
+ * e republica a partição; o manifesto público do espelho passa a trazer outro
7
+ * `source_hash_md5`/`source_size_bytes` para ela. O cubo deste servidor, gerado
8
+ * antes, continua a somar o arquivo antigo — está ATRÁS do espelho. Este módulo
9
+ * detecta isso, sem bloquear a inicialização e sem baixar 10 MB à toa:
10
+ *
11
+ * 1. Sonda: `GET` com `Range: bytes=0-511` no manifesto (R2 aceita Range; o
12
+ * `last_updated` está nos primeiros 256 bytes). Se for igual ao
13
+ * `distributor.manifest_last_updated` de todos os sidecars, o espelho não
14
+ * mudou desde o build e os cubos estão em dia — ~0,5 s, 512 bytes.
15
+ * 2. Só se o manifesto mudou: baixa o índice e compara partição a partição o
16
+ * que cada cubo usou (MD5 e tamanho do .dbc = reedição no MS; SHA-256 do
17
+ * Parquet = pipeline regenerou; partição sumiu) e se apareceu competência
18
+ * nova dentro da janela de um cubo incompleto (competência AAAA-MM afeta o
19
+ * cubo AAAA e, se MM <= 04, o cubo AAAA-1 — regra de docs/analise-001).
20
+ * O índice preferido é `manifest-summary.json`, ao lado do manifesto
21
+ * (mesmo cabeçalho, só os campos que esta comparação lê, ~2 MB; o
22
+ * sync-check do healthbr-data o regrava a cada rodada, desde 09/2026). Se
23
+ * o resumo não existe ou está atrás do manifesto (`last_updated`
24
+ * diferente — o resumo nasce alguns minutos depois da republicação),
25
+ * cai no manifesto inteiro (10,4 MB, ~1 s; o r2.dev não comprime).
26
+ *
27
+ * Resultado: `current` | `stale` | `unknown` (rede/timeout) | `pending` |
28
+ * `disabled` (SIH_FRESHNESS_CHECK=off — smoke e golden usam, para que o CI
29
+ * nunca dependa do portal). Quem lê: `sihProvenance()` (marca `data_vintage`
30
+ * e `notices` quando está atrás), `get_available_years` (campo `freshness`)
31
+ * e o job `decide` de `rebuild-sih-cubes.yml` no healthbr-data (produtor dos
32
+ * cubos desde 2026-09-08), que roda esta mesma CLI (`scripts/freshness-check.mjs
33
+ * --fixtures <sidecars do canal> --out`) e reconstrói os cubos `behind`.
34
+ *
35
+ * Fora do escopo daqui: cache local de cubos (item (c) de `sih:cubos-frescor`).
36
+ * Isto só AVISA — quem age é o workflow.
37
+ */
38
+ import { type SihSidecar } from "./provenance.js";
39
+ export type FreshnessStatus = "disabled" | "pending" | "current" | "stale" | "unknown";
40
+ export interface CubeFreshness {
41
+ cube_year: number;
42
+ /** Partições usadas cujo .dbc de origem mudou no espelho (MD5 ou tamanho): reedição do MS. */
43
+ reedited: string[];
44
+ /** Origem igual, Parquet diferente: o pipeline do espelho regenerou a partição. */
45
+ reprocessed: string[];
46
+ /** Partições usadas que não estão mais no manifesto. */
47
+ removed: string[];
48
+ /** Competências da janela do cubo publicadas no espelho depois do build (janela incompleta). */
49
+ new_in_window: string[];
50
+ /** true quando alguma das listas acima tem item. */
51
+ behind: boolean;
52
+ }
53
+ export interface FreshnessState {
54
+ status: FreshnessStatus;
55
+ /** Instante (UTC) em que a última checagem terminou; null se nunca terminou. */
56
+ checked_at: string | null;
57
+ /** "range" = só a sonda de 512 bytes bastou; "full" = baixou o manifesto inteiro. */
58
+ method: "range" | "full" | null;
59
+ manifest_url: string | null;
60
+ /** `distributor.manifest_last_updated` do(s) sidecar(s) — o manifesto com que os cubos foram gerados. */
61
+ manifest_last_updated_local: string | null;
62
+ /** `last_updated` lido do manifesto público agora. */
63
+ manifest_last_updated_remote: string | null;
64
+ cubes: CubeFreshness[];
65
+ error: string | null;
66
+ }
67
+ /** Forma mínima do manifesto público do healthbr-data que a comparação usa. */
68
+ export interface MirrorManifest {
69
+ last_updated?: string;
70
+ partitions: Record<string, {
71
+ source_hash_md5?: string;
72
+ source_size_bytes?: number;
73
+ output_files?: Array<{
74
+ sha256?: string;
75
+ }>;
76
+ }>;
77
+ }
78
+ /** Compara cada cubo (sidecar) com o manifesto do espelho. */
79
+ export declare function compareWithManifest(sidecars: SihSidecar[], manifest: MirrorManifest): CubeFreshness[];
80
+ /** Monta o estado final a partir do manifesto inteiro (usado pelo caminho "full" e pelo autoteste offline). */
81
+ export declare function evaluateManifest(sidecars: SihSidecar[], manifest: MirrorManifest, method?: "range" | "full"): FreshnessState;
82
+ /** URL do resumo do manifesto, por convenção de caminho (`.../manifest.json` → `.../manifest-summary.json`); null se a URL não segue a convenção. */
83
+ export declare function summaryUrl(manifestUrl: string): string | null;
84
+ export declare const HEALTHBR_DOMAIN: string;
85
+ /** A mesma URL no domínio próprio (ou ela mesma, se já não é do r2.dev). */
86
+ export declare function preferDomain(url: string): string;
87
+ /**
88
+ * Dispara a checagem em segundo plano e devolve na hora. Nunca rejeita; o
89
+ * resultado fica em `getFreshness()`. Chamado uma vez no `main()` e, depois,
90
+ * por `getFreshness()` quando a última checagem tem mais de 6 h.
91
+ */
92
+ export declare function startFreshnessCheck(): Promise<FreshnessState>;
93
+ /** Estado atual (sem esperar). Reagenda a checagem quando a última envelheceu. */
94
+ export declare function getFreshness(): FreshnessState;
95
+ /** Só para testes: substitui o estado (não usa rede). */
96
+ export declare function setFreshnessForTests(s: FreshnessState): void;
97
+ /** Frescor de um cubo específico; null se não há veredito para ele. */
98
+ export declare function cubeFreshness(year: number): CubeFreshness | null;
99
+ /** Frase curta para o `data_vintage`/`notices` de um cubo atrás do espelho. */
100
+ export declare function describeBehind(c: CubeFreshness, remoteDate: string | null): string;
101
+ //# sourceMappingURL=freshness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../src/freshness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,8FAA8F;IAC9F,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mFAAmF;IACnF,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wDAAwD;IACxD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gGAAgG;IAChG,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAC;IACxB,gFAAgF;IAChF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qFAAqF;IACrF,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yGAAyG;IACzG,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,sDAAsD;IACtD,4BAA4B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,+EAA+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,YAAY,CAAC,EAAE,KAAK,CAAC;YAAE,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3C,CACF,CAAC;CACH;AA8BD,8DAA8D;AAC9D,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,cAAc,GAAG,aAAa,EAAE,CAqCrG;AAED,+GAA+G;AAC/G,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAE,OAAO,GAAG,MAAe,GAAG,cAAc,CAYpI;AAUD,qJAAqJ;AACrJ,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7D;AASD,eAAO,MAAM,eAAe,QAAuE,CAAC;AAEpG,4EAA4E;AAC5E,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AA8FD;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAAC,cAAc,CAAC,CAuB7D;AAED,kFAAkF;AAClF,wBAAgB,YAAY,IAAI,cAAc,CAe7C;AAED,yDAAyD;AACzD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAE5D;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAEhE;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CASlF"}
@@ -0,0 +1,303 @@
1
+ /**
2
+ * Frescor dos cubos SIH em relação ao espelho healthbr-data (elo 3 da cadeia).
3
+ *
4
+ * O Ministério da Saúde reedita arquivos RD de competências passadas. O
5
+ * sync-check semanal do healthbr-data detecta a reedição (por tamanho do .dbc)
6
+ * e republica a partição; o manifesto público do espelho passa a trazer outro
7
+ * `source_hash_md5`/`source_size_bytes` para ela. O cubo deste servidor, gerado
8
+ * antes, continua a somar o arquivo antigo — está ATRÁS do espelho. Este módulo
9
+ * detecta isso, sem bloquear a inicialização e sem baixar 10 MB à toa:
10
+ *
11
+ * 1. Sonda: `GET` com `Range: bytes=0-511` no manifesto (R2 aceita Range; o
12
+ * `last_updated` está nos primeiros 256 bytes). Se for igual ao
13
+ * `distributor.manifest_last_updated` de todos os sidecars, o espelho não
14
+ * mudou desde o build e os cubos estão em dia — ~0,5 s, 512 bytes.
15
+ * 2. Só se o manifesto mudou: baixa o índice e compara partição a partição o
16
+ * que cada cubo usou (MD5 e tamanho do .dbc = reedição no MS; SHA-256 do
17
+ * Parquet = pipeline regenerou; partição sumiu) e se apareceu competência
18
+ * nova dentro da janela de um cubo incompleto (competência AAAA-MM afeta o
19
+ * cubo AAAA e, se MM <= 04, o cubo AAAA-1 — regra de docs/analise-001).
20
+ * O índice preferido é `manifest-summary.json`, ao lado do manifesto
21
+ * (mesmo cabeçalho, só os campos que esta comparação lê, ~2 MB; o
22
+ * sync-check do healthbr-data o regrava a cada rodada, desde 09/2026). Se
23
+ * o resumo não existe ou está atrás do manifesto (`last_updated`
24
+ * diferente — o resumo nasce alguns minutos depois da republicação),
25
+ * cai no manifesto inteiro (10,4 MB, ~1 s; o r2.dev não comprime).
26
+ *
27
+ * Resultado: `current` | `stale` | `unknown` (rede/timeout) | `pending` |
28
+ * `disabled` (SIH_FRESHNESS_CHECK=off — smoke e golden usam, para que o CI
29
+ * nunca dependa do portal). Quem lê: `sihProvenance()` (marca `data_vintage`
30
+ * e `notices` quando está atrás), `get_available_years` (campo `freshness`)
31
+ * e o job `decide` de `rebuild-sih-cubes.yml` no healthbr-data (produtor dos
32
+ * cubos desde 2026-09-08), que roda esta mesma CLI (`scripts/freshness-check.mjs
33
+ * --fixtures <sidecars do canal> --out`) e reconstrói os cubos `behind`.
34
+ *
35
+ * Fora do escopo daqui: cache local de cubos (item (c) de `sih:cubos-frescor`).
36
+ * Isto só AVISA — quem age é o workflow.
37
+ */
38
+ import { loadSidecars } from "./provenance.js";
39
+ const PROBE_TIMEOUT_MS = 3_000;
40
+ const FULL_TIMEOUT_MS = 12_000;
41
+ /** Depois disto, a próxima chamada de ferramenta dispara nova checagem em segundo plano. */
42
+ const RECHECK_AFTER_MS = 6 * 60 * 60 * 1_000;
43
+ const DISABLED = (process.env.SIH_FRESHNESS_CHECK ?? "").trim().toLowerCase() === "off";
44
+ let state = {
45
+ status: DISABLED ? "disabled" : "pending",
46
+ checked_at: null,
47
+ method: null,
48
+ manifest_url: null,
49
+ manifest_last_updated_local: null,
50
+ manifest_last_updated_remote: null,
51
+ cubes: [],
52
+ error: null,
53
+ };
54
+ let inFlight = null;
55
+ // =============================================================================
56
+ // COMPARAÇÃO (pura — testável offline com um trecho do manifesto)
57
+ // =============================================================================
58
+ function localManifestDate(sidecars) {
59
+ const dates = [...new Set(sidecars.map((s) => s.distributor?.manifest_last_updated).filter(Boolean))].sort();
60
+ return dates.at(-1) ?? null;
61
+ }
62
+ /** Compara cada cubo (sidecar) com o manifesto do espelho. */
63
+ export function compareWithManifest(sidecars, manifest) {
64
+ const parts = manifest.partitions ?? {};
65
+ return sidecars.map((s) => {
66
+ const used = new Set(s.partitions.map((p) => p.partition));
67
+ const reedited = [];
68
+ const reprocessed = [];
69
+ const removed = [];
70
+ for (const p of s.partitions) {
71
+ const m = parts[p.partition];
72
+ if (!m) {
73
+ removed.push(p.partition);
74
+ continue;
75
+ }
76
+ if (m.source_hash_md5 !== p.source_hash_md5 || m.source_size_bytes !== p.source_size_bytes) {
77
+ reedited.push(p.partition);
78
+ continue;
79
+ }
80
+ const sha = m.output_files?.[0]?.sha256;
81
+ if (p.parquet_sha256 && sha && sha !== p.parquet_sha256)
82
+ reprocessed.push(p.partition);
83
+ }
84
+ const expected = s.window?.competencias_expected ?? s.competencias;
85
+ const new_in_window = [];
86
+ for (const comp of expected) {
87
+ for (const uf of s.ufs_arquivo) {
88
+ const key = `${comp}-${uf}`;
89
+ if (!used.has(key) && parts[key])
90
+ new_in_window.push(key);
91
+ }
92
+ }
93
+ return {
94
+ cube_year: s.cube_year,
95
+ reedited,
96
+ reprocessed,
97
+ removed,
98
+ new_in_window,
99
+ behind: reedited.length + reprocessed.length + removed.length + new_in_window.length > 0,
100
+ };
101
+ });
102
+ }
103
+ /** Monta o estado final a partir do manifesto inteiro (usado pelo caminho "full" e pelo autoteste offline). */
104
+ export function evaluateManifest(sidecars, manifest, method = "full") {
105
+ const cubes = compareWithManifest(sidecars, manifest);
106
+ return {
107
+ status: cubes.some((c) => c.behind) ? "stale" : "current",
108
+ checked_at: new Date().toISOString(),
109
+ method,
110
+ manifest_url: sidecars[0]?.distributor?.manifest_url ?? null,
111
+ manifest_last_updated_local: localManifestDate(sidecars),
112
+ manifest_last_updated_remote: manifest.last_updated ?? null,
113
+ cubes,
114
+ error: null,
115
+ };
116
+ }
117
+ // =============================================================================
118
+ // CHECAGEM REMOTA
119
+ // =============================================================================
120
+ const LAST_UPDATED_RE = /"last_updated"\s*:\s*"([^"]+)"/;
121
+ const MANIFEST_FILE = "manifest.json";
122
+ const SUMMARY_FILE = "manifest-summary.json";
123
+ /** URL do resumo do manifesto, por convenção de caminho (`.../manifest.json` → `.../manifest-summary.json`); null se a URL não segue a convenção. */
124
+ export function summaryUrl(manifestUrl) {
125
+ return manifestUrl.endsWith(`/${MANIFEST_FILE}`) ? manifestUrl.slice(0, -MANIFEST_FILE.length) + SUMMARY_FILE : null;
126
+ }
127
+ /**
128
+ * Domínio próprio do bucket healthbr-data (sih:canal-acabamento, 0.10.0). Os
129
+ * sidecars antigos apontam para o `r2.dev`; o domínio serve os mesmos
130
+ * caminhos (e é o que ganha Cache Rule). Preferido; o `r2.dev` fica de
131
+ * reserva quando o domínio falha.
132
+ */
133
+ const R2_DEV_HOST = "https://pub-99d9e1a3f5c542178d04efbddf1bba97.r2.dev";
134
+ export const HEALTHBR_DOMAIN = process.env.HEALTHBR_DATA_DOMAIN ?? "https://data.sidneybissoli.com";
135
+ /** A mesma URL no domínio próprio (ou ela mesma, se já não é do r2.dev). */
136
+ export function preferDomain(url) {
137
+ return url.startsWith(R2_DEV_HOST) ? HEALTHBR_DOMAIN + url.slice(R2_DEV_HOST.length) : url;
138
+ }
139
+ async function fetchOnce(url, timeoutMs, headers) {
140
+ const res = await fetch(url, { headers, signal: AbortSignal.timeout(timeoutMs) });
141
+ if (!res.ok && res.status !== 206)
142
+ throw new Error(`HTTP ${res.status} em ${url}`);
143
+ return { status: res.status, text: await res.text() };
144
+ }
145
+ /** Busca no domínio próprio e, se ele falhar, no r2.dev original (quando a URL era do r2.dev). */
146
+ async function fetchText(url, timeoutMs, headers) {
147
+ const first = preferDomain(url);
148
+ try {
149
+ return await fetchOnce(first, timeoutMs, headers);
150
+ }
151
+ catch (e) {
152
+ if (first === url)
153
+ throw e;
154
+ console.error(`[frescor] domínio ${HEALTHBR_DOMAIN} falhou (${e instanceof Error ? e.message : String(e)}); tentando o r2.dev`);
155
+ return fetchOnce(url, timeoutMs, headers);
156
+ }
157
+ }
158
+ /** Baixa o índice de partições: o resumo quando está em dia com o manifesto, senão o manifesto inteiro. */
159
+ async function fetchIndex(manifestUrl, remoteLastUpdated) {
160
+ const sUrl = summaryUrl(manifestUrl);
161
+ if (sUrl) {
162
+ try {
163
+ const res = await fetchText(sUrl, FULL_TIMEOUT_MS);
164
+ const summary = JSON.parse(res.text);
165
+ if (summary.partitions && (!remoteLastUpdated || summary.last_updated === remoteLastUpdated)) {
166
+ return summary;
167
+ }
168
+ console.error(`[frescor] resumo ${summary.last_updated ?? "sem data"} atrás do manifesto ${remoteLastUpdated}; lendo o manifesto inteiro`);
169
+ }
170
+ catch (e) {
171
+ console.error(`[frescor] resumo indisponível (${e instanceof Error ? e.message : String(e)}); lendo o manifesto inteiro`);
172
+ }
173
+ }
174
+ const full = await fetchText(manifestUrl, FULL_TIMEOUT_MS);
175
+ return JSON.parse(full.text);
176
+ }
177
+ async function runCheck() {
178
+ const sidecars = loadSidecars();
179
+ const base = {
180
+ status: "unknown",
181
+ checked_at: null,
182
+ method: null,
183
+ manifest_url: sidecars[0]?.distributor?.manifest_url ?? null,
184
+ manifest_last_updated_local: localManifestDate(sidecars),
185
+ manifest_last_updated_remote: null,
186
+ cubes: [],
187
+ error: null,
188
+ };
189
+ if (sidecars.length === 0 || !base.manifest_url) {
190
+ return { ...base, checked_at: new Date().toISOString(), error: "sem sidecar de proveniência ao lado dos cubos" };
191
+ }
192
+ const url = base.manifest_url;
193
+ try {
194
+ // 1. Sonda: 512 bytes bastam para ler `last_updated`.
195
+ const probe = await fetchText(url, PROBE_TIMEOUT_MS, { Range: "bytes=0-511" });
196
+ let manifest = null;
197
+ if (probe.status === 200) {
198
+ // Servidor ignorou o Range e mandou tudo: aproveita.
199
+ manifest = JSON.parse(probe.text);
200
+ }
201
+ else {
202
+ const remote = LAST_UPDATED_RE.exec(probe.text)?.[1] ?? null;
203
+ const locals = new Set(sidecars.map((s) => s.distributor?.manifest_last_updated));
204
+ if (remote && locals.size === 1 && locals.has(remote)) {
205
+ return {
206
+ ...base,
207
+ status: "current",
208
+ checked_at: new Date().toISOString(),
209
+ method: "range",
210
+ manifest_last_updated_remote: remote,
211
+ cubes: sidecars.map((s) => ({
212
+ cube_year: s.cube_year,
213
+ reedited: [],
214
+ reprocessed: [],
215
+ removed: [],
216
+ new_in_window: [],
217
+ behind: false,
218
+ })),
219
+ };
220
+ }
221
+ // 2. O manifesto mudou (ou a sonda não deu para ler): baixa o índice e
222
+ // compara. Primeiro o resumo (~2 MB), se existir e estiver na mesma
223
+ // data que o manifesto; senão o manifesto inteiro (10,4 MB).
224
+ manifest = await fetchIndex(url, remote);
225
+ }
226
+ return evaluateManifest(sidecars, manifest, "full");
227
+ }
228
+ catch (e) {
229
+ const msg = e instanceof Error ? (e.name === "TimeoutError" ? `timeout (${e.message})` : e.message) : String(e);
230
+ return { ...base, checked_at: new Date().toISOString(), error: msg };
231
+ }
232
+ }
233
+ /**
234
+ * Dispara a checagem em segundo plano e devolve na hora. Nunca rejeita; o
235
+ * resultado fica em `getFreshness()`. Chamado uma vez no `main()` e, depois,
236
+ * por `getFreshness()` quando a última checagem tem mais de 6 h.
237
+ */
238
+ export function startFreshnessCheck() {
239
+ if (DISABLED)
240
+ return Promise.resolve(state);
241
+ if (inFlight)
242
+ return inFlight;
243
+ inFlight = runCheck()
244
+ .then((s) => {
245
+ state = s;
246
+ const resumo = s.status === "stale"
247
+ ? `ATRÁS do espelho — ${s.cubes.filter((c) => c.behind).map((c) => c.cube_year).join(", ")}`
248
+ : s.status === "unknown"
249
+ ? `não verificado (${s.error})`
250
+ : `em dia (manifesto ${s.manifest_last_updated_remote}, via ${s.method})`;
251
+ console.error(`[frescor] cubos SIH: ${resumo}`);
252
+ return s;
253
+ })
254
+ .catch((e) => {
255
+ state = { ...state, status: "unknown", checked_at: new Date().toISOString(), error: e instanceof Error ? e.message : String(e) };
256
+ return state;
257
+ })
258
+ .finally(() => {
259
+ inFlight = null;
260
+ });
261
+ return inFlight;
262
+ }
263
+ /** Estado atual (sem esperar). Reagenda a checagem quando a última envelheceu. */
264
+ export function getFreshness() {
265
+ if (!DISABLED && !inFlight && state.checked_at && Date.now() - Date.parse(state.checked_at) > RECHECK_AFTER_MS) {
266
+ void startFreshnessCheck();
267
+ }
268
+ if (state.manifest_url === null) {
269
+ // Desligado ou ainda pendente: ao menos diz com que manifesto os cubos
270
+ // foram gerados (vem do sidecar, determinístico — cabe no golden).
271
+ const sidecars = loadSidecars();
272
+ state = {
273
+ ...state,
274
+ manifest_url: sidecars[0]?.distributor?.manifest_url ?? null,
275
+ manifest_last_updated_local: localManifestDate(sidecars),
276
+ };
277
+ }
278
+ return state;
279
+ }
280
+ /** Só para testes: substitui o estado (não usa rede). */
281
+ export function setFreshnessForTests(s) {
282
+ state = s;
283
+ }
284
+ /** Frescor de um cubo específico; null se não há veredito para ele. */
285
+ export function cubeFreshness(year) {
286
+ return state.cubes.find((c) => c.cube_year === year) ?? null;
287
+ }
288
+ /** Frase curta para o `data_vintage`/`notices` de um cubo atrás do espelho. */
289
+ export function describeBehind(c, remoteDate) {
290
+ const partes = [];
291
+ const lista = (xs) => (xs.length <= 4 ? xs.join(", ") : `${xs.slice(0, 4).join(", ")} e mais ${xs.length - 4}`);
292
+ const pl = (n, s, p) => `${n} ${n === 1 ? s : p}`;
293
+ if (c.reedited.length)
294
+ partes.push(`${pl(c.reedited.length, "partição reeditada", "partições reeditadas")} pelo MS (${lista(c.reedited)})`);
295
+ if (c.reprocessed.length)
296
+ partes.push(`${pl(c.reprocessed.length, "partição regenerada", "partições regeneradas")} no espelho (${lista(c.reprocessed)})`);
297
+ if (c.removed.length)
298
+ partes.push(`${pl(c.removed.length, "partição retirada", "partições retiradas")} do espelho (${lista(c.removed)})`);
299
+ if (c.new_in_window.length)
300
+ partes.push(`${pl(c.new_in_window.length, "competência nova", "competências novas")} na janela (${lista(c.new_in_window)})`);
301
+ return `${partes.join("; ")}${remoteDate ? `; manifesto do espelho de ${remoteDate}` : ""}`;
302
+ }
303
+ //# sourceMappingURL=freshness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../src/freshness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SIH-BR-MCP: MCP Server para análise de dados do SIH-SUS
4
+ * Foco em Internações por Condições Sensíveis à Atenção Primária (ICSAP)
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG"}