@camstack/types 1.2.341 → 1.2.343

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
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-CO06DNd_.js");
2
+ const require_sleep = require("./sleep-BwkkI2wP.js");
3
3
  const require_event_category = require("./event-category-CHduMGvg.js");
4
4
  const require_err_msg = require("./err-msg-Dx2Kor0g.js");
5
5
  //#region src/generated/cap-input-defaults.ts
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $t as normalizeSecretOwner, A as adminUiCapability, At as PEER_BYTES_MAX_OUTSTANDING, C as deviceOpsCapability, Ct as clearKnownSecrets, Dt as scrubKnownSecrets, Et as registerKnownSecret, I as expandCapMethods, It as DisposerChain, Jt as arrayItemFieldPath, K as ReadinessRegistry, Lt as BaseAddon, Mt as PEER_BYTES_TICKET_TTL_MS, O as describeCustomActions, Ot as shortSecretRefHash, Pt as DATAPLANE_SECRET_HEADER, Qt as isSecretRef, Rt as normalizeAddonInitResult, St as MIN_SCRUBBED_LENGTH, T as DEVICE_CHILDREN_BATCH_MAX, Tt as knownSecretCount, U as nodePin, W as readNodePin, X as scopeKey, Xt as formatSecretScope, Yt as buildSecretRef, Zt as globalSecretScope, _n as isSecretMarkerLike, a as asJsonObject, b as collectZodSecretPaths, bt as REVALIDATE_AFTER_MS, d as BOOT_RECOVERY_BACKOFF_MS, en as parseSecretRef, f as DEVICE_SCOPED_CAPS, fn as SECRET_CLEAR, gn as isSecretMarker, h as createEventBusSliceSource, hn as isSecretFieldView, in as emitReadiness, jt as PEER_BYTES_STALL_MS, kt as PEER_BYTES_CHUNK_BYTES, m as createDeviceProxy, mn as isSecretClear, p as isDeviceScopedCap, pn as classifySecretWrite, q as ReadinessTimeoutError, qt as SECRET_REF_SCHEME, s as asString, t as sleep, u as parseJsonUnknown, vn as makeSecretMarker, w as viewerUiCapability, wt as forgetKnownSecret, x as isZodSecret, xt as createSecretsAccess, yn as toSecretFieldView, yt as resolveSecretViewsIn } from "./sleep-CI0n5D44.mjs";
1
+ import { $t as normalizeSecretOwner, A as adminUiCapability, At as PEER_BYTES_MAX_OUTSTANDING, C as deviceOpsCapability, Ct as clearKnownSecrets, Dt as scrubKnownSecrets, Et as registerKnownSecret, I as expandCapMethods, It as DisposerChain, Jt as arrayItemFieldPath, K as ReadinessRegistry, Lt as BaseAddon, Mt as PEER_BYTES_TICKET_TTL_MS, O as describeCustomActions, Ot as shortSecretRefHash, Pt as DATAPLANE_SECRET_HEADER, Qt as isSecretRef, Rt as normalizeAddonInitResult, St as MIN_SCRUBBED_LENGTH, T as DEVICE_CHILDREN_BATCH_MAX, Tt as knownSecretCount, U as nodePin, W as readNodePin, X as scopeKey, Xt as formatSecretScope, Yt as buildSecretRef, Zt as globalSecretScope, _n as isSecretMarkerLike, a as asJsonObject, b as collectZodSecretPaths, bt as REVALIDATE_AFTER_MS, d as BOOT_RECOVERY_BACKOFF_MS, en as parseSecretRef, f as DEVICE_SCOPED_CAPS, fn as SECRET_CLEAR, gn as isSecretMarker, h as createEventBusSliceSource, hn as isSecretFieldView, in as emitReadiness, jt as PEER_BYTES_STALL_MS, kt as PEER_BYTES_CHUNK_BYTES, m as createDeviceProxy, mn as isSecretClear, p as isDeviceScopedCap, pn as classifySecretWrite, q as ReadinessTimeoutError, qt as SECRET_REF_SCHEME, s as asString, t as sleep, u as parseJsonUnknown, vn as makeSecretMarker, w as viewerUiCapability, wt as forgetKnownSecret, x as isZodSecret, xt as createSecretsAccess, yn as toSecretFieldView, yt as resolveSecretViewsIn } from "./sleep-DwAQ9sqX.mjs";
2
2
  import { t as EventCategory } from "./event-category-DaIZi00R.mjs";
3
3
  import { a as DeviceType, t as errMsg } from "./err-msg-DX6i_MY4.mjs";
4
4
  //#region src/generated/cap-input-defaults.ts
