@camstack/types 1.2.272 → 1.2.274

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 CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-DYGSsCgK.js");
2
+ const require_sleep = require("./sleep-WOeeZ4FU.js");
3
3
  const require_event_category = require("./event-category-MbnB-6AN.js");
4
4
  const require_err_msg = require("./err-msg-Dx2Kor0g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
@@ -16,7 +16,7 @@ const require_err_msg = require("./err-msg-Dx2Kor0g.js");
16
16
  * Plain data, zero Zod: a forked runner must not import the schema barrel
17
17
  * (~144MB RSS per runner — D28).
18
18
  *
19
- * Coverage: 24 caps, 59 methods with defaults.
19
+ * Coverage: 24 caps, 57 methods with defaults.
20
20
  */
21
21
  var CAP_INPUT_DEFAULTS = Object.freeze({
22
22
  "addons": { "getLogs": { "limit": 100 } },
@@ -146,9 +146,7 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
146
146
  "getMotionEvents": { "limit": 1e3 },
147
147
  "getObjectEvents": { "limit": 1e3 },
148
148
  "getSensorEvents": { "limit": 1e3 },
149
- "listRecentSummaries": { "limit": 100 },
150
149
  "listRecentTracks": { "limit": 200 },
151
- "listSummaries": { "limit": 50 },
152
150
  "reclaimDebugMedia": { "mode": "report" },
153
151
  "searchObjectEvents": { "limit": 50 }
154
152
  },
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { At as normalizeAddonInitResult, B as nodePin, Ct as PEER_BYTES_STALL_MS, D as adminUiCapability, Et as DATAPLANE_SECRET_HEADER, N as expandCapMethods, Ot as DisposerChain, Pt as emitReadiness, S as DEVICE_CHILDREN_BATCH_MAX, St as PEER_BYTES_MAX_OUTSTANDING, T as describeCustomActions, U as ReadinessRegistry, V as readNodePin, W as ReadinessTimeoutError, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, kt as BaseAddon, m as createDeviceProxy, p as isDeviceScopedCap, q as scopeKey, s as asString, t as sleep, u as parseJsonUnknown, wt as PEER_BYTES_TICKET_TTL_MS, x as viewerUiCapability, xt as PEER_BYTES_CHUNK_BYTES } from "./sleep-DlrgY4Qb.mjs";
1
+ import { At as normalizeAddonInitResult, B as nodePin, Ct as PEER_BYTES_STALL_MS, D as adminUiCapability, Et as DATAPLANE_SECRET_HEADER, N as expandCapMethods, Ot as DisposerChain, Pt as emitReadiness, S as DEVICE_CHILDREN_BATCH_MAX, St as PEER_BYTES_MAX_OUTSTANDING, T as describeCustomActions, U as ReadinessRegistry, V as readNodePin, W as ReadinessTimeoutError, a as asJsonObject, b as deviceOpsCapability, d as BOOT_RECOVERY_BACKOFF_MS, f as DEVICE_SCOPED_CAPS, h as createEventBusSliceSource, kt as BaseAddon, m as createDeviceProxy, p as isDeviceScopedCap, q as scopeKey, s as asString, t as sleep, u as parseJsonUnknown, wt as PEER_BYTES_TICKET_TTL_MS, x as viewerUiCapability, xt as PEER_BYTES_CHUNK_BYTES } from "./sleep-C-v96WpE.mjs";
2
2
  import { t as EventCategory } from "./event-category-C5xZWqz6.mjs";
3
3
  import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
@@ -15,7 +15,7 @@ import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
15
15
  * Plain data, zero Zod: a forked runner must not import the schema barrel
16
16
  * (~144MB RSS per runner — D28).
17
17
  *
18
- * Coverage: 24 caps, 59 methods with defaults.
18
+ * Coverage: 24 caps, 57 methods with defaults.
19
19
  */
20
20
  var CAP_INPUT_DEFAULTS = Object.freeze({
21
21
  "addons": { "getLogs": { "limit": 100 } },
@@ -145,9 +145,7 @@ var CAP_INPUT_DEFAULTS = Object.freeze({
145
145
  "getMotionEvents": { "limit": 1e3 },
146
146
  "getObjectEvents": { "limit": 1e3 },
147
147
  "getSensorEvents": { "limit": 1e3 },
148
- "listRecentSummaries": { "limit": 100 },
149
148
  "listRecentTracks": { "limit": 200 },
150
- "listSummaries": { "limit": 50 },
151
149
  "reclaimDebugMedia": { "mode": "report" },
152
150
  "searchObjectEvents": { "limit": 50 }
153
151
  },
@@ -85,7 +85,7 @@ export { NetworkAccessStatusSchema, NetworkEndpointSchema, networkAccessCapabili
85
85
  export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, type NotificationActionIcon, NotificationActionIconSchema, NotificationActionSchema, type NotificationFormat, NotificationFormatSchema, NotificationSchema, notificationOutputCapability, type RenderedAs, RenderedAsSchema, type SendResult, SendResultSchema, type Target, type TargetKind, type TargetKindCaps, TargetKindCapsSchema, type TargetKindLevel, TargetKindLevelSchema, TargetKindSchema, TargetSchema, type TestResult, TestResultSchema, } from './notification-output.cap.js';
86
86
  export { type INotificationRulesProvider, NC_ALARM_SYSTEM_EVENT_KINDS, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CLIP_POST_ROLL_DEFAULT_SEC, NC_CLIP_PRE_ROLL_DEFAULT_SEC, NC_CLIP_RETENTION_MAX_SEC, NC_CONDITION_CATALOG, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_TANK_SYSTEM_EVENT_KINDS, consumableLowPercentOf, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_DEFAULT_SNOOZE_MINUTES, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_SNOOZE_MAX_MINUTES, type NcAlarmConfig, NcAlarmConfigSchema, type NcAlarmModeCoverage, NcAlarmModeCoverageSchema, type NcAlarmSettings, type NcAlarmSettingsPatch, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, type NcAlarmSkippedDevice, NcAlarmSkippedDeviceSchema, type NcAlarmSkipReason, NcAlarmSkipReasonSchema, type NcAudioCondition, NcAudioConditionSchema, type NcClipRetentionAsk, NcClipRetentionAskSchema, type NcClipRetentionPlan, NcClipRetentionPlanSchema, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcConfirm, type NcConfirmExpect, NcConfirmExpectSchema, NcConfirmSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcDeviceStateCondition, NcDeviceStateConditionSchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcLinkedCameraMode, NcLinkedCameraModeSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleAction, NcRuleActionSchema, type NcRuleActionSequence, NcRuleActionSequenceSchema, type NcRuleActions, NcRuleActionsSchema, type NcRuleClearableKey, NcRuleClearableKeySchema, type NcRuleInput, NcRuleInputSchema, type NcRuleLastRun, NcRuleLastRunSchema, type NcRuleLastRuns, NcRuleLastRunsSchema, type NcRuleNotificationButton, NcRuleNotificationButtonSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcRuleUpdateInput, NcRuleUpdateInputSchema, NC_RULE_CLEARABLE_KEYS, NcRuleKindSchema, type NcTemplateVarKind, NcTemplateVarKindSchema, type NcSceneCondition, NcSceneConditionSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSensorTransition, NcSensorTransitionSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcStateSummaryPreview, type NcStateSummaryPreviewSection, NcStateSummaryPreviewSchema, NcStateSummaryPreviewSectionSchema, type NcSystemEventCondition, NcSystemEventConditionSchema, type NcSystemEventDelivery, type NcSystemEventDeliveryMode, NcSystemEventDeliveryModeSchema, NcSystemEventDeliverySchema, type NcSystemEventKind, NcSystemEventKindSchema, type NcTemplateFamily, NcTemplateFamilySchema, type NcTemplateField, NcTemplateFieldSchema, type NcTemplatePreview, NcTemplatePreviewSchema, type NcTemplatePreviewInput, NcTemplatePreviewInputSchema, type NcTemplateVarContext, NcTemplateVarContextSchema, type NcTemplateVarDescriptor, NcTemplateVarDescriptorSchema, type NcTemplateVarGroup, NcTemplateVarGroupSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
87
87
  export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
88
- export { AnalyticsLtsSeriesSchema, type AudioEvent, type AudioEventDraft, AudioEventSchema, type DetectionSource, DetectionSourceSchema, EVENT_DENSITY_BATCH_MAX, type EventDensityBucket, EventDensityBucketSchema, type EventDensityForDevice, EventDensityForDeviceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventMediaKindBreakdown, type EventMediaKindFootprint, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type KeyEventsForDevice, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, LTS_SCOPE_CLASS_SEPARATOR, type LtsBucket, LtsBucketSchema, MAX_TRACK_DEBUG_NOTE_LEN, type MediaFile, type MediaFileBytes, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileKindEnum, type MediaFileRef, MediaFileRefSchema, MediaFileSchema, type MotionEvent, type MotionEventDraft, MotionEventSchema, type ObjectEvent, type ObjectEventDraft, ObjectEventSchema, occupancyScope, parseOccupancyScope, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type RebuildObjectEmbeddingsRefusal, RebuildObjectEmbeddingsRefusalSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, SUMMARIES_DEFAULT_LIMIT, SUMMARIES_MAX_LIMIT, type SummariesPage, type Summary, type SummaryDetail, type SummaryListItem, SummarySchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
88
+ export { AnalyticsLtsSeriesSchema, type AudioEvent, type AudioEventDraft, AudioEventSchema, type DetectionSource, DetectionSourceSchema, EVENT_DENSITY_BATCH_MAX, type EventDensityBucket, EventDensityBucketSchema, type EventDensityForDevice, EventDensityForDeviceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventMediaKindBreakdown, type EventMediaKindFootprint, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type KeyEventsForDevice, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, LTS_SCOPE_CLASS_SEPARATOR, type LtsBucket, LtsBucketSchema, MAX_TRACK_DEBUG_NOTE_LEN, type MediaFile, type MediaFileBytes, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileKindEnum, type MediaFileRef, MediaFileRefSchema, MediaFileSchema, type MotionEvent, type MotionEventDraft, MotionEventSchema, type ObjectEvent, type ObjectEventDraft, ObjectEventSchema, occupancyScope, parseOccupancyScope, pipelineAnalyticsCapability, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type RebuildObjectEmbeddingsRefusal, RebuildObjectEmbeddingsRefusalSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
89
89
  export type { EffectiveTuning, EffectiveTuningInput, NativeCropRef, PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
90
90
  export { EffectiveTuningSchema, ModelSubstitutionSchema, NativeCropRefSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
91
91
  export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, CameraStatusDegradation, CameraStatusDegradationReason, CameraStatusStage, ClusterModelChoice, ClusterModelChoiceUnreadableReason, DiskReconcileJob, InferenceDeviceExclusionReason, IngestOwner, NodeInferenceDevice, NodeInferenceDevices, } from './pipeline-orchestrator.cap.js';
@@ -663,6 +663,7 @@ declare const ObjectEventSchema: z.ZodObject<{
663
663
  mediaId: z.ZodOptional<z.ZodNumber>;
664
664
  keyFrameMediaId: z.ZodOptional<z.ZodNumber>;
665
665
  mediaUrl: z.ZodOptional<z.ZodString>;
666
+ observedAt: z.ZodOptional<z.ZodNumber>;
666
667
  importance: z.ZodOptional<z.ZodNumber>;
667
668
  label: z.ZodOptional<z.ZodString>;
668
669
  labelScore: z.ZodOptional<z.ZodNumber>;
@@ -1273,116 +1274,6 @@ declare const RecentTracksQueryInput: z.ZodObject<{
1273
1274
  }>>>;
1274
1275
  }, z.core.$strip>;
1275
1276
  export type RecentTracksQuery = z.infer<typeof RecentTracksQueryInput>;
1276
- /**
1277
- * A Summary (D359): the per-camera session envelope that references tracks.
1278
- * `groupShotMediaId` is the media ROW id of its group shot (`ownerKind:
1279
- * 'summary'`, served by the event-media plane at `/m/<id>`), null until the
1280
- * first frame with a member visible has been materialised (D482 — it was the
1281
- * row's composite key, which embedded the owner and could name another table's
1282
- * row once event ids became per-table rowids).
1283
- */
1284
- export declare const SummarySchema: z.ZodObject<{
1285
- id: z.ZodString;
1286
- deviceId: z.ZodNumber;
1287
- openedAt: z.ZodNumber;
1288
- lastActiveAt: z.ZodNumber;
1289
- sealedAt: z.ZodNullable<z.ZodNumber>;
1290
- memberCount: z.ZodNumber;
1291
- groupShotMediaId: z.ZodNullable<z.ZodNumber>;
1292
- }, z.core.$strip>;
1293
- export type Summary = z.infer<typeof SummarySchema>;
1294
- export declare const SUMMARIES_MAX_LIMIT = 200;
1295
- export declare const SUMMARIES_DEFAULT_LIMIT = 50;
1296
- /**
1297
- * One member of a group, as a reader needs it.
1298
- *
1299
- * The class and the role travel WITH the id because every consumer that shows
1300
- * a group has to say what it was made of — "two people and a dog" — and asking
1301
- * `getTrack` per member to find that out turns one card into `memberCount`
1302
- * round trips. The member row already holds both (they are written at the
1303
- * join), so this costs the reader nothing.
1304
- */
1305
- declare const SummaryMemberSchema: z.ZodObject<{
1306
- trackId: z.ZodString;
1307
- className: z.ZodNullable<z.ZodString>;
1308
- role: z.ZodNullable<z.ZodEnum<{
1309
- primary: "primary";
1310
- sibling: "sibling";
1311
- child: "child";
1312
- }>>;
1313
- joinedAt: z.ZodNumber;
1314
- label: z.ZodOptional<z.ZodString>;
1315
- subLabel: z.ZodOptional<z.ZodString>;
1316
- }, z.core.$strip>;
1317
- export type SummaryMemberOut = z.infer<typeof SummaryMemberSchema>;
1318
- declare const SummaryDetailSchema: z.ZodObject<{
1319
- summary: z.ZodObject<{
1320
- id: z.ZodString;
1321
- deviceId: z.ZodNumber;
1322
- openedAt: z.ZodNumber;
1323
- lastActiveAt: z.ZodNumber;
1324
- sealedAt: z.ZodNullable<z.ZodNumber>;
1325
- memberCount: z.ZodNumber;
1326
- groupShotMediaId: z.ZodNullable<z.ZodNumber>;
1327
- }, z.core.$strip>;
1328
- members: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1329
- trackId: z.ZodString;
1330
- className: z.ZodNullable<z.ZodString>;
1331
- role: z.ZodNullable<z.ZodEnum<{
1332
- primary: "primary";
1333
- sibling: "sibling";
1334
- child: "child";
1335
- }>>;
1336
- joinedAt: z.ZodNumber;
1337
- label: z.ZodOptional<z.ZodString>;
1338
- subLabel: z.ZodOptional<z.ZodString>;
1339
- }, z.core.$strip>>>;
1340
- }, z.core.$strip>;
1341
- /**
1342
- * What a LIST of groups carries: the envelope plus what it is MADE OF.
1343
- *
1344
- * Coarse on purpose — the operator's rule is "only the rough data on the list,
1345
- * we extend when we notice we need more". Enough to draw the card ("two people
1346
- * and a dog") and no more. The MEMBERS, their names and the per-member links
1347
- * are on {@link getSummary}: shipping every member of every group so a client
1348
- * can count them turns a page of two hundred groups into a thousand records to
1349
- * draw two hundred badges.
1350
- */
1351
- declare const SummaryListItemSchema: z.ZodObject<{
1352
- summary: z.ZodObject<{
1353
- id: z.ZodString;
1354
- deviceId: z.ZodNumber;
1355
- openedAt: z.ZodNumber;
1356
- lastActiveAt: z.ZodNumber;
1357
- sealedAt: z.ZodNullable<z.ZodNumber>;
1358
- memberCount: z.ZodNumber;
1359
- groupShotMediaId: z.ZodNullable<z.ZodNumber>;
1360
- }, z.core.$strip>;
1361
- classes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1362
- className: z.ZodNullable<z.ZodString>;
1363
- count: z.ZodNumber;
1364
- }, z.core.$strip>>>;
1365
- }, z.core.$strip>;
1366
- export type SummaryListItem = z.infer<typeof SummaryListItemSchema>;
1367
- declare const SummariesPageSchema: z.ZodObject<{
1368
- summaries: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1369
- summary: z.ZodObject<{
1370
- id: z.ZodString;
1371
- deviceId: z.ZodNumber;
1372
- openedAt: z.ZodNumber;
1373
- lastActiveAt: z.ZodNumber;
1374
- sealedAt: z.ZodNullable<z.ZodNumber>;
1375
- memberCount: z.ZodNumber;
1376
- groupShotMediaId: z.ZodNullable<z.ZodNumber>;
1377
- }, z.core.$strip>;
1378
- classes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1379
- className: z.ZodNullable<z.ZodString>;
1380
- count: z.ZodNumber;
1381
- }, z.core.$strip>>>;
1382
- }, z.core.$strip>>>;
1383
- }, z.core.$strip>;
1384
- export type SummariesPage = z.infer<typeof SummariesPageSchema>;
1385
- export type SummaryDetail = z.infer<typeof SummaryDetailSchema>;
1386
1277
  declare const RecentTracksPageSchema: z.ZodObject<{
1387
1278
  tracks: z.ZodReadonly<z.ZodArray<z.ZodObject<{
1388
1279
  retrainStatus: z.ZodOptional<z.ZodEnum<{
@@ -1689,6 +1580,7 @@ export declare const ScoredObjectEventSchema: z.ZodObject<{
1689
1580
  mediaId: z.ZodOptional<z.ZodNumber>;
1690
1581
  keyFrameMediaId: z.ZodOptional<z.ZodNumber>;
1691
1582
  mediaUrl: z.ZodOptional<z.ZodString>;
1583
+ observedAt: z.ZodOptional<z.ZodNumber>;
1692
1584
  importance: z.ZodOptional<z.ZodNumber>;
1693
1585
  label: z.ZodOptional<z.ZodString>;
1694
1586
  labelScore: z.ZodOptional<z.ZodNumber>;
@@ -2446,85 +2338,6 @@ export declare const pipelineAnalyticsCapability: {
2446
2338
  }, z.core.$strip>>>;
2447
2339
  nextCursor: z.ZodNullable<z.ZodString>;
2448
2340
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
2449
- /** Newest first by `openedAt`, for a camera set, inside an optional window. */
2450
- readonly listSummaries: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2451
- deviceIds: z.ZodArray<z.ZodNumber>;
2452
- since: z.ZodOptional<z.ZodNumber>;
2453
- until: z.ZodOptional<z.ZodNumber>;
2454
- limit: z.ZodDefault<z.ZodNumber>;
2455
- classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
2456
- }, z.core.$strip>, z.ZodObject<{
2457
- summaries: z.ZodReadonly<z.ZodArray<z.ZodObject<{
2458
- summary: z.ZodObject<{
2459
- id: z.ZodString;
2460
- deviceId: z.ZodNumber;
2461
- openedAt: z.ZodNumber;
2462
- lastActiveAt: z.ZodNumber;
2463
- sealedAt: z.ZodNullable<z.ZodNumber>;
2464
- memberCount: z.ZodNumber;
2465
- groupShotMediaId: z.ZodNullable<z.ZodNumber>;
2466
- }, z.core.$strip>;
2467
- classes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
2468
- className: z.ZodNullable<z.ZodString>;
2469
- count: z.ZodNumber;
2470
- }, z.core.$strip>>>;
2471
- }, z.core.$strip>>>;
2472
- }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
2473
- /**
2474
- * The PAGED feed — the reel and the Events gallery. Same cursor contract as
2475
- * {@link listRecentTracks}, so one screen cannot hold two ideas of newest.
2476
- */
2477
- readonly listRecentSummaries: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2478
- deviceIds: z.ZodArray<z.ZodNumber>;
2479
- since: z.ZodOptional<z.ZodNumber>;
2480
- until: z.ZodOptional<z.ZodNumber>;
2481
- limit: z.ZodDefault<z.ZodNumber>;
2482
- cursor: z.ZodOptional<z.ZodString>;
2483
- classes: z.ZodOptional<z.ZodArray<z.ZodString>>;
2484
- }, z.core.$strip>, z.ZodObject<{
2485
- summaries: z.ZodReadonly<z.ZodArray<z.ZodObject<{
2486
- summary: z.ZodObject<{
2487
- id: z.ZodString;
2488
- deviceId: z.ZodNumber;
2489
- openedAt: z.ZodNumber;
2490
- lastActiveAt: z.ZodNumber;
2491
- sealedAt: z.ZodNullable<z.ZodNumber>;
2492
- memberCount: z.ZodNumber;
2493
- groupShotMediaId: z.ZodNullable<z.ZodNumber>;
2494
- }, z.core.$strip>;
2495
- classes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
2496
- className: z.ZodNullable<z.ZodString>;
2497
- count: z.ZodNumber;
2498
- }, z.core.$strip>>>;
2499
- }, z.core.$strip>>>;
2500
- nextCursor: z.ZodNullable<z.ZodString>;
2501
- }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
2502
- /** One summary with its member track ids; `null` for an id nobody wrote. */
2503
- readonly getSummary: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2504
- id: z.ZodString;
2505
- }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
2506
- summary: z.ZodObject<{
2507
- id: z.ZodString;
2508
- deviceId: z.ZodNumber;
2509
- openedAt: z.ZodNumber;
2510
- lastActiveAt: z.ZodNumber;
2511
- sealedAt: z.ZodNullable<z.ZodNumber>;
2512
- memberCount: z.ZodNumber;
2513
- groupShotMediaId: z.ZodNullable<z.ZodNumber>;
2514
- }, z.core.$strip>;
2515
- members: z.ZodReadonly<z.ZodArray<z.ZodObject<{
2516
- trackId: z.ZodString;
2517
- className: z.ZodNullable<z.ZodString>;
2518
- role: z.ZodNullable<z.ZodEnum<{
2519
- primary: "primary";
2520
- sibling: "sibling";
2521
- child: "child";
2522
- }>>;
2523
- joinedAt: z.ZodNumber;
2524
- label: z.ZodOptional<z.ZodString>;
2525
- subLabel: z.ZodOptional<z.ZodString>;
2526
- }, z.core.$strip>>>;
2527
- }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
2528
2341
  readonly clearTracks: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
2529
2342
  deviceId: z.ZodNumber;
2530
2343
  }, z.core.$strip>, z.ZodVoid, "mutation">;
@@ -2610,6 +2423,7 @@ export declare const pipelineAnalyticsCapability: {
2610
2423
  mediaId: z.ZodOptional<z.ZodNumber>;
2611
2424
  keyFrameMediaId: z.ZodOptional<z.ZodNumber>;
2612
2425
  mediaUrl: z.ZodOptional<z.ZodString>;
2426
+ observedAt: z.ZodOptional<z.ZodNumber>;
2613
2427
  importance: z.ZodOptional<z.ZodNumber>;
2614
2428
  label: z.ZodOptional<z.ZodString>;
2615
2429
  labelScore: z.ZodOptional<z.ZodNumber>;
@@ -4367,6 +4181,7 @@ export declare const pipelineAnalyticsCapability: {
4367
4181
  mediaId: z.ZodOptional<z.ZodNumber>;
4368
4182
  keyFrameMediaId: z.ZodOptional<z.ZodNumber>;
4369
4183
  mediaUrl: z.ZodOptional<z.ZodString>;
4184
+ observedAt: z.ZodOptional<z.ZodNumber>;
4370
4185
  importance: z.ZodOptional<z.ZodNumber>;
4371
4186
  label: z.ZodOptional<z.ZodString>;
4372
4187
  labelScore: z.ZodOptional<z.ZodNumber>;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * The notification GIF's filter chain and argv — ONE definition for every
3
+ * process that derives a gif from a notification video.
4
+ *
5
+ * ## Why this lives in `@camstack/types`
6
+ *
7
+ * Two addons derive a notification gif from an mp4, and they may never import
8
+ * each other:
9
+ *
10
+ * - the stream broker (`addon-pipeline`), from the clip it just cut out of its
11
+ * own ring (`gif-from-mp4.ts`);
12
+ * - the notification centre (`addon-post-analysis`), from a clip cut out of
13
+ * the RECORDINGS when the moment is older than any ring holds
14
+ * ([D682](../../../../docs/decisions/adr-0682-a-pick-ups-footage-is-cut-around-the-pick-up.md)).
15
+ *
16
+ * Two copies of this chain would be two gifs of the same kind of moment that
17
+ * look different depending on how old the moment was — the class of defect
18
+ * D85/D91 already paid for once. So the chain is here, pure and dependency
19
+ * free, and each caller owns only its own process lifecycle.
20
+ *
21
+ * ## The palette was never the problem
22
+ *
23
+ * The `split` + `palettegen(stats_mode=diff)` + `paletteuse(bayer)` pair is
24
+ * right and stays. The measured cause of "the gif looks de-pixellated" was a
25
+ * 640×360 substream scaled DOWN to 480 px, upstream of the palette. The `split`
26
+ * form is a single READ of the input, not a lesser two-pass.
27
+ */
28
+ /**
29
+ * Format a frame rate for an ffmpeg filter argument.
30
+ *
31
+ * `12 / 4` must reach the filter as `3` and `15 / 4` as `3.75`, not as a float
32
+ * tail that `av_parse_video_rate` then has to guess at.
33
+ */
34
+ export declare function ffmpegRate(rate: number): string;
35
+ /**
36
+ * The factor the derive must apply ON TOP of the speed the mp4 already carries.
37
+ *
38
+ * The gif is derived from a muxed mp4, so if that mux already ran `setpts` at
39
+ * the caller's `speed`, applying the absolute gif rate again would compound
40
+ * them — a 4× gif beside a 2× video would come out at 8×. Discounting here is
41
+ * what keeps the gif rate ABSOLUTE against real time whatever the video does.
42
+ */
43
+ export declare function gifDeriveSpeed(gifSpeed: number, videoSpeed: number): number;
44
+ /** What shapes one gif derive. */
45
+ export interface GifDeriveShape {
46
+ readonly maxWidth: number;
47
+ /** The gif's PLAYBACK frame rate. */
48
+ readonly fps: number;
49
+ /** The rate applied by THIS derive, on top of what the mp4 carries. */
50
+ readonly speed: number;
51
+ }
52
+ /** The argv input: a streamable mp4 on stdin (the default) or a file path. */
53
+ export interface GifDeriveArgsInput extends GifDeriveShape {
54
+ /** `pipe:0` when absent. A file path for an mp4 that is not streamable. */
55
+ readonly input?: string;
56
+ }
57
+ /**
58
+ * The filter chain. Extracted so a test can assert the palette pair without
59
+ * spawning ffmpeg — an argv test cannot see quality, but it can see a filter
60
+ * that somebody deleted.
61
+ *
62
+ * `fps` BEFORE `setpts`: decimating an already sped-up timeline yields `speed`
63
+ * times the frames asked for, and a gif pays for every one. So the decimation
64
+ * runs at `fps / speed` in SOURCE time and `setpts` multiplies what survived.
65
+ * The trailing `fps` re-declares the rate, which is NOT redundant: `setpts`
66
+ * leaves the filter link advertising the sampled rate and the gif muxer
67
+ * believes the link — measured on 615 as a 3.01 s gif of ten frames.
68
+ */
69
+ export declare function gifFilterComplex(input: GifDeriveShape): string;
70
+ /** The full argv: mp4 in, gif on stdout. */
71
+ export declare function gifFromMp4Args(input: GifDeriveArgsInput): readonly string[];
@@ -5375,27 +5375,6 @@ export type AppRouter = TrpcCoreRouter<{
5375
5375
  output: z.infer<typeof pipelineAnalyticsCapability.methods.listRecentTracks.output>;
5376
5376
  meta: object;
5377
5377
  }>;
5378
- listSummaries: TRPCQueryProcedure<{
5379
- input: {
5380
- [x: string]: unknown;
5381
- } & z.input<typeof pipelineAnalyticsCapability.methods.listSummaries.input>;
5382
- output: z.infer<typeof pipelineAnalyticsCapability.methods.listSummaries.output>;
5383
- meta: object;
5384
- }>;
5385
- listRecentSummaries: TRPCQueryProcedure<{
5386
- input: {
5387
- [x: string]: unknown;
5388
- } & z.input<typeof pipelineAnalyticsCapability.methods.listRecentSummaries.input>;
5389
- output: z.infer<typeof pipelineAnalyticsCapability.methods.listRecentSummaries.output>;
5390
- meta: object;
5391
- }>;
5392
- getSummary: TRPCQueryProcedure<{
5393
- input: {
5394
- [x: string]: unknown;
5395
- } & z.input<typeof pipelineAnalyticsCapability.methods.getSummary.input>;
5396
- output: z.infer<typeof pipelineAnalyticsCapability.methods.getSummary.output>;
5397
- meta: object;
5398
- }>;
5399
5378
  clearTracks: TRPCMutationProcedure<{
5400
5379
  input: {
5401
5380
  [x: string]: unknown;
@@ -11,7 +11,7 @@
11
11
  * Plain data, zero Zod: a forked runner must not import the schema barrel
12
12
  * (~144MB RSS per runner — D28).
13
13
  *
14
- * Coverage: 24 caps, 59 methods with defaults.
14
+ * Coverage: 24 caps, 57 methods with defaults.
15
15
  */
16
16
  export declare const CAP_INPUT_DEFAULTS: Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, unknown>>>>>>;
17
17
  /**
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1192 method paths across 162 capabilities.
9
+ * Coverage: 1189 method paths across 162 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,7 +6,7 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 404 methods carry a device reference, of which
9
+ * Coverage: 402 methods carry a device reference, of which
10
10
  * 143 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
package/dist/index.d.ts CHANGED
@@ -16,6 +16,7 @@ export * from './camera/stream-pick.js';
16
16
  export * from './ffmpeg/encode-defaults.js';
17
17
  export * from './ffmpeg/fmp4-box-splitter.js';
18
18
  export * from './ffmpeg/hwaccel.js';
19
+ export * from './ffmpeg/gif-derive.js';
19
20
  export * from './ffmpeg/invocation.js';
20
21
  export * from './ffmpeg/sharing-key.js';
21
22
  export * from './health/wiring-health.js';