@camstack/types 1.2.322 → 1.2.324

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.
Files changed (45) hide show
  1. package/dist/addon.js +3 -14
  2. package/dist/addon.mjs +3 -14
  3. package/dist/capabilities/addons.cap.d.ts +156 -2
  4. package/dist/capabilities/broker.cap.d.ts +4 -4
  5. package/dist/capabilities/decoder.cap.d.ts +0 -211
  6. package/dist/capabilities/device-manager.cap.d.ts +4 -4
  7. package/dist/capabilities/index.d.ts +7 -7
  8. package/dist/capabilities/llm-runtime.cap.d.ts +3 -3
  9. package/dist/capabilities/llm.cap.d.ts +4 -4
  10. package/dist/capabilities/local-network.cap.d.ts +11 -11
  11. package/dist/capabilities/metrics-provider.cap.d.ts +2 -2
  12. package/dist/capabilities/mqtt-broker.cap.d.ts +3 -3
  13. package/dist/capabilities/pipeline-orchestrator.cap.d.ts +9 -13
  14. package/dist/capabilities/pipeline-runner.cap.d.ts +0 -2
  15. package/dist/capabilities/recording.cap.d.ts +3 -3
  16. package/dist/capabilities/schemas/streaming-shared.d.ts +9 -79
  17. package/dist/capabilities/snapshot.cap.d.ts +2 -2
  18. package/dist/capabilities/stream-broker.cap.d.ts +0 -85
  19. package/dist/capabilities/videoclips.cap.d.ts +3 -3
  20. package/dist/capabilities/webrtc-session.cap.d.ts +0 -2
  21. package/dist/client.js +3 -80
  22. package/dist/client.mjs +3 -80
  23. package/dist/enums/event-category.d.ts +0 -9
  24. package/dist/enums.js +1 -1
  25. package/dist/enums.mjs +1 -1
  26. package/dist/{event-category-BGmz_oxW.mjs → event-category-B_0XEcLF.mjs} +0 -9
  27. package/dist/{event-category-DmS_tLsU.js → event-category-CtBAl88K.js} +0 -9
  28. package/dist/ffmpeg/hwaccel.d.ts +1 -1
  29. package/dist/generated/addon-api.d.ts +7 -105
  30. package/dist/generated/cap-input-defaults.d.ts +1 -1
  31. package/dist/generated/method-access-map.d.ts +1 -1
  32. package/dist/generated/method-device-selectors.d.ts +2 -2
  33. package/dist/generated/system-proxy.d.ts +3 -3
  34. package/dist/index.d.ts +0 -1
  35. package/dist/index.js +115 -292
  36. package/dist/index.mjs +111 -284
  37. package/dist/interfaces/api-responses.d.ts +0 -19
  38. package/dist/interfaces/capability.d.ts +1 -2
  39. package/dist/interfaces/event-bus.d.ts +0 -13
  40. package/dist/interfaces/pipeline-runner-capability.d.ts +0 -1
  41. package/dist/interfaces/stream-broker.d.ts +2 -67
  42. package/dist/{sleep-DAJ9Er57.mjs → sleep-BNeXenvr.mjs} +11 -86
  43. package/dist/{sleep-AalHiRYL.js → sleep-DPar9AHl.js} +10 -115
  44. package/package.json +1 -1
  45. package/dist/interfaces/decoder.d.ts +0 -89
