@camstack/types 1.1.42 → 1.1.44

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.
Files changed (41) hide show
  1. package/dist/addon.js +1 -1
  2. package/dist/addon.mjs +1 -1
  3. package/dist/capabilities/advanced-notifier.cap.d.ts +8 -4
  4. package/dist/capabilities/cap-router-predicates.d.ts +17 -0
  5. package/dist/capabilities/capability-definition.d.ts +1 -1
  6. package/dist/capabilities/custom-model-registry.cap.d.ts +20 -0
  7. package/dist/capabilities/index.d.ts +14 -7
  8. package/dist/capabilities/llm-runtime.cap.d.ts +286 -0
  9. package/dist/capabilities/llm-shared.d.ts +104 -0
  10. package/dist/capabilities/llm.cap.d.ts +596 -0
  11. package/dist/capabilities/login-method.cap.d.ts +53 -7
  12. package/dist/capabilities/model-convert.cap.d.ts +11 -0
  13. package/dist/capabilities/model-distributor.cap.d.ts +22 -0
  14. package/dist/capabilities/pipeline-analytics.cap.d.ts +101 -25
  15. package/dist/capabilities/pipeline-executor.cap.d.ts +26 -0
  16. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +16 -0
  17. package/dist/capabilities/pipeline-runner.cap.d.ts +107 -0
  18. package/dist/capabilities/plate-gallery.cap.d.ts +114 -0
  19. package/dist/capabilities/platform-probe.cap.d.ts +1 -0
  20. package/dist/capabilities/scene-monitor.cap.d.ts +483 -0
  21. package/dist/enums/event-category.d.ts +33 -0
  22. package/dist/generated/addon-api.d.ts +3305 -1081
  23. package/dist/generated/cap-status-types.d.ts +3 -1
  24. package/dist/generated/capability-router-map.d.ts +13 -4
  25. package/dist/generated/device-local-state.d.ts +3 -0
  26. package/dist/generated/device-proxy.d.ts +4 -1
  27. package/dist/generated/method-access-map.d.ts +1 -1
  28. package/dist/generated/provider-kind-map.d.ts +1 -1
  29. package/dist/generated/system-proxy.d.ts +3 -1
  30. package/dist/index.js +1201 -48
  31. package/dist/index.mjs +1169 -49
  32. package/dist/interfaces/advanced-notifier.d.ts +2 -0
  33. package/dist/interfaces/event-bus.d.ts +111 -2
  34. package/dist/interfaces/pipeline-executor-capability.d.ts +9 -0
  35. package/dist/interfaces/pipeline-runner-capability.d.ts +8 -0
  36. package/dist/{sleep-BC9Yqte7.mjs → sleep-DkhOVOjW.mjs} +49 -1
  37. package/dist/{sleep-ByctZsHo.js → sleep-k6I1e98_.js} +49 -1
  38. package/dist/types/detection.d.ts +12 -0
  39. package/dist/types/models.d.ts +33 -1
  40. package/dist/types/pipeline-step.d.ts +31 -0
  41. package/package.json +1 -1