@@ -318,10 +318,10 @@ declare const CustomActionInputSchema: z.ZodObject<{
318
318
  /**
319
319
  * `addons` is a **hub-centric** cap: the hub hosts the single provider
320
320
  * and orchestrates per-node operations itself. The optional `nodeId`
321
- * on `listUpdates` / `updatePackage` / `forceRefresh` is DATA for the
322
- * hub provider's internal dispatcher (it reads/pushes to the target
323
- * agent via `$agent.*` Moleculer actions), NOT a routing hint for the
324
- * cap-router — agents host no `addons` provider of their own.
321
+ * on `list` / `listUpdates` / `updatePackage` / `forceRefresh` is DATA
322
+ * for the hub provider's internal dispatcher (it reads/pushes to the
323
+ * target agent via `$agent.*` Moleculer actions), NOT a routing hint
324
+ * for the cap-router — agents host no `addons` provider of their own.
325
325
  *
326
326
  * `nodeIdMode: 'data'` therefore forwards `nodeId` to the local hub
327
327
  * provider intact instead of stripping it for generic node routing.
@@ -334,7 +334,15 @@ export declare const addonsCapability: {
334
334
  readonly mode: 'singleton';
335
335
  readonly nodeIdMode: 'data';
336
336
  readonly methods: {
337
- readonly list: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
337
+ /**
338
+ * Installed addon roster for a node. `nodeId` omitted (or `'hub'`)
339
+ * is the hub's own registry; an agent `nodeId` overlays that agent's
340
+ * installed package versions (via `$agent.status`) onto hub manifests
341
+ * and drops packages the agent does not have.
342
+ */
343
+ readonly list: import("./capability-definition.js").CapabilityMethodSchema<z.ZodOptional<z.ZodObject<{
344
+ nodeId: z.ZodOptional<z.ZodString>;
345
+ }, z.core.$strip>>, z.ZodReadonly<z.ZodArray<z.ZodObject<{
338
346
  manifest: z.ZodObject<{
339
347
  id: z.ZodString;
340
348
  name: z.ZodOptional<z.ZodString>;
@@ -1220,6 +1220,18 @@ export declare const osdManagerCapability: {
1220
1220
  }, z.core.$strip>, z.ZodObject<{
1221
1221
  success: z.ZodLiteral<true>;
1222
1222
  }, z.core.$strip>, "mutation">;
1223
+ /**
1224
+ * Toggle the camera firmware overlay on/off (`osd.setOverlay` `enabled`).
1225
+ * Distinct from the binding's own `enabled` flag — this is what the
1226
+ * operator sees on the live picture (e.g. Reolink camera name layer).
1227
+ */
1228
+ readonly setSlotCameraEnabled: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
1229
+ deviceId: z.ZodNumber;
1230
+ slotId: z.ZodString;
1231
+ enabled: z.ZodBoolean;
1232
+ }, z.core.$strip>, z.ZodObject<{
1233
+ success: z.ZodLiteral<true>;
1234
+ }, z.core.$strip>, "mutation">;
1223
1235
  /**
1224
1236
  * Replace one camera's binding configuration from another. Writable source
1225
1237
  * slots are mapped by ordinal onto writable target slots so different
package/dist/client.js CHANGED
@@ -6020,6 +6020,7 @@ function createDeviceProxy(api, binding, opts) {
6020
6020
  getSourceCatalog: (input) => dispatchSystem("osdManager", "getSourceCatalog", "query", input),
6021
6021
  setSlotBinding: (input) => dispatchSystem("osdManager", "setSlotBinding", "mutation", input),
6022
6022
  clearSlotBinding: (input) => dispatchSystem("osdManager", "clearSlotBinding", "mutation", input),
6023
+ setSlotCameraEnabled: (input) => dispatchSystem("osdManager", "setSlotCameraEnabled", "mutation", input),
6023
6024
  previewSlot: (input) => dispatchSystem("osdManager", "previewSlot", "mutation", input),
6024
6025
  renderDevice: (input) => dispatchSystem("osdManager", "renderDevice", "mutation", input)
6025
6026
  };
@@ -9781,7 +9782,7 @@ var NC_TEMPLATE_VARS = [
9781
9782
  {
9782
9783
  name: "skipped",
9783
9784
  label: "Skipped count",
9784
- description: "How many named devices the mode cannot arm — muted, detection off, offline (title: m saltati).",
9785
+ description: "How many named devices the mode cannot arm — muted, detection off, offline, or Arm-anyway exclusions (title: m saltati).",
9785
9786
  example: "1",
9786
9787
  group: "system",
9787
9788
  families: ["rule"],
package/dist/client.mjs CHANGED
@@ -6019,6 +6019,7 @@ function createDeviceProxy(api, binding, opts) {
6019
6019
  getSourceCatalog: (input) => dispatchSystem("osdManager", "getSourceCatalog", "query", input),
6020
6020
  setSlotBinding: (input) => dispatchSystem("osdManager", "setSlotBinding", "mutation", input),
6021
6021
  clearSlotBinding: (input) => dispatchSystem("osdManager", "clearSlotBinding", "mutation", input),
6022
+ setSlotCameraEnabled: (input) => dispatchSystem("osdManager", "setSlotCameraEnabled", "mutation", input),
6022
6023
  previewSlot: (input) => dispatchSystem("osdManager", "previewSlot", "mutation", input),
6023
6024
  renderDevice: (input) => dispatchSystem("osdManager", "renderDevice", "mutation", input)
6024
6025
  };
@@ -9780,7 +9781,7 @@ var NC_TEMPLATE_VARS = [
9780
9781
  {
9781
9782
  name: "skipped",
9782
9783
  label: "Skipped count",
9783
- description: "How many named devices the mode cannot arm — muted, detection off, offline (title: m saltati).",
9784
+ description: "How many named devices the mode cannot arm — muted, detection off, offline, or Arm-anyway exclusions (title: m saltati).",
9784
9785
  example: "1",
9785
9786
  group: "system",
9786
9787
  families: ["rule"],
@@ -284,9 +284,7 @@ export type AppRouter = TrpcCoreRouter<{
284
284
  transformer: true;
285
285
  }, TRPCDecorateCreateRouterOptions<{
286
286
  list: TRPCQueryProcedure<{
287
- input: {
288
- nodeId?: string | undefined;
289
- } | undefined;
287
+ input: z.input<typeof addonsCapability.methods.list.input>;
290
288
  output: z.infer<typeof addonsCapability.methods.list.output>;
291
289
  meta: object;
292
290
  }>;
@@ -5528,6 +5526,13 @@ export type AppRouter = TrpcCoreRouter<{
5528
5526
  output: z.infer<typeof osdManagerCapability.methods.clearSlotBinding.output>;
5529
5527
  meta: object;
5530
5528
  }>;
5529
+ setSlotCameraEnabled: TRPCMutationProcedure<{
5530
+ input: {
5531
+ [x: string]: unknown;
5532
+ } & z.input<typeof osdManagerCapability.methods.setSlotCameraEnabled.input>;
5533
+ output: z.infer<typeof osdManagerCapability.methods.setSlotCameraEnabled.output>;
5534
+ meta: object;
5535
+ }>;
5531
5536
  copyDeviceConfiguration: TRPCMutationProcedure<{
5532
5537
  input: {
5533
5538
  [x: string]: unknown;
@@ -298,7 +298,7 @@ export interface DeviceProxy {
298
298
  readonly faceGallery: Pick<InferDeviceProxyCap<typeof faceGalleryCapability>, 'listRecentFaces' | 'getFaceByTrack'>;
299
299
  readonly networkQuality: Pick<InferDeviceProxyCap<typeof networkQualityCapability>, 'getDeviceStats' | 'reportClientStats'>;
300
300
  readonly notificationRules: Pick<InferDeviceProxyCap<typeof notificationRulesCapability>, 'setDeviceMuted'>;
301
- readonly osdManager: Pick<InferDeviceProxyCap<typeof osdManagerCapability>, 'getDeviceOsd' | 'getSourceCatalog' | 'setSlotBinding' | 'clearSlotBinding' | 'previewSlot' | 'renderDevice'>;
301
+ readonly osdManager: Pick<InferDeviceProxyCap<typeof osdManagerCapability>, 'getDeviceOsd' | 'getSourceCatalog' | 'setSlotBinding' | 'clearSlotBinding' | 'setSlotCameraEnabled' | 'previewSlot' | 'renderDevice'>;
302
302
  readonly pipelineExecutor: Pick<InferDeviceProxyCap<typeof pipelineExecutorCapability>, 'runPipeline' | 'runPipelineBatch'>;
303
303
  readonly pipelineOrchestrator: Pick<InferDeviceProxyCap<typeof pipelineOrchestratorCapability>, 'assignPipeline' | 'unassignPipeline' | 'setPipelineDevicePin' | 'getPipelineDevicePin' | 'getPipelineAssignment' | 'getCameraMetrics' | 'assignAudio' | 'unassignAudio' | 'getAudioAssignment' | 'getCameraSettings' | 'setCameraStepToggle' | 'getCameraStepOverrides' | 'setCameraStepOverride' | 'setCameraStepSettings' | 'setCameraPipelineForAgent' | 'resolvePipeline' | 'getCameraSwitches' | 'setCameraSwitch' | 'getCameraStatus' | 'getDeviceSettingsContribution' | 'getDeviceLiveContribution' | 'applyDeviceSettingsPatch'>;
304
304
  readonly pipelineRunner: Pick<InferDeviceProxyCap<typeof pipelineRunnerCapability>, 'detachCamera' | 'getCameraMetrics' | 'requestOccupancyBurst' | 'runDetailSubtree' | 'parkTrackFrame' | 'getParkedTrackFrame' | 'releaseParkedTrackFrames'>;
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1290 method paths across 169 capabilities.
9
+ * Coverage: 1291 method paths across 169 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,8 +6,8 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 516 methods carry a device reference, of which
10
- * 162 are on SYSTEM-scope caps.
9
+ * Coverage: 517 methods carry a device reference, of which
10
+ * 163 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
13
13
  * a numeric device field (targets[].deviceId) are all mapped; the matcher
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_sleep = require("./sleep-CO06DNd_.js");
2
+ const require_sleep = require("./sleep-BwkkI2wP.js");
3
3
  const require_event_category = require("./event-category-CHduMGvg.js");
4
4
  const require_composition = require("./composition-BLWAivB2.js");
5
5
  const require_node_color = require("./node-color.js");
@@ -36294,10 +36294,10 @@ var CustomActionInputSchema = zod.z.object({
36294
36294
  /**
36295
36295
  * `addons` is a **hub-centric** cap: the hub hosts the single provider
36296
36296
  * and orchestrates per-node operations itself. The optional `nodeId`
36297
- * on `listUpdates` / `updatePackage` / `forceRefresh` is DATA for the
36298
- * hub provider's internal dispatcher (it reads/pushes to the target
36299
- * agent via `$agent.*` Moleculer actions), NOT a routing hint for the
36300
- * cap-router — agents host no `addons` provider of their own.
36297
+ * on `list` / `listUpdates` / `updatePackage` / `forceRefresh` is DATA
36298
+ * for the hub provider's internal dispatcher (it reads/pushes to the
36299
+ * target agent via `$agent.*` Moleculer actions), NOT a routing hint
36300
+ * for the cap-router — agents host no `addons` provider of their own.
36301
36301
  *
36302
36302
  * `nodeIdMode: 'data'` therefore forwards `nodeId` to the local hub
36303
36303
  * provider intact instead of stripping it for generic node routing.
@@ -36310,7 +36310,13 @@ var addonsCapability = {
36310
36310
  mode: "singleton",
36311
36311
  nodeIdMode: "data",
36312
36312
  methods: {
36313
- list: require_sleep.method(zod.z.void(), zod.z.array(AddonListItemSchema).readonly()),
36313
+ /**
36314
+ * Installed addon roster for a node. `nodeId` omitted (or `'hub'`)
36315
+ * is the hub's own registry; an agent `nodeId` overlays that agent's
36316
+ * installed package versions (via `$agent.status`) onto hub manifests
36317
+ * and drops packages the agent does not have.
36318
+ */
36319
+ list: require_sleep.method(zod.z.object({ nodeId: zod.z.string().optional() }).optional(), zod.z.array(AddonListItemSchema).readonly()),
36314
36320
  getLogs: require_sleep.method(zod.z.object({
36315
36321
  addonId: zod.z.string(),
36316
36322
  limit: zod.z.number().min(1).max(500).default(100),
@@ -43067,6 +43073,19 @@ var osdManagerCapability = {
43067
43073
  auth: "admin"
43068
43074
  }),
43069
43075
  /**
43076
+ * Toggle the camera firmware overlay on/off (`osd.setOverlay` `enabled`).
43077
+ * Distinct from the binding's own `enabled` flag — this is what the
43078
+ * operator sees on the live picture (e.g. Reolink camera name layer).
43079
+ */
43080
+ setSlotCameraEnabled: require_sleep.method(zod.z.object({
43081
+ deviceId: zod.z.number().int(),
43082
+ slotId: zod.z.string().min(1),
43083
+ enabled: zod.z.boolean()
43084
+ }), zod.z.object({ success: zod.z.literal(true) }), {
43085
+ kind: "mutation",
43086
+ auth: "admin"
43087
+ }),
43088
+ /**
43070
43089
  * Replace one camera's binding configuration from another. Writable source
43071
43090
  * slots are mapped by ordinal onto writable target slots so different
43072
43091
  * provider slot ids do not make the copied configuration disappear.
@@ -58153,6 +58172,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
58153
58172
  addonId: null,
58154
58173
  access: "create"
58155
58174
  },
58175
+ "osdManager.setSlotCameraEnabled": {
58176
+ capName: "osd-manager",
58177
+ capScope: "system",
58178
+ addonId: null,
58179
+ access: "create"
58180
+ },
58156
58181
  "osdManager.upsertTemplate": {
58157
58182
  capName: "osd-manager",
58158
58183
  capScope: "system",
@@ -67869,6 +67894,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
67869
67894
  form: "single",
67870
67895
  optional: false
67871
67896
  }],
67897
+ "osdManager.setSlotCameraEnabled": [{
67898
+ name: "deviceId",
67899
+ form: "single",
67900
+ optional: false
67901
+ }],
67872
67902
  "petFeeder.callPet": [{
67873
67903
  name: "deviceId",
67874
67904
  form: "single",
@@ -69285,6 +69315,7 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
69285
69315
  "osdManager.previewSlot",
69286
69316
  "osdManager.renderDevice",
69287
69317
  "osdManager.setSlotBinding",
69318
+ "osdManager.setSlotCameraEnabled",
69288
69319
  "pipelineExecutor.clearModelBoundDeviceOverrides",
69289
69320
  "pipelineExecutor.runPipeline",
69290
69321
  "pipelineExecutor.runPipelineBatch",
@@ -73851,7 +73882,7 @@ var NC_TEMPLATE_VARS = [
73851
73882
  {
73852
73883
  name: "skipped",
73853
73884
  label: "Skipped count",
73854
- description: "How many named devices the mode cannot arm — muted, detection off, offline (title: m saltati).",
73885
+ description: "How many named devices the mode cannot arm — muted, detection off, offline, or Arm-anyway exclusions (title: m saltati).",
73855
73886
  example: "1",
73856
73887
  group: "system",
73857
73888
  families: ["rule"],
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as BrokerStatsSchema, $t as normalizeSecretOwner, A as adminUiCapability, At as PEER_BYTES_MAX_OUTSTANDING, B as resolveCapMount, Bt as parseSecretStatePath, C as deviceOpsCapability, Cn as isKeychainStoredField, Ct as clearKnownSecrets, D as defineCustomActions, Dn as audioChunkBytesPerSample, Dt as scrubKnownSecrets, E as customAction, En as AUDIO_CHUNK_FORMATS, Et as registerKnownSecret, F as event, Ft as SHARE_VIEW_KINDS, G as toNodeId, Gt as resolveSecretMarkers, H as CAP_NODE_PIN_CONTEXT_KEY, Ht as secretTreeFromSchema, I as expandCapMethods, It as DisposerChain, J as emitDownForOwnedCaps, Jt as arrayItemFieldPath, K as ReadinessRegistry, Kt as transformSecretWrite, L as isDeviceConfigCap, Lt as BaseAddon, M as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Mt as PEER_BYTES_TICKET_TTL_MS, N as DEVICE_STATUS_METHOD, Nt as PeerBytesTicketSchema, O as describeCustomActions, On as expandAudioChunkToF32le, Ot as shortSecretRefHash, P as PROVIDER_PIN_FIELD, Pt as DATAPLANE_SECRET_HEADER, Q as AudioStreamPickSchema, Qt as isSecretRef, R as method, Rt as normalizeAddonInitResult, S as RawStateResultSchema, Sn as collectSecretConfigKeys, St as MIN_SCRUBBED_LENGTH, T as DEVICE_CHILDREN_BATCH_MAX, Tn as schemaDeclaresAnyField, Tt as knownSecretCount, U as nodePin, Ut as KeychainWriteRefusedError, V as systemMethod, Vt as secretTreeFromPaths, W as readNodePin, Wt as collectSecretMarkerRefs, X as scopeKey, Xt as formatSecretScope, Y as readinessKey, Yt as buildSecretRef, Z as AudioChunkFormatSchema, Zt as globalSecretScope, _ as createMirrorSource, _n as isSecretMarkerLike, _t as parseProfileBrokerId, a as asJsonObject, an as isEvent, at as CameraStreamSchema, b as collectZodSecretPaths, bn as REDACTED_SECRET, bt as REVALIDATE_AFTER_MS, c as parseJsonArray, cn as collectHydratedFieldEntries, ct as ProfileRtspEntrySchema, d as BOOT_RECOVERY_BACKOFF_MS, dn as resolveHydratedFieldValue, dt as StreamSourceEntrySchema, en as parseSecretRef, et as BrokerStatusSchema, f as DEVICE_SCOPED_CAPS, fn as SECRET_CLEAR, ft as StreamSourceSchema, g as createLazyTrpcSource, gn as isSecretMarker, gt as makeSourceBrokerId, h as createEventBusSliceSource, hn as isSecretFieldView, ht as makeProfileBrokerId, i as asJsonArray, in as emitReadiness, it as CamStreamResolutionSchema, j as DEFAULT_RUNTIME_STATE_DURABILITY, jt as PEER_BYTES_STALL_MS, k as deviceCustomAction, kn as isAudioChunkFormat, kt as PEER_BYTES_CHUNK_BYTES, l as parseJsonObject, ln as collectHydratedFieldValues, lt as ProfileSlotSchema, m as createDeviceProxy, mn as isSecretClear, mt as SubscribeAudioChunksResultSchema, n as sleepCancellable, nn as createDurableState, nt as CamProfileSchema, o as asNumber, on as WELL_KNOWN_TABS, ot as DecodedAudioChunkSchema, p as isDeviceScopedCap, pn as classifySecretWrite, pt as SubscribeAudioChunksInputSchema, q as ReadinessTimeoutError, qt as SECRET_REF_SCHEME, r as asBoolean, rn as createEvent, rt as CamStreamKindSchema, s as asString, sn as WELL_KNOWN_TAB_MAP, st as FrameHandleSchema, t as sleep, tn as normalizeNodeId, tt as CAM_PROFILE_ORDER, u as parseJsonUnknown, un as hydrateSchema, ut as ProfileSlotStatusSchema, v as createSliceHandle, vn as makeSecretMarker, vt as selectAssignedProfileSlots, w as viewerUiCapability, wn as isSecretConfigField, wt as forgetKnownSecret, x as isZodSecret, xn as collectKeychainStoredKeys, xt as createSecretsAccess, y as SECRET_META, yn as toSecretFieldView, yt as resolveSecretViewsIn, z as optionalMethod, zt as mergeSecretStatePaths } from "./sleep-CI0n5D44.mjs";
1
+ import { $ as BrokerStatsSchema, $t as normalizeSecretOwner, A as adminUiCapability, At as PEER_BYTES_MAX_OUTSTANDING, B as resolveCapMount, Bt as parseSecretStatePath, C as deviceOpsCapability, Cn as isKeychainStoredField, Ct as clearKnownSecrets, D as defineCustomActions, Dn as audioChunkBytesPerSample, Dt as scrubKnownSecrets, E as customAction, En as AUDIO_CHUNK_FORMATS, Et as registerKnownSecret, F as event, Ft as SHARE_VIEW_KINDS, G as toNodeId, Gt as resolveSecretMarkers, H as CAP_NODE_PIN_CONTEXT_KEY, Ht as secretTreeFromSchema, I as expandCapMethods, It as DisposerChain, J as emitDownForOwnedCaps, Jt as arrayItemFieldPath, K as ReadinessRegistry, Kt as transformSecretWrite, L as isDeviceConfigCap, Lt as BaseAddon, M as DEVICE_SETTINGS_CONTRIBUTION_METHODS, Mt as PEER_BYTES_TICKET_TTL_MS, N as DEVICE_STATUS_METHOD, Nt as PeerBytesTicketSchema, O as describeCustomActions, On as expandAudioChunkToF32le, Ot as shortSecretRefHash, P as PROVIDER_PIN_FIELD, Pt as DATAPLANE_SECRET_HEADER, Q as AudioStreamPickSchema, Qt as isSecretRef, R as method, Rt as normalizeAddonInitResult, S as RawStateResultSchema, Sn as collectSecretConfigKeys, St as MIN_SCRUBBED_LENGTH, T as DEVICE_CHILDREN_BATCH_MAX, Tn as schemaDeclaresAnyField, Tt as knownSecretCount, U as nodePin, Ut as KeychainWriteRefusedError, V as systemMethod, Vt as secretTreeFromPaths, W as readNodePin, Wt as collectSecretMarkerRefs, X as scopeKey, Xt as formatSecretScope, Y as readinessKey, Yt as buildSecretRef, Z as AudioChunkFormatSchema, Zt as globalSecretScope, _ as createMirrorSource, _n as isSecretMarkerLike, _t as parseProfileBrokerId, a as asJsonObject, an as isEvent, at as CameraStreamSchema, b as collectZodSecretPaths, bn as REDACTED_SECRET, bt as REVALIDATE_AFTER_MS, c as parseJsonArray, cn as collectHydratedFieldEntries, ct as ProfileRtspEntrySchema, d as BOOT_RECOVERY_BACKOFF_MS, dn as resolveHydratedFieldValue, dt as StreamSourceEntrySchema, en as parseSecretRef, et as BrokerStatusSchema, f as DEVICE_SCOPED_CAPS, fn as SECRET_CLEAR, ft as StreamSourceSchema, g as createLazyTrpcSource, gn as isSecretMarker, gt as makeSourceBrokerId, h as createEventBusSliceSource, hn as isSecretFieldView, ht as makeProfileBrokerId, i as asJsonArray, in as emitReadiness, it as CamStreamResolutionSchema, j as DEFAULT_RUNTIME_STATE_DURABILITY, jt as PEER_BYTES_STALL_MS, k as deviceCustomAction, kn as isAudioChunkFormat, kt as PEER_BYTES_CHUNK_BYTES, l as parseJsonObject, ln as collectHydratedFieldValues, lt as ProfileSlotSchema, m as createDeviceProxy, mn as isSecretClear, mt as SubscribeAudioChunksResultSchema, n as sleepCancellable, nn as createDurableState, nt as CamProfileSchema, o as asNumber, on as WELL_KNOWN_TABS, ot as DecodedAudioChunkSchema, p as isDeviceScopedCap, pn as classifySecretWrite, pt as SubscribeAudioChunksInputSchema, q as ReadinessTimeoutError, qt as SECRET_REF_SCHEME, r as asBoolean, rn as createEvent, rt as CamStreamKindSchema, s as asString, sn as WELL_KNOWN_TAB_MAP, st as FrameHandleSchema, t as sleep, tn as normalizeNodeId, tt as CAM_PROFILE_ORDER, u as parseJsonUnknown, un as hydrateSchema, ut as ProfileSlotStatusSchema, v as createSliceHandle, vn as makeSecretMarker, vt as selectAssignedProfileSlots, w as viewerUiCapability, wn as isSecretConfigField, wt as forgetKnownSecret, x as isZodSecret, xn as collectKeychainStoredKeys, xt as createSecretsAccess, y as SECRET_META, yn as toSecretFieldView, yt as resolveSecretViewsIn, z as optionalMethod, zt as mergeSecretStatePaths } from "./sleep-DwAQ9sqX.mjs";
2
2
  import { i as publicEventCategories, n as OWNER_ONLY_EVENT_CATEGORIES, r as isOwnerOnlyEventCategory, t as EventCategory } from "./event-category-DaIZi00R.mjs";
3
3
  import { $ as MAX_EXPRESSION_AST_NODES, A as compositionFeatureEnabled, At as Fmp4BoxSplitter, B as createStatefulExpressionMemory, Bt as pickVideoEncoder, C as CompositionTargetSchema, Ct as FFMPEG_PATH_ENV, D as MAX_COMPOSITION_ITEMS, E as MAX_COMPOSITION_FIELDS_PER_FEATURE, F as featureFieldEntries, Ft as buildInputArgs, G as createExpressionScope, H as evaluateStatefulExpressionCall, I as featureSources, It as buildVideoArgs, J as compileExpressionSafe, K as evaluateAst, L as fieldReads, Lt as invocationFromEncodeProfile, M as compositionReadKey, Mt as audioPlanFromEncodeProfile, N as compositionSliceKey, Nt as buildAudioArgs, O as composedDeviceRef, P as compositionSourceKey, Pt as buildFfmpegArgs, Q as EXPRESSION_IDENTIFIER_RE, R as EXPRESSION_INJECTED_NOW, Rt as isSoftwareDecode, S as CompositionSourceRefSchema, St as sliceChangedAt, T as MAX_COMPOSITION_FEATURES, U as toExpressionValue, V as evaluateExpressionSource, Vt as resolveStreamMaps, W as validateExpressionSource, X as tokenize, Y as parseExpression, Z as EXPRESSION_COMPILE_CACHE_CAPACITY, _ as CompositionItemEntrySchema, _t as SOURCE_DEVICE_TYPES, a as CUSTOMIZATION_BLOCK_NAME_PREFIX, at as EXPRESSION_BUILTINS, b as CompositionPassthroughFeatureSchema, bt as isSourceCap, c as CompositionCommandTargetSchema, ct as evaluateCount, d as CompositionFeatureSchema, dt as ExpressionEvalError, et as MAX_EXPRESSION_BINDINGS, f as CompositionFieldReadSchema, ft as ExpressionParseError, g as CompositionFromSourceSchema, gt as SOURCE_CAP_CHANGED_AT_FIELD, h as CompositionForwardCommandSchema, ht as SOURCE_CAP_ACTIVE_FIELD, i as COMPOSITION_ITEM_KEY_RE, it as RESERVED_BINDING_NAMES, j as compositionItemFieldPath, jt as AUDIO_PRESETS, k as composedDeviceStableId, kt as canonicalHash, l as CompositionExistingTargetSchema, lt as evaluateRose, m as CompositionFieldsFeatureSchema, mt as SOURCE_CAPS, n as COMPOSER_ADDON_ID, nt as MAX_EXPRESSION_EVAL_STEPS, o as CompositionBindingSchema, ot as EXPRESSION_BUILTIN_NAMES, p as CompositionFieldSourceSchema, pt as DEFAULT_FIRST_SIGHTING_FRESHNESS_MS, q as compileExpression, r as COMPOSITION_ITEM_ARRAY_PATH, rt as MAX_EXPRESSION_SOURCE_LENGTH, s as CompositionCodeSourceSchema, st as disarmRoseMemory, t as COMPOSED_DEVICE_STABLE_ID_PREFIX, tt as MAX_EXPRESSION_CALL_ARGS, u as CompositionExpressionSourceSchema, ut as isStatefulBuiltin, v as CompositionLiteralBindingSchema, vt as evaluateSensorEdge, w as MAX_COMPOSITION_CODE_LENGTH, x as CompositionSchema, xt as sliceActiveValue, y as CompositionNewTargetSchema, yt as evaluateSensorLevelEdge, z as cloneStatefulExpressionMemory, zt as logBannerArgs } from "./composition-Bzr7GwgP.mjs";
4
4
  import { NODE_COLOR_IDS, NodeColorIdSchema, assignNodeColorId } from "./node-color.mjs";
@@ -36293,10 +36293,10 @@ var CustomActionInputSchema = z.object({
36293
36293
  /**
36294
36294
  * `addons` is a **hub-centric** cap: the hub hosts the single provider
36295
36295
  * and orchestrates per-node operations itself. The optional `nodeId`
36296
- * on `listUpdates` / `updatePackage` / `forceRefresh` is DATA for the
36297
- * hub provider's internal dispatcher (it reads/pushes to the target
36298
- * agent via `$agent.*` Moleculer actions), NOT a routing hint for the
36299
- * cap-router — agents host no `addons` provider of their own.
36296
+ * on `list` / `listUpdates` / `updatePackage` / `forceRefresh` is DATA
36297
+ * for the hub provider's internal dispatcher (it reads/pushes to the
36298
+ * target agent via `$agent.*` Moleculer actions), NOT a routing hint
36299
+ * for the cap-router — agents host no `addons` provider of their own.
36300
36300
  *
36301
36301
  * `nodeIdMode: 'data'` therefore forwards `nodeId` to the local hub
36302
36302
  * provider intact instead of stripping it for generic node routing.
@@ -36309,7 +36309,13 @@ var addonsCapability = {
36309
36309
  mode: "singleton",
36310
36310
  nodeIdMode: "data",
36311
36311
  methods: {
36312
- list: method(z.void(), z.array(AddonListItemSchema).readonly()),
36312
+ /**
36313
+ * Installed addon roster for a node. `nodeId` omitted (or `'hub'`)
36314
+ * is the hub's own registry; an agent `nodeId` overlays that agent's
36315
+ * installed package versions (via `$agent.status`) onto hub manifests
36316
+ * and drops packages the agent does not have.
36317
+ */
36318
+ list: method(z.object({ nodeId: z.string().optional() }).optional(), z.array(AddonListItemSchema).readonly()),
36313
36319
  getLogs: method(z.object({
36314
36320
  addonId: z.string(),
36315
36321
  limit: z.number().min(1).max(500).default(100),
@@ -43066,6 +43072,19 @@ var osdManagerCapability = {
43066
43072
  auth: "admin"
43067
43073
  }),
43068
43074
  /**
43075
+ * Toggle the camera firmware overlay on/off (`osd.setOverlay` `enabled`).
43076
+ * Distinct from the binding's own `enabled` flag — this is what the
43077
+ * operator sees on the live picture (e.g. Reolink camera name layer).
43078
+ */
43079
+ setSlotCameraEnabled: method(z.object({
43080
+ deviceId: z.number().int(),
43081
+ slotId: z.string().min(1),
43082
+ enabled: z.boolean()
43083
+ }), z.object({ success: z.literal(true) }), {
43084
+ kind: "mutation",
43085
+ auth: "admin"
43086
+ }),
43087
+ /**
43069
43088
  * Replace one camera's binding configuration from another. Writable source
43070
43089
  * slots are mapped by ordinal onto writable target slots so different
43071
43090
  * provider slot ids do not make the copied configuration disappear.
@@ -58152,6 +58171,12 @@ var METHOD_ACCESS_MAP = Object.freeze({
58152
58171
  addonId: null,
58153
58172
  access: "create"
58154
58173
  },
58174
+ "osdManager.setSlotCameraEnabled": {
58175
+ capName: "osd-manager",
58176
+ capScope: "system",
58177
+ addonId: null,
58178
+ access: "create"
58179
+ },
58155
58180
  "osdManager.upsertTemplate": {
58156
58181
  capName: "osd-manager",
58157
58182
  capScope: "system",
@@ -67868,6 +67893,11 @@ var METHOD_DEVICE_SELECTORS = Object.freeze({
67868
67893
  form: "single",
67869
67894
  optional: false
67870
67895
  }],
67896
+ "osdManager.setSlotCameraEnabled": [{
67897
+ name: "deviceId",
67898
+ form: "single",
67899
+ optional: false
67900
+ }],
67871
67901
  "petFeeder.callPet": [{
67872
67902
  name: "deviceId",
67873
67903
  form: "single",
@@ -69284,6 +69314,7 @@ var SYSTEM_SCOPE_DEVICE_METHODS = [
69284
69314
  "osdManager.previewSlot",
69285
69315
  "osdManager.renderDevice",
69286
69316
  "osdManager.setSlotBinding",
69317
+ "osdManager.setSlotCameraEnabled",
69287
69318
  "pipelineExecutor.clearModelBoundDeviceOverrides",
69288
69319
  "pipelineExecutor.runPipeline",
69289
69320
  "pipelineExecutor.runPipelineBatch",
@@ -73850,7 +73881,7 @@ var NC_TEMPLATE_VARS = [
73850
73881
  {
73851
73882
  name: "skipped",
73852
73883
  label: "Skipped count",
73853
- description: "How many named devices the mode cannot arm — muted, detection off, offline (title: m saltati).",
73884
+ description: "How many named devices the mode cannot arm — muted, detection off, offline, or Arm-anyway exclusions (title: m saltati).",
73854
73885
  example: "1",
73855
73886
  group: "system",
73856
73887
  families: ["rule"],
@@ -5318,6 +5318,7 @@ function createDeviceProxy(api, binding, opts) {
5318
5318
  getSourceCatalog: (input) => dispatchSystem("osdManager", "getSourceCatalog", "query", input),
5319
5319
  setSlotBinding: (input) => dispatchSystem("osdManager", "setSlotBinding", "mutation", input),
5320
5320
  clearSlotBinding: (input) => dispatchSystem("osdManager", "clearSlotBinding", "mutation", input),
5321
+ setSlotCameraEnabled: (input) => dispatchSystem("osdManager", "setSlotCameraEnabled", "mutation", input),
5321
5322
  previewSlot: (input) => dispatchSystem("osdManager", "previewSlot", "mutation", input),
5322
5323
  renderDevice: (input) => dispatchSystem("osdManager", "renderDevice", "mutation", input)
5323
5324
  };
@@ -5318,6 +5318,7 @@ function createDeviceProxy(api, binding, opts) {
5318
5318
  getSourceCatalog: (input) => dispatchSystem("osdManager", "getSourceCatalog", "query", input),
5319
5319
  setSlotBinding: (input) => dispatchSystem("osdManager", "setSlotBinding", "mutation", input),
5320
5320
  clearSlotBinding: (input) => dispatchSystem("osdManager", "clearSlotBinding", "mutation", input),
5321
+ setSlotCameraEnabled: (input) => dispatchSystem("osdManager", "setSlotCameraEnabled", "mutation", input),
5321
5322
  previewSlot: (input) => dispatchSystem("osdManager", "previewSlot", "mutation", input),
5322
5323
  renderDevice: (input) => dispatchSystem("osdManager", "renderDevice", "mutation", input)
5323
5324
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/types",
3
- "version": "1.2.341",
3
+ "version": "1.2.343",
4
4
  "description": "Shared types, interfaces, and model catalogs for the CamStack detection ecosystem",
5
5
  "keywords": [
6
6
  "camstack",