@camstack/addon-admin-ui 1.1.49 → 1.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{AddLocationWizard-Dz9GwK3X.js → AddLocationWizard-C5_TbCTT.js} +1 -1
- package/dist/assets/{AddonCollectionPage-CPIG1xIh.js → AddonCollectionPage-DdcqJdFw.js} +1 -1
- package/dist/assets/Addons-DENvhGXs.js +1 -0
- package/dist/assets/{AdminTabs-D5g4I7it.js → AdminTabs-rrSAZD3O.js} +1 -1
- package/dist/assets/AiProfiles-I6sx_kzO.js +1 -0
- package/dist/assets/{BrokerForm-BR4xZ9GV.js → BrokerForm-DL1TXr2B.js} +1 -1
- package/dist/assets/{Capabilities-CgH6yyV4.js → Capabilities-G9KINvPO.js} +1 -1
- package/dist/assets/CapabilityBadges-Q2qm_QNP.js +1 -0
- package/dist/assets/Cluster-D5fOIpSM.js +1 -0
- package/dist/assets/{Dashboard-BGWor0uh.js → Dashboard-B9Qq3GKN.js} +1 -1
- package/dist/assets/Data-F4Z7wulI.js +1 -0
- package/dist/assets/DetectionIntelligence-DysJUSVa.js +1 -0
- package/dist/assets/DeviceDetail-DnOzyoSG.js +2 -0
- package/dist/assets/{Devices-CQIttH5I.js → Devices-BbPVwY-D.js} +1 -1
- package/dist/assets/EmbedPlayerPage-DDKRlZMR.js +1 -0
- package/dist/assets/Events-CdArV4tl.js +1 -0
- package/dist/assets/{FormBuilder-CvDRhN0P.js → FormBuilder-vCzPEjPM.js} +1 -1
- package/dist/assets/Identity-Dmu7k7pC.js +1 -0
- package/dist/assets/IntegrationDetail-CXnSPpKp.js +1 -0
- package/dist/assets/{Integrations-CpvCTW8-.js → Integrations-AlnqolAL.js} +1 -1
- package/dist/assets/Integrations-BIx0NuFX.js +1 -0
- package/dist/assets/{Logs-BRxaQ_U_.js → Logs-CBDPfk6Z.js} +1 -1
- package/dist/assets/{MotionZonesSettings-rCwGI64Z.js → MotionZonesSettings-CFYI6s-_.js} +1 -1
- package/dist/assets/{MyAccess-CkYg7_Ir.js → MyAccess-6qmJkzue.js} +1 -1
- package/dist/assets/Network-CX6T3X7F.js +1 -0
- package/dist/assets/{NodeAddonsSettingsPanel-DLaqbqbL.js → NodeAddonsSettingsPanel-CynxbOEk.js} +1 -1
- package/dist/assets/NotificationTargets-DFmIRZfI.js +1 -0
- package/dist/assets/Pipeline-HtfEITUn.js +1 -0
- package/dist/assets/{PrivacyMaskSettings-DXSWRyvI.js → PrivacyMaskSettings-CbVO58Pz.js} +1 -1
- package/dist/assets/{ProviderIcon-CU_LjfQm.js → ProviderIcon-Bc8wWWqT.js} +1 -1
- package/dist/assets/{ScanNetworkModal-P7eJ4JF2.js → ScanNetworkModal-Bxjqv5aL.js} +1 -1
- package/dist/assets/{ServerManagement-Bu1zXR_P.js → ServerManagement-QTJJqUUL.js} +1 -1
- package/dist/assets/{Settings-CEmGDN3Y.js → Settings-DdHS4and.js} +1 -1
- package/dist/assets/{Showroom-nfSg2aKy.js → Showroom-BPudQyp1.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-Dks9ZX4F.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DzuuqQDr.js} +1 -1
- package/dist/assets/authed-media-XfBD4Ma-.js +1 -0
- package/dist/assets/{build-cluster-graph-CeRMttjo.js → build-cluster-graph-C8acdV1N.js} +2 -2
- package/dist/assets/circle-check-big-Ci2qKS9O.js +1 -0
- package/dist/assets/clock-DvPVZaz2.js +1 -0
- package/dist/assets/{copy-CBUp-aR5.js → copy-jHaoig1Z.js} +1 -1
- package/dist/assets/debounced-invalidate-BtUOLpbU.js +1 -0
- package/dist/assets/dist-BpbjPYkI.js +7 -0
- package/dist/assets/{dist-buVqWnnL.js → dist-D9oUwgkq.js} +1 -1
- package/dist/assets/{download-CYT0fAUg.js → download-B8Uv2BOb.js} +1 -1
- package/dist/assets/film-CzfyiWOL.js +1 -0
- package/dist/assets/{hostInit-Bk1ezl81.js → hostInit-DY1mt8Vv.js} +1 -1
- package/dist/assets/index-CRBZZNxE.css +2 -0
- package/dist/assets/index-msAq9OfF.js +4 -0
- package/dist/assets/{key-round-BgzoboJl.js → key-round-B1u42XSy.js} +1 -1
- package/dist/assets/{mf-entry-bootstrap-0-9540ab68.js → mf-entry-bootstrap-0-3bf5f308.js} +2 -2
- package/dist/assets/{pencil-BQxsIcr8.js → pencil-BEjUgvtJ.js} +1 -1
- package/dist/assets/{player-overlays-DwbK2Bhn.js → player-overlays-DzoWZHnz.js} +1 -1
- package/dist/assets/plus-CDCmEkS2.js +1 -0
- package/dist/assets/{radio-BO71WGgk.js → radio-CvK77vEM.js} +1 -1
- package/dist/assets/{refresh-cw-wjVnPKQ-.js → refresh-cw-BoM3__QD.js} +1 -1
- package/dist/assets/remoteEntry-Bm4uDKFt.js +1 -0
- package/dist/assets/{rotate-ccw-08G_t-S-.js → rotate-ccw-CG8Dl-0A.js} +1 -1
- package/dist/assets/rotate-cw-BcZwqoT5.js +1 -0
- package/dist/assets/{schemas-CuE8EXQ7.js → schemas-DSTjX9zr.js} +4 -4
- package/dist/assets/search-Dh7U_-43.js +1 -0
- package/dist/assets/send-DdbXLRkn.js +1 -0
- package/dist/assets/square-Mc9QW6dp.js +1 -0
- package/dist/assets/{square-check-big-vHolvNm8.js → square-check-big-BIo_99Ss.js} +1 -1
- package/dist/assets/src-B_-PRq3y.js +67 -0
- package/dist/assets/src-DYmw2iAG.js +7 -0
- package/dist/assets/{upload-BzEvIjFG.js → upload-DUlWrtL9.js} +1 -1
- package/dist/assets/{useDevice-DsFNX4hK.js → useDevice-CDxSSKpG.js} +1 -1
- package/dist/assets/{useEventInvalidation-sogITDGH.js → useEventInvalidation-Bwynn5Fd.js} +1 -1
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DaYJFh3Y.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-CmeeGMkM.js} +2 -2
- package/dist/assets/{wifi-D2DUPSjR.js → wifi-CW0cSDNa.js} +1 -1
- package/dist/assets/{zap-DpaieZgs.js → zap-CPf6Bdf3.js} +1 -1
- package/dist/index.html +7 -7
- package/dist/server/addon.js +987 -41
- package/package.json +2 -1
- package/dist/assets/Addons-BVoEWQqv.js +0 -1
- package/dist/assets/CapabilityBadges-DTQZ0aly.js +0 -1
- package/dist/assets/Cluster-Dc8m2Nu_.js +0 -1
- package/dist/assets/Data-Cb4_Oaed.js +0 -1
- package/dist/assets/DetectionIntelligence-CfZ37xjp.js +0 -1
- package/dist/assets/DeviceDetail-BkHwKCpH.js +0 -2
- package/dist/assets/EmbedPlayerPage-C1yR1-sh.js +0 -1
- package/dist/assets/Identity-DGjKIPeq.js +0 -1
- package/dist/assets/IntegrationDetail-CrkNK-Hf.js +0 -1
- package/dist/assets/Integrations-D8q33Wah.js +0 -1
- package/dist/assets/Network-CFnhAtCA.js +0 -1
- package/dist/assets/NotificationTargets-D29cZR2T.js +0 -1
- package/dist/assets/Pipeline-V9nILBzv.js +0 -1
- package/dist/assets/circle-check-big-Dqebmb1c.js +0 -1
- package/dist/assets/dist-Drk1jDUF.js +0 -7
- package/dist/assets/index-BFJ6KO0x.css +0 -2
- package/dist/assets/index-DS1f1ju4.js +0 -4
- package/dist/assets/plus-CqKOQ1Hi.js +0 -1
- package/dist/assets/remoteEntry-8u5R_pK8.js +0 -1
- package/dist/assets/rotate-cw-bd1bkxca.js +0 -1
- package/dist/assets/search-Cuq_Otgb.js +0 -1
- package/dist/assets/sparkles-AJHBDXs0.js +0 -1
- package/dist/assets/square-B8TB8cnk.js +0 -1
- package/dist/assets/src-Bt1nDoRU.js +0 -7
- package/dist/assets/src-DdAjHIAX.js +0 -67
package/dist/server/addon.js
CHANGED
|
@@ -4288,6 +4288,14 @@ function object(shape, params) {
|
|
|
4288
4288
|
...normalizeParams(params)
|
|
4289
4289
|
});
|
|
4290
4290
|
}
|
|
4291
|
+
function looseObject(shape, params) {
|
|
4292
|
+
return new ZodObject({
|
|
4293
|
+
type: "object",
|
|
4294
|
+
shape,
|
|
4295
|
+
catchall: unknown(),
|
|
4296
|
+
...normalizeParams(params)
|
|
4297
|
+
});
|
|
4298
|
+
}
|
|
4291
4299
|
var ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => {
|
|
4292
4300
|
$ZodUnion.init(inst, def);
|
|
4293
4301
|
ZodType.init(inst, def);
|
|
@@ -4629,7 +4637,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4629
4637
|
return inst;
|
|
4630
4638
|
}
|
|
4631
4639
|
//#endregion
|
|
4632
|
-
//#region ../types/dist/sleep-
|
|
4640
|
+
//#region ../types/dist/sleep-DkhOVOjW.mjs
|
|
4633
4641
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4634
4642
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4635
4643
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -5039,10 +5047,43 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
5039
5047
|
EventCategory["EnrichmentEmbeddingStored"] = "enrichment.embedding.stored";
|
|
5040
5048
|
EventCategory["EnrichmentSceneStateChanged"] = "enrichment.scene.state-changed";
|
|
5041
5049
|
EventCategory["EnrichmentActivitySummary"] = "enrichment.activity.summary";
|
|
5050
|
+
/**
|
|
5051
|
+
* Unified track-lifecycle event: ONE category carrying `phase:
|
|
5052
|
+
* 'start' | 'update' | 'end'` with a rich, typed
|
|
5053
|
+
* `PipelineAnalyticsTrackLifecyclePayload`. Supersedes the thin
|
|
5054
|
+
* `PipelineAnalyticsTrackStarted` / `PipelineAnalyticsTrackEnded`
|
|
5055
|
+
* pair — a consumer subscribes once and branches on `phase`.
|
|
5056
|
+
*/
|
|
5057
|
+
EventCategory["PipelineAnalyticsTrackLifecycle"] = "pipeline-analytics.track-lifecycle";
|
|
5058
|
+
/**
|
|
5059
|
+
* @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
|
|
5060
|
+
* (`phase:'start'`). Kept as a soft alias — no known subscribers.
|
|
5061
|
+
*/
|
|
5042
5062
|
EventCategory["PipelineAnalyticsTrackStarted"] = "pipeline-analytics.track-started";
|
|
5063
|
+
/**
|
|
5064
|
+
* @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
|
|
5065
|
+
* (`phase:'end'`). Kept as a soft alias — no known subscribers.
|
|
5066
|
+
*/
|
|
5043
5067
|
EventCategory["PipelineAnalyticsTrackEnded"] = "pipeline-analytics.track-ended";
|
|
5044
5068
|
EventCategory["PipelineAnalyticsDetectionEvent"] = "pipeline-analytics.detection-event";
|
|
5045
5069
|
EventCategory["PipelineAnalyticsFrameTracked"] = "pipeline-analytics.frame-tracked";
|
|
5070
|
+
/**
|
|
5071
|
+
* Fired by `addon-post-analysis` whenever a gallery face row changes:
|
|
5072
|
+
* `kind:'buffered'` a new detected face was persisted, `'assigned'` /
|
|
5073
|
+
* `'unassigned'` its identity link changed, `'deleted'` the row was
|
|
5074
|
+
* removed. Telemetry semantics (D8): a lost event only delays a refresh,
|
|
5075
|
+
* never a correctness issue. Payload `PipelineAnalyticsFaceGalleryChangedPayload`.
|
|
5076
|
+
*/
|
|
5077
|
+
EventCategory["PipelineAnalyticsFaceGalleryChanged"] = "pipeline-analytics.face-gallery-changed";
|
|
5078
|
+
/**
|
|
5079
|
+
* Fired by `addon-post-analysis` whenever a gallery plate row changes:
|
|
5080
|
+
* `kind:'buffered'` a new read was persisted (`PlateRecognizer.onTrackEnd`),
|
|
5081
|
+
* `'assigned'` / `'unassigned'` its vehicle link changed
|
|
5082
|
+
* (`PlateGalleryProvider`), `'deleted'` the row was removed. Telemetry
|
|
5083
|
+
* semantics (D8): a lost event only delays a refresh, never a correctness
|
|
5084
|
+
* issue. Payload `PipelineAnalyticsPlateGalleryChangedPayload`.
|
|
5085
|
+
*/
|
|
5086
|
+
EventCategory["PipelineAnalyticsPlateGalleryChanged"] = "pipeline-analytics.plate-gallery-changed";
|
|
5046
5087
|
EventCategory["FrigateLiveEvent"] = "frigate.live-event";
|
|
5047
5088
|
EventCategory["CameraStreamsProfileSlotsChanged"] = "camera-streams.onProfileSlotsChanged";
|
|
5048
5089
|
/**
|
|
@@ -6880,7 +6921,8 @@ var MODEL_FORMATS = [
|
|
|
6880
6921
|
"coreml",
|
|
6881
6922
|
"openvino",
|
|
6882
6923
|
"tflite",
|
|
6883
|
-
"pt"
|
|
6924
|
+
"pt",
|
|
6925
|
+
"gguf"
|
|
6884
6926
|
];
|
|
6885
6927
|
/**
|
|
6886
6928
|
* Multi-file format payload.
|
|
@@ -6924,7 +6966,8 @@ var ModelFormatsSchema = object({
|
|
|
6924
6966
|
coreml: ModelFormatEntrySchema.optional(),
|
|
6925
6967
|
openvino: ModelFormatEntrySchema.optional(),
|
|
6926
6968
|
tflite: ModelFormatEntrySchema.optional(),
|
|
6927
|
-
pt: ModelFormatEntrySchema.optional()
|
|
6969
|
+
pt: ModelFormatEntrySchema.optional(),
|
|
6970
|
+
gguf: ModelFormatEntrySchema.optional()
|
|
6928
6971
|
});
|
|
6929
6972
|
/**
|
|
6930
6973
|
* Variant-selector grouping axes. Shared by the full `ModelCatalogEntry` and by
|
|
@@ -10419,7 +10462,8 @@ var ModelFormatSchema$1 = _enum([
|
|
|
10419
10462
|
"coreml",
|
|
10420
10463
|
"openvino",
|
|
10421
10464
|
"tflite",
|
|
10422
|
-
"pt"
|
|
10465
|
+
"pt",
|
|
10466
|
+
"gguf"
|
|
10423
10467
|
]);
|
|
10424
10468
|
var PipelineSlotSchema = _enum([
|
|
10425
10469
|
"detector",
|
|
@@ -10674,7 +10718,15 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
10674
10718
|
image: _instanceof(Uint8Array).optional(),
|
|
10675
10719
|
referenceImage: string().optional(),
|
|
10676
10720
|
deviceId: number().optional(),
|
|
10677
|
-
sessionId: string().optional()
|
|
10721
|
+
sessionId: string().optional(),
|
|
10722
|
+
/**
|
|
10723
|
+
* Execution plane. 'full' (default) runs the whole tree — benchmark,
|
|
10724
|
+
* reference-image, and detail-subtree calls. 'frame' is the live
|
|
10725
|
+
* per-frame dispatch: ONLY root-plane steps run; crop children
|
|
10726
|
+
* (inputClasses ≠ null) are skipped and served per-track via
|
|
10727
|
+
* pipelineRunner.runDetailSubtree (two-plane design).
|
|
10728
|
+
*/
|
|
10729
|
+
plane: _enum(["full", "frame"]).optional()
|
|
10678
10730
|
}), PipelineRunResultBridge, { kind: "mutation" }), method(object({
|
|
10679
10731
|
engine: PipelineEngineChoiceSchema.optional(),
|
|
10680
10732
|
steps: array(PipelineStepInputSchema).min(1),
|
|
@@ -10817,6 +10869,28 @@ var NativeCropResultSchema = object({
|
|
|
10817
10869
|
width: number().int().positive(),
|
|
10818
10870
|
height: number().int().positive()
|
|
10819
10871
|
});
|
|
10872
|
+
/** Parent detection context passed to `runDetailSubtree` — the crop's
|
|
10873
|
+
* originating detection, in FRAME-space coordinates. Reuses
|
|
10874
|
+
* `NativeCropBboxSchema`'s `{x,y,w,h}` shape (same numeric fields; here
|
|
10875
|
+
* the coordinates are frame-space rather than getNativeCrop's
|
|
10876
|
+
* normalized [0,1] convention). */
|
|
10877
|
+
var DetailParentSchema = object({
|
|
10878
|
+
bbox: NativeCropBboxSchema,
|
|
10879
|
+
className: string()
|
|
10880
|
+
});
|
|
10881
|
+
/** One child-step result from `runDetailSubtree` — an embedding, label,
|
|
10882
|
+
* or refined detection produced by running the crop-subtree on a
|
|
10883
|
+
* single tracked detection. */
|
|
10884
|
+
var DetailResultSchema = object({
|
|
10885
|
+
stepId: string(),
|
|
10886
|
+
className: string(),
|
|
10887
|
+
score: number(),
|
|
10888
|
+
/** FRAME-space bbox (already mapped back from crop space). */
|
|
10889
|
+
bbox: NativeCropBboxSchema.optional(),
|
|
10890
|
+
embedding: string().optional(),
|
|
10891
|
+
label: string().optional(),
|
|
10892
|
+
alignedCropJpeg: string().optional()
|
|
10893
|
+
});
|
|
10820
10894
|
/**
|
|
10821
10895
|
* Per-camera tunable ranges + defaults. Single source of truth used
|
|
10822
10896
|
* by both the Zod data schema (validation + default fallback) and
|
|
@@ -11077,7 +11151,13 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
11077
11151
|
handle: FrameHandleSchema,
|
|
11078
11152
|
bbox: NativeCropBboxSchema,
|
|
11079
11153
|
maxWidth: number().int().positive().optional()
|
|
11080
|
-
}), NativeCropResultSchema.nullable())
|
|
11154
|
+
}), NativeCropResultSchema.nullable()), method(object({
|
|
11155
|
+
deviceId: number(),
|
|
11156
|
+
frameHandle: FrameHandleSchema.optional(),
|
|
11157
|
+
cropJpeg: string().optional(),
|
|
11158
|
+
parent: DetailParentSchema,
|
|
11159
|
+
steps: array(string()).optional()
|
|
11160
|
+
}), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" });
|
|
11081
11161
|
object({
|
|
11082
11162
|
detected: boolean(),
|
|
11083
11163
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -11689,6 +11769,140 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
|
|
|
11689
11769
|
deviceId: number(),
|
|
11690
11770
|
status: PtzAutotrackStatusSchema
|
|
11691
11771
|
});
|
|
11772
|
+
/**
|
|
11773
|
+
* scene-monitor — device-scoped reference-region state cap. An operator marks
|
|
11774
|
+
* a rect ROI on a camera frame and names one or more states; the engine
|
|
11775
|
+
* (pipeline-analytics, designated post-processing node) reports which state is
|
|
11776
|
+
* active on an ongoing basis. Two operator-selectable check modes share every-
|
|
11777
|
+
* thing except the comparator: `similarity` (CLIP cosine at the same ROI coords
|
|
11778
|
+
* vs condition-tagged references) and `llm` (vision-LLM judgment over the crop).
|
|
11779
|
+
*
|
|
11780
|
+
* D14 device-config archetype (`deviceConfig.ui.kind:'widget'`) — the framework
|
|
11781
|
+
* derives the device-detail contribution; the provider carries NO hand-written
|
|
11782
|
+
* settings-contribution methods. `status.kind:'push'` — the engine pushes on
|
|
11783
|
+
* every hysteresis flip / availability change; consumers never poll.
|
|
11784
|
+
*/
|
|
11785
|
+
/** Extensible condition tag. Seeded 'day' | 'night'; open by design so more can
|
|
11786
|
+
* be added without a wire break (matching falls back to any-condition refs). */
|
|
11787
|
+
var SceneConditionSchema = string();
|
|
11788
|
+
/** One captured reference — condition-tagged, model-version-gated. `embedding`
|
|
11789
|
+
* is `number[]` (Float32Array does NOT survive MsgPack/UDS). */
|
|
11790
|
+
var SceneReferenceSchema = object({
|
|
11791
|
+
embedding: array(number()),
|
|
11792
|
+
modelId: string(),
|
|
11793
|
+
condition: SceneConditionSchema,
|
|
11794
|
+
capturedAt: number(),
|
|
11795
|
+
thumbnailMediaId: string().optional()
|
|
11796
|
+
});
|
|
11797
|
+
var SceneMonitorStateSchema = object({
|
|
11798
|
+
id: string(),
|
|
11799
|
+
label: string(),
|
|
11800
|
+
references: array(SceneReferenceSchema),
|
|
11801
|
+
textPrompts: array(string()).optional(),
|
|
11802
|
+
referenceCount: number(),
|
|
11803
|
+
currentlyMatched: boolean()
|
|
11804
|
+
});
|
|
11805
|
+
/** Per-mode comparator params in a discriminated union so an `llm` scene never
|
|
11806
|
+
* carries similarity knobs and vice-versa. */
|
|
11807
|
+
var SceneCheckSchema = discriminatedUnion("mode", [object({
|
|
11808
|
+
mode: literal("similarity"),
|
|
11809
|
+
threshold: number().min(0).max(1),
|
|
11810
|
+
hysteresisCount: number().int().positive()
|
|
11811
|
+
}), object({
|
|
11812
|
+
mode: literal("llm"),
|
|
11813
|
+
prompt: string(),
|
|
11814
|
+
profileId: string().optional(),
|
|
11815
|
+
hysteresisCount: number().int().positive()
|
|
11816
|
+
})]);
|
|
11817
|
+
var SceneMonitorSchema = object({
|
|
11818
|
+
id: string(),
|
|
11819
|
+
label: string(),
|
|
11820
|
+
roi: MaskRectShapeSchema,
|
|
11821
|
+
enabled: boolean(),
|
|
11822
|
+
triggerMode: _enum([
|
|
11823
|
+
"periodic",
|
|
11824
|
+
"on-motion",
|
|
11825
|
+
"both"
|
|
11826
|
+
]),
|
|
11827
|
+
checkIntervalSec: number().optional(),
|
|
11828
|
+
check: SceneCheckSchema,
|
|
11829
|
+
states: array(SceneMonitorStateSchema),
|
|
11830
|
+
currentStateId: string().nullable(),
|
|
11831
|
+
lastCheckedAt: number().nullable(),
|
|
11832
|
+
lastConfidence: number().nullable(),
|
|
11833
|
+
currentCondition: SceneConditionSchema.nullable(),
|
|
11834
|
+
availability: _enum(["ok", "unavailable"]),
|
|
11835
|
+
unavailableReason: string().nullable()
|
|
11836
|
+
});
|
|
11837
|
+
var SceneMonitorStatusSchema = object({
|
|
11838
|
+
monitors: array(SceneMonitorSchema),
|
|
11839
|
+
lastFetchedAt: number()
|
|
11840
|
+
});
|
|
11841
|
+
DeviceType.Camera, method(object({ deviceId: number() }), SceneMonitorStatusSchema), method(object({
|
|
11842
|
+
deviceId: number(),
|
|
11843
|
+
label: string(),
|
|
11844
|
+
roi: MaskRectShapeSchema,
|
|
11845
|
+
check: SceneCheckSchema,
|
|
11846
|
+
triggerMode: _enum([
|
|
11847
|
+
"periodic",
|
|
11848
|
+
"on-motion",
|
|
11849
|
+
"both"
|
|
11850
|
+
]).optional(),
|
|
11851
|
+
checkIntervalSec: number().optional()
|
|
11852
|
+
}), SceneMonitorSchema, {
|
|
11853
|
+
kind: "mutation",
|
|
11854
|
+
auth: "admin"
|
|
11855
|
+
}), method(object({
|
|
11856
|
+
deviceId: number(),
|
|
11857
|
+
monitorId: string(),
|
|
11858
|
+
patch: object({
|
|
11859
|
+
label: string().optional(),
|
|
11860
|
+
roi: MaskRectShapeSchema.optional(),
|
|
11861
|
+
enabled: boolean().optional(),
|
|
11862
|
+
triggerMode: _enum([
|
|
11863
|
+
"periodic",
|
|
11864
|
+
"on-motion",
|
|
11865
|
+
"both"
|
|
11866
|
+
]).optional(),
|
|
11867
|
+
checkIntervalSec: number().optional(),
|
|
11868
|
+
check: SceneCheckSchema.optional()
|
|
11869
|
+
})
|
|
11870
|
+
}), _void(), {
|
|
11871
|
+
kind: "mutation",
|
|
11872
|
+
auth: "admin"
|
|
11873
|
+
}), method(object({
|
|
11874
|
+
deviceId: number(),
|
|
11875
|
+
monitorId: string()
|
|
11876
|
+
}), _void(), {
|
|
11877
|
+
kind: "mutation",
|
|
11878
|
+
auth: "admin"
|
|
11879
|
+
}), method(object({
|
|
11880
|
+
deviceId: number(),
|
|
11881
|
+
monitorId: string(),
|
|
11882
|
+
stateId: string().optional(),
|
|
11883
|
+
label: string().optional(),
|
|
11884
|
+
condition: SceneConditionSchema.optional()
|
|
11885
|
+
}), object({
|
|
11886
|
+
stateId: string(),
|
|
11887
|
+
referenceCount: number()
|
|
11888
|
+
}), {
|
|
11889
|
+
kind: "mutation",
|
|
11890
|
+
auth: "admin"
|
|
11891
|
+
}), method(object({
|
|
11892
|
+
deviceId: number(),
|
|
11893
|
+
monitorId: string(),
|
|
11894
|
+
stateId: string(),
|
|
11895
|
+
index: number()
|
|
11896
|
+
}), _void(), {
|
|
11897
|
+
kind: "mutation",
|
|
11898
|
+
auth: "admin"
|
|
11899
|
+
}), method(object({
|
|
11900
|
+
deviceId: number(),
|
|
11901
|
+
monitorId: string()
|
|
11902
|
+
}), _void(), {
|
|
11903
|
+
kind: "mutation",
|
|
11904
|
+
auth: "admin"
|
|
11905
|
+
});
|
|
11692
11906
|
object({
|
|
11693
11907
|
/** Whether the script is currently executing. */
|
|
11694
11908
|
isRunning: boolean(),
|
|
@@ -12710,7 +12924,12 @@ var NotificationRuleConditionsSchema = object({
|
|
|
12710
12924
|
clipDescription: object({
|
|
12711
12925
|
text: string().min(1),
|
|
12712
12926
|
minSimilarity: number().min(0).max(1)
|
|
12713
|
-
}).optional()
|
|
12927
|
+
}).optional(),
|
|
12928
|
+
/** Match events whose recognized-entity label (face identity name or plate
|
|
12929
|
+
* vehicle name, propagated onto `event.data.label`) is one of these values.
|
|
12930
|
+
* Empty/absent → unaffected (back-compat). Enables "notify me when <named
|
|
12931
|
+
* vehicle/person> is seen". */
|
|
12932
|
+
labels: array(string()).readonly().optional()
|
|
12714
12933
|
});
|
|
12715
12934
|
var NotificationRuleTemplateSchema = object({
|
|
12716
12935
|
title: string(),
|
|
@@ -12968,11 +13187,19 @@ method(object({
|
|
|
12968
13187
|
* login page needs NO change.
|
|
12969
13188
|
*
|
|
12970
13189
|
* - `widget` — a Module-Federation widget the login page mounts (via
|
|
12971
|
-
* `loadRemoteBundle`) for an in-page ceremony.
|
|
12972
|
-
*
|
|
12973
|
-
*
|
|
12974
|
-
*
|
|
12975
|
-
*
|
|
13190
|
+
* `loadRemoteBundle`) for an in-page ceremony. `auth.listLoginMethods`
|
|
13191
|
+
* stamps a public `bundleUrl` from `addonId` + `bundle`. Generic
|
|
13192
|
+
* mechanism kept for future use; no shipped addon uses it on the login
|
|
13193
|
+
* page (the passkey ceremony below runs natively in the shell instead).
|
|
13194
|
+
*
|
|
13195
|
+
* - `passkey` — a declarative WebAuthn ceremony the shell renders
|
|
13196
|
+
* natively (`@simplewebauthn/browser` lives in `addon-admin-ui`, not in
|
|
13197
|
+
* a remotely-loaded bundle). Carries the addon's effective `rpId` /
|
|
13198
|
+
* `origin` (from its `resolveRpID()` / `resolveOrigin()`) so the shell
|
|
13199
|
+
* can gate visibility (IP-literal origin, hostname/rpId mismatch) WITHOUT
|
|
13200
|
+
* fetching any remote code pre-auth. Contribution stays unconditional —
|
|
13201
|
+
* enrollment state is never leaked pre-auth; visibility is a shell
|
|
13202
|
+
* decision.
|
|
12976
13203
|
*
|
|
12977
13204
|
* Every contribution carries a `stage`:
|
|
12978
13205
|
* - `primary` — shown on the first credentials screen (OIDC /
|
|
@@ -12986,30 +13213,45 @@ method(object({
|
|
|
12986
13213
|
*/
|
|
12987
13214
|
/** When a login method renders in the two-phase login flow. */
|
|
12988
13215
|
var LoginStageEnum = _enum(["primary", "second-factor"]);
|
|
12989
|
-
/** One login-method contribution — redirect button
|
|
12990
|
-
var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
12991
|
-
|
|
12992
|
-
|
|
12993
|
-
|
|
12994
|
-
|
|
12995
|
-
|
|
12996
|
-
|
|
12997
|
-
|
|
12998
|
-
|
|
12999
|
-
|
|
13000
|
-
|
|
13001
|
-
|
|
13002
|
-
|
|
13003
|
-
|
|
13004
|
-
|
|
13005
|
-
|
|
13006
|
-
|
|
13007
|
-
|
|
13008
|
-
|
|
13009
|
-
|
|
13010
|
-
|
|
13011
|
-
|
|
13012
|
-
|
|
13216
|
+
/** One login-method contribution — redirect button, pre-auth widget, or native passkey ceremony. */
|
|
13217
|
+
var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
13218
|
+
object({
|
|
13219
|
+
kind: literal("redirect"),
|
|
13220
|
+
/** Stable id within the login-method set (e.g. `auth-oidc/google`). */
|
|
13221
|
+
id: string(),
|
|
13222
|
+
/** Operator-facing button label. */
|
|
13223
|
+
label: string(),
|
|
13224
|
+
/** lucide-react icon name. */
|
|
13225
|
+
icon: string().optional(),
|
|
13226
|
+
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
13227
|
+
startUrl: string(),
|
|
13228
|
+
stage: LoginStageEnum
|
|
13229
|
+
}),
|
|
13230
|
+
object({
|
|
13231
|
+
kind: literal("widget"),
|
|
13232
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-login`). */
|
|
13233
|
+
id: string(),
|
|
13234
|
+
/** Owning addon id — drives the public bundle URL + the MF namespace. */
|
|
13235
|
+
addonId: string(),
|
|
13236
|
+
/** Bundle filename inside the addon's dist dir (`remoteEntry.js`). */
|
|
13237
|
+
bundle: string(),
|
|
13238
|
+
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
13239
|
+
remote: WidgetRemoteSchema,
|
|
13240
|
+
stage: LoginStageEnum
|
|
13241
|
+
}),
|
|
13242
|
+
object({
|
|
13243
|
+
kind: literal("passkey"),
|
|
13244
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-direct-login`). */
|
|
13245
|
+
id: string(),
|
|
13246
|
+
/** Operator-facing button label. */
|
|
13247
|
+
label: string(),
|
|
13248
|
+
stage: LoginStageEnum,
|
|
13249
|
+
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
13250
|
+
rpId: string(),
|
|
13251
|
+
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
13252
|
+
origin: string().nullable()
|
|
13253
|
+
})
|
|
13254
|
+
]);
|
|
13013
13255
|
method(_void(), array(LoginMethodContributionSchema).readonly());
|
|
13014
13256
|
/**
|
|
13015
13257
|
* Orchestrator-side destination metadata. The orchestrator computes
|
|
@@ -14837,14 +15079,14 @@ var TargetKindCapsSchema = object({
|
|
|
14837
15079
|
* the union is large and not meant for runtime validation here; the exported
|
|
14838
15080
|
* `TargetKind` type re-tightens `configSchema` to `ConfigUISchema`.
|
|
14839
15081
|
*/
|
|
14840
|
-
var ConfigSchemaPassthrough = unknown();
|
|
15082
|
+
var ConfigSchemaPassthrough$1 = unknown();
|
|
14841
15083
|
var TargetKindSchema = object({
|
|
14842
15084
|
kind: string(),
|
|
14843
15085
|
label: string(),
|
|
14844
15086
|
icon: string(),
|
|
14845
15087
|
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
14846
15088
|
addonId: string(),
|
|
14847
|
-
configSchema: ConfigSchemaPassthrough,
|
|
15089
|
+
configSchema: ConfigSchemaPassthrough$1,
|
|
14848
15090
|
supportsDiscovery: boolean(),
|
|
14849
15091
|
caps: TargetKindCapsSchema
|
|
14850
15092
|
});
|
|
@@ -14897,6 +15139,298 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
14897
15139
|
enabled: boolean()
|
|
14898
15140
|
}), _void(), { kind: "mutation" });
|
|
14899
15141
|
/**
|
|
15142
|
+
* Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
|
|
15143
|
+
* surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
|
|
15144
|
+
* caps stay wire-compatible without a circular cap→cap import.
|
|
15145
|
+
*
|
|
15146
|
+
* Errors are a discriminated-union RESULT, never thrown: the shape survives
|
|
15147
|
+
* every transport tier structurally, and failed calls still write usage rows.
|
|
15148
|
+
* Token counts only in v1 — no costUsd (operator decision, 2026-07-15).
|
|
15149
|
+
*/
|
|
15150
|
+
var LlmUsageSchema = object({
|
|
15151
|
+
inputTokens: number(),
|
|
15152
|
+
outputTokens: number()
|
|
15153
|
+
});
|
|
15154
|
+
var LlmErrorCodeSchema = _enum([
|
|
15155
|
+
"timeout",
|
|
15156
|
+
"rate-limited",
|
|
15157
|
+
"auth",
|
|
15158
|
+
"refusal",
|
|
15159
|
+
"bad-request",
|
|
15160
|
+
"unavailable",
|
|
15161
|
+
"no-profile",
|
|
15162
|
+
"budget-exceeded",
|
|
15163
|
+
"adapter-error"
|
|
15164
|
+
]);
|
|
15165
|
+
var LlmGenerateResultSchema = discriminatedUnion("ok", [object({
|
|
15166
|
+
ok: literal(true),
|
|
15167
|
+
text: string(),
|
|
15168
|
+
model: string(),
|
|
15169
|
+
usage: LlmUsageSchema,
|
|
15170
|
+
truncated: boolean(),
|
|
15171
|
+
latencyMs: number()
|
|
15172
|
+
}), object({
|
|
15173
|
+
ok: literal(false),
|
|
15174
|
+
code: LlmErrorCodeSchema,
|
|
15175
|
+
message: string(),
|
|
15176
|
+
retryAfterMs: number().optional()
|
|
15177
|
+
})]);
|
|
15178
|
+
/**
|
|
15179
|
+
* `Uint8Array` is the sanctioned binary convention — superjson + the UDS
|
|
15180
|
+
* MsgPack channel round-trip typed arrays (embedding-encoder.cap.ts:29,
|
|
15181
|
+
* notification-output.cap.ts:27-31 precedents).
|
|
15182
|
+
*/
|
|
15183
|
+
var LlmImageSchema = object({
|
|
15184
|
+
bytes: _instanceof(Uint8Array),
|
|
15185
|
+
mimeType: string()
|
|
15186
|
+
});
|
|
15187
|
+
var LlmGenerateBaseInputSchema = object({
|
|
15188
|
+
/** Collection routing (the notification-output posture). */
|
|
15189
|
+
addonId: string().optional(),
|
|
15190
|
+
/** Explicit profile; else the resolution chain (spec §3). */
|
|
15191
|
+
profileId: string().optional(),
|
|
15192
|
+
/** MANDATORY usage tag: 'ai-summary', 'notifier-rules', 'adhoc-ui', … */
|
|
15193
|
+
consumer: string(),
|
|
15194
|
+
system: string().optional(),
|
|
15195
|
+
/** v1: single-turn. `messages[]` is a v2 additive field. */
|
|
15196
|
+
prompt: string(),
|
|
15197
|
+
/** Structured output — adapter-mapped (response_format / forced tool / responseSchema). */
|
|
15198
|
+
jsonSchema: record(string(), unknown()).optional(),
|
|
15199
|
+
/** Per-call override of the profile default. */
|
|
15200
|
+
maxTokens: number().int().positive().optional(),
|
|
15201
|
+
temperature: number().optional()
|
|
15202
|
+
});
|
|
15203
|
+
/**
|
|
15204
|
+
* `llm-runtime` — node-side managed llama.cpp executor (spec §4). Registered
|
|
15205
|
+
* on EVERY node where `addon-ai` is installed; the hub `llm` provider reaches
|
|
15206
|
+
* a specific node's runtime with `nodePin(profile.runtime.nodeId)` — normal
|
|
15207
|
+
* cap routing, zero bespoke plumbing. `internal: true`: the operator reaches
|
|
15208
|
+
* this only through the `llm` cap's methods.
|
|
15209
|
+
*
|
|
15210
|
+
* One running llama-server child per node in v1 (models are RAM-heavy).
|
|
15211
|
+
* Resource ceiling = llama-server flags + idleStopMinutes ONLY (no RSS
|
|
15212
|
+
* watchdog — operator decision #3).
|
|
15213
|
+
*/
|
|
15214
|
+
var ManagedModelRefSchema = discriminatedUnion("kind", [
|
|
15215
|
+
object({
|
|
15216
|
+
kind: literal("catalog"),
|
|
15217
|
+
catalogId: string()
|
|
15218
|
+
}),
|
|
15219
|
+
object({
|
|
15220
|
+
kind: literal("url"),
|
|
15221
|
+
url: string(),
|
|
15222
|
+
sha256: string().optional()
|
|
15223
|
+
}),
|
|
15224
|
+
object({
|
|
15225
|
+
kind: literal("path"),
|
|
15226
|
+
path: string()
|
|
15227
|
+
})
|
|
15228
|
+
]);
|
|
15229
|
+
var ManagedRuntimeConfigSchema = object({
|
|
15230
|
+
/** WHERE the runtime lives — hub or any agent. */
|
|
15231
|
+
nodeId: string(),
|
|
15232
|
+
/** Closed for v1; 'ollama' is a v2 candidate. */
|
|
15233
|
+
engine: _enum(["llama-cpp"]),
|
|
15234
|
+
model: ManagedModelRefSchema,
|
|
15235
|
+
contextSize: number().int().default(4096),
|
|
15236
|
+
/** 0 = CPU-only. */
|
|
15237
|
+
gpuLayers: number().int().default(0),
|
|
15238
|
+
/** Default: cpus-2, clamped ≥1 (resolved node-side). */
|
|
15239
|
+
threads: number().int().optional(),
|
|
15240
|
+
/** Concurrent slots. */
|
|
15241
|
+
parallel: number().int().default(1),
|
|
15242
|
+
/** Else lazy: first generate boots it. */
|
|
15243
|
+
autoStart: boolean().default(false),
|
|
15244
|
+
/** 0 = never; frees RAM after quiet periods. */
|
|
15245
|
+
idleStopMinutes: number().int().default(30)
|
|
15246
|
+
});
|
|
15247
|
+
var LlmRuntimeStatusSchema = object({
|
|
15248
|
+
/** Status is ALWAYS node-qualified. */
|
|
15249
|
+
nodeId: string(),
|
|
15250
|
+
state: _enum([
|
|
15251
|
+
"stopped",
|
|
15252
|
+
"downloading",
|
|
15253
|
+
"starting",
|
|
15254
|
+
"ready",
|
|
15255
|
+
"crashed",
|
|
15256
|
+
"failed"
|
|
15257
|
+
]),
|
|
15258
|
+
pid: number().optional(),
|
|
15259
|
+
port: number().optional(),
|
|
15260
|
+
modelPath: string().optional(),
|
|
15261
|
+
modelId: string().optional(),
|
|
15262
|
+
downloadProgress: number().min(0).max(1).optional(),
|
|
15263
|
+
lastError: string().optional(),
|
|
15264
|
+
crashesInWindow: number(),
|
|
15265
|
+
/** Child RSS (sampled best-effort). */
|
|
15266
|
+
memoryBytes: number().optional(),
|
|
15267
|
+
vramBytes: number().optional()
|
|
15268
|
+
});
|
|
15269
|
+
var LlmNodeModelSchema = object({
|
|
15270
|
+
file: string(),
|
|
15271
|
+
sizeBytes: number(),
|
|
15272
|
+
catalogId: string().optional(),
|
|
15273
|
+
installedAt: number().optional()
|
|
15274
|
+
});
|
|
15275
|
+
var LlmRuntimeDiskUsageSchema = object({
|
|
15276
|
+
nodeId: string(),
|
|
15277
|
+
modelsBytes: number(),
|
|
15278
|
+
freeBytes: number().optional()
|
|
15279
|
+
});
|
|
15280
|
+
method(LlmGenerateBaseInputSchema.extend({
|
|
15281
|
+
images: array(LlmImageSchema).optional(),
|
|
15282
|
+
runtime: ManagedRuntimeConfigSchema,
|
|
15283
|
+
/** The managed profile's timeout, threaded by the hub provider. */
|
|
15284
|
+
timeoutMs: number().int().positive().optional()
|
|
15285
|
+
}), LlmGenerateResultSchema, { kind: "mutation" }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
15286
|
+
kind: "mutation",
|
|
15287
|
+
auth: "admin"
|
|
15288
|
+
}), method(object({}), _void(), {
|
|
15289
|
+
kind: "mutation",
|
|
15290
|
+
auth: "admin"
|
|
15291
|
+
}), method(object({}), LlmRuntimeStatusSchema), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
15292
|
+
kind: "mutation",
|
|
15293
|
+
auth: "admin"
|
|
15294
|
+
}), method(object({ file: string() }), _void(), {
|
|
15295
|
+
kind: "mutation",
|
|
15296
|
+
auth: "admin"
|
|
15297
|
+
}), method(object({}), array(LlmNodeModelSchema)), method(object({}), LlmRuntimeDiskUsageSchema);
|
|
15298
|
+
/**
|
|
15299
|
+
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
15300
|
+
* methods concat-fan across providers; single-row methods route to ONE
|
|
15301
|
+
* provider by the `addonId` in the call input (the notification-output
|
|
15302
|
+
* posture, notification-output.cap.ts:215-250). Provided by `addon-ai`
|
|
15303
|
+
* (hub-placed); the cap stays open for future providers.
|
|
15304
|
+
*
|
|
15305
|
+
* Profiles are ROWS (data), not addons: one row = one usable model endpoint.
|
|
15306
|
+
* `apiKey` is a password field — providers REDACT it on read and merge on
|
|
15307
|
+
* write; a stored key NEVER round-trips to a client.
|
|
15308
|
+
*/
|
|
15309
|
+
var LlmProfileKindSchema = _enum([
|
|
15310
|
+
"openai-compatible",
|
|
15311
|
+
"openai",
|
|
15312
|
+
"anthropic",
|
|
15313
|
+
"google",
|
|
15314
|
+
"managed-local"
|
|
15315
|
+
]);
|
|
15316
|
+
var LlmProfileSchema = object({
|
|
15317
|
+
id: string(),
|
|
15318
|
+
name: string(),
|
|
15319
|
+
kind: LlmProfileKindSchema,
|
|
15320
|
+
/** Stamped by the provider — keeps the fanned catalog routable. */
|
|
15321
|
+
addonId: string(),
|
|
15322
|
+
enabled: boolean(),
|
|
15323
|
+
/** Vendor model id, or the managed runtime's loaded model. */
|
|
15324
|
+
model: string(),
|
|
15325
|
+
/** Required for openai-compatible; override for cloud kinds. */
|
|
15326
|
+
baseUrl: string().optional(),
|
|
15327
|
+
/** ConfigUISchema type:'password' — never round-trips (spec §5). */
|
|
15328
|
+
apiKey: string().optional(),
|
|
15329
|
+
supportsVision: boolean(),
|
|
15330
|
+
temperature: number().min(0).max(2).optional(),
|
|
15331
|
+
maxTokens: number().int().positive().optional(),
|
|
15332
|
+
timeoutMs: number().int().positive().default(6e4),
|
|
15333
|
+
extraHeaders: record(string(), string()).optional(),
|
|
15334
|
+
/** kind === 'managed-local' only (spec §4). */
|
|
15335
|
+
runtime: ManagedRuntimeConfigSchema.optional()
|
|
15336
|
+
});
|
|
15337
|
+
/** ConfigUISchema tree passed through untyped on the wire (the
|
|
15338
|
+
* notification-output `ConfigSchemaPassthrough` precedent at
|
|
15339
|
+
* notification-output.cap.ts:151); the exported TS type re-tightens it. */
|
|
15340
|
+
var ConfigSchemaPassthrough = unknown();
|
|
15341
|
+
var LlmProfileKindDescriptorSchema = object({
|
|
15342
|
+
kind: LlmProfileKindSchema,
|
|
15343
|
+
label: string(),
|
|
15344
|
+
icon: string(),
|
|
15345
|
+
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
15346
|
+
addonId: string(),
|
|
15347
|
+
configSchema: ConfigSchemaPassthrough
|
|
15348
|
+
});
|
|
15349
|
+
var LlmDefaultSelectorSchema = union([object({ consumer: string() }), object({ purpose: _enum(["text", "vision"]) })]);
|
|
15350
|
+
var LlmDefaultSchema = object({
|
|
15351
|
+
selector: LlmDefaultSelectorSchema,
|
|
15352
|
+
profileId: string()
|
|
15353
|
+
});
|
|
15354
|
+
/** Server-side rollup row — getUsage never dumps raw call rows (spec §6). */
|
|
15355
|
+
var LlmUsageRollupSchema = object({
|
|
15356
|
+
day: string(),
|
|
15357
|
+
consumer: string(),
|
|
15358
|
+
profileId: string(),
|
|
15359
|
+
calls: number(),
|
|
15360
|
+
okCalls: number(),
|
|
15361
|
+
errorCalls: number(),
|
|
15362
|
+
inputTokens: number(),
|
|
15363
|
+
outputTokens: number(),
|
|
15364
|
+
avgLatencyMs: number()
|
|
15365
|
+
});
|
|
15366
|
+
/** LLM-facing view over the reused ModelCatalogEntry mechanism (spec §4.2). */
|
|
15367
|
+
var ManagedModelCatalogEntrySchema = object({
|
|
15368
|
+
id: string(),
|
|
15369
|
+
label: string(),
|
|
15370
|
+
family: string(),
|
|
15371
|
+
purpose: _enum(["text", "vision"]),
|
|
15372
|
+
url: string(),
|
|
15373
|
+
sha256: string(),
|
|
15374
|
+
sizeBytes: number(),
|
|
15375
|
+
quantization: string(),
|
|
15376
|
+
/** Load-time guidance shown in the picker. */
|
|
15377
|
+
minRamBytes: number(),
|
|
15378
|
+
contextSizeDefault: number().int(),
|
|
15379
|
+
/** Vision models: companion projector file. */
|
|
15380
|
+
mmprojUrl: string().optional()
|
|
15381
|
+
});
|
|
15382
|
+
var LlmRuntimeNodeSchema = object({
|
|
15383
|
+
nodeId: string(),
|
|
15384
|
+
reachable: boolean(),
|
|
15385
|
+
status: LlmRuntimeStatusSchema.optional(),
|
|
15386
|
+
disk: LlmRuntimeDiskUsageSchema.optional(),
|
|
15387
|
+
error: string().optional()
|
|
15388
|
+
});
|
|
15389
|
+
var GenerateVisionInputSchema = LlmGenerateBaseInputSchema.extend({ images: array(LlmImageSchema).min(1) });
|
|
15390
|
+
var ProfileRefInputSchema = object({
|
|
15391
|
+
addonId: string(),
|
|
15392
|
+
profileId: string()
|
|
15393
|
+
});
|
|
15394
|
+
method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
|
|
15395
|
+
kind: "mutation",
|
|
15396
|
+
auth: "admin"
|
|
15397
|
+
}), method(ProfileRefInputSchema, _void(), {
|
|
15398
|
+
kind: "mutation",
|
|
15399
|
+
auth: "admin"
|
|
15400
|
+
}), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
|
|
15401
|
+
kind: "mutation",
|
|
15402
|
+
auth: "admin"
|
|
15403
|
+
}), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
|
|
15404
|
+
selector: LlmDefaultSelectorSchema,
|
|
15405
|
+
profileId: string().nullable()
|
|
15406
|
+
}), _void(), {
|
|
15407
|
+
kind: "mutation",
|
|
15408
|
+
auth: "admin"
|
|
15409
|
+
}), method(object({
|
|
15410
|
+
since: number().optional(),
|
|
15411
|
+
until: number().optional(),
|
|
15412
|
+
consumer: string().optional(),
|
|
15413
|
+
profileId: string().optional()
|
|
15414
|
+
}), array(LlmUsageRollupSchema)), method(object({}), array(ManagedModelCatalogEntrySchema)), method(object({}), array(LlmRuntimeNodeSchema)), method(object({ nodeId: string() }), array(LlmNodeModelSchema)), method(object({
|
|
15415
|
+
nodeId: string(),
|
|
15416
|
+
model: ManagedModelRefSchema
|
|
15417
|
+
}), _void(), {
|
|
15418
|
+
kind: "mutation",
|
|
15419
|
+
auth: "admin"
|
|
15420
|
+
}), method(object({
|
|
15421
|
+
nodeId: string(),
|
|
15422
|
+
file: string()
|
|
15423
|
+
}), _void(), {
|
|
15424
|
+
kind: "mutation",
|
|
15425
|
+
auth: "admin"
|
|
15426
|
+
}), method(ProfileRefInputSchema, LlmRuntimeStatusSchema), method(ProfileRefInputSchema, LlmRuntimeStatusSchema, {
|
|
15427
|
+
kind: "mutation",
|
|
15428
|
+
auth: "admin"
|
|
15429
|
+
}), method(ProfileRefInputSchema, _void(), {
|
|
15430
|
+
kind: "mutation",
|
|
15431
|
+
auth: "admin"
|
|
15432
|
+
});
|
|
15433
|
+
/**
|
|
14900
15434
|
* Zod schemas for persisted record types.
|
|
14901
15435
|
*
|
|
14902
15436
|
* These schemas serve as the single source of truth for types that are
|
|
@@ -15112,6 +15646,10 @@ var TrackSchema = object({
|
|
|
15112
15646
|
snapshots: array(TrackSnapshotSchema).readonly(),
|
|
15113
15647
|
/** Deduplicated zones the track has entered at least once. */
|
|
15114
15648
|
zonesVisited: array(string()).readonly(),
|
|
15649
|
+
/** Deduplicated set of detector classes observed for this track over its
|
|
15650
|
+
* life (a track may be reclassified, e.g. person→vehicle). Absent on
|
|
15651
|
+
* legacy rows written before class accumulation shipped. */
|
|
15652
|
+
classes: array(string()).readonly().optional(),
|
|
15115
15653
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
15116
15654
|
totalDistance: number(),
|
|
15117
15655
|
state: TrackStateSchema,
|
|
@@ -15273,7 +15811,7 @@ var KeyEventSchema = object({
|
|
|
15273
15811
|
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
15274
15812
|
windowMs: number().optional()
|
|
15275
15813
|
});
|
|
15276
|
-
|
|
15814
|
+
object({
|
|
15277
15815
|
trackId: string(),
|
|
15278
15816
|
className: string(),
|
|
15279
15817
|
confidence: number(),
|
|
@@ -15281,6 +15819,23 @@ var TrackedDetectionSchema = object({
|
|
|
15281
15819
|
zones: array(string()).readonly(),
|
|
15282
15820
|
state: TrackStateSchema
|
|
15283
15821
|
});
|
|
15822
|
+
var OverlayDetectionSchema = looseObject({
|
|
15823
|
+
id: string(),
|
|
15824
|
+
kind: _enum(["first-level", "detail"]),
|
|
15825
|
+
macroClass: string(),
|
|
15826
|
+
score: number(),
|
|
15827
|
+
bbox: object({
|
|
15828
|
+
x: number(),
|
|
15829
|
+
y: number(),
|
|
15830
|
+
width: number(),
|
|
15831
|
+
height: number()
|
|
15832
|
+
}),
|
|
15833
|
+
labels: array(looseObject({
|
|
15834
|
+
label: string(),
|
|
15835
|
+
score: number()
|
|
15836
|
+
})).readonly(),
|
|
15837
|
+
parentId: string().optional()
|
|
15838
|
+
});
|
|
15284
15839
|
var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
|
|
15285
15840
|
var SearchObjectEventsInput = object({
|
|
15286
15841
|
text: string(),
|
|
@@ -15291,6 +15846,20 @@ var SearchObjectEventsInput = object({
|
|
|
15291
15846
|
limit: number().default(50),
|
|
15292
15847
|
minScore: number().min(0).max(1).default(.2)
|
|
15293
15848
|
});
|
|
15849
|
+
var TrackCascadeCountsSchema = object({
|
|
15850
|
+
/** Persisted track roots deleted (authoritative). */
|
|
15851
|
+
tracks: number().int(),
|
|
15852
|
+
/** Object events removed with their tracks (best-effort; see note above). */
|
|
15853
|
+
events: number().int(),
|
|
15854
|
+
/** Track/face/plate-owned media removed (best-effort). Never identity media. */
|
|
15855
|
+
media: number().int(),
|
|
15856
|
+
/** Unassigned (non-enrolled) face reads removed (best-effort). */
|
|
15857
|
+
faces: number().int(),
|
|
15858
|
+
/** Unassigned plate reads removed (best-effort; plate leg deferred to plate-intelligence). */
|
|
15859
|
+
plates: number().int(),
|
|
15860
|
+
/** Per-track CLIP search vectors removed (best-effort). */
|
|
15861
|
+
embeddings: number().int()
|
|
15862
|
+
});
|
|
15294
15863
|
DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
|
|
15295
15864
|
deviceId: number(),
|
|
15296
15865
|
trackId: string()
|
|
@@ -15322,6 +15891,24 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15322
15891
|
}), {
|
|
15323
15892
|
kind: "mutation",
|
|
15324
15893
|
auth: "admin"
|
|
15894
|
+
}), method(object({
|
|
15895
|
+
deviceId: number(),
|
|
15896
|
+
cutoffMs: number()
|
|
15897
|
+
}), TrackCascadeCountsSchema, {
|
|
15898
|
+
kind: "mutation",
|
|
15899
|
+
auth: "admin"
|
|
15900
|
+
}), method(object({ deviceId: number() }), TrackCascadeCountsSchema, {
|
|
15901
|
+
kind: "mutation",
|
|
15902
|
+
auth: "admin"
|
|
15903
|
+
}), method(object({
|
|
15904
|
+
deviceId: number(),
|
|
15905
|
+
trackIds: array(string()).min(1)
|
|
15906
|
+
}), object({
|
|
15907
|
+
deleted: number().int(),
|
|
15908
|
+
failed: array(string()).readonly()
|
|
15909
|
+
}), {
|
|
15910
|
+
kind: "mutation",
|
|
15911
|
+
auth: "admin"
|
|
15325
15912
|
}), method(object({
|
|
15326
15913
|
eventId: string(),
|
|
15327
15914
|
kind: MediaFileKindEnum.optional()
|
|
@@ -15330,7 +15917,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15330
15917
|
timestamp: number(),
|
|
15331
15918
|
frameWidth: number(),
|
|
15332
15919
|
frameHeight: number(),
|
|
15333
|
-
detections: array(
|
|
15920
|
+
detections: array(OverlayDetectionSchema).readonly()
|
|
15334
15921
|
}), object({
|
|
15335
15922
|
deviceId: number(),
|
|
15336
15923
|
trackId: string(),
|
|
@@ -18099,6 +18686,24 @@ DeviceType.Camera, method(object({
|
|
|
18099
18686
|
deviceId: number(),
|
|
18100
18687
|
status: OsdStatusSchema
|
|
18101
18688
|
});
|
|
18689
|
+
var VehicleSchema = object({
|
|
18690
|
+
id: string(),
|
|
18691
|
+
name: string(),
|
|
18692
|
+
sampleCount: number().int().nonnegative(),
|
|
18693
|
+
coverMediaKey: string().optional(),
|
|
18694
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaKey`. */
|
|
18695
|
+
coverBase64: string().optional()
|
|
18696
|
+
});
|
|
18697
|
+
var VehicleSampleInfoSchema = object({
|
|
18698
|
+
id: string(),
|
|
18699
|
+
/** The plate text this sample enrolled (self-labeling — no embedding). */
|
|
18700
|
+
text: string(),
|
|
18701
|
+
/** OCR confidence of the enrolled read (0..1). */
|
|
18702
|
+
score: number(),
|
|
18703
|
+
addedAt: number().int(),
|
|
18704
|
+
deviceId: number().int().optional(),
|
|
18705
|
+
base64: string().optional()
|
|
18706
|
+
});
|
|
18102
18707
|
var PlateInfoSchema = object({
|
|
18103
18708
|
plateId: string(),
|
|
18104
18709
|
deviceId: number().int(),
|
|
@@ -18110,6 +18715,16 @@ var PlateInfoSchema = object({
|
|
|
18110
18715
|
score: number(),
|
|
18111
18716
|
/** True when the text was manually corrected (exempt from retention). */
|
|
18112
18717
|
corrected: boolean(),
|
|
18718
|
+
/** Recognized vehicle id when a matcher lookup named this read (SQL NULL → absent). */
|
|
18719
|
+
recognizedVehicleId: string().optional(),
|
|
18720
|
+
/** Resolved vehicle name for `recognizedVehicleId` (UI convenience). */
|
|
18721
|
+
vehicleName: string().optional(),
|
|
18722
|
+
/** True once the read was assigned to a vehicle (enrolled as a sample). */
|
|
18723
|
+
assigned: boolean(),
|
|
18724
|
+
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
18725
|
+
plateBbox: BoundingBoxSchema.optional(),
|
|
18726
|
+
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
18727
|
+
keyFrameMediaKey: string().optional(),
|
|
18113
18728
|
base64: string().optional()
|
|
18114
18729
|
});
|
|
18115
18730
|
var MediaFileLiteSchema = object({
|
|
@@ -18149,6 +18764,48 @@ method(object({
|
|
|
18149
18764
|
}), method(object({ plateId: string() }), _void(), {
|
|
18150
18765
|
kind: "mutation",
|
|
18151
18766
|
auth: "admin"
|
|
18767
|
+
}), method(_void(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
18768
|
+
kind: "mutation",
|
|
18769
|
+
auth: "admin"
|
|
18770
|
+
}), method(object({
|
|
18771
|
+
id: string(),
|
|
18772
|
+
name: string().min(1)
|
|
18773
|
+
}), _void(), {
|
|
18774
|
+
kind: "mutation",
|
|
18775
|
+
auth: "admin"
|
|
18776
|
+
}), method(object({ id: string() }), _void(), {
|
|
18777
|
+
kind: "mutation",
|
|
18778
|
+
auth: "admin"
|
|
18779
|
+
}), method(object({ vehicleId: string() }), array(VehicleSampleInfoSchema).readonly()), method(object({
|
|
18780
|
+
vehicleId: string(),
|
|
18781
|
+
sampleId: string()
|
|
18782
|
+
}), _void(), {
|
|
18783
|
+
kind: "mutation",
|
|
18784
|
+
auth: "admin"
|
|
18785
|
+
}), method(object({
|
|
18786
|
+
plateId: string(),
|
|
18787
|
+
vehicleId: string()
|
|
18788
|
+
}), _void(), {
|
|
18789
|
+
kind: "mutation",
|
|
18790
|
+
auth: "admin"
|
|
18791
|
+
}), method(object({ plateId: string() }), _void(), {
|
|
18792
|
+
kind: "mutation",
|
|
18793
|
+
auth: "admin"
|
|
18794
|
+
}), method(object({
|
|
18795
|
+
plateIds: array(string()).min(1),
|
|
18796
|
+
vehicleId: string()
|
|
18797
|
+
}), object({
|
|
18798
|
+
assigned: number().int(),
|
|
18799
|
+
failed: array(string()).readonly()
|
|
18800
|
+
}), {
|
|
18801
|
+
kind: "mutation",
|
|
18802
|
+
auth: "admin"
|
|
18803
|
+
}), method(object({ plateIds: array(string()).min(1) }), object({
|
|
18804
|
+
unassigned: number().int(),
|
|
18805
|
+
failed: array(string()).readonly()
|
|
18806
|
+
}), {
|
|
18807
|
+
kind: "mutation",
|
|
18808
|
+
auth: "admin"
|
|
18152
18809
|
});
|
|
18153
18810
|
var ModelFormatSchema = _enum(MODEL_FORMATS);
|
|
18154
18811
|
var HwAccelBackendInputSchema = _enum([
|
|
@@ -20694,6 +21351,168 @@ Object.freeze({
|
|
|
20694
21351
|
addonId: null,
|
|
20695
21352
|
access: "create"
|
|
20696
21353
|
},
|
|
21354
|
+
"llm.deleteModel": {
|
|
21355
|
+
capName: "llm",
|
|
21356
|
+
capScope: "system",
|
|
21357
|
+
addonId: null,
|
|
21358
|
+
access: "delete"
|
|
21359
|
+
},
|
|
21360
|
+
"llm.deleteProfile": {
|
|
21361
|
+
capName: "llm",
|
|
21362
|
+
capScope: "system",
|
|
21363
|
+
addonId: null,
|
|
21364
|
+
access: "delete"
|
|
21365
|
+
},
|
|
21366
|
+
"llm.generate": {
|
|
21367
|
+
capName: "llm",
|
|
21368
|
+
capScope: "system",
|
|
21369
|
+
addonId: null,
|
|
21370
|
+
access: "create"
|
|
21371
|
+
},
|
|
21372
|
+
"llm.generateVision": {
|
|
21373
|
+
capName: "llm",
|
|
21374
|
+
capScope: "system",
|
|
21375
|
+
addonId: null,
|
|
21376
|
+
access: "create"
|
|
21377
|
+
},
|
|
21378
|
+
"llm.getDefaults": {
|
|
21379
|
+
capName: "llm",
|
|
21380
|
+
capScope: "system",
|
|
21381
|
+
addonId: null,
|
|
21382
|
+
access: "view"
|
|
21383
|
+
},
|
|
21384
|
+
"llm.getRuntimeStatus": {
|
|
21385
|
+
capName: "llm",
|
|
21386
|
+
capScope: "system",
|
|
21387
|
+
addonId: null,
|
|
21388
|
+
access: "view"
|
|
21389
|
+
},
|
|
21390
|
+
"llm.getUsage": {
|
|
21391
|
+
capName: "llm",
|
|
21392
|
+
capScope: "system",
|
|
21393
|
+
addonId: null,
|
|
21394
|
+
access: "view"
|
|
21395
|
+
},
|
|
21396
|
+
"llm.installModel": {
|
|
21397
|
+
capName: "llm",
|
|
21398
|
+
capScope: "system",
|
|
21399
|
+
addonId: null,
|
|
21400
|
+
access: "create"
|
|
21401
|
+
},
|
|
21402
|
+
"llm.listModelCatalog": {
|
|
21403
|
+
capName: "llm",
|
|
21404
|
+
capScope: "system",
|
|
21405
|
+
addonId: null,
|
|
21406
|
+
access: "view"
|
|
21407
|
+
},
|
|
21408
|
+
"llm.listModels": {
|
|
21409
|
+
capName: "llm",
|
|
21410
|
+
capScope: "system",
|
|
21411
|
+
addonId: null,
|
|
21412
|
+
access: "view"
|
|
21413
|
+
},
|
|
21414
|
+
"llm.listNodeModels": {
|
|
21415
|
+
capName: "llm",
|
|
21416
|
+
capScope: "system",
|
|
21417
|
+
addonId: null,
|
|
21418
|
+
access: "view"
|
|
21419
|
+
},
|
|
21420
|
+
"llm.listProfileKinds": {
|
|
21421
|
+
capName: "llm",
|
|
21422
|
+
capScope: "system",
|
|
21423
|
+
addonId: null,
|
|
21424
|
+
access: "view"
|
|
21425
|
+
},
|
|
21426
|
+
"llm.listProfiles": {
|
|
21427
|
+
capName: "llm",
|
|
21428
|
+
capScope: "system",
|
|
21429
|
+
addonId: null,
|
|
21430
|
+
access: "view"
|
|
21431
|
+
},
|
|
21432
|
+
"llm.listRuntimeNodes": {
|
|
21433
|
+
capName: "llm",
|
|
21434
|
+
capScope: "system",
|
|
21435
|
+
addonId: null,
|
|
21436
|
+
access: "view"
|
|
21437
|
+
},
|
|
21438
|
+
"llm.setDefault": {
|
|
21439
|
+
capName: "llm",
|
|
21440
|
+
capScope: "system",
|
|
21441
|
+
addonId: null,
|
|
21442
|
+
access: "create"
|
|
21443
|
+
},
|
|
21444
|
+
"llm.startRuntime": {
|
|
21445
|
+
capName: "llm",
|
|
21446
|
+
capScope: "system",
|
|
21447
|
+
addonId: null,
|
|
21448
|
+
access: "create"
|
|
21449
|
+
},
|
|
21450
|
+
"llm.stopRuntime": {
|
|
21451
|
+
capName: "llm",
|
|
21452
|
+
capScope: "system",
|
|
21453
|
+
addonId: null,
|
|
21454
|
+
access: "create"
|
|
21455
|
+
},
|
|
21456
|
+
"llm.testProfile": {
|
|
21457
|
+
capName: "llm",
|
|
21458
|
+
capScope: "system",
|
|
21459
|
+
addonId: null,
|
|
21460
|
+
access: "create"
|
|
21461
|
+
},
|
|
21462
|
+
"llm.upsertProfile": {
|
|
21463
|
+
capName: "llm",
|
|
21464
|
+
capScope: "system",
|
|
21465
|
+
addonId: null,
|
|
21466
|
+
access: "create"
|
|
21467
|
+
},
|
|
21468
|
+
"llmRuntime.complete": {
|
|
21469
|
+
capName: "llm-runtime",
|
|
21470
|
+
capScope: "system",
|
|
21471
|
+
addonId: null,
|
|
21472
|
+
access: "create"
|
|
21473
|
+
},
|
|
21474
|
+
"llmRuntime.deleteModel": {
|
|
21475
|
+
capName: "llm-runtime",
|
|
21476
|
+
capScope: "system",
|
|
21477
|
+
addonId: null,
|
|
21478
|
+
access: "delete"
|
|
21479
|
+
},
|
|
21480
|
+
"llmRuntime.ensureStarted": {
|
|
21481
|
+
capName: "llm-runtime",
|
|
21482
|
+
capScope: "system",
|
|
21483
|
+
addonId: null,
|
|
21484
|
+
access: "create"
|
|
21485
|
+
},
|
|
21486
|
+
"llmRuntime.getDiskUsage": {
|
|
21487
|
+
capName: "llm-runtime",
|
|
21488
|
+
capScope: "system",
|
|
21489
|
+
addonId: null,
|
|
21490
|
+
access: "view"
|
|
21491
|
+
},
|
|
21492
|
+
"llmRuntime.installModel": {
|
|
21493
|
+
capName: "llm-runtime",
|
|
21494
|
+
capScope: "system",
|
|
21495
|
+
addonId: null,
|
|
21496
|
+
access: "create"
|
|
21497
|
+
},
|
|
21498
|
+
"llmRuntime.listLocalModels": {
|
|
21499
|
+
capName: "llm-runtime",
|
|
21500
|
+
capScope: "system",
|
|
21501
|
+
addonId: null,
|
|
21502
|
+
access: "view"
|
|
21503
|
+
},
|
|
21504
|
+
"llmRuntime.status": {
|
|
21505
|
+
capName: "llm-runtime",
|
|
21506
|
+
capScope: "system",
|
|
21507
|
+
addonId: null,
|
|
21508
|
+
access: "view"
|
|
21509
|
+
},
|
|
21510
|
+
"llmRuntime.stop": {
|
|
21511
|
+
capName: "llm-runtime",
|
|
21512
|
+
capScope: "system",
|
|
21513
|
+
addonId: null,
|
|
21514
|
+
access: "create"
|
|
21515
|
+
},
|
|
20697
21516
|
"localNetwork.getAllowedAddresses": {
|
|
20698
21517
|
capName: "local-network",
|
|
20699
21518
|
capScope: "system",
|
|
@@ -21324,6 +22143,12 @@ Object.freeze({
|
|
|
21324
22143
|
addonId: null,
|
|
21325
22144
|
access: "delete"
|
|
21326
22145
|
},
|
|
22146
|
+
"pipelineAnalytics.deleteTracks": {
|
|
22147
|
+
capName: "pipeline-analytics",
|
|
22148
|
+
capScope: "device",
|
|
22149
|
+
addonId: null,
|
|
22150
|
+
access: "delete"
|
|
22151
|
+
},
|
|
21327
22152
|
"pipelineAnalytics.getActiveTracks": {
|
|
21328
22153
|
capName: "pipeline-analytics",
|
|
21329
22154
|
capScope: "device",
|
|
@@ -21390,12 +22215,24 @@ Object.freeze({
|
|
|
21390
22215
|
addonId: null,
|
|
21391
22216
|
access: "create"
|
|
21392
22217
|
},
|
|
22218
|
+
"pipelineAnalytics.pruneTracksBefore": {
|
|
22219
|
+
capName: "pipeline-analytics",
|
|
22220
|
+
capScope: "device",
|
|
22221
|
+
addonId: null,
|
|
22222
|
+
access: "create"
|
|
22223
|
+
},
|
|
21393
22224
|
"pipelineAnalytics.searchObjectEvents": {
|
|
21394
22225
|
capName: "pipeline-analytics",
|
|
21395
22226
|
capScope: "device",
|
|
21396
22227
|
addonId: null,
|
|
21397
22228
|
access: "view"
|
|
21398
22229
|
},
|
|
22230
|
+
"pipelineAnalytics.wipeAllAnalytics": {
|
|
22231
|
+
capName: "pipeline-analytics",
|
|
22232
|
+
capScope: "device",
|
|
22233
|
+
addonId: null,
|
|
22234
|
+
access: "delete"
|
|
22235
|
+
},
|
|
21399
22236
|
"pipelineExecutor.cacheFrameInPool": {
|
|
21400
22237
|
capName: "pipeline-executor",
|
|
21401
22238
|
capScope: "system",
|
|
@@ -21894,18 +22731,48 @@ Object.freeze({
|
|
|
21894
22731
|
addonId: null,
|
|
21895
22732
|
access: "create"
|
|
21896
22733
|
},
|
|
22734
|
+
"pipelineRunner.runDetailSubtree": {
|
|
22735
|
+
capName: "pipeline-runner",
|
|
22736
|
+
capScope: "system",
|
|
22737
|
+
addonId: null,
|
|
22738
|
+
access: "create"
|
|
22739
|
+
},
|
|
22740
|
+
"plateGallery.assignPlate": {
|
|
22741
|
+
capName: "plate-gallery",
|
|
22742
|
+
capScope: "system",
|
|
22743
|
+
addonId: null,
|
|
22744
|
+
access: "create"
|
|
22745
|
+
},
|
|
22746
|
+
"plateGallery.assignPlates": {
|
|
22747
|
+
capName: "plate-gallery",
|
|
22748
|
+
capScope: "system",
|
|
22749
|
+
addonId: null,
|
|
22750
|
+
access: "create"
|
|
22751
|
+
},
|
|
21897
22752
|
"plateGallery.correctPlateText": {
|
|
21898
22753
|
capName: "plate-gallery",
|
|
21899
22754
|
capScope: "system",
|
|
21900
22755
|
addonId: null,
|
|
21901
22756
|
access: "create"
|
|
21902
22757
|
},
|
|
22758
|
+
"plateGallery.createVehicle": {
|
|
22759
|
+
capName: "plate-gallery",
|
|
22760
|
+
capScope: "system",
|
|
22761
|
+
addonId: null,
|
|
22762
|
+
access: "create"
|
|
22763
|
+
},
|
|
21903
22764
|
"plateGallery.deletePlate": {
|
|
21904
22765
|
capName: "plate-gallery",
|
|
21905
22766
|
capScope: "system",
|
|
21906
22767
|
addonId: null,
|
|
21907
22768
|
access: "delete"
|
|
21908
22769
|
},
|
|
22770
|
+
"plateGallery.deleteVehicle": {
|
|
22771
|
+
capName: "plate-gallery",
|
|
22772
|
+
capScope: "system",
|
|
22773
|
+
addonId: null,
|
|
22774
|
+
access: "delete"
|
|
22775
|
+
},
|
|
21909
22776
|
"plateGallery.getPlateByTrack": {
|
|
21910
22777
|
capName: "plate-gallery",
|
|
21911
22778
|
capScope: "system",
|
|
@@ -21924,6 +22791,30 @@ Object.freeze({
|
|
|
21924
22791
|
addonId: null,
|
|
21925
22792
|
access: "view"
|
|
21926
22793
|
},
|
|
22794
|
+
"plateGallery.listVehicles": {
|
|
22795
|
+
capName: "plate-gallery",
|
|
22796
|
+
capScope: "system",
|
|
22797
|
+
addonId: null,
|
|
22798
|
+
access: "view"
|
|
22799
|
+
},
|
|
22800
|
+
"plateGallery.listVehicleSamples": {
|
|
22801
|
+
capName: "plate-gallery",
|
|
22802
|
+
capScope: "system",
|
|
22803
|
+
addonId: null,
|
|
22804
|
+
access: "view"
|
|
22805
|
+
},
|
|
22806
|
+
"plateGallery.removeVehicleSample": {
|
|
22807
|
+
capName: "plate-gallery",
|
|
22808
|
+
capScope: "system",
|
|
22809
|
+
addonId: null,
|
|
22810
|
+
access: "delete"
|
|
22811
|
+
},
|
|
22812
|
+
"plateGallery.renameVehicle": {
|
|
22813
|
+
capName: "plate-gallery",
|
|
22814
|
+
capScope: "system",
|
|
22815
|
+
addonId: null,
|
|
22816
|
+
access: "create"
|
|
22817
|
+
},
|
|
21927
22818
|
"plateGallery.searchPlates": {
|
|
21928
22819
|
capName: "plate-gallery",
|
|
21929
22820
|
capScope: "system",
|
|
@@ -21936,6 +22827,18 @@ Object.freeze({
|
|
|
21936
22827
|
addonId: null,
|
|
21937
22828
|
access: "view"
|
|
21938
22829
|
},
|
|
22830
|
+
"plateGallery.unassignPlate": {
|
|
22831
|
+
capName: "plate-gallery",
|
|
22832
|
+
capScope: "system",
|
|
22833
|
+
addonId: null,
|
|
22834
|
+
access: "create"
|
|
22835
|
+
},
|
|
22836
|
+
"plateGallery.unassignPlates": {
|
|
22837
|
+
capName: "plate-gallery",
|
|
22838
|
+
capScope: "system",
|
|
22839
|
+
addonId: null,
|
|
22840
|
+
access: "create"
|
|
22841
|
+
},
|
|
21939
22842
|
"platformProbe.getCapabilities": {
|
|
21940
22843
|
capName: "platform-probe",
|
|
21941
22844
|
capScope: "system",
|
|
@@ -22128,6 +23031,48 @@ Object.freeze({
|
|
|
22128
23031
|
addonId: null,
|
|
22129
23032
|
access: "create"
|
|
22130
23033
|
},
|
|
23034
|
+
"sceneMonitor.captureReference": {
|
|
23035
|
+
capName: "scene-monitor",
|
|
23036
|
+
capScope: "device",
|
|
23037
|
+
addonId: null,
|
|
23038
|
+
access: "create"
|
|
23039
|
+
},
|
|
23040
|
+
"sceneMonitor.createScene": {
|
|
23041
|
+
capName: "scene-monitor",
|
|
23042
|
+
capScope: "device",
|
|
23043
|
+
addonId: null,
|
|
23044
|
+
access: "create"
|
|
23045
|
+
},
|
|
23046
|
+
"sceneMonitor.deleteReference": {
|
|
23047
|
+
capName: "scene-monitor",
|
|
23048
|
+
capScope: "device",
|
|
23049
|
+
addonId: null,
|
|
23050
|
+
access: "delete"
|
|
23051
|
+
},
|
|
23052
|
+
"sceneMonitor.deleteScene": {
|
|
23053
|
+
capName: "scene-monitor",
|
|
23054
|
+
capScope: "device",
|
|
23055
|
+
addonId: null,
|
|
23056
|
+
access: "delete"
|
|
23057
|
+
},
|
|
23058
|
+
"sceneMonitor.listScenes": {
|
|
23059
|
+
capName: "scene-monitor",
|
|
23060
|
+
capScope: "device",
|
|
23061
|
+
addonId: null,
|
|
23062
|
+
access: "view"
|
|
23063
|
+
},
|
|
23064
|
+
"sceneMonitor.recheckNow": {
|
|
23065
|
+
capName: "scene-monitor",
|
|
23066
|
+
capScope: "device",
|
|
23067
|
+
addonId: null,
|
|
23068
|
+
access: "create"
|
|
23069
|
+
},
|
|
23070
|
+
"sceneMonitor.updateScene": {
|
|
23071
|
+
capName: "scene-monitor",
|
|
23072
|
+
capScope: "device",
|
|
23073
|
+
addonId: null,
|
|
23074
|
+
access: "create"
|
|
23075
|
+
},
|
|
22131
23076
|
"scriptRunner.run": {
|
|
22132
23077
|
capName: "script-runner",
|
|
22133
23078
|
capScope: "device",
|
|
@@ -23212,6 +24157,7 @@ Object.freeze({
|
|
|
23212
24157
|
Object.freeze({
|
|
23213
24158
|
"broker": "broker",
|
|
23214
24159
|
"device-export": "device-export",
|
|
24160
|
+
"llm": "ai",
|
|
23215
24161
|
"mesh-network": "mesh",
|
|
23216
24162
|
"mqtt-broker": "broker",
|
|
23217
24163
|
"network-access": "ingress",
|
|
@@ -23262,7 +24208,7 @@ var AdminUIAddon = class extends BaseAddon {
|
|
|
23262
24208
|
capability: adminUiCapability,
|
|
23263
24209
|
provider: {
|
|
23264
24210
|
getStaticDir: async () => ({ staticDir: resolveAdminUiDistDir() }),
|
|
23265
|
-
getVersion: async () => ({ version: "1.1.
|
|
24211
|
+
getVersion: async () => ({ version: "1.1.51" })
|
|
23266
24212
|
}
|
|
23267
24213
|
}];
|
|
23268
24214
|
}
|