camstack 1.2.38 → 1.2.40
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-Cs9MWLcT.mjs
|
|
14526
14526
|
var WELL_KNOWN_TABS = [
|
|
14527
14527
|
{
|
|
14528
14528
|
id: "overview",
|
|
@@ -15926,6 +15926,16 @@ var LabelDefinitionSchema = external_exports.object({
|
|
|
15926
15926
|
description: external_exports.string().optional(),
|
|
15927
15927
|
icon: external_exports.string().optional()
|
|
15928
15928
|
});
|
|
15929
|
+
var CLASS_MAP_MACRO_TARGETS = [
|
|
15930
|
+
"person",
|
|
15931
|
+
"vehicle",
|
|
15932
|
+
"animal",
|
|
15933
|
+
"package"
|
|
15934
|
+
];
|
|
15935
|
+
var ClassMapDefinitionSchema = external_exports.object({
|
|
15936
|
+
mapping: external_exports.record(external_exports.string(), external_exports.enum(CLASS_MAP_MACRO_TARGETS)),
|
|
15937
|
+
preserveOriginal: external_exports.boolean()
|
|
15938
|
+
});
|
|
15929
15939
|
var MODEL_FORMATS = [
|
|
15930
15940
|
"onnx",
|
|
15931
15941
|
"coreml",
|
|
@@ -15979,6 +15989,13 @@ var ModelVariantGroupSchema = external_exports.object({
|
|
|
15979
15989
|
*/
|
|
15980
15990
|
resolution: external_exports.number().int().positive().optional()
|
|
15981
15991
|
});
|
|
15992
|
+
var MODEL_PROVIDER_IDS = [
|
|
15993
|
+
"camstack",
|
|
15994
|
+
"frigate",
|
|
15995
|
+
"scrypted",
|
|
15996
|
+
"custom"
|
|
15997
|
+
];
|
|
15998
|
+
var ModelProviderIdSchema = external_exports.enum(MODEL_PROVIDER_IDS);
|
|
15982
15999
|
var ModelCatalogEntrySchema = external_exports.object({
|
|
15983
16000
|
id: external_exports.string(),
|
|
15984
16001
|
name: external_exports.string(),
|
|
@@ -16074,7 +16091,19 @@ var ModelCatalogEntrySchema = external_exports.object({
|
|
|
16074
16091
|
* `id` stays the source of truth for resolution/download/persistence; grouping
|
|
16075
16092
|
* is a presentation overlay resolved back to an `id`.
|
|
16076
16093
|
*/
|
|
16077
|
-
group: ModelVariantGroupSchema.optional()
|
|
16094
|
+
group: ModelVariantGroupSchema.optional(),
|
|
16095
|
+
/**
|
|
16096
|
+
* Catalog source for the pipeline stepper's provider-first picker. Absent on
|
|
16097
|
+
* built-in CamStack entries (treated as `camstack`) and on registry rows
|
|
16098
|
+
* persisted before this field existed (`inferModelProvider` fills those).
|
|
16099
|
+
*/
|
|
16100
|
+
provider: ModelProviderIdSchema.optional(),
|
|
16101
|
+
/**
|
|
16102
|
+
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
16103
|
+
* applies (Frigate / COCO public catalog). Set on a custom model whose raw
|
|
16104
|
+
* labels already ARE the CamStack macros (Scrypted identity map).
|
|
16105
|
+
*/
|
|
16106
|
+
classMap: ClassMapDefinitionSchema.optional()
|
|
16078
16107
|
});
|
|
16079
16108
|
var ConvertTargetSchema = external_exports.discriminatedUnion("format", [external_exports.object({
|
|
16080
16109
|
format: external_exports.literal("openvino"),
|
|
@@ -16103,7 +16132,8 @@ var ModelConvertMetadataSchema = external_exports.object({
|
|
|
16103
16132
|
"ocr",
|
|
16104
16133
|
"segmentation"
|
|
16105
16134
|
]),
|
|
16106
|
-
faceAlignment: external_exports.boolean().optional()
|
|
16135
|
+
faceAlignment: external_exports.boolean().optional(),
|
|
16136
|
+
classMap: ClassMapDefinitionSchema.optional()
|
|
16107
16137
|
});
|
|
16108
16138
|
var ConvertArtifactSchema = external_exports.object({
|
|
16109
16139
|
format: external_exports.enum(MODEL_FORMATS),
|
|
@@ -22740,14 +22770,22 @@ var NcOccupancyConditionSchema = external_exports.object({
|
|
|
22740
22770
|
sustainSeconds: external_exports.number().int().min(0).max(3600).default(15)
|
|
22741
22771
|
});
|
|
22742
22772
|
var NcAudioConditionSchema = external_exports.object({
|
|
22743
|
-
/** LABEL MODE: audio macro labels. Present ⇒
|
|
22773
|
+
/** LABEL MODE: audio macro labels. Present ⇒ count-in-window confirm. */
|
|
22744
22774
|
labels: external_exports.array(external_exports.string().min(1)).min(1).optional(),
|
|
22745
22775
|
/** LEVEL MODE: floor in dBFS (negative-going, `0` = full scale). */
|
|
22746
22776
|
dbThreshold: external_exports.number().min(-96).max(0).optional(),
|
|
22747
22777
|
/** LEVEL MODE ONLY: percentage of the window's samples that must be hits (1–100). */
|
|
22748
22778
|
hitPercent: external_exports.number().int().min(1).max(100).default(60),
|
|
22749
22779
|
/** LEVEL MODE ONLY: length of the sampling window in seconds. */
|
|
22750
|
-
samplingSeconds: external_exports.number().int().min(1).max(300).default(10)
|
|
22780
|
+
samplingSeconds: external_exports.number().int().min(1).max(300).default(10),
|
|
22781
|
+
/**
|
|
22782
|
+
* LABEL MODE: how many labelled frames must land inside
|
|
22783
|
+
* {@link NcAudioConditionSchema.shape.confirmWindowSec} before dispatch.
|
|
22784
|
+
* Absent ⇒ 2 (the matcher default). `1` is first-frame fire.
|
|
22785
|
+
*/
|
|
22786
|
+
confirmHits: external_exports.number().int().min(1).max(20).optional(),
|
|
22787
|
+
/** LABEL MODE: the window those frames must share, in seconds. Absent ⇒ 5. */
|
|
22788
|
+
confirmWindowSec: external_exports.number().int().min(1).max(60).optional()
|
|
22751
22789
|
});
|
|
22752
22790
|
var NcCrossingSchema = external_exports.enum([
|
|
22753
22791
|
"enter",
|
|
@@ -24565,6 +24603,46 @@ var RecentTracksPageSchema = external_exports.object({
|
|
|
24565
24603
|
/** Cursor for the next page, or null when this page is the last. */
|
|
24566
24604
|
nextCursor: external_exports.string().nullable()
|
|
24567
24605
|
});
|
|
24606
|
+
var LIST_GROUPS_DEFAULT_LIMIT = 40;
|
|
24607
|
+
var LIST_GROUPS_MAX_LIMIT = 100;
|
|
24608
|
+
var AnalyticsGroupRecordSchema = external_exports.object({
|
|
24609
|
+
id: external_exports.string(),
|
|
24610
|
+
deviceId: external_exports.number().int(),
|
|
24611
|
+
openedAt: external_exports.number().int(),
|
|
24612
|
+
closedAt: external_exports.number().int(),
|
|
24613
|
+
timestamp: external_exports.number().int(),
|
|
24614
|
+
memberCount: external_exports.number().int(),
|
|
24615
|
+
memberTrackIds: external_exports.array(external_exports.string()).readonly(),
|
|
24616
|
+
className: external_exports.string(),
|
|
24617
|
+
classes: external_exports.array(external_exports.string()).readonly(),
|
|
24618
|
+
/** Relative event-media path, or null when the group has no picture yet. */
|
|
24619
|
+
mediaUrl: external_exports.string().nullable(),
|
|
24620
|
+
singleton: external_exports.boolean()
|
|
24621
|
+
});
|
|
24622
|
+
var AnalyticsGroupMemberSchema = external_exports.object({
|
|
24623
|
+
trackId: external_exports.string(),
|
|
24624
|
+
deviceId: external_exports.number().int(),
|
|
24625
|
+
className: external_exports.string(),
|
|
24626
|
+
firstSeen: external_exports.number().int(),
|
|
24627
|
+
lastSeen: external_exports.number().int(),
|
|
24628
|
+
mediaUrl: external_exports.string().nullable()
|
|
24629
|
+
});
|
|
24630
|
+
var AnalyticsGroupDetailSchema = AnalyticsGroupRecordSchema.extend({ members: external_exports.array(AnalyticsGroupMemberSchema).readonly() });
|
|
24631
|
+
var ListGroupsQueryInput = external_exports.object({
|
|
24632
|
+
/** Devices to merge. An empty array yields `{ groups: [], nextCursor: null }`. */
|
|
24633
|
+
deviceIds: external_exports.array(external_exports.number()),
|
|
24634
|
+
/** Window lower bound on `closedAt` (inclusive). */
|
|
24635
|
+
since: external_exports.number().optional(),
|
|
24636
|
+
/** Window upper bound on `openedAt` (inclusive). */
|
|
24637
|
+
until: external_exports.number().optional(),
|
|
24638
|
+
limit: external_exports.number().int().min(1).max(LIST_GROUPS_MAX_LIMIT).default(LIST_GROUPS_DEFAULT_LIMIT),
|
|
24639
|
+
/** Opaque continuation cursor from a previous page's `nextCursor`. */
|
|
24640
|
+
cursor: external_exports.string().optional()
|
|
24641
|
+
});
|
|
24642
|
+
var ListGroupsPageSchema = external_exports.object({
|
|
24643
|
+
groups: external_exports.array(AnalyticsGroupRecordSchema).readonly(),
|
|
24644
|
+
nextCursor: external_exports.string().nullable()
|
|
24645
|
+
});
|
|
24568
24646
|
var KeyEventQueryInput = external_exports.object({
|
|
24569
24647
|
deviceId: external_exports.number(),
|
|
24570
24648
|
/** Window lower bound (track firstSeen ≥ since). */
|
|
@@ -24640,7 +24718,9 @@ var TrackCascadeCountsSchema = external_exports.object({
|
|
|
24640
24718
|
/** Unassigned plate reads removed (best-effort; plate leg deferred to plate-intelligence). */
|
|
24641
24719
|
plates: external_exports.number().int(),
|
|
24642
24720
|
/** Per-track CLIP search vectors removed (best-effort). */
|
|
24643
|
-
embeddings: external_exports.number().int()
|
|
24721
|
+
embeddings: external_exports.number().int(),
|
|
24722
|
+
/** Group membership + group rows removed with their last member (best-effort). */
|
|
24723
|
+
groups: external_exports.number().int()
|
|
24644
24724
|
});
|
|
24645
24725
|
var DiskReconcileCountsSchema = external_exports.object({
|
|
24646
24726
|
mediaDropped: external_exports.number().int(),
|
|
@@ -24782,6 +24862,16 @@ var pipelineAnalyticsCapability = {
|
|
|
24782
24862
|
* are not included (same contract as `listTracks`).
|
|
24783
24863
|
*/
|
|
24784
24864
|
listRecentTracks: method(RecentTracksQueryInput, RecentTracksPageSchema),
|
|
24865
|
+
/**
|
|
24866
|
+
* Batched co-moving group listing — the Groups feed. Same merge/cursor
|
|
24867
|
+
* contract as {@link listRecentTracks}. A group is a sealed partition of
|
|
24868
|
+
* one session; `getGroup` is the detail with members.
|
|
24869
|
+
*/
|
|
24870
|
+
listGroups: method(ListGroupsQueryInput, ListGroupsPageSchema),
|
|
24871
|
+
getGroup: method(external_exports.object({
|
|
24872
|
+
deviceId: external_exports.number(),
|
|
24873
|
+
groupId: external_exports.string().min(1)
|
|
24874
|
+
}), AnalyticsGroupDetailSchema.nullable()),
|
|
24785
24875
|
clearTracks: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), {
|
|
24786
24876
|
kind: "mutation",
|
|
24787
24877
|
auth: "admin"
|
|
@@ -25370,6 +25460,33 @@ var NativeCropRefSchema = external_exports.object({
|
|
|
25370
25460
|
h: external_exports.number()
|
|
25371
25461
|
})
|
|
25372
25462
|
});
|
|
25463
|
+
external_exports.object({
|
|
25464
|
+
crop: external_exports.object({
|
|
25465
|
+
left: external_exports.number(),
|
|
25466
|
+
top: external_exports.number(),
|
|
25467
|
+
width: external_exports.number().positive(),
|
|
25468
|
+
height: external_exports.number().positive()
|
|
25469
|
+
}).optional(),
|
|
25470
|
+
content: external_exports.object({
|
|
25471
|
+
width: external_exports.number().int().positive(),
|
|
25472
|
+
height: external_exports.number().int().positive()
|
|
25473
|
+
}),
|
|
25474
|
+
fit: external_exports.enum(["stretch", "contain"]),
|
|
25475
|
+
format: external_exports.enum([
|
|
25476
|
+
"rgb",
|
|
25477
|
+
"gray",
|
|
25478
|
+
"jpeg"
|
|
25479
|
+
])
|
|
25480
|
+
});
|
|
25481
|
+
var FrameRefSchema = external_exports.object({
|
|
25482
|
+
registryId: external_exports.string().min(1),
|
|
25483
|
+
id: external_exports.string().min(1),
|
|
25484
|
+
width: external_exports.number().int().positive(),
|
|
25485
|
+
height: external_exports.number().int().positive(),
|
|
25486
|
+
format: external_exports.enum(["rgb", "gray"]),
|
|
25487
|
+
timestamp: external_exports.number(),
|
|
25488
|
+
capturedAt: external_exports.number().optional()
|
|
25489
|
+
});
|
|
25373
25490
|
var ModelFormatSchema$1 = external_exports.enum([
|
|
25374
25491
|
"onnx",
|
|
25375
25492
|
"coreml",
|
|
@@ -25436,7 +25553,8 @@ var PipelineModelOptionSchema = external_exports.object({
|
|
|
25436
25553
|
sizeMB: external_exports.number()
|
|
25437
25554
|
})),
|
|
25438
25555
|
group: ModelVariantGroupSchema.optional(),
|
|
25439
|
-
legacy: external_exports.boolean().optional()
|
|
25556
|
+
legacy: external_exports.boolean().optional(),
|
|
25557
|
+
provider: ModelProviderIdSchema.optional()
|
|
25440
25558
|
});
|
|
25441
25559
|
var ConfigFieldBridge = external_exports.custom();
|
|
25442
25560
|
var PipelineAddonSchemaSchema = external_exports.object({
|
|
@@ -25669,7 +25787,7 @@ var pipelineExecutorCapability = {
|
|
|
25669
25787
|
* legacy call shape used by existing benchmark code; once all
|
|
25670
25788
|
* callers pass it explicitly we make it required.
|
|
25671
25789
|
*
|
|
25672
|
-
* Exactly one of `frame`, `frameHandle`, `imageBase64`,
|
|
25790
|
+
* Exactly one of `frame`, `frameRef`, `frameHandle`, `imageBase64`,
|
|
25673
25791
|
* `referenceImage` must be provided:
|
|
25674
25792
|
* - `frame`: runtime dispatch path (runner → decoded broker frame).
|
|
25675
25793
|
* Carries the raw buffer, dimensions, and format; the executor
|
|
@@ -25691,6 +25809,12 @@ var pipelineExecutorCapability = {
|
|
|
25691
25809
|
steps: external_exports.array(PipelineStepInputSchema).min(1),
|
|
25692
25810
|
frame: FrameInputSchema.optional(),
|
|
25693
25811
|
/**
|
|
25812
|
+
* Process-local lazy frame. Valid only when caller and provider resolve
|
|
25813
|
+
* in the same execution-group process; split/cross-node callers use
|
|
25814
|
+
* `frame`/`image` inline compatibility instead.
|
|
25815
|
+
*/
|
|
25816
|
+
frameRef: FrameRefSchema.optional(),
|
|
25817
|
+
/**
|
|
25694
25818
|
* CB5 shm passthrough — a `FrameHandle` naming the same ring slot
|
|
25695
25819
|
* the decoded pixels live in. One more member of the one-of
|
|
25696
25820
|
* frame/frameHandle/image/imageBase64/referenceImage group.
|
|
@@ -25993,7 +26117,10 @@ var NativeCropResultSchema = external_exports.object({
|
|
|
25993
26117
|
* Which source served this crop, so a quality-sensitive consumer (the native
|
|
25994
26118
|
* `keyFrame`) can reject a degraded fallback:
|
|
25995
26119
|
* - `native` — cut from the decode worker's retained NATIVE surface (the
|
|
25996
|
-
* quality path).
|
|
26120
|
+
* quality path). A subject-tile serve is also native-resolution and stays
|
|
26121
|
+
* `native` here: the public enum cannot name `tile` without a breaking cap
|
|
26122
|
+
* change. Runner telemetry distinguishes lease vs tile via `source` on the
|
|
26123
|
+
* internal crop result (`nativeHits` vs `tileHits`).
|
|
25997
26124
|
* - `ram-fullframe` — the native surface MISSED but the request was full-frame,
|
|
25998
26125
|
* so the ≤640 RAM `RetainedFrameStore` served it (honest lower-res; legit for
|
|
25999
26126
|
* the blank-frame guard / 640-snapshot resolve, NOT for the clean keyFrame).
|
|
@@ -26496,12 +26623,41 @@ var RunnerLocalLoadSchema = external_exports.object({
|
|
|
26496
26623
|
cpuCores: external_exports.number().optional()
|
|
26497
26624
|
})
|
|
26498
26625
|
});
|
|
26626
|
+
var FrameLazyCountersSchema = external_exports.object({
|
|
26627
|
+
framesDecoded: external_exports.number(),
|
|
26628
|
+
framesAdmitted: external_exports.number(),
|
|
26629
|
+
framesDroppedPixelFree: external_exports.number(),
|
|
26630
|
+
viewsMaterialized: external_exports.number(),
|
|
26631
|
+
viewsSkipped: external_exports.number(),
|
|
26632
|
+
workerToRunnerBytes: external_exports.number(),
|
|
26633
|
+
runnerToPoolRawBytes: external_exports.number(),
|
|
26634
|
+
runnerToPoolJpegBytes: external_exports.number(),
|
|
26635
|
+
onDemandFullFrameRequests: external_exports.number(),
|
|
26636
|
+
onDemandCropRequests: external_exports.number(),
|
|
26637
|
+
nativeHits: external_exports.number(),
|
|
26638
|
+
nativeMisses: external_exports.number(),
|
|
26639
|
+
tileHits: external_exports.number(),
|
|
26640
|
+
tileMisses: external_exports.number(),
|
|
26641
|
+
fallbackHits: external_exports.number(),
|
|
26642
|
+
fallbackMisses: external_exports.number(),
|
|
26643
|
+
retainedWritesAvoided: external_exports.number(),
|
|
26644
|
+
residentRefs: external_exports.number(),
|
|
26645
|
+
residentBytes: external_exports.number(),
|
|
26646
|
+
releases: external_exports.number(),
|
|
26647
|
+
evictions: external_exports.number(),
|
|
26648
|
+
staleMisses: external_exports.number()
|
|
26649
|
+
});
|
|
26650
|
+
var FrameLazyMetricsSchema = external_exports.object({
|
|
26651
|
+
node: FrameLazyCountersSchema,
|
|
26652
|
+
cameras: external_exports.array(FrameLazyCountersSchema.extend({ deviceId: external_exports.number() }))
|
|
26653
|
+
});
|
|
26499
26654
|
var RunnerLocalMetricsSchema = external_exports.object({
|
|
26500
26655
|
nodeId: external_exports.string(),
|
|
26501
26656
|
activeCameras: external_exports.number(),
|
|
26502
26657
|
throttledCameras: external_exports.number(),
|
|
26503
26658
|
avgInferenceTimeMs: external_exports.number(),
|
|
26504
|
-
queueDepth: external_exports.number()
|
|
26659
|
+
queueDepth: external_exports.number(),
|
|
26660
|
+
frameLazy: FrameLazyMetricsSchema.optional()
|
|
26505
26661
|
});
|
|
26506
26662
|
var pipelineRunnerCapability = {
|
|
26507
26663
|
name: "pipeline-runner",
|
|
@@ -28288,6 +28444,8 @@ var storageProviderCapability = {
|
|
|
28288
28444
|
endDownload: method(EndDownloadInputSchema, external_exports.void(), { kind: "mutation" })
|
|
28289
28445
|
}
|
|
28290
28446
|
};
|
|
28447
|
+
var ProfileSettingsSchemaBridge = external_exports.unknown().nullable();
|
|
28448
|
+
var ProfileSettingsBagSchema = external_exports.record(external_exports.string(), external_exports.unknown());
|
|
28291
28449
|
var TerminalSessionInfoSchema = external_exports.object({
|
|
28292
28450
|
/** Opaque session id minted by the provider on `openSession`. */
|
|
28293
28451
|
sessionId: external_exports.string(),
|
|
@@ -28303,7 +28461,14 @@ var TerminalSessionInfoSchema = external_exports.object({
|
|
|
28303
28461
|
var TerminalProfileInfoSchema = external_exports.object({
|
|
28304
28462
|
profileId: external_exports.string(),
|
|
28305
28463
|
label: external_exports.string(),
|
|
28306
|
-
description: external_exports.string().optional()
|
|
28464
|
+
description: external_exports.string().optional(),
|
|
28465
|
+
/** Spawn defaults the instance form copies on create. */
|
|
28466
|
+
executable: external_exports.string().optional(),
|
|
28467
|
+
args: external_exports.array(external_exports.string()).readonly().optional(),
|
|
28468
|
+
cwd: external_exports.string().optional(),
|
|
28469
|
+
environment: external_exports.array(external_exports.string()).readonly().optional(),
|
|
28470
|
+
/** ConfigUISchema for instance knobs, or null when the profile has none. */
|
|
28471
|
+
settingsSchema: ProfileSettingsSchemaBridge.optional()
|
|
28307
28472
|
});
|
|
28308
28473
|
var TerminalInstanceInfoSchema = external_exports.object({
|
|
28309
28474
|
instanceId: external_exports.string(),
|
|
@@ -28312,7 +28477,12 @@ var TerminalInstanceInfoSchema = external_exports.object({
|
|
|
28312
28477
|
profileId: external_exports.string(),
|
|
28313
28478
|
profileLabel: external_exports.string(),
|
|
28314
28479
|
name: external_exports.string(),
|
|
28315
|
-
enabled: external_exports.boolean()
|
|
28480
|
+
enabled: external_exports.boolean(),
|
|
28481
|
+
executable: external_exports.string(),
|
|
28482
|
+
args: external_exports.array(external_exports.string()).readonly(),
|
|
28483
|
+
cwd: external_exports.string(),
|
|
28484
|
+
environment: external_exports.array(external_exports.string()).readonly(),
|
|
28485
|
+
profileSettings: ProfileSettingsBagSchema
|
|
28316
28486
|
});
|
|
28317
28487
|
var TerminalLegacyCameraSchema = external_exports.object({
|
|
28318
28488
|
stableId: external_exports.string(),
|
|
@@ -28351,7 +28521,24 @@ var terminalSessionCapability = {
|
|
|
28351
28521
|
createInstance: method(external_exports.object({
|
|
28352
28522
|
targetNodeId: external_exports.string().min(1),
|
|
28353
28523
|
profileId: external_exports.string().min(1),
|
|
28354
|
-
name: external_exports.string().trim().min(1).max(160).optional()
|
|
28524
|
+
name: external_exports.string().trim().min(1).max(160).optional(),
|
|
28525
|
+
executable: external_exports.string().max(1024).optional(),
|
|
28526
|
+
args: external_exports.array(external_exports.string().max(2048)).max(64).optional(),
|
|
28527
|
+
cwd: external_exports.string().max(1024).optional(),
|
|
28528
|
+
environment: external_exports.array(external_exports.string().max(4096)).max(64).optional(),
|
|
28529
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
28530
|
+
}), TerminalInstanceInfoSchema, {
|
|
28531
|
+
kind: "mutation",
|
|
28532
|
+
auth: "admin"
|
|
28533
|
+
}),
|
|
28534
|
+
updateInstance: method(external_exports.object({
|
|
28535
|
+
instanceId: external_exports.string().min(1),
|
|
28536
|
+
name: external_exports.string().trim().min(1).max(160).optional(),
|
|
28537
|
+
executable: external_exports.string().max(1024).optional(),
|
|
28538
|
+
args: external_exports.array(external_exports.string().max(2048)).max(64).optional(),
|
|
28539
|
+
cwd: external_exports.string().max(1024).optional(),
|
|
28540
|
+
environment: external_exports.array(external_exports.string().max(4096)).max(64).optional(),
|
|
28541
|
+
profileSettings: ProfileSettingsBagSchema.optional()
|
|
28355
28542
|
}), TerminalInstanceInfoSchema, {
|
|
28356
28543
|
kind: "mutation",
|
|
28357
28544
|
auth: "admin"
|
|
@@ -28386,7 +28573,11 @@ var terminalSessionCapability = {
|
|
|
28386
28573
|
openSession: method(external_exports.object({
|
|
28387
28574
|
profileId: external_exports.string(),
|
|
28388
28575
|
cols: external_exports.number().int().positive(),
|
|
28389
|
-
rows: external_exports.number().int().positive()
|
|
28576
|
+
rows: external_exports.number().int().positive(),
|
|
28577
|
+
executable: external_exports.string().max(1024).optional(),
|
|
28578
|
+
args: external_exports.array(external_exports.string().max(2048)).max(64).optional(),
|
|
28579
|
+
cwd: external_exports.string().max(1024).optional(),
|
|
28580
|
+
environment: external_exports.array(external_exports.string().max(4096)).max(64).optional()
|
|
28390
28581
|
}), TerminalSessionInfoSchema, {
|
|
28391
28582
|
kind: "mutation",
|
|
28392
28583
|
auth: "admin"
|
|
@@ -32109,6 +32300,12 @@ var NotificationEndpointSchema = external_exports.object({
|
|
|
32109
32300
|
/** What the ranking currently resolves to (null when nothing is reachable). */
|
|
32110
32301
|
resolved: external_exports.string().nullable()
|
|
32111
32302
|
});
|
|
32303
|
+
var ViewerEndpointsSchema = external_exports.object({
|
|
32304
|
+
/** The operator's explicit race set, or empty for AUTO. */
|
|
32305
|
+
baseUrls: external_exports.array(external_exports.string()).readonly(),
|
|
32306
|
+
/** What the ranking currently resolves to (may be empty if nothing is up). */
|
|
32307
|
+
resolved: external_exports.array(external_exports.string()).readonly()
|
|
32308
|
+
});
|
|
32112
32309
|
var AllowedAddressesSchema = external_exports.object({
|
|
32113
32310
|
/**
|
|
32114
32311
|
* Allowlist of interface addresses operators have explicitly opted
|
|
@@ -32118,6 +32315,20 @@ var AllowedAddressesSchema = external_exports.object({
|
|
|
32118
32315
|
*/
|
|
32119
32316
|
addresses: external_exports.array(external_exports.string()).readonly()
|
|
32120
32317
|
});
|
|
32318
|
+
var TlsStatusSchema = external_exports.object({
|
|
32319
|
+
mode: external_exports.enum([
|
|
32320
|
+
"generated",
|
|
32321
|
+
"uploaded",
|
|
32322
|
+
"disabled"
|
|
32323
|
+
]),
|
|
32324
|
+
leafFingerprintSha256: external_exports.string().nullable(),
|
|
32325
|
+
caFingerprintSha256: external_exports.string().nullable(),
|
|
32326
|
+
validTo: external_exports.string().nullable(),
|
|
32327
|
+
sans: external_exports.array(external_exports.string()),
|
|
32328
|
+
caCertPem: external_exports.string().nullable(),
|
|
32329
|
+
reissueError: external_exports.string().nullable(),
|
|
32330
|
+
restartRequired: external_exports.boolean()
|
|
32331
|
+
});
|
|
32121
32332
|
var localNetworkCapability = {
|
|
32122
32333
|
name: "local-network",
|
|
32123
32334
|
scope: "system",
|
|
@@ -32137,13 +32348,13 @@ var localNetworkCapability = {
|
|
|
32137
32348
|
*/
|
|
32138
32349
|
getPreferred: method(external_exports.void(), PreferredSchema),
|
|
32139
32350
|
/**
|
|
32140
|
-
* Ordered candidate base URLs the
|
|
32141
|
-
* Includes LAN
|
|
32142
|
-
*
|
|
32143
|
-
*
|
|
32144
|
-
*
|
|
32145
|
-
*
|
|
32146
|
-
*
|
|
32351
|
+
* Ordered candidate base URLs (the palette the Network tab shows).
|
|
32352
|
+
* Includes LAN IPv4, stable LAN IPv6, the public tunnel, and mesh when
|
|
32353
|
+
* joined. Loopback is off by default. The SDK races the subset from
|
|
32354
|
+
* `getViewerEndpoints`, not this full list — IPv6 stays here because
|
|
32355
|
+
* WebRTC ICE gathers dual-stack regardless of the HTTP race. Honours
|
|
32356
|
+
* `getAllowedAddresses()` when set — addresses outside the allowlist
|
|
32357
|
+
* are dropped (the public tunnel is still included as an escape hatch).
|
|
32147
32358
|
*
|
|
32148
32359
|
* **The port is the hub's, not the caller's** (D62 — a function's fact
|
|
32149
32360
|
* belongs to whoever already owns it). This method used to take a `port`
|
|
@@ -32174,10 +32385,11 @@ var localNetworkCapability = {
|
|
|
32174
32385
|
*/
|
|
32175
32386
|
port: external_exports.number().int().min(1).max(65535).optional(),
|
|
32176
32387
|
/** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
|
|
32177
|
-
* candidate. Default `
|
|
32388
|
+
* candidate. Default `false` — loopback is not a client route. */
|
|
32178
32389
|
includeLoopback: external_exports.boolean().optional(),
|
|
32179
|
-
/** Skip IPv6 entries.
|
|
32180
|
-
*
|
|
32390
|
+
/** Skip IPv6 entries. Default `false` — the palette includes stable
|
|
32391
|
+
* LAN IPv6 (ICE/WebRTC uses dual-stack regardless). Pass `true` to
|
|
32392
|
+
* hide them. The viewer HTTP/WS race is `getViewerEndpoints`. */
|
|
32181
32393
|
ipv4Only: external_exports.boolean().optional(),
|
|
32182
32394
|
/** Scheme to emit for LAN/loopback URLs. Default `'http'`.
|
|
32183
32395
|
* Pass `'https'` when the caller is itself loaded over HTTPS
|
|
@@ -32206,6 +32418,19 @@ var localNetworkCapability = {
|
|
|
32206
32418
|
*/
|
|
32207
32419
|
setNotificationEndpoint: method(external_exports.object({ baseUrl: external_exports.string().nullable() }), NotificationEndpointSchema, { kind: "mutation" }),
|
|
32208
32420
|
/**
|
|
32421
|
+
* The endpoints the SDK / viewer races for API access. Empty `baseUrls`
|
|
32422
|
+
* means AUTO: every LAN IPv4 address plus the public tunnel, never IPv6,
|
|
32423
|
+
* never mesh, never loopback. `resolved` is that set (or the operator's
|
|
32424
|
+
* explicit subset) as it stands right now.
|
|
32425
|
+
*/
|
|
32426
|
+
getViewerEndpoints: method(external_exports.void(), ViewerEndpointsSchema),
|
|
32427
|
+
/**
|
|
32428
|
+
* Replace the viewer race set. Empty `baseUrls` restores AUTO. Stored
|
|
32429
|
+
* verbatim (not indices) so a temporarily-down tunnel is not silently
|
|
32430
|
+
* dropped from the operator's choice.
|
|
32431
|
+
*/
|
|
32432
|
+
setViewerEndpoints: method(external_exports.object({ baseUrls: external_exports.array(external_exports.string()).readonly() }), ViewerEndpointsSchema, { kind: "mutation" }),
|
|
32433
|
+
/**
|
|
32209
32434
|
* Read the operator's allowlist. Empty = "auto" (no filter). Used
|
|
32210
32435
|
* by the admin UI's address selector to seed its checkbox state.
|
|
32211
32436
|
*/
|
|
@@ -32223,7 +32448,34 @@ var localNetworkCapability = {
|
|
|
32223
32448
|
* when the operator wants to wipe their manual edits and start
|
|
32224
32449
|
* over from the auto-detected best matches.
|
|
32225
32450
|
*/
|
|
32226
|
-
resetAllowlistToBestMatch: method(external_exports.void(), AllowedAddressesSchema, { kind: "mutation" })
|
|
32451
|
+
resetAllowlistToBestMatch: method(external_exports.void(), AllowedAddressesSchema, { kind: "mutation" }),
|
|
32452
|
+
/**
|
|
32453
|
+
* Live TLS material for the Network → Local access certificate card.
|
|
32454
|
+
* LAN HTTP / hostname are addon settings (`globalSettingsSchema`), not
|
|
32455
|
+
* a second store — this query is status, not configuration.
|
|
32456
|
+
*/
|
|
32457
|
+
getTlsStatus: method(external_exports.void(), TlsStatusSchema),
|
|
32458
|
+
/** Issue a new leaf under the existing local CA. Disabled in uploaded mode. */
|
|
32459
|
+
regenerateCertificate: method(external_exports.object({ reason: external_exports.string().optional() }), TlsStatusSchema, {
|
|
32460
|
+
kind: "mutation",
|
|
32461
|
+
auth: "admin"
|
|
32462
|
+
}),
|
|
32463
|
+
/** Replace the served material with operator-supplied PEMs. */
|
|
32464
|
+
uploadCertificate: method(external_exports.object({
|
|
32465
|
+
certPem: external_exports.string().min(1),
|
|
32466
|
+
keyPem: external_exports.string().min(1),
|
|
32467
|
+
caPem: external_exports.string().optional()
|
|
32468
|
+
}), TlsStatusSchema, {
|
|
32469
|
+
kind: "mutation",
|
|
32470
|
+
auth: "admin"
|
|
32471
|
+
}),
|
|
32472
|
+
/** The local CA PEM, or empty when there is none to download. */
|
|
32473
|
+
downloadCa: method(external_exports.void(), external_exports.object({ pem: external_exports.string() })),
|
|
32474
|
+
/** Drop uploaded material and return to the generated local CA. */
|
|
32475
|
+
revertToGeneratedCertificate: method(external_exports.void(), TlsStatusSchema, {
|
|
32476
|
+
kind: "mutation",
|
|
32477
|
+
auth: "admin"
|
|
32478
|
+
})
|
|
32227
32479
|
},
|
|
32228
32480
|
/** BIG PLAN 2: declarative mount hint — read by `@camstack/system` `buildCapRouters`. */
|
|
32229
32481
|
mount: { kind: "hub-only" }
|
|
@@ -33756,7 +34008,12 @@ var PlateInfoSchema = external_exports.object({
|
|
|
33756
34008
|
plateBbox: BoundingBoxSchema.optional(),
|
|
33757
34009
|
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
33758
34010
|
keyFrameMediaKey: external_exports.string().optional(),
|
|
33759
|
-
base64: external_exports.string().optional()
|
|
34011
|
+
base64: external_exports.string().optional(),
|
|
34012
|
+
/**
|
|
34013
|
+
* Same crop as a data-plane URL. `getPlateByTrack` returns this and
|
|
34014
|
+
* never inlines JPEG; `listPlates` still inlines for the admin-ui.
|
|
34015
|
+
*/
|
|
34016
|
+
cropUrl: external_exports.string().optional()
|
|
33760
34017
|
});
|
|
33761
34018
|
var MediaFileLiteSchema = external_exports.object({
|
|
33762
34019
|
key: external_exports.string(),
|
|
@@ -38897,6 +39154,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
38897
39154
|
addonId: null,
|
|
38898
39155
|
access: "create"
|
|
38899
39156
|
},
|
|
39157
|
+
"localNetwork.downloadCa": {
|
|
39158
|
+
capName: "local-network",
|
|
39159
|
+
capScope: "system",
|
|
39160
|
+
addonId: null,
|
|
39161
|
+
access: "view"
|
|
39162
|
+
},
|
|
38900
39163
|
"localNetwork.getAllowedAddresses": {
|
|
38901
39164
|
capName: "local-network",
|
|
38902
39165
|
capScope: "system",
|
|
@@ -38921,18 +39184,42 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
38921
39184
|
addonId: null,
|
|
38922
39185
|
access: "view"
|
|
38923
39186
|
},
|
|
39187
|
+
"localNetwork.getTlsStatus": {
|
|
39188
|
+
capName: "local-network",
|
|
39189
|
+
capScope: "system",
|
|
39190
|
+
addonId: null,
|
|
39191
|
+
access: "view"
|
|
39192
|
+
},
|
|
39193
|
+
"localNetwork.getViewerEndpoints": {
|
|
39194
|
+
capName: "local-network",
|
|
39195
|
+
capScope: "system",
|
|
39196
|
+
addonId: null,
|
|
39197
|
+
access: "view"
|
|
39198
|
+
},
|
|
38924
39199
|
"localNetwork.list": {
|
|
38925
39200
|
capName: "local-network",
|
|
38926
39201
|
capScope: "system",
|
|
38927
39202
|
addonId: null,
|
|
38928
39203
|
access: "view"
|
|
38929
39204
|
},
|
|
39205
|
+
"localNetwork.regenerateCertificate": {
|
|
39206
|
+
capName: "local-network",
|
|
39207
|
+
capScope: "system",
|
|
39208
|
+
addonId: null,
|
|
39209
|
+
access: "create"
|
|
39210
|
+
},
|
|
38930
39211
|
"localNetwork.resetAllowlistToBestMatch": {
|
|
38931
39212
|
capName: "local-network",
|
|
38932
39213
|
capScope: "system",
|
|
38933
39214
|
addonId: null,
|
|
38934
39215
|
access: "delete"
|
|
38935
39216
|
},
|
|
39217
|
+
"localNetwork.revertToGeneratedCertificate": {
|
|
39218
|
+
capName: "local-network",
|
|
39219
|
+
capScope: "system",
|
|
39220
|
+
addonId: null,
|
|
39221
|
+
access: "create"
|
|
39222
|
+
},
|
|
38936
39223
|
"localNetwork.setAllowedAddresses": {
|
|
38937
39224
|
capName: "local-network",
|
|
38938
39225
|
capScope: "system",
|
|
@@ -38945,6 +39232,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
38945
39232
|
addonId: null,
|
|
38946
39233
|
access: "create"
|
|
38947
39234
|
},
|
|
39235
|
+
"localNetwork.setViewerEndpoints": {
|
|
39236
|
+
capName: "local-network",
|
|
39237
|
+
capScope: "system",
|
|
39238
|
+
addonId: null,
|
|
39239
|
+
access: "create"
|
|
39240
|
+
},
|
|
39241
|
+
"localNetwork.uploadCertificate": {
|
|
39242
|
+
capName: "local-network",
|
|
39243
|
+
capScope: "system",
|
|
39244
|
+
addonId: null,
|
|
39245
|
+
access: "create"
|
|
39246
|
+
},
|
|
38948
39247
|
"lockControl.lock": {
|
|
38949
39248
|
capName: "lock-control",
|
|
38950
39249
|
capScope: "device",
|
|
@@ -39743,6 +40042,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
39743
40042
|
addonId: null,
|
|
39744
40043
|
access: "view"
|
|
39745
40044
|
},
|
|
40045
|
+
"pipelineAnalytics.getGroup": {
|
|
40046
|
+
capName: "pipeline-analytics",
|
|
40047
|
+
capScope: "device",
|
|
40048
|
+
addonId: null,
|
|
40049
|
+
access: "view"
|
|
40050
|
+
},
|
|
39746
40051
|
"pipelineAnalytics.getKeyEvents": {
|
|
39747
40052
|
capName: "pipeline-analytics",
|
|
39748
40053
|
capScope: "device",
|
|
@@ -39827,6 +40132,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
39827
40132
|
addonId: null,
|
|
39828
40133
|
access: "view"
|
|
39829
40134
|
},
|
|
40135
|
+
"pipelineAnalytics.listGroups": {
|
|
40136
|
+
capName: "pipeline-analytics",
|
|
40137
|
+
capScope: "device",
|
|
40138
|
+
addonId: null,
|
|
40139
|
+
access: "view"
|
|
40140
|
+
},
|
|
39830
40141
|
"pipelineAnalytics.listOpsLog": {
|
|
39831
40142
|
capName: "pipeline-analytics",
|
|
39832
40143
|
capScope: "device",
|
|
@@ -41825,6 +42136,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
41825
42136
|
addonId: null,
|
|
41826
42137
|
access: "create"
|
|
41827
42138
|
},
|
|
42139
|
+
"terminalSession.updateInstance": {
|
|
42140
|
+
capName: "terminal-session",
|
|
42141
|
+
capScope: "system",
|
|
42142
|
+
addonId: null,
|
|
42143
|
+
access: "create"
|
|
42144
|
+
},
|
|
41828
42145
|
"terminalSession.writeInput": {
|
|
41829
42146
|
capName: "terminal-session",
|
|
41830
42147
|
capScope: "system",
|
|
@@ -43240,6 +43557,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
43240
43557
|
form: "single",
|
|
43241
43558
|
optional: false
|
|
43242
43559
|
}],
|
|
43560
|
+
"pipelineAnalytics.getGroup": [{
|
|
43561
|
+
name: "deviceId",
|
|
43562
|
+
form: "single",
|
|
43563
|
+
optional: false
|
|
43564
|
+
}],
|
|
43243
43565
|
"pipelineAnalytics.getKeyEvents": [{
|
|
43244
43566
|
name: "deviceId",
|
|
43245
43567
|
form: "single",
|
|
@@ -43295,6 +43617,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
|
|
|
43295
43617
|
form: "array",
|
|
43296
43618
|
optional: false
|
|
43297
43619
|
}],
|
|
43620
|
+
"pipelineAnalytics.listGroups": [{
|
|
43621
|
+
name: "deviceIds",
|
|
43622
|
+
form: "array",
|
|
43623
|
+
optional: false
|
|
43624
|
+
}],
|
|
43298
43625
|
"pipelineAnalytics.listOpsLog": [{
|
|
43299
43626
|
name: "deviceId",
|
|
43300
43627
|
form: "single",
|
|
@@ -44196,6 +44523,35 @@ var CLUSTER_MODEL_SCOPED_STEPS = [{
|
|
|
44196
44523
|
}];
|
|
44197
44524
|
var DEFAULT_CLUSTER_STEP_MODELS = Object.freeze(Object.fromEntries(CLUSTER_MODEL_SCOPED_STEPS.map((s) => [s.stepId, s.defaultModelId])));
|
|
44198
44525
|
var ChosenModelIdSchema = external_exports.string().min(1);
|
|
44526
|
+
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
44527
|
+
stepId: "face-embedding",
|
|
44528
|
+
key: "minLandmarkFaceSize",
|
|
44529
|
+
label: "Min face size for recognition (detection px)",
|
|
44530
|
+
description: "Refuse to embed a face smaller than this IN THE DETECTION FRAME. Applies to every node \u2014 the enrolled gallery is one index, and two admission floors would fill it from two policies. 0 disables the gate.",
|
|
44531
|
+
type: "slider",
|
|
44532
|
+
min: 0,
|
|
44533
|
+
max: 64,
|
|
44534
|
+
step: 2,
|
|
44535
|
+
default: 24
|
|
44536
|
+
}];
|
|
44537
|
+
function clusterStepSettingKey(stepId, fieldKey) {
|
|
44538
|
+
return `clusterStepSetting:${stepId}:${fieldKey}`;
|
|
44539
|
+
}
|
|
44540
|
+
var ClusterSettingNumberSchema = external_exports.number().finite();
|
|
44541
|
+
function readClusterStepSettings(config2) {
|
|
44542
|
+
const out = {};
|
|
44543
|
+
for (const field of CLUSTER_STEP_SETTING_FIELDS) {
|
|
44544
|
+
const parsed = ClusterSettingNumberSchema.safeParse(config2[clusterStepSettingKey(field.stepId, field.key)]);
|
|
44545
|
+
const value = parsed.success ? parsed.data : field.default;
|
|
44546
|
+
const existing = out[field.stepId] ?? {};
|
|
44547
|
+
out[field.stepId] = {
|
|
44548
|
+
...existing,
|
|
44549
|
+
[field.key]: value
|
|
44550
|
+
};
|
|
44551
|
+
}
|
|
44552
|
+
return out;
|
|
44553
|
+
}
|
|
44554
|
+
var DEFAULT_CLUSTER_STEP_SETTINGS = readClusterStepSettings({});
|
|
44199
44555
|
var DetailCropConventionSchema = external_exports.object({
|
|
44200
44556
|
/**
|
|
44201
44557
|
* Fraction of the box's own size added on EACH side before cutting.
|