camstack 1.1.25 → 1.1.27
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-CK899CTS.mjs
|
|
14526
14526
|
var WELL_KNOWN_TABS = [
|
|
14527
14527
|
{
|
|
14528
14528
|
id: "overview",
|
|
@@ -15316,7 +15316,8 @@ var MODEL_FORMATS = [
|
|
|
15316
15316
|
"coreml",
|
|
15317
15317
|
"openvino",
|
|
15318
15318
|
"tflite",
|
|
15319
|
-
"pt"
|
|
15319
|
+
"pt",
|
|
15320
|
+
"gguf"
|
|
15320
15321
|
];
|
|
15321
15322
|
var ModelFormatEntrySchema = external_exports.object({
|
|
15322
15323
|
url: external_exports.string(),
|
|
@@ -15338,7 +15339,8 @@ var ModelFormatsSchema = external_exports.object({
|
|
|
15338
15339
|
coreml: ModelFormatEntrySchema.optional(),
|
|
15339
15340
|
openvino: ModelFormatEntrySchema.optional(),
|
|
15340
15341
|
tflite: ModelFormatEntrySchema.optional(),
|
|
15341
|
-
pt: ModelFormatEntrySchema.optional()
|
|
15342
|
+
pt: ModelFormatEntrySchema.optional(),
|
|
15343
|
+
gguf: ModelFormatEntrySchema.optional()
|
|
15342
15344
|
});
|
|
15343
15345
|
var ModelVariantGroupSchema = external_exports.object({
|
|
15344
15346
|
/** Top-level family, e.g. `yolo26` (later `d-fine`, `rf-detr`). */
|
|
@@ -15371,6 +15373,15 @@ var ModelCatalogEntrySchema = external_exports.object({
|
|
|
15371
15373
|
width: external_exports.number(),
|
|
15372
15374
|
height: external_exports.number()
|
|
15373
15375
|
}),
|
|
15376
|
+
/**
|
|
15377
|
+
* Channel count of the model input tensor. Omit ⇒ 3 (RGB), the default for
|
|
15378
|
+
* every detector / classifier / embedder. Set to 1 for a grayscale CTC text
|
|
15379
|
+
* recognizer (EasyOCR VGG plate-OCR: input `[N,1,H,W]`) so the preprocess
|
|
15380
|
+
* feeds a single-channel, EasyOCR-normalized tensor instead of the default
|
|
15381
|
+
* 3-channel RGB one. Threaded through `PoolModelConfig.inputChannels` to the
|
|
15382
|
+
* Python inference pool.
|
|
15383
|
+
*/
|
|
15384
|
+
inputChannels: external_exports.number().int().positive().optional(),
|
|
15374
15385
|
labels: external_exports.array(LabelDefinitionSchema).readonly(),
|
|
15375
15386
|
inputLayout: external_exports.enum(["nchw", "nhwc"]).optional(),
|
|
15376
15387
|
inputNormalization: external_exports.enum([
|
|
@@ -15380,6 +15391,16 @@ var ModelCatalogEntrySchema = external_exports.object({
|
|
|
15380
15391
|
]).optional(),
|
|
15381
15392
|
preprocessMode: external_exports.enum(["letterbox", "resize"]).optional(),
|
|
15382
15393
|
/**
|
|
15394
|
+
* Per-MODEL postprocessor override. Absent ⇒ the step's own
|
|
15395
|
+
* `StepDefinition.postprocessor` applies (the normal case — every model in a
|
|
15396
|
+
* step shares its decode). Set it when a step hosts models with DIFFERENT raw
|
|
15397
|
+
* output layouts under one slot: e.g. object-detection is `'yolo'` by default,
|
|
15398
|
+
* but a Coral SSD MobileNet build emits the `TFLite_Detection_PostProcess`
|
|
15399
|
+
* 4-tensor layout and needs `'ssd'`. Threaded into `PoolModelConfig.postprocessor`
|
|
15400
|
+
* by the engine factory (`modelEntry.postprocessor ?? def.postprocessor`).
|
|
15401
|
+
*/
|
|
15402
|
+
postprocessor: external_exports.custom().optional(),
|
|
15403
|
+
/**
|
|
15383
15404
|
* When true, the executor produces a landmark-aligned crop (similarity warp
|
|
15384
15405
|
* onto the canonical template) before this step runs, instead of a plain
|
|
15385
15406
|
* axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
|
|
@@ -18380,7 +18401,10 @@ var doorbellCapability = {
|
|
|
18380
18401
|
scope: "device",
|
|
18381
18402
|
deviceNative: true,
|
|
18382
18403
|
mode: "singleton",
|
|
18383
|
-
|
|
18404
|
+
kind: "wrapper",
|
|
18405
|
+
defaultActive: false,
|
|
18406
|
+
deviceTypes: [DeviceType.Button, DeviceType.Camera],
|
|
18407
|
+
exposesDeviceSettings: true,
|
|
18384
18408
|
methods: {},
|
|
18385
18409
|
events: {
|
|
18386
18410
|
/**
|
|
@@ -19164,7 +19188,8 @@ var ModelFormatSchema$1 = external_exports.enum([
|
|
|
19164
19188
|
"coreml",
|
|
19165
19189
|
"openvino",
|
|
19166
19190
|
"tflite",
|
|
19167
|
-
"pt"
|
|
19191
|
+
"pt",
|
|
19192
|
+
"gguf"
|
|
19168
19193
|
]);
|
|
19169
19194
|
var PipelineSlotSchema = external_exports.enum([
|
|
19170
19195
|
"detector",
|
|
@@ -19259,7 +19284,8 @@ var EngineProvisioningSchema = external_exports.object({
|
|
|
19259
19284
|
runtimeId: external_exports.enum([
|
|
19260
19285
|
"onnx",
|
|
19261
19286
|
"openvino",
|
|
19262
|
-
"coreml"
|
|
19287
|
+
"coreml",
|
|
19288
|
+
"edgetpu"
|
|
19263
19289
|
]).nullable(),
|
|
19264
19290
|
device: external_exports.string().nullable(),
|
|
19265
19291
|
state: external_exports.enum([
|
|
@@ -20887,6 +20913,148 @@ var ptzAutotrackCapability = {
|
|
|
20887
20913
|
*/
|
|
20888
20914
|
runtimeState: PtzAutotrackRuntimeStateSchema
|
|
20889
20915
|
};
|
|
20916
|
+
var SceneConditionSchema = external_exports.string();
|
|
20917
|
+
var SceneReferenceSchema = external_exports.object({
|
|
20918
|
+
embedding: external_exports.array(external_exports.number()),
|
|
20919
|
+
modelId: external_exports.string(),
|
|
20920
|
+
condition: SceneConditionSchema,
|
|
20921
|
+
capturedAt: external_exports.number(),
|
|
20922
|
+
thumbnailMediaId: external_exports.string().optional()
|
|
20923
|
+
});
|
|
20924
|
+
var SceneMonitorStateSchema = external_exports.object({
|
|
20925
|
+
id: external_exports.string(),
|
|
20926
|
+
label: external_exports.string(),
|
|
20927
|
+
references: external_exports.array(SceneReferenceSchema),
|
|
20928
|
+
textPrompts: external_exports.array(external_exports.string()).optional(),
|
|
20929
|
+
referenceCount: external_exports.number(),
|
|
20930
|
+
currentlyMatched: external_exports.boolean()
|
|
20931
|
+
});
|
|
20932
|
+
var SceneCheckSchema = external_exports.discriminatedUnion("mode", [external_exports.object({
|
|
20933
|
+
mode: external_exports.literal("similarity"),
|
|
20934
|
+
threshold: external_exports.number().min(0).max(1),
|
|
20935
|
+
hysteresisCount: external_exports.number().int().positive()
|
|
20936
|
+
}), external_exports.object({
|
|
20937
|
+
mode: external_exports.literal("llm"),
|
|
20938
|
+
prompt: external_exports.string(),
|
|
20939
|
+
profileId: external_exports.string().optional(),
|
|
20940
|
+
hysteresisCount: external_exports.number().int().positive()
|
|
20941
|
+
})]);
|
|
20942
|
+
var SceneMonitorSchema = external_exports.object({
|
|
20943
|
+
id: external_exports.string(),
|
|
20944
|
+
label: external_exports.string(),
|
|
20945
|
+
roi: MaskRectShapeSchema,
|
|
20946
|
+
enabled: external_exports.boolean(),
|
|
20947
|
+
triggerMode: external_exports.enum([
|
|
20948
|
+
"periodic",
|
|
20949
|
+
"on-motion",
|
|
20950
|
+
"both"
|
|
20951
|
+
]),
|
|
20952
|
+
checkIntervalSec: external_exports.number().optional(),
|
|
20953
|
+
check: SceneCheckSchema,
|
|
20954
|
+
states: external_exports.array(SceneMonitorStateSchema),
|
|
20955
|
+
currentStateId: external_exports.string().nullable(),
|
|
20956
|
+
lastCheckedAt: external_exports.number().nullable(),
|
|
20957
|
+
lastConfidence: external_exports.number().nullable(),
|
|
20958
|
+
currentCondition: SceneConditionSchema.nullable(),
|
|
20959
|
+
availability: external_exports.enum(["ok", "unavailable"]),
|
|
20960
|
+
unavailableReason: external_exports.string().nullable()
|
|
20961
|
+
});
|
|
20962
|
+
var SceneMonitorStatusSchema = external_exports.object({
|
|
20963
|
+
monitors: external_exports.array(SceneMonitorSchema),
|
|
20964
|
+
lastFetchedAt: external_exports.number()
|
|
20965
|
+
});
|
|
20966
|
+
var sceneMonitorCapability = {
|
|
20967
|
+
name: "scene-monitor",
|
|
20968
|
+
scope: "device",
|
|
20969
|
+
mode: "singleton",
|
|
20970
|
+
kind: "wrapper",
|
|
20971
|
+
defaultActive: true,
|
|
20972
|
+
deviceTypes: [DeviceType.Camera],
|
|
20973
|
+
deviceConfig: { ui: {
|
|
20974
|
+
kind: "widget",
|
|
20975
|
+
widgetId: "host/scene-monitor-editor",
|
|
20976
|
+
tab: "scenes",
|
|
20977
|
+
label: "Scenes"
|
|
20978
|
+
} },
|
|
20979
|
+
methods: {
|
|
20980
|
+
listScenes: method(external_exports.object({ deviceId: external_exports.number() }), SceneMonitorStatusSchema),
|
|
20981
|
+
createScene: method(external_exports.object({
|
|
20982
|
+
deviceId: external_exports.number(),
|
|
20983
|
+
label: external_exports.string(),
|
|
20984
|
+
roi: MaskRectShapeSchema,
|
|
20985
|
+
check: SceneCheckSchema,
|
|
20986
|
+
triggerMode: external_exports.enum([
|
|
20987
|
+
"periodic",
|
|
20988
|
+
"on-motion",
|
|
20989
|
+
"both"
|
|
20990
|
+
]).optional(),
|
|
20991
|
+
checkIntervalSec: external_exports.number().optional()
|
|
20992
|
+
}), SceneMonitorSchema, {
|
|
20993
|
+
kind: "mutation",
|
|
20994
|
+
auth: "admin"
|
|
20995
|
+
}),
|
|
20996
|
+
updateScene: method(external_exports.object({
|
|
20997
|
+
deviceId: external_exports.number(),
|
|
20998
|
+
monitorId: external_exports.string(),
|
|
20999
|
+
patch: external_exports.object({
|
|
21000
|
+
label: external_exports.string().optional(),
|
|
21001
|
+
roi: MaskRectShapeSchema.optional(),
|
|
21002
|
+
enabled: external_exports.boolean().optional(),
|
|
21003
|
+
triggerMode: external_exports.enum([
|
|
21004
|
+
"periodic",
|
|
21005
|
+
"on-motion",
|
|
21006
|
+
"both"
|
|
21007
|
+
]).optional(),
|
|
21008
|
+
checkIntervalSec: external_exports.number().optional(),
|
|
21009
|
+
check: SceneCheckSchema.optional()
|
|
21010
|
+
})
|
|
21011
|
+
}), external_exports.void(), {
|
|
21012
|
+
kind: "mutation",
|
|
21013
|
+
auth: "admin"
|
|
21014
|
+
}),
|
|
21015
|
+
deleteScene: method(external_exports.object({
|
|
21016
|
+
deviceId: external_exports.number(),
|
|
21017
|
+
monitorId: external_exports.string()
|
|
21018
|
+
}), external_exports.void(), {
|
|
21019
|
+
kind: "mutation",
|
|
21020
|
+
auth: "admin"
|
|
21021
|
+
}),
|
|
21022
|
+
captureReference: method(external_exports.object({
|
|
21023
|
+
deviceId: external_exports.number(),
|
|
21024
|
+
monitorId: external_exports.string(),
|
|
21025
|
+
stateId: external_exports.string().optional(),
|
|
21026
|
+
label: external_exports.string().optional(),
|
|
21027
|
+
condition: SceneConditionSchema.optional()
|
|
21028
|
+
}), external_exports.object({
|
|
21029
|
+
stateId: external_exports.string(),
|
|
21030
|
+
referenceCount: external_exports.number()
|
|
21031
|
+
}), {
|
|
21032
|
+
kind: "mutation",
|
|
21033
|
+
auth: "admin"
|
|
21034
|
+
}),
|
|
21035
|
+
deleteReference: method(external_exports.object({
|
|
21036
|
+
deviceId: external_exports.number(),
|
|
21037
|
+
monitorId: external_exports.string(),
|
|
21038
|
+
stateId: external_exports.string(),
|
|
21039
|
+
index: external_exports.number()
|
|
21040
|
+
}), external_exports.void(), {
|
|
21041
|
+
kind: "mutation",
|
|
21042
|
+
auth: "admin"
|
|
21043
|
+
}),
|
|
21044
|
+
recheckNow: method(external_exports.object({
|
|
21045
|
+
deviceId: external_exports.number(),
|
|
21046
|
+
monitorId: external_exports.string()
|
|
21047
|
+
}), external_exports.void(), {
|
|
21048
|
+
kind: "mutation",
|
|
21049
|
+
auth: "admin"
|
|
21050
|
+
})
|
|
21051
|
+
},
|
|
21052
|
+
status: {
|
|
21053
|
+
schema: SceneMonitorStatusSchema,
|
|
21054
|
+
kind: "push"
|
|
21055
|
+
},
|
|
21056
|
+
runtimeState: SceneMonitorStatusSchema
|
|
21057
|
+
};
|
|
20890
21058
|
var ScriptRunnerStatusSchema = external_exports.object({
|
|
20891
21059
|
/** Whether the script is currently executing. */
|
|
20892
21060
|
isRunning: external_exports.boolean(),
|
|
@@ -21475,6 +21643,28 @@ var ZoneScopeBreakdownSchema = PerScopeBreakdownSchema.extend({
|
|
|
21475
21643
|
* with the per-track detail panel and live overlay. */
|
|
21476
21644
|
trackIds: external_exports.array(external_exports.string()).readonly()
|
|
21477
21645
|
});
|
|
21646
|
+
var StationaryObjectSchema = external_exports.object({
|
|
21647
|
+
id: external_exports.string(),
|
|
21648
|
+
className: external_exports.string(),
|
|
21649
|
+
bbox: external_exports.object({
|
|
21650
|
+
x: external_exports.number(),
|
|
21651
|
+
y: external_exports.number(),
|
|
21652
|
+
w: external_exports.number(),
|
|
21653
|
+
h: external_exports.number()
|
|
21654
|
+
}),
|
|
21655
|
+
frameWidth: external_exports.number().int().nonnegative(),
|
|
21656
|
+
frameHeight: external_exports.number().int().nonnegative(),
|
|
21657
|
+
/** When the source track was first seen. */
|
|
21658
|
+
firstSeenAt: external_exports.number().int(),
|
|
21659
|
+
/** When the object was recognised as parked (promotion time). */
|
|
21660
|
+
becameStationaryAt: external_exports.number().int(),
|
|
21661
|
+
/** Last frame a detection confirmed the object is still there. */
|
|
21662
|
+
lastConfirmedAt: external_exports.number().int(),
|
|
21663
|
+
/** Enrichment label carried from the source track (identity / plate). */
|
|
21664
|
+
label: external_exports.string().optional(),
|
|
21665
|
+
/** Native-resolution key-frame media key for the parked object's best image. */
|
|
21666
|
+
keyFrameMediaKey: external_exports.string().optional()
|
|
21667
|
+
});
|
|
21478
21668
|
var CameraOccupancySnapshotSchema = external_exports.object({
|
|
21479
21669
|
/** Frame timestamp of the inference result that produced this snapshot. */
|
|
21480
21670
|
ts: external_exports.number().int(),
|
|
@@ -21483,10 +21673,15 @@ var CameraOccupancySnapshotSchema = external_exports.object({
|
|
|
21483
21673
|
frameHeight: external_exports.number().int().nonnegative(),
|
|
21484
21674
|
/** Per-zone breakdown — one entry per defined zone (user + onboard). */
|
|
21485
21675
|
zones: external_exports.array(ZoneScopeBreakdownSchema).readonly(),
|
|
21486
|
-
/** Frame-wide aggregate (everywhere, regardless of zone membership).
|
|
21676
|
+
/** Frame-wide aggregate (everywhere, regardless of zone membership).
|
|
21677
|
+
* INCLUDES currently-confirmed stationary objects (they are still present). */
|
|
21487
21678
|
frame: PerScopeBreakdownSchema,
|
|
21488
21679
|
/** Detections that landed outside every zone. Empty when no zones defined. */
|
|
21489
|
-
unzoned: PerScopeBreakdownSchema
|
|
21680
|
+
unzoned: PerScopeBreakdownSchema,
|
|
21681
|
+
/** Parked objects on this camera (additive — absent on legacy snapshots).
|
|
21682
|
+
* Surfaced separately so the UI shows them in a dedicated section rather
|
|
21683
|
+
* than as repeated tracks/events. */
|
|
21684
|
+
stationaryObjects: external_exports.array(StationaryObjectSchema).readonly().optional()
|
|
21490
21685
|
});
|
|
21491
21686
|
var HistoryResolutionEnum = external_exports.enum([
|
|
21492
21687
|
"minute",
|
|
@@ -22291,7 +22486,12 @@ var NotificationRuleConditionsSchema = external_exports.object({
|
|
|
22291
22486
|
clipDescription: external_exports.object({
|
|
22292
22487
|
text: external_exports.string().min(1),
|
|
22293
22488
|
minSimilarity: external_exports.number().min(0).max(1)
|
|
22294
|
-
}).optional()
|
|
22489
|
+
}).optional(),
|
|
22490
|
+
/** Match events whose recognized-entity label (face identity name or plate
|
|
22491
|
+
* vehicle name, propagated onto `event.data.label`) is one of these values.
|
|
22492
|
+
* Empty/absent → unaffected (back-compat). Enables "notify me when <named
|
|
22493
|
+
* vehicle/person> is seen". */
|
|
22494
|
+
labels: external_exports.array(external_exports.string()).readonly().optional()
|
|
22295
22495
|
});
|
|
22296
22496
|
var NotificationRuleTemplateSchema = external_exports.object({
|
|
22297
22497
|
title: external_exports.string(),
|
|
@@ -22649,7 +22849,23 @@ var WidgetLoginMethodSchema = external_exports.object({
|
|
|
22649
22849
|
remote: WidgetRemoteSchema,
|
|
22650
22850
|
stage: LoginStageEnum
|
|
22651
22851
|
});
|
|
22652
|
-
var
|
|
22852
|
+
var PasskeyLoginMethodSchema = external_exports.object({
|
|
22853
|
+
kind: external_exports.literal("passkey"),
|
|
22854
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-direct-login`). */
|
|
22855
|
+
id: external_exports.string(),
|
|
22856
|
+
/** Operator-facing button label. */
|
|
22857
|
+
label: external_exports.string(),
|
|
22858
|
+
stage: LoginStageEnum,
|
|
22859
|
+
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
22860
|
+
rpId: external_exports.string(),
|
|
22861
|
+
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
22862
|
+
origin: external_exports.string().nullable()
|
|
22863
|
+
});
|
|
22864
|
+
var LoginMethodContributionSchema = external_exports.discriminatedUnion("kind", [
|
|
22865
|
+
RedirectLoginMethodSchema,
|
|
22866
|
+
WidgetLoginMethodSchema,
|
|
22867
|
+
PasskeyLoginMethodSchema
|
|
22868
|
+
]);
|
|
22653
22869
|
var loginMethodCapability = {
|
|
22654
22870
|
name: "login-method",
|
|
22655
22871
|
scope: "system",
|
|
@@ -23527,6 +23743,13 @@ var ConfigEntrySchema2 = external_exports.object({
|
|
|
23527
23743
|
value: external_exports.unknown(),
|
|
23528
23744
|
description: external_exports.string().optional()
|
|
23529
23745
|
});
|
|
23746
|
+
var DeviceLinkModeSchema = external_exports.enum(["auto", "manual"]);
|
|
23747
|
+
var LinkedDeviceSchema = external_exports.object({
|
|
23748
|
+
deviceId: external_exports.number(),
|
|
23749
|
+
name: external_exports.string(),
|
|
23750
|
+
location: external_exports.string().nullable(),
|
|
23751
|
+
features: external_exports.array(external_exports.string())
|
|
23752
|
+
});
|
|
23530
23753
|
var SavedDeviceRowSchema = external_exports.object({
|
|
23531
23754
|
/** Numeric id reserved at allocateDeviceId time. */
|
|
23532
23755
|
id: external_exports.number(),
|
|
@@ -23629,6 +23852,7 @@ var deviceManagerCapability = {
|
|
|
23629
23852
|
name: "device-manager",
|
|
23630
23853
|
scope: "system",
|
|
23631
23854
|
mode: "singleton",
|
|
23855
|
+
exposesDeviceSettings: true,
|
|
23632
23856
|
methods: {
|
|
23633
23857
|
/** Reserve (or re-resolve) a progressive numeric id for `(addonId, stableId)`.
|
|
23634
23858
|
* Idempotent: returns the existing id if one is already persisted for the
|
|
@@ -23879,6 +24103,19 @@ var deviceManagerCapability = {
|
|
|
23879
24103
|
getDevice: method(external_exports.object({ deviceId: external_exports.number() }), DeviceInfoSchema.nullable()),
|
|
23880
24104
|
/** List children of a parent device (by parent numeric id). */
|
|
23881
24105
|
getChildren: method(external_exports.object({ parentDeviceId: external_exports.number() }), external_exports.array(DeviceInfoSchema)),
|
|
24106
|
+
/**
|
|
24107
|
+
* Resolve the devices LINKED to a camera — the single policy authority
|
|
24108
|
+
* both consumers call (viewer devices panel + pipeline-analytics event
|
|
24109
|
+
* kinds/ingest). Device-tree children are ALWAYS included; mode 'auto'
|
|
24110
|
+
* (default) adds every device sharing the camera's non-null `location`,
|
|
24111
|
+
* mode 'manual' adds the persisted manual list instead. Excludes the
|
|
24112
|
+
* camera itself; deduped. Configuration is standard per-device settings
|
|
24113
|
+
* (see the module docblock) — there are no bespoke link mutations.
|
|
24114
|
+
*/
|
|
24115
|
+
getLinkedDevices: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.object({
|
|
24116
|
+
mode: DeviceLinkModeSchema,
|
|
24117
|
+
devices: external_exports.array(LinkedDeviceSchema)
|
|
24118
|
+
})),
|
|
23882
24119
|
/** Get stream sources for a camera device. */
|
|
23883
24120
|
getStreamSources: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(StreamSourceEntrySchema$1)),
|
|
23884
24121
|
/** Get config entries (key + value + description) for a device. */
|
|
@@ -24850,14 +25087,14 @@ var TargetKindCapsSchema = external_exports.object({
|
|
|
24850
25087
|
ttl: external_exports.boolean(),
|
|
24851
25088
|
bodyMaxLen: external_exports.number().int().positive()
|
|
24852
25089
|
});
|
|
24853
|
-
var ConfigSchemaPassthrough = external_exports.unknown();
|
|
25090
|
+
var ConfigSchemaPassthrough$1 = external_exports.unknown();
|
|
24854
25091
|
var TargetKindSchema = external_exports.object({
|
|
24855
25092
|
kind: external_exports.string(),
|
|
24856
25093
|
label: external_exports.string(),
|
|
24857
25094
|
icon: external_exports.string(),
|
|
24858
25095
|
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
24859
25096
|
addonId: external_exports.string(),
|
|
24860
|
-
configSchema: ConfigSchemaPassthrough,
|
|
25097
|
+
configSchema: ConfigSchemaPassthrough$1,
|
|
24861
25098
|
supportsDiscovery: external_exports.boolean(),
|
|
24862
25099
|
caps: TargetKindCapsSchema
|
|
24863
25100
|
});
|
|
@@ -24915,6 +25152,305 @@ var notificationOutputCapability = {
|
|
|
24915
25152
|
}), external_exports.void(), { kind: "mutation" })
|
|
24916
25153
|
}
|
|
24917
25154
|
};
|
|
25155
|
+
var LlmUsageSchema = external_exports.object({
|
|
25156
|
+
inputTokens: external_exports.number(),
|
|
25157
|
+
outputTokens: external_exports.number()
|
|
25158
|
+
});
|
|
25159
|
+
var LlmErrorCodeSchema = external_exports.enum([
|
|
25160
|
+
"timeout",
|
|
25161
|
+
"rate-limited",
|
|
25162
|
+
"auth",
|
|
25163
|
+
"refusal",
|
|
25164
|
+
"bad-request",
|
|
25165
|
+
"unavailable",
|
|
25166
|
+
"no-profile",
|
|
25167
|
+
"budget-exceeded",
|
|
25168
|
+
"adapter-error"
|
|
25169
|
+
]);
|
|
25170
|
+
var LlmGenerateOkSchema = external_exports.object({
|
|
25171
|
+
ok: external_exports.literal(true),
|
|
25172
|
+
text: external_exports.string(),
|
|
25173
|
+
model: external_exports.string(),
|
|
25174
|
+
usage: LlmUsageSchema,
|
|
25175
|
+
truncated: external_exports.boolean(),
|
|
25176
|
+
latencyMs: external_exports.number()
|
|
25177
|
+
});
|
|
25178
|
+
var LlmGenerateErrSchema = external_exports.object({
|
|
25179
|
+
ok: external_exports.literal(false),
|
|
25180
|
+
code: LlmErrorCodeSchema,
|
|
25181
|
+
message: external_exports.string(),
|
|
25182
|
+
retryAfterMs: external_exports.number().optional()
|
|
25183
|
+
});
|
|
25184
|
+
var LlmGenerateResultSchema = external_exports.discriminatedUnion("ok", [LlmGenerateOkSchema, LlmGenerateErrSchema]);
|
|
25185
|
+
var LlmImageSchema = external_exports.object({
|
|
25186
|
+
bytes: external_exports.instanceof(Uint8Array),
|
|
25187
|
+
mimeType: external_exports.string()
|
|
25188
|
+
});
|
|
25189
|
+
var LlmGenerateBaseInputSchema = external_exports.object({
|
|
25190
|
+
/** Collection routing (the notification-output posture). */
|
|
25191
|
+
addonId: external_exports.string().optional(),
|
|
25192
|
+
/** Explicit profile; else the resolution chain (spec §3). */
|
|
25193
|
+
profileId: external_exports.string().optional(),
|
|
25194
|
+
/** MANDATORY usage tag: 'ai-summary', 'notifier-rules', 'adhoc-ui', … */
|
|
25195
|
+
consumer: external_exports.string(),
|
|
25196
|
+
system: external_exports.string().optional(),
|
|
25197
|
+
/** v1: single-turn. `messages[]` is a v2 additive field. */
|
|
25198
|
+
prompt: external_exports.string(),
|
|
25199
|
+
/** Structured output — adapter-mapped (response_format / forced tool / responseSchema). */
|
|
25200
|
+
jsonSchema: external_exports.record(external_exports.string(), external_exports.unknown()).optional(),
|
|
25201
|
+
/** Per-call override of the profile default. */
|
|
25202
|
+
maxTokens: external_exports.number().int().positive().optional(),
|
|
25203
|
+
temperature: external_exports.number().optional()
|
|
25204
|
+
});
|
|
25205
|
+
var ManagedModelRefSchema = external_exports.discriminatedUnion("kind", [
|
|
25206
|
+
external_exports.object({
|
|
25207
|
+
kind: external_exports.literal("catalog"),
|
|
25208
|
+
catalogId: external_exports.string()
|
|
25209
|
+
}),
|
|
25210
|
+
external_exports.object({
|
|
25211
|
+
kind: external_exports.literal("url"),
|
|
25212
|
+
url: external_exports.string(),
|
|
25213
|
+
sha256: external_exports.string().optional()
|
|
25214
|
+
}),
|
|
25215
|
+
external_exports.object({
|
|
25216
|
+
kind: external_exports.literal("path"),
|
|
25217
|
+
path: external_exports.string()
|
|
25218
|
+
})
|
|
25219
|
+
]);
|
|
25220
|
+
var ManagedRuntimeConfigSchema = external_exports.object({
|
|
25221
|
+
/** WHERE the runtime lives — hub or any agent. */
|
|
25222
|
+
nodeId: external_exports.string(),
|
|
25223
|
+
/** Closed for v1; 'ollama' is a v2 candidate. */
|
|
25224
|
+
engine: external_exports.enum(["llama-cpp"]),
|
|
25225
|
+
model: ManagedModelRefSchema,
|
|
25226
|
+
contextSize: external_exports.number().int().default(4096),
|
|
25227
|
+
/** 0 = CPU-only. */
|
|
25228
|
+
gpuLayers: external_exports.number().int().default(0),
|
|
25229
|
+
/** Default: cpus-2, clamped ≥1 (resolved node-side). */
|
|
25230
|
+
threads: external_exports.number().int().optional(),
|
|
25231
|
+
/** Concurrent slots. */
|
|
25232
|
+
parallel: external_exports.number().int().default(1),
|
|
25233
|
+
/** Else lazy: first generate boots it. */
|
|
25234
|
+
autoStart: external_exports.boolean().default(false),
|
|
25235
|
+
/** 0 = never; frees RAM after quiet periods. */
|
|
25236
|
+
idleStopMinutes: external_exports.number().int().default(30)
|
|
25237
|
+
});
|
|
25238
|
+
var LlmRuntimeStatusSchema = external_exports.object({
|
|
25239
|
+
/** Status is ALWAYS node-qualified. */
|
|
25240
|
+
nodeId: external_exports.string(),
|
|
25241
|
+
state: external_exports.enum([
|
|
25242
|
+
"stopped",
|
|
25243
|
+
"downloading",
|
|
25244
|
+
"starting",
|
|
25245
|
+
"ready",
|
|
25246
|
+
"crashed",
|
|
25247
|
+
"failed"
|
|
25248
|
+
]),
|
|
25249
|
+
pid: external_exports.number().optional(),
|
|
25250
|
+
port: external_exports.number().optional(),
|
|
25251
|
+
modelPath: external_exports.string().optional(),
|
|
25252
|
+
modelId: external_exports.string().optional(),
|
|
25253
|
+
downloadProgress: external_exports.number().min(0).max(1).optional(),
|
|
25254
|
+
lastError: external_exports.string().optional(),
|
|
25255
|
+
crashesInWindow: external_exports.number(),
|
|
25256
|
+
/** Child RSS (sampled best-effort). */
|
|
25257
|
+
memoryBytes: external_exports.number().optional(),
|
|
25258
|
+
vramBytes: external_exports.number().optional()
|
|
25259
|
+
});
|
|
25260
|
+
var LlmNodeModelSchema = external_exports.object({
|
|
25261
|
+
file: external_exports.string(),
|
|
25262
|
+
sizeBytes: external_exports.number(),
|
|
25263
|
+
catalogId: external_exports.string().optional(),
|
|
25264
|
+
installedAt: external_exports.number().optional()
|
|
25265
|
+
});
|
|
25266
|
+
var LlmRuntimeDiskUsageSchema = external_exports.object({
|
|
25267
|
+
nodeId: external_exports.string(),
|
|
25268
|
+
modelsBytes: external_exports.number(),
|
|
25269
|
+
freeBytes: external_exports.number().optional()
|
|
25270
|
+
});
|
|
25271
|
+
var LlmRuntimeCompleteInputSchema = LlmGenerateBaseInputSchema.extend({
|
|
25272
|
+
images: external_exports.array(LlmImageSchema).optional(),
|
|
25273
|
+
runtime: ManagedRuntimeConfigSchema,
|
|
25274
|
+
/** The managed profile's timeout, threaded by the hub provider. */
|
|
25275
|
+
timeoutMs: external_exports.number().int().positive().optional()
|
|
25276
|
+
});
|
|
25277
|
+
var llmRuntimeCapability = {
|
|
25278
|
+
name: "llm-runtime",
|
|
25279
|
+
scope: "system",
|
|
25280
|
+
mode: "singleton",
|
|
25281
|
+
internal: true,
|
|
25282
|
+
methods: {
|
|
25283
|
+
complete: method(LlmRuntimeCompleteInputSchema, LlmGenerateResultSchema, { kind: "mutation" }),
|
|
25284
|
+
ensureStarted: method(external_exports.object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
25285
|
+
kind: "mutation",
|
|
25286
|
+
auth: "admin"
|
|
25287
|
+
}),
|
|
25288
|
+
stop: method(external_exports.object({}), external_exports.void(), {
|
|
25289
|
+
kind: "mutation",
|
|
25290
|
+
auth: "admin"
|
|
25291
|
+
}),
|
|
25292
|
+
status: method(external_exports.object({}), LlmRuntimeStatusSchema),
|
|
25293
|
+
installModel: method(external_exports.object({ model: ManagedModelRefSchema }), external_exports.void(), {
|
|
25294
|
+
kind: "mutation",
|
|
25295
|
+
auth: "admin"
|
|
25296
|
+
}),
|
|
25297
|
+
deleteModel: method(external_exports.object({ file: external_exports.string() }), external_exports.void(), {
|
|
25298
|
+
kind: "mutation",
|
|
25299
|
+
auth: "admin"
|
|
25300
|
+
}),
|
|
25301
|
+
listLocalModels: method(external_exports.object({}), external_exports.array(LlmNodeModelSchema)),
|
|
25302
|
+
getDiskUsage: method(external_exports.object({}), LlmRuntimeDiskUsageSchema)
|
|
25303
|
+
}
|
|
25304
|
+
};
|
|
25305
|
+
var LlmProfileKindSchema = external_exports.enum([
|
|
25306
|
+
"openai-compatible",
|
|
25307
|
+
"openai",
|
|
25308
|
+
"anthropic",
|
|
25309
|
+
"google",
|
|
25310
|
+
"managed-local"
|
|
25311
|
+
]);
|
|
25312
|
+
var LlmProfileSchema = external_exports.object({
|
|
25313
|
+
id: external_exports.string(),
|
|
25314
|
+
name: external_exports.string(),
|
|
25315
|
+
kind: LlmProfileKindSchema,
|
|
25316
|
+
/** Stamped by the provider — keeps the fanned catalog routable. */
|
|
25317
|
+
addonId: external_exports.string(),
|
|
25318
|
+
enabled: external_exports.boolean(),
|
|
25319
|
+
/** Vendor model id, or the managed runtime's loaded model. */
|
|
25320
|
+
model: external_exports.string(),
|
|
25321
|
+
/** Required for openai-compatible; override for cloud kinds. */
|
|
25322
|
+
baseUrl: external_exports.string().optional(),
|
|
25323
|
+
/** ConfigUISchema type:'password' — never round-trips (spec §5). */
|
|
25324
|
+
apiKey: external_exports.string().optional(),
|
|
25325
|
+
supportsVision: external_exports.boolean(),
|
|
25326
|
+
temperature: external_exports.number().min(0).max(2).optional(),
|
|
25327
|
+
maxTokens: external_exports.number().int().positive().optional(),
|
|
25328
|
+
timeoutMs: external_exports.number().int().positive().default(6e4),
|
|
25329
|
+
extraHeaders: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
25330
|
+
/** kind === 'managed-local' only (spec §4). */
|
|
25331
|
+
runtime: ManagedRuntimeConfigSchema.optional()
|
|
25332
|
+
});
|
|
25333
|
+
var ConfigSchemaPassthrough = external_exports.unknown();
|
|
25334
|
+
var LlmProfileKindDescriptorSchema = external_exports.object({
|
|
25335
|
+
kind: LlmProfileKindSchema,
|
|
25336
|
+
label: external_exports.string(),
|
|
25337
|
+
icon: external_exports.string(),
|
|
25338
|
+
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
25339
|
+
addonId: external_exports.string(),
|
|
25340
|
+
configSchema: ConfigSchemaPassthrough
|
|
25341
|
+
});
|
|
25342
|
+
var LlmDefaultSelectorSchema = external_exports.union([external_exports.object({ consumer: external_exports.string() }), external_exports.object({ purpose: external_exports.enum(["text", "vision"]) })]);
|
|
25343
|
+
var LlmDefaultSchema = external_exports.object({
|
|
25344
|
+
selector: LlmDefaultSelectorSchema,
|
|
25345
|
+
profileId: external_exports.string()
|
|
25346
|
+
});
|
|
25347
|
+
var LlmUsageRollupSchema = external_exports.object({
|
|
25348
|
+
day: external_exports.string(),
|
|
25349
|
+
consumer: external_exports.string(),
|
|
25350
|
+
profileId: external_exports.string(),
|
|
25351
|
+
calls: external_exports.number(),
|
|
25352
|
+
okCalls: external_exports.number(),
|
|
25353
|
+
errorCalls: external_exports.number(),
|
|
25354
|
+
inputTokens: external_exports.number(),
|
|
25355
|
+
outputTokens: external_exports.number(),
|
|
25356
|
+
avgLatencyMs: external_exports.number()
|
|
25357
|
+
});
|
|
25358
|
+
var ManagedModelCatalogEntrySchema = external_exports.object({
|
|
25359
|
+
id: external_exports.string(),
|
|
25360
|
+
label: external_exports.string(),
|
|
25361
|
+
family: external_exports.string(),
|
|
25362
|
+
purpose: external_exports.enum(["text", "vision"]),
|
|
25363
|
+
url: external_exports.string(),
|
|
25364
|
+
sha256: external_exports.string(),
|
|
25365
|
+
sizeBytes: external_exports.number(),
|
|
25366
|
+
quantization: external_exports.string(),
|
|
25367
|
+
/** Load-time guidance shown in the picker. */
|
|
25368
|
+
minRamBytes: external_exports.number(),
|
|
25369
|
+
contextSizeDefault: external_exports.number().int(),
|
|
25370
|
+
/** Vision models: companion projector file. */
|
|
25371
|
+
mmprojUrl: external_exports.string().optional()
|
|
25372
|
+
});
|
|
25373
|
+
var LlmRuntimeNodeSchema = external_exports.object({
|
|
25374
|
+
nodeId: external_exports.string(),
|
|
25375
|
+
reachable: external_exports.boolean(),
|
|
25376
|
+
status: LlmRuntimeStatusSchema.optional(),
|
|
25377
|
+
disk: LlmRuntimeDiskUsageSchema.optional(),
|
|
25378
|
+
error: external_exports.string().optional()
|
|
25379
|
+
});
|
|
25380
|
+
var GenerateVisionInputSchema = LlmGenerateBaseInputSchema.extend({ images: external_exports.array(LlmImageSchema).min(1) });
|
|
25381
|
+
var ProfileRefInputSchema = external_exports.object({
|
|
25382
|
+
addonId: external_exports.string(),
|
|
25383
|
+
profileId: external_exports.string()
|
|
25384
|
+
});
|
|
25385
|
+
var llmCapability = {
|
|
25386
|
+
name: "llm",
|
|
25387
|
+
scope: "system",
|
|
25388
|
+
mode: "collection",
|
|
25389
|
+
internal: false,
|
|
25390
|
+
providerKind: "ai",
|
|
25391
|
+
/** `nodeId` inputs below are DATA (the hub provider pins itself), never routing. */
|
|
25392
|
+
nodeIdMode: "data",
|
|
25393
|
+
methods: {
|
|
25394
|
+
generate: method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }),
|
|
25395
|
+
generateVision: method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }),
|
|
25396
|
+
listProfileKinds: method(external_exports.object({}), external_exports.array(LlmProfileKindDescriptorSchema)),
|
|
25397
|
+
listProfiles: method(external_exports.object({}), external_exports.array(LlmProfileSchema)),
|
|
25398
|
+
upsertProfile: method(external_exports.object({ profile: LlmProfileSchema }), LlmProfileSchema, {
|
|
25399
|
+
kind: "mutation",
|
|
25400
|
+
auth: "admin"
|
|
25401
|
+
}),
|
|
25402
|
+
deleteProfile: method(ProfileRefInputSchema, external_exports.void(), {
|
|
25403
|
+
kind: "mutation",
|
|
25404
|
+
auth: "admin"
|
|
25405
|
+
}),
|
|
25406
|
+
testProfile: method(ProfileRefInputSchema, LlmGenerateResultSchema, {
|
|
25407
|
+
kind: "mutation",
|
|
25408
|
+
auth: "admin"
|
|
25409
|
+
}),
|
|
25410
|
+
/** Live vendor enumeration (GET /models etc.). */
|
|
25411
|
+
listModels: method(ProfileRefInputSchema, external_exports.array(external_exports.string())),
|
|
25412
|
+
getDefaults: method(external_exports.object({}), external_exports.array(LlmDefaultSchema)),
|
|
25413
|
+
setDefault: method(external_exports.object({
|
|
25414
|
+
selector: LlmDefaultSelectorSchema,
|
|
25415
|
+
profileId: external_exports.string().nullable()
|
|
25416
|
+
}), external_exports.void(), {
|
|
25417
|
+
kind: "mutation",
|
|
25418
|
+
auth: "admin"
|
|
25419
|
+
}),
|
|
25420
|
+
getUsage: method(external_exports.object({
|
|
25421
|
+
since: external_exports.number().optional(),
|
|
25422
|
+
until: external_exports.number().optional(),
|
|
25423
|
+
consumer: external_exports.string().optional(),
|
|
25424
|
+
profileId: external_exports.string().optional()
|
|
25425
|
+
}), external_exports.array(LlmUsageRollupSchema)),
|
|
25426
|
+
listModelCatalog: method(external_exports.object({}), external_exports.array(ManagedModelCatalogEntrySchema)),
|
|
25427
|
+
listRuntimeNodes: method(external_exports.object({}), external_exports.array(LlmRuntimeNodeSchema)),
|
|
25428
|
+
listNodeModels: method(external_exports.object({ nodeId: external_exports.string() }), external_exports.array(LlmNodeModelSchema)),
|
|
25429
|
+
installModel: method(external_exports.object({
|
|
25430
|
+
nodeId: external_exports.string(),
|
|
25431
|
+
model: ManagedModelRefSchema
|
|
25432
|
+
}), external_exports.void(), {
|
|
25433
|
+
kind: "mutation",
|
|
25434
|
+
auth: "admin"
|
|
25435
|
+
}),
|
|
25436
|
+
deleteModel: method(external_exports.object({
|
|
25437
|
+
nodeId: external_exports.string(),
|
|
25438
|
+
file: external_exports.string()
|
|
25439
|
+
}), external_exports.void(), {
|
|
25440
|
+
kind: "mutation",
|
|
25441
|
+
auth: "admin"
|
|
25442
|
+
}),
|
|
25443
|
+
getRuntimeStatus: method(ProfileRefInputSchema, LlmRuntimeStatusSchema),
|
|
25444
|
+
startRuntime: method(ProfileRefInputSchema, LlmRuntimeStatusSchema, {
|
|
25445
|
+
kind: "mutation",
|
|
25446
|
+
auth: "admin"
|
|
25447
|
+
}),
|
|
25448
|
+
stopRuntime: method(ProfileRefInputSchema, external_exports.void(), {
|
|
25449
|
+
kind: "mutation",
|
|
25450
|
+
auth: "admin"
|
|
25451
|
+
})
|
|
25452
|
+
}
|
|
25453
|
+
};
|
|
24918
25454
|
var MethodAccessSchema = external_exports.enum([
|
|
24919
25455
|
"view",
|
|
24920
25456
|
"create",
|
|
@@ -25032,6 +25568,55 @@ var EventKindSchema = external_exports.enum([
|
|
|
25032
25568
|
"object",
|
|
25033
25569
|
"audio"
|
|
25034
25570
|
]);
|
|
25571
|
+
var TrackZoneFilterSchema = external_exports.discriminatedUnion("kind", [MaskRectShapeSchema, MaskPolygonShapeSchema]);
|
|
25572
|
+
var EventKindIconSchema = external_exports.enum([
|
|
25573
|
+
"motion",
|
|
25574
|
+
"audio",
|
|
25575
|
+
"person",
|
|
25576
|
+
"vehicle",
|
|
25577
|
+
"animal",
|
|
25578
|
+
"door",
|
|
25579
|
+
"pir",
|
|
25580
|
+
"smoke",
|
|
25581
|
+
"water",
|
|
25582
|
+
"button",
|
|
25583
|
+
"generic"
|
|
25584
|
+
]);
|
|
25585
|
+
var EventKindCategorySchema = external_exports.enum([
|
|
25586
|
+
"motion",
|
|
25587
|
+
"audio",
|
|
25588
|
+
"detection",
|
|
25589
|
+
"sensor",
|
|
25590
|
+
"custom"
|
|
25591
|
+
]);
|
|
25592
|
+
var EventKindDescriptorSchema = external_exports.object({
|
|
25593
|
+
/** Stable kind id (e.g. 'motion', 'person', 'contact'). */
|
|
25594
|
+
kind: external_exports.string(),
|
|
25595
|
+
label: external_exports.string(),
|
|
25596
|
+
/** Hex color for timeline/legend rendering. */
|
|
25597
|
+
color: external_exports.string(),
|
|
25598
|
+
icon: EventKindIconSchema,
|
|
25599
|
+
category: EventKindCategorySchema,
|
|
25600
|
+
/** Which cap + device contributes this kind. For built-ins the camera
|
|
25601
|
+
* itself; for sensor kinds the LINKED source device. */
|
|
25602
|
+
source: external_exports.object({
|
|
25603
|
+
capName: external_exports.string(),
|
|
25604
|
+
deviceId: external_exports.number()
|
|
25605
|
+
})
|
|
25606
|
+
});
|
|
25607
|
+
var SensorEventSchema = external_exports.object({
|
|
25608
|
+
id: external_exports.string(),
|
|
25609
|
+
/** The CAMERA the event is attributed to (a sensor linked to N cameras
|
|
25610
|
+
* yields N rows, one per camera). */
|
|
25611
|
+
deviceId: external_exports.number(),
|
|
25612
|
+
/** The linked sensor device whose state changed. */
|
|
25613
|
+
sourceDeviceId: external_exports.number(),
|
|
25614
|
+
/** Event kind id — matches an `EventKindDescriptor.kind`. */
|
|
25615
|
+
kind: external_exports.string(),
|
|
25616
|
+
/** Snapshot of the sensor cap's runtime-state slice at the change. */
|
|
25617
|
+
value: external_exports.record(external_exports.string(), external_exports.unknown()).nullable(),
|
|
25618
|
+
timestamp: external_exports.number()
|
|
25619
|
+
});
|
|
25035
25620
|
var TrackPositionSchema = external_exports.object({
|
|
25036
25621
|
x: external_exports.number(),
|
|
25037
25622
|
y: external_exports.number(),
|
|
@@ -25044,6 +25629,22 @@ var TrackSnapshotSchema = external_exports.object({
|
|
|
25044
25629
|
/** MediaStore key; resolve via `getTrackMedia({ trackId })`. */
|
|
25045
25630
|
mediaKey: external_exports.string()
|
|
25046
25631
|
});
|
|
25632
|
+
var TrackEnvelopeSchema = external_exports.object({
|
|
25633
|
+
minX: external_exports.number(),
|
|
25634
|
+
minY: external_exports.number(),
|
|
25635
|
+
maxX: external_exports.number(),
|
|
25636
|
+
maxY: external_exports.number()
|
|
25637
|
+
});
|
|
25638
|
+
var TrackProjectionSchema = external_exports.enum(["full", "slim"]);
|
|
25639
|
+
var TrackAudioLabelSchema = external_exports.object({
|
|
25640
|
+
label: external_exports.string(),
|
|
25641
|
+
/** Highest classification score observed across the label's episodes. */
|
|
25642
|
+
peakScore: external_exports.number(),
|
|
25643
|
+
/** Number of coalesced audio-event episodes carrying this label. */
|
|
25644
|
+
count: external_exports.number(),
|
|
25645
|
+
firstAt: external_exports.number(),
|
|
25646
|
+
lastAt: external_exports.number()
|
|
25647
|
+
});
|
|
25047
25648
|
var TrackSchema = external_exports.object({
|
|
25048
25649
|
trackId: external_exports.string(),
|
|
25049
25650
|
deviceId: external_exports.number(),
|
|
@@ -25058,6 +25659,10 @@ var TrackSchema = external_exports.object({
|
|
|
25058
25659
|
snapshots: external_exports.array(TrackSnapshotSchema).readonly(),
|
|
25059
25660
|
/** Deduplicated zones the track has entered at least once. */
|
|
25060
25661
|
zonesVisited: external_exports.array(external_exports.string()).readonly(),
|
|
25662
|
+
/** Deduplicated set of detector classes observed for this track over its
|
|
25663
|
+
* life (a track may be reclassified, e.g. person→vehicle). Absent on
|
|
25664
|
+
* legacy rows written before class accumulation shipped. */
|
|
25665
|
+
classes: external_exports.array(external_exports.string()).readonly().optional(),
|
|
25061
25666
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
25062
25667
|
totalDistance: external_exports.number(),
|
|
25063
25668
|
state: TrackStateSchema,
|
|
@@ -25071,7 +25676,15 @@ var TrackSchema = external_exports.object({
|
|
|
25071
25676
|
bestEventId: external_exports.string().optional(),
|
|
25072
25677
|
/** Tag of the importance sub-signal that dominated the score
|
|
25073
25678
|
* (identity|dwell|proximity|class|confidence|travel|zone). */
|
|
25074
|
-
importanceReason: external_exports.string().optional()
|
|
25679
|
+
importanceReason: external_exports.string().optional(),
|
|
25680
|
+
/** Audio-classification labels heard on the camera during the track's
|
|
25681
|
+
* life (score ≥ device `classificationMinScore`), aggregated per label.
|
|
25682
|
+
* Absent on legacy rows / tracks with no confident audio. */
|
|
25683
|
+
audioLabels: external_exports.array(TrackAudioLabelSchema).readonly().optional(),
|
|
25684
|
+
/** Normalized 0..1 trajectory envelope (see {@link TrackEnvelopeSchema}).
|
|
25685
|
+
* Populated from the persisted envelope columns on historical reads;
|
|
25686
|
+
* absent on legacy rows, dims-less tracks and active (in-RAM) tracks. */
|
|
25687
|
+
envelope: TrackEnvelopeSchema.optional()
|
|
25075
25688
|
});
|
|
25076
25689
|
var BaseEventFields = {
|
|
25077
25690
|
id: external_exports.string(),
|
|
@@ -25173,11 +25786,13 @@ var MediaFileSchema = external_exports.object({
|
|
|
25173
25786
|
sizeBytes: external_exports.number(),
|
|
25174
25787
|
timestamp: external_exports.number()
|
|
25175
25788
|
});
|
|
25789
|
+
var DEFAULT_EVENT_QUERY_LIMIT = 1e3;
|
|
25790
|
+
var MAX_EVENT_QUERY_LIMIT = 5e3;
|
|
25176
25791
|
var DeviceEventQueryInput = external_exports.object({
|
|
25177
25792
|
deviceId: external_exports.number(),
|
|
25178
25793
|
since: external_exports.number().optional(),
|
|
25179
25794
|
until: external_exports.number().optional(),
|
|
25180
|
-
limit: external_exports.number().int().min(1).max(
|
|
25795
|
+
limit: external_exports.number().int().min(1).max(MAX_EVENT_QUERY_LIMIT).default(DEFAULT_EVENT_QUERY_LIMIT),
|
|
25181
25796
|
/** `slim` drops heavy JSON fields (regions/bbox/zones) and carries an
|
|
25182
25797
|
* optional `mediaUrl` (populated by B5). `full` (default) keeps today's
|
|
25183
25798
|
* exact behaviour. Callers may omit this field — the store defaults to
|
|
@@ -25185,6 +25800,27 @@ var DeviceEventQueryInput = external_exports.object({
|
|
|
25185
25800
|
projection: external_exports.enum(["full", "slim"]).optional()
|
|
25186
25801
|
});
|
|
25187
25802
|
var ObjectEventQueryInput = DeviceEventQueryInput.extend({ classFilter: external_exports.string().optional() });
|
|
25803
|
+
var RecentTracksQueryInput = external_exports.object({
|
|
25804
|
+
/** Devices to merge. An empty array yields `{ tracks: [], nextCursor: null }`. */
|
|
25805
|
+
deviceIds: external_exports.array(external_exports.number()),
|
|
25806
|
+
/** Window lower bound on `lastSeen` (inclusive). */
|
|
25807
|
+
since: external_exports.number().optional(),
|
|
25808
|
+
/** Window upper bound on `lastSeen` (inclusive). */
|
|
25809
|
+
until: external_exports.number().optional(),
|
|
25810
|
+
/** Page size. Default 200, max 1000. */
|
|
25811
|
+
limit: external_exports.number().int().min(1).max(1e3).default(200),
|
|
25812
|
+
/** Opaque continuation cursor from a previous page's `nextCursor`.
|
|
25813
|
+
* Encodes the (lastSeen, trackId) sort position — treat as opaque. */
|
|
25814
|
+
cursor: external_exports.string().optional(),
|
|
25815
|
+
/** See {@link TrackProjectionSchema}. Default `full`. */
|
|
25816
|
+
projection: TrackProjectionSchema.optional()
|
|
25817
|
+
});
|
|
25818
|
+
var RecentTracksPageSchema = external_exports.object({
|
|
25819
|
+
/** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
|
|
25820
|
+
tracks: external_exports.array(TrackSchema).readonly(),
|
|
25821
|
+
/** Cursor for the next page, or null when this page is the last. */
|
|
25822
|
+
nextCursor: external_exports.string().nullable()
|
|
25823
|
+
});
|
|
25188
25824
|
var KeyEventQueryInput = external_exports.object({
|
|
25189
25825
|
deviceId: external_exports.number(),
|
|
25190
25826
|
/** Window lower bound (track firstSeen ≥ since). */
|
|
@@ -25219,6 +25855,23 @@ var TrackedDetectionSchema = external_exports.object({
|
|
|
25219
25855
|
zones: external_exports.array(external_exports.string()).readonly(),
|
|
25220
25856
|
state: TrackStateSchema
|
|
25221
25857
|
});
|
|
25858
|
+
var OverlayDetectionSchema = external_exports.looseObject({
|
|
25859
|
+
id: external_exports.string(),
|
|
25860
|
+
kind: external_exports.enum(["first-level", "detail"]),
|
|
25861
|
+
macroClass: external_exports.string(),
|
|
25862
|
+
score: external_exports.number(),
|
|
25863
|
+
bbox: external_exports.object({
|
|
25864
|
+
x: external_exports.number(),
|
|
25865
|
+
y: external_exports.number(),
|
|
25866
|
+
width: external_exports.number(),
|
|
25867
|
+
height: external_exports.number()
|
|
25868
|
+
}),
|
|
25869
|
+
labels: external_exports.array(external_exports.looseObject({
|
|
25870
|
+
label: external_exports.string(),
|
|
25871
|
+
score: external_exports.number()
|
|
25872
|
+
})).readonly(),
|
|
25873
|
+
parentId: external_exports.string().optional()
|
|
25874
|
+
});
|
|
25222
25875
|
var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: external_exports.number() });
|
|
25223
25876
|
var SearchObjectEventsInput = external_exports.object({
|
|
25224
25877
|
text: external_exports.string(),
|
|
@@ -25229,6 +25882,20 @@ var SearchObjectEventsInput = external_exports.object({
|
|
|
25229
25882
|
limit: external_exports.number().default(50),
|
|
25230
25883
|
minScore: external_exports.number().min(0).max(1).default(0.2)
|
|
25231
25884
|
});
|
|
25885
|
+
var TrackCascadeCountsSchema = external_exports.object({
|
|
25886
|
+
/** Persisted track roots deleted (authoritative). */
|
|
25887
|
+
tracks: external_exports.number().int(),
|
|
25888
|
+
/** Object events removed with their tracks (best-effort; see note above). */
|
|
25889
|
+
events: external_exports.number().int(),
|
|
25890
|
+
/** Track/face/plate-owned media removed (best-effort). Never identity media. */
|
|
25891
|
+
media: external_exports.number().int(),
|
|
25892
|
+
/** Unassigned (non-enrolled) face reads removed (best-effort). */
|
|
25893
|
+
faces: external_exports.number().int(),
|
|
25894
|
+
/** Unassigned plate reads removed (best-effort; plate leg deferred to plate-intelligence). */
|
|
25895
|
+
plates: external_exports.number().int(),
|
|
25896
|
+
/** Per-track CLIP search vectors removed (best-effort). */
|
|
25897
|
+
embeddings: external_exports.number().int()
|
|
25898
|
+
});
|
|
25232
25899
|
var pipelineAnalyticsCapability = {
|
|
25233
25900
|
name: "pipeline-analytics",
|
|
25234
25901
|
scope: "device",
|
|
@@ -25250,8 +25917,27 @@ var pipelineAnalyticsCapability = {
|
|
|
25250
25917
|
deviceId: external_exports.number(),
|
|
25251
25918
|
since: external_exports.number().optional(),
|
|
25252
25919
|
until: external_exports.number().optional(),
|
|
25253
|
-
limit: external_exports.number().optional()
|
|
25920
|
+
limit: external_exports.number().optional(),
|
|
25921
|
+
/** Spatial filter — only tracks whose trajectory intersects the zone
|
|
25922
|
+
* (normalized 0..1 rect or polygon). SQL-prefiltered on the persisted
|
|
25923
|
+
* envelope columns, then precisely tested per position. Tracks with
|
|
25924
|
+
* an unknown envelope (no frame dims at persist time) always match. */
|
|
25925
|
+
zone: TrackZoneFilterSchema.optional(),
|
|
25926
|
+
/** See {@link TrackProjectionSchema}. Default `full` (backward
|
|
25927
|
+
* compatible — omitting the field keeps today's exact behaviour). */
|
|
25928
|
+
projection: TrackProjectionSchema.optional()
|
|
25254
25929
|
}), external_exports.array(TrackSchema).readonly()),
|
|
25930
|
+
/**
|
|
25931
|
+
* Batched cluster-wide track listing — ONE call for the events page /
|
|
25932
|
+
* reel first paint instead of a per-camera `listTracks` fan-out. Merges
|
|
25933
|
+
* the persisted completed tracks of every requested device, sorted by
|
|
25934
|
+
* `lastSeen` DESC with a stable (lastSeen, trackId) cursor. Per-device
|
|
25935
|
+
* indexed pages (`idx_tracks_device_lastSeen`) are k-way merged
|
|
25936
|
+
* provider-side; `projection: 'slim'` drops the heavy `positions[]` /
|
|
25937
|
+
* `snapshots[]` JSON (returned as empty arrays). Active in-RAM tracks
|
|
25938
|
+
* are not included (same contract as `listTracks`).
|
|
25939
|
+
*/
|
|
25940
|
+
listRecentTracks: method(RecentTracksQueryInput, RecentTracksPageSchema),
|
|
25255
25941
|
clearTracks: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.void(), {
|
|
25256
25942
|
kind: "mutation",
|
|
25257
25943
|
auth: "admin"
|
|
@@ -25260,6 +25946,26 @@ var pipelineAnalyticsCapability = {
|
|
|
25260
25946
|
getObjectEvents: method(ObjectEventQueryInput, external_exports.array(ObjectEventSchema).readonly()),
|
|
25261
25947
|
getAudioEvents: method(DeviceEventQueryInput, external_exports.array(AudioEventSchema).readonly()),
|
|
25262
25948
|
/**
|
|
25949
|
+
* Every event kind the device can produce: built-ins (motion + audio),
|
|
25950
|
+
* detection classes actually observed for the device (from the track
|
|
25951
|
+
* history), and sensor kinds contributed by LINKED devices (resolved via
|
|
25952
|
+
* `device-manager.getLinkedDevices`, mapped through `EVENT_KIND_BY_CAP`).
|
|
25953
|
+
*/
|
|
25954
|
+
listEventKinds: method(external_exports.object({ deviceId: external_exports.number() }), external_exports.array(EventKindDescriptorSchema).readonly()),
|
|
25955
|
+
/**
|
|
25956
|
+
* Sensor-event history for a camera: state changes of LINKED sensor
|
|
25957
|
+
* devices, attributed to the camera at ingest time (one row per linked
|
|
25958
|
+
* camera). Mirrors `getAudioEvents` query semantics; `kinds` narrows to
|
|
25959
|
+
* a kind subset.
|
|
25960
|
+
*/
|
|
25961
|
+
getSensorEvents: method(external_exports.object({
|
|
25962
|
+
deviceId: external_exports.number(),
|
|
25963
|
+
since: external_exports.number().optional(),
|
|
25964
|
+
until: external_exports.number().optional(),
|
|
25965
|
+
kinds: external_exports.array(external_exports.string()).optional(),
|
|
25966
|
+
limit: external_exports.number().int().min(1).max(MAX_EVENT_QUERY_LIMIT).default(DEFAULT_EVENT_QUERY_LIMIT)
|
|
25967
|
+
}), external_exports.array(SensorEventSchema).readonly()),
|
|
25968
|
+
/**
|
|
25263
25969
|
* Importance-ranked highlights for a device+window. Queries completed
|
|
25264
25970
|
* tracks by (deviceId, firstSeen ∈ [since,until]), scores each (or reuses
|
|
25265
25971
|
* the persisted score), filters by minImportance/classFilter, orders by
|
|
@@ -25282,12 +25988,14 @@ var pipelineAnalyticsCapability = {
|
|
|
25282
25988
|
audio: external_exports.number().int()
|
|
25283
25989
|
})).readonly()),
|
|
25284
25990
|
/**
|
|
25285
|
-
*
|
|
25286
|
-
*
|
|
25287
|
-
*
|
|
25288
|
-
*
|
|
25289
|
-
*
|
|
25290
|
-
*
|
|
25991
|
+
* @deprecated Prefer `pruneTracksBefore` — the track is the ROOT of the
|
|
25992
|
+
* analytics model and retention must cascade from it (design §5.1). This
|
|
25993
|
+
* event-only prune leaves orphaned tracks/faces/plates/embeddings behind.
|
|
25994
|
+
* Retained as a compat shim for the Phase-B3 recorder orchestration caller,
|
|
25995
|
+
* which prunes events to keep history aligned with available footage and
|
|
25996
|
+
* reads the per-kind counts. Delete all events (motion + object + audio)
|
|
25997
|
+
* for the given device older than `cutoffMs` (exclusive) + their thumbnails
|
|
25998
|
+
* in lockstep; returns per-kind deleted counts.
|
|
25291
25999
|
*/
|
|
25292
26000
|
pruneEventsBefore: method(external_exports.object({
|
|
25293
26001
|
deviceId: external_exports.number(),
|
|
@@ -25300,8 +26008,57 @@ var pipelineAnalyticsCapability = {
|
|
|
25300
26008
|
kind: "mutation",
|
|
25301
26009
|
auth: "admin"
|
|
25302
26010
|
}),
|
|
25303
|
-
|
|
25304
|
-
|
|
26011
|
+
/**
|
|
26012
|
+
* Track-centric retention entry point (design §5.1). Selects every
|
|
26013
|
+
* persisted track for the device whose `lastSeen < cutoffMs` (paged) and
|
|
26014
|
+
* runs the extensible whole-track deletion cascade (design §3): object
|
|
26015
|
+
* events + their media, track/face/plate-owned media, unassigned face
|
|
26016
|
+
* reads, per-track CLIP embeddings, then the track root LAST. ENROLLED
|
|
26017
|
+
* (assigned) faces/plates and `ownerKind:'identity'` media are exempt —
|
|
26018
|
+
* the durable matching gallery always persists. Fires the per-track
|
|
26019
|
+
* live-state cleanup so a pruned track can't linger in dispatch/overlay
|
|
26020
|
+
* state. Returns per-family deleted counts (`tracks` authoritative).
|
|
26021
|
+
*
|
|
26022
|
+
* Replaces `pruneEventsBefore` as the correct time-based retention prune.
|
|
26023
|
+
*/
|
|
26024
|
+
pruneTracksBefore: method(external_exports.object({
|
|
26025
|
+
deviceId: external_exports.number(),
|
|
26026
|
+
cutoffMs: external_exports.number()
|
|
26027
|
+
}), TrackCascadeCountsSchema, {
|
|
26028
|
+
kind: "mutation",
|
|
26029
|
+
auth: "admin"
|
|
26030
|
+
}),
|
|
26031
|
+
/**
|
|
26032
|
+
* Operator "clean slate" for a device (design §5.3): prune EVERY track for
|
|
26033
|
+
* the device via the same cascade as `pruneTracksBefore` with `cutoffMs =
|
|
26034
|
+
* now`. One call per device — no client-side track enumeration. Enrolled
|
|
26035
|
+
* gallery + identity media are exempt (design §4). Returns per-family
|
|
26036
|
+
* deleted counts.
|
|
26037
|
+
*/
|
|
26038
|
+
wipeAllAnalytics: method(external_exports.object({ deviceId: external_exports.number() }), TrackCascadeCountsSchema, {
|
|
26039
|
+
kind: "mutation",
|
|
26040
|
+
auth: "admin"
|
|
26041
|
+
}),
|
|
26042
|
+
/**
|
|
26043
|
+
* Delete whole tracks (object events) by id for the given device,
|
|
26044
|
+
* cascading their media in lockstep. Returns the number of tracks
|
|
26045
|
+
* actually deleted plus the ids that could not be removed.
|
|
26046
|
+
*
|
|
26047
|
+
* Operator-driven from the DI Events page (batch delete). Routes through
|
|
26048
|
+
* the same widened track-deletion cascade (design §5.2).
|
|
26049
|
+
*/
|
|
26050
|
+
deleteTracks: method(external_exports.object({
|
|
26051
|
+
deviceId: external_exports.number(),
|
|
26052
|
+
trackIds: external_exports.array(external_exports.string()).min(1)
|
|
26053
|
+
}), external_exports.object({
|
|
26054
|
+
deleted: external_exports.number().int(),
|
|
26055
|
+
failed: external_exports.array(external_exports.string()).readonly()
|
|
26056
|
+
}), {
|
|
26057
|
+
kind: "mutation",
|
|
26058
|
+
auth: "admin"
|
|
26059
|
+
}),
|
|
26060
|
+
getEventMedia: method(external_exports.object({
|
|
26061
|
+
eventId: external_exports.string(),
|
|
25305
26062
|
kind: MediaFileKindEnum.optional()
|
|
25306
26063
|
}), external_exports.array(MediaFileSchema).readonly()),
|
|
25307
26064
|
getTrackMedia: method(external_exports.object({ trackId: external_exports.string() }), external_exports.array(MediaFileSchema).readonly()),
|
|
@@ -25317,17 +26074,19 @@ var pipelineAnalyticsCapability = {
|
|
|
25317
26074
|
},
|
|
25318
26075
|
events: {
|
|
25319
26076
|
/**
|
|
25320
|
-
* Enriched frame emitted after refinement
|
|
25321
|
-
*
|
|
25322
|
-
*
|
|
25323
|
-
*
|
|
26077
|
+
* Enriched frame emitted after refinement — the live-overlay source of
|
|
26078
|
+
* truth (two-plane re-injection). Carries the frame's detections in the
|
|
26079
|
+
* `ObjectDetection` wire shape: first-level roots (with track info +
|
|
26080
|
+
* enrichment labels) plus synthesized `kind:'detail'` face/plate entries
|
|
26081
|
+
* re-projected from per-track detail state, so stream overlays render
|
|
26082
|
+
* boxes + recognized names without querying full Track state.
|
|
25324
26083
|
*/
|
|
25325
26084
|
onFrameTracked: { data: external_exports.object({
|
|
25326
26085
|
deviceId: external_exports.number(),
|
|
25327
26086
|
timestamp: external_exports.number(),
|
|
25328
26087
|
frameWidth: external_exports.number(),
|
|
25329
26088
|
frameHeight: external_exports.number(),
|
|
25330
|
-
detections: external_exports.array(
|
|
26089
|
+
detections: external_exports.array(OverlayDetectionSchema).readonly()
|
|
25331
26090
|
}) },
|
|
25332
26091
|
/** Track entered active state (first-seen). */
|
|
25333
26092
|
onTrackStarted: { data: external_exports.object({
|
|
@@ -26860,7 +27619,15 @@ var webrtcSessionCapability = {
|
|
|
26860
27619
|
*/
|
|
26861
27620
|
disableIpv6: external_exports.boolean().optional(),
|
|
26862
27621
|
/** Subscriber attribution. See `createSession` for the contract. */
|
|
26863
|
-
consumerAttribution: BrokerConsumerAttributionSchema.optional()
|
|
27622
|
+
consumerAttribution: BrokerConsumerAttributionSchema.optional(),
|
|
27623
|
+
/**
|
|
27624
|
+
* Client-side stream hints (viewport, downlink) — same contract as
|
|
27625
|
+
* `createSession.hints`. Client-offer viewers (the RN viewer's
|
|
27626
|
+
* `WebrtcLiveSession`) negotiate via `handleOffer`, so without this
|
|
27627
|
+
* field their hints were silently stripped by the schema and the
|
|
27628
|
+
* adaptive ladder started blind on the client's display size.
|
|
27629
|
+
*/
|
|
27630
|
+
hints: webrtcClientHintsSchema.optional()
|
|
26864
27631
|
}), external_exports.object({
|
|
26865
27632
|
sessionId: external_exports.string(),
|
|
26866
27633
|
sdpAnswer: external_exports.string()
|
|
@@ -28685,6 +29452,24 @@ var osdCapability = {
|
|
|
28685
29452
|
}
|
|
28686
29453
|
}] }
|
|
28687
29454
|
};
|
|
29455
|
+
var VehicleSchema = external_exports.object({
|
|
29456
|
+
id: external_exports.string(),
|
|
29457
|
+
name: external_exports.string(),
|
|
29458
|
+
sampleCount: external_exports.number().int().nonnegative(),
|
|
29459
|
+
coverMediaKey: external_exports.string().optional(),
|
|
29460
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaKey`. */
|
|
29461
|
+
coverBase64: external_exports.string().optional()
|
|
29462
|
+
});
|
|
29463
|
+
var VehicleSampleInfoSchema = external_exports.object({
|
|
29464
|
+
id: external_exports.string(),
|
|
29465
|
+
/** The plate text this sample enrolled (self-labeling — no embedding). */
|
|
29466
|
+
text: external_exports.string(),
|
|
29467
|
+
/** OCR confidence of the enrolled read (0..1). */
|
|
29468
|
+
score: external_exports.number(),
|
|
29469
|
+
addedAt: external_exports.number().int(),
|
|
29470
|
+
deviceId: external_exports.number().int().optional(),
|
|
29471
|
+
base64: external_exports.string().optional()
|
|
29472
|
+
});
|
|
28688
29473
|
var PlateInfoSchema = external_exports.object({
|
|
28689
29474
|
plateId: external_exports.string(),
|
|
28690
29475
|
deviceId: external_exports.number().int(),
|
|
@@ -28696,6 +29481,16 @@ var PlateInfoSchema = external_exports.object({
|
|
|
28696
29481
|
score: external_exports.number(),
|
|
28697
29482
|
/** True when the text was manually corrected (exempt from retention). */
|
|
28698
29483
|
corrected: external_exports.boolean(),
|
|
29484
|
+
/** Recognized vehicle id when a matcher lookup named this read (SQL NULL → absent). */
|
|
29485
|
+
recognizedVehicleId: external_exports.string().optional(),
|
|
29486
|
+
/** Resolved vehicle name for `recognizedVehicleId` (UI convenience). */
|
|
29487
|
+
vehicleName: external_exports.string().optional(),
|
|
29488
|
+
/** True once the read was assigned to a vehicle (enrolled as a sample). */
|
|
29489
|
+
assigned: external_exports.boolean(),
|
|
29490
|
+
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
29491
|
+
plateBbox: BoundingBoxSchema.optional(),
|
|
29492
|
+
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
29493
|
+
keyFrameMediaKey: external_exports.string().optional(),
|
|
28699
29494
|
base64: external_exports.string().optional()
|
|
28700
29495
|
});
|
|
28701
29496
|
var MediaFileLiteSchema = external_exports.object({
|
|
@@ -28749,6 +29544,58 @@ var plateGalleryCapability = {
|
|
|
28749
29544
|
deletePlate: method(external_exports.object({ plateId: external_exports.string() }), external_exports.void(), {
|
|
28750
29545
|
kind: "mutation",
|
|
28751
29546
|
auth: "admin"
|
|
29547
|
+
}),
|
|
29548
|
+
listVehicles: method(external_exports.void(), external_exports.array(VehicleSchema).readonly()),
|
|
29549
|
+
createVehicle: method(external_exports.object({ name: external_exports.string().min(1) }), VehicleSchema, {
|
|
29550
|
+
kind: "mutation",
|
|
29551
|
+
auth: "admin"
|
|
29552
|
+
}),
|
|
29553
|
+
renameVehicle: method(external_exports.object({
|
|
29554
|
+
id: external_exports.string(),
|
|
29555
|
+
name: external_exports.string().min(1)
|
|
29556
|
+
}), external_exports.void(), {
|
|
29557
|
+
kind: "mutation",
|
|
29558
|
+
auth: "admin"
|
|
29559
|
+
}),
|
|
29560
|
+
deleteVehicle: method(external_exports.object({ id: external_exports.string() }), external_exports.void(), {
|
|
29561
|
+
kind: "mutation",
|
|
29562
|
+
auth: "admin"
|
|
29563
|
+
}),
|
|
29564
|
+
listVehicleSamples: method(external_exports.object({ vehicleId: external_exports.string() }), external_exports.array(VehicleSampleInfoSchema).readonly()),
|
|
29565
|
+
removeVehicleSample: method(external_exports.object({
|
|
29566
|
+
vehicleId: external_exports.string(),
|
|
29567
|
+
sampleId: external_exports.string()
|
|
29568
|
+
}), external_exports.void(), {
|
|
29569
|
+
kind: "mutation",
|
|
29570
|
+
auth: "admin"
|
|
29571
|
+
}),
|
|
29572
|
+
assignPlate: method(external_exports.object({
|
|
29573
|
+
plateId: external_exports.string(),
|
|
29574
|
+
vehicleId: external_exports.string()
|
|
29575
|
+
}), external_exports.void(), {
|
|
29576
|
+
kind: "mutation",
|
|
29577
|
+
auth: "admin"
|
|
29578
|
+
}),
|
|
29579
|
+
unassignPlate: method(external_exports.object({ plateId: external_exports.string() }), external_exports.void(), {
|
|
29580
|
+
kind: "mutation",
|
|
29581
|
+
auth: "admin"
|
|
29582
|
+
}),
|
|
29583
|
+
assignPlates: method(external_exports.object({
|
|
29584
|
+
plateIds: external_exports.array(external_exports.string()).min(1),
|
|
29585
|
+
vehicleId: external_exports.string()
|
|
29586
|
+
}), external_exports.object({
|
|
29587
|
+
assigned: external_exports.number().int(),
|
|
29588
|
+
failed: external_exports.array(external_exports.string()).readonly()
|
|
29589
|
+
}), {
|
|
29590
|
+
kind: "mutation",
|
|
29591
|
+
auth: "admin"
|
|
29592
|
+
}),
|
|
29593
|
+
unassignPlates: method(external_exports.object({ plateIds: external_exports.array(external_exports.string()).min(1) }), external_exports.object({
|
|
29594
|
+
unassigned: external_exports.number().int(),
|
|
29595
|
+
failed: external_exports.array(external_exports.string()).readonly()
|
|
29596
|
+
}), {
|
|
29597
|
+
kind: "mutation",
|
|
29598
|
+
auth: "admin"
|
|
28752
29599
|
})
|
|
28753
29600
|
}
|
|
28754
29601
|
};
|
|
@@ -28830,6 +29677,10 @@ var GpuInfoSchema = external_exports.object({
|
|
|
28830
29677
|
memoryMB: external_exports.number().optional()
|
|
28831
29678
|
});
|
|
28832
29679
|
var NpuInfoSchema = external_exports.object({ type: external_exports.enum(["apple-ane", "intel-npu"]) });
|
|
29680
|
+
var CoralInfoSchema = external_exports.object({
|
|
29681
|
+
type: external_exports.literal("coral-edgetpu"),
|
|
29682
|
+
bus: external_exports.string().optional()
|
|
29683
|
+
});
|
|
28833
29684
|
var HardwareInfoSchema = external_exports.object({
|
|
28834
29685
|
platform: HardwarePlatformSchema,
|
|
28835
29686
|
arch: HardwareArchSchema,
|
|
@@ -28838,7 +29689,8 @@ var HardwareInfoSchema = external_exports.object({
|
|
|
28838
29689
|
totalRAM_MB: external_exports.number(),
|
|
28839
29690
|
availableRAM_MB: external_exports.number(),
|
|
28840
29691
|
gpu: GpuInfoSchema.nullable(),
|
|
28841
|
-
npu: NpuInfoSchema.nullable()
|
|
29692
|
+
npu: NpuInfoSchema.nullable(),
|
|
29693
|
+
coral: CoralInfoSchema.nullable().optional()
|
|
28842
29694
|
});
|
|
28843
29695
|
var PlatformScoreSchema = external_exports.object({
|
|
28844
29696
|
runtime: external_exports.enum(["node", "python"]),
|
|
@@ -29052,7 +29904,8 @@ var LocateSegmentResultSchema = external_exports.discriminatedUnion("kind", [ext
|
|
|
29052
29904
|
bytes: external_exports.number()
|
|
29053
29905
|
}), external_exports.object({
|
|
29054
29906
|
kind: external_exports.literal("gap"),
|
|
29055
|
-
nearestEdgeMs: external_exports.number().nullable()
|
|
29907
|
+
nearestEdgeMs: external_exports.number().nullable(),
|
|
29908
|
+
prevEndMs: external_exports.number().nullable().optional()
|
|
29056
29909
|
})]);
|
|
29057
29910
|
var ReadSegmentBytesResultSchema = external_exports.object({ data: external_exports.instanceof(Uint8Array) });
|
|
29058
29911
|
var recordingCapability = {
|
|
@@ -30675,6 +31528,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
30675
31528
|
addonId: null,
|
|
30676
31529
|
access: "view"
|
|
30677
31530
|
},
|
|
31531
|
+
"deviceManager.getLinkedDevices": {
|
|
31532
|
+
capName: "device-manager",
|
|
31533
|
+
capScope: "system",
|
|
31534
|
+
addonId: null,
|
|
31535
|
+
access: "view"
|
|
31536
|
+
},
|
|
30678
31537
|
"deviceManager.getRoleDisplayDefaults": {
|
|
30679
31538
|
capName: "device-manager",
|
|
30680
31539
|
capScope: "system",
|
|
@@ -31389,6 +32248,168 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
31389
32248
|
addonId: null,
|
|
31390
32249
|
access: "create"
|
|
31391
32250
|
},
|
|
32251
|
+
"llm.deleteModel": {
|
|
32252
|
+
capName: "llm",
|
|
32253
|
+
capScope: "system",
|
|
32254
|
+
addonId: null,
|
|
32255
|
+
access: "delete"
|
|
32256
|
+
},
|
|
32257
|
+
"llm.deleteProfile": {
|
|
32258
|
+
capName: "llm",
|
|
32259
|
+
capScope: "system",
|
|
32260
|
+
addonId: null,
|
|
32261
|
+
access: "delete"
|
|
32262
|
+
},
|
|
32263
|
+
"llm.generate": {
|
|
32264
|
+
capName: "llm",
|
|
32265
|
+
capScope: "system",
|
|
32266
|
+
addonId: null,
|
|
32267
|
+
access: "create"
|
|
32268
|
+
},
|
|
32269
|
+
"llm.generateVision": {
|
|
32270
|
+
capName: "llm",
|
|
32271
|
+
capScope: "system",
|
|
32272
|
+
addonId: null,
|
|
32273
|
+
access: "create"
|
|
32274
|
+
},
|
|
32275
|
+
"llm.getDefaults": {
|
|
32276
|
+
capName: "llm",
|
|
32277
|
+
capScope: "system",
|
|
32278
|
+
addonId: null,
|
|
32279
|
+
access: "view"
|
|
32280
|
+
},
|
|
32281
|
+
"llm.getRuntimeStatus": {
|
|
32282
|
+
capName: "llm",
|
|
32283
|
+
capScope: "system",
|
|
32284
|
+
addonId: null,
|
|
32285
|
+
access: "view"
|
|
32286
|
+
},
|
|
32287
|
+
"llm.getUsage": {
|
|
32288
|
+
capName: "llm",
|
|
32289
|
+
capScope: "system",
|
|
32290
|
+
addonId: null,
|
|
32291
|
+
access: "view"
|
|
32292
|
+
},
|
|
32293
|
+
"llm.installModel": {
|
|
32294
|
+
capName: "llm",
|
|
32295
|
+
capScope: "system",
|
|
32296
|
+
addonId: null,
|
|
32297
|
+
access: "create"
|
|
32298
|
+
},
|
|
32299
|
+
"llm.listModelCatalog": {
|
|
32300
|
+
capName: "llm",
|
|
32301
|
+
capScope: "system",
|
|
32302
|
+
addonId: null,
|
|
32303
|
+
access: "view"
|
|
32304
|
+
},
|
|
32305
|
+
"llm.listModels": {
|
|
32306
|
+
capName: "llm",
|
|
32307
|
+
capScope: "system",
|
|
32308
|
+
addonId: null,
|
|
32309
|
+
access: "view"
|
|
32310
|
+
},
|
|
32311
|
+
"llm.listNodeModels": {
|
|
32312
|
+
capName: "llm",
|
|
32313
|
+
capScope: "system",
|
|
32314
|
+
addonId: null,
|
|
32315
|
+
access: "view"
|
|
32316
|
+
},
|
|
32317
|
+
"llm.listProfileKinds": {
|
|
32318
|
+
capName: "llm",
|
|
32319
|
+
capScope: "system",
|
|
32320
|
+
addonId: null,
|
|
32321
|
+
access: "view"
|
|
32322
|
+
},
|
|
32323
|
+
"llm.listProfiles": {
|
|
32324
|
+
capName: "llm",
|
|
32325
|
+
capScope: "system",
|
|
32326
|
+
addonId: null,
|
|
32327
|
+
access: "view"
|
|
32328
|
+
},
|
|
32329
|
+
"llm.listRuntimeNodes": {
|
|
32330
|
+
capName: "llm",
|
|
32331
|
+
capScope: "system",
|
|
32332
|
+
addonId: null,
|
|
32333
|
+
access: "view"
|
|
32334
|
+
},
|
|
32335
|
+
"llm.setDefault": {
|
|
32336
|
+
capName: "llm",
|
|
32337
|
+
capScope: "system",
|
|
32338
|
+
addonId: null,
|
|
32339
|
+
access: "create"
|
|
32340
|
+
},
|
|
32341
|
+
"llm.startRuntime": {
|
|
32342
|
+
capName: "llm",
|
|
32343
|
+
capScope: "system",
|
|
32344
|
+
addonId: null,
|
|
32345
|
+
access: "create"
|
|
32346
|
+
},
|
|
32347
|
+
"llm.stopRuntime": {
|
|
32348
|
+
capName: "llm",
|
|
32349
|
+
capScope: "system",
|
|
32350
|
+
addonId: null,
|
|
32351
|
+
access: "create"
|
|
32352
|
+
},
|
|
32353
|
+
"llm.testProfile": {
|
|
32354
|
+
capName: "llm",
|
|
32355
|
+
capScope: "system",
|
|
32356
|
+
addonId: null,
|
|
32357
|
+
access: "create"
|
|
32358
|
+
},
|
|
32359
|
+
"llm.upsertProfile": {
|
|
32360
|
+
capName: "llm",
|
|
32361
|
+
capScope: "system",
|
|
32362
|
+
addonId: null,
|
|
32363
|
+
access: "create"
|
|
32364
|
+
},
|
|
32365
|
+
"llmRuntime.complete": {
|
|
32366
|
+
capName: "llm-runtime",
|
|
32367
|
+
capScope: "system",
|
|
32368
|
+
addonId: null,
|
|
32369
|
+
access: "create"
|
|
32370
|
+
},
|
|
32371
|
+
"llmRuntime.deleteModel": {
|
|
32372
|
+
capName: "llm-runtime",
|
|
32373
|
+
capScope: "system",
|
|
32374
|
+
addonId: null,
|
|
32375
|
+
access: "delete"
|
|
32376
|
+
},
|
|
32377
|
+
"llmRuntime.ensureStarted": {
|
|
32378
|
+
capName: "llm-runtime",
|
|
32379
|
+
capScope: "system",
|
|
32380
|
+
addonId: null,
|
|
32381
|
+
access: "create"
|
|
32382
|
+
},
|
|
32383
|
+
"llmRuntime.getDiskUsage": {
|
|
32384
|
+
capName: "llm-runtime",
|
|
32385
|
+
capScope: "system",
|
|
32386
|
+
addonId: null,
|
|
32387
|
+
access: "view"
|
|
32388
|
+
},
|
|
32389
|
+
"llmRuntime.installModel": {
|
|
32390
|
+
capName: "llm-runtime",
|
|
32391
|
+
capScope: "system",
|
|
32392
|
+
addonId: null,
|
|
32393
|
+
access: "create"
|
|
32394
|
+
},
|
|
32395
|
+
"llmRuntime.listLocalModels": {
|
|
32396
|
+
capName: "llm-runtime",
|
|
32397
|
+
capScope: "system",
|
|
32398
|
+
addonId: null,
|
|
32399
|
+
access: "view"
|
|
32400
|
+
},
|
|
32401
|
+
"llmRuntime.status": {
|
|
32402
|
+
capName: "llm-runtime",
|
|
32403
|
+
capScope: "system",
|
|
32404
|
+
addonId: null,
|
|
32405
|
+
access: "view"
|
|
32406
|
+
},
|
|
32407
|
+
"llmRuntime.stop": {
|
|
32408
|
+
capName: "llm-runtime",
|
|
32409
|
+
capScope: "system",
|
|
32410
|
+
addonId: null,
|
|
32411
|
+
access: "create"
|
|
32412
|
+
},
|
|
31392
32413
|
"localNetwork.getAllowedAddresses": {
|
|
31393
32414
|
capName: "local-network",
|
|
31394
32415
|
capScope: "system",
|
|
@@ -32019,6 +33040,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32019
33040
|
addonId: null,
|
|
32020
33041
|
access: "delete"
|
|
32021
33042
|
},
|
|
33043
|
+
"pipelineAnalytics.deleteTracks": {
|
|
33044
|
+
capName: "pipeline-analytics",
|
|
33045
|
+
capScope: "device",
|
|
33046
|
+
addonId: null,
|
|
33047
|
+
access: "delete"
|
|
33048
|
+
},
|
|
32022
33049
|
"pipelineAnalytics.getActiveTracks": {
|
|
32023
33050
|
capName: "pipeline-analytics",
|
|
32024
33051
|
capScope: "device",
|
|
@@ -32061,6 +33088,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32061
33088
|
addonId: null,
|
|
32062
33089
|
access: "view"
|
|
32063
33090
|
},
|
|
33091
|
+
"pipelineAnalytics.getSensorEvents": {
|
|
33092
|
+
capName: "pipeline-analytics",
|
|
33093
|
+
capScope: "device",
|
|
33094
|
+
addonId: null,
|
|
33095
|
+
access: "view"
|
|
33096
|
+
},
|
|
32064
33097
|
"pipelineAnalytics.getTrack": {
|
|
32065
33098
|
capName: "pipeline-analytics",
|
|
32066
33099
|
capScope: "device",
|
|
@@ -32073,6 +33106,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32073
33106
|
addonId: null,
|
|
32074
33107
|
access: "view"
|
|
32075
33108
|
},
|
|
33109
|
+
"pipelineAnalytics.listEventKinds": {
|
|
33110
|
+
capName: "pipeline-analytics",
|
|
33111
|
+
capScope: "device",
|
|
33112
|
+
addonId: null,
|
|
33113
|
+
access: "view"
|
|
33114
|
+
},
|
|
33115
|
+
"pipelineAnalytics.listRecentTracks": {
|
|
33116
|
+
capName: "pipeline-analytics",
|
|
33117
|
+
capScope: "device",
|
|
33118
|
+
addonId: null,
|
|
33119
|
+
access: "view"
|
|
33120
|
+
},
|
|
32076
33121
|
"pipelineAnalytics.listTracks": {
|
|
32077
33122
|
capName: "pipeline-analytics",
|
|
32078
33123
|
capScope: "device",
|
|
@@ -32085,12 +33130,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32085
33130
|
addonId: null,
|
|
32086
33131
|
access: "create"
|
|
32087
33132
|
},
|
|
33133
|
+
"pipelineAnalytics.pruneTracksBefore": {
|
|
33134
|
+
capName: "pipeline-analytics",
|
|
33135
|
+
capScope: "device",
|
|
33136
|
+
addonId: null,
|
|
33137
|
+
access: "create"
|
|
33138
|
+
},
|
|
32088
33139
|
"pipelineAnalytics.searchObjectEvents": {
|
|
32089
33140
|
capName: "pipeline-analytics",
|
|
32090
33141
|
capScope: "device",
|
|
32091
33142
|
addonId: null,
|
|
32092
33143
|
access: "view"
|
|
32093
33144
|
},
|
|
33145
|
+
"pipelineAnalytics.wipeAllAnalytics": {
|
|
33146
|
+
capName: "pipeline-analytics",
|
|
33147
|
+
capScope: "device",
|
|
33148
|
+
addonId: null,
|
|
33149
|
+
access: "delete"
|
|
33150
|
+
},
|
|
32094
33151
|
"pipelineExecutor.cacheFrameInPool": {
|
|
32095
33152
|
capName: "pipeline-executor",
|
|
32096
33153
|
capScope: "system",
|
|
@@ -32595,18 +33652,42 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32595
33652
|
addonId: null,
|
|
32596
33653
|
access: "create"
|
|
32597
33654
|
},
|
|
33655
|
+
"plateGallery.assignPlate": {
|
|
33656
|
+
capName: "plate-gallery",
|
|
33657
|
+
capScope: "system",
|
|
33658
|
+
addonId: null,
|
|
33659
|
+
access: "create"
|
|
33660
|
+
},
|
|
33661
|
+
"plateGallery.assignPlates": {
|
|
33662
|
+
capName: "plate-gallery",
|
|
33663
|
+
capScope: "system",
|
|
33664
|
+
addonId: null,
|
|
33665
|
+
access: "create"
|
|
33666
|
+
},
|
|
32598
33667
|
"plateGallery.correctPlateText": {
|
|
32599
33668
|
capName: "plate-gallery",
|
|
32600
33669
|
capScope: "system",
|
|
32601
33670
|
addonId: null,
|
|
32602
33671
|
access: "create"
|
|
32603
33672
|
},
|
|
33673
|
+
"plateGallery.createVehicle": {
|
|
33674
|
+
capName: "plate-gallery",
|
|
33675
|
+
capScope: "system",
|
|
33676
|
+
addonId: null,
|
|
33677
|
+
access: "create"
|
|
33678
|
+
},
|
|
32604
33679
|
"plateGallery.deletePlate": {
|
|
32605
33680
|
capName: "plate-gallery",
|
|
32606
33681
|
capScope: "system",
|
|
32607
33682
|
addonId: null,
|
|
32608
33683
|
access: "delete"
|
|
32609
33684
|
},
|
|
33685
|
+
"plateGallery.deleteVehicle": {
|
|
33686
|
+
capName: "plate-gallery",
|
|
33687
|
+
capScope: "system",
|
|
33688
|
+
addonId: null,
|
|
33689
|
+
access: "delete"
|
|
33690
|
+
},
|
|
32610
33691
|
"plateGallery.getPlateByTrack": {
|
|
32611
33692
|
capName: "plate-gallery",
|
|
32612
33693
|
capScope: "system",
|
|
@@ -32625,6 +33706,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32625
33706
|
addonId: null,
|
|
32626
33707
|
access: "view"
|
|
32627
33708
|
},
|
|
33709
|
+
"plateGallery.listVehicles": {
|
|
33710
|
+
capName: "plate-gallery",
|
|
33711
|
+
capScope: "system",
|
|
33712
|
+
addonId: null,
|
|
33713
|
+
access: "view"
|
|
33714
|
+
},
|
|
33715
|
+
"plateGallery.listVehicleSamples": {
|
|
33716
|
+
capName: "plate-gallery",
|
|
33717
|
+
capScope: "system",
|
|
33718
|
+
addonId: null,
|
|
33719
|
+
access: "view"
|
|
33720
|
+
},
|
|
33721
|
+
"plateGallery.removeVehicleSample": {
|
|
33722
|
+
capName: "plate-gallery",
|
|
33723
|
+
capScope: "system",
|
|
33724
|
+
addonId: null,
|
|
33725
|
+
access: "delete"
|
|
33726
|
+
},
|
|
33727
|
+
"plateGallery.renameVehicle": {
|
|
33728
|
+
capName: "plate-gallery",
|
|
33729
|
+
capScope: "system",
|
|
33730
|
+
addonId: null,
|
|
33731
|
+
access: "create"
|
|
33732
|
+
},
|
|
32628
33733
|
"plateGallery.searchPlates": {
|
|
32629
33734
|
capName: "plate-gallery",
|
|
32630
33735
|
capScope: "system",
|
|
@@ -32637,6 +33742,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32637
33742
|
addonId: null,
|
|
32638
33743
|
access: "view"
|
|
32639
33744
|
},
|
|
33745
|
+
"plateGallery.unassignPlate": {
|
|
33746
|
+
capName: "plate-gallery",
|
|
33747
|
+
capScope: "system",
|
|
33748
|
+
addonId: null,
|
|
33749
|
+
access: "create"
|
|
33750
|
+
},
|
|
33751
|
+
"plateGallery.unassignPlates": {
|
|
33752
|
+
capName: "plate-gallery",
|
|
33753
|
+
capScope: "system",
|
|
33754
|
+
addonId: null,
|
|
33755
|
+
access: "create"
|
|
33756
|
+
},
|
|
32640
33757
|
"platformProbe.getCapabilities": {
|
|
32641
33758
|
capName: "platform-probe",
|
|
32642
33759
|
capScope: "system",
|
|
@@ -32829,6 +33946,48 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
32829
33946
|
addonId: null,
|
|
32830
33947
|
access: "create"
|
|
32831
33948
|
},
|
|
33949
|
+
"sceneMonitor.captureReference": {
|
|
33950
|
+
capName: "scene-monitor",
|
|
33951
|
+
capScope: "device",
|
|
33952
|
+
addonId: null,
|
|
33953
|
+
access: "create"
|
|
33954
|
+
},
|
|
33955
|
+
"sceneMonitor.createScene": {
|
|
33956
|
+
capName: "scene-monitor",
|
|
33957
|
+
capScope: "device",
|
|
33958
|
+
addonId: null,
|
|
33959
|
+
access: "create"
|
|
33960
|
+
},
|
|
33961
|
+
"sceneMonitor.deleteReference": {
|
|
33962
|
+
capName: "scene-monitor",
|
|
33963
|
+
capScope: "device",
|
|
33964
|
+
addonId: null,
|
|
33965
|
+
access: "delete"
|
|
33966
|
+
},
|
|
33967
|
+
"sceneMonitor.deleteScene": {
|
|
33968
|
+
capName: "scene-monitor",
|
|
33969
|
+
capScope: "device",
|
|
33970
|
+
addonId: null,
|
|
33971
|
+
access: "delete"
|
|
33972
|
+
},
|
|
33973
|
+
"sceneMonitor.listScenes": {
|
|
33974
|
+
capName: "scene-monitor",
|
|
33975
|
+
capScope: "device",
|
|
33976
|
+
addonId: null,
|
|
33977
|
+
access: "view"
|
|
33978
|
+
},
|
|
33979
|
+
"sceneMonitor.recheckNow": {
|
|
33980
|
+
capName: "scene-monitor",
|
|
33981
|
+
capScope: "device",
|
|
33982
|
+
addonId: null,
|
|
33983
|
+
access: "create"
|
|
33984
|
+
},
|
|
33985
|
+
"sceneMonitor.updateScene": {
|
|
33986
|
+
capName: "scene-monitor",
|
|
33987
|
+
capScope: "device",
|
|
33988
|
+
addonId: null,
|
|
33989
|
+
access: "create"
|
|
33990
|
+
},
|
|
32832
33991
|
"scriptRunner.run": {
|
|
32833
33992
|
capName: "script-runner",
|
|
32834
33993
|
capScope: "device",
|
|
@@ -33913,6 +35072,7 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
33913
35072
|
var CAP_PROVIDER_KIND_MAP = Object.freeze({
|
|
33914
35073
|
"broker": "broker",
|
|
33915
35074
|
"device-export": "device-export",
|
|
35075
|
+
"llm": "ai",
|
|
33916
35076
|
"mesh-network": "mesh",
|
|
33917
35077
|
"mqtt-broker": "broker",
|
|
33918
35078
|
"network-access": "ingress",
|