@camstack/addon-ai 0.4.68 → 0.4.70

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 CHANGED
@@ -19318,6 +19318,33 @@ var RecentTracksQueryInput = object({
19318
19318
  */
19319
19319
  classes: array(string()).optional()
19320
19320
  });
19321
+ /**
19322
+ * A Summary (D359): the per-camera session envelope that references tracks.
19323
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
19324
+ * served by the event-media plane by key), null until the first frame with a
19325
+ * member visible has been materialised.
19326
+ */
19327
+ var SummarySchema = object({
19328
+ id: string(),
19329
+ deviceId: number$1(),
19330
+ openedAt: number$1(),
19331
+ lastActiveAt: number$1(),
19332
+ sealedAt: number$1().nullable(),
19333
+ memberCount: number$1().int().nonnegative(),
19334
+ groupShotKey: string().nullable()
19335
+ });
19336
+ var SummariesQueryInput = object({
19337
+ deviceIds: array(number$1()).min(1),
19338
+ since: number$1().optional(),
19339
+ until: number$1().optional(),
19340
+ limit: number$1().int().min(1).max(200).default(50)
19341
+ });
19342
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
19343
+ var SummaryDetailSchema = object({
19344
+ summary: SummarySchema,
19345
+ /** Member track ids, in absorption order. */
19346
+ trackIds: array(string()).readonly()
19347
+ });
19321
19348
  var RecentTracksPageSchema = object({
19322
19349
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
19323
19350
  tracks: array(TrackSchema).readonly(),
@@ -19718,7 +19745,7 @@ DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).r
19718
19745
  * timeline would read as a camera that saw nothing.
19719
19746
  */
19720
19747
  classes: array(string()).optional()
19721
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number$1() }), _void(), {
19748
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number$1() }), _void(), {
19722
19749
  kind: "mutation",
19723
19750
  auth: "admin"
19724
19751
  }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number$1() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number$1()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
@@ -20653,6 +20680,14 @@ var AgentPipelineSettingsSchema = object({
20653
20680
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20654
20681
  ingest: boolean().optional(),
20655
20682
  /**
20683
+ * This node's decode RAM budget, MB. Wins over the cluster
20684
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20685
+ * own RAM unless the operator moved the cluster value (D365).
20686
+ */
20687
+ decodeBudgetMb: number$1().int().min(1024).max(65536).optional(),
20688
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20689
+ maxLiveDecodeWorkers: number$1().int().min(1).max(32).optional(),
20690
+ /**
20656
20691
  * Operator override for the LAN host a cross-node decoder dials to reach
20657
20692
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20658
20693
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21114,6 +21149,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21114
21149
  }), object({ success: literal(true) }), {
21115
21150
  kind: "mutation",
21116
21151
  auth: "admin"
21152
+ }), method(object({
21153
+ agentNodeId: string(),
21154
+ decodeBudgetMb: number$1().int().min(1024).max(65536).nullable().optional(),
21155
+ maxLiveDecodeWorkers: number$1().int().min(1).max(32).nullable().optional()
21156
+ }), object({ success: literal(true) }), {
21157
+ kind: "mutation",
21158
+ auth: "admin"
21117
21159
  }), method(object({
21118
21160
  agentNodeId: string(),
21119
21161
  reachableHost: string().nullable()
@@ -32658,6 +32700,12 @@ Object.freeze({
32658
32700
  addonId: null,
32659
32701
  access: "view"
32660
32702
  },
32703
+ "pipelineAnalytics.getSummary": {
32704
+ capName: "pipeline-analytics",
32705
+ capScope: "device",
32706
+ addonId: null,
32707
+ access: "view"
32708
+ },
32661
32709
  "pipelineAnalytics.getTrack": {
32662
32710
  capName: "pipeline-analytics",
32663
32711
  capScope: "device",
@@ -32736,6 +32784,12 @@ Object.freeze({
32736
32784
  addonId: null,
32737
32785
  access: "view"
32738
32786
  },
32787
+ "pipelineAnalytics.listSummaries": {
32788
+ capName: "pipeline-analytics",
32789
+ capScope: "device",
32790
+ addonId: null,
32791
+ access: "view"
32792
+ },
32739
32793
  "pipelineAnalytics.listTrackMedia": {
32740
32794
  capName: "pipeline-analytics",
32741
32795
  capScope: "device",
@@ -33294,6 +33348,12 @@ Object.freeze({
33294
33348
  addonId: null,
33295
33349
  access: "create"
33296
33350
  },
33351
+ "pipelineOrchestrator.setAgentDecodeLimits": {
33352
+ capName: "pipeline-orchestrator",
33353
+ capScope: "system",
33354
+ addonId: null,
33355
+ access: "create"
33356
+ },
33297
33357
  "pipelineOrchestrator.setAgentDetectWeight": {
33298
33358
  capName: "pipeline-orchestrator",
33299
33359
  capScope: "system",
@@ -36425,6 +36485,11 @@ Object.freeze({
36425
36485
  form: "array",
36426
36486
  optional: true
36427
36487
  }],
36488
+ "pipelineAnalytics.listSummaries": [{
36489
+ name: "deviceIds",
36490
+ form: "array",
36491
+ optional: false
36492
+ }],
36428
36493
  "pipelineAnalytics.listTrackMedia": [{
36429
36494
  name: "deviceId",
36430
36495
  form: "single",
package/dist/addon.mjs CHANGED
@@ -19345,6 +19345,33 @@ var RecentTracksQueryInput = object({
19345
19345
  */
19346
19346
  classes: array(string()).optional()
19347
19347
  });
