@ifc-lite/mcp 0.11.3 → 0.13.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/backend-query.d.ts +10 -2
- package/dist/backend-query.d.ts.map +1 -1
- package/dist/backend-query.js +26 -84
- package/dist/backend-query.js.map +1 -1
- package/dist/browser.d.ts +1 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +6 -0
- package/dist/browser.js.map +1 -1
- package/dist/cli-args.d.ts +37 -0
- package/dist/cli-args.d.ts.map +1 -0
- package/dist/cli-args.js +120 -0
- package/dist/cli-args.js.map +1 -0
- package/dist/cli.js +21 -62
- package/dist/cli.js.map +1 -1
- package/dist/headless-backend.d.ts +20 -0
- package/dist/headless-backend.d.ts.map +1 -1
- package/dist/headless-backend.js +73 -32
- package/dist/headless-backend.js.map +1 -1
- package/dist/material-naming.d.ts +45 -0
- package/dist/material-naming.d.ts.map +1 -0
- package/dist/material-naming.js +59 -0
- package/dist/material-naming.js.map +1 -0
- package/dist/prompts/templates.d.ts.map +1 -1
- package/dist/prompts/templates.js +4 -2
- package/dist/prompts/templates.js.map +1 -1
- package/dist/property-filter-match.d.ts +12 -0
- package/dist/property-filter-match.d.ts.map +1 -0
- package/dist/property-filter-match.js +17 -0
- package/dist/property-filter-match.js.map +1 -0
- package/dist/resources/providers.d.ts.map +1 -1
- package/dist/resources/providers.js +2 -1
- package/dist/resources/providers.js.map +1 -1
- package/dist/tools/bcf.d.ts.map +1 -1
- package/dist/tools/bcf.js +10 -1
- package/dist/tools/bcf.js.map +1 -1
- package/dist/tools/clash.d.ts.map +1 -1
- package/dist/tools/clash.js +17 -12
- package/dist/tools/clash.js.map +1 -1
- package/dist/tools/diff-classification-label.d.ts +12 -0
- package/dist/tools/diff-classification-label.d.ts.map +1 -0
- package/dist/tools/diff-classification-label.js +20 -0
- package/dist/tools/diff-classification-label.js.map +1 -0
- package/dist/tools/diff-fingerprints.d.ts +15 -19
- package/dist/tools/diff-fingerprints.d.ts.map +1 -1
- package/dist/tools/diff-fingerprints.js +32 -40
- package/dist/tools/diff-fingerprints.js.map +1 -1
- package/dist/tools/diff.d.ts.map +1 -1
- package/dist/tools/diff.js +2 -1
- package/dist/tools/diff.js.map +1 -1
- package/dist/tools/layer-ops.d.ts +1 -0
- package/dist/tools/layer-ops.d.ts.map +1 -1
- package/dist/tools/layer-ops.js +28 -0
- package/dist/tools/layer-ops.js.map +1 -1
- package/dist/tools/material-summary.d.ts +22 -0
- package/dist/tools/material-summary.d.ts.map +1 -0
- package/dist/tools/material-summary.js +49 -0
- package/dist/tools/material-summary.js.map +1 -0
- package/dist/tools/mutate.d.ts.map +1 -1
- package/dist/tools/mutate.js +52 -15
- package/dist/tools/mutate.js.map +1 -1
- package/dist/tools/query.js +32 -33
- package/dist/tools/query.js.map +1 -1
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tools/validation.js +24 -24
- package/dist/tools/validation.js.map +1 -1
- package/dist/tools/viewer-assembly-expansion.d.ts +49 -0
- package/dist/tools/viewer-assembly-expansion.d.ts.map +1 -0
- package/dist/tools/viewer-assembly-expansion.js +66 -0
- package/dist/tools/viewer-assembly-expansion.js.map +1 -0
- package/dist/tools/viewer.d.ts.map +1 -1
- package/dist/tools/viewer.js +36 -38
- package/dist/tools/viewer.js.map +1 -1
- package/package.json +24 -20
package/dist/backend-query.d.ts
CHANGED
|
@@ -28,9 +28,17 @@
|
|
|
28
28
|
*/
|
|
29
29
|
import type { QueryBackendMethods } from '@ifc-lite/sdk';
|
|
30
30
|
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
31
|
+
import { expandTypes, isQueryableObjectType } from '@ifc-lite/parser';
|
|
31
32
|
import { type PendingOverlay } from './overlay.js';
|
|
32
|
-
export
|
|
33
|
-
|
|
33
|
+
export { expandTypes };
|
|
34
|
+
/**
|
|
35
|
+
* Which classes an unfiltered query answers with.
|
|
36
|
+
*
|
|
37
|
+
* Thin alias: the predicate is schema logic and lives in `@ifc-lite/parser`, so
|
|
38
|
+
* the CLI and MCP backends cannot drift apart on it. Kept as a named export
|
|
39
|
+
* here because both packages already publish it under this name.
|
|
40
|
+
*/
|
|
41
|
+
export declare const isProductType: typeof isQueryableObjectType;
|
|
34
42
|
/**
|
|
35
43
|
* Build the query adapter over a store, folding whatever `overlay()` returns at
|
|
36
44
|
* call time. `overlay` is a getter, not a value: the backend creates its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-query.d.ts","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAWV,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"backend-query.d.ts","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAWV,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAML,WAAW,EAGX,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAKjF,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,8BAAwB,CAAC;AA+DnD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,cAAc,GAAG,IAAI,GACnC,mBAAmB,CA2TrB"}
|
package/dist/backend-query.js
CHANGED
|
@@ -1,64 +1,23 @@
|
|
|
1
1
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
-
import { extractAllEntityAttributes, extractClassificationsOnDemand, extractDocumentsOnDemand, extractMaterialsOnDemand, extractRelationshipsOnDemand, extractTypePropertiesOnDemand, } from '@ifc-lite/parser';
|
|
4
|
+
import { extractAllEntityAttributes, extractClassificationsOnDemand, extractDocumentsOnDemand, extractMaterialsOnDemand, extractRelationshipsOnDemand, expandTypes, QUERY_REL_TYPE_MAP, extractTypePropertiesOnDemand, isQueryableObjectType, } from '@ifc-lite/parser';
|
|
5
5
|
import { attributeNamesForSchema } from './schema-tables.js';
|
|
6
6
|
import { EntityNode } from '@ifc-lite/query';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
IFCSLAB: ['IFCSLABSTANDARDCASE', 'IFCSLABELEMENTEDCASE'],
|
|
22
|
-
IFCMEMBER: ['IFCMEMBERSTANDARDCASE'],
|
|
23
|
-
IFCPLATE: ['IFCPLATESTANDARDCASE'],
|
|
24
|
-
IFCOPENINGELEMENT: ['IFCOPENINGSTANDARDCASE'],
|
|
25
|
-
};
|
|
26
|
-
export function expandTypes(types) {
|
|
27
|
-
const result = [];
|
|
28
|
-
for (const type of types) {
|
|
29
|
-
const upper = type.toUpperCase();
|
|
30
|
-
result.push(upper);
|
|
31
|
-
const subtypes = IFC_SUBTYPES[upper];
|
|
32
|
-
if (subtypes)
|
|
33
|
-
for (const sub of subtypes)
|
|
34
|
-
result.push(sub);
|
|
35
|
-
}
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
export function isProductType(type) {
|
|
39
|
-
const enumVal = IfcTypeEnumFromString(type);
|
|
40
|
-
if (enumVal === IfcTypeEnum.Unknown)
|
|
41
|
-
return false;
|
|
42
|
-
const upper = type.toUpperCase();
|
|
43
|
-
if (upper.startsWith('IFCREL'))
|
|
44
|
-
return false;
|
|
45
|
-
if (upper.startsWith('IFCPROPERTY'))
|
|
46
|
-
return false;
|
|
47
|
-
if (upper.startsWith('IFCQUANTITY'))
|
|
48
|
-
return false;
|
|
49
|
-
if (upper === 'IFCELEMENTQUANTITY')
|
|
50
|
-
return false;
|
|
51
|
-
if (upper.endsWith('TYPE'))
|
|
52
|
-
return false;
|
|
53
|
-
return true;
|
|
54
|
-
}
|
|
55
|
-
function normalizeBoolean(value) {
|
|
56
|
-
if (value === true || value === '.T.' || value === 'true' || value === 'TRUE')
|
|
57
|
-
return 'true';
|
|
58
|
-
if (value === false || value === '.F.' || value === 'false' || value === 'FALSE')
|
|
59
|
-
return 'false';
|
|
60
|
-
return value;
|
|
61
|
-
}
|
|
7
|
+
import { edgeSurvives } from '@ifc-lite/data';
|
|
8
|
+
import { matchesPropertyFilter } from './property-filter-match.js';
|
|
9
|
+
// `expandTypes` used to be defined here; it now comes from `@ifc-lite/parser`,
|
|
10
|
+
// shared with the other query backends (see `query-backend-maps.ts`). Re-exported
|
|
11
|
+
// so this module's consumers are unaffected by where it lives.
|
|
12
|
+
export { expandTypes };
|
|
13
|
+
/**
|
|
14
|
+
* Which classes an unfiltered query answers with.
|
|
15
|
+
*
|
|
16
|
+
* Thin alias: the predicate is schema logic and lives in `@ifc-lite/parser`, so
|
|
17
|
+
* the CLI and MCP backends cannot drift apart on it. Kept as a named export
|
|
18
|
+
* here because both packages already publish it under this name.
|
|
19
|
+
*/
|
|
20
|
+
export const isProductType = isQueryableObjectType;
|
|
62
21
|
/** The overlay's answer for an entity it created, in `EntityData` shape. */
|
|
63
22
|
function createdEntityData(created, ref) {
|
|
64
23
|
return {
|
|
@@ -263,7 +222,7 @@ export function createQueryAdapter(store, modelId, overlay) {
|
|
|
263
222
|
entities(descriptor) {
|
|
264
223
|
const pending = overlay();
|
|
265
224
|
const requested = descriptor.types && descriptor.types.length > 0
|
|
266
|
-
? expandTypes(descriptor.types)
|
|
225
|
+
? expandTypes(descriptor.types, store.schemaVersion)
|
|
267
226
|
: null;
|
|
268
227
|
const entityIds = [];
|
|
269
228
|
if (requested) {
|
|
@@ -323,29 +282,7 @@ export function createQueryAdapter(store, modelId, overlay) {
|
|
|
323
282
|
return cached;
|
|
324
283
|
};
|
|
325
284
|
for (const filter of descriptor.filters) {
|
|
326
|
-
filtered = filtered.filter((entity) =>
|
|
327
|
-
const props = cachedProps(entity.ref);
|
|
328
|
-
const pset = props.find((p) => p.name === filter.psetName);
|
|
329
|
-
if (!pset)
|
|
330
|
-
return false;
|
|
331
|
-
const prop = pset.properties.find((p) => p.name === filter.propName);
|
|
332
|
-
if (!prop)
|
|
333
|
-
return false;
|
|
334
|
-
if (filter.operator === 'exists')
|
|
335
|
-
return true;
|
|
336
|
-
const v = normalizeBoolean(prop.value);
|
|
337
|
-
const f = normalizeBoolean(filter.value);
|
|
338
|
-
switch (filter.operator) {
|
|
339
|
-
case '=': return String(v) === String(f);
|
|
340
|
-
case '!=': return String(v) !== String(f);
|
|
341
|
-
case '>': return Number(v) > Number(f);
|
|
342
|
-
case '<': return Number(v) < Number(f);
|
|
343
|
-
case '>=': return Number(v) >= Number(f);
|
|
344
|
-
case '<=': return Number(v) <= Number(f);
|
|
345
|
-
case 'contains': return String(v).toLowerCase().includes(String(f).toLowerCase());
|
|
346
|
-
default: return false;
|
|
347
|
-
}
|
|
348
|
-
});
|
|
285
|
+
filtered = filtered.filter((entity) => matchesPropertyFilter(cachedProps(entity.ref), filter));
|
|
349
286
|
}
|
|
350
287
|
}
|
|
351
288
|
// `&&` alone lets a NaN offset/limit through silently: every NaN
|
|
@@ -446,7 +383,7 @@ export function createQueryAdapter(store, modelId, overlay) {
|
|
|
446
383
|
* its parts); `inverse` walks back.
|
|
447
384
|
*/
|
|
448
385
|
related(ref, relType, direction) {
|
|
449
|
-
const relEnum =
|
|
386
|
+
const relEnum = QUERY_REL_TYPE_MAP[relType];
|
|
450
387
|
if (relEnum === undefined)
|
|
451
388
|
return [];
|
|
452
389
|
const pending = overlay();
|
|
@@ -463,10 +400,15 @@ export function createQueryAdapter(store, modelId, overlay) {
|
|
|
463
400
|
seen.add(expressId);
|
|
464
401
|
out.push(expressId);
|
|
465
402
|
};
|
|
403
|
+
// Two `IfcRel*` instances can name the same triple; the graph keeps
|
|
404
|
+
// only one as `relationshipId` and folds the rest into
|
|
405
|
+
// `shadowedRelationshipIds` (#3760). `edgeSurvives` (shared with the
|
|
406
|
+
// CLI backend, #3782 review) treats the connection as alive as long
|
|
407
|
+
// as any one of them still exists.
|
|
408
|
+
const isDeleted = pending ? (id) => pending.deleted.has(id) : () => false;
|
|
466
409
|
for (const edge of half.getEdges(ref.expressId, relEnum)) {
|
|
467
|
-
if (
|
|
468
|
-
|
|
469
|
-
take(edge.target);
|
|
410
|
+
if (edgeSurvives(edge, isDeleted))
|
|
411
|
+
take(edge.target);
|
|
470
412
|
}
|
|
471
413
|
for (const relation of pending?.queuedRelations(relType) ?? []) {
|
|
472
414
|
if (direction === 'forward') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-query.js","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backend-query.js","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.d.ts
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
export { HeadlessLikeBackend, expandTypes, isProductType } from './headless-backend.js';
|
|
31
31
|
export { InMemoryModelRegistry } from './context.js';
|
|
32
|
+
export { isBlank, firstNonBlank } from './material-naming.js';
|
|
32
33
|
export type { LoadedModel, ModelRegistry, } from './context.js';
|
|
33
34
|
export { ToolErrorCode, ToolExecutionError, toolError } from './errors.js';
|
|
34
35
|
export type { ToolErrorCodeValue, ToolErrorOptions } from './errors.js';
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAMrD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EACV,WAAW,EACX,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,cAAc,GACf,MAAM,qBAAqB,CAAC"}
|
package/dist/browser.js
CHANGED
|
@@ -32,6 +32,12 @@
|
|
|
32
32
|
*/
|
|
33
33
|
export { HeadlessLikeBackend, expandTypes, isProductType } from './headless-backend.js';
|
|
34
34
|
export { InMemoryModelRegistry } from './context.js';
|
|
35
|
+
// Blank/whitespace-only name handling (a present-but-blank
|
|
36
|
+
// IFCBUILDINGSTOREY/IFCMATERIAL Name should fall through to the caller's
|
|
37
|
+
// own placeholder the same way a null/undefined one does): shared with
|
|
38
|
+
// every other MCP call site with the same shape, node-free so it belongs
|
|
39
|
+
// on this browser-safe entrypoint too.
|
|
40
|
+
export { isBlank, firstNonBlank } from './material-naming.js';
|
|
35
41
|
export { ToolErrorCode, ToolExecutionError, toolError } from './errors.js';
|
|
36
42
|
export { PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, JSONRPC_VERSION, } from './protocol/types.js';
|
|
37
43
|
//# sourceMappingURL=browser.js.map
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,2DAA2D;AAC3D,yEAAyE;AACzE,uEAAuE;AACvE,yEAAyE;AACzE,uCAAuC;AACvC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK9D,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,eAAe,GAChB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** Flags that consume the following argv token as their value. */
|
|
2
|
+
export declare const MCP_VALUE_FLAGS: readonly string[];
|
|
3
|
+
/** Flags that stand alone, taking no value. */
|
|
4
|
+
export declare const MCP_BOOLEAN_FLAGS: readonly string[];
|
|
5
|
+
/**
|
|
6
|
+
* Flags the standalone binary understands that the `ifc-lite mcp` subcommand
|
|
7
|
+
* does not act on. Their VALUES are still skipped (that is what caused the
|
|
8
|
+
* bogus-path bug), but the subcommand warns rather than pretending to honour
|
|
9
|
+
* them.
|
|
10
|
+
*/
|
|
11
|
+
export declare const MCP_SUBCOMMAND_UNSUPPORTED_FLAGS: readonly string[];
|
|
12
|
+
/** True when `arg` consumes the next argv token. */
|
|
13
|
+
export declare function isMcpValueFlag(arg: string): boolean;
|
|
14
|
+
export interface CliOptions {
|
|
15
|
+
files: string[];
|
|
16
|
+
readOnly: boolean;
|
|
17
|
+
federate: boolean;
|
|
18
|
+
transport: 'stdio' | 'http';
|
|
19
|
+
port: number;
|
|
20
|
+
/** undefined → caller didn't pass --host; CLI picks loopback by default */
|
|
21
|
+
host?: string;
|
|
22
|
+
token?: string;
|
|
23
|
+
bsdd?: string;
|
|
24
|
+
allowedPaths?: string[];
|
|
25
|
+
/** Browser Origins allowed to read HTTP responses cross-origin. Empty = none. */
|
|
26
|
+
allowedOrigins?: string[];
|
|
27
|
+
autoViewer: boolean;
|
|
28
|
+
viewerPort: number;
|
|
29
|
+
openBrowser: boolean;
|
|
30
|
+
insecure: boolean;
|
|
31
|
+
/** `--help`/`-h` was passed. The caller prints usage and exits. */
|
|
32
|
+
help: boolean;
|
|
33
|
+
/** `--version`/`-v` was passed. The caller prints the version and exits. */
|
|
34
|
+
version: boolean;
|
|
35
|
+
}
|
|
36
|
+
export declare function parseArgs(argv: string[]): CliOptions;
|
|
37
|
+
//# sourceMappingURL=cli-args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-args.d.ts","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"AAuBA,kEAAkE;AAClE,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAS5C,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAU9C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,EAAE,SAAS,MAAM,EAG7D,CAAC;AAEF,oDAAoD;AACpD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,IAAI,EAAE,OAAO,CAAC;IACd,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA0CpD"}
|
package/dist/cli-args.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
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
|
+
* The `ifc-lite-mcp` command line surface, declared once.
|
|
6
|
+
*
|
|
7
|
+
* There are two front doors to `createMCPServer`: the standalone
|
|
8
|
+
* `ifc-lite-mcp` binary (`./cli.ts`) and the `ifc-lite mcp` subcommand in
|
|
9
|
+
* `@ifc-lite/cli`. The binary's parser reads a flag and consumes its value in
|
|
10
|
+
* the same branch, so it cannot disagree with itself; the subcommand has to
|
|
11
|
+
* know which flags carry a value in order to skip them while collecting
|
|
12
|
+
* positional `.ifc` paths, and kept its own hand-written copy of that list.
|
|
13
|
+
*
|
|
14
|
+
* The copy drifted. `--allow-origin` was added to the binary and never to the
|
|
15
|
+
* subcommand's list, so `ifc-lite mcp --transport http --allow-origin
|
|
16
|
+
* https://example.test model.ifc` skipped the flag, failed to skip its value,
|
|
17
|
+
* and resolved the ORIGIN as a model file path. Declaring the flags here and
|
|
18
|
+
* importing them on both sides means a new flag lands in one place.
|
|
19
|
+
*/
|
|
20
|
+
import { resolve } from 'node:path';
|
|
21
|
+
/** Flags that consume the following argv token as their value. */
|
|
22
|
+
export const MCP_VALUE_FLAGS = [
|
|
23
|
+
'--transport',
|
|
24
|
+
'--port',
|
|
25
|
+
'--host',
|
|
26
|
+
'--token',
|
|
27
|
+
'--bsdd',
|
|
28
|
+
'--allow',
|
|
29
|
+
'--allow-origin',
|
|
30
|
+
'--viewer-port',
|
|
31
|
+
];
|
|
32
|
+
/** Flags that stand alone, taking no value. */
|
|
33
|
+
export const MCP_BOOLEAN_FLAGS = [
|
|
34
|
+
'--read-only',
|
|
35
|
+
'--federate',
|
|
36
|
+
'--insecure',
|
|
37
|
+
'--viewer',
|
|
38
|
+
'--open',
|
|
39
|
+
'--help',
|
|
40
|
+
'-h',
|
|
41
|
+
'--version',
|
|
42
|
+
'-v',
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Flags the standalone binary understands that the `ifc-lite mcp` subcommand
|
|
46
|
+
* does not act on. Their VALUES are still skipped (that is what caused the
|
|
47
|
+
* bogus-path bug), but the subcommand warns rather than pretending to honour
|
|
48
|
+
* them.
|
|
49
|
+
*/
|
|
50
|
+
export const MCP_SUBCOMMAND_UNSUPPORTED_FLAGS = [
|
|
51
|
+
'--allow-origin',
|
|
52
|
+
'--federate',
|
|
53
|
+
];
|
|
54
|
+
/** True when `arg` consumes the next argv token. */
|
|
55
|
+
export function isMcpValueFlag(arg) {
|
|
56
|
+
return MCP_VALUE_FLAGS.includes(arg);
|
|
57
|
+
}
|
|
58
|
+
export function parseArgs(argv) {
|
|
59
|
+
const opts = {
|
|
60
|
+
files: [],
|
|
61
|
+
readOnly: false,
|
|
62
|
+
federate: false,
|
|
63
|
+
transport: 'stdio',
|
|
64
|
+
port: 8765,
|
|
65
|
+
autoViewer: false,
|
|
66
|
+
viewerPort: 0,
|
|
67
|
+
openBrowser: false,
|
|
68
|
+
insecure: false,
|
|
69
|
+
help: false,
|
|
70
|
+
version: false,
|
|
71
|
+
};
|
|
72
|
+
for (let i = 0; i < argv.length; i++) {
|
|
73
|
+
const arg = argv[i];
|
|
74
|
+
if (arg === '--read-only')
|
|
75
|
+
opts.readOnly = true;
|
|
76
|
+
else if (arg === '--federate')
|
|
77
|
+
opts.federate = true;
|
|
78
|
+
else if (arg === '--insecure')
|
|
79
|
+
opts.insecure = true;
|
|
80
|
+
else if (arg === '--transport')
|
|
81
|
+
opts.transport = argv[++i] ?? 'stdio';
|
|
82
|
+
else if (arg === '--port')
|
|
83
|
+
opts.port = Number(argv[++i] ?? 8765);
|
|
84
|
+
else if (arg === '--host')
|
|
85
|
+
opts.host = argv[++i];
|
|
86
|
+
else if (arg === '--token')
|
|
87
|
+
opts.token = argv[++i];
|
|
88
|
+
else if (arg === '--bsdd')
|
|
89
|
+
opts.bsdd = argv[++i];
|
|
90
|
+
else if (arg === '--viewer')
|
|
91
|
+
opts.autoViewer = true;
|
|
92
|
+
else if (arg === '--viewer-port')
|
|
93
|
+
opts.viewerPort = Number(argv[++i] ?? 0);
|
|
94
|
+
else if (arg === '--open') {
|
|
95
|
+
opts.autoViewer = true;
|
|
96
|
+
opts.openBrowser = true;
|
|
97
|
+
}
|
|
98
|
+
else if (arg === '--allow') {
|
|
99
|
+
const path = argv[++i];
|
|
100
|
+
if (path)
|
|
101
|
+
(opts.allowedPaths ??= []).push(resolve(path));
|
|
102
|
+
}
|
|
103
|
+
else if (arg === '--allow-origin') {
|
|
104
|
+
const origin = argv[++i];
|
|
105
|
+
if (origin)
|
|
106
|
+
(opts.allowedOrigins ??= []).push(origin);
|
|
107
|
+
}
|
|
108
|
+
else if (arg === '--help' || arg === '-h') {
|
|
109
|
+
opts.help = true;
|
|
110
|
+
}
|
|
111
|
+
else if (arg === '--version' || arg === '-v') {
|
|
112
|
+
opts.version = true;
|
|
113
|
+
}
|
|
114
|
+
else if (!arg.startsWith('-')) {
|
|
115
|
+
opts.files.push(arg);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return opts;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=cli-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-args.js","sourceRoot":"","sources":["../src/cli-args.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -13,74 +13,13 @@
|
|
|
13
13
|
* ifc-lite-mcp --transport http --port 8765 --token abc123
|
|
14
14
|
*/
|
|
15
15
|
import { resolve } from 'node:path';
|
|
16
|
+
import { parseArgs } from './cli-args.js';
|
|
16
17
|
import { StdioTransport } from './transport/stdio.js';
|
|
17
18
|
import { HttpTransport, BearerTokenAuth, AllowAllAuth } from './transport/http.js';
|
|
18
19
|
import { createMCPServer, VERSION } from './index.js';
|
|
19
20
|
import { loadIfcModel } from './loader.js';
|
|
20
21
|
import { fullScope, readOnlyScope } from './auth/scope.js';
|
|
21
22
|
import { InMemoryModelRegistry } from './context.js';
|
|
22
|
-
function parseArgs(argv) {
|
|
23
|
-
const opts = {
|
|
24
|
-
files: [],
|
|
25
|
-
readOnly: false,
|
|
26
|
-
federate: false,
|
|
27
|
-
transport: 'stdio',
|
|
28
|
-
port: 8765,
|
|
29
|
-
autoViewer: false,
|
|
30
|
-
viewerPort: 0,
|
|
31
|
-
openBrowser: false,
|
|
32
|
-
insecure: false,
|
|
33
|
-
};
|
|
34
|
-
for (let i = 0; i < argv.length; i++) {
|
|
35
|
-
const arg = argv[i];
|
|
36
|
-
if (arg === '--read-only')
|
|
37
|
-
opts.readOnly = true;
|
|
38
|
-
else if (arg === '--federate')
|
|
39
|
-
opts.federate = true;
|
|
40
|
-
else if (arg === '--insecure')
|
|
41
|
-
opts.insecure = true;
|
|
42
|
-
else if (arg === '--transport')
|
|
43
|
-
opts.transport = argv[++i] ?? 'stdio';
|
|
44
|
-
else if (arg === '--port')
|
|
45
|
-
opts.port = Number(argv[++i] ?? 8765);
|
|
46
|
-
else if (arg === '--host')
|
|
47
|
-
opts.host = argv[++i];
|
|
48
|
-
else if (arg === '--token')
|
|
49
|
-
opts.token = argv[++i];
|
|
50
|
-
else if (arg === '--bsdd')
|
|
51
|
-
opts.bsdd = argv[++i];
|
|
52
|
-
else if (arg === '--viewer')
|
|
53
|
-
opts.autoViewer = true;
|
|
54
|
-
else if (arg === '--viewer-port')
|
|
55
|
-
opts.viewerPort = Number(argv[++i] ?? 0);
|
|
56
|
-
else if (arg === '--open') {
|
|
57
|
-
opts.autoViewer = true;
|
|
58
|
-
opts.openBrowser = true;
|
|
59
|
-
}
|
|
60
|
-
else if (arg === '--allow') {
|
|
61
|
-
const path = argv[++i];
|
|
62
|
-
if (path)
|
|
63
|
-
(opts.allowedPaths ??= []).push(resolve(path));
|
|
64
|
-
}
|
|
65
|
-
else if (arg === '--allow-origin') {
|
|
66
|
-
const origin = argv[++i];
|
|
67
|
-
if (origin)
|
|
68
|
-
(opts.allowedOrigins ??= []).push(origin);
|
|
69
|
-
}
|
|
70
|
-
else if (arg === '--help' || arg === '-h') {
|
|
71
|
-
printHelp();
|
|
72
|
-
process.exit(0);
|
|
73
|
-
}
|
|
74
|
-
else if (arg === '--version' || arg === '-v') {
|
|
75
|
-
process.stdout.write(`ifc-lite-mcp ${VERSION}\n`);
|
|
76
|
-
process.exit(0);
|
|
77
|
-
}
|
|
78
|
-
else if (!arg.startsWith('-')) {
|
|
79
|
-
opts.files.push(arg);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return opts;
|
|
83
|
-
}
|
|
84
23
|
function printHelp() {
|
|
85
24
|
process.stdout.write(`
|
|
86
25
|
ifc-lite-mcp v${VERSION} — Model Context Protocol server for ifc-lite
|
|
@@ -131,6 +70,26 @@ function printHelp() {
|
|
|
131
70
|
}
|
|
132
71
|
async function main() {
|
|
133
72
|
const opts = parseArgs(process.argv.slice(2));
|
|
73
|
+
// `parseArgs` is a pure parser so it can be exercised by tests (and shared
|
|
74
|
+
// with `ifc-lite mcp`); acting on --help/--version stays here, where exiting
|
|
75
|
+
// the process is the caller's business.
|
|
76
|
+
// `process.exitCode` + return, NOT `process.exit(0)`. Writes to a pipe are
|
|
77
|
+
// asynchronous in Node, and `process.exit` does not wait for them, so a large
|
|
78
|
+
// enough piped write can be truncated. This help text is ~2KB and fits the
|
|
79
|
+
// pipe buffer, so it was NOT being truncated today -- measured, not assumed.
|
|
80
|
+
// The change is for the shape rather than an observed failure, and it makes
|
|
81
|
+
// this binary match its sibling `packages/cli/src/index.ts`, which already
|
|
82
|
+
// returns rather than exits.
|
|
83
|
+
if (opts.help) {
|
|
84
|
+
printHelp();
|
|
85
|
+
process.exitCode = 0;
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (opts.version) {
|
|
89
|
+
process.stdout.write(`ifc-lite-mcp ${VERSION}\n`);
|
|
90
|
+
process.exitCode = 0;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
134
93
|
const scope = opts.readOnly ? readOnlyScope() : fullScope();
|
|
135
94
|
const registry = new InMemoryModelRegistry();
|
|
136
95
|
if (opts.transport === 'stdio') {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;+DAE+D;AAE/D;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAA+C,MAAM,qBAAqB,CAAC;AAChI,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;+DAE+D;AAE/D;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAA+C,MAAM,qBAAqB,CAAC;AAChI,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAkB,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;kBACL,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CxB,CAAC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,2EAA2E;IAC3E,6EAA6E;IAC7E,wCAAwC;IACxC,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,6BAA6B;IAC7B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;QAClD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAc,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAEvE,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC7C,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACjF,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,0DAA0D;YAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QACzH,CAAC;QAED,MAAM,MAAM,GAAG,eAAe,CAAC;YAC7B,OAAO,EAAE,OAAO;YAChB,QAAQ;YACR,KAAK;YACL,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,IAAI;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,eAAe,EAAE,KAAK;gBACtB,cAAc,EAAE,IAAI,CAAC,UAAU;gBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B;YACD,MAAM,EAAE;gBACN,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI;oBACtB,IAAI,KAAK,KAAK,OAAO;wBAAE,OAAO;oBAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,KAAK,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBACxG,CAAC;aACF;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;QAErF,IAAI,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,oEAAoE;gBACpE,oEAAoE;gBACpE,qDAAqD;gBACrD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBACrG,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM;wBAChD,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO;4BACxC,CAAC,CAAC,UAAU,CAAC;oBACf,IAAI,CAAC;wBACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;wBACrD,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;oBACvE,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAAgD,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;oBAClG,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA4C,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2IAA2I,CAAC,CAAC;QACpK,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACrC,uEAAuE;QACvE,mEAAmE;QACnE,qEAAqE;QACrE,4CAA4C;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAC;QAClF,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mCAAmC,IAAI,sEAAsE,CAC9G,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,cAAc,GAAmB;YACrC,KAAK,CAAC,eAAe,EAAE,SAAS;gBAC9B,OAAO,eAAe,CAAC;oBACrB,OAAO,EAAE,OAAO;oBAChB,mEAAmE;oBACnE,QAAQ,EAAE,IAAI,qBAAqB,EAAE;oBACrC,KAAK,EAAE,eAAe;oBACtB,sEAAsE;oBACtE,SAAS;oBACT,MAAM,EAAE;wBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,YAAY,EAAE,IAAI,CAAC,IAAI;wBACvB,eAAe,EAAE,KAAK;qBACvB;iBACF,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,MAAM,IAAI,GAAsB,IAAI,CAAC,KAAK;YACxC,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI;YACJ,aAAa,EAAE,IAAI;YACnB,cAAc;YACd,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sCAAsC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;YACzD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,IAAI,CACL,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;IAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,CAAC;IACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* `LoadedModel.store`, not through this backend.
|
|
13
13
|
*/
|
|
14
14
|
import type { BimBackend, BimEventType, ModelBackendMethods, QueryBackendMethods, SelectionBackendMethods, VisibilityBackendMethods, ViewerBackendMethods, MutateBackendMethods, StoreBackendMethods, SpatialBackendMethods, ExportBackendMethods, LensBackendMethods, FilesBackendMethods, ScheduleBackendMethods } from '@ifc-lite/sdk';
|
|
15
|
+
import { type EntityRefCheck, type StyleBackendMethods } from '@ifc-lite/sdk';
|
|
15
16
|
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
16
17
|
import { MutablePropertyView, StoreEditor } from '@ifc-lite/mutations';
|
|
17
18
|
import { type PendingOverlay } from './overlay.js';
|
|
@@ -29,6 +30,7 @@ export declare class HeadlessLikeBackend implements BimBackend {
|
|
|
29
30
|
visibility: VisibilityBackendMethods;
|
|
30
31
|
viewer: ViewerBackendMethods;
|
|
31
32
|
readonly mutate: MutateBackendMethods;
|
|
33
|
+
readonly style: StyleBackendMethods;
|
|
32
34
|
readonly store: StoreBackendMethods;
|
|
33
35
|
readonly spatial: SpatialBackendMethods;
|
|
34
36
|
readonly export: ExportBackendMethods;
|
|
@@ -38,6 +40,14 @@ export declare class HeadlessLikeBackend implements BimBackend {
|
|
|
38
40
|
private dataStore;
|
|
39
41
|
private modelName;
|
|
40
42
|
private modelId;
|
|
43
|
+
/** Every model id this backend answers for, so the schedule assert, the
|
|
44
|
+
* `bim.mutate.*` guard and `bim.store.addEntity` cannot differ (#3764). The
|
|
45
|
+
* file basename is NOT one: no other MCP site accepts one. */
|
|
46
|
+
private readonly acceptedModelIds;
|
|
47
|
+
/** The reference check `bim.mutate.*` is gated on (`null` when writable,
|
|
48
|
+
* else the reason), exposed because the mutation TOOLS write into
|
|
49
|
+
* `getMutationView()` directly and need the same gate (#3764). */
|
|
50
|
+
readonly checkEntityRef: EntityRefCheck;
|
|
41
51
|
private mutationView;
|
|
42
52
|
private storeEditor;
|
|
43
53
|
constructor(store: IfcDataStore, modelName: string, modelId: string);
|
|
@@ -49,12 +59,22 @@ export declare class HeadlessLikeBackend implements BimBackend {
|
|
|
49
59
|
private getOrCreateStoreEditor;
|
|
50
60
|
/** Expose the mutation view so tools can inspect pending mutations. */
|
|
51
61
|
getMutationView(): MutablePropertyView | null;
|
|
62
|
+
/**
|
|
63
|
+
* The overlay every `bim.mutate.*` write goes through, created on first use
|
|
64
|
+
* so a read-only session still pays nothing. Built by `getOrCreateStoreEditor`
|
|
65
|
+
* to keep the extractor wiring in one place.
|
|
66
|
+
*/
|
|
67
|
+
private getOrCreateMutationView;
|
|
52
68
|
/** Force creation of the editor (used by mutation tools that always need it). */
|
|
53
69
|
ensureEditor(): StoreEditor;
|
|
54
70
|
/** Replace the viewer/visibility adapters at runtime (for ViewerManager). */
|
|
55
71
|
attachStreamingAdapters(viewer: ViewerBackendMethods, visibility: VisibilityBackendMethods): void;
|
|
56
72
|
/** Restore no-op viewer/visibility adapters (for ViewerManager close). */
|
|
57
73
|
detachStreamingAdapters(): void;
|
|
74
|
+
/** Whether `modelId` names the one model this backend holds. */
|
|
75
|
+
acceptsModelId(modelId: string): boolean;
|
|
76
|
+
/** Refuse an unknown model id loudly, at whichever surface was handed it. */
|
|
77
|
+
private assertKnownModelId;
|
|
58
78
|
private createStoreAdapter;
|
|
59
79
|
private createExportAdapter;
|
|
60
80
|
private createScheduleAdapter;
|