@openfairygui/mcp 0.3.0-alpha.1 → 0.3.0-alpha.3
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 +2 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +24 -3
- package/dist/index.d.mts +24 -3
- package/dist/index.mjs +1 -1
- package/dist/{stdio-BqoMZ4QC.cjs → stdio-BXisOzWj.cjs} +18 -1
- package/dist/{stdio-C69hamhI.mjs → stdio-CSoMRo55.mjs} +18 -1
- package/dist/stdio.cjs +1 -1
- package/dist/stdio.mjs +1 -1
- package/package.json +3 -3
- package/src/tool-definitions.ts +11 -0
- package/src/tool-handler.ts +6 -0
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ It maps the backend P2 runtime surface into MCP tools:
|
|
|
13
13
|
- `openProjectSession`
|
|
14
14
|
- `getSession`
|
|
15
15
|
- `getProjectOutline`
|
|
16
|
+
- `validateSession`
|
|
16
17
|
- `applyTransaction`
|
|
17
18
|
- `saveSession`
|
|
18
19
|
- `materializeSession`
|
|
@@ -42,7 +43,7 @@ P1 also registers MCP-native ergonomics around the same backend surface:
|
|
|
42
43
|
- prompts for capability inspection, session open/inspect, project-outline inspection, revision-checked transactions, save, and runtime polling
|
|
43
44
|
|
|
44
45
|
Resources return `application/json` text containing the unchanged backend result envelope. Parameterized polling remains tool-based: `getEvents` and `listJobs` are not exposed as resource URI query grammars.
|
|
45
|
-
The project outline is revision-bound and exposes package, resource, folder, display-node, controller-page, and transition identities for transaction planning. It intentionally omits source bytes and full property payloads.
|
|
46
|
+
The project outline is revision-bound and exposes package, resource, folder, display-node, controller-page, and transition identities for transaction planning. It intentionally omits source bytes and full property payloads. `validateSession` returns the backend-owned read-only project validation report; the MCP adapter does not reinterpret its diagnostics.
|
|
46
47
|
|
|
47
48
|
It does **not** redefine transaction selectors, transaction operations, path policy, session semantics, job semantics, cache semantics, or backend error envelopes. Those remain owned by `@openfairygui/backend`, `@openfairygui/functions`, and `@openfairygui/core`.
|
|
48
49
|
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_stdio = require("./stdio-
|
|
2
|
+
const require_stdio = require("./stdio-BXisOzWj.cjs");
|
|
3
3
|
exports.OPENFAIRYGUI_BACKEND_CAPABILITIES_RESOURCE_URI = require_stdio.OPENFAIRYGUI_BACKEND_CAPABILITIES_RESOURCE_URI;
|
|
4
4
|
exports.OPENFAIRYGUI_BACKEND_PROMPT_DEFINITIONS = require_stdio.OPENFAIRYGUI_BACKEND_PROMPT_DEFINITIONS;
|
|
5
5
|
exports.OPENFAIRYGUI_BACKEND_PROMPT_NAMES = require_stdio.OPENFAIRYGUI_BACKEND_PROMPT_NAMES;
|
package/dist/index.d.cts
CHANGED
|
@@ -6,9 +6,9 @@ import { z } from "zod";
|
|
|
6
6
|
|
|
7
7
|
//#region src/tool-definitions.d.ts
|
|
8
8
|
declare const OPENFAIRYGUI_BACKEND_TOOL_PREFIX = "openfairygui_backend_";
|
|
9
|
-
declare const OPENFAIRYGUI_BACKEND_TOOL_NAMES: readonly ["openfairygui_backend_get_capabilities", "openfairygui_backend_open_session", "openfairygui_backend_open_project_session", "openfairygui_backend_get_session", "openfairygui_backend_get_project_outline", "openfairygui_backend_apply_transaction", "openfairygui_backend_save_session", "openfairygui_backend_materialize_session", "openfairygui_backend_close_session", "openfairygui_backend_get_events", "openfairygui_backend_get_job", "openfairygui_backend_list_jobs", "openfairygui_backend_cancel_job", "openfairygui_backend_get_cache_snapshot", "openfairygui_backend_refresh_cache"];
|
|
9
|
+
declare const OPENFAIRYGUI_BACKEND_TOOL_NAMES: readonly ["openfairygui_backend_get_capabilities", "openfairygui_backend_open_session", "openfairygui_backend_open_project_session", "openfairygui_backend_get_session", "openfairygui_backend_get_project_outline", "openfairygui_backend_validate_session", "openfairygui_backend_apply_transaction", "openfairygui_backend_save_session", "openfairygui_backend_materialize_session", "openfairygui_backend_close_session", "openfairygui_backend_get_events", "openfairygui_backend_get_job", "openfairygui_backend_list_jobs", "openfairygui_backend_cancel_job", "openfairygui_backend_get_cache_snapshot", "openfairygui_backend_refresh_cache"];
|
|
10
10
|
type OpenFairyGuiBackendToolName = typeof OPENFAIRYGUI_BACKEND_TOOL_NAMES[number];
|
|
11
|
-
type BackendMethodName = 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache';
|
|
11
|
+
type BackendMethodName = 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'validateSession' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache';
|
|
12
12
|
interface OpenFairyGuiBackendToolDefinition {
|
|
13
13
|
name: OpenFairyGuiBackendToolName;
|
|
14
14
|
backendMethod: BackendMethodName;
|
|
@@ -137,6 +137,27 @@ declare const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS: readonly [{
|
|
|
137
137
|
readonly idempotentHint: true;
|
|
138
138
|
readonly openWorldHint: false;
|
|
139
139
|
};
|
|
140
|
+
}, {
|
|
141
|
+
readonly name: "openfairygui_backend_validate_session";
|
|
142
|
+
readonly backendMethod: "validateSession";
|
|
143
|
+
readonly title: "Validate Project Session";
|
|
144
|
+
readonly description: "Validate the current session project structure, references, paths, and available source bytes without writing files.";
|
|
145
|
+
readonly inputSchema: z.ZodObject<{
|
|
146
|
+
sessionId: z.ZodString;
|
|
147
|
+
}, z.core.$strip>;
|
|
148
|
+
readonly outputSchema: z.ZodObject<{
|
|
149
|
+
backendResult: z.ZodObject<{
|
|
150
|
+
ok: z.ZodBoolean;
|
|
151
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
152
|
+
error: z.ZodOptional<z.ZodUnknown>;
|
|
153
|
+
meta: z.ZodOptional<z.ZodUnknown>;
|
|
154
|
+
}, z.core.$loose>;
|
|
155
|
+
}, z.core.$strip>;
|
|
156
|
+
readonly annotations: {
|
|
157
|
+
readonly readOnlyHint: true;
|
|
158
|
+
readonly idempotentHint: true;
|
|
159
|
+
readonly openWorldHint: false;
|
|
160
|
+
};
|
|
140
161
|
}, {
|
|
141
162
|
readonly name: "openfairygui_backend_apply_transaction";
|
|
142
163
|
readonly backendMethod: "applyTransaction";
|
|
@@ -382,7 +403,7 @@ declare const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS: readonly [{
|
|
|
382
403
|
}];
|
|
383
404
|
//#endregion
|
|
384
405
|
//#region src/tool-handler.d.ts
|
|
385
|
-
type OpenFairyGuiBackendRuntime = Pick<BackendRuntime, 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache'>;
|
|
406
|
+
type OpenFairyGuiBackendRuntime = Pick<BackendRuntime, 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'validateSession' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache'>;
|
|
386
407
|
declare function callOpenFairyGuiBackendTool(runtime: OpenFairyGuiBackendRuntime, name: OpenFairyGuiBackendToolName, input: Record<string, unknown>): Promise<CallToolResult>;
|
|
387
408
|
//#endregion
|
|
388
409
|
//#region src/server.d.ts
|
package/dist/index.d.mts
CHANGED
|
@@ -6,9 +6,9 @@ import { BackendRuntime } from "@openfairygui/backend";
|
|
|
6
6
|
|
|
7
7
|
//#region src/tool-definitions.d.ts
|
|
8
8
|
declare const OPENFAIRYGUI_BACKEND_TOOL_PREFIX = "openfairygui_backend_";
|
|
9
|
-
declare const OPENFAIRYGUI_BACKEND_TOOL_NAMES: readonly ["openfairygui_backend_get_capabilities", "openfairygui_backend_open_session", "openfairygui_backend_open_project_session", "openfairygui_backend_get_session", "openfairygui_backend_get_project_outline", "openfairygui_backend_apply_transaction", "openfairygui_backend_save_session", "openfairygui_backend_materialize_session", "openfairygui_backend_close_session", "openfairygui_backend_get_events", "openfairygui_backend_get_job", "openfairygui_backend_list_jobs", "openfairygui_backend_cancel_job", "openfairygui_backend_get_cache_snapshot", "openfairygui_backend_refresh_cache"];
|
|
9
|
+
declare const OPENFAIRYGUI_BACKEND_TOOL_NAMES: readonly ["openfairygui_backend_get_capabilities", "openfairygui_backend_open_session", "openfairygui_backend_open_project_session", "openfairygui_backend_get_session", "openfairygui_backend_get_project_outline", "openfairygui_backend_validate_session", "openfairygui_backend_apply_transaction", "openfairygui_backend_save_session", "openfairygui_backend_materialize_session", "openfairygui_backend_close_session", "openfairygui_backend_get_events", "openfairygui_backend_get_job", "openfairygui_backend_list_jobs", "openfairygui_backend_cancel_job", "openfairygui_backend_get_cache_snapshot", "openfairygui_backend_refresh_cache"];
|
|
10
10
|
type OpenFairyGuiBackendToolName = typeof OPENFAIRYGUI_BACKEND_TOOL_NAMES[number];
|
|
11
|
-
type BackendMethodName = 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache';
|
|
11
|
+
type BackendMethodName = 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'validateSession' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache';
|
|
12
12
|
interface OpenFairyGuiBackendToolDefinition {
|
|
13
13
|
name: OpenFairyGuiBackendToolName;
|
|
14
14
|
backendMethod: BackendMethodName;
|
|
@@ -137,6 +137,27 @@ declare const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS: readonly [{
|
|
|
137
137
|
readonly idempotentHint: true;
|
|
138
138
|
readonly openWorldHint: false;
|
|
139
139
|
};
|
|
140
|
+
}, {
|
|
141
|
+
readonly name: "openfairygui_backend_validate_session";
|
|
142
|
+
readonly backendMethod: "validateSession";
|
|
143
|
+
readonly title: "Validate Project Session";
|
|
144
|
+
readonly description: "Validate the current session project structure, references, paths, and available source bytes without writing files.";
|
|
145
|
+
readonly inputSchema: z.ZodObject<{
|
|
146
|
+
sessionId: z.ZodString;
|
|
147
|
+
}, z.core.$strip>;
|
|
148
|
+
readonly outputSchema: z.ZodObject<{
|
|
149
|
+
backendResult: z.ZodObject<{
|
|
150
|
+
ok: z.ZodBoolean;
|
|
151
|
+
data: z.ZodOptional<z.ZodUnknown>;
|
|
152
|
+
error: z.ZodOptional<z.ZodUnknown>;
|
|
153
|
+
meta: z.ZodOptional<z.ZodUnknown>;
|
|
154
|
+
}, z.core.$loose>;
|
|
155
|
+
}, z.core.$strip>;
|
|
156
|
+
readonly annotations: {
|
|
157
|
+
readonly readOnlyHint: true;
|
|
158
|
+
readonly idempotentHint: true;
|
|
159
|
+
readonly openWorldHint: false;
|
|
160
|
+
};
|
|
140
161
|
}, {
|
|
141
162
|
readonly name: "openfairygui_backend_apply_transaction";
|
|
142
163
|
readonly backendMethod: "applyTransaction";
|
|
@@ -382,7 +403,7 @@ declare const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS: readonly [{
|
|
|
382
403
|
}];
|
|
383
404
|
//#endregion
|
|
384
405
|
//#region src/tool-handler.d.ts
|
|
385
|
-
type OpenFairyGuiBackendRuntime = Pick<BackendRuntime, 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache'>;
|
|
406
|
+
type OpenFairyGuiBackendRuntime = Pick<BackendRuntime, 'getCapabilities' | 'openSession' | 'openProjectSession' | 'getSession' | 'getProjectOutline' | 'validateSession' | 'applyTransaction' | 'saveSession' | 'materializeSession' | 'closeSession' | 'getEvents' | 'getJob' | 'listJobs' | 'cancelJob' | 'getCacheSnapshot' | 'refreshCache'>;
|
|
386
407
|
declare function callOpenFairyGuiBackendTool(runtime: OpenFairyGuiBackendRuntime, name: OpenFairyGuiBackendToolName, input: Record<string, unknown>): Promise<CallToolResult>;
|
|
387
408
|
//#endregion
|
|
388
409
|
//#region src/server.d.ts
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as OPENFAIRYGUI_BACKEND_TOOL_OUTPUT_SCHEMA, c as OPENFAIRYGUI_BACKEND_CAPABILITIES_RESOURCE_URI, d as OPENFAIRYGUI_BACKEND_PROMPT_NAMES, i as OPENFAIRYGUI_BACKEND_TOOL_NAMES, l as OPENFAIRYGUI_BACKEND_RESOURCE_TEMPLATES, n as createOpenFairyGuiMcpServer, o as OPENFAIRYGUI_BACKEND_TOOL_PREFIX, r as OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS, s as callOpenFairyGuiBackendTool, t as connectOpenFairyGuiMcpStdio, u as OPENFAIRYGUI_BACKEND_PROMPT_DEFINITIONS } from "./stdio-
|
|
1
|
+
import { a as OPENFAIRYGUI_BACKEND_TOOL_OUTPUT_SCHEMA, c as OPENFAIRYGUI_BACKEND_CAPABILITIES_RESOURCE_URI, d as OPENFAIRYGUI_BACKEND_PROMPT_NAMES, i as OPENFAIRYGUI_BACKEND_TOOL_NAMES, l as OPENFAIRYGUI_BACKEND_RESOURCE_TEMPLATES, n as createOpenFairyGuiMcpServer, o as OPENFAIRYGUI_BACKEND_TOOL_PREFIX, r as OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS, s as callOpenFairyGuiBackendTool, t as connectOpenFairyGuiMcpStdio, u as OPENFAIRYGUI_BACKEND_PROMPT_DEFINITIONS } from "./stdio-CSoMRo55.mjs";
|
|
2
2
|
export { OPENFAIRYGUI_BACKEND_CAPABILITIES_RESOURCE_URI, OPENFAIRYGUI_BACKEND_PROMPT_DEFINITIONS, OPENFAIRYGUI_BACKEND_PROMPT_NAMES, OPENFAIRYGUI_BACKEND_RESOURCE_TEMPLATES, OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS, OPENFAIRYGUI_BACKEND_TOOL_NAMES, OPENFAIRYGUI_BACKEND_TOOL_OUTPUT_SCHEMA, OPENFAIRYGUI_BACKEND_TOOL_PREFIX, callOpenFairyGuiBackendTool, connectOpenFairyGuiMcpStdio, createOpenFairyGuiMcpServer };
|
|
@@ -181,6 +181,9 @@ async function callOpenFairyGuiBackendTool(runtime, name, input) {
|
|
|
181
181
|
case "openfairygui_backend_get_project_outline":
|
|
182
182
|
result = runtime.getProjectOutline({ sessionId: String(input.sessionId) });
|
|
183
183
|
break;
|
|
184
|
+
case "openfairygui_backend_validate_session":
|
|
185
|
+
result = runtime.validateSession({ sessionId: String(input.sessionId) });
|
|
186
|
+
break;
|
|
184
187
|
case "openfairygui_backend_apply_transaction":
|
|
185
188
|
result = await runtime.applyTransaction({
|
|
186
189
|
sessionId: String(input.sessionId),
|
|
@@ -257,6 +260,7 @@ const OPENFAIRYGUI_BACKEND_TOOL_NAMES = [
|
|
|
257
260
|
"openfairygui_backend_open_project_session",
|
|
258
261
|
"openfairygui_backend_get_session",
|
|
259
262
|
"openfairygui_backend_get_project_outline",
|
|
263
|
+
"openfairygui_backend_validate_session",
|
|
260
264
|
"openfairygui_backend_apply_transaction",
|
|
261
265
|
"openfairygui_backend_save_session",
|
|
262
266
|
"openfairygui_backend_materialize_session",
|
|
@@ -349,6 +353,19 @@ const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS = [
|
|
|
349
353
|
openWorldHint: false
|
|
350
354
|
}
|
|
351
355
|
},
|
|
356
|
+
{
|
|
357
|
+
name: "openfairygui_backend_validate_session",
|
|
358
|
+
backendMethod: "validateSession",
|
|
359
|
+
title: "Validate Project Session",
|
|
360
|
+
description: "Validate the current session project structure, references, paths, and available source bytes without writing files.",
|
|
361
|
+
inputSchema: zod.z.object({ sessionId }),
|
|
362
|
+
outputSchema: OPENFAIRYGUI_BACKEND_TOOL_OUTPUT_SCHEMA,
|
|
363
|
+
annotations: {
|
|
364
|
+
readOnlyHint: true,
|
|
365
|
+
idempotentHint: true,
|
|
366
|
+
openWorldHint: false
|
|
367
|
+
}
|
|
368
|
+
},
|
|
352
369
|
{
|
|
353
370
|
name: "openfairygui_backend_apply_transaction",
|
|
354
371
|
backendMethod: "applyTransaction",
|
|
@@ -532,7 +549,7 @@ const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS = [
|
|
|
532
549
|
//#region src/server.ts
|
|
533
550
|
const require$1 = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href);
|
|
534
551
|
function getInjectedPackageVersion() {
|
|
535
|
-
const version = "0.3.0-alpha.
|
|
552
|
+
const version = "0.3.0-alpha.3";
|
|
536
553
|
return typeof version === "string" && true ? version : null;
|
|
537
554
|
}
|
|
538
555
|
function readPackageVersion() {
|
|
@@ -181,6 +181,9 @@ async function callOpenFairyGuiBackendTool(runtime, name, input) {
|
|
|
181
181
|
case "openfairygui_backend_get_project_outline":
|
|
182
182
|
result = runtime.getProjectOutline({ sessionId: String(input.sessionId) });
|
|
183
183
|
break;
|
|
184
|
+
case "openfairygui_backend_validate_session":
|
|
185
|
+
result = runtime.validateSession({ sessionId: String(input.sessionId) });
|
|
186
|
+
break;
|
|
184
187
|
case "openfairygui_backend_apply_transaction":
|
|
185
188
|
result = await runtime.applyTransaction({
|
|
186
189
|
sessionId: String(input.sessionId),
|
|
@@ -257,6 +260,7 @@ const OPENFAIRYGUI_BACKEND_TOOL_NAMES = [
|
|
|
257
260
|
"openfairygui_backend_open_project_session",
|
|
258
261
|
"openfairygui_backend_get_session",
|
|
259
262
|
"openfairygui_backend_get_project_outline",
|
|
263
|
+
"openfairygui_backend_validate_session",
|
|
260
264
|
"openfairygui_backend_apply_transaction",
|
|
261
265
|
"openfairygui_backend_save_session",
|
|
262
266
|
"openfairygui_backend_materialize_session",
|
|
@@ -349,6 +353,19 @@ const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS = [
|
|
|
349
353
|
openWorldHint: false
|
|
350
354
|
}
|
|
351
355
|
},
|
|
356
|
+
{
|
|
357
|
+
name: "openfairygui_backend_validate_session",
|
|
358
|
+
backendMethod: "validateSession",
|
|
359
|
+
title: "Validate Project Session",
|
|
360
|
+
description: "Validate the current session project structure, references, paths, and available source bytes without writing files.",
|
|
361
|
+
inputSchema: z.object({ sessionId }),
|
|
362
|
+
outputSchema: OPENFAIRYGUI_BACKEND_TOOL_OUTPUT_SCHEMA,
|
|
363
|
+
annotations: {
|
|
364
|
+
readOnlyHint: true,
|
|
365
|
+
idempotentHint: true,
|
|
366
|
+
openWorldHint: false
|
|
367
|
+
}
|
|
368
|
+
},
|
|
352
369
|
{
|
|
353
370
|
name: "openfairygui_backend_apply_transaction",
|
|
354
371
|
backendMethod: "applyTransaction",
|
|
@@ -532,7 +549,7 @@ const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS = [
|
|
|
532
549
|
//#region src/server.ts
|
|
533
550
|
const require = createRequire(import.meta.url);
|
|
534
551
|
function getInjectedPackageVersion() {
|
|
535
|
-
const version = "0.3.0-alpha.
|
|
552
|
+
const version = "0.3.0-alpha.3";
|
|
536
553
|
return typeof version === "string" && true ? version : null;
|
|
537
554
|
}
|
|
538
555
|
function readPackageVersion() {
|
package/dist/stdio.cjs
CHANGED
package/dist/stdio.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as connectOpenFairyGuiMcpStdio } from "./stdio-
|
|
1
|
+
import { t as connectOpenFairyGuiMcpStdio } from "./stdio-CSoMRo55.mjs";
|
|
2
2
|
export { connectOpenFairyGuiMcpStdio };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfairygui/mcp",
|
|
3
|
-
"version": "0.3.0-alpha.
|
|
3
|
+
"version": "0.3.0-alpha.3",
|
|
4
4
|
"description": "FairyGUI Headless Authoring SDK - MCP server adapter for the backend runtime.",
|
|
5
5
|
"author": "OpenFairyGUI Contributors",
|
|
6
6
|
"license": "MIT",
|
|
@@ -58,13 +58,13 @@
|
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
60
60
|
"zod": "^4.3.6",
|
|
61
|
-
"@openfairygui/backend": "0.3.0-alpha.
|
|
61
|
+
"@openfairygui/backend": "0.3.0-alpha.3"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"ava": "^7.0.0",
|
|
65
65
|
"tsx": "^4.0.0",
|
|
66
66
|
"@openfairygui/test-utils": "0.2.0-alpha.10",
|
|
67
|
-
"@openfairygui/core": "0.3.0-alpha.
|
|
67
|
+
"@openfairygui/core": "0.3.0-alpha.3"
|
|
68
68
|
},
|
|
69
69
|
"ava": {
|
|
70
70
|
"extensions": {
|
package/src/tool-definitions.ts
CHANGED
|
@@ -8,6 +8,7 @@ export const OPENFAIRYGUI_BACKEND_TOOL_NAMES = [
|
|
|
8
8
|
'openfairygui_backend_open_project_session',
|
|
9
9
|
'openfairygui_backend_get_session',
|
|
10
10
|
'openfairygui_backend_get_project_outline',
|
|
11
|
+
'openfairygui_backend_validate_session',
|
|
11
12
|
'openfairygui_backend_apply_transaction',
|
|
12
13
|
'openfairygui_backend_save_session',
|
|
13
14
|
'openfairygui_backend_materialize_session',
|
|
@@ -28,6 +29,7 @@ export type BackendMethodName =
|
|
|
28
29
|
| 'openProjectSession'
|
|
29
30
|
| 'getSession'
|
|
30
31
|
| 'getProjectOutline'
|
|
32
|
+
| 'validateSession'
|
|
31
33
|
| 'applyTransaction'
|
|
32
34
|
| 'saveSession'
|
|
33
35
|
| 'materializeSession'
|
|
@@ -121,6 +123,15 @@ export const OPENFAIRYGUI_BACKEND_TOOL_DEFINITIONS = [
|
|
|
121
123
|
outputSchema: OPENFAIRYGUI_BACKEND_TOOL_OUTPUT_SCHEMA,
|
|
122
124
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
|
|
123
125
|
},
|
|
126
|
+
{
|
|
127
|
+
name: 'openfairygui_backend_validate_session',
|
|
128
|
+
backendMethod: 'validateSession',
|
|
129
|
+
title: 'Validate Project Session',
|
|
130
|
+
description: 'Validate the current session project structure, references, paths, and available source bytes without writing files.',
|
|
131
|
+
inputSchema: z.object({ sessionId }),
|
|
132
|
+
outputSchema: OPENFAIRYGUI_BACKEND_TOOL_OUTPUT_SCHEMA,
|
|
133
|
+
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
|
|
134
|
+
},
|
|
124
135
|
{
|
|
125
136
|
name: 'openfairygui_backend_apply_transaction',
|
|
126
137
|
backendMethod: 'applyTransaction',
|
package/src/tool-handler.ts
CHANGED
|
@@ -9,6 +9,7 @@ export type OpenFairyGuiBackendRuntime = Pick<
|
|
|
9
9
|
| 'openProjectSession'
|
|
10
10
|
| 'getSession'
|
|
11
11
|
| 'getProjectOutline'
|
|
12
|
+
| 'validateSession'
|
|
12
13
|
| 'applyTransaction'
|
|
13
14
|
| 'saveSession'
|
|
14
15
|
| 'materializeSession'
|
|
@@ -76,6 +77,11 @@ export async function callOpenFairyGuiBackendTool(
|
|
|
76
77
|
sessionId: String(input.sessionId),
|
|
77
78
|
});
|
|
78
79
|
break;
|
|
80
|
+
case 'openfairygui_backend_validate_session':
|
|
81
|
+
result = runtime.validateSession({
|
|
82
|
+
sessionId: String(input.sessionId),
|
|
83
|
+
});
|
|
84
|
+
break;
|
|
79
85
|
case 'openfairygui_backend_apply_transaction':
|
|
80
86
|
result = await runtime.applyTransaction({
|
|
81
87
|
sessionId: String(input.sessionId),
|