ibge-br-mcp 5.7.0 → 5.8.1
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/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +24 -1
- package/dist/cache.js.map +1 -1
- package/dist/provenance.d.ts +118 -7
- package/dist/provenance.d.ts.map +1 -1
- package/dist/provenance.js +131 -11
- package/dist/provenance.js.map +1 -1
- package/dist/tools/cidades.js +29 -10
- package/dist/tools/cidades.js.map +1 -1
- package/dist/tools/comparar.d.ts.map +1 -1
- package/dist/tools/comparar.js +23 -4
- package/dist/tools/comparar.js.map +1 -1
- package/dist/tools/deep-research.d.ts +13 -2
- package/dist/tools/deep-research.d.ts.map +1 -1
- package/dist/tools/deep-research.js +54 -5
- package/dist/tools/deep-research.js.map +1 -1
- package/dist/tools/paises.js +15 -1
- package/dist/tools/paises.js.map +1 -1
- package/dist/tools/sidra-metadados.d.ts.map +1 -1
- package/dist/tools/sidra-metadados.js +24 -1
- package/dist/tools/sidra-metadados.js.map +1 -1
- package/dist/tools/sidra.d.ts.map +1 -1
- package/dist/tools/sidra.js +24 -5
- package/dist/tools/sidra.js.map +1 -1
- package/dist/tools/vizinhos.d.ts.map +1 -1
- package/dist/tools/vizinhos.js +34 -1
- package/dist/tools/vizinhos.js.map +1 -1
- package/package.json +3 -3
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;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,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,CAwBZ;AAiBD;;;;;;;;;;;;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,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Simple in-memory cache with TTL support for IBGE API requests
|
|
3
3
|
*/
|
|
4
|
+
import { currentCall } from "@sbissoli/mcp-upstream/als";
|
|
4
5
|
import { fetchJson, RecursoAusenteError } from "./retry.js";
|
|
5
6
|
class RequestCache {
|
|
6
7
|
cache = new Map();
|
|
@@ -127,6 +128,13 @@ export async function cachedFetch(url, cacheKeyStr, ttlMinutes, retryOptions) {
|
|
|
127
128
|
const cached = cache.get(cacheKeyStr);
|
|
128
129
|
if (cached !== null) {
|
|
129
130
|
cache.recordHit(cacheKeyStr);
|
|
131
|
+
// The hit is part of what this call read: the collector keeps it, with the
|
|
132
|
+
// ORIGINAL extraction instant, so a response that merges several reads can
|
|
133
|
+
// report the oldest one (contract §3). `recordCache` stays out of
|
|
134
|
+
// `retrieval` — a cache hit is not a trip to the source.
|
|
135
|
+
const meta = cache.meta(cacheKeyStr);
|
|
136
|
+
if (meta)
|
|
137
|
+
currentCall()?.recordCache(url, meta.retrievedAt);
|
|
130
138
|
return cached;
|
|
131
139
|
}
|
|
132
140
|
// Fetch from API: retry, timeout and the `retrieval` count live in retry.ts.
|
|
@@ -135,9 +143,24 @@ export async function cachedFetch(url, cacheKeyStr, ttlMinutes, retryOptions) {
|
|
|
135
143
|
const data = await fetchJson(url, retryOptions);
|
|
136
144
|
// Store in cache
|
|
137
145
|
cache.set(cacheKeyStr, data, ttlMinutes);
|
|
138
|
-
cache.recordFetch(cacheKeyStr,
|
|
146
|
+
cache.recordFetch(cacheKeyStr, instanteDaIda(url));
|
|
139
147
|
return data;
|
|
140
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* The instant the collector recorded for the trip that just brought `url` — the
|
|
151
|
+
* same number later hits replay through `recordCache`, so a fresh read and a
|
|
152
|
+
* cached read of the same extraction never disagree by the milliseconds between
|
|
153
|
+
* the collector's clock and this line. Outside a collector, now.
|
|
154
|
+
*/
|
|
155
|
+
function instanteDaIda(url) {
|
|
156
|
+
const acessos = currentCall()?.accesses() ?? [];
|
|
157
|
+
for (let i = acessos.length - 1; i >= 0; i--) {
|
|
158
|
+
const a = acessos[i];
|
|
159
|
+
if (a.url === url && !a.fromCache)
|
|
160
|
+
return a.retrievedAt.getTime();
|
|
161
|
+
}
|
|
162
|
+
return Date.now();
|
|
163
|
+
}
|
|
141
164
|
/**
|
|
142
165
|
* `cachedFetch` para endpoint de identificador ÚNICO, onde a resposta esperada
|
|
143
166
|
* é um objeto.
|
package/dist/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,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,2EAA2E;QAC3E,2EAA2E;QAC3E,kEAAkE;QAClE,yDAAyD;QACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,IAAI;YAAE,WAAW,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,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,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,OAAO,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACpB,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/provenance.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance block (portfolio contract
|
|
2
|
+
* Provenance block (portfolio contract; version in `provenanceContext`) — 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,10 @@
|
|
|
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) —
|
|
17
|
+
* or, for a response that merges several reads (`partes`, since 5.8.1),
|
|
18
|
+
* from what the call's collector saw of each one: the OLDEST instant on top,
|
|
19
|
+
* cache only if every part was, one `field_sources` entry per part — and
|
|
17
20
|
* since 5.4.0 the `retrieval` block (v1.1) from the network collector of the
|
|
18
21
|
* call (`@sbissoli/mcp-upstream`, opened by `withMetrics` — see `retry.ts`):
|
|
19
22
|
* how many requests went to the IBGE, how many attempts they took and which
|
|
@@ -35,7 +38,7 @@ import { z } from "zod";
|
|
|
35
38
|
import { ConciseBlockSchema, type CanonicalProvenance, type ConciseBlock } from "@sbissoli/mcp-provenance";
|
|
36
39
|
/** Single provenance context for the server: `_meta` namespace, locale, timezone, mode. */
|
|
37
40
|
export declare const provenanceContext: import("@sbissoli/mcp-provenance").ProvenanceContext;
|
|
38
|
-
/** Canonical envelope
|
|
41
|
+
/** Canonical envelope (post-validation); its `contract_version` is `provenanceContext.contractVersion`. */
|
|
39
42
|
export type Provenance = CanonicalProvenance;
|
|
40
43
|
/** Namespaced `_meta` keys (stable — audit/UI consumers read by these keys). */
|
|
41
44
|
export declare const PROVENANCE_META_KEY: string;
|
|
@@ -53,59 +56,114 @@ export declare const IBGE_LICENSE: {
|
|
|
53
56
|
readonly terms_url: "https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2016/decreto/d8777.htm";
|
|
54
57
|
readonly verified_at: "2026-08-08";
|
|
55
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* What the SIDRA does to numbers already published — the same sentence the
|
|
61
|
+
* server instructions carry (`SERVER_INSTRUCTIONS` in `server.ts`; a test keeps
|
|
62
|
+
* the two together). It is the `revision.note` of the two SIDRA-backed sources.
|
|
63
|
+
*/
|
|
64
|
+
export declare const NOTA_REVISAO_SIDRA = "O IBGE revisa n\u00FAmeros j\u00E1 divulgados (PIB trimestral a cada divulga\u00E7\u00E3o, repondera\u00E7\u00E3o da PNAD, revis\u00F5es anuais de PIM, PMC e PMS) e a API n\u00E3o guarda a vers\u00E3o anterior.";
|
|
56
65
|
/**
|
|
57
66
|
* Source registry — one entry per IBGE API this server consumes. `name` is
|
|
58
67
|
* what the concise projection shows as `source`; `endpoint` is the base URL
|
|
59
|
-
* actually queried
|
|
68
|
+
* actually queried; `revision` is fixed per source (see `REVISAO_VIGENTE`).
|
|
69
|
+
* Text only, never the IBGE logo/brand (docs/01).
|
|
60
70
|
*/
|
|
61
71
|
export declare const FONTES_IBGE: {
|
|
62
72
|
readonly LOCALIDADES: {
|
|
63
73
|
readonly name: "IBGE — API de Localidades";
|
|
64
74
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v1/localidades";
|
|
75
|
+
readonly revision: {
|
|
76
|
+
readonly status: "current";
|
|
77
|
+
readonly note: null;
|
|
78
|
+
};
|
|
65
79
|
};
|
|
66
80
|
readonly SIDRA: {
|
|
67
81
|
readonly name: "IBGE — SIDRA (Banco de Tabelas Estatísticas)";
|
|
68
82
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v3/agregados";
|
|
83
|
+
readonly revision: {
|
|
84
|
+
readonly status: "current";
|
|
85
|
+
readonly note: "O IBGE revisa números já divulgados (PIB trimestral a cada divulgação, reponderação da PNAD, revisões anuais de PIM, PMC e PMS) e a API não guarda a versão anterior.";
|
|
86
|
+
};
|
|
69
87
|
};
|
|
70
88
|
readonly AGREGADOS: {
|
|
71
89
|
readonly name: "IBGE — API de Agregados (SIDRA)";
|
|
72
90
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v3/agregados";
|
|
91
|
+
readonly revision: {
|
|
92
|
+
readonly status: "current";
|
|
93
|
+
readonly note: "O IBGE revisa números já divulgados (PIB trimestral a cada divulgação, reponderação da PNAD, revisões anuais de PIM, PMC e PMS) e a API não guarda a versão anterior.";
|
|
94
|
+
};
|
|
73
95
|
};
|
|
74
96
|
readonly NOMES: {
|
|
75
97
|
readonly name: "IBGE — API de Nomes (Censo Demográfico 2010)";
|
|
76
98
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v2/censos/nomes";
|
|
99
|
+
readonly revision: {
|
|
100
|
+
readonly status: "current";
|
|
101
|
+
readonly note: null;
|
|
102
|
+
};
|
|
77
103
|
};
|
|
78
104
|
readonly MALHAS: {
|
|
79
105
|
readonly name: "IBGE — API de Malhas Geográficas";
|
|
80
106
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v3/malhas";
|
|
107
|
+
readonly revision: {
|
|
108
|
+
readonly status: "current";
|
|
109
|
+
readonly note: null;
|
|
110
|
+
};
|
|
81
111
|
};
|
|
82
112
|
readonly GEOSERVICOS: {
|
|
83
113
|
readonly name: "IBGE — Geosserviços (WFS, IBGE Geociências)";
|
|
84
114
|
readonly endpoint: "https://geoservicos.ibge.gov.br/geoserver/ows";
|
|
115
|
+
readonly revision: {
|
|
116
|
+
readonly status: "current";
|
|
117
|
+
readonly note: null;
|
|
118
|
+
};
|
|
85
119
|
};
|
|
86
120
|
readonly NOTICIAS: {
|
|
87
121
|
readonly name: "IBGE — API de Notícias";
|
|
88
122
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v3/noticias";
|
|
123
|
+
readonly revision: {
|
|
124
|
+
readonly status: "current";
|
|
125
|
+
readonly note: null;
|
|
126
|
+
};
|
|
89
127
|
};
|
|
90
128
|
readonly POPULACAO: {
|
|
91
129
|
readonly name: "IBGE — API de Projeções de População";
|
|
92
130
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v1/projecoes/populacao";
|
|
131
|
+
readonly revision: {
|
|
132
|
+
readonly status: "current";
|
|
133
|
+
readonly note: null;
|
|
134
|
+
};
|
|
93
135
|
};
|
|
94
136
|
readonly CNAE: {
|
|
95
137
|
readonly name: "IBGE — API CNAE";
|
|
96
138
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v2/cnae";
|
|
139
|
+
readonly revision: {
|
|
140
|
+
readonly status: "current";
|
|
141
|
+
readonly note: null;
|
|
142
|
+
};
|
|
97
143
|
};
|
|
98
144
|
readonly CALENDARIO: {
|
|
99
145
|
readonly name: "IBGE — API de Calendário de Divulgações";
|
|
100
146
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v3/calendario";
|
|
147
|
+
readonly revision: {
|
|
148
|
+
readonly status: "current";
|
|
149
|
+
readonly note: null;
|
|
150
|
+
};
|
|
101
151
|
};
|
|
102
152
|
readonly PAISES: {
|
|
103
153
|
readonly name: "IBGE — API de Países";
|
|
104
154
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v1/paises";
|
|
155
|
+
readonly revision: {
|
|
156
|
+
readonly status: "current";
|
|
157
|
+
readonly note: null;
|
|
158
|
+
};
|
|
105
159
|
};
|
|
106
160
|
readonly PESQUISAS: {
|
|
107
161
|
readonly name: "IBGE — API de Pesquisas (Cidades@)";
|
|
108
162
|
readonly endpoint: "https://servicodados.ibge.gov.br/api/v1/pesquisas";
|
|
163
|
+
readonly revision: {
|
|
164
|
+
readonly status: "current";
|
|
165
|
+
readonly note: null;
|
|
166
|
+
};
|
|
109
167
|
};
|
|
110
168
|
};
|
|
111
169
|
export type FonteIbge = keyof typeof FONTES_IBGE;
|
|
@@ -130,6 +188,48 @@ export interface ProvenienciaIbgeOptions {
|
|
|
130
188
|
derivado?: {
|
|
131
189
|
nota: string;
|
|
132
190
|
};
|
|
191
|
+
/**
|
|
192
|
+
* The parts of a response that MERGES several reads (endpoints, sources, or
|
|
193
|
+
* the same API at different instants) — one entry per part, the main one
|
|
194
|
+
* included. With `partes`, `chaveCache` is not read: each part's instant and
|
|
195
|
+
* cache status come from what THIS call read (the collector's accesses —
|
|
196
|
+
* network trips and cache hits alike, `cachedFetch` records both), the top
|
|
197
|
+
* `retrieved_at` is the OLDEST of them, `served_from_cache` is true only if
|
|
198
|
+
* every part came from cache, and `field_sources` carries one entry per part
|
|
199
|
+
* (contract §3). A part this call did not read is not in the response and is
|
|
200
|
+
* dropped — the block never points at data it does not carry.
|
|
201
|
+
*/
|
|
202
|
+
partes?: ParteDaResposta[];
|
|
203
|
+
/**
|
|
204
|
+
* Extraction already known to the caller — for data the server holds in its
|
|
205
|
+
* own memory beyond the request cache (the deep-research index), whose
|
|
206
|
+
* instant no access of this call can tell. Wins over `chaveCache`.
|
|
207
|
+
*/
|
|
208
|
+
extracao?: {
|
|
209
|
+
retrievedAt: Date;
|
|
210
|
+
servedFromCache: boolean | null;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/** One part of a merged response: the payload fields it produced and where it lives. */
|
|
214
|
+
export interface ParteDaResposta {
|
|
215
|
+
/** Payload fields this part produced (what `field_sources[].fields` names). */
|
|
216
|
+
fields: string[];
|
|
217
|
+
/** The URL of this part (what it reproduces); default filter of the accesses. */
|
|
218
|
+
url: string;
|
|
219
|
+
/** Which accesses of the call belong to this part. Default: URL equal to `url`. */
|
|
220
|
+
filtro?: (url: string) => boolean;
|
|
221
|
+
/** Instant known to the caller instead of the collector (see `extracao`). */
|
|
222
|
+
extracao?: {
|
|
223
|
+
retrievedAt: Date;
|
|
224
|
+
servedFromCache: boolean | null;
|
|
225
|
+
};
|
|
226
|
+
/** Instant known to the caller, used only when the collector did not see this part. */
|
|
227
|
+
reserva?: {
|
|
228
|
+
retrievedAt: Date;
|
|
229
|
+
servedFromCache: boolean | null;
|
|
230
|
+
};
|
|
231
|
+
dataset?: string | null;
|
|
232
|
+
dataVintage?: string | null;
|
|
133
233
|
}
|
|
134
234
|
/**
|
|
135
235
|
* Builds the canonical provenance block for one tool response. Citation
|
|
@@ -168,8 +268,8 @@ export declare function extrairPeriodoSidra(colunas: string[], registros: Array<
|
|
|
168
268
|
*/
|
|
169
269
|
export declare const provenanceBlockSchema: typeof ConciseBlockSchema;
|
|
170
270
|
/**
|
|
171
|
-
* Extends a tool's output schema with the provenance channel of the contract
|
|
172
|
-
*
|
|
271
|
+
* Extends a tool's output schema with the provenance channel of the contract:
|
|
272
|
+
* the concise block + the `attribution` URL list (MCP RFC #711). Every
|
|
173
273
|
* successful response carries both (wired in `toMcpResult`).
|
|
174
274
|
*/
|
|
175
275
|
export declare function comProveniencia<T extends z.ZodObject<z.ZodRawShape>>(schema: T): z.ZodObject<{
|
|
@@ -205,6 +305,17 @@ export declare function comProveniencia<T extends z.ZodObject<z.ZodRawShape>>(sc
|
|
|
205
305
|
retrieved_at: z.ZodNullable<z.ZodString>;
|
|
206
306
|
served_from_cache: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
|
|
207
307
|
}, z.core.$strict>>>;
|
|
308
|
+
notices: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
309
|
+
derived: z.ZodOptional<z.ZodBoolean>;
|
|
310
|
+
derivation_note: z.ZodOptional<z.ZodString>;
|
|
311
|
+
revision: z.ZodOptional<z.ZodObject<{
|
|
312
|
+
status: z.ZodEnum<{
|
|
313
|
+
current: "current";
|
|
314
|
+
final: "final";
|
|
315
|
+
provisional: "provisional";
|
|
316
|
+
}>;
|
|
317
|
+
note: z.ZodNullable<z.ZodString>;
|
|
318
|
+
}, z.core.$strict>>;
|
|
208
319
|
}, z.core.$strict>;
|
|
209
320
|
attribution: z.ZodArray<z.ZodString>;
|
|
210
321
|
}, z.core.$strip>;
|
|
@@ -213,6 +324,6 @@ export declare function projetarProveniencia(p: Provenance): {
|
|
|
213
324
|
provenance: ConciseBlock;
|
|
214
325
|
attribution: string[];
|
|
215
326
|
};
|
|
216
|
-
/** Compact text footer for the Markdown channel (
|
|
327
|
+
/** Compact text footer for the Markdown channel (wording owned by the package). */
|
|
217
328
|
export declare function rodapeProveniencia(p: Provenance): string;
|
|
218
329
|
//# sourceMappingURL=provenance.d.ts.map
|
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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"}
|
package/dist/provenance.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provenance block (portfolio contract
|
|
2
|
+
* Provenance block (portfolio contract; version in `provenanceContext`) — 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,10 @@
|
|
|
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) —
|
|
17
|
+
* or, for a response that merges several reads (`partes`, since 5.8.1),
|
|
18
|
+
* from what the call's collector saw of each one: the OLDEST instant on top,
|
|
19
|
+
* cache only if every part was, one `field_sources` entry per part — and
|
|
17
20
|
* since 5.4.0 the `retrieval` block (v1.1) from the network collector of the
|
|
18
21
|
* call (`@sbissoli/mcp-upstream`, opened by `withMetrics` — see `retry.ts`):
|
|
19
22
|
* how many requests went to the IBGE, how many attempts they took and which
|
|
@@ -42,6 +45,11 @@ export const provenanceContext = createProvenanceContext({
|
|
|
42
45
|
locale: "pt-BR",
|
|
43
46
|
timezone: { offset: "-03:00", label: "horário de Brasília" },
|
|
44
47
|
defaultMode: "concise",
|
|
48
|
+
// 1.2: `field_sources` goes out on responses that merge sub-sources — since
|
|
49
|
+
// 5.8.1 the tools that read several endpoints in one answer pass them as
|
|
50
|
+
// `partes` (see `provenienciaIbge`). The 1.3 keys are already declared by the
|
|
51
|
+
// schema; emitting them is the next step.
|
|
52
|
+
contractVersion: "1.2",
|
|
45
53
|
});
|
|
46
54
|
/** Namespaced `_meta` keys (stable — audit/UI consumers read by these keys). */
|
|
47
55
|
export const PROVENANCE_META_KEY = provenanceContext.metaKeys.provenance;
|
|
@@ -59,59 +67,87 @@ export const IBGE_LICENSE = {
|
|
|
59
67
|
terms_url: "https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2016/decreto/d8777.htm",
|
|
60
68
|
verified_at: "2026-08-08",
|
|
61
69
|
};
|
|
70
|
+
/**
|
|
71
|
+
* What the SIDRA does to numbers already published — the same sentence the
|
|
72
|
+
* server instructions carry (`SERVER_INSTRUCTIONS` in `server.ts`; a test keeps
|
|
73
|
+
* the two together). It is the `revision.note` of the two SIDRA-backed sources.
|
|
74
|
+
*/
|
|
75
|
+
export const NOTA_REVISAO_SIDRA = "O IBGE revisa números já divulgados (PIB trimestral a cada divulgação, reponderação da PNAD, revisões anuais de PIM, PMC e PMS) e a API não guarda a versão anterior.";
|
|
76
|
+
/**
|
|
77
|
+
* Revision status of the IBGE sources (contract v1.3, owner's decision of
|
|
78
|
+
* 08/10/2026): `current` for every one — the value is the version in force at
|
|
79
|
+
* the extraction instant and the source may revise it. `final` needs proof from
|
|
80
|
+
* the source and nobody uses it yet. The note is the source's own story when the
|
|
81
|
+
* server already tells it (SIDRA), `null` otherwise — never a new claim.
|
|
82
|
+
*/
|
|
83
|
+
const REVISAO_VIGENTE = { status: "current", note: null };
|
|
84
|
+
const REVISAO_SIDRA = { status: "current", note: NOTA_REVISAO_SIDRA };
|
|
62
85
|
/**
|
|
63
86
|
* Source registry — one entry per IBGE API this server consumes. `name` is
|
|
64
87
|
* what the concise projection shows as `source`; `endpoint` is the base URL
|
|
65
|
-
* actually queried
|
|
88
|
+
* actually queried; `revision` is fixed per source (see `REVISAO_VIGENTE`).
|
|
89
|
+
* Text only, never the IBGE logo/brand (docs/01).
|
|
66
90
|
*/
|
|
67
91
|
export const FONTES_IBGE = {
|
|
68
92
|
LOCALIDADES: {
|
|
69
93
|
name: "IBGE — API de Localidades",
|
|
70
94
|
endpoint: API_ENDPOINTS.IBGE.LOCALIDADES,
|
|
95
|
+
revision: REVISAO_VIGENTE,
|
|
71
96
|
},
|
|
72
97
|
SIDRA: {
|
|
73
98
|
name: "IBGE — SIDRA (Banco de Tabelas Estatísticas)",
|
|
74
99
|
endpoint: API_ENDPOINTS.SIDRA,
|
|
100
|
+
revision: REVISAO_SIDRA,
|
|
75
101
|
},
|
|
76
102
|
AGREGADOS: {
|
|
77
103
|
name: "IBGE — API de Agregados (SIDRA)",
|
|
78
104
|
endpoint: API_ENDPOINTS.IBGE.AGREGADOS,
|
|
105
|
+
revision: REVISAO_SIDRA,
|
|
79
106
|
},
|
|
80
107
|
NOMES: {
|
|
81
108
|
name: "IBGE — API de Nomes (Censo Demográfico 2010)",
|
|
82
109
|
endpoint: API_ENDPOINTS.IBGE.NOMES,
|
|
110
|
+
revision: REVISAO_VIGENTE,
|
|
83
111
|
},
|
|
84
112
|
MALHAS: {
|
|
85
113
|
name: "IBGE — API de Malhas Geográficas",
|
|
86
114
|
endpoint: API_ENDPOINTS.IBGE.MALHAS,
|
|
115
|
+
revision: REVISAO_VIGENTE,
|
|
87
116
|
},
|
|
88
117
|
GEOSERVICOS: {
|
|
89
118
|
name: "IBGE — Geosserviços (WFS, IBGE Geociências)",
|
|
90
119
|
endpoint: API_ENDPOINTS.IBGE.GEOSERVICOS,
|
|
120
|
+
revision: REVISAO_VIGENTE,
|
|
91
121
|
},
|
|
92
122
|
NOTICIAS: {
|
|
93
123
|
name: "IBGE — API de Notícias",
|
|
94
124
|
endpoint: API_ENDPOINTS.IBGE.NOTICIAS,
|
|
125
|
+
revision: REVISAO_VIGENTE,
|
|
95
126
|
},
|
|
96
127
|
POPULACAO: {
|
|
97
128
|
name: "IBGE — API de Projeções de População",
|
|
98
129
|
endpoint: API_ENDPOINTS.IBGE.POPULACAO,
|
|
130
|
+
revision: REVISAO_VIGENTE,
|
|
99
131
|
},
|
|
100
132
|
CNAE: {
|
|
101
133
|
name: "IBGE — API CNAE",
|
|
102
134
|
endpoint: API_ENDPOINTS.IBGE.CNAE,
|
|
135
|
+
revision: REVISAO_VIGENTE,
|
|
103
136
|
},
|
|
104
137
|
CALENDARIO: {
|
|
105
138
|
name: "IBGE — API de Calendário de Divulgações",
|
|
106
139
|
endpoint: API_ENDPOINTS.IBGE.CALENDARIO,
|
|
140
|
+
revision: REVISAO_VIGENTE,
|
|
107
141
|
},
|
|
108
142
|
PAISES: {
|
|
109
143
|
name: "IBGE — API de Países",
|
|
110
144
|
endpoint: API_ENDPOINTS.IBGE.PAISES,
|
|
145
|
+
revision: REVISAO_VIGENTE,
|
|
111
146
|
},
|
|
112
147
|
PESQUISAS: {
|
|
113
148
|
name: "IBGE — API de Pesquisas (Cidades@)",
|
|
114
149
|
endpoint: API_ENDPOINTS.IBGE.PESQUISAS,
|
|
150
|
+
revision: REVISAO_VIGENTE,
|
|
115
151
|
},
|
|
116
152
|
};
|
|
117
153
|
/** "dd/mm/aaaa" of an instant in Brasília time, for the citation text. */
|
|
@@ -123,6 +159,52 @@ function dataCitacao(retrievedAt) {
|
|
|
123
159
|
const [ano, mes, dia] = iso.slice(0, 10).split("-");
|
|
124
160
|
return `${dia}/${mes}/${ano}`;
|
|
125
161
|
}
|
|
162
|
+
function lerPartes(partes) {
|
|
163
|
+
const call = currentCall();
|
|
164
|
+
const lidas = [];
|
|
165
|
+
for (const p of partes) {
|
|
166
|
+
const base = {
|
|
167
|
+
fields: p.fields,
|
|
168
|
+
source_url: p.url,
|
|
169
|
+
dataset_id: p.dataset ?? null,
|
|
170
|
+
data_vintage: p.dataVintage ?? null,
|
|
171
|
+
};
|
|
172
|
+
const conhecida = (e) => ({
|
|
173
|
+
...base,
|
|
174
|
+
retrieved_at: e.retrievedAt.toISOString(),
|
|
175
|
+
served_from_cache: e.servedFromCache,
|
|
176
|
+
});
|
|
177
|
+
if (p.extracao) {
|
|
178
|
+
lidas.push(conhecida(p.extracao));
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
const lida = call?.fieldSource({
|
|
182
|
+
fields: p.fields,
|
|
183
|
+
source_url: p.url,
|
|
184
|
+
filter: p.filtro ?? ((u) => u === p.url),
|
|
185
|
+
});
|
|
186
|
+
if (lida && lida.retrieved_at !== null) {
|
|
187
|
+
lidas.push({
|
|
188
|
+
...base,
|
|
189
|
+
retrieved_at: lida.retrieved_at,
|
|
190
|
+
served_from_cache: lida.served_from_cache,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
else if (p.reserva) {
|
|
194
|
+
lidas.push(conhecida(p.reserva));
|
|
195
|
+
}
|
|
196
|
+
// Otherwise this call did not read the part: it is not in the response.
|
|
197
|
+
}
|
|
198
|
+
return lidas;
|
|
199
|
+
}
|
|
200
|
+
/** True only if every part came from cache; false if any was fetched now; null if any is unknown. */
|
|
201
|
+
function cacheDasPartes(lidas) {
|
|
202
|
+
if (lidas.some((p) => p.served_from_cache === false))
|
|
203
|
+
return false;
|
|
204
|
+
if (lidas.some((p) => p.served_from_cache === null))
|
|
205
|
+
return null;
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
126
208
|
/**
|
|
127
209
|
* Builds the canonical provenance block for one tool response. Citation
|
|
128
210
|
* follows the pattern fixed by the verbatim verification (docs/01):
|
|
@@ -130,8 +212,27 @@ function dataCitacao(retrievedAt) {
|
|
|
130
212
|
*/
|
|
131
213
|
export function provenienciaIbge(opts) {
|
|
132
214
|
const fonte = FONTES_IBGE[opts.fonte];
|
|
133
|
-
const
|
|
215
|
+
const lidas = opts.partes ? lerPartes(opts.partes) : [];
|
|
216
|
+
let meta;
|
|
217
|
+
if (lidas.length > 0) {
|
|
218
|
+
// The OLDEST part is the top: "nothing here is older than this" (§3) — by
|
|
219
|
+
// construction, so the lib's 1.2 check (top newer than a sub-source is a
|
|
220
|
+
// `ProvenanceContractError`) can never fire.
|
|
221
|
+
meta = {
|
|
222
|
+
retrievedAt: new Date(Math.min(...lidas.map((p) => Date.parse(p.retrieved_at)))),
|
|
223
|
+
servedFromCache: cacheDasPartes(lidas),
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
else if (opts.extracao) {
|
|
227
|
+
meta = opts.extracao;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
meta = opts.chaveCache ? lastFetchMeta(opts.chaveCache) : null;
|
|
231
|
+
}
|
|
134
232
|
const retrievedAt = meta?.retrievedAt ?? new Date();
|
|
233
|
+
// `field_sources` only when the response really merged sub-sources: a single
|
|
234
|
+
// part read is a single extraction, and the contract leaves the key out then.
|
|
235
|
+
const fieldSources = lidas.length > 1 ? lidas : undefined;
|
|
135
236
|
return provenanceContext.build({
|
|
136
237
|
source: { name: fonte.name, agency: "IBGE", database: null, endpoint: fonte.endpoint },
|
|
137
238
|
source_url: opts.url,
|
|
@@ -142,11 +243,15 @@ export function provenienciaIbge(opts) {
|
|
|
142
243
|
license: IBGE_LICENSE,
|
|
143
244
|
derived: opts.derivado !== undefined,
|
|
144
245
|
...(opts.derivado !== undefined ? { derivation_note: opts.derivado.nota } : {}),
|
|
246
|
+
// Informed now, on the wire only once the context emits 1.3 (the lib drops
|
|
247
|
+
// it from 1.1/1.2 blocks).
|
|
248
|
+
revision: fonte.revision,
|
|
145
249
|
served_from_cache: meta ? meta.servedFromCache : null,
|
|
146
250
|
// The REAL count of this call (requests, attempts, anomalies), measured by
|
|
147
251
|
// the collector `withMetrics` opened; `null` = not measured (cache only, or
|
|
148
252
|
// no collector), which the contract prefers over an invented clean block.
|
|
149
253
|
retrieval: currentCall()?.retrieval() ?? null,
|
|
254
|
+
...(fieldSources ? { field_sources: fieldSources } : {}),
|
|
150
255
|
});
|
|
151
256
|
}
|
|
152
257
|
/** Fixed derivation note for the D2 statistics modes (estatisticas/agruparPor/topN). */
|
|
@@ -206,10 +311,14 @@ const DESCRICOES_IBGE = {
|
|
|
206
311
|
source_url: "URL canônica que reproduz a consulta",
|
|
207
312
|
data_vintage: "Período de referência do dado segundo a fonte; null se a fonte não expõe",
|
|
208
313
|
retrieved_at: "Instante real da extração no upstream (ISO-8601, horário de Brasília)",
|
|
209
|
-
retrieval: "Diagnóstico de origem desta chamada
|
|
314
|
+
retrieval: "Diagnóstico de origem desta chamada: idas à API do IBGE, tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null quando nada foi medido (resposta servida só do cache)",
|
|
210
315
|
citation: "Citação pronta para uso",
|
|
211
316
|
license: "Regime legal do dado",
|
|
212
|
-
field_sources: "Proveniência por sub-fonte
|
|
317
|
+
field_sources: "Proveniência por sub-fonte: presente só quando a resposta junta partes extraídas de origens ou em momentos distintos, uma entrada por grupo de campos; ausente quando a resposta vem de uma única extração",
|
|
318
|
+
notices: "Avisos que o IBGE publica junto com o dado (quebra de série, unidade, atualização), copiados como vieram; ausente quando não há aviso",
|
|
319
|
+
derived: "Presente (true) só quando o servidor calculou o valor — estatísticas, rankings, comparações — em vez de repassá-lo como veio do IBGE",
|
|
320
|
+
derivation_note: "O que o servidor calculou; presente junto com derived",
|
|
321
|
+
revision: "Se o dado ainda pode mudar no IBGE: current = versão vigente na extração, que o IBGE pode revisar depois; provisional = preliminar; final = não muda mais. note traz o específico da fonte quando há",
|
|
213
322
|
};
|
|
214
323
|
/**
|
|
215
324
|
* Grafts descriptions onto a zod schema, node by node, from the JSON Schema
|
|
@@ -225,8 +334,19 @@ texto = no?.description) {
|
|
|
225
334
|
const interno = no?.oneOf ? no.oneOf.find((n) => n.type !== "null") : no;
|
|
226
335
|
saida = descreverPeloJsonSchema(schema.unwrap(), interno, {}, "").nullable();
|
|
227
336
|
}
|
|
337
|
+
else if (schema instanceof z.ZodOptional) {
|
|
338
|
+
// The keys added after v1.1 (`field_sources`, and the four of v1.3) are
|
|
339
|
+
// optional: walk into them so the package's text reaches their children,
|
|
340
|
+
// and keep them optional — out of `required` in the listed schema.
|
|
341
|
+
saida = descreverPeloJsonSchema(schema.unwrap(), no, {}, "").optional();
|
|
342
|
+
}
|
|
228
343
|
else if (schema instanceof z.ZodArray) {
|
|
229
|
-
|
|
344
|
+
// `clone` keeps the array's checks (`.min(1)` of field_sources/notices);
|
|
345
|
+
// rebuilding it with `z.array(...)` would drop them.
|
|
346
|
+
saida = schema.clone({
|
|
347
|
+
...schema.def,
|
|
348
|
+
element: descreverPeloJsonSchema(schema.element, no?.items),
|
|
349
|
+
});
|
|
230
350
|
}
|
|
231
351
|
else if (schema instanceof z.ZodObject) {
|
|
232
352
|
saida = z.strictObject(Object.fromEntries(Object.entries(schema.shape).map(([chave, filho]) => [
|
|
@@ -254,13 +374,13 @@ texto = no?.description) {
|
|
|
254
374
|
*/
|
|
255
375
|
export const provenanceBlockSchema = descreverPeloJsonSchema(ConciseBlockSchema, CONCISE_BLOCK_JSON_SCHEMA, DESCRICOES_IBGE);
|
|
256
376
|
/**
|
|
257
|
-
* Extends a tool's output schema with the provenance channel of the contract
|
|
258
|
-
*
|
|
377
|
+
* Extends a tool's output schema with the provenance channel of the contract:
|
|
378
|
+
* the concise block + the `attribution` URL list (MCP RFC #711). Every
|
|
259
379
|
* successful response carries both (wired in `toMcpResult`).
|
|
260
380
|
*/
|
|
261
381
|
export function comProveniencia(schema) {
|
|
262
382
|
return schema.extend({
|
|
263
|
-
provenance: provenanceBlockSchema.describe("Bloco de proveniência
|
|
383
|
+
provenance: provenanceBlockSchema.describe("Bloco de proveniência do portfólio: fonte, URL, período, extração, diagnóstico de origem e licença"),
|
|
264
384
|
attribution: z
|
|
265
385
|
.array(z.string())
|
|
266
386
|
.describe("URLs canônicas das fontes desta resposta (lista de atribuição)"),
|
|
@@ -270,7 +390,7 @@ export function comProveniencia(schema) {
|
|
|
270
390
|
export function projetarProveniencia(p) {
|
|
271
391
|
return { provenance: renderConcise(p), attribution: attributionList([p]) };
|
|
272
392
|
}
|
|
273
|
-
/** Compact text footer for the Markdown channel (
|
|
393
|
+
/** Compact text footer for the Markdown channel (wording owned by the package). */
|
|
274
394
|
export function rodapeProveniencia(p) {
|
|
275
395
|
return provenanceContext.footer(p);
|
|
276
396
|
}
|
package/dist/provenance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,GAGd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;IACvD,aAAa,EAAE,2BAA2B;IAC1C,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC5D,WAAW,EAAE,SAAS;CACvB,CAAC,CAAC;AAKH,gFAAgF;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC;AACzE,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,gFAAgF;IACtF,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,4EAA4E;IACvF,WAAW,EAAE,YAAY;CACjB,CAAC;AAEX;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,WAAW,EAAE;QACX,IAAI,EAAE,2BAA2B;QACjC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW;KACzC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,8CAA8C;QACpD,QAAQ,EAAE,aAAa,CAAC,KAAK;KAC9B;IACD,SAAS,EAAE;QACT,IAAI,EAAE,iCAAiC;QACvC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;KACvC;IACD,KAAK,EAAE;QACL,IAAI,EAAE,8CAA8C;QACpD,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK;KACnC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,kCAAkC;QACxC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;KACpC;IACD,WAAW,EAAE;QACX,IAAI,EAAE,6CAA6C;QACnD,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW;KACzC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ;KACtC;IACD,SAAS,EAAE;QACT,IAAI,EAAE,sCAAsC;QAC5C,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;KACvC;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI;KAClC;IACD,UAAU,EAAE;QACV,IAAI,EAAE,yCAAyC;QAC/C,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU;KACxC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB;QAC5B,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM;KACpC;IACD,SAAS,EAAE;QACT,IAAI,EAAE,oCAAoC;QAC1C,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS;KACvC;CACO,CAAC;AAIX,0EAA0E;AAC1E,SAAS,WAAW,CAAC,WAA0B;IAC7C,MAAM,GAAG,GACP,WAAW,YAAY,IAAI;QACzB,CAAC,CAAC,sDAAsD;YACtD,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QACpE,CAAC,CAAC,WAAW,CAAC;IAClB,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAChC,CAAC;AAuBD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,IAAI,IAAI,IAAI,EAAE,CAAC;IAEpD,OAAO,iBAAiB,CAAC,KAAK,CAAC;QAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;QACtF,UAAU,EAAE,IAAI,CAAC,GAAG;QACpB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;QACtC,YAAY,EAAE,WAAW;QACzB,QAAQ,EAAE,iBAAiB,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,iBAAiB,WAAW,CAAC,WAAW,CAAC,GAAG;QACjG,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,IAAI,CAAC,QAAQ,KAAK,SAAS;QACpC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;QACrD,2EAA2E;QAC3E,4EAA4E;QAC5E,0EAA0E;QAC1E,SAAS,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,2BAA2B,GACtC,yLAAyL,CAAC;AAE5L;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAiB,EACjB,SAAwC;IAExC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CACtC,gDAAgD,CAAC,IAAI,CAAC,CAAC,CAAC,CACzD,CAAC;IACF,yEAAyE;IACzE,qBAAqB;IACrB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAClF,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,KAAK,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,KAAK,IAAI,CAC9F,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QACrC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAmB,EAAE,CAChD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACjD,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/D,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5D,IAAI,QAAQ,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,eAAe,GAA0D;IAC7E,MAAM,EAAE,gDAAgD;IACxD,UAAU,EAAE,sCAAsC;IAClD,YAAY,EAAE,0EAA0E;IACxF,YAAY,EAAE,uEAAuE;IACrF,SAAS,EACP,sNAAsN;IACxN,QAAQ,EAAE,yBAAyB;IACnC,OAAO,EAAE,sBAAsB;IAC/B,aAAa,EACX,4NAA4N;CAC/N,CAAC;AAWF;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,MAAiB,EACjB,EAA4B,EAC5B,SAAS,GAAoC,EAAE;AAC/C,sGAAsG;AACtG,KAAK,GAAuB,EAAE,EAAE,WAAW;IAE3C,IAAI,KAAgB,CAAC;IACrB,IAAI,MAAM,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,iFAAiF;QACjF,MAAM,OAAO,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAe,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5F,CAAC;SAAM,IAAI,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,OAAoB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACzC,KAAK,GAAG,CAAC,CAAC,YAAY,CACpB,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YACnD,KAAK;YACL,uBAAuB,CACrB,KAAkB,EAClB,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EACvB,EAAE,EACF,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,CACzD;SACF,CAAC,CACH,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,uBAAuB,CAC1D,kBAAkB,EAClB,yBAAyB,EACzB,eAAe,CACa,CAAC;AAE/B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAuC,MAAS;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,qBAAqB,CAAC,QAAQ,CACxC,uGAAuG,CACxG;QACD,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,CAAC,gEAAgE,CAAC;KAC9E,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,CAAa;IAIhD,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,CAAa;IAC9C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC"}
|
|
1
|
+
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
|