@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 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-BqoMZ4QC.cjs");
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-C69hamhI.mjs";
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.1";
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.1";
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
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_stdio = require("./stdio-BqoMZ4QC.cjs");
2
+ const require_stdio = require("./stdio-BXisOzWj.cjs");
3
3
  exports.connectOpenFairyGuiMcpStdio = require_stdio.connectOpenFairyGuiMcpStdio;
package/dist/stdio.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import { t as connectOpenFairyGuiMcpStdio } from "./stdio-C69hamhI.mjs";
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.1",
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.1"
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.1"
67
+ "@openfairygui/core": "0.3.0-alpha.3"
68
68
  },
69
69
  "ava": {
70
70
  "extensions": {
@@ -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',
@@ -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),