@camstack/addon-tailscale 1.2.67 → 1.2.69

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.
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
24
24
  enumerable: true
25
25
  }) : target, mod));
26
26
  //#endregion
27
- const require_dist = require("../dist-C1ivZASR.js");
27
+ const require_dist = require("../dist-DusCdQeu.js");
28
28
  let node_child_process = require("node:child_process");
29
29
  let node_util = require("node:util");
30
30
  let node_fs = require("node:fs");
@@ -1,4 +1,4 @@
1
- import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-CAA5j948.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability, r as BOOT_RECOVERY_BACKOFF_MS, t as meshNetworkCapability } from "../dist-DzOJ1z3l.mjs";
2
2
  import { execFile, spawn } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
4
  import * as fs from "node:fs";
@@ -19055,6 +19055,33 @@ var RecentTracksQueryInput = object({
19055
19055
  */
19056
19056
  classes: array(string()).optional()
19057
19057
  });
19058
+ /**
19059
+ * A Summary (D359): the per-camera session envelope that references tracks.
19060
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
19061
+ * served by the event-media plane by key), null until the first frame with a
19062
+ * member visible has been materialised.
19063
+ */
19064
+ var SummarySchema = object({
19065
+ id: string(),
19066
+ deviceId: number(),
19067
+ openedAt: number(),
19068
+ lastActiveAt: number(),
19069
+ sealedAt: number().nullable(),
19070
+ memberCount: number().int().nonnegative(),
19071
+ groupShotKey: string().nullable()
19072
+ });
19073
+ var SummariesQueryInput = object({
19074
+ deviceIds: array(number()).min(1),
19075
+ since: number().optional(),
19076
+ until: number().optional(),
19077
+ limit: number().int().min(1).max(200).default(50)
19078
+ });
19079
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
19080
+ var SummaryDetailSchema = object({
19081
+ summary: SummarySchema,
19082
+ /** Member track ids, in absorption order. */
19083
+ trackIds: array(string()).readonly()
19084
+ });
19058
19085
  var RecentTracksPageSchema = object({
19059
19086
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
19060
19087
  tracks: array(TrackSchema).readonly(),
@@ -19455,7 +19482,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19455
19482
  * timeline would read as a camera that saw nothing.
19456
19483
  */
19457
19484
  classes: array(string()).optional()
19458
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
19485
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
19459
19486
  kind: "mutation",
19460
19487
  auth: "admin"
19461
19488
  }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
@@ -20390,6 +20417,14 @@ var AgentPipelineSettingsSchema = object({
20390
20417
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20391
20418
  ingest: boolean().optional(),
20392
20419
  /**
20420
+ * This node's decode RAM budget, MB. Wins over the cluster
20421
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20422
+ * own RAM unless the operator moved the cluster value (D365).
20423
+ */
20424
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20425
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20426
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20427
+ /**
20393
20428
  * Operator override for the LAN host a cross-node decoder dials to reach
20394
20429
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20395
20430
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -20851,6 +20886,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
20851
20886
  }), object({ success: literal(true) }), {
20852
20887
  kind: "mutation",
20853
20888
  auth: "admin"
20889
+ }), method(object({
20890
+ agentNodeId: string(),
20891
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
20892
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
20893
+ }), object({ success: literal(true) }), {
20894
+ kind: "mutation",
20895
+ auth: "admin"
20854
20896
  }), method(object({
20855
20897
  agentNodeId: string(),
20856
20898
  reachableHost: string().nullable()
@@ -32456,6 +32498,12 @@ Object.freeze({
32456
32498
  addonId: null,
32457
32499
  access: "view"
32458
32500
  },
32501
+ "pipelineAnalytics.getSummary": {
32502
+ capName: "pipeline-analytics",
32503
+ capScope: "device",
32504
+ addonId: null,
32505
+ access: "view"
32506
+ },
32459
32507
  "pipelineAnalytics.getTrack": {
32460
32508
  capName: "pipeline-analytics",
32461
32509
  capScope: "device",
@@ -32534,6 +32582,12 @@ Object.freeze({
32534
32582
  addonId: null,
32535
32583
  access: "view"
32536
32584
  },
32585
+ "pipelineAnalytics.listSummaries": {
32586
+ capName: "pipeline-analytics",
32587
+ capScope: "device",
32588
+ addonId: null,
32589
+ access: "view"
32590
+ },
32537
32591
  "pipelineAnalytics.listTrackMedia": {
32538
32592
  capName: "pipeline-analytics",
32539
32593
  capScope: "device",
@@ -33092,6 +33146,12 @@ Object.freeze({
33092
33146
  addonId: null,
33093
33147
  access: "create"
33094
33148
  },
33149
+ "pipelineOrchestrator.setAgentDecodeLimits": {
33150
+ capName: "pipeline-orchestrator",
33151
+ capScope: "system",
33152
+ addonId: null,
33153
+ access: "create"
33154
+ },
33095
33155
  "pipelineOrchestrator.setAgentDetectWeight": {
33096
33156
  capName: "pipeline-orchestrator",
33097
33157
  capScope: "system",
@@ -36223,6 +36283,11 @@ Object.freeze({
36223
36283
  form: "array",
36224
36284
  optional: true
36225
36285
  }],
36286
+ "pipelineAnalytics.listSummaries": [{
36287
+ name: "deviceIds",
36288
+ form: "array",
36289
+ optional: false
36290
+ }],
36226
36291
  "pipelineAnalytics.listTrackMedia": [{
36227
36292
  name: "deviceId",
36228
36293
  form: "single",
@@ -19055,6 +19055,33 @@ var RecentTracksQueryInput = object({
19055
19055
  */
19056
19056
  classes: array(string()).optional()
19057
19057
  });
19058
+ /**
19059
+ * A Summary (D359): the per-camera session envelope that references tracks.
19060
+ * `groupShotKey` is the media key of its group shot (`ownerKind: 'summary'`,
19061
+ * served by the event-media plane by key), null until the first frame with a
19062
+ * member visible has been materialised.
19063
+ */
19064
+ var SummarySchema = object({
19065
+ id: string(),
19066
+ deviceId: number(),
19067
+ openedAt: number(),
19068
+ lastActiveAt: number(),
19069
+ sealedAt: number().nullable(),
19070
+ memberCount: number().int().nonnegative(),
19071
+ groupShotKey: string().nullable()
19072
+ });
19073
+ var SummariesQueryInput = object({
19074
+ deviceIds: array(number()).min(1),
19075
+ since: number().optional(),
19076
+ until: number().optional(),
19077
+ limit: number().int().min(1).max(200).default(50)
19078
+ });
19079
+ var SummariesPageSchema = object({ summaries: array(SummarySchema).readonly() });
19080
+ var SummaryDetailSchema = object({
19081
+ summary: SummarySchema,
19082
+ /** Member track ids, in absorption order. */
19083
+ trackIds: array(string()).readonly()
19084
+ });
19058
19085
  var RecentTracksPageSchema = object({
19059
19086
  /** Merged page, ordered by (`lastSeen` DESC, `trackId` DESC). */
19060
19087
  tracks: array(TrackSchema).readonly(),
@@ -19455,7 +19482,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
19455
19482
  * timeline would read as a camera that saw nothing.
19456
19483
  */
19457
19484
  classes: array(string()).optional()
19458
- }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(object({ deviceId: number() }), _void(), {
19485
+ }), array(TrackSchema).readonly()), method(RecentTracksQueryInput, RecentTracksPageSchema), method(SummariesQueryInput, SummariesPageSchema), method(object({ id: string() }), SummaryDetailSchema.nullable()), method(object({ deviceId: number() }), _void(), {
19459
19486
  kind: "mutation",
19460
19487
  auth: "admin"
19461
19488
  }), method(DeviceEventQueryInput, array(MotionEventSchema).readonly()), method(ObjectEventQueryInput, array(ObjectEventSchema).readonly()), method(DeviceEventQueryInput, array(AudioEventSchema).readonly()), method(object({ deviceId: number() }), array(EventKindDescriptorSchema).readonly()), method(object({ deviceIds: array(number()).min(1).max(200) }), array(EventKindsForDeviceSchema).readonly()), method(object({
@@ -20390,6 +20417,14 @@ var AgentPipelineSettingsSchema = object({
20390
20417
  /** Node is eligible to be the ingest / source-owner (serve the restream). */
20391
20418
  ingest: boolean().optional(),
20392
20419
  /**
20420
+ * This node's decode RAM budget, MB. Wins over the cluster
20421
+ * `nodeDecodeBudgetMb`; absent, the runner derives a share of the node's
20422
+ * own RAM unless the operator moved the cluster value (D365).
20423
+ */
20424
+ decodeBudgetMb: number().int().min(1024).max(65536).optional(),
20425
+ /** This node's live decode-worker cap. Wins over the cluster `maxLiveDecodeWorkers`. */
20426
+ maxLiveDecodeWorkers: number().int().min(1).max(32).optional(),
20427
+ /**
20393
20428
  * Operator override for the LAN host a cross-node decoder dials to reach
20394
20429
  * THIS node's restream (Cluster UI). Absent → auto-detect: a remote runner
20395
20430
  * falls back to its `CAMSTACK_HUB_URL`-derived host (the Moleculer address
@@ -20851,6 +20886,13 @@ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
20851
20886
  }), object({ success: literal(true) }), {
20852
20887
  kind: "mutation",
20853
20888
  auth: "admin"
20889
+ }), method(object({
20890
+ agentNodeId: string(),
20891
+ decodeBudgetMb: number().int().min(1024).max(65536).nullable().optional(),
20892
+ maxLiveDecodeWorkers: number().int().min(1).max(32).nullable().optional()
20893
+ }), object({ success: literal(true) }), {
20894
+ kind: "mutation",
20895
+ auth: "admin"
20854
20896
  }), method(object({
20855
20897
  agentNodeId: string(),
20856
20898
  reachableHost: string().nullable()
@@ -32456,6 +32498,12 @@ Object.freeze({
32456
32498
  addonId: null,
32457
32499
  access: "view"
32458
32500
  },
32501
+ "pipelineAnalytics.getSummary": {
32502
+ capName: "pipeline-analytics",
32503
+ capScope: "device",
32504
+ addonId: null,
32505
+ access: "view"
32506
+ },
32459
32507
  "pipelineAnalytics.getTrack": {
32460
32508
  capName: "pipeline-analytics",
32461
32509
  capScope: "device",
@@ -32534,6 +32582,12 @@ Object.freeze({
32534
32582
  addonId: null,
32535
32583
  access: "view"
32536
32584
  },
32585
+ "pipelineAnalytics.listSummaries": {
32586
+ capName: "pipeline-analytics",
32587
+ capScope: "device",
32588
+ addonId: null,
32589
+ access: "view"
32590
+ },
32537
32591
  "pipelineAnalytics.listTrackMedia": {
32538
32592
  capName: "pipeline-analytics",
32539
32593
  capScope: "device",
@@ -33092,6 +33146,12 @@ Object.freeze({
33092
33146
  addonId: null,
33093
33147
  access: "create"
33094
33148
  },
33149
+ "pipelineOrchestrator.setAgentDecodeLimits": {
33150
+ capName: "pipeline-orchestrator",
33151
+ capScope: "system",
33152
+ addonId: null,
33153
+ access: "create"
33154
+ },
33095
33155
  "pipelineOrchestrator.setAgentDetectWeight": {
33096
33156
  capName: "pipeline-orchestrator",
33097
33157
  capScope: "system",
@@ -36223,6 +36283,11 @@ Object.freeze({
36223
36283
  form: "array",
36224
36284
  optional: true
36225
36285
  }],
36286
+ "pipelineAnalytics.listSummaries": [{
36287
+ name: "deviceIds",
36288
+ form: "array",
36289
+ optional: false
36290
+ }],
36226
36291
  "pipelineAnalytics.listTrackMedia": [{
36227
36292
  name: "deviceId",
36228
36293
  form: "single",
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_dist = require("../dist-C1ivZASR.js");
5
+ const require_dist = require("../dist-DusCdQeu.js");
6
6
  let node_crypto = require("node:crypto");
7
7
  let node_child_process = require("node:child_process");
8
8
  //#region src/ingress/tailscale-cli.ts
@@ -1,4 +1,4 @@
1
- import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-CAA5j948.mjs";
1
+ import { a as EventCategory, i as BaseAddon, n as networkAccessCapability } from "../dist-DzOJ1z3l.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { execFile } from "node:child_process";
4
4
  import { promisify } from "node:util";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-tailscale",
3
- "version": "1.2.67",
3
+ "version": "1.2.69",
4
4
  "description": "Tailscale bundle for CamStack — joins the host to a tailnet (client) and exposes the hub via Serve/Funnel (ingress). Multi-entry npm package shipping 2 addons under a single bundle.",
5
5
  "keywords": [
6
6
  "camstack",