19348
+ /**
19349
+ * A Summary (D359): the per-camera session envelope that references tracks.
19350
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
19351
+ * served by the event-media plane by key), null until the first frame with a
19352
+ * member visible has been materialised.
19353
+ */
19354
+ var SummarySchema = object({
19355
+ id: string(),
19356
+ deviceId: number$1(),
19357
+ openedAt: number$1(),
19358
+ lastActiveAt: number$1(),
19359
+ sealedAt: number$1().nullable(),
19360
+ memberCount: number$1().int().nonnegative(),
19361
+ groupShotKey: string().nullable()
19362
+ });
19363
+ var SummariesQueryInput = object({
19364
+ deviceIds: array(number$1()).min(1),
19365
+ since: number$1().optional(),
19366
+ until: number$1().optional(),
19367
+ limit: number$1().int().min(1).max(200).default(50)
19368
+ });
19369
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
19370
+ var SummaryDetailSchema = object({
19371
+ summary: SummarySchema,
19372
+ /** Member track ids, in absorption order. */
19373
+ trackIds: array(string()).readonly()
19374
+ });
19348
19375
  var RecentTracksPageSchema = object({
19349
19376
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
19350
19377
  tracks: array(TrackSchema).readonly(),
@@ -19745,7 +19772,7 @@ DeviceType.Camera, method(object({ deviceId: number$1() }), array(TrackSchema).r
19745
19772
  * timeline would read as a camera that saw nothing.
19746
19773
  */
19747
19774
  classes: array(string()).optional()
19748
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number$1() }), _void(), {
19775
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number$1() }), _void(), {
19749
19776
  kind: "mutation",
19750
19777
  auth: "admin"
19751
19778
  }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number$1() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number$1()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
@@ -20680,6 +20707,14 @@ var AgentPipelineSettingsSchema = object({
20680
20707
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20681
20708
  ingest: boolean().optional(),
20682
20709
  /**
20710
+ * This node's decode RAM budget, MB. Wins over the cluster
20711
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20712
+ * own RAM unless the operator moved the cluster value (D365).
20713
+ */
20714
+ decodeBudgetMb: number$1().int().min(1024).max(65536).optional(),
20715
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20716
+ maxLiveDecodeWorkers: number$1().int().min(1).max(32).optional(),
20717
+ /**
20683
20718
  * Operator override for the LAN host a cross-node decoder dials to reach
20684
20719
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20685
20720
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -21141,6 +21176,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
21141
21176
  }), object({ success: literal(true) }), {
21142
21177
  kind: "mutation",
21143
21178
  auth: "admin"
21179
+ }), method(object({
21180
+ agentNodeId: string(),
21181
+ decodeBudgetMb: number$1().int().min(1024).max(65536).nullable().optional(),
21182
+ maxLiveDecodeWorkers: number$1().int().min(1).max(32).nullable().optional()
21183
+ }), object({ success: literal(true) }), {
21184
+ kind: "mutation",
21185
+ auth: "admin"
21144
21186
  }), method(object({
21145
21187
  agentNodeId: string(),
21146
21188
  reachableHost: string().nullable()
@@ -32685,6 +32727,12 @@ Object.freeze({
32685
32727
  addonId: null,
32686
32728
  access: "view"
32687
32729
  },
32730
+ "pipelineAnalytics.getSummary": {
32731
+ capName: "pipeline-analytics",
32732
+ capScope: "device",
32733
+ addonId: null,
32734
+ access: "view"
32735
+ },
32688
32736
  "pipelineAnalytics.getTrack": {
32689
32737
  capName: "pipeline-analytics",
32690
32738
  capScope: "device",
@@ -32763,6 +32811,12 @@ Object.freeze({
32763
32811
  addonId: null,
32764
32812
  access: "view"
32765
32813
  },
32814
+ "pipelineAnalytics.listSummaries": {
32815
+ capName: "pipeline-analytics",
32816
+ capScope: "device",
32817
+ addonId: null,
32818
+ access: "view"
32819
+ },
32766
32820
  "pipelineAnalytics.listTrackMedia": {
32767
32821
  capName: "pipeline-analytics",
32768
32822
  capScope: "device",
@@ -33321,6 +33375,12 @@ Object.freeze({
33321
33375
  addonId: null,
33322
33376
  access: "create"
33323
33377
  },
33378
+ "pipelineOrchestrator.setAgentDecodeLimits": {
33379
+ capName: "pipeline-orchestrator",
33380
+ capScope: "system",
33381
+ addonId: null,
33382
+ access: "create"
33383
+ },
33324
33384
  "pipelineOrchestrator.setAgentDetectWeight": {
33325
33385
  capName: "pipeline-orchestrator",
33326
33386
  capScope: "system",
@@ -36452,6 +36512,11 @@ Object.freeze({
36452
36512
  form: "array",
36453
36513
  optional: true
36454
36514
  }],
36515
+ "pipelineAnalytics.listSummaries": [{
36516
+ name: "deviceIds",
36517
+ form: "array",
36518
+ optional: false
36519
+ }],
36455
36520
  "pipelineAnalytics.listTrackMedia": [{
36456
36521
  name: "deviceId",
36457
36522
  form: "single",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-ai",
3
- "version": "0.4.68",
3
+ "version": "0.4.70",
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",