@camstack/types 1.1.48 → 1.1.50

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.
@@ -12,6 +12,7 @@ import { DeviceType } from '../device/device-type.js';
12
12
  */
13
13
  export declare const ZoneRuleStageEnum: z.ZodEnum<{
14
14
  motion: "motion";
15
+ package: "package";
15
16
  detection: "detection";
16
17
  }>;
17
18
  export type ZoneRuleStage = z.infer<typeof ZoneRuleStageEnum>;
@@ -44,6 +45,7 @@ export declare const zoneRulesCapability: {
44
45
  deviceId: z.ZodNumber;
45
46
  stage: z.ZodEnum<{
46
47
  motion: "motion";
48
+ package: "package";
47
49
  detection: "detection";
48
50
  }>;
49
51
  }, z.core.$strip>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -68,6 +70,7 @@ export declare const zoneRulesCapability: {
68
70
  deviceId: z.ZodNumber;
69
71
  stage: z.ZodEnum<{
70
72
  motion: "motion";
73
+ package: "package";
71
74
  detection: "detection";
72
75
  }>;
73
76
  rules: z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -87,12 +90,20 @@ export declare const zoneRulesCapability: {
87
90
  }, z.core.$strip>, z.ZodVoid, "mutation">;
88
91
  };
89
92
  /**
90
- * Runtime-state slice — both stages mirrored together so consumers
93
+ * Runtime-state slice — every stage mirrored together so consumers
91
94
  * see one reactive handle (`device.state.zoneRules.value`) instead
92
- * of two. Bulk-replace mutations on either stage write the full
93
- * `{motion, detection}` shape, so subscribers always get the
95
+ * of one per stage. Bulk-replace mutations on any stage write the full
96
+ * `{motion, detection, package}` shape, so subscribers always get the
94
97
  * complete current set. Consumers that only care about one stage
95
98
  * just read the matching property.
99
+ *
100
+ * `package` backs the package-drop detector — a package zone is a
101
+ * `ZoneRule` on the `'package'` stage referencing drawn polygons
102
+ * (see docs/superpowers/specs/2026-07-17-package-zones-design.md §3.1).
103
+ * The orchestrator provider writes this stage as a first-class slice
104
+ * (Phase 4): every mutation mirrors the full `{motion, detection,
105
+ * package}` shape, so consumers read the current package rules directly
106
+ * off `device.state.zoneRules.value.package`.
96
107
  */
97
108
  readonly runtimeState: z.ZodObject<{
98
109
  motion: z.ZodReadonly<z.ZodArray<z.ZodObject<{
@@ -123,6 +134,20 @@ export declare const zoneRulesCapability: {
123
134
  preferMask: z.ZodOptional<z.ZodBoolean>;
124
135
  enabled: z.ZodDefault<z.ZodBoolean>;
125
136
  }, z.core.$strip>>>;
137
+ package: z.ZodReadonly<z.ZodArray<z.ZodObject<{
138
+ id: z.ZodString;
139
+ name: z.ZodOptional<z.ZodString>;
140
+ zoneIds: z.ZodReadonly<z.ZodArray<z.ZodString>>;
141
+ mode: z.ZodEnum<{
142
+ include: "include";
143
+ exclude: "exclude";
144
+ }>;
145
+ classFilter: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
146
+ overlapThreshold: z.ZodOptional<z.ZodNumber>;
147
+ bboxInclusionPct: z.ZodOptional<z.ZodNumber>;
148
+ preferMask: z.ZodOptional<z.ZodBoolean>;
149
+ enabled: z.ZodDefault<z.ZodBoolean>;
150
+ }, z.core.$strip>>>;
126
151
  }, z.core.$strip>;
127
152
  };
128
153
  export type IZoneRulesProvider = InferProvider<typeof zoneRulesCapability>;
