ibge-br-mcp 5.3.0 → 5.5.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 +1 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +5 -9
- package/dist/cache.js.map +1 -1
- package/dist/call-shape.d.ts +27 -0
- package/dist/call-shape.d.ts.map +1 -1
- package/dist/call-shape.js +48 -0
- package/dist/call-shape.js.map +1 -1
- package/dist/errors.d.ts +67 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +82 -0
- package/dist/errors.js.map +1 -1
- package/dist/metrics.d.ts +4 -1
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +6 -2
- package/dist/metrics.js.map +1 -1
- package/dist/provenance.d.ts +41 -14
- package/dist/provenance.d.ts.map +1 -1
- package/dist/provenance.js +72 -19
- package/dist/provenance.js.map +1 -1
- package/dist/retry.d.ts +107 -25
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +253 -123
- package/dist/retry.js.map +1 -1
- package/dist/server.d.ts +5 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +13 -5
- package/dist/server.js.map +1 -1
- package/dist/stats.d.ts +9 -0
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +4 -0
- package/dist/stats.js.map +1 -1
- package/dist/structured.d.ts +7 -0
- package/dist/structured.d.ts.map +1 -1
- package/dist/structured.js +7 -1
- package/dist/structured.js.map +1 -1
- package/dist/tools/calendario.d.ts.map +1 -1
- package/dist/tools/calendario.js +6 -15
- package/dist/tools/calendario.js.map +1 -1
- package/dist/tools/censo.d.ts.map +1 -1
- package/dist/tools/censo.js +15 -32
- package/dist/tools/censo.js.map +1 -1
- package/dist/tools/cidades.d.ts.map +1 -1
- package/dist/tools/cidades.js +14 -38
- package/dist/tools/cidades.js.map +1 -1
- package/dist/tools/cnae.d.ts.map +1 -1
- package/dist/tools/cnae.js +17 -29
- package/dist/tools/cnae.js.map +1 -1
- package/dist/tools/comparar.d.ts.map +1 -1
- package/dist/tools/comparar.js +9 -17
- package/dist/tools/comparar.js.map +1 -1
- package/dist/tools/datasaude.d.ts.map +1 -1
- package/dist/tools/datasaude.js +9 -21
- package/dist/tools/datasaude.js.map +1 -1
- package/dist/tools/deep-research.d.ts.map +1 -1
- package/dist/tools/deep-research.js +7 -2
- package/dist/tools/deep-research.js.map +1 -1
- package/dist/tools/estados.d.ts.map +1 -1
- package/dist/tools/estados.js +5 -11
- package/dist/tools/estados.js.map +1 -1
- package/dist/tools/geocodigo.d.ts.map +1 -1
- package/dist/tools/geocodigo.js +35 -50
- package/dist/tools/geocodigo.js.map +1 -1
- package/dist/tools/indicadores.d.ts.map +1 -1
- package/dist/tools/indicadores.js +11 -22
- package/dist/tools/indicadores.js.map +1 -1
- package/dist/tools/localidade.d.ts.map +1 -1
- package/dist/tools/localidade.js +13 -30
- package/dist/tools/localidade.js.map +1 -1
- package/dist/tools/malhas-tema.d.ts.map +1 -1
- package/dist/tools/malhas-tema.js +8 -12
- package/dist/tools/malhas-tema.js.map +1 -1
- package/dist/tools/malhas.d.ts.map +1 -1
- package/dist/tools/malhas.js +9 -20
- package/dist/tools/malhas.js.map +1 -1
- package/dist/tools/municipios.d.ts.map +1 -1
- package/dist/tools/municipios.js +9 -21
- package/dist/tools/municipios.js.map +1 -1
- package/dist/tools/nomes.d.ts.map +1 -1
- package/dist/tools/nomes.js +10 -30
- package/dist/tools/nomes.js.map +1 -1
- package/dist/tools/noticias.d.ts.map +1 -1
- package/dist/tools/noticias.js +7 -24
- package/dist/tools/noticias.js.map +1 -1
- package/dist/tools/paises.d.ts.map +1 -1
- package/dist/tools/paises.js +13 -29
- package/dist/tools/paises.js.map +1 -1
- package/dist/tools/pesquisas.d.ts.map +1 -1
- package/dist/tools/pesquisas.js +9 -21
- package/dist/tools/pesquisas.js.map +1 -1
- package/dist/tools/sidra-metadados.d.ts.map +1 -1
- package/dist/tools/sidra-metadados.js +7 -15
- package/dist/tools/sidra-metadados.js.map +1 -1
- package/dist/tools/sidra-tabelas.d.ts.map +1 -1
- package/dist/tools/sidra-tabelas.js +14 -23
- package/dist/tools/sidra-tabelas.js.map +1 -1
- package/dist/tools/sidra.d.ts.map +1 -1
- package/dist/tools/sidra.js +11 -28
- package/dist/tools/sidra.js.map +1 -1
- package/dist/tools/vizinhos.d.ts.map +1 -1
- package/dist/tools/vizinhos.js +67 -89
- package/dist/tools/vizinhos.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -587,7 +587,7 @@ ibge-br-mcp/
|
|
|
587
587
|
│ ├── types.ts # TypeScript types
|
|
588
588
|
│ ├── config.ts # Configuration and constants
|
|
589
589
|
│ ├── cache.ts # Request caching system
|
|
590
|
-
│ ├── retry.ts #
|
|
590
|
+
│ ├── retry.ts # Trip to the source over @sbissoli/mcp-upstream (retry, timeout, budget, retrieval count)
|
|
591
591
|
│ ├── errors.ts # Standardized error handling
|
|
592
592
|
│ ├── validation.ts # Input validation helpers
|
|
593
593
|
│ ├── metrics.ts # Metrics and logging
|
package/dist/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAO/E;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,IAAI,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,SAAS,CAA6E;IAC9F,OAAO,CAAC,UAAU,CAAS;IAE3B,YAAY,iBAAiB,GAAE,MAAW,EAEzC;IAED;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAU5B;IAED;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAMtD;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGxB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED,mFAAmF;IACnF,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAElD;IAED;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM3B;IAED,0EAA0E;IAC1E,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAIlC;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAOd;IAED;;OAEG;IACH,KAAK,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAMxC;CACF;AAGD,eAAO,MAAM,KAAK,cAAuB,CAAC;AAG1C,eAAO,MAAM,SAAS;aACpB,MAAM;aACN,MAAM,EAAE,EAAE;aACV,KAAK,EAAE,EAAE;aACT,QAAQ,EAAE,CAAC;CACH,CAAC;AAEX;;GAEG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC7D,MAAM,CAUR;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,CAAC,CAAC,CAkBZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,CAAC,EACpC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,CAAC,CAAC,CAMZ;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAEnE"}
|
package/dist/cache.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Simple in-memory cache with TTL support for IBGE API requests
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { fetchJson, RecursoAusenteError } from "./retry.js";
|
|
5
5
|
class RequestCache {
|
|
6
6
|
cache = new Map();
|
|
7
7
|
fetchMeta = new Map();
|
|
@@ -129,14 +129,10 @@ export async function cachedFetch(url, cacheKeyStr, ttlMinutes, retryOptions) {
|
|
|
129
129
|
cache.recordHit(cacheKeyStr);
|
|
130
130
|
return cached;
|
|
131
131
|
}
|
|
132
|
-
// Fetch from API
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
// quê, e sem ele o chamador só pode tentar outra combinação às cegas.
|
|
137
|
-
throw new UpstreamError(response.status, response.statusText, await motivoUpstream(response));
|
|
138
|
-
}
|
|
139
|
-
const data = (await response.json());
|
|
132
|
+
// Fetch from API: retry, timeout and the `retrieval` count live in retry.ts.
|
|
133
|
+
// A status error arrives as `UpstreamError` WITH what the source said — it is
|
|
134
|
+
// there that the source names WHICH parameter it refused and why.
|
|
135
|
+
const data = await fetchJson(url, retryOptions);
|
|
140
136
|
// Store in cache
|
|
141
137
|
cache.set(cacheKeyStr, data, ttlMinutes);
|
|
142
138
|
cache.recordFetch(cacheKeyStr, Date.now());
|
package/dist/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAqB,MAAM,YAAY,CAAC;AAkB/E,MAAM,YAAY;IACR,KAAK,GAAqC,IAAI,GAAG,EAAE,CAAC;IACpD,SAAS,GAAmE,IAAI,GAAG,EAAE,CAAC;IACtF,UAAU,CAAS;IAE3B,YAAY,iBAAiB,GAAW,EAAE;QACxC,IAAI,CAAC,UAAU,GAAG,iBAAiB,GAAG,EAAE,GAAG,IAAI,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAW;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC,IAAS,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,GAAW,EAAE,IAAO,EAAE,UAAmB;QAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAClE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,mFAAmF;IACnF,WAAW,CAAC,GAAW,EAAE,WAAmB;QAC1C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;YACtB,WAAW,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE;YAChD,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,GAAW;QACd,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,OAAO,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAChD,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACpC,CAAC;IACJ,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;AAE1C,iCAAiC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,yDAAyD;IAC1E,MAAM,EAAE,EAAE,EAAE,2DAA2D;IACvE,KAAK,EAAE,EAAE,EAAE,kDAAkD;IAC7D,QAAQ,EAAE,CAAC,EAAE,2DAA2D;CAChE,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,MAA8D;IAE9D,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAClC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAW,EACX,WAAmB,EACnB,UAAmB,EACnB,YAA2B;IAE3B,oBAAoB;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAI,WAAW,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,kEAAkE;IAClE,MAAM,IAAI,GAAG,MAAM,SAAS,CAAI,GAAG,EAAE,YAAY,CAAC,CAAC;IAEnD,iBAAiB;IACjB,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,WAAmB,EACnB,OAAe,EACf,EAAU,EACV,UAAmB,EACnB,YAA2B;IAE3B,MAAM,IAAI,GAAG,MAAM,WAAW,CAAgB,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAC1F,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/call-shape.d.ts
CHANGED
|
@@ -89,6 +89,33 @@ export declare function errorText(result: unknown): string;
|
|
|
89
89
|
* do erro que NÓS escrevemos.
|
|
90
90
|
*/
|
|
91
91
|
export declare function classifyThrown(error: unknown): ErrorClass;
|
|
92
|
+
/**
|
|
93
|
+
* A classe com que o erro NASCEU (`TimeoutError`, `UpstreamError`,
|
|
94
|
+
* `RecursoAusenteError`, `ErroDaOrigem` em retry.ts), ou `undefined` quando ele
|
|
95
|
+
* não declara nenhuma — aí vale a frase, como sempre.
|
|
96
|
+
*/
|
|
97
|
+
export declare function classeDeclarada(error: unknown): ErrorClass | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Onde um resultado de erro leva a classe decidida pelo TIPO da exceção.
|
|
100
|
+
*
|
|
101
|
+
* Por que existe. Medido em 30/09/2026, rodando este classificador sobre o
|
|
102
|
+
* texto que `parseHttpError` monta: falha de rede ("fetch failed") e abort
|
|
103
|
+
* ("This operation was aborted") caíam em `outro`; 403 e corpo HTML em 200
|
|
104
|
+
* ("não é JSON válido") também; e o 429 caía em `contrato` — "HTTP 429: Too
|
|
105
|
+
* Many Requests" casa "too many", instrução ao chamador, e `contrato` é a
|
|
106
|
+
* classe que o painel EXCLUI da taxa de erro. O tipo da falha existia em
|
|
107
|
+
* retry.ts e morria no `catch` de cada tool, que achata o erro em Markdown.
|
|
108
|
+
*
|
|
109
|
+
* O mesmo defeito de fundo foi consertado no bcb-br-mcp (#45), no
|
|
110
|
+
* ilo-mcp-server (#24) e no uis-mcp-server (#22). O conserto não reescreve
|
|
111
|
+
* frase nem mexe em regex: a classe viaja AO LADO do texto, nesta
|
|
112
|
+
* chave-símbolo, que `toMcpResult` copia para o resultado como propriedade não
|
|
113
|
+
* enumerável — o que o cliente recebe não muda. O hook do `registerAll` a lê
|
|
114
|
+
* antes de cair na frase.
|
|
115
|
+
*/
|
|
116
|
+
export declare const CLASSE_DO_ERRO: unique symbol;
|
|
117
|
+
/** A classe anexada a um resultado de erro, ou `undefined` quando não há. */
|
|
118
|
+
export declare function classeAnexada(result: unknown): ErrorClass | undefined;
|
|
92
119
|
/**
|
|
93
120
|
* Classe de um erro JSON-RPC do PROTOCOLO, pelo código antes da mensagem.
|
|
94
121
|
*
|
package/dist/call-shape.d.ts.map
CHANGED
|
@@ -1 +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,mFAAmF;GACjF,SAAS;AACX,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,CAiBjD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,
|
|
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,mFAAmF;GACjF,SAAS;AACX,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,CAiBjD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAYzD;AAcD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAGtE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,MAA8D,CAAC;AAEnG,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAIrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAIrF"}
|
package/dist/call-shape.js
CHANGED
|
@@ -163,8 +163,56 @@ export function classifyThrown(error) {
|
|
|
163
163
|
error instanceof SyntaxError) {
|
|
164
164
|
return "defeito";
|
|
165
165
|
}
|
|
166
|
+
const declarada = classeDeclarada(error);
|
|
167
|
+
if (declarada)
|
|
168
|
+
return declarada;
|
|
166
169
|
return classifyError(error instanceof Error ? error.message : String(error));
|
|
167
170
|
}
|
|
171
|
+
const CLASSES = new Set([
|
|
172
|
+
"contrato",
|
|
173
|
+
"nao_encontrado",
|
|
174
|
+
"fonte",
|
|
175
|
+
"defeito",
|
|
176
|
+
"outro",
|
|
177
|
+
]);
|
|
178
|
+
function ehClasse(x) {
|
|
179
|
+
return typeof x === "string" && CLASSES.has(x);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* A classe com que o erro NASCEU (`TimeoutError`, `UpstreamError`,
|
|
183
|
+
* `RecursoAusenteError`, `ErroDaOrigem` em retry.ts), ou `undefined` quando ele
|
|
184
|
+
* não declara nenhuma — aí vale a frase, como sempre.
|
|
185
|
+
*/
|
|
186
|
+
export function classeDeclarada(error) {
|
|
187
|
+
const c = error?.classe;
|
|
188
|
+
return ehClasse(c) ? c : undefined;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Onde um resultado de erro leva a classe decidida pelo TIPO da exceção.
|
|
192
|
+
*
|
|
193
|
+
* Por que existe. Medido em 30/09/2026, rodando este classificador sobre o
|
|
194
|
+
* texto que `parseHttpError` monta: falha de rede ("fetch failed") e abort
|
|
195
|
+
* ("This operation was aborted") caíam em `outro`; 403 e corpo HTML em 200
|
|
196
|
+
* ("não é JSON válido") também; e o 429 caía em `contrato` — "HTTP 429: Too
|
|
197
|
+
* Many Requests" casa "too many", instrução ao chamador, e `contrato` é a
|
|
198
|
+
* classe que o painel EXCLUI da taxa de erro. O tipo da falha existia em
|
|
199
|
+
* retry.ts e morria no `catch` de cada tool, que achata o erro em Markdown.
|
|
200
|
+
*
|
|
201
|
+
* O mesmo defeito de fundo foi consertado no bcb-br-mcp (#45), no
|
|
202
|
+
* ilo-mcp-server (#24) e no uis-mcp-server (#22). O conserto não reescreve
|
|
203
|
+
* frase nem mexe em regex: a classe viaja AO LADO do texto, nesta
|
|
204
|
+
* chave-símbolo, que `toMcpResult` copia para o resultado como propriedade não
|
|
205
|
+
* enumerável — o que o cliente recebe não muda. O hook do `registerAll` a lê
|
|
206
|
+
* antes de cair na frase.
|
|
207
|
+
*/
|
|
208
|
+
export const CLASSE_DO_ERRO = Symbol.for("br.com.sidneybissoli.mcp/classe-do-erro");
|
|
209
|
+
/** A classe anexada a um resultado de erro, ou `undefined` quando não há. */
|
|
210
|
+
export function classeAnexada(result) {
|
|
211
|
+
if (!result || typeof result !== "object")
|
|
212
|
+
return undefined;
|
|
213
|
+
const c = result[CLASSE_DO_ERRO];
|
|
214
|
+
return ehClasse(c) ? c : undefined;
|
|
215
|
+
}
|
|
168
216
|
/**
|
|
169
217
|
* Classe de um erro JSON-RPC do PROTOCOLO, pelo código antes da mensagem.
|
|
170
218
|
*
|
package/dist/call-shape.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-shape.js","sourceRoot":"","sources":["../src/call-shape.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"call-shape.js","sourceRoot":"","sources":["../src/call-shape.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,6 +1,73 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Standardized error handling for IBGE MCP Server
|
|
3
3
|
*/
|
|
4
|
+
import { CLASSE_DO_ERRO, type ErrorClass } from "./call-shape.js";
|
|
5
|
+
/**
|
|
6
|
+
* A classe com que o erro nasceu, pronta para espalhar num resultado de erro
|
|
7
|
+
* (`{ markdown, isError: true, ...comClasse(error) }`). Vazio quando o erro não
|
|
8
|
+
* declara classe nem é bug nosso — aí a telemetria classifica pela frase.
|
|
9
|
+
*
|
|
10
|
+
* Bug nosso (`TypeError` & cia.) é `defeito` pelo TIPO, como em
|
|
11
|
+
* `classifyThrown`. Medido em 30/09/2026 na varredura da frota: os 24 `catch`
|
|
12
|
+
* de tool engolem a exceção antes do hook, e um "Cannot read properties of
|
|
13
|
+
* undefined" saía `outro` — ou `contrato`, quando o bloco "Parâmetros
|
|
14
|
+
* utilizados" ecoava uma palavra como "inválido".
|
|
15
|
+
*/
|
|
16
|
+
export declare function comClasse(error: unknown): {
|
|
17
|
+
[CLASSE_DO_ERRO]?: ErrorClass;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* `parseHttpError` com a classe do erro ao lado: o Markdown de sempre, e a
|
|
21
|
+
* classe pelo TIPO para a telemetria. É o que o `catch` de cada tool espalha
|
|
22
|
+
* no resultado — ver `CLASSE_DO_ERRO` em call-shape.ts.
|
|
23
|
+
*/
|
|
24
|
+
export declare function erroDaFonte(error: Error, tool: string, params?: Record<string, unknown>, relatedTools?: string[]): {
|
|
25
|
+
markdown: string;
|
|
26
|
+
[CLASSE_DO_ERRO]?: ErrorClass;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Resultado de erro de tool. O ÚNICO lugar de `src/` (fora de structured.ts,
|
|
30
|
+
* que monta o fio) onde se escreve `isError: true` é este arquivo — a guarda
|
|
31
|
+
* `tests/sem-iserror-literal.test.ts` reprova o literal em qualquer outro.
|
|
32
|
+
*
|
|
33
|
+
* Por que existe. Varredura de 30/09/2026: de ~118 resultados de erro nas
|
|
34
|
+
* tools, só ~24 (os `catch` com `erroDaFonte`) levavam a classe; o resto a
|
|
35
|
+
* deixava para a FRASE, e a frase ecoa argumento do chamador. No medical, o
|
|
36
|
+
* código ecoado "INVALID" casou `\binvalid` e um não-encontrado saiu
|
|
37
|
+
* `contrato`. Aqui a classe é parâmetro OBRIGATÓRIO (ou o nome do helper), e
|
|
38
|
+
* o compilador pega quem esquecer.
|
|
39
|
+
*/
|
|
40
|
+
export interface ResultadoDeErro {
|
|
41
|
+
markdown: string;
|
|
42
|
+
isError: true;
|
|
43
|
+
[CLASSE_DO_ERRO]?: ErrorClass;
|
|
44
|
+
}
|
|
45
|
+
/** Erro com a classe decidida por quem conhece a situação. */
|
|
46
|
+
export declare function erroComClasse(markdown: string, classe: ErrorClass): ResultadoDeErro;
|
|
47
|
+
/** Culpa da chamada: argumento inválido, faltando, ambíguo ou fora do catálogo local. */
|
|
48
|
+
export declare function erroContrato(markdown: string): ResultadoDeErro;
|
|
49
|
+
/** A origem respondeu, e respondeu que não existe / veio vazio legitimamente. */
|
|
50
|
+
export declare function erroNaoEncontrado(markdown: string): ResultadoDeErro;
|
|
51
|
+
/** A origem falhou ou respondeu o que não devia (vazio onde não pode haver vazio). */
|
|
52
|
+
export declare function erroFonte(markdown: string): ResultadoDeErro;
|
|
53
|
+
/** Bug ou configuração nossa. */
|
|
54
|
+
export declare function erroDefeito(markdown: string): ResultadoDeErro;
|
|
55
|
+
/**
|
|
56
|
+
* Texto próprio da tool para uma EXCEÇÃO: a classe vem do tipo do erro
|
|
57
|
+
* (`comClasse`). É o único caminho em que a classe pode faltar — exceção
|
|
58
|
+
* `Error` sem tipo conhecido —, e aí a telemetria cai na frase, como último
|
|
59
|
+
* recurso. Valor lançado que nem `Error` é vira `defeito`.
|
|
60
|
+
*/
|
|
61
|
+
export declare function erroDaExcecao(markdown: string, error: unknown): ResultadoDeErro;
|
|
62
|
+
/**
|
|
63
|
+
* O `catch` padrão de tool: `Error` vira o Markdown de `parseHttpError` com a
|
|
64
|
+
* classe pelo tipo; o que nem `Error` é (o ramo "Erro desconhecido") é bug
|
|
65
|
+
* nosso — `defeito` — com o texto de sempre (`emptyResult` da tool, ou o
|
|
66
|
+
* `semErro` que a tool já usava).
|
|
67
|
+
*/
|
|
68
|
+
export declare function erroDoCatch(error: unknown, tool: string, params?: Record<string, unknown>, relatedTools?: string[], semErro?: string): ResultadoDeErro;
|
|
69
|
+
/** A ausência que a origem RESPONDEU: `[]` em 200 (`RecursoAusenteError`) ou 404. */
|
|
70
|
+
export declare function ehAusencia(error: unknown): boolean;
|
|
4
71
|
export declare const IBGE_ERROR_CODES: Record<number, {
|
|
5
72
|
message: string;
|
|
6
73
|
suggestion: string;
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -2,6 +2,88 @@
|
|
|
2
2
|
* Standardized error handling for IBGE MCP Server
|
|
3
3
|
*/
|
|
4
4
|
import { RecursoAusenteError, TimeoutError, UpstreamError } from "./retry.js";
|
|
5
|
+
import { CLASSE_DO_ERRO, classeDeclarada } from "./call-shape.js";
|
|
6
|
+
/**
|
|
7
|
+
* A classe com que o erro nasceu, pronta para espalhar num resultado de erro
|
|
8
|
+
* (`{ markdown, isError: true, ...comClasse(error) }`). Vazio quando o erro não
|
|
9
|
+
* declara classe nem é bug nosso — aí a telemetria classifica pela frase.
|
|
10
|
+
*
|
|
11
|
+
* Bug nosso (`TypeError` & cia.) é `defeito` pelo TIPO, como em
|
|
12
|
+
* `classifyThrown`. Medido em 30/09/2026 na varredura da frota: os 24 `catch`
|
|
13
|
+
* de tool engolem a exceção antes do hook, e um "Cannot read properties of
|
|
14
|
+
* undefined" saía `outro` — ou `contrato`, quando o bloco "Parâmetros
|
|
15
|
+
* utilizados" ecoava uma palavra como "inválido".
|
|
16
|
+
*/
|
|
17
|
+
export function comClasse(error) {
|
|
18
|
+
const classe = classeDeclarada(error) ?? (ehBugNosso(error) ? "defeito" : undefined);
|
|
19
|
+
return classe ? { [CLASSE_DO_ERRO]: classe } : {};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Erro do motor de JS no NOSSO código. A falha de rede da undici também é um
|
|
23
|
+
* `TypeError` ("fetch failed"); todo `fetch` daqui passa por retry.ts, que a
|
|
24
|
+
* tipa como `fonte` antes de chegar a um `catch` — a exclusão é guarda, para
|
|
25
|
+
* uma ida crua futura não virar `defeito`.
|
|
26
|
+
*/
|
|
27
|
+
function ehBugNosso(error) {
|
|
28
|
+
if (error instanceof TypeError)
|
|
29
|
+
return error.message !== "fetch failed";
|
|
30
|
+
return (error instanceof RangeError || error instanceof ReferenceError || error instanceof SyntaxError);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* `parseHttpError` com a classe do erro ao lado: o Markdown de sempre, e a
|
|
34
|
+
* classe pelo TIPO para a telemetria. É o que o `catch` de cada tool espalha
|
|
35
|
+
* no resultado — ver `CLASSE_DO_ERRO` em call-shape.ts.
|
|
36
|
+
*/
|
|
37
|
+
export function erroDaFonte(error, tool, params, relatedTools) {
|
|
38
|
+
return { markdown: parseHttpError(error, tool, params, relatedTools), ...comClasse(error) };
|
|
39
|
+
}
|
|
40
|
+
/** Erro com a classe decidida por quem conhece a situação. */
|
|
41
|
+
export function erroComClasse(markdown, classe) {
|
|
42
|
+
return { markdown, isError: true, [CLASSE_DO_ERRO]: classe };
|
|
43
|
+
}
|
|
44
|
+
/** Culpa da chamada: argumento inválido, faltando, ambíguo ou fora do catálogo local. */
|
|
45
|
+
export function erroContrato(markdown) {
|
|
46
|
+
return erroComClasse(markdown, "contrato");
|
|
47
|
+
}
|
|
48
|
+
/** A origem respondeu, e respondeu que não existe / veio vazio legitimamente. */
|
|
49
|
+
export function erroNaoEncontrado(markdown) {
|
|
50
|
+
return erroComClasse(markdown, "nao_encontrado");
|
|
51
|
+
}
|
|
52
|
+
/** A origem falhou ou respondeu o que não devia (vazio onde não pode haver vazio). */
|
|
53
|
+
export function erroFonte(markdown) {
|
|
54
|
+
return erroComClasse(markdown, "fonte");
|
|
55
|
+
}
|
|
56
|
+
/** Bug ou configuração nossa. */
|
|
57
|
+
export function erroDefeito(markdown) {
|
|
58
|
+
return erroComClasse(markdown, "defeito");
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Texto próprio da tool para uma EXCEÇÃO: a classe vem do tipo do erro
|
|
62
|
+
* (`comClasse`). É o único caminho em que a classe pode faltar — exceção
|
|
63
|
+
* `Error` sem tipo conhecido —, e aí a telemetria cai na frase, como último
|
|
64
|
+
* recurso. Valor lançado que nem `Error` é vira `defeito`.
|
|
65
|
+
*/
|
|
66
|
+
export function erroDaExcecao(markdown, error) {
|
|
67
|
+
if (!(error instanceof Error))
|
|
68
|
+
return erroDefeito(markdown);
|
|
69
|
+
return { markdown, isError: true, ...comClasse(error) };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* O `catch` padrão de tool: `Error` vira o Markdown de `parseHttpError` com a
|
|
73
|
+
* classe pelo tipo; o que nem `Error` é (o ramo "Erro desconhecido") é bug
|
|
74
|
+
* nosso — `defeito` — com o texto de sempre (`emptyResult` da tool, ou o
|
|
75
|
+
* `semErro` que a tool já usava).
|
|
76
|
+
*/
|
|
77
|
+
export function erroDoCatch(error, tool, params, relatedTools, semErro) {
|
|
78
|
+
if (error instanceof Error) {
|
|
79
|
+
return { ...erroDaFonte(error, tool, params, relatedTools), isError: true };
|
|
80
|
+
}
|
|
81
|
+
return erroDefeito(semErro ?? ValidationErrors.emptyResult(tool));
|
|
82
|
+
}
|
|
83
|
+
/** A ausência que a origem RESPONDEU: `[]` em 200 (`RecursoAusenteError`) ou 404. */
|
|
84
|
+
export function ehAusencia(error) {
|
|
85
|
+
return (error instanceof RecursoAusenteError || (error instanceof UpstreamError && error.status === 404));
|
|
86
|
+
}
|
|
5
87
|
// Common IBGE API error codes and their meanings
|
|
6
88
|
export const IBGE_ERROR_CODES = {
|
|
7
89
|
400: {
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics.d.ts
CHANGED
|
@@ -79,7 +79,10 @@ declare class MetricsCollector {
|
|
|
79
79
|
}
|
|
80
80
|
export declare const metrics: MetricsCollector;
|
|
81
81
|
/**
|
|
82
|
-
* Helper to measure and record a tool execution
|
|
82
|
+
* Helper to measure and record a tool execution. It is also where the network
|
|
83
|
+
* collector of the call is opened (`comColetorDeRede`): every tool body runs
|
|
84
|
+
* inside it, so every request counts toward the `retrieval` block of the
|
|
85
|
+
* provenance (nested calls reuse the collector already open).
|
|
83
86
|
*/
|
|
84
87
|
export declare function withMetrics<T>(tool: string, api: string | undefined, fn: () => Promise<T>, cached?: boolean): Promise<T>;
|
|
85
88
|
/**
|
package/dist/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9E,YAAY,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzE;AAED,cAAM,gBAAgB;IACpB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAQ;IAEvB,cAEC;IAED,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAsC/B;IAED,OAAO,CAAC,iBAAiB;IAoCzB,OAAO,CAAC,gBAAgB;IAqBxB;;OAEG;IACH,UAAU,IAAI,aAAa,CAE1B;IAED;;OAEG;IACH,SAAS,IAAI,MAAM,CA+DlB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED,OAAO,CAAC,UAAU;CAInB;AAGD,eAAO,MAAM,OAAO,kBAAyB,CAAC;AAE9C;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,UAAQ,GACb,OAAO,CAAC,CAAC,CAAC,CAsBZ;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,cAAM,MAAM;IACV,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAKZ;IAEF,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAE9B;IAED,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjC;IAED,OAAO,CAAC,SAAS;IAIjB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAI3C;IAED,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAI1C;IAED,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAI1C;IAED,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAI3C;CACF;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
|
package/dist/metrics.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* - Cache hit/miss rates
|
|
8
8
|
* - Response sizes
|
|
9
9
|
*/
|
|
10
|
+
import { comColetorDeRede } from "./retry.js";
|
|
10
11
|
class MetricsCollector {
|
|
11
12
|
metrics;
|
|
12
13
|
maxRecentErrors = 50;
|
|
@@ -200,14 +201,17 @@ class MetricsCollector {
|
|
|
200
201
|
// Singleton instance
|
|
201
202
|
export const metrics = new MetricsCollector();
|
|
202
203
|
/**
|
|
203
|
-
* Helper to measure and record a tool execution
|
|
204
|
+
* Helper to measure and record a tool execution. It is also where the network
|
|
205
|
+
* collector of the call is opened (`comColetorDeRede`): every tool body runs
|
|
206
|
+
* inside it, so every request counts toward the `retrieval` block of the
|
|
207
|
+
* provenance (nested calls reuse the collector already open).
|
|
204
208
|
*/
|
|
205
209
|
export async function withMetrics(tool, api, fn, cached = false) {
|
|
206
210
|
const start = Date.now();
|
|
207
211
|
let success = true;
|
|
208
212
|
let errorType;
|
|
209
213
|
try {
|
|
210
|
-
return await fn
|
|
214
|
+
return await comColetorDeRede(fn);
|
|
211
215
|
}
|
|
212
216
|
catch (error) {
|
|
213
217
|
success = false;
|
package/dist/metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAqC9C,MAAM,gBAAgB;IACZ,OAAO,CAAgB;IACvB,eAAe,GAAG,EAAE,CAAC;IACrB,OAAO,GAAG,IAAI,CAAC;IAEvB;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAEO,iBAAiB;QACvB,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,gBAAgB,EAAE,CAAC;YACnB,MAAM,EAAE,EAAE;YACV,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,EAAE;SACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAE1B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAClC,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE9B,qBAAqB;QACrB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,eAAe;QACf,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,SAAS;aACvB,CAAC,CAAC;YAEH,0BAA0B;YAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAkB;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;gBAChC,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;gBACZ,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,KAAkB;QACzC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,SAAS,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;gBACxB,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;gBACT,WAAW,EAAE,CAAC;aACf,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;QAC5D,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,CAAC,WAAW,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;QAEzE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,SAAS;QACP,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;QAEjD,IAAI,MAAM,GAAG,mCAAmC,CAAC;QAEjD,eAAe;QACf,MAAM,IAAI,8BAA8B,CAAC;QACzC,MAAM,IAAI,uBAAuB,CAAC;QAClC,MAAM,IAAI,uBAAuB,CAAC;QAClC,MAAM,IAAI,kBAAkB,aAAa,cAAc,CAAC;QACxD,MAAM,IAAI,6BAA6B,CAAC,CAAC,UAAU,MAAM,CAAC;QAC1D,MAAM,IAAI,oBAAoB,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAC1G,MAAM,IAAI,kBAAkB,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QACtG,MAAM,IAAI,sBAAsB,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;QAC5G,MAAM,IAAI,wBAAwB,CAAC,CAAC,gBAAgB,MAAM,CAAC;QAC3D,MAAM,IAAI,IAAI,CAAC;QAEf,UAAU;QACV,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,wBAAwB,CAAC;YACnC,MAAM,IAAI,iEAAiE,CAAC;YAC5E,MAAM,IAAI,iEAAiE,CAAC;YAE5E,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAEvF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;gBACxC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAChE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,IAAI,MAAM,KAAK,CAAC,KAAK,MAAM,WAAW,MAAM,KAAK,QAAQ,SAAS,MAAM,CAAC;YAC1F,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;QAED,SAAS;QACT,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,iBAAiB,CAAC;YAC5B,MAAM,IAAI,4CAA4C,CAAC;YACvD,MAAM,IAAI,4CAA4C,CAAC;YAEvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC5C,MAAM,IAAI,KAAK,GAAG,MAAM,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,MAAM,MAAM,KAAK,QAAQ,CAAC;YAC3E,CAAC;YACD,MAAM,IAAI,IAAI,CAAC;QACjB,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,qCAAqC,CAAC;YAChD,MAAM,IAAI,mCAAmC,CAAC;YAC9C,MAAM,IAAI,mCAAmC,CAAC;YAE9C,MAAM,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBACjE,MAAM,IAAI,KAAK,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;IAEO,UAAU,CAAC,IAAY,EAAE,KAAa;QAC5C,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAChD,CAAC;CACF;AAED,qBAAqB;AACrB,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,GAAuB,EACvB,EAAoB,EACpB,MAAM,GAAG,KAAK;IAEd,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,SAA6B,CAAC;IAElC,IAAI,CAAC;QACH,OAAO,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,CAAC;QAChB,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;QACjE,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,MAAM,CAAC;YACb,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI;YACJ,GAAG;YACH,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC5B,OAAO;YACP,MAAM;YACN,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAOD,MAAM,MAAM;IACF,KAAK,GAAa,MAAM,CAAC;IACzB,OAAO,GAAG,KAAK,CAAC,CAAC,qCAAqC;IAEtD,MAAM,GAA6B;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC;KACT,CAAC;IAEF,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
|
package/dist/provenance.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance block (portfolio contract v1.
|
|
2
|
+
* Provenance block (portfolio contract v1.1) — pt-BR adapter over
|
|
3
3
|
* `@sbissoli/mcp-provenance`. The canonical model, the `concise`/`detailed`
|
|
4
4
|
* projections, serialization determinism, timezone handling and the footer
|
|
5
5
|
* wording live in the package; this module binds them to the IBGE server:
|
|
@@ -13,7 +13,13 @@
|
|
|
13
13
|
* - `provenienciaIbge(...)`, the per-call builder every tool uses. It pulls
|
|
14
14
|
* the REAL extraction instant (`retrieved_at`) and `served_from_cache` from
|
|
15
15
|
* the cache layer via `lastFetchMeta` (contract: cache hits keep the
|
|
16
|
-
* original fetch instant — it is the legally relevant extraction date)
|
|
16
|
+
* original fetch instant — it is the legally relevant extraction date), and
|
|
17
|
+
* since 5.4.0 the `retrieval` block (v1.1) from the network collector of the
|
|
18
|
+
* call (`@sbissoli/mcp-upstream`, opened by `withMetrics` — see `retry.ts`):
|
|
19
|
+
* how many requests went to the IBGE, how many attempts they took and which
|
|
20
|
+
* anomalies were overcome. `null` when nothing was measured — response served
|
|
21
|
+
* only from cache, or a direct call outside a tool (tests) — never an
|
|
22
|
+
* invented `{ requests: 1, attempts: 1 }`.
|
|
17
23
|
*
|
|
18
24
|
* Emission happens in `toMcpResult` (`structured.ts`): tools attach the
|
|
19
25
|
* canonical block to their `StructuredToolResult` and the handler emits the
|
|
@@ -26,7 +32,7 @@
|
|
|
26
32
|
* (aggregation/rankings computed server-side) → `true` + `derivation_note`.
|
|
27
33
|
*/
|
|
28
34
|
import { z } from "zod";
|
|
29
|
-
import { type CanonicalProvenance, type ConciseBlock } from "@sbissoli/mcp-provenance";
|
|
35
|
+
import { ConciseBlockSchema, type CanonicalProvenance, type ConciseBlock } from "@sbissoli/mcp-provenance";
|
|
30
36
|
/** Single provenance context for the server: `_meta` namespace, locale, timezone, mode. */
|
|
31
37
|
export declare const provenanceContext: import("@sbissoli/mcp-provenance").ProvenanceContext;
|
|
32
38
|
/** Canonical envelope v1.0 (post-validation). */
|
|
@@ -140,18 +146,23 @@ export declare const NOTA_DERIVACAO_ESTATISTICAS = "Estat\u00EDsticas (distribui
|
|
|
140
146
|
* ("2022" or "2020–2023"); no period column → null.
|
|
141
147
|
*/
|
|
142
148
|
export declare function extrairPeriodoSidra(colunas: string[], registros: Array<Record<string, string>>): string | null;
|
|
143
|
-
/**
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
/**
|
|
150
|
+
* Concise projection of a block — the shape embedded in `structuredContent`
|
|
151
|
+
* and `_meta`, and the `provenance` node of every tool's `outputSchema`.
|
|
152
|
+
*
|
|
153
|
+
* The shape is the package's `ConciseBlockSchema`, not a transcription. Found
|
|
154
|
+
* on 26/09/2026: this module transcribed the six v1.0 keys by hand, the SDK
|
|
155
|
+
* validates `structuredContent` against the sealed `outputSchema` at runtime,
|
|
156
|
+
* and raising the package to a contract with a new key (v1.1, `retrieval`)
|
|
157
|
+
* without touching the transcription failed EVERY tool call — "must NOT have
|
|
158
|
+
* additional properties", 48 tests. Importing the shape means a new key
|
|
159
|
+
* arrives together with the lib that emits it. Descriptions are the IBGE
|
|
160
|
+
* wording at the top level and the package's own pt-BR text underneath.
|
|
161
|
+
*/
|
|
162
|
+
export declare const provenanceBlockSchema: typeof ConciseBlockSchema;
|
|
152
163
|
/**
|
|
153
164
|
* Extends a tool's output schema with the provenance channel of the contract
|
|
154
|
-
* v1.
|
|
165
|
+
* v1.1: the concise block + the `attribution` URL list (MCP RFC #711). Every
|
|
155
166
|
* successful response carries both (wired in `toMcpResult`).
|
|
156
167
|
*/
|
|
157
168
|
export declare function comProveniencia<T extends z.ZodObject<z.ZodRawShape>>(schema: T): z.ZodObject<{
|
|
@@ -161,9 +172,25 @@ export declare function comProveniencia<T extends z.ZodObject<z.ZodRawShape>>(sc
|
|
|
161
172
|
source_url: z.ZodString;
|
|
162
173
|
data_vintage: z.ZodNullable<z.ZodString>;
|
|
163
174
|
retrieved_at: z.ZodString;
|
|
175
|
+
retrieval: z.ZodNullable<z.ZodObject<{
|
|
176
|
+
requests: z.ZodNumber;
|
|
177
|
+
attempts: z.ZodNumber;
|
|
178
|
+
anomalies: z.ZodArray<z.ZodObject<{
|
|
179
|
+
kind: z.ZodEnum<{
|
|
180
|
+
http_4xx: "http_4xx";
|
|
181
|
+
http_5xx: "http_5xx";
|
|
182
|
+
malformed_body: "malformed_body";
|
|
183
|
+
network: "network";
|
|
184
|
+
rate_limited: "rate_limited";
|
|
185
|
+
timeout: "timeout";
|
|
186
|
+
}>;
|
|
187
|
+
count: z.ZodNumber;
|
|
188
|
+
}, z.core.$strict>>;
|
|
189
|
+
unstable: z.ZodBoolean;
|
|
190
|
+
}, z.core.$strict>>;
|
|
164
191
|
citation: z.ZodString;
|
|
165
192
|
license: z.ZodNullable<z.ZodString>;
|
|
166
|
-
}, z.core.$
|
|
193
|
+
}, z.core.$strict>;
|
|
167
194
|
attribution: z.ZodArray<z.ZodString>;
|
|
168
195
|
}, z.core.$strip>;
|
|
169
196
|
/** Concise projection + attribution list for a block (used by `toMcpResult`). */
|
package/dist/provenance.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
|