@@ -0,0 +1,483 @@
1
+ import { z } from 'zod';
2
+ import { type InferNativeProvider } from './capability-definition.js';
3
+ import { DeviceType } from '../device/device-type.js';
4
+ /**
5
+ * scene-monitor — device-scoped reference-region state cap. An operator marks
6
+ * a rect ROI on a camera frame and names one or more states; the engine
7
+ * (pipeline-analytics, designated post-processing node) reports which state is
8
+ * active on an ongoing basis. Two operator-selectable check modes share every-
9
+ * thing except the comparator: `similarity` (CLIP cosine at the same ROI coords
10
+ * vs condition-tagged references) and `llm` (vision-LLM judgment over the crop).
11
+ *
12
+ * D14 device-config archetype (`deviceConfig.ui.kind:'widget'`) — the framework
13
+ * derives the device-detail contribution; the provider carries NO hand-written
14
+ * settings-contribution methods. `status.kind:'push'` — the engine pushes on
15
+ * every hysteresis flip / availability change; consumers never poll.
16
+ */
17
+ /** Extensible condition tag. Seeded 'day' | 'night'; open by design so more can
18
+ * be added without a wire break (matching falls back to any-condition refs). */
19
+ export declare const SceneConditionSchema: z.ZodString;
20
+ /** One captured reference — condition-tagged, model-version-gated. `embedding`
21
+ * is `number[]` (Float32Array does NOT survive MsgPack/UDS). */
22
+ export declare const SceneReferenceSchema: z.ZodObject<{
23
+ embedding: z.ZodArray<z.ZodNumber>;
24
+ modelId: z.ZodString;
25
+ condition: z.ZodString;
26
+ capturedAt: z.ZodNumber;
27
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strip>;
29
+ export declare const SceneMonitorStateSchema: z.ZodObject<{
30
+ id: z.ZodString;
31
+ label: z.ZodString;
32
+ references: z.ZodArray<z.ZodObject<{
33
+ embedding: z.ZodArray<z.ZodNumber>;
34
+ modelId: z.ZodString;
35
+ condition: z.ZodString;
36
+ capturedAt: z.ZodNumber;
37
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strip>>;
39
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
40
+ referenceCount: z.ZodNumber;
41
+ currentlyMatched: z.ZodBoolean;
42
+ }, z.core.$strip>;
43
+ /** Per-mode comparator params in a discriminated union so an `llm` scene never
44
+ * carries similarity knobs and vice-versa. */
45
+ export declare const SceneCheckSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
46
+ mode: z.ZodLiteral<"similarity">;
47
+ threshold: z.ZodNumber;
48
+ hysteresisCount: z.ZodNumber;
49
+ }, z.core.$strip>, z.ZodObject<{
50
+ mode: z.ZodLiteral<"llm">;
51
+ prompt: z.ZodString;
52
+ profileId: z.ZodOptional<z.ZodString>;
53
+ hysteresisCount: z.ZodNumber;
54
+ }, z.core.$strip>], "mode">;
55
+ export declare const SceneMonitorSchema: z.ZodObject<{
56
+ id: z.ZodString;
57
+ label: z.ZodString;
58
+ roi: z.ZodObject<{
59
+ kind: z.ZodLiteral<"rect">;
60
+ x: z.ZodNumber;
61
+ y: z.ZodNumber;
62
+ width: z.ZodNumber;
63
+ height: z.ZodNumber;
64
+ }, z.core.$strip>;
65
+ enabled: z.ZodBoolean;
66
+ triggerMode: z.ZodEnum<{
67
+ both: "both";
68
+ "on-motion": "on-motion";
69
+ periodic: "periodic";
70
+ }>;
71
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
72
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
73
+ mode: z.ZodLiteral<"similarity">;
74
+ threshold: z.ZodNumber;
75
+ hysteresisCount: z.ZodNumber;
76
+ }, z.core.$strip>, z.ZodObject<{
77
+ mode: z.ZodLiteral<"llm">;
78
+ prompt: z.ZodString;
79
+ profileId: z.ZodOptional<z.ZodString>;
80
+ hysteresisCount: z.ZodNumber;
81
+ }, z.core.$strip>], "mode">;
82
+ states: z.ZodArray<z.ZodObject<{
83
+ id: z.ZodString;
84
+ label: z.ZodString;
85
+ references: z.ZodArray<z.ZodObject<{
86
+ embedding: z.ZodArray<z.ZodNumber>;
87
+ modelId: z.ZodString;
88
+ condition: z.ZodString;
89
+ capturedAt: z.ZodNumber;
90
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$strip>>;
92
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
93
+ referenceCount: z.ZodNumber;
94
+ currentlyMatched: z.ZodBoolean;
95
+ }, z.core.$strip>>;
96
+ currentStateId: z.ZodNullable<z.ZodString>;
97
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
98
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
99
+ currentCondition: z.ZodNullable<z.ZodString>;
100
+ availability: z.ZodEnum<{
101
+ ok: "ok";
102
+ unavailable: "unavailable";
103
+ }>;
104
+ unavailableReason: z.ZodNullable<z.ZodString>;
105
+ }, z.core.$strip>;
106
+ export declare const SceneMonitorStatusSchema: z.ZodObject<{
107
+ monitors: z.ZodArray<z.ZodObject<{
108
+ id: z.ZodString;
109
+ label: z.ZodString;
110
+ roi: z.ZodObject<{
111
+ kind: z.ZodLiteral<"rect">;
112
+ x: z.ZodNumber;
113
+ y: z.ZodNumber;
114
+ width: z.ZodNumber;
115
+ height: z.ZodNumber;
116
+ }, z.core.$strip>;
117
+ enabled: z.ZodBoolean;
118
+ triggerMode: z.ZodEnum<{
119
+ both: "both";
120
+ "on-motion": "on-motion";
121
+ periodic: "periodic";
122
+ }>;
123
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
124
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
125
+ mode: z.ZodLiteral<"similarity">;
126
+ threshold: z.ZodNumber;
127
+ hysteresisCount: z.ZodNumber;
128
+ }, z.core.$strip>, z.ZodObject<{
129
+ mode: z.ZodLiteral<"llm">;
130
+ prompt: z.ZodString;
131
+ profileId: z.ZodOptional<z.ZodString>;
132
+ hysteresisCount: z.ZodNumber;
133
+ }, z.core.$strip>], "mode">;
134
+ states: z.ZodArray<z.ZodObject<{
135
+ id: z.ZodString;
136
+ label: z.ZodString;
137
+ references: z.ZodArray<z.ZodObject<{
138
+ embedding: z.ZodArray<z.ZodNumber>;
139
+ modelId: z.ZodString;
140
+ condition: z.ZodString;
141
+ capturedAt: z.ZodNumber;
142
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
143
+ }, z.core.$strip>>;
144
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
145
+ referenceCount: z.ZodNumber;
146
+ currentlyMatched: z.ZodBoolean;
147
+ }, z.core.$strip>>;
148
+ currentStateId: z.ZodNullable<z.ZodString>;
149
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
150
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
151
+ currentCondition: z.ZodNullable<z.ZodString>;
152
+ availability: z.ZodEnum<{
153
+ ok: "ok";
154
+ unavailable: "unavailable";
155
+ }>;
156
+ unavailableReason: z.ZodNullable<z.ZodString>;
157
+ }, z.core.$strip>>;
158
+ lastFetchedAt: z.ZodNumber;
159
+ }, z.core.$strip>;
160
+ export type SceneCondition = z.infer<typeof SceneConditionSchema>;
161
+ export type SceneReference = z.infer<typeof SceneReferenceSchema>;
162
+ export type SceneMonitorState = z.infer<typeof SceneMonitorStateSchema>;
163
+ export type SceneCheck = z.infer<typeof SceneCheckSchema>;
164
+ export type SceneMonitor = z.infer<typeof SceneMonitorSchema>;
165
+ export type SceneMonitorStatus = z.infer<typeof SceneMonitorStatusSchema>;
166
+ export declare const sceneMonitorCapability: {
167
+ readonly name: "scene-monitor";
168
+ readonly scope: "device";
169
+ readonly mode: "singleton";
170
+ readonly kind: "wrapper";
171
+ readonly defaultActive: true;
172
+ readonly deviceTypes: readonly [DeviceType.Camera];
173
+ readonly deviceConfig: {
174
+ readonly ui: {
175
+ readonly kind: "widget";
176
+ readonly widgetId: "host/scene-monitor-editor";
177
+ readonly tab: "scenes";
178
+ readonly label: "Scenes";
179
+ };
180
+ };
181
+ readonly methods: {
182
+ readonly listScenes: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
183
+ deviceId: z.ZodNumber;
184
+ }, z.core.$strip>, z.ZodObject<{
185
+ monitors: z.ZodArray<z.ZodObject<{
186
+ id: z.ZodString;
187
+ label: z.ZodString;
188
+ roi: z.ZodObject<{
189
+ kind: z.ZodLiteral<"rect">;
190
+ x: z.ZodNumber;
191
+ y: z.ZodNumber;
192
+ width: z.ZodNumber;
193
+ height: z.ZodNumber;
194
+ }, z.core.$strip>;
195
+ enabled: z.ZodBoolean;
196
+ triggerMode: z.ZodEnum<{
197
+ both: "both";
198
+ "on-motion": "on-motion";
199
+ periodic: "periodic";
200
+ }>;
201
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
202
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
203
+ mode: z.ZodLiteral<"similarity">;
204
+ threshold: z.ZodNumber;
205
+ hysteresisCount: z.ZodNumber;
206
+ }, z.core.$strip>, z.ZodObject<{
207
+ mode: z.ZodLiteral<"llm">;
208
+ prompt: z.ZodString;
209
+ profileId: z.ZodOptional<z.ZodString>;
210
+ hysteresisCount: z.ZodNumber;
211
+ }, z.core.$strip>], "mode">;
212
+ states: z.ZodArray<z.ZodObject<{
213
+ id: z.ZodString;
214
+ label: z.ZodString;
215
+ references: z.ZodArray<z.ZodObject<{
216
+ embedding: z.ZodArray<z.ZodNumber>;
217
+ modelId: z.ZodString;
218
+ condition: z.ZodString;
219
+ capturedAt: z.ZodNumber;
220
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
221
+ }, z.core.$strip>>;
222
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
223
+ referenceCount: z.ZodNumber;
224
+ currentlyMatched: z.ZodBoolean;
225
+ }, z.core.$strip>>;
226
+ currentStateId: z.ZodNullable<z.ZodString>;
227
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
228
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
229
+ currentCondition: z.ZodNullable<z.ZodString>;
230
+ availability: z.ZodEnum<{
231
+ ok: "ok";
232
+ unavailable: "unavailable";
233
+ }>;
234
+ unavailableReason: z.ZodNullable<z.ZodString>;
235
+ }, z.core.$strip>>;
236
+ lastFetchedAt: z.ZodNumber;
237
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
238
+ readonly createScene: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
239
+ deviceId: z.ZodNumber;
240
+ label: z.ZodString;
241
+ roi: z.ZodObject<{
242
+ kind: z.ZodLiteral<"rect">;
243
+ x: z.ZodNumber;
244
+ y: z.ZodNumber;
245
+ width: z.ZodNumber;
246
+ height: z.ZodNumber;
247
+ }, z.core.$strip>;
248
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
249
+ mode: z.ZodLiteral<"similarity">;
250
+ threshold: z.ZodNumber;
251
+ hysteresisCount: z.ZodNumber;
252
+ }, z.core.$strip>, z.ZodObject<{
253
+ mode: z.ZodLiteral<"llm">;
254
+ prompt: z.ZodString;
255
+ profileId: z.ZodOptional<z.ZodString>;
256
+ hysteresisCount: z.ZodNumber;
257
+ }, z.core.$strip>], "mode">;
258
+ triggerMode: z.ZodOptional<z.ZodEnum<{
259
+ both: "both";
260
+ "on-motion": "on-motion";
261
+ periodic: "periodic";
262
+ }>>;
263
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
264
+ }, z.core.$strip>, z.ZodObject<{
265
+ id: z.ZodString;
266
+ label: z.ZodString;
267
+ roi: z.ZodObject<{
268
+ kind: z.ZodLiteral<"rect">;
269
+ x: z.ZodNumber;
270
+ y: z.ZodNumber;
271
+ width: z.ZodNumber;
272
+ height: z.ZodNumber;
273
+ }, z.core.$strip>;
274
+ enabled: z.ZodBoolean;
275
+ triggerMode: z.ZodEnum<{
276
+ both: "both";
277
+ "on-motion": "on-motion";
278
+ periodic: "periodic";
279
+ }>;
280
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
281
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
282
+ mode: z.ZodLiteral<"similarity">;
283
+ threshold: z.ZodNumber;
284
+ hysteresisCount: z.ZodNumber;
285
+ }, z.core.$strip>, z.ZodObject<{
286
+ mode: z.ZodLiteral<"llm">;
287
+ prompt: z.ZodString;
288
+ profileId: z.ZodOptional<z.ZodString>;
289
+ hysteresisCount: z.ZodNumber;
290
+ }, z.core.$strip>], "mode">;
291
+ states: z.ZodArray<z.ZodObject<{
292
+ id: z.ZodString;
293
+ label: z.ZodString;
294
+ references: z.ZodArray<z.ZodObject<{
295
+ embedding: z.ZodArray<z.ZodNumber>;
296
+ modelId: z.ZodString;
297
+ condition: z.ZodString;
298
+ capturedAt: z.ZodNumber;
299
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
300
+ }, z.core.$strip>>;
301
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
302
+ referenceCount: z.ZodNumber;
303
+ currentlyMatched: z.ZodBoolean;
304
+ }, z.core.$strip>>;
305
+ currentStateId: z.ZodNullable<z.ZodString>;
306
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
307
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
308
+ currentCondition: z.ZodNullable<z.ZodString>;
309
+ availability: z.ZodEnum<{
310
+ ok: "ok";
311
+ unavailable: "unavailable";
312
+ }>;
313
+ unavailableReason: z.ZodNullable<z.ZodString>;
314
+ }, z.core.$strip>, "mutation">;
315
+ readonly updateScene: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
316
+ deviceId: z.ZodNumber;
317
+ monitorId: z.ZodString;
318
+ patch: z.ZodObject<{
319
+ label: z.ZodOptional<z.ZodString>;
320
+ roi: z.ZodOptional<z.ZodObject<{
321
+ kind: z.ZodLiteral<"rect">;
322
+ x: z.ZodNumber;
323
+ y: z.ZodNumber;
324
+ width: z.ZodNumber;
325
+ height: z.ZodNumber;
326
+ }, z.core.$strip>>;
327
+ enabled: z.ZodOptional<z.ZodBoolean>;
328
+ triggerMode: z.ZodOptional<z.ZodEnum<{
329
+ both: "both";
330
+ "on-motion": "on-motion";
331
+ periodic: "periodic";
332
+ }>>;
333
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
334
+ check: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
335
+ mode: z.ZodLiteral<"similarity">;
336
+ threshold: z.ZodNumber;
337
+ hysteresisCount: z.ZodNumber;
338
+ }, z.core.$strip>, z.ZodObject<{
339
+ mode: z.ZodLiteral<"llm">;
340
+ prompt: z.ZodString;
341
+ profileId: z.ZodOptional<z.ZodString>;
342
+ hysteresisCount: z.ZodNumber;
343
+ }, z.core.$strip>], "mode">>;
344
+ }, z.core.$strip>;
345
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
346
+ readonly deleteScene: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
347
+ deviceId: z.ZodNumber;
348
+ monitorId: z.ZodString;
349
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
350
+ readonly captureReference: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
351
+ deviceId: z.ZodNumber;
352
+ monitorId: z.ZodString;
353
+ stateId: z.ZodOptional<z.ZodString>;
354
+ label: z.ZodOptional<z.ZodString>;
355
+ condition: z.ZodOptional<z.ZodString>;
356
+ }, z.core.$strip>, z.ZodObject<{
357
+ stateId: z.ZodString;
358
+ referenceCount: z.ZodNumber;
359
+ }, z.core.$strip>, "mutation">;
360
+ readonly deleteReference: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
361
+ deviceId: z.ZodNumber;
362
+ monitorId: z.ZodString;
363
+ stateId: z.ZodString;
364
+ index: z.ZodNumber;
365
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
366
+ readonly recheckNow: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
367
+ deviceId: z.ZodNumber;
368
+ monitorId: z.ZodString;
369
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
370
+ };
371
+ readonly status: {
372
+ readonly schema: z.ZodObject<{
373
+ monitors: z.ZodArray<z.ZodObject<{
374
+ id: z.ZodString;
375
+ label: z.ZodString;
376
+ roi: z.ZodObject<{
377
+ kind: z.ZodLiteral<"rect">;
378
+ x: z.ZodNumber;
379
+ y: z.ZodNumber;
380
+ width: z.ZodNumber;
381
+ height: z.ZodNumber;
382
+ }, z.core.$strip>;
383
+ enabled: z.ZodBoolean;
384
+ triggerMode: z.ZodEnum<{
385
+ both: "both";
386
+ "on-motion": "on-motion";
387
+ periodic: "periodic";
388
+ }>;
389
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
390
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
391
+ mode: z.ZodLiteral<"similarity">;
392
+ threshold: z.ZodNumber;
393
+ hysteresisCount: z.ZodNumber;
394
+ }, z.core.$strip>, z.ZodObject<{
395
+ mode: z.ZodLiteral<"llm">;
396
+ prompt: z.ZodString;
397
+ profileId: z.ZodOptional<z.ZodString>;
398
+ hysteresisCount: z.ZodNumber;
399
+ }, z.core.$strip>], "mode">;
400
+ states: z.ZodArray<z.ZodObject<{
401
+ id: z.ZodString;
402
+ label: z.ZodString;
403
+ references: z.ZodArray<z.ZodObject<{
404
+ embedding: z.ZodArray<z.ZodNumber>;
405
+ modelId: z.ZodString;
406
+ condition: z.ZodString;
407
+ capturedAt: z.ZodNumber;
408
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
409
+ }, z.core.$strip>>;
410
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
411
+ referenceCount: z.ZodNumber;
412
+ currentlyMatched: z.ZodBoolean;
413
+ }, z.core.$strip>>;
414
+ currentStateId: z.ZodNullable<z.ZodString>;
415
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
416
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
417
+ currentCondition: z.ZodNullable<z.ZodString>;
418
+ availability: z.ZodEnum<{
419
+ ok: "ok";
420
+ unavailable: "unavailable";
421
+ }>;
422
+ unavailableReason: z.ZodNullable<z.ZodString>;
423
+ }, z.core.$strip>>;
424
+ lastFetchedAt: z.ZodNumber;
425
+ }, z.core.$strip>;
426
+ readonly kind: "push";
427
+ };
428
+ readonly runtimeState: z.ZodObject<{
429
+ monitors: z.ZodArray<z.ZodObject<{
430
+ id: z.ZodString;
431
+ label: z.ZodString;
432
+ roi: z.ZodObject<{
433
+ kind: z.ZodLiteral<"rect">;
434
+ x: z.ZodNumber;
435
+ y: z.ZodNumber;
436
+ width: z.ZodNumber;
437
+ height: z.ZodNumber;
438
+ }, z.core.$strip>;
439
+ enabled: z.ZodBoolean;
440
+ triggerMode: z.ZodEnum<{
441
+ both: "both";
442
+ "on-motion": "on-motion";
443
+ periodic: "periodic";
444
+ }>;
445
+ checkIntervalSec: z.ZodOptional<z.ZodNumber>;
446
+ check: z.ZodDiscriminatedUnion<[z.ZodObject<{
447
+ mode: z.ZodLiteral<"similarity">;
448
+ threshold: z.ZodNumber;
449
+ hysteresisCount: z.ZodNumber;
450
+ }, z.core.$strip>, z.ZodObject<{
451
+ mode: z.ZodLiteral<"llm">;
452
+ prompt: z.ZodString;
453
+ profileId: z.ZodOptional<z.ZodString>;
454
+ hysteresisCount: z.ZodNumber;
455
+ }, z.core.$strip>], "mode">;
456
+ states: z.ZodArray<z.ZodObject<{
457
+ id: z.ZodString;
458
+ label: z.ZodString;
459
+ references: z.ZodArray<z.ZodObject<{
460
+ embedding: z.ZodArray<z.ZodNumber>;
461
+ modelId: z.ZodString;
462
+ condition: z.ZodString;
463
+ capturedAt: z.ZodNumber;
464
+ thumbnailMediaId: z.ZodOptional<z.ZodString>;
465
+ }, z.core.$strip>>;
466
+ textPrompts: z.ZodOptional<z.ZodArray<z.ZodString>>;
467
+ referenceCount: z.ZodNumber;
468
+ currentlyMatched: z.ZodBoolean;
469
+ }, z.core.$strip>>;
470
+ currentStateId: z.ZodNullable<z.ZodString>;
471
+ lastCheckedAt: z.ZodNullable<z.ZodNumber>;
472
+ lastConfidence: z.ZodNullable<z.ZodNumber>;
473
+ currentCondition: z.ZodNullable<z.ZodString>;
474
+ availability: z.ZodEnum<{
475
+ ok: "ok";
476
+ unavailable: "unavailable";
477
+ }>;
478
+ unavailableReason: z.ZodNullable<z.ZodString>;
479
+ }, z.core.$strip>>;
480
+ lastFetchedAt: z.ZodNumber;
481
+ }, z.core.$strip>;
482
+ };
483
+ export type ISceneMonitorProvider = InferNativeProvider<typeof sceneMonitorCapability>;
@@ -407,10 +407,43 @@ export declare enum EventCategory {
407
407
  EnrichmentEmbeddingStored = "enrichment.embedding.stored",
408
408
  EnrichmentSceneStateChanged = "enrichment.scene.state-changed",
409
409
  EnrichmentActivitySummary = "enrichment.activity.summary",
410
+ /**
411
+ * Unified track-lifecycle event: ONE category carrying `phase:
412
+ * 'start' | 'update' | 'end'` with a rich, typed
413
+ * `PipelineAnalyticsTrackLifecyclePayload`. Supersedes the thin
414
+ * `PipelineAnalyticsTrackStarted` / `PipelineAnalyticsTrackEnded`
415
+ * pair — a consumer subscribes once and branches on `phase`.
416
+ */
417
+ PipelineAnalyticsTrackLifecycle = "pipeline-analytics.track-lifecycle",
418
+ /**
419
+ * @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
420
+ * (`phase:'start'`). Kept as a soft alias — no known subscribers.
421
+ */
410
422
  PipelineAnalyticsTrackStarted = "pipeline-analytics.track-started",
423
+ /**
424
+ * @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
425
+ * (`phase:'end'`). Kept as a soft alias — no known subscribers.
426
+ */
411
427
  PipelineAnalyticsTrackEnded = "pipeline-analytics.track-ended",
412
428
  PipelineAnalyticsDetectionEvent = "pipeline-analytics.detection-event",
413
429
  PipelineAnalyticsFrameTracked = "pipeline-analytics.frame-tracked",
430
+ /**
431
+ * Fired by `addon-post-analysis` whenever a gallery face row changes:
432
+ * `kind:'buffered'` a new detected face was persisted, `'assigned'` /
433
+ * `'unassigned'` its identity link changed, `'deleted'` the row was
434
+ * removed. Telemetry semantics (D8): a lost event only delays a refresh,
435
+ * never a correctness issue. Payload `PipelineAnalyticsFaceGalleryChangedPayload`.
436
+ */
437
+ PipelineAnalyticsFaceGalleryChanged = "pipeline-analytics.face-gallery-changed",
438
+ /**
439
+ * Fired by `addon-post-analysis` whenever a gallery plate row changes:
440
+ * `kind:'buffered'` a new read was persisted (`PlateRecognizer.onTrackEnd`),
441
+ * `'assigned'` / `'unassigned'` its vehicle link changed
442
+ * (`PlateGalleryProvider`), `'deleted'` the row was removed. Telemetry
443
+ * semantics (D8): a lost event only delays a refresh, never a correctness
444
+ * issue. Payload `PipelineAnalyticsPlateGalleryChangedPayload`.
445
+ */
446
+ PipelineAnalyticsPlateGalleryChanged = "pipeline-analytics.plate-gallery-changed",
414
447
  FrigateLiveEvent = "frigate.live-event",
415
448
  CameraStreamsProfileSlotsChanged = "camera-streams.onProfileSlotsChanged",
416
449
  /**