@camstack/addon-ai 0.4.95 → 0.4.96
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 +41 -4
- package/dist/addon.mjs +41 -4
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -19844,7 +19844,17 @@ var EventDensityBucketSchema = object({
|
|
|
19844
19844
|
bucketStart: number$1(),
|
|
19845
19845
|
motion: number$1().int(),
|
|
19846
19846
|
object: number$1().int(),
|
|
19847
|
-
audio: number$1().int()
|
|
19847
|
+
audio: number$1().int(),
|
|
19848
|
+
/**
|
|
19849
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19850
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19851
|
+
*
|
|
19852
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19853
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19854
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19855
|
+
* the count-on-a-level-meter did.
|
|
19856
|
+
*/
|
|
19857
|
+
audioDbfs: number$1().optional()
|
|
19848
19858
|
});
|
|
19849
19859
|
/**
|
|
19850
19860
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -28011,7 +28021,23 @@ var RecordingRangeSchema = object({
|
|
|
28011
28021
|
});
|
|
28012
28022
|
var RecordingAvailabilitySchema = object({
|
|
28013
28023
|
deviceId: number$1(),
|
|
28014
|
-
ranges: array(RecordingRangeSchema)
|
|
28024
|
+
ranges: array(RecordingRangeSchema),
|
|
28025
|
+
/**
|
|
28026
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
28027
|
+
* describes (D433).
|
|
28028
|
+
*
|
|
28029
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
28030
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
28031
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
28032
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
28033
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
28034
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
28035
|
+
* UI could not see it.
|
|
28036
|
+
*
|
|
28037
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
28038
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
28039
|
+
*/
|
|
28040
|
+
profilesWithFootage: array(string())
|
|
28015
28041
|
});
|
|
28016
28042
|
var RecordingDaysSchema = object({
|
|
28017
28043
|
deviceId: number$1(),
|
|
@@ -28037,7 +28063,11 @@ var RecordingDaysSchema = object({
|
|
|
28037
28063
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
28038
28064
|
deviceId: number$1(),
|
|
28039
28065
|
read: _enum(["read", "unreadable"]),
|
|
28040
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
28066
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
28067
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
28068
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
28069
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
28070
|
+
profilesWithFootage: array(string()).readonly()
|
|
28041
28071
|
});
|
|
28042
28072
|
/**
|
|
28043
28073
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -28327,7 +28357,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
28327
28357
|
method(object({
|
|
28328
28358
|
deviceId: number$1(),
|
|
28329
28359
|
fromMs: number$1(),
|
|
28330
|
-
toMs: number$1()
|
|
28360
|
+
toMs: number$1(),
|
|
28361
|
+
/**
|
|
28362
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
28363
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
28364
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
28365
|
+
* for.
|
|
28366
|
+
*/
|
|
28367
|
+
profile: string().optional()
|
|
28331
28368
|
}), RecordingAvailabilitySchema, {
|
|
28332
28369
|
kind: "query",
|
|
28333
28370
|
auth: "protected"
|
package/dist/addon.mjs
CHANGED
|
@@ -19871,7 +19871,17 @@ var EventDensityBucketSchema = object({
|
|
|
19871
19871
|
bucketStart: number$1(),
|
|
19872
19872
|
motion: number$1().int(),
|
|
19873
19873
|
object: number$1().int(),
|
|
19874
|
-
audio: number$1().int()
|
|
19874
|
+
audio: number$1().int(),
|
|
19875
|
+
/**
|
|
19876
|
+
* Energy-weighted mean dBFS of the audio events in this bucket — the LEVEL,
|
|
19877
|
+
* as opposed to `audio`, which is their COUNT (D431).
|
|
19878
|
+
*
|
|
19879
|
+
* ABSENT when the bucket holds no audio event. Absence means "nothing was
|
|
19880
|
+
* measured", which is not the same claim as silence, and a lane that cannot
|
|
19881
|
+
* tell them apart paints a quiet hour at full scale — which is exactly what
|
|
19882
|
+
* the count-on-a-level-meter did.
|
|
19883
|
+
*/
|
|
19884
|
+
audioDbfs: number$1().optional()
|
|
19875
19885
|
});
|
|
19876
19886
|
/**
|
|
19877
19887
|
* One camera's row in a `getEventDensityBatch` answer.
|
|
@@ -28038,7 +28048,23 @@ var RecordingRangeSchema = object({
|
|
|
28038
28048
|
});
|
|
28039
28049
|
var RecordingAvailabilitySchema = object({
|
|
28040
28050
|
deviceId: number$1(),
|
|
28041
|
-
ranges: array(RecordingRangeSchema)
|
|
28051
|
+
ranges: array(RecordingRangeSchema),
|
|
28052
|
+
/**
|
|
28053
|
+
* Every profile this camera has footage in — not only the one `ranges`
|
|
28054
|
+
* describes (D433).
|
|
28055
|
+
*
|
|
28056
|
+
* `ranges` answers for ONE profile by design: the timeline is a single bar,
|
|
28057
|
+
* and enumerating all of them triples the directory reads for a bar that
|
|
28058
|
+
* would look identical. But the answer used to say nothing about that, so a
|
|
28059
|
+
* caller asking "what can I export?" read the single preferred profile as
|
|
28060
|
+
* the only one that exists — on this deployment every camera records `high`
|
|
28061
|
+
* AND `low`, the low tree holding 14 GB for camera 615 alone, and the export
|
|
28062
|
+
* UI could not see it.
|
|
28063
|
+
*
|
|
28064
|
+
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
28065
|
+
* makes. Ask for a specific profile's ranges with the `profile` input.
|
|
28066
|
+
*/
|
|
28067
|
+
profilesWithFootage: array(string())
|
|
28042
28068
|
});
|
|
28043
28069
|
var RecordingDaysSchema = object({
|
|
28044
28070
|
deviceId: number$1(),
|
|
@@ -28064,7 +28090,11 @@ var RecordingDaysSchema = object({
|
|
|
28064
28090
|
var RecordingAvailabilityForDeviceSchema = object({
|
|
28065
28091
|
deviceId: number$1(),
|
|
28066
28092
|
read: _enum(["read", "unreadable"]),
|
|
28067
|
-
ranges: array(RecordingRangeSchema).readonly()
|
|
28093
|
+
ranges: array(RecordingRangeSchema).readonly(),
|
|
28094
|
+
/** Same field, same meaning, as the singular answer (D433). A row that
|
|
28095
|
+
* dropped it would tell a grid caller the archive holds one profile.
|
|
28096
|
+
* Empty on an `'unreadable'` row: nobody looked. */
|
|
28097
|
+
profilesWithFootage: array(string()).readonly()
|
|
28068
28098
|
});
|
|
28069
28099
|
/**
|
|
28070
28100
|
* One camera's row in a `getDaysWithRecordingsBatch` answer. Same rule as
|
|
@@ -28354,7 +28384,14 @@ var ReadWindowBytesResultSchema = discriminatedUnion("kind", [object({
|
|
|
28354
28384
|
method(object({
|
|
28355
28385
|
deviceId: number$1(),
|
|
28356
28386
|
fromMs: number$1(),
|
|
28357
|
-
toMs: number$1()
|
|
28387
|
+
toMs: number$1(),
|
|
28388
|
+
/**
|
|
28389
|
+
* Answer for THIS profile instead of the preferred one (D433). Absent
|
|
28390
|
+
* keeps the timeline's behaviour — one bar, one profile, one set of
|
|
28391
|
+
* reads. `profilesWithFootage` on the answer says what may be asked
|
|
28392
|
+
* for.
|
|
28393
|
+
*/
|
|
28394
|
+
profile: string().optional()
|
|
28358
28395
|
}), RecordingAvailabilitySchema, {
|
|
28359
28396
|
kind: "query",
|
|
28360
28397
|
auth: "protected"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-ai",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.96",
|
|
4
4
|
"description": "AI addon for CamStack — the `llm` collection provider (cloud, LAN, and camstack-managed local llama.cpp profiles) plus the per-node `llm-runtime` managed executor.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|