@camstack/addon-pipeline-orchestrator 1.1.44 → 1.1.46
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/assets/viewer/.viewer-version +1 -1
- package/assets/viewer/_expo/static/js/web/{index-916260aeb7de10623606fbfb8912d2c8.js → index-4475db20136131b927cc8bfddfb42408.js} +2 -2
- package/assets/viewer/index.html +1 -1
- package/dist/_stub.js +11 -11
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-VQmCHuPm.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-DFm7UCOR.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-saxe_6Zh.mjs +26 -0
- package/dist/{_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-rldHUo3x.mjs → _virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DKCcg85C.mjs} +2 -2
- package/dist/{hostInit-P4IAhr4z.mjs → hostInit-Dg1OK75q.mjs} +3 -3
- package/dist/index.js +986 -40
- package/dist/index.mjs +986 -40
- package/dist/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-MqD-g9k9.mjs +0 -26
package/dist/index.mjs
CHANGED
|
@@ -4289,6 +4289,14 @@ function object(shape, params) {
|
|
|
4289
4289
|
...normalizeParams(params)
|
|
4290
4290
|
});
|
|
4291
4291
|
}
|
|
4292
|
+
function looseObject(shape, params) {
|
|
4293
|
+
return new ZodObject({
|
|
4294
|
+
type: "object",
|
|
4295
|
+
shape,
|
|
4296
|
+
catchall: unknown(),
|
|
4297
|
+
...normalizeParams(params)
|
|
4298
|
+
});
|
|
4299
|
+
}
|
|
4292
4300
|
var ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => {
|
|
4293
4301
|
$ZodUnion.init(inst, def);
|
|
4294
4302
|
ZodType.init(inst, def);
|
|
@@ -4630,7 +4638,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4630
4638
|
return inst;
|
|
4631
4639
|
}
|
|
4632
4640
|
//#endregion
|
|
4633
|
-
//#region ../types/dist/sleep-
|
|
4641
|
+
//#region ../types/dist/sleep-DkhOVOjW.mjs
|
|
4634
4642
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4635
4643
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4636
4644
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -5040,10 +5048,43 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
5040
5048
|
EventCategory["EnrichmentEmbeddingStored"] = "enrichment.embedding.stored";
|
|
5041
5049
|
EventCategory["EnrichmentSceneStateChanged"] = "enrichment.scene.state-changed";
|
|
5042
5050
|
EventCategory["EnrichmentActivitySummary"] = "enrichment.activity.summary";
|
|
5051
|
+
/**
|
|
5052
|
+
* Unified track-lifecycle event: ONE category carrying `phase:
|
|
5053
|
+
* 'start' | 'update' | 'end'` with a rich, typed
|
|
5054
|
+
* `PipelineAnalyticsTrackLifecyclePayload`. Supersedes the thin
|
|
5055
|
+
* `PipelineAnalyticsTrackStarted` / `PipelineAnalyticsTrackEnded`
|
|
5056
|
+
* pair — a consumer subscribes once and branches on `phase`.
|
|
5057
|
+
*/
|
|
5058
|
+
EventCategory["PipelineAnalyticsTrackLifecycle"] = "pipeline-analytics.track-lifecycle";
|
|
5059
|
+
/**
|
|
5060
|
+
* @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
|
|
5061
|
+
* (`phase:'start'`). Kept as a soft alias — no known subscribers.
|
|
5062
|
+
*/
|
|
5043
5063
|
EventCategory["PipelineAnalyticsTrackStarted"] = "pipeline-analytics.track-started";
|
|
5064
|
+
/**
|
|
5065
|
+
* @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
|
|
5066
|
+
* (`phase:'end'`). Kept as a soft alias — no known subscribers.
|
|
5067
|
+
*/
|
|
5044
5068
|
EventCategory["PipelineAnalyticsTrackEnded"] = "pipeline-analytics.track-ended";
|
|
5045
5069
|
EventCategory["PipelineAnalyticsDetectionEvent"] = "pipeline-analytics.detection-event";
|
|
5046
5070
|
EventCategory["PipelineAnalyticsFrameTracked"] = "pipeline-analytics.frame-tracked";
|
|
5071
|
+
/**
|
|
5072
|
+
* Fired by `addon-post-analysis` whenever a gallery face row changes:
|
|
5073
|
+
* `kind:'buffered'` a new detected face was persisted, `'assigned'` /
|
|
5074
|
+
* `'unassigned'` its identity link changed, `'deleted'` the row was
|
|
5075
|
+
* removed. Telemetry semantics (D8): a lost event only delays a refresh,
|
|
5076
|
+
* never a correctness issue. Payload `PipelineAnalyticsFaceGalleryChangedPayload`.
|
|
5077
|
+
*/
|
|
5078
|
+
EventCategory["PipelineAnalyticsFaceGalleryChanged"] = "pipeline-analytics.face-gallery-changed";
|
|
5079
|
+
/**
|
|
5080
|
+
* Fired by `addon-post-analysis` whenever a gallery plate row changes:
|
|
5081
|
+
* `kind:'buffered'` a new read was persisted (`PlateRecognizer.onTrackEnd`),
|
|
5082
|
+
* `'assigned'` / `'unassigned'` its vehicle link changed
|
|
5083
|
+
* (`PlateGalleryProvider`), `'deleted'` the row was removed. Telemetry
|
|
5084
|
+
* semantics (D8): a lost event only delays a refresh, never a correctness
|
|
5085
|
+
* issue. Payload `PipelineAnalyticsPlateGalleryChangedPayload`.
|
|
5086
|
+
*/
|
|
5087
|
+
EventCategory["PipelineAnalyticsPlateGalleryChanged"] = "pipeline-analytics.plate-gallery-changed";
|
|
5047
5088
|
EventCategory["FrigateLiveEvent"] = "frigate.live-event";
|
|
5048
5089
|
EventCategory["CameraStreamsProfileSlotsChanged"] = "camera-streams.onProfileSlotsChanged";
|
|
5049
5090
|
/**
|
|
@@ -7300,7 +7341,8 @@ var MODEL_FORMATS = [
|
|
|
7300
7341
|
"coreml",
|
|
7301
7342
|
"openvino",
|
|
7302
7343
|
"tflite",
|
|
7303
|
-
"pt"
|
|
7344
|
+
"pt",
|
|
7345
|
+
"gguf"
|
|
7304
7346
|
];
|
|
7305
7347
|
/**
|
|
7306
7348
|
* Multi-file format payload.
|
|
@@ -7344,7 +7386,8 @@ var ModelFormatsSchema = object({
|
|
|
7344
7386
|
coreml: ModelFormatEntrySchema.optional(),
|
|
7345
7387
|
openvino: ModelFormatEntrySchema.optional(),
|
|
7346
7388
|
tflite: ModelFormatEntrySchema.optional(),
|
|
7347
|
-
pt: ModelFormatEntrySchema.optional()
|
|
7389
|
+
pt: ModelFormatEntrySchema.optional(),
|
|
7390
|
+
gguf: ModelFormatEntrySchema.optional()
|
|
7348
7391
|
});
|
|
7349
7392
|
/**
|
|
7350
7393
|
* Variant-selector grouping axes. Shared by the full `ModelCatalogEntry` and by
|
|
@@ -10900,7 +10943,8 @@ var ModelFormatSchema$1 = _enum([
|
|
|
10900
10943
|
"coreml",
|
|
10901
10944
|
"openvino",
|
|
10902
10945
|
"tflite",
|
|
10903
|
-
"pt"
|
|
10946
|
+
"pt",
|
|
10947
|
+
"gguf"
|
|
10904
10948
|
]);
|
|
10905
10949
|
var PipelineSlotSchema = _enum([
|
|
10906
10950
|
"detector",
|
|
@@ -11264,7 +11308,15 @@ var pipelineExecutorCapability = {
|
|
|
11264
11308
|
image: _instanceof(Uint8Array).optional(),
|
|
11265
11309
|
referenceImage: string().optional(),
|
|
11266
11310
|
deviceId: number().optional(),
|
|
11267
|
-
sessionId: string().optional()
|
|
11311
|
+
sessionId: string().optional(),
|
|
11312
|
+
/**
|
|
11313
|
+
* Execution plane. 'full' (default) runs the whole tree — benchmark,
|
|
11314
|
+
* reference-image, and detail-subtree calls. 'frame' is the live
|
|
11315
|
+
* per-frame dispatch: ONLY root-plane steps run; crop children
|
|
11316
|
+
* (inputClasses ≠ null) are skipped and served per-track via
|
|
11317
|
+
* pipelineRunner.runDetailSubtree (two-plane design).
|
|
11318
|
+
*/
|
|
11319
|
+
plane: _enum(["full", "frame"]).optional()
|
|
11268
11320
|
}), PipelineRunResultBridge, { kind: "mutation" }),
|
|
11269
11321
|
/**
|
|
11270
11322
|
* Batched run — N raw frames packed into one cap call. The provider
|
|
@@ -11494,6 +11546,28 @@ var NativeCropResultSchema = object({
|
|
|
11494
11546
|
width: number().int().positive(),
|
|
11495
11547
|
height: number().int().positive()
|
|
11496
11548
|
});
|
|
11549
|
+
/** Parent detection context passed to `runDetailSubtree` — the crop's
|
|
11550
|
+
* originating detection, in FRAME-space coordinates. Reuses
|
|
11551
|
+
* `NativeCropBboxSchema`'s `{x,y,w,h}` shape (same numeric fields; here
|
|
11552
|
+
* the coordinates are frame-space rather than getNativeCrop's
|
|
11553
|
+
* normalized [0,1] convention). */
|
|
11554
|
+
var DetailParentSchema = object({
|
|
11555
|
+
bbox: NativeCropBboxSchema,
|
|
11556
|
+
className: string()
|
|
11557
|
+
});
|
|
11558
|
+
/** One child-step result from `runDetailSubtree` — an embedding, label,
|
|
11559
|
+
* or refined detection produced by running the crop-subtree on a
|
|
11560
|
+
* single tracked detection. */
|
|
11561
|
+
var DetailResultSchema = object({
|
|
11562
|
+
stepId: string(),
|
|
11563
|
+
className: string(),
|
|
11564
|
+
score: number(),
|
|
11565
|
+
/** FRAME-space bbox (already mapped back from crop space). */
|
|
11566
|
+
bbox: NativeCropBboxSchema.optional(),
|
|
11567
|
+
embedding: string().optional(),
|
|
11568
|
+
label: string().optional(),
|
|
11569
|
+
alignedCropJpeg: string().optional()
|
|
11570
|
+
});
|
|
11497
11571
|
/**
|
|
11498
11572
|
* Per-camera tunable ranges + defaults. Single source of truth used
|
|
11499
11573
|
* by both the Zod data schema (validation + default fallback) and
|
|
@@ -11878,7 +11952,13 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
11878
11952
|
handle: FrameHandleSchema,
|
|
11879
11953
|
bbox: NativeCropBboxSchema,
|
|
11880
11954
|
maxWidth: number().int().positive().optional()
|
|
11881
|
-
}), NativeCropResultSchema.nullable())
|
|
11955
|
+
}), NativeCropResultSchema.nullable()), method(object({
|
|
11956
|
+
deviceId: number(),
|
|
11957
|
+
frameHandle: FrameHandleSchema.optional(),
|
|
11958
|
+
cropJpeg: string().optional(),
|
|
11959
|
+
parent: DetailParentSchema,
|
|
11960
|
+
steps: array(string()).optional()
|
|
11961
|
+
}), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" });
|
|
11882
11962
|
object({
|
|
11883
11963
|
detected: boolean(),
|
|
11884
11964
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -12490,6 +12570,140 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
|
|
|
12490
12570
|
deviceId: number(),
|
|
12491
12571
|
status: PtzAutotrackStatusSchema
|
|
12492
12572
|
});
|
|
12573
|
+
/**
|
|
12574
|
+
* scene-monitor — device-scoped reference-region state cap. An operator marks
|
|
12575
|
+
* a rect ROI on a camera frame and names one or more states; the engine
|
|
12576
|
+
* (pipeline-analytics, designated post-processing node) reports which state is
|
|
12577
|
+
* active on an ongoing basis. Two operator-selectable check modes share every-
|
|
12578
|
+
* thing except the comparator: `similarity` (CLIP cosine at the same ROI coords
|
|
12579
|
+
* vs condition-tagged references) and `llm` (vision-LLM judgment over the crop).
|
|
12580
|
+
*
|
|
12581
|
+
* D14 device-config archetype (`deviceConfig.ui.kind:'widget'`) — the framework
|
|
12582
|
+
* derives the device-detail contribution; the provider carries NO hand-written
|
|
12583
|
+
* settings-contribution methods. `status.kind:'push'` — the engine pushes on
|
|
12584
|
+
* every hysteresis flip / availability change; consumers never poll.
|
|
12585
|
+
*/
|
|
12586
|
+
/** Extensible condition tag. Seeded 'day' | 'night'; open by design so more can
|
|
12587
|
+
* be added without a wire break (matching falls back to any-condition refs). */
|
|
12588
|
+
var SceneConditionSchema = string();
|
|
12589
|
+
/** One captured reference — condition-tagged, model-version-gated. `embedding`
|
|
12590
|
+
* is `number[]` (Float32Array does NOT survive MsgPack/UDS). */
|
|
12591
|
+
var SceneReferenceSchema = object({
|
|
12592
|
+
embedding: array(number()),
|
|
12593
|
+
modelId: string(),
|
|
12594
|
+
condition: SceneConditionSchema,
|
|
12595
|
+
capturedAt: number(),
|
|
12596
|
+
thumbnailMediaId: string().optional()
|
|
12597
|
+
});
|
|
12598
|
+
var SceneMonitorStateSchema = object({
|
|
12599
|
+
id: string(),
|
|
12600
|
+
label: string(),
|
|
12601
|
+
references: array(SceneReferenceSchema),
|
|
12602
|
+
textPrompts: array(string()).optional(),
|
|
12603
|
+
referenceCount: number(),
|
|
12604
|
+
currentlyMatched: boolean()
|
|
12605
|
+
});
|
|
12606
|
+
/** Per-mode comparator params in a discriminated union so an `llm` scene never
|
|
12607
|
+
* carries similarity knobs and vice-versa. */
|
|
12608
|
+
var SceneCheckSchema = discriminatedUnion("mode", [object({
|
|
12609
|
+
mode: literal("similarity"),
|
|
12610
|
+
threshold: number().min(0).max(1),
|
|
12611
|
+
hysteresisCount: number().int().positive()
|
|
12612
|
+
}), object({
|
|
12613
|
+
mode: literal("llm"),
|
|
12614
|
+
prompt: string(),
|
|
12615
|
+
profileId: string().optional(),
|
|
12616
|
+
hysteresisCount: number().int().positive()
|
|
12617
|
+
})]);
|
|
12618
|
+
var SceneMonitorSchema = object({
|
|
12619
|
+
id: string(),
|
|
12620
|
+
label: string(),
|
|
12621
|
+
roi: MaskRectShapeSchema,
|
|
12622
|
+
enabled: boolean(),
|
|
12623
|
+
triggerMode: _enum([
|
|
12624
|
+
"periodic",
|
|
12625
|
+
"on-motion",
|
|
12626
|
+
"both"
|
|
12627
|
+
]),
|
|
12628
|
+
checkIntervalSec: number().optional(),
|
|
12629
|
+
check: SceneCheckSchema,
|
|
12630
|
+
states: array(SceneMonitorStateSchema),
|
|
12631
|
+
currentStateId: string().nullable(),
|
|
12632
|
+
lastCheckedAt: number().nullable(),
|
|
12633
|
+
lastConfidence: number().nullable(),
|
|
12634
|
+
currentCondition: SceneConditionSchema.nullable(),
|
|
12635
|
+
availability: _enum(["ok", "unavailable"]),
|
|
12636
|
+
unavailableReason: string().nullable()
|
|
12637
|
+
});
|
|
12638
|
+
var SceneMonitorStatusSchema = object({
|
|
12639
|
+
monitors: array(SceneMonitorSchema),
|
|
12640
|
+
lastFetchedAt: number()
|
|
12641
|
+
});
|
|
12642
|
+
DeviceType.Camera, method(object({ deviceId: number() }), SceneMonitorStatusSchema), method(object({
|
|
12643
|
+
deviceId: number(),
|
|
12644
|
+
label: string(),
|
|
12645
|
+
roi: MaskRectShapeSchema,
|
|
12646
|
+
check: SceneCheckSchema,
|
|
12647
|
+
triggerMode: _enum([
|
|
12648
|
+
"periodic",
|
|
12649
|
+
"on-motion",
|
|
12650
|
+
"both"
|
|
12651
|
+
]).optional(),
|
|
12652
|
+
checkIntervalSec: number().optional()
|
|
12653
|
+
}), SceneMonitorSchema, {
|
|
12654
|
+
kind: "mutation",
|
|
12655
|
+
auth: "admin"
|
|
12656
|
+
}), method(object({
|
|
12657
|
+
deviceId: number(),
|
|
12658
|
+
monitorId: string(),
|
|
12659
|
+
patch: object({
|
|
12660
|
+
label: string().optional(),
|
|
12661
|
+
roi: MaskRectShapeSchema.optional(),
|
|
12662
|
+
enabled: boolean().optional(),
|
|
12663
|
+
triggerMode: _enum([
|
|
12664
|
+
"periodic",
|
|
12665
|
+
"on-motion",
|
|
12666
|
+
"both"
|
|
12667
|
+
]).optional(),
|
|
12668
|
+
checkIntervalSec: number().optional(),
|
|
12669
|
+
check: SceneCheckSchema.optional()
|
|
12670
|
+
})
|
|
12671
|
+
}), _void(), {
|
|
12672
|
+
kind: "mutation",
|
|
12673
|
+
auth: "admin"
|
|
12674
|
+
}), method(object({
|
|
12675
|
+
deviceId: number(),
|
|
12676
|
+
monitorId: string()
|
|
12677
|
+
}), _void(), {
|
|
12678
|
+
kind: "mutation",
|
|
12679
|
+
auth: "admin"
|
|
12680
|
+
}), method(object({
|
|
12681
|
+
deviceId: number(),
|
|
12682
|
+
monitorId: string(),
|
|
12683
|
+
stateId: string().optional(),
|
|
12684
|
+
label: string().optional(),
|
|
12685
|
+
condition: SceneConditionSchema.optional()
|
|
12686
|
+
}), object({
|
|
12687
|
+
stateId: string(),
|
|
12688
|
+
referenceCount: number()
|
|
12689
|
+
}), {
|
|
12690
|
+
kind: "mutation",
|
|
12691
|
+
auth: "admin"
|
|
12692
|
+
}), method(object({
|
|
12693
|
+
deviceId: number(),
|
|
12694
|
+
monitorId: string(),
|
|
12695
|
+
stateId: string(),
|
|
12696
|
+
index: number()
|
|
12697
|
+
}), _void(), {
|
|
12698
|
+
kind: "mutation",
|
|
12699
|
+
auth: "admin"
|
|
12700
|
+
}), method(object({
|
|
12701
|
+
deviceId: number(),
|
|
12702
|
+
monitorId: string()
|
|
12703
|
+
}), _void(), {
|
|
12704
|
+
kind: "mutation",
|
|
12705
|
+
auth: "admin"
|
|
12706
|
+
});
|
|
12493
12707
|
object({
|
|
12494
12708
|
/** Whether the script is currently executing. */
|
|
12495
12709
|
isRunning: boolean(),
|
|
@@ -13558,7 +13772,12 @@ var NotificationRuleConditionsSchema = object({
|
|
|
13558
13772
|
clipDescription: object({
|
|
13559
13773
|
text: string().min(1),
|
|
13560
13774
|
minSimilarity: number().min(0).max(1)
|
|
13561
|
-
}).optional()
|
|
13775
|
+
}).optional(),
|
|
13776
|
+
/** Match events whose recognized-entity label (face identity name or plate
|
|
13777
|
+
* vehicle name, propagated onto `event.data.label`) is one of these values.
|
|
13778
|
+
* Empty/absent → unaffected (back-compat). Enables "notify me when <named
|
|
13779
|
+
* vehicle/person> is seen". */
|
|
13780
|
+
labels: array(string()).readonly().optional()
|
|
13562
13781
|
});
|
|
13563
13782
|
var NotificationRuleTemplateSchema = object({
|
|
13564
13783
|
title: string(),
|
|
@@ -13816,11 +14035,19 @@ method(object({
|
|
|
13816
14035
|
* login page needs NO change.
|
|
13817
14036
|
*
|
|
13818
14037
|
* - `widget` — a Module-Federation widget the login page mounts (via
|
|
13819
|
-
* `loadRemoteBundle`) for an in-page ceremony.
|
|
13820
|
-
*
|
|
13821
|
-
*
|
|
13822
|
-
*
|
|
13823
|
-
*
|
|
14038
|
+
* `loadRemoteBundle`) for an in-page ceremony. `auth.listLoginMethods`
|
|
14039
|
+
* stamps a public `bundleUrl` from `addonId` + `bundle`. Generic
|
|
14040
|
+
* mechanism kept for future use; no shipped addon uses it on the login
|
|
14041
|
+
* page (the passkey ceremony below runs natively in the shell instead).
|
|
14042
|
+
*
|
|
14043
|
+
* - `passkey` — a declarative WebAuthn ceremony the shell renders
|
|
14044
|
+
* natively (`@simplewebauthn/browser` lives in `addon-admin-ui`, not in
|
|
14045
|
+
* a remotely-loaded bundle). Carries the addon's effective `rpId` /
|
|
14046
|
+
* `origin` (from its `resolveRpID()` / `resolveOrigin()`) so the shell
|
|
14047
|
+
* can gate visibility (IP-literal origin, hostname/rpId mismatch) WITHOUT
|
|
14048
|
+
* fetching any remote code pre-auth. Contribution stays unconditional —
|
|
14049
|
+
* enrollment state is never leaked pre-auth; visibility is a shell
|
|
14050
|
+
* decision.
|
|
13824
14051
|
*
|
|
13825
14052
|
* Every contribution carries a `stage`:
|
|
13826
14053
|
* - `primary` — shown on the first credentials screen (OIDC /
|
|
@@ -13834,30 +14061,45 @@ method(object({
|
|
|
13834
14061
|
*/
|
|
13835
14062
|
/** When a login method renders in the two-phase login flow. */
|
|
13836
14063
|
var LoginStageEnum = _enum(["primary", "second-factor"]);
|
|
13837
|
-
/** One login-method contribution — redirect button
|
|
13838
|
-
var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
13839
|
-
|
|
13840
|
-
|
|
13841
|
-
|
|
13842
|
-
|
|
13843
|
-
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
|
|
13856
|
-
|
|
13857
|
-
|
|
13858
|
-
|
|
13859
|
-
|
|
13860
|
-
|
|
14064
|
+
/** One login-method contribution — redirect button, pre-auth widget, or native passkey ceremony. */
|
|
14065
|
+
var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
14066
|
+
object({
|
|
14067
|
+
kind: literal("redirect"),
|
|
14068
|
+
/** Stable id within the login-method set (e.g. `auth-oidc/google`). */
|
|
14069
|
+
id: string(),
|
|
14070
|
+
/** Operator-facing button label. */
|
|
14071
|
+
label: string(),
|
|
14072
|
+
/** lucide-react icon name. */
|
|
14073
|
+
icon: string().optional(),
|
|
14074
|
+
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
14075
|
+
startUrl: string(),
|
|
14076
|
+
stage: LoginStageEnum
|
|
14077
|
+
}),
|
|
14078
|
+
object({
|
|
14079
|
+
kind: literal("widget"),
|
|
14080
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-login`). */
|
|
14081
|
+
id: string(),
|
|
14082
|
+
/** Owning addon id — drives the public bundle URL + the MF namespace. */
|
|
14083
|
+
addonId: string(),
|
|
14084
|
+
/** Bundle filename inside the addon's dist dir (`remoteEntry.js`). */
|
|
14085
|
+
bundle: string(),
|
|
14086
|
+
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
14087
|
+
remote: WidgetRemoteSchema,
|
|
14088
|
+
stage: LoginStageEnum
|
|
14089
|
+
}),
|
|
14090
|
+
object({
|
|
14091
|
+
kind: literal("passkey"),
|
|
14092
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-direct-login`). */
|
|
14093
|
+
id: string(),
|
|
14094
|
+
/** Operator-facing button label. */
|
|
14095
|
+
label: string(),
|
|
14096
|
+
stage: LoginStageEnum,
|
|
14097
|
+
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
14098
|
+
rpId: string(),
|
|
14099
|
+
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
14100
|
+
origin: string().nullable()
|
|
14101
|
+
})
|
|
14102
|
+
]);
|
|
13861
14103
|
method(_void(), array(LoginMethodContributionSchema).readonly());
|
|
13862
14104
|
/**
|
|
13863
14105
|
* Orchestrator-side destination metadata. The orchestrator computes
|
|
@@ -15744,14 +15986,14 @@ var TargetKindCapsSchema = object({
|
|
|
15744
15986
|
* the union is large and not meant for runtime validation here; the exported
|
|
15745
15987
|
* `TargetKind` type re-tightens `configSchema` to `ConfigUISchema`.
|
|
15746
15988
|
*/
|
|
15747
|
-
var ConfigSchemaPassthrough = unknown();
|
|
15989
|
+
var ConfigSchemaPassthrough$1 = unknown();
|
|
15748
15990
|
var TargetKindSchema = object({
|
|
15749
15991
|
kind: string(),
|
|
15750
15992
|
label: string(),
|
|
15751
15993
|
icon: string(),
|
|
15752
15994
|
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
15753
15995
|
addonId: string(),
|
|
15754
|
-
configSchema: ConfigSchemaPassthrough,
|
|
15996
|
+
configSchema: ConfigSchemaPassthrough$1,
|
|
15755
15997
|
supportsDiscovery: boolean(),
|
|
15756
15998
|
caps: TargetKindCapsSchema
|
|
15757
15999
|
});
|
|
@@ -15804,6 +16046,298 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
15804
16046
|
enabled: boolean()
|
|
15805
16047
|
}), _void(), { kind: "mutation" });
|
|
15806
16048
|
/**
|
|
16049
|
+
* Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
|
|
16050
|
+
* surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
|
|
16051
|
+
* caps stay wire-compatible without a circular cap→cap import.
|
|
16052
|
+
*
|
|
16053
|
+
* Errors are a discriminated-union RESULT, never thrown: the shape survives
|
|
16054
|
+
* every transport tier structurally, and failed calls still write usage rows.
|
|
16055
|
+
* Token counts only in v1 — no costUsd (operator decision, 2026-07-15).
|
|
16056
|
+
*/
|
|
16057
|
+
var LlmUsageSchema = object({
|
|
16058
|
+
inputTokens: number(),
|
|
16059
|
+
outputTokens: number()
|
|
16060
|
+
});
|
|
16061
|
+
var LlmErrorCodeSchema = _enum([
|
|
16062
|
+
"timeout",
|
|
16063
|
+
"rate-limited",
|
|
16064
|
+
"auth",
|
|
16065
|
+
"refusal",
|
|
16066
|
+
"bad-request",
|
|
16067
|
+
"unavailable",
|
|
16068
|
+
"no-profile",
|
|
16069
|
+
"budget-exceeded",
|
|
16070
|
+
"adapter-error"
|
|
16071
|
+
]);
|
|
16072
|
+
var LlmGenerateResultSchema = discriminatedUnion("ok", [object({
|
|
16073
|
+
ok: literal(true),
|
|
16074
|
+
text: string(),
|
|
16075
|
+
model: string(),
|
|
16076
|
+
usage: LlmUsageSchema,
|
|
16077
|
+
truncated: boolean(),
|
|
16078
|
+
latencyMs: number()
|
|
16079
|
+
}), object({
|
|
16080
|
+
ok: literal(false),
|
|
16081
|
+
code: LlmErrorCodeSchema,
|
|
16082
|
+
message: string(),
|
|
16083
|
+
retryAfterMs: number().optional()
|
|
16084
|
+
})]);
|
|
16085
|
+
/**
|
|
16086
|
+
* `Uint8Array` is the sanctioned binary convention — superjson + the UDS
|
|
16087
|
+
* MsgPack channel round-trip typed arrays (embedding-encoder.cap.ts:29,
|
|
16088
|
+
* notification-output.cap.ts:27-31 precedents).
|
|
16089
|
+
*/
|
|
16090
|
+
var LlmImageSchema = object({
|
|
16091
|
+
bytes: _instanceof(Uint8Array),
|
|
16092
|
+
mimeType: string()
|
|
16093
|
+
});
|
|
16094
|
+
var LlmGenerateBaseInputSchema = object({
|
|
16095
|
+
/** Collection routing (the notification-output posture). */
|
|
16096
|
+
addonId: string().optional(),
|
|
16097
|
+
/** Explicit profile; else the resolution chain (spec §3). */
|
|
16098
|
+
profileId: string().optional(),
|
|
16099
|
+
/** MANDATORY usage tag: 'ai-summary', 'notifier-rules', 'adhoc-ui', … */
|
|
16100
|
+
consumer: string(),
|
|
16101
|
+
system: string().optional(),
|
|
16102
|
+
/** v1: single-turn. `messages[]` is a v2 additive field. */
|
|
16103
|
+
prompt: string(),
|
|
16104
|
+
/** Structured output — adapter-mapped (response_format / forced tool / responseSchema). */
|
|
16105
|
+
jsonSchema: record(string(), unknown()).optional(),
|
|
16106
|
+
/** Per-call override of the profile default. */
|
|
16107
|
+
maxTokens: number().int().positive().optional(),
|
|
16108
|
+
temperature: number().optional()
|
|
16109
|
+
});
|
|
16110
|
+
/**
|
|
16111
|
+
* `llm-runtime` — node-side managed llama.cpp executor (spec §4). Registered
|
|
16112
|
+
* on EVERY node where `addon-ai` is installed; the hub `llm` provider reaches
|
|
16113
|
+
* a specific node's runtime with `nodePin(profile.runtime.nodeId)` — normal
|
|
16114
|
+
* cap routing, zero bespoke plumbing. `internal: true`: the operator reaches
|
|
16115
|
+
* this only through the `llm` cap's methods.
|
|
16116
|
+
*
|
|
16117
|
+
* One running llama-server child per node in v1 (models are RAM-heavy).
|
|
16118
|
+
* Resource ceiling = llama-server flags + idleStopMinutes ONLY (no RSS
|
|
16119
|
+
* watchdog — operator decision #3).
|
|
16120
|
+
*/
|
|
16121
|
+
var ManagedModelRefSchema = discriminatedUnion("kind", [
|
|
16122
|
+
object({
|
|
16123
|
+
kind: literal("catalog"),
|
|
16124
|
+
catalogId: string()
|
|
16125
|
+
}),
|
|
16126
|
+
object({
|
|
16127
|
+
kind: literal("url"),
|
|
16128
|
+
url: string(),
|
|
16129
|
+
sha256: string().optional()
|
|
16130
|
+
}),
|
|
16131
|
+
object({
|
|
16132
|
+
kind: literal("path"),
|
|
16133
|
+
path: string()
|
|
16134
|
+
})
|
|
16135
|
+
]);
|
|
16136
|
+
var ManagedRuntimeConfigSchema = object({
|
|
16137
|
+
/** WHERE the runtime lives — hub or any agent. */
|
|
16138
|
+
nodeId: string(),
|
|
16139
|
+
/** Closed for v1; 'ollama' is a v2 candidate. */
|
|
16140
|
+
engine: _enum(["llama-cpp"]),
|
|
16141
|
+
model: ManagedModelRefSchema,
|
|
16142
|
+
contextSize: number().int().default(4096),
|
|
16143
|
+
/** 0 = CPU-only. */
|
|
16144
|
+
gpuLayers: number().int().default(0),
|
|
16145
|
+
/** Default: cpus-2, clamped ≥1 (resolved node-side). */
|
|
16146
|
+
threads: number().int().optional(),
|
|
16147
|
+
/** Concurrent slots. */
|
|
16148
|
+
parallel: number().int().default(1),
|
|
16149
|
+
/** Else lazy: first generate boots it. */
|
|
16150
|
+
autoStart: boolean().default(false),
|
|
16151
|
+
/** 0 = never; frees RAM after quiet periods. */
|
|
16152
|
+
idleStopMinutes: number().int().default(30)
|
|
16153
|
+
});
|
|
16154
|
+
var LlmRuntimeStatusSchema = object({
|
|
16155
|
+
/** Status is ALWAYS node-qualified. */
|
|
16156
|
+
nodeId: string(),
|
|
16157
|
+
state: _enum([
|
|
16158
|
+
"stopped",
|
|
16159
|
+
"downloading",
|
|
16160
|
+
"starting",
|
|
16161
|
+
"ready",
|
|
16162
|
+
"crashed",
|
|
16163
|
+
"failed"
|
|
16164
|
+
]),
|
|
16165
|
+
pid: number().optional(),
|
|
16166
|
+
port: number().optional(),
|
|
16167
|
+
modelPath: string().optional(),
|
|
16168
|
+
modelId: string().optional(),
|
|
16169
|
+
downloadProgress: number().min(0).max(1).optional(),
|
|
16170
|
+
lastError: string().optional(),
|
|
16171
|
+
crashesInWindow: number(),
|
|
16172
|
+
/** Child RSS (sampled best-effort). */
|
|
16173
|
+
memoryBytes: number().optional(),
|
|
16174
|
+
vramBytes: number().optional()
|
|
16175
|
+
});
|
|
16176
|
+
var LlmNodeModelSchema = object({
|
|
16177
|
+
file: string(),
|
|
16178
|
+
sizeBytes: number(),
|
|
16179
|
+
catalogId: string().optional(),
|
|
16180
|
+
installedAt: number().optional()
|
|
16181
|
+
});
|
|
16182
|
+
var LlmRuntimeDiskUsageSchema = object({
|
|
16183
|
+
nodeId: string(),
|
|
16184
|
+
modelsBytes: number(),
|
|
16185
|
+
freeBytes: number().optional()
|
|
16186
|
+
});
|
|
16187
|
+
method(LlmGenerateBaseInputSchema.extend({
|
|
16188
|
+
images: array(LlmImageSchema).optional(),
|
|
16189
|
+
runtime: ManagedRuntimeConfigSchema,
|
|
16190
|
+
/** The managed profile's timeout, threaded by the hub provider. */
|
|
16191
|
+
timeoutMs: number().int().positive().optional()
|
|
16192
|
+
}), LlmGenerateResultSchema, { kind: "mutation" }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
16193
|
+
kind: "mutation",
|
|
16194
|
+
auth: "admin"
|
|
16195
|
+
}), method(object({}), _void(), {
|
|
16196
|
+
kind: "mutation",
|
|
16197
|
+
auth: "admin"
|
|
16198
|
+
}), method(object({}), LlmRuntimeStatusSchema), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
16199
|
+
kind: "mutation",
|
|
16200
|
+
auth: "admin"
|
|
16201
|
+
}), method(object({ file: string() }), _void(), {
|
|
16202
|
+
kind: "mutation",
|
|
16203
|
+
auth: "admin"
|
|
16204
|
+
}), method(object({}), array(LlmNodeModelSchema)), method(object({}), LlmRuntimeDiskUsageSchema);
|
|
16205
|
+
/**
|
|
16206
|
+
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
16207
|
+
* methods concat-fan across providers; single-row methods route to ONE
|
|
16208
|
+
* provider by the `addonId` in the call input (the notification-output
|
|
16209
|
+
* posture, notification-output.cap.ts:215-250). Provided by `addon-ai`
|
|
16210
|
+
* (hub-placed); the cap stays open for future providers.
|
|
16211
|
+
*
|
|
16212
|
+
* Profiles are ROWS (data), not addons: one row = one usable model endpoint.
|
|
16213
|
+
* `apiKey` is a password field — providers REDACT it on read and merge on
|
|
16214
|
+
* write; a stored key NEVER round-trips to a client.
|
|
16215
|
+
*/
|
|
16216
|
+
var LlmProfileKindSchema = _enum([
|
|
16217
|
+
"openai-compatible",
|
|
16218
|
+
"openai",
|
|
16219
|
+
"anthropic",
|
|
16220
|
+
"google",
|
|
16221
|
+
"managed-local"
|
|
16222
|
+
]);
|
|
16223
|
+
var LlmProfileSchema = object({
|
|
16224
|
+
id: string(),
|
|
16225
|
+
name: string(),
|
|
16226
|
+
kind: LlmProfileKindSchema,
|
|
16227
|
+
/** Stamped by the provider — keeps the fanned catalog routable. */
|
|
16228
|
+
addonId: string(),
|
|
16229
|
+
enabled: boolean(),
|
|
16230
|
+
/** Vendor model id, or the managed runtime's loaded model. */
|
|
16231
|
+
model: string(),
|
|
16232
|
+
/** Required for openai-compatible; override for cloud kinds. */
|
|
16233
|
+
baseUrl: string().optional(),
|
|
16234
|
+
/** ConfigUISchema type:'password' — never round-trips (spec §5). */
|
|
16235
|
+
apiKey: string().optional(),
|
|
16236
|
+
supportsVision: boolean(),
|
|
16237
|
+
temperature: number().min(0).max(2).optional(),
|
|
16238
|
+
maxTokens: number().int().positive().optional(),
|
|
16239
|
+
timeoutMs: number().int().positive().default(6e4),
|
|
16240
|
+
extraHeaders: record(string(), string()).optional(),
|
|
16241
|
+
/** kind === 'managed-local' only (spec §4). */
|
|
16242
|
+
runtime: ManagedRuntimeConfigSchema.optional()
|
|
16243
|
+
});
|
|
16244
|
+
/** ConfigUISchema tree passed through untyped on the wire (the
|
|
16245
|
+
* notification-output `ConfigSchemaPassthrough` precedent at
|
|
16246
|
+
* notification-output.cap.ts:151); the exported TS type re-tightens it. */
|
|
16247
|
+
var ConfigSchemaPassthrough = unknown();
|
|
16248
|
+
var LlmProfileKindDescriptorSchema = object({
|
|
16249
|
+
kind: LlmProfileKindSchema,
|
|
16250
|
+
label: string(),
|
|
16251
|
+
icon: string(),
|
|
16252
|
+
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
16253
|
+
addonId: string(),
|
|
16254
|
+
configSchema: ConfigSchemaPassthrough
|
|
16255
|
+
});
|
|
16256
|
+
var LlmDefaultSelectorSchema = union([object({ consumer: string() }), object({ purpose: _enum(["text", "vision"]) })]);
|
|
16257
|
+
var LlmDefaultSchema = object({
|
|
16258
|
+
selector: LlmDefaultSelectorSchema,
|
|
16259
|
+
profileId: string()
|
|
16260
|
+
});
|
|
16261
|
+
/** Server-side rollup row — getUsage never dumps raw call rows (spec §6). */
|
|
16262
|
+
var LlmUsageRollupSchema = object({
|
|
16263
|
+
day: string(),
|
|
16264
|
+
consumer: string(),
|
|
16265
|
+
profileId: string(),
|
|
16266
|
+
calls: number(),
|
|
16267
|
+
okCalls: number(),
|
|
16268
|
+
errorCalls: number(),
|
|
16269
|
+
inputTokens: number(),
|
|
16270
|
+
outputTokens: number(),
|
|
16271
|
+
avgLatencyMs: number()
|
|
16272
|
+
});
|
|
16273
|
+
/** LLM-facing view over the reused ModelCatalogEntry mechanism (spec §4.2). */
|
|
16274
|
+
var ManagedModelCatalogEntrySchema = object({
|
|
16275
|
+
id: string(),
|
|
16276
|
+
label: string(),
|
|
16277
|
+
family: string(),
|
|
16278
|
+
purpose: _enum(["text", "vision"]),
|
|
16279
|
+
url: string(),
|
|
16280
|
+
sha256: string(),
|
|
16281
|
+
sizeBytes: number(),
|
|
16282
|
+
quantization: string(),
|
|
16283
|
+
/** Load-time guidance shown in the picker. */
|
|
16284
|
+
minRamBytes: number(),
|
|
16285
|
+
contextSizeDefault: number().int(),
|
|
16286
|
+
/** Vision models: companion projector file. */
|
|
16287
|
+
mmprojUrl: string().optional()
|
|
16288
|
+
});
|
|
16289
|
+
var LlmRuntimeNodeSchema = object({
|
|
16290
|
+
nodeId: string(),
|
|
16291
|
+
reachable: boolean(),
|
|
16292
|
+
status: LlmRuntimeStatusSchema.optional(),
|
|
16293
|
+
disk: LlmRuntimeDiskUsageSchema.optional(),
|
|
16294
|
+
error: string().optional()
|
|
16295
|
+
});
|
|
16296
|
+
var GenerateVisionInputSchema = LlmGenerateBaseInputSchema.extend({ images: array(LlmImageSchema).min(1) });
|
|
16297
|
+
var ProfileRefInputSchema = object({
|
|
16298
|
+
addonId: string(),
|
|
16299
|
+
profileId: string()
|
|
16300
|
+
});
|
|
16301
|
+
method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
|
|
16302
|
+
kind: "mutation",
|
|
16303
|
+
auth: "admin"
|
|
16304
|
+
}), method(ProfileRefInputSchema, _void(), {
|
|
16305
|
+
kind: "mutation",
|
|
16306
|
+
auth: "admin"
|
|
16307
|
+
}), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
|
|
16308
|
+
kind: "mutation",
|
|
16309
|
+
auth: "admin"
|
|
16310
|
+
}), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
|
|
16311
|
+
selector: LlmDefaultSelectorSchema,
|
|
16312
|
+
profileId: string().nullable()
|
|
16313
|
+
}), _void(), {
|
|
16314
|
+
kind: "mutation",
|
|
16315
|
+
auth: "admin"
|
|
16316
|
+
}), method(object({
|
|
16317
|
+
since: number().optional(),
|
|
16318
|
+
until: number().optional(),
|
|
16319
|
+
consumer: string().optional(),
|
|
16320
|
+
profileId: string().optional()
|
|
16321
|
+
}), array(LlmUsageRollupSchema)), method(object({}), array(ManagedModelCatalogEntrySchema)), method(object({}), array(LlmRuntimeNodeSchema)), method(object({ nodeId: string() }), array(LlmNodeModelSchema)), method(object({
|
|
16322
|
+
nodeId: string(),
|
|
16323
|
+
model: ManagedModelRefSchema
|
|
16324
|
+
}), _void(), {
|
|
16325
|
+
kind: "mutation",
|
|
16326
|
+
auth: "admin"
|
|
16327
|
+
}), method(object({
|
|
16328
|
+
nodeId: string(),
|
|
16329
|
+
file: string()
|
|
16330
|
+
}), _void(), {
|
|
16331
|
+
kind: "mutation",
|
|
16332
|
+
auth: "admin"
|
|
16333
|
+
}), method(ProfileRefInputSchema, LlmRuntimeStatusSchema), method(ProfileRefInputSchema, LlmRuntimeStatusSchema, {
|
|
16334
|
+
kind: "mutation",
|
|
16335
|
+
auth: "admin"
|
|
16336
|
+
}), method(ProfileRefInputSchema, _void(), {
|
|
16337
|
+
kind: "mutation",
|
|
16338
|
+
auth: "admin"
|
|
16339
|
+
});
|
|
16340
|
+
/**
|
|
15807
16341
|
* Zod schemas for persisted record types.
|
|
15808
16342
|
*
|
|
15809
16343
|
* These schemas serve as the single source of truth for types that are
|
|
@@ -16019,6 +16553,10 @@ var TrackSchema = object({
|
|
|
16019
16553
|
snapshots: array(TrackSnapshotSchema).readonly(),
|
|
16020
16554
|
/** Deduplicated zones the track has entered at least once. */
|
|
16021
16555
|
zonesVisited: array(string()).readonly(),
|
|
16556
|
+
/** Deduplicated set of detector classes observed for this track over its
|
|
16557
|
+
* life (a track may be reclassified, e.g. person→vehicle). Absent on
|
|
16558
|
+
* legacy rows written before class accumulation shipped. */
|
|
16559
|
+
classes: array(string()).readonly().optional(),
|
|
16022
16560
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
16023
16561
|
totalDistance: number(),
|
|
16024
16562
|
state: TrackStateSchema,
|
|
@@ -16180,7 +16718,7 @@ var KeyEventSchema = object({
|
|
|
16180
16718
|
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
16181
16719
|
windowMs: number().optional()
|
|
16182
16720
|
});
|
|
16183
|
-
|
|
16721
|
+
object({
|
|
16184
16722
|
trackId: string(),
|
|
16185
16723
|
className: string(),
|
|
16186
16724
|
confidence: number(),
|
|
@@ -16188,6 +16726,23 @@ var TrackedDetectionSchema = object({
|
|
|
16188
16726
|
zones: array(string()).readonly(),
|
|
16189
16727
|
state: TrackStateSchema
|
|
16190
16728
|
});
|
|
16729
|
+
var OverlayDetectionSchema = looseObject({
|
|
16730
|
+
id: string(),
|
|
16731
|
+
kind: _enum(["first-level", "detail"]),
|
|
16732
|
+
macroClass: string(),
|
|
16733
|
+
score: number(),
|
|
16734
|
+
bbox: object({
|
|
16735
|
+
x: number(),
|
|
16736
|
+
y: number(),
|
|
16737
|
+
width: number(),
|
|
16738
|
+
height: number()
|
|
16739
|
+
}),
|
|
16740
|
+
labels: array(looseObject({
|
|
16741
|
+
label: string(),
|
|
16742
|
+
score: number()
|
|
16743
|
+
})).readonly(),
|
|
16744
|
+
parentId: string().optional()
|
|
16745
|
+
});
|
|
16191
16746
|
var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
|
|
16192
16747
|
var SearchObjectEventsInput = object({
|
|
16193
16748
|
text: string(),
|
|
@@ -16198,6 +16753,20 @@ var SearchObjectEventsInput = object({
|
|
|
16198
16753
|
limit: number().default(50),
|
|
16199
16754
|
minScore: number().min(0).max(1).default(.2)
|
|
16200
16755
|
});
|
|
16756
|
+
var TrackCascadeCountsSchema = object({
|
|
16757
|
+
/** Persisted track roots deleted (authoritative). */
|
|
16758
|
+
tracks: number().int(),
|
|
16759
|
+
/** Object events removed with their tracks (best-effort; see note above). */
|
|
16760
|
+
events: number().int(),
|
|
16761
|
+
/** Track/face/plate-owned media removed (best-effort). Never identity media. */
|
|
16762
|
+
media: number().int(),
|
|
16763
|
+
/** Unassigned (non-enrolled) face reads removed (best-effort). */
|
|
16764
|
+
faces: number().int(),
|
|
16765
|
+
/** Unassigned plate reads removed (best-effort; plate leg deferred to plate-intelligence). */
|
|
16766
|
+
plates: number().int(),
|
|
16767
|
+
/** Per-track CLIP search vectors removed (best-effort). */
|
|
16768
|
+
embeddings: number().int()
|
|
16769
|
+
});
|
|
16201
16770
|
DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
|
|
16202
16771
|
deviceId: number(),
|
|
16203
16772
|
trackId: string()
|
|
@@ -16229,6 +16798,24 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16229
16798
|
}), {
|
|
16230
16799
|
kind: "mutation",
|
|
16231
16800
|
auth: "admin"
|
|
16801
|
+
}), method(object({
|
|
16802
|
+
deviceId: number(),
|
|
16803
|
+
cutoffMs: number()
|
|
16804
|
+
}), TrackCascadeCountsSchema, {
|
|
16805
|
+
kind: "mutation",
|
|
16806
|
+
auth: "admin"
|
|
16807
|
+
}), method(object({ deviceId: number() }), TrackCascadeCountsSchema, {
|
|
16808
|
+
kind: "mutation",
|
|
16809
|
+
auth: "admin"
|
|
16810
|
+
}), method(object({
|
|
16811
|
+
deviceId: number(),
|
|
16812
|
+
trackIds: array(string()).min(1)
|
|
16813
|
+
}), object({
|
|
16814
|
+
deleted: number().int(),
|
|
16815
|
+
failed: array(string()).readonly()
|
|
16816
|
+
}), {
|
|
16817
|
+
kind: "mutation",
|
|
16818
|
+
auth: "admin"
|
|
16232
16819
|
}), method(object({
|
|
16233
16820
|
eventId: string(),
|
|
16234
16821
|
kind: MediaFileKindEnum.optional()
|
|
@@ -16237,7 +16824,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16237
16824
|
timestamp: number(),
|
|
16238
16825
|
frameWidth: number(),
|
|
16239
16826
|
frameHeight: number(),
|
|
16240
|
-
detections: array(
|
|
16827
|
+
detections: array(OverlayDetectionSchema).readonly()
|
|
16241
16828
|
}), object({
|
|
16242
16829
|
deviceId: number(),
|
|
16243
16830
|
trackId: string(),
|
|
@@ -19217,6 +19804,24 @@ DeviceType.Camera, method(object({
|
|
|
19217
19804
|
deviceId: number(),
|
|
19218
19805
|
status: OsdStatusSchema
|
|
19219
19806
|
});
|
|
19807
|
+
var VehicleSchema = object({
|
|
19808
|
+
id: string(),
|
|
19809
|
+
name: string(),
|
|
19810
|
+
sampleCount: number().int().nonnegative(),
|
|
19811
|
+
coverMediaKey: string().optional(),
|
|
19812
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaKey`. */
|
|
19813
|
+
coverBase64: string().optional()
|
|
19814
|
+
});
|
|
19815
|
+
var VehicleSampleInfoSchema = object({
|
|
19816
|
+
id: string(),
|
|
19817
|
+
/** The plate text this sample enrolled (self-labeling — no embedding). */
|
|
19818
|
+
text: string(),
|
|
19819
|
+
/** OCR confidence of the enrolled read (0..1). */
|
|
19820
|
+
score: number(),
|
|
19821
|
+
addedAt: number().int(),
|
|
19822
|
+
deviceId: number().int().optional(),
|
|
19823
|
+
base64: string().optional()
|
|
19824
|
+
});
|
|
19220
19825
|
var PlateInfoSchema = object({
|
|
19221
19826
|
plateId: string(),
|
|
19222
19827
|
deviceId: number().int(),
|
|
@@ -19228,6 +19833,16 @@ var PlateInfoSchema = object({
|
|
|
19228
19833
|
score: number(),
|
|
19229
19834
|
/** True when the text was manually corrected (exempt from retention). */
|
|
19230
19835
|
corrected: boolean(),
|
|
19836
|
+
/** Recognized vehicle id when a matcher lookup named this read (SQL NULL → absent). */
|
|
19837
|
+
recognizedVehicleId: string().optional(),
|
|
19838
|
+
/** Resolved vehicle name for `recognizedVehicleId` (UI convenience). */
|
|
19839
|
+
vehicleName: string().optional(),
|
|
19840
|
+
/** True once the read was assigned to a vehicle (enrolled as a sample). */
|
|
19841
|
+
assigned: boolean(),
|
|
19842
|
+
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
19843
|
+
plateBbox: BoundingBoxSchema.optional(),
|
|
19844
|
+
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
19845
|
+
keyFrameMediaKey: string().optional(),
|
|
19231
19846
|
base64: string().optional()
|
|
19232
19847
|
});
|
|
19233
19848
|
var MediaFileLiteSchema = object({
|
|
@@ -19267,6 +19882,48 @@ method(object({
|
|
|
19267
19882
|
}), method(object({ plateId: string() }), _void(), {
|
|
19268
19883
|
kind: "mutation",
|
|
19269
19884
|
auth: "admin"
|
|
19885
|
+
}), method(_void(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
19886
|
+
kind: "mutation",
|
|
19887
|
+
auth: "admin"
|
|
19888
|
+
}), method(object({
|
|
19889
|
+
id: string(),
|
|
19890
|
+
name: string().min(1)
|
|
19891
|
+
}), _void(), {
|
|
19892
|
+
kind: "mutation",
|
|
19893
|
+
auth: "admin"
|
|
19894
|
+
}), method(object({ id: string() }), _void(), {
|
|
19895
|
+
kind: "mutation",
|
|
19896
|
+
auth: "admin"
|
|
19897
|
+
}), method(object({ vehicleId: string() }), array(VehicleSampleInfoSchema).readonly()), method(object({
|
|
19898
|
+
vehicleId: string(),
|
|
19899
|
+
sampleId: string()
|
|
19900
|
+
}), _void(), {
|
|
19901
|
+
kind: "mutation",
|
|
19902
|
+
auth: "admin"
|
|
19903
|
+
}), method(object({
|
|
19904
|
+
plateId: string(),
|
|
19905
|
+
vehicleId: string()
|
|
19906
|
+
}), _void(), {
|
|
19907
|
+
kind: "mutation",
|
|
19908
|
+
auth: "admin"
|
|
19909
|
+
}), method(object({ plateId: string() }), _void(), {
|
|
19910
|
+
kind: "mutation",
|
|
19911
|
+
auth: "admin"
|
|
19912
|
+
}), method(object({
|
|
19913
|
+
plateIds: array(string()).min(1),
|
|
19914
|
+
vehicleId: string()
|
|
19915
|
+
}), object({
|
|
19916
|
+
assigned: number().int(),
|
|
19917
|
+
failed: array(string()).readonly()
|
|
19918
|
+
}), {
|
|
19919
|
+
kind: "mutation",
|
|
19920
|
+
auth: "admin"
|
|
19921
|
+
}), method(object({ plateIds: array(string()).min(1) }), object({
|
|
19922
|
+
unassigned: number().int(),
|
|
19923
|
+
failed: array(string()).readonly()
|
|
19924
|
+
}), {
|
|
19925
|
+
kind: "mutation",
|
|
19926
|
+
auth: "admin"
|
|
19270
19927
|
});
|
|
19271
19928
|
var ModelFormatSchema = _enum(MODEL_FORMATS);
|
|
19272
19929
|
var HwAccelBackendInputSchema = _enum([
|
|
@@ -21812,6 +22469,168 @@ Object.freeze({
|
|
|
21812
22469
|
addonId: null,
|
|
21813
22470
|
access: "create"
|
|
21814
22471
|
},
|
|
22472
|
+
"llm.deleteModel": {
|
|
22473
|
+
capName: "llm",
|
|
22474
|
+
capScope: "system",
|
|
22475
|
+
addonId: null,
|
|
22476
|
+
access: "delete"
|
|
22477
|
+
},
|
|
22478
|
+
"llm.deleteProfile": {
|
|
22479
|
+
capName: "llm",
|
|
22480
|
+
capScope: "system",
|
|
22481
|
+
addonId: null,
|
|
22482
|
+
access: "delete"
|
|
22483
|
+
},
|
|
22484
|
+
"llm.generate": {
|
|
22485
|
+
capName: "llm",
|
|
22486
|
+
capScope: "system",
|
|
22487
|
+
addonId: null,
|
|
22488
|
+
access: "create"
|
|
22489
|
+
},
|
|
22490
|
+
"llm.generateVision": {
|
|
22491
|
+
capName: "llm",
|
|
22492
|
+
capScope: "system",
|
|
22493
|
+
addonId: null,
|
|
22494
|
+
access: "create"
|
|
22495
|
+
},
|
|
22496
|
+
"llm.getDefaults": {
|
|
22497
|
+
capName: "llm",
|
|
22498
|
+
capScope: "system",
|
|
22499
|
+
addonId: null,
|
|
22500
|
+
access: "view"
|
|
22501
|
+
},
|
|
22502
|
+
"llm.getRuntimeStatus": {
|
|
22503
|
+
capName: "llm",
|
|
22504
|
+
capScope: "system",
|
|
22505
|
+
addonId: null,
|
|
22506
|
+
access: "view"
|
|
22507
|
+
},
|
|
22508
|
+
"llm.getUsage": {
|
|
22509
|
+
capName: "llm",
|
|
22510
|
+
capScope: "system",
|
|
22511
|
+
addonId: null,
|
|
22512
|
+
access: "view"
|
|
22513
|
+
},
|
|
22514
|
+
"llm.installModel": {
|
|
22515
|
+
capName: "llm",
|
|
22516
|
+
capScope: "system",
|
|
22517
|
+
addonId: null,
|
|
22518
|
+
access: "create"
|
|
22519
|
+
},
|
|
22520
|
+
"llm.listModelCatalog": {
|
|
22521
|
+
capName: "llm",
|
|
22522
|
+
capScope: "system",
|
|
22523
|
+
addonId: null,
|
|
22524
|
+
access: "view"
|
|
22525
|
+
},
|
|
22526
|
+
"llm.listModels": {
|
|
22527
|
+
capName: "llm",
|
|
22528
|
+
capScope: "system",
|
|
22529
|
+
addonId: null,
|
|
22530
|
+
access: "view"
|
|
22531
|
+
},
|
|
22532
|
+
"llm.listNodeModels": {
|
|
22533
|
+
capName: "llm",
|
|
22534
|
+
capScope: "system",
|
|
22535
|
+
addonId: null,
|
|
22536
|
+
access: "view"
|
|
22537
|
+
},
|
|
22538
|
+
"llm.listProfileKinds": {
|
|
22539
|
+
capName: "llm",
|
|
22540
|
+
capScope: "system",
|
|
22541
|
+
addonId: null,
|
|
22542
|
+
access: "view"
|
|
22543
|
+
},
|
|
22544
|
+
"llm.listProfiles": {
|
|
22545
|
+
capName: "llm",
|
|
22546
|
+
capScope: "system",
|
|
22547
|
+
addonId: null,
|
|
22548
|
+
access: "view"
|
|
22549
|
+
},
|
|
22550
|
+
"llm.listRuntimeNodes": {
|
|
22551
|
+
capName: "llm",
|
|
22552
|
+
capScope: "system",
|
|
22553
|
+
addonId: null,
|
|
22554
|
+
access: "view"
|
|
22555
|
+
},
|
|
22556
|
+
"llm.setDefault": {
|
|
22557
|
+
capName: "llm",
|
|
22558
|
+
capScope: "system",
|
|
22559
|
+
addonId: null,
|
|
22560
|
+
access: "create"
|
|
22561
|
+
},
|
|
22562
|
+
"llm.startRuntime": {
|
|
22563
|
+
capName: "llm",
|
|
22564
|
+
capScope: "system",
|
|
22565
|
+
addonId: null,
|
|
22566
|
+
access: "create"
|
|
22567
|
+
},
|
|
22568
|
+
"llm.stopRuntime": {
|
|
22569
|
+
capName: "llm",
|
|
22570
|
+
capScope: "system",
|
|
22571
|
+
addonId: null,
|
|
22572
|
+
access: "create"
|
|
22573
|
+
},
|
|
22574
|
+
"llm.testProfile": {
|
|
22575
|
+
capName: "llm",
|
|
22576
|
+
capScope: "system",
|
|
22577
|
+
addonId: null,
|
|
22578
|
+
access: "create"
|
|
22579
|
+
},
|
|
22580
|
+
"llm.upsertProfile": {
|
|
22581
|
+
capName: "llm",
|
|
22582
|
+
capScope: "system",
|
|
22583
|
+
addonId: null,
|
|
22584
|
+
access: "create"
|
|
22585
|
+
},
|
|
22586
|
+
"llmRuntime.complete": {
|
|
22587
|
+
capName: "llm-runtime",
|
|
22588
|
+
capScope: "system",
|
|
22589
|
+
addonId: null,
|
|
22590
|
+
access: "create"
|
|
22591
|
+
},
|
|
22592
|
+
"llmRuntime.deleteModel": {
|
|
22593
|
+
capName: "llm-runtime",
|
|
22594
|
+
capScope: "system",
|
|
22595
|
+
addonId: null,
|
|
22596
|
+
access: "delete"
|
|
22597
|
+
},
|
|
22598
|
+
"llmRuntime.ensureStarted": {
|
|
22599
|
+
capName: "llm-runtime",
|
|
22600
|
+
capScope: "system",
|
|
22601
|
+
addonId: null,
|
|
22602
|
+
access: "create"
|
|
22603
|
+
},
|
|
22604
|
+
"llmRuntime.getDiskUsage": {
|
|
22605
|
+
capName: "llm-runtime",
|
|
22606
|
+
capScope: "system",
|
|
22607
|
+
addonId: null,
|
|
22608
|
+
access: "view"
|
|
22609
|
+
},
|
|
22610
|
+
"llmRuntime.installModel": {
|
|
22611
|
+
capName: "llm-runtime",
|
|
22612
|
+
capScope: "system",
|
|
22613
|
+
addonId: null,
|
|
22614
|
+
access: "create"
|
|
22615
|
+
},
|
|
22616
|
+
"llmRuntime.listLocalModels": {
|
|
22617
|
+
capName: "llm-runtime",
|
|
22618
|
+
capScope: "system",
|
|
22619
|
+
addonId: null,
|
|
22620
|
+
access: "view"
|
|
22621
|
+
},
|
|
22622
|
+
"llmRuntime.status": {
|
|
22623
|
+
capName: "llm-runtime",
|
|
22624
|
+
capScope: "system",
|
|
22625
|
+
addonId: null,
|
|
22626
|
+
access: "view"
|
|
22627
|
+
},
|
|
22628
|
+
"llmRuntime.stop": {
|
|
22629
|
+
capName: "llm-runtime",
|
|
22630
|
+
capScope: "system",
|
|
22631
|
+
addonId: null,
|
|
22632
|
+
access: "create"
|
|
22633
|
+
},
|
|
21815
22634
|
"localNetwork.getAllowedAddresses": {
|
|
21816
22635
|
capName: "local-network",
|
|
21817
22636
|
capScope: "system",
|
|
@@ -22442,6 +23261,12 @@ Object.freeze({
|
|
|
22442
23261
|
addonId: null,
|
|
22443
23262
|
access: "delete"
|
|
22444
23263
|
},
|
|
23264
|
+
"pipelineAnalytics.deleteTracks": {
|
|
23265
|
+
capName: "pipeline-analytics",
|
|
23266
|
+
capScope: "device",
|
|
23267
|
+
addonId: null,
|
|
23268
|
+
access: "delete"
|
|
23269
|
+
},
|
|
22445
23270
|
"pipelineAnalytics.getActiveTracks": {
|
|
22446
23271
|
capName: "pipeline-analytics",
|
|
22447
23272
|
capScope: "device",
|
|
@@ -22508,12 +23333,24 @@ Object.freeze({
|
|
|
22508
23333
|
addonId: null,
|
|
22509
23334
|
access: "create"
|
|
22510
23335
|
},
|
|
23336
|
+
"pipelineAnalytics.pruneTracksBefore": {
|
|
23337
|
+
capName: "pipeline-analytics",
|
|
23338
|
+
capScope: "device",
|
|
23339
|
+
addonId: null,
|
|
23340
|
+
access: "create"
|
|
23341
|
+
},
|
|
22511
23342
|
"pipelineAnalytics.searchObjectEvents": {
|
|
22512
23343
|
capName: "pipeline-analytics",
|
|
22513
23344
|
capScope: "device",
|
|
22514
23345
|
addonId: null,
|
|
22515
23346
|
access: "view"
|
|
22516
23347
|
},
|
|
23348
|
+
"pipelineAnalytics.wipeAllAnalytics": {
|
|
23349
|
+
capName: "pipeline-analytics",
|
|
23350
|
+
capScope: "device",
|
|
23351
|
+
addonId: null,
|
|
23352
|
+
access: "delete"
|
|
23353
|
+
},
|
|
22517
23354
|
"pipelineExecutor.cacheFrameInPool": {
|
|
22518
23355
|
capName: "pipeline-executor",
|
|
22519
23356
|
capScope: "system",
|
|
@@ -23012,18 +23849,48 @@ Object.freeze({
|
|
|
23012
23849
|
addonId: null,
|
|
23013
23850
|
access: "create"
|
|
23014
23851
|
},
|
|
23852
|
+
"pipelineRunner.runDetailSubtree": {
|
|
23853
|
+
capName: "pipeline-runner",
|
|
23854
|
+
capScope: "system",
|
|
23855
|
+
addonId: null,
|
|
23856
|
+
access: "create"
|
|
23857
|
+
},
|
|
23858
|
+
"plateGallery.assignPlate": {
|
|
23859
|
+
capName: "plate-gallery",
|
|
23860
|
+
capScope: "system",
|
|
23861
|
+
addonId: null,
|
|
23862
|
+
access: "create"
|
|
23863
|
+
},
|
|
23864
|
+
"plateGallery.assignPlates": {
|
|
23865
|
+
capName: "plate-gallery",
|
|
23866
|
+
capScope: "system",
|
|
23867
|
+
addonId: null,
|
|
23868
|
+
access: "create"
|
|
23869
|
+
},
|
|
23015
23870
|
"plateGallery.correctPlateText": {
|
|
23016
23871
|
capName: "plate-gallery",
|
|
23017
23872
|
capScope: "system",
|
|
23018
23873
|
addonId: null,
|
|
23019
23874
|
access: "create"
|
|
23020
23875
|
},
|
|
23876
|
+
"plateGallery.createVehicle": {
|
|
23877
|
+
capName: "plate-gallery",
|
|
23878
|
+
capScope: "system",
|
|
23879
|
+
addonId: null,
|
|
23880
|
+
access: "create"
|
|
23881
|
+
},
|
|
23021
23882
|
"plateGallery.deletePlate": {
|
|
23022
23883
|
capName: "plate-gallery",
|
|
23023
23884
|
capScope: "system",
|
|
23024
23885
|
addonId: null,
|
|
23025
23886
|
access: "delete"
|
|
23026
23887
|
},
|
|
23888
|
+
"plateGallery.deleteVehicle": {
|
|
23889
|
+
capName: "plate-gallery",
|
|
23890
|
+
capScope: "system",
|
|
23891
|
+
addonId: null,
|
|
23892
|
+
access: "delete"
|
|
23893
|
+
},
|
|
23027
23894
|
"plateGallery.getPlateByTrack": {
|
|
23028
23895
|
capName: "plate-gallery",
|
|
23029
23896
|
capScope: "system",
|
|
@@ -23042,6 +23909,30 @@ Object.freeze({
|
|
|
23042
23909
|
addonId: null,
|
|
23043
23910
|
access: "view"
|
|
23044
23911
|
},
|
|
23912
|
+
"plateGallery.listVehicles": {
|
|
23913
|
+
capName: "plate-gallery",
|
|
23914
|
+
capScope: "system",
|
|
23915
|
+
addonId: null,
|
|
23916
|
+
access: "view"
|
|
23917
|
+
},
|
|
23918
|
+
"plateGallery.listVehicleSamples": {
|
|
23919
|
+
capName: "plate-gallery",
|
|
23920
|
+
capScope: "system",
|
|
23921
|
+
addonId: null,
|
|
23922
|
+
access: "view"
|
|
23923
|
+
},
|
|
23924
|
+
"plateGallery.removeVehicleSample": {
|
|
23925
|
+
capName: "plate-gallery",
|
|
23926
|
+
capScope: "system",
|
|
23927
|
+
addonId: null,
|
|
23928
|
+
access: "delete"
|
|
23929
|
+
},
|
|
23930
|
+
"plateGallery.renameVehicle": {
|
|
23931
|
+
capName: "plate-gallery",
|
|
23932
|
+
capScope: "system",
|
|
23933
|
+
addonId: null,
|
|
23934
|
+
access: "create"
|
|
23935
|
+
},
|
|
23045
23936
|
"plateGallery.searchPlates": {
|
|
23046
23937
|
capName: "plate-gallery",
|
|
23047
23938
|
capScope: "system",
|
|
@@ -23054,6 +23945,18 @@ Object.freeze({
|
|
|
23054
23945
|
addonId: null,
|
|
23055
23946
|
access: "view"
|
|
23056
23947
|
},
|
|
23948
|
+
"plateGallery.unassignPlate": {
|
|
23949
|
+
capName: "plate-gallery",
|
|
23950
|
+
capScope: "system",
|
|
23951
|
+
addonId: null,
|
|
23952
|
+
access: "create"
|
|
23953
|
+
},
|
|
23954
|
+
"plateGallery.unassignPlates": {
|
|
23955
|
+
capName: "plate-gallery",
|
|
23956
|
+
capScope: "system",
|
|
23957
|
+
addonId: null,
|
|
23958
|
+
access: "create"
|
|
23959
|
+
},
|
|
23057
23960
|
"platformProbe.getCapabilities": {
|
|
23058
23961
|
capName: "platform-probe",
|
|
23059
23962
|
capScope: "system",
|
|
@@ -23246,6 +24149,48 @@ Object.freeze({
|
|
|
23246
24149
|
addonId: null,
|
|
23247
24150
|
access: "create"
|
|
23248
24151
|
},
|
|
24152
|
+
"sceneMonitor.captureReference": {
|
|
24153
|
+
capName: "scene-monitor",
|
|
24154
|
+
capScope: "device",
|
|
24155
|
+
addonId: null,
|
|
24156
|
+
access: "create"
|
|
24157
|
+
},
|
|
24158
|
+
"sceneMonitor.createScene": {
|
|
24159
|
+
capName: "scene-monitor",
|
|
24160
|
+
capScope: "device",
|
|
24161
|
+
addonId: null,
|
|
24162
|
+
access: "create"
|
|
24163
|
+
},
|
|
24164
|
+
"sceneMonitor.deleteReference": {
|
|
24165
|
+
capName: "scene-monitor",
|
|
24166
|
+
capScope: "device",
|
|
24167
|
+
addonId: null,
|
|
24168
|
+
access: "delete"
|
|
24169
|
+
},
|
|
24170
|
+
"sceneMonitor.deleteScene": {
|
|
24171
|
+
capName: "scene-monitor",
|
|
24172
|
+
capScope: "device",
|
|
24173
|
+
addonId: null,
|
|
24174
|
+
access: "delete"
|
|
24175
|
+
},
|
|
24176
|
+
"sceneMonitor.listScenes": {
|
|
24177
|
+
capName: "scene-monitor",
|
|
24178
|
+
capScope: "device",
|
|
24179
|
+
addonId: null,
|
|
24180
|
+
access: "view"
|
|
24181
|
+
},
|
|
24182
|
+
"sceneMonitor.recheckNow": {
|
|
24183
|
+
capName: "scene-monitor",
|
|
24184
|
+
capScope: "device",
|
|
24185
|
+
addonId: null,
|
|
24186
|
+
access: "create"
|
|
24187
|
+
},
|
|
24188
|
+
"sceneMonitor.updateScene": {
|
|
24189
|
+
capName: "scene-monitor",
|
|
24190
|
+
capScope: "device",
|
|
24191
|
+
addonId: null,
|
|
24192
|
+
access: "create"
|
|
24193
|
+
},
|
|
23249
24194
|
"scriptRunner.run": {
|
|
23250
24195
|
capName: "script-runner",
|
|
23251
24196
|
capScope: "device",
|
|
@@ -24330,6 +25275,7 @@ Object.freeze({
|
|
|
24330
25275
|
Object.freeze({
|
|
24331
25276
|
"broker": "broker",
|
|
24332
25277
|
"device-export": "device-export",
|
|
25278
|
+
"llm": "ai",
|
|
24333
25279
|
"mesh-network": "mesh",
|
|
24334
25280
|
"mqtt-broker": "broker",
|
|
24335
25281
|
"network-access": "ingress",
|