@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 +2 -4
- package/dist/addon.mjs +2 -4
- package/dist/capabilities/index.d.ts +1 -1
- package/dist/capabilities/pipeline-analytics.cap.d.ts +4 -189
- package/dist/ffmpeg/gif-derive.d.ts +71 -0
- package/dist/generated/addon-api.d.ts +0 -21
- package/dist/generated/cap-input-defaults.d.ts +1 -1
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/method-device-selectors.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +111 -180
- package/dist/index.mjs +108 -178
- package/dist/media/media-owner-key.d.ts +6 -2
- package/dist/{sleep-DlrgY4Qb.mjs → sleep-C-v96WpE.mjs} +0 -3
- package/dist/{sleep-DYGSsCgK.js → sleep-WOeeZ4FU.js} +0 -3
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
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,
|
|
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-
|
|
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,
|
|
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,
|
|
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,
|
|
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:
|
|
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:
|
|
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';
|