rhombus-node-mcp 0.1.58 → 0.1.59

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.
@@ -8,15 +8,14 @@ export async function getFaceEvents(args, timeZone, requestModifiers, sessionId)
8
8
  delete filteredArgs.pageRequest.lastEvaluatedKey;
9
9
  }
10
10
  if (filteredArgs.searchFilter) {
11
- if (filteredArgs.searchFilter.faceNames &&
12
- filteredArgs.searchFilter.faceNames.length === 0) {
13
- // @ts-expect-error - we can break typing
14
- delete filteredArgs.searchFilter.faceNames;
15
- }
16
- if (filteredArgs.searchFilter.labels &&
17
- filteredArgs.searchFilter.labels.length === 0) {
18
- // @ts-expect-error - we can break typing
19
- delete filteredArgs.searchFilter.labels;
11
+ // The array filters are nullable in the tool schema (null or [] = "no filter" — small
12
+ // models omit them and MIND fills required-nullable properties with null); the
13
+ // webservice wants them absent, not null or empty.
14
+ for (const key of ["faceNames", "labels", "locationUuids", "personUuids"]) {
15
+ const value = filteredArgs.searchFilter[key];
16
+ if (value === null || (Array.isArray(value) && value.length === 0)) {
17
+ delete filteredArgs.searchFilter[key];
18
+ }
20
19
  }
21
20
  if (filteredArgs.searchFilter.hasEmbedding === false) {
22
21
  delete filteredArgs.searchFilter.hasEmbedding;
@@ -47,7 +47,10 @@ export const GetFaceEventsArgs = z.object({
47
47
  .string()
48
48
  .nullable()
49
49
  .describe("Optional filter for face events where the detected face's name contains this substring. The search is performed only if the value is at least 3 characters long after trimming spaces. This takes precedence over 'faceNames' if both are specified. This is case-sensitive."),
50
- faceNames: z.array(z.string()).describe(`Optional filter by a set of specific person names. Only face events associated with these names will be returned. An empty array will be the same as omitting the filter.
50
+ faceNames: z
51
+ .array(z.string())
52
+ .nullable()
53
+ .describe(`Optional filter by a set of specific person names. Only face events associated with these names will be returned. null or an empty array is the same as omitting the filter.
51
54
  This is case-sensitive.`),
52
55
  hasEmbedding: z
53
56
  .boolean()
@@ -59,13 +62,16 @@ export const GetFaceEventsArgs = z.object({
59
62
  .describe("Optional filter by the presence (true) or absence (false) of a person name associated with the face event."),
60
63
  labels: z
61
64
  .array(z.string())
62
- .describe("Optional filter by a set of labels associated with the face event. An empty array will be the same as omitting the filter."),
65
+ .nullable()
66
+ .describe("Optional filter by a set of labels associated with the face event. null or an empty array is the same as omitting the filter."),
63
67
  locationUuids: z
64
68
  .array(createUuidSchema())
65
- .describe("Optional filter by a set of location UUIDs. Only face events from these locations will be returned. An empty array will be the same as omitting the filter."),
69
+ .nullable()
70
+ .describe("Optional filter by a set of location UUIDs. Only face events from these locations will be returned. null or an empty array is the same as omitting the filter."),
66
71
  personUuids: z
67
72
  .array(createUuidSchema())
68
- .describe("Optional filter by a set of person UUIDs. Only face events associated with these specific people will be returned. An empty array will be the same as omitting the filter."),
73
+ .nullable()
74
+ .describe("Optional filter by a set of person UUIDs. Only face events associated with these specific people will be returned. null or an empty array is the same as omitting the filter."),
69
75
  timestampFilter: z
70
76
  .object({
71
77
  rangeEnd: z
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rhombus-node-mcp",
3
- "version": "0.1.58",
3
+ "version": "0.1.59",
4
4
  "description": "MCP server for Rhombus API",
5
5
  "keywords": [
6
6
  "ai",