@pascal-app/mcp 1.0.5 → 1.0.7
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 +31 -10
- package/dist/bin/pascal-mcp.js +2 -0
- package/dist/bridge/agent-session.d.ts +2 -1
- package/dist/bridge/agent-session.d.ts.map +1 -1
- package/dist/bridge/agent-session.js +0 -1
- package/dist/bridge/scene-bridge.d.ts +21 -10
- package/dist/bridge/scene-bridge.d.ts.map +1 -1
- package/dist/bridge/scene-bridge.js +178 -194
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/safe-fetch.d.ts +6 -0
- package/dist/lib/safe-fetch.d.ts.map +1 -1
- package/dist/lib/safe-fetch.js +135 -41
- package/dist/operations/scene-operations.d.ts +7 -0
- package/dist/operations/scene-operations.d.ts.map +1 -1
- package/dist/operations/scene-operations.js +4 -0
- package/dist/prompts/from-brief.js +1 -1
- package/dist/prompts/iterate-on-feedback.js +1 -1
- package/dist/prompts/renovation-from-photos.js +1 -1
- package/dist/prompts/scene-guidance.js +2 -2
- package/dist/resources/agent-guide.d.ts.map +1 -1
- package/dist/resources/agent-guide.js +8 -3
- package/dist/resources/catalog-items.d.ts +4 -1
- package/dist/resources/catalog-items.d.ts.map +1 -1
- package/dist/resources/catalog-items.js +14 -6
- package/dist/server.d.ts +9 -5
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +21 -5
- package/dist/templates/empty-studio.d.ts.map +1 -1
- package/dist/templates/empty-studio.js +2 -3
- package/dist/templates/garden-house.d.ts.map +1 -1
- package/dist/templates/garden-house.js +2 -3
- package/dist/templates/two-bedroom.d.ts.map +1 -1
- package/dist/templates/two-bedroom.js +2 -3
- package/dist/tools/add-column.d.ts.map +1 -1
- package/dist/tools/add-column.js +9 -6
- package/dist/tools/add-object.d.ts +44 -5
- package/dist/tools/add-object.d.ts.map +1 -1
- package/dist/tools/add-object.js +75 -21
- package/dist/tools/asset-catalog.d.ts +5 -6
- package/dist/tools/asset-catalog.d.ts.map +1 -1
- package/dist/tools/asset-catalog.js +1 -9
- package/dist/tools/author-scene.d.ts +8 -5
- package/dist/tools/author-scene.d.ts.map +1 -1
- package/dist/tools/author-scene.js +302 -51
- package/dist/tools/clear-scene.js +2 -2
- package/dist/tools/collections.d.ts.map +1 -1
- package/dist/tools/collections.js +8 -5
- package/dist/tools/honest-patch-guard.js +6 -5
- package/dist/tools/hosted-services.d.ts.map +1 -1
- package/dist/tools/hosted-services.js +2 -2
- package/dist/tools/index.d.ts +7 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -9
- package/dist/tools/local-geometry-scripts.d.ts.map +1 -1
- package/dist/tools/local-geometry-scripts.js +7 -2
- package/dist/tools/patch-guards.d.ts.map +1 -1
- package/dist/tools/patch-guards.js +24 -14
- package/dist/tools/project-files.d.ts.map +1 -1
- package/dist/tools/project-files.js +2 -2
- package/dist/tools/room-tools.d.ts +1 -0
- package/dist/tools/room-tools.d.ts.map +1 -1
- package/dist/tools/room-tools.js +11 -8
- package/dist/tools/scene-scope.d.ts +4 -0
- package/dist/tools/scene-scope.d.ts.map +1 -0
- package/dist/tools/scene-scope.js +4 -0
- package/dist/tools/shared-tools.d.ts +0 -2
- package/dist/tools/shared-tools.d.ts.map +1 -1
- package/dist/tools/shared-tools.js +146 -31
- package/dist/tools/templates/create-house-from-brief.js +1 -1
- package/dist/tools/view-scene.js +2 -2
- package/examples/coordinate-conventions-demo.md +1 -0
- package/examples/photo-to-scene.md +1 -0
- package/examples/renovate-from-photos.md +2 -0
- package/package.json +10 -10
- package/dist/tools/create-unit.d.ts +0 -29
- package/dist/tools/create-unit.d.ts.map +0 -1
- package/dist/tools/create-unit.js +0 -36
- package/dist/tools/list-units.d.ts +0 -38
- package/dist/tools/list-units.d.ts.map +0 -1
- package/dist/tools/list-units.js +0 -61
- package/dist/tools/set-unit-members.d.ts +0 -22
- package/dist/tools/set-unit-members.d.ts.map +0 -1
- package/dist/tools/set-unit-members.js +0 -43
- package/dist/tools/unit-members.d.ts +0 -4
- package/dist/tools/unit-members.d.ts.map +0 -1
- package/dist/tools/unit-members.js +0 -24
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import './node-shims.js';
|
|
2
2
|
import { type NodeDeletionPlan, type NodeDeletionScene } from '@pascal-app/core';
|
|
3
3
|
import type { SceneGraph } from '@pascal-app/core/clone-scene-graph';
|
|
4
|
+
import { type SceneRuntime } from '@pascal-app/core/runtime';
|
|
4
5
|
import type { AnyNode, Collection, CollectionId, SceneMaterialId } from '@pascal-app/core/schema';
|
|
5
6
|
import { type AnyNodeId, type AnyNodeType, SceneMaterial } from '@pascal-app/core/schema';
|
|
6
|
-
import useScene from '@pascal-app/core/store';
|
|
7
7
|
import type { SceneMeta } from '../storage/types.js';
|
|
8
8
|
import { InMemoryAgentSession } from './agent-session.js';
|
|
9
9
|
export type ValidationError = {
|
|
@@ -40,18 +40,26 @@ export type MaterialUpsertPatch = {
|
|
|
40
40
|
export type Patch = CreatePatch | UpdatePatch | DeletePatch | MaterialUpsertPatch;
|
|
41
41
|
export type ActiveSceneMeta = Pick<SceneMeta, 'id' | 'name' | 'projectId' | 'ownerId' | 'thumbnailUrl' | 'version' | 'graphHash'>;
|
|
42
42
|
/** The `extra` bag `setScene` accepts — collections, materials, plugin state. */
|
|
43
|
-
type SetSceneExtra = Parameters<ReturnType<
|
|
43
|
+
type SetSceneExtra = Parameters<ReturnType<SceneRuntime['store']['getState']>['setScene']>[2];
|
|
44
44
|
/**
|
|
45
|
-
* Headless bridge to
|
|
45
|
+
* Headless bridge to a `@pascal-app/core` scene store: the editor's own (the default), or a
|
|
46
|
+
* detached scene's (`@pascal-app/core/runtime`), whose host passes it as `runtime`.
|
|
46
47
|
*
|
|
47
|
-
* All mutation flows through the real core store so undo/redo works via Zundo.
|
|
48
|
-
*
|
|
49
|
-
*
|
|
48
|
+
* All mutation flows through the real core store so undo/redo works via Zundo. Reads go through
|
|
49
|
+
* the runtime's reader (recorded on a detached scene), and writes run in its scope: its history
|
|
50
|
+
* environment, its id allocator, its disposal guard. No renderer is attached; `dirtyNodes`
|
|
51
|
+
* accumulates and can be drained via `flushDirty()` for observability.
|
|
50
52
|
*/
|
|
51
53
|
export declare class SceneBridge {
|
|
52
54
|
/** `applyPatch` takes `upsert_material` patches, in the patch's one history step. */
|
|
53
55
|
readonly supportsMaterialUpserts = true;
|
|
54
56
|
private activeScene;
|
|
57
|
+
private readonly runtime;
|
|
58
|
+
constructor(options?: {
|
|
59
|
+
runtime?: SceneRuntime;
|
|
60
|
+
});
|
|
61
|
+
private get store();
|
|
62
|
+
private write;
|
|
55
63
|
/** What the agent's session has kept: its named moments, and what it made. */
|
|
56
64
|
readonly agentSession: InMemoryAgentSession;
|
|
57
65
|
/**
|
|
@@ -76,7 +84,7 @@ export declare class SceneBridge {
|
|
|
76
84
|
loadJSON(json: string | SceneGraph): void;
|
|
77
85
|
/** Read a single node, or `null` if not present. */
|
|
78
86
|
getNode(id: AnyNodeId): AnyNode | null;
|
|
79
|
-
/** All nodes (
|
|
87
|
+
/** All nodes (a read-only view of the store's current nodes — do NOT mutate). */
|
|
80
88
|
getNodes(): Record<AnyNodeId, AnyNode>;
|
|
81
89
|
getCollections(): Record<CollectionId, Collection>;
|
|
82
90
|
getMaterials(): Record<SceneMaterialId, SceneMaterial>;
|
|
@@ -119,9 +127,9 @@ export declare class SceneBridge {
|
|
|
119
127
|
* `id`, generated by the schema default if they did `XxxNode.parse({...})`).
|
|
120
128
|
* Returns the generated id.
|
|
121
129
|
*/
|
|
122
|
-
createNode(
|
|
130
|
+
createNode(input: AnyNode, parentId?: AnyNodeId): AnyNodeId;
|
|
123
131
|
/** Update node fields (shallow merge through the core store). */
|
|
124
|
-
updateNode(id: AnyNodeId,
|
|
132
|
+
updateNode(id: AnyNodeId, input: Partial<AnyNode>): void;
|
|
125
133
|
/**
|
|
126
134
|
* Delete a node. If the node has children and `cascade === false`, throws.
|
|
127
135
|
* If `cascade` is true (or undefined and no children), delegates to the core
|
|
@@ -140,6 +148,7 @@ export declare class SceneBridge {
|
|
|
140
148
|
deletedIds: AnyNodeId[];
|
|
141
149
|
createdIds: AnyNodeId[];
|
|
142
150
|
};
|
|
151
|
+
private applyPatchInScope;
|
|
143
152
|
/**
|
|
144
153
|
* Preview what deleting `ids` does to `scene` with this bridge's semantics
|
|
145
154
|
* (core's store planner), without committing or minting default gutters.
|
|
@@ -160,6 +169,7 @@ export declare class SceneBridge {
|
|
|
160
169
|
createdIds: AnyNodeId[];
|
|
161
170
|
deletedIds: AnyNodeId[];
|
|
162
171
|
};
|
|
172
|
+
private deriveStructureInScope;
|
|
163
173
|
/** Undo. Returns the number of steps actually undone. */
|
|
164
174
|
undo(steps?: number): number;
|
|
165
175
|
/** Redo. Returns the number of steps actually redone. */
|
|
@@ -181,8 +191,9 @@ export declare class SceneBridge {
|
|
|
181
191
|
};
|
|
182
192
|
/** Clear the temporal undo/redo history. */
|
|
183
193
|
clearHistory(): void;
|
|
194
|
+
/** Runs `run` in the scene's scope: an operation planned here mints the runtime's ids. */
|
|
195
|
+
runInScene<T>(run: () => T): T;
|
|
184
196
|
runAsSingleHistoryStep<T>(run: () => T): T;
|
|
185
|
-
private reconcileDependentStructure;
|
|
186
197
|
/**
|
|
187
198
|
* Return the node whose `children` array (string or object form) contains
|
|
188
199
|
* the given id, or null if none. Used as a fallback when `parentId` is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/scene-bridge.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAA;AACrB,OAAO,
|
|
1
|
+
{"version":3,"file":"scene-bridge.d.ts","sourceRoot":"","sources":["../../src/bridge/scene-bridge.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAA;AACrB,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAQvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACjG,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,WAAW,EAGhB,aAAa,EACd,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,MAAM,MAAM,eAAe,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAC/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,qEAAqE;IACrE,QAAQ,EAAE,eAAe,EAAE,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAC/E,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CAAE,CAAA;AACjF,MAAM,MAAM,WAAW,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAC5E,qFAAqF;AACrF,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAA;AACpF,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,mBAAmB,CAAA;AACjF,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,SAAS,EACT,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,WAAW,CACnF,CAAA;AAED,iFAAiF;AACjF,KAAK,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7F;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,qFAAqF;IACrF,QAAQ,CAAC,uBAAuB,QAAO;IACvC,OAAO,CAAC,WAAW,CAA+B;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC,YAAY,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,YAAY,CAAA;KAAO,EAEnD;IAED,OAAO,KAAK,KAAK,GAEhB;IAED,OAAO,CAAC,KAAK;IAIb,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,uBAA6B;IAElD;;;OAGG;IACH,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAU1C;IAED,cAAc,IAAI,eAAe,GAAG,IAAI,CAEvC;IAED,gBAAgB,IAAI,IAAI,CAEvB;IAED,6EAA6E;IAC7E,WAAW,IAAI,IAAI,CAGlB;IAED,iDAAiD;IACjD,QAAQ,CACN,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EACjC,WAAW,EAAE,SAAS,EAAE,EACxB,KAAK,CAAC,EAAE,aAAa,GACpB,IAAI,CAKN;IAED,gFAAgF;IAChF,UAAU,IAAI,UAAU,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAoBlE;IAED;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAuDxC;IAED,oDAAoD;IACpD,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI,CAErC;IAED,iFAAiF;IACjF,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAErC;IAED,cAAc,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAEjD;IAED,YAAY,IAAI,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAOrD;IAED,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,IAAI,CAKlE;IAED,qBAAqB;IACrB,cAAc,IAAI,SAAS,EAAE,CAK5B;IAED;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,EAAE,CAqC1C;IAED;;;;;OAKG;IACH,WAAW,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,EAAE,CAmBpC;IAED,qEAAqE;IACrE,SAAS,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,EAAE,WAAW,CAAA;QAClB,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;QAC3B,OAAO,CAAC,EAAE,SAAS,CAAA;KACpB,GAAG,OAAO,EAAE,CAiBZ;IAED,4EAA4E;IAC5E,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAM9C;IAED;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAe1D;IAED,iEAAiE;IACjE,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAcvD;IAED;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,UAAQ,GAAG,MAAM,EAAE,CA6BnD;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG;QAC5B,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,SAAS,EAAE,CAAA;QACvB,UAAU,EAAE,SAAS,EAAE,CAAA;KACxB,CAEA;IAED,OAAO,CAAC,iBAAiB;IA+JzB;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAEzE;IAED;;;;;;;;;OASG;IACH,eAAe,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG;QAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QAAC,UAAU,EAAE,SAAS,EAAE,CAAA;KAAE,CAI5F;IAED,OAAO,CAAC,sBAAsB;IAyB9B,yDAAyD;IACzD,IAAI,CAAC,KAAK,SAAI,GAAG,MAAM,CAMtB;IAED,yDAAyD;IACzD,IAAI,CAAC,KAAK,SAAI,GAAG,MAAM,CAMtB;IAED;;;OAGG;IACH,aAAa,IAAI,gBAAgB,CAmBhC;IAED;;;OAGG;IACH,UAAU,IAAI,MAAM,EAAE,CAOrB;IAED,yCAAyC;IACzC,UAAU,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAMvD;IAED,4CAA4C;IAC5C,YAAY,IAAI,IAAI,CAEnB;IAED,0FAA0F;IAC1F,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAE7B;IAED,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzC;IAID;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAkB5B"}
|