@camstack/types 1.2.7 → 1.2.9
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/addon.js +2 -2
- package/dist/addon.mjs +2 -2
- package/dist/capabilities/capability-definition.d.ts +74 -3
- package/dist/capabilities/custom-actions.d.ts +19 -0
- package/dist/capabilities/day-night.cap.d.ts +8 -8
- package/dist/capabilities/face-gallery.cap.d.ts +12 -0
- package/dist/capabilities/index.d.ts +29 -30
- package/dist/capabilities/notification-rules.cap.d.ts +1601 -0
- package/dist/capabilities/notifier.cap.d.ts +3 -3
- package/dist/capabilities/pipeline-analytics.cap.d.ts +8 -8
- package/dist/capabilities/recording.cap.d.ts +2 -2
- package/dist/capabilities/toast.cap.d.ts +2 -2
- package/dist/catalogs/nc-taxonomy.d.ts +53 -0
- package/dist/enums/event-category.d.ts +0 -3
- package/dist/enums.js +1 -1
- package/dist/enums.mjs +1 -1
- package/dist/{event-category-D4HJq7Mw.mjs → event-category-BLcNejAE.mjs} +0 -3
- package/dist/{event-category-CGj9fI4L.js → event-category-Cdyife4p.js} +0 -3
- package/dist/generated/addon-api.d.ts +1437 -367
- package/dist/generated/capability-router-map.d.ts +4 -4
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2154 -1343
- package/dist/index.mjs +2125 -1341
- package/dist/interfaces/addon.d.ts +2 -2
- package/dist/interfaces/capability.d.ts +0 -1
- package/dist/interfaces/event-bus.d.ts +0 -16
- package/dist/interfaces/ops-log.d.ts +2 -2
- package/dist/{sleep-eVjOy4ev.js → sleep-BG8hQTA8.js} +2 -2
- package/dist/{sleep-BQ60XlE9.mjs → sleep-DiOnzenz.mjs} +2 -2
- package/package.json +1 -1
- package/dist/capabilities/advanced-notifier.cap.d.ts +0 -256
- package/dist/interfaces/advanced-notifier.d.ts +0 -73
|
@@ -0,0 +1,1601 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type InferProvider } from './capability-definition.js';
|
|
3
|
+
/**
|
|
4
|
+
* notification-rules — the Notification Center rule surface (P1 core).
|
|
5
|
+
*
|
|
6
|
+
* Spec: `docs/superpowers/specs/2026-07-22-notification-center-requirements.md`
|
|
7
|
+
* (operator decisions D-1/D-2/D-3 are binding):
|
|
8
|
+
*
|
|
9
|
+
* - D-2: rule EVALUATION lives in `addon-post-analysis` (the
|
|
10
|
+
* `notification-center` module), hooked on the durable persistence
|
|
11
|
+
* moments (object-event insert, TrackCloser.closeExpired) with a
|
|
12
|
+
* persisted outbox + retry — never the lossy telemetry bus (D8).
|
|
13
|
+
* - D-3: urgency belongs to the RULE. `delivery: 'immediate'` fires on the
|
|
14
|
+
* FIRST persisted detection matching the conditions (per-track dedup,
|
|
15
|
+
* `maxPerTrack` fixed at 1 — see {@link NC_MAX_PER_TRACK_IMMEDIATE});
|
|
16
|
+
* `delivery: 'track-end'` evaluates the finalized track record at close.
|
|
17
|
+
* - DISPATCH stays behind `notification-output` (rules reference targets
|
|
18
|
+
* by id; per-backend params are a passthrough blob capped by the
|
|
19
|
+
* target kind's own caps/degrade engine).
|
|
20
|
+
*
|
|
21
|
+
* P1 scope: admin-authored rules only (`createdBy` stamped from the
|
|
22
|
+
* server-injected caller identity — the first `caller: 'required'`
|
|
23
|
+
* adopter). The P1 condition subset is: devices, classes(+exclude),
|
|
24
|
+
* minConfidence, admin zones (any/all + exclude), weekly schedule
|
|
25
|
+
* windows, and the optional label/identity/plate matchers. User rules,
|
|
26
|
+
* private zones, per-recipient fan-out and the wider condition table are
|
|
27
|
+
* P2+ (see spec §7).
|
|
28
|
+
*
|
|
29
|
+
* All schemas here are the single source of truth — `NcRule` etc. are
|
|
30
|
+
* `z.infer` exports; no duplicate interfaces (the advanced-notifier
|
|
31
|
+
* schema/interface drift is explicitly not repeated).
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* D-3: the trigger/urgency of a rule — which persistence moment evaluates it.
|
|
35
|
+
* The value maps 1:1 onto the evaluated record kind:
|
|
36
|
+
* - `immediate` ↔ object-event persist (lowest-latency detection burst)
|
|
37
|
+
* - `track-end` ↔ TrackCloser.closeExpired (finalized track record)
|
|
38
|
+
* - `device-event` ↔ SensorEventStore insert (doorbell press / sensor state
|
|
39
|
+
* change of a LINKED device, one row per linked camera)
|
|
40
|
+
* - `package-event` ↔ PackageDropDetector object-event insert (a `package`
|
|
41
|
+
* delivery / pick-up)
|
|
42
|
+
*
|
|
43
|
+
* `immediate`/`track-end` carry the D-3 urgency semantics; `device-event`/
|
|
44
|
+
* `package-event` are pure trigger kinds (no urgency dimension). Extending
|
|
45
|
+
* this one field keeps the schema additive — a rule still declares exactly
|
|
46
|
+
* one trigger.
|
|
47
|
+
*/
|
|
48
|
+
export declare const NcDeliverySchema: z.ZodEnum<{
|
|
49
|
+
immediate: "immediate";
|
|
50
|
+
"track-end": "track-end";
|
|
51
|
+
"device-event": "device-event";
|
|
52
|
+
"package-event": "package-event";
|
|
53
|
+
}>;
|
|
54
|
+
export type NcDelivery = z.infer<typeof NcDeliverySchema>;
|
|
55
|
+
/**
|
|
56
|
+
* `maxPerTrack` for `immediate` rules is FIXED at 1 (D-3): a single track
|
|
57
|
+
* fires an immediate rule at most once, enforced durably by the outbox
|
|
58
|
+
* unique key `(ruleId, trackId, targetId)`. Not a rule field in P1.
|
|
59
|
+
*/
|
|
60
|
+
export declare const NC_MAX_PER_TRACK_IMMEDIATE = 1;
|
|
61
|
+
/** One weekly activation window. `startMinute > endMinute` crosses midnight. */
|
|
62
|
+
export declare const NcScheduleWindowSchema: z.ZodObject<{
|
|
63
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
64
|
+
startMinute: z.ZodNumber;
|
|
65
|
+
endMinute: z.ZodNumber;
|
|
66
|
+
}, z.core.$strip>;
|
|
67
|
+
export type NcScheduleWindow = z.infer<typeof NcScheduleWindowSchema>;
|
|
68
|
+
/** Weekly schedule — OR of windows; absence on the rule = always active. */
|
|
69
|
+
export declare const NcScheduleSchema: z.ZodObject<{
|
|
70
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
71
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
72
|
+
startMinute: z.ZodNumber;
|
|
73
|
+
endMinute: z.ZodNumber;
|
|
74
|
+
}, z.core.$strip>>;
|
|
75
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
76
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
export type NcSchedule = z.infer<typeof NcScheduleSchema>;
|
|
79
|
+
/** Fuzzy plate matcher — OCR noise makes exact match useless (spec row 12/13). */
|
|
80
|
+
export declare const NcPlateMatcherSchema: z.ZodObject<{
|
|
81
|
+
values: z.ZodArray<z.ZodString>;
|
|
82
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
83
|
+
}, z.core.$strip>;
|
|
84
|
+
export type NcPlateMatcher = z.infer<typeof NcPlateMatcherSchema>;
|
|
85
|
+
/**
|
|
86
|
+
* Occupancy condition (DEVICE-EVENT trigger). Fires on a ZoneAnalytics
|
|
87
|
+
* occupancy edge for a device — optionally narrowed to a single admin
|
|
88
|
+
* `zoneId` and/or object `className`. `op` selects the edge/threshold:
|
|
89
|
+
* - `became-occupied` (default) — count crossed 0 → ≥ `count`
|
|
90
|
+
* - `became-free` — count crossed ≥ `count` → below it
|
|
91
|
+
* - `>=` / `<=` — count is at/over or at/under `count`
|
|
92
|
+
* `sustainSeconds` requires the condition hold continuously that long
|
|
93
|
+
* before firing (debounces flicker; 0 = fire on the first matching edge).
|
|
94
|
+
* Fail-closed: no ZoneAnalytics snapshot / missing zone / null snapshot ⇒
|
|
95
|
+
* the condition never matches. Confirmed edge-state survives addon restarts
|
|
96
|
+
* (declared SQLite collection, reseeded on boot).
|
|
97
|
+
*/
|
|
98
|
+
export declare const NcOccupancyConditionSchema: z.ZodObject<{
|
|
99
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
100
|
+
className: z.ZodOptional<z.ZodString>;
|
|
101
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
102
|
+
"<=": "<=";
|
|
103
|
+
">=": ">=";
|
|
104
|
+
"became-occupied": "became-occupied";
|
|
105
|
+
"became-free": "became-free";
|
|
106
|
+
}>>;
|
|
107
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
108
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
109
|
+
}, z.core.$strip>;
|
|
110
|
+
export type NcOccupancyCondition = z.infer<typeof NcOccupancyConditionSchema>;
|
|
111
|
+
/** Admin-zone membership condition (zone IDs as stamped by the ZoneEngine). */
|
|
112
|
+
export declare const NcZoneConditionSchema: z.ZodObject<{
|
|
113
|
+
ids: z.ZodArray<z.ZodString>;
|
|
114
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
115
|
+
any: "any";
|
|
116
|
+
all: "all";
|
|
117
|
+
}>>;
|
|
118
|
+
}, z.core.$strip>;
|
|
119
|
+
export type NcZoneCondition = z.infer<typeof NcZoneConditionSchema>;
|
|
120
|
+
/**
|
|
121
|
+
* The P1 condition set — a flat AND of groups; absent group = pass;
|
|
122
|
+
* membership lists are OR within the list (spec §2.3).
|
|
123
|
+
*/
|
|
124
|
+
export declare const NcConditionsSchema: z.ZodObject<{
|
|
125
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
126
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
127
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
128
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
129
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
130
|
+
ids: z.ZodArray<z.ZodString>;
|
|
131
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
132
|
+
any: "any";
|
|
133
|
+
all: "all";
|
|
134
|
+
}>>;
|
|
135
|
+
}, z.core.$strip>>;
|
|
136
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
137
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
138
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
139
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
140
|
+
values: z.ZodArray<z.ZodString>;
|
|
141
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
142
|
+
}, z.core.$strip>>;
|
|
143
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
144
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
145
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
146
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
147
|
+
sensor: "sensor";
|
|
148
|
+
any: "any";
|
|
149
|
+
pipeline: "pipeline";
|
|
150
|
+
onboard: "onboard";
|
|
151
|
+
}>>;
|
|
152
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
153
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
154
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
155
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
156
|
+
both: "both";
|
|
157
|
+
delivered: "delivered";
|
|
158
|
+
"picked-up": "picked-up";
|
|
159
|
+
}>>;
|
|
160
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
161
|
+
kind: z.ZodLiteral<"polygon">;
|
|
162
|
+
points: z.ZodArray<z.ZodObject<{
|
|
163
|
+
x: z.ZodNumber;
|
|
164
|
+
y: z.ZodNumber;
|
|
165
|
+
}, z.core.$strip>>;
|
|
166
|
+
}, z.core.$strip>>>;
|
|
167
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
168
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
169
|
+
className: z.ZodOptional<z.ZodString>;
|
|
170
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
171
|
+
"<=": "<=";
|
|
172
|
+
">=": ">=";
|
|
173
|
+
"became-occupied": "became-occupied";
|
|
174
|
+
"became-free": "became-free";
|
|
175
|
+
}>>;
|
|
176
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
177
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
178
|
+
}, z.core.$strip>>;
|
|
179
|
+
}, z.core.$strip>;
|
|
180
|
+
export type NcConditions = z.infer<typeof NcConditionsSchema>;
|
|
181
|
+
/** One delivery target: a `notification-output` Target ref + passthrough params. */
|
|
182
|
+
export declare const NcRuleTargetSchema: z.ZodObject<{
|
|
183
|
+
targetId: z.ZodString;
|
|
184
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
185
|
+
}, z.core.$strip>;
|
|
186
|
+
export type NcRuleTarget = z.infer<typeof NcRuleTargetSchema>;
|
|
187
|
+
/**
|
|
188
|
+
* Media attachment policy (P1 still-image subset).
|
|
189
|
+
* - `best` — the best AVAILABLE subject image at dispatch time (D-3).
|
|
190
|
+
* - `best-matching` — the media that explains WHY the rule fired: a rule
|
|
191
|
+
* matched on identities attaches the subject's `faceCrop`, one matched on
|
|
192
|
+
* plates attaches the `plateCrop`; a rule with no identity/plate condition
|
|
193
|
+
* (or when the specific crop is missing) degrades to `best`, then
|
|
194
|
+
* `keyFrame`, then no attachment — never delaying the send. The matched
|
|
195
|
+
* condition summary is frozen on the outbox row at enqueue (like the rule
|
|
196
|
+
* name), so the choice never drifts from the record that fired it.
|
|
197
|
+
* - `keyFrame` — the clean scene frame (no subject box).
|
|
198
|
+
* - `none` — no attachment.
|
|
199
|
+
*/
|
|
200
|
+
export declare const NcMediaPolicySchema: z.ZodObject<{
|
|
201
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
202
|
+
none: "none";
|
|
203
|
+
best: "best";
|
|
204
|
+
"best-matching": "best-matching";
|
|
205
|
+
keyFrame: "keyFrame";
|
|
206
|
+
}>>;
|
|
207
|
+
}, z.core.$strip>;
|
|
208
|
+
export type NcMediaPolicy = z.infer<typeof NcMediaPolicySchema>;
|
|
209
|
+
/** Throttle — cooldown survives restarts (rebuilt from the outbox on boot). */
|
|
210
|
+
export declare const NcThrottleSchema: z.ZodObject<{
|
|
211
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
212
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
213
|
+
rule: "rule";
|
|
214
|
+
"rule-device": "rule-device";
|
|
215
|
+
}>>;
|
|
216
|
+
}, z.core.$strip>;
|
|
217
|
+
export type NcThrottle = z.infer<typeof NcThrottleSchema>;
|
|
218
|
+
/** Client-supplied rule fields (server stamps id/createdBy/createdAt/updatedAt). */
|
|
219
|
+
export declare const NcRuleInputSchema: z.ZodObject<{
|
|
220
|
+
name: z.ZodString;
|
|
221
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
222
|
+
delivery: z.ZodEnum<{
|
|
223
|
+
immediate: "immediate";
|
|
224
|
+
"track-end": "track-end";
|
|
225
|
+
"device-event": "device-event";
|
|
226
|
+
"package-event": "package-event";
|
|
227
|
+
}>;
|
|
228
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
229
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
230
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
231
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
232
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
233
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
234
|
+
ids: z.ZodArray<z.ZodString>;
|
|
235
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
236
|
+
any: "any";
|
|
237
|
+
all: "all";
|
|
238
|
+
}>>;
|
|
239
|
+
}, z.core.$strip>>;
|
|
240
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
241
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
242
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
243
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
244
|
+
values: z.ZodArray<z.ZodString>;
|
|
245
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
246
|
+
}, z.core.$strip>>;
|
|
247
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
248
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
249
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
250
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
251
|
+
sensor: "sensor";
|
|
252
|
+
any: "any";
|
|
253
|
+
pipeline: "pipeline";
|
|
254
|
+
onboard: "onboard";
|
|
255
|
+
}>>;
|
|
256
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
257
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
258
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
259
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
260
|
+
both: "both";
|
|
261
|
+
delivered: "delivered";
|
|
262
|
+
"picked-up": "picked-up";
|
|
263
|
+
}>>;
|
|
264
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
265
|
+
kind: z.ZodLiteral<"polygon">;
|
|
266
|
+
points: z.ZodArray<z.ZodObject<{
|
|
267
|
+
x: z.ZodNumber;
|
|
268
|
+
y: z.ZodNumber;
|
|
269
|
+
}, z.core.$strip>>;
|
|
270
|
+
}, z.core.$strip>>>;
|
|
271
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
272
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
273
|
+
className: z.ZodOptional<z.ZodString>;
|
|
274
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
275
|
+
"<=": "<=";
|
|
276
|
+
">=": ">=";
|
|
277
|
+
"became-occupied": "became-occupied";
|
|
278
|
+
"became-free": "became-free";
|
|
279
|
+
}>>;
|
|
280
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
281
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
282
|
+
}, z.core.$strip>>;
|
|
283
|
+
}, z.core.$strip>>;
|
|
284
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
285
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
286
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
287
|
+
startMinute: z.ZodNumber;
|
|
288
|
+
endMinute: z.ZodNumber;
|
|
289
|
+
}, z.core.$strip>>;
|
|
290
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
291
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
292
|
+
}, z.core.$strip>>;
|
|
293
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
294
|
+
targetId: z.ZodString;
|
|
295
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
296
|
+
}, z.core.$strip>>;
|
|
297
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
298
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
299
|
+
none: "none";
|
|
300
|
+
best: "best";
|
|
301
|
+
"best-matching": "best-matching";
|
|
302
|
+
keyFrame: "keyFrame";
|
|
303
|
+
}>>;
|
|
304
|
+
}, z.core.$strip>>;
|
|
305
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
306
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
307
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
308
|
+
rule: "rule";
|
|
309
|
+
"rule-device": "rule-device";
|
|
310
|
+
}>>;
|
|
311
|
+
}, z.core.$strip>>;
|
|
312
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
313
|
+
title: z.ZodOptional<z.ZodString>;
|
|
314
|
+
body: z.ZodOptional<z.ZodString>;
|
|
315
|
+
}, z.core.$strip>>;
|
|
316
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
317
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
318
|
+
}, z.core.$strip>;
|
|
319
|
+
export type NcRuleInput = z.infer<typeof NcRuleInputSchema>;
|
|
320
|
+
/**
|
|
321
|
+
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
322
|
+
* persisted-only {@link NcRuleSchema} `disabledTargetIds` set. The latter is
|
|
323
|
+
* NOT a client-authored input field (it lives on the persisted rule, not the
|
|
324
|
+
* input), so it is added here explicitly to let the store's per-target opt-out
|
|
325
|
+
* toggle round-trip through the shared `update` path. Viewer opt-out mutations
|
|
326
|
+
* still flow through `nc.setRuleTargetEnabled` (owner-checked), never a raw
|
|
327
|
+
* `updateRule` patch.
|
|
328
|
+
*/
|
|
329
|
+
export declare const NcRulePatchSchema: z.ZodObject<{
|
|
330
|
+
name: z.ZodOptional<z.ZodString>;
|
|
331
|
+
enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
332
|
+
delivery: z.ZodOptional<z.ZodEnum<{
|
|
333
|
+
immediate: "immediate";
|
|
334
|
+
"track-end": "track-end";
|
|
335
|
+
"device-event": "device-event";
|
|
336
|
+
"package-event": "package-event";
|
|
337
|
+
}>>;
|
|
338
|
+
conditions: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
339
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
340
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
341
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
342
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
343
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
344
|
+
ids: z.ZodArray<z.ZodString>;
|
|
345
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
346
|
+
any: "any";
|
|
347
|
+
all: "all";
|
|
348
|
+
}>>;
|
|
349
|
+
}, z.core.$strip>>;
|
|
350
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
351
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
352
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
353
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
354
|
+
values: z.ZodArray<z.ZodString>;
|
|
355
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
356
|
+
}, z.core.$strip>>;
|
|
357
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
358
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
359
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
360
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
361
|
+
sensor: "sensor";
|
|
362
|
+
any: "any";
|
|
363
|
+
pipeline: "pipeline";
|
|
364
|
+
onboard: "onboard";
|
|
365
|
+
}>>;
|
|
366
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
367
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
368
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
369
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
370
|
+
both: "both";
|
|
371
|
+
delivered: "delivered";
|
|
372
|
+
"picked-up": "picked-up";
|
|
373
|
+
}>>;
|
|
374
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
375
|
+
kind: z.ZodLiteral<"polygon">;
|
|
376
|
+
points: z.ZodArray<z.ZodObject<{
|
|
377
|
+
x: z.ZodNumber;
|
|
378
|
+
y: z.ZodNumber;
|
|
379
|
+
}, z.core.$strip>>;
|
|
380
|
+
}, z.core.$strip>>>;
|
|
381
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
382
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
383
|
+
className: z.ZodOptional<z.ZodString>;
|
|
384
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
385
|
+
"<=": "<=";
|
|
386
|
+
">=": ">=";
|
|
387
|
+
"became-occupied": "became-occupied";
|
|
388
|
+
"became-free": "became-free";
|
|
389
|
+
}>>;
|
|
390
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
391
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
392
|
+
}, z.core.$strip>>;
|
|
393
|
+
}, z.core.$strip>>>;
|
|
394
|
+
schedule: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
395
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
396
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
397
|
+
startMinute: z.ZodNumber;
|
|
398
|
+
endMinute: z.ZodNumber;
|
|
399
|
+
}, z.core.$strip>>;
|
|
400
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
401
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
402
|
+
}, z.core.$strip>>>;
|
|
403
|
+
targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
404
|
+
targetId: z.ZodString;
|
|
405
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
406
|
+
}, z.core.$strip>>>;
|
|
407
|
+
media: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
408
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
409
|
+
none: "none";
|
|
410
|
+
best: "best";
|
|
411
|
+
"best-matching": "best-matching";
|
|
412
|
+
keyFrame: "keyFrame";
|
|
413
|
+
}>>;
|
|
414
|
+
}, z.core.$strip>>>;
|
|
415
|
+
throttle: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
416
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
417
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
418
|
+
rule: "rule";
|
|
419
|
+
"rule-device": "rule-device";
|
|
420
|
+
}>>;
|
|
421
|
+
}, z.core.$strip>>>;
|
|
422
|
+
template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
423
|
+
title: z.ZodOptional<z.ZodString>;
|
|
424
|
+
body: z.ZodOptional<z.ZodString>;
|
|
425
|
+
}, z.core.$strip>>>;
|
|
426
|
+
priority: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
427
|
+
ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
428
|
+
disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
429
|
+
}, z.core.$strip>;
|
|
430
|
+
export type NcRulePatch = z.infer<typeof NcRulePatchSchema>;
|
|
431
|
+
/** A persisted rule. */
|
|
432
|
+
export declare const NcRuleSchema: z.ZodObject<{
|
|
433
|
+
name: z.ZodString;
|
|
434
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
435
|
+
delivery: z.ZodEnum<{
|
|
436
|
+
immediate: "immediate";
|
|
437
|
+
"track-end": "track-end";
|
|
438
|
+
"device-event": "device-event";
|
|
439
|
+
"package-event": "package-event";
|
|
440
|
+
}>;
|
|
441
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
442
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
443
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
444
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
445
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
446
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
447
|
+
ids: z.ZodArray<z.ZodString>;
|
|
448
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
449
|
+
any: "any";
|
|
450
|
+
all: "all";
|
|
451
|
+
}>>;
|
|
452
|
+
}, z.core.$strip>>;
|
|
453
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
454
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
455
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
456
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
457
|
+
values: z.ZodArray<z.ZodString>;
|
|
458
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
459
|
+
}, z.core.$strip>>;
|
|
460
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
461
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
462
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
463
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
464
|
+
sensor: "sensor";
|
|
465
|
+
any: "any";
|
|
466
|
+
pipeline: "pipeline";
|
|
467
|
+
onboard: "onboard";
|
|
468
|
+
}>>;
|
|
469
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
470
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
471
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
472
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
473
|
+
both: "both";
|
|
474
|
+
delivered: "delivered";
|
|
475
|
+
"picked-up": "picked-up";
|
|
476
|
+
}>>;
|
|
477
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
478
|
+
kind: z.ZodLiteral<"polygon">;
|
|
479
|
+
points: z.ZodArray<z.ZodObject<{
|
|
480
|
+
x: z.ZodNumber;
|
|
481
|
+
y: z.ZodNumber;
|
|
482
|
+
}, z.core.$strip>>;
|
|
483
|
+
}, z.core.$strip>>>;
|
|
484
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
485
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
486
|
+
className: z.ZodOptional<z.ZodString>;
|
|
487
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
488
|
+
"<=": "<=";
|
|
489
|
+
">=": ">=";
|
|
490
|
+
"became-occupied": "became-occupied";
|
|
491
|
+
"became-free": "became-free";
|
|
492
|
+
}>>;
|
|
493
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
494
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
495
|
+
}, z.core.$strip>>;
|
|
496
|
+
}, z.core.$strip>>;
|
|
497
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
498
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
499
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
500
|
+
startMinute: z.ZodNumber;
|
|
501
|
+
endMinute: z.ZodNumber;
|
|
502
|
+
}, z.core.$strip>>;
|
|
503
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
504
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
505
|
+
}, z.core.$strip>>;
|
|
506
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
507
|
+
targetId: z.ZodString;
|
|
508
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
509
|
+
}, z.core.$strip>>;
|
|
510
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
511
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
512
|
+
none: "none";
|
|
513
|
+
best: "best";
|
|
514
|
+
"best-matching": "best-matching";
|
|
515
|
+
keyFrame: "keyFrame";
|
|
516
|
+
}>>;
|
|
517
|
+
}, z.core.$strip>>;
|
|
518
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
519
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
520
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
521
|
+
rule: "rule";
|
|
522
|
+
"rule-device": "rule-device";
|
|
523
|
+
}>>;
|
|
524
|
+
}, z.core.$strip>>;
|
|
525
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
526
|
+
title: z.ZodOptional<z.ZodString>;
|
|
527
|
+
body: z.ZodOptional<z.ZodString>;
|
|
528
|
+
}, z.core.$strip>>;
|
|
529
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
530
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
531
|
+
id: z.ZodString;
|
|
532
|
+
createdBy: z.ZodString;
|
|
533
|
+
createdAt: z.ZodNumber;
|
|
534
|
+
updatedAt: z.ZodNumber;
|
|
535
|
+
disabledTargetIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
536
|
+
}, z.core.$strip>;
|
|
537
|
+
export type NcRule = z.infer<typeof NcRuleSchema>;
|
|
538
|
+
export declare const NcTestResultSchema: z.ZodObject<{
|
|
539
|
+
recordId: z.ZodString;
|
|
540
|
+
recordKind: z.ZodEnum<{
|
|
541
|
+
"device-event": "device-event";
|
|
542
|
+
"package-event": "package-event";
|
|
543
|
+
"object-event": "object-event";
|
|
544
|
+
track: "track";
|
|
545
|
+
}>;
|
|
546
|
+
deviceId: z.ZodNumber;
|
|
547
|
+
timestamp: z.ZodNumber;
|
|
548
|
+
wouldFire: z.ZodBoolean;
|
|
549
|
+
failedCondition: z.ZodOptional<z.ZodString>;
|
|
550
|
+
className: z.ZodOptional<z.ZodString>;
|
|
551
|
+
label: z.ZodOptional<z.ZodString>;
|
|
552
|
+
}, z.core.$strip>;
|
|
553
|
+
export type NcTestResult = z.infer<typeof NcTestResultSchema>;
|
|
554
|
+
export declare const NcConditionDescriptorSchema: z.ZodObject<{
|
|
555
|
+
id: z.ZodString;
|
|
556
|
+
group: z.ZodEnum<{
|
|
557
|
+
device: "device";
|
|
558
|
+
label: "label";
|
|
559
|
+
scope: "scope";
|
|
560
|
+
class: "class";
|
|
561
|
+
schedule: "schedule";
|
|
562
|
+
zones: "zones";
|
|
563
|
+
package: "package";
|
|
564
|
+
occupancy: "occupancy";
|
|
565
|
+
quality: "quality";
|
|
566
|
+
}>;
|
|
567
|
+
label: z.ZodString;
|
|
568
|
+
valueType: z.ZodEnum<{
|
|
569
|
+
number: "number";
|
|
570
|
+
schedule: "schedule";
|
|
571
|
+
packagePhase: "packagePhase";
|
|
572
|
+
occupancy: "occupancy";
|
|
573
|
+
deviceIdList: "deviceIdList";
|
|
574
|
+
stringList: "stringList";
|
|
575
|
+
number01: "number01";
|
|
576
|
+
sourceSelect: "sourceSelect";
|
|
577
|
+
zoneSelection: "zoneSelection";
|
|
578
|
+
zoneIdList: "zoneIdList";
|
|
579
|
+
plateMatcher: "plateMatcher";
|
|
580
|
+
polygonDraw: "polygonDraw";
|
|
581
|
+
}>;
|
|
582
|
+
operator: z.ZodEnum<{
|
|
583
|
+
in: "in";
|
|
584
|
+
notIn: "notIn";
|
|
585
|
+
anyOf: "anyOf";
|
|
586
|
+
allOf: "allOf";
|
|
587
|
+
gte: "gte";
|
|
588
|
+
fuzzyIn: "fuzzyIn";
|
|
589
|
+
withinSchedule: "withinSchedule";
|
|
590
|
+
}>;
|
|
591
|
+
appliesTo: z.ZodArray<z.ZodEnum<{
|
|
592
|
+
immediate: "immediate";
|
|
593
|
+
"track-end": "track-end";
|
|
594
|
+
"device-event": "device-event";
|
|
595
|
+
"package-event": "package-event";
|
|
596
|
+
}>>;
|
|
597
|
+
phase: z.ZodString;
|
|
598
|
+
description: z.ZodOptional<z.ZodString>;
|
|
599
|
+
}, z.core.$strip>;
|
|
600
|
+
export type NcConditionDescriptor = z.infer<typeof NcConditionDescriptorSchema>;
|
|
601
|
+
/**
|
|
602
|
+
* The P1 condition surface as data — served by `getConditionCatalog` so
|
|
603
|
+
* rule editors render from the catalog, not hardcoded forms (spec §4.2).
|
|
604
|
+
*/
|
|
605
|
+
export declare const NC_CONDITION_CATALOG: readonly NcConditionDescriptor[];
|
|
606
|
+
/**
|
|
607
|
+
* The delivery lifecycle status of a history row — a straight read of the
|
|
608
|
+
* durable outbox row's own status (single source of truth):
|
|
609
|
+
* - `pending` — enqueued, in-flight or retrying with backoff
|
|
610
|
+
* - `sent` — delivered (terminal)
|
|
611
|
+
* - `dead` — dead-lettered after exhausting retries / a permanent
|
|
612
|
+
* backend rejection / a deleted target (terminal; carries
|
|
613
|
+
* the failure `error`)
|
|
614
|
+
*
|
|
615
|
+
* P1 has no `suppressed-quiet-hours` / `snoozed` states — those ride the P2
|
|
616
|
+
* user dimension (quiet hours / snooze) and are additive when they land.
|
|
617
|
+
*/
|
|
618
|
+
export declare const NcHistoryStatusSchema: z.ZodEnum<{
|
|
619
|
+
pending: "pending";
|
|
620
|
+
sent: "sent";
|
|
621
|
+
dead: "dead";
|
|
622
|
+
}>;
|
|
623
|
+
export type NcHistoryStatus = z.infer<typeof NcHistoryStatusSchema>;
|
|
624
|
+
/** The evaluated record kind a history row descends from (one per trigger). */
|
|
625
|
+
export declare const NcHistoryRecordKindSchema: z.ZodEnum<{
|
|
626
|
+
"track-end": "track-end";
|
|
627
|
+
"device-event": "device-event";
|
|
628
|
+
"package-event": "package-event";
|
|
629
|
+
"object-event": "object-event";
|
|
630
|
+
}>;
|
|
631
|
+
export type NcHistoryRecordKind = z.infer<typeof NcHistoryRecordKindSchema>;
|
|
632
|
+
/** Subject summary frozen on the row at fire time (survives rule/record edits). */
|
|
633
|
+
export declare const NcHistorySubjectSchema: z.ZodObject<{
|
|
634
|
+
className: z.ZodString;
|
|
635
|
+
label: z.ZodOptional<z.ZodString>;
|
|
636
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
637
|
+
zones: z.ZodArray<z.ZodString>;
|
|
638
|
+
timestamp: z.ZodNumber;
|
|
639
|
+
}, z.core.$strip>;
|
|
640
|
+
export type NcHistorySubject = z.infer<typeof NcHistorySubjectSchema>;
|
|
641
|
+
/**
|
|
642
|
+
* One delivery-history row. This is a read-only VIEW over the durable
|
|
643
|
+
* outbox row (single source of truth — the same row the drain loop drives;
|
|
644
|
+
* NO second write path, so history can never drift from delivery state).
|
|
645
|
+
* The §3.2 fields map directly: `ruleId`/`targetId`/`deviceId` are columns,
|
|
646
|
+
* `eventRef` is `recordKind`+`recordId`, `timestamps` are `createdAt`
|
|
647
|
+
* (fire) / `updatedAt` (last transition), `status` + `error` are the
|
|
648
|
+
* lifecycle. `ruleName` + `subject` are the intent snapshot frozen at
|
|
649
|
+
* enqueue. `userId?` (per-recipient history) is P2 — no user dimension in
|
|
650
|
+
* P1 (admin scope only).
|
|
651
|
+
*/
|
|
652
|
+
export declare const NcHistoryEntrySchema: z.ZodObject<{
|
|
653
|
+
id: z.ZodString;
|
|
654
|
+
ruleId: z.ZodString;
|
|
655
|
+
ruleName: z.ZodString;
|
|
656
|
+
delivery: z.ZodEnum<{
|
|
657
|
+
immediate: "immediate";
|
|
658
|
+
"track-end": "track-end";
|
|
659
|
+
"device-event": "device-event";
|
|
660
|
+
"package-event": "package-event";
|
|
661
|
+
}>;
|
|
662
|
+
targetId: z.ZodString;
|
|
663
|
+
deviceId: z.ZodNumber;
|
|
664
|
+
recordKind: z.ZodEnum<{
|
|
665
|
+
"track-end": "track-end";
|
|
666
|
+
"device-event": "device-event";
|
|
667
|
+
"package-event": "package-event";
|
|
668
|
+
"object-event": "object-event";
|
|
669
|
+
}>;
|
|
670
|
+
recordId: z.ZodString;
|
|
671
|
+
trackId: z.ZodOptional<z.ZodString>;
|
|
672
|
+
status: z.ZodEnum<{
|
|
673
|
+
pending: "pending";
|
|
674
|
+
sent: "sent";
|
|
675
|
+
dead: "dead";
|
|
676
|
+
}>;
|
|
677
|
+
attempts: z.ZodNumber;
|
|
678
|
+
createdAt: z.ZodNumber;
|
|
679
|
+
updatedAt: z.ZodNumber;
|
|
680
|
+
error: z.ZodOptional<z.ZodString>;
|
|
681
|
+
subject: z.ZodObject<{
|
|
682
|
+
className: z.ZodString;
|
|
683
|
+
label: z.ZodOptional<z.ZodString>;
|
|
684
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
685
|
+
zones: z.ZodArray<z.ZodString>;
|
|
686
|
+
timestamp: z.ZodNumber;
|
|
687
|
+
}, z.core.$strip>;
|
|
688
|
+
}, z.core.$strip>;
|
|
689
|
+
export type NcHistoryEntry = z.infer<typeof NcHistoryEntrySchema>;
|
|
690
|
+
/** `getHistory` default page size + hard ceiling (bounded output). */
|
|
691
|
+
export declare const NC_HISTORY_LIMIT_DEFAULT = 100;
|
|
692
|
+
export declare const NC_HISTORY_LIMIT_MAX = 500;
|
|
693
|
+
/**
|
|
694
|
+
* Query filter for `getHistory` (spec §4.2). Every field is a narrowing
|
|
695
|
+
* AND; absent = unbounded on that axis. `since`/`until` bound the fire time
|
|
696
|
+
* (`createdAt`, epoch ms, inclusive). `limit` is clamped to
|
|
697
|
+
* {@link NC_HISTORY_LIMIT_MAX}. `userId` (per-recipient filtering) is P2.
|
|
698
|
+
*/
|
|
699
|
+
export declare const NcHistoryFilterSchema: z.ZodObject<{
|
|
700
|
+
ruleId: z.ZodOptional<z.ZodString>;
|
|
701
|
+
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
702
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
703
|
+
pending: "pending";
|
|
704
|
+
sent: "sent";
|
|
705
|
+
dead: "dead";
|
|
706
|
+
}>>;
|
|
707
|
+
since: z.ZodOptional<z.ZodNumber>;
|
|
708
|
+
until: z.ZodOptional<z.ZodNumber>;
|
|
709
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
710
|
+
}, z.core.$strip>;
|
|
711
|
+
export type NcHistoryFilter = z.infer<typeof NcHistoryFilterSchema>;
|
|
712
|
+
export declare const notificationRulesCapability: {
|
|
713
|
+
readonly name: "notification-rules";
|
|
714
|
+
readonly scope: "system";
|
|
715
|
+
readonly mode: "singleton";
|
|
716
|
+
readonly methods: {
|
|
717
|
+
readonly listRules: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
|
|
718
|
+
rules: z.ZodArray<z.ZodObject<{
|
|
719
|
+
name: z.ZodString;
|
|
720
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
721
|
+
delivery: z.ZodEnum<{
|
|
722
|
+
immediate: "immediate";
|
|
723
|
+
"track-end": "track-end";
|
|
724
|
+
"device-event": "device-event";
|
|
725
|
+
"package-event": "package-event";
|
|
726
|
+
}>;
|
|
727
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
728
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
729
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
730
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
731
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
732
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
733
|
+
ids: z.ZodArray<z.ZodString>;
|
|
734
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
735
|
+
any: "any";
|
|
736
|
+
all: "all";
|
|
737
|
+
}>>;
|
|
738
|
+
}, z.core.$strip>>;
|
|
739
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
740
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
741
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
742
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
743
|
+
values: z.ZodArray<z.ZodString>;
|
|
744
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
745
|
+
}, z.core.$strip>>;
|
|
746
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
747
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
748
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
749
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
750
|
+
sensor: "sensor";
|
|
751
|
+
any: "any";
|
|
752
|
+
pipeline: "pipeline";
|
|
753
|
+
onboard: "onboard";
|
|
754
|
+
}>>;
|
|
755
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
756
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
757
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
758
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
759
|
+
both: "both";
|
|
760
|
+
delivered: "delivered";
|
|
761
|
+
"picked-up": "picked-up";
|
|
762
|
+
}>>;
|
|
763
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
764
|
+
kind: z.ZodLiteral<"polygon">;
|
|
765
|
+
points: z.ZodArray<z.ZodObject<{
|
|
766
|
+
x: z.ZodNumber;
|
|
767
|
+
y: z.ZodNumber;
|
|
768
|
+
}, z.core.$strip>>;
|
|
769
|
+
}, z.core.$strip>>>;
|
|
770
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
771
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
772
|
+
className: z.ZodOptional<z.ZodString>;
|
|
773
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
774
|
+
"<=": "<=";
|
|
775
|
+
">=": ">=";
|
|
776
|
+
"became-occupied": "became-occupied";
|
|
777
|
+
"became-free": "became-free";
|
|
778
|
+
}>>;
|
|
779
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
780
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
781
|
+
}, z.core.$strip>>;
|
|
782
|
+
}, z.core.$strip>>;
|
|
783
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
784
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
785
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
786
|
+
startMinute: z.ZodNumber;
|
|
787
|
+
endMinute: z.ZodNumber;
|
|
788
|
+
}, z.core.$strip>>;
|
|
789
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
790
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
791
|
+
}, z.core.$strip>>;
|
|
792
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
793
|
+
targetId: z.ZodString;
|
|
794
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
795
|
+
}, z.core.$strip>>;
|
|
796
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
797
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
798
|
+
none: "none";
|
|
799
|
+
best: "best";
|
|
800
|
+
"best-matching": "best-matching";
|
|
801
|
+
keyFrame: "keyFrame";
|
|
802
|
+
}>>;
|
|
803
|
+
}, z.core.$strip>>;
|
|
804
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
805
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
806
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
807
|
+
rule: "rule";
|
|
808
|
+
"rule-device": "rule-device";
|
|
809
|
+
}>>;
|
|
810
|
+
}, z.core.$strip>>;
|
|
811
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
812
|
+
title: z.ZodOptional<z.ZodString>;
|
|
813
|
+
body: z.ZodOptional<z.ZodString>;
|
|
814
|
+
}, z.core.$strip>>;
|
|
815
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
816
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
817
|
+
id: z.ZodString;
|
|
818
|
+
createdBy: z.ZodString;
|
|
819
|
+
createdAt: z.ZodNumber;
|
|
820
|
+
updatedAt: z.ZodNumber;
|
|
821
|
+
disabledTargetIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
822
|
+
}, z.core.$strip>>;
|
|
823
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
824
|
+
readonly getRule: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
825
|
+
ruleId: z.ZodString;
|
|
826
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
827
|
+
rule: z.ZodNullable<z.ZodObject<{
|
|
828
|
+
name: z.ZodString;
|
|
829
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
830
|
+
delivery: z.ZodEnum<{
|
|
831
|
+
immediate: "immediate";
|
|
832
|
+
"track-end": "track-end";
|
|
833
|
+
"device-event": "device-event";
|
|
834
|
+
"package-event": "package-event";
|
|
835
|
+
}>;
|
|
836
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
837
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
838
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
839
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
840
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
841
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
842
|
+
ids: z.ZodArray<z.ZodString>;
|
|
843
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
844
|
+
any: "any";
|
|
845
|
+
all: "all";
|
|
846
|
+
}>>;
|
|
847
|
+
}, z.core.$strip>>;
|
|
848
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
849
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
850
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
851
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
852
|
+
values: z.ZodArray<z.ZodString>;
|
|
853
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
854
|
+
}, z.core.$strip>>;
|
|
855
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
856
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
857
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
858
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
859
|
+
sensor: "sensor";
|
|
860
|
+
any: "any";
|
|
861
|
+
pipeline: "pipeline";
|
|
862
|
+
onboard: "onboard";
|
|
863
|
+
}>>;
|
|
864
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
865
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
866
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
867
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
868
|
+
both: "both";
|
|
869
|
+
delivered: "delivered";
|
|
870
|
+
"picked-up": "picked-up";
|
|
871
|
+
}>>;
|
|
872
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
873
|
+
kind: z.ZodLiteral<"polygon">;
|
|
874
|
+
points: z.ZodArray<z.ZodObject<{
|
|
875
|
+
x: z.ZodNumber;
|
|
876
|
+
y: z.ZodNumber;
|
|
877
|
+
}, z.core.$strip>>;
|
|
878
|
+
}, z.core.$strip>>>;
|
|
879
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
880
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
881
|
+
className: z.ZodOptional<z.ZodString>;
|
|
882
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
883
|
+
"<=": "<=";
|
|
884
|
+
">=": ">=";
|
|
885
|
+
"became-occupied": "became-occupied";
|
|
886
|
+
"became-free": "became-free";
|
|
887
|
+
}>>;
|
|
888
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
889
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
890
|
+
}, z.core.$strip>>;
|
|
891
|
+
}, z.core.$strip>>;
|
|
892
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
893
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
894
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
895
|
+
startMinute: z.ZodNumber;
|
|
896
|
+
endMinute: z.ZodNumber;
|
|
897
|
+
}, z.core.$strip>>;
|
|
898
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
899
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
900
|
+
}, z.core.$strip>>;
|
|
901
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
902
|
+
targetId: z.ZodString;
|
|
903
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
904
|
+
}, z.core.$strip>>;
|
|
905
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
906
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
907
|
+
none: "none";
|
|
908
|
+
best: "best";
|
|
909
|
+
"best-matching": "best-matching";
|
|
910
|
+
keyFrame: "keyFrame";
|
|
911
|
+
}>>;
|
|
912
|
+
}, z.core.$strip>>;
|
|
913
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
914
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
915
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
916
|
+
rule: "rule";
|
|
917
|
+
"rule-device": "rule-device";
|
|
918
|
+
}>>;
|
|
919
|
+
}, z.core.$strip>>;
|
|
920
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
921
|
+
title: z.ZodOptional<z.ZodString>;
|
|
922
|
+
body: z.ZodOptional<z.ZodString>;
|
|
923
|
+
}, z.core.$strip>>;
|
|
924
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
925
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
926
|
+
id: z.ZodString;
|
|
927
|
+
createdBy: z.ZodString;
|
|
928
|
+
createdAt: z.ZodNumber;
|
|
929
|
+
updatedAt: z.ZodNumber;
|
|
930
|
+
disabledTargetIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
931
|
+
}, z.core.$strip>>;
|
|
932
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
933
|
+
readonly createRule: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
934
|
+
rule: z.ZodObject<{
|
|
935
|
+
name: z.ZodString;
|
|
936
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
937
|
+
delivery: z.ZodEnum<{
|
|
938
|
+
immediate: "immediate";
|
|
939
|
+
"track-end": "track-end";
|
|
940
|
+
"device-event": "device-event";
|
|
941
|
+
"package-event": "package-event";
|
|
942
|
+
}>;
|
|
943
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
944
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
945
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
946
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
947
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
948
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
949
|
+
ids: z.ZodArray<z.ZodString>;
|
|
950
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
951
|
+
any: "any";
|
|
952
|
+
all: "all";
|
|
953
|
+
}>>;
|
|
954
|
+
}, z.core.$strip>>;
|
|
955
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
956
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
957
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
958
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
959
|
+
values: z.ZodArray<z.ZodString>;
|
|
960
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
961
|
+
}, z.core.$strip>>;
|
|
962
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
963
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
964
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
965
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
966
|
+
sensor: "sensor";
|
|
967
|
+
any: "any";
|
|
968
|
+
pipeline: "pipeline";
|
|
969
|
+
onboard: "onboard";
|
|
970
|
+
}>>;
|
|
971
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
972
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
973
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
974
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
975
|
+
both: "both";
|
|
976
|
+
delivered: "delivered";
|
|
977
|
+
"picked-up": "picked-up";
|
|
978
|
+
}>>;
|
|
979
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
980
|
+
kind: z.ZodLiteral<"polygon">;
|
|
981
|
+
points: z.ZodArray<z.ZodObject<{
|
|
982
|
+
x: z.ZodNumber;
|
|
983
|
+
y: z.ZodNumber;
|
|
984
|
+
}, z.core.$strip>>;
|
|
985
|
+
}, z.core.$strip>>>;
|
|
986
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
987
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
988
|
+
className: z.ZodOptional<z.ZodString>;
|
|
989
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
990
|
+
"<=": "<=";
|
|
991
|
+
">=": ">=";
|
|
992
|
+
"became-occupied": "became-occupied";
|
|
993
|
+
"became-free": "became-free";
|
|
994
|
+
}>>;
|
|
995
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
996
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
997
|
+
}, z.core.$strip>>;
|
|
998
|
+
}, z.core.$strip>>;
|
|
999
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
1000
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
1001
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
1002
|
+
startMinute: z.ZodNumber;
|
|
1003
|
+
endMinute: z.ZodNumber;
|
|
1004
|
+
}, z.core.$strip>>;
|
|
1005
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
1006
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
1007
|
+
}, z.core.$strip>>;
|
|
1008
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
1009
|
+
targetId: z.ZodString;
|
|
1010
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1011
|
+
}, z.core.$strip>>;
|
|
1012
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
1013
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
1014
|
+
none: "none";
|
|
1015
|
+
best: "best";
|
|
1016
|
+
"best-matching": "best-matching";
|
|
1017
|
+
keyFrame: "keyFrame";
|
|
1018
|
+
}>>;
|
|
1019
|
+
}, z.core.$strip>>;
|
|
1020
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
1021
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
1022
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
1023
|
+
rule: "rule";
|
|
1024
|
+
"rule-device": "rule-device";
|
|
1025
|
+
}>>;
|
|
1026
|
+
}, z.core.$strip>>;
|
|
1027
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
1028
|
+
title: z.ZodOptional<z.ZodString>;
|
|
1029
|
+
body: z.ZodOptional<z.ZodString>;
|
|
1030
|
+
}, z.core.$strip>>;
|
|
1031
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
1032
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
1033
|
+
}, z.core.$strip>;
|
|
1034
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1035
|
+
rule: z.ZodObject<{
|
|
1036
|
+
name: z.ZodString;
|
|
1037
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1038
|
+
delivery: z.ZodEnum<{
|
|
1039
|
+
immediate: "immediate";
|
|
1040
|
+
"track-end": "track-end";
|
|
1041
|
+
"device-event": "device-event";
|
|
1042
|
+
"package-event": "package-event";
|
|
1043
|
+
}>;
|
|
1044
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
1045
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1046
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1047
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1048
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1049
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
1050
|
+
ids: z.ZodArray<z.ZodString>;
|
|
1051
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
1052
|
+
any: "any";
|
|
1053
|
+
all: "all";
|
|
1054
|
+
}>>;
|
|
1055
|
+
}, z.core.$strip>>;
|
|
1056
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1057
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1058
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1059
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
1060
|
+
values: z.ZodArray<z.ZodString>;
|
|
1061
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
1062
|
+
}, z.core.$strip>>;
|
|
1063
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1064
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
1065
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1066
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
1067
|
+
sensor: "sensor";
|
|
1068
|
+
any: "any";
|
|
1069
|
+
pipeline: "pipeline";
|
|
1070
|
+
onboard: "onboard";
|
|
1071
|
+
}>>;
|
|
1072
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1073
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1074
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1075
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
1076
|
+
both: "both";
|
|
1077
|
+
delivered: "delivered";
|
|
1078
|
+
"picked-up": "picked-up";
|
|
1079
|
+
}>>;
|
|
1080
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1081
|
+
kind: z.ZodLiteral<"polygon">;
|
|
1082
|
+
points: z.ZodArray<z.ZodObject<{
|
|
1083
|
+
x: z.ZodNumber;
|
|
1084
|
+
y: z.ZodNumber;
|
|
1085
|
+
}, z.core.$strip>>;
|
|
1086
|
+
}, z.core.$strip>>>;
|
|
1087
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
1088
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
1089
|
+
className: z.ZodOptional<z.ZodString>;
|
|
1090
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
1091
|
+
"<=": "<=";
|
|
1092
|
+
">=": ">=";
|
|
1093
|
+
"became-occupied": "became-occupied";
|
|
1094
|
+
"became-free": "became-free";
|
|
1095
|
+
}>>;
|
|
1096
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
1097
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
1098
|
+
}, z.core.$strip>>;
|
|
1099
|
+
}, z.core.$strip>>;
|
|
1100
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
1101
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
1102
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
1103
|
+
startMinute: z.ZodNumber;
|
|
1104
|
+
endMinute: z.ZodNumber;
|
|
1105
|
+
}, z.core.$strip>>;
|
|
1106
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
1107
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
1108
|
+
}, z.core.$strip>>;
|
|
1109
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
1110
|
+
targetId: z.ZodString;
|
|
1111
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1112
|
+
}, z.core.$strip>>;
|
|
1113
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
1114
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
1115
|
+
none: "none";
|
|
1116
|
+
best: "best";
|
|
1117
|
+
"best-matching": "best-matching";
|
|
1118
|
+
keyFrame: "keyFrame";
|
|
1119
|
+
}>>;
|
|
1120
|
+
}, z.core.$strip>>;
|
|
1121
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
1122
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
1123
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
1124
|
+
rule: "rule";
|
|
1125
|
+
"rule-device": "rule-device";
|
|
1126
|
+
}>>;
|
|
1127
|
+
}, z.core.$strip>>;
|
|
1128
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
1129
|
+
title: z.ZodOptional<z.ZodString>;
|
|
1130
|
+
body: z.ZodOptional<z.ZodString>;
|
|
1131
|
+
}, z.core.$strip>>;
|
|
1132
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
1133
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
1134
|
+
id: z.ZodString;
|
|
1135
|
+
createdBy: z.ZodString;
|
|
1136
|
+
createdAt: z.ZodNumber;
|
|
1137
|
+
updatedAt: z.ZodNumber;
|
|
1138
|
+
disabledTargetIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
1139
|
+
}, z.core.$strip>;
|
|
1140
|
+
}, z.core.$strip>, "mutation"> & {
|
|
1141
|
+
readonly caller: "required";
|
|
1142
|
+
};
|
|
1143
|
+
readonly updateRule: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1144
|
+
ruleId: z.ZodString;
|
|
1145
|
+
patch: z.ZodObject<{
|
|
1146
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1147
|
+
enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
1148
|
+
delivery: z.ZodOptional<z.ZodEnum<{
|
|
1149
|
+
immediate: "immediate";
|
|
1150
|
+
"track-end": "track-end";
|
|
1151
|
+
"device-event": "device-event";
|
|
1152
|
+
"package-event": "package-event";
|
|
1153
|
+
}>>;
|
|
1154
|
+
conditions: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
1155
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1156
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1157
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1158
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1159
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
1160
|
+
ids: z.ZodArray<z.ZodString>;
|
|
1161
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
1162
|
+
any: "any";
|
|
1163
|
+
all: "all";
|
|
1164
|
+
}>>;
|
|
1165
|
+
}, z.core.$strip>>;
|
|
1166
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1167
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1168
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1169
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
1170
|
+
values: z.ZodArray<z.ZodString>;
|
|
1171
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
1172
|
+
}, z.core.$strip>>;
|
|
1173
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1174
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
1175
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1176
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
1177
|
+
sensor: "sensor";
|
|
1178
|
+
any: "any";
|
|
1179
|
+
pipeline: "pipeline";
|
|
1180
|
+
onboard: "onboard";
|
|
1181
|
+
}>>;
|
|
1182
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1183
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1184
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1185
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
1186
|
+
both: "both";
|
|
1187
|
+
delivered: "delivered";
|
|
1188
|
+
"picked-up": "picked-up";
|
|
1189
|
+
}>>;
|
|
1190
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1191
|
+
kind: z.ZodLiteral<"polygon">;
|
|
1192
|
+
points: z.ZodArray<z.ZodObject<{
|
|
1193
|
+
x: z.ZodNumber;
|
|
1194
|
+
y: z.ZodNumber;
|
|
1195
|
+
}, z.core.$strip>>;
|
|
1196
|
+
}, z.core.$strip>>>;
|
|
1197
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
1198
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
1199
|
+
className: z.ZodOptional<z.ZodString>;
|
|
1200
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
1201
|
+
"<=": "<=";
|
|
1202
|
+
">=": ">=";
|
|
1203
|
+
"became-occupied": "became-occupied";
|
|
1204
|
+
"became-free": "became-free";
|
|
1205
|
+
}>>;
|
|
1206
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
1207
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
1208
|
+
}, z.core.$strip>>;
|
|
1209
|
+
}, z.core.$strip>>>;
|
|
1210
|
+
schedule: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
1211
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
1212
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
1213
|
+
startMinute: z.ZodNumber;
|
|
1214
|
+
endMinute: z.ZodNumber;
|
|
1215
|
+
}, z.core.$strip>>;
|
|
1216
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
1217
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
1218
|
+
}, z.core.$strip>>>;
|
|
1219
|
+
targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1220
|
+
targetId: z.ZodString;
|
|
1221
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1222
|
+
}, z.core.$strip>>>;
|
|
1223
|
+
media: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
1224
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
1225
|
+
none: "none";
|
|
1226
|
+
best: "best";
|
|
1227
|
+
"best-matching": "best-matching";
|
|
1228
|
+
keyFrame: "keyFrame";
|
|
1229
|
+
}>>;
|
|
1230
|
+
}, z.core.$strip>>>;
|
|
1231
|
+
throttle: z.ZodOptional<z.ZodDefault<z.ZodObject<{
|
|
1232
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
1233
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
1234
|
+
rule: "rule";
|
|
1235
|
+
"rule-device": "rule-device";
|
|
1236
|
+
}>>;
|
|
1237
|
+
}, z.core.$strip>>>;
|
|
1238
|
+
template: z.ZodOptional<z.ZodOptional<z.ZodObject<{
|
|
1239
|
+
title: z.ZodOptional<z.ZodString>;
|
|
1240
|
+
body: z.ZodOptional<z.ZodString>;
|
|
1241
|
+
}, z.core.$strip>>>;
|
|
1242
|
+
priority: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
|
1243
|
+
ownerUserId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
|
|
1244
|
+
disabledTargetIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1245
|
+
}, z.core.$strip>;
|
|
1246
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1247
|
+
rule: z.ZodObject<{
|
|
1248
|
+
name: z.ZodString;
|
|
1249
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1250
|
+
delivery: z.ZodEnum<{
|
|
1251
|
+
immediate: "immediate";
|
|
1252
|
+
"track-end": "track-end";
|
|
1253
|
+
"device-event": "device-event";
|
|
1254
|
+
"package-event": "package-event";
|
|
1255
|
+
}>;
|
|
1256
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
1257
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1258
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1259
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1260
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1261
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
1262
|
+
ids: z.ZodArray<z.ZodString>;
|
|
1263
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
1264
|
+
any: "any";
|
|
1265
|
+
all: "all";
|
|
1266
|
+
}>>;
|
|
1267
|
+
}, z.core.$strip>>;
|
|
1268
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1269
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1270
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1271
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
1272
|
+
values: z.ZodArray<z.ZodString>;
|
|
1273
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
1274
|
+
}, z.core.$strip>>;
|
|
1275
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1276
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
1277
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1278
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
1279
|
+
sensor: "sensor";
|
|
1280
|
+
any: "any";
|
|
1281
|
+
pipeline: "pipeline";
|
|
1282
|
+
onboard: "onboard";
|
|
1283
|
+
}>>;
|
|
1284
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1285
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1286
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1287
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
1288
|
+
both: "both";
|
|
1289
|
+
delivered: "delivered";
|
|
1290
|
+
"picked-up": "picked-up";
|
|
1291
|
+
}>>;
|
|
1292
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1293
|
+
kind: z.ZodLiteral<"polygon">;
|
|
1294
|
+
points: z.ZodArray<z.ZodObject<{
|
|
1295
|
+
x: z.ZodNumber;
|
|
1296
|
+
y: z.ZodNumber;
|
|
1297
|
+
}, z.core.$strip>>;
|
|
1298
|
+
}, z.core.$strip>>>;
|
|
1299
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
1300
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
1301
|
+
className: z.ZodOptional<z.ZodString>;
|
|
1302
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
1303
|
+
"<=": "<=";
|
|
1304
|
+
">=": ">=";
|
|
1305
|
+
"became-occupied": "became-occupied";
|
|
1306
|
+
"became-free": "became-free";
|
|
1307
|
+
}>>;
|
|
1308
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
1309
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
1310
|
+
}, z.core.$strip>>;
|
|
1311
|
+
}, z.core.$strip>>;
|
|
1312
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
1313
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
1314
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
1315
|
+
startMinute: z.ZodNumber;
|
|
1316
|
+
endMinute: z.ZodNumber;
|
|
1317
|
+
}, z.core.$strip>>;
|
|
1318
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
1319
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
1320
|
+
}, z.core.$strip>>;
|
|
1321
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
1322
|
+
targetId: z.ZodString;
|
|
1323
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1324
|
+
}, z.core.$strip>>;
|
|
1325
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
1326
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
1327
|
+
none: "none";
|
|
1328
|
+
best: "best";
|
|
1329
|
+
"best-matching": "best-matching";
|
|
1330
|
+
keyFrame: "keyFrame";
|
|
1331
|
+
}>>;
|
|
1332
|
+
}, z.core.$strip>>;
|
|
1333
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
1334
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
1335
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
1336
|
+
rule: "rule";
|
|
1337
|
+
"rule-device": "rule-device";
|
|
1338
|
+
}>>;
|
|
1339
|
+
}, z.core.$strip>>;
|
|
1340
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
1341
|
+
title: z.ZodOptional<z.ZodString>;
|
|
1342
|
+
body: z.ZodOptional<z.ZodString>;
|
|
1343
|
+
}, z.core.$strip>>;
|
|
1344
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
1345
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
1346
|
+
id: z.ZodString;
|
|
1347
|
+
createdBy: z.ZodString;
|
|
1348
|
+
createdAt: z.ZodNumber;
|
|
1349
|
+
updatedAt: z.ZodNumber;
|
|
1350
|
+
disabledTargetIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
1351
|
+
}, z.core.$strip>;
|
|
1352
|
+
}, z.core.$strip>, "mutation"> & {
|
|
1353
|
+
readonly caller: "required";
|
|
1354
|
+
};
|
|
1355
|
+
readonly deleteRule: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1356
|
+
ruleId: z.ZodString;
|
|
1357
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1358
|
+
success: z.ZodLiteral<true>;
|
|
1359
|
+
}, z.core.$strip>, "mutation">;
|
|
1360
|
+
readonly setRuleEnabled: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1361
|
+
ruleId: z.ZodString;
|
|
1362
|
+
enabled: z.ZodBoolean;
|
|
1363
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1364
|
+
success: z.ZodLiteral<true>;
|
|
1365
|
+
}, z.core.$strip>, "mutation">;
|
|
1366
|
+
/**
|
|
1367
|
+
* Dry-run a rule against recently persisted records (object events for
|
|
1368
|
+
* `immediate`, closed tracks for `track-end`). Mutation kind only to
|
|
1369
|
+
* carry the full rule object safely; no side effects.
|
|
1370
|
+
*/
|
|
1371
|
+
readonly testRule: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1372
|
+
rule: z.ZodObject<{
|
|
1373
|
+
name: z.ZodString;
|
|
1374
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
1375
|
+
delivery: z.ZodEnum<{
|
|
1376
|
+
immediate: "immediate";
|
|
1377
|
+
"track-end": "track-end";
|
|
1378
|
+
"device-event": "device-event";
|
|
1379
|
+
"package-event": "package-event";
|
|
1380
|
+
}>;
|
|
1381
|
+
conditions: z.ZodDefault<z.ZodObject<{
|
|
1382
|
+
devices: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
1383
|
+
classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1384
|
+
classesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1385
|
+
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1386
|
+
zones: z.ZodOptional<z.ZodObject<{
|
|
1387
|
+
ids: z.ZodArray<z.ZodString>;
|
|
1388
|
+
match: z.ZodDefault<z.ZodEnum<{
|
|
1389
|
+
any: "any";
|
|
1390
|
+
all: "all";
|
|
1391
|
+
}>>;
|
|
1392
|
+
}, z.core.$strip>>;
|
|
1393
|
+
zonesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1394
|
+
labelEquals: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1395
|
+
identities: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1396
|
+
plates: z.ZodOptional<z.ZodObject<{
|
|
1397
|
+
values: z.ZodArray<z.ZodString>;
|
|
1398
|
+
maxDistance: z.ZodDefault<z.ZodNumber>;
|
|
1399
|
+
}, z.core.$strip>>;
|
|
1400
|
+
identitiesExclude: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1401
|
+
minImportance: z.ZodOptional<z.ZodNumber>;
|
|
1402
|
+
minDwellSeconds: z.ZodOptional<z.ZodNumber>;
|
|
1403
|
+
source: z.ZodOptional<z.ZodEnum<{
|
|
1404
|
+
sensor: "sensor";
|
|
1405
|
+
any: "any";
|
|
1406
|
+
pipeline: "pipeline";
|
|
1407
|
+
onboard: "onboard";
|
|
1408
|
+
}>>;
|
|
1409
|
+
minLabelConfidence: z.ZodOptional<z.ZodNumber>;
|
|
1410
|
+
eventTypeTokens: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1411
|
+
sensorKinds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
1412
|
+
packagePhase: z.ZodOptional<z.ZodEnum<{
|
|
1413
|
+
both: "both";
|
|
1414
|
+
delivered: "delivered";
|
|
1415
|
+
"picked-up": "picked-up";
|
|
1416
|
+
}>>;
|
|
1417
|
+
customZones: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
1418
|
+
kind: z.ZodLiteral<"polygon">;
|
|
1419
|
+
points: z.ZodArray<z.ZodObject<{
|
|
1420
|
+
x: z.ZodNumber;
|
|
1421
|
+
y: z.ZodNumber;
|
|
1422
|
+
}, z.core.$strip>>;
|
|
1423
|
+
}, z.core.$strip>>>;
|
|
1424
|
+
occupancy: z.ZodOptional<z.ZodObject<{
|
|
1425
|
+
zoneId: z.ZodOptional<z.ZodString>;
|
|
1426
|
+
className: z.ZodOptional<z.ZodString>;
|
|
1427
|
+
op: z.ZodDefault<z.ZodEnum<{
|
|
1428
|
+
"<=": "<=";
|
|
1429
|
+
">=": ">=";
|
|
1430
|
+
"became-occupied": "became-occupied";
|
|
1431
|
+
"became-free": "became-free";
|
|
1432
|
+
}>>;
|
|
1433
|
+
count: z.ZodDefault<z.ZodNumber>;
|
|
1434
|
+
sustainSeconds: z.ZodDefault<z.ZodNumber>;
|
|
1435
|
+
}, z.core.$strip>>;
|
|
1436
|
+
}, z.core.$strip>>;
|
|
1437
|
+
schedule: z.ZodOptional<z.ZodObject<{
|
|
1438
|
+
windows: z.ZodArray<z.ZodObject<{
|
|
1439
|
+
days: z.ZodArray<z.ZodNumber>;
|
|
1440
|
+
startMinute: z.ZodNumber;
|
|
1441
|
+
endMinute: z.ZodNumber;
|
|
1442
|
+
}, z.core.$strip>>;
|
|
1443
|
+
timezone: z.ZodOptional<z.ZodString>;
|
|
1444
|
+
invert: z.ZodOptional<z.ZodBoolean>;
|
|
1445
|
+
}, z.core.$strip>>;
|
|
1446
|
+
targets: z.ZodArray<z.ZodObject<{
|
|
1447
|
+
targetId: z.ZodString;
|
|
1448
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
1449
|
+
}, z.core.$strip>>;
|
|
1450
|
+
media: z.ZodDefault<z.ZodObject<{
|
|
1451
|
+
attach: z.ZodDefault<z.ZodEnum<{
|
|
1452
|
+
none: "none";
|
|
1453
|
+
best: "best";
|
|
1454
|
+
"best-matching": "best-matching";
|
|
1455
|
+
keyFrame: "keyFrame";
|
|
1456
|
+
}>>;
|
|
1457
|
+
}, z.core.$strip>>;
|
|
1458
|
+
throttle: z.ZodDefault<z.ZodObject<{
|
|
1459
|
+
cooldownSec: z.ZodDefault<z.ZodNumber>;
|
|
1460
|
+
scope: z.ZodDefault<z.ZodEnum<{
|
|
1461
|
+
rule: "rule";
|
|
1462
|
+
"rule-device": "rule-device";
|
|
1463
|
+
}>>;
|
|
1464
|
+
}, z.core.$strip>>;
|
|
1465
|
+
template: z.ZodOptional<z.ZodObject<{
|
|
1466
|
+
title: z.ZodOptional<z.ZodString>;
|
|
1467
|
+
body: z.ZodOptional<z.ZodString>;
|
|
1468
|
+
}, z.core.$strip>>;
|
|
1469
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
1470
|
+
ownerUserId: z.ZodOptional<z.ZodString>;
|
|
1471
|
+
}, z.core.$strip>;
|
|
1472
|
+
lookbackMinutes: z.ZodDefault<z.ZodNumber>;
|
|
1473
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1474
|
+
results: z.ZodArray<z.ZodObject<{
|
|
1475
|
+
recordId: z.ZodString;
|
|
1476
|
+
recordKind: z.ZodEnum<{
|
|
1477
|
+
"device-event": "device-event";
|
|
1478
|
+
"package-event": "package-event";
|
|
1479
|
+
"object-event": "object-event";
|
|
1480
|
+
track: "track";
|
|
1481
|
+
}>;
|
|
1482
|
+
deviceId: z.ZodNumber;
|
|
1483
|
+
timestamp: z.ZodNumber;
|
|
1484
|
+
wouldFire: z.ZodBoolean;
|
|
1485
|
+
failedCondition: z.ZodOptional<z.ZodString>;
|
|
1486
|
+
className: z.ZodOptional<z.ZodString>;
|
|
1487
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1488
|
+
}, z.core.$strip>>;
|
|
1489
|
+
}, z.core.$strip>, "mutation">;
|
|
1490
|
+
readonly getConditionCatalog: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{}, z.core.$strip>, z.ZodObject<{
|
|
1491
|
+
catalog: z.ZodArray<z.ZodObject<{
|
|
1492
|
+
id: z.ZodString;
|
|
1493
|
+
group: z.ZodEnum<{
|
|
1494
|
+
device: "device";
|
|
1495
|
+
label: "label";
|
|
1496
|
+
scope: "scope";
|
|
1497
|
+
class: "class";
|
|
1498
|
+
schedule: "schedule";
|
|
1499
|
+
zones: "zones";
|
|
1500
|
+
package: "package";
|
|
1501
|
+
occupancy: "occupancy";
|
|
1502
|
+
quality: "quality";
|
|
1503
|
+
}>;
|
|
1504
|
+
label: z.ZodString;
|
|
1505
|
+
valueType: z.ZodEnum<{
|
|
1506
|
+
number: "number";
|
|
1507
|
+
schedule: "schedule";
|
|
1508
|
+
packagePhase: "packagePhase";
|
|
1509
|
+
occupancy: "occupancy";
|
|
1510
|
+
deviceIdList: "deviceIdList";
|
|
1511
|
+
stringList: "stringList";
|
|
1512
|
+
number01: "number01";
|
|
1513
|
+
sourceSelect: "sourceSelect";
|
|
1514
|
+
zoneSelection: "zoneSelection";
|
|
1515
|
+
zoneIdList: "zoneIdList";
|
|
1516
|
+
plateMatcher: "plateMatcher";
|
|
1517
|
+
polygonDraw: "polygonDraw";
|
|
1518
|
+
}>;
|
|
1519
|
+
operator: z.ZodEnum<{
|
|
1520
|
+
in: "in";
|
|
1521
|
+
notIn: "notIn";
|
|
1522
|
+
anyOf: "anyOf";
|
|
1523
|
+
allOf: "allOf";
|
|
1524
|
+
gte: "gte";
|
|
1525
|
+
fuzzyIn: "fuzzyIn";
|
|
1526
|
+
withinSchedule: "withinSchedule";
|
|
1527
|
+
}>;
|
|
1528
|
+
appliesTo: z.ZodArray<z.ZodEnum<{
|
|
1529
|
+
immediate: "immediate";
|
|
1530
|
+
"track-end": "track-end";
|
|
1531
|
+
"device-event": "device-event";
|
|
1532
|
+
"package-event": "package-event";
|
|
1533
|
+
}>>;
|
|
1534
|
+
phase: z.ZodString;
|
|
1535
|
+
description: z.ZodOptional<z.ZodString>;
|
|
1536
|
+
}, z.core.$strip>>;
|
|
1537
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
1538
|
+
/**
|
|
1539
|
+
* Queryable delivery history — a read-only view over the durable outbox
|
|
1540
|
+
* (fired rule, subject summary, target, status, timestamps, error on a
|
|
1541
|
+
* dead row). Newest-first, bounded by `filter.limit`. Retention follows
|
|
1542
|
+
* the outbox's own terminal-row prune horizon (no separate history
|
|
1543
|
+
* horizon — single collection, single source of truth). Admin-only in
|
|
1544
|
+
* P1 (no user dimension); the P2 viewer History screen adds per-caller
|
|
1545
|
+
* scoping on the same method.
|
|
1546
|
+
*/
|
|
1547
|
+
readonly getHistory: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
|
|
1548
|
+
filter: z.ZodDefault<z.ZodObject<{
|
|
1549
|
+
ruleId: z.ZodOptional<z.ZodString>;
|
|
1550
|
+
deviceId: z.ZodOptional<z.ZodNumber>;
|
|
1551
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
1552
|
+
pending: "pending";
|
|
1553
|
+
sent: "sent";
|
|
1554
|
+
dead: "dead";
|
|
1555
|
+
}>>;
|
|
1556
|
+
since: z.ZodOptional<z.ZodNumber>;
|
|
1557
|
+
until: z.ZodOptional<z.ZodNumber>;
|
|
1558
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
1559
|
+
}, z.core.$strip>>;
|
|
1560
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
1561
|
+
entries: z.ZodArray<z.ZodObject<{
|
|
1562
|
+
id: z.ZodString;
|
|
1563
|
+
ruleId: z.ZodString;
|
|
1564
|
+
ruleName: z.ZodString;
|
|
1565
|
+
delivery: z.ZodEnum<{
|
|
1566
|
+
immediate: "immediate";
|
|
1567
|
+
"track-end": "track-end";
|
|
1568
|
+
"device-event": "device-event";
|
|
1569
|
+
"package-event": "package-event";
|
|
1570
|
+
}>;
|
|
1571
|
+
targetId: z.ZodString;
|
|
1572
|
+
deviceId: z.ZodNumber;
|
|
1573
|
+
recordKind: z.ZodEnum<{
|
|
1574
|
+
"track-end": "track-end";
|
|
1575
|
+
"device-event": "device-event";
|
|
1576
|
+
"package-event": "package-event";
|
|
1577
|
+
"object-event": "object-event";
|
|
1578
|
+
}>;
|
|
1579
|
+
recordId: z.ZodString;
|
|
1580
|
+
trackId: z.ZodOptional<z.ZodString>;
|
|
1581
|
+
status: z.ZodEnum<{
|
|
1582
|
+
pending: "pending";
|
|
1583
|
+
sent: "sent";
|
|
1584
|
+
dead: "dead";
|
|
1585
|
+
}>;
|
|
1586
|
+
attempts: z.ZodNumber;
|
|
1587
|
+
createdAt: z.ZodNumber;
|
|
1588
|
+
updatedAt: z.ZodNumber;
|
|
1589
|
+
error: z.ZodOptional<z.ZodString>;
|
|
1590
|
+
subject: z.ZodObject<{
|
|
1591
|
+
className: z.ZodString;
|
|
1592
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1593
|
+
confidence: z.ZodOptional<z.ZodNumber>;
|
|
1594
|
+
zones: z.ZodArray<z.ZodString>;
|
|
1595
|
+
timestamp: z.ZodNumber;
|
|
1596
|
+
}, z.core.$strip>;
|
|
1597
|
+
}, z.core.$strip>>;
|
|
1598
|
+
}, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
|
|
1599
|
+
};
|
|
1600
|
+
};
|
|
1601
|
+
export type INotificationRulesProvider = InferProvider<typeof notificationRulesCapability>;
|