@camstack/types 1.1.43 → 1.1.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +1 -1
- package/dist/addon.mjs +1 -1
- package/dist/capabilities/advanced-notifier.cap.d.ts +4 -0
- package/dist/capabilities/cap-router-predicates.d.ts +60 -0
- package/dist/capabilities/capability-definition.d.ts +1 -1
- package/dist/capabilities/custom-model-registry.cap.d.ts +24 -0
- package/dist/capabilities/index.d.ts +14 -7
- package/dist/capabilities/llm-runtime.cap.d.ts +286 -0
- package/dist/capabilities/llm-shared.d.ts +104 -0
- package/dist/capabilities/llm.cap.d.ts +596 -0
- package/dist/capabilities/login-method.cap.d.ts +53 -7
- package/dist/capabilities/model-convert.cap.d.ts +13 -0
- package/dist/capabilities/model-distributor.cap.d.ts +26 -0
- package/dist/capabilities/pipeline-analytics.cap.d.ts +144 -25
- package/dist/capabilities/pipeline-executor.cap.d.ts +24 -0
- package/dist/capabilities/pipeline-orchestrator.cap.d.ts +16 -0
- package/dist/capabilities/plate-gallery.cap.d.ts +114 -0
- package/dist/capabilities/platform-probe.cap.d.ts +9 -0
- package/dist/capabilities/scene-monitor.cap.d.ts +483 -0
- package/dist/capabilities/zone-analytics.cap.d.ts +78 -1
- package/dist/enums/event-category.d.ts +41 -0
- package/dist/generated/addon-api.d.ts +3135 -933
- package/dist/generated/cap-status-types.d.ts +3 -1
- package/dist/generated/capability-router-map.d.ts +13 -4
- package/dist/generated/device-local-state.d.ts +3 -0
- package/dist/generated/device-proxy.d.ts +3 -0
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/provider-kind-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +3 -1
- package/dist/index.js +1307 -58
- package/dist/index.mjs +1272 -59
- package/dist/inference/runtime-capabilities.d.ts +1 -1
- package/dist/interfaces/addon.d.ts +5 -1
- package/dist/interfaces/advanced-notifier.d.ts +2 -0
- package/dist/interfaces/event-bus.d.ts +107 -2
- package/dist/interfaces/platform.d.ts +17 -0
- package/dist/{sleep-DmvEGsRg.js → sleep-BdhADtqT.js} +55 -0
- package/dist/{sleep-Baang_XW.mjs → sleep-_sv7WKkq.mjs} +55 -0
- package/dist/types/models.d.ts +38 -1
- package/dist/types/pipeline-step.d.ts +20 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sleep = require("./sleep-
|
|
2
|
+
const require_sleep = require("./sleep-BdhADtqT.js");
|
|
3
3
|
const require_err_msg = require("./err-msg-COpsHMw2.js");
|
|
4
4
|
let zod = require("zod");
|
|
5
5
|
//#region src/health/wiring-health.ts
|
|
@@ -69,7 +69,8 @@ var MODEL_FORMATS = [
|
|
|
69
69
|
"coreml",
|
|
70
70
|
"openvino",
|
|
71
71
|
"tflite",
|
|
72
|
-
"pt"
|
|
72
|
+
"pt",
|
|
73
|
+
"gguf"
|
|
73
74
|
];
|
|
74
75
|
/**
|
|
75
76
|
* Multi-file format payload.
|
|
@@ -113,7 +114,8 @@ var ModelFormatsSchema = zod.z.object({
|
|
|
113
114
|
coreml: ModelFormatEntrySchema.optional(),
|
|
114
115
|
openvino: ModelFormatEntrySchema.optional(),
|
|
115
116
|
tflite: ModelFormatEntrySchema.optional(),
|
|
116
|
-
pt: ModelFormatEntrySchema.optional()
|
|
117
|
+
pt: ModelFormatEntrySchema.optional(),
|
|
118
|
+
gguf: ModelFormatEntrySchema.optional()
|
|
117
119
|
});
|
|
118
120
|
/**
|
|
119
121
|
* Variant-selector grouping axes. Shared by the full `ModelCatalogEntry` and by
|
|
@@ -154,6 +156,15 @@ var ModelCatalogEntrySchema = zod.z.object({
|
|
|
154
156
|
width: zod.z.number(),
|
|
155
157
|
height: zod.z.number()
|
|
156
158
|
}),
|
|
159
|
+
/**
|
|
160
|
+
* Channel count of the model input tensor. Omit ⇒ 3 (RGB), the default for
|
|
161
|
+
* every detector / classifier / embedder. Set to 1 for a grayscale CTC text
|
|
162
|
+
* recognizer (EasyOCR VGG plate-OCR: input `[N,1,H,W]`) so the preprocess
|
|
163
|
+
* feeds a single-channel, EasyOCR-normalized tensor instead of the default
|
|
164
|
+
* 3-channel RGB one. Threaded through `PoolModelConfig.inputChannels` to the
|
|
165
|
+
* Python inference pool.
|
|
166
|
+
*/
|
|
167
|
+
inputChannels: zod.z.number().int().positive().optional(),
|
|
157
168
|
labels: zod.z.array(LabelDefinitionSchema).readonly(),
|
|
158
169
|
inputLayout: zod.z.enum(["nchw", "nhwc"]).optional(),
|
|
159
170
|
inputNormalization: zod.z.enum([
|
|
@@ -163,6 +174,16 @@ var ModelCatalogEntrySchema = zod.z.object({
|
|
|
163
174
|
]).optional(),
|
|
164
175
|
preprocessMode: zod.z.enum(["letterbox", "resize"]).optional(),
|
|
165
176
|
/**
|
|
177
|
+
* Per-MODEL postprocessor override. Absent ⇒ the step's own
|
|
178
|
+
* `StepDefinition.postprocessor` applies (the normal case — every model in a
|
|
179
|
+
* step shares its decode). Set it when a step hosts models with DIFFERENT raw
|
|
180
|
+
* output layouts under one slot: e.g. object-detection is `'yolo'` by default,
|
|
181
|
+
* but a Coral SSD MobileNet build emits the `TFLite_Detection_PostProcess`
|
|
182
|
+
* 4-tensor layout and needs `'ssd'`. Threaded into `PoolModelConfig.postprocessor`
|
|
183
|
+
* by the engine factory (`modelEntry.postprocessor ?? def.postprocessor`).
|
|
184
|
+
*/
|
|
185
|
+
postprocessor: zod.z.custom().optional(),
|
|
186
|
+
/**
|
|
166
187
|
* When true, the executor produces a landmark-aligned crop (similarity warp
|
|
167
188
|
* onto the canonical template) before this step runs, instead of a plain
|
|
168
189
|
* axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
|
|
@@ -7515,7 +7536,8 @@ var ModelFormatSchema$1 = zod.z.enum([
|
|
|
7515
7536
|
"coreml",
|
|
7516
7537
|
"openvino",
|
|
7517
7538
|
"tflite",
|
|
7518
|
-
"pt"
|
|
7539
|
+
"pt",
|
|
7540
|
+
"gguf"
|
|
7519
7541
|
]);
|
|
7520
7542
|
var PipelineSlotSchema = zod.z.enum([
|
|
7521
7543
|
"detector",
|
|
@@ -7610,7 +7632,8 @@ var EngineProvisioningSchema = zod.z.object({
|
|
|
7610
7632
|
runtimeId: zod.z.enum([
|
|
7611
7633
|
"onnx",
|
|
7612
7634
|
"openvino",
|
|
7613
|
-
"coreml"
|
|
7635
|
+
"coreml",
|
|
7636
|
+
"edgetpu"
|
|
7614
7637
|
]).nullable(),
|
|
7615
7638
|
device: zod.z.string().nullable(),
|
|
7616
7639
|
state: zod.z.enum([
|
|
@@ -9713,6 +9736,169 @@ var ptzAutotrackCapability = {
|
|
|
9713
9736
|
runtimeState: PtzAutotrackRuntimeStateSchema
|
|
9714
9737
|
};
|
|
9715
9738
|
//#endregion
|
|
9739
|
+
//#region src/capabilities/scene-monitor.cap.ts
|
|
9740
|
+
/**
|
|
9741
|
+
* scene-monitor — device-scoped reference-region state cap. An operator marks
|
|
9742
|
+
* a rect ROI on a camera frame and names one or more states; the engine
|
|
9743
|
+
* (pipeline-analytics, designated post-processing node) reports which state is
|
|
9744
|
+
* active on an ongoing basis. Two operator-selectable check modes share every-
|
|
9745
|
+
* thing except the comparator: `similarity` (CLIP cosine at the same ROI coords
|
|
9746
|
+
* vs condition-tagged references) and `llm` (vision-LLM judgment over the crop).
|
|
9747
|
+
*
|
|
9748
|
+
* D14 device-config archetype (`deviceConfig.ui.kind:'widget'`) — the framework
|
|
9749
|
+
* derives the device-detail contribution; the provider carries NO hand-written
|
|
9750
|
+
* settings-contribution methods. `status.kind:'push'` — the engine pushes on
|
|
9751
|
+
* every hysteresis flip / availability change; consumers never poll.
|
|
9752
|
+
*/
|
|
9753
|
+
/** Extensible condition tag. Seeded 'day' | 'night'; open by design so more can
|
|
9754
|
+
* be added without a wire break (matching falls back to any-condition refs). */
|
|
9755
|
+
var SceneConditionSchema = zod.z.string();
|
|
9756
|
+
/** One captured reference — condition-tagged, model-version-gated. `embedding`
|
|
9757
|
+
* is `number[]` (Float32Array does NOT survive MsgPack/UDS). */
|
|
9758
|
+
var SceneReferenceSchema = zod.z.object({
|
|
9759
|
+
embedding: zod.z.array(zod.z.number()),
|
|
9760
|
+
modelId: zod.z.string(),
|
|
9761
|
+
condition: SceneConditionSchema,
|
|
9762
|
+
capturedAt: zod.z.number(),
|
|
9763
|
+
thumbnailMediaId: zod.z.string().optional()
|
|
9764
|
+
});
|
|
9765
|
+
var SceneMonitorStateSchema = zod.z.object({
|
|
9766
|
+
id: zod.z.string(),
|
|
9767
|
+
label: zod.z.string(),
|
|
9768
|
+
references: zod.z.array(SceneReferenceSchema),
|
|
9769
|
+
textPrompts: zod.z.array(zod.z.string()).optional(),
|
|
9770
|
+
referenceCount: zod.z.number(),
|
|
9771
|
+
currentlyMatched: zod.z.boolean()
|
|
9772
|
+
});
|
|
9773
|
+
/** Per-mode comparator params in a discriminated union so an `llm` scene never
|
|
9774
|
+
* carries similarity knobs and vice-versa. */
|
|
9775
|
+
var SceneCheckSchema = zod.z.discriminatedUnion("mode", [zod.z.object({
|
|
9776
|
+
mode: zod.z.literal("similarity"),
|
|
9777
|
+
threshold: zod.z.number().min(0).max(1),
|
|
9778
|
+
hysteresisCount: zod.z.number().int().positive()
|
|
9779
|
+
}), zod.z.object({
|
|
9780
|
+
mode: zod.z.literal("llm"),
|
|
9781
|
+
prompt: zod.z.string(),
|
|
9782
|
+
profileId: zod.z.string().optional(),
|
|
9783
|
+
hysteresisCount: zod.z.number().int().positive()
|
|
9784
|
+
})]);
|
|
9785
|
+
var SceneMonitorSchema = zod.z.object({
|
|
9786
|
+
id: zod.z.string(),
|
|
9787
|
+
label: zod.z.string(),
|
|
9788
|
+
roi: MaskRectShapeSchema,
|
|
9789
|
+
enabled: zod.z.boolean(),
|
|
9790
|
+
triggerMode: zod.z.enum([
|
|
9791
|
+
"periodic",
|
|
9792
|
+
"on-motion",
|
|
9793
|
+
"both"
|
|
9794
|
+
]),
|
|
9795
|
+
checkIntervalSec: zod.z.number().optional(),
|
|
9796
|
+
check: SceneCheckSchema,
|
|
9797
|
+
states: zod.z.array(SceneMonitorStateSchema),
|
|
9798
|
+
currentStateId: zod.z.string().nullable(),
|
|
9799
|
+
lastCheckedAt: zod.z.number().nullable(),
|
|
9800
|
+
lastConfidence: zod.z.number().nullable(),
|
|
9801
|
+
currentCondition: SceneConditionSchema.nullable(),
|
|
9802
|
+
availability: zod.z.enum(["ok", "unavailable"]),
|
|
9803
|
+
unavailableReason: zod.z.string().nullable()
|
|
9804
|
+
});
|
|
9805
|
+
var SceneMonitorStatusSchema = zod.z.object({
|
|
9806
|
+
monitors: zod.z.array(SceneMonitorSchema),
|
|
9807
|
+
lastFetchedAt: zod.z.number()
|
|
9808
|
+
});
|
|
9809
|
+
var sceneMonitorCapability = {
|
|
9810
|
+
name: "scene-monitor",
|
|
9811
|
+
scope: "device",
|
|
9812
|
+
mode: "singleton",
|
|
9813
|
+
kind: "wrapper",
|
|
9814
|
+
defaultActive: true,
|
|
9815
|
+
deviceTypes: [require_sleep.DeviceType.Camera],
|
|
9816
|
+
deviceConfig: { ui: {
|
|
9817
|
+
kind: "widget",
|
|
9818
|
+
widgetId: "host/scene-monitor-editor",
|
|
9819
|
+
tab: "scenes",
|
|
9820
|
+
label: "Scenes"
|
|
9821
|
+
} },
|
|
9822
|
+
methods: {
|
|
9823
|
+
listScenes: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), SceneMonitorStatusSchema),
|
|
9824
|
+
createScene: require_sleep.method(zod.z.object({
|
|
9825
|
+
deviceId: zod.z.number(),
|
|
9826
|
+
label: zod.z.string(),
|
|
9827
|
+
roi: MaskRectShapeSchema,
|
|
9828
|
+
check: SceneCheckSchema,
|
|
9829
|
+
triggerMode: zod.z.enum([
|
|
9830
|
+
"periodic",
|
|
9831
|
+
"on-motion",
|
|
9832
|
+
"both"
|
|
9833
|
+
]).optional(),
|
|
9834
|
+
checkIntervalSec: zod.z.number().optional()
|
|
9835
|
+
}), SceneMonitorSchema, {
|
|
9836
|
+
kind: "mutation",
|
|
9837
|
+
auth: "admin"
|
|
9838
|
+
}),
|
|
9839
|
+
updateScene: require_sleep.method(zod.z.object({
|
|
9840
|
+
deviceId: zod.z.number(),
|
|
9841
|
+
monitorId: zod.z.string(),
|
|
9842
|
+
patch: zod.z.object({
|
|
9843
|
+
label: zod.z.string().optional(),
|
|
9844
|
+
roi: MaskRectShapeSchema.optional(),
|
|
9845
|
+
enabled: zod.z.boolean().optional(),
|
|
9846
|
+
triggerMode: zod.z.enum([
|
|
9847
|
+
"periodic",
|
|
9848
|
+
"on-motion",
|
|
9849
|
+
"both"
|
|
9850
|
+
]).optional(),
|
|
9851
|
+
checkIntervalSec: zod.z.number().optional(),
|
|
9852
|
+
check: SceneCheckSchema.optional()
|
|
9853
|
+
})
|
|
9854
|
+
}), zod.z.void(), {
|
|
9855
|
+
kind: "mutation",
|
|
9856
|
+
auth: "admin"
|
|
9857
|
+
}),
|
|
9858
|
+
deleteScene: require_sleep.method(zod.z.object({
|
|
9859
|
+
deviceId: zod.z.number(),
|
|
9860
|
+
monitorId: zod.z.string()
|
|
9861
|
+
}), zod.z.void(), {
|
|
9862
|
+
kind: "mutation",
|
|
9863
|
+
auth: "admin"
|
|
9864
|
+
}),
|
|
9865
|
+
captureReference: require_sleep.method(zod.z.object({
|
|
9866
|
+
deviceId: zod.z.number(),
|
|
9867
|
+
monitorId: zod.z.string(),
|
|
9868
|
+
stateId: zod.z.string().optional(),
|
|
9869
|
+
label: zod.z.string().optional(),
|
|
9870
|
+
condition: SceneConditionSchema.optional()
|
|
9871
|
+
}), zod.z.object({
|
|
9872
|
+
stateId: zod.z.string(),
|
|
9873
|
+
referenceCount: zod.z.number()
|
|
9874
|
+
}), {
|
|
9875
|
+
kind: "mutation",
|
|
9876
|
+
auth: "admin"
|
|
9877
|
+
}),
|
|
9878
|
+
deleteReference: require_sleep.method(zod.z.object({
|
|
9879
|
+
deviceId: zod.z.number(),
|
|
9880
|
+
monitorId: zod.z.string(),
|
|
9881
|
+
stateId: zod.z.string(),
|
|
9882
|
+
index: zod.z.number()
|
|
9883
|
+
}), zod.z.void(), {
|
|
9884
|
+
kind: "mutation",
|
|
9885
|
+
auth: "admin"
|
|
9886
|
+
}),
|
|
9887
|
+
recheckNow: require_sleep.method(zod.z.object({
|
|
9888
|
+
deviceId: zod.z.number(),
|
|
9889
|
+
monitorId: zod.z.string()
|
|
9890
|
+
}), zod.z.void(), {
|
|
9891
|
+
kind: "mutation",
|
|
9892
|
+
auth: "admin"
|
|
9893
|
+
})
|
|
9894
|
+
},
|
|
9895
|
+
status: {
|
|
9896
|
+
schema: SceneMonitorStatusSchema,
|
|
9897
|
+
kind: "push"
|
|
9898
|
+
},
|
|
9899
|
+
runtimeState: SceneMonitorStatusSchema
|
|
9900
|
+
};
|
|
9901
|
+
//#endregion
|
|
9716
9902
|
//#region src/capabilities/script-runner.cap.ts
|
|
9717
9903
|
/**
|
|
9718
9904
|
* Script-runner cap. Models HA `script.*` entities on
|
|
@@ -10488,6 +10674,36 @@ var ZoneScopeBreakdownSchema = PerScopeBreakdownSchema.extend({
|
|
|
10488
10674
|
* with the per-track detail panel and live overlay. */
|
|
10489
10675
|
trackIds: zod.z.array(zod.z.string()).readonly()
|
|
10490
10676
|
});
|
|
10677
|
+
/**
|
|
10678
|
+
* A parked ("stationary") object surfaced alongside occupancy — an object that
|
|
10679
|
+
* settled and stopped moving. It is NO LONGER a tracked object (the tracker was
|
|
10680
|
+
* told to forget it so it stops re-spawning tracks/events), but it IS still
|
|
10681
|
+
* physically present, so it keeps counting toward `frame` occupancy and is
|
|
10682
|
+
* listed here so the UI can show it in a dedicated "Stationary" section instead
|
|
10683
|
+
* of flooding the live event feed.
|
|
10684
|
+
*/
|
|
10685
|
+
var StationaryObjectSchema = zod.z.object({
|
|
10686
|
+
id: zod.z.string(),
|
|
10687
|
+
className: zod.z.string(),
|
|
10688
|
+
bbox: zod.z.object({
|
|
10689
|
+
x: zod.z.number(),
|
|
10690
|
+
y: zod.z.number(),
|
|
10691
|
+
w: zod.z.number(),
|
|
10692
|
+
h: zod.z.number()
|
|
10693
|
+
}),
|
|
10694
|
+
frameWidth: zod.z.number().int().nonnegative(),
|
|
10695
|
+
frameHeight: zod.z.number().int().nonnegative(),
|
|
10696
|
+
/** When the source track was first seen. */
|
|
10697
|
+
firstSeenAt: zod.z.number().int(),
|
|
10698
|
+
/** When the object was recognised as parked (promotion time). */
|
|
10699
|
+
becameStationaryAt: zod.z.number().int(),
|
|
10700
|
+
/** Last frame a detection confirmed the object is still there. */
|
|
10701
|
+
lastConfirmedAt: zod.z.number().int(),
|
|
10702
|
+
/** Enrichment label carried from the source track (identity / plate). */
|
|
10703
|
+
label: zod.z.string().optional(),
|
|
10704
|
+
/** Native-resolution key-frame media key for the parked object's best image. */
|
|
10705
|
+
keyFrameMediaKey: zod.z.string().optional()
|
|
10706
|
+
});
|
|
10491
10707
|
var CameraOccupancySnapshotSchema = zod.z.object({
|
|
10492
10708
|
/** Frame timestamp of the inference result that produced this snapshot. */
|
|
10493
10709
|
ts: zod.z.number().int(),
|
|
@@ -10496,10 +10712,15 @@ var CameraOccupancySnapshotSchema = zod.z.object({
|
|
|
10496
10712
|
frameHeight: zod.z.number().int().nonnegative(),
|
|
10497
10713
|
/** Per-zone breakdown — one entry per defined zone (user + onboard). */
|
|
10498
10714
|
zones: zod.z.array(ZoneScopeBreakdownSchema).readonly(),
|
|
10499
|
-
/** Frame-wide aggregate (everywhere, regardless of zone membership).
|
|
10715
|
+
/** Frame-wide aggregate (everywhere, regardless of zone membership).
|
|
10716
|
+
* INCLUDES currently-confirmed stationary objects (they are still present). */
|
|
10500
10717
|
frame: PerScopeBreakdownSchema,
|
|
10501
10718
|
/** Detections that landed outside every zone. Empty when no zones defined. */
|
|
10502
|
-
unzoned: PerScopeBreakdownSchema
|
|
10719
|
+
unzoned: PerScopeBreakdownSchema,
|
|
10720
|
+
/** Parked objects on this camera (additive — absent on legacy snapshots).
|
|
10721
|
+
* Surfaced separately so the UI shows them in a dedicated section rather
|
|
10722
|
+
* than as repeated tracks/events. */
|
|
10723
|
+
stationaryObjects: zod.z.array(StationaryObjectSchema).readonly().optional()
|
|
10503
10724
|
});
|
|
10504
10725
|
/**
|
|
10505
10726
|
* Time-series resolution. The history methods return one bucket per
|
|
@@ -10799,6 +11020,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
10799
11020
|
pressureSensor: pressureSensorCapability,
|
|
10800
11021
|
privacyMask: privacyMaskCapability,
|
|
10801
11022
|
ptzAutotrack: ptzAutotrackCapability,
|
|
11023
|
+
sceneMonitor: sceneMonitorCapability,
|
|
10802
11024
|
scriptRunner: scriptRunnerCapability,
|
|
10803
11025
|
smoke: smokeCapability,
|
|
10804
11026
|
streamParams: streamParamsCapability,
|
|
@@ -12558,6 +12780,27 @@ function createSystemProxy(api) {
|
|
|
12558
12780
|
getAvailableTypes: (input) => dispatch("integrations", "getAvailableTypes", "query", input),
|
|
12559
12781
|
testConnection: (input) => dispatch("integrations", "testConnection", "mutation", input)
|
|
12560
12782
|
},
|
|
12783
|
+
llm: {
|
|
12784
|
+
generate: (input) => dispatch("llm", "generate", "mutation", input),
|
|
12785
|
+
generateVision: (input) => dispatch("llm", "generateVision", "mutation", input),
|
|
12786
|
+
listProfileKinds: (input) => dispatch("llm", "listProfileKinds", "query", input),
|
|
12787
|
+
listProfiles: (input) => dispatch("llm", "listProfiles", "query", input),
|
|
12788
|
+
upsertProfile: (input) => dispatch("llm", "upsertProfile", "mutation", input),
|
|
12789
|
+
deleteProfile: (input) => dispatch("llm", "deleteProfile", "mutation", input),
|
|
12790
|
+
testProfile: (input) => dispatch("llm", "testProfile", "mutation", input),
|
|
12791
|
+
listModels: (input) => dispatch("llm", "listModels", "query", input),
|
|
12792
|
+
getDefaults: (input) => dispatch("llm", "getDefaults", "query", input),
|
|
12793
|
+
setDefault: (input) => dispatch("llm", "setDefault", "mutation", input),
|
|
12794
|
+
getUsage: (input) => dispatch("llm", "getUsage", "query", input),
|
|
12795
|
+
listModelCatalog: (input) => dispatch("llm", "listModelCatalog", "query", input),
|
|
12796
|
+
listRuntimeNodes: (input) => dispatch("llm", "listRuntimeNodes", "query", input),
|
|
12797
|
+
listNodeModels: (input) => dispatch("llm", "listNodeModels", "query", input),
|
|
12798
|
+
installModel: (input) => dispatch("llm", "installModel", "mutation", input),
|
|
12799
|
+
deleteModel: (input) => dispatch("llm", "deleteModel", "mutation", input),
|
|
12800
|
+
getRuntimeStatus: (input) => dispatch("llm", "getRuntimeStatus", "query", input),
|
|
12801
|
+
startRuntime: (input) => dispatch("llm", "startRuntime", "mutation", input),
|
|
12802
|
+
stopRuntime: (input) => dispatch("llm", "stopRuntime", "mutation", input)
|
|
12803
|
+
},
|
|
12561
12804
|
localNetwork: {
|
|
12562
12805
|
list: (input) => dispatch("localNetwork", "list", "query", input),
|
|
12563
12806
|
getPreferred: (input) => dispatch("localNetwork", "getPreferred", "query", input),
|
|
@@ -12707,7 +12950,17 @@ function createSystemProxy(api) {
|
|
|
12707
12950
|
searchPlates: (input) => dispatch("plateGallery", "searchPlates", "query", input),
|
|
12708
12951
|
suggestPlateClusters: (input) => dispatch("plateGallery", "suggestPlateClusters", "query", input),
|
|
12709
12952
|
correctPlateText: (input) => dispatch("plateGallery", "correctPlateText", "mutation", input),
|
|
12710
|
-
deletePlate: (input) => dispatch("plateGallery", "deletePlate", "mutation", input)
|
|
12953
|
+
deletePlate: (input) => dispatch("plateGallery", "deletePlate", "mutation", input),
|
|
12954
|
+
listVehicles: (input) => dispatch("plateGallery", "listVehicles", "query", input),
|
|
12955
|
+
createVehicle: (input) => dispatch("plateGallery", "createVehicle", "mutation", input),
|
|
12956
|
+
renameVehicle: (input) => dispatch("plateGallery", "renameVehicle", "mutation", input),
|
|
12957
|
+
deleteVehicle: (input) => dispatch("plateGallery", "deleteVehicle", "mutation", input),
|
|
12958
|
+
listVehicleSamples: (input) => dispatch("plateGallery", "listVehicleSamples", "query", input),
|
|
12959
|
+
removeVehicleSample: (input) => dispatch("plateGallery", "removeVehicleSample", "mutation", input),
|
|
12960
|
+
assignPlate: (input) => dispatch("plateGallery", "assignPlate", "mutation", input),
|
|
12961
|
+
unassignPlate: (input) => dispatch("plateGallery", "unassignPlate", "mutation", input),
|
|
12962
|
+
assignPlates: (input) => dispatch("plateGallery", "assignPlates", "mutation", input),
|
|
12963
|
+
unassignPlates: (input) => dispatch("plateGallery", "unassignPlates", "mutation", input)
|
|
12711
12964
|
},
|
|
12712
12965
|
recording: { getStorageUsage: (input) => dispatch("recording", "getStorageUsage", "query", input) },
|
|
12713
12966
|
serverManagement: {
|
|
@@ -13909,7 +14162,12 @@ var NotificationRuleConditionsSchema = zod.z.object({
|
|
|
13909
14162
|
clipDescription: zod.z.object({
|
|
13910
14163
|
text: zod.z.string().min(1),
|
|
13911
14164
|
minSimilarity: zod.z.number().min(0).max(1)
|
|
13912
|
-
}).optional()
|
|
14165
|
+
}).optional(),
|
|
14166
|
+
/** Match events whose recognized-entity label (face identity name or plate
|
|
14167
|
+
* vehicle name, propagated onto `event.data.label`) is one of these values.
|
|
14168
|
+
* Empty/absent → unaffected (back-compat). Enables "notify me when <named
|
|
14169
|
+
* vehicle/person> is seen". */
|
|
14170
|
+
labels: zod.z.array(zod.z.string()).readonly().optional()
|
|
13913
14171
|
});
|
|
13914
14172
|
var NotificationRuleTemplateSchema = zod.z.object({
|
|
13915
14173
|
title: zod.z.string(),
|
|
@@ -14339,11 +14597,19 @@ var authProviderCapability = {
|
|
|
14339
14597
|
* login page needs NO change.
|
|
14340
14598
|
*
|
|
14341
14599
|
* - `widget` — a Module-Federation widget the login page mounts (via
|
|
14342
|
-
* `loadRemoteBundle`) for an in-page ceremony.
|
|
14343
|
-
*
|
|
14344
|
-
*
|
|
14345
|
-
*
|
|
14346
|
-
*
|
|
14600
|
+
* `loadRemoteBundle`) for an in-page ceremony. `auth.listLoginMethods`
|
|
14601
|
+
* stamps a public `bundleUrl` from `addonId` + `bundle`. Generic
|
|
14602
|
+
* mechanism kept for future use; no shipped addon uses it on the login
|
|
14603
|
+
* page (the passkey ceremony below runs natively in the shell instead).
|
|
14604
|
+
*
|
|
14605
|
+
* - `passkey` — a declarative WebAuthn ceremony the shell renders
|
|
14606
|
+
* natively (`@simplewebauthn/browser` lives in `addon-admin-ui`, not in
|
|
14607
|
+
* a remotely-loaded bundle). Carries the addon's effective `rpId` /
|
|
14608
|
+
* `origin` (from its `resolveRpID()` / `resolveOrigin()`) so the shell
|
|
14609
|
+
* can gate visibility (IP-literal origin, hostname/rpId mismatch) WITHOUT
|
|
14610
|
+
* fetching any remote code pre-auth. Contribution stays unconditional —
|
|
14611
|
+
* enrollment state is never leaked pre-auth; visibility is a shell
|
|
14612
|
+
* decision.
|
|
14347
14613
|
*
|
|
14348
14614
|
* Every contribution carries a `stage`:
|
|
14349
14615
|
* - `primary` — shown on the first credentials screen (OIDC /
|
|
@@ -14392,8 +14658,30 @@ var WidgetLoginMethodSchema = zod.z.object({
|
|
|
14392
14658
|
remote: WidgetRemoteSchema,
|
|
14393
14659
|
stage: LoginStageEnum
|
|
14394
14660
|
});
|
|
14395
|
-
/**
|
|
14396
|
-
|
|
14661
|
+
/**
|
|
14662
|
+
* A declarative WebAuthn ceremony the shell renders natively (no remote
|
|
14663
|
+
* code). Carries the addon's EFFECTIVE `rpId`/`origin` so the shell can
|
|
14664
|
+
* gate visibility (IP-literal origin, hostname/rpId mismatch) before ever
|
|
14665
|
+
* showing the button — the contribution itself stays unconditional.
|
|
14666
|
+
*/
|
|
14667
|
+
var PasskeyLoginMethodSchema = zod.z.object({
|
|
14668
|
+
kind: zod.z.literal("passkey"),
|
|
14669
|
+
/** Stable id within the login-method set (e.g. `auth-webauthn/passkey-direct-login`). */
|
|
14670
|
+
id: zod.z.string(),
|
|
14671
|
+
/** Operator-facing button label. */
|
|
14672
|
+
label: zod.z.string(),
|
|
14673
|
+
stage: LoginStageEnum,
|
|
14674
|
+
/** Effective WebAuthn RP ID (`resolveRpID()`) — the shell gates visibility on it. */
|
|
14675
|
+
rpId: zod.z.string(),
|
|
14676
|
+
/** Effective expected origin (`resolveOrigin()`), null when unconfigured. */
|
|
14677
|
+
origin: zod.z.string().nullable()
|
|
14678
|
+
});
|
|
14679
|
+
/** One login-method contribution — redirect button, pre-auth widget, or native passkey ceremony. */
|
|
14680
|
+
var LoginMethodContributionSchema = zod.z.discriminatedUnion("kind", [
|
|
14681
|
+
RedirectLoginMethodSchema,
|
|
14682
|
+
WidgetLoginMethodSchema,
|
|
14683
|
+
PasskeyLoginMethodSchema
|
|
14684
|
+
]);
|
|
14397
14685
|
var loginMethodCapability = {
|
|
14398
14686
|
name: "login-method",
|
|
14399
14687
|
scope: "system",
|
|
@@ -14915,18 +15203,6 @@ var cameraPipelineConfigCapability = {
|
|
|
14915
15203
|
};
|
|
14916
15204
|
//#endregion
|
|
14917
15205
|
//#region src/capabilities/cap-router-predicates.ts
|
|
14918
|
-
/**
|
|
14919
|
-
* Shared cap-router predicates — the SINGLE source for the structural Zod-shape
|
|
14920
|
-
* checks + naming used by BOTH the runtime cap-router builder
|
|
14921
|
-
* (`@camstack/system` `cap-router-builder.ts` + the server's
|
|
14922
|
-
* `cap-router-runtime.ts`) AND the codegen scripts (`scripts/generate-cap-*.ts`).
|
|
14923
|
-
*
|
|
14924
|
-
* These used to be independently reimplemented on each side, held in sync only
|
|
14925
|
-
* by "must stay byte-identical" comments — a live drift risk. Consolidating them
|
|
14926
|
-
* here (next to `resolveCapMount` / `expandCapMethods`, the other shared model)
|
|
14927
|
-
* makes the two paths provably agree. Each predicate accepts both Zod 4
|
|
14928
|
-
* (`_def.type`) and legacy Zod 3 (`_def.typeName` / `constructor.name`) shapes.
|
|
14929
|
-
*/
|
|
14930
15206
|
/** `z.void()` — input carries no data. */
|
|
14931
15207
|
function isVoidInput(schema) {
|
|
14932
15208
|
const def = schema._def;
|
|
@@ -14954,6 +15230,26 @@ function isArrayOutputSchema(schema) {
|
|
|
14954
15230
|
return false;
|
|
14955
15231
|
}
|
|
14956
15232
|
/**
|
|
15233
|
+
* True when `method` on cap `def` is a COLLECTION cap's array-returning
|
|
15234
|
+
* (non-subscription) method — the methods whose contract is "union the result
|
|
15235
|
+
* across every registered provider" (`listTargets`, `listTargetKinds`,
|
|
15236
|
+
* `discoverTargets`, `listEndpoints`, …).
|
|
15237
|
+
*
|
|
15238
|
+
* Such a method is aggregated at the hub via `concatCollection` / the runtime
|
|
15239
|
+
* `concatArrayMethod`, both of which SKIP a provider that doesn't implement it
|
|
15240
|
+
* (contributes `[]`). That local skip is invisible across the UDS boundary — a
|
|
15241
|
+
* hub-side per-provider proxy fabricates a callable for every property, so the
|
|
15242
|
+
* call reaches the child's real (possibly partial) provider. This predicate lets
|
|
15243
|
+
* the child-side dispatcher reproduce the same graceful skip: a missing method
|
|
15244
|
+
* here yields `[]`, not a "method not found" error. Singleton caps and non-array
|
|
15245
|
+
* methods return `false` so a genuinely missing method still surfaces as a bug.
|
|
15246
|
+
*/
|
|
15247
|
+
function isCollectionArrayMethod(def, method) {
|
|
15248
|
+
if (def === void 0 || def.mode !== "collection") return false;
|
|
15249
|
+
const m = require_sleep.expandCapMethods(def)[method];
|
|
15250
|
+
return m !== void 0 && m.kind !== "subscription" && isArrayOutputSchema(m.output);
|
|
15251
|
+
}
|
|
15252
|
+
/**
|
|
14957
15253
|
* Apply `.loose()` to an object input schema when available (Zod 4) so the
|
|
14958
15254
|
* router accepts the out-of-band `nodeId`/`addonId` selector keys without
|
|
14959
15255
|
* stripping them. Falls back to the schema unchanged when `.loose()` is absent.
|
|
@@ -14962,6 +15258,64 @@ function looseSchema(schema) {
|
|
|
14962
15258
|
const loose = schema.loose;
|
|
14963
15259
|
return typeof loose === "function" ? loose.call(schema) : schema;
|
|
14964
15260
|
}
|
|
15261
|
+
/**
|
|
15262
|
+
* Derive a COLLECTION-cap routing `addonId` from a NON-array mutation input
|
|
15263
|
+
* when the caller did NOT supply the top-level `{ addonId }` selector.
|
|
15264
|
+
*
|
|
15265
|
+
* Background: a `scope:'system', mode:'collection'` cap fans its ARRAY methods
|
|
15266
|
+
* (`listTargets`, `listTargetKinds`, …) across every provider, but routes each
|
|
15267
|
+
* single-object method (`send` / CRUD) to ONE provider. The runtime router
|
|
15268
|
+
* strips a TOP-LEVEL `addonId` selector and routes it via
|
|
15269
|
+
* `getProviderByAddonId`; absent that selector it falls through to the FIRST
|
|
15270
|
+
* registered provider — which misroutes (or hard-crashes on a partial provider)
|
|
15271
|
+
* when the target is owned by a DIFFERENT provider. See
|
|
15272
|
+
* `notification-output.cap.ts` (`Target.addonId` / `TargetKind.addonId` are
|
|
15273
|
+
* "stamped by each provider so the concat-fanned catalog stays routable").
|
|
15274
|
+
*
|
|
15275
|
+
* That routing `addonId` is ALREADY carried inside the mutation payload the
|
|
15276
|
+
* caller sends — e.g. `upsertTarget({ target: { …, addonId } })`. This helper
|
|
15277
|
+
* recovers it: it scans the input's DIRECT child object properties (bounded to
|
|
15278
|
+
* one level, first match wins) for a string `addonId`. Mirrors the child-side
|
|
15279
|
+
* `extractArgsAddonId` fallback in `child-cap-dispatch.ts`, which reads a
|
|
15280
|
+
* top-level `addonId` off the raw args; this covers the one-level-nested case
|
|
15281
|
+
* the top-level scan misses.
|
|
15282
|
+
*
|
|
15283
|
+
* Only used for non-array collection methods (array fan-out is never rerouted),
|
|
15284
|
+
* so it can never collapse a catalog aggregation onto a single provider. `null`
|
|
15285
|
+
* / non-object inputs yield `undefined` (fall back to the first provider,
|
|
15286
|
+
* preserving single-provider and id-only-payload back-compat).
|
|
15287
|
+
*/
|
|
15288
|
+
function extractNestedAddonId(input) {
|
|
15289
|
+
if (input === null || typeof input !== "object") return void 0;
|
|
15290
|
+
for (const value of Object.values(input)) if (value !== null && typeof value === "object") {
|
|
15291
|
+
const nested = value.addonId;
|
|
15292
|
+
if (typeof nested === "string") return nested;
|
|
15293
|
+
}
|
|
15294
|
+
}
|
|
15295
|
+
/**
|
|
15296
|
+
* True when an OBJECT input schema declares a top-level `addonId` field.
|
|
15297
|
+
*
|
|
15298
|
+
* Such a cap method routes explicitly via the top-level `{ addonId }` selector
|
|
15299
|
+
* (the `llm.generate` / `deleteProfile` posture). The runtime router therefore
|
|
15300
|
+
* MUST NOT also fall back to {@link extractNestedAddonId} for it — that would
|
|
15301
|
+
* let an incidental nested `addonId` (e.g. a key inside a free-form `jsonSchema`
|
|
15302
|
+
* record) hijack routing. Nested recovery is reserved for methods whose input
|
|
15303
|
+
* carries NO top-level selector but embeds the owning `addonId` inside a domain
|
|
15304
|
+
* entity (`upsertTarget({ target: { addonId } })`, `upsertProfile({ profile })`).
|
|
15305
|
+
*
|
|
15306
|
+
* Accepts both Zod 4 (`.shape` / `_def.shape`) and legacy shapes; returns false
|
|
15307
|
+
* for non-object schemas.
|
|
15308
|
+
*/
|
|
15309
|
+
function objectInputDeclaresAddonId(schema) {
|
|
15310
|
+
if (schema === null || typeof schema !== "object" && typeof schema !== "function") return false;
|
|
15311
|
+
const direct = schema.shape;
|
|
15312
|
+
const shape = direct !== void 0 && direct !== null ? direct : resolveDefShape(schema._def?.shape);
|
|
15313
|
+
return shape !== void 0 && shape !== null && typeof shape === "object" && Object.prototype.hasOwnProperty.call(shape, "addonId");
|
|
15314
|
+
}
|
|
15315
|
+
/** `_def.shape` may be a thunk (Zod defers object-shape evaluation) or a plain record. */
|
|
15316
|
+
function resolveDefShape(defShape) {
|
|
15317
|
+
return typeof defShape === "function" ? defShape() : defShape;
|
|
15318
|
+
}
|
|
14965
15319
|
/** Auth level → base-procedure key. `superAdmin` collapses to `admin`. */
|
|
14966
15320
|
function procedureAuthKey(auth) {
|
|
14967
15321
|
if (auth === "public") return "public";
|
|
@@ -17212,14 +17566,14 @@ var TargetKindCapsSchema = zod.z.object({
|
|
|
17212
17566
|
* the union is large and not meant for runtime validation here; the exported
|
|
17213
17567
|
* `TargetKind` type re-tightens `configSchema` to `ConfigUISchema`.
|
|
17214
17568
|
*/
|
|
17215
|
-
var ConfigSchemaPassthrough = zod.z.unknown();
|
|
17569
|
+
var ConfigSchemaPassthrough$1 = zod.z.unknown();
|
|
17216
17570
|
var TargetKindSchema = zod.z.object({
|
|
17217
17571
|
kind: zod.z.string(),
|
|
17218
17572
|
label: zod.z.string(),
|
|
17219
17573
|
icon: zod.z.string(),
|
|
17220
17574
|
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
17221
17575
|
addonId: zod.z.string(),
|
|
17222
|
-
configSchema: ConfigSchemaPassthrough,
|
|
17576
|
+
configSchema: ConfigSchemaPassthrough$1,
|
|
17223
17577
|
supportsDiscovery: zod.z.boolean(),
|
|
17224
17578
|
caps: TargetKindCapsSchema
|
|
17225
17579
|
});
|
|
@@ -17286,6 +17640,352 @@ var notificationOutputCapability = {
|
|
|
17286
17640
|
}
|
|
17287
17641
|
};
|
|
17288
17642
|
//#endregion
|
|
17643
|
+
//#region src/capabilities/llm-shared.ts
|
|
17644
|
+
/**
|
|
17645
|
+
* Shared LLM generate contracts — imported by BOTH `llm.cap.ts` (consumer
|
|
17646
|
+
* surface) and `llm-runtime.cap.ts` (node-side managed executor) so the two
|
|
17647
|
+
* caps stay wire-compatible without a circular cap→cap import.
|
|
17648
|
+
*
|
|
17649
|
+
* Errors are a discriminated-union RESULT, never thrown: the shape survives
|
|
17650
|
+
* every transport tier structurally, and failed calls still write usage rows.
|
|
17651
|
+
* Token counts only in v1 — no costUsd (operator decision, 2026-07-15).
|
|
17652
|
+
*/
|
|
17653
|
+
var LlmUsageSchema = zod.z.object({
|
|
17654
|
+
inputTokens: zod.z.number(),
|
|
17655
|
+
outputTokens: zod.z.number()
|
|
17656
|
+
});
|
|
17657
|
+
var LlmErrorCodeSchema = zod.z.enum([
|
|
17658
|
+
"timeout",
|
|
17659
|
+
"rate-limited",
|
|
17660
|
+
"auth",
|
|
17661
|
+
"refusal",
|
|
17662
|
+
"bad-request",
|
|
17663
|
+
"unavailable",
|
|
17664
|
+
"no-profile",
|
|
17665
|
+
"budget-exceeded",
|
|
17666
|
+
"adapter-error"
|
|
17667
|
+
]);
|
|
17668
|
+
var LlmGenerateOkSchema = zod.z.object({
|
|
17669
|
+
ok: zod.z.literal(true),
|
|
17670
|
+
text: zod.z.string(),
|
|
17671
|
+
model: zod.z.string(),
|
|
17672
|
+
usage: LlmUsageSchema,
|
|
17673
|
+
truncated: zod.z.boolean(),
|
|
17674
|
+
latencyMs: zod.z.number()
|
|
17675
|
+
});
|
|
17676
|
+
var LlmGenerateErrSchema = zod.z.object({
|
|
17677
|
+
ok: zod.z.literal(false),
|
|
17678
|
+
code: LlmErrorCodeSchema,
|
|
17679
|
+
message: zod.z.string(),
|
|
17680
|
+
retryAfterMs: zod.z.number().optional()
|
|
17681
|
+
});
|
|
17682
|
+
var LlmGenerateResultSchema = zod.z.discriminatedUnion("ok", [LlmGenerateOkSchema, LlmGenerateErrSchema]);
|
|
17683
|
+
/**
|
|
17684
|
+
* `Uint8Array` is the sanctioned binary convention — superjson + the UDS
|
|
17685
|
+
* MsgPack channel round-trip typed arrays (embedding-encoder.cap.ts:29,
|
|
17686
|
+
* notification-output.cap.ts:27-31 precedents).
|
|
17687
|
+
*/
|
|
17688
|
+
var LlmImageSchema = zod.z.object({
|
|
17689
|
+
bytes: zod.z.instanceof(Uint8Array),
|
|
17690
|
+
mimeType: zod.z.string()
|
|
17691
|
+
});
|
|
17692
|
+
var LlmGenerateBaseInputSchema = zod.z.object({
|
|
17693
|
+
/** Collection routing (the notification-output posture). */
|
|
17694
|
+
addonId: zod.z.string().optional(),
|
|
17695
|
+
/** Explicit profile; else the resolution chain (spec §3). */
|
|
17696
|
+
profileId: zod.z.string().optional(),
|
|
17697
|
+
/** MANDATORY usage tag: 'ai-summary', 'notifier-rules', 'adhoc-ui', … */
|
|
17698
|
+
consumer: zod.z.string(),
|
|
17699
|
+
system: zod.z.string().optional(),
|
|
17700
|
+
/** v1: single-turn. `messages[]` is a v2 additive field. */
|
|
17701
|
+
prompt: zod.z.string(),
|
|
17702
|
+
/** Structured output — adapter-mapped (response_format / forced tool / responseSchema). */
|
|
17703
|
+
jsonSchema: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
|
|
17704
|
+
/** Per-call override of the profile default. */
|
|
17705
|
+
maxTokens: zod.z.number().int().positive().optional(),
|
|
17706
|
+
temperature: zod.z.number().optional()
|
|
17707
|
+
});
|
|
17708
|
+
//#endregion
|
|
17709
|
+
//#region src/capabilities/llm-runtime.cap.ts
|
|
17710
|
+
/**
|
|
17711
|
+
* `llm-runtime` — node-side managed llama.cpp executor (spec §4). Registered
|
|
17712
|
+
* on EVERY node where `addon-ai` is installed; the hub `llm` provider reaches
|
|
17713
|
+
* a specific node's runtime with `nodePin(profile.runtime.nodeId)` — normal
|
|
17714
|
+
* cap routing, zero bespoke plumbing. `internal: true`: the operator reaches
|
|
17715
|
+
* this only through the `llm` cap's methods.
|
|
17716
|
+
*
|
|
17717
|
+
* One running llama-server child per node in v1 (models are RAM-heavy).
|
|
17718
|
+
* Resource ceiling = llama-server flags + idleStopMinutes ONLY (no RSS
|
|
17719
|
+
* watchdog — operator decision #3).
|
|
17720
|
+
*/
|
|
17721
|
+
var ManagedModelRefSchema = zod.z.discriminatedUnion("kind", [
|
|
17722
|
+
zod.z.object({
|
|
17723
|
+
kind: zod.z.literal("catalog"),
|
|
17724
|
+
catalogId: zod.z.string()
|
|
17725
|
+
}),
|
|
17726
|
+
zod.z.object({
|
|
17727
|
+
kind: zod.z.literal("url"),
|
|
17728
|
+
url: zod.z.string(),
|
|
17729
|
+
sha256: zod.z.string().optional()
|
|
17730
|
+
}),
|
|
17731
|
+
zod.z.object({
|
|
17732
|
+
kind: zod.z.literal("path"),
|
|
17733
|
+
path: zod.z.string()
|
|
17734
|
+
})
|
|
17735
|
+
]);
|
|
17736
|
+
var ManagedRuntimeConfigSchema = zod.z.object({
|
|
17737
|
+
/** WHERE the runtime lives — hub or any agent. */
|
|
17738
|
+
nodeId: zod.z.string(),
|
|
17739
|
+
/** Closed for v1; 'ollama' is a v2 candidate. */
|
|
17740
|
+
engine: zod.z.enum(["llama-cpp"]),
|
|
17741
|
+
model: ManagedModelRefSchema,
|
|
17742
|
+
contextSize: zod.z.number().int().default(4096),
|
|
17743
|
+
/** 0 = CPU-only. */
|
|
17744
|
+
gpuLayers: zod.z.number().int().default(0),
|
|
17745
|
+
/** Default: cpus-2, clamped ≥1 (resolved node-side). */
|
|
17746
|
+
threads: zod.z.number().int().optional(),
|
|
17747
|
+
/** Concurrent slots. */
|
|
17748
|
+
parallel: zod.z.number().int().default(1),
|
|
17749
|
+
/** Else lazy: first generate boots it. */
|
|
17750
|
+
autoStart: zod.z.boolean().default(false),
|
|
17751
|
+
/** 0 = never; frees RAM after quiet periods. */
|
|
17752
|
+
idleStopMinutes: zod.z.number().int().default(30)
|
|
17753
|
+
});
|
|
17754
|
+
var LlmRuntimeStatusSchema = zod.z.object({
|
|
17755
|
+
/** Status is ALWAYS node-qualified. */
|
|
17756
|
+
nodeId: zod.z.string(),
|
|
17757
|
+
state: zod.z.enum([
|
|
17758
|
+
"stopped",
|
|
17759
|
+
"downloading",
|
|
17760
|
+
"starting",
|
|
17761
|
+
"ready",
|
|
17762
|
+
"crashed",
|
|
17763
|
+
"failed"
|
|
17764
|
+
]),
|
|
17765
|
+
pid: zod.z.number().optional(),
|
|
17766
|
+
port: zod.z.number().optional(),
|
|
17767
|
+
modelPath: zod.z.string().optional(),
|
|
17768
|
+
modelId: zod.z.string().optional(),
|
|
17769
|
+
downloadProgress: zod.z.number().min(0).max(1).optional(),
|
|
17770
|
+
lastError: zod.z.string().optional(),
|
|
17771
|
+
crashesInWindow: zod.z.number(),
|
|
17772
|
+
/** Child RSS (sampled best-effort). */
|
|
17773
|
+
memoryBytes: zod.z.number().optional(),
|
|
17774
|
+
vramBytes: zod.z.number().optional()
|
|
17775
|
+
});
|
|
17776
|
+
var LlmNodeModelSchema = zod.z.object({
|
|
17777
|
+
file: zod.z.string(),
|
|
17778
|
+
sizeBytes: zod.z.number(),
|
|
17779
|
+
catalogId: zod.z.string().optional(),
|
|
17780
|
+
installedAt: zod.z.number().optional()
|
|
17781
|
+
});
|
|
17782
|
+
var LlmRuntimeDiskUsageSchema = zod.z.object({
|
|
17783
|
+
nodeId: zod.z.string(),
|
|
17784
|
+
modelsBytes: zod.z.number(),
|
|
17785
|
+
freeBytes: zod.z.number().optional()
|
|
17786
|
+
});
|
|
17787
|
+
var LlmRuntimeCompleteInputSchema = LlmGenerateBaseInputSchema.extend({
|
|
17788
|
+
images: zod.z.array(LlmImageSchema).optional(),
|
|
17789
|
+
runtime: ManagedRuntimeConfigSchema,
|
|
17790
|
+
/** The managed profile's timeout, threaded by the hub provider. */
|
|
17791
|
+
timeoutMs: zod.z.number().int().positive().optional()
|
|
17792
|
+
});
|
|
17793
|
+
var llmRuntimeCapability = {
|
|
17794
|
+
name: "llm-runtime",
|
|
17795
|
+
scope: "system",
|
|
17796
|
+
mode: "singleton",
|
|
17797
|
+
internal: true,
|
|
17798
|
+
methods: {
|
|
17799
|
+
complete: require_sleep.method(LlmRuntimeCompleteInputSchema, LlmGenerateResultSchema, { kind: "mutation" }),
|
|
17800
|
+
ensureStarted: require_sleep.method(zod.z.object({ runtime: ManagedRuntimeConfigSchema }), LlmRuntimeStatusSchema, {
|
|
17801
|
+
kind: "mutation",
|
|
17802
|
+
auth: "admin"
|
|
17803
|
+
}),
|
|
17804
|
+
stop: require_sleep.method(zod.z.object({}), zod.z.void(), {
|
|
17805
|
+
kind: "mutation",
|
|
17806
|
+
auth: "admin"
|
|
17807
|
+
}),
|
|
17808
|
+
status: require_sleep.method(zod.z.object({}), LlmRuntimeStatusSchema),
|
|
17809
|
+
installModel: require_sleep.method(zod.z.object({ model: ManagedModelRefSchema }), zod.z.void(), {
|
|
17810
|
+
kind: "mutation",
|
|
17811
|
+
auth: "admin"
|
|
17812
|
+
}),
|
|
17813
|
+
deleteModel: require_sleep.method(zod.z.object({ file: zod.z.string() }), zod.z.void(), {
|
|
17814
|
+
kind: "mutation",
|
|
17815
|
+
auth: "admin"
|
|
17816
|
+
}),
|
|
17817
|
+
listLocalModels: require_sleep.method(zod.z.object({}), zod.z.array(LlmNodeModelSchema)),
|
|
17818
|
+
getDiskUsage: require_sleep.method(zod.z.object({}), LlmRuntimeDiskUsageSchema)
|
|
17819
|
+
}
|
|
17820
|
+
};
|
|
17821
|
+
//#endregion
|
|
17822
|
+
//#region src/capabilities/llm.cap.ts
|
|
17823
|
+
/**
|
|
17824
|
+
* `llm` — consumer-facing LLM surface (spec §1-§3). Collection-mode: array
|
|
17825
|
+
* methods concat-fan across providers; single-row methods route to ONE
|
|
17826
|
+
* provider by the `addonId` in the call input (the notification-output
|
|
17827
|
+
* posture, notification-output.cap.ts:215-250). Provided by `addon-ai`
|
|
17828
|
+
* (hub-placed); the cap stays open for future providers.
|
|
17829
|
+
*
|
|
17830
|
+
* Profiles are ROWS (data), not addons: one row = one usable model endpoint.
|
|
17831
|
+
* `apiKey` is a password field — providers REDACT it on read and merge on
|
|
17832
|
+
* write; a stored key NEVER round-trips to a client.
|
|
17833
|
+
*/
|
|
17834
|
+
var LlmProfileKindSchema = zod.z.enum([
|
|
17835
|
+
"openai-compatible",
|
|
17836
|
+
"openai",
|
|
17837
|
+
"anthropic",
|
|
17838
|
+
"google",
|
|
17839
|
+
"managed-local"
|
|
17840
|
+
]);
|
|
17841
|
+
var LlmProfileSchema = zod.z.object({
|
|
17842
|
+
id: zod.z.string(),
|
|
17843
|
+
name: zod.z.string(),
|
|
17844
|
+
kind: LlmProfileKindSchema,
|
|
17845
|
+
/** Stamped by the provider — keeps the fanned catalog routable. */
|
|
17846
|
+
addonId: zod.z.string(),
|
|
17847
|
+
enabled: zod.z.boolean(),
|
|
17848
|
+
/** Vendor model id, or the managed runtime's loaded model. */
|
|
17849
|
+
model: zod.z.string(),
|
|
17850
|
+
/** Required for openai-compatible; override for cloud kinds. */
|
|
17851
|
+
baseUrl: zod.z.string().optional(),
|
|
17852
|
+
/** ConfigUISchema type:'password' — never round-trips (spec §5). */
|
|
17853
|
+
apiKey: zod.z.string().optional(),
|
|
17854
|
+
supportsVision: zod.z.boolean(),
|
|
17855
|
+
temperature: zod.z.number().min(0).max(2).optional(),
|
|
17856
|
+
maxTokens: zod.z.number().int().positive().optional(),
|
|
17857
|
+
timeoutMs: zod.z.number().int().positive().default(6e4),
|
|
17858
|
+
extraHeaders: zod.z.record(zod.z.string(), zod.z.string()).optional(),
|
|
17859
|
+
/** kind === 'managed-local' only (spec §4). */
|
|
17860
|
+
runtime: ManagedRuntimeConfigSchema.optional()
|
|
17861
|
+
});
|
|
17862
|
+
/** ConfigUISchema tree passed through untyped on the wire (the
|
|
17863
|
+
* notification-output `ConfigSchemaPassthrough` precedent at
|
|
17864
|
+
* notification-output.cap.ts:151); the exported TS type re-tightens it. */
|
|
17865
|
+
var ConfigSchemaPassthrough = zod.z.unknown();
|
|
17866
|
+
var LlmProfileKindDescriptorSchema = zod.z.object({
|
|
17867
|
+
kind: LlmProfileKindSchema,
|
|
17868
|
+
label: zod.z.string(),
|
|
17869
|
+
icon: zod.z.string(),
|
|
17870
|
+
/** Stamped by each provider so the concat-fanned catalog stays routable. */
|
|
17871
|
+
addonId: zod.z.string(),
|
|
17872
|
+
configSchema: ConfigSchemaPassthrough
|
|
17873
|
+
});
|
|
17874
|
+
var LlmDefaultSelectorSchema = zod.z.union([zod.z.object({ consumer: zod.z.string() }), zod.z.object({ purpose: zod.z.enum(["text", "vision"]) })]);
|
|
17875
|
+
var LlmDefaultSchema = zod.z.object({
|
|
17876
|
+
selector: LlmDefaultSelectorSchema,
|
|
17877
|
+
profileId: zod.z.string()
|
|
17878
|
+
});
|
|
17879
|
+
/** Server-side rollup row — getUsage never dumps raw call rows (spec §6). */
|
|
17880
|
+
var LlmUsageRollupSchema = zod.z.object({
|
|
17881
|
+
day: zod.z.string(),
|
|
17882
|
+
consumer: zod.z.string(),
|
|
17883
|
+
profileId: zod.z.string(),
|
|
17884
|
+
calls: zod.z.number(),
|
|
17885
|
+
okCalls: zod.z.number(),
|
|
17886
|
+
errorCalls: zod.z.number(),
|
|
17887
|
+
inputTokens: zod.z.number(),
|
|
17888
|
+
outputTokens: zod.z.number(),
|
|
17889
|
+
avgLatencyMs: zod.z.number()
|
|
17890
|
+
});
|
|
17891
|
+
/** LLM-facing view over the reused ModelCatalogEntry mechanism (spec §4.2). */
|
|
17892
|
+
var ManagedModelCatalogEntrySchema = zod.z.object({
|
|
17893
|
+
id: zod.z.string(),
|
|
17894
|
+
label: zod.z.string(),
|
|
17895
|
+
family: zod.z.string(),
|
|
17896
|
+
purpose: zod.z.enum(["text", "vision"]),
|
|
17897
|
+
url: zod.z.string(),
|
|
17898
|
+
sha256: zod.z.string(),
|
|
17899
|
+
sizeBytes: zod.z.number(),
|
|
17900
|
+
quantization: zod.z.string(),
|
|
17901
|
+
/** Load-time guidance shown in the picker. */
|
|
17902
|
+
minRamBytes: zod.z.number(),
|
|
17903
|
+
contextSizeDefault: zod.z.number().int(),
|
|
17904
|
+
/** Vision models: companion projector file. */
|
|
17905
|
+
mmprojUrl: zod.z.string().optional()
|
|
17906
|
+
});
|
|
17907
|
+
var LlmRuntimeNodeSchema = zod.z.object({
|
|
17908
|
+
nodeId: zod.z.string(),
|
|
17909
|
+
reachable: zod.z.boolean(),
|
|
17910
|
+
status: LlmRuntimeStatusSchema.optional(),
|
|
17911
|
+
disk: LlmRuntimeDiskUsageSchema.optional(),
|
|
17912
|
+
error: zod.z.string().optional()
|
|
17913
|
+
});
|
|
17914
|
+
var GenerateVisionInputSchema = LlmGenerateBaseInputSchema.extend({ images: zod.z.array(LlmImageSchema).min(1) });
|
|
17915
|
+
var ProfileRefInputSchema = zod.z.object({
|
|
17916
|
+
addonId: zod.z.string(),
|
|
17917
|
+
profileId: zod.z.string()
|
|
17918
|
+
});
|
|
17919
|
+
var llmCapability = {
|
|
17920
|
+
name: "llm",
|
|
17921
|
+
scope: "system",
|
|
17922
|
+
mode: "collection",
|
|
17923
|
+
internal: false,
|
|
17924
|
+
providerKind: "ai",
|
|
17925
|
+
/** `nodeId` inputs below are DATA (the hub provider pins itself), never routing. */
|
|
17926
|
+
nodeIdMode: "data",
|
|
17927
|
+
methods: {
|
|
17928
|
+
generate: require_sleep.method(LlmGenerateBaseInputSchema, LlmGenerateResultSchema, { kind: "mutation" }),
|
|
17929
|
+
generateVision: require_sleep.method(GenerateVisionInputSchema, LlmGenerateResultSchema, { kind: "mutation" }),
|
|
17930
|
+
listProfileKinds: require_sleep.method(zod.z.object({}), zod.z.array(LlmProfileKindDescriptorSchema)),
|
|
17931
|
+
listProfiles: require_sleep.method(zod.z.object({}), zod.z.array(LlmProfileSchema)),
|
|
17932
|
+
upsertProfile: require_sleep.method(zod.z.object({ profile: LlmProfileSchema }), LlmProfileSchema, {
|
|
17933
|
+
kind: "mutation",
|
|
17934
|
+
auth: "admin"
|
|
17935
|
+
}),
|
|
17936
|
+
deleteProfile: require_sleep.method(ProfileRefInputSchema, zod.z.void(), {
|
|
17937
|
+
kind: "mutation",
|
|
17938
|
+
auth: "admin"
|
|
17939
|
+
}),
|
|
17940
|
+
testProfile: require_sleep.method(ProfileRefInputSchema, LlmGenerateResultSchema, {
|
|
17941
|
+
kind: "mutation",
|
|
17942
|
+
auth: "admin"
|
|
17943
|
+
}),
|
|
17944
|
+
/** Live vendor enumeration (GET /models etc.). */
|
|
17945
|
+
listModels: require_sleep.method(ProfileRefInputSchema, zod.z.array(zod.z.string())),
|
|
17946
|
+
getDefaults: require_sleep.method(zod.z.object({}), zod.z.array(LlmDefaultSchema)),
|
|
17947
|
+
setDefault: require_sleep.method(zod.z.object({
|
|
17948
|
+
selector: LlmDefaultSelectorSchema,
|
|
17949
|
+
profileId: zod.z.string().nullable()
|
|
17950
|
+
}), zod.z.void(), {
|
|
17951
|
+
kind: "mutation",
|
|
17952
|
+
auth: "admin"
|
|
17953
|
+
}),
|
|
17954
|
+
getUsage: require_sleep.method(zod.z.object({
|
|
17955
|
+
since: zod.z.number().optional(),
|
|
17956
|
+
until: zod.z.number().optional(),
|
|
17957
|
+
consumer: zod.z.string().optional(),
|
|
17958
|
+
profileId: zod.z.string().optional()
|
|
17959
|
+
}), zod.z.array(LlmUsageRollupSchema)),
|
|
17960
|
+
listModelCatalog: require_sleep.method(zod.z.object({}), zod.z.array(ManagedModelCatalogEntrySchema)),
|
|
17961
|
+
listRuntimeNodes: require_sleep.method(zod.z.object({}), zod.z.array(LlmRuntimeNodeSchema)),
|
|
17962
|
+
listNodeModels: require_sleep.method(zod.z.object({ nodeId: zod.z.string() }), zod.z.array(LlmNodeModelSchema)),
|
|
17963
|
+
installModel: require_sleep.method(zod.z.object({
|
|
17964
|
+
nodeId: zod.z.string(),
|
|
17965
|
+
model: ManagedModelRefSchema
|
|
17966
|
+
}), zod.z.void(), {
|
|
17967
|
+
kind: "mutation",
|
|
17968
|
+
auth: "admin"
|
|
17969
|
+
}),
|
|
17970
|
+
deleteModel: require_sleep.method(zod.z.object({
|
|
17971
|
+
nodeId: zod.z.string(),
|
|
17972
|
+
file: zod.z.string()
|
|
17973
|
+
}), zod.z.void(), {
|
|
17974
|
+
kind: "mutation",
|
|
17975
|
+
auth: "admin"
|
|
17976
|
+
}),
|
|
17977
|
+
getRuntimeStatus: require_sleep.method(ProfileRefInputSchema, LlmRuntimeStatusSchema),
|
|
17978
|
+
startRuntime: require_sleep.method(ProfileRefInputSchema, LlmRuntimeStatusSchema, {
|
|
17979
|
+
kind: "mutation",
|
|
17980
|
+
auth: "admin"
|
|
17981
|
+
}),
|
|
17982
|
+
stopRuntime: require_sleep.method(ProfileRefInputSchema, zod.z.void(), {
|
|
17983
|
+
kind: "mutation",
|
|
17984
|
+
auth: "admin"
|
|
17985
|
+
})
|
|
17986
|
+
}
|
|
17987
|
+
};
|
|
17988
|
+
//#endregion
|
|
17289
17989
|
//#region src/schemas/auth-records.ts
|
|
17290
17990
|
/**
|
|
17291
17991
|
* Zod schemas for persisted record types.
|
|
@@ -17499,6 +18199,22 @@ var TrackSnapshotSchema = zod.z.object({
|
|
|
17499
18199
|
/** MediaStore key; resolve via `getTrackMedia({ trackId })`. */
|
|
17500
18200
|
mediaKey: zod.z.string()
|
|
17501
18201
|
});
|
|
18202
|
+
/**
|
|
18203
|
+
* One audio-classification label heard on the track's camera while the
|
|
18204
|
+
* track was alive, aggregated per label. An "episode" is one persisted
|
|
18205
|
+
* audio event (the confident-classification path: score ≥ the device's
|
|
18206
|
+
* `classificationMinScore`, class-change-or-heartbeat coalesced) — NOT
|
|
18207
|
+
* one 32 ms inference chunk, so counts stay human-scaled.
|
|
18208
|
+
*/
|
|
18209
|
+
var TrackAudioLabelSchema = zod.z.object({
|
|
18210
|
+
label: zod.z.string(),
|
|
18211
|
+
/** Highest classification score observed across the label's episodes. */
|
|
18212
|
+
peakScore: zod.z.number(),
|
|
18213
|
+
/** Number of coalesced audio-event episodes carrying this label. */
|
|
18214
|
+
count: zod.z.number(),
|
|
18215
|
+
firstAt: zod.z.number(),
|
|
18216
|
+
lastAt: zod.z.number()
|
|
18217
|
+
});
|
|
17502
18218
|
var TrackSchema = zod.z.object({
|
|
17503
18219
|
trackId: zod.z.string(),
|
|
17504
18220
|
deviceId: zod.z.number(),
|
|
@@ -17513,6 +18229,10 @@ var TrackSchema = zod.z.object({
|
|
|
17513
18229
|
snapshots: zod.z.array(TrackSnapshotSchema).readonly(),
|
|
17514
18230
|
/** Deduplicated zones the track has entered at least once. */
|
|
17515
18231
|
zonesVisited: zod.z.array(zod.z.string()).readonly(),
|
|
18232
|
+
/** Deduplicated set of detector classes observed for this track over its
|
|
18233
|
+
* life (a track may be reclassified, e.g. person→vehicle). Absent on
|
|
18234
|
+
* legacy rows written before class accumulation shipped. */
|
|
18235
|
+
classes: zod.z.array(zod.z.string()).readonly().optional(),
|
|
17516
18236
|
/** Cumulative normalized distance travelled (0..1 units = full frame width). */
|
|
17517
18237
|
totalDistance: zod.z.number(),
|
|
17518
18238
|
state: TrackStateSchema,
|
|
@@ -17526,7 +18246,11 @@ var TrackSchema = zod.z.object({
|
|
|
17526
18246
|
bestEventId: zod.z.string().optional(),
|
|
17527
18247
|
/** Tag of the importance sub-signal that dominated the score
|
|
17528
18248
|
* (identity|dwell|proximity|class|confidence|travel|zone). */
|
|
17529
|
-
importanceReason: zod.z.string().optional()
|
|
18249
|
+
importanceReason: zod.z.string().optional(),
|
|
18250
|
+
/** Audio-classification labels heard on the camera during the track's
|
|
18251
|
+
* life (score ≥ device `classificationMinScore`), aggregated per label.
|
|
18252
|
+
* Absent on legacy rows / tracks with no confident audio. */
|
|
18253
|
+
audioLabels: zod.z.array(TrackAudioLabelSchema).readonly().optional()
|
|
17530
18254
|
});
|
|
17531
18255
|
var BaseEventFields = {
|
|
17532
18256
|
id: zod.z.string(),
|
|
@@ -17682,6 +18406,23 @@ var TrackedDetectionSchema = zod.z.object({
|
|
|
17682
18406
|
zones: zod.z.array(zod.z.string()).readonly(),
|
|
17683
18407
|
state: TrackStateSchema
|
|
17684
18408
|
});
|
|
18409
|
+
var OverlayDetectionSchema = zod.z.looseObject({
|
|
18410
|
+
id: zod.z.string(),
|
|
18411
|
+
kind: zod.z.enum(["first-level", "detail"]),
|
|
18412
|
+
macroClass: zod.z.string(),
|
|
18413
|
+
score: zod.z.number(),
|
|
18414
|
+
bbox: zod.z.object({
|
|
18415
|
+
x: zod.z.number(),
|
|
18416
|
+
y: zod.z.number(),
|
|
18417
|
+
width: zod.z.number(),
|
|
18418
|
+
height: zod.z.number()
|
|
18419
|
+
}),
|
|
18420
|
+
labels: zod.z.array(zod.z.looseObject({
|
|
18421
|
+
label: zod.z.string(),
|
|
18422
|
+
score: zod.z.number()
|
|
18423
|
+
})).readonly(),
|
|
18424
|
+
parentId: zod.z.string().optional()
|
|
18425
|
+
});
|
|
17685
18426
|
var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: zod.z.number() });
|
|
17686
18427
|
var SearchObjectEventsInput = zod.z.object({
|
|
17687
18428
|
text: zod.z.string(),
|
|
@@ -17692,6 +18433,20 @@ var SearchObjectEventsInput = zod.z.object({
|
|
|
17692
18433
|
limit: zod.z.number().default(50),
|
|
17693
18434
|
minScore: zod.z.number().min(0).max(1).default(.2)
|
|
17694
18435
|
});
|
|
18436
|
+
var TrackCascadeCountsSchema = zod.z.object({
|
|
18437
|
+
/** Persisted track roots deleted (authoritative). */
|
|
18438
|
+
tracks: zod.z.number().int(),
|
|
18439
|
+
/** Object events removed with their tracks (best-effort; see note above). */
|
|
18440
|
+
events: zod.z.number().int(),
|
|
18441
|
+
/** Track/face/plate-owned media removed (best-effort). Never identity media. */
|
|
18442
|
+
media: zod.z.number().int(),
|
|
18443
|
+
/** Unassigned (non-enrolled) face reads removed (best-effort). */
|
|
18444
|
+
faces: zod.z.number().int(),
|
|
18445
|
+
/** Unassigned plate reads removed (best-effort; plate leg deferred to plate-intelligence). */
|
|
18446
|
+
plates: zod.z.number().int(),
|
|
18447
|
+
/** Per-track CLIP search vectors removed (best-effort). */
|
|
18448
|
+
embeddings: zod.z.number().int()
|
|
18449
|
+
});
|
|
17695
18450
|
var pipelineAnalyticsCapability = {
|
|
17696
18451
|
name: "pipeline-analytics",
|
|
17697
18452
|
scope: "device",
|
|
@@ -17745,12 +18500,14 @@ var pipelineAnalyticsCapability = {
|
|
|
17745
18500
|
audio: zod.z.number().int()
|
|
17746
18501
|
})).readonly()),
|
|
17747
18502
|
/**
|
|
17748
|
-
*
|
|
17749
|
-
*
|
|
17750
|
-
*
|
|
17751
|
-
*
|
|
17752
|
-
*
|
|
17753
|
-
*
|
|
18503
|
+
* @deprecated Prefer `pruneTracksBefore` — the track is the ROOT of the
|
|
18504
|
+
* analytics model and retention must cascade from it (design §5.1). This
|
|
18505
|
+
* event-only prune leaves orphaned tracks/faces/plates/embeddings behind.
|
|
18506
|
+
* Retained as a compat shim for the Phase-B3 recorder orchestration caller,
|
|
18507
|
+
* which prunes events to keep history aligned with available footage and
|
|
18508
|
+
* reads the per-kind counts. Delete all events (motion + object + audio)
|
|
18509
|
+
* for the given device older than `cutoffMs` (exclusive) + their thumbnails
|
|
18510
|
+
* in lockstep; returns per-kind deleted counts.
|
|
17754
18511
|
*/
|
|
17755
18512
|
pruneEventsBefore: require_sleep.method(zod.z.object({
|
|
17756
18513
|
deviceId: zod.z.number(),
|
|
@@ -17763,34 +18520,85 @@ var pipelineAnalyticsCapability = {
|
|
|
17763
18520
|
kind: "mutation",
|
|
17764
18521
|
auth: "admin"
|
|
17765
18522
|
}),
|
|
17766
|
-
getEventMedia: require_sleep.method(zod.z.object({
|
|
17767
|
-
eventId: zod.z.string(),
|
|
17768
|
-
kind: MediaFileKindEnum.optional()
|
|
17769
|
-
}), zod.z.array(MediaFileSchema).readonly()),
|
|
17770
|
-
getTrackMedia: require_sleep.method(zod.z.object({ trackId: zod.z.string() }), zod.z.array(MediaFileSchema).readonly()),
|
|
17771
18523
|
/**
|
|
17772
|
-
*
|
|
17773
|
-
*
|
|
17774
|
-
*
|
|
17775
|
-
*
|
|
17776
|
-
*
|
|
17777
|
-
* `
|
|
18524
|
+
* Track-centric retention entry point (design §5.1). Selects every
|
|
18525
|
+
* persisted track for the device whose `lastSeen < cutoffMs` (paged) and
|
|
18526
|
+
* runs the extensible whole-track deletion cascade (design §3): object
|
|
18527
|
+
* events + their media, track/face/plate-owned media, unassigned face
|
|
18528
|
+
* reads, per-track CLIP embeddings, then the track root LAST. ENROLLED
|
|
18529
|
+
* (assigned) faces/plates and `ownerKind:'identity'` media are exempt —
|
|
18530
|
+
* the durable matching gallery always persists. Fires the per-track
|
|
18531
|
+
* live-state cleanup so a pruned track can't linger in dispatch/overlay
|
|
18532
|
+
* state. Returns per-family deleted counts (`tracks` authoritative).
|
|
18533
|
+
*
|
|
18534
|
+
* Replaces `pruneEventsBefore` as the correct time-based retention prune.
|
|
17778
18535
|
*/
|
|
17779
|
-
|
|
17780
|
-
|
|
17781
|
-
|
|
17782
|
-
|
|
17783
|
-
|
|
17784
|
-
|
|
17785
|
-
|
|
17786
|
-
|
|
18536
|
+
pruneTracksBefore: require_sleep.method(zod.z.object({
|
|
18537
|
+
deviceId: zod.z.number(),
|
|
18538
|
+
cutoffMs: zod.z.number()
|
|
18539
|
+
}), TrackCascadeCountsSchema, {
|
|
18540
|
+
kind: "mutation",
|
|
18541
|
+
auth: "admin"
|
|
18542
|
+
}),
|
|
18543
|
+
/**
|
|
18544
|
+
* Operator "clean slate" for a device (design §5.3): prune EVERY track for
|
|
18545
|
+
* the device via the same cascade as `pruneTracksBefore` with `cutoffMs =
|
|
18546
|
+
* now`. One call per device — no client-side track enumeration. Enrolled
|
|
18547
|
+
* gallery + identity media are exempt (design §4). Returns per-family
|
|
18548
|
+
* deleted counts.
|
|
18549
|
+
*/
|
|
18550
|
+
wipeAllAnalytics: require_sleep.method(zod.z.object({ deviceId: zod.z.number() }), TrackCascadeCountsSchema, {
|
|
18551
|
+
kind: "mutation",
|
|
18552
|
+
auth: "admin"
|
|
18553
|
+
}),
|
|
18554
|
+
/**
|
|
18555
|
+
* Delete whole tracks (object events) by id for the given device,
|
|
18556
|
+
* cascading their media in lockstep. Returns the number of tracks
|
|
18557
|
+
* actually deleted plus the ids that could not be removed.
|
|
18558
|
+
*
|
|
18559
|
+
* Operator-driven from the DI Events page (batch delete). Routes through
|
|
18560
|
+
* the same widened track-deletion cascade (design §5.2).
|
|
18561
|
+
*/
|
|
18562
|
+
deleteTracks: require_sleep.method(zod.z.object({
|
|
18563
|
+
deviceId: zod.z.number(),
|
|
18564
|
+
trackIds: zod.z.array(zod.z.string()).min(1)
|
|
18565
|
+
}), zod.z.object({
|
|
18566
|
+
deleted: zod.z.number().int(),
|
|
18567
|
+
failed: zod.z.array(zod.z.string()).readonly()
|
|
18568
|
+
}), {
|
|
18569
|
+
kind: "mutation",
|
|
18570
|
+
auth: "admin"
|
|
18571
|
+
}),
|
|
18572
|
+
getEventMedia: require_sleep.method(zod.z.object({
|
|
18573
|
+
eventId: zod.z.string(),
|
|
18574
|
+
kind: MediaFileKindEnum.optional()
|
|
18575
|
+
}), zod.z.array(MediaFileSchema).readonly()),
|
|
18576
|
+
getTrackMedia: require_sleep.method(zod.z.object({ trackId: zod.z.string() }), zod.z.array(MediaFileSchema).readonly()),
|
|
18577
|
+
/**
|
|
18578
|
+
* Search object events by text query using CLIP cosine similarity.
|
|
18579
|
+
* Encodes `text` via the `embedding-encoder` cap, queries the
|
|
18580
|
+
* `ObjectEmbeddingStore` with optional prefilters, ranks all matching
|
|
18581
|
+
* embeddings by cosine similarity, and joins winners to their
|
|
18582
|
+
* ObjectEvents by trackId. Returns up to `limit` events scored ≥
|
|
18583
|
+
* `minScore`, sorted descending by score.
|
|
18584
|
+
*/
|
|
18585
|
+
searchObjectEvents: require_sleep.method(SearchObjectEventsInput, zod.z.array(ScoredObjectEventSchema).readonly())
|
|
18586
|
+
},
|
|
18587
|
+
events: {
|
|
18588
|
+
/**
|
|
18589
|
+
* Enriched frame emitted after refinement — the live-overlay source of
|
|
18590
|
+
* truth (two-plane re-injection). Carries the frame's detections in the
|
|
18591
|
+
* `ObjectDetection` wire shape: first-level roots (with track info +
|
|
18592
|
+
* enrichment labels) plus synthesized `kind:'detail'` face/plate entries
|
|
18593
|
+
* re-projected from per-track detail state, so stream overlays render
|
|
18594
|
+
* boxes + recognized names without querying full Track state.
|
|
17787
18595
|
*/
|
|
17788
18596
|
onFrameTracked: { data: zod.z.object({
|
|
17789
18597
|
deviceId: zod.z.number(),
|
|
17790
18598
|
timestamp: zod.z.number(),
|
|
17791
18599
|
frameWidth: zod.z.number(),
|
|
17792
18600
|
frameHeight: zod.z.number(),
|
|
17793
|
-
detections: zod.z.array(
|
|
18601
|
+
detections: zod.z.array(OverlayDetectionSchema).readonly()
|
|
17794
18602
|
}) },
|
|
17795
18603
|
/** Track entered active state (first-seen). */
|
|
17796
18604
|
onTrackStarted: { data: zod.z.object({
|
|
@@ -21842,6 +22650,24 @@ setOverlay: require_sleep.method(zod.z.object({
|
|
|
21842
22650
|
};
|
|
21843
22651
|
//#endregion
|
|
21844
22652
|
//#region src/capabilities/plate-gallery.cap.ts
|
|
22653
|
+
var VehicleSchema = zod.z.object({
|
|
22654
|
+
id: zod.z.string(),
|
|
22655
|
+
name: zod.z.string(),
|
|
22656
|
+
sampleCount: zod.z.number().int().nonnegative(),
|
|
22657
|
+
coverMediaKey: zod.z.string().optional(),
|
|
22658
|
+
/** Inline base64 of the cover sample's plate crop, resolved from `coverMediaKey`. */
|
|
22659
|
+
coverBase64: zod.z.string().optional()
|
|
22660
|
+
});
|
|
22661
|
+
var VehicleSampleInfoSchema = zod.z.object({
|
|
22662
|
+
id: zod.z.string(),
|
|
22663
|
+
/** The plate text this sample enrolled (self-labeling — no embedding). */
|
|
22664
|
+
text: zod.z.string(),
|
|
22665
|
+
/** OCR confidence of the enrolled read (0..1). */
|
|
22666
|
+
score: zod.z.number(),
|
|
22667
|
+
addedAt: zod.z.number().int(),
|
|
22668
|
+
deviceId: zod.z.number().int().optional(),
|
|
22669
|
+
base64: zod.z.string().optional()
|
|
22670
|
+
});
|
|
21845
22671
|
var PlateInfoSchema = zod.z.object({
|
|
21846
22672
|
plateId: zod.z.string(),
|
|
21847
22673
|
deviceId: zod.z.number().int(),
|
|
@@ -21853,6 +22679,16 @@ var PlateInfoSchema = zod.z.object({
|
|
|
21853
22679
|
score: zod.z.number(),
|
|
21854
22680
|
/** True when the text was manually corrected (exempt from retention). */
|
|
21855
22681
|
corrected: zod.z.boolean(),
|
|
22682
|
+
/** Recognized vehicle id when a matcher lookup named this read (SQL NULL → absent). */
|
|
22683
|
+
recognizedVehicleId: zod.z.string().optional(),
|
|
22684
|
+
/** Resolved vehicle name for `recognizedVehicleId` (UI convenience). */
|
|
22685
|
+
vehicleName: zod.z.string().optional(),
|
|
22686
|
+
/** True once the read was assigned to a vehicle (enrolled as a sample). */
|
|
22687
|
+
assigned: zod.z.boolean(),
|
|
22688
|
+
/** keyFrame parity: the plate bbox (pixel space) on the native key frame. */
|
|
22689
|
+
plateBbox: BoundingBoxSchema.optional(),
|
|
22690
|
+
/** keyFrame parity: MediaStore key of the track's native-resolution key frame. */
|
|
22691
|
+
keyFrameMediaKey: zod.z.string().optional(),
|
|
21856
22692
|
base64: zod.z.string().optional()
|
|
21857
22693
|
});
|
|
21858
22694
|
var MediaFileLiteSchema = zod.z.object({
|
|
@@ -21914,6 +22750,58 @@ var plateGalleryCapability = {
|
|
|
21914
22750
|
deletePlate: require_sleep.method(zod.z.object({ plateId: zod.z.string() }), zod.z.void(), {
|
|
21915
22751
|
kind: "mutation",
|
|
21916
22752
|
auth: "admin"
|
|
22753
|
+
}),
|
|
22754
|
+
listVehicles: require_sleep.method(zod.z.void(), zod.z.array(VehicleSchema).readonly()),
|
|
22755
|
+
createVehicle: require_sleep.method(zod.z.object({ name: zod.z.string().min(1) }), VehicleSchema, {
|
|
22756
|
+
kind: "mutation",
|
|
22757
|
+
auth: "admin"
|
|
22758
|
+
}),
|
|
22759
|
+
renameVehicle: require_sleep.method(zod.z.object({
|
|
22760
|
+
id: zod.z.string(),
|
|
22761
|
+
name: zod.z.string().min(1)
|
|
22762
|
+
}), zod.z.void(), {
|
|
22763
|
+
kind: "mutation",
|
|
22764
|
+
auth: "admin"
|
|
22765
|
+
}),
|
|
22766
|
+
deleteVehicle: require_sleep.method(zod.z.object({ id: zod.z.string() }), zod.z.void(), {
|
|
22767
|
+
kind: "mutation",
|
|
22768
|
+
auth: "admin"
|
|
22769
|
+
}),
|
|
22770
|
+
listVehicleSamples: require_sleep.method(zod.z.object({ vehicleId: zod.z.string() }), zod.z.array(VehicleSampleInfoSchema).readonly()),
|
|
22771
|
+
removeVehicleSample: require_sleep.method(zod.z.object({
|
|
22772
|
+
vehicleId: zod.z.string(),
|
|
22773
|
+
sampleId: zod.z.string()
|
|
22774
|
+
}), zod.z.void(), {
|
|
22775
|
+
kind: "mutation",
|
|
22776
|
+
auth: "admin"
|
|
22777
|
+
}),
|
|
22778
|
+
assignPlate: require_sleep.method(zod.z.object({
|
|
22779
|
+
plateId: zod.z.string(),
|
|
22780
|
+
vehicleId: zod.z.string()
|
|
22781
|
+
}), zod.z.void(), {
|
|
22782
|
+
kind: "mutation",
|
|
22783
|
+
auth: "admin"
|
|
22784
|
+
}),
|
|
22785
|
+
unassignPlate: require_sleep.method(zod.z.object({ plateId: zod.z.string() }), zod.z.void(), {
|
|
22786
|
+
kind: "mutation",
|
|
22787
|
+
auth: "admin"
|
|
22788
|
+
}),
|
|
22789
|
+
assignPlates: require_sleep.method(zod.z.object({
|
|
22790
|
+
plateIds: zod.z.array(zod.z.string()).min(1),
|
|
22791
|
+
vehicleId: zod.z.string()
|
|
22792
|
+
}), zod.z.object({
|
|
22793
|
+
assigned: zod.z.number().int(),
|
|
22794
|
+
failed: zod.z.array(zod.z.string()).readonly()
|
|
22795
|
+
}), {
|
|
22796
|
+
kind: "mutation",
|
|
22797
|
+
auth: "admin"
|
|
22798
|
+
}),
|
|
22799
|
+
unassignPlates: require_sleep.method(zod.z.object({ plateIds: zod.z.array(zod.z.string()).min(1) }), zod.z.object({
|
|
22800
|
+
unassigned: zod.z.number().int(),
|
|
22801
|
+
failed: zod.z.array(zod.z.string()).readonly()
|
|
22802
|
+
}), {
|
|
22803
|
+
kind: "mutation",
|
|
22804
|
+
auth: "admin"
|
|
21917
22805
|
})
|
|
21918
22806
|
}
|
|
21919
22807
|
};
|
|
@@ -21997,6 +22885,10 @@ var GpuInfoSchema = zod.z.object({
|
|
|
21997
22885
|
memoryMB: zod.z.number().optional()
|
|
21998
22886
|
});
|
|
21999
22887
|
var NpuInfoSchema = zod.z.object({ type: zod.z.enum(["apple-ane", "intel-npu"]) });
|
|
22888
|
+
var CoralInfoSchema = zod.z.object({
|
|
22889
|
+
type: zod.z.literal("coral-edgetpu"),
|
|
22890
|
+
bus: zod.z.string().optional()
|
|
22891
|
+
});
|
|
22000
22892
|
var HardwareInfoSchema = zod.z.object({
|
|
22001
22893
|
platform: HardwarePlatformSchema,
|
|
22002
22894
|
arch: HardwareArchSchema,
|
|
@@ -22005,7 +22897,8 @@ var HardwareInfoSchema = zod.z.object({
|
|
|
22005
22897
|
totalRAM_MB: zod.z.number(),
|
|
22006
22898
|
availableRAM_MB: zod.z.number(),
|
|
22007
22899
|
gpu: GpuInfoSchema.nullable(),
|
|
22008
|
-
npu: NpuInfoSchema.nullable()
|
|
22900
|
+
npu: NpuInfoSchema.nullable(),
|
|
22901
|
+
coral: CoralInfoSchema.nullable().optional()
|
|
22009
22902
|
});
|
|
22010
22903
|
var PlatformScoreSchema = zod.z.object({
|
|
22011
22904
|
runtime: zod.z.enum(["node", "python"]),
|
|
@@ -23112,6 +24005,8 @@ var CAPABILITY_NAMES = {
|
|
|
23112
24005
|
integrations: "integrations",
|
|
23113
24006
|
intercom: "intercom",
|
|
23114
24007
|
lawnMowerControl: "lawn-mower-control",
|
|
24008
|
+
llm: "llm",
|
|
24009
|
+
llmRuntime: "llm-runtime",
|
|
23115
24010
|
localNetwork: "local-network",
|
|
23116
24011
|
lockControl: "lock-control",
|
|
23117
24012
|
logDestination: "log-destination",
|
|
@@ -23150,6 +24045,7 @@ var CAPABILITY_NAMES = {
|
|
|
23150
24045
|
ptzAutotrack: "ptz-autotrack",
|
|
23151
24046
|
reboot: "reboot",
|
|
23152
24047
|
recording: "recording",
|
|
24048
|
+
sceneMonitor: "scene-monitor",
|
|
23153
24049
|
scriptRunner: "script-runner",
|
|
23154
24050
|
serverManagement: "server-management",
|
|
23155
24051
|
settingsStore: "settings-store",
|
|
@@ -23454,6 +24350,14 @@ var CAPABILITY_ROUTER_KEYS = [
|
|
|
23454
24350
|
key: "lawnMowerControl",
|
|
23455
24351
|
name: "lawn-mower-control"
|
|
23456
24352
|
},
|
|
24353
|
+
{
|
|
24354
|
+
key: "llm",
|
|
24355
|
+
name: "llm"
|
|
24356
|
+
},
|
|
24357
|
+
{
|
|
24358
|
+
key: "llmRuntime",
|
|
24359
|
+
name: "llm-runtime"
|
|
24360
|
+
},
|
|
23457
24361
|
{
|
|
23458
24362
|
key: "localNetwork",
|
|
23459
24363
|
name: "local-network"
|
|
@@ -23606,6 +24510,10 @@ var CAPABILITY_ROUTER_KEYS = [
|
|
|
23606
24510
|
key: "recording",
|
|
23607
24511
|
name: "recording"
|
|
23608
24512
|
},
|
|
24513
|
+
{
|
|
24514
|
+
key: "sceneMonitor",
|
|
24515
|
+
name: "scene-monitor"
|
|
24516
|
+
},
|
|
23609
24517
|
{
|
|
23610
24518
|
key: "scriptRunner",
|
|
23611
24519
|
name: "script-runner"
|
|
@@ -23816,6 +24724,8 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
23816
24724
|
integrationsCapability,
|
|
23817
24725
|
intercomCapability,
|
|
23818
24726
|
lawnMowerControlCapability,
|
|
24727
|
+
llmCapability,
|
|
24728
|
+
llmRuntimeCapability,
|
|
23819
24729
|
localNetworkCapability,
|
|
23820
24730
|
lockControlCapability,
|
|
23821
24731
|
logDestinationCapability,
|
|
@@ -23854,6 +24764,7 @@ var ALL_CAPABILITY_DEFINITIONS = [
|
|
|
23854
24764
|
ptzAutotrackCapability,
|
|
23855
24765
|
rebootCapability,
|
|
23856
24766
|
recordingCapability,
|
|
24767
|
+
sceneMonitorCapability,
|
|
23857
24768
|
scriptRunnerCapability,
|
|
23858
24769
|
serverManagementCapability,
|
|
23859
24770
|
settingsStoreCapability,
|
|
@@ -23950,6 +24861,7 @@ var CAP_NAMES_WITH_STATUS = [
|
|
|
23950
24861
|
"ptz",
|
|
23951
24862
|
"ptz-autotrack",
|
|
23952
24863
|
"recording",
|
|
24864
|
+
"scene-monitor",
|
|
23953
24865
|
"script-runner",
|
|
23954
24866
|
"smoke",
|
|
23955
24867
|
"snapshot",
|
|
@@ -25875,6 +26787,168 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
25875
26787
|
addonId: null,
|
|
25876
26788
|
access: "create"
|
|
25877
26789
|
},
|
|
26790
|
+
"llm.deleteModel": {
|
|
26791
|
+
capName: "llm",
|
|
26792
|
+
capScope: "system",
|
|
26793
|
+
addonId: null,
|
|
26794
|
+
access: "delete"
|
|
26795
|
+
},
|
|
26796
|
+
"llm.deleteProfile": {
|
|
26797
|
+
capName: "llm",
|
|
26798
|
+
capScope: "system",
|
|
26799
|
+
addonId: null,
|
|
26800
|
+
access: "delete"
|
|
26801
|
+
},
|
|
26802
|
+
"llm.generate": {
|
|
26803
|
+
capName: "llm",
|
|
26804
|
+
capScope: "system",
|
|
26805
|
+
addonId: null,
|
|
26806
|
+
access: "create"
|
|
26807
|
+
},
|
|
26808
|
+
"llm.generateVision": {
|
|
26809
|
+
capName: "llm",
|
|
26810
|
+
capScope: "system",
|
|
26811
|
+
addonId: null,
|
|
26812
|
+
access: "create"
|
|
26813
|
+
},
|
|
26814
|
+
"llm.getDefaults": {
|
|
26815
|
+
capName: "llm",
|
|
26816
|
+
capScope: "system",
|
|
26817
|
+
addonId: null,
|
|
26818
|
+
access: "view"
|
|
26819
|
+
},
|
|
26820
|
+
"llm.getRuntimeStatus": {
|
|
26821
|
+
capName: "llm",
|
|
26822
|
+
capScope: "system",
|
|
26823
|
+
addonId: null,
|
|
26824
|
+
access: "view"
|
|
26825
|
+
},
|
|
26826
|
+
"llm.getUsage": {
|
|
26827
|
+
capName: "llm",
|
|
26828
|
+
capScope: "system",
|
|
26829
|
+
addonId: null,
|
|
26830
|
+
access: "view"
|
|
26831
|
+
},
|
|
26832
|
+
"llm.installModel": {
|
|
26833
|
+
capName: "llm",
|
|
26834
|
+
capScope: "system",
|
|
26835
|
+
addonId: null,
|
|
26836
|
+
access: "create"
|
|
26837
|
+
},
|
|
26838
|
+
"llm.listModelCatalog": {
|
|
26839
|
+
capName: "llm",
|
|
26840
|
+
capScope: "system",
|
|
26841
|
+
addonId: null,
|
|
26842
|
+
access: "view"
|
|
26843
|
+
},
|
|
26844
|
+
"llm.listModels": {
|
|
26845
|
+
capName: "llm",
|
|
26846
|
+
capScope: "system",
|
|
26847
|
+
addonId: null,
|
|
26848
|
+
access: "view"
|
|
26849
|
+
},
|
|
26850
|
+
"llm.listNodeModels": {
|
|
26851
|
+
capName: "llm",
|
|
26852
|
+
capScope: "system",
|
|
26853
|
+
addonId: null,
|
|
26854
|
+
access: "view"
|
|
26855
|
+
},
|
|
26856
|
+
"llm.listProfileKinds": {
|
|
26857
|
+
capName: "llm",
|
|
26858
|
+
capScope: "system",
|
|
26859
|
+
addonId: null,
|
|
26860
|
+
access: "view"
|
|
26861
|
+
},
|
|
26862
|
+
"llm.listProfiles": {
|
|
26863
|
+
capName: "llm",
|
|
26864
|
+
capScope: "system",
|
|
26865
|
+
addonId: null,
|
|
26866
|
+
access: "view"
|
|
26867
|
+
},
|
|
26868
|
+
"llm.listRuntimeNodes": {
|
|
26869
|
+
capName: "llm",
|
|
26870
|
+
capScope: "system",
|
|
26871
|
+
addonId: null,
|
|
26872
|
+
access: "view"
|
|
26873
|
+
},
|
|
26874
|
+
"llm.setDefault": {
|
|
26875
|
+
capName: "llm",
|
|
26876
|
+
capScope: "system",
|
|
26877
|
+
addonId: null,
|
|
26878
|
+
access: "create"
|
|
26879
|
+
},
|
|
26880
|
+
"llm.startRuntime": {
|
|
26881
|
+
capName: "llm",
|
|
26882
|
+
capScope: "system",
|
|
26883
|
+
addonId: null,
|
|
26884
|
+
access: "create"
|
|
26885
|
+
},
|
|
26886
|
+
"llm.stopRuntime": {
|
|
26887
|
+
capName: "llm",
|
|
26888
|
+
capScope: "system",
|
|
26889
|
+
addonId: null,
|
|
26890
|
+
access: "create"
|
|
26891
|
+
},
|
|
26892
|
+
"llm.testProfile": {
|
|
26893
|
+
capName: "llm",
|
|
26894
|
+
capScope: "system",
|
|
26895
|
+
addonId: null,
|
|
26896
|
+
access: "create"
|
|
26897
|
+
},
|
|
26898
|
+
"llm.upsertProfile": {
|
|
26899
|
+
capName: "llm",
|
|
26900
|
+
capScope: "system",
|
|
26901
|
+
addonId: null,
|
|
26902
|
+
access: "create"
|
|
26903
|
+
},
|
|
26904
|
+
"llmRuntime.complete": {
|
|
26905
|
+
capName: "llm-runtime",
|
|
26906
|
+
capScope: "system",
|
|
26907
|
+
addonId: null,
|
|
26908
|
+
access: "create"
|
|
26909
|
+
},
|
|
26910
|
+
"llmRuntime.deleteModel": {
|
|
26911
|
+
capName: "llm-runtime",
|
|
26912
|
+
capScope: "system",
|
|
26913
|
+
addonId: null,
|
|
26914
|
+
access: "delete"
|
|
26915
|
+
},
|
|
26916
|
+
"llmRuntime.ensureStarted": {
|
|
26917
|
+
capName: "llm-runtime",
|
|
26918
|
+
capScope: "system",
|
|
26919
|
+
addonId: null,
|
|
26920
|
+
access: "create"
|
|
26921
|
+
},
|
|
26922
|
+
"llmRuntime.getDiskUsage": {
|
|
26923
|
+
capName: "llm-runtime",
|
|
26924
|
+
capScope: "system",
|
|
26925
|
+
addonId: null,
|
|
26926
|
+
access: "view"
|
|
26927
|
+
},
|
|
26928
|
+
"llmRuntime.installModel": {
|
|
26929
|
+
capName: "llm-runtime",
|
|
26930
|
+
capScope: "system",
|
|
26931
|
+
addonId: null,
|
|
26932
|
+
access: "create"
|
|
26933
|
+
},
|
|
26934
|
+
"llmRuntime.listLocalModels": {
|
|
26935
|
+
capName: "llm-runtime",
|
|
26936
|
+
capScope: "system",
|
|
26937
|
+
addonId: null,
|
|
26938
|
+
access: "view"
|
|
26939
|
+
},
|
|
26940
|
+
"llmRuntime.status": {
|
|
26941
|
+
capName: "llm-runtime",
|
|
26942
|
+
capScope: "system",
|
|
26943
|
+
addonId: null,
|
|
26944
|
+
access: "view"
|
|
26945
|
+
},
|
|
26946
|
+
"llmRuntime.stop": {
|
|
26947
|
+
capName: "llm-runtime",
|
|
26948
|
+
capScope: "system",
|
|
26949
|
+
addonId: null,
|
|
26950
|
+
access: "create"
|
|
26951
|
+
},
|
|
25878
26952
|
"localNetwork.getAllowedAddresses": {
|
|
25879
26953
|
capName: "local-network",
|
|
25880
26954
|
capScope: "system",
|
|
@@ -26505,6 +27579,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
26505
27579
|
addonId: null,
|
|
26506
27580
|
access: "delete"
|
|
26507
27581
|
},
|
|
27582
|
+
"pipelineAnalytics.deleteTracks": {
|
|
27583
|
+
capName: "pipeline-analytics",
|
|
27584
|
+
capScope: "device",
|
|
27585
|
+
addonId: null,
|
|
27586
|
+
access: "delete"
|
|
27587
|
+
},
|
|
26508
27588
|
"pipelineAnalytics.getActiveTracks": {
|
|
26509
27589
|
capName: "pipeline-analytics",
|
|
26510
27590
|
capScope: "device",
|
|
@@ -26571,12 +27651,24 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
26571
27651
|
addonId: null,
|
|
26572
27652
|
access: "create"
|
|
26573
27653
|
},
|
|
27654
|
+
"pipelineAnalytics.pruneTracksBefore": {
|
|
27655
|
+
capName: "pipeline-analytics",
|
|
27656
|
+
capScope: "device",
|
|
27657
|
+
addonId: null,
|
|
27658
|
+
access: "create"
|
|
27659
|
+
},
|
|
26574
27660
|
"pipelineAnalytics.searchObjectEvents": {
|
|
26575
27661
|
capName: "pipeline-analytics",
|
|
26576
27662
|
capScope: "device",
|
|
26577
27663
|
addonId: null,
|
|
26578
27664
|
access: "view"
|
|
26579
27665
|
},
|
|
27666
|
+
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27667
|
+
capName: "pipeline-analytics",
|
|
27668
|
+
capScope: "device",
|
|
27669
|
+
addonId: null,
|
|
27670
|
+
access: "delete"
|
|
27671
|
+
},
|
|
26580
27672
|
"pipelineExecutor.cacheFrameInPool": {
|
|
26581
27673
|
capName: "pipeline-executor",
|
|
26582
27674
|
capScope: "system",
|
|
@@ -27081,18 +28173,42 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
27081
28173
|
addonId: null,
|
|
27082
28174
|
access: "create"
|
|
27083
28175
|
},
|
|
28176
|
+
"plateGallery.assignPlate": {
|
|
28177
|
+
capName: "plate-gallery",
|
|
28178
|
+
capScope: "system",
|
|
28179
|
+
addonId: null,
|
|
28180
|
+
access: "create"
|
|
28181
|
+
},
|
|
28182
|
+
"plateGallery.assignPlates": {
|
|
28183
|
+
capName: "plate-gallery",
|
|
28184
|
+
capScope: "system",
|
|
28185
|
+
addonId: null,
|
|
28186
|
+
access: "create"
|
|
28187
|
+
},
|
|
27084
28188
|
"plateGallery.correctPlateText": {
|
|
27085
28189
|
capName: "plate-gallery",
|
|
27086
28190
|
capScope: "system",
|
|
27087
28191
|
addonId: null,
|
|
27088
28192
|
access: "create"
|
|
27089
28193
|
},
|
|
28194
|
+
"plateGallery.createVehicle": {
|
|
28195
|
+
capName: "plate-gallery",
|
|
28196
|
+
capScope: "system",
|
|
28197
|
+
addonId: null,
|
|
28198
|
+
access: "create"
|
|
28199
|
+
},
|
|
27090
28200
|
"plateGallery.deletePlate": {
|
|
27091
28201
|
capName: "plate-gallery",
|
|
27092
28202
|
capScope: "system",
|
|
27093
28203
|
addonId: null,
|
|
27094
28204
|
access: "delete"
|
|
27095
28205
|
},
|
|
28206
|
+
"plateGallery.deleteVehicle": {
|
|
28207
|
+
capName: "plate-gallery",
|
|
28208
|
+
capScope: "system",
|
|
28209
|
+
addonId: null,
|
|
28210
|
+
access: "delete"
|
|
28211
|
+
},
|
|
27096
28212
|
"plateGallery.getPlateByTrack": {
|
|
27097
28213
|
capName: "plate-gallery",
|
|
27098
28214
|
capScope: "system",
|
|
@@ -27111,6 +28227,30 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
27111
28227
|
addonId: null,
|
|
27112
28228
|
access: "view"
|
|
27113
28229
|
},
|
|
28230
|
+
"plateGallery.listVehicles": {
|
|
28231
|
+
capName: "plate-gallery",
|
|
28232
|
+
capScope: "system",
|
|
28233
|
+
addonId: null,
|
|
28234
|
+
access: "view"
|
|
28235
|
+
},
|
|
28236
|
+
"plateGallery.listVehicleSamples": {
|
|
28237
|
+
capName: "plate-gallery",
|
|
28238
|
+
capScope: "system",
|
|
28239
|
+
addonId: null,
|
|
28240
|
+
access: "view"
|
|
28241
|
+
},
|
|
28242
|
+
"plateGallery.removeVehicleSample": {
|
|
28243
|
+
capName: "plate-gallery",
|
|
28244
|
+
capScope: "system",
|
|
28245
|
+
addonId: null,
|
|
28246
|
+
access: "delete"
|
|
28247
|
+
},
|
|
28248
|
+
"plateGallery.renameVehicle": {
|
|
28249
|
+
capName: "plate-gallery",
|
|
28250
|
+
capScope: "system",
|
|
28251
|
+
addonId: null,
|
|
28252
|
+
access: "create"
|
|
28253
|
+
},
|
|
27114
28254
|
"plateGallery.searchPlates": {
|
|
27115
28255
|
capName: "plate-gallery",
|
|
27116
28256
|
capScope: "system",
|
|
@@ -27123,6 +28263,18 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
27123
28263
|
addonId: null,
|
|
27124
28264
|
access: "view"
|
|
27125
28265
|
},
|
|
28266
|
+
"plateGallery.unassignPlate": {
|
|
28267
|
+
capName: "plate-gallery",
|
|
28268
|
+
capScope: "system",
|
|
28269
|
+
addonId: null,
|
|
28270
|
+
access: "create"
|
|
28271
|
+
},
|
|
28272
|
+
"plateGallery.unassignPlates": {
|
|
28273
|
+
capName: "plate-gallery",
|
|
28274
|
+
capScope: "system",
|
|
28275
|
+
addonId: null,
|
|
28276
|
+
access: "create"
|
|
28277
|
+
},
|
|
27126
28278
|
"platformProbe.getCapabilities": {
|
|
27127
28279
|
capName: "platform-probe",
|
|
27128
28280
|
capScope: "system",
|
|
@@ -27315,6 +28467,48 @@ var METHOD_ACCESS_MAP = Object.freeze({
|
|
|
27315
28467
|
addonId: null,
|
|
27316
28468
|
access: "create"
|
|
27317
28469
|
},
|
|
28470
|
+
"sceneMonitor.captureReference": {
|
|
28471
|
+
capName: "scene-monitor",
|
|
28472
|
+
capScope: "device",
|
|
28473
|
+
addonId: null,
|
|
28474
|
+
access: "create"
|
|
28475
|
+
},
|
|
28476
|
+
"sceneMonitor.createScene": {
|
|
28477
|
+
capName: "scene-monitor",
|
|
28478
|
+
capScope: "device",
|
|
28479
|
+
addonId: null,
|
|
28480
|
+
access: "create"
|
|
28481
|
+
},
|
|
28482
|
+
"sceneMonitor.deleteReference": {
|
|
28483
|
+
capName: "scene-monitor",
|
|
28484
|
+
capScope: "device",
|
|
28485
|
+
addonId: null,
|
|
28486
|
+
access: "delete"
|
|
28487
|
+
},
|
|
28488
|
+
"sceneMonitor.deleteScene": {
|
|
28489
|
+
capName: "scene-monitor",
|
|
28490
|
+
capScope: "device",
|
|
28491
|
+
addonId: null,
|
|
28492
|
+
access: "delete"
|
|
28493
|
+
},
|
|
28494
|
+
"sceneMonitor.listScenes": {
|
|
28495
|
+
capName: "scene-monitor",
|
|
28496
|
+
capScope: "device",
|
|
28497
|
+
addonId: null,
|
|
28498
|
+
access: "view"
|
|
28499
|
+
},
|
|
28500
|
+
"sceneMonitor.recheckNow": {
|
|
28501
|
+
capName: "scene-monitor",
|
|
28502
|
+
capScope: "device",
|
|
28503
|
+
addonId: null,
|
|
28504
|
+
access: "create"
|
|
28505
|
+
},
|
|
28506
|
+
"sceneMonitor.updateScene": {
|
|
28507
|
+
capName: "scene-monitor",
|
|
28508
|
+
capScope: "device",
|
|
28509
|
+
addonId: null,
|
|
28510
|
+
access: "create"
|
|
28511
|
+
},
|
|
27318
28512
|
"scriptRunner.run": {
|
|
27319
28513
|
capName: "script-runner",
|
|
27320
28514
|
capScope: "device",
|
|
@@ -28448,6 +29642,8 @@ var KNOWN_CAP_NAMES = [
|
|
|
28448
29642
|
"integrations",
|
|
28449
29643
|
"intercom",
|
|
28450
29644
|
"lawn-mower-control",
|
|
29645
|
+
"llm",
|
|
29646
|
+
"llm-runtime",
|
|
28451
29647
|
"local-network",
|
|
28452
29648
|
"lock-control",
|
|
28453
29649
|
"log-destination",
|
|
@@ -28482,6 +29678,7 @@ var KNOWN_CAP_NAMES = [
|
|
|
28482
29678
|
"ptz-autotrack",
|
|
28483
29679
|
"reboot",
|
|
28484
29680
|
"recording",
|
|
29681
|
+
"scene-monitor",
|
|
28485
29682
|
"script-runner",
|
|
28486
29683
|
"server-management",
|
|
28487
29684
|
"settings-store",
|
|
@@ -28552,6 +29749,7 @@ var DEVICE_CAP_NAMES = [
|
|
|
28552
29749
|
"ptz",
|
|
28553
29750
|
"ptz-autotrack",
|
|
28554
29751
|
"reboot",
|
|
29752
|
+
"scene-monitor",
|
|
28555
29753
|
"script-runner",
|
|
28556
29754
|
"snapshot",
|
|
28557
29755
|
"stream-catalog",
|
|
@@ -28595,6 +29793,8 @@ var SYSTEM_CAP_NAMES = [
|
|
|
28595
29793
|
"face-gallery",
|
|
28596
29794
|
"filesystem-browse",
|
|
28597
29795
|
"integrations",
|
|
29796
|
+
"llm",
|
|
29797
|
+
"llm-runtime",
|
|
28598
29798
|
"local-network",
|
|
28599
29799
|
"log-destination",
|
|
28600
29800
|
"login-method",
|
|
@@ -28690,6 +29890,7 @@ var SCOPE_PRESETS = [
|
|
|
28690
29890
|
var CAP_PROVIDER_KIND_MAP = Object.freeze({
|
|
28691
29891
|
"broker": "broker",
|
|
28692
29892
|
"device-export": "device-export",
|
|
29893
|
+
"llm": "ai",
|
|
28693
29894
|
"mesh-network": "mesh",
|
|
28694
29895
|
"mqtt-broker": "broker",
|
|
28695
29896
|
"network-access": "ingress",
|
|
@@ -28699,6 +29900,7 @@ var CAP_PROVIDER_KIND_MAP = Object.freeze({
|
|
|
28699
29900
|
var PROVIDER_KIND_CAP_NAMES = [
|
|
28700
29901
|
"broker",
|
|
28701
29902
|
"device-export",
|
|
29903
|
+
"llm",
|
|
28702
29904
|
"mesh-network",
|
|
28703
29905
|
"mqtt-broker",
|
|
28704
29906
|
"network-access",
|
|
@@ -29035,6 +30237,10 @@ var CPU = {
|
|
|
29035
30237
|
value: "cpu",
|
|
29036
30238
|
label: "CPU"
|
|
29037
30239
|
};
|
|
30240
|
+
var USB = {
|
|
30241
|
+
value: "usb",
|
|
30242
|
+
label: "Coral USB"
|
|
30243
|
+
};
|
|
29038
30244
|
var RUNTIMES = [
|
|
29039
30245
|
{
|
|
29040
30246
|
id: "onnx",
|
|
@@ -29093,6 +30299,12 @@ var RUNTIMES = [
|
|
|
29093
30299
|
return out;
|
|
29094
30300
|
},
|
|
29095
30301
|
defaultDevice: "all"
|
|
30302
|
+
},
|
|
30303
|
+
{
|
|
30304
|
+
id: "edgetpu",
|
|
30305
|
+
supports: (hw) => hw?.coral != null,
|
|
30306
|
+
devices: () => [USB],
|
|
30307
|
+
defaultDevice: "usb"
|
|
29096
30308
|
}
|
|
29097
30309
|
];
|
|
29098
30310
|
function def(id) {
|
|
@@ -29125,6 +30337,7 @@ function defaultDeviceFor(id) {
|
|
|
29125
30337
|
* Delegates to `formatForRuntime` from runtime-mapping.ts.
|
|
29126
30338
|
*/
|
|
29127
30339
|
function modelFormatForRuntime(id) {
|
|
30340
|
+
if (id === "edgetpu") return "tflite";
|
|
29128
30341
|
return formatForRuntime(id);
|
|
29129
30342
|
}
|
|
29130
30343
|
/**
|
|
@@ -29446,6 +30659,24 @@ exports.KeyEventSchema = KeyEventSchema;
|
|
|
29446
30659
|
exports.LabelDefinitionSchema = LabelDefinitionSchema;
|
|
29447
30660
|
exports.LawnMowerActivitySchema = LawnMowerActivitySchema;
|
|
29448
30661
|
exports.LawnMowerControlStatusSchema = LawnMowerControlStatusSchema;
|
|
30662
|
+
exports.LlmDefaultSchema = LlmDefaultSchema;
|
|
30663
|
+
exports.LlmDefaultSelectorSchema = LlmDefaultSelectorSchema;
|
|
30664
|
+
exports.LlmErrorCodeSchema = LlmErrorCodeSchema;
|
|
30665
|
+
exports.LlmGenerateBaseInputSchema = LlmGenerateBaseInputSchema;
|
|
30666
|
+
exports.LlmGenerateErrSchema = LlmGenerateErrSchema;
|
|
30667
|
+
exports.LlmGenerateOkSchema = LlmGenerateOkSchema;
|
|
30668
|
+
exports.LlmGenerateResultSchema = LlmGenerateResultSchema;
|
|
30669
|
+
exports.LlmImageSchema = LlmImageSchema;
|
|
30670
|
+
exports.LlmNodeModelSchema = LlmNodeModelSchema;
|
|
30671
|
+
exports.LlmProfileKindDescriptorSchema = LlmProfileKindDescriptorSchema;
|
|
30672
|
+
exports.LlmProfileKindSchema = LlmProfileKindSchema;
|
|
30673
|
+
exports.LlmProfileSchema = LlmProfileSchema;
|
|
30674
|
+
exports.LlmRuntimeCompleteInputSchema = LlmRuntimeCompleteInputSchema;
|
|
30675
|
+
exports.LlmRuntimeDiskUsageSchema = LlmRuntimeDiskUsageSchema;
|
|
30676
|
+
exports.LlmRuntimeNodeSchema = LlmRuntimeNodeSchema;
|
|
30677
|
+
exports.LlmRuntimeStatusSchema = LlmRuntimeStatusSchema;
|
|
30678
|
+
exports.LlmUsageRollupSchema = LlmUsageRollupSchema;
|
|
30679
|
+
exports.LlmUsageSchema = LlmUsageSchema;
|
|
29449
30680
|
exports.LocateSegmentResultSchema = LocateSegmentResultSchema;
|
|
29450
30681
|
exports.LocationStatSchema = LocationStatSchema;
|
|
29451
30682
|
exports.LockControlStatusSchema = LockControlStatusSchema;
|
|
@@ -29463,6 +30694,9 @@ exports.MAX_EXPRESSION_EVAL_STEPS = MAX_EXPRESSION_EVAL_STEPS;
|
|
|
29463
30694
|
exports.MAX_EXPRESSION_SOURCE_LENGTH = MAX_EXPRESSION_SOURCE_LENGTH;
|
|
29464
30695
|
exports.METHOD_ACCESS_MAP = METHOD_ACCESS_MAP;
|
|
29465
30696
|
exports.MODEL_FORMATS = MODEL_FORMATS;
|
|
30697
|
+
exports.ManagedModelCatalogEntrySchema = ManagedModelCatalogEntrySchema;
|
|
30698
|
+
exports.ManagedModelRefSchema = ManagedModelRefSchema;
|
|
30699
|
+
exports.ManagedRuntimeConfigSchema = ManagedRuntimeConfigSchema;
|
|
29466
30700
|
exports.MaskGridDimsSchema = MaskGridDimsSchema;
|
|
29467
30701
|
exports.MaskGridShapeSchema = MaskGridShapeSchema;
|
|
29468
30702
|
exports.MaskLineShapeSchema = MaskLineShapeSchema;
|
|
@@ -29533,6 +30767,7 @@ exports.PROVIDER_KIND_CAP_NAMES = PROVIDER_KIND_CAP_NAMES;
|
|
|
29533
30767
|
exports.PYTHON_SCRIPT = PYTHON_SCRIPT;
|
|
29534
30768
|
exports.PackageUpdateSchema = PackageUpdateSchema;
|
|
29535
30769
|
exports.PackageVersionInfoSchema = PackageVersionInfoSchema;
|
|
30770
|
+
exports.PasskeyLoginMethodSchema = PasskeyLoginMethodSchema;
|
|
29536
30771
|
exports.PasskeySummarySchema = PasskeySummarySchema;
|
|
29537
30772
|
exports.PcmSampleFormatSchema = PcmSampleFormatSchema;
|
|
29538
30773
|
exports.PerScopeBreakdownSchema = PerScopeBreakdownSchema;
|
|
@@ -29617,6 +30852,12 @@ exports.STREAM_PROFILE_META = STREAM_PROFILE_META;
|
|
|
29617
30852
|
exports.STREAM_QUALITY_LABELS = STREAM_QUALITY_LABELS;
|
|
29618
30853
|
exports.SUB_DETECTION_TYPES = SUB_DETECTION_TYPES;
|
|
29619
30854
|
exports.SYSTEM_CAP_NAMES = SYSTEM_CAP_NAMES;
|
|
30855
|
+
exports.SceneCheckSchema = SceneCheckSchema;
|
|
30856
|
+
exports.SceneConditionSchema = SceneConditionSchema;
|
|
30857
|
+
exports.SceneMonitorSchema = SceneMonitorSchema;
|
|
30858
|
+
exports.SceneMonitorStateSchema = SceneMonitorStateSchema;
|
|
30859
|
+
exports.SceneMonitorStatusSchema = SceneMonitorStatusSchema;
|
|
30860
|
+
exports.SceneReferenceSchema = SceneReferenceSchema;
|
|
29620
30861
|
exports.ScopedTokenSchema = ScopedTokenSchema;
|
|
29621
30862
|
exports.ScopedTokenSummarySchema = ScopedTokenSummarySchema;
|
|
29622
30863
|
exports.ScoredObjectEventSchema = ScoredObjectEventSchema;
|
|
@@ -29643,6 +30884,7 @@ exports.SourceInfoSchema = SourceInfoSchema;
|
|
|
29643
30884
|
exports.SpatialDetectionSchema = SpatialDetectionSchema;
|
|
29644
30885
|
exports.SsoBridgeClaimsSchema = SsoBridgeClaimsSchema;
|
|
29645
30886
|
exports.StartEmbeddedInputSchema = StartEmbeddedInputSchema;
|
|
30887
|
+
exports.StationaryObjectSchema = StationaryObjectSchema;
|
|
29646
30888
|
exports.StorageAbortUploadInputSchema = AbortUploadInputSchema;
|
|
29647
30889
|
exports.StorageBeginDownloadInputSchema = BeginDownloadInputSchema;
|
|
29648
30890
|
exports.StorageBeginDownloadResultSchema = BeginDownloadResultSchema;
|
|
@@ -29691,6 +30933,7 @@ exports.TokenScopeSchema = TokenScopeSchema;
|
|
|
29691
30933
|
exports.TopologyNodeSchema = TopologyNodeSchema;
|
|
29692
30934
|
exports.TopologyProcessSchema = TopologyProcessSchema;
|
|
29693
30935
|
exports.TopologyServiceSchema = TopologyServiceSchema;
|
|
30936
|
+
exports.TrackCascadeCountsSchema = TrackCascadeCountsSchema;
|
|
29694
30937
|
exports.TrackSchema = TrackSchema;
|
|
29695
30938
|
exports.TrackStateSchema = TrackStateSchema;
|
|
29696
30939
|
exports.TrackedDetectionSchema = TrackedDetectionSchema;
|
|
@@ -29832,6 +31075,7 @@ exports.event = require_sleep.event;
|
|
|
29832
31075
|
exports.eventEmitterCapability = eventEmitterCapability;
|
|
29833
31076
|
exports.eventsCapability = eventsCapability;
|
|
29834
31077
|
exports.expandCapMethods = require_sleep.expandCapMethods;
|
|
31078
|
+
exports.extractNestedAddonId = extractNestedAddonId;
|
|
29835
31079
|
exports.extractSourceInfoFromMetadata = extractSourceInfoFromMetadata;
|
|
29836
31080
|
exports.faceGalleryCapability = faceGalleryCapability;
|
|
29837
31081
|
exports.fanControlCapability = fanControlCapability;
|
|
@@ -29858,6 +31102,7 @@ exports.integrationsCapability = integrationsCapability;
|
|
|
29858
31102
|
exports.intercomCapability = intercomCapability;
|
|
29859
31103
|
exports.isAgentOnlyPlacement = isAgentOnlyPlacement;
|
|
29860
31104
|
exports.isArrayOutputSchema = isArrayOutputSchema;
|
|
31105
|
+
exports.isCollectionArrayMethod = isCollectionArrayMethod;
|
|
29861
31106
|
exports.isDeployableToAgent = isDeployableToAgent;
|
|
29862
31107
|
exports.isDeviceConfigCap = require_sleep.isDeviceConfigCap;
|
|
29863
31108
|
exports.isEvent = require_sleep.isEvent;
|
|
@@ -29870,6 +31115,8 @@ exports.lifecycleJobSchema = lifecycleJobSchema;
|
|
|
29870
31115
|
exports.lifecycleJobScopeSchema = lifecycleJobScopeSchema;
|
|
29871
31116
|
exports.lifecycleJobStateSchema = lifecycleJobStateSchema;
|
|
29872
31117
|
exports.lifecycleTaskSchema = lifecycleTaskSchema;
|
|
31118
|
+
exports.llmCapability = llmCapability;
|
|
31119
|
+
exports.llmRuntimeCapability = llmRuntimeCapability;
|
|
29873
31120
|
exports.localNetworkCapability = localNetworkCapability;
|
|
29874
31121
|
exports.locationSimilarity = locationSimilarity;
|
|
29875
31122
|
exports.lockControlCapability = lockControlCapability;
|
|
@@ -29907,6 +31154,7 @@ exports.notificationOutputCapability = notificationOutputCapability;
|
|
|
29907
31154
|
exports.notifierCapability = notifierCapability;
|
|
29908
31155
|
exports.numericSensorCapability = numericSensorCapability;
|
|
29909
31156
|
exports.oauthIntegrationCapability = oauthIntegrationCapability;
|
|
31157
|
+
exports.objectInputDeclaresAddonId = objectInputDeclaresAddonId;
|
|
29910
31158
|
exports.osdCapability = osdCapability;
|
|
29911
31159
|
exports.parseCameraStreamConfig = parseCameraStreamConfig;
|
|
29912
31160
|
exports.parseExpression = parseExpression;
|
|
@@ -29953,6 +31201,7 @@ exports.resolveRunnerId = resolveRunnerId;
|
|
|
29953
31201
|
exports.resolveVariantModelId = resolveVariantModelId;
|
|
29954
31202
|
exports.runInferenceStep = runInferenceStep;
|
|
29955
31203
|
exports.runtimeDevices = runtimeDevices;
|
|
31204
|
+
exports.sceneMonitorCapability = sceneMonitorCapability;
|
|
29956
31205
|
exports.scopeKey = require_sleep.scopeKey;
|
|
29957
31206
|
exports.scoreRuntimes = scoreRuntimes;
|
|
29958
31207
|
exports.scriptRunnerCapability = scriptRunnerCapability;
|