@ifc-lite/mcp 0.20.2 → 0.22.1
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 +5 -0
- package/dist/headless-backend-store-stubs.d.ts +5 -5
- package/dist/headless-backend-store-stubs.d.ts.map +1 -1
- package/dist/headless-backend-store-stubs.js +17 -1
- package/dist/headless-backend-store-stubs.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +8 -0
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +21 -9
- package/dist/loader.js.map +1 -1
- package/dist/tools/entity-create.d.ts +3 -0
- package/dist/tools/entity-create.d.ts.map +1 -0
- package/dist/tools/entity-create.js +93 -0
- package/dist/tools/entity-create.js.map +1 -0
- package/dist/tools/flow-host.d.ts +13 -0
- package/dist/tools/flow-host.d.ts.map +1 -0
- package/dist/tools/flow-host.js +43 -0
- package/dist/tools/flow-host.js.map +1 -0
- package/dist/tools/flow.d.ts.map +1 -1
- package/dist/tools/flow.js +48 -18
- package/dist/tools/flow.js.map +1 -1
- package/dist/tools/mutate.d.ts.map +1 -1
- package/dist/tools/mutate.js +3 -29
- package/dist/tools/mutate.js.map +1 -1
- package/package.json +24 -23
package/README.md
CHANGED
|
@@ -100,6 +100,11 @@ The same `npx` command works as a stdio server in any MCP-aware client.
|
|
|
100
100
|
| Export | `export_ifc`, `export_csv`, `export_json`, `export_glb`, `export_obj`, `export_ifcx`, `export_pdf_report` |
|
|
101
101
|
| Viewer | `viewer_ask`, `viewer_open`, `viewer_close`, `viewer_status`, `viewer_colorize`, `viewer_isolate`, `viewer_hide`, `viewer_show`, `viewer_reset`, `viewer_fly_to`, `viewer_set_section`, `viewer_clear_section`, `viewer_color_by_storey`, `viewer_color_by_property`, `viewer_get_selection`, `viewer_wait_for_selection`, `viewer_describe_selection` |
|
|
102
102
|
|
|
103
|
+
`entity_create` accepts an optional `global_id` for the new entity's GlobalId
|
|
104
|
+
(IfcRoot subtypes only; written to attribute 0). It must be a valid 22-character
|
|
105
|
+
IFC GUID not already carried by an entity in the model; an invalid or duplicate
|
|
106
|
+
value is refused with `INVALID_INPUT` and nothing is queued.
|
|
107
|
+
|
|
103
108
|
`model_diff` compares by GlobalId, which reads a from-scratch re-export as the
|
|
104
109
|
whole model deleted and re-added. Pass `by_content: true` to run the
|
|
105
110
|
`@ifc-lite/diff` engine's content-keyed matching instead; it is data-scope only
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The `bim.store` authoring surfaces MCP v0.1 deliberately does not implement:
|
|
3
|
-
* cost (#4857)
|
|
4
|
-
*
|
|
5
|
-
* silently no-opping.
|
|
3
|
+
* cost (#4857), structural analysis (#5167 S.1), and openings, hosted doors
|
|
4
|
+
* and windows, type objects and materials (#6232). Agent flows author through `entity_create` with raw
|
|
5
|
+
* attributes, so these throw loudly rather than silently no-opping.
|
|
6
6
|
*
|
|
7
7
|
* Composed into one spread so `headless-backend.ts` gains a surface, not a
|
|
8
8
|
* line, each time another factory-backed store surface is added to the SDK.
|
|
9
9
|
*/
|
|
10
|
-
import type { CostStoreBackendMethods, StructuralStoreBackendMethods } from '@ifc-lite/sdk';
|
|
11
|
-
export declare function unsupportedStoreAuthoring(): CostStoreBackendMethods & StructuralStoreBackendMethods;
|
|
10
|
+
import type { CostStoreBackendMethods, ModellingStoreBackendMethods, StructuralStoreBackendMethods } from '@ifc-lite/sdk';
|
|
11
|
+
export declare function unsupportedStoreAuthoring(): CostStoreBackendMethods & StructuralStoreBackendMethods & ModellingStoreBackendMethods;
|
|
12
12
|
//# sourceMappingURL=headless-backend-store-stubs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless-backend-store-stubs.d.ts","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"headless-backend-store-stubs.d.ts","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AAsBvB,wBAAgB,yBAAyB,IAAI,uBAAuB,GAAG,6BAA6B,GAAG,4BAA4B,CAElI"}
|
|
@@ -3,7 +3,23 @@
|
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { costStoreStubs } from './headless-backend-cost-store.js';
|
|
5
5
|
import { structuralStoreStubs } from './headless-backend-structural-store.js';
|
|
6
|
+
const unsupported = (method) => () => {
|
|
7
|
+
throw new Error(`${method} not supported in MCP v0.1; use entity_create`);
|
|
8
|
+
};
|
|
9
|
+
function modellingStoreStubs() {
|
|
10
|
+
return {
|
|
11
|
+
addOpening: unsupported('addOpening'),
|
|
12
|
+
addHostedDoor: unsupported('addHostedDoor'),
|
|
13
|
+
addHostedWindow: unsupported('addHostedWindow'),
|
|
14
|
+
addElementType: unsupported('addElementType'),
|
|
15
|
+
assignType: unsupported('assignType'),
|
|
16
|
+
addMaterial: unsupported('addMaterial'),
|
|
17
|
+
addMaterialLayerSet: unsupported('addMaterialLayerSet'),
|
|
18
|
+
addMaterialLayerSetUsage: unsupported('addMaterialLayerSetUsage'),
|
|
19
|
+
assignMaterial: unsupported('assignMaterial'),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
6
22
|
export function unsupportedStoreAuthoring() {
|
|
7
|
-
return { ...costStoreStubs(), ...structuralStoreStubs() };
|
|
23
|
+
return { ...costStoreStubs(), ...structuralStoreStubs(), ...modellingStoreStubs() };
|
|
8
24
|
}
|
|
9
25
|
//# sourceMappingURL=headless-backend-store-stubs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless-backend-store-stubs.js","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"headless-backend-store-stubs.js","sourceRoot":"","sources":["../src/headless-backend-store-stubs.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiB/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAE9E,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAU,EAAE;IAClD,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,+CAA+C,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,SAAS,mBAAmB;IAC1B,OAAO;QACL,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;QACrC,aAAa,EAAE,WAAW,CAAC,eAAe,CAAC;QAC3C,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC;QAC/C,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC;QAC7C,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;QACrC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC;QACvC,mBAAmB,EAAE,WAAW,CAAC,qBAAqB,CAAC;QACvD,wBAAwB,EAAE,WAAW,CAAC,0BAA0B,CAAC;QACjE,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,EAAE,GAAG,cAAc,EAAE,EAAE,GAAG,oBAAoB,EAAE,EAAE,GAAG,mBAAmB,EAAE,EAAE,CAAC;AACtF,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,7 +25,7 @@ export { HeadlessLikeBackend } from './headless-backend.js';
|
|
|
25
25
|
export { ViewerManager } from './viewer-manager.js';
|
|
26
26
|
import { dirname, join } from 'node:path';
|
|
27
27
|
import { fileURLToPath } from 'node:url';
|
|
28
|
-
import { readPackageVersion } from '@ifc-lite/data';
|
|
28
|
+
import { readPackageVersion } from '@ifc-lite/data/node';
|
|
29
29
|
import { MCPServer } from './server.js';
|
|
30
30
|
import { buildDefaultToolRegistry } from './tools/index.js';
|
|
31
31
|
import { buildDefaultResourceRegistry } from './resources/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG3E,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGtF,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG3E,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAGtF,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAyB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEhE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CACvC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,CACpE,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAkC,EAAE;IAClE,OAAO,IAAI,SAAS,CAAC;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,UAAU;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,wBAAwB,EAAE;QAC/C,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,4BAA4B,EAAE;QAC3D,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,0BAA0B,EAAE;KACtD,CAAC,CAAC;AACL,CAAC"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -6,4 +6,12 @@ export interface LoadIfcOptions {
|
|
|
6
6
|
allowedPaths?: string[];
|
|
7
7
|
}
|
|
8
8
|
export declare function loadIfcModel(filePath: string, opts?: LoadIfcOptions): Promise<LoadedModel>;
|
|
9
|
+
/**
|
|
10
|
+
* Parse IFC bytes already in memory (a flow's `model.openFromSource`) into a
|
|
11
|
+
* `LoadedModel` — the same unwrap, signature check and parser setup as
|
|
12
|
+
* {@link loadIfcModel}, which reads the file and calls this. `label` names the
|
|
13
|
+
* source in errors; it defaults to `name`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function loadIfcModelFromBytes(bytes: Uint8Array, name: string, modelId?: string, label?: string): Promise<LoadedModel>;
|
|
16
|
+
export declare function deriveModelId(name: string): string;
|
|
9
17
|
//# sourceMappingURL=loader.d.ts.map
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAepG;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAkDjI;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD"}
|
package/dist/loader.js
CHANGED
|
@@ -26,17 +26,30 @@ export async function loadIfcModel(filePath, opts = {}) {
|
|
|
26
26
|
throw new Error(`Path '${absolute}' is outside the allowed roots`);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
const buffer = await readFile(absolute);
|
|
30
30
|
if (buffer.byteLength === 0) {
|
|
31
31
|
throw new Error(`'${absolute}' is empty (0 bytes)`);
|
|
32
32
|
}
|
|
33
|
+
const loaded = await loadIfcModelFromBytes(buffer, basename(absolute), opts.modelId, absolute);
|
|
34
|
+
return { ...loaded, filePath: absolute };
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Parse IFC bytes already in memory (a flow's `model.openFromSource`) into a
|
|
38
|
+
* `LoadedModel` — the same unwrap, signature check and parser setup as
|
|
39
|
+
* {@link loadIfcModel}, which reads the file and calls this. `label` names the
|
|
40
|
+
* source in errors; it defaults to `name`.
|
|
41
|
+
*/
|
|
42
|
+
export async function loadIfcModelFromBytes(bytes, name, modelId, label = name) {
|
|
43
|
+
if (bytes.byteLength === 0) {
|
|
44
|
+
throw new Error(`'${label}' is empty (0 bytes)`);
|
|
45
|
+
}
|
|
33
46
|
// Transparent .ifcZIP unwrap (issue #1494) — cheap magic-byte no-op for an
|
|
34
47
|
// ordinary .ifc file.
|
|
35
|
-
buffer = Buffer.from(await unwrapIfcZipView(
|
|
48
|
+
const buffer = Buffer.from(await unwrapIfcZipView(bytes));
|
|
36
49
|
// Cheap signature check; full parser also bails on malformed STEP.
|
|
37
50
|
const headerSnippet = buffer.subarray(0, Math.min(buffer.byteLength, 256)).toString('ascii');
|
|
38
51
|
if (!headerSnippet.includes('ISO-10303-21')) {
|
|
39
|
-
throw new Error(`'${
|
|
52
|
+
throw new Error(`'${label}' is not a valid IFC/STEP file`);
|
|
40
53
|
}
|
|
41
54
|
const parser = new IfcParser();
|
|
42
55
|
// The parser writes progress to console.* — silence it during MCP loads
|
|
@@ -55,23 +68,22 @@ export async function loadIfcModel(filePath, opts = {}) {
|
|
|
55
68
|
console.log = origLog;
|
|
56
69
|
console.warn = origWarn;
|
|
57
70
|
}
|
|
58
|
-
const id =
|
|
59
|
-
const backend = new HeadlessLikeBackend(store,
|
|
71
|
+
const id = modelId ?? deriveModelId(name);
|
|
72
|
+
const backend = new HeadlessLikeBackend(store, name, id);
|
|
60
73
|
const bim = createBimContext({ backend });
|
|
61
74
|
return {
|
|
62
75
|
id,
|
|
63
|
-
name
|
|
76
|
+
name,
|
|
64
77
|
bim,
|
|
65
78
|
store,
|
|
66
79
|
backend,
|
|
67
|
-
filePath: absolute,
|
|
68
80
|
// Computed from the POST-unwrap bytes, so an .ifcZIP is fingerprinted by
|
|
69
81
|
// the STEP it contains — the viewer's rule (#5138).
|
|
70
|
-
sourceFingerprint: sourceModelIdentity(
|
|
82
|
+
sourceFingerprint: sourceModelIdentity(name, buffer),
|
|
71
83
|
loadedAt: Date.now(),
|
|
72
84
|
};
|
|
73
85
|
}
|
|
74
|
-
function deriveModelId(name) {
|
|
86
|
+
export function deriveModelId(name) {
|
|
75
87
|
// Strip extension, replace spaces with underscores, lowercase. Keeps the
|
|
76
88
|
// ID URL-safe so it round-trips through `Mcp-Session-Id` headers and
|
|
77
89
|
// resource URIs.
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAS5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAuB,EAAE;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,gCAAgC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAS5D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAuB,EAAE;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,gCAAgC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,QAAQ,sBAAsB,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/F,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAAiB,EAAE,IAAY,EAAE,OAAgB,EAAE,KAAK,GAAG,IAAI;IACzG,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;IACnD,CAAC;IAED,2EAA2E;IAC3E,sBAAsB;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1D,mEAAmE;IACnE,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gCAAgC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAC/B,wEAAwE;IACxE,oDAAoD;IACpD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9B,OAAO,CAAC,GAAG,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;IACpC,OAAO,CAAC,IAAI,GAAG,GAAS,EAAE,CAAC,SAAS,CAAC;IACrC,IAAI,KAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACrC,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CACvB,CAAC;QACjB,KAAK,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAChD,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC;QACtB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,GAAG,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,GAAG,GAAe,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtD,OAAO;QACL,EAAE;QACF,IAAI;QACJ,GAAG;QACH,KAAK;QACL,OAAO;QACP,yEAAyE;QACzE,oDAAoD;QACpD,iBAAiB,EAAE,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;QACpD,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,yEAAyE;IACzE,qEAAqE;IACrE,iBAAiB;IACjB,OAAO,IAAI;SACR,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC;SACtC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;SAChC,WAAW,EAAE,IAAI,OAAO,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-create.d.ts","sourceRoot":"","sources":["../../src/tools/entity-create.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA4CvC,eAAO,MAAM,YAAY,EAAE,IA2C1B,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* `entity_create`: the MCP surface's one STEP-level creator.
|
|
6
|
+
*
|
|
7
|
+
* `global_id` is the MCP spelling of the `GlobalId` every in-store builder and
|
|
8
|
+
* `bim.store.add*` accept (#5167 Phase 2): a caller that re-runs the same
|
|
9
|
+
* authoring step can pin the identity instead of minting a fresh one each run.
|
|
10
|
+
* It is validated with the encoder's own rule (`isValidIfcGuid`) and written
|
|
11
|
+
* to positional slot 0, which is where `GlobalId` sits on every `IfcRoot`
|
|
12
|
+
* subtype. Two refusals, both `INVALID_INPUT`, both before the editor exists
|
|
13
|
+
* so a refused call leaves the session untouched:
|
|
14
|
+
*
|
|
15
|
+
* - the class has no GlobalId (not an `IfcRoot` subtype), or `attributes[0]`
|
|
16
|
+
* already names a different one: silently overwriting either would author
|
|
17
|
+
* something the caller did not ask for;
|
|
18
|
+
* - the GlobalId is already carried by an entity in the effective model
|
|
19
|
+
* (parsed or created this session). The store editor does not check this
|
|
20
|
+
* itself, and a duplicate GlobalId corrupts every GlobalId-keyed lookup.
|
|
21
|
+
*/
|
|
22
|
+
import { isValidIfcGuid } from '@ifc-lite/encoding';
|
|
23
|
+
import { getInheritanceChainAcrossSchemas, normalizeIfcTypeName } from '@ifc-lite/parser';
|
|
24
|
+
import { findByGlobalId, okResult, resolveModel } from './util.js';
|
|
25
|
+
import { stepText } from '../overlay.js';
|
|
26
|
+
import { ToolErrorCode, ToolExecutionError } from '../errors.js';
|
|
27
|
+
function invalid(message, details) {
|
|
28
|
+
return new ToolExecutionError({ code: ToolErrorCode.INVALID_INPUT, message, details });
|
|
29
|
+
}
|
|
30
|
+
/** Positional attributes with the requested GlobalId in slot 0, or a refusal. */
|
|
31
|
+
function withGlobalId(m, type, attrs, globalId) {
|
|
32
|
+
if (!isValidIfcGuid(globalId)) {
|
|
33
|
+
throw invalid(`global_id "${globalId}" is not a valid IFC GlobalId (22 characters of the IFC base64 alphabet, first character 0-3).`, { globalId });
|
|
34
|
+
}
|
|
35
|
+
if (!getInheritanceChainAcrossSchemas(normalizeIfcTypeName(type)).includes('IfcRoot')) {
|
|
36
|
+
throw invalid(`${type} is not an IfcRoot subtype, so it has no GlobalId; omit global_id.`, { type, globalId });
|
|
37
|
+
}
|
|
38
|
+
const positional = attrs.length > 0 ? stepText(attrs[0]) : undefined;
|
|
39
|
+
if (positional !== undefined && positional !== globalId) {
|
|
40
|
+
throw invalid(`global_id "${globalId}" conflicts with attributes[0] "${positional}"; give the GlobalId once.`, { globalId, positional });
|
|
41
|
+
}
|
|
42
|
+
const holder = findByGlobalId(m, globalId);
|
|
43
|
+
if (holder !== null) {
|
|
44
|
+
throw invalid(`GlobalId "${globalId}" is already used by #${holder} in model '${m.id}'; GlobalIds must be unique.`, { globalId, expressId: holder, modelId: m.id });
|
|
45
|
+
}
|
|
46
|
+
const out = [...attrs];
|
|
47
|
+
out[0] = globalId;
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
export const entityCreate = {
|
|
51
|
+
name: 'entity_create',
|
|
52
|
+
description: 'Create a new IFC entity with raw positional attributes. Returns the new expressId. ' +
|
|
53
|
+
'Optional `global_id` sets the GlobalId of an IfcRoot subtype (attribute 0); it must be a valid ' +
|
|
54
|
+
'22-character IFC GUID not already used in the model.',
|
|
55
|
+
scope: 'mutate',
|
|
56
|
+
inputSchema: {
|
|
57
|
+
type: 'object',
|
|
58
|
+
properties: {
|
|
59
|
+
model_id: { type: 'string' },
|
|
60
|
+
type: { type: 'string', description: 'IFC entity name, e.g. IfcWall.' },
|
|
61
|
+
attributes: {
|
|
62
|
+
type: 'array',
|
|
63
|
+
description: 'Positional STEP attributes (strings, numbers, booleans, or refs of form "#42").',
|
|
64
|
+
items: {},
|
|
65
|
+
},
|
|
66
|
+
global_id: {
|
|
67
|
+
type: 'string',
|
|
68
|
+
minLength: 22,
|
|
69
|
+
maxLength: 22,
|
|
70
|
+
description: 'GlobalId for the new entity (IfcRoot subtypes only), written to attribute 0. ' +
|
|
71
|
+
'A 22-character IFC GUID; refused if invalid or already used in the model.',
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
required: ['type'],
|
|
75
|
+
additionalProperties: false,
|
|
76
|
+
},
|
|
77
|
+
handler(input, ctx) {
|
|
78
|
+
const m = resolveModel(ctx, input.model_id);
|
|
79
|
+
const type = input.type;
|
|
80
|
+
let attrs = input.attributes ?? [];
|
|
81
|
+
const globalId = input.global_id;
|
|
82
|
+
if (globalId !== undefined)
|
|
83
|
+
attrs = withGlobalId(m, type, attrs, globalId);
|
|
84
|
+
const editor = m.backend.ensureEditor();
|
|
85
|
+
const ref = editor.addEntity(type, attrs);
|
|
86
|
+
return okResult(`Created ${type} as #${ref.expressId}.`, {
|
|
87
|
+
expressId: ref.expressId,
|
|
88
|
+
type,
|
|
89
|
+
...(globalId !== undefined ? { globalId } : {}),
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=entity-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-create.js","sourceRoot":"","sources":["../../src/tools/entity-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `FlowHost` `run_flow` hands the graph. A `HeadlessLikeBackend` answers
|
|
3
|
+
* for one model, so `openModel` (`model.openFromSource`) loads the bytes
|
|
4
|
+
* through the same loader `load_model` uses, registers the result in the
|
|
5
|
+
* session's model registry (later tool calls can address it by id), and
|
|
6
|
+
* makes it the model `bim`, `defaultModelId` and `tables()` answer for for
|
|
7
|
+
* the rest of the run.
|
|
8
|
+
*/
|
|
9
|
+
import type { Capability } from '@ifc-lite/extensions';
|
|
10
|
+
import type { FlowHost } from '@ifc-lite/flow-nodes';
|
|
11
|
+
import type { LoadedModel, ModelRegistry } from '../context.js';
|
|
12
|
+
export declare function createMcpFlowHost(initial: LoadedModel, registry: ModelRegistry, networkGrants: readonly Capability[]): FlowHost;
|
|
13
|
+
//# sourceMappingURL=flow-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-host.d.ts","sourceRoot":"","sources":["../../src/tools/flow-host.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAUhE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,UAAU,EAAE,GAAG,QAAQ,CA6B/H"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
import { deriveModelId, loadIfcModelFromBytes } from '../loader.js';
|
|
5
|
+
/** `base`, or `base_2`, `base_3`, … — the first id the registry does not hold yet. */
|
|
6
|
+
function freeModelId(registry, base) {
|
|
7
|
+
let id = base;
|
|
8
|
+
for (let n = 2; registry.get(id) !== null; n += 1)
|
|
9
|
+
id = `${base}_${n}`;
|
|
10
|
+
return id;
|
|
11
|
+
}
|
|
12
|
+
export function createMcpFlowHost(initial, registry, networkGrants) {
|
|
13
|
+
let active = initial;
|
|
14
|
+
return {
|
|
15
|
+
get bim() { return active.bim; },
|
|
16
|
+
networkGrants,
|
|
17
|
+
get defaultModelId() { return active.id; },
|
|
18
|
+
// `tables()` gives `table.joinByKey`'s tag/property strategies the entity
|
|
19
|
+
// table, as the CLI and viewer hosts do — without it those strategies fail
|
|
20
|
+
// at run time over MCP only. The mutation view is the one `bim.mutate`
|
|
21
|
+
// writes through, so a join sees what an earlier node in the run wrote.
|
|
22
|
+
// It honours `modelId`, as the CLI's does: once `model.openFromSource`
|
|
23
|
+
// switches the active model mid-run, a join aimed at the earlier model
|
|
24
|
+
// must get that model's table, not the new one's (#5935 review).
|
|
25
|
+
tables: (modelId) => {
|
|
26
|
+
const model = modelId === undefined || modelId === active.id ? active : registry.get(modelId);
|
|
27
|
+
if (!model)
|
|
28
|
+
return undefined;
|
|
29
|
+
return {
|
|
30
|
+
entities: model.store.entities,
|
|
31
|
+
mutationView: model.backend.getOrCreateMutationView(),
|
|
32
|
+
strings: model.store.strings ?? null,
|
|
33
|
+
};
|
|
34
|
+
},
|
|
35
|
+
async openModel(bytes, name) {
|
|
36
|
+
const loaded = await loadIfcModelFromBytes(bytes, name, freeModelId(registry, deriveModelId(name)));
|
|
37
|
+
registry.add(loaded);
|
|
38
|
+
active = loaded;
|
|
39
|
+
return { modelId: loaded.id };
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=flow-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-host.js","sourceRoot":"","sources":["../../src/tools/flow-host.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAc/D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEpE,sFAAsF;AACtF,SAAS,WAAW,CAAC,QAAuB,EAAE,IAAY;IACxD,IAAI,EAAE,GAAG,IAAI,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;QAAE,EAAE,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;IACvE,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAoB,EAAE,QAAuB,EAAE,aAAoC;IACnH,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,OAAO;QACL,IAAI,GAAG,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,aAAa;QACb,IAAI,cAAc,KAAK,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1C,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,iEAAiE;QACjE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9F,IAAI,CAAC,KAAK;gBAAE,OAAO,SAAS,CAAC;YAC7B,OAAO;gBACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;gBAC9B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE;gBACrD,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;aACrC,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI;YACzB,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,GAAG,MAAM,CAAC;YAChB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/tools/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"AAgFA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA2OvC,eAAO,MAAM,SAAS,EAAE,IAAI,EAAgC,CAAC"}
|
package/dist/tools/flow.js
CHANGED
|
@@ -34,10 +34,25 @@
|
|
|
34
34
|
* property-writing graph (like the shipped fire-rating-audit example) runs
|
|
35
35
|
* fine; a column-authoring graph will report a failed node until that
|
|
36
36
|
* backend gap is closed separately.
|
|
37
|
+
*
|
|
38
|
+
* `run_flow` is the OTHER caller (besides `ifc-lite flow run`) allowed to
|
|
39
|
+
* read `process.env` for a flow graph (#5167 phase 3.5), following the same
|
|
40
|
+
* shared `@ifc-lite/flow-nodes` `secrets.ts` pipeline the CLI uses:
|
|
41
|
+
* `validateSecretReferences` runs before anything else touches the graph
|
|
42
|
+
* (an undeclared or unset `{{secret:NAME}}` is a `ToolExecutionError`, not a
|
|
43
|
+
* silent empty string), `interpolateSecrets` substitutes into a throwaway
|
|
44
|
+
* document, and `redactDeep` scrubs the whole tool result — outputs, logs,
|
|
45
|
+
* errors — right before it crosses the MCP response boundary, so a secret
|
|
46
|
+
* that comes back inside a response body a node fetched is still caught.
|
|
47
|
+
* `networkGrants` is always the graph's own declared `network.fetch:<host>`
|
|
48
|
+
* capabilities, independent of the (absent, here) general capability gate —
|
|
49
|
+
* see `FlowHost.networkGrants`'s doc comment.
|
|
37
50
|
*/
|
|
38
51
|
import { readFile } from 'node:fs/promises';
|
|
39
52
|
import { declaredInputKeys, describeFlowIO, migrateFlowDocument, MemoryTrackingStore, runFlow, unknownInputKeys, validateFlowDocument, validateFlowWiring, } from '@ifc-lite/flow';
|
|
40
|
-
import {
|
|
53
|
+
import { parseCapabilities } from '@ifc-lite/extensions';
|
|
54
|
+
import { buildRedactionMap, createStandardRegistry, headlessFeatures, interpolateSecrets, redactDeep, resolveSecretValues, usableSecretNames, validateSecretReferences, } from '@ifc-lite/flow-nodes';
|
|
55
|
+
import { createMcpFlowHost } from './flow-host.js';
|
|
41
56
|
import { okResult, paginate, resolveModel } from './util.js';
|
|
42
57
|
import { ToolErrorCode, ToolExecutionError } from '../errors.js';
|
|
43
58
|
import { resolveSafePath } from '../safe-path.js';
|
|
@@ -195,25 +210,36 @@ const runFlowTool = {
|
|
|
195
210
|
message: `inputs key(s) ${unknown.map((k) => `"${k}"`).join(', ')} name no declared parameter${known.length > 0 ? `; this graph declares ${known.join(', ')}` : ''}.`,
|
|
196
211
|
});
|
|
197
212
|
}
|
|
213
|
+
// Capabilities first, so a malformed one is reported as itself rather
|
|
214
|
+
// than as every secret being undeclared (#5446 review).
|
|
215
|
+
const capsResult = parseCapabilities(doc.capabilities);
|
|
216
|
+
if (!capsResult.ok) {
|
|
217
|
+
throw new ToolExecutionError({
|
|
218
|
+
code: ToolErrorCode.INVALID_INPUT,
|
|
219
|
+
message: `the graph declares malformed capabilities: ${capsResult.errors.map((e) => e.message).join('; ')}`,
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
// Secrets: validated against the real environment BEFORE anything else
|
|
223
|
+
// touches the graph (see module doc above).
|
|
224
|
+
const secretErrors = validateSecretReferences(doc, process.env);
|
|
225
|
+
if (secretErrors.length > 0) {
|
|
226
|
+
throw new ToolExecutionError({
|
|
227
|
+
code: ToolErrorCode.INVALID_INPUT,
|
|
228
|
+
message: `${secretErrors.length} secret reference problem(s): ${secretErrors.map((e) => e.message).join('; ')}`,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
const secretValues = resolveSecretValues(doc, process.env);
|
|
232
|
+
const redaction = buildRedactionMap(secretValues);
|
|
233
|
+
const runDoc = interpolateSecrets(doc, secretValues);
|
|
198
234
|
const model = resolveModel(ctx, input.model_id);
|
|
199
|
-
// `
|
|
200
|
-
//
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const host = {
|
|
204
|
-
bim: model.bim,
|
|
205
|
-
defaultModelId: model.id,
|
|
206
|
-
tables: () => ({
|
|
207
|
-
entities: model.store.entities,
|
|
208
|
-
mutationView: model.backend.getOrCreateMutationView(),
|
|
209
|
-
strings: model.store.strings ?? null,
|
|
210
|
-
}),
|
|
211
|
-
};
|
|
212
|
-
const result = await runFlow(doc, {
|
|
235
|
+
// `networkGrants` is the graph's own declared capabilities (module doc);
|
|
236
|
+
// `model.openFromSource` can switch the host to a model it opened.
|
|
237
|
+
const host = createMcpFlowHost(model, ctx.registry, capsResult.value);
|
|
238
|
+
const result = await runFlow(runDoc, {
|
|
213
239
|
host,
|
|
214
240
|
registry,
|
|
215
241
|
inputs: rawInputs,
|
|
216
|
-
features: headlessFeatures(
|
|
242
|
+
features: headlessFeatures(usableSecretNames(process.env)),
|
|
217
243
|
modelRevisions: { [model.id]: 0 },
|
|
218
244
|
tracking: new MemoryTrackingStore(),
|
|
219
245
|
signal: ctx.signal,
|
|
@@ -222,9 +248,13 @@ const runFlowTool = {
|
|
|
222
248
|
const statuses = {};
|
|
223
249
|
for (const r of result.reports)
|
|
224
250
|
statuses[r.status] = (statuses[r.status] ?? 0) + 1;
|
|
251
|
+
// Redacted at the OUTER boundary — the whole tool result, right before
|
|
252
|
+
// it crosses back to the MCP client — so a secret that came back inside
|
|
253
|
+
// a fetched response body (an output or an error message) is caught
|
|
254
|
+
// too, not just the literal param it was interpolated into.
|
|
225
255
|
return okResult(result.ok
|
|
226
256
|
? `Flow '${doc.name}' ran: ${outputs.length} output(s).`
|
|
227
|
-
: `Flow '${doc.name}' FAILED.`, {
|
|
257
|
+
: `Flow '${doc.name}' FAILED.`, redactDeep({
|
|
228
258
|
ok: result.ok,
|
|
229
259
|
nodes: statuses,
|
|
230
260
|
writes: result.writes,
|
|
@@ -232,7 +262,7 @@ const runFlowTool = {
|
|
|
232
262
|
outputs,
|
|
233
263
|
errors: result.log.filter((l) => l.level === 'error'),
|
|
234
264
|
warnings: result.log.filter((l) => l.level === 'warn'),
|
|
235
|
-
});
|
|
265
|
+
}, redaction));
|
|
236
266
|
},
|
|
237
267
|
};
|
|
238
268
|
export const flowTools = [describeFlow, runFlowTool];
|
package/dist/tools/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/tools/flow.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GAMnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,MAAM,eAAe,GAAG;IACtB,IAAI,EAAE,EAAE,WAAW,EAAE,kFAAkF,EAAE;IACzG,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sDAAsD,EAAE;CAC1F,CAAC;AAEX,yGAAyG;AACzG,KAAK,UAAU,aAAa,CAAC,KAA8B,EAAE,GAAgB;IAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC;QACtD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,kBAAkB,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,2BAA4B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnI,CAAC;IACH,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,kBAAkB,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,uBAAwB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACjJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,kBAAkB,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,aAAa,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC,CAAC;AACnI,CAAC;AAED,+NAA+N;AAC/N,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,QAAwB,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,YAAY,GAAS;IACzB,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,oGAAoG;QACpG,mGAAmG;QACnG,6DAA6D;IAC/D,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAE,KAAK,EAAE;IACzF,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,QAAQ,CAAC,0CAA0C,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc,EAAE;gBAC9F,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,MAAM,CAAC,QAAQ;aAC7B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,qEAAqE;QACrE,iEAAiE;QACjE,mEAAmE;QACnE,sDAAsD;QACtD,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC;QACpC,OAAO,QAAQ,CACb,EAAE;YACA,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,cAAc,EAAE,CAAC,OAAO,CAAC,MAAM,aAAa;YAC/F,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,SAAS,WAAW,CAAC,MAAM,qBAAqB,EAC/E,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,CAC3B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,CAAW,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAE,CAAW,CAAC,IAAI,CAAC,IAAI,OAAQ,CAAW,CAAC,GAAG,KAAK,QAAQ,CAAC;AACzJ,CAAC;AAED,yLAAyL;AACzL,SAAS,aAAa,CAAC,CAAU;IAC/B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAiB,EAAE,eAAe,CAAC,CAAC;IAC5D,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AAC/G,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA0B;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvC,KAAK,OAAO;YACV,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/G,CAAC;AACH,CAAC;AAED,gHAAgH;AAChH,SAAS,eAAe,CAAC,MAAiB;IACxC,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC,CAAC,QAAQ;YAAE,SAAS;QAC1B,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9B,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,WAAW,GAAS;IACxB,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,iGAAiG;QACjG,gGAAgG;QAChG,wGAAwG;QACxG,4GAA4G;IAC9G,KAAK,EAAE,QAAQ;IACf,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,eAAe;YAClB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4DAA4D,EAAE;YACvG,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;gBAChE,oBAAoB,EAAE,IAAI;aAC3B;SACF;QACD,oBAAoB,EAAE,KAAK;KAC5B;IACD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,IAAI,EAAE,aAAa,CAAC,aAAa;gBACjC,OAAO,EAAE,0CAA0C,MAAM,CAAC,QAAQ,CAAC,MAAM,cAAc;gBACvF,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE;aAC1C,CAAC,CAAC;QACL,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACvB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,IAAI,EAAE,aAAa,CAAC,aAAa;gBACjC,OAAO,EAAE,qBAAqB,MAAM,CAAC,MAAM,+CAA+C;gBAC1F,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;aACjC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAI,KAAK,CAAC,MAA8C,IAAI,EAAE,CAAC;QAC9E,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,OAAO,GAAG,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,IAAI,EAAE,aAAa,CAAC,aAAa;gBACjC,OAAO,EAAE,iBAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;aACtK,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,wDAAwD;QACxD,MAAM,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,IAAI,EAAE,aAAa,CAAC,aAAa;gBACjC,OAAO,EAAE,8CAA8C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAC5G,CAAC,CAAC;QACL,CAAC;QAED,uEAAuE;QACvE,4CAA4C;QAC5C,MAAM,YAAY,GAAG,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,kBAAkB,CAAC;gBAC3B,IAAI,EAAE,aAAa,CAAC,aAAa;gBACjC,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,iCAAiC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAChH,CAAC,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAGrD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,QAA8B,CAAC,CAAC;QACtE,yEAAyE;QACzE,mEAAmE;QACnE,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;YACnC,IAAI;YACJ,QAAQ;YACR,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1D,cAAc,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;YACjC,QAAQ,EAAE,IAAI,mBAAmB,EAAE;YACnC,MAAM,EAAE,GAAG,CAAC,MAAM;SACnB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACpI,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO;YAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAEnF,uEAAuE;QACvE,wEAAwE;QACxE,oEAAoE;QACpE,4DAA4D;QAC5D,OAAO,QAAQ,CACb,MAAM,CAAC,EAAE;YACP,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,UAAU,OAAO,CAAC,MAAM,aAAa;YACxD,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,WAAW,EAChC,UAAU,CACR;YACE,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC;YACjC,OAAO;YACP,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC;YACrD,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;SACvD,EACD,SAAS,CACV,CACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/tools/mutate.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../src/tools/mutate.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA8XvC,eAAO,MAAM,aAAa,EAAE,IAAI,EAU/B,CAAC"}
|
package/dist/tools/mutate.js
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import { writeFile } from 'node:fs/promises';
|
|
29
29
|
import { entityTargetSchema } from './entity-target-schema.js';
|
|
30
|
+
import { entityCreate } from './entity-create.js';
|
|
30
31
|
import { findByGlobalId, okResult, resolveModel } from './util.js';
|
|
31
32
|
import { ToolErrorCode, ToolExecutionError } from '../errors.js';
|
|
32
33
|
import { resolveSafePath } from '../safe-path.js';
|
|
@@ -59,8 +60,8 @@ function resolveExpressId(m, input) {
|
|
|
59
60
|
* was then dropped by the exporter (which only visits entities the effective
|
|
60
61
|
* model holds) with no diagnostic anywhere in the round trip (#3764).
|
|
61
62
|
*
|
|
62
|
-
* `entity_create` is the one write tool not routed
|
|
63
|
-
* to check yet.
|
|
63
|
+
* `entity_create` (`./entity-create.ts`) is the one write tool not routed
|
|
64
|
+
* through this: it has no id to check yet.
|
|
64
65
|
*/
|
|
65
66
|
function resolveWritableExpressId(m, input) {
|
|
66
67
|
const expressId = resolveExpressId(m, input);
|
|
@@ -166,33 +167,6 @@ const entitySetAttribute = {
|
|
|
166
167
|
return okResult(`Set ${input.attribute} on #${expressId}.`, { expressId, attribute: input.attribute, value: input.value });
|
|
167
168
|
},
|
|
168
169
|
};
|
|
169
|
-
const entityCreate = {
|
|
170
|
-
name: 'entity_create',
|
|
171
|
-
description: 'Create a new IFC entity with raw positional attributes. Returns the new expressId.',
|
|
172
|
-
scope: 'mutate',
|
|
173
|
-
inputSchema: {
|
|
174
|
-
type: 'object',
|
|
175
|
-
properties: {
|
|
176
|
-
model_id: { type: 'string' },
|
|
177
|
-
type: { type: 'string', description: 'IFC entity name, e.g. IfcWall.' },
|
|
178
|
-
attributes: {
|
|
179
|
-
type: 'array',
|
|
180
|
-
description: 'Positional STEP attributes (strings, numbers, booleans, or refs of form "#42").',
|
|
181
|
-
items: {},
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
required: ['type'],
|
|
185
|
-
additionalProperties: false,
|
|
186
|
-
},
|
|
187
|
-
handler(input, ctx) {
|
|
188
|
-
const m = resolveModel(ctx, input.model_id);
|
|
189
|
-
const backend = getBackend(m);
|
|
190
|
-
const editor = backend.ensureEditor();
|
|
191
|
-
const attrs = input.attributes ?? [];
|
|
192
|
-
const ref = editor.addEntity(input.type, attrs);
|
|
193
|
-
return okResult(`Created ${input.type} as #${ref.expressId}.`, { expressId: ref.expressId, type: input.type });
|
|
194
|
-
},
|
|
195
|
-
};
|
|
196
170
|
const entityDelete = {
|
|
197
171
|
name: 'entity_delete',
|
|
198
172
|
description: 'Delete an entity. Note: cascades are NOT applied automatically — caller must remove dependent relationships first.',
|
package/dist/tools/mutate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/tools/mutate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../src/tools/mutate.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.1",
|
|
4
4
|
"description": "Model Context Protocol server for ifc-lite — agent-native BIM via MCP (stdio + Streamable HTTP)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -32,33 +32,34 @@
|
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"yjs": "^13.6.
|
|
36
|
-
"@ifc-lite/bcf": "^
|
|
37
|
-
"@ifc-lite/cache": "^3.
|
|
38
|
-
"@ifc-lite/clash": "^2.4.
|
|
39
|
-
"@ifc-lite/
|
|
40
|
-
"@ifc-lite/
|
|
41
|
-
"@ifc-lite/data": "^5.3.0",
|
|
42
|
-
"@ifc-lite/export": "^4.7.2",
|
|
43
|
-
"@ifc-lite/extensions": "^0.9.0",
|
|
44
|
-
"@ifc-lite/flow-nodes": "^0.3.1",
|
|
35
|
+
"yjs": "^13.6.33",
|
|
36
|
+
"@ifc-lite/bcf": "^5.0.0",
|
|
37
|
+
"@ifc-lite/cache": "^3.7.0",
|
|
38
|
+
"@ifc-lite/clash": "^2.4.3",
|
|
39
|
+
"@ifc-lite/create": "^3.2.0",
|
|
40
|
+
"@ifc-lite/collab": "^0.9.2",
|
|
45
41
|
"@ifc-lite/diff": "^0.10.0",
|
|
46
|
-
"@ifc-lite/
|
|
47
|
-
"@ifc-lite/
|
|
48
|
-
"@ifc-lite/
|
|
42
|
+
"@ifc-lite/encoding": "^2.3.0",
|
|
43
|
+
"@ifc-lite/export": "^4.8.0",
|
|
44
|
+
"@ifc-lite/extensions": "^0.10.1",
|
|
45
|
+
"@ifc-lite/flow": "^0.4.1",
|
|
46
|
+
"@ifc-lite/data": "^6.1.0",
|
|
47
|
+
"@ifc-lite/ids": "^3.1.0",
|
|
48
|
+
"@ifc-lite/flow-nodes": "^0.5.1",
|
|
49
|
+
"@ifc-lite/geometry": "^7.6.0",
|
|
50
|
+
"@ifc-lite/ifcx": "^4.3.0",
|
|
49
51
|
"@ifc-lite/merge": "^0.4.7",
|
|
50
|
-
"@ifc-lite/
|
|
51
|
-
"@ifc-lite/
|
|
52
|
-
"@ifc-lite/
|
|
53
|
-
"@ifc-lite/
|
|
54
|
-
"@ifc-lite/
|
|
55
|
-
"@ifc-lite/
|
|
56
|
-
"@ifc-lite/viewer-core": "^0.2.22"
|
|
52
|
+
"@ifc-lite/mutations": "^3.0.0",
|
|
53
|
+
"@ifc-lite/rules": "^0.5.0",
|
|
54
|
+
"@ifc-lite/query": "^2.5.2",
|
|
55
|
+
"@ifc-lite/sdk": "^8.0.0",
|
|
56
|
+
"@ifc-lite/parser": "^9.1.0",
|
|
57
|
+
"@ifc-lite/viewer-core": "^0.2.24"
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@types/node": "^26.6.
|
|
60
|
+
"@types/node": "^26.6.2",
|
|
60
61
|
"typescript": "^6.0.3",
|
|
61
|
-
"vitest": "^5.0.
|
|
62
|
+
"vitest": "^5.0.2"
|
|
62
63
|
},
|
|
63
64
|
"engines": {
|
|
64
65
|
"node": ">=18.0.0"
|