@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.js
CHANGED
|
@@ -4317,6 +4317,14 @@ function object(shape, params) {
|
|
|
4317
4317
|
...normalizeParams(params)
|
|
4318
4318
|
});
|
|
4319
4319
|
}
|
|
4320
|
+
function looseObject(shape, params) {
|
|
4321
|
+
return new ZodObject({
|
|
4322
|
+
type: "object",
|
|
4323
|
+
shape,
|
|
4324
|
+
catchall: unknown(),
|
|
4325
|
+
...normalizeParams(params)
|
|
4326
|
+
});
|
|
4327
|
+
}
|
|
4320
4328
|
var ZodUnion = /*@__PURE__*/ $constructor("ZodUnion", (inst, def) => {
|
|
4321
4329
|
$ZodUnion.init(inst, def);
|
|
4322
4330
|
ZodType.init(inst, def);
|
|
@@ -4658,7 +4666,7 @@ function _instanceof(cls, params = {}) {
|
|
|
4658
4666
|
return inst;
|
|
4659
4667
|
}
|
|
4660
4668
|
//#endregion
|
|
4661
|
-
//#region ../types/dist/sleep-
|
|
4669
|
+
//#region ../types/dist/sleep-DkhOVOjW.mjs
|
|
4662
4670
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4663
4671
|
EventCategory["SystemBoot"] = "system.boot";
|
|
4664
4672
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -5068,10 +5076,43 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
5068
5076
|
EventCategory["EnrichmentEmbeddingStored"] = "enrichment.embedding.stored";
|
|
5069
5077
|
EventCategory["EnrichmentSceneStateChanged"] = "enrichment.scene.state-changed";
|
|
5070
5078
|
EventCategory["EnrichmentActivitySummary"] = "enrichment.activity.summary";
|
|
5079
|
+
/**
|
|
5080
|
+
* Unified track-lifecycle event: ONE category carrying `phase:
|
|
5081
|
+
* 'start' | 'update' | 'end'` with a rich, typed
|
|
5082
|
+
* `PipelineAnalyticsTrackLifecyclePayload`. Supersedes the thin
|
|
5083
|
+
* `PipelineAnalyticsTrackStarted` / `PipelineAnalyticsTrackEnded`
|
|
5084
|
+
* pair — a consumer subscribes once and branches on `phase`.
|
|
5085
|
+
*/
|
|
5086
|
+
EventCategory["PipelineAnalyticsTrackLifecycle"] = "pipeline-analytics.track-lifecycle";
|
|
5087
|
+
/**
|
|
5088
|
+
* @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
|
|
5089
|
+
* (`phase:'start'`). Kept as a soft alias — no known subscribers.
|
|
5090
|
+
*/
|
|
5071
5091
|
EventCategory["PipelineAnalyticsTrackStarted"] = "pipeline-analytics.track-started";
|
|
5092
|
+
/**
|
|
5093
|
+
* @deprecated Superseded by {@link PipelineAnalyticsTrackLifecycle}
|
|
5094
|
+
* (`phase:'end'`). Kept as a soft alias — no known subscribers.
|
|
5095
|
+
*/
|
|
5072
5096
|
EventCategory["PipelineAnalyticsTrackEnded"] = "pipeline-analytics.track-ended";
|
|
5073
5097
|
EventCategory["PipelineAnalyticsDetectionEvent"] = "pipeline-analytics.detection-event";
|
|
5074
5098
|
EventCategory["PipelineAnalyticsFrameTracked"] = "pipeline-analytics.frame-tracked";
|
|
5099
|
+
/**
|
|
5100
|
+
* Fired by `addon-post-analysis` whenever a gallery face row changes:
|
|
5101
|
+
* `kind:'buffered'` a new detected face was persisted, `'assigned'` /
|
|
5102
|
+
* `'unassigned'` its identity link changed, `'deleted'` the row was
|
|
5103
|
+
* removed. Telemetry semantics (D8): a lost event only delays a refresh,
|
|
5104
|
+
* never a correctness issue. Payload `PipelineAnalyticsFaceGalleryChangedPayload`.
|
|
5105
|
+
*/
|
|
5106
|
+
EventCategory["PipelineAnalyticsFaceGalleryChanged"] = "pipeline-analytics.face-gallery-changed";
|
|
5107
|
+
/**
|
|
5108
|
+
* Fired by `addon-post-analysis` whenever a gallery plate row changes:
|
|
5109
|
+
* `kind:'buffered'` a new read was persisted (`PlateRecognizer.onTrackEnd`),
|
|
5110
|
+
* `'assigned'` / `'unassigned'` its vehicle link changed
|
|
5111
|
+
* (`PlateGalleryProvider`), `'deleted'` the row was removed. Telemetry
|
|
5112
|
+
* semantics (D8): a lost event only delays a refresh, never a correctness
|
|
5113
|
+
* issue. Payload `PipelineAnalyticsPlateGalleryChangedPayload`.
|
|
5114
|
+
*/
|
|
5115
|
+
EventCategory["PipelineAnalyticsPlateGalleryChanged"] = "pipeline-analytics.plate-gallery-changed";
|
|
5075
5116
|
EventCategory["FrigateLiveEvent"] = "frigate.live-event";
|
|
5076
5117
|
EventCategory["CameraStreamsProfileSlotsChanged"] = "camera-streams.onProfileSlotsChanged";
|
|
5077
5118
|
/**
|
|
@@ -7328,7 +7369,8 @@ var MODEL_FORMATS = [
|
|
|
7328
7369
|
"coreml",
|
|
7329
7370
|
"openvino",
|
|
7330
7371
|
"tflite",
|
|
7331
|
-
"pt"
|
|
7372
|
+
"pt",
|
|
7373
|
+
"gguf"
|
|
7332
7374
|
];
|
|
7333
7375
|
/**
|
|
7334
7376
|
* Multi-file format payload.
|
|
@@ -7372,7 +7414,8 @@ var ModelFormatsSchema = object({
|
|
|
7372
7414
|
coreml: ModelFormatEntrySchema.optional(),
|
|
7373
7415
|
openvino: ModelFormatEntrySchema.optional(),
|
|
7374
7416
|
tflite: ModelFormatEntrySchema.optional(),
|
|
7375
|
-
pt: ModelFormatEntrySchema.optional()
|
|
7417
|
+
pt: ModelFormatEntrySchema.optional(),
|
|
7418
|
+
gguf: ModelFormatEntrySchema.optional()
|
|
7376
7419
|
});
|
|
7377
7420
|
/**
|
|
7378
7421
|
* Variant-selector grouping axes. Shared by the full `ModelCatalogEntry` and by
|
|
@@ -10928,7 +10971,8 @@ var ModelFormatSchema$1 = _enum([
|
|
|
10928
10971
|
"coreml",
|
|
10929
10972
|
"openvino",
|
|
10930
10973
|
"tflite",
|
|
10931
|
-
"pt"
|
|
10974
|
+
"pt",
|
|
10975
|
+
"gguf"
|
|
10932
10976
|
]);
|
|
10933
10977
|
var PipelineSlotSchema = _enum([
|
|
10934
10978
|
"detector",
|
|
@@ -11292,7 +11336,15 @@ var pipelineExecutorCapability = {
|
|
|
11292
11336
|
image: _instanceof(Uint8Array).optional(),
|
|
11293
11337
|
referenceImage: string().optional(),
|
|
11294
11338
|
deviceId: number().optional(),
|
|
11295
|
-
sessionId: string().optional()
|
|
11339
|
+
sessionId: string().optional(),
|
|
11340
|
+
/**
|
|
11341
|
+
* Execution plane. 'full' (default) runs the whole tree — benchmark,
|
|
11342
|
+
* reference-image, and detail-subtree calls. 'frame' is the live
|
|
11343
|
+
* per-frame dispatch: ONLY root-plane steps run; crop children
|
|
11344
|
+
* (inputClasses ≠ null) are skipped and served per-track via
|
|
11345
|
+
* pipelineRunner.runDetailSubtree (two-plane design).
|
|
11346
|
+
*/
|
|
11347
|
+
plane: _enum(["full", "frame"]).optional()
|
|
11296
11348
|
}), PipelineRunResultBridge, { kind: "mutation" }),
|
|
11297
11349
|
/**
|
|
11298
11350
|
* Batched run — N raw frames packed into one cap call. The provider
|
|
@@ -11522,6 +11574,28 @@ var NativeCropResultSchema = object({
|
|
|
11522
11574
|
width: number().int().positive(),
|
|
11523
11575
|
height: number().int().positive()
|
|
11524
11576
|
});
|
|
11577
|
+
/** Parent detection context passed to `runDetailSubtree` — the crop's
|
|
11578
|
+
* originating detection, in FRAME-space coordinates. Reuses
|
|
11579
|
+
* `NativeCropBboxSchema`'s `{x,y,w,h}` shape (same numeric fields; here
|
|
11580
|
+
* the coordinates are frame-space rather than getNativeCrop's
|
|
11581
|
+
* normalized [0,1] convention). */
|
|
11582
|
+
var DetailParentSchema = object({
|
|
11583
|
+
bbox: NativeCropBboxSchema,
|
|
11584
|
+
className: string()
|
|
11585
|
+
});
|
|
11586
|
+
/** One child-step result from `runDetailSubtree` — an embedding, label,
|
|
11587
|
+
* or refined detection produced by running the crop-subtree on a
|
|
11588
|
+
* single tracked detection. */
|
|
11589
|
+
var DetailResultSchema = object({
|
|
11590
|
+
stepId: string(),
|
|
11591
|
+
className: string(),
|
|
11592
|
+
score: number(),
|
|
11593
|
+
/** FRAME-space bbox (already mapped back from crop space). */
|
|
11594
|
+
bbox: NativeCropBboxSchema.optional(),
|
|
11595
|
+
embedding: string().optional(),
|
|
11596
|
+
label: string().optional(),
|
|
11597
|
+
alignedCropJpeg: string().optional()
|
|
11598
|
+
});
|
|
11525
11599
|
/**
|
|
11526
11600
|
* Per-camera tunable ranges + defaults. Single source of truth used
|
|
11527
11601
|
* by both the Zod data schema (validation + default fallback) and
|
|
@@ -11906,7 +11980,13 @@ method(RunnerCameraConfigSchema, object({ success: literal(true) }), { kind: "mu
|
|
|
11906
11980
|
handle: FrameHandleSchema,
|
|
11907
11981
|
bbox: NativeCropBboxSchema,
|
|
11908
11982
|
maxWidth: number().int().positive().optional()
|
|
11909
|
-
}), NativeCropResultSchema.nullable())
|
|
11983
|
+
}), NativeCropResultSchema.nullable()), method(object({
|
|
11984
|
+
deviceId: number(),
|
|
11985
|
+
frameHandle: FrameHandleSchema.optional(),
|
|
11986
|
+
cropJpeg: string().optional(),
|
|
11987
|
+
parent: DetailParentSchema,
|
|
11988
|
+
steps: array(string()).optional()
|
|
11989
|
+
}), object({ details: array(DetailResultSchema) }).nullable(), { kind: "mutation" });
|
|
11910
11990
|
object({
|
|
11911
11991
|
detected: boolean(),
|
|
11912
11992
|
/** Ms epoch of the last detected-true observation. Null if never detected. */
|
|
@@ -12518,6 +12598,140 @@ DeviceType.Camera, method(object({ deviceId: number() }), PtzAutotrackStatusSche
|
|
|
12518
12598
|
deviceId: number(),
|
|
12519
12599
|
status: PtzAutotrackStatusSchema
|
|
12520
12600
|
});
|
|
12601
|
+
/**
|
|
12602
|
+
* scene-monitor — device-scoped reference-region state cap. An operator marks
|
|
12603
|
+
* a rect ROI on a camera frame and names one or more states; the engine
|
|
12604
|
+
* (pipeline-analytics, designated post-processing node) reports which state is
|
|
12605
|
+
* active on an ongoing basis. Two operator-selectable check modes share every-
|
|
12606
|
+
* thing except the comparator: `similarity` (CLIP cosine at the same ROI coords
|
|
12607
|
+
* vs condition-tagged references) and `llm` (vision-LLM judgment over the crop).
|
|
12608
|
+
*
|
|
12609
|
+
* D14 device-config archetype (`deviceConfig.ui.kind:'widget'`) — the framework
|
|
12610
|
+
* derives the device-detail contribution; the provider carries NO hand-written
|
|
12611
|
+
* settings-contribution methods. `status.kind:'push'` — the engine pushes on
|
|
12612
|
+
* every hysteresis flip / availability change; consumers never poll.
|
|
12613
|
+
*/
|
|
12614
|
+
/** Extensible condition tag. Seeded 'day' | 'night'; open by design so more can
|
|
12615
|
+
* be added without a wire break (matching falls back to any-condition refs). */
|
|
12616
|
+
var SceneConditionSchema = string();
|
|
12617
|
+
/** One captured reference — condition-tagged, model-version-gated. `embedding`
|
|
12618
|
+
* is `number[]` (Float32Array does NOT survive MsgPack/UDS). */
|
|
12619
|
+
var SceneReferenceSchema = object({
|
|
12620
|
+
embedding: array(number()),
|
|
12621
|
+
modelId: string(),
|
|
12622
|
+
condition: SceneConditionSchema,
|
|
12623
|
+
capturedAt: number(),
|
|
12624
|
+
thumbnailMediaId: string().optional()
|
|
12625
|
+
});
|
|
12626
|
+
var SceneMonitorStateSchema = object({
|
|
12627
|
+
id: string(),
|
|
12628
|
+
label: string(),
|
|
12629
|
+
references: array(SceneReferenceSchema),
|
|
12630
|
+
textPrompts: array(string()).optional(),
|
|
12631
|
+
referenceCount: number(),
|
|
12632
|
+
currentlyMatched: boolean()
|
|
12633
|
+
});
|
|
12634
|
+
/** Per-mode comparator params in a discriminated union so an `llm` scene never
|
|
12635
|
+
* carries similarity knobs and vice-versa. */
|
|
12636
|
+
var SceneCheckSchema = discriminatedUnion("mode", [object({
|
|
12637
|
+
mode: literal("similarity"),
|
|
12638
|
+
threshold: number().min(0).max(1),
|
|
12639
|
+
hysteresisCount: number().int().positive()
|
|
12640
|
+
}), object({
|
|
12641
|
+
mode: literal("llm"),
|
|
12642
|
+
prompt: string(),
|
|
12643
|
+
profileId: string().optional(),
|
|
12644
|
+
hysteresisCount: number().int().positive()
|
|
12645
|
+
})]);
|
|
12646
|
+
var SceneMonitorSchema = object({
|
|
12647
|
+
id: string(),
|
|
12648
|
+
label: string(),
|
|
12649
|
+
roi: MaskRectShapeSchema,
|
|
12650
|
+
enabled: boolean(),
|
|
12651
|
+
triggerMode: _enum([
|
|
12652
|
+
"periodic",
|
|
12653
|
+
"on-motion",
|
|
12654
|
+
"both"
|
|
12655
|
+
]),
|
|
12656
|
+
checkIntervalSec: number().optional(),
|
|
12657
|
+
check: SceneCheckSchema,
|
|
12658
|
+
states: array(SceneMonitorStateSchema),
|
|
12659
|
+
currentStateId: string().nullable(),
|
|
12660
|
+
lastCheckedAt: number().nullable(),
|
|
12661
|
+
lastConfidence: number().nullable(),
|
|
12662
|
+
currentCondition: SceneConditionSchema.nullable(),
|
|
12663
|
+
availability: _enum(["ok", "unavailable"]),
|
|
12664
|
+
unavailableReason: string().nullable()
|
|
12665
|
+
});
|
|
12666
|
+
var SceneMonitorStatusSchema = object({
|
|
12667
|
+
monitors: array(SceneMonitorSchema),
|
|
12668
|
+
lastFetchedAt: number()
|
|
12669
|
+
});
|
|
12670
|
+
DeviceType.Camera, method(object({ deviceId: number() }), SceneMonitorStatusSchema), method(object({
|
|
12671
|
+
deviceId: number(),
|
|
12672
|
+
label: string(),
|
|
12673
|
+
roi: MaskRectShapeSchema,
|
|
12674
|
+
check: SceneCheckSchema,
|
|
12675
|
+
triggerMode: _enum([
|
|
12676
|
+
"periodic",
|
|
12677
|
+
"on-motion",
|
|
12678
|
+
"both"
|
|
12679
|
+
]).optional(),
|
|
12680
|
+
checkIntervalSec: number().optional()
|
|
12681
|
+
}), SceneMonitorSchema, {
|
|
12682
|
+
kind: "mutation",
|
|
12683
|
+
auth: "admin"
|
|
12684
|
+
}), method(object({
|
|
12685
|
+
deviceId: number(),
|
|
12686
|
+
monitorId: string(),
|
|
12687
|
+
patch: object({
|
|
12688
|
+
label: string().optional(),
|
|
12689
|
+
roi: MaskRectShapeSchema.optional(),
|
|
12690
|
+
enabled: boolean().optional(),
|
|
12691
|
+
triggerMode: _enum([
|
|
12692
|
+
"periodic",
|
|
12693
|
+
"on-motion",
|
|
12694
|
+
"both"
|
|
12695
|
+
]).optional(),
|
|
12696
|
+
checkIntervalSec: number().optional(),
|
|
12697
|
+
check: SceneCheckSchema.optional()
|
|
12698
|
+
})
|
|
12699
|
+
}), _void(), {
|
|
12700
|
+
kind: "mutation",
|
|
12701
|
+
auth: "admin"
|
|
12702
|
+
}), method(object({
|
|
12703
|
+
deviceId: number(),
|
|
12704
|
+
monitorId: string()
|
|
12705
|
+
}), _void(), {
|
|
12706
|
+
kind: "mutation",
|
|
12707
|
+
auth: "admin"
|
|
12708
|
+
}), method(object({
|
|
12709
|
+
deviceId: number(),
|
|
12710
|
+
monitorId: string(),
|
|
12711
|
+
stateId: string().optional(),
|
|
12712
|
+
label: string().optional(),
|
|
12713
|
+
condition: SceneConditionSchema.optional()
|
|
12714
|
+
}), object({
|
|
12715
|
+
stateId: string(),
|
|
12716
|
+
referenceCount: number()
|
|
12717
|
+
}), {
|
|
12718
|
+
kind: "mutation",
|
|
12719
|
+
auth: "admin"
|
|
12720
|
+
}), method(object({
|
|
12721
|
+
deviceId: number(),
|
|
12722
|
+
monitorId: string(),
|
|
12723
|
+
stateId: string(),
|
|
12724
|
+
index: number()
|
|
12725
|
+
}), _void(), {
|
|
12726
|
+
kind: "mutation",
|
|
12727
|
+
auth: "admin"
|
|
12728
|
+
}), method(object({
|
|
12729
|
+
deviceId: number(),
|
|
12730
|
+
monitorId: string()
|
|
12731
|
+
}), _void(), {
|
|
12732
|
+
kind: "mutation",
|
|
12733
|
+
auth: "admin"
|
|
12734
|
+
});
|
|
12521
12735
|
object({
|
|
12522
12736
|
/** Whether the script is currently executing. */
|
|
12523
12737
|
isRunning: boolean(),
|
|
@@ -13586,7 +13800,12 @@ var NotificationRuleConditionsSchema = object({
|
|
|
13586
13800
|
clipDescription: object({
|
|
13587
13801
|
text: string().min(1),
|
|
13588
13802
|
minSimilarity: number().min(0).max(1)
|
|
13589
|
-
}).optional()
|
|
13803
|
+
}).optional(),
|
|
13804
|
+
/** Match events whose recognized-entity label (face identity name or plate
|
|
13805
|
+
* vehicle name, propagated onto `event.data.label`) is one of these values.
|
|
13806
|
+
* Empty/absent → unaffected (back-compat). Enables "notify me when <named
|
|
13807
|
+
* vehicle/person> is seen". */
|
|
13808
|
+
labels: array(string()).readonly().optional()
|
|
13590
13809
|
});
|
|
13591
13810
|
var NotificationRuleTemplateSchema = object({
|
|
13592
13811
|
title: string(),
|
|
@@ -13844,11 +14063,19 @@ method(object({
|
|
|
13844
14063
|
* login page needs NO change.
|
|
13845
14064
|
*
|
|
13846
14065
|
* - `widget` — a Module-Federation widget the login page mounts (via
|
|
13847
|
-
* `loadRemoteBundle`) for an in-page ceremony.
|
|
13848
|
-
*
|
|
13849
|
-
*
|
|
13850
|
-
*
|
|
13851
|
-
*
|
|
14066
|
+
* `loadRemoteBundle`) for an in-page ceremony. `auth.listLoginMethods`
|
|
14067
|
+
* stamps a public `bundleUrl` from `addonId` + `bundle`. Generic
|
|
14068
|
+
* mechanism kept for future use; no shipped addon uses it on the login
|
|
14069
|
+
* page (the passkey ceremony below runs natively in the shell instead).
|
|
14070
|
+
*
|
|
14071
|
+
* - `passkey` — a declarative WebAuthn ceremony the shell renders
|
|
14072
|
+
* natively (`@simplewebauthn/browser` lives in `addon-admin-ui`, not in
|
|
14073
|
+
* a remotely-loaded bundle). Carries the addon's effective `rpId` /
|
|
14074
|
+
* `origin` (from its `resolveRpID()` / `resolveOrigin()`) so the shell
|
|
14075
|
+
* can gate visibility (IP-literal origin, hostname/rpId mismatch) WITHOUT
|
|
14076
|
+
* fetching any remote code pre-auth. Contribution stays unconditional —
|
|
14077
|
+
* enrollment state is never leaked pre-auth; visibility is a shell
|
|
14078
|
+
* decision.
|
|
13852
14079
|
*
|
|
13853
14080
|
* Every contribution carries a `stage`:
|
|
13854
14081
|
* - `primary` — shown on the first credentials screen (OIDC /
|
|
@@ -13862,30 +14089,45 @@ method(object({
|
|
|
13862
14089
|
*/
|
|
13863
14090
|
/** When a login method renders in the two-phase login flow. */
|
|
13864
14091
|
var LoginStageEnum = _enum(["primary", "second-factor"]);
|
|
13865
|
-
/** One login-method contribution — redirect button
|
|
13866
|
-
var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
13867
|
-
|
|
13868
|
-
|
|
13869
|
-
|
|
13870
|
-
|
|
13871
|
-
|
|
13872
|
-
|
|
13873
|
-
|
|
13874
|
-
|
|
13875
|
-
|
|
13876
|
-
|
|
13877
|
-
|
|
13878
|
-
|
|
13879
|
-
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
13885
|
-
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
|
|
14092
|
+
/** One login-method contribution — redirect button, pre-auth widget, or native passkey ceremony. */
|
|
14093
|
+
var LoginMethodContributionSchema = discriminatedUnion("kind", [
|
|
14094
|
+
object({
|
|
14095
|
+
kind: literal("redirect"),
|
|
14096
|
+
/** Stable id within the login-method set (e.g. `auth-oidc/google`). */
|
|
14097
|
+
id: string(),
|
|
14098
|
+
/** Operator-facing button label. */
|
|
14099
|
+
label: string(),
|
|
14100
|
+
/** lucide-react icon name. */
|
|
14101
|
+
icon: string().optional(),
|
|
14102
|
+
/** Addon-owned HTTP route the button navigates to (GET). */
|
|
14103
|
+
startUrl: string(),
|
|
14104
|
+
stage: LoginStageEnum
|
|
14105
|
+
}),
|
|
14106
|
+
object({
|
|
14107
|
+
kind: literal("widget"),
|
|
14108
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-login`). */
|
|
14109
|
+
id: string(),
|
|
14110
|
+
/** Owning addon id — drives the public bundle URL + the MF namespace. */
|
|
14111
|
+
addonId: string(),
|
|
14112
|
+
/** Bundle filename inside the addon's dist dir (`remoteEntry.js`). */
|
|
14113
|
+
bundle: string(),
|
|
14114
|
+
/** MF remote descriptor — `{ remoteName, exposedModule, componentKey }`. */
|
|
14115
|
+
remote: WidgetRemoteSchema,
|
|
14116
|
+
stage: LoginStageEnum
|
|
14117
|
+
}),
|
|
14118
|
+
object({
|
|
14119
|
+
kind: literal("passkey"),
|
|
14120
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-direct-login`). */
|
|
14121
|
+
id: string(),
|
|
14122
|
+
/** Operator-facing button label. */
|
|
14123
|
+
label: string(),
|
|
14124
|
+
stage: LoginStageEnum,
|
|
14125
|
+
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
14126
|
+
rpId: string(),
|
|
14127
|
+
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
14128
|
+
origin: string().nullable()
|
|
14129
|
+
})
|
|
14130
|
+
]);
|
|
13889
14131
|
method(_void(), array(LoginMethodContributionSchema).readonly());
|
|
13890
14132
|
/**
|
|
13891
14133
|
* Orchestrator-side destination metadata. The orchestrator computes
|
|
@@ -15772,14 +16014,14 @@ var TargetKindCapsSchema = object({
|
|
|
15772
16014
|
* the union is large and not meant for runtime validation here; the exported
|
|
15773
16015
|
* `TargetKind` type re-tightens `configSchema` to `ConfigUISchema`.
|
|
15774
16016
|
*/
|
|
15775
|
-
var ConfigSchemaPassthrough = unknown();
|
|
16017
|
+
var ConfigSchemaPassthrough$1 = unknown();
|
|
15776
16018
|
var TargetKindSchema = object({
|
|
15777
16019
|
kind: string(),
|
|
15778
16020
|
label: string(),
|
|
15779
16021
|
icon: string(),
|
|
15780
16022
|
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
15781
16023
|
addonId: string(),
|
|
15782
|
-
configSchema: ConfigSchemaPassthrough,
|
|
16024
|
+
configSchema: ConfigSchemaPassthrough$1,
|
|
15783
16025
|
supportsDiscovery: boolean(),
|
|
15784
16026
|
caps: TargetKindCapsSchema
|
|
15785
16027
|
});
|
|
@@ -15832,6 +16074,298 @@ method(object({}), array(TargetKindSchema)), method(object({}), array(TargetSche
|
|
|
15832
16074
|
enabled: boolean()
|
|
15833
16075
|
}), _void(), { kind: "mutation" });
|
|
15834
16076
|
/**
|
|
16077
|
+
* Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
|
|
16078
|
+
* surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
|
|
16079
|
+
* caps stay wire-compatible without a circular cap→cap import.
|
|
16080
|
+
*
|
|
16081
|
+
* Errors are a discriminated-union RESULT, never thrown: the shape survives
|
|
16082
|
+
* every transport tier structurally, and failed calls still write usage rows.
|
|
16083
|
+
* Token counts only in v1 — no costUsd (operator decision, 2026-07-15).
|
|
16084
|
+
*/
|
|
16085
|
+
var LlmUsageSchema = object({
|
|
16086
|
+
inputTokens: number(),
|
|
16087
|
+
outputTokens: number()
|
|
16088
|
+
});
|
|
16089
|
+
var LlmErrorCodeSchema = _enum([
|
|
16090
|
+
"timeout",
|
|
16091
|
+
"rate-limited",
|
|
16092
|
+
"auth",
|
|
16093
|
+
"refusal",
|
|
16094
|
+
"bad-request",
|
|
16095
|
+
"unavailable",
|
|
16096
|
+
"no-profile",
|
|
16097
|
+
"budget-exceeded",
|
|
16098
|
+
"adapter-error"
|
|
16099
|
+
]);
|
|
16100
|
+
var LlmGenerateResultSchema = discriminatedUnion("ok", [object({
|
|
16101
|
+
ok: literal(true),
|
|
16102
|
+
text: string(),
|
|
16103
|
+
model: string(),
|
|
16104
|
+
usage: LlmUsageSchema,
|
|
16105
|
+
truncated: boolean(),
|
|
16106
|
+
latencyMs: number()
|
|
16107
|
+
}), object({
|
|
16108
|
+
ok: literal(false),
|
|
16109
|
+
code: LlmErrorCodeSchema,
|
|
16110
|
+
message: string(),
|
|
16111
|
+
retryAfterMs: number().optional()
|
|
16112
|
+
})]);
|
|
16113
|
+
/**
|
|
16114
|
+
* `Uint8Array` is the sanctioned binary convention — superjson + the UDS
|
|
16115
|
+
* MsgPack channel round-trip typed arrays (embedding-encoder.cap.ts:29,
|
|
16116
|
+
* notification-output.cap.ts:27-31 precedents).
|
|
16117
|
+
*/
|
|
16118
|
+
var LlmImageSchema = object({
|
|
16119
|
+
bytes: _instanceof(Uint8Array),
|
|
16120
|
+
mimeType: string()
|
|
16121
|
+
});
|
|
16122
|
+
var LlmGenerateBaseInputSchema = object({
|
|
16123
|
+
/** Collection routing (the notification-output posture). */
|
|
16124
|
+
addonId: string().optional(),
|
|
16125
|
+
/** Explicit profile; else the resolution chain (spec §3). */
|
|
16126
|
+
profileId: string().optional(),
|
|
16127
|
+
/** MANDATORY usage tag: 'ai-summary', 'notifier-rules', 'adhoc-ui', … */
|
|
16128
|
+
consumer: string(),
|
|
16129
|
+
system: string().optional(),
|
|
16130
|
+
/** v1: single-turn. `messages[]` is a v2 additive field. */
|
|
16131
|
+
prompt: string(),
|
|
16132
|
+
/** Structured output — adapter-mapped (response_format / forced tool / responseSchema). */
|
|
16133
|
+
jsonSchema: record(string(), unknown()).optional(),
|
|
16134
|
+
/** Per-call override of the profile default. */
|
|
16135
|
+
maxTokens: number().int().positive().optional(),
|
|
16136
|
+
temperature: number().optional()
|
|
16137
|
+
});
|
|
16138
|
+
/**
|
|
16139
|
+
* `llm-runtime` — node-side managed llama.cpp executor (spec §4). Registered
|
|
16140
|
+
* on EVERY node where `addon-ai` is installed; the hub `llm` provider reaches
|
|
16141
|
+
* a specific node's runtime with `nodePin(profile.runtime.nodeId)` — normal
|
|
16142
|
+
* cap routing, zero bespoke plumbing. `internal: true`: the operator reaches
|
|
16143
|
+
* this only through the `llm` cap's methods.
|
|
16144
|
+
*
|
|
16145
|
+
* One running llama-server child per node in v1 (models are RAM-heavy).
|
|
16146
|
+
* Resource ceiling = llama-server flags + idleStopMinutes ONLY (no RSS
|
|
16147
|
+
* watchdog — operator decision #3).
|
|
16148
|
+
*/
|
|
16149
|
+
var ManagedModelRefSchema = discriminatedUnion("kind", [
|
|
16150
|
+
object({
|
|
16151
|
+
kind: literal("catalog"),
|
|
16152
|
+
catalogId: string()
|
|
16153
|
+
}),
|
|
16154
|
+
object({
|
|
16155
|
+
kind: literal("url"),
|
|
16156
|
+
url: string(),
|
|
16157
|
+
sha256: string().optional()
|
|
16158
|
+
}),
|
|
16159
|
+
object({
|
|
16160
|
+
kind: literal("path"),
|
|
16161
|
+
path: string()
|
|
16162
|
+
})
|
|
16163
|
+
]);
|
|
16164
|
+
var ManagedRuntimeConfigSchema = object({
|
|
16165
|
+
/** WHERE the runtime lives — hub or any agent. */
|
|
16166
|
+
nodeId: string(),
|
|
16167
|
+
/** Closed for v1; 'ollama' is a v2 candidate. */
|
|
16168
|
+
engine: _enum(["llama-cpp"]),
|
|
16169
|
+
model: ManagedModelRefSchema,
|
|
16170
|
+
contextSize: number().int().default(4096),
|
|
16171
|
+
/** 0 = CPU-only. */
|
|
16172
|
+
gpuLayers: number().int().default(0),
|
|
16173
|
+
/** Default: cpus-2, clamped ≥1 (resolved node-side). */
|
|
16174
|
+
threads: number().int().optional(),
|
|
16175
|
+
/** Concurrent slots. */
|
|
16176
|
+
parallel: number().int().default(1),
|
|
16177
|
+
/** Else lazy: first generate boots it. */
|
|
16178
|
+
autoStart: boolean().default(false),
|
|
16179
|
+
/** 0 = never; frees RAM after quiet periods. */
|
|
16180
|
+
idleStopMinutes: number().int().default(30)
|
|
16181
|
+
});
|
|
16182
|
+
var LlmRuntimeStatusSchema = object({
|
|
16183
|
+
/** Status is ALWAYS node-qualified. */
|
|
16184
|
+
nodeId: string(),
|
|
16185
|
+
state: _enum([
|
|
16186
|
+
"stopped",
|
|
16187
|
+
"downloading",
|
|
16188
|
+
"starting",
|
|
16189
|
+
"ready",
|
|
16190
|
+
"crashed",
|
|
16191
|
+
"failed"
|
|
16192
|
+
]),
|
|
16193
|
+
pid: number().optional(),
|
|
16194
|
+
port: number().optional(),
|
|
16195
|
+
modelPath: string().optional(),
|
|
16196
|
+
modelId: string().optional(),
|
|
16197
|
+
downloadProgress: number().min(0).max(1).optional(),
|
|
16198
|
+
lastError: string().optional(),
|
|
16199
|
+
crashesInWindow: number(),
|
|
16200
|
+
/** Child RSS (sampled best-effort). */
|
|
16201
|
+
memoryBytes: number().optional(),
|
|
16202
|
+
vramBytes: number().optional()
|
|
16203
|
+
});
|
|
16204
|
+
var LlmNodeModelSchema = object({
|
|
16205
|
+
file: string(),
|
|
16206
|
+
sizeBytes: number(),
|
|
16207
|
+
catalogId: string().optional(),
|
|
16208
|
+
installedAt: number().optional()
|
|
16209
|
+
});
|
|
16210
|
+
var LlmRuntimeDiskUsageSchema = object({
|
|
16211
|
+
nodeId: string(),
|
|
16212
|
+
modelsBytes: number(),
|
|
16213
|
+
freeBytes: number().optional()
|
|
16214
|
+
});
|
|
16215
|
+
method(LlmGenerateBaseInputSchema.extend({
|
|
16216
|
+
images: array(LlmImageSchema).optional(),
|
|
16217
|
+
runtime: ManagedRuntimeConfigSchema,
|
|
16218
|
+
/** The managed profile's timeout, threaded by the hub provider. */
|
|
16219
|
+
timeoutMs: number().int().positive().optional()
|
|
16220
|
+
}), LlmGenerateResultSchema, { kind: "mutation" }), method(object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
16221
|
+
kind: "mutation",
|
|
16222
|
+
auth: "admin"
|
|
16223
|
+
}), method(object({}), _void(), {
|
|
16224
|
+
kind: "mutation",
|
|
16225
|
+
auth: "admin"
|
|
16226
|
+
}), method(object({}), LlmRuntimeStatusSchema), method(object({ model: ManagedModelRefSchema }), _void(), {
|
|
16227
|
+
kind: "mutation",
|
|
16228
|
+
auth: "admin"
|
|
16229
|
+
}), method(object({ file: string() }), _void(), {
|
|
16230
|
+
kind: "mutation",
|
|
16231
|
+
auth: "admin"
|
|
16232
|
+
}), method(object({}), array(LlmNodeModelSchema)), method(object({}), LlmRuntimeDiskUsageSchema);
|
|
16233
|
+
/**
|
|
16234
|
+
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
16235
|
+
* methods concat-fan across providers; single-row methods route to ONE
|
|
16236
|
+
* provider by the `addonId` in the call input (the notification-output
|
|
16237
|
+
* posture, notification-output.cap.ts:215-250). Provided by `addon-ai`
|
|
16238
|
+
* (hub-placed); the cap stays open for future providers.
|
|
16239
|
+
*
|
|
16240
|
+
* Profiles are ROWS (data), not addons: one row = one usable model endpoint.
|
|
16241
|
+
* `apiKey` is a password field — providers REDACT it on read and merge on
|
|
16242
|
+
* write; a stored key NEVER round-trips to a client.
|
|
16243
|
+
*/
|
|
16244
|
+
var LlmProfileKindSchema = _enum([
|
|
16245
|
+
"openai-compatible",
|
|
16246
|
+
"openai",
|
|
16247
|
+
"anthropic",
|
|
16248
|
+
"google",
|
|
16249
|
+
"managed-local"
|
|
16250
|
+
]);
|
|
16251
|
+
var LlmProfileSchema = object({
|
|
16252
|
+
id: string(),
|
|
16253
|
+
name: string(),
|
|
16254
|
+
kind: LlmProfileKindSchema,
|
|
16255
|
+
/** Stamped by the provider — keeps the fanned catalog routable. */
|
|
16256
|
+
addonId: string(),
|
|
16257
|
+
enabled: boolean(),
|
|
16258
|
+
/** Vendor model id, or the managed runtime's loaded model. */
|
|
16259
|
+
model: string(),
|
|
16260
|
+
/** Required for openai-compatible; override for cloud kinds. */
|
|
16261
|
+
baseUrl: string().optional(),
|
|
16262
|
+
/** ConfigUISchema type:'password' — never round-trips (spec §5). */
|
|
16263
|
+
apiKey: string().optional(),
|
|
16264
|
+
supportsVision: boolean(),
|
|
16265
|
+
temperature: number().min(0).max(2).optional(),
|
|
16266
|
+
maxTokens: number().int().positive().optional(),
|
|
16267
|
+
timeoutMs: number().int().positive().default(6e4),
|
|
16268
|
+
extraHeaders: record(string(), string()).optional(),
|
|
16269
|
+
/** kind === 'managed-local' only (spec §4). */
|
|
16270
|
+
runtime: ManagedRuntimeConfigSchema.optional()
|
|
16271
|
+
});
|
|
16272
|
+
/** ConfigUISchema tree passed through untyped on the wire (the
|
|
16273
|
+
* notification-output `ConfigSchemaPassthrough` precedent at
|
|
16274
|
+
* notification-output.cap.ts:151); the exported TS type re-tightens it. */
|
|
16275
|
+
var ConfigSchemaPassthrough = unknown();
|
|
16276
|
+
var LlmProfileKindDescriptorSchema = object({
|
|
16277
|
+
kind: LlmProfileKindSchema,
|
|
16278
|
+
label: string(),
|
|
16279
|
+
icon: string(),
|
|
16280
|
+
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
16281
|
+
addonId: string(),
|
|
16282
|
+
configSchema: ConfigSchemaPassthrough
|
|
16283
|
+
});
|
|
16284
|
+
var LlmDefaultSelectorSchema = union([object({ consumer: string() }), object({ purpose: _enum(["text", "vision"]) })]);
|
|
16285
|
+
var LlmDefaultSchema = object({
|
|
16286
|
+
selector: LlmDefaultSelectorSchema,
|
|
16287
|
+
profileId: string()
|
|
16288
|
+
});
|
|
16289
|
+
/** Server-side rollup row — getUsage never dumps raw call rows (spec §6). */
|
|
16290
|
+
var LlmUsageRollupSchema = object({
|
|
16291
|
+
day: string(),
|
|
16292
|
+
consumer: string(),
|
|
16293
|
+
profileId: string(),
|
|
16294
|
+
calls: number(),
|
|
16295
|
+
okCalls: number(),
|
|
16296
|
+
errorCalls: number(),
|
|
16297
|
+
inputTokens: number(),
|
|
16298
|
+
outputTokens: number(),
|
|
16299
|
+
avgLatencyMs: number()
|
|
16300
|
+
});
|
|
16301
|
+
/** LLM-facing view over the reused ModelCatalogEntry mechanism (spec §4.2). */
|
|
16302
|
+
var ManagedModelCatalogEntrySchema = object({
|
|
16303
|
+
id: string(),
|
|
16304
|
+
label: string(),
|
|
16305
|
+
family: string(),
|
|
16306
|
+
purpose: _enum(["text", "vision"]),
|
|
16307
|
+
url: string(),
|
|
16308
|
+
sha256: string(),
|
|
16309
|
+
sizeBytes: number(),
|
|
16310
|
+
quantization: string(),
|
|
16311
|
+
/** Load-time guidance shown in the picker. */
|
|
16312
|
+
minRamBytes: number(),
|
|
16313
|
+
contextSizeDefault: number().int(),
|
|
16314
|
+
/** Vision models: companion projector file. */
|
|
16315
|
+
mmprojUrl: string().optional()
|
|
16316
|
+
});
|
|
16317
|
+
var LlmRuntimeNodeSchema = object({
|
|
16318
|
+
nodeId: string(),
|
|
16319
|
+
reachable: boolean(),
|
|
16320
|
+
status: LlmRuntimeStatusSchema.optional(),
|
|
16321
|
+
disk: LlmRuntimeDiskUsageSchema.optional(),
|
|
16322
|
+
error: string().optional()
|
|
16323
|
+
});
|
|
16324
|
+
var GenerateVisionInputSchema = LlmGenerateBaseInputSchema.extend({ images: array(LlmImageSchema).min(1) });
|
|
16325
|
+
var ProfileRefInputSchema = object({
|
|
16326
|
+
addonId: string(),
|
|
16327
|
+
profileId: string()
|
|
16328
|
+
});
|
|
16329
|
+
method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }), method(object({}), array(LlmProfileKindDescriptorSchema)), method(object({}), array(LlmProfileSchema)), method(object({ profile: LlmProfileSchema }), LlmProfileSchema, {
|
|
16330
|
+
kind: "mutation",
|
|
16331
|
+
auth: "admin"
|
|
16332
|
+
}), method(ProfileRefInputSchema, _void(), {
|
|
16333
|
+
kind: "mutation",
|
|
16334
|
+
auth: "admin"
|
|
16335
|
+
}), method(ProfileRefInputSchema, LlmGenerateResultSchema, {
|
|
16336
|
+
kind: "mutation",
|
|
16337
|
+
auth: "admin"
|
|
16338
|
+
}), method(ProfileRefInputSchema, array(string())), method(object({}), array(LlmDefaultSchema)), method(object({
|
|
16339
|
+
selector: LlmDefaultSelectorSchema,
|
|
16340
|
+
profileId: string().nullable()
|
|
16341
|
+
}), _void(), {
|
|
16342
|
+
kind: "mutation",
|
|
16343
|
+
auth: "admin"
|
|
16344
|
+
}), method(object({
|
|
16345
|
+
since: number().optional(),
|
|
16346
|
+
until: number().optional(),
|
|
16347
|
+
consumer: string().optional(),
|
|
16348
|
+
profileId: string().optional()
|
|
16349
|
+
}), array(LlmUsageRollupSchema)), method(object({}), array(ManagedModelCatalogEntrySchema)), method(object({}), array(LlmRuntimeNodeSchema)), method(object({ nodeId: string() }), array(LlmNodeModelSchema)), method(object({
|
|
16350
|
+
nodeId: string(),
|
|
16351
|
+
model: ManagedModelRefSchema
|
|
16352
|
+
}), _void(), {
|
|
16353
|
+
kind: "mutation",
|
|
16354
|
+
auth: "admin"
|
|
16355
|
+
}), method(object({
|
|
16356
|
+
nodeId: string(),
|
|
16357
|
+
file: string()
|
|
16358
|
+
}), _void(), {
|
|
16359
|
+
kind: "mutation",
|
|
16360
|
+
auth: "admin"
|
|
16361
|
+
}), method(ProfileRefInputSchema, LlmRuntimeStatusSchema), method(ProfileRefInputSchema, LlmRuntimeStatusSchema, {
|
|
16362
|
+
kind: "mutation",
|
|
16363
|
+
auth: "admin"
|
|
16364
|
+
}), method(ProfileRefInputSchema, _void(), {
|
|
16365
|
+
kind: "mutation",
|
|
16366
|
+
auth: "admin"
|
|
16367
|
+
});
|
|
16368
|
+
/**
|
|
15835
16369
|
* Zod schemas for persisted record types.
|
|
15836
16370
|
*
|
|
15837
16371
|
* These schemas serve as the single source of truth for types that are
|
|
@@ -16047,6 +16581,10 @@ var TrackSchema = object({
|
|
|
16047
16581
|
snapshots: array(TrackSnapshotSchema).readonly(),
|
|
16048
16582
|
/** Deduplicated zones the track has entered at least once. */
|
|
16049
16583
|
zonesVisited: array(string()).readonly(),
|
|
16584
|
+
/** Deduplicated set of detector classes observed for this track over its
|
|
16585
|
+
* life (a track may be reclassified, e.g. person→vehicle). Absent on
|
|
16586
|
+
* legacy rows written before class accumulation shipped. */
|
|
16587
|
+
classes: array(string()).readonly().optional(),
|
|
16050
16588
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
16051
16589
|
totalDistance: number(),
|
|
16052
16590
|
state: TrackStateSchema,
|
|
@@ -16208,7 +16746,7 @@ var KeyEventSchema = object({
|
|
|
16208
16746
|
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
16209
16747
|
windowMs: number().optional()
|
|
16210
16748
|
});
|
|
16211
|
-
|
|
16749
|
+
object({
|
|
16212
16750
|
trackId: string(),
|
|
16213
16751
|
className: string(),
|
|
16214
16752
|
confidence: number(),
|
|
@@ -16216,6 +16754,23 @@ var TrackedDetectionSchema = object({
|
|
|
16216
16754
|
zones: array(string()).readonly(),
|
|
16217
16755
|
state: TrackStateSchema
|
|
16218
16756
|
});
|
|
16757
|
+
var OverlayDetectionSchema = looseObject({
|
|
16758
|
+
id: string(),
|
|
16759
|
+
kind: _enum(["first-level", "detail"]),
|
|
16760
|
+
macroClass: string(),
|
|
16761
|
+
score: number(),
|
|
16762
|
+
bbox: object({
|
|
16763
|
+
x: number(),
|
|
16764
|
+
y: number(),
|
|
16765
|
+
width: number(),
|
|
16766
|
+
height: number()
|
|
16767
|
+
}),
|
|
16768
|
+
labels: array(looseObject({
|
|
16769
|
+
label: string(),
|
|
16770
|
+
score: number()
|
|
16771
|
+
})).readonly(),
|
|
16772
|
+
parentId: string().optional()
|
|
16773
|
+
});
|
|
16219
16774
|
var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
|
|
16220
16775
|
var SearchObjectEventsInput = object({
|
|
16221
16776
|
text: string(),
|
|
@@ -16226,6 +16781,20 @@ var SearchObjectEventsInput = object({
|
|
|
16226
16781
|
limit: number().default(50),
|
|
16227
16782
|
minScore: number().min(0).max(1).default(.2)
|
|
16228
16783
|
});
|
|
16784
|
+
var TrackCascadeCountsSchema = object({
|
|
16785
|
+
/** Persisted track roots deleted (authoritative). */
|
|
16786
|
+
tracks: number().int(),
|
|
16787
|
+
/** Object events removed with their tracks (best-effort; see note above). */
|
|
16788
|
+
events: number().int(),
|
|
16789
|
+
/** Track/face/plate-owned media removed (best-effort). Never identity media. */
|
|
16790
|
+
media: number().int(),
|
|
16791
|
+
/** Unassigned (non-enrolled) face reads removed (best-effort). */
|
|
16792
|
+
faces: number().int(),
|
|
16793
|
+
/** Unassigned plate reads removed (best-effort; plate leg deferred to plate-intelligence). */
|
|
16794
|
+
plates: number().int(),
|
|
16795
|
+
/** Per-track CLIP search vectors removed (best-effort). */
|
|
16796
|
+
embeddings: number().int()
|
|
16797
|
+
});
|
|
16229
16798
|
DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
|
|
16230
16799
|
deviceId: number(),
|
|
16231
16800
|
trackId: string()
|
|
@@ -16257,6 +16826,24 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16257
16826
|
}), {
|
|
16258
16827
|
kind: "mutation",
|
|
16259
16828
|
auth: "admin"
|
|
16829
|
+
}), method(object({
|
|
16830
|
+
deviceId: number(),
|
|
16831
|
+
cutoffMs: number()
|
|
16832
|
+
}), TrackCascadeCountsSchema, {
|
|
16833
|
+
kind: "mutation",
|
|
16834
|
+
auth: "admin"
|
|
16835
|
+
}), method(object({ deviceId: number() }), TrackCascadeCountsSchema, {
|
|
16836
|
+
kind: "mutation",
|
|
16837
|
+
auth: "admin"
|
|
16838
|
+
}), method(object({
|
|
16839
|
+
deviceId: number(),
|
|
16840
|
+
trackIds: array(string()).min(1)
|
|
16841
|
+
}), object({
|
|
16842
|
+
deleted: number().int(),
|
|
16843
|
+
failed: array(string()).readonly()
|
|
16844
|
+
}), {
|
|
16845
|
+
kind: "mutation",
|
|
16846
|
+
auth: "admin"
|
|
16260
16847
|
}), method(object({
|
|
16261
16848
|
eventId: string(),
|
|
16262
16849
|
kind: MediaFileKindEnum.optional()
|
|
@@ -16265,7 +16852,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
16265
16852
|
timestamp: number(),
|
|
16266
16853
|
frameWidth: number(),
|
|
16267
16854
|
frameHeight: number(),
|
|
16268
|
-
detections: array(
|
|
16855
|
+
detections: array(OverlayDetectionSchema).readonly()
|
|
16269
16856
|
}), object({
|
|
16270
16857
|
deviceId: number(),
|
|
16271
16858
|
trackId: string(),
|
|
@@ -19245,6 +19832,24 @@ DeviceType.Camera, method(object({
|
|
|
19245
19832
|
deviceId: number(),
|
|
19246
19833
|
status: OsdStatusSchema
|
|
19247
19834
|
});
|
|
19835
|
+
var VehicleSchema = object({
|
|
19836
|
+
id: string(),
|
|
19837
|
+
name: string(),
|
|
19838
|
+
sampleCount: number().int().nonnegative(),
|
|
19839
|
+
coverMediaKey: string().optional(),
|
|
19840
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaKey`. */
|
|
19841
|
+
coverBase64: string().optional()
|
|
19842
|
+
});
|
|
19843
|
+
var VehicleSampleInfoSchema = object({
|
|
19844
|
+
id: string(),
|
|
19845
|
+
/** The plate text this sample enrolled (self-labeling — no embedding). */
|
|
19846
|
+
text: string(),
|
|
19847
|
+
/** OCR confidence of the enrolled read (0..1). */
|
|
19848
|
+
score: number(),
|
|
19849
|
+
addedAt: number().int(),
|
|
19850
|
+
deviceId: number().int().optional(),
|
|
19851
|
+
base64: string().optional()
|
|
19852
|
+
});
|
|
19248
19853
|
var PlateInfoSchema = object({
|
|
19249
19854
|
plateId: string(),
|
|
19250
19855
|
deviceId: number().int(),
|
|
@@ -19256,6 +19861,16 @@ var PlateInfoSchema = object({
|
|
|
19256
19861
|
score: number(),
|
|
19257
19862
|
/** True when the text was manually corrected (exempt from retention). */
|
|
19258
19863
|
corrected: boolean(),
|
|
19864
|
+
/** Recognized vehicle id when a matcher lookup named this read (SQL NULL → absent). */
|
|
19865
|
+
recognizedVehicleId: string().optional(),
|
|
19866
|
+
/** Resolved vehicle name for `recognizedVehicleId` (UI convenience). */
|
|
19867
|
+
vehicleName: string().optional(),
|
|
19868
|
+
/** True once the read was assigned to a vehicle (enrolled as a sample). */
|
|
19869
|
+
assigned: boolean(),
|
|
19870
|
+
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
19871
|
+
plateBbox: BoundingBoxSchema.optional(),
|
|
19872
|
+
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
19873
|
+
keyFrameMediaKey: string().optional(),
|
|
19259
19874
|
base64: string().optional()
|
|
19260
19875
|
});
|
|
19261
19876
|
var MediaFileLiteSchema = object({
|
|
@@ -19295,6 +19910,48 @@ method(object({
|
|
|
19295
19910
|
}), method(object({ plateId: string() }), _void(), {
|
|
19296
19911
|
kind: "mutation",
|
|
19297
19912
|
auth: "admin"
|
|
19913
|
+
}), method(_void(), array(VehicleSchema).readonly()), method(object({ name: string().min(1) }), VehicleSchema, {
|
|
19914
|
+
kind: "mutation",
|
|
19915
|
+
auth: "admin"
|
|
19916
|
+
}), method(object({
|
|
19917
|
+
id: string(),
|
|
19918
|
+
name: string().min(1)
|
|
19919
|
+
}), _void(), {
|
|
19920
|
+
kind: "mutation",
|
|
19921
|
+
auth: "admin"
|
|
19922
|
+
}), method(object({ id: string() }), _void(), {
|
|
19923
|
+
kind: "mutation",
|
|
19924
|
+
auth: "admin"
|
|
19925
|
+
}), method(object({ vehicleId: string() }), array(VehicleSampleInfoSchema).readonly()), method(object({
|
|
19926
|
+
vehicleId: string(),
|
|
19927
|
+
sampleId: string()
|
|
19928
|
+
}), _void(), {
|
|
19929
|
+
kind: "mutation",
|
|
19930
|
+
auth: "admin"
|
|
19931
|
+
}), method(object({
|
|
19932
|
+
plateId: string(),
|
|
19933
|
+
vehicleId: string()
|
|
19934
|
+
}), _void(), {
|
|
19935
|
+
kind: "mutation",
|
|
19936
|
+
auth: "admin"
|
|
19937
|
+
}), method(object({ plateId: string() }), _void(), {
|
|
19938
|
+
kind: "mutation",
|
|
19939
|
+
auth: "admin"
|
|
19940
|
+
}), method(object({
|
|
19941
|
+
plateIds: array(string()).min(1),
|
|
19942
|
+
vehicleId: string()
|
|
19943
|
+
}), object({
|
|
19944
|
+
assigned: number().int(),
|
|
19945
|
+
failed: array(string()).readonly()
|
|
19946
|
+
}), {
|
|
19947
|
+
kind: "mutation",
|
|
19948
|
+
auth: "admin"
|
|
19949
|
+
}), method(object({ plateIds: array(string()).min(1) }), object({
|
|
19950
|
+
unassigned: number().int(),
|
|
19951
|
+
failed: array(string()).readonly()
|
|
19952
|
+
}), {
|
|
19953
|
+
kind: "mutation",
|
|
19954
|
+
auth: "admin"
|
|
19298
19955
|
});
|
|
19299
19956
|
var ModelFormatSchema = _enum(MODEL_FORMATS);
|
|
19300
19957
|
var HwAccelBackendInputSchema = _enum([
|
|
@@ -21840,6 +22497,168 @@ Object.freeze({
|
|
|
21840
22497
|
addonId: null,
|
|
21841
22498
|
access: "create"
|
|
21842
22499
|
},
|
|
22500
|
+
"llm.deleteModel": {
|
|
22501
|
+
capName: "llm",
|
|
22502
|
+
capScope: "system",
|
|
22503
|
+
addonId: null,
|
|
22504
|
+
access: "delete"
|
|
22505
|
+
},
|
|
22506
|
+
"llm.deleteProfile": {
|
|
22507
|
+
capName: "llm",
|
|
22508
|
+
capScope: "system",
|
|
22509
|
+
addonId: null,
|
|
22510
|
+
access: "delete"
|
|
22511
|
+
},
|
|
22512
|
+
"llm.generate": {
|
|
22513
|
+
capName: "llm",
|
|
22514
|
+
capScope: "system",
|
|
22515
|
+
addonId: null,
|
|
22516
|
+
access: "create"
|
|
22517
|
+
},
|
|
22518
|
+
"llm.generateVision": {
|
|
22519
|
+
capName: "llm",
|
|
22520
|
+
capScope: "system",
|
|
22521
|
+
addonId: null,
|
|
22522
|
+
access: "create"
|
|
22523
|
+
},
|
|
22524
|
+
"llm.getDefaults": {
|
|
22525
|
+
capName: "llm",
|
|
22526
|
+
capScope: "system",
|
|
22527
|
+
addonId: null,
|
|
22528
|
+
access: "view"
|
|
22529
|
+
},
|
|
22530
|
+
"llm.getRuntimeStatus": {
|
|
22531
|
+
capName: "llm",
|
|
22532
|
+
capScope: "system",
|
|
22533
|
+
addonId: null,
|
|
22534
|
+
access: "view"
|
|
22535
|
+
},
|
|
22536
|
+
"llm.getUsage": {
|
|
22537
|
+
capName: "llm",
|
|
22538
|
+
capScope: "system",
|
|
22539
|
+
addonId: null,
|
|
22540
|
+
access: "view"
|
|
22541
|
+
},
|
|
22542
|
+
"llm.installModel": {
|
|
22543
|
+
capName: "llm",
|
|
22544
|
+
capScope: "system",
|
|
22545
|
+
addonId: null,
|
|
22546
|
+
access: "create"
|
|
22547
|
+
},
|
|
22548
|
+
"llm.listModelCatalog": {
|
|
22549
|
+
capName: "llm",
|
|
22550
|
+
capScope: "system",
|
|
22551
|
+
addonId: null,
|
|
22552
|
+
access: "view"
|
|
22553
|
+
},
|
|
22554
|
+
"llm.listModels": {
|
|
22555
|
+
capName: "llm",
|
|
22556
|
+
capScope: "system",
|
|
22557
|
+
addonId: null,
|
|
22558
|
+
access: "view"
|
|
22559
|
+
},
|
|
22560
|
+
"llm.listNodeModels": {
|
|
22561
|
+
capName: "llm",
|
|
22562
|
+
capScope: "system",
|
|
22563
|
+
addonId: null,
|
|
22564
|
+
access: "view"
|
|
22565
|
+
},
|
|
22566
|
+
"llm.listProfileKinds": {
|
|
22567
|
+
capName: "llm",
|
|
22568
|
+
capScope: "system",
|
|
22569
|
+
addonId: null,
|
|
22570
|
+
access: "view"
|
|
22571
|
+
},
|
|
22572
|
+
"llm.listProfiles": {
|
|
22573
|
+
capName: "llm",
|
|
22574
|
+
capScope: "system",
|
|
22575
|
+
addonId: null,
|
|
22576
|
+
access: "view"
|
|
22577
|
+
},
|
|
22578
|
+
"llm.listRuntimeNodes": {
|
|
22579
|
+
capName: "llm",
|
|
22580
|
+
capScope: "system",
|
|
22581
|
+
addonId: null,
|
|
22582
|
+
access: "view"
|
|
22583
|
+
},
|
|
22584
|
+
"llm.setDefault": {
|
|
22585
|
+
capName: "llm",
|
|
22586
|
+
capScope: "system",
|
|
22587
|
+
addonId: null,
|
|
22588
|
+
access: "create"
|
|
22589
|
+
},
|
|
22590
|
+
"llm.startRuntime": {
|
|
22591
|
+
capName: "llm",
|
|
22592
|
+
capScope: "system",
|
|
22593
|
+
addonId: null,
|
|
22594
|
+
access: "create"
|
|
22595
|
+
},
|
|
22596
|
+
"llm.stopRuntime": {
|
|
22597
|
+
capName: "llm",
|
|
22598
|
+
capScope: "system",
|
|
22599
|
+
addonId: null,
|
|
22600
|
+
access: "create"
|
|
22601
|
+
},
|
|
22602
|
+
"llm.testProfile": {
|
|
22603
|
+
capName: "llm",
|
|
22604
|
+
capScope: "system",
|
|
22605
|
+
addonId: null,
|
|
22606
|
+
access: "create"
|
|
22607
|
+
},
|
|
22608
|
+
"llm.upsertProfile": {
|
|
22609
|
+
capName: "llm",
|
|
22610
|
+
capScope: "system",
|
|
22611
|
+
addonId: null,
|
|
22612
|
+
access: "create"
|
|
22613
|
+
},
|
|
22614
|
+
"llmRuntime.complete": {
|
|
22615
|
+
capName: "llm-runtime",
|
|
22616
|
+
capScope: "system",
|
|
22617
|
+
addonId: null,
|
|
22618
|
+
access: "create"
|
|
22619
|
+
},
|
|
22620
|
+
"llmRuntime.deleteModel": {
|
|
22621
|
+
capName: "llm-runtime",
|
|
22622
|
+
capScope: "system",
|
|
22623
|
+
addonId: null,
|
|
22624
|
+
access: "delete"
|
|
22625
|
+
},
|
|
22626
|
+
"llmRuntime.ensureStarted": {
|
|
22627
|
+
capName: "llm-runtime",
|
|
22628
|
+
capScope: "system",
|
|
22629
|
+
addonId: null,
|
|
22630
|
+
access: "create"
|
|
22631
|
+
},
|
|
22632
|
+
"llmRuntime.getDiskUsage": {
|
|
22633
|
+
capName: "llm-runtime",
|
|
22634
|
+
capScope: "system",
|
|
22635
|
+
addonId: null,
|
|
22636
|
+
access: "view"
|
|
22637
|
+
},
|
|
22638
|
+
"llmRuntime.installModel": {
|
|
22639
|
+
capName: "llm-runtime",
|
|
22640
|
+
capScope: "system",
|
|
22641
|
+
addonId: null,
|
|
22642
|
+
access: "create"
|
|
22643
|
+
},
|
|
22644
|
+
"llmRuntime.listLocalModels": {
|
|
22645
|
+
capName: "llm-runtime",
|
|
22646
|
+
capScope: "system",
|
|
22647
|
+
addonId: null,
|
|
22648
|
+
access: "view"
|
|
22649
|
+
},
|
|
22650
|
+
"llmRuntime.status": {
|
|
22651
|
+
capName: "llm-runtime",
|
|
22652
|
+
capScope: "system",
|
|
22653
|
+
addonId: null,
|
|
22654
|
+
access: "view"
|
|
22655
|
+
},
|
|
22656
|
+
"llmRuntime.stop": {
|
|
22657
|
+
capName: "llm-runtime",
|
|
22658
|
+
capScope: "system",
|
|
22659
|
+
addonId: null,
|
|
22660
|
+
access: "create"
|
|
22661
|
+
},
|
|
21843
22662
|
"localNetwork.getAllowedAddresses": {
|
|
21844
22663
|
capName: "local-network",
|
|
21845
22664
|
capScope: "system",
|
|
@@ -22470,6 +23289,12 @@ Object.freeze({
|
|
|
22470
23289
|
addonId: null,
|
|
22471
23290
|
access: "delete"
|
|
22472
23291
|
},
|
|
23292
|
+
"pipelineAnalytics.deleteTracks": {
|
|
23293
|
+
capName: "pipeline-analytics",
|
|
23294
|
+
capScope: "device",
|
|
23295
|
+
addonId: null,
|
|
23296
|
+
access: "delete"
|
|
23297
|
+
},
|
|
22473
23298
|
"pipelineAnalytics.getActiveTracks": {
|
|
22474
23299
|
capName: "pipeline-analytics",
|
|
22475
23300
|
capScope: "device",
|
|
@@ -22536,12 +23361,24 @@ Object.freeze({
|
|
|
22536
23361
|
addonId: null,
|
|
22537
23362
|
access: "create"
|
|
22538
23363
|
},
|
|
23364
|
+
"pipelineAnalytics.pruneTracksBefore": {
|
|
23365
|
+
capName: "pipeline-analytics",
|
|
23366
|
+
capScope: "device",
|
|
23367
|
+
addonId: null,
|
|
23368
|
+
access: "create"
|
|
23369
|
+
},
|
|
22539
23370
|
"pipelineAnalytics.searchObjectEvents": {
|
|
22540
23371
|
capName: "pipeline-analytics",
|
|
22541
23372
|
capScope: "device",
|
|
22542
23373
|
addonId: null,
|
|
22543
23374
|
access: "view"
|
|
22544
23375
|
},
|
|
23376
|
+
"pipelineAnalytics.wipeAllAnalytics": {
|
|
23377
|
+
capName: "pipeline-analytics",
|
|
23378
|
+
capScope: "device",
|
|
23379
|
+
addonId: null,
|
|
23380
|
+
access: "delete"
|
|
23381
|
+
},
|
|
22545
23382
|
"pipelineExecutor.cacheFrameInPool": {
|
|
22546
23383
|
capName: "pipeline-executor",
|
|
22547
23384
|
capScope: "system",
|
|
@@ -23040,18 +23877,48 @@ Object.freeze({
|
|
|
23040
23877
|
addonId: null,
|
|
23041
23878
|
access: "create"
|
|
23042
23879
|
},
|
|
23880
|
+
"pipelineRunner.runDetailSubtree": {
|
|
23881
|
+
capName: "pipeline-runner",
|
|
23882
|
+
capScope: "system",
|
|
23883
|
+
addonId: null,
|
|
23884
|
+
access: "create"
|
|
23885
|
+
},
|
|
23886
|
+
"plateGallery.assignPlate": {
|
|
23887
|
+
capName: "plate-gallery",
|
|
23888
|
+
capScope: "system",
|
|
23889
|
+
addonId: null,
|
|
23890
|
+
access: "create"
|
|
23891
|
+
},
|
|
23892
|
+
"plateGallery.assignPlates": {
|
|
23893
|
+
capName: "plate-gallery",
|
|
23894
|
+
capScope: "system",
|
|
23895
|
+
addonId: null,
|
|
23896
|
+
access: "create"
|
|
23897
|
+
},
|
|
23043
23898
|
"plateGallery.correctPlateText": {
|
|
23044
23899
|
capName: "plate-gallery",
|
|
23045
23900
|
capScope: "system",
|
|
23046
23901
|
addonId: null,
|
|
23047
23902
|
access: "create"
|
|
23048
23903
|
},
|
|
23904
|
+
"plateGallery.createVehicle": {
|
|
23905
|
+
capName: "plate-gallery",
|
|
23906
|
+
capScope: "system",
|
|
23907
|
+
addonId: null,
|
|
23908
|
+
access: "create"
|
|
23909
|
+
},
|
|
23049
23910
|
"plateGallery.deletePlate": {
|
|
23050
23911
|
capName: "plate-gallery",
|
|
23051
23912
|
capScope: "system",
|
|
23052
23913
|
addonId: null,
|
|
23053
23914
|
access: "delete"
|
|
23054
23915
|
},
|
|
23916
|
+
"plateGallery.deleteVehicle": {
|
|
23917
|
+
capName: "plate-gallery",
|
|
23918
|
+
capScope: "system",
|
|
23919
|
+
addonId: null,
|
|
23920
|
+
access: "delete"
|
|
23921
|
+
},
|
|
23055
23922
|
"plateGallery.getPlateByTrack": {
|
|
23056
23923
|
capName: "plate-gallery",
|
|
23057
23924
|
capScope: "system",
|
|
@@ -23070,6 +23937,30 @@ Object.freeze({
|
|
|
23070
23937
|
addonId: null,
|
|
23071
23938
|
access: "view"
|
|
23072
23939
|
},
|
|
23940
|
+
"plateGallery.listVehicles": {
|
|
23941
|
+
capName: "plate-gallery",
|
|
23942
|
+
capScope: "system",
|
|
23943
|
+
addonId: null,
|
|
23944
|
+
access: "view"
|
|
23945
|
+
},
|
|
23946
|
+
"plateGallery.listVehicleSamples": {
|
|
23947
|
+
capName: "plate-gallery",
|
|
23948
|
+
capScope: "system",
|
|
23949
|
+
addonId: null,
|
|
23950
|
+
access: "view"
|
|
23951
|
+
},
|
|
23952
|
+
"plateGallery.removeVehicleSample": {
|
|
23953
|
+
capName: "plate-gallery",
|
|
23954
|
+
capScope: "system",
|
|
23955
|
+
addonId: null,
|
|
23956
|
+
access: "delete"
|
|
23957
|
+
},
|
|
23958
|
+
"plateGallery.renameVehicle": {
|
|
23959
|
+
capName: "plate-gallery",
|
|
23960
|
+
capScope: "system",
|
|
23961
|
+
addonId: null,
|
|
23962
|
+
access: "create"
|
|
23963
|
+
},
|
|
23073
23964
|
"plateGallery.searchPlates": {
|
|
23074
23965
|
capName: "plate-gallery",
|
|
23075
23966
|
capScope: "system",
|
|
@@ -23082,6 +23973,18 @@ Object.freeze({
|
|
|
23082
23973
|
addonId: null,
|
|
23083
23974
|
access: "view"
|
|
23084
23975
|
},
|
|
23976
|
+
"plateGallery.unassignPlate": {
|
|
23977
|
+
capName: "plate-gallery",
|
|
23978
|
+
capScope: "system",
|
|
23979
|
+
addonId: null,
|
|
23980
|
+
access: "create"
|
|
23981
|
+
},
|
|
23982
|
+
"plateGallery.unassignPlates": {
|
|
23983
|
+
capName: "plate-gallery",
|
|
23984
|
+
capScope: "system",
|
|
23985
|
+
addonId: null,
|
|
23986
|
+
access: "create"
|
|
23987
|
+
},
|
|
23085
23988
|
"platformProbe.getCapabilities": {
|
|
23086
23989
|
capName: "platform-probe",
|
|
23087
23990
|
capScope: "system",
|
|
@@ -23274,6 +24177,48 @@ Object.freeze({
|
|
|
23274
24177
|
addonId: null,
|
|
23275
24178
|
access: "create"
|
|
23276
24179
|
},
|
|
24180
|
+
"sceneMonitor.captureReference": {
|
|
24181
|
+
capName: "scene-monitor",
|
|
24182
|
+
capScope: "device",
|
|
24183
|
+
addonId: null,
|
|
24184
|
+
access: "create"
|
|
24185
|
+
},
|
|
24186
|
+
"sceneMonitor.createScene": {
|
|
24187
|
+
capName: "scene-monitor",
|
|
24188
|
+
capScope: "device",
|
|
24189
|
+
addonId: null,
|
|
24190
|
+
access: "create"
|
|
24191
|
+
},
|
|
24192
|
+
"sceneMonitor.deleteReference": {
|
|
24193
|
+
capName: "scene-monitor",
|
|
24194
|
+
capScope: "device",
|
|
24195
|
+
addonId: null,
|
|
24196
|
+
access: "delete"
|
|
24197
|
+
},
|
|
24198
|
+
"sceneMonitor.deleteScene": {
|
|
24199
|
+
capName: "scene-monitor",
|
|
24200
|
+
capScope: "device",
|
|
24201
|
+
addonId: null,
|
|
24202
|
+
access: "delete"
|
|
24203
|
+
},
|
|
24204
|
+
"sceneMonitor.listScenes": {
|
|
24205
|
+
capName: "scene-monitor",
|
|
24206
|
+
capScope: "device",
|
|
24207
|
+
addonId: null,
|
|
24208
|
+
access: "view"
|
|
24209
|
+
},
|
|
24210
|
+
"sceneMonitor.recheckNow": {
|
|
24211
|
+
capName: "scene-monitor",
|
|
24212
|
+
capScope: "device",
|
|
24213
|
+
addonId: null,
|
|
24214
|
+
access: "create"
|
|
24215
|
+
},
|
|
24216
|
+
"sceneMonitor.updateScene": {
|
|
24217
|
+
capName: "scene-monitor",
|
|
24218
|
+
capScope: "device",
|
|
24219
|
+
addonId: null,
|
|
24220
|
+
access: "create"
|
|
24221
|
+
},
|
|
23277
24222
|
"scriptRunner.run": {
|
|
23278
24223
|
capName: "script-runner",
|
|
23279
24224
|
capScope: "device",
|
|
@@ -24358,6 +25303,7 @@ Object.freeze({
|
|
|
24358
25303
|
Object.freeze({
|
|
24359
25304
|
"broker": "broker",
|
|
24360
25305
|
"device-export": "device-export",
|
|
25306
|
+
"llm": "ai",
|
|
24361
25307
|
"mesh-network": "mesh",
|
|
24362
25308
|
"mqtt-broker": "broker",
|
|
24363
25309
|
"network-access": "ingress",
|