@braynexservices/nigeria-mcp-core 0.3.1 → 0.3.2
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/config.d.ts +0 -5
- package/dist/config.js +0 -6
- package/dist/config.js.map +1 -1
- package/dist/http.js +0 -6
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.js +0 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/cache.d.ts +0 -4
- package/dist/lib/errors.d.ts +0 -6
- package/dist/lib/errors.js +0 -2
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/fetch.d.ts +0 -5
- package/dist/lib/fetch.js +0 -12
- package/dist/lib/fetch.js.map +1 -1
- package/dist/lib/normalize.d.ts +0 -5
- package/dist/lib/normalize.js +0 -5
- package/dist/lib/normalize.js.map +1 -1
- package/dist/providers/registry.d.ts +0 -8
- package/dist/providers/registry.js +0 -4
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/types.d.ts +0 -8
- package/dist/runtime.d.ts +0 -1
- package/dist/runtime.js +0 -5
- package/dist/runtime.js.map +1 -1
- package/dist/schemas.d.ts +0 -6
- package/dist/schemas.js +0 -11
- package/dist/schemas.js.map +1 -1
- package/dist/server.d.ts +0 -5
- package/dist/server.js +0 -8
- package/dist/server.js.map +1 -1
- package/dist/stdio.js +0 -4
- package/dist/stdio.js.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Environment configuration for the Nigeria MCP core.
|
|
3
|
-
* No hardcoded secrets — everything comes from process.env. Only SHIPPED lanes are named
|
|
4
|
-
* here (this package is published publicly); any other lane reads its own var via providerKey().
|
|
5
|
-
*/
|
|
6
1
|
export interface Config {
|
|
7
2
|
bankProvider: string;
|
|
8
3
|
fxProvider: string;
|
package/dist/config.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Environment configuration for the Nigeria MCP core.
|
|
3
|
-
* No hardcoded secrets — everything comes from process.env. Only SHIPPED lanes are named
|
|
4
|
-
* here (this package is published publicly); any other lane reads its own var via providerKey().
|
|
5
|
-
*/
|
|
6
1
|
function num(value, fallback) {
|
|
7
2
|
const n = Number(value);
|
|
8
3
|
return Number.isFinite(n) ? n : fallback;
|
|
@@ -23,7 +18,6 @@ export function loadConfig(env = process.env) {
|
|
|
23
18
|
vtpassApiKey: env.VTPASS_API_KEY,
|
|
24
19
|
vtpassPublicKey: env.VTPASS_PUBLIC_KEY,
|
|
25
20
|
vtpassSecretKey: env.VTPASS_SECRET_KEY,
|
|
26
|
-
// sandbox by default; set VTPASS_BASE_URL=https://vtpass.com/api + live keys for production
|
|
27
21
|
vtpassBaseUrl: env.VTPASS_BASE_URL ?? "https://sandbox.vtpass.com/api",
|
|
28
22
|
};
|
|
29
23
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAqBA,SAAS,GAAG,CAAC,KAAyB,EAAE,QAAgB;IACtD,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC7D,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,aAAa,IAAI,MAAM;QACzC,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,MAAM;QACrC,mBAAmB,EAAE,GAAG,CAAC,oBAAoB,IAAI,MAAM;QACvD,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,MAAM;QAC3C,OAAO,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;aAC1B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;QACzB,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC;QAChD,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;QAC1C,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,eAAe,EAAE,GAAG,CAAC,iBAAiB;QAEtC,aAAa,EAAE,GAAG,CAAC,eAAe,IAAI,gCAAgC;KACvE,CAAC;AACJ,CAAC"}
|
package/dist/http.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streamable-HTTP entrypoint — stateless, deployable. API-key auth + /health.
|
|
3
|
-
* Stateless mode (sessionIdGenerator: undefined) is simpler to scale. A fresh server +
|
|
4
|
-
* transport is created per request.
|
|
5
|
-
*/
|
|
6
1
|
import express from "express";
|
|
7
2
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
8
3
|
import { loadConfig } from "./config.js";
|
|
@@ -14,7 +9,6 @@ app.get("/health", (_req, res) => {
|
|
|
14
9
|
res.json({ status: "ok", service: "nigeria-mcp" });
|
|
15
10
|
});
|
|
16
11
|
function authorized(req) {
|
|
17
|
-
// No keys configured => open (local dev). Configure API_KEYS to enforce.
|
|
18
12
|
if (config.apiKeys.length === 0)
|
|
19
13
|
return true;
|
|
20
14
|
const fromHeader = req.header("x-api-key");
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAKA,OAAO,OAAwC,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AACtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;IAClD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,SAAS,UAAU,CAAC,GAAY;IAE9B,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,UAAU,IAAI,MAAM,CAAC;IACjC,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IACrD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG;aACA,MAAM,CAAC,GAAG,CAAC;aACX,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;IACvF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IAC3B,OAAO,CAAC,KAAK,CACX,oCAAoC,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAClG,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
package/dist/lib/cache.d.ts
CHANGED
package/dist/lib/errors.d.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Actionable errors. Tool handlers throw ToolError with a hint; buildServer converts any
|
|
3
|
-
* throw into a clean, agent-readable tool result.
|
|
4
|
-
*/
|
|
5
1
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
6
2
|
export declare class ToolError extends Error {
|
|
7
3
|
readonly hint?: string | undefined;
|
|
8
4
|
constructor(message: string, hint?: string | undefined);
|
|
9
5
|
}
|
|
10
|
-
/** Throw a not-found error with an optional next-step hint for the agent. */
|
|
11
6
|
export declare function notFound(what: string, hint?: string): never;
|
|
12
|
-
/** Convert any error into a CallToolResult with isError + a helpful message. */
|
|
13
7
|
export declare function toToolResult(err: unknown): CallToolResult;
|
package/dist/lib/errors.js
CHANGED
|
@@ -6,11 +6,9 @@ export class ToolError extends Error {
|
|
|
6
6
|
this.name = "ToolError";
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
-
/** Throw a not-found error with an optional next-step hint for the agent. */
|
|
10
9
|
export function notFound(what, hint) {
|
|
11
10
|
throw new ToolError(`${what} not found.`, hint);
|
|
12
11
|
}
|
|
13
|
-
/** Convert any error into a CallToolResult with isError + a helpful message. */
|
|
14
12
|
export function toToolResult(err) {
|
|
15
13
|
const message = err instanceof ToolError
|
|
16
14
|
? err.hint
|
package/dist/lib/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGhB;IAFlB,YACE,OAAe,EACC,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGhB;IAFlB,YACE,OAAe,EACC,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAGD,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAa;IAClD,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,aAAa,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAGD,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,MAAM,OAAO,GACX,GAAG,YAAY,SAAS;QACtB,CAAC,CAAC,GAAG,CAAC,IAAI;YACR,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE;YAC9B,CAAC,CAAC,GAAG,CAAC,OAAO;QACf,CAAC,CAAC,GAAG,YAAY,KAAK;YACpB,CAAC,CAAC,GAAG,CAAC,OAAO;YACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;QACtD,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
|
package/dist/lib/fetch.d.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
export interface FetchJsonOptions {
|
|
2
|
-
/** Human label for error messages, e.g. "Paystack". */
|
|
3
2
|
service: string;
|
|
4
|
-
/** Actionable tail appended to transient hints, e.g. "set BANK_PROVIDER=mock". */
|
|
5
3
|
fallbackHint: string;
|
|
6
|
-
/** Per-attempt timeout in ms. Default 15s. */
|
|
7
4
|
timeoutMs?: number;
|
|
8
|
-
/** Backoff (ms) before each attempt; first entry is usually 0. Default [0, 600, 1500]. */
|
|
9
5
|
backoffsMs?: number[];
|
|
10
6
|
}
|
|
11
7
|
export interface FetchJsonResult {
|
|
12
8
|
res: Response;
|
|
13
|
-
/** Parsed JSON body, or null if the response was not valid JSON. */
|
|
14
9
|
body: unknown;
|
|
15
10
|
}
|
|
16
11
|
export declare function fetchJson(url: string, init: RequestInit, opts: FetchJsonOptions): Promise<FetchJsonResult>;
|
package/dist/lib/fetch.js
CHANGED
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared fetch-with-retry used by every live adapter. Applies a per-attempt timeout and
|
|
3
|
-
* backoff-retry on TRANSIENT failures — network/timeout rejections, HTTP 429, and 5xx.
|
|
4
|
-
* (Hand-rolled retry loops in each adapter used to let a fetch() rejection escape unretried;
|
|
5
|
-
* centralizing it fixes that once.)
|
|
6
|
-
*
|
|
7
|
-
* Non-retryable responses are returned to the caller as { res, body } so each adapter keeps
|
|
8
|
-
* its own status/body policy — e.g. treat 401/403 as an auth error, or trust a provider's
|
|
9
|
-
* JSON envelope on a benign 4xx. Throws a ToolError only when all attempts are exhausted.
|
|
10
|
-
*/
|
|
11
1
|
import { ToolError } from "./errors.js";
|
|
12
2
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
13
3
|
export async function fetchJson(url, init, opts) {
|
|
@@ -15,7 +5,6 @@ export async function fetchJson(url, init, opts) {
|
|
|
15
5
|
const backoffs = opts.backoffsMs ?? [0, 600, 1500];
|
|
16
6
|
let lastError = null;
|
|
17
7
|
for (const backoff of backoffs) {
|
|
18
|
-
// Jitter so many clients retrying the same provider don't synchronize (AWS backoff guidance).
|
|
19
8
|
if (backoff)
|
|
20
9
|
await sleep(backoff + Math.floor(Math.random() * 250));
|
|
21
10
|
let res;
|
|
@@ -23,7 +12,6 @@ export async function fetchJson(url, init, opts) {
|
|
|
23
12
|
res = await fetch(url, { ...init, signal: AbortSignal.timeout(timeoutMs) });
|
|
24
13
|
}
|
|
25
14
|
catch {
|
|
26
|
-
// Timeout / DNS / connection reset — a transient we should retry, not leak raw.
|
|
27
15
|
lastError = new ToolError(`${opts.service} did not respond (network error or timeout).`, `Retried; try again shortly, or ${opts.fallbackHint}.`);
|
|
28
16
|
continue;
|
|
29
17
|
}
|
package/dist/lib/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/lib/fetch.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAmBxC,MAAM,KAAK,GAAG,CAAC,EAAU,EAAiB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,IAAiB,EACjB,IAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAEnD,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAE/B,IAAI,OAAO;YAAE,MAAM,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QAAC,MAAM,CAAC;YAEP,SAAS,GAAG,IAAI,SAAS,CACvB,GAAG,IAAI,CAAC,OAAO,8CAA8C,EAC7D,kCAAkC,IAAI,CAAC,YAAY,GAAG,CACvD,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAC5C,SAAS,GAAG,IAAI,SAAS,CACvB,GAAG,IAAI,CAAC,OAAO,yCAAyC,GAAG,CAAC,MAAM,IAAI,EACtE,kCAAkC,IAAI,CAAC,YAAY,GAAG,CACvD,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,CACJ,SAAS;QACT,IAAI,SAAS,CACX,GAAG,IAAI,CAAC,OAAO,gCAAgC,EAC/C,yBAAyB,IAAI,CAAC,YAAY,GAAG,CAC9C,CACF,CAAC;AACJ,CAAC"}
|
package/dist/lib/normalize.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Normalization helpers. Lane adapters map raw provider payloads into the schemas in
|
|
3
|
-
* schemas.ts and stamp provenance via these helpers.
|
|
4
|
-
*/
|
|
5
1
|
export declare function nowIso(): string;
|
|
6
|
-
/** Stamp source + retrievedAt onto a normalized record. */
|
|
7
2
|
export declare function stamp<T extends object>(record: T, source: string): T & {
|
|
8
3
|
source: string;
|
|
9
4
|
retrievedAt: string;
|
package/dist/lib/normalize.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Normalization helpers. Lane adapters map raw provider payloads into the schemas in
|
|
3
|
-
* schemas.ts and stamp provenance via these helpers.
|
|
4
|
-
*/
|
|
5
1
|
export function nowIso() {
|
|
6
2
|
return new Date().toISOString();
|
|
7
3
|
}
|
|
8
|
-
/** Stamp source + retrievedAt onto a normalized record. */
|
|
9
4
|
export function stamp(record, source) {
|
|
10
5
|
return { ...record, source, retrievedAt: nowIso() };
|
|
11
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/lib/normalize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/lib/normalize.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,MAAM;IACpB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAGD,MAAM,UAAU,KAAK,CACnB,MAAS,EACT,MAAc;IAEd,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC;AACtD,CAAC"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generic provider factory. Each lane builds a registry of { key -> factory } and calls
|
|
3
|
-
* selectProvider() with the env-selected key. Keeps provider selection uniform + typed.
|
|
4
|
-
*/
|
|
5
1
|
export type ProviderFactory<T> = () => T;
|
|
6
2
|
export type ProviderRegistry<T> = Record<string, ProviderFactory<T>>;
|
|
7
3
|
export declare function selectProvider<T>(kind: string, key: string, registry: ProviderRegistry<T>): T;
|
|
8
|
-
/**
|
|
9
|
-
* Read a lane's provider key straight from the environment, e.g. providerKey("FX_PROVIDER").
|
|
10
|
-
* Lets a lane select its provider without the core package having to name that lane.
|
|
11
|
-
*/
|
|
12
4
|
export declare function providerKey(envVar: string, fallback?: string): string;
|
|
@@ -6,10 +6,6 @@ export function selectProvider(kind, key, registry) {
|
|
|
6
6
|
}
|
|
7
7
|
return factory();
|
|
8
8
|
}
|
|
9
|
-
/**
|
|
10
|
-
* Read a lane's provider key straight from the environment, e.g. providerKey("FX_PROVIDER").
|
|
11
|
-
* Lets a lane select its provider without the core package having to name that lane.
|
|
12
|
-
*/
|
|
13
9
|
export function providerKey(envVar, fallback = "mock") {
|
|
14
10
|
return process.env[envVar] ?? fallback;
|
|
15
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,GAAW,EACX,QAA6B;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAC/D,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,cAAc,GAAG,iBAAiB,SAAS,yCAAyC,CACpG,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,EAAE,CAAC;AACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,GAAW,EACX,QAA6B;IAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAC/D,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,cAAc,GAAG,iBAAiB,SAAS,yCAAyC,CACpG,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,EAAE,CAAC;AACnB,CAAC;AAMD,MAAM,UAAU,WAAW,CAAC,MAAc,EAAE,QAAQ,GAAG,MAAM;IAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC;AACzC,CAAC"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The provider seam — the moat. Tools depend on these interfaces, never on a concrete
|
|
3
|
-
* provider. Selecting/swapping a provider is one env var; adding one is one new file.
|
|
4
|
-
* This package is published publicly: it carries interfaces for the lanes it ships with.
|
|
5
|
-
*/
|
|
6
1
|
import type { NormalizedBankAccount, FxRate, NormalizedMeter, NormalizedTradeFlow, NormalizedHsCode } from "../schemas.js";
|
|
7
2
|
export interface BankRef {
|
|
8
3
|
name: string;
|
|
@@ -21,13 +16,11 @@ export interface Disco {
|
|
|
21
16
|
code: string;
|
|
22
17
|
name: string;
|
|
23
18
|
}
|
|
24
|
-
/** Electricity meter provider. READ-ONLY by design — no pay/recharge methods (NERC/CBN/AML). */
|
|
25
19
|
export interface MeterProvider {
|
|
26
20
|
readonly name: string;
|
|
27
21
|
validate(meterNumber: string, disco: string, meterType: string): Promise<NormalizedMeter>;
|
|
28
22
|
listDiscos(): Promise<Disco[]>;
|
|
29
23
|
}
|
|
30
|
-
/** Query for trade statistics. `commodity` is an HS code OR an aggregation level keyword. */
|
|
31
24
|
export interface TradeStatsQuery {
|
|
32
25
|
flow: string;
|
|
33
26
|
partner?: string;
|
|
@@ -36,7 +29,6 @@ export interface TradeStatsQuery {
|
|
|
36
29
|
frequency?: string;
|
|
37
30
|
month?: number;
|
|
38
31
|
}
|
|
39
|
-
/** Trade-intelligence provider. Wrap OPEN global APIs (UN Comtrade, WITS) — not NICIS II. */
|
|
40
32
|
export interface TradeProvider {
|
|
41
33
|
readonly name: string;
|
|
42
34
|
tradeStats(query: TradeStatsQuery): Promise<NormalizedTradeFlow[]>;
|
package/dist/runtime.d.ts
CHANGED
package/dist/runtime.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transport runners. Lanes call startStdio() with their tools so they never import the
|
|
3
|
-
* MCP SDK transport directly — all SDK wiring stays in core.
|
|
4
|
-
*/
|
|
5
1
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
6
2
|
import { buildServer } from "./server.js";
|
|
7
|
-
/** Build a server from the given tools and serve it over stdio (local use). */
|
|
8
3
|
export async function startStdio(tools, opts = {}) {
|
|
9
4
|
const server = buildServer(tools, opts);
|
|
10
5
|
const transport = new StdioServerTransport();
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAyC,MAAM,aAAa,CAAC;AAGjF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAgB,EAAE,OAA2B,EAAE;IAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,aAAa,sBAAsB,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;AAC3F,CAAC"}
|
package/dist/schemas.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Normalized, agent-facing data contracts. The SAME shape is returned regardless of
|
|
3
|
-
* which upstream provider served the request — this stability is the product.
|
|
4
|
-
* This package is published publicly: it carries contracts for the lanes it ships with.
|
|
5
|
-
*/
|
|
6
1
|
import { z } from "zod";
|
|
7
|
-
/** Provenance fields stamped onto every normalized record. */
|
|
8
2
|
export declare const Provenance: {
|
|
9
3
|
source: z.ZodString;
|
|
10
4
|
retrievedAt: z.ZodString;
|
package/dist/schemas.js
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Normalized, agent-facing data contracts. The SAME shape is returned regardless of
|
|
3
|
-
* which upstream provider served the request — this stability is the product.
|
|
4
|
-
* This package is published publicly: it carries contracts for the lanes it ships with.
|
|
5
|
-
*/
|
|
6
1
|
import { z } from "zod";
|
|
7
|
-
/** Provenance fields stamped onto every normalized record. */
|
|
8
2
|
export const Provenance = {
|
|
9
3
|
source: z.string().describe("Which provider/source served this record (e.g. 'mock', 'public', 'mono')"),
|
|
10
4
|
retrievedAt: z.string().describe("ISO-8601 timestamp when the record was fetched"),
|
|
11
5
|
};
|
|
12
|
-
// ---------- Bank ----------
|
|
13
6
|
export const NormalizedBankAccount = z.object({
|
|
14
7
|
accountNumber: z.string().describe("10-digit NUBAN"),
|
|
15
8
|
accountName: z.string().describe("Registered account holder name"),
|
|
@@ -17,7 +10,6 @@ export const NormalizedBankAccount = z.object({
|
|
|
17
10
|
bankName: z.string().optional(),
|
|
18
11
|
...Provenance,
|
|
19
12
|
});
|
|
20
|
-
// ---------- FX ----------
|
|
21
13
|
export const FxRate = z.object({
|
|
22
14
|
base: z.string().describe("Base currency, e.g. NGN"),
|
|
23
15
|
quote: z.string().describe("Quote currency, e.g. USD"),
|
|
@@ -25,8 +17,6 @@ export const FxRate = z.object({
|
|
|
25
17
|
market: z.enum(["official", "parallel"]).describe("Official (CBN) or parallel ('aboki') market"),
|
|
26
18
|
...Provenance,
|
|
27
19
|
});
|
|
28
|
-
// ---------- Electricity / meter validation (READ-ONLY) ----------
|
|
29
|
-
// Validation/info only — never payment execution (NERC/CBN/AML). Customer PII not persisted.
|
|
30
20
|
export const NormalizedMeter = z.object({
|
|
31
21
|
meterNumber: z.string().describe("Electricity meter number"),
|
|
32
22
|
customerName: z.string().nullable().optional().describe("Registered customer name (PII — pass-through)"),
|
|
@@ -35,7 +25,6 @@ export const NormalizedMeter = z.object({
|
|
|
35
25
|
meterType: z.string().describe("prepaid | postpaid"),
|
|
36
26
|
...Provenance,
|
|
37
27
|
});
|
|
38
|
-
// ---------- Trade intelligence (public macro data, no PII) ----------
|
|
39
28
|
export const NormalizedTradeFlow = z.object({
|
|
40
29
|
reporter: z.string().describe("Reporting country, e.g. Nigeria"),
|
|
41
30
|
partner: z.string().describe("Trade partner country"),
|
package/dist/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transport-agnostic MCP server builder. Lanes hand buildServer() an array of ToolDefs;
|
|
3
|
-
* stdio.ts and http.ts wrap the result in a transport.
|
|
4
|
-
*/
|
|
5
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
2
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
7
3
|
import { type ZodRawShape } from "zod";
|
|
@@ -25,5 +21,4 @@ export interface BuildServerOptions {
|
|
|
25
21
|
version?: string;
|
|
26
22
|
}
|
|
27
23
|
export declare function buildServer(tools: ToolDef[], opts?: BuildServerOptions): McpServer;
|
|
28
|
-
/** Throwaway health tool used to smoke-test transports. Safe to keep; harmless. */
|
|
29
24
|
export declare const pingTool: ToolDef;
|
package/dist/server.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transport-agnostic MCP server builder. Lanes hand buildServer() an array of ToolDefs;
|
|
3
|
-
* stdio.ts and http.ts wrap the result in a transport.
|
|
4
|
-
*/
|
|
5
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
2
|
import { z } from "zod";
|
|
7
3
|
import { toToolResult } from "./lib/errors.js";
|
|
@@ -17,10 +13,7 @@ export function buildServer(tools, opts = {}) {
|
|
|
17
13
|
description: tool.description,
|
|
18
14
|
inputSchema: tool.inputSchema,
|
|
19
15
|
outputSchema: tool.outputSchema,
|
|
20
|
-
// Lookup tools are read-only and talk to the outside world by default.
|
|
21
16
|
annotations: { readOnlyHint: true, openWorldHint: true, ...tool.annotations },
|
|
22
|
-
// Cast at the SDK boundary: the generic ties the callback to the inferred schema,
|
|
23
|
-
// but our ToolDef handler uses a uniform Record signature.
|
|
24
17
|
}, (async (args) => {
|
|
25
18
|
try {
|
|
26
19
|
return await tool.handler(args ?? {});
|
|
@@ -32,7 +25,6 @@ export function buildServer(tools, opts = {}) {
|
|
|
32
25
|
}
|
|
33
26
|
return server;
|
|
34
27
|
}
|
|
35
|
-
/** Throwaway health tool used to smoke-test transports. Safe to keep; harmless. */
|
|
36
28
|
export const pingTool = {
|
|
37
29
|
name: "ping",
|
|
38
30
|
title: "Ping",
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,CAAC,EAAoB,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAwB5C,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,OAA2B,EAAE;IACzE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,aAAa;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;KACjC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,YAAY,CACjB,IAAI,CAAC,IAAI,EACT;YACE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI;YAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAE/B,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;SAGlC,EAC7C,CAAC,KAAK,EAAE,IAA6B,EAAE,EAAE;YACvC,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAA6C,CAC/C,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,MAAM,CAAC,MAAM,QAAQ,GAAY;IAC/B,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,kDAAkD;IAC/D,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;IACrD,OAAO,EAAE,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;YACnD,iBAAiB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;SACxC,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/dist/stdio.js
CHANGED
package/dist/stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@braynexservices/nigeria-mcp-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Core runtime for the Nigeria MCP data-lane servers: MCP server builder, normalized Zod schemas, typed provider seam, and shared fetch/cache/error helpers.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|