camstack 1.1.23 → 1.1.25
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.
|
@@ -14522,7 +14522,7 @@ function date4(params) {
|
|
|
14522
14522
|
// ../../node_modules/zod/v4/classic/external.js
|
|
14523
14523
|
config(en_default());
|
|
14524
14524
|
|
|
14525
|
-
// ../types/dist/sleep-
|
|
14525
|
+
// ../types/dist/sleep-Baang_XW.mjs
|
|
14526
14526
|
var WELL_KNOWN_TABS = [
|
|
14527
14527
|
{
|
|
14528
14528
|
id: "overview",
|
|
@@ -15132,6 +15132,12 @@ function method(input, output, options) {
|
|
|
15132
15132
|
timeoutMs: options?.timeoutMs
|
|
15133
15133
|
};
|
|
15134
15134
|
}
|
|
15135
|
+
function systemMethod(input, output, options) {
|
|
15136
|
+
return {
|
|
15137
|
+
...method(input, output, options),
|
|
15138
|
+
systemOnly: true
|
|
15139
|
+
};
|
|
15140
|
+
}
|
|
15135
15141
|
function event(data) {
|
|
15136
15142
|
return { data };
|
|
15137
15143
|
}
|
|
@@ -19232,6 +19238,7 @@ var PipelineAddonSchemaSchema = external_exports.object({
|
|
|
19232
19238
|
defaultModelId: external_exports.string(),
|
|
19233
19239
|
defaultModelIdByFormat: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
19234
19240
|
enabledByDefault: external_exports.boolean().optional(),
|
|
19241
|
+
backfillIntoExistingOverrides: external_exports.boolean().optional(),
|
|
19235
19242
|
defaultConfidence: external_exports.number(),
|
|
19236
19243
|
group: external_exports.string().optional(),
|
|
19237
19244
|
configSchema: external_exports.array(ConfigFieldBridge).readonly().optional()
|
|
@@ -19500,7 +19507,15 @@ var pipelineExecutorCapability = {
|
|
|
19500
19507
|
image: external_exports.instanceof(Uint8Array).optional(),
|
|
19501
19508
|
referenceImage: external_exports.string().optional(),
|
|
19502
19509
|
deviceId: external_exports.number().optional(),
|
|
19503
|
-
sessionId: external_exports.string().optional()
|
|
19510
|
+
sessionId: external_exports.string().optional(),
|
|
19511
|
+
/**
|
|
19512
|
+
* Execution plane. 'full' (default) runs the whole tree — benchmark,
|
|
19513
|
+
* reference-image, and detail-subtree calls. 'frame' is the live
|
|
19514
|
+
* per-frame dispatch: ONLY root-plane steps run; crop children
|
|
19515
|
+
* (inputClasses ≠ null) are skipped and served per-track via
|
|
19516
|
+
* pipelineRunner.runDetailSubtree (two-plane design).
|
|
19517
|
+
*/
|
|
19518
|
+
plane: external_exports.enum(["full", "frame"]).optional()
|
|
19504
19519
|
}), PipelineRunResultBridge, { kind: "mutation" }),
|
|
19505
19520
|
/**
|
|
19506
19521
|
* Batched run — N raw frames packed into one cap call. The provider
|
|
@@ -19671,6 +19686,32 @@ var zonesCapability = {
|
|
|
19671
19686
|
*/
|
|
19672
19687
|
runtimeState: external_exports.object({ zones: external_exports.array(ZoneSchema).readonly() })
|
|
19673
19688
|
};
|
|
19689
|
+
var NativeCropBboxSchema = external_exports.object({
|
|
19690
|
+
x: external_exports.number(),
|
|
19691
|
+
y: external_exports.number(),
|
|
19692
|
+
w: external_exports.number(),
|
|
19693
|
+
h: external_exports.number()
|
|
19694
|
+
});
|
|
19695
|
+
var NativeCropResultSchema = external_exports.object({
|
|
19696
|
+
/** Packed rgb (24-bit) pixels of the crop. */
|
|
19697
|
+
bytes: external_exports.instanceof(Uint8Array),
|
|
19698
|
+
width: external_exports.number().int().positive(),
|
|
19699
|
+
height: external_exports.number().int().positive()
|
|
19700
|
+
});
|
|
19701
|
+
var DetailParentSchema = external_exports.object({
|
|
19702
|
+
bbox: NativeCropBboxSchema,
|
|
19703
|
+
className: external_exports.string()
|
|
19704
|
+
});
|
|
19705
|
+
var DetailResultSchema = external_exports.object({
|
|
19706
|
+
stepId: external_exports.string(),
|
|
19707
|
+
className: external_exports.string(),
|
|
19708
|
+
score: external_exports.number(),
|
|
19709
|
+
/** FRAME-space bbox (already mapped back from crop space). */
|
|
19710
|
+
bbox: NativeCropBboxSchema.optional(),
|
|
19711
|
+
embedding: external_exports.string().optional(),
|
|
19712
|
+
label: external_exports.string().optional(),
|
|
19713
|
+
alignedCropJpeg: external_exports.string().optional()
|
|
19714
|
+
});
|
|
19674
19715
|
var motionCooldownMsField = {
|
|
19675
19716
|
min: 0,
|
|
19676
19717
|
max: 6e4,
|
|
@@ -19996,7 +20037,42 @@ var pipelineRunnerCapability = {
|
|
|
19996
20037
|
/** All per-camera metrics in one round-trip. */
|
|
19997
20038
|
getAllCameraMetrics: method(external_exports.void(), external_exports.array(CameraMetricsWithDeviceIdSchema).readonly()),
|
|
19998
20039
|
/** List the deviceIds currently attached to this runner. */
|
|
19999
|
-
getLocalCameras: method(external_exports.void(), external_exports.array(external_exports.number()).readonly())
|
|
20040
|
+
getLocalCameras: method(external_exports.void(), external_exports.array(external_exports.number()).readonly()),
|
|
20041
|
+
/**
|
|
20042
|
+
* Best-effort NATIVE-resolution crop of a retention-ring frame. Given the
|
|
20043
|
+
* `FrameHandle` that rode an inference-result event and a normalized `bbox`,
|
|
20044
|
+
* the runner asks the decode worker still holding that frame's NATIVE
|
|
20045
|
+
* surface to GPU/CPU-crop ONLY the ROI at native res and download just the
|
|
20046
|
+
* crop. Returns `null` on a miss (handle not registered, or the worker's
|
|
20047
|
+
* tiny native-retention ring already evicted the frame) — the caller falls
|
|
20048
|
+
* back to a detection-frame crop. Routed to the frame's owning node by
|
|
20049
|
+
* `handle.nodeId`; NEVER ships a full native frame.
|
|
20050
|
+
*/
|
|
20051
|
+
getNativeCrop: method(external_exports.object({
|
|
20052
|
+
handle: FrameHandleSchema,
|
|
20053
|
+
bbox: NativeCropBboxSchema,
|
|
20054
|
+
maxWidth: external_exports.number().int().positive().optional()
|
|
20055
|
+
}), NativeCropResultSchema.nullable()),
|
|
20056
|
+
/**
|
|
20057
|
+
* Two-plane design: run the DETAIL subtree (crop children —
|
|
20058
|
+
* embedding, classifier, refiner steps whose `inputClasses ≠ null`)
|
|
20059
|
+
* for a single tracked detection. The per-frame plane (`runPipeline`
|
|
20060
|
+
* with `plane: 'frame'`) skips crop children entirely; a track-level
|
|
20061
|
+
* caller invokes this per-track, on its own cadence, instead of on
|
|
20062
|
+
* every frame. Takes either a `frameHandle` (shm lease/session —
|
|
20063
|
+
* preferred, zero-copy) or a `cropJpeg` fallback when the lease/
|
|
20064
|
+
* session backing the frame is already gone. `steps` narrows which
|
|
20065
|
+
* configured children to run (default: all configured children for
|
|
20066
|
+
* `parent.className`). Returns `null` when neither frame source is
|
|
20067
|
+
* resolvable (handle evicted and no cropJpeg fallback supplied).
|
|
20068
|
+
*/
|
|
20069
|
+
runDetailSubtree: method(external_exports.object({
|
|
20070
|
+
deviceId: external_exports.number(),
|
|
20071
|
+
frameHandle: FrameHandleSchema.optional(),
|
|
20072
|
+
cropJpeg: external_exports.string().optional(),
|
|
20073
|
+
parent: DetailParentSchema,
|
|
20074
|
+
steps: external_exports.array(external_exports.string()).optional()
|
|
20075
|
+
}), external_exports.object({ details: external_exports.array(DetailResultSchema) }).nullable(), { kind: "mutation" })
|
|
20000
20076
|
}
|
|
20001
20077
|
};
|
|
20002
20078
|
var MotionStatusSchema = external_exports.object({
|
|
@@ -24985,7 +25061,17 @@ var TrackSchema = external_exports.object({
|
|
|
24985
25061
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
24986
25062
|
totalDistance: external_exports.number(),
|
|
24987
25063
|
state: TrackStateSchema,
|
|
24988
|
-
active: external_exports.boolean()
|
|
25064
|
+
active: external_exports.boolean(),
|
|
25065
|
+
/** Deterministic key-event importance score in [0,1] (server-computed at
|
|
25066
|
+
* track expiry, recomputed on late label). Absent on legacy rows written
|
|
25067
|
+
* before scoring shipped — consumers degrade to absence / compute-on-read. */
|
|
25068
|
+
importance: external_exports.number().optional(),
|
|
25069
|
+
/** Id of the track's highest-confidence ObjectEvent (its representative
|
|
25070
|
+
* "best" frame). Absent when the track produced no object events. */
|
|
25071
|
+
bestEventId: external_exports.string().optional(),
|
|
25072
|
+
/** Tag of the importance sub-signal that dominated the score
|
|
25073
|
+
* (identity|dwell|proximity|class|confidence|travel|zone). */
|
|
25074
|
+
importanceReason: external_exports.string().optional()
|
|
24989
25075
|
});
|
|
24990
25076
|
var BaseEventFields = {
|
|
24991
25077
|
id: external_exports.string(),
|
|
@@ -25042,8 +25128,18 @@ var ObjectEventSchema = external_exports.object({
|
|
|
25042
25128
|
frameHeight: external_exports.number().optional(),
|
|
25043
25129
|
/** MediaStore key for the crop attached to this event (if any). */
|
|
25044
25130
|
mediaKey: external_exports.string().optional(),
|
|
25131
|
+
/** Design B: MediaStore key of the track's native-resolution key frame (the
|
|
25132
|
+
* best-detection full frame). Resolve via the event-media data-plane
|
|
25133
|
+
* (`/addon/<addonId>/event-media/<keyFrameMediaKey>`) for a detail view that
|
|
25134
|
+
* draws `bbox` over the native frame. Absent on legacy rows / non-decoded
|
|
25135
|
+
* sources — consumers fall back to `mediaKey` (the tight crop). */
|
|
25136
|
+
keyFrameMediaKey: external_exports.string().optional(),
|
|
25045
25137
|
/** Populated by B5 (recording playback URL for this event). */
|
|
25046
|
-
mediaUrl: external_exports.string().optional()
|
|
25138
|
+
mediaUrl: external_exports.string().optional(),
|
|
25139
|
+
/** The parent track's key-event importance [0,1], propagated to every object
|
|
25140
|
+
* event of the track (so an event row can be sorted by importance without a
|
|
25141
|
+
* track join). Absent on legacy rows / before the track was scored. */
|
|
25142
|
+
importance: external_exports.number().optional()
|
|
25047
25143
|
});
|
|
25048
25144
|
var AudioEventSchema = external_exports.object({
|
|
25049
25145
|
...BaseEventFields,
|
|
@@ -25067,7 +25163,8 @@ var MediaFileKindEnum = external_exports.enum([
|
|
|
25067
25163
|
"fullFrame",
|
|
25068
25164
|
"fullFrameBoxed",
|
|
25069
25165
|
"faceCrop",
|
|
25070
|
-
"plateCrop"
|
|
25166
|
+
"plateCrop",
|
|
25167
|
+
"keyFrame"
|
|
25071
25168
|
]);
|
|
25072
25169
|
var MediaFileSchema = external_exports.object({
|
|
25073
25170
|
key: external_exports.string(),
|
|
@@ -25088,6 +25185,32 @@ var DeviceEventQueryInput = external_exports.object({
|
|
|
25088
25185
|
projection: external_exports.enum(["full", "slim"]).optional()
|
|
25089
25186
|
});
|
|
25090
25187
|
var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: external_exports.string().optional() });
|
|
25188
|
+
var KeyEventQueryInput = external_exports.object({
|
|
25189
|
+
deviceId: external_exports.number(),
|
|
25190
|
+
/** Window lower bound (track firstSeen ≥ since). */
|
|
25191
|
+
since: external_exports.number(),
|
|
25192
|
+
/** Window upper bound (track firstSeen ≤ until). */
|
|
25193
|
+
until: external_exports.number(),
|
|
25194
|
+
limit: external_exports.number().int().min(1).max(200).default(50),
|
|
25195
|
+
/** Drop tracks scoring below this importance. */
|
|
25196
|
+
minImportance: external_exports.number().min(0).max(1).optional(),
|
|
25197
|
+
/** Restrict to a single class (e.g. 'person'). */
|
|
25198
|
+
classFilter: external_exports.string().optional()
|
|
25199
|
+
});
|
|
25200
|
+
var KeyEventSchema = external_exports.object({
|
|
25201
|
+
/** The representative event id (the track's best ObjectEvent, else its trackId). */
|
|
25202
|
+
id: external_exports.string(),
|
|
25203
|
+
trackId: external_exports.string(),
|
|
25204
|
+
/** Track start time (firstSeen). */
|
|
25205
|
+
timestamp: external_exports.number(),
|
|
25206
|
+
className: external_exports.string(),
|
|
25207
|
+
label: external_exports.string().optional(),
|
|
25208
|
+
importance: external_exports.number(),
|
|
25209
|
+
/** Highest-confidence ObjectEvent id for the track (empty when none). */
|
|
25210
|
+
bestEventId: external_exports.string(),
|
|
25211
|
+
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
25212
|
+
windowMs: external_exports.number().optional()
|
|
25213
|
+
});
|
|
25091
25214
|
var TrackedDetectionSchema = external_exports.object({
|
|
25092
25215
|
trackId: external_exports.string(),
|
|
25093
25216
|
className: external_exports.string(),
|
|
@@ -25136,6 +25259,15 @@ var pipelineAnalyticsCapability = {
|
|
|
25136
25259
|
getMotionEvents: method(DeviceEventQueryInput, external_exports.array(MotionEventSchema).readonly()),
|
|
25137
25260
|
getObjectEvents: method(ObjectEventQueryInput, external_exports.array(ObjectEventSchema).readonly()),
|
|
25138
25261
|
getAudioEvents: method(DeviceEventQueryInput, external_exports.array(AudioEventSchema).readonly()),
|
|
25262
|
+
/**
|
|
25263
|
+
* Importance-ranked highlights for a device+window. Queries completed
|
|
25264
|
+
* tracks by (deviceId, firstSeen ∈ [since,until]), scores each (or reuses
|
|
25265
|
+
* the persisted score), filters by minImportance/classFilter, orders by
|
|
25266
|
+
* importance desc, and returns up to `limit` compact key events mapped to
|
|
25267
|
+
* each track's best event. Legacy tracks lacking a persisted score are
|
|
25268
|
+
* scored on-read (no write). Degrades to `[]` on error.
|
|
25269
|
+
*/
|
|
25270
|
+
getKeyEvents: method(KeyEventQueryInput, external_exports.array(KeyEventSchema).readonly()),
|
|
25139
25271
|
/** Server-side bucketed event counts for the 24-hour timeline.
|
|
25140
25272
|
* Returns one entry per non-empty bucket; empty buckets are omitted. */
|
|
25141
25273
|
getEventDensity: method(external_exports.object({
|
|
@@ -26102,7 +26234,20 @@ var snapshotCapability = {
|
|
|
26102
26234
|
invalidateCache: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), {
|
|
26103
26235
|
kind: "mutation",
|
|
26104
26236
|
auth: "admin"
|
|
26105
|
-
})
|
|
26237
|
+
}),
|
|
26238
|
+
/**
|
|
26239
|
+
* Cache-only batch overview — answers from the wrapper's in-memory cache in
|
|
26240
|
+
* O(n) and NEVER triggers a capture. Lets a grid skip requesting images for
|
|
26241
|
+
* devices that never produced a frame, and gives it an ETag per device for
|
|
26242
|
+
* conditional (304-able) image fetches. `lastCapturedAt`/`cacheAgeMs`/`etag`
|
|
26243
|
+
* are null for a device with no cached frame.
|
|
26244
|
+
*/
|
|
26245
|
+
getSnapshotOverview: systemMethod(external_exports.object({ deviceIds: external_exports.array(external_exports.number()).min(1).max(200) }), external_exports.array(external_exports.object({
|
|
26246
|
+
deviceId: external_exports.number(),
|
|
26247
|
+
lastCapturedAt: external_exports.number().nullable(),
|
|
26248
|
+
cacheAgeMs: external_exports.number().nullable(),
|
|
26249
|
+
etag: external_exports.string().nullable()
|
|
26250
|
+
})))
|
|
26106
26251
|
},
|
|
26107
26252
|
status: {
|
|
26108
26253
|
schema: SnapshotStatusSchema,
|
|
@@ -27500,7 +27645,17 @@ var FaceInfoSchema = external_exports.object({
|
|
|
27500
27645
|
recognizedIdentityId: external_exports.string().optional(),
|
|
27501
27646
|
identityName: external_exports.string().optional(),
|
|
27502
27647
|
assigned: external_exports.boolean(),
|
|
27503
|
-
base64: external_exports.string().optional()
|
|
27648
|
+
base64: external_exports.string().optional(),
|
|
27649
|
+
/** Design B: the face bbox (pixel space) on the key frame — lets a detail
|
|
27650
|
+
* view draw the box over the native `keyFrameMediaKey` frame. Absent on
|
|
27651
|
+
* legacy rows written before design B. */
|
|
27652
|
+
faceBbox: BoundingBoxSchema.optional(),
|
|
27653
|
+
/** Design B: MediaStore key of the track's native-resolution key frame.
|
|
27654
|
+
* Fetch the native JPEG via the event-media data-plane
|
|
27655
|
+
* (`/addon/<addonId>/event-media/<keyFrameMediaKey>`). Absent when the
|
|
27656
|
+
* track produced no key frame (e.g. native/onboard source) — the UI falls
|
|
27657
|
+
* back to the inline `base64` face crop. */
|
|
27658
|
+
keyFrameMediaKey: external_exports.string().optional()
|
|
27504
27659
|
});
|
|
27505
27660
|
var FaceFilterEnum = external_exports.enum([
|
|
27506
27661
|
"unassigned",
|
|
@@ -31888,6 +32043,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31888
32043
|
addonId: null,
|
|
31889
32044
|
access: "view"
|
|
31890
32045
|
},
|
|
32046
|
+
"pipelineAnalytics.getKeyEvents": {
|
|
32047
|
+
capName: "pipeline-analytics",
|
|
32048
|
+
capScope: "device",
|
|
32049
|
+
addonId: null,
|
|
32050
|
+
access: "view"
|
|
32051
|
+
},
|
|
31891
32052
|
"pipelineAnalytics.getMotionEvents": {
|
|
31892
32053
|
capName: "pipeline-analytics",
|
|
31893
32054
|
capScope: "device",
|
|
@@ -32416,12 +32577,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32416
32577
|
addonId: null,
|
|
32417
32578
|
access: "view"
|
|
32418
32579
|
},
|
|
32580
|
+
"pipelineRunner.getNativeCrop": {
|
|
32581
|
+
capName: "pipeline-runner",
|
|
32582
|
+
capScope: "system",
|
|
32583
|
+
addonId: null,
|
|
32584
|
+
access: "view"
|
|
32585
|
+
},
|
|
32419
32586
|
"pipelineRunner.reportMotion": {
|
|
32420
32587
|
capName: "pipeline-runner",
|
|
32421
32588
|
capScope: "system",
|
|
32422
32589
|
addonId: null,
|
|
32423
32590
|
access: "create"
|
|
32424
32591
|
},
|
|
32592
|
+
"pipelineRunner.runDetailSubtree": {
|
|
32593
|
+
capName: "pipeline-runner",
|
|
32594
|
+
capScope: "system",
|
|
32595
|
+
addonId: null,
|
|
32596
|
+
access: "create"
|
|
32597
|
+
},
|
|
32425
32598
|
"plateGallery.correctPlateText": {
|
|
32426
32599
|
capName: "plate-gallery",
|
|
32427
32600
|
capScope: "system",
|
|
@@ -32782,6 +32955,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32782
32955
|
addonId: null,
|
|
32783
32956
|
access: "view"
|
|
32784
32957
|
},
|
|
32958
|
+
"snapshot.getSnapshotOverview": {
|
|
32959
|
+
capName: "snapshot",
|
|
32960
|
+
capScope: "device",
|
|
32961
|
+
addonId: null,
|
|
32962
|
+
access: "view"
|
|
32963
|
+
},
|
|
32785
32964
|
"snapshot.invalidateCache": {
|
|
32786
32965
|
capName: "snapshot",
|
|
32787
32966
|
capScope: "device",
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runDiscover
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-F4PHL6CW.js";
|
|
5
5
|
import "./chunk-K3NQKI34.js";
|
|
6
6
|
|
|
7
7
|
// src/cli.ts
|
|
@@ -1079,7 +1079,7 @@ function isUnknown(_value) {
|
|
|
1079
1079
|
return true;
|
|
1080
1080
|
}
|
|
1081
1081
|
async function resolveServerInteractive(presetNamespace) {
|
|
1082
|
-
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-
|
|
1082
|
+
const { discoverNodes, resolveHubFromDiscovered, filterHubNodes, DEFAULT_HUB_HTTPS_PORT } = await import("./discover-BDNJGQ2G.js");
|
|
1083
1083
|
if (presetNamespace) {
|
|
1084
1084
|
const spinner4 = clack.spinner();
|
|
1085
1085
|
spinner4.start(`Discovering hub on LAN (namespace "${presetNamespace}")`);
|