@butlr/butlr-mcp-server 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.
- package/dist/clients/queries/topology.d.ts +8 -2
- package/dist/clients/queries/topology.d.ts.map +1 -1
- package/dist/clients/queries/topology.js +19 -2
- package/dist/clients/queries/topology.js.map +1 -1
- package/dist/clients/reporting-client.d.ts +4 -0
- package/dist/clients/reporting-client.d.ts.map +1 -1
- package/dist/clients/reporting-client.js +11 -5
- package/dist/clients/reporting-client.js.map +1 -1
- package/dist/tools/butlr-fetch-entity-details.d.ts +4 -0
- package/dist/tools/butlr-fetch-entity-details.d.ts.map +1 -1
- package/dist/tools/butlr-fetch-entity-details.js +25 -1
- package/dist/tools/butlr-fetch-entity-details.js.map +1 -1
- package/dist/tools/butlr-get-current-occupancy.d.ts.map +1 -1
- package/dist/tools/butlr-get-current-occupancy.js +1 -1
- package/dist/tools/butlr-get-current-occupancy.js.map +1 -1
- package/dist/tools/butlr-get-occupancy-timeseries.d.ts.map +1 -1
- package/dist/tools/butlr-get-occupancy-timeseries.js +1 -1
- package/dist/tools/butlr-get-occupancy-timeseries.js.map +1 -1
- package/dist/tools/butlr-space-busyness.d.ts.map +1 -1
- package/dist/tools/butlr-space-busyness.js +5 -2
- package/dist/tools/butlr-space-busyness.js.map +1 -1
- package/dist/tools/butlr-traffic-flow.d.ts.map +1 -1
- package/dist/tools/butlr-traffic-flow.js +112 -7
- package/dist/tools/butlr-traffic-flow.js.map +1 -1
- package/dist/types/responses.d.ts +1 -0
- package/dist/types/responses.d.ts.map +1 -1
- package/dist/utils/field-validator.d.ts +6 -0
- package/dist/utils/field-validator.d.ts.map +1 -1
- package/dist/utils/field-validator.js +2 -1
- package/dist/utils/field-validator.js.map +1 -1
- package/dist/utils/occupancy-helpers.d.ts +15 -2
- package/dist/utils/occupancy-helpers.d.ts.map +1 -1
- package/dist/utils/occupancy-helpers.js +104 -21
- package/dist/utils/occupancy-helpers.js.map +1 -1
- package/dist/utils/time-range-validator.d.ts.map +1 -1
- package/dist/utils/time-range-validator.js +3 -32
- package/dist/utils/time-range-validator.js.map +1 -1
- package/dist/utils/time-resolver.d.ts +18 -0
- package/dist/utils/time-resolver.d.ts.map +1 -0
- package/dist/utils/time-resolver.js +44 -0
- package/dist/utils/time-resolver.js.map +1 -0
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import { GET_ALL_SENSORS, GET_FULL_TOPOLOGY } from "../clients/queries/topology.
|
|
|
6
6
|
import { executeSearchAssets } from "./butlr-search-assets.js";
|
|
7
7
|
import { getTimezoneForAsset, buildTimezoneMetadata, getLocalMidnight, } from "../utils/timezone-helpers.js";
|
|
8
8
|
import { createValidationError, withToolErrorHandling } from "../errors/mcp-errors.js";
|
|
9
|
+
import { resolveTimeToIso } from "../utils/time-resolver.js";
|
|
9
10
|
import { rethrowIfGraphQLError, throwIfGraphQLErrors } from "../utils/graphql-helpers.js";
|
|
10
11
|
import { debug } from "../utils/debug.js";
|
|
11
12
|
const timeStringSchema = z.string().refine((val) => {
|
|
@@ -220,22 +221,74 @@ export async function executeTrafficFlow(args) {
|
|
|
220
221
|
: `today (${tzMetadata.timezone_abbr})`;
|
|
221
222
|
debug("traffic-flow", `Today starts at ${start} (midnight ${usedUtcFallback ? "UTC fallback" : tzMetadata.timezone_abbr})`);
|
|
222
223
|
}
|
|
223
|
-
|
|
224
|
+
// Resolve relative forms ("-20m", "now") to absolute timestamps: the
|
|
225
|
+
// ETL-backed reporting API requires RFC3339, and the response period
|
|
226
|
+
// metadata should carry real timestamps rather than relative strings.
|
|
227
|
+
start = resolveTimeToIso(start);
|
|
228
|
+
stop = resolveTimeToIso(stop);
|
|
229
|
+
// Pick window granularity from the range length. The ETL backend only
|
|
230
|
+
// returns fully-closed, end-labeled buckets that fit inside [start, stop]:
|
|
231
|
+
// a 1h window over a short recent range drops the in-progress hour
|
|
232
|
+
// entirely (its bucket doesn't exist until the hour closes). Querying 1m
|
|
233
|
+
// buckets for short ranges keeps edge loss to at most the current minute;
|
|
234
|
+
// results are rolled back up to hours below.
|
|
235
|
+
const durationMs = new Date(stop).getTime() - new Date(start).getTime();
|
|
236
|
+
const windowEvery = durationMs <= 2 * 60 * 60 * 1000 ? "1m" : "1h";
|
|
237
|
+
debug("traffic-flow", `Querying traffic from ${start} to ${stop} (window ${windowEvery})`);
|
|
238
|
+
// `fine` marks 1m-bucket points whose timestamps must be rolled up to the
|
|
239
|
+
// enclosing hour; native 1h bucket labels pass through untouched (they may
|
|
240
|
+
// sit on a non-UTC-aligned local grid, e.g. :30-offset timezones).
|
|
224
241
|
let trafficData = [];
|
|
225
242
|
try {
|
|
226
243
|
const response = await new ReportingRequestBuilder()
|
|
227
244
|
.assets("room", [spaceId])
|
|
228
245
|
.measurements(["traffic"])
|
|
229
246
|
.timeRange(start, stop)
|
|
230
|
-
.window(
|
|
247
|
+
.window(windowEvery, "sum", timezone) // Sum traffic per bucket, aligned to local timezone
|
|
231
248
|
.execute();
|
|
232
249
|
// Parse flat array response
|
|
233
250
|
// Traffic returns TWO data points per hour per sensor: "in" and "out"
|
|
234
251
|
if (!Array.isArray(response.data)) {
|
|
235
252
|
throw new Error("Expected array response from traffic query");
|
|
236
253
|
}
|
|
237
|
-
trafficData = response.data
|
|
254
|
+
trafficData = response.data.map((p) => ({
|
|
255
|
+
...p,
|
|
256
|
+
fine: windowEvery === "1m",
|
|
257
|
+
}));
|
|
238
258
|
debug("traffic-flow", `Received ${trafficData.length} data points from ${trafficSensors.length} sensors`);
|
|
259
|
+
// A 1h bucket only exists once its hour closes AND the ETL has written
|
|
260
|
+
// it, so a range ending at/near now silently misses the in-progress hour
|
|
261
|
+
// and possibly the just-closed one. Re-query the trailing 2 hours at 1m
|
|
262
|
+
// granularity and merge; hours already covered by a returned 1h bucket
|
|
263
|
+
// are deduplicated in the rollup below. The tail exists solely to
|
|
264
|
+
// recover those not-yet-materialized recent hours (materialization lag
|
|
265
|
+
// measured at up to ~1h), so it is skipped when the range's stop is old
|
|
266
|
+
// enough that every hourly bucket has long since landed.
|
|
267
|
+
if (windowEvery === "1h") {
|
|
268
|
+
const stopDate = new Date(stop);
|
|
269
|
+
const startDate = new Date(start);
|
|
270
|
+
const twoHoursMs = 2 * 60 * 60 * 1000;
|
|
271
|
+
const tailStartMs = Math.max(startDate.getTime(), stopDate.getTime() - twoHoursMs);
|
|
272
|
+
const recentStopMs = 3 * 60 * 60 * 1000;
|
|
273
|
+
if (tailStartMs < stopDate.getTime() && Date.now() - stopDate.getTime() < recentStopMs) {
|
|
274
|
+
try {
|
|
275
|
+
const tailResponse = await new ReportingRequestBuilder()
|
|
276
|
+
.assets("room", [spaceId])
|
|
277
|
+
.measurements(["traffic"])
|
|
278
|
+
.timeRange(new Date(tailStartMs).toISOString(), stop)
|
|
279
|
+
.window("1m", "sum", timezone)
|
|
280
|
+
.execute();
|
|
281
|
+
if (Array.isArray(tailResponse.data)) {
|
|
282
|
+
trafficData = trafficData.concat(tailResponse.data.map((p) => ({ ...p, fine: true })));
|
|
283
|
+
debug("traffic-flow", `Merged ${tailResponse.data.length} tail data points (1m)`);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch (tailError) {
|
|
287
|
+
// The closed-hour data is still valid without the tail
|
|
288
|
+
debug("traffic-flow", "Partial-hour tail query failed:", tailError);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
239
292
|
}
|
|
240
293
|
catch (error) {
|
|
241
294
|
rethrowIfGraphQLError(error);
|
|
@@ -244,12 +297,21 @@ export async function executeTrafficFlow(args) {
|
|
|
244
297
|
throw new Error(`Failed to get traffic data for ${room.name}. ${msg}`);
|
|
245
298
|
}
|
|
246
299
|
// Parse traffic data: group by time, then by sensor, then aggregate
|
|
247
|
-
// Store time separately to preserve full ISO timestamp
|
|
300
|
+
// Store time separately to preserve full ISO timestamp. The fine flag is
|
|
301
|
+
// part of the key: a 1m tail bucket ending exactly on an hour boundary
|
|
302
|
+
// carries the same label as that hour's native 1h bucket, and must not
|
|
303
|
+
// share (and overwrite) the native bucket's entry.
|
|
248
304
|
const byHourSensor = new Map();
|
|
249
305
|
for (const point of trafficData) {
|
|
250
|
-
const key = `${point.time}:${point.sensor_id}`;
|
|
306
|
+
const key = `${point.time}:${point.sensor_id}:${point.fine}`;
|
|
251
307
|
if (!byHourSensor.has(key)) {
|
|
252
|
-
byHourSensor.set(key, {
|
|
308
|
+
byHourSensor.set(key, {
|
|
309
|
+
time: point.time,
|
|
310
|
+
sensor_id: point.sensor_id,
|
|
311
|
+
fine: point.fine,
|
|
312
|
+
in: 0,
|
|
313
|
+
out: 0,
|
|
314
|
+
});
|
|
253
315
|
}
|
|
254
316
|
const counts = byHourSensor.get(key);
|
|
255
317
|
if (point.field === "in") {
|
|
@@ -259,10 +321,48 @@ export async function executeTrafficFlow(args) {
|
|
|
259
321
|
counts.out = point.value || 0;
|
|
260
322
|
}
|
|
261
323
|
}
|
|
324
|
+
// Roll a bucket timestamp up to its enclosing hour. Bucket timestamps are
|
|
325
|
+
// end-labeled (a 1m bucket "17:29" covers 17:28–17:29), so ceil to the
|
|
326
|
+
// hour to stay on the same end-labeled convention the API uses for 1h
|
|
327
|
+
// buckets.
|
|
328
|
+
const toHourEnd = (iso) => {
|
|
329
|
+
const d = new Date(iso);
|
|
330
|
+
if (d.getUTCMinutes() !== 0 || d.getUTCSeconds() !== 0 || d.getUTCMilliseconds() !== 0) {
|
|
331
|
+
d.setUTCMinutes(0, 0, 0);
|
|
332
|
+
d.setUTCHours(d.getUTCHours() + 1);
|
|
333
|
+
}
|
|
334
|
+
return d.toISOString().replace(".000Z", "Z");
|
|
335
|
+
};
|
|
336
|
+
// Native (closed) 1h buckets are authoritative for the interval they
|
|
337
|
+
// cover, so fine-grained tail minutes falling inside any of them are
|
|
338
|
+
// dropped to avoid double counting. Coverage is checked on the bucket
|
|
339
|
+
// intervals themselves — an end-labeled 1h bucket T covers (T-1h, T] —
|
|
340
|
+
// rather than on labels, so it also holds for sites whose local hour grid
|
|
341
|
+
// is not UTC-aligned (e.g. :30-offset timezones). Coverage is tracked
|
|
342
|
+
// per sensor: bucket materialization is a per-series flush, so one
|
|
343
|
+
// sensor's landed hour must not suppress another sensor's tail minutes
|
|
344
|
+
// for that same hour.
|
|
345
|
+
const HOUR_MS = 60 * 60 * 1000;
|
|
346
|
+
const nativeEndsBySensor = new Map();
|
|
347
|
+
for (const [, data] of byHourSensor) {
|
|
348
|
+
if (!data.fine) {
|
|
349
|
+
const ends = nativeEndsBySensor.get(data.sensor_id) || [];
|
|
350
|
+
ends.push(new Date(data.time).getTime());
|
|
351
|
+
nativeEndsBySensor.set(data.sensor_id, ends);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
const coveredByNative = (sensorId, iso) => {
|
|
355
|
+
const t = new Date(iso).getTime();
|
|
356
|
+
const ends = nativeEndsBySensor.get(sensorId);
|
|
357
|
+
return ends ? ends.some((end) => t <= end && t > end - HOUR_MS) : false;
|
|
358
|
+
};
|
|
262
359
|
// Aggregate across sensors by hour (group by time only)
|
|
263
360
|
const byHour = new Map();
|
|
264
361
|
for (const [_key, data] of byHourSensor) {
|
|
265
|
-
|
|
362
|
+
if (data.fine && coveredByNative(data.sensor_id, data.time)) {
|
|
363
|
+
continue;
|
|
364
|
+
}
|
|
365
|
+
const time = data.fine ? toHourEnd(data.time) : data.time;
|
|
266
366
|
if (!byHour.has(time)) {
|
|
267
367
|
byHour.set(time, { in: 0, out: 0 });
|
|
268
368
|
}
|
|
@@ -330,6 +430,11 @@ export async function executeTrafficFlow(args) {
|
|
|
330
430
|
summary,
|
|
331
431
|
timestamp: new Date().toISOString(),
|
|
332
432
|
timezone_note: "All timestamps are UTC (ISO-8601). Use site_timezone to interpret in local time.",
|
|
433
|
+
// Traffic events take ~5-6 minutes to land in the reporting store, so a
|
|
434
|
+
// window ending at/near now structurally undercounts the trailing minutes
|
|
435
|
+
...(Date.now() - new Date(stop).getTime() < 10 * 60 * 1000 && {
|
|
436
|
+
freshness_note: "Traffic data becomes available roughly 5-10 minutes after events occur. Counts for the most recent ~10 minutes may still be incomplete; re-query later for final numbers.",
|
|
437
|
+
}),
|
|
333
438
|
...(usedUtcFallback && {
|
|
334
439
|
warning: "Could not determine local timezone for this space; timestamps use UTC midnight as fallback. 'Today' may not align with the site's actual local day.",
|
|
335
440
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"butlr-traffic-flow.js","sourceRoot":"","sources":["../../src/tools/butlr-traffic-flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"butlr-traffic-flow.js","sourceRoot":"","sources":["../../src/tools/butlr-traffic-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/types/responses.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../src/types/responses.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,12 @@
|
|
|
5
5
|
/** Known entity types supported by the Butlr GraphQL API */
|
|
6
6
|
export declare const ENTITY_TYPES: readonly ["site", "building", "floor", "room", "zone", "sensor", "hive"];
|
|
7
7
|
export type EntityType = (typeof ENTITY_TYPES)[number];
|
|
8
|
+
/**
|
|
9
|
+
* Valid fields for each entity type
|
|
10
|
+
* Based on GraphQL schema (mix of snake_case and camelCase)
|
|
11
|
+
* Exported for unit testing (FIELD_SELECTIONS sync invariant)
|
|
12
|
+
*/
|
|
13
|
+
export declare const VALID_FIELDS: Record<EntityType, readonly string[]>;
|
|
8
14
|
/**
|
|
9
15
|
* Default fields for each entity type (minimal set)
|
|
10
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-validator.d.ts","sourceRoot":"","sources":["../../src/utils/field-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,0EAQf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"field-validator.d.ts","sourceRoot":"","sources":["../../src/utils/field-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,0EAQf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAqBvD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAuG9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAQhE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAuBtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAMjE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAgB/F"}
|
|
@@ -32,8 +32,9 @@ function normalizeFieldName(field) {
|
|
|
32
32
|
/**
|
|
33
33
|
* Valid fields for each entity type
|
|
34
34
|
* Based on GraphQL schema (mix of snake_case and camelCase)
|
|
35
|
+
* Exported for unit testing (FIELD_SELECTIONS sync invariant)
|
|
35
36
|
*/
|
|
36
|
-
const VALID_FIELDS = {
|
|
37
|
+
export const VALID_FIELDS = {
|
|
37
38
|
site: ["id", "name", "timezone", "siteNumber", "customID", "org_id", "buildings"],
|
|
38
39
|
building: [
|
|
39
40
|
"id",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-validator.js","sourceRoot":"","sources":["../../src/utils/field-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;CACE,CAAC;AAIX;;;;GAIG;AACH,MAAM,aAAa,GAA2B;IAC5C,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,SAAS,EAAE,IAAI,EAAE,kCAAkC;CACpD,CAAC;AAEF;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACvC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"field-validator.js","sourceRoot":"","sources":["../../src/utils/field-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,11 +55,24 @@ export declare function getPresenceCoverageNote(assetType: "floor" | "room" | "z
|
|
|
55
55
|
* Build coverage note for traffic measurement.
|
|
56
56
|
*/
|
|
57
57
|
export declare function getTrafficCoverageNote(assetType: "floor" | "room" | "zone", sensorCount: number): string;
|
|
58
|
+
/**
|
|
59
|
+
* Caller context threaded through recommendation building. `assetType` decides
|
|
60
|
+
* structural applicability (zones don't support traffic); `windowLabel` is a
|
|
61
|
+
* human-readable description of the query window so failure copy doesn't claim
|
|
62
|
+
* a window the caller never queried (the current-occupancy tool uses a fixed
|
|
63
|
+
* 5-minute snapshot; the timeseries tool uses a caller-supplied range).
|
|
64
|
+
*/
|
|
65
|
+
export interface RecommendationContext {
|
|
66
|
+
assetType: "floor" | "room" | "zone";
|
|
67
|
+
windowLabel: string;
|
|
68
|
+
}
|
|
58
69
|
/**
|
|
59
70
|
* Build measurement recommendation based on data availability AND query success.
|
|
60
71
|
*
|
|
61
72
|
* Unlike the previous implementation, this checks whether data was actually retrieved,
|
|
62
|
-
* not just whether sensors exist.
|
|
73
|
+
* not just whether sensors exist. When both measurement types fail, the reason
|
|
74
|
+
* distinguishes three sub-cases (no sensors / sensors-but-quiet / call errored)
|
|
75
|
+
* so downstream LLMs don't conflate "uninstrumented space" with "no recent reads."
|
|
63
76
|
*/
|
|
64
|
-
export declare function buildRecommendation(presence: BaseMeasurementData, traffic: BaseMeasurementData, presenceHasData: boolean, trafficHasData: boolean): MeasurementRecommendation;
|
|
77
|
+
export declare function buildRecommendation(presence: BaseMeasurementData, traffic: BaseMeasurementData, presenceHasData: boolean, trafficHasData: boolean, ctx: RecommendationContext): MeasurementRecommendation;
|
|
65
78
|
//# sourceMappingURL=occupancy-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"occupancy-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/occupancy-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"occupancy-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/occupancy-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAQ,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5F;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,eAAe,CAAC,CA4BxE;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,GAAG,YAAY,CA8EvF;AAwCD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CASnF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAOzE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EACpC,WAAW,EAAE,MAAM,GAClB,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,EACpC,WAAW,EAAE,MAAM,GAClB,MAAM,CASR;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAE,OAAO,EACxB,cAAc,EAAE,OAAO,EACvB,GAAG,EAAE,qBAAqB,GACzB,yBAAyB,CA4B3B"}
|
|
@@ -60,23 +60,24 @@ export function resolveAssetContext(assetId, ctx) {
|
|
|
60
60
|
: undefined;
|
|
61
61
|
// Resolve asset name
|
|
62
62
|
const assetName = findAssetName(assetId, typedAssetType, ctx.floors);
|
|
63
|
-
// Filter sensors for this asset.
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
63
|
+
// Filter sensors for this asset. Rooms get sensors via the flat
|
|
64
|
+
// productionSensors list (joined by sensor.room_id). Zones get them
|
|
65
|
+
// via the topology's floor.zones[i].sensors relation — they have
|
|
66
|
+
// their own directly-attributed sensors, NOT inherited from any
|
|
67
|
+
// notional "parent room" (zones and rooms are siblings under a
|
|
68
|
+
// floor; the legacy zone.room_id field is decorative).
|
|
69
|
+
let assetSensors;
|
|
70
|
+
if (typedAssetType === "zone") {
|
|
71
|
+
const zone = findZone(assetId, ctx.floors);
|
|
72
|
+
assetSensors = (zone?.sensors ?? []).filter(isProductionSensor);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
assetSensors = ctx.productionSensors.filter((s) => {
|
|
76
|
+
const sensorFloorId = s.floor_id || s.floorID;
|
|
77
|
+
const sensorRoomId = s.room_id || s.roomID;
|
|
78
|
+
return typedAssetType === "floor" ? sensorFloorId === assetId : sensorRoomId === assetId;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
80
81
|
// Partition sensors by mode
|
|
81
82
|
const presenceSensors = assetSensors.filter((s) => s.mode === "presence");
|
|
82
83
|
let trafficSensors;
|
|
@@ -132,6 +133,18 @@ function findAssetName(assetId, assetType, floors) {
|
|
|
132
133
|
return undefined;
|
|
133
134
|
}
|
|
134
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Find a zone object in the topology by id. Returns undefined if the zone
|
|
138
|
+
* isn't present (e.g. stale id or topology that didn't include zones).
|
|
139
|
+
*/
|
|
140
|
+
function findZone(zoneId, floors) {
|
|
141
|
+
for (const floor of floors) {
|
|
142
|
+
const zone = floor.zones?.find((z) => z.id === zoneId);
|
|
143
|
+
if (zone)
|
|
144
|
+
return zone;
|
|
145
|
+
}
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
135
148
|
/**
|
|
136
149
|
* Get the measurement name for presence data based on asset type.
|
|
137
150
|
*/
|
|
@@ -188,9 +201,11 @@ export function getTrafficCoverageNote(assetType, sensorCount) {
|
|
|
188
201
|
* Build measurement recommendation based on data availability AND query success.
|
|
189
202
|
*
|
|
190
203
|
* Unlike the previous implementation, this checks whether data was actually retrieved,
|
|
191
|
-
* not just whether sensors exist.
|
|
204
|
+
* not just whether sensors exist. When both measurement types fail, the reason
|
|
205
|
+
* distinguishes three sub-cases (no sensors / sensors-but-quiet / call errored)
|
|
206
|
+
* so downstream LLMs don't conflate "uninstrumented space" with "no recent reads."
|
|
192
207
|
*/
|
|
193
|
-
export function buildRecommendation(presence, traffic, presenceHasData, trafficHasData) {
|
|
208
|
+
export function buildRecommendation(presence, traffic, presenceHasData, trafficHasData, ctx) {
|
|
194
209
|
const presenceSucceeded = presence.available && presenceHasData && !presence.warning;
|
|
195
210
|
const trafficSucceeded = traffic.available && trafficHasData && !traffic.warning;
|
|
196
211
|
if (presenceSucceeded && trafficSucceeded) {
|
|
@@ -211,10 +226,78 @@ export function buildRecommendation(presence, traffic, presenceHasData, trafficH
|
|
|
211
226
|
recommendation_reason: "Traffic available (entry/exit counts).",
|
|
212
227
|
};
|
|
213
228
|
}
|
|
214
|
-
const failureReason = presence.warning || traffic.warning || "No occupancy data available.";
|
|
215
229
|
return {
|
|
216
230
|
recommended_measurement: "none",
|
|
217
|
-
recommendation_reason:
|
|
231
|
+
recommendation_reason: buildFailureReason(presence, traffic, ctx),
|
|
218
232
|
};
|
|
219
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Number of sensors configured for a measurement, regardless of which field
|
|
236
|
+
* the caller populated: floors report traffic via `entrance_sensor_count`;
|
|
237
|
+
* rooms and zones use `sensor_count`.
|
|
238
|
+
*/
|
|
239
|
+
function configuredSensorCount(data) {
|
|
240
|
+
return data.sensor_count ?? data.entrance_sensor_count ?? 0;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Compose the recommendation_reason when neither presence nor traffic yielded a
|
|
244
|
+
* usable reading. Prefers the more actionable of the two measurement types,
|
|
245
|
+
* giving the customer something concrete to do next (instrument the space,
|
|
246
|
+
* wait for the next read, check sensor health, or retry the call).
|
|
247
|
+
*
|
|
248
|
+
* Avoids the literal phrase "no occupancy data" — downstream LLMs were quoting
|
|
249
|
+
* it verbatim and turning "quiet but instrumented" into "the space is
|
|
250
|
+
* unmonitored," which is the opposite of true.
|
|
251
|
+
*/
|
|
252
|
+
function buildFailureReason(presence, traffic, ctx) {
|
|
253
|
+
const presenceReason = describeMeasurementFailure("presence", presence, ctx);
|
|
254
|
+
const trafficReason = describeMeasurementFailure("traffic", traffic, ctx);
|
|
255
|
+
// Prefer the measurement type carrying real signal: one with sensors
|
|
256
|
+
// configured, or whose call errored mid-flight. Without this, a floor with
|
|
257
|
+
// working entrance sensors but zero presence sensors would surface
|
|
258
|
+
// presence's "no sensors configured" copy and read as uninstrumented.
|
|
259
|
+
// Presence wins ties — it's the more informative signal when both
|
|
260
|
+
// measurement types are instrumented but quiet.
|
|
261
|
+
const presenceHasSignal = configuredSensorCount(presence) > 0 || Boolean(presence.warning);
|
|
262
|
+
const trafficHasSignal = configuredSensorCount(traffic) > 0 || Boolean(traffic.warning);
|
|
263
|
+
if (presenceReason && presenceHasSignal)
|
|
264
|
+
return presenceReason;
|
|
265
|
+
if (trafficReason && trafficHasSignal)
|
|
266
|
+
return trafficReason;
|
|
267
|
+
// Neither measurement type has sensors: the space is uninstrumented.
|
|
268
|
+
// Presence first — it applies to every asset type.
|
|
269
|
+
if (presenceReason)
|
|
270
|
+
return presenceReason;
|
|
271
|
+
if (trafficReason)
|
|
272
|
+
return trafficReason;
|
|
273
|
+
// Defensive fallback for totality only. Unreachable today: presence is
|
|
274
|
+
// applicable to every asset type, so `presenceReason` is always set.
|
|
275
|
+
return "No recent occupancy reads. Check butlr_hardware_snapshot for sensor health.";
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Returns a customer-facing explanation of why a measurement type produced no
|
|
279
|
+
* usable reading, or `undefined` if the measurement type is structurally
|
|
280
|
+
* inapplicable to this asset (traffic on a zone). Only called for measurements
|
|
281
|
+
* that yielded no usable reading, so "sensors configured" below means
|
|
282
|
+
* configured-but-quiet.
|
|
283
|
+
*/
|
|
284
|
+
function describeMeasurementFailure(kind, data, ctx) {
|
|
285
|
+
// Traffic on a zone is the only structurally-N/A combination. The caller's
|
|
286
|
+
// coverage_note already explains why; surfacing it here would be redundant.
|
|
287
|
+
if (kind === "traffic" && ctx.assetType === "zone")
|
|
288
|
+
return undefined;
|
|
289
|
+
// The call errored. Surface the warning verbatim so the customer (and any
|
|
290
|
+
// LLM reading the response) gets the actual failure mode.
|
|
291
|
+
if (data.warning) {
|
|
292
|
+
return `Tried to retrieve ${kind} occupancy but the request failed: ${data.warning}. Retry with a smaller asset set, or check butlr_hardware_snapshot for sensor health.`;
|
|
293
|
+
}
|
|
294
|
+
// Sensors are configured but the Reporting API had no reads in the query
|
|
295
|
+
// window. Honest: we don't know if the space is empty or if the sensors
|
|
296
|
+
// are stuck — point at hardware_snapshot for the health-check answer.
|
|
297
|
+
if (configuredSensorCount(data) > 0) {
|
|
298
|
+
return `Sensor(s) configured but no ${kind} reads in ${ctx.windowLabel}. The asset may currently be empty, or the sensor(s) may need a health check via butlr_hardware_snapshot.`;
|
|
299
|
+
}
|
|
300
|
+
// No sensors at all. The space is uninstrumented for this measurement type.
|
|
301
|
+
return `No ${kind} sensors configured for this asset. Contact facilities to instrument it before requesting ${kind} occupancy.`;
|
|
302
|
+
}
|
|
220
303
|
//# sourceMappingURL=occupancy-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"occupancy-helpers.js","sourceRoot":"","sources":["../../src/utils/occupancy-helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"occupancy-helpers.js","sourceRoot":"","sources":["../../src/utils/occupancy-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-range-validator.d.ts","sourceRoot":"","sources":["../../src/utils/time-range-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"time-range-validator.d.ts","sourceRoot":"","sources":["../../src/utils/time-range-validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAiCrF"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Time range validation for timeseries queries
|
|
3
3
|
* Prevents excessive data queries that could timeout or overwhelm the API
|
|
4
4
|
*/
|
|
5
|
+
import { parseTimeString } from "./time-resolver.js";
|
|
5
6
|
/**
|
|
6
7
|
* Validate time range based on interval
|
|
7
8
|
* @param interval Aggregation interval ('1m', '1h', '1d')
|
|
@@ -11,8 +12,8 @@
|
|
|
11
12
|
*/
|
|
12
13
|
export function validateTimeRange(interval, start, stop) {
|
|
13
14
|
// Parse times - handle relative times by converting to absolute
|
|
14
|
-
const startTime =
|
|
15
|
-
const stopTime =
|
|
15
|
+
const startTime = parseTimeString(start);
|
|
16
|
+
const stopTime = parseTimeString(stop);
|
|
16
17
|
// Calculate duration in hours
|
|
17
18
|
const durationMs = stopTime.getTime() - startTime.getTime();
|
|
18
19
|
const durationHours = durationMs / (1000 * 60 * 60);
|
|
@@ -32,34 +33,4 @@ export function validateTimeRange(interval, start, stop) {
|
|
|
32
33
|
throw new Error(`Start time must be before stop time. Start: ${start}, Stop: ${stop}`);
|
|
33
34
|
}
|
|
34
35
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Parse time string (ISO-8601 or relative) to Date
|
|
37
|
-
*/
|
|
38
|
-
function parseTime(timeStr) {
|
|
39
|
-
// Handle relative times like '-24h', '-1d', 'now'
|
|
40
|
-
if (timeStr === "now") {
|
|
41
|
-
return new Date();
|
|
42
|
-
}
|
|
43
|
-
// Relative time pattern: -<number><unit>
|
|
44
|
-
const relativeMatch = timeStr.match(/^-(\d+)(m|h|d)$/);
|
|
45
|
-
if (relativeMatch) {
|
|
46
|
-
const amount = parseInt(relativeMatch[1], 10);
|
|
47
|
-
const unit = relativeMatch[2];
|
|
48
|
-
const now = new Date();
|
|
49
|
-
switch (unit) {
|
|
50
|
-
case "m":
|
|
51
|
-
return new Date(now.getTime() - amount * 60 * 1000);
|
|
52
|
-
case "h":
|
|
53
|
-
return new Date(now.getTime() - amount * 60 * 60 * 1000);
|
|
54
|
-
case "d":
|
|
55
|
-
return new Date(now.getTime() - amount * 24 * 60 * 60 * 1000);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
// Try parsing as ISO-8601
|
|
59
|
-
const parsed = new Date(timeStr);
|
|
60
|
-
if (isNaN(parsed.getTime())) {
|
|
61
|
-
throw new Error(`Invalid time format: ${timeStr}. Use ISO-8601 or relative format like '-24h'.`);
|
|
62
|
-
}
|
|
63
|
-
return parsed;
|
|
64
|
-
}
|
|
65
36
|
//# sourceMappingURL=time-range-validator.js.map
|