@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.
Files changed (158) hide show
  1. package/README.md +10 -0
  2. package/dist/assure-hydration.d.ts.map +1 -1
  3. package/dist/assure-hydration.js +6 -1
  4. package/dist/assure-hydration.js.map +1 -1
  5. package/dist/assure.d.ts.map +1 -1
  6. package/dist/assure.js +3 -2
  7. package/dist/assure.js.map +1 -1
  8. package/dist/check-diagnostics.d.ts +165 -0
  9. package/dist/check-diagnostics.d.ts.map +1 -0
  10. package/dist/check-diagnostics.js +1009 -0
  11. package/dist/check-diagnostics.js.map +1 -0
  12. package/dist/check-scan.d.ts +245 -0
  13. package/dist/check-scan.d.ts.map +1 -0
  14. package/dist/check-scan.js +1599 -0
  15. package/dist/check-scan.js.map +1 -0
  16. package/dist/check.d.ts +4 -324
  17. package/dist/check.d.ts.map +1 -1
  18. package/dist/check.js +8 -2366
  19. package/dist/check.js.map +1 -1
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +247 -10
  22. package/dist/cli.js.map +1 -1
  23. package/dist/command-catalog.d.ts +21 -1
  24. package/dist/command-catalog.d.ts.map +1 -1
  25. package/dist/command-catalog.js +122 -0
  26. package/dist/command-catalog.js.map +1 -1
  27. package/dist/env-file.js +5 -5
  28. package/dist/env-file.js.map +1 -1
  29. package/dist/frontend-guidance.d.ts +57 -0
  30. package/dist/frontend-guidance.d.ts.map +1 -0
  31. package/dist/frontend-guidance.js +195 -0
  32. package/dist/frontend-guidance.js.map +1 -0
  33. package/dist/levels-tool.d.ts.map +1 -1
  34. package/dist/levels-tool.js +6 -0
  35. package/dist/levels-tool.js.map +1 -1
  36. package/dist/load.d.ts.map +1 -1
  37. package/dist/load.js +4 -1
  38. package/dist/load.js.map +1 -1
  39. package/dist/mcp-context.d.ts +48 -0
  40. package/dist/mcp-context.d.ts.map +1 -0
  41. package/dist/mcp-context.js +215 -0
  42. package/dist/mcp-context.js.map +1 -0
  43. package/dist/mcp-docs-tools.d.ts.map +1 -1
  44. package/dist/mcp-docs-tools.js +31 -0
  45. package/dist/mcp-docs-tools.js.map +1 -1
  46. package/dist/mcp-exec.d.ts +74 -0
  47. package/dist/mcp-exec.d.ts.map +1 -0
  48. package/dist/mcp-exec.js +844 -0
  49. package/dist/mcp-exec.js.map +1 -0
  50. package/dist/mcp-http.js +1 -1
  51. package/dist/mcp-io.d.ts +26 -0
  52. package/dist/mcp-io.d.ts.map +1 -0
  53. package/dist/mcp-io.js +100 -0
  54. package/dist/mcp-io.js.map +1 -0
  55. package/dist/mcp-reflect.d.ts +16 -0
  56. package/dist/mcp-reflect.d.ts.map +1 -0
  57. package/dist/mcp-reflect.js +101 -0
  58. package/dist/mcp-reflect.js.map +1 -0
  59. package/dist/mcp-root.d.ts +7 -0
  60. package/dist/mcp-root.d.ts.map +1 -1
  61. package/dist/mcp-root.js +51 -3
  62. package/dist/mcp-root.js.map +1 -1
  63. package/dist/mcp.d.ts +10 -92
  64. package/dist/mcp.d.ts.map +1 -1
  65. package/dist/mcp.js +13 -1232
  66. package/dist/mcp.js.map +1 -1
  67. package/dist/openapi-tool.d.ts +5 -10
  68. package/dist/openapi-tool.d.ts.map +1 -1
  69. package/dist/openapi-tool.js +21 -2
  70. package/dist/openapi-tool.js.map +1 -1
  71. package/dist/openapi-types.d.ts +21 -0
  72. package/dist/openapi-types.d.ts.map +1 -0
  73. package/dist/openapi-types.js +214 -0
  74. package/dist/openapi-types.js.map +1 -0
  75. package/dist/port.d.ts.map +1 -1
  76. package/dist/port.js +2 -1
  77. package/dist/port.js.map +1 -1
  78. package/dist/project-facts.d.ts +2 -1
  79. package/dist/project-facts.d.ts.map +1 -1
  80. package/dist/project-facts.js.map +1 -1
  81. package/dist/release-verification.d.ts +4 -1
  82. package/dist/release-verification.d.ts.map +1 -1
  83. package/dist/release-verification.js +6 -138
  84. package/dist/release-verification.js.map +1 -1
  85. package/dist/rules/codes.d.ts +4 -0
  86. package/dist/rules/codes.d.ts.map +1 -1
  87. package/dist/rules/codes.js +4 -0
  88. package/dist/rules/codes.js.map +1 -1
  89. package/dist/rules/islands.d.ts +4 -0
  90. package/dist/rules/islands.d.ts.map +1 -0
  91. package/dist/rules/islands.js +155 -0
  92. package/dist/rules/islands.js.map +1 -0
  93. package/dist/rules/nano.d.ts +6 -0
  94. package/dist/rules/nano.d.ts.map +1 -0
  95. package/dist/rules/nano.js +264 -0
  96. package/dist/rules/nano.js.map +1 -0
  97. package/dist/rules/security.d.ts.map +1 -1
  98. package/dist/rules/security.js +38 -4
  99. package/dist/rules/security.js.map +1 -1
  100. package/dist/scaffold.d.ts +12 -6
  101. package/dist/scaffold.d.ts.map +1 -1
  102. package/dist/scaffold.js +149 -10
  103. package/dist/scaffold.js.map +1 -1
  104. package/dist/search-terms.d.ts.map +1 -1
  105. package/dist/search-terms.js +5 -3
  106. package/dist/search-terms.js.map +1 -1
  107. package/dist/stylex-migrate.d.ts +38 -0
  108. package/dist/stylex-migrate.d.ts.map +1 -0
  109. package/dist/stylex-migrate.js +1052 -0
  110. package/dist/stylex-migrate.js.map +1 -0
  111. package/dist/sync-manifest.d.ts.map +1 -1
  112. package/dist/sync-manifest.js +2 -1
  113. package/dist/sync-manifest.js.map +1 -1
  114. package/dist/verification-plan.d.ts +24 -0
  115. package/dist/verification-plan.d.ts.map +1 -0
  116. package/dist/verification-plan.js +116 -0
  117. package/dist/verification-plan.js.map +1 -0
  118. package/dist/work-graph.d.ts.map +1 -1
  119. package/dist/work-graph.js +6 -3
  120. package/dist/work-graph.js.map +1 -1
  121. package/docs/examples.json +36 -0
  122. package/docs/llms-full.txt +1226 -14
  123. package/docs/types.json +4185 -87
  124. package/package.json +9 -9
  125. package/src/assure-hydration.ts +6 -1
  126. package/src/assure.ts +4 -2
  127. package/src/check-diagnostics.ts +1219 -0
  128. package/src/check-scan.ts +1825 -0
  129. package/src/check.ts +47 -2752
  130. package/src/cli.ts +252 -10
  131. package/src/command-catalog.ts +155 -0
  132. package/src/env-file.ts +5 -5
  133. package/src/frontend-guidance.ts +259 -0
  134. package/src/levels-tool.ts +6 -0
  135. package/src/load.ts +4 -1
  136. package/src/mcp-context.ts +266 -0
  137. package/src/mcp-docs-tools.ts +37 -0
  138. package/src/mcp-exec.ts +1040 -0
  139. package/src/mcp-http.ts +1 -1
  140. package/src/mcp-io.ts +118 -0
  141. package/src/mcp-reflect.ts +140 -0
  142. package/src/mcp-root.ts +62 -4
  143. package/src/mcp.ts +61 -1511
  144. package/src/openapi-tool.ts +32 -2
  145. package/src/openapi-types.ts +261 -0
  146. package/src/port.ts +2 -1
  147. package/src/project-facts.ts +2 -4
  148. package/src/release-verification.ts +22 -164
  149. package/src/rules/codes.ts +4 -0
  150. package/src/rules/islands.ts +171 -0
  151. package/src/rules/nano.ts +295 -0
  152. package/src/rules/security.ts +40 -4
  153. package/src/scaffold.ts +169 -9
  154. package/src/search-terms.ts +7 -3
  155. package/src/stylex-migrate.ts +1139 -0
  156. package/src/sync-manifest.ts +2 -1
  157. package/src/verification-plan.ts +242 -0
  158. 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.1.0";
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
@@ -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":"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"}
@@ -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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"}
@@ -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
@@ -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,CAe9D;AAKD;;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"}
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
- paths.push(fileURLToPath(uri));
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) => parent === child || child.startsWith(parent + sep);
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
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-root.js","sourceRoot":"","sources":["../src/mcp-root.ts"],"names":[],"mappings":"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"}
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
- import { type CommandCatalogEntry, type CommandSpec } from "./command-catalog.js";
38
- import type { LoadAppOptions, LoadedApp } from "./load.js";
39
- import { type McpPrompt, type McpResource, type McpServerFeatures, type McpTool } from "./mcp-protocol.js";
40
- import { type McpRootVerdict } from "./mcp-root.js";
41
- /** Maximum stdout or stderr retained from a project subprocess. The process is killed at the limit. */
42
- export declare const CHILD_OUTPUT_MAX_BYTES = 1048576;
43
- /** Local dev-tool reads are intentionally bounded: MCP runs in an agent process and must not hang on or
44
- * buffer an unrelated loopback service just because a caller supplied its port. */
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
- * The project root is resolved defensively rather than assumed (`./mcp-root.ts`): explicit
127
- * `nifra mcp <dir>` beats a cwd guess, a cwd guess walks up to the nearest nifra marker, the client's
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":"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"}
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"}