bcb-br-mcp 1.11.0 → 1.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/README.md CHANGED
@@ -64,7 +64,7 @@ The answers come live from the Brazilian Central Bank's SGS API — exact figure
64
64
  | `bcb_serie_ultimos` | Get the last N values of a series (any N — the upstream cap of 20 is worked around) |
65
65
  | `bcb_serie_metadados` | Get series metadata (name, frequency, category, last value) |
66
66
  | `bcb_series_populares` | List popular series grouped by category |
67
- | `bcb_buscar_serie` | Search series by name or description (accent-insensitive) |
67
+ | `bcb_buscar_serie` | Search series by name or description (accent-insensitive, AND between words; everyday words resolved to the BCB's wording, and the response says so) |
68
68
  | `bcb_indicadores_atuais` | Latest values: Selic, IPCA, USD/BRL, IBC-Br |
69
69
  | `bcb_variacao` | Percentage variation of one series over a period: level change for level series, **compounded accumulation** for series that are already period-on-period rates (IPCA, IGP-M, INPC…); `analise.metodo` says which |
70
70
  | `bcb_comparar` | Compare 2 to 5 series over the same period with ranking (same level/compounding rule per series, declared in `metodo`) |
@@ -421,6 +421,22 @@ The SGS database contains over 18,000 time series. To find codes for other serie
421
421
  3. Note the series code
422
422
  4. Use that code with this server's tools
423
423
 
424
+ ## Ask in your words, not the BCB's
425
+
426
+ `bcb_buscar_serie` matches your words, all of them (AND), against the curated catalogue (135 series: name and category) and the dataset slugs of the BCB open-data portal (3,579 series identified by code). Accents were already ignored; the word was not. Measured over both layers on 2026-09-16, fixed since 1.12.0: the everyday word is expanded to the BCB's own, and the response says so in `notasVocabulario`; zero results come with a way out.
427
+
428
+ | you ask | hits before (curated / portal) | the BCB writes | hits |
429
+ | --- | ---: | --- | ---: |
430
+ | `déficit`, `superávit` | 0 / 0 | resultado primário, resultado nominal | 1 / 26, 0 / 22 |
431
+ | `calote` | 0 / 0 | inadimplência | 6 / 484 |
432
+ | `juros básicos` | 0 / 0 | Selic | 5 / 7 |
433
+ | `desemprego` | 0 / 0 | desocupação | 1 / 0 |
434
+ | `arrecadação`, `gasto` | 0 / 0 | receita, despesa | 2 / 8, 0 / 8 |
435
+ | `investimento estrangeiro` | 0 / 0 | investimento direto | 1 / 12 |
436
+ | `conta corrente` | 0 / 0 | transações correntes | 1 / 5 |
437
+
438
+ Only measured pairs enter the table (`src/vocabulario.ts`): the word you ask with absent from both layers, the BCB's word present. What the BCB does not publish under any of these names stays out and still returns zero — `salário mínimo`, `ibovespa`, `bitcoin`, `meta de inflação` — because an alias for a series that does not exist promises what the source does not have; and `empréstimo` is not mapped to `crédito` on purpose (the portal already answers it with 45 datasets; the mapping would drown them in 2,000). The same table feeds the Deep Research `search` index.
439
+
424
440
  ## Technical Details
425
441
 
426
442
  ### Robustness
package/README.pt-BR.md CHANGED
@@ -63,7 +63,7 @@ As respostas vêm ao vivo da API SGS do Banco Central — valores exatos com pro
63
63
  | `bcb_serie_ultimos` | Obtém os últimos N valores de uma série (qualquer N — o teto de 20 da origem é contornado) |
64
64
  | `bcb_serie_metadados` | Retorna nome, periodicidade, categoria e último valor de uma série |
65
65
  | `bcb_series_populares` | Lista séries populares agrupadas por categoria |
66
- | `bcb_buscar_serie` | Busca séries por nome ou descrição (aceita termos sem acento) |
66
+ | `bcb_buscar_serie` | Busca séries por nome ou descrição (aceita termos sem acento, AND entre palavras; a palavra de todo dia é traduzida para a do BCB, e a resposta diz que traduziu) |
67
67
  | `bcb_indicadores_atuais` | Valores mais recentes: Selic, IPCA, Dólar, IBC-Br |
68
68
  | `bcb_variacao` | Variação percentual de UMA série no período: entre as pontas para série de nível, **acumulado por encadeamento** para série que já é variação por período (IPCA, IGP-M, INPC…); `analise.metodo` diz qual |
69
69
  | `bcb_comparar` | Compara 2 a 5 séries no mesmo período com ranking (mesma regra nível/encadeamento por série, declarada em `metodo`) |
@@ -420,6 +420,22 @@ O SGS possui mais de 18.000 séries temporais. Para encontrar o código de outra
420
420
  3. Anote o código da série
421
421
  4. Use esse código nas ferramentas deste servidor
422
422
 
423
+ ## Pergunte com as suas palavras, não com as do BCB
424
+
425
+ `bcb_buscar_serie` casa as suas palavras, todas (AND), contra o catálogo curado (135 séries: nome e categoria) e os slugs dos datasets do Portal de Dados Abertos do BCB (3.579 séries identificadas por código). O acento já era ignorado; a palavra, não. Medido nas duas camadas em 16/09/2026 e consertado na 1.12.0: a palavra de todo dia é expandida para a do BCB, e a resposta diz isso em `notasVocabulario`; zero resultado vem com a saída.
426
+
427
+ | você pergunta | achava (curado / portal) | o BCB escreve | acha |
428
+ | --- | ---: | --- | ---: |
429
+ | `déficit`, `superávit` | 0 / 0 | resultado primário, resultado nominal | 1 / 26, 0 / 22 |
430
+ | `calote` | 0 / 0 | inadimplência | 6 / 484 |
431
+ | `juros básicos` | 0 / 0 | Selic | 5 / 7 |
432
+ | `desemprego` | 0 / 0 | desocupação | 1 / 0 |
433
+ | `arrecadação`, `gasto` | 0 / 0 | receita, despesa | 2 / 8, 0 / 8 |
434
+ | `investimento estrangeiro` | 0 / 0 | investimento direto | 1 / 12 |
435
+ | `conta corrente` | 0 / 0 | transações correntes | 1 / 5 |
436
+
437
+ Só entra par **medido** (`src/vocabulario.ts`): a palavra perguntada ausente das duas camadas, a palavra do BCB presente. O que o BCB não publica com nenhum desses nomes fica de fora e segue devolvendo zero — `salário mínimo`, `ibovespa`, `bitcoin`, `meta de inflação` — porque apelido para série inexistente promete o que a fonte não tem; e `empréstimo` não é mapeado para `crédito` de propósito (o portal já responde por ele com 45 datasets; o mapeamento os afogaria em 2 mil). A mesma tabela alimenta o índice de `search` (Deep Research).
438
+
423
439
  ## Características Técnicas
424
440
 
425
441
  ### Robustez
@@ -0,0 +1,68 @@
1
+ /**
2
+ * A FORMA da chamada, nunca o conteúdo dela.
3
+ *
4
+ * Por que existe. Em 10/09/2026 o painel do portfólio passou a medir erro por
5
+ * chamada e apontou cinco ferramentas quebradas, uma delas aqui:
6
+ * `bcb_focus_expectativas`, com 42 erros em 116 chamadas. Diagnosticar custou vinte
7
+ * minutos de chamadas manuais porque a telemetria dizia QUE falhou e não DIZIA
8
+ * por quê. No senado, onde o mesmo campo foi ligado primeiro, uma linha
9
+ * respondeu o que a sonda levou meia hora para achar. Atenção a um limite que
10
+ * vale aqui também: erro de validação de esquema NÃO chega a esta camada — o
11
+ * SDK o responde antes do handler, e a chamada não é contada nem como chamada
12
+ * nem como erro.
13
+ *
14
+ * Por que não gravar os argumentos. O dado que este servidor serve é público; a
15
+ * PERGUNTA não é: o registro já guarda país e organização de rede, e parte dos
16
+ * parâmetros é texto livre (`indicador`, `busca`), onde cabe qualquer coisa que a
17
+ * pessoa digitou. E ligar isso mudaria o que o serviço coleta sem
18
+ * mudar o que a página pública diz que ele coleta.
19
+ *
20
+ * O meio-termo: NOMES de parâmetro (que são o esquema publicado, não dado de
21
+ * ninguém) e a CLASSE do erro (vocabulário fechado, derivado da nossa própria
22
+ * mensagem). Isso separa "chamou sem o parâmetro obrigatório" de "chamou certo
23
+ * com um valor que não existe" — que é a bifurcação do conserto.
24
+ */
25
+ /** Vocabulário FECHADO. Nada aqui carrega valor vindo do usuário. */
26
+ export type ErrorClass =
27
+ /** Regra de contrato checada no código (o esquema não a expressa): parâmetro que falta, combinação proibida. */
28
+ "contrato"
29
+ /** A fonte respondeu, e respondeu que não existe: 404, vazio, sem registros. */
30
+ | "nao_encontrado"
31
+ /** A fonte falhou ou demorou: 5xx, timeout, payload grande demais. */
32
+ | "fonte"
33
+ /** Falhou por outro motivo — se esta classe crescer, é sinal de que falta uma classe. */
34
+ | "outro";
35
+ /**
36
+ * Classifica pela mensagem de erro, que é NOSSA. A ordem importa: "não
37
+ * encontrado" e "vazio" são mais específicos que "erro da fonte", e um 404
38
+ * casaria com os dois.
39
+ *
40
+ * O vocabulário foi ampliado depois de passar o classificador por TODAS as
41
+ * mensagens de erro do bcb e do senado (a varredura virou a guarda em
42
+ * `call-shape.test.ts`): 13 de 18 aqui e 12 de 18 lá caíam em `outro`, ou
43
+ * seja, a telemetria não responderia nada nestes dois servidores. As famílias
44
+ * que faltavam eram "Informe X ou Y", "só existe para", "desconhecido",
45
+ * "recusada", "não retornou dados" e "não publica" — nenhuma exótica; a versão
46
+ * inicial foi escrita a partir das mensagens do senado que eu já tinha lido.
47
+ */
48
+ export declare function classifyError(message: string): ErrorClass;
49
+ /**
50
+ * Nomes dos parâmetros que a chamada trouxe, em ordem, separados por vírgula.
51
+ * Só os nomes de PRIMEIRO nível e só quando o argumento é objeto simples — o
52
+ * conteúdo nunca entra. Cortado em 200 caracteres porque blob do Analytics
53
+ * Engine tem teto de tamanho e um nome de parâmetro longo não vale a linha.
54
+ */
55
+ export declare function paramNames(args: unknown): string;
56
+ /**
57
+ * Texto de erro de um resultado de tool, para classificar. Vazio quando não há.
58
+ *
59
+ * Lê o CAMPO `error` do envelope, não o payload serializado inteiro. O envelope
60
+ * padrão é `{ error, retryable, hint }`, e o `hint` de erro não recuperável
61
+ * termina com "a fonte oficial pode estar indisponível" — texto de formulário,
62
+ * igual em todos. Classificando o payload inteiro, esse "indisponível"
63
+ * arrastava TODO erro não recuperável para a classe `fonte`. Visto na produção
64
+ * do senado em 10/09/2026: a mensagem "Não existe reunião com o código X",
65
+ * que é `nao_encontrado` por definição, foi gravada como `fonte`.
66
+ */
67
+ export declare function errorText(result: unknown): string;
68
+ //# sourceMappingURL=call-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-shape.d.ts","sourceRoot":"","sources":["../src/call-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,qEAAqE;AACrE,MAAM,MAAM,UAAU;AACpB,gHAAgH;AAC9G,UAAU;AACZ,gFAAgF;GAC9E,gBAAgB;AAClB,sEAAsE;GACpE,OAAO;AACT,yFAAyF;GACvF,OAAO,CAAC;AAEZ;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAmEzD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOhD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAcjD"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * A FORMA da chamada, nunca o conteúdo dela.
3
+ *
4
+ * Por que existe. Em 10/09/2026 o painel do portfólio passou a medir erro por
5
+ * chamada e apontou cinco ferramentas quebradas, uma delas aqui:
6
+ * `bcb_focus_expectativas`, com 42 erros em 116 chamadas. Diagnosticar custou vinte
7
+ * minutos de chamadas manuais porque a telemetria dizia QUE falhou e não DIZIA
8
+ * por quê. No senado, onde o mesmo campo foi ligado primeiro, uma linha
9
+ * respondeu o que a sonda levou meia hora para achar. Atenção a um limite que
10
+ * vale aqui também: erro de validação de esquema NÃO chega a esta camada — o
11
+ * SDK o responde antes do handler, e a chamada não é contada nem como chamada
12
+ * nem como erro.
13
+ *
14
+ * Por que não gravar os argumentos. O dado que este servidor serve é público; a
15
+ * PERGUNTA não é: o registro já guarda país e organização de rede, e parte dos
16
+ * parâmetros é texto livre (`indicador`, `busca`), onde cabe qualquer coisa que a
17
+ * pessoa digitou. E ligar isso mudaria o que o serviço coleta sem
18
+ * mudar o que a página pública diz que ele coleta.
19
+ *
20
+ * O meio-termo: NOMES de parâmetro (que são o esquema publicado, não dado de
21
+ * ninguém) e a CLASSE do erro (vocabulário fechado, derivado da nossa própria
22
+ * mensagem). Isso separa "chamou sem o parâmetro obrigatório" de "chamou certo
23
+ * com um valor que não existe" — que é a bifurcação do conserto.
24
+ */
25
+ /**
26
+ * Classifica pela mensagem de erro, que é NOSSA. A ordem importa: "não
27
+ * encontrado" e "vazio" são mais específicos que "erro da fonte", e um 404
28
+ * casaria com os dois.
29
+ *
30
+ * O vocabulário foi ampliado depois de passar o classificador por TODAS as
31
+ * mensagens de erro do bcb e do senado (a varredura virou a guarda em
32
+ * `call-shape.test.ts`): 13 de 18 aqui e 12 de 18 lá caíam em `outro`, ou
33
+ * seja, a telemetria não responderia nada nestes dois servidores. As famílias
34
+ * que faltavam eram "Informe X ou Y", "só existe para", "desconhecido",
35
+ * "recusada", "não retornou dados" e "não publica" — nenhuma exótica; a versão
36
+ * inicial foi escrita a partir das mensagens do senado que eu já tinha lido.
37
+ */
38
+ export function classifyError(message) {
39
+ const m = message.toLowerCase();
40
+ // A fronteira de palavra vai só no INÍCIO. Os padrões são RADICAIS
41
+ // ("vazi", "obrigatóri", "indisponív") justamente porque a flexão muda o
42
+ // fim: `\bvazi\b` não casa "vazia", e foi assim que "Resposta upstream
43
+ // vazia" caiu em `fonte` na primeira versão — a palavra que casava era
44
+ // "upstream". Ordem também importa: "não encontrado" é mais específico que
45
+ // "erro da fonte", e a mensagem real do senado tem sinal das duas famílias.
46
+ // "desconhecido"/"unknown" só é sinal de contrato quando qualifica um VALOR
47
+ // que o chamador passou ("Índice de preços desconhecido: X. Aceitos: ...",
48
+ // "Unknown dimension(s) for dataflow X"). "Erro desconhecido ao consultar o
49
+ // calendário do IBGE" e "Unknown error" são o oposto — são justamente o caso
50
+ // sem classe — e a primeira versão desta ampliação os classificava como
51
+ // contrato.
52
+ const valorDesconhecido = /\b(desconhecid|unknown)/.test(m) && !/\b(erro desconhecid|unknown error)/.test(m);
53
+ if (valorDesconhecido ||
54
+ /\b(obrigatóri|obrigatori|exige|requer|required|inválid|invalid|validation error|não aceita|nao aceita|no máximo|no maximo|só existe|so existe|recusad)/.test(m) ||
55
+ // Inglês, das mensagens do ilo, do uis e do medical. `empty query` fica
56
+ // AQUI e não em nao_encontrado: consulta vazia é parâmetro que falta. Era o
57
+ // radical `empty` solto que a classificava errado — ele existia para "empty
58
+ // response", que é outra coisa, e agora está escrito por extenso lá.
59
+ // "narrow it/the query" e "maximum N per call" são instruções ao chamador:
60
+ // a resposta não veio porque a chamada precisa mudar, que é contrato.
61
+ /\b(empty query|not part of|too broad|too many|maximum|narrow (it|the|your)|has no codelist|has no enumerated)/.test(m)) {
62
+ return "contrato";
63
+ }
64
+ if (/\b(não encontrad|nao encontrad|não existe|nao existe|does ?n[o']t exist|not.?found|inexistent|vazi|empty response|empty result|returned empty|sem registros|não retornou dados|nao retornou dados|não publica|nao publica|404)/.test(m) ||
65
+ // "Nenhum evento encontrado", "nenhuma reunião", "nenhum registro": a forma
66
+ // varia com o substantivo de cada servidor, então case pelo padrão.
67
+ /\bnenhum[ao]?s?\b[\s\S]{0,40}\b(encontrad|resultado|registro|dado)/.test(m)) {
68
+ return "nao_encontrado";
69
+ }
70
+ // "Informe X ou Y" é a mensagem canônica de parâmetro que falta — dez delas
71
+ // no senado, com e sem qualificador na frente ("Para por=senador, informe
72
+ // 'codigoSenador'"). Fica DEPOIS de "não encontrado" de propósito: é o sinal
73
+ // mais fraco dos dois, e um "informe um código válido" fechando uma mensagem
74
+ // de não encontrado não pode sequestrar a classe. Hoje nenhuma mensagem dos
75
+ // quatro servidores casa com as duas famílias — a ordem existe para a
76
+ // mensagem que alguém escrever amanhã.
77
+ if (/\binforme\b/.test(m))
78
+ return "contrato";
79
+ // `\b5\d\d\b` e não `5\d\d`: sem a fronteira final, qualquer número com um 5
80
+ // seguido de dois dígitos casava — um código de reunião "591234" citado na
81
+ // mensagem virava "erro 5xx". A intenção sempre foi o status HTTP.
82
+ // A fonte falhou ou demorou. As quatro últimas vieram da fábrica de erros do
83
+ // ibge, onde caíam em `outro`: ela nomeia a falha de infraestrutura em vez de
84
+ // usar as palavras genéricas ("Tempo de resposta excedido", não "timeout";
85
+ // "Serviço em manutenção"; "Erro de conexão"). `erro interno do servidor` vai
86
+ // com o complemento, porque "erro interno" sozinho pode ser bug nosso.
87
+ if (/\b(timeout|tempo esgotado|tempo de resposta excedid|excedeu o tempo|indisponív|indisponiv|manutenç|manutenc|erro de conexão|erro de conexao|erro interno do servidor|internal server error|upstream|\b5\d\d\b|payload|too large|grande demais|limite de tamanho)/.test(m)) {
88
+ return "fonte";
89
+ }
90
+ return "outro";
91
+ }
92
+ /**
93
+ * Nomes dos parâmetros que a chamada trouxe, em ordem, separados por vírgula.
94
+ * Só os nomes de PRIMEIRO nível e só quando o argumento é objeto simples — o
95
+ * conteúdo nunca entra. Cortado em 200 caracteres porque blob do Analytics
96
+ * Engine tem teto de tamanho e um nome de parâmetro longo não vale a linha.
97
+ */
98
+ export function paramNames(args) {
99
+ const a = Array.isArray(args) ? args[0] : args;
100
+ if (!a || typeof a !== "object" || Array.isArray(a))
101
+ return "";
102
+ const nomes = Object.keys(a)
103
+ .filter((k) => a[k] !== undefined)
104
+ .sort();
105
+ return nomes.join(",").slice(0, 200);
106
+ }
107
+ /**
108
+ * Texto de erro de um resultado de tool, para classificar. Vazio quando não há.
109
+ *
110
+ * Lê o CAMPO `error` do envelope, não o payload serializado inteiro. O envelope
111
+ * padrão é `{ error, retryable, hint }`, e o `hint` de erro não recuperável
112
+ * termina com "a fonte oficial pode estar indisponível" — texto de formulário,
113
+ * igual em todos. Classificando o payload inteiro, esse "indisponível"
114
+ * arrastava TODO erro não recuperável para a classe `fonte`. Visto na produção
115
+ * do senado em 10/09/2026: a mensagem "Não existe reunião com o código X",
116
+ * que é `nao_encontrado` por definição, foi gravada como `fonte`.
117
+ */
118
+ export function errorText(result) {
119
+ if (!result || typeof result !== "object")
120
+ return "";
121
+ const r = result;
122
+ const estruturado = r.structuredContent?.error;
123
+ if (typeof estruturado === "string")
124
+ return estruturado;
125
+ const t = Array.isArray(r.content) ? r.content[0]?.text : undefined;
126
+ if (typeof t !== "string")
127
+ return "";
128
+ try {
129
+ const j = JSON.parse(t);
130
+ if (typeof j.error === "string")
131
+ return j.error;
132
+ }
133
+ catch {
134
+ // Não é o envelope JSON — vale o texto cru (é o caso de outros servidores).
135
+ }
136
+ return t;
137
+ }
138
+ //# sourceMappingURL=call-shape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call-shape.js","sourceRoot":"","sources":["../src/call-shape.ts"],"names":[],"mappings":"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"}
package/dist/catalog.d.ts CHANGED
@@ -105,9 +105,15 @@ export interface SerieEncontrada {
105
105
  * série está nele, ela vem primeiro e com o nome bom, porque foi revisada à
106
106
  * mão; o índice do portal entra depois, ordenado do slug mais curto (mais
107
107
  * específico) para o mais longo, com desempate estável pelo código.
108
+ *
109
+ * Cada termo vira um OR das grafias que o BCB usa para ele (src/vocabulario.ts):
110
+ * quem escreve "deficit" ou "calote" casa "resultado primario" e
111
+ * "inadimplencia" em vez de receber zero calado; stopwords ("taxa DE juros")
112
+ * ficam fora do AND. O `notas` devolvido diz quando houve tradução.
108
113
  */
109
114
  export declare function buscarSeries(termo: string, curadoria: SeriePopular[], entradas: EntradaCatalogo[] | null, limite: number): {
110
115
  total: number;
111
116
  series: SerieEncontrada[];
117
+ notas: string[];
112
118
  };
113
119
  //# sourceMappingURL=catalog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,iBAAiB,8DAA8D,CAAC;AAC7F,eAAO,MAAM,iBAAiB,4CAA4C,CAAC;AAE3E,gEAAgE;AAChE,eAAO,MAAM,eAAe,QAAsB,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,iDAAiD;AACjD,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAkBvG;AAwBD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyCvG;AAID,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,MAAM,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,YAAY,EAAE,EACzB,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,EAClC,MAAM,EAAE,MAAM,GACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CA6B9C"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,iBAAiB,8DAA8D,CAAC;AAC7F,eAAO,MAAM,iBAAiB,4CAA4C,CAAC;AAE3E,gEAAgE;AAChE,eAAO,MAAM,eAAe,QAAsB,CAAC;AAEnD,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAClC,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,iDAAiD;AACjD,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAkBvG;AAwBD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyCvG;AAID,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,MAAM,EAAE,WAAW,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAsBD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,YAAY,EAAE,EACzB,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,EAClC,MAAM,EAAE,MAAM,GACb;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CA6B/D"}
package/dist/catalog.js CHANGED
@@ -31,6 +31,7 @@
31
31
  // `tools.ts`) para a busca ser testável sem estado global e para não haver ciclo
32
32
  // entre os módulos de tool.
33
33
  import { fetchBcbApi, normalizeString, registrarAcesso } from "./shared.js";
34
+ import { casaBusca, expandirBusca, normalizar, notasDeVocabulario } from "./vocabulario.js";
34
35
  export const CKAN_PACKAGE_LIST = "https://dadosabertos.bcb.gov.br/api/3/action/package_list";
35
36
  export const CKAN_DATASET_BASE = "https://dadosabertos.bcb.gov.br/dataset";
36
37
  /** Validade do catálogo em cache: 24 h (decisão do decisor). */
@@ -188,29 +189,36 @@ function comoEncontradaDoIndice(entrada) {
188
189
  * série está nele, ela vem primeiro e com o nome bom, porque foi revisada à
189
190
  * mão; o índice do portal entra depois, ordenado do slug mais curto (mais
190
191
  * específico) para o mais longo, com desempate estável pelo código.
192
+ *
193
+ * Cada termo vira um OR das grafias que o BCB usa para ele (src/vocabulario.ts):
194
+ * quem escreve "deficit" ou "calote" casa "resultado primario" e
195
+ * "inadimplencia" em vez de receber zero calado; stopwords ("taxa DE juros")
196
+ * ficam fora do AND. O `notas` devolvido diz quando houve tradução.
191
197
  */
192
198
  export function buscarSeries(termo, curadoria, entradas, limite) {
193
199
  const termoNorm = normalizeString(termo).trim();
194
- const tokens = termoNorm.split(/\s+/).filter(Boolean);
195
200
  // Busca por código: "433" deve achar a série 433, não as que contêm "433".
196
201
  if (/^\d+$/.test(termoNorm)) {
197
202
  const codigo = Number(termoNorm);
198
203
  const curada = curadoria.find(s => s.codigo === codigo);
199
204
  if (curada)
200
- return { total: 1, series: [comoEncontrada(curada)] };
205
+ return { total: 1, series: [comoEncontrada(curada)], notas: [] };
201
206
  const doIndice = entradas?.find(e => e.codigo === codigo);
202
207
  if (doIndice)
203
- return { total: 1, series: [comoEncontradaDoIndice(doIndice)] };
204
- return { total: 0, series: [] };
208
+ return { total: 1, series: [comoEncontradaDoIndice(doIndice)], notas: [] };
209
+ return { total: 0, series: [], notas: [] };
205
210
  }
206
- const casaTodosTokens = (texto) => tokens.every(t => texto.includes(t));
207
- const curadas = curadoria.filter(s => casaTodosTokens(normalizeString(s.nome)) || casaTodosTokens(normalizeString(s.categoria)));
211
+ const expandidos = expandirBusca(termoNorm);
212
+ // O slug do portal separa palavras por "-": normalizar para espaço, senão
213
+ // "resultado primario" (frase da tabela) nunca casaria "resultado-primario".
214
+ const casa = (texto) => casaBusca(normalizar(texto.replace(/-+/g, " ")), expandidos);
215
+ const curadas = curadoria.filter(s => casa(s.nome) || casa(s.categoria));
208
216
  const codigosCurados = new Set(curadas.map(s => s.codigo));
209
217
  const doIndice = (entradas ?? [])
210
- .filter(e => !codigosCurados.has(e.codigo) && casaTodosTokens(normalizeString(e.slug)))
218
+ .filter(e => !codigosCurados.has(e.codigo) && casa(e.slug))
211
219
  .sort((a, b) => a.slug.length - b.slug.length || a.codigo - b.codigo);
212
220
  const total = curadas.length + doIndice.length;
213
221
  const series = [...curadas.map(comoEncontrada), ...doIndice.map(comoEncontradaDoIndice)].slice(0, limite);
214
- return { total, series };
222
+ return { total, series, notas: notasDeVocabulario(expandidos) };
215
223
  }
216
224
  //# sourceMappingURL=catalog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deep-research.d.ts","sourceRoot":"","sources":["../src/deep-research.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EACL,mBAAmB,EAUpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAA6C,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/F,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAErG,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAItC,wFAAwF;AACxF,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,yFAAyF;IACzF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5F,qFAAqF;IACrF,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;CACxD;AAED,MAAM,WAAW,iBAAiB;IAChC,kHAAkH;IAClH,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,KAChB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CACjC;AAkBD,yBAAyB;AACzB,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAmHD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAyHhF"}
1
+ {"version":3,"file":"deep-research.d.ts","sourceRoot":"","sources":["../src/deep-research.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EACL,mBAAmB,EAUpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAA6C,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/F,OAAO,EAAiB,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrG,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAItC,wFAAwF;AACxF,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,yFAAyF;IACzF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5F,qFAAqF;IACrF,kBAAkB,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;CACxD;AAED,MAAM,WAAW,iBAAiB;IAChC,kHAAkH;IAClH,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,EAAE,CACR,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,KAChB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CACjC;AAkBD,yBAAyB;AACzB,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AA2HD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,CAyHhF"}
@@ -34,6 +34,7 @@ import { CKAN_DATASET_BASE, CKAN_PACKAGE_LIST, nomeDoSlug, obterCatalogo } from
34
34
  import { provenienciaBcb, resultadoComProveniencia } from "./provenance.js";
35
35
  import { BCB_SGS_BASE } from "./series.js";
36
36
  import { leituraRemota } from "./shared.js";
37
+ import { palavrasPerguntadas } from "./vocabulario.js";
37
38
  export { DEEP_RESEARCH_TOOLS };
38
39
  /** Teto de resultados do `search` (o contrato pede uma lista curta e relevante). */
39
40
  export const DEEP_RESEARCH_LIMIT = 10;
@@ -66,7 +67,15 @@ function construirAcervo(seriesPopulares, snapshot) {
66
67
  id: idDe(s.codigo),
67
68
  title: s.nome,
68
69
  url: slug ? `${CKAN_DATASET_BASE}/${slug}` : urlConsultaPublica(s.codigo),
69
- keywords: [String(s.codigo), s.categoria, s.periodicidade, ...(s.unidade ? [s.unidade] : [])],
70
+ keywords: [
71
+ String(s.codigo),
72
+ s.categoria,
73
+ s.periodicidade,
74
+ ...(s.unidade ? [s.unidade] : []),
75
+ // A palavra com que se PERGUNTA, quando difere da que o BCB escreve
76
+ // ("deficit" para o resultado primário) — src/vocabulario.ts.
77
+ ...palavrasPerguntadas(`${s.nome} ${s.categoria}`)
78
+ ],
70
79
  codigo: s.codigo,
71
80
  origem: "curado"
72
81
  });
@@ -79,7 +88,7 @@ function construirAcervo(seriesPopulares, snapshot) {
79
88
  id: idDe(e.codigo),
80
89
  title: nomeDoSlug(e.slug),
81
90
  url: `${CKAN_DATASET_BASE}/${e.slug}`,
82
- keywords: [String(e.codigo)],
91
+ keywords: [String(e.codigo), ...palavrasPerguntadas(nomeDoSlug(e.slug))],
83
92
  codigo: e.codigo,
84
93
  origem: "indice"
85
94
  });
@@ -1 +1 @@
1
- {"version":3,"file":"deep-research.js","sourceRoot":"","sources":["../src/deep-research.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deep-research.js","sourceRoot":"","sources":["../src/deep-research.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,15 @@ import { McpServer } from "@modelcontextprotocol/server";
38
38
  * Worker passes its UsageTracker recorder. Names and counts only — never
39
39
  * arguments, never results.
40
40
  */
41
- export type ToolUsageRecorder = (kind: "tool_call" | "tool_error", name: string) => void;
41
+ /**
42
+ * A FORMA da chamada, quando o chamador sabe informá-la: nomes dos parâmetros
43
+ * e classe do erro. Opcional — o stdio não passa recorder. Ver src/call-shape.ts.
44
+ */
45
+ export interface FormaDaChamada {
46
+ params: string;
47
+ classe: string;
48
+ }
49
+ export type ToolUsageRecorder = (kind: "tool_call" | "tool_error", name: string, forma?: FormaDaChamada) => void;
42
50
  export interface RegisterOptions {
43
51
  /** Per-transport timeout/retry budget (the Worker uses a tighter one). */
44
52
  config?: {
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,SAAS,EAOV,MAAM,8BAA8B,CAAC;AA2CtC;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzF,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CA4DlF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,SAAS,CAiBtF"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EACL,SAAS,EAOV,MAAM,8BAA8B,CAAC;AA4CtC;;;;;GAKG;AACH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,IAAI,EAAE,WAAW,GAAG,YAAY,EAChC,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,cAAc,KACnB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB,GAAG,IAAI,CAgElF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,SAAS,CAiBtF"}
package/dist/register.js CHANGED
@@ -39,6 +39,7 @@ import { McpServer, fromJsonSchema } from "@modelcontextprotocol/server";
39
39
  // interpreta o schema em vez de gerar código, funciona igual no Node, e assim
40
40
  // os dois transportes validam exatamente da mesma forma.
41
41
  import { CfWorkerJsonSchemaValidator } from "@modelcontextprotocol/server/validators/cf-worker";
42
+ import { classifyError, errorText, paramNames } from "./call-shape.js";
42
43
  import { announceServedVersions } from "./discover.js";
43
44
  import { SERVER_IDENTITY, SERVER_INSTRUCTIONS } from "./identity.js";
44
45
  import { TOOL_DEFINITIONS, RESOURCE_DEFINITIONS, PROMPT_DEFINITIONS, dispatchTool, CONFIG } from "./tools.js";
@@ -83,17 +84,20 @@ export function registerAll(server, options = {}) {
83
84
  }, async (args) => {
84
85
  try {
85
86
  const result = await dispatchTool(tool.name, (args ?? {}), config.TIMEOUT_MS, config.MAX_RETRIES);
86
- record?.("tool_call", tool.name);
87
- if (result.isError === true)
88
- record?.("tool_error", tool.name);
87
+ const forma = { params: paramNames(args), classe: "" };
88
+ record?.("tool_call", tool.name, forma);
89
+ if (result.isError === true) {
90
+ record?.("tool_error", tool.name, { ...forma, classe: classifyError(errorText(result)) });
91
+ }
89
92
  return result;
90
93
  }
91
94
  catch (error) {
92
95
  // Handlers already trap their own failures; this is the last resort
93
96
  // so an unexpected throw never breaks the transport.
94
97
  const message = error instanceof Error ? error.message : String(error);
95
- record?.("tool_call", tool.name);
96
- record?.("tool_error", tool.name);
98
+ const forma = { params: paramNames(args), classe: classifyError(message) };
99
+ record?.("tool_call", tool.name, forma);
100
+ record?.("tool_error", tool.name, forma);
97
101
  return {
98
102
  content: [{ type: "text", text: `Erro ao executar a tool "${tool.name}": ${message}` }],
99
103
  isError: true
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
package/dist/stats.d.ts CHANGED
@@ -31,14 +31,20 @@ export declare const CASAS_DERIVADAS = 4;
31
31
  /** Arredonda um valor DERIVADO. Não use em valor vindo da fonte. */
32
32
  export declare function arredondarDerivado(valor: number): number;
33
33
  export interface EstatisticasSerie {
34
- /** Verbatim da fonte. */
35
- maximo: number;
36
- /** Verbatim da fonte. */
37
- minimo: number;
38
- /** Derivado, 4 casas. */
39
- media: number;
40
- /** Derivado, 4 casas. */
41
- amplitude: number;
34
+ /**
35
+ * `null` quando a série vem VAZIA: máximo, mínimo, média e amplitude de
36
+ * nenhuma observação são indefinidos, não zero. Zero aqui sairia na resposta
37
+ * com cara de medida do BCB — "a Selic variou de 0 a 0 no período" — sobre uma
38
+ * consulta que não trouxe ponto nenhum. Segue a convenção do motor comum
39
+ * (`@sbissoli/mcp-stats` >= 0.3.0), que devolve `null` + `reason` no vazio.
40
+ */
41
+ maximo: number | null;
42
+ /** Verbatim da fonte; `null` na série vazia. */
43
+ minimo: number | null;
44
+ /** Derivado, 4 casas; `null` na série vazia. */
45
+ media: number | null;
46
+ /** Derivado, 4 casas; `null` na série vazia. */
47
+ amplitude: number | null;
42
48
  /** Observações consideradas. */
43
49
  n: number;
44
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAoC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,+DAA+D;AAC/D,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAUxE;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAIhE;AAID,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AACjD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8BAA8B;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,EACpD,MAAM,EAAE,gBAAgB,GACvB,qBAAqB,CAmBvB;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GACnD,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAQ/C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;aAChC,OAAO;aACP,KAAK,EAAE,qBAAqB;aAC5B,IAAI;CAKI,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;aACjC,OAAO;aACP,KAAK,EAAE,qBAAqB;aAC5B,IAAI;CAOI,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;aAC/B,OAAO;aACP,KAAK,EAAE,qBAAqB;aAC5B,IAAI;CAUI,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;aAC7B,OAAO;aACP,KAAK,EAAE,YAAY;aACnB,IAAI;CAQI,CAAC"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAoC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,+DAA+D;AAC/D,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gDAAgD;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gCAAgC;IAChC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAoBxE;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAIhE;AAID,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AACjD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8BAA8B;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,EACpD,MAAM,EAAE,gBAAgB,GACvB,qBAAqB,CAmBvB;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GACnD,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAQ/C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;aAChC,OAAO;aACP,KAAK,EAAE,qBAAqB;aAC5B,IAAI;CAKI,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;aACjC,OAAO;aACP,KAAK,EAAE,qBAAqB;aAC5B,IAAI;CAOI,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;aAC/B,OAAO;aACP,KAAK,EAAE,qBAAqB;aAC5B,IAAI;CAUI,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;aAC7B,OAAO;aACP,KAAK,EAAE,YAAY;aACnB,IAAI;CAQI,CAAC"}