@@ -150,6 +150,11 @@ export declare enum EventCategory {
150
150
  /** Runner-sampled scrub thumbnail (~1/5 s/camera). Telemetry (D8): a lost
151
151
  * thumb is a scrub gap the recorder's keyframe backfill covers. */
152
152
  RecordingThumbSampled = "recording.thumb-sampled",
153
+ /** Export render progress (0–100). Telemetry (D8): a lost tick is a stale
154
+ * progress bar the client reconciles via `recordingExport.getExport`. */
155
+ RecordingExportProgress = "recording.export.progress",
156
+ RecordingExportCompleted = "recording.export.completed",
157
+ RecordingExportFailed = "recording.export.failed",
153
158
  DetectionEvent = "detection.event",
154
159
  SessionTrackNew = "session.track.new",
155
160
  SessionTrackExpired = "session.track.expired",
@@ -438,6 +443,25 @@ export declare enum EventCategory {
438
443
  * `{ deviceId, entryId, className, phase:'appeared'|'departed', timestamp }`.
439
444
  */
440
445
  PipelineAnalyticsStationaryChanged = "pipeline-analytics.stationary-changed",
446
+ /**
447
+ * Fired by `addon-post-analysis` when a package-drop is confirmed inside
448
+ * a package zone — a newly-appeared stationary object of a package class
449
+ * that cleared the class / zone / dwell / size gates. Payload:
450
+ * `PipelineAnalyticsPackageDeliveredPayload` carrying `{ deviceId,
451
+ * entryId, className, zoneIds, keyFrameMediaKey?, bbox, timestamp }`.
452
+ * Telemetry (D8): the durable record is the `package-events` store row;
453
+ * this bus topic drives notifier rules + live UI. See
454
+ * docs/superpowers/specs/2026-07-17-package-zones-design.md §5.1.
455
+ */
456
+ PipelineAnalyticsPackageDelivered = "pipeline-analytics.package-delivered",
457
+ /**
458
+ * Fired by `addon-post-analysis` when a previously-delivered package
459
+ * leaves its zone (the stationary entry departed — moved or swept).
460
+ * Payload: `PipelineAnalyticsPackagePickedUpPayload` carrying
461
+ * `{ deviceId, entryId, deliveredEventId, className, timestamp }`.
462
+ * Telemetry (D8). See package-zones-design §5.2.
463
+ */
464
+ PipelineAnalyticsPackagePickedUp = "pipeline-analytics.package-picked-up",
441
465
  /**
442
466
  * Fired by `addon-post-analysis` whenever a gallery face row changes:
443
467
  * `kind:'buffered'` a new detected face was persisted, `'assigned'` /
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-AkBNxg_X.js");
2
+ const require_event_category = require("./event-category-CGj9fI4L.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-H4AVePnn.mjs";
1
+ import { t as EventCategory } from "./event-category-D4HJq7Mw.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -151,6 +151,11 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
151
151
  /** Runner-sampled scrub thumbnail (~1/5 s/camera). Telemetry (D8): a lost
152
152
  * thumb is a scrub gap the recorder's keyframe backfill covers. */
153
153
  EventCategory["RecordingThumbSampled"] = "recording.thumb-sampled";
154
+ /** Export render progress (0–100). Telemetry (D8): a lost tick is a stale
155
+ * progress bar the client reconciles via `recordingExport.getExport`. */
156
+ EventCategory["RecordingExportProgress"] = "recording.export.progress";
157
+ EventCategory["RecordingExportCompleted"] = "recording.export.completed";
158
+ EventCategory["RecordingExportFailed"] = "recording.export.failed";
154
159
  EventCategory["DetectionEvent"] = "detection.event";
155
160
  EventCategory["SessionTrackNew"] = "session.track.new";
156
161
  EventCategory["SessionTrackExpired"] = "session.track.expired";
@@ -440,6 +445,25 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
440
445
  */
441
446
  EventCategory["PipelineAnalyticsStationaryChanged"] = "pipeline-analytics.stationary-changed";
442
447
  /**
448
+ * Fired by `addon-post-analysis` when a package-drop is confirmed inside
449
+ * a package zone — a newly-appeared stationary object of a package class
450
+ * that cleared the class / zone / dwell / size gates. Payload:
451
+ * `PipelineAnalyticsPackageDeliveredPayload` carrying `{ deviceId,
452
+ * entryId, className, zoneIds, keyFrameMediaKey?, bbox, timestamp }`.
453
+ * Telemetry (D8): the durable record is the `package-events` store row;
454
+ * this bus topic drives notifier rules + live UI. See
455
+ * docs/superpowers/specs/2026-07-17-package-zones-design.md §5.1.
456
+ */
457
+ EventCategory["PipelineAnalyticsPackageDelivered"] = "pipeline-analytics.package-delivered";
458
+ /**
459
+ * Fired by `addon-post-analysis` when a previously-delivered package
460
+ * leaves its zone (the stationary entry departed — moved or swept).
461
+ * Payload: `PipelineAnalyticsPackagePickedUpPayload` carrying
462
+ * `{ deviceId, entryId, deliveredEventId, className, timestamp }`.
463
+ * Telemetry (D8). See package-zones-design §5.2.
464
+ */
465
+ EventCategory["PipelineAnalyticsPackagePickedUp"] = "pipeline-analytics.package-picked-up";
466
+ /**
443
467
  * Fired by `addon-post-analysis` whenever a gallery face row changes:
444
468
  * `kind:'buffered'` a new detected face was persisted, `'assigned'` /
445
469
  * `'unassigned'` its identity link changed, `'deleted'` the row was
@@ -151,6 +151,11 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
151
151
  /** Runner-sampled scrub thumbnail (~1/5 s/camera). Telemetry (D8): a lost
152
152
  * thumb is a scrub gap the recorder's keyframe backfill covers. */
153
153
  EventCategory["RecordingThumbSampled"] = "recording.thumb-sampled";
154
+ /** Export render progress (0–100). Telemetry (D8): a lost tick is a stale
155
+ * progress bar the client reconciles via `recordingExport.getExport`. */
156
+ EventCategory["RecordingExportProgress"] = "recording.export.progress";
157
+ EventCategory["RecordingExportCompleted"] = "recording.export.completed";
158
+ EventCategory["RecordingExportFailed"] = "recording.export.failed";
154
159
  EventCategory["DetectionEvent"] = "detection.event";
155
160
  EventCategory["SessionTrackNew"] = "session.track.new";
156
161
  EventCategory["SessionTrackExpired"] = "session.track.expired";
@@ -440,6 +445,25 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
440
445
  */
441
446
  EventCategory["PipelineAnalyticsStationaryChanged"] = "pipeline-analytics.stationary-changed";
442
447
  /**
448
+ * Fired by `addon-post-analysis` when a package-drop is confirmed inside
449
+ * a package zone — a newly-appeared stationary object of a package class
450
+ * that cleared the class / zone / dwell / size gates. Payload:
451
+ * `PipelineAnalyticsPackageDeliveredPayload` carrying `{ deviceId,
452
+ * entryId, className, zoneIds, keyFrameMediaKey?, bbox, timestamp }`.
453
+ * Telemetry (D8): the durable record is the `package-events` store row;
454
+ * this bus topic drives notifier rules + live UI. See
455
+ * docs/superpowers/specs/2026-07-17-package-zones-design.md §5.1.
456
+ */
457
+ EventCategory["PipelineAnalyticsPackageDelivered"] = "pipeline-analytics.package-delivered";
458
+ /**
459
+ * Fired by `addon-post-analysis` when a previously-delivered package
460
+ * leaves its zone (the stationary entry departed — moved or swept).
461
+ * Payload: `PipelineAnalyticsPackagePickedUpPayload` carrying
462
+ * `{ deviceId, entryId, deliveredEventId, className, timestamp }`.
463
+ * Telemetry (D8). See package-zones-design §5.2.
464
+ */
465
+ EventCategory["PipelineAnalyticsPackagePickedUp"] = "pipeline-analytics.package-picked-up";
466
+ /**
443
467
  * Fired by `addon-post-analysis` whenever a gallery face row changes:
444
468
  * `kind:'buffered'` a new detected face was persisted, `'assigned'` /
445
469
  * `'unassigned'` its identity link changed, `'deleted'` the row was