@nifrajs/cli 3.1.0 → 3.2.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 +10 -0
- package/dist/assure-hydration.d.ts.map +1 -1
- package/dist/assure-hydration.js +6 -1
- package/dist/assure-hydration.js.map +1 -1
- package/dist/assure.d.ts.map +1 -1
- package/dist/assure.js +3 -2
- package/dist/assure.js.map +1 -1
- package/dist/check-diagnostics.d.ts +165 -0
- package/dist/check-diagnostics.d.ts.map +1 -0
- package/dist/check-diagnostics.js +1009 -0
- package/dist/check-diagnostics.js.map +1 -0
- package/dist/check-scan.d.ts +245 -0
- package/dist/check-scan.d.ts.map +1 -0
- package/dist/check-scan.js +1599 -0
- package/dist/check-scan.js.map +1 -0
- package/dist/check.d.ts +4 -324
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +8 -2366
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +247 -10
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.d.ts +21 -1
- package/dist/command-catalog.d.ts.map +1 -1
- package/dist/command-catalog.js +122 -0
- package/dist/command-catalog.js.map +1 -1
- package/dist/env-file.js +5 -5
- package/dist/env-file.js.map +1 -1
- package/dist/frontend-guidance.d.ts +57 -0
- package/dist/frontend-guidance.d.ts.map +1 -0
- package/dist/frontend-guidance.js +195 -0
- package/dist/frontend-guidance.js.map +1 -0
- package/dist/levels-tool.d.ts.map +1 -1
- package/dist/levels-tool.js +6 -0
- package/dist/levels-tool.js.map +1 -1
- package/dist/load.d.ts.map +1 -1
- package/dist/load.js +4 -1
- package/dist/load.js.map +1 -1
- package/dist/mcp-context.d.ts +48 -0
- package/dist/mcp-context.d.ts.map +1 -0
- package/dist/mcp-context.js +215 -0
- package/dist/mcp-context.js.map +1 -0
- package/dist/mcp-docs-tools.d.ts.map +1 -1
- package/dist/mcp-docs-tools.js +31 -0
- package/dist/mcp-docs-tools.js.map +1 -1
- package/dist/mcp-exec.d.ts +74 -0
- package/dist/mcp-exec.d.ts.map +1 -0
- package/dist/mcp-exec.js +844 -0
- package/dist/mcp-exec.js.map +1 -0
- package/dist/mcp-http.js +1 -1
- package/dist/mcp-io.d.ts +26 -0
- package/dist/mcp-io.d.ts.map +1 -0
- package/dist/mcp-io.js +100 -0
- package/dist/mcp-io.js.map +1 -0
- package/dist/mcp-reflect.d.ts +16 -0
- package/dist/mcp-reflect.d.ts.map +1 -0
- package/dist/mcp-reflect.js +101 -0
- package/dist/mcp-reflect.js.map +1 -0
- package/dist/mcp-root.d.ts +7 -0
- package/dist/mcp-root.d.ts.map +1 -1
- package/dist/mcp-root.js +51 -3
- package/dist/mcp-root.js.map +1 -1
- package/dist/mcp.d.ts +10 -92
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +13 -1232
- package/dist/mcp.js.map +1 -1
- package/dist/openapi-tool.d.ts +5 -10
- package/dist/openapi-tool.d.ts.map +1 -1
- package/dist/openapi-tool.js +21 -2
- package/dist/openapi-tool.js.map +1 -1
- package/dist/openapi-types.d.ts +21 -0
- package/dist/openapi-types.d.ts.map +1 -0
- package/dist/openapi-types.js +214 -0
- package/dist/openapi-types.js.map +1 -0
- package/dist/port.d.ts.map +1 -1
- package/dist/port.js +2 -1
- package/dist/port.js.map +1 -1
- package/dist/project-facts.d.ts +2 -1
- package/dist/project-facts.d.ts.map +1 -1
- package/dist/project-facts.js.map +1 -1
- package/dist/release-verification.d.ts +4 -1
- package/dist/release-verification.d.ts.map +1 -1
- package/dist/release-verification.js +6 -138
- package/dist/release-verification.js.map +1 -1
- package/dist/rules/codes.d.ts +4 -0
- package/dist/rules/codes.d.ts.map +1 -1
- package/dist/rules/codes.js +4 -0
- package/dist/rules/codes.js.map +1 -1
- package/dist/rules/islands.d.ts +4 -0
- package/dist/rules/islands.d.ts.map +1 -0
- package/dist/rules/islands.js +155 -0
- package/dist/rules/islands.js.map +1 -0
- package/dist/rules/nano.d.ts +6 -0
- package/dist/rules/nano.d.ts.map +1 -0
- package/dist/rules/nano.js +264 -0
- package/dist/rules/nano.js.map +1 -0
- package/dist/rules/security.d.ts.map +1 -1
- package/dist/rules/security.js +38 -4
- package/dist/rules/security.js.map +1 -1
- package/dist/scaffold.d.ts +12 -6
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +149 -10
- package/dist/scaffold.js.map +1 -1
- package/dist/search-terms.d.ts.map +1 -1
- package/dist/search-terms.js +5 -3
- package/dist/search-terms.js.map +1 -1
- package/dist/stylex-migrate.d.ts +38 -0
- package/dist/stylex-migrate.d.ts.map +1 -0
- package/dist/stylex-migrate.js +1052 -0
- package/dist/stylex-migrate.js.map +1 -0
- package/dist/sync-manifest.d.ts.map +1 -1
- package/dist/sync-manifest.js +2 -1
- package/dist/sync-manifest.js.map +1 -1
- package/dist/verification-plan.d.ts +24 -0
- package/dist/verification-plan.d.ts.map +1 -0
- package/dist/verification-plan.js +116 -0
- package/dist/verification-plan.js.map +1 -0
- package/dist/work-graph.d.ts.map +1 -1
- package/dist/work-graph.js +6 -3
- package/dist/work-graph.js.map +1 -1
- package/docs/examples.json +36 -0
- package/docs/llms-full.txt +1226 -14
- package/docs/types.json +4185 -87
- package/package.json +9 -9
- package/src/assure-hydration.ts +6 -1
- package/src/assure.ts +4 -2
- package/src/check-diagnostics.ts +1219 -0
- package/src/check-scan.ts +1825 -0
- package/src/check.ts +47 -2752
- package/src/cli.ts +252 -10
- package/src/command-catalog.ts +155 -0
- package/src/env-file.ts +5 -5
- package/src/frontend-guidance.ts +259 -0
- package/src/levels-tool.ts +6 -0
- package/src/load.ts +4 -1
- package/src/mcp-context.ts +266 -0
- package/src/mcp-docs-tools.ts +37 -0
- package/src/mcp-exec.ts +1040 -0
- package/src/mcp-http.ts +1 -1
- package/src/mcp-io.ts +118 -0
- package/src/mcp-reflect.ts +140 -0
- package/src/mcp-root.ts +62 -4
- package/src/mcp.ts +61 -1511
- package/src/openapi-tool.ts +32 -2
- package/src/openapi-types.ts +261 -0
- package/src/port.ts +2 -1
- package/src/project-facts.ts +2 -4
- package/src/release-verification.ts +22 -164
- package/src/rules/codes.ts +4 -0
- package/src/rules/islands.ts +171 -0
- package/src/rules/nano.ts +295 -0
- package/src/rules/security.ts +40 -4
- package/src/scaffold.ts +169 -9
- package/src/search-terms.ts +7 -3
- package/src/stylex-migrate.ts +1139 -0
- package/src/sync-manifest.ts +2 -1
- package/src/verification-plan.ts +242 -0
- package/src/work-graph.ts +6 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-exec.js","sourceRoot":"","sources":["../src/mcp-exec.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-http.js
CHANGED
|
@@ -23,7 +23,7 @@ import { loadTypesCorpus } from "./types-search.js";
|
|
|
23
23
|
export { examplesAppTool, examplesWidget } from "./mcp-app-tool.js";
|
|
24
24
|
export { docsTools } from "./mcp-docs-tools.js";
|
|
25
25
|
// Kept in lockstep with packages/cli/package.json by check:publish's version-consistency gate.
|
|
26
|
-
const VERSION = "3.
|
|
26
|
+
const VERSION = "3.2.0";
|
|
27
27
|
const SERVER_INFO = { name: "nifra-docs", version: VERSION };
|
|
28
28
|
// Derive the GET/health tool list from the tools actually served, so the line can never drift from them.
|
|
29
29
|
const docsHealth = (tools) => `nifra docs MCP - POST JSON-RPC 2.0 here (methods: initialize, tools/list, tools/call). Tools: ${tools
|
package/dist/mcp-io.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport-neutral bounded I/O for project MCP tools.
|
|
3
|
+
*
|
|
4
|
+
* HTTP docs and verification WebSocket transport keep their own adapters; stdio/run/render share only
|
|
5
|
+
* these limits and stream readers so an untrusted local endpoint or child process cannot exhaust MCP.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CHILD_TIMEOUT_MS = 30000;
|
|
8
|
+
/** Maximum stdout or stderr retained from a project subprocess. The process is killed at the limit. */
|
|
9
|
+
export declare const CHILD_OUTPUT_MAX_BYTES = 1048576;
|
|
10
|
+
/** Local dev-tool reads are intentionally bounded: MCP runs in an agent process and must not hang on or
|
|
11
|
+
* buffer an unrelated loopback service just because a caller supplied its port. */
|
|
12
|
+
export declare const LOCAL_TOOL_FETCH_TIMEOUT_MS = 2000;
|
|
13
|
+
export declare const LOCAL_TOOL_MAX_RESPONSE_BYTES = 1048576;
|
|
14
|
+
/** Accept only a concrete TCP port. Port 0 (bind-any-free-port) is not a valid read target. */
|
|
15
|
+
export declare function validateLocalPort(port: unknown): number | undefined;
|
|
16
|
+
/** Read a dev-tool response without allowing an untrusted localhost service to allocate unbounded memory. */
|
|
17
|
+
export declare function readBoundedResponse(response: Response, maxBytes?: number): Promise<string>;
|
|
18
|
+
export declare const notNifraResponse: (service: string) => string;
|
|
19
|
+
export declare const timeoutMessage: (label: string, ms: number) => string;
|
|
20
|
+
export interface BoundedOutput {
|
|
21
|
+
readonly text: string;
|
|
22
|
+
readonly truncated: boolean;
|
|
23
|
+
}
|
|
24
|
+
/** Read child output incrementally and cancel as soon as the byte budget is crossed. */
|
|
25
|
+
export declare function readBoundedStream(stream: ReadableStream<Uint8Array>, maxBytes?: number, onLimit?: () => void): Promise<BoundedOutput>;
|
|
26
|
+
//# sourceMappingURL=mcp-io.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-io.d.ts","sourceRoot":"","sources":["../src/mcp-io.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,QAAS,CAAA;AACtC,uGAAuG;AACvG,eAAO,MAAM,sBAAsB,UAAY,CAAA;AAE/C;mFACmF;AACnF,eAAO,MAAM,2BAA2B,OAAQ,CAAA;AAChD,eAAO,MAAM,6BAA6B,UAAY,CAAA;AAEtD,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAED,6GAA6G;AAC7G,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,SAAgC,GACvC,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAQhD,CAAA;AAEH,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,IAAI,MAAM,KAAG,MAIqC,CAAA;AAEhG,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAC5B;AAED,wFAAwF;AACxF,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,QAAQ,SAAyB,EACjC,OAAO,CAAC,EAAE,MAAM,IAAI,GACnB,OAAO,CAAC,aAAa,CAAC,CA6BxB"}
|
package/dist/mcp-io.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transport-neutral bounded I/O for project MCP tools.
|
|
3
|
+
*
|
|
4
|
+
* HTTP docs and verification WebSocket transport keep their own adapters; stdio/run/render share only
|
|
5
|
+
* these limits and stream readers so an untrusted local endpoint or child process cannot exhaust MCP.
|
|
6
|
+
*/
|
|
7
|
+
export const CHILD_TIMEOUT_MS = 30_000;
|
|
8
|
+
/** Maximum stdout or stderr retained from a project subprocess. The process is killed at the limit. */
|
|
9
|
+
export const CHILD_OUTPUT_MAX_BYTES = 1_048_576;
|
|
10
|
+
/** Local dev-tool reads are intentionally bounded: MCP runs in an agent process and must not hang on or
|
|
11
|
+
* buffer an unrelated loopback service just because a caller supplied its port. */
|
|
12
|
+
export const LOCAL_TOOL_FETCH_TIMEOUT_MS = 2_000;
|
|
13
|
+
export const LOCAL_TOOL_MAX_RESPONSE_BYTES = 1_048_576;
|
|
14
|
+
/** Accept only a concrete TCP port. Port 0 (bind-any-free-port) is not a valid read target. */
|
|
15
|
+
export function validateLocalPort(port) {
|
|
16
|
+
return typeof port === "number" && Number.isInteger(port) && port >= 1 && port <= 65_535
|
|
17
|
+
? port
|
|
18
|
+
: undefined;
|
|
19
|
+
}
|
|
20
|
+
/** Read a dev-tool response without allowing an untrusted localhost service to allocate unbounded memory. */
|
|
21
|
+
export async function readBoundedResponse(response, maxBytes = LOCAL_TOOL_MAX_RESPONSE_BYTES) {
|
|
22
|
+
const declared = response.headers.get("content-length");
|
|
23
|
+
if (declared !== null) {
|
|
24
|
+
const length = Number(declared);
|
|
25
|
+
if (Number.isFinite(length) && length > maxBytes)
|
|
26
|
+
throw new Error("response exceeded the size limit");
|
|
27
|
+
}
|
|
28
|
+
if (response.body === null)
|
|
29
|
+
return "";
|
|
30
|
+
const reader = response.body.getReader();
|
|
31
|
+
const chunks = [];
|
|
32
|
+
let total = 0;
|
|
33
|
+
try {
|
|
34
|
+
for (;;) {
|
|
35
|
+
const { done, value } = await reader.read();
|
|
36
|
+
if (done)
|
|
37
|
+
break;
|
|
38
|
+
if (value === undefined)
|
|
39
|
+
continue;
|
|
40
|
+
total += value.byteLength;
|
|
41
|
+
if (total > maxBytes) {
|
|
42
|
+
await reader.cancel();
|
|
43
|
+
throw new Error("response exceeded the size limit");
|
|
44
|
+
}
|
|
45
|
+
chunks.push(value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
reader.releaseLock();
|
|
50
|
+
}
|
|
51
|
+
const bytes = new Uint8Array(total);
|
|
52
|
+
let offset = 0;
|
|
53
|
+
for (const chunk of chunks) {
|
|
54
|
+
bytes.set(chunk, offset);
|
|
55
|
+
offset += chunk.byteLength;
|
|
56
|
+
}
|
|
57
|
+
return new TextDecoder().decode(bytes);
|
|
58
|
+
}
|
|
59
|
+
export const notNifraResponse = (service) => JSON.stringify({
|
|
60
|
+
code: "NIFRA_NOT_DEV_SERVER",
|
|
61
|
+
message: `The service on this port is not a Nifra ${service} endpoint.`,
|
|
62
|
+
}, null, 2);
|
|
63
|
+
export const timeoutMessage = (label, ms) => `${label} timed out after ${ms / 1000}s and was terminated.\n` +
|
|
64
|
+
`The app was loaded but the process did not finish. Most often this is a module-level side effect ` +
|
|
65
|
+
`that keeps the event loop alive (a database pool, a Redis client, an interval) opened during import ` +
|
|
66
|
+
`rather than lazily. Check for top-level connections in the app entry or anything it imports.`;
|
|
67
|
+
/** Read child output incrementally and cancel as soon as the byte budget is crossed. */
|
|
68
|
+
export async function readBoundedStream(stream, maxBytes = CHILD_OUTPUT_MAX_BYTES, onLimit) {
|
|
69
|
+
const reader = stream.getReader();
|
|
70
|
+
const decoder = new TextDecoder();
|
|
71
|
+
const chunks = [];
|
|
72
|
+
let totalBytes = 0;
|
|
73
|
+
try {
|
|
74
|
+
for (;;) {
|
|
75
|
+
const { done, value } = await reader.read();
|
|
76
|
+
if (done) {
|
|
77
|
+
chunks.push(decoder.decode());
|
|
78
|
+
return { text: chunks.join(""), truncated: false };
|
|
79
|
+
}
|
|
80
|
+
if (value === undefined)
|
|
81
|
+
continue;
|
|
82
|
+
const remaining = maxBytes - totalBytes;
|
|
83
|
+
if (remaining <= 0 || value.byteLength > remaining) {
|
|
84
|
+
if (remaining > 0) {
|
|
85
|
+
chunks.push(decoder.decode(value.subarray(0, remaining), { stream: true }));
|
|
86
|
+
chunks.push(decoder.decode());
|
|
87
|
+
}
|
|
88
|
+
await reader.cancel();
|
|
89
|
+
onLimit?.();
|
|
90
|
+
return { text: chunks.join(""), truncated: true };
|
|
91
|
+
}
|
|
92
|
+
totalBytes += value.byteLength;
|
|
93
|
+
chunks.push(decoder.decode(value, { stream: true }));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
reader.releaseLock();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=mcp-io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-io.js","sourceRoot":"","sources":["../src/mcp-io.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AACtC,uGAAuG;AACvG,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAA;AAE/C;mFACmF;AACnF,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,CAAA;AAChD,MAAM,CAAC,MAAM,6BAA6B,GAAG,SAAS,CAAA;AAEtD,+FAA+F;AAC/F,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM;QACtF,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,6GAA6G;AAC7G,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAkB,EAClB,QAAQ,GAAG,6BAA6B;IAExC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACvD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,QAAQ;YAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;IACxC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI;gBAAE,MAAK;YACf,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAQ;YACjC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAA;YACzB,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;gBACrB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;YACrD,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACxB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAU,EAAE,CAC1D,IAAI,CAAC,SAAS,CACZ;IACE,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,2CAA2C,OAAO,YAAY;CACxE,EACD,IAAI,EACJ,CAAC,CACF,CAAA;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAU,EAAU,EAAE,CAClE,GAAG,KAAK,oBAAoB,EAAE,GAAG,IAAI,yBAAyB;IAC9D,mGAAmG;IACnG,sGAAsG;IACtG,8FAA8F,CAAA;AAOhG,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAkC,EAClC,QAAQ,GAAG,sBAAsB,EACjC,OAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;IACjC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,CAAC;QACH,SAAS,CAAC;YACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;YAC3C,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;YACpD,CAAC;YACD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAQ;YACjC,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA;YACvC,IAAI,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC;gBACnD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;oBAC3E,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;gBAC/B,CAAC;gBACD,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;gBACrB,OAAO,EAAE,EAAE,CAAA;gBACX,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;YACnD,CAAC;YACD,UAAU,IAAI,KAAK,CAAC,UAAU,CAAA;YAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend reflection adapters for the project MCP surface.
|
|
3
|
+
*
|
|
4
|
+
* These functions only translate reflected Nifra declarations into MCP descriptors. They do not know
|
|
5
|
+
* about stdio, HTTP, root trust, or project loading, so the reflection seam is independently testable.
|
|
6
|
+
*/
|
|
7
|
+
import type { McpPrompt, McpResource, McpTool } from "./mcp-protocol.js";
|
|
8
|
+
/** Extract tools registered via .tool() routes on the Nifra backend. Exported for the test that proves a
|
|
9
|
+
* `server().tool()` route surfaces in `tools/list` and executes through `tools/call`. */
|
|
10
|
+
export declare function extractBackendTools(backend: unknown): McpTool[];
|
|
11
|
+
/** Extract MCP resources registered via `.resource()` on the Nifra backend. Exported for the surfacing test. */
|
|
12
|
+
export declare function extractBackendResources(backend: unknown): McpResource[];
|
|
13
|
+
/** Extract MCP prompts registered via `.prompt()` on the Nifra backend. Exported for the surfacing test. */
|
|
14
|
+
export declare function extractBackendPrompts(backend: unknown): McpPrompt[];
|
|
15
|
+
/** Prefix every tool name and resource URI for a named app in a monorepo. */
|
|
16
|
+
//# sourceMappingURL=mcp-reflect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-reflect.d.ts","sourceRoot":"","sources":["../src/mcp-reflect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EACX,OAAO,EAER,MAAM,mBAAmB,CAAA;AAO1B;yFACyF;AACzF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAoD/D;AAYD,gHAAgH;AAChH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,CAqBvE;AAWD,4GAA4G;AAC5G,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,EAAE,CAgBnE;AAED,6EAA6E"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backend reflection adapters for the project MCP surface.
|
|
3
|
+
*
|
|
4
|
+
* These functions only translate reflected Nifra declarations into MCP descriptors. They do not know
|
|
5
|
+
* about stdio, HTTP, root trust, or project loading, so the reflection seam is independently testable.
|
|
6
|
+
*/
|
|
7
|
+
import { reflectRoutes } from "@nifrajs/core/reflection";
|
|
8
|
+
/** Extract tools registered via .tool() routes on the Nifra backend. Exported for the test that proves a
|
|
9
|
+
* `server().tool()` route surfaces in `tools/list` and executes through `tools/call`. */
|
|
10
|
+
export function extractBackendTools(backend) {
|
|
11
|
+
const b = backend;
|
|
12
|
+
if (!b || typeof b.routes !== "function")
|
|
13
|
+
return [];
|
|
14
|
+
const routes = reflectRoutes(b);
|
|
15
|
+
return routes
|
|
16
|
+
.filter((r) => r.schema !== undefined && r.tool !== undefined)
|
|
17
|
+
.map((r) => {
|
|
18
|
+
const toolInfo = r.tool;
|
|
19
|
+
const s = r.schema;
|
|
20
|
+
return {
|
|
21
|
+
name: toolInfo.name,
|
|
22
|
+
description: toolInfo.description,
|
|
23
|
+
inputSchema: (s.body?.jsonSchema ?? {
|
|
24
|
+
type: "object",
|
|
25
|
+
properties: {},
|
|
26
|
+
}),
|
|
27
|
+
...(toolInfo.annotations !== undefined ? { annotations: toolInfo.annotations } : {}),
|
|
28
|
+
handler: async (args) => {
|
|
29
|
+
const res = await b.fetch(new Request(`http://localhost/_nifra/tool/${toolInfo.name}`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: { "content-type": "application/json" },
|
|
32
|
+
body: JSON.stringify(args),
|
|
33
|
+
}));
|
|
34
|
+
if (!res.ok) {
|
|
35
|
+
const text = await res.text();
|
|
36
|
+
throw new Error(`Tool execution failed (${res.status}): ${text}`);
|
|
37
|
+
}
|
|
38
|
+
const body = await res.json();
|
|
39
|
+
if (typeof body === "string")
|
|
40
|
+
return body;
|
|
41
|
+
if (body && typeof body === "object") {
|
|
42
|
+
if ("content" in body || "structuredContent" in body) {
|
|
43
|
+
return body;
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
content: [{ type: "text", text: JSON.stringify(body, null, 2) }],
|
|
47
|
+
structuredContent: body,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return String(body);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/** Extract MCP resources registered via `.resource()` on the Nifra backend. Exported for the surfacing test. */
|
|
56
|
+
export function extractBackendResources(backend) {
|
|
57
|
+
const b = backend;
|
|
58
|
+
if (!b || typeof b.mcpResources !== "function")
|
|
59
|
+
return [];
|
|
60
|
+
let list;
|
|
61
|
+
try {
|
|
62
|
+
list = b.mcpResources();
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
return list.map((r) => ({
|
|
68
|
+
uri: r.uri,
|
|
69
|
+
name: r.name,
|
|
70
|
+
...(r.description !== undefined ? { description: r.description } : {}),
|
|
71
|
+
...(r.mimeType !== undefined ? { mimeType: r.mimeType } : {}),
|
|
72
|
+
read: async () => {
|
|
73
|
+
const out = await r.read();
|
|
74
|
+
if (typeof out === "string")
|
|
75
|
+
return { text: out };
|
|
76
|
+
const o = out;
|
|
77
|
+
return o.mimeType !== undefined ? { text: o.text, mimeType: o.mimeType } : { text: o.text };
|
|
78
|
+
},
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
/** Extract MCP prompts registered via `.prompt()` on the Nifra backend. Exported for the surfacing test. */
|
|
82
|
+
export function extractBackendPrompts(backend) {
|
|
83
|
+
const b = backend;
|
|
84
|
+
if (!b || typeof b.mcpPrompts !== "function")
|
|
85
|
+
return [];
|
|
86
|
+
let list;
|
|
87
|
+
try {
|
|
88
|
+
list = b.mcpPrompts();
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
return list.map((p) => ({
|
|
94
|
+
name: p.name,
|
|
95
|
+
description: p.description,
|
|
96
|
+
...(p.arguments !== undefined ? { arguments: p.arguments } : {}),
|
|
97
|
+
handler: async (args) => (await p.handler(args)),
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
/** Prefix every tool name and resource URI for a named app in a monorepo. */
|
|
101
|
+
//# sourceMappingURL=mcp-reflect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-reflect.js","sourceRoot":"","sources":["../src/mcp-reflect.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-root.d.ts
CHANGED
|
@@ -80,4 +80,11 @@ export declare const driftNote: (drift: ToolingDrift) => string;
|
|
|
80
80
|
* the version sprawl is invisible because every answer still looks authoritative.
|
|
81
81
|
*/
|
|
82
82
|
export declare function detectToolingDrift(root: string, cliVersion: string): Promise<ToolingDrift | undefined>;
|
|
83
|
+
/**
|
|
84
|
+
* Wrap project-scoped tools with root trust. A bad root refuses in-band; a good root stamps every
|
|
85
|
+
* result so the agent can see which project answered. Docs tools pass through untouched.
|
|
86
|
+
*/
|
|
87
|
+
export declare function guardTools(tools: import("./mcp-protocol.js").McpTool[], verdict: McpRootVerdict): import("./mcp-protocol.js").McpTool[];
|
|
88
|
+
/** Whether the client's initialize params declare the roots capability. */
|
|
89
|
+
export declare function clientSupportsRoots(params: Record<string, unknown> | undefined): boolean;
|
|
83
90
|
//# sourceMappingURL=mcp-root.d.ts.map
|
package/dist/mcp-root.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-root.d.ts","sourceRoot":"","sources":["../src/mcp-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;yGACyG;AACzG,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B;uFACmF;IACnF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;CAC/C;AAED;;sDAEsD;AACtD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBrE;AAED,sFAAsF;AACtF,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQzE;AAED;wEACwE;AACxE,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAED;qEACqE;AACrE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp-root.d.ts","sourceRoot":"","sources":["../src/mcp-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;yGACyG;AACzG,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEpE,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B;uFACmF;IACnF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAA;CAC/C;AAED;;sDAEsD;AACtD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBrE;AAED,sFAAsF;AACtF,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQzE;AAED;wEACwE;AACxE,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAED;qEACqE;AACrE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAwB9D;AAUD;;0EAE0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAKzD;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,YAAY,CAAC,CAavB;AAED;oBACoB;AACpB,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIjF;AAMD;oGACoG;AACpG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAiC9E;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,MAAM,CAKlF;AAED,gGAAgG;AAChG,MAAM,WAAW,YAAY;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,gGAAgG;IAChG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED;wGACwG;AACxG,eAAO,MAAM,SAAS,GAAI,OAAO,YAAY,KAAG,MAGyF,CAAA;AA0BzI;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CASnC;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,OAAO,mBAAmB,EAAE,OAAO,EAAE,EAC5C,OAAO,EAAE,cAAc,GACtB,OAAO,mBAAmB,EAAE,OAAO,EAAE,CAwBvC;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,OAAO,CAKxF"}
|
package/dist/mcp-root.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Everything here is pure state + fs probes; the I/O wiring lives in `./mcp.ts`.
|
|
15
15
|
*/
|
|
16
16
|
import { readFile } from "node:fs/promises";
|
|
17
|
-
import { dirname, sep } from "node:path";
|
|
17
|
+
import { dirname, isAbsolute, relative, resolve, sep } from "node:path";
|
|
18
18
|
import { fileURLToPath } from "node:url";
|
|
19
19
|
/** A directory is a nifra project when its `package.json` depends on any `@nifrajs/*` package, or it
|
|
20
20
|
* is a `nifra.config.ts` monorepo root. Backend-only projects (no web config, no `routes/`) count -
|
|
@@ -86,7 +86,14 @@ export function pathsFromRootsResult(result) {
|
|
|
86
86
|
if (typeof uri !== "string" || !uri.startsWith("file://"))
|
|
87
87
|
continue;
|
|
88
88
|
try {
|
|
89
|
-
|
|
89
|
+
const parsed = new URL(uri);
|
|
90
|
+
// A remote file host is a UNC path on Windows, not a local workspace root. MCP roots are
|
|
91
|
+
// intentionally local-only here: accepting it would let a client silently point the server
|
|
92
|
+
// at a different machine/share. `localhost` is the only equivalent spelling we accept.
|
|
93
|
+
if (parsed.protocol !== "file:" ||
|
|
94
|
+
(parsed.hostname !== "" && parsed.hostname !== "localhost"))
|
|
95
|
+
continue;
|
|
96
|
+
paths.push(fileURLToPath(parsed));
|
|
90
97
|
}
|
|
91
98
|
catch {
|
|
92
99
|
// Malformed URI - skip.
|
|
@@ -94,7 +101,11 @@ export function pathsFromRootsResult(result) {
|
|
|
94
101
|
}
|
|
95
102
|
return paths;
|
|
96
103
|
}
|
|
97
|
-
const contains = (parent, child) =>
|
|
104
|
+
const contains = (parent, child) => {
|
|
105
|
+
const distance = relative(resolve(parent), resolve(child));
|
|
106
|
+
return (distance === "" ||
|
|
107
|
+
(distance !== ".." && !distance.startsWith(`..${sep}`) && !isAbsolute(distance)));
|
|
108
|
+
};
|
|
98
109
|
/** True when the server root and the client's workspace are DISJOINT - neither contains the other.
|
|
99
110
|
* A server rooted at a monorepo whose sub-app is the open workspace (or vice versa) is not a
|
|
100
111
|
* mismatch; a "server points at repo A, workspace is repo B" split is. */
|
|
@@ -218,4 +229,41 @@ export async function detectToolingDrift(root, cliVersion) {
|
|
|
218
229
|
}
|
|
219
230
|
return undefined;
|
|
220
231
|
}
|
|
232
|
+
/** Tool names served from the bundled corpus; they do not depend on the project root. */
|
|
233
|
+
const PROJECT_FREE_TOOLS = new Set(["nifra_docs", "nifra_example", "nifra_types", "nifra_learn"]);
|
|
234
|
+
/**
|
|
235
|
+
* Wrap project-scoped tools with root trust. A bad root refuses in-band; a good root stamps every
|
|
236
|
+
* result so the agent can see which project answered. Docs tools pass through untouched.
|
|
237
|
+
*/
|
|
238
|
+
export function guardTools(tools, verdict) {
|
|
239
|
+
return tools.map((tool) => {
|
|
240
|
+
if (PROJECT_FREE_TOOLS.has(tool.name))
|
|
241
|
+
return tool;
|
|
242
|
+
return {
|
|
243
|
+
...tool,
|
|
244
|
+
handler: async (args, context) => {
|
|
245
|
+
if (verdict.blocked !== undefined) {
|
|
246
|
+
return { content: [{ type: "text", text: verdict.blocked }], isError: true };
|
|
247
|
+
}
|
|
248
|
+
const result = await tool.handler(args, context);
|
|
249
|
+
const note = {
|
|
250
|
+
type: "text",
|
|
251
|
+
text: verdict.note,
|
|
252
|
+
};
|
|
253
|
+
if (typeof result === "string") {
|
|
254
|
+
return { content: [{ type: "text", text: result }, note] };
|
|
255
|
+
}
|
|
256
|
+
return { ...result, content: [...(result.content ?? []), note] };
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
/** Whether the client's initialize params declare the roots capability. */
|
|
262
|
+
export function clientSupportsRoots(params) {
|
|
263
|
+
const capabilities = params?.capabilities;
|
|
264
|
+
if (typeof capabilities !== "object" || capabilities === null)
|
|
265
|
+
return false;
|
|
266
|
+
const roots = capabilities.roots;
|
|
267
|
+
return typeof roots === "object" && roots !== null;
|
|
268
|
+
}
|
|
221
269
|
//# sourceMappingURL=mcp-root.js.map
|
package/dist/mcp-root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-root.js","sourceRoot":"","sources":["../src/mcp-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-root.js","sourceRoot":"","sources":["../src/mcp-root.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.d.ts
CHANGED
|
@@ -34,101 +34,19 @@
|
|
|
34
34
|
* minimal-surface choice as the rest of nifra. The pure dispatch lives in `./mcp-protocol.ts`; this
|
|
35
35
|
* module is the I/O shell (stdin loop, tool wiring, the run subprocess).
|
|
36
36
|
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
export
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
export declare const LOCAL_TOOL_FETCH_TIMEOUT_MS = 2000;
|
|
46
|
-
export declare const LOCAL_TOOL_MAX_RESPONSE_BYTES = 1048576;
|
|
47
|
-
/** Accept only a concrete TCP port. Port 0 (bind-any-free-port) is not a valid read target. */
|
|
48
|
-
export declare function validateLocalPort(port: unknown): number | undefined;
|
|
49
|
-
/** Read a dev-tool response without allowing an untrusted localhost service to allocate unbounded memory. */
|
|
50
|
-
export declare function readBoundedResponse(response: Response, maxBytes?: number): Promise<string>;
|
|
51
|
-
export interface BoundedOutput {
|
|
52
|
-
readonly text: string;
|
|
53
|
-
readonly truncated: boolean;
|
|
54
|
-
}
|
|
55
|
-
/** Read child output incrementally and cancel as soon as the byte budget is crossed. */
|
|
56
|
-
export declare function readBoundedStream(stream: ReadableStream<Uint8Array>, maxBytes?: number, onLimit?: () => void): Promise<BoundedOutput>;
|
|
57
|
-
/** A persistent `mcp-run`/`mcp-render` `--worker` subprocess: the backend/web app is loaded ONCE and
|
|
58
|
-
* reused across newline-delimited `{ id, input }` requests, replying `{ id, output }`. The same machinery
|
|
59
|
-
* powers both `nifra_run warm` and `nifra_render warm` - `child` selects which engine, `label` shapes the
|
|
60
|
-
* cancellation message. The owning handler ({@link createWarmHandler}) fingerprints the source tree and
|
|
61
|
-
* replaces the worker when a file changes, so warm reuse never serves a stale result. Exported for the
|
|
62
|
-
* concurrency test that proves a single per-request cancel doesn't tear down the shared worker. */
|
|
63
|
-
export declare class WarmWorker {
|
|
64
|
-
readonly fingerprint: string;
|
|
65
|
-
private readonly label;
|
|
66
|
-
private readonly proc;
|
|
67
|
-
private readonly pending;
|
|
68
|
-
private stdoutBuffer;
|
|
69
|
-
private stderrBuffer;
|
|
70
|
-
private nextId;
|
|
71
|
-
private closed;
|
|
72
|
-
constructor(child: "mcp-run" | "mcp-render", cwd: string, fingerprint: string, label: string);
|
|
73
|
-
stop(): void;
|
|
74
|
-
request(input: unknown, signal?: AbortSignal): Promise<string>;
|
|
75
|
-
private readStdout;
|
|
76
|
-
private readStderr;
|
|
77
|
-
private handleLine;
|
|
78
|
-
}
|
|
79
|
-
type LoadAppForCache = (cwd: string, outDirName?: string, options?: LoadAppOptions) => Promise<LoadedApp>;
|
|
80
|
-
export interface CachedAppLoaderOptions {
|
|
81
|
-
readonly loadApp?: LoadAppForCache;
|
|
82
|
-
readonly fingerprint?: (cwd: string) => Promise<string>;
|
|
83
|
-
}
|
|
84
|
-
/** Cache LoadedApp inside one MCP server process, invalidating when config/backend mtimes change. */
|
|
85
|
-
export declare function createCachedAppLoader(cwd: string, options?: CachedAppLoaderOptions): (outDirName?: string) => Promise<LoadedApp>;
|
|
86
|
-
export declare function projectResources(cwd: string, loadAppCached?: (outDirName?: string) => Promise<LoadedApp>): McpResource[];
|
|
87
|
-
export declare function projectPrompts(): McpPrompt[];
|
|
88
|
-
export declare function projectFeatures(cwd: string, loadAppCached?: (outDirName?: string) => Promise<LoadedApp>): McpServerFeatures;
|
|
89
|
-
/**
|
|
90
|
-
* Resolve an optional `dir` tool argument - a subdirectory of the project root the caller wants to scope a
|
|
91
|
-
* check/test to (e.g. `nifra check` on `app/` when the MCP server's root is a monorepo). Returns the
|
|
92
|
-
* absolute target, or `null` if `dir` escapes the root (a path-traversal guard: no `..` out, no absolute
|
|
93
|
-
* path elsewhere). `undefined`/empty → the root itself.
|
|
94
|
-
*/
|
|
95
|
-
export declare function resolveProjectDir(root: string, dir: string | undefined): string | null;
|
|
96
|
-
/** Build the project-scoped tools for `cwd`. */
|
|
97
|
-
export interface CommandMcpToolOptions {
|
|
98
|
-
readonly cwd: string;
|
|
99
|
-
readonly loadAppCached?: () => Promise<LoadedApp>;
|
|
100
|
-
}
|
|
101
|
-
/** Adapt one executable catalog spec to its MCP descriptor and project-scoped handler. */
|
|
102
|
-
export declare function toMcpTool(source: CommandSpec<unknown, unknown> | CommandCatalogEntry, options: CommandMcpToolOptions): McpTool;
|
|
103
|
-
export declare function catalogProjectTools(cwd: string, loadAppCached?: () => Promise<LoadedApp>): McpTool[];
|
|
104
|
-
export declare function projectTools(cwd: string, loadAppCached?: (outDirName?: string) => Promise<LoadedApp>): McpTool[];
|
|
105
|
-
/** Extract tools registered via .tool() routes on the Nifra backend. Exported for the test that proves a
|
|
106
|
-
* `server().tool()` route surfaces in `tools/list` and executes through `tools/call`. */
|
|
107
|
-
export declare function extractBackendTools(backend: unknown): McpTool[];
|
|
108
|
-
/** Extract MCP resources registered via `.resource()` on the Nifra backend. Exported for the surfacing test. */
|
|
109
|
-
export declare function extractBackendResources(backend: unknown): McpResource[];
|
|
110
|
-
/** Extract MCP prompts registered via `.prompt()` on the Nifra backend. Exported for the surfacing test. */
|
|
111
|
-
export declare function extractBackendPrompts(backend: unknown): McpPrompt[];
|
|
112
|
-
/**
|
|
113
|
-
* Wrap every project-scoped tool with the root guard: a bad root ({@link rootVerdict} `blocked`) makes
|
|
114
|
-
* the tool refuse with the remediation message instead of answering about whatever directory the
|
|
115
|
-
* server happened to start in; a good root stamps the result with `[nifra] project root: …` so the
|
|
116
|
-
* agent (and the human reading its transcript) can see WHICH project answered. Docs tools pass
|
|
117
|
-
* through untouched - they serve the bundled corpus, not the project.
|
|
118
|
-
*/
|
|
119
|
-
export declare function guardTools(tools: McpTool[], verdict: McpRootVerdict): McpTool[];
|
|
120
|
-
/** Whether the client's `initialize` params declare the `roots` capability - the precondition for
|
|
121
|
-
* this server sending it a `roots/list` request. */
|
|
122
|
-
export declare function clientSupportsRoots(params: Record<string, unknown> | undefined): boolean;
|
|
37
|
+
export { extractBackendPrompts, extractBackendResources, extractBackendTools, } from "./mcp-reflect.js";
|
|
38
|
+
export type { BoundedOutput } from "./mcp-io.js";
|
|
39
|
+
export { CHILD_OUTPUT_MAX_BYTES, CHILD_TIMEOUT_MS, LOCAL_TOOL_FETCH_TIMEOUT_MS, LOCAL_TOOL_MAX_RESPONSE_BYTES, notNifraResponse, readBoundedResponse, readBoundedStream, timeoutMessage, validateLocalPort, } from "./mcp-io.js";
|
|
40
|
+
export { clientSupportsRoots, guardTools } from "./mcp-root.js";
|
|
41
|
+
export type { CachedAppLoaderOptions } from "./mcp-exec.js";
|
|
42
|
+
export { catalogProjectTools, createCachedAppLoader, createWarmHandler, projectTools, renderHandler, runHandler, spawnChild, toMcpTool, WarmWorker, wsHandler, } from "./mcp-exec.js";
|
|
43
|
+
export type { CommandMcpToolOptions } from "./mcp-context.js";
|
|
44
|
+
export { dirError, namespaceForApp, projectFeatures, projectPrompts, projectResources, resolveProjectDir, } from "./mcp-context.js";
|
|
123
45
|
/**
|
|
124
46
|
* Run the stdio MCP server: read newline-delimited JSON-RPC from stdin, write responses to stdout.
|
|
125
47
|
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* MCP `roots` (requested after the handshake, re-requested on `roots/list_changed`) can correct an
|
|
129
|
-
* unambiguous wrong guess, and anything still unresolved fails closed per tool call. The effective
|
|
130
|
-
* root is announced in the `initialize` instructions and stamped on every project tool result.
|
|
48
|
+
* Root resolution, trust, and project-tool execution are delegated to their own seams; this function
|
|
49
|
+
* owns only the stdio lifecycle and JSON-RPC dispatch loop.
|
|
131
50
|
*/
|
|
132
51
|
export declare function runMcpServer(cwd: string, version: string, explicitDir?: string): Promise<void>;
|
|
133
|
-
export {};
|
|
134
52
|
//# sourceMappingURL=mcp.d.ts.map
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AA4BH,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAezB,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,EAC7B,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAI/D,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,GACV,MAAM,eAAe,CAAA;AAItB,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EACL,QAAQ,EACR,eAAe,EACf,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AA0EzB;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAsHf"}
|