@butlr/butlr-mcp-server 0.5.1 → 0.6.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/README.md +1 -1
- package/dist/cache/topology-cache.d.ts +6 -6
- package/dist/cache/topology-cache.js +6 -6
- package/dist/clients/queries/topology.d.ts +14 -0
- package/dist/clients/queries/topology.d.ts.map +1 -1
- package/dist/clients/queries/topology.js +48 -0
- package/dist/clients/queries/topology.js.map +1 -1
- package/dist/clients/reporting-client.d.ts +6 -0
- package/dist/clients/reporting-client.d.ts.map +1 -1
- package/dist/clients/reporting-client.js.map +1 -1
- package/dist/clients/types.d.ts +1 -1
- package/dist/clients/types.d.ts.map +1 -1
- package/dist/tools/butlr-list-topology.d.ts.map +1 -1
- package/dist/tools/butlr-list-topology.js +7 -53
- package/dist/tools/butlr-list-topology.js.map +1 -1
- package/dist/tools/butlr-search-assets.d.ts +1 -0
- package/dist/tools/butlr-search-assets.d.ts.map +1 -1
- package/dist/tools/butlr-search-assets.js +59 -15
- package/dist/tools/butlr-search-assets.js.map +1 -1
- package/dist/tools/butlr-traffic-flow.d.ts.map +1 -1
- package/dist/tools/butlr-traffic-flow.js +147 -54
- package/dist/tools/butlr-traffic-flow.js.map +1 -1
- package/dist/types/responses.d.ts +1 -1
- package/dist/types/responses.d.ts.map +1 -1
- package/dist/utils/asset-flattener.d.ts.map +1 -1
- package/dist/utils/asset-flattener.js +15 -3
- package/dist/utils/asset-flattener.js.map +1 -1
- package/dist/utils/graphql-helpers.d.ts +26 -1
- package/dist/utils/graphql-helpers.d.ts.map +1 -1
- package/dist/utils/graphql-helpers.js +30 -5
- package/dist/utils/graphql-helpers.js.map +1 -1
- package/dist/utils/occupancy-helpers.d.ts +72 -3
- package/dist/utils/occupancy-helpers.d.ts.map +1 -1
- package/dist/utils/occupancy-helpers.js +129 -18
- package/dist/utils/occupancy-helpers.js.map +1 -1
- package/dist/utils/topology-merge.d.ts +24 -0
- package/dist/utils/topology-merge.d.ts.map +1 -0
- package/dist/utils/topology-merge.js +57 -0
- package/dist/utils/topology-merge.js.map +1 -0
- package/llms.txt +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { apolloClient } from "../clients/graphql-client.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import { GET_FULL_TOPOLOGY } from "../clients/queries/topology.js";
|
|
3
|
+
import { GET_ALL_HIVES, GET_ALL_SENSORS, GET_FULL_TOPOLOGY } from "../clients/queries/topology.js";
|
|
4
4
|
import { getCachedTopology, setCachedTopology, generateTopologyCacheKey, } from "../cache/topology-cache.js";
|
|
5
5
|
import { flattenTopology } from "../utils/asset-flattener.js";
|
|
6
6
|
import { searchAssets } from "../utils/fuzzy-match.js";
|
|
7
7
|
import { buildAssetPath } from "../utils/path-builder.js";
|
|
8
|
-
import { rethrowIfGraphQLError } from "../utils/graphql-helpers.js";
|
|
8
|
+
import { isProductionHive, isProductionSensor, rethrowIfGraphQLError, throwIfGraphQLErrors, } from "../utils/graphql-helpers.js";
|
|
9
|
+
import { mergeSensorsAndHivesIntoTopology } from "../utils/topology-merge.js";
|
|
9
10
|
import { debug } from "../utils/debug.js";
|
|
10
11
|
import { withToolErrorHandling } from "../errors/mcp-errors.js";
|
|
11
12
|
const VALID_ASSET_TYPES = ["site", "building", "floor", "room", "zone", "sensor", "hive"];
|
|
@@ -85,15 +86,18 @@ export async function executeSearchAssets(args) {
|
|
|
85
86
|
debug("search-assets", `Searching for "${args.query}"` +
|
|
86
87
|
(args.asset_types ? ` in types: ${args.asset_types.join(",")}` : "") +
|
|
87
88
|
` (max: ${maxResults})`);
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
// `
|
|
91
|
-
//
|
|
92
|
-
//
|
|
93
|
-
//
|
|
89
|
+
// `devicesMerged: true`: sensors and hives are merged onto their floors
|
|
90
|
+
// before flattening, because `flattenTopology` reads devices from
|
|
91
|
+
// `floor.sensors`/`floor.hives` and `GET_FULL_TOPOLOGY` selects neither.
|
|
92
|
+
// Without the merge this tool's corpus holds zero sensors and zero hives,
|
|
93
|
+
// while `VALID_ASSET_TYPES` advertises both and `butlr_hardware_snapshot`
|
|
94
|
+
// tells callers to find sensors here first.
|
|
95
|
+
//
|
|
96
|
+
// This is the same key `butlr_list_topology` writes, deliberately: both now
|
|
97
|
+
// hold the merged shape, so either can prime the other.
|
|
94
98
|
const cacheKey = generateTopologyCacheKey(process.env.BUTLR_ORG_ID || "default", true, // include devices for comprehensive search
|
|
95
99
|
true, // include zones
|
|
96
|
-
|
|
100
|
+
true, // devicesMerged: devices are nested onto their floors before flattening
|
|
97
101
|
undefined);
|
|
98
102
|
// Try to get cached topology
|
|
99
103
|
let sites = [];
|
|
@@ -106,10 +110,20 @@ export async function executeSearchAssets(args) {
|
|
|
106
110
|
// Fetch fresh topology
|
|
107
111
|
debug("search-assets", "Fetching fresh topology for search");
|
|
108
112
|
try {
|
|
109
|
-
const result = await
|
|
110
|
-
query
|
|
111
|
-
|
|
112
|
-
|
|
113
|
+
const [result, sensorsResult, hivesResult] = await Promise.all([
|
|
114
|
+
apolloClient.query({
|
|
115
|
+
query: GET_FULL_TOPOLOGY,
|
|
116
|
+
fetchPolicy: "network-only",
|
|
117
|
+
}),
|
|
118
|
+
apolloClient.query({
|
|
119
|
+
query: GET_ALL_SENSORS,
|
|
120
|
+
fetchPolicy: "network-only",
|
|
121
|
+
}),
|
|
122
|
+
apolloClient.query({
|
|
123
|
+
query: GET_ALL_HIVES,
|
|
124
|
+
fetchPolicy: "network-only",
|
|
125
|
+
}),
|
|
126
|
+
]);
|
|
113
127
|
// Apollo can return both data and errors - only fail if we have no data
|
|
114
128
|
if (!result.data || !result.data.sites || !result.data.sites.data) {
|
|
115
129
|
// If we have error but no data, throw
|
|
@@ -118,12 +132,41 @@ export async function executeSearchAssets(args) {
|
|
|
118
132
|
}
|
|
119
133
|
throw new Error("Invalid response structure from API");
|
|
120
134
|
}
|
|
121
|
-
//
|
|
122
|
-
|
|
135
|
+
// A failed device fetch must surface as an error, not as
|
|
136
|
+
// `total_matches: 0` — and must never be cached under the key
|
|
137
|
+
// butlr_list_topology trusts.
|
|
138
|
+
throwIfGraphQLErrors(sensorsResult);
|
|
139
|
+
throwIfGraphQLErrors(hivesResult);
|
|
140
|
+
// Track whether the topology data is partial (errors alongside data).
|
|
141
|
+
// A device query that errored counts too: caching a tree whose floors
|
|
142
|
+
// carry empty sensor arrays would make every later cache hit report
|
|
143
|
+
// "no sensors in this org" as if it were the answer.
|
|
144
|
+
const partialData = !!result.error || !!sensorsResult.error || !!hivesResult.error;
|
|
123
145
|
if (partialData) {
|
|
124
146
|
debug("search-assets", "Warning: GraphQL errors present, data may be partial");
|
|
125
147
|
}
|
|
126
148
|
sites = result.data.sites.data;
|
|
149
|
+
// Same shape contract as butlr_list_topology, which reads the cache
|
|
150
|
+
// entry this tool writes: only an explicit array survives. `|| []`
|
|
151
|
+
// here would launder a serialisation regression into a device-empty
|
|
152
|
+
// tree, cached where that tool's own contract check never runs.
|
|
153
|
+
const rawSensors = sensorsResult.data?.sensors?.data;
|
|
154
|
+
if (!Array.isArray(rawSensors)) {
|
|
155
|
+
throw new Error("Unexpected response shape from sensors query (expected array, got " +
|
|
156
|
+
`${rawSensors === null ? "null" : typeof rawSensors}). Please retry; if persistent, the upstream API contract may have changed.`);
|
|
157
|
+
}
|
|
158
|
+
const rawHives = hivesResult.data?.hives?.data;
|
|
159
|
+
if (!Array.isArray(rawHives)) {
|
|
160
|
+
throw new Error("Unexpected response shape from hives query (expected array, got " +
|
|
161
|
+
`${rawHives === null ? "null" : typeof rawHives}). Please retry; if persistent, the upstream API contract may have changed.`);
|
|
162
|
+
}
|
|
163
|
+
// Test/mirror devices are excluded from the corpus, matching
|
|
164
|
+
// butlr_list_topology. A search hit on a mirror sensor would hand the
|
|
165
|
+
// caller an ID that every data tool then refuses.
|
|
166
|
+
const allSensors = rawSensors.filter(isProductionSensor);
|
|
167
|
+
const allHives = rawHives.filter(isProductionHive);
|
|
168
|
+
sites = mergeSensorsAndHivesIntoTopology(sites, allSensors, allHives);
|
|
169
|
+
debug("search-assets", `Merged ${allSensors.length} sensors and ${allHives.length} hives into topology`);
|
|
127
170
|
// Only cache complete topology data — partial results should be re-fetched
|
|
128
171
|
if (!partialData) {
|
|
129
172
|
setCachedTopology(cacheKey, { sites });
|
|
@@ -162,6 +205,7 @@ export async function executeSearchAssets(args) {
|
|
|
162
205
|
type: match.asset.type,
|
|
163
206
|
path: buildAssetPath(match.asset),
|
|
164
207
|
match_score: match.score,
|
|
208
|
+
...(match.asset.type === "sensor" && match.asset.mode ? { mode: match.asset.mode } : {}),
|
|
165
209
|
site_id: match.asset.site_id,
|
|
166
210
|
building_id: match.asset.building_id,
|
|
167
211
|
floor_id: match.asset.floor_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"butlr-search-assets.js","sourceRoot":"","sources":["../../src/tools/butlr-search-assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"butlr-search-assets.js","sourceRoot":"","sources":["../../src/tools/butlr-search-assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"butlr-traffic-flow.d.ts","sourceRoot":"","sources":["../../src/tools/butlr-traffic-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"butlr-traffic-flow.d.ts","sourceRoot":"","sources":["../../src/tools/butlr-traffic-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AA4CjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;EAc/B,CAAC;AAiCJ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AA2CrE;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,gCAif7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsB3D"}
|
|
@@ -2,12 +2,13 @@ import { apolloClient } from "../clients/graphql-client.js";
|
|
|
2
2
|
import { gql } from "@apollo/client";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { ReportingRequestBuilder } from "../clients/reporting-client.js";
|
|
5
|
-
import { GET_ALL_SENSORS, GET_FULL_TOPOLOGY } from "../clients/queries/topology.js";
|
|
6
5
|
import { executeSearchAssets } from "./butlr-search-assets.js";
|
|
7
6
|
import { getTimezoneForAsset, buildTimezoneMetadata, getLocalMidnight, } from "../utils/timezone-helpers.js";
|
|
8
7
|
import { createValidationError, withToolErrorHandling } from "../errors/mcp-errors.js";
|
|
9
8
|
import { resolveTimeToIso } from "../utils/time-resolver.js";
|
|
10
|
-
import { rethrowIfGraphQLError, throwIfGraphQLErrors } from "../utils/graphql-helpers.js";
|
|
9
|
+
import { rethrowIfGraphQLError, throwIfGraphQLErrors, isKnownTestSensor, } from "../utils/graphql-helpers.js";
|
|
10
|
+
import { fetchTopology, fetchSensorsByIds, fetchSensorsByRoomIds, resolveSensorContext, } from "../utils/occupancy-helpers.js";
|
|
11
|
+
import { detectAssetType } from "../utils/asset-helpers.js";
|
|
11
12
|
import { debug } from "../utils/debug.js";
|
|
12
13
|
const timeStringSchema = z.string().refine((val) => {
|
|
13
14
|
const isoMatch = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z?$/.test(val);
|
|
@@ -24,7 +25,7 @@ const trafficFlowInputShape = {
|
|
|
24
25
|
.min(1, "space_id_or_name cannot be empty")
|
|
25
26
|
.max(200)
|
|
26
27
|
.trim()
|
|
27
|
-
.describe("
|
|
28
|
+
.describe("Room ID (room_...), sensor ID (sensor_...) for per-access-point counts, or a name search term (matches rooms and traffic sensors)"),
|
|
28
29
|
time_window: z
|
|
29
30
|
.enum(["20m", "1h", "today", "custom"])
|
|
30
31
|
.default("today")
|
|
@@ -53,6 +54,7 @@ export const TrafficFlowArgsSchema = z
|
|
|
53
54
|
path: ["custom_start"],
|
|
54
55
|
});
|
|
55
56
|
const TRAFFIC_FLOW_DESCRIPTION = "Get entry and exit counts for spaces equipped with traffic-mode sensors (typically lobbies, building entrances, elevator banks). Returns total movements, net flow (entries - exits), and hourly breakdown in the space's local timezone. Designed for space activation analysis, security/compliance, and amenity demand forecasting.\n\n" +
|
|
57
|
+
"Accepts a room ID (counts aggregate across the room's traffic sensors), a single sensor ID (sensor_...) for per-access-point counts, or a name to search. Sensors do not need to be assigned to a room to be queried directly, and a name search matches sensors as well as rooms, so an access point does not have to be modeled as a room. (Name search covers devices assigned to a floor; a floor-less or not-yet-MAC-bound sensor is still queryable by its sensor_... ID.)\n\n" +
|
|
56
58
|
"Primary Users:\n" +
|
|
57
59
|
"- Facilities Manager: Monitor building entry/exit patterns, optimize security staffing, validate badge system accuracy\n" +
|
|
58
60
|
"- Workplace Manager: Understand amenity traffic (café, gym, event spaces), measure activation of new spaces\n" +
|
|
@@ -66,7 +68,8 @@ const TRAFFIC_FLOW_DESCRIPTION = "Get entry and exit counts for spaces equipped
|
|
|
66
68
|
'5. "Show me lobby traffic for the last 20 minutes"\n' +
|
|
67
69
|
'6. "What\'s the net flow (entries - exits) for Floor 2 today?"\n' +
|
|
68
70
|
'7. "How many people entered the event space during lunch hour (12-1pm)?"\n' +
|
|
69
|
-
'8. "Compare today\'s building entrance traffic to typical Monday"\n
|
|
71
|
+
'8. "Compare today\'s building entrance traffic to typical Monday"\n' +
|
|
72
|
+
'9. "How many people came through the north elevator door today?" (a single sensor, by name or by sensor_... ID)\n\n' +
|
|
70
73
|
"When to Use:\n" +
|
|
71
74
|
"- Entry/exit counts for lobbies, building entrances, elevator banks, or amenities\n" +
|
|
72
75
|
"- Understand peak traffic hours for security, cleaning, or HVAC planning\n" +
|
|
@@ -100,69 +103,145 @@ const GET_ROOM_SENSORS = gql `
|
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
`;
|
|
106
|
+
/**
|
|
107
|
+
* Fetch a room and its floor/building context. Kept separate from the shared
|
|
108
|
+
* topology fetch so it can run in parallel with it.
|
|
109
|
+
*/
|
|
110
|
+
async function fetchRoom(roomId) {
|
|
111
|
+
try {
|
|
112
|
+
const result = await apolloClient.query({
|
|
113
|
+
query: GET_ROOM_SENSORS,
|
|
114
|
+
variables: { roomId },
|
|
115
|
+
fetchPolicy: "network-only",
|
|
116
|
+
});
|
|
117
|
+
throwIfGraphQLErrors(result);
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
rethrowIfGraphQLError(error);
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
103
125
|
/**
|
|
104
126
|
* Execute traffic flow tool
|
|
105
127
|
*/
|
|
106
128
|
export async function executeTrafficFlow(args) {
|
|
107
129
|
let spaceId = args.space_id_or_name;
|
|
108
|
-
//
|
|
109
|
-
|
|
130
|
+
// One prefix detector for both branches. `asset-helpers.ts` is the single
|
|
131
|
+
// place that encodes ID prefixes, so re-testing the string with a local
|
|
132
|
+
// regex here would be a second thing to keep in sync with it.
|
|
133
|
+
let assetType = detectAssetType(spaceId);
|
|
134
|
+
// If it is neither a room nor a sensor ID, treat it as a search term.
|
|
135
|
+
// Direct sensor queries skip room resolution entirely: the reporting API
|
|
136
|
+
// serves sensor-level traffic via the sensors filter, so a sensor does not
|
|
137
|
+
// need a room wrapper to be queryable.
|
|
138
|
+
if (assetType !== "sensor" && assetType !== "room") {
|
|
110
139
|
debug("traffic-flow", `Searching for space: "${args.space_id_or_name}"`);
|
|
140
|
+
// Both types, so a natural-language query can reach the sensor path too.
|
|
141
|
+
// The customer ask behind sensor support was to stop modeling each door as
|
|
142
|
+
// a room; searching rooms only would leave the capability reachable solely
|
|
143
|
+
// by callers who already know the sensor ID.
|
|
111
144
|
const searchResults = await executeSearchAssets({
|
|
112
145
|
query: args.space_id_or_name,
|
|
113
|
-
asset_types: ["room"],
|
|
146
|
+
asset_types: ["room", "sensor"],
|
|
114
147
|
max_results: 5,
|
|
115
148
|
});
|
|
116
149
|
if (searchResults.matches.length === 0) {
|
|
117
|
-
throw new Error(`No rooms found matching "${args.space_id_or_name}". Try a different search term.`);
|
|
150
|
+
throw new Error(`No rooms or sensors found matching "${args.space_id_or_name}". Try a different search term, or pass a room ID (room_...) or sensor ID (sensor_...) directly. butlr_search_assets finds both by name or MAC; butlr_hardware_snapshot lists sensors with their health.`);
|
|
118
151
|
}
|
|
119
|
-
|
|
120
|
-
|
|
152
|
+
// Take the highest-ranked candidate that can actually serve traffic: any
|
|
153
|
+
// room (validated downstream), or a traffic-mode sensor. Taking
|
|
154
|
+
// matches[0] unconditionally let a presence sensor whose name outranks
|
|
155
|
+
// the intended room dead-end the whole query with the right room sitting
|
|
156
|
+
// at index 1.
|
|
157
|
+
const viable = searchResults.matches.find((m) => m.type === "room" || (m.type === "sensor" && m.mode === "traffic"));
|
|
158
|
+
if (!viable) {
|
|
159
|
+
throw new Error(`"${args.space_id_or_name}" matched only presence-mode sensors, which have no entry/exit counts. Try butlr_get_current_occupancy for occupancy data, or search for a room or traffic-mode sensor.`);
|
|
160
|
+
}
|
|
161
|
+
spaceId = viable.id;
|
|
162
|
+
assetType = detectAssetType(spaceId);
|
|
163
|
+
debug("traffic-flow", `Using best viable match: ${viable.name} (${spaceId}, ${assetType})`);
|
|
121
164
|
}
|
|
122
|
-
|
|
123
|
-
|
|
165
|
+
const isSensorQuery = assetType === "sensor";
|
|
166
|
+
// Query asset details, topology for timezone, and sensors
|
|
167
|
+
let displayName = "";
|
|
124
168
|
let roomPath = "";
|
|
125
169
|
let timezone;
|
|
126
170
|
let tzMetadata;
|
|
127
171
|
let timezoneFallback = false;
|
|
128
172
|
let trafficSensors = [];
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
173
|
+
let installationWarning;
|
|
174
|
+
if (isSensorQuery) {
|
|
175
|
+
// One sensor by ID, not the org's whole inventory: the `sensors` root
|
|
176
|
+
// field accepts an `ids` argument, and nothing on this branch needs the
|
|
177
|
+
// full list. A capped or paged `sensors` field would otherwise turn a real
|
|
178
|
+
// sensor past the cap into a bogus "not found".
|
|
179
|
+
const [topology, sensors] = await Promise.all([fetchTopology(), fetchSensorsByIds([spaceId])]);
|
|
180
|
+
const sensor = sensors.find((s) => s.id === spaceId);
|
|
181
|
+
if (!sensor) {
|
|
182
|
+
throw new Error(`Sensor ${spaceId} not found`);
|
|
183
|
+
}
|
|
184
|
+
// Resolved up front so the rejections below can consult real topology
|
|
185
|
+
// rather than pointing the caller at an ID that may not resolve.
|
|
186
|
+
const sensorContext = resolveSensorContext(sensor, topology);
|
|
187
|
+
// Only a KNOWN test device is refused. isProductionSensor is stricter (it
|
|
188
|
+
// also drops MAC-less placeholder rows) and is the right filter for the
|
|
189
|
+
// room path's aggregate below, but applying it to a caller's explicit
|
|
190
|
+
// request would tell the owner of a real, not yet MAC bound sensor that
|
|
191
|
+
// their device is fake and leave them no way to query it.
|
|
192
|
+
if (isKnownTestSensor(sensor)) {
|
|
193
|
+
throw new Error(`Sensor "${sensor.name}" (${spaceId}) is a test/mirror device, not a production sensor — it has no real traffic data.`);
|
|
194
|
+
}
|
|
195
|
+
if (sensor.mode !== "traffic") {
|
|
196
|
+
// Only name the room when it actually resolves. A dangling room_id (the
|
|
197
|
+
// room was deleted) would otherwise send the caller to a second dead
|
|
198
|
+
// end: butlr_get_current_occupancy accepts the room_ prefix, finds no
|
|
199
|
+
// room, and answers "no sensors configured".
|
|
200
|
+
const suggestion = sensorContext.room
|
|
201
|
+
? `Try butlr_get_current_occupancy with its room (${sensorContext.room.id}) instead.`
|
|
202
|
+
: `Try butlr_get_asset_details or butlr_hardware_snapshot to inspect it.`;
|
|
203
|
+
throw new Error(`Sensor "${sensor.name}" is ${sensor.mode ? `a ${sensor.mode}-mode sensor` : "not a traffic-mode sensor"}, so it has no entry/exit counts. ${suggestion}`);
|
|
204
|
+
}
|
|
205
|
+
// An uninstalled sensor reports nothing, which otherwise reads as a
|
|
206
|
+
// confident zero. That is likelier here than on the room path: the caller
|
|
207
|
+
// picked one specific device rather than a room aggregating several.
|
|
208
|
+
if (sensor.installation_status === "UNINSTALLED") {
|
|
209
|
+
installationWarning = `Sensor "${sensor.name}" is marked UNINSTALLED in the platform. An uninstalled sensor reports no traffic, so a zero count is expected; any rows returned predate its removal. Check butlr_hardware_snapshot for its current status.`;
|
|
210
|
+
}
|
|
211
|
+
trafficSensors = [sensor];
|
|
212
|
+
displayName = sensorContext.name;
|
|
213
|
+
roomPath = sensorContext.path;
|
|
214
|
+
timezone = sensorContext.timezone;
|
|
215
|
+
tzMetadata = sensorContext.tzMetadata;
|
|
216
|
+
timezoneFallback = sensorContext.timezoneFallback;
|
|
217
|
+
debug("traffic-flow", `Direct sensor query: ${displayName} (${spaceId})`);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
// The room's own sensor rows via `sensors(room_ids:)` rather than the
|
|
221
|
+
// org-wide inventory. The rows arrive unfiltered and only KNOWN test
|
|
222
|
+
// devices (mirror/fake prefixes) are dropped: this list drives the
|
|
223
|
+
// refusal gate and sensor_count, never the totals (the reporting API
|
|
224
|
+
// aggregates by room_id server-side), so a provisioned-but-MAC-less
|
|
225
|
+
// sensor must not disqualify its room the way the stricter
|
|
226
|
+
// isProductionSensor aggregate filter would.
|
|
227
|
+
const [topology, roomResult, roomSensorRows] = await Promise.all([
|
|
228
|
+
fetchTopology(),
|
|
229
|
+
fetchRoom(spaceId),
|
|
230
|
+
fetchSensorsByRoomIds([spaceId]),
|
|
144
231
|
]);
|
|
145
|
-
|
|
146
|
-
throwIfGraphQLErrors(topoResult);
|
|
147
|
-
throwIfGraphQLErrors(sensorsResult);
|
|
148
|
-
if (!roomResult.data?.room) {
|
|
232
|
+
if (!roomResult?.data?.room) {
|
|
149
233
|
throw new Error(`Room ${spaceId} not found`);
|
|
150
234
|
}
|
|
151
|
-
room = roomResult.data.room;
|
|
235
|
+
const room = roomResult.data.room;
|
|
236
|
+
displayName = room.name;
|
|
152
237
|
const floor = room.floor;
|
|
153
238
|
const building = floor?.building;
|
|
154
239
|
roomPath = building ? `${building.name} > ${floor.name} > ${room.name}` : room.name;
|
|
155
|
-
|
|
156
|
-
const sites = topoResult.data?.sites?.data || [];
|
|
157
|
-
const buildings = sites.flatMap((s) => s.buildings || []);
|
|
158
|
-
const floors = buildings.flatMap((b) => b.floors || []);
|
|
159
|
-
const resolved = getTimezoneForAsset(spaceId, "room", floors, buildings, sites);
|
|
240
|
+
const resolved = getTimezoneForAsset(spaceId, "room", topology.floors, topology.buildings, topology.sites);
|
|
160
241
|
timezone = resolved.timezone;
|
|
161
242
|
timezoneFallback = resolved.isFallback;
|
|
162
243
|
tzMetadata = buildTimezoneMetadata(timezone);
|
|
163
|
-
|
|
164
|
-
const allSensors = sensorsResult.data?.sensors?.data || [];
|
|
165
|
-
const roomSensors = allSensors.filter((s) => (s.room_id || s.roomID) === spaceId);
|
|
244
|
+
const roomSensors = roomSensorRows.filter((s) => !isKnownTestSensor(s));
|
|
166
245
|
// Room-level traffic counts every traffic-mode sensor bound to the room.
|
|
167
246
|
// See `resolveAssetContext` in occupancy-helpers.ts for the canonical
|
|
168
247
|
// rationale: `is_entrance` is a semantic flag, not a routing one, and the
|
|
@@ -173,10 +252,6 @@ export async function executeTrafficFlow(args) {
|
|
|
173
252
|
}
|
|
174
253
|
debug("traffic-flow", `Found ${trafficSensors.length} traffic sensors for room`);
|
|
175
254
|
}
|
|
176
|
-
catch (error) {
|
|
177
|
-
rethrowIfGraphQLError(error);
|
|
178
|
-
throw error;
|
|
179
|
-
}
|
|
180
255
|
// Calculate time range
|
|
181
256
|
const timeWindow = args.time_window || "today";
|
|
182
257
|
let start;
|
|
@@ -239,9 +314,10 @@ export async function executeTrafficFlow(args) {
|
|
|
239
314
|
// enclosing hour; native 1h bucket labels pass through untouched (they may
|
|
240
315
|
// sit on a non-UTC-aligned local grid, e.g. :30-offset timezones).
|
|
241
316
|
let trafficData = [];
|
|
317
|
+
const queryAssetType = isSensorQuery ? "sensor" : "room";
|
|
242
318
|
try {
|
|
243
319
|
const response = await new ReportingRequestBuilder()
|
|
244
|
-
.assets(
|
|
320
|
+
.assets(queryAssetType, [spaceId])
|
|
245
321
|
.measurements(["traffic"])
|
|
246
322
|
.timeRange(start, stop)
|
|
247
323
|
.window(windowEvery, "sum", timezone) // Sum traffic per bucket, aligned to local timezone
|
|
@@ -273,7 +349,7 @@ export async function executeTrafficFlow(args) {
|
|
|
273
349
|
if (tailStartMs < stopDate.getTime() && Date.now() - stopDate.getTime() < recentStopMs) {
|
|
274
350
|
try {
|
|
275
351
|
const tailResponse = await new ReportingRequestBuilder()
|
|
276
|
-
.assets(
|
|
352
|
+
.assets(queryAssetType, [spaceId])
|
|
277
353
|
.measurements(["traffic"])
|
|
278
354
|
.timeRange(new Date(tailStartMs).toISOString(), stop)
|
|
279
355
|
.window("1m", "sum", timezone)
|
|
@@ -294,7 +370,7 @@ export async function executeTrafficFlow(args) {
|
|
|
294
370
|
rethrowIfGraphQLError(error);
|
|
295
371
|
debug("traffic-flow", "Failed to get traffic data:", error);
|
|
296
372
|
const msg = error instanceof Error ? error.message : String(error);
|
|
297
|
-
throw new Error(`Failed to get traffic data for ${
|
|
373
|
+
throw new Error(`Failed to get traffic data for ${displayName}. ${msg}`);
|
|
298
374
|
}
|
|
299
375
|
// Parse traffic data: group by time, then by sensor, then aggregate
|
|
300
376
|
// Store time separately to preserve full ISO timestamp. The fine flag is
|
|
@@ -394,13 +470,32 @@ export async function executeTrafficFlow(args) {
|
|
|
394
470
|
}
|
|
395
471
|
// Build enhanced summary
|
|
396
472
|
const netFlowStr = netFlow >= 0 ? `+${netFlow}` : `${netFlow}`;
|
|
397
|
-
const summary = `${
|
|
473
|
+
const summary = `${displayName}: ${totalTraffic.toLocaleString()} movements ${periodDescription} (${totalEntries.toLocaleString()} entries, ${totalExits.toLocaleString()} exits, net flow: ${netFlowStr})`;
|
|
474
|
+
// Compose the response warning. Two independent conditions can raise one and
|
|
475
|
+
// both matter, so they are joined rather than one silently shadowing the other.
|
|
476
|
+
const warnings = [];
|
|
477
|
+
if (installationWarning) {
|
|
478
|
+
warnings.push(installationWarning);
|
|
479
|
+
}
|
|
480
|
+
if (usedUtcFallback) {
|
|
481
|
+
// Window-aware copy. The midnight sentence is only true on the `today`
|
|
482
|
+
// branch. The unassigned-sensor path sets timezoneFallback for every
|
|
483
|
+
// room-less, floor-less sensor, so on a 20m/1h/custom window the old text
|
|
484
|
+
// fired routinely and sent the reader chasing a day-alignment problem that
|
|
485
|
+
// no part of the query involved.
|
|
486
|
+
// `timezone` holds whatever the fallback actually resolved to — UTC, or
|
|
487
|
+
// BUTLR_TIMEZONE when configured — so the copy names it rather than
|
|
488
|
+
// asserting UTC for a query that may have used something else.
|
|
489
|
+
warnings.push(timeWindow === "today"
|
|
490
|
+
? `Could not determine local timezone for this space; timestamps use midnight in the fallback timezone (${timezone}). 'Today' may not align with the site's actual local day.`
|
|
491
|
+
: `Could not determine local timezone for this space; hourly bucket alignment falls back to ${timezone}, so buckets may not line up with the site's local hours. The queried range itself is unaffected.`);
|
|
492
|
+
}
|
|
398
493
|
// Build response with timezone metadata and in/out breakdown
|
|
399
494
|
const response = {
|
|
400
495
|
space: {
|
|
401
|
-
id:
|
|
402
|
-
name:
|
|
403
|
-
type: "room",
|
|
496
|
+
id: spaceId,
|
|
497
|
+
name: displayName,
|
|
498
|
+
type: isSensorQuery ? "sensor" : "room",
|
|
404
499
|
path: roomPath,
|
|
405
500
|
sensor_mode: "traffic",
|
|
406
501
|
...tzMetadata,
|
|
@@ -435,9 +530,7 @@ export async function executeTrafficFlow(args) {
|
|
|
435
530
|
...(Date.now() - new Date(stop).getTime() < 10 * 60 * 1000 && {
|
|
436
531
|
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
532
|
}),
|
|
438
|
-
...(
|
|
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.",
|
|
440
|
-
}),
|
|
533
|
+
...(warnings.length > 0 && { warning: warnings.join(" ") }),
|
|
441
534
|
};
|
|
442
535
|
return response;
|
|
443
536
|
}
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-flattener.d.ts","sourceRoot":"","sources":["../../src/utils/asset-flattener.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAG1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAGjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAGzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;IAGpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"asset-flattener.d.ts","sourceRoot":"","sources":["../../src/utils/asset-flattener.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAG1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAGjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAGzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;IAGpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAgJ/D"}
|