@ifc-lite/cli 0.4.0 → 0.5.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.
@@ -0,0 +1,2 @@
1
+ export declare function askCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=ask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"AA4ZA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuE9D"}
@@ -0,0 +1,524 @@
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
+ * ifc-lite ask <file.ifc> "<question>"
6
+ *
7
+ * Natural language recipe engine for BIM queries.
8
+ * Maps common questions to SDK operations via pattern matching.
9
+ *
10
+ * Examples:
11
+ * ifc-lite ask model.ifc "how many walls?"
12
+ * ifc-lite ask model.ifc "what is the window-wall ratio?"
13
+ * ifc-lite ask model.ifc "total floor area"
14
+ * ifc-lite ask model.ifc "list materials" --json
15
+ * ifc-lite ask model.ifc "tallest storey" --explain
16
+ */
17
+ import { createHeadlessContext } from '../loader.js';
18
+ import { printJson, fatal, hasFlag } from '../output.js';
19
+ const RECIPES = [
20
+ // --- Counting recipes ---
21
+ {
22
+ name: 'count-walls',
23
+ patterns: [/how many walls/i, /wall count/i, /number of walls/i, /count.*walls/i],
24
+ description: 'Count all IfcWall entities',
25
+ execute: (bim) => {
26
+ const count = bim.query().byType('IfcWall').count();
27
+ return { answer: `${count} walls`, count, type: 'IfcWall' };
28
+ },
29
+ },
30
+ {
31
+ name: 'count-doors',
32
+ patterns: [/how many doors/i, /door count/i, /number of doors/i, /count.*doors/i],
33
+ description: 'Count all IfcDoor entities',
34
+ execute: (bim) => {
35
+ const count = bim.query().byType('IfcDoor').count();
36
+ return { answer: `${count} doors`, count, type: 'IfcDoor' };
37
+ },
38
+ },
39
+ {
40
+ name: 'count-windows',
41
+ patterns: [/how many windows/i, /window count/i, /number of windows/i, /count.*windows/i],
42
+ description: 'Count all IfcWindow entities',
43
+ execute: (bim) => {
44
+ const count = bim.query().byType('IfcWindow').count();
45
+ return { answer: `${count} windows`, count, type: 'IfcWindow' };
46
+ },
47
+ },
48
+ {
49
+ name: 'count-columns',
50
+ patterns: [/how many columns/i, /column count/i, /number of columns/i, /count.*columns/i],
51
+ description: 'Count all IfcColumn entities',
52
+ execute: (bim) => {
53
+ const count = bim.query().byType('IfcColumn').count();
54
+ return { answer: `${count} columns`, count, type: 'IfcColumn' };
55
+ },
56
+ },
57
+ {
58
+ name: 'count-slabs',
59
+ patterns: [/how many slabs/i, /slab count/i, /number of slabs/i, /count.*slabs/i, /how many floors/i],
60
+ description: 'Count all IfcSlab entities',
61
+ execute: (bim) => {
62
+ const count = bim.query().byType('IfcSlab').count();
63
+ return { answer: `${count} slabs`, count, type: 'IfcSlab' };
64
+ },
65
+ },
66
+ {
67
+ name: 'count-all',
68
+ patterns: [/how many elements/i, /total elements/i, /element count/i, /how many entities/i, /total entities/i],
69
+ description: 'Count all building elements',
70
+ execute: (bim) => {
71
+ const count = bim.query().count();
72
+ return { answer: `${count} total entities`, count };
73
+ },
74
+ },
75
+ {
76
+ name: 'count-type',
77
+ patterns: [/how many (ifc\w+)/i, /count (ifc\w+)/i, /how many (\w+)/i, /count (\w+)/i, /number of (\w+)/i],
78
+ description: 'Count entities of a specific IFC type',
79
+ execute: (bim, _store, match) => {
80
+ let typeName = match?.[1] ?? 'IfcProduct';
81
+ // Auto-prefix Ifc if not already present
82
+ if (!typeName.startsWith('Ifc') && !typeName.startsWith('IFC')) {
83
+ // Singularize common plural forms and capitalize
84
+ let singular = typeName;
85
+ if (singular.endsWith('ies'))
86
+ singular = singular.slice(0, -3) + 'y';
87
+ else if (singular.endsWith('s') && !singular.endsWith('ss'))
88
+ singular = singular.slice(0, -1);
89
+ typeName = 'Ifc' + singular.charAt(0).toUpperCase() + singular.slice(1).toLowerCase();
90
+ }
91
+ const count = bim.query().byType(typeName).count();
92
+ return { answer: `${count} ${typeName} entities`, count, type: typeName };
93
+ },
94
+ },
95
+ // --- Area & quantity recipes ---
96
+ {
97
+ name: 'total-wall-area',
98
+ patterns: [/total wall area/i, /wall area/i, /area of walls/i, /gross wall area/i],
99
+ description: 'Sum GrossSideArea for all walls',
100
+ execute: (bim) => {
101
+ const walls = bim.query().byType('IfcWall').toArray();
102
+ let total = 0;
103
+ for (const w of walls) {
104
+ total += getQuantity(bim, w.ref, ['GrossSideArea', 'NetSideArea']);
105
+ }
106
+ return { answer: `${round(total)} m2 total wall area`, value: round(total), unit: 'm2' };
107
+ },
108
+ },
109
+ {
110
+ name: 'total-floor-area',
111
+ patterns: [/total floor area/i, /floor area/i, /slab area/i, /gross floor area/i, /gfa/i],
112
+ description: 'Sum GrossArea for all slabs',
113
+ execute: (bim) => {
114
+ const slabs = bim.query().byType('IfcSlab').toArray();
115
+ let total = 0;
116
+ for (const s of slabs) {
117
+ total += getQuantity(bim, s.ref, ['GrossArea', 'NetArea']);
118
+ }
119
+ return { answer: `${round(total)} m2 total floor area`, value: round(total), unit: 'm2' };
120
+ },
121
+ },
122
+ {
123
+ name: 'window-wall-ratio',
124
+ patterns: [/window.?wall.?ratio/i, /wwr/i, /glazing ratio/i],
125
+ description: 'Calculate window-to-wall ratio (ISO 13790: exterior walls only)',
126
+ execute: (bim) => {
127
+ const windows = bim.query().byType('IfcWindow').toArray();
128
+ let windowArea = 0;
129
+ for (const w of windows)
130
+ windowArea += getQuantity(bim, w.ref, ['Area']);
131
+ // Per ISO 13790, WWR should use exterior wall area only
132
+ const { exteriorWalls, area: extWallArea, hasIsExternalData } = getExteriorWalls(bim);
133
+ let wallArea;
134
+ let wallSource;
135
+ if (hasIsExternalData) {
136
+ // Use exterior wall area (may be 0 if no walls are marked external)
137
+ wallArea = extWallArea;
138
+ wallSource = `${exteriorWalls.length} exterior walls`;
139
+ }
140
+ else {
141
+ // Fallback to all walls only when IsExternal data is truly missing
142
+ const allWalls = bim.query().byType('IfcWall').toArray();
143
+ wallArea = 0;
144
+ for (const w of allWalls)
145
+ wallArea += getQuantity(bim, w.ref, ['GrossSideArea', 'NetSideArea']);
146
+ wallSource = `${allWalls.length} walls (all, IsExternal not available)`;
147
+ }
148
+ const ratio = wallArea > 0 ? (windowArea / wallArea) * 100 : 0;
149
+ return {
150
+ answer: `Window-Wall Ratio: ${round(ratio)}% (${round(windowArea)} m2 windows / ${round(wallArea)} m2 ${wallSource})`,
151
+ ratio: round(ratio),
152
+ windowArea: round(windowArea),
153
+ wallArea: round(wallArea),
154
+ wallSource,
155
+ };
156
+ },
157
+ },
158
+ {
159
+ name: 'total-volume',
160
+ patterns: [/total volume/i, /building volume/i, /volume of/i],
161
+ description: 'Sum volumes across all elements',
162
+ execute: (bim) => {
163
+ let total = 0;
164
+ for (const e of bim.query().toArray()) {
165
+ total += getQuantity(bim, e.ref, ['GrossVolume', 'NetVolume']);
166
+ }
167
+ return { answer: `${round(total)} m3 total volume`, value: round(total), unit: 'm3' };
168
+ },
169
+ },
170
+ // --- Listing recipes ---
171
+ {
172
+ name: 'list-storeys',
173
+ patterns: [/list.*storey/i, /what.*storey/i, /which.*storey/i, /show.*storey/i, /list.*floor/i, /what.*floor/i, /how many storey/i, /how many floor/i],
174
+ description: 'List all building storeys',
175
+ execute: (bim) => {
176
+ const storeys = bim.storeys();
177
+ const names = storeys.map((s) => s.name).filter(Boolean);
178
+ return {
179
+ answer: `${storeys.length} storeys: ${names.join(', ') || '(unnamed)'}`,
180
+ count: storeys.length,
181
+ storeys: names,
182
+ };
183
+ },
184
+ },
185
+ {
186
+ name: 'list-materials',
187
+ patterns: [/list.*material/i, /what.*material/i, /which.*material/i, /show.*material/i, /material.*list/i, /material.*takeoff/i, /material.*summary/i],
188
+ description: 'List all unique materials with element counts',
189
+ execute: (bim) => {
190
+ const counts = new Map();
191
+ for (const e of bim.query().toArray()) {
192
+ const mat = bim.materials(e.ref);
193
+ const name = mat?.materials?.[0] ?? mat?.name;
194
+ if (name)
195
+ counts.set(name, (counts.get(name) ?? 0) + 1);
196
+ }
197
+ const materials = [...counts.entries()]
198
+ .sort((a, b) => b[1] - a[1])
199
+ .map(([name, count]) => ({ name, count }));
200
+ const lines = materials.map(m => ` ${m.name}: ${m.count} elements`).join('\n');
201
+ return {
202
+ answer: `${materials.length} materials:\n${lines}`,
203
+ count: materials.length,
204
+ materials,
205
+ };
206
+ },
207
+ },
208
+ {
209
+ name: 'list-types',
210
+ patterns: [/list.*type/i, /what.*type/i, /which.*type/i, /element.*type/i, /type.*breakdown/i, /element.*breakdown/i],
211
+ description: 'List element types with counts',
212
+ execute: (bim) => {
213
+ const counts = new Map();
214
+ for (const e of bim.query().toArray()) {
215
+ if (e.type)
216
+ counts.set(e.type, (counts.get(e.type) ?? 0) + 1);
217
+ }
218
+ const types = [...counts.entries()]
219
+ .sort((a, b) => b[1] - a[1])
220
+ .map(([type, count]) => ({ type, count }));
221
+ const lines = types.map(t => ` ${t.type}: ${t.count}`).join('\n');
222
+ return {
223
+ answer: `${types.length} element types:\n${lines}`,
224
+ count: types.length,
225
+ types,
226
+ };
227
+ },
228
+ },
229
+ {
230
+ name: 'building-name',
231
+ patterns: [/building name/i, /what.*building/i, /project name/i, /model name/i],
232
+ description: 'Get the building name',
233
+ execute: (bim) => {
234
+ const buildings = bim.query().byType('IfcBuilding').toArray();
235
+ const name = buildings[0]?.name ?? '(unnamed)';
236
+ return { answer: `Building: ${name}`, name };
237
+ },
238
+ },
239
+ {
240
+ name: 'schema-version',
241
+ patterns: [/schema/i, /ifc version/i, /which version/i, /what version/i, /file format/i],
242
+ description: 'Get the IFC schema version',
243
+ execute: (_bim, store) => {
244
+ const schema = store.schemaVersion;
245
+ return { answer: `Schema: ${schema}`, schema };
246
+ },
247
+ },
248
+ // --- Spatial recipes ---
249
+ {
250
+ name: 'tallest-storey',
251
+ patterns: [/tallest.*storey/i, /highest.*storey/i, /tallest.*floor/i, /highest.*floor/i, /top.*storey/i, /top.*floor/i],
252
+ description: 'Find the storey with the most elements',
253
+ execute: (bim) => {
254
+ const storeys = bim.storeys();
255
+ let maxName = '(none)';
256
+ let maxCount = 0;
257
+ for (const s of storeys) {
258
+ const contained = bim.contains(s.ref);
259
+ if (contained.length > maxCount) {
260
+ maxCount = contained.length;
261
+ maxName = s.name ?? '(unnamed)';
262
+ }
263
+ }
264
+ return { answer: `Largest storey: ${maxName} with ${maxCount} elements`, storey: maxName, elementCount: maxCount };
265
+ },
266
+ },
267
+ // --- Validation recipes ---
268
+ {
269
+ name: 'duplicate-ids',
270
+ patterns: [/duplicate.*id/i, /duplicate.*global/i, /check.*id/i, /id.*duplicate/i, /validation/i, /health.*check/i],
271
+ description: 'Check for duplicate GlobalIds',
272
+ execute: (bim) => {
273
+ const entities = bim.query().toArray();
274
+ const ids = entities.map((e) => e.globalId).filter(Boolean);
275
+ const counts = new Map();
276
+ for (const id of ids)
277
+ counts.set(id, (counts.get(id) ?? 0) + 1);
278
+ const duplicates = [...counts.entries()].filter(([, c]) => c > 1);
279
+ if (duplicates.length === 0) {
280
+ return { answer: 'No duplicate GlobalIds found', duplicateCount: 0 };
281
+ }
282
+ return {
283
+ answer: `${duplicates.length} duplicate GlobalIds found`,
284
+ duplicateCount: duplicates.length,
285
+ duplicates: duplicates.map(([id, count]) => ({ id, count })),
286
+ };
287
+ },
288
+ },
289
+ // --- Exterior wall recipe ---
290
+ {
291
+ name: 'exterior-walls',
292
+ patterns: [/exterior.*wall/i, /external.*wall/i, /outside.*wall/i, /facade.*area/i],
293
+ description: 'Count and measure exterior walls (IsExternal=true)',
294
+ execute: (bim) => {
295
+ const { exteriorWalls, area: extArea, hasIsExternalData } = getExteriorWalls(bim);
296
+ if (!hasIsExternalData) {
297
+ // Fallback: no IsExternal property data available
298
+ const allWalls = bim.query().byType('IfcWall').toArray();
299
+ let totalArea = 0;
300
+ for (const w of allWalls)
301
+ totalArea += getQuantity(bim, w.ref, ['GrossSideArea', 'NetSideArea']);
302
+ return {
303
+ answer: `${allWalls.length} walls (IsExternal property not available — showing all walls), ${round(totalArea)} m2 total area`,
304
+ count: allWalls.length,
305
+ area: round(totalArea),
306
+ caveat: 'IsExternal property not found; results include all walls',
307
+ };
308
+ }
309
+ return {
310
+ answer: `${exteriorWalls.length} exterior walls, ${round(extArea)} m2 total area`,
311
+ count: exteriorWalls.length,
312
+ area: round(extArea),
313
+ };
314
+ },
315
+ },
316
+ // --- Ranking recipes ---
317
+ {
318
+ name: 'largest-element',
319
+ patterns: [/largest wall/i, /biggest wall/i, /largest slab/i, /biggest slab/i, /largest (\w+)/i, /biggest (\w+)/i],
320
+ description: 'Find the largest element by area or volume',
321
+ execute: (bim, _store, match) => {
322
+ const typeHint = match?.[1]?.toLowerCase() ?? 'wall';
323
+ const typeMap = {
324
+ wall: 'IfcWall', slab: 'IfcSlab', window: 'IfcWindow', door: 'IfcDoor',
325
+ column: 'IfcColumn', beam: 'IfcBeam', roof: 'IfcRoof', pile: 'IfcPile',
326
+ };
327
+ const ifcType = typeMap[typeHint] ?? ('Ifc' + typeHint.charAt(0).toUpperCase() + typeHint.slice(1));
328
+ const areaNames = ifcType === 'IfcWall'
329
+ ? ['GrossSideArea', 'NetSideArea']
330
+ : ['GrossArea', 'NetArea', 'Area', 'GrossSideArea'];
331
+ const entities = bim.query().byType(ifcType).toArray();
332
+ let maxEntity = null;
333
+ let maxValue = 0;
334
+ for (const e of entities) {
335
+ const val = getQuantity(bim, e.ref, areaNames) || getQuantity(bim, e.ref, ['GrossVolume', 'NetVolume']);
336
+ if (val > maxValue) {
337
+ maxValue = val;
338
+ maxEntity = e;
339
+ }
340
+ }
341
+ if (!maxEntity) {
342
+ return { answer: `No ${ifcType} entities found`, count: 0 };
343
+ }
344
+ return {
345
+ answer: `Largest ${ifcType}: "${maxEntity.name ?? '(unnamed)'}" with ${round(maxValue)} (m2 or m3)`,
346
+ name: maxEntity.name,
347
+ globalId: maxEntity.globalId,
348
+ value: round(maxValue),
349
+ type: ifcType,
350
+ };
351
+ },
352
+ },
353
+ {
354
+ name: 'smallest-element',
355
+ patterns: [/smallest wall/i, /smallest slab/i, /smallest (\w+)/i],
356
+ description: 'Find the smallest element by area or volume',
357
+ execute: (bim, _store, match) => {
358
+ const typeHint = match?.[1]?.toLowerCase() ?? 'wall';
359
+ const typeMap = {
360
+ wall: 'IfcWall', slab: 'IfcSlab', window: 'IfcWindow', door: 'IfcDoor',
361
+ column: 'IfcColumn', beam: 'IfcBeam',
362
+ };
363
+ const ifcType = typeMap[typeHint] ?? ('Ifc' + typeHint.charAt(0).toUpperCase() + typeHint.slice(1));
364
+ const areaNames = ifcType === 'IfcWall'
365
+ ? ['GrossSideArea', 'NetSideArea']
366
+ : ['GrossArea', 'NetArea', 'Area', 'GrossSideArea'];
367
+ const entities = bim.query().byType(ifcType).toArray();
368
+ let minEntity = null;
369
+ let minValue = Infinity;
370
+ for (const e of entities) {
371
+ const val = getQuantity(bim, e.ref, areaNames) || getQuantity(bim, e.ref, ['GrossVolume', 'NetVolume']);
372
+ if (val > 0 && val < minValue) {
373
+ minValue = val;
374
+ minEntity = e;
375
+ }
376
+ }
377
+ if (!minEntity) {
378
+ return { answer: `No ${ifcType} entities with quantities found`, count: 0 };
379
+ }
380
+ return {
381
+ answer: `Smallest ${ifcType}: "${minEntity.name ?? '(unnamed)'}" with ${round(minValue)} (m2 or m3)`,
382
+ name: minEntity.name,
383
+ globalId: minEntity.globalId,
384
+ value: round(minValue),
385
+ type: ifcType,
386
+ };
387
+ },
388
+ },
389
+ ];
390
+ // Dynamic count-type recipe with IFC type extraction from question
391
+ function findMatchingRecipe(question) {
392
+ for (const recipe of RECIPES) {
393
+ for (const pattern of recipe.patterns) {
394
+ const match = question.match(pattern);
395
+ if (match)
396
+ return { recipe, match };
397
+ }
398
+ }
399
+ return null;
400
+ }
401
+ export async function askCommand(args) {
402
+ const jsonOutput = hasFlag(args, '--json');
403
+ const explain = hasFlag(args, '--explain');
404
+ // Parse positional args (skip flags)
405
+ const positional = [];
406
+ for (const arg of args) {
407
+ if (arg.startsWith('-'))
408
+ continue;
409
+ positional.push(arg);
410
+ }
411
+ if (positional.length < 2) {
412
+ fatal('Usage: ifc-lite ask <file.ifc> "<question>" [--json] [--explain]\n\nExamples:\n ifc-lite ask model.ifc "how many walls?"\n ifc-lite ask model.ifc "window-wall ratio"\n ifc-lite ask model.ifc "list materials" --json\n ifc-lite ask model.ifc "total floor area" --explain\n\nUse --explain to see which recipe was matched.');
413
+ }
414
+ const [filePath, ...questionParts] = positional;
415
+ const question = questionParts.join(' ');
416
+ const found = findMatchingRecipe(question);
417
+ if (!found) {
418
+ if (jsonOutput) {
419
+ printJson({ error: 'No matching recipe', question, availableRecipes: RECIPES.map(r => r.name) });
420
+ }
421
+ else {
422
+ process.stderr.write(`No recipe matched: "${question}"\n\n`);
423
+ process.stderr.write('Available topics:\n');
424
+ const grouped = new Map();
425
+ for (const r of RECIPES) {
426
+ const category = r.name.split('-')[0];
427
+ const list = grouped.get(category) ?? [];
428
+ list.push(` ${r.name}: ${r.description}`);
429
+ grouped.set(category, list);
430
+ }
431
+ for (const [, items] of grouped) {
432
+ for (const item of items) {
433
+ process.stderr.write(item + '\n');
434
+ }
435
+ }
436
+ process.stderr.write('\nTip: Try phrasing your question differently, or use "ifc-lite ask <file> --explain" to debug matching.\n');
437
+ }
438
+ process.exit(1);
439
+ }
440
+ const { recipe, match } = found;
441
+ const { bim, store } = await createHeadlessContext(filePath);
442
+ if (explain) {
443
+ process.stderr.write(`Recipe: ${recipe.name}\n`);
444
+ process.stderr.write(`Description: ${recipe.description}\n`);
445
+ process.stderr.write(`Pattern matched: ${match?.[0] ?? question}\n\n`);
446
+ }
447
+ try {
448
+ const result = recipe.execute(bim, store, match);
449
+ if (jsonOutput) {
450
+ printJson({
451
+ recipe: recipe.name,
452
+ question,
453
+ ...result,
454
+ });
455
+ }
456
+ else {
457
+ process.stdout.write(result.answer + '\n');
458
+ }
459
+ }
460
+ catch (err) {
461
+ if (jsonOutput) {
462
+ printJson({ error: err.message, recipe: recipe.name, question });
463
+ }
464
+ else {
465
+ fatal(`Recipe "${recipe.name}" failed: ${err.message}`);
466
+ }
467
+ }
468
+ }
469
+ /**
470
+ * Get exterior walls and their total area. Returns whether IsExternal data exists at all.
471
+ */
472
+ function getExteriorWalls(bim) {
473
+ const walls = bim.query().byType('IfcWall').toArray();
474
+ const exteriorWalls = [];
475
+ let area = 0;
476
+ let hasIsExternalData = false;
477
+ for (const w of walls) {
478
+ const isExt = getPropValue(bim, w.ref, 'Pset_WallCommon', 'IsExternal');
479
+ if (isExt !== undefined) {
480
+ hasIsExternalData = true;
481
+ if (isExt === true || isExt === 'TRUE' || isExt === '.T.') {
482
+ exteriorWalls.push(w);
483
+ area += getQuantity(bim, w.ref, ['GrossSideArea', 'NetSideArea']);
484
+ }
485
+ }
486
+ }
487
+ return { exteriorWalls, area, hasIsExternalData };
488
+ }
489
+ function getQuantity(bim, ref, names) {
490
+ try {
491
+ const qsets = bim.quantities(ref);
492
+ for (const qset of qsets) {
493
+ for (const q of qset.quantities) {
494
+ if (names.includes(q.name)) {
495
+ return Number(q.value) || 0;
496
+ }
497
+ }
498
+ }
499
+ }
500
+ catch {
501
+ // No quantities available
502
+ }
503
+ return 0;
504
+ }
505
+ function getPropValue(bim, ref, psetName, propName) {
506
+ try {
507
+ const psets = bim.properties(ref);
508
+ for (const pset of psets) {
509
+ if (pset.name === psetName) {
510
+ const prop = pset.properties?.find((p) => p.name === propName);
511
+ if (prop)
512
+ return prop.value;
513
+ }
514
+ }
515
+ }
516
+ catch {
517
+ // Property not available
518
+ }
519
+ return undefined;
520
+ }
521
+ function round(n) {
522
+ return Math.round(n * 100) / 100;
523
+ }
524
+ //# sourceMappingURL=ask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/commands/ask.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAkBA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0D/D"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AA2BA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuG/D"}