@@ -514,8 +514,8 @@ export type ClipPlaybackOptions = z.infer<typeof ClipPlaybackOptionsSchema>;
514
514
  export declare const ClipSourceAvailabilitySchema: z.ZodObject<{
515
515
  state: z.ZodEnum<{
516
516
  ok: "ok";
517
- sleeping: "sleeping";
518
517
  unreachable: "unreachable";
518
+ sleeping: "sleeping";
519
519
  "no-storage": "no-storage";
520
520
  "index-empty": "index-empty";
521
521
  }>;
@@ -539,8 +539,8 @@ export declare const ClipSourceSchema: z.ZodObject<{
539
539
  availability: z.ZodObject<{
540
540
  state: z.ZodEnum<{
541
541
  ok: "ok";
542
- sleeping: "sleeping";
543
542
  unreachable: "unreachable";
543
+ sleeping: "sleeping";
544
544
  "no-storage": "no-storage";
545
545
  "index-empty": "index-empty";
546
546
  }>;
@@ -669,8 +669,8 @@ export declare const videoclipsCapability: {
669
669
  availability: z.ZodObject<{
670
670
  state: z.ZodEnum<{
671
671
  ok: "ok";
672
- sleeping: "sleeping";
673
672
  unreachable: "unreachable";
673
+ sleeping: "sleeping";
674
674
  "no-storage": "no-storage";
675
675
  "index-empty": "index-empty";
676
676
  }>;
@@ -73,7 +73,6 @@ export declare const WebrtcStreamChoiceSchema: z.ZodObject<{
73
73
  stopped: "stopped";
74
74
  }>>;
75
75
  inputFps: z.ZodNullable<z.ZodNumber>;
76
- decodeFps: z.ZodNullable<z.ZodNumber>;
77
76
  bitrateKbps: z.ZodNullable<z.ZodNumber>;
78
77
  }, z.core.$strip>;
79
78
  export type WebrtcStreamChoice = z.infer<typeof WebrtcStreamChoiceSchema>;
@@ -336,7 +335,6 @@ export declare const webrtcSessionCapability: {
336
335
  stopped: "stopped";
337
336
  }>>;
338
337
  inputFps: z.ZodNullable<z.ZodNumber>;
339
- decodeFps: z.ZodNullable<z.ZodNumber>;
340
338
  bitrateKbps: z.ZodNullable<z.ZodNumber>;
341
339
  }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
342
340
  /**
package/dist/client.js CHANGED
@@ -228,27 +228,6 @@ zod.z.object({
228
228
  audioCodec: zod.z.string().optional(),
229
229
  metadata: zod.z.record(zod.z.string(), zod.z.unknown()).readonly().optional()
230
230
  });
231
- zod.z.object({
232
- type: zod.z.enum(["video", "audio"]),
233
- data: zod.z.instanceof(Uint8Array),
234
- pts: zod.z.number(),
235
- dts: zod.z.number(),
236
- keyframe: zod.z.boolean(),
237
- codec: zod.z.string()
238
- });
239
- zod.z.object({
240
- data: zod.z.instanceof(Uint8Array),
241
- width: zod.z.number(),
242
- height: zod.z.number(),
243
- format: zod.z.enum([
244
- "jpeg",
245
- "rgb",
246
- "bgr",
247
- "yuv420",
248
- "gray"
249
- ]),
250
- timestamp: zod.z.number()
251
- });
252
231
  zod.z.object({
253
232
  shmId: zod.z.string(),
254
233
  slot: zod.z.number().int().nonnegative(),
@@ -268,38 +247,6 @@ zod.z.object({
268
247
  slotCount: zod.z.number().int().positive()
269
248
  });
270
249
  /**
271
- * Pixel format a frame-handle subscriber can request from the broker
272
- * (Phase 5 / D9). The packed, raster subset of `FrameFormat` — the formats a
273
- * `frameSink: 'shm'` decoder session can write into a `FrameRing` slot.
274
- * `jpeg` is excluded: a variable-length stream is not a fixed-stride ring
275
- * payload, and no decoded-frame consumer requests it over the shm plane.
276
- */
277
- var FrameHandleFormatSchema = zod.z.enum([
278
- "rgb",
279
- "bgr",
280
- "yuv420",
281
- "gray"
282
- ]);
283
- zod.z.object({
284
- brokerId: zod.z.string(),
285
- format: FrameHandleFormatSchema,
286
- /**
287
- * Optional reader-side cadence hint in frames per second. The broker does
288
- * NOT throttle — latest-wins ring reads drop frames implicitly for a slow
289
- * consumer. The value is echoed back in `SubscribeFramesResult.maxFps` so
290
- * the consumer can pace its own `pullFrameHandles` polling.
291
- */
292
- maxFps: zod.z.number().positive().optional(),
293
- /** Short caller-identity tag (`motion`, `detection`, …) for diagnostics. */
294
- tag: zod.z.string().optional()
295
- });
296
- zod.z.object({
297
- /** Opaque id the consumer passes to `pullFrameHandles` / `unsubscribeFrames`. */
298
- subscriptionId: zod.z.string(),
299
- /** Reader-side cadence hint (frames/s) — echoes `SubscribeFramesInput.maxFps`. */
300
- maxFps: zod.z.number().nonnegative()
301
- });
302
- /**
303
250
  * Wire schema for a decoded audio chunk (Phase 5 / D9). Mirrors the
304
251
  * `DecodedAudioChunk` TS interface in `interfaces/stream-broker.ts`: PCM
305
252
  * sample bytes plus the track parameters a consumer needs to interpret them.
@@ -307,8 +254,8 @@ zod.z.object({
307
254
  * Audio chunks are tiny (a ~500ms AudioCodecSession window is a few KB of
308
255
  * Float32 PCM), so unlike video frames they ship their bytes INLINE over
309
256
  * tRPC / Moleculer — no shared-memory plane. `data` is typed `Uint8Array`
310
- * (the wire-serialisable supertype of `Buffer`) to match `DecodedFrameSchema`
311
- * / `EncodedPacketSchema`'s precedent; a `Buffer` is assignable to it.
257
+ * (the wire-serialisable supertype of `Buffer`); a `Buffer` is assignable to
258
+ * it.
312
259
  */
313
260
  var AudioChunkFormatSchema = zod.z.enum(AUDIO_CHUNK_FORMATS);
314
261
  zod.z.object({
@@ -354,9 +301,7 @@ var BrokerStatusSchema = zod.z.enum([
354
301
  zod.z.object({
355
302
  status: BrokerStatusSchema,
356
303
  inputFps: zod.z.number(),
357
- decodeFps: zod.z.number(),
358
304
  encodedSubscribers: zod.z.number(),
359
- decodedSubscribers: zod.z.number(),
360
305
  uptimeMs: zod.z.number(),
361
306
  bitrateKbps: zod.z.number(),
362
307
  idrIntervalMs: zod.z.number(),
@@ -369,14 +314,6 @@ zod.z.object({
369
314
  preBufferMs: zod.z.number(),
370
315
  preBufferPackets: zod.z.number(),
371
316
  /**
372
- * Moleculer node id of the decoder provider currently servicing this
373
- * stream's decoded subscribers. `null` until the deferred decoder is
374
- * created (no decoded clients yet, or codec not detected). Surfaces the
375
- * runtime decoder placement so the UI can show "Decoder: <agent>" without
376
- * a separate cap call per broker.
377
- */
378
- decoderNodeId: zod.z.string().nullable(),
379
- /**
380
317
  * Detected audio track parameters from the RTSP DESCRIBE / SDP. `null`
381
318
  * when the stream has no audio track or the broker is in cold start.
382
319
  * `supported = false` means the codec was detected but the local
@@ -7024,6 +6961,7 @@ function createSystemProxy(api) {
7024
6961
  isWorkspaceAvailable: (input) => dispatch("addons", "isWorkspaceAvailable", "query", input),
7025
6962
  listWorkspacePackages: (input) => dispatch("addons", "listWorkspacePackages", "query", input),
7026
6963
  uninstallPackage: (input) => dispatch("addons", "uninstallPackage", "mutation", input),
6964
+ listInstallations: (input) => dispatch("addons", "listInstallations", "query", input),
7027
6965
  reloadPackages: (input) => dispatch("addons", "reloadPackages", "mutation", input),
7028
6966
  searchAvailable: (input) => dispatch("addons", "searchAvailable", "query", input),
7029
6967
  listUpdates: (input) => dispatch("addons", "listUpdates", "query", input),
@@ -7152,19 +7090,7 @@ function createSystemProxy(api) {
7152
7090
  validateComposition: (input) => dispatch("coreBlocks", "validateComposition", "mutation", input)
7153
7091
  },
7154
7092
  decoder: {
7155
- supportsCodec: (input) => dispatch("decoder", "supportsCodec", "query", input),
7156
7093
  getInfo: (input) => dispatch("decoder", "getInfo", "query", input),
7157
- createSession: (input) => dispatch("decoder", "createSession", "query", input),
7158
- destroySession: (input) => dispatch("decoder", "destroySession", "query", input),
7159
- pushPacket: (input) => dispatch("decoder", "pushPacket", "query", input),
7160
- openStream: (input) => dispatch("decoder", "openStream", "query", input),
7161
- pullFrames: (input) => dispatch("decoder", "pullFrames", "query", input),
7162
- pullHandles: (input) => dispatch("decoder", "pullHandles", "query", input),
7163
- getFrame: (input) => dispatch("decoder", "getFrame", "query", input),
7164
- getShmStats: (input) => dispatch("decoder", "getShmStats", "query", input),
7165
- updateConfig: (input) => dispatch("decoder", "updateConfig", "query", input),
7166
- getStats: (input) => dispatch("decoder", "getStats", "query", input),
7167
- listActiveSessions: (input) => dispatch("decoder", "listActiveSessions", "query", input),
7168
7094
  reprobeHwaccel: (input) => dispatch("decoder", "reprobeHwaccel", "mutation", input)
7169
7095
  },
7170
7096
  deviceAdoption: {
@@ -7641,9 +7567,6 @@ function createSystemProxy(api) {
7641
7567
  subscribeAudioChunks: (input) => dispatch("streamBroker", "subscribeAudioChunks", "mutation", input),
7642
7568
  pullAudioChunks: (input) => dispatch("streamBroker", "pullAudioChunks", "query", input),
7643
7569
  unsubscribeAudioChunks: (input) => dispatch("streamBroker", "unsubscribeAudioChunks", "mutation", input),
7644
- subscribeFrames: (input) => dispatch("streamBroker", "subscribeFrames", "mutation", input),
7645
- pullFrameHandles: (input) => dispatch("streamBroker", "pullFrameHandles", "query", input),
7646
- unsubscribeFrames: (input) => dispatch("streamBroker", "unsubscribeFrames", "mutation", input),
7647
7570
  setPreBufferDuration: (input) => dispatch("streamBroker", "setPreBufferDuration", "mutation", input),
7648
7571
  getPreBufferInfo: (input) => dispatch("streamBroker", "getPreBufferInfo", "query", input),
7649
7572
  getRtspPort: (input) => dispatch("streamBroker", "getRtspPort", "query", input),
package/dist/client.mjs CHANGED
@@ -227,27 +227,6 @@ z.object({
227
227
  audioCodec: z.string().optional(),
228
228
  metadata: z.record(z.string(), z.unknown()).readonly().optional()
229
229
  });
230
- z.object({
231
- type: z.enum(["video", "audio"]),
232
- data: z.instanceof(Uint8Array),
233
- pts: z.number(),
234
- dts: z.number(),
235
- keyframe: z.boolean(),
236
- codec: z.string()
237
- });
238
- z.object({
239
- data: z.instanceof(Uint8Array),
240
- width: z.number(),
241
- height: z.number(),
242
- format: z.enum([
243
- "jpeg",
244
- "rgb",
245
- "bgr",
246
- "yuv420",
247
- "gray"
248
- ]),
249
- timestamp: z.number()
250
- });
251
230
  z.object({
252
231
  shmId: z.string(),
253
232
  slot: z.number().int().nonnegative(),
@@ -267,38 +246,6 @@ z.object({
267
246
  slotCount: z.number().int().positive()
268
247
  });
269
248
  /**
270
- * Pixel format a frame-handle subscriber can request from the broker
271
- * (Phase 5 / D9). The packed, raster subset of `FrameFormat` — the formats a
272
- * `frameSink: 'shm'` decoder session can write into a `FrameRing` slot.
273
- * `jpeg` is excluded: a variable-length stream is not a fixed-stride ring
274
- * payload, and no decoded-frame consumer requests it over the shm plane.
275
- */
276
- var FrameHandleFormatSchema = z.enum([
277
- "rgb",
278
- "bgr",
279
- "yuv420",
280
- "gray"
281
- ]);
282
- z.object({
283
- brokerId: z.string(),
284
- format: FrameHandleFormatSchema,
285
- /**
286
- * Optional reader-side cadence hint in frames per second. The broker does
287
- * NOT throttle — latest-wins ring reads drop frames implicitly for a slow
288
- * consumer. The value is echoed back in `SubscribeFramesResult.maxFps` so
289
- * the consumer can pace its own `pullFrameHandles` polling.
290
- */
291
- maxFps: z.number().positive().optional(),
292
- /** Short caller-identity tag (`motion`, `detection`, …) for diagnostics. */
293
- tag: z.string().optional()
294
- });
295
- z.object({
296
- /** Opaque id the consumer passes to `pullFrameHandles` / `unsubscribeFrames`. */
297
- subscriptionId: z.string(),
298
- /** Reader-side cadence hint (frames/s) — echoes `SubscribeFramesInput.maxFps`. */
299
- maxFps: z.number().nonnegative()
300
- });
301
- /**
302
249
  * Wire schema for a decoded audio chunk (Phase 5 / D9). Mirrors the
303
250
  * `DecodedAudioChunk` TS interface in `interfaces/stream-broker.ts`: PCM
304
251
  * sample bytes plus the track parameters a consumer needs to interpret them.
@@ -306,8 +253,8 @@ z.object({
306
253
  * Audio chunks are tiny (a ~500ms AudioCodecSession window is a few KB of
307
254
  * Float32 PCM), so unlike video frames they ship their bytes INLINE over
308
255
  * tRPC / Moleculer — no shared-memory plane. `data` is typed `Uint8Array`
309
- * (the wire-serialisable supertype of `Buffer`) to match `DecodedFrameSchema`
310
- * / `EncodedPacketSchema`'s precedent; a `Buffer` is assignable to it.
256
+ * (the wire-serialisable supertype of `Buffer`); a `Buffer` is assignable to
257
+ * it.
311
258
  */
312
259
  var AudioChunkFormatSchema = z.enum(AUDIO_CHUNK_FORMATS);
313
260
  z.object({
@@ -353,9 +300,7 @@ var BrokerStatusSchema = z.enum([
353
300
  z.object({
354
301
  status: BrokerStatusSchema,
355
302
  inputFps: z.number(),
356
- decodeFps: z.number(),
357
303
  encodedSubscribers: z.number(),
358
- decodedSubscribers: z.number(),
359
304
  uptimeMs: z.number(),
360
305
  bitrateKbps: z.number(),
361
306
  idrIntervalMs: z.number(),
@@ -368,14 +313,6 @@ z.object({
368
313
  preBufferMs: z.number(),
369
314
  preBufferPackets: z.number(),
370
315
  /**
371
- * Moleculer node id of the decoder provider currently servicing this
372
- * stream's decoded subscribers. `null` until the deferred decoder is
373
- * created (no decoded clients yet, or codec not detected). Surfaces the
374
- * runtime decoder placement so the UI can show "Decoder: <agent>" without
375
- * a separate cap call per broker.
376
- */
377
- decoderNodeId: z.string().nullable(),
378
- /**
379
316
  * Detected audio track parameters from the RTSP DESCRIBE / SDP. `null`
380
317
  * when the stream has no audio track or the broker is in cold start.
381
318
  * `supported = false` means the codec was detected but the local
@@ -7023,6 +6960,7 @@ function createSystemProxy(api) {
7023
6960
  isWorkspaceAvailable: (input) => dispatch("addons", "isWorkspaceAvailable", "query", input),
7024
6961
  listWorkspacePackages: (input) => dispatch("addons", "listWorkspacePackages", "query", input),
7025
6962
  uninstallPackage: (input) => dispatch("addons", "uninstallPackage", "mutation", input),
6963
+ listInstallations: (input) => dispatch("addons", "listInstallations", "query", input),
7026
6964
  reloadPackages: (input) => dispatch("addons", "reloadPackages", "mutation", input),
7027
6965
  searchAvailable: (input) => dispatch("addons", "searchAvailable", "query", input),
7028
6966
  listUpdates: (input) => dispatch("addons", "listUpdates", "query", input),
@@ -7151,19 +7089,7 @@ function createSystemProxy(api) {
7151
7089
  validateComposition: (input) => dispatch("coreBlocks", "validateComposition", "mutation", input)
7152
7090
  },
7153
7091
  decoder: {
7154
- supportsCodec: (input) => dispatch("decoder", "supportsCodec", "query", input),
7155
7092
  getInfo: (input) => dispatch("decoder", "getInfo", "query", input),
7156
- createSession: (input) => dispatch("decoder", "createSession", "query", input),
7157
- destroySession: (input) => dispatch("decoder", "destroySession", "query", input),
7158
- pushPacket: (input) => dispatch("decoder", "pushPacket", "query", input),
7159
- openStream: (input) => dispatch("decoder", "openStream", "query", input),
7160
- pullFrames: (input) => dispatch("decoder", "pullFrames", "query", input),
7161
- pullHandles: (input) => dispatch("decoder", "pullHandles", "query", input),
7162
- getFrame: (input) => dispatch("decoder", "getFrame", "query", input),
7163
- getShmStats: (input) => dispatch("decoder", "getShmStats", "query", input),
7164
- updateConfig: (input) => dispatch("decoder", "updateConfig", "query", input),
7165
- getStats: (input) => dispatch("decoder", "getStats", "query", input),
7166
- listActiveSessions: (input) => dispatch("decoder", "listActiveSessions", "query", input),
7167
7093
  reprobeHwaccel: (input) => dispatch("decoder", "reprobeHwaccel", "mutation", input)
7168
7094
  },
7169
7095
  deviceAdoption: {
@@ -7640,9 +7566,6 @@ function createSystemProxy(api) {
7640
7566
  subscribeAudioChunks: (input) => dispatch("streamBroker", "subscribeAudioChunks", "mutation", input),
7641
7567
  pullAudioChunks: (input) => dispatch("streamBroker", "pullAudioChunks", "query", input),
7642
7568
  unsubscribeAudioChunks: (input) => dispatch("streamBroker", "unsubscribeAudioChunks", "mutation", input),
7643
- subscribeFrames: (input) => dispatch("streamBroker", "subscribeFrames", "mutation", input),
7644
- pullFrameHandles: (input) => dispatch("streamBroker", "pullFrameHandles", "query", input),
7645
- unsubscribeFrames: (input) => dispatch("streamBroker", "unsubscribeFrames", "mutation", input),
7646
7569
  setPreBufferDuration: (input) => dispatch("streamBroker", "setPreBufferDuration", "mutation", input),
7647
7570
  getPreBufferInfo: (input) => dispatch("streamBroker", "getPreBufferInfo", "query", input),
7648
7571
  getRtspPort: (input) => dispatch("streamBroker", "getRtspPort", "query", input),
@@ -498,15 +498,6 @@ export declare enum EventCategory {
498
498
  AgentWsDisconnected = "agent.ws.disconnected",
499
499
  AgentBackupActivated = "agent.backup.activated",
500
500
  OrchestrationSettingsUpdated = "orchestration.settings-updated",
501
- /**
502
- * Per-agent hwaccel preference changed (user override set, cleared, or
503
- * re-probed). Observability event — decoders pull the current pref at
504
- * `createSession`, so running sessions keep their current backend until
505
- * they rotate naturally (camera add/remove, stream restart). Future
506
- * work can wire a listener in stream-broker that force-rotates live
507
- * sessions; for now this event powers logs + admin-UI toast feedback.
508
- */
509
- PipelineAgentHwaccelChanged = "pipeline.agent-hwaccel-changed",
510
501
  MotionAnalysis = "detection.motion-analysis",
511
502
  /** All raw motion zones from CCL before minArea filter — for UI debug overlay. */
512
503
  MotionZonesRaw = "detection.motion-zones-raw",
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-DmS_tLsU.js");
2
+ const require_event_category = require("./event-category-CtBAl88K.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-BGmz_oxW.mjs";
1
+ import { t as EventCategory } from "./event-category-B_0XEcLF.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -499,15 +499,6 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
499
499
  EventCategory["AgentWsDisconnected"] = "agent.ws.disconnected";
500
500
  EventCategory["AgentBackupActivated"] = "agent.backup.activated";
501
501
  EventCategory["OrchestrationSettingsUpdated"] = "orchestration.settings-updated";
502
- /**
503
- * Per-agent hwaccel preference changed (user override set, cleared, or
504
- * re-probed). Observability event — decoders pull the current pref at
505
- * `createSession`, so running sessions keep their current backend until
506
- * they rotate naturally (camera add/remove, stream restart). Future
507
- * work can wire a listener in stream-broker that force-rotates live
508
- * sessions; for now this event powers logs + admin-UI toast feedback.
509
- */
510
- EventCategory["PipelineAgentHwaccelChanged"] = "pipeline.agent-hwaccel-changed";
511
502
  EventCategory["MotionAnalysis"] = "detection.motion-analysis";
512
503
  /** All raw motion zones from CCL before minArea filter — for UI debug overlay. */
513
504
  EventCategory["MotionZonesRaw"] = "detection.motion-zones-raw";
@@ -499,15 +499,6 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
499
499
  EventCategory["AgentWsDisconnected"] = "agent.ws.disconnected";
500
500
  EventCategory["AgentBackupActivated"] = "agent.backup.activated";
501
501
  EventCategory["OrchestrationSettingsUpdated"] = "orchestration.settings-updated";
502
- /**
503
- * Per-agent hwaccel preference changed (user override set, cleared, or
504
- * re-probed). Observability event — decoders pull the current pref at
505
- * `createSession`, so running sessions keep their current backend until
506
- * they rotate naturally (camera add/remove, stream restart). Future
507
- * work can wire a listener in stream-broker that force-rotates live
508
- * sessions; for now this event powers logs + admin-UI toast feedback.
509
- */
510
- EventCategory["PipelineAgentHwaccelChanged"] = "pipeline.agent-hwaccel-changed";
511
502
  EventCategory["MotionAnalysis"] = "detection.motion-analysis";
512
503
  /** All raw motion zones from CCL before minArea filter — for UI debug overlay. */
513
504
  EventCategory["MotionZonesRaw"] = "detection.motion-zones-raw";
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * - the raw kernel resolver (`ctx.kernel.hwaccel.resolve()`) returns
11
11
  * `['qsv','vaapi']` for an Intel host — qsv FIRST;
12
- * - `addon-decoder-ffmpeg`'s `DECODE_HWACCEL_RANK` puts **vaapi above qsv on
12
+ * - the decoder addon's `DECODE_HWACCEL_RANK` (`addon-decoder-nodeav`) puts **vaapi above qsv on
13
13
  * purpose**, because on this exact hub a qsv decode child exits `code=171`
14
14
  * producing no frames, while vaapi decodes 8 MP h264 at ~50 fps.
15
15
  *
@@ -335,6 +335,13 @@ export type AppRouter = TrpcCoreRouter<{
335
335
  output: z.infer<typeof addonsCapability.methods.uninstallPackage.output>;
336
336
  meta: object;
337
337
  }>;
338
+ listInstallations: TRPCQueryProcedure<{
339
+ input: {
340
+ [x: string]: unknown;
341
+ } & z.input<typeof addonsCapability.methods.listInstallations.input>;
342
+ output: z.infer<typeof addonsCapability.methods.listInstallations.output>;
343
+ meta: object;
344
+ }>;
338
345
  reloadPackages: TRPCMutationProcedure<{
339
346
  input: {
340
347
  nodeId?: string | undefined;
@@ -1959,13 +1966,6 @@ export type AppRouter = TrpcCoreRouter<{
1959
1966
  errorShape: AugmentedErrorShape;
1960
1967
  transformer: true;
1961
1968
  }, TRPCDecorateCreateRouterOptions<{
1962
- supportsCodec: TRPCQueryProcedure<{
1963
- input: {
1964
- [x: string]: unknown;
1965
- } & z.input<typeof decoderCapability.methods.supportsCodec.input>;
1966
- output: z.infer<typeof decoderCapability.methods.supportsCodec.output>;
1967
- meta: object;
1968
- }>;
1969
1969
  getInfo: TRPCQueryProcedure<{
1970
1970
  input: {
1971
1971
  nodeId?: string | undefined;
@@ -1973,83 +1973,6 @@ export type AppRouter = TrpcCoreRouter<{
1973
1973
  output: z.infer<typeof decoderCapability.methods.getInfo.output>;
1974
1974
  meta: object;
1975
1975
  }>;
1976
- createSession: TRPCQueryProcedure<{
1977
- input: {
1978
- [x: string]: unknown;
1979
- } & z.input<typeof decoderCapability.methods.createSession.input>;
1980
- output: z.infer<typeof decoderCapability.methods.createSession.output>;
1981
- meta: object;
1982
- }>;
1983
- destroySession: TRPCQueryProcedure<{
1984
- input: {
1985
- [x: string]: unknown;
1986
- } & z.input<typeof decoderCapability.methods.destroySession.input>;
1987
- output: z.infer<typeof decoderCapability.methods.destroySession.output>;
1988
- meta: object;
1989
- }>;
1990
- pushPacket: TRPCQueryProcedure<{
1991
- input: {
1992
- [x: string]: unknown;
1993
- } & z.input<typeof decoderCapability.methods.pushPacket.input>;
1994
- output: z.infer<typeof decoderCapability.methods.pushPacket.output>;
1995
- meta: object;
1996
- }>;
1997
- openStream: TRPCQueryProcedure<{
1998
- input: {
1999
- [x: string]: unknown;
2000
- } & z.input<typeof decoderCapability.methods.openStream.input>;
2001
- output: z.infer<typeof decoderCapability.methods.openStream.output>;
2002
- meta: object;
2003
- }>;
2004
- pullFrames: TRPCQueryProcedure<{
2005
- input: {
2006
- [x: string]: unknown;
2007
- } & z.input<typeof decoderCapability.methods.pullFrames.input>;
2008
- output: z.infer<typeof decoderCapability.methods.pullFrames.output>;
2009
- meta: object;
2010
- }>;
2011
- pullHandles: TRPCQueryProcedure<{
2012
- input: {
2013
- [x: string]: unknown;
2014
- } & z.input<typeof decoderCapability.methods.pullHandles.input>;
2015
- output: z.infer<typeof decoderCapability.methods.pullHandles.output>;
2016
- meta: object;
2017
- }>;
2018
- getFrame: TRPCQueryProcedure<{
2019
- input: {
2020
- [x: string]: unknown;
2021
- } & z.input<typeof decoderCapability.methods.getFrame.input>;
2022
- output: z.infer<typeof decoderCapability.methods.getFrame.output>;
2023
- meta: object;
2024
- }>;
2025
- getShmStats: TRPCQueryProcedure<{
2026
- input: {
2027
- [x: string]: unknown;
2028
- } & z.input<typeof decoderCapability.methods.getShmStats.input>;
2029
- output: z.infer<typeof decoderCapability.methods.getShmStats.output>;
2030
- meta: object;
2031
- }>;
2032
- updateConfig: TRPCQueryProcedure<{
2033
- input: {
2034
- [x: string]: unknown;
2035
- } & z.input<typeof decoderCapability.methods.updateConfig.input>;
2036
- output: z.infer<typeof decoderCapability.methods.updateConfig.output>;
2037
- meta: object;
2038
- }>;
2039
- getStats: TRPCQueryProcedure<{
2040
- input: {
2041
- [x: string]: unknown;
2042
- } & z.input<typeof decoderCapability.methods.getStats.input>;
2043
- output: z.infer<typeof decoderCapability.methods.getStats.output>;
2044
- meta: object;
2045
- }>;
2046
- listActiveSessions: TRPCQueryProcedure<{
2047
- input: {
2048
- nodeId?: string | undefined;
2049
- } | undefined;
2050
- output: z.infer<typeof decoderCapability.methods.listActiveSessions.output>;
2051
- meta: object;
2052
- }>;
2053
1976
  reprobeHwaccel: TRPCMutationProcedure<{
2054
1977
  input: {
2055
1978
  nodeId?: string | undefined;
@@ -8608,27 +8531,6 @@ export type AppRouter = TrpcCoreRouter<{
8608
8531
  output: z.infer<typeof streamBrokerCapability.methods.unsubscribeAudioChunks.output>;
8609
8532
  meta: object;
8610
8533
  }>;
8611
- subscribeFrames: TRPCMutationProcedure<{
8612
- input: {
8613
- [x: string]: unknown;
8614
- } & z.input<typeof streamBrokerCapability.methods.subscribeFrames.input>;
8615
- output: z.infer<typeof streamBrokerCapability.methods.subscribeFrames.output>;
8616
- meta: object;
8617
- }>;
8618
- pullFrameHandles: TRPCQueryProcedure<{
8619
- input: {
8620
- [x: string]: unknown;
8621
- } & z.input<typeof streamBrokerCapability.methods.pullFrameHandles.input>;
8622
- output: z.infer<typeof streamBrokerCapability.methods.pullFrameHandles.output>;
8623
- meta: object;
8624
- }>;
8625
- unsubscribeFrames: TRPCMutationProcedure<{
8626
- input: {
8627
- [x: string]: unknown;
8628
- } & z.input<typeof streamBrokerCapability.methods.unsubscribeFrames.input>;
8629
- output: z.infer<typeof streamBrokerCapability.methods.unsubscribeFrames.output>;
8630
- meta: object;
8631
- }>;
8632
8534
  setPreBufferDuration: TRPCMutationProcedure<{
8633
8535
  input: {
8634
8536
  [x: string]: unknown;
@@ -11,7 +11,7 @@
11
11
  * Plain data, zero Zod: a forked runner must not import the schema barrel
12
12
  * (~144MB RSS per runner — D28).
13
13
  *
14
- * Coverage: 25 caps, 63 methods with defaults.
14
+ * Coverage: 24 caps, 59 methods with defaults.
15
15
  */
16
16
  export declare const CAP_INPUT_DEFAULTS: Readonly<Record<string, Readonly<Record<string, Readonly<Record<string, unknown>>>>>>;
17
17
  /**
@@ -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: 1227 method paths across 165 capabilities.
9
+ * Coverage: 1213 method paths across 165 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: 512 methods carry a device reference, of which
10
- * 162 are on SYSTEM-scope caps.
9
+ * Coverage: 511 methods carry a device reference, of which
10
+ * 161 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
@@ -57,7 +57,7 @@ import type { userManagementCapability } from '../capabilities/user-management.c
57
57
  */
58
58
  export interface SystemProxy {
59
59
  readonly addonPages: Pick<InferProvider<typeof addonPagesCapability>, 'listPages'>;
60
- readonly addons: Pick<InferProvider<typeof addonsCapability>, 'list' | 'getLogs' | 'listPackages' | 'installPackage' | 'installFromWorkspace' | 'isWorkspaceAvailable' | 'listWorkspacePackages' | 'uninstallPackage' | 'reloadPackages' | 'searchAvailable' | 'listUpdates' | 'updatePackage' | 'rollbackPackage' | 'forceRefresh' | 'restartServer' | 'getLastRestart' | 'listFrameworkPackages' | 'listCapabilityProviders' | 'setCapabilityProviderEnabled' | 'getVersions' | 'restartAddon' | 'retryLoad' | 'getAutoUpdateSettings' | 'setAutoUpdateSettings' | 'getAddonAutoUpdate' | 'setAddonAutoUpdate' | 'applyAutoUpdateToAll' | 'custom' | 'startJob' | 'getJob' | 'listJobs' | 'cancelJob' | 'onAddonLogs'>;
60
+ readonly addons: Pick<InferProvider<typeof addonsCapability>, 'list' | 'getLogs' | 'listPackages' | 'installPackage' | 'installFromWorkspace' | 'isWorkspaceAvailable' | 'listWorkspacePackages' | 'uninstallPackage' | 'listInstallations' | 'reloadPackages' | 'searchAvailable' | 'listUpdates' | 'updatePackage' | 'rollbackPackage' | 'forceRefresh' | 'restartServer' | 'getLastRestart' | 'listFrameworkPackages' | 'listCapabilityProviders' | 'setCapabilityProviderEnabled' | 'getVersions' | 'restartAddon' | 'retryLoad' | 'getAutoUpdateSettings' | 'setAutoUpdateSettings' | 'getAddonAutoUpdate' | 'setAddonAutoUpdate' | 'applyAutoUpdateToAll' | 'custom' | 'startJob' | 'getJob' | 'listJobs' | 'cancelJob' | 'onAddonLogs'>;
61
61
  readonly addonSettings: Pick<InferProvider<typeof addonSettingsCapability>, 'getGlobalSettings' | 'updateGlobalSettings' | 'getIntegrationSettings'>;
62
62
  readonly addonWidgets: Pick<InferProvider<typeof addonWidgetsCapability>, 'listWidgets'>;
63
63
  readonly alerts: Pick<InferProvider<typeof alertsCapability>, 'emit' | 'update' | 'list' | 'getUnreadCount' | 'markRead' | 'markAllRead' | 'dismiss'>;
@@ -68,7 +68,7 @@ export interface SystemProxy {
68
68
  readonly calendars: Pick<InferProvider<typeof calendarsCapability>, 'listCalendars' | 'listEvents' | 'getPreferences' | 'setCalendarPreference'>;
69
69
  readonly connectionTest: Pick<InferProvider<typeof connectionTestCapability>, 'testSettings' | 'describeTest'>;
70
70
  readonly coreBlocks: Pick<InferProvider<typeof coreBlocksCapability>, 'list' | 'get' | 'create' | 'update' | 'delete' | 'setEnabled' | 'restart' | 'compile' | 'getBlockSettings' | 'updateBlockSettings' | 'getTypeDefs' | 'createComposition' | 'updateComposition' | 'getComposition' | 'listCompositions' | 'getCustomization' | 'listComposableCaps' | 'validateComposition'>;
71
- readonly decoder: Pick<InferProvider<typeof decoderCapability>, 'supportsCodec' | 'getInfo' | 'createSession' | 'destroySession' | 'pushPacket' | 'openStream' | 'pullFrames' | 'pullHandles' | 'getFrame' | 'getShmStats' | 'updateConfig' | 'getStats' | 'listActiveSessions' | 'reprobeHwaccel'>;
71
+ readonly decoder: Pick<InferProvider<typeof decoderCapability>, 'getInfo' | 'reprobeHwaccel'>;
72
72
  readonly deviceAdoption: Pick<InferProvider<typeof deviceAdoptionCapability>, 'listCandidateFilters' | 'listCandidates' | 'getCandidate' | 'refresh' | 'adopt' | 'release' | 'resync'>;
73
73
  readonly deviceExport: Pick<InferProvider<typeof deviceExportCapability>, 'getStatus' | 'listSupportedDeviceKinds' | 'listExposedDevices' | 'exposeDevice' | 'unexposeDevice'>;
74
74
  readonly deviceManager: Pick<InferProvider<typeof deviceManagerCapability>, 'allocateDeviceId' | 'migrateDevice' | 'registerDevice' | 'removeDevice' | 'persistConfig' | 'getRoleDisplayDefaults' | 'setRoleDisplayDefaults' | 'listLocations' | 'addLocation' | 'removeLocation' | 'renameLocation' | 'listLocationIcons' | 'setLocationIcon' | 'listLocationDescriptions' | 'setLocationDescription' | 'listSiteZones' | 'setSiteZone' | 'removeSiteZone' | 'renameSiteZone' | 'setLocationZone' | 'listPersistedByAddon' | 'listAll' | 'getChildren' | 'getChildrenBatch' | 'getLinkedDevicesBatch' | 'removeByIntegration' | 'getBindingsBatch' | 'getAllBindings' | 'listDeviceIdsByCaps' | 'listWrappersForCap' | 'listBindableCapsForDeviceType' | 'discoverDevices' | 'adoptDevice' | 'getCreationSchema' | 'createDevice' | 'testCreationField' | 'adoptionListCandidateFilters' | 'adoptionListCandidates' | 'adoptionRefresh' | 'adoptionAdopt' | 'adoptionRelease' | 'adoptionStartJob' | 'adoptionListJobs' | 'adoptionCancelJob' | 'adoptionResync' | 'discoveryProviders' | 'discoverAllProviders' | 'discoverProvider' | 'providerCreationType' | 'providerDiscoveryParamsSchema' | 'getDeviceStatusAggregateBatch'>;
@@ -97,7 +97,7 @@ export interface SystemProxy {
97
97
  readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'upsert' | 'insert' | 'insertMany' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
98
98
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'listDrainProgress' | 'testLocation' | 'listProviders' | 'testConfig'>;
99
99
  readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
100
- readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'subscribeFrames' | 'pullFrameHandles' | 'unsubscribeFrames' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
100
+ readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
101
101
  readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoadContributions' | 'getFailureContributions' | 'getLoggingSettings' | 'setLoggingSettings'>;
102
102
  readonly terminalSession: Pick<InferProvider<typeof terminalSessionCapability>, 'listProfiles' | 'listInstances' | 'createInstance' | 'updateInstance' | 'deleteInstance' | 'setInstanceEnabled' | 'listLegacyCameras' | 'adoptLegacyMonitor' | 'listSessions' | 'openSession' | 'resize' | 'pullOutput' | 'writeInput' | 'close'>;
103
103
  readonly toast: Pick<InferProvider<typeof toastCapability>, 'onToast'>;
package/dist/index.d.ts CHANGED
@@ -53,7 +53,6 @@ export type * from './interfaces/context.js';
53
53
  export * from './interfaces/birth-decision-ledger.js';
54
54
  export * from './interfaces/debug-note-archive.js';
55
55
  export * from './interfaces/track-relations.js';
56
- export type * from './interfaces/decoder.js';
57
56
  export type * from './interfaces/detection-addon.js';
58
57
  export type { DeviceEvent, DeviceMetadata, DeviceState } from './interfaces/device.js';
59
58
  export { autoAssignProfiles, classifyStream, classifyStreams, parseCameraStreamConfig, streamPixels, toStreamSourceEntry, } from './interfaces/device-capabilities/camera.js';