@genart-dev/mcp-server 0.2.0 → 0.3.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/dist/index.cjs +670 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +672 -2
- package/dist/index.js.map +1 -1
- package/dist/lib.cjs +675 -6
- package/dist/lib.cjs.map +1 -1
- package/dist/lib.d.cts +26 -2
- package/dist/lib.d.ts +26 -2
- package/dist/lib.js +672 -2
- package/dist/lib.js.map +1 -1
- package/package.json +6 -2
package/dist/lib.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
-
import { WorkspaceDefinition, SketchDefinition } from '@genart-dev/core';
|
|
3
|
+
import { WorkspaceDefinition, SketchDefinition, PluginRegistry, LayerStackAccessor, McpToolContext } from '@genart-dev/core';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* EditorState — server-scoped mutable state for the MCP server.
|
|
@@ -14,7 +14,7 @@ interface LoadedSketch {
|
|
|
14
14
|
path: string;
|
|
15
15
|
}
|
|
16
16
|
/** Mutation event types emitted by EditorState. */
|
|
17
|
-
type EditorMutationType = "workspace:loaded" | "workspace:saved" | "workspace:updated" | "sketch:loaded" | "sketch:created" | "sketch:updated" | "sketch:saved" | "sketch:removed" | "sketch:deleted" | "selection:changed";
|
|
17
|
+
type EditorMutationType = "workspace:loaded" | "workspace:saved" | "workspace:updated" | "sketch:loaded" | "sketch:created" | "sketch:updated" | "sketch:saved" | "sketch:removed" | "sketch:deleted" | "selection:changed" | "design:layer-added" | "design:layer-removed" | "design:layer-updated" | "design:layer-reordered";
|
|
18
18
|
/** Payload for EditorState mutation events. */
|
|
19
19
|
interface EditorMutationEvent {
|
|
20
20
|
type: EditorMutationType;
|
|
@@ -53,6 +53,10 @@ declare class EditorState extends EventEmitter {
|
|
|
53
53
|
* instead of writing to disk. Set by mcp-host for HTTP-based sessions.
|
|
54
54
|
*/
|
|
55
55
|
remoteMode: boolean;
|
|
56
|
+
/** Plugin registry for design mode. Set during server initialization. */
|
|
57
|
+
pluginRegistry: PluginRegistry | null;
|
|
58
|
+
/** Layer stacks keyed by sketch ID. Created lazily when design tools are used. */
|
|
59
|
+
layerStacks: Map<string, LayerStackAccessor>;
|
|
56
60
|
constructor(options?: {
|
|
57
61
|
basePath?: string;
|
|
58
62
|
remoteMode?: boolean;
|
|
@@ -83,6 +87,26 @@ declare class EditorState extends EventEmitter {
|
|
|
83
87
|
setSelection(ids: string[]): void;
|
|
84
88
|
/** Get a serializable snapshot of the full editor state. */
|
|
85
89
|
getSnapshot(): EditorStateSnapshot;
|
|
90
|
+
/**
|
|
91
|
+
* Get or create a LayerStackAccessor for a sketch.
|
|
92
|
+
* Initializes from the sketch's persisted design layers.
|
|
93
|
+
*/
|
|
94
|
+
getLayerStack(sketchId: string): LayerStackAccessor;
|
|
95
|
+
/**
|
|
96
|
+
* Sync the layer stack's current state back to the sketch definition.
|
|
97
|
+
* Called automatically on every layer mutation.
|
|
98
|
+
*/
|
|
99
|
+
private syncLayersToDefinition;
|
|
100
|
+
/**
|
|
101
|
+
* Create an McpToolContext for a plugin's MCP tool handler.
|
|
102
|
+
* Provides access to the layer stack, sketch state, and change notifications.
|
|
103
|
+
*/
|
|
104
|
+
createMcpToolContext(sketchId: string): McpToolContext;
|
|
105
|
+
/**
|
|
106
|
+
* Get the currently selected sketch ID for design operations.
|
|
107
|
+
* Returns the single selected sketch, or throws if none/multiple selected.
|
|
108
|
+
*/
|
|
109
|
+
requireSelectedSketchId(): string;
|
|
86
110
|
/** Emit a mutation event for external listeners (WebSocket broadcast, sidecar IPC). */
|
|
87
111
|
emitMutation(type: EditorMutationType, payload: unknown): void;
|
|
88
112
|
}
|
package/dist/lib.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
-
import { WorkspaceDefinition, SketchDefinition } from '@genart-dev/core';
|
|
3
|
+
import { WorkspaceDefinition, SketchDefinition, PluginRegistry, LayerStackAccessor, McpToolContext } from '@genart-dev/core';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* EditorState — server-scoped mutable state for the MCP server.
|
|
@@ -14,7 +14,7 @@ interface LoadedSketch {
|
|
|
14
14
|
path: string;
|
|
15
15
|
}
|
|
16
16
|
/** Mutation event types emitted by EditorState. */
|
|
17
|
-
type EditorMutationType = "workspace:loaded" | "workspace:saved" | "workspace:updated" | "sketch:loaded" | "sketch:created" | "sketch:updated" | "sketch:saved" | "sketch:removed" | "sketch:deleted" | "selection:changed";
|
|
17
|
+
type EditorMutationType = "workspace:loaded" | "workspace:saved" | "workspace:updated" | "sketch:loaded" | "sketch:created" | "sketch:updated" | "sketch:saved" | "sketch:removed" | "sketch:deleted" | "selection:changed" | "design:layer-added" | "design:layer-removed" | "design:layer-updated" | "design:layer-reordered";
|
|
18
18
|
/** Payload for EditorState mutation events. */
|
|
19
19
|
interface EditorMutationEvent {
|
|
20
20
|
type: EditorMutationType;
|
|
@@ -53,6 +53,10 @@ declare class EditorState extends EventEmitter {
|
|
|
53
53
|
* instead of writing to disk. Set by mcp-host for HTTP-based sessions.
|
|
54
54
|
*/
|
|
55
55
|
remoteMode: boolean;
|
|
56
|
+
/** Plugin registry for design mode. Set during server initialization. */
|
|
57
|
+
pluginRegistry: PluginRegistry | null;
|
|
58
|
+
/** Layer stacks keyed by sketch ID. Created lazily when design tools are used. */
|
|
59
|
+
layerStacks: Map<string, LayerStackAccessor>;
|
|
56
60
|
constructor(options?: {
|
|
57
61
|
basePath?: string;
|
|
58
62
|
remoteMode?: boolean;
|
|
@@ -83,6 +87,26 @@ declare class EditorState extends EventEmitter {
|
|
|
83
87
|
setSelection(ids: string[]): void;
|
|
84
88
|
/** Get a serializable snapshot of the full editor state. */
|
|
85
89
|
getSnapshot(): EditorStateSnapshot;
|
|
90
|
+
/**
|
|
91
|
+
* Get or create a LayerStackAccessor for a sketch.
|
|
92
|
+
* Initializes from the sketch's persisted design layers.
|
|
93
|
+
*/
|
|
94
|
+
getLayerStack(sketchId: string): LayerStackAccessor;
|
|
95
|
+
/**
|
|
96
|
+
* Sync the layer stack's current state back to the sketch definition.
|
|
97
|
+
* Called automatically on every layer mutation.
|
|
98
|
+
*/
|
|
99
|
+
private syncLayersToDefinition;
|
|
100
|
+
/**
|
|
101
|
+
* Create an McpToolContext for a plugin's MCP tool handler.
|
|
102
|
+
* Provides access to the layer stack, sketch state, and change notifications.
|
|
103
|
+
*/
|
|
104
|
+
createMcpToolContext(sketchId: string): McpToolContext;
|
|
105
|
+
/**
|
|
106
|
+
* Get the currently selected sketch ID for design operations.
|
|
107
|
+
* Returns the single selected sketch, or throws if none/multiple selected.
|
|
108
|
+
*/
|
|
109
|
+
requireSelectedSketchId(): string;
|
|
86
110
|
/** Emit a mutation event for external listeners (WebSocket broadcast, sidecar IPC). */
|
|
87
111
|
emitMutation(type: EditorMutationType, payload: unknown): void;
|
|
88
112
|
}
|