bcb-br-mcp 1.10.0 → 1.11.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 +34 -7
- package/README.pt-BR.md +106 -7
- package/dist/deep-research.d.ts +55 -0
- package/dist/deep-research.d.ts.map +1 -0
- package/dist/deep-research.js +246 -0
- package/dist/deep-research.js.map +1 -0
- package/dist/focus.d.ts.map +1 -1
- package/dist/identity.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/pagination.d.ts.map +1 -1
- package/dist/provenance.d.ts.map +1 -1
- package/dist/register.js.map +1 -1
- package/dist/series.js.map +1 -1
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js.map +1 -1
- package/dist/stats.d.ts.map +1 -1
- package/dist/tools.d.ts +744 -744
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +21 -2
- package/dist/tools.js.map +1 -1
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Banco Central do Brasil (BCB) — SGS Time Series MCP Server
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/bcb-br-mcp)
|
|
4
4
|
[](https://www.npmjs.com/package/bcb-br-mcp)
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
|
|
14
14
|
[Leia em Português](README.pt-BR.md)
|
|
15
15
|
|
|
16
|
-
MCP (Model Context Protocol) server for the **Brazilian Central Bank** (Banco Central do Brasil, **BCB**) time series
|
|
16
|
+
MCP (Model Context Protocol) server for the **Brazilian Central Bank** (Banco Central do Brasil, **BCB**): **SGS** time series (SGS/BCB), the **Focus** market-expectations survey (served over the **Olinda** OData API) and **PTAX** exchange rates.
|
|
17
17
|
|
|
18
18
|
Query economic and financial indicators such as **Selic** (interest rate), **IPCA** (inflation), **exchange rates**, **GDP**, and more, directly from AI assistants like Claude.
|
|
19
19
|
|
|
20
20
|
> If you find this project useful, please consider giving it a [star on GitHub](https://github.com/SidneyBissoli/bcb-br-mcp). It helps others discover the project!
|
|
21
21
|
|
|
22
|
-
**Capabilities:**
|
|
22
|
+
**Capabilities:** 17 tools (skills) · 3 resources · 3 prompts — everything an MCP client needs to query the Brazilian Central Bank: SGS/BCB time series, the **Focus** market-expectations survey and **PTAX** exchange rates.
|
|
23
23
|
|
|
24
24
|
## See it in action
|
|
25
25
|
|
|
@@ -54,6 +54,8 @@ The answers come live from the Brazilian Central Bank's SGS API — exact figure
|
|
|
54
54
|
- **Focus survey** - Market expectations (mean, median, std. deviation, min, max, respondents) for IPCA, GDP, FX and more, by monthly/quarterly/annual horizon or rolling 12/24-month inflation, plus Selic by Copom meeting
|
|
55
55
|
- **PTAX exchange rates** - Official closing quotes for any currency the BCB publishes, single day or date range
|
|
56
56
|
|
|
57
|
+
📖 **Article (in Portuguese):** [Séries do Banco Central: como consultar o SGS, a Focus e a PTAX sem cair nas armadilhas](docs/artigo-sgs-series-do-banco-central.pt-BR.md) — the three API limits measured live, level vs. rate series, the Focus scopes, and what the ODbL requires. Also published on the site, in Portuguese and English: [sidneybissoli.com](https://sidneybissoli.com/en/blog/posts/series-banco-central/).
|
|
58
|
+
|
|
57
59
|
## Available Tools
|
|
58
60
|
|
|
59
61
|
| Tool | Description |
|
|
@@ -71,6 +73,8 @@ The answers come live from the Brazilian Central Bank's SGS API — exact figure
|
|
|
71
73
|
| `bcb_focus_referencias` | Which indicators and reference dates the Focus survey actually publishes, **broken down per scope** (the five horizons plus `selic`, whose axis is the Copom meeting) — the indicator set differs by scope (9 monthly vs 26 annual) |
|
|
72
74
|
| `bcb_cambio_cotacao` | PTAX quote for a currency (USD by default), single day or date range |
|
|
73
75
|
| `bcb_cambio_moedas` | Currencies with quotes published by the BCB |
|
|
76
|
+
| `search` | OpenAI Deep Research contract: searches the series catalog (curated + open data portal index) and returns `{ id, title, url }` — see [ChatGPT (Deep Research)](#chatgpt-deep-research) |
|
|
77
|
+
| `fetch` | OpenAI Deep Research contract: returns one series as a readable document with its canonical public URL |
|
|
74
78
|
|
|
75
79
|
## Resources
|
|
76
80
|
|
|
@@ -146,6 +150,16 @@ npm install -g bcb-br-mcp
|
|
|
146
150
|
}
|
|
147
151
|
```
|
|
148
152
|
|
|
153
|
+
### ChatGPT (Deep Research)
|
|
154
|
+
|
|
155
|
+
ChatGPT deep research (and company knowledge, and research workflows over the Responses API) only uses an MCP server that exposes exactly `search` and `fetch` — this server does, on top of the `bcb_*` tools. Point the connector at the hosted endpoint, no key required:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
https://bcb.sidneybissoli.com/mcp
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
`search` ranks the query against the series catalog — the 135 curated series plus the thousands indexed from the Open Data Portal — and returns `{ id, title, url }` (ids are `sgs:<code>`); `fetch` returns the series as readable Markdown (name, category, frequency, unit, latest value) with the canonical public URL, which is what ChatGPT cites: the dataset page on dadosabertos.bcb.gov.br when the series has one, otherwise the public SGS query for its latest observations (the SGS has no per-series page). Both carry the same provenance block as every other tool. In ChatGPT's developer mode (Settings → Security and login → Developer mode) any tool is callable — the `bcb_*` tools remain the ones to use for data.
|
|
162
|
+
|
|
149
163
|
## Usage Examples
|
|
150
164
|
|
|
151
165
|
### Get the current Selic rate
|
|
@@ -443,9 +457,9 @@ rounded (to 4 decimals).
|
|
|
443
457
|
|
|
444
458
|
### Smart Search
|
|
445
459
|
|
|
446
|
-
`bcb_buscar_serie` searches two layers: the curated
|
|
447
|
-
|
|
448
|
-
accent- and case-insensitive, and several terms are combined with AND:
|
|
460
|
+
`bcb_buscar_serie` searches two layers: the curated catalog of 135 verified series (which ranks first, with
|
|
461
|
+
the source of the name declared) and the index of the BCB Open Data Portal, with thousands of series
|
|
462
|
+
identified by code. Terms are accent- and case-insensitive, and several terms are combined with AND:
|
|
449
463
|
|
|
450
464
|
- `"inflacao"` → finds "Inflação"
|
|
451
465
|
- `"cambio"` → finds "Câmbio"
|
|
@@ -592,7 +606,20 @@ Contributions are welcome! Please:
|
|
|
592
606
|
|
|
593
607
|
## License
|
|
594
608
|
|
|
595
|
-
|
|
609
|
+
**Two licences, and they are not the same thing.**
|
|
610
|
+
|
|
611
|
+
- **Code:** MIT — see [LICENSE](LICENSE).
|
|
612
|
+
- **Data:** from the Banco Central do Brasil, under the **Open Data Commons Open
|
|
613
|
+
Database License (ODbL) v1.0** — https://opendatacommons.org/licenses/odbl/1-0/.
|
|
614
|
+
Not CC0, not CC BY, not public domain: the ODbL requires **attribution**, has a
|
|
615
|
+
**share-alike** clause on derived databases, and an **anti-DRM** clause.
|
|
616
|
+
|
|
617
|
+
Every successful response carries a provenance block with the source, the query URL, the data vintage, the
|
|
618
|
+
real extraction instant and the licence. Exchange-rate answers pass the BCB disclaimer through verbatim, and
|
|
619
|
+
non-USD parities are qualified as information-agency data (Refinitiv) redistributed by the BCB — not as data
|
|
620
|
+
compiled by the Central Bank.
|
|
621
|
+
|
|
622
|
+
Details and obligations in [NOTICE.md](NOTICE.md). Privacy: no user data is logged, by either channel — see [PRIVACY.md](PRIVACY.md).
|
|
596
623
|
|
|
597
624
|
## Author
|
|
598
625
|
|
package/README.pt-BR.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Banco Central do Brasil (BCB)
|
|
1
|
+
# Banco Central do Brasil (BCB) — SGS Time Series MCP Server
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/bcb-br-mcp)
|
|
4
4
|
[](https://www.npmjs.com/package/bcb-br-mcp)
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
|
|
13
13
|
[Read in English](README.md)
|
|
14
14
|
|
|
15
|
-
Servidor MCP (Model Context Protocol)
|
|
15
|
+
Servidor MCP (Model Context Protocol) do **Banco Central do Brasil** (**BCB**): séries temporais do **SGS** (SGS/BCB), a pesquisa de expectativas de mercado **Focus** (servida pela API OData **Olinda**) e as cotações de câmbio **PTAX**.
|
|
16
16
|
|
|
17
17
|
Permite consultar indicadores econômicos e financeiros como **Selic**, **IPCA**, **câmbio**, **PIB**, entre outros, diretamente em assistentes de IA como Claude.
|
|
18
18
|
|
|
19
19
|
> Se você achou este projeto útil, considere dar uma [estrela no GitHub](https://github.com/SidneyBissoli/bcb-br-mcp). Isso ajuda outras pessoas a descobrirem o projeto!
|
|
20
20
|
|
|
21
|
-
**Capacidades:**
|
|
21
|
+
**Capacidades:** 17 ferramentas (skills) · 3 recursos · 3 prompts — tudo o que um cliente MCP precisa para consultar o Banco Central do Brasil: séries temporais do SGS/BCB, a pesquisa de expectativas de mercado **Focus** e as cotações de câmbio **PTAX**.
|
|
22
22
|
|
|
23
23
|
## Veja na prática
|
|
24
24
|
|
|
@@ -27,6 +27,9 @@ Pergunte ao seu assistente, em português:
|
|
|
27
27
|
- *"Qual a taxa Selic atual?"* → `bcb_indicadores_atuais`
|
|
28
28
|
- *"Mostre o IPCA mês a mês em 2024."* → `bcb_serie_valores`
|
|
29
29
|
- *"Qual foi a variação do dólar nos últimos 12 meses?"* → `bcb_variacao`
|
|
30
|
+
- *"O que o mercado espera do IPCA em 2027?"* → `bcb_focus_expectativas`
|
|
31
|
+
- *"Qual a Selic esperada na próxima reunião do Copom?"* → `bcb_focus_selic`
|
|
32
|
+
- *"Qual foi a PTAX de fechamento do euro na sexta?"* → `bcb_cambio_cotacao`
|
|
30
33
|
|
|
31
34
|
As respostas vêm ao vivo da API SGS do Banco Central — valores exatos com procedência, não números chutados do treino.
|
|
32
35
|
|
|
@@ -47,6 +50,10 @@ As respostas vêm ao vivo da API SGS do Banco Central — valores exatos com pro
|
|
|
47
50
|
- **Cálculo de variação** - Variação percentual entre períodos com estatísticas
|
|
48
51
|
- **Comparação de séries** - Compara múltiplas séries no mesmo período, com aviso
|
|
49
52
|
quando as periodicidades diferem
|
|
53
|
+
- **Pesquisa Focus** - Expectativas de mercado (média, mediana, desvio-padrão, mínimo, máximo, número de respondentes) para IPCA, PIB, câmbio e outros, por horizonte mensal/trimestral/anual ou inflação acumulada em 12/24 meses, mais a Selic por reunião do Copom
|
|
54
|
+
- **Câmbio PTAX** - Cotações oficiais de fechamento para qualquer moeda que o BCB publique, em um dia ou num intervalo de datas
|
|
55
|
+
|
|
56
|
+
📖 **Artigo:** [Séries do Banco Central: como consultar o SGS, a Focus e a PTAX sem cair nas armadilhas](docs/artigo-sgs-series-do-banco-central.pt-BR.md) — os três limites da API medidos ao vivo, a diferença entre série de nível e série de taxa, os escopos da Focus e o que a ODbL exige. Também publicado no site: [sidneybissoli.com](https://sidneybissoli.com/blog/posts/series-banco-central/).
|
|
50
57
|
|
|
51
58
|
## Ferramentas Disponíveis
|
|
52
59
|
|
|
@@ -60,6 +67,13 @@ As respostas vêm ao vivo da API SGS do Banco Central — valores exatos com pro
|
|
|
60
67
|
| `bcb_indicadores_atuais` | Valores mais recentes: Selic, IPCA, Dólar, IBC-Br |
|
|
61
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 |
|
|
62
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`) |
|
|
70
|
+
| `bcb_focus_expectativas` | Expectativas da pesquisa Focus para um indicador, com o horizonte como parâmetro (mensal, trimestral, anual, inflação acumulada em 12m/24m); marcador `top5` |
|
|
71
|
+
| `bcb_focus_selic` | Expectativas Focus para a taxa Selic, por reunião do Copom (formato R1/2026) |
|
|
72
|
+
| `bcb_focus_referencias` | Quais indicadores e datas de referência a Focus de fato publica, **discriminados por escopo** (os cinco horizontes mais `selic`, cujo eixo é a reunião do Copom) — o conjunto de indicadores muda com o escopo (9 no mensal contra 26 no anual) |
|
|
73
|
+
| `bcb_cambio_cotacao` | Cotação PTAX de uma moeda (dólar por padrão), num dia ou num intervalo de datas |
|
|
74
|
+
| `bcb_cambio_moedas` | Moedas com cotação publicada pelo BCB |
|
|
75
|
+
| `search` | Contrato Deep Research da OpenAI: busca no catálogo de séries (curado + índice do portal de dados abertos) e devolve `{ id, title, url }` — ver [ChatGPT (Deep Research)](#chatgpt-deep-research) |
|
|
76
|
+
| `fetch` | Contrato Deep Research da OpenAI: devolve uma série como documento legível com a sua URL pública canônica |
|
|
63
77
|
|
|
64
78
|
## Recursos
|
|
65
79
|
|
|
@@ -92,9 +106,14 @@ Acesse [bcb-br-mcp no Smithery](https://smithery.ai/servers/sidneybissoli/bcb-br
|
|
|
92
106
|
Use o endpoint HTTP diretamente, sem instalar nada:
|
|
93
107
|
|
|
94
108
|
```
|
|
95
|
-
https://bcb.sidneybissoli.
|
|
109
|
+
https://bcb.sidneybissoli.com/mcp
|
|
96
110
|
```
|
|
97
111
|
|
|
112
|
+
O hostname antigo `https://bcb.sidneybissoli.workers.dev` continua funcionando, e a
|
|
113
|
+
rota antiga `POST /` também — cliente configurado antes de o endpoint mudar para
|
|
114
|
+
`/mcp` é reescrito de forma transparente, então nada que funcionava parou. Config
|
|
115
|
+
nova deve usar a URL acima.
|
|
116
|
+
|
|
98
117
|
### Via npx (Claude Desktop)
|
|
99
118
|
|
|
100
119
|
Adicione ao arquivo de configuração do Claude Desktop:
|
|
@@ -130,6 +149,16 @@ npm install -g bcb-br-mcp
|
|
|
130
149
|
}
|
|
131
150
|
```
|
|
132
151
|
|
|
152
|
+
### ChatGPT (Deep Research)
|
|
153
|
+
|
|
154
|
+
O Deep Research do ChatGPT (e o Company Knowledge, e os workflows de pesquisa da API Responses) só usa um servidor MCP que exponha exatamente `search` e `fetch` — este servidor expõe as duas, além das `bcb_*`. Aponte o conector para o endpoint hospedado, sem chave:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
https://bcb.sidneybissoli.com/mcp
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
`search` ranqueia a consulta contra o catálogo de séries — as 135 curadas mais os milhares indexados do Portal de Dados Abertos — e devolve `{ id, title, url }` (os ids são `sgs:<código>`); `fetch` devolve a série em Markdown legível (nome, categoria, periodicidade, unidade, último valor) com a URL pública canônica, que é o que o ChatGPT cita: a página do dataset em dadosabertos.bcb.gov.br quando a série tem uma, senão a consulta pública do SGS às últimas observações dela (o SGS não tem página por série). As duas carregam o mesmo bloco de proveniência das demais ferramentas. No modo desenvolvedor do ChatGPT (Configurações → Segurança e login → Modo desenvolvedor) qualquer ferramenta pode ser chamada — para dados, as `bcb_*` continuam sendo as certas.
|
|
161
|
+
|
|
133
162
|
## Exemplos de Uso
|
|
134
163
|
|
|
135
164
|
### Consultar a Selic atual
|
|
@@ -427,11 +456,48 @@ Valor publicado pelo BCB sai sempre verbatim; só o que é calculado é arredond
|
|
|
427
456
|
|
|
428
457
|
### Busca Inteligente
|
|
429
458
|
|
|
430
|
-
|
|
459
|
+
`bcb_buscar_serie` procura em duas camadas: o catálogo curado de 135 séries verificadas (que aparece primeiro,
|
|
460
|
+
com a origem do nome declarada) e o índice do Portal de Dados Abertos do BCB, com milhares de séries
|
|
461
|
+
identificadas por código. Os termos ignoram acento e caixa, e vários termos são combinados com E:
|
|
431
462
|
|
|
432
463
|
- `"inflacao"` → encontra "Inflação"
|
|
433
464
|
- `"cambio"` → encontra "Câmbio"
|
|
434
|
-
- `"
|
|
465
|
+
- `"ipca servicos"` → os dois termos precisam bater
|
|
466
|
+
|
|
467
|
+
O índice do portal é servido de um cache de 24 horas, renovado pela primeira busca depois que ele vence (uma
|
|
468
|
+
requisição ao portal, só metadados — códigos e nomes de série, nunca observações). Toda resposta carrega
|
|
469
|
+
`catalogo.cobertura`: o índice **não** é o SGS inteiro, então não achar uma série aqui não prova que ela não
|
|
470
|
+
existe.
|
|
471
|
+
|
|
472
|
+
### Fonte dos dados e licença
|
|
473
|
+
|
|
474
|
+
Dados obtidos do Banco Central do Brasil (SGS / Olinda-Expectativas / PTAX), publicados sob a
|
|
475
|
+
**Open Data Commons Open Database License (ODbL) v1.0** — https://opendatacommons.org/licenses/odbl/1-0/.
|
|
476
|
+
Reconferido contra a fonte em 2026-08-13: 4.259 dos 4.260 conjuntos do portal declaram
|
|
477
|
+
`license_id: "odc-odbl"`. Isso **não** é CC0, CC BY nem domínio público — a ODbL traz cláusulas de
|
|
478
|
+
atribuição, de compartilhamento nos mesmos termos (para bases derivadas) e contra DRM. As respostas de
|
|
479
|
+
câmbio repassam verbatim o próprio aviso de responsabilidade do BCB; as paridades entre moedas **não** são
|
|
480
|
+
apuradas pelo BCB — vêm de agência de informação (Refinitiv) e são redistribuídas por ele, e as ferramentas
|
|
481
|
+
dizem isso.
|
|
482
|
+
|
|
483
|
+
O código do servidor é MIT; os dados não são. Ver [NOTICE.md](NOTICE.md). Privacidade: nenhum dado de
|
|
484
|
+
usuário é registrado, por nenhum dos canais — ver [PRIVACY.md](PRIVACY.md).
|
|
485
|
+
|
|
486
|
+
### Bloco de proveniência
|
|
487
|
+
|
|
488
|
+
Toda resposta bem-sucedida carrega um bloco de proveniência (contrato do portfólio v1.0) em dois canais:
|
|
489
|
+
`structuredContent.provenance` + `attribution` (visível ao modelo) e um espelho em `_meta` sob
|
|
490
|
+
`br.com.sidneybissoli.bcb/*` (fora de banda, custo zero em tokens). Cada bloco nomeia a fonte, a URL canônica
|
|
491
|
+
que reproduz a consulta, a vintage do dado, o instante **real** da extração na origem e a licença.
|
|
492
|
+
|
|
493
|
+
Dois detalhes fáceis de errar, e que aqui estão tratados:
|
|
494
|
+
|
|
495
|
+
- **`retrieved_at` é o instante real da extração, não "agora".** O índice do portal é servido de um cache de
|
|
496
|
+
24 horas, então busca respondida do cache informa o instante em que o índice foi de fato buscado — que pode
|
|
497
|
+
ser de um dia atrás, e é a data juridicamente relevante.
|
|
498
|
+
- **Um bloco por proveniência, nunca fundidos.** `bcb_buscar_serie` separa o índice do portal do BCB do
|
|
499
|
+
catálogo curado do próprio servidor; `bcb_serie_metadados` separa a leitura ao vivo do SGS do catálogo;
|
|
500
|
+
`bcb_cambio_cotacao` separa as cotações de dólar apuradas pelo BCB das paridades vindas de agência.
|
|
435
501
|
|
|
436
502
|
## Desenvolvimento
|
|
437
503
|
|
|
@@ -453,12 +519,18 @@ npm install
|
|
|
453
519
|
npm run build
|
|
454
520
|
```
|
|
455
521
|
|
|
456
|
-
### Teste local
|
|
522
|
+
### Teste local (stdio)
|
|
457
523
|
|
|
458
524
|
```bash
|
|
459
525
|
npm run dev
|
|
460
526
|
```
|
|
461
527
|
|
|
528
|
+
### Teste local (worker HTTP)
|
|
529
|
+
|
|
530
|
+
```bash
|
|
531
|
+
npm run dev:worker
|
|
532
|
+
```
|
|
533
|
+
|
|
462
534
|
Ou use o MCP Inspector:
|
|
463
535
|
|
|
464
536
|
```bash
|
|
@@ -476,6 +548,33 @@ Este servidor utiliza a API pública do Banco Central do Brasil:
|
|
|
476
548
|
|
|
477
549
|
## Changelog
|
|
478
550
|
|
|
551
|
+
### v1.4.1
|
|
552
|
+
|
|
553
|
+
- `bcb_focus_referencias`: o parâmetro passou a ser `escopo`, não `horizonte`, e o
|
|
554
|
+
vetor da resposta é `escopos`. Os escopos são os cinco horizontes de
|
|
555
|
+
`bcb_focus_expectativas` **mais `selic`** — e `selic` não é horizonte: o eixo dele
|
|
556
|
+
é a reunião do Copom. Cada bloco nomeia a `tool` que o consome. O nome anterior
|
|
557
|
+
dava a entender que `selic` era um horizonte consultável de
|
|
558
|
+
`bcb_focus_expectativas`, e não é. Nunca foi publicado no npm com o nome antigo.
|
|
559
|
+
|
|
560
|
+
### v1.4.0
|
|
561
|
+
|
|
562
|
+
- **Três APIs sob um contrato só, de 8 para 13 ferramentas.** A pesquisa de
|
|
563
|
+
expectativas de mercado Focus (`bcb_focus_expectativas`, `bcb_focus_selic`,
|
|
564
|
+
`bcb_focus_referencias`) e o câmbio PTAX (`bcb_cambio_cotacao`,
|
|
565
|
+
`bcb_cambio_moedas`), consolidados por parâmetro em vez de espelhar os ~18
|
|
566
|
+
recursos OData da origem.
|
|
567
|
+
- **Busca de verdade.** `bcb_buscar_serie` passou a consultar o índice do Portal de
|
|
568
|
+
Dados Abertos (3.500+ séries, cache de 24 horas, só metadados) por cima do
|
|
569
|
+
catálogo curado, e a declarar a cobertura do índice em vez de afirmar que uma
|
|
570
|
+
série não existe.
|
|
571
|
+
- Cada nome de campo da Focus e da PTAX foi conferido contra a API ao vivo,
|
|
572
|
+
inclusive o recurso Top 5 da Selic, que publica os campos numa caixa diferente
|
|
573
|
+
dos outros doze.
|
|
574
|
+
- Obrigações da ODbL entregues junto com as ferramentas de câmbio: o aviso do BCB
|
|
575
|
+
é repassado verbatim, e as paridades que não envolvem o dólar são qualificadas
|
|
576
|
+
como dado de terceiro (Refinitiv) redistribuído pelo BCB.
|
|
577
|
+
|
|
479
578
|
### v1.2.0
|
|
480
579
|
|
|
481
580
|
- Endpoint HTTP via Cloudflare Workers (`https://bcb.sidneybissoli.workers.dev`)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `search` e `fetch` — o contrato Deep Research da OpenAI sobre o acervo do
|
|
3
|
+
* servidor (ChatGPT deep research, company knowledge e os workflows de pesquisa
|
|
4
|
+
* da API Responses exigem EXATAMENTE essas duas tools, com esses nomes — a
|
|
5
|
+
* única exceção admitida ao prefixo `bcb_`).
|
|
6
|
+
*
|
|
7
|
+
* Desenho "coletor + JSON do pacote": a fábrica de `@sbissoli/mcp-search` é
|
|
8
|
+
* apontada para um coletor que captura título, description e callback; as
|
|
9
|
+
* duas entradas viram `ToolDefinition` como as outras 15 — com os schemas do
|
|
10
|
+
* contrato em JSON Schema (`contractJsonSchemas`, derivados uma vez no pacote,
|
|
11
|
+
* porque este servidor serve JSON Schema verbatim e não deriva de zod no fio;
|
|
12
|
+
* `CLAUDE.md`) e o canal de proveniência acrescentado em `TOOL_DEFINITIONS`
|
|
13
|
+
* como nas demais — e o `dispatchTool` as despacha por `case`. Assim o coletor
|
|
14
|
+
* de extração (`retrieved_at`), o `record` e o laço do `registerAll` cobrem as
|
|
15
|
+
* duas sem caso especial.
|
|
16
|
+
*
|
|
17
|
+
* O módulo recebe do `tools.ts` o que é dele (catálogo curado, o handler de
|
|
18
|
+
* metadados e o bloco de proveniência do catálogo) em vez de importar de lá:
|
|
19
|
+
* `tools.ts` monta `TOOL_DEFINITIONS` no topo do módulo, e um ciclo de import
|
|
20
|
+
* o quebraria em quem importasse este arquivo primeiro.
|
|
21
|
+
*
|
|
22
|
+
* O acervo: as séries do SGS conhecidas pelo servidor — o catálogo curado
|
|
23
|
+
* (135, revisadas à mão) e o índice do Portal de Dados Abertos (milhares,
|
|
24
|
+
* `package_list`, cache de 24 h em `catalog.ts`). Id `sgs:<codigo>`. A `url`
|
|
25
|
+
* é a página do dataset no portal quando a série tem uma; as séries curadas
|
|
26
|
+
* sem dataset (53, `fonteNome: "medido"`) citam a consulta pública do SGS às
|
|
27
|
+
* últimas 10 observações — a mesma `urlUltimos10` que `bcb_serie_metadados`
|
|
28
|
+
* publica — porque não existe página humana por série no SGS (`sgspub` não tem
|
|
29
|
+
* deep link) e a consulta SEM janela responde 406 nas séries diárias longas
|
|
30
|
+
* (medido em 03/09/2026: 1, 11 e 12 recusam; `CLAUDE.md`, limite de 10 anos).
|
|
31
|
+
*/
|
|
32
|
+
import { DEEP_RESEARCH_TOOLS } from "@sbissoli/mcp-search";
|
|
33
|
+
import { type Proveniencia } from "./provenance.js";
|
|
34
|
+
import { type SeriePopular, type ToolDefinition, type ToolResult } from "./shared.js";
|
|
35
|
+
export { DEEP_RESEARCH_TOOLS };
|
|
36
|
+
/** Teto de resultados do `search` (o contrato pede uma lista curta e relevante). */
|
|
37
|
+
export declare const DEEP_RESEARCH_LIMIT = 10;
|
|
38
|
+
/** O que o adapter precisa do `tools.ts` — injetado para não fechar ciclo de import. */
|
|
39
|
+
export interface DeepResearchDeps {
|
|
40
|
+
seriesPopulares: readonly SeriePopular[];
|
|
41
|
+
/** O handler real de `bcb_serie_metadados`: o `fetch` é ele, com a proveniência dele. */
|
|
42
|
+
metadados: (codigo: number, timeoutMs?: number, maxRetries?: number) => Promise<ToolResult>;
|
|
43
|
+
/** Bloco de proveniência do catálogo curado — o mesmo que as outras tools emitem. */
|
|
44
|
+
provCatalogoCurado: (detalhe?: string) => Proveniencia;
|
|
45
|
+
}
|
|
46
|
+
export interface DeepResearchTools {
|
|
47
|
+
/** As duas definições, na forma das outras 15 (sem o canal de proveniência — `TOOL_DEFINITIONS` o acrescenta). */
|
|
48
|
+
definitions: ToolDefinition[];
|
|
49
|
+
/** Despacha `search`/`fetch`; `null` quando a tool não é destas. */
|
|
50
|
+
dispatch: (toolName: string, args: Record<string, unknown>, timeoutMs?: number, maxRetries?: number) => Promise<ToolResult> | null;
|
|
51
|
+
}
|
|
52
|
+
/** Só para os testes. */
|
|
53
|
+
export declare function _resetDeepResearch(): void;
|
|
54
|
+
export declare function criarDeepResearchTools(deps: DeepResearchDeps): DeepResearchTools;
|
|
55
|
+
//# sourceMappingURL=deep-research.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `search` e `fetch` — o contrato Deep Research da OpenAI sobre o acervo do
|
|
3
|
+
* servidor (ChatGPT deep research, company knowledge e os workflows de pesquisa
|
|
4
|
+
* da API Responses exigem EXATAMENTE essas duas tools, com esses nomes — a
|
|
5
|
+
* única exceção admitida ao prefixo `bcb_`).
|
|
6
|
+
*
|
|
7
|
+
* Desenho "coletor + JSON do pacote": a fábrica de `@sbissoli/mcp-search` é
|
|
8
|
+
* apontada para um coletor que captura título, description e callback; as
|
|
9
|
+
* duas entradas viram `ToolDefinition` como as outras 15 — com os schemas do
|
|
10
|
+
* contrato em JSON Schema (`contractJsonSchemas`, derivados uma vez no pacote,
|
|
11
|
+
* porque este servidor serve JSON Schema verbatim e não deriva de zod no fio;
|
|
12
|
+
* `CLAUDE.md`) e o canal de proveniência acrescentado em `TOOL_DEFINITIONS`
|
|
13
|
+
* como nas demais — e o `dispatchTool` as despacha por `case`. Assim o coletor
|
|
14
|
+
* de extração (`retrieved_at`), o `record` e o laço do `registerAll` cobrem as
|
|
15
|
+
* duas sem caso especial.
|
|
16
|
+
*
|
|
17
|
+
* O módulo recebe do `tools.ts` o que é dele (catálogo curado, o handler de
|
|
18
|
+
* metadados e o bloco de proveniência do catálogo) em vez de importar de lá:
|
|
19
|
+
* `tools.ts` monta `TOOL_DEFINITIONS` no topo do módulo, e um ciclo de import
|
|
20
|
+
* o quebraria em quem importasse este arquivo primeiro.
|
|
21
|
+
*
|
|
22
|
+
* O acervo: as séries do SGS conhecidas pelo servidor — o catálogo curado
|
|
23
|
+
* (135, revisadas à mão) e o índice do Portal de Dados Abertos (milhares,
|
|
24
|
+
* `package_list`, cache de 24 h em `catalog.ts`). Id `sgs:<codigo>`. A `url`
|
|
25
|
+
* é a página do dataset no portal quando a série tem uma; as séries curadas
|
|
26
|
+
* sem dataset (53, `fonteNome: "medido"`) citam a consulta pública do SGS às
|
|
27
|
+
* últimas 10 observações — a mesma `urlUltimos10` que `bcb_serie_metadados`
|
|
28
|
+
* publica — porque não existe página humana por série no SGS (`sgspub` não tem
|
|
29
|
+
* deep link) e a consulta SEM janela responde 406 nas séries diárias longas
|
|
30
|
+
* (medido em 03/09/2026: 1, 11 e 12 recusam; `CLAUDE.md`, limite de 10 anos).
|
|
31
|
+
*/
|
|
32
|
+
import { DEEP_RESEARCH_TOOLS, contractJsonSchemas, createIndex, registerDeepResearchTools } from "@sbissoli/mcp-search";
|
|
33
|
+
import { CKAN_DATASET_BASE, CKAN_PACKAGE_LIST, nomeDoSlug, obterCatalogo } from "./catalog.js";
|
|
34
|
+
import { provenienciaBcb, resultadoComProveniencia } from "./provenance.js";
|
|
35
|
+
import { BCB_SGS_BASE } from "./series.js";
|
|
36
|
+
import { leituraRemota } from "./shared.js";
|
|
37
|
+
export { DEEP_RESEARCH_TOOLS };
|
|
38
|
+
/** Teto de resultados do `search` (o contrato pede uma lista curta e relevante). */
|
|
39
|
+
export const DEEP_RESEARCH_LIMIT = 10;
|
|
40
|
+
const PREFIXO_SGS = "sgs:";
|
|
41
|
+
let acervo = null;
|
|
42
|
+
/** Só para os testes. */
|
|
43
|
+
export function _resetDeepResearch() {
|
|
44
|
+
acervo = null;
|
|
45
|
+
}
|
|
46
|
+
function idDe(codigo) {
|
|
47
|
+
return `${PREFIXO_SGS}${codigo}`;
|
|
48
|
+
}
|
|
49
|
+
/** Consulta pública do SGS que responde 200 em qualquer série — o fallback de `url`. */
|
|
50
|
+
function urlConsultaPublica(codigo) {
|
|
51
|
+
return `${BCB_SGS_BASE}.${codigo}/dados/ultimos/10?formato=json`;
|
|
52
|
+
}
|
|
53
|
+
function codigoDe(id) {
|
|
54
|
+
if (!id.startsWith(PREFIXO_SGS))
|
|
55
|
+
return null;
|
|
56
|
+
const resto = id.slice(PREFIXO_SGS.length);
|
|
57
|
+
return /^\d+$/.test(resto) ? Number(resto) : null;
|
|
58
|
+
}
|
|
59
|
+
function construirAcervo(seriesPopulares, snapshot) {
|
|
60
|
+
const slugPorCodigo = new Map((snapshot?.entradas ?? []).map(e => [e.codigo, e.slug]));
|
|
61
|
+
const entradas = [];
|
|
62
|
+
// Camada de destaque: o catálogo curado, com o nome bom e as palavras-chave.
|
|
63
|
+
for (const s of seriesPopulares) {
|
|
64
|
+
const slug = slugPorCodigo.get(s.codigo);
|
|
65
|
+
entradas.push({
|
|
66
|
+
id: idDe(s.codigo),
|
|
67
|
+
title: s.nome,
|
|
68
|
+
url: slug ? `${CKAN_DATASET_BASE}/${slug}` : urlConsultaPublica(s.codigo),
|
|
69
|
+
keywords: [String(s.codigo), s.categoria, s.periodicidade, ...(s.unidade ? [s.unidade] : [])],
|
|
70
|
+
codigo: s.codigo,
|
|
71
|
+
origem: "curado"
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const curados = new Set(seriesPopulares.map(s => s.codigo));
|
|
75
|
+
for (const e of snapshot?.entradas ?? []) {
|
|
76
|
+
if (curados.has(e.codigo))
|
|
77
|
+
continue;
|
|
78
|
+
entradas.push({
|
|
79
|
+
id: idDe(e.codigo),
|
|
80
|
+
title: nomeDoSlug(e.slug),
|
|
81
|
+
url: `${CKAN_DATASET_BASE}/${e.slug}`,
|
|
82
|
+
keywords: [String(e.codigo)],
|
|
83
|
+
codigo: e.codigo,
|
|
84
|
+
origem: "indice"
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
chave: snapshot?.obtidoEm ?? null,
|
|
89
|
+
porId: new Map(entradas.map(e => [e.id, e])),
|
|
90
|
+
indice: createIndex(entradas)
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/** Bloco de proveniência do índice do portal — o mesmo de `bcb_buscar_serie`. */
|
|
94
|
+
function provIndicePortal(snapshot) {
|
|
95
|
+
return provenienciaBcb({
|
|
96
|
+
fonte: "PORTAL",
|
|
97
|
+
url: CKAN_PACKAGE_LIST,
|
|
98
|
+
dataset: { id: "package_list", name: "Índice de datasets do portal", version: null },
|
|
99
|
+
dataVintage: snapshot.obtidoEm,
|
|
100
|
+
detalheCitacao: "índice de datasets (package_list)"
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Projeta blocos de proveniência nos extras do envelope do pacote, pelo mesmo
|
|
105
|
+
* caminho das outras tools (`resultadoComProveniencia`): `structuredContent`
|
|
106
|
+
* ganha `provenance`/`attribution` e `_meta` as chaves do servidor.
|
|
107
|
+
*/
|
|
108
|
+
function extrasDe(proveniencia) {
|
|
109
|
+
const { structuredContent, _meta } = resultadoComProveniencia({}, proveniencia);
|
|
110
|
+
return { structured: structuredContent, meta: _meta };
|
|
111
|
+
}
|
|
112
|
+
function renderizarDocumento(entrada, m, serie) {
|
|
113
|
+
const linhas = [
|
|
114
|
+
`# ${entrada.title}`,
|
|
115
|
+
"",
|
|
116
|
+
`- Código no SGS (Sistema Gerenciador de Séries Temporais do Banco Central do Brasil): ${m.codigo}`,
|
|
117
|
+
`- Categoria: ${m.categoria}`,
|
|
118
|
+
`- Periodicidade: ${m.periodicidade}${m.periodicidadeInferida ? " (inferida do espaçamento das observações)" : ""}`,
|
|
119
|
+
...(serie?.unidade ? [`- Unidade: ${serie.unidade}`] : []),
|
|
120
|
+
...(m.ultimoValor ? [`- Último valor publicado: ${m.ultimoValor.valor} em ${m.ultimoValor.data}`] : []),
|
|
121
|
+
`- Fonte: Banco Central do Brasil — SGS`,
|
|
122
|
+
`- Origem no acervo: ${entrada.origem === "curado" ? "catálogo curado do servidor" : "índice do Portal de Dados Abertos do BCB"}`,
|
|
123
|
+
`- ${entrada.url.startsWith(CKAN_DATASET_BASE) ? "Página do dataset" : "Consulta pública (últimas 10 observações)"}: ${entrada.url}`,
|
|
124
|
+
"",
|
|
125
|
+
m.observacao,
|
|
126
|
+
"",
|
|
127
|
+
`Para os valores da série use \`bcb_serie_valores\` (período) ou \`bcb_serie_ultimos\` (últimas observações) com \`codigo: ${m.codigo}\`.`
|
|
128
|
+
];
|
|
129
|
+
return linhas.join("\n");
|
|
130
|
+
}
|
|
131
|
+
export function criarDeepResearchTools(deps) {
|
|
132
|
+
const { seriesPopulares, metadados, provCatalogoCurado } = deps;
|
|
133
|
+
async function obterAcervo(timeoutMs, maxRetries) {
|
|
134
|
+
const { snapshot, aviso } = await obterCatalogo(timeoutMs, maxRetries);
|
|
135
|
+
const chave = snapshot?.obtidoEm ?? null;
|
|
136
|
+
if (!acervo || acervo.chave !== chave)
|
|
137
|
+
acervo = construirAcervo(seriesPopulares, snapshot);
|
|
138
|
+
return { acervo, snapshot, aviso };
|
|
139
|
+
}
|
|
140
|
+
// Os handlers rodam DENTRO do `dispatchTool` (coletor de extração aberto), como
|
|
141
|
+
// os das outras tools — o `retrieved_at` do índice de cache é o do fetch original.
|
|
142
|
+
// O orçamento de rede é o da chamada (o Worker passa um mais curto), por isso
|
|
143
|
+
// as duas funções nascem por chamada, fechadas sobre ele.
|
|
144
|
+
function handlers(timeoutMs, maxRetries) {
|
|
145
|
+
async function search(query) {
|
|
146
|
+
const { acervo, snapshot } = await obterAcervo(timeoutMs, maxRetries);
|
|
147
|
+
const results = acervo.indice
|
|
148
|
+
.search(query, { limit: DEEP_RESEARCH_LIMIT })
|
|
149
|
+
.map(({ id, title, url }) => ({ id, title, url }));
|
|
150
|
+
const proveniencia = [provCatalogoCurado(`busca por "${query}"`)];
|
|
151
|
+
if (snapshot)
|
|
152
|
+
proveniencia.unshift(provIndicePortal(snapshot));
|
|
153
|
+
return { results, extras: extrasDe(proveniencia) };
|
|
154
|
+
}
|
|
155
|
+
async function fetch(id) {
|
|
156
|
+
const codigo = codigoDe(id);
|
|
157
|
+
if (codigo === null)
|
|
158
|
+
return null;
|
|
159
|
+
const { acervo } = await obterAcervo(timeoutMs, maxRetries);
|
|
160
|
+
const entrada = acervo.porId.get(id);
|
|
161
|
+
if (!entrada)
|
|
162
|
+
return null;
|
|
163
|
+
const resultado = await metadados(codigo, timeoutMs, maxRetries);
|
|
164
|
+
if (resultado.isError === true || !resultado.structuredContent) {
|
|
165
|
+
throw new Error(resultado.content[0]?.text ?? `metadados da série ${codigo} indisponíveis`);
|
|
166
|
+
}
|
|
167
|
+
const { provenance, attribution, ...dados } = resultado.structuredContent;
|
|
168
|
+
const m = dados;
|
|
169
|
+
const serie = seriesPopulares.find(s => s.codigo === codigo);
|
|
170
|
+
// O título é o do acervo, não o de `bcb_serie_metadados`: fora da curadoria
|
|
171
|
+
// ela só sabe dizer "Série N", e o acervo tem o nome derivado do slug do
|
|
172
|
+
// portal — o mesmo que `search` acabou de mostrar (achado na ponta, 1.11.0).
|
|
173
|
+
return {
|
|
174
|
+
document: {
|
|
175
|
+
id,
|
|
176
|
+
title: entrada.title,
|
|
177
|
+
text: renderizarDocumento(entrada, m, serie),
|
|
178
|
+
url: entrada.url,
|
|
179
|
+
metadata: {
|
|
180
|
+
codigo,
|
|
181
|
+
categoria: m.categoria,
|
|
182
|
+
periodicidade: m.periodicidade,
|
|
183
|
+
origem: entrada.origem,
|
|
184
|
+
...(serie ? { fonteNome: serie.fonteNome } : {}),
|
|
185
|
+
...(serie?.unidade ? { unidade: serie.unidade } : {}),
|
|
186
|
+
...(m.ultimoValor ? { ultimoValor: m.ultimoValor } : {})
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
extras: {
|
|
190
|
+
structured: { provenance, attribution },
|
|
191
|
+
meta: resultado._meta
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
return { search, fetch };
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Aponta a fábrica do pacote para um coletor e devolve o que ela registrou.
|
|
199
|
+
* `record` fica de fora de propósito: o laço do `registerAll` já conta as duas
|
|
200
|
+
* como conta as outras. `annotations` idem — a definição abaixo leva as suas.
|
|
201
|
+
*/
|
|
202
|
+
function capturar(timeoutMs, maxRetries) {
|
|
203
|
+
const capturados = [];
|
|
204
|
+
const coletor = {
|
|
205
|
+
registerTool: (name, config, callback) => {
|
|
206
|
+
capturados.push({ name, config, callback });
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
registerDeepResearchTools(coletor, {
|
|
210
|
+
...handlers(timeoutMs, maxRetries),
|
|
211
|
+
corpus: "Banco Central do Brasil time series (SGS: interest rates, inflation, exchange rates, credit, " +
|
|
212
|
+
"fiscal and external sector — the curated catalog plus the open data portal index)",
|
|
213
|
+
richTools: "the `bcb_*` tools",
|
|
214
|
+
limit: DEEP_RESEARCH_LIMIT
|
|
215
|
+
});
|
|
216
|
+
const porNome = {};
|
|
217
|
+
for (const name of DEEP_RESEARCH_TOOLS) {
|
|
218
|
+
const reg = capturados.find(c => c.name === name);
|
|
219
|
+
if (!reg?.config.title || !reg.config.description)
|
|
220
|
+
throw new Error(`a fábrica não registrou "${name}"`);
|
|
221
|
+
porNome[name] = reg;
|
|
222
|
+
}
|
|
223
|
+
return porNome;
|
|
224
|
+
}
|
|
225
|
+
const json = contractJsonSchemas("pt-BR");
|
|
226
|
+
const schemas = {
|
|
227
|
+
search: { input: json.searchInputSchema, output: json.searchOutputSchema },
|
|
228
|
+
fetch: { input: json.fetchInputSchema, output: json.fetchDocumentSchema }
|
|
229
|
+
};
|
|
230
|
+
const registros = capturar();
|
|
231
|
+
const definitions = DEEP_RESEARCH_TOOLS.map(name => ({
|
|
232
|
+
name,
|
|
233
|
+
description: registros[name].config.description,
|
|
234
|
+
annotations: leituraRemota(registros[name].config.title),
|
|
235
|
+
inputSchema: schemas[name].input,
|
|
236
|
+
outputSchema: schemas[name].output
|
|
237
|
+
}));
|
|
238
|
+
const dispatch = (toolName, args, timeoutMs, maxRetries) => {
|
|
239
|
+
if (!DEEP_RESEARCH_TOOLS.includes(toolName))
|
|
240
|
+
return null;
|
|
241
|
+
const { callback } = capturar(timeoutMs, maxRetries)[toolName];
|
|
242
|
+
return callback(args);
|
|
243
|
+
};
|
|
244
|
+
return { definitions, dispatch };
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=deep-research.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-research.js","sourceRoot":"","sources":["../src/deep-research.ts"],"names":[],"mappings":"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"}
|
package/dist/focus.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../src/focus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAcH,OAAO,EAA6C,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9G,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,cAAc,GAAG,cAAc,CAAC;AA+B5F,UAAU,YAAY;IACpB,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,uDAAuD;IACvD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gEAAgE;IAChE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CA+BpD,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"focus.d.ts","sourceRoot":"","sources":["../src/focus.ts"],"names":[],"mappings":"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"}
|
package/dist/identity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iFAAiF;AACjF,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,eAAe;IAC1B,8EAA8E
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,iFAAiF;AACjF,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,eAAe;IAC1B,8EAA8E;aAC9E,IAAI,EAAE,YAAY;IAClB;;;OAGG;aACH,KAAK,EAAE,4DAA4D;IACnE,yDAAyD;aACzD,WAAW;IAGX;;;;OAIG;aACH,UAAU,EAAE,+BAA+B;IAC3C;;;;OAIG;aACH,KAAK,EAMA,UAAU,EAAE;CACT,CAAC;AAEX;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,QAWpB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,0EAA0E;AAC1E,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,0EAA0E;AAC1E,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAwB,CAAC;AAE7G,qEAAqE;AACrE,gBAAgB,CAAC,cAAc,CAAC,CAAC;AAEjC,8EAA8E;AAC9E,+EAA+E;AAC/E,gFAAgF;AAChF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAE7C,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;AAE9D,+EAA+E;AAC/E,sEAAsE;AACtE,0EAA0E;AAC1E,iEAAiE;AACjE,MAAM,iBAAiB,GAAG,SAAS,CAAC,SAAS,CAAC;AAC9C,SAAS,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE;IAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC"}
|
package/dist/pagination.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,gFAAgF;AAChF,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,gFAAgF;AAChF,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,YACjC,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,cAAc,CACN,CAAC;AAEX,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1C;AASD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,oBAAoB,GAAG,SAAS,CAqBrF"}
|