@camstack/types 1.2.12 → 1.2.14

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.
@@ -31,6 +31,7 @@ export type { AudioAnalyzerGlobalConfig, AudioBackendChoice, IAudioAnalyzerProvi
31
31
  export { AUDIO_BACKEND_CHOICES, AudioAnalysisResultSchema, AudioAnalysisSettingsSchema, AudioClassificationResultSchema, audioAnalyzerCapability, DEFAULT_AUDIO_ANALYZER_CONFIG, } from './audio-analyzer.cap.js';
32
32
  export { AudioCodecInfoSchema, AudioDecodeSessionConfigSchema, AudioEncodedChunkSchema, AudioEncodeSessionConfigSchema, AudioPcmChunkSchema, audioCodecCapability, type IAudioCodecCapProvider, PcmSampleFormatSchema, } from './audio-codec.cap.js';
33
33
  export { AuthResultSchema, authProviderCapability } from './auth-provider.cap.js';
34
+ export { terminalSessionCapability, type ITerminalSessionProvider, type TerminalSessionInfo, type TerminalProfileInfo, TerminalSessionInfoSchema, TerminalProfileInfoSchema, } from './terminal-session.cap.js';
34
35
  export { ArchiveEntrySchema, ArchiveManifestSchema, BackupDestinationInfoSchema, BackupEntrySchema, backupCapability, type IBackupProvider, LocationStatSchema, } from './backup.cap.js';
35
36
  export { BrokerAddInputSchema, BrokerGetStateInputSchema, type BrokerInfo as UnifiedBrokerInfo, BrokerInfoSchema as UnifiedBrokerInfoSchema, type BrokerProviderInfo, BrokerProviderInfoSchema, BrokerPublishInputSchema, BrokerRegistryStatusSchema, type BrokerStatus as UnifiedBrokerStatus, BrokerStatusEnum, BrokerSubscribeInputSchema, BrokerSubscribeResultSchema, BrokerTestConnectionResultSchema, BrokerUnsubscribeInputSchema, brokerCapability, type IBrokerProvider, } from './broker.cap.js';
36
37
  export { cameraPipelineConfigCapability, type ICameraPipelineConfigProvider, } from './camera-pipeline-config.cap.js';
@@ -316,12 +317,13 @@ import type { vacuumControlCapability } from './vacuum-control.cap.js';
316
317
  import type { valveCapability } from './valve.cap.js';
317
318
  import type { vibrationCapability } from './vibration.cap.js';
318
319
  import type { viewerUiCapability } from './viewer-ui.cap.js';
320
+ import type { terminalSessionCapability } from './terminal-session.cap.js';
319
321
  import type { waterHeaterCapability } from './water-heater.cap.js';
320
322
  import type { weatherCapability } from './weather.cap.js';
321
323
  import type { webrtcSessionCapability } from './webrtc-session.cap.js';
322
324
  import type { zoneAnalyticsCapability } from './zone-analytics.cap.js';
323
325
  import type { zoneRulesCapability } from './zone-rules.cap.js';
324
326
  import type { zonesCapability } from './zones.cap.js';
325
- type AnyCapability = typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof settingsStoreCapability | typeof logDestinationCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof consumablesCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof eventsCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingExportCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof imageSettingsCapability;
327
+ type AnyCapability = typeof addonSettingsCapability | typeof alertsCapability | typeof storageCapability | typeof storageProviderCapability | typeof storageEvictableCapability | typeof filesystemBrowseCapability | typeof backupCapability | typeof terminalSessionCapability | typeof settingsStoreCapability | typeof logDestinationCapability | typeof adminUiCapability | typeof viewerUiCapability | typeof ssoBridgeCapability | typeof userPasskeysCapability | typeof smtpProviderCapability | typeof mqttBrokerCapability | typeof brokerCapability | typeof deviceAdoptionCapability | typeof deviceExportCapability | typeof addonPagesCapability | typeof addonPagesSourceCapability | typeof addonWidgetsCapability | typeof addonWidgetsSourceCapability | typeof customModelRegistryCapability | typeof modelDistributorCapability | typeof modelConvertCapability | typeof addonRoutesCapability | typeof streamBrokerCapability | typeof decoderCapability | typeof webrtcSessionCapability | typeof cameraStreamsCapability | typeof motionDetectionCapability | typeof pipelineExecutorCapability | typeof detectionPipelineCapability | typeof cameraPipelineConfigCapability | typeof pipelineRunnerCapability | typeof pipelineOrchestratorCapability | typeof audioAnalyzerCapability | typeof audioAnalysisCapability | typeof audioCodecCapability | typeof embeddingEncoderCapability | typeof deviceProviderCapability | typeof deviceManagerCapability | typeof deviceStateCapability | typeof authProviderCapability | typeof loginMethodCapability | typeof networkAccessCapability | typeof turnProviderCapability | typeof snapshotCapability | typeof llmCapability | typeof llmRuntimeCapability | typeof notificationOutputCapability | typeof notificationRulesCapability | typeof pipelineAnalyticsCapability | typeof metricsProviderCapability | typeof ptzCapability | typeof ptzAutotrackCapability | typeof consumablesCapability | typeof rebootCapability | typeof deviceDiscoveryCapability | typeof brightnessCapability | typeof colorCapability | typeof climateControlCapability | typeof coverCapability | typeof valveCapability | typeof humidifierCapability | typeof waterHeaterCapability | typeof weatherCapability | typeof imageCapability | typeof lockControlCapability | typeof vacuumControlCapability | typeof petFeederCapability | typeof lawnMowerControlCapability | typeof fanControlCapability | typeof controlCapability | typeof notifierCapability | typeof mediaPlayerCapability | typeof alarmPanelCapability | typeof presenceCapability | typeof scriptRunnerCapability | typeof automationControlCapability | typeof motionTriggerCapability | typeof eventsCapability | typeof zonesCapability | typeof zoneRulesCapability | typeof zoneAnalyticsCapability | typeof audioMetricsCapability | typeof motionCapability | typeof contactCapability | typeof floodCapability | typeof smokeCapability | typeof carbonMonoxideCapability | typeof gasCapability | typeof tamperCapability | typeof vibrationCapability | typeof connectivityCapability | typeof binaryCapability | typeof temperatureSensorCapability | typeof humiditySensorCapability | typeof ambientLightSensorCapability | typeof pressureSensorCapability | typeof powerMeterCapability | typeof airQualitySensorCapability | typeof numericSensorCapability | typeof enumSensorCapability | typeof recordingCapability | typeof recordingExportCapability | typeof deviceOpsCapability | typeof platformProbeCapability | typeof localNetworkCapability | typeof meshNetworkCapability | typeof userManagementCapability | typeof systemCapability | typeof networkQualityCapability | typeof toastCapability | typeof nodesCapability | typeof serverManagementCapability | typeof integrationsCapability | typeof addonsCapability | typeof oauthIntegrationCapability | typeof streamParamsCapability | typeof streamCatalogCapability | typeof motionZonesCapability | typeof sceneMonitorCapability | typeof privacyMaskCapability | typeof dayNightCapability | typeof imageSettingsCapability;
326
328
  export type CapabilityName = AnyCapability['name'];
327
329
  export type ITypedReadinessRegistry = IReadinessRegistry<CapabilityName>;
@@ -0,0 +1,89 @@
1
+ import { z } from 'zod';
2
+ import { type InferProvider } from './capability-definition.js';
3
+ /**
4
+ * A live terminal session hosted by the provider addon. Output and input do
5
+ * NOT flow through the capability — they use the addon data plane
6
+ * (`GET /addon/terminal/<id>/out` SSE, `POST /addon/terminal/<id>/in`) because
7
+ * terminal output must be ordered and lossless. The event bus is telemetry and
8
+ * may drop chunks ([D8]), and a dropped chunk desynchronises the vt parser
9
+ * permanently until a full repaint. The capability owns only lifecycle.
10
+ */
11
+ declare const TerminalSessionInfoSchema: z.ZodObject<{
12
+ sessionId: z.ZodString;
13
+ profileId: z.ZodString;
14
+ label: z.ZodString;
15
+ cols: z.ZodNumber;
16
+ rows: z.ZodNumber;
17
+ startedAt: z.ZodNumber;
18
+ }, z.core.$strip>;
19
+ /**
20
+ * A profile the operator may open — a pre-declared, allowlisted program
21
+ * (`monitor` → `btm`). The capability accepts only these ids; a free-form
22
+ * command string would be remote code execution as the server's user, so it is
23
+ * deliberately not part of the contract.
24
+ */
25
+ declare const TerminalProfileInfoSchema: z.ZodObject<{
26
+ profileId: z.ZodString;
27
+ label: z.ZodString;
28
+ description: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strip>;
30
+ /**
31
+ * terminal-session — singleton system capability for interactive TTY sessions.
32
+ *
33
+ * Phase 1 (this cap): open/resize/close/list a pty running an allowlisted
34
+ * profile, streamed to xterm.js over the data plane. Phase 2 (streaming a
35
+ * session as a camera) is a separate device-provider concern and does not
36
+ * change this contract.
37
+ */
38
+ export declare const terminalSessionCapability: {
39
+ readonly name: "terminal-session";
40
+ readonly scope: "system";
41
+ readonly mode: "singleton";
42
+ readonly methods: {
43
+ /** Pre-declared profiles the operator may open. */
44
+ readonly listProfiles: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
45
+ profileId: z.ZodString;
46
+ label: z.ZodString;
47
+ description: z.ZodOptional<z.ZodString>;
48
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
49
+ /** Live sessions currently hosted by the provider. */
50
+ readonly listSessions: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
51
+ sessionId: z.ZodString;
52
+ profileId: z.ZodString;
53
+ label: z.ZodString;
54
+ cols: z.ZodNumber;
55
+ rows: z.ZodNumber;
56
+ startedAt: z.ZodNumber;
57
+ }, z.core.$strip>>>, import("./capability-definition.js").CapabilityMethodKind>;
58
+ /**
59
+ * Spawn a pty for an allowlisted profile at the given grid size and return
60
+ * its session id. Output/input then flow over the data plane by that id.
61
+ */
62
+ readonly openSession: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
63
+ profileId: z.ZodString;
64
+ cols: z.ZodNumber;
65
+ rows: z.ZodNumber;
66
+ }, z.core.$strip>, z.ZodObject<{
67
+ sessionId: z.ZodString;
68
+ profileId: z.ZodString;
69
+ label: z.ZodString;
70
+ cols: z.ZodNumber;
71
+ rows: z.ZodNumber;
72
+ startedAt: z.ZodNumber;
73
+ }, z.core.$strip>, "mutation">;
74
+ /** Resize a live session's pty (reflows the running program). */
75
+ readonly resize: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
76
+ sessionId: z.ZodString;
77
+ cols: z.ZodNumber;
78
+ rows: z.ZodNumber;
79
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
80
+ /** Terminate a live session and release its pty. */
81
+ readonly close: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
82
+ sessionId: z.ZodString;
83
+ }, z.core.$strip>, z.ZodVoid, "mutation">;
84
+ };
85
+ };
86
+ export type ITerminalSessionProvider = InferProvider<typeof terminalSessionCapability>;
87
+ export type TerminalSessionInfo = z.infer<typeof TerminalSessionInfoSchema>;
88
+ export type TerminalProfileInfo = z.infer<typeof TerminalProfileInfoSchema>;
89
+ export { TerminalSessionInfoSchema, TerminalProfileInfoSchema };
@@ -15946,6 +15946,73 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
15946
15946
  meta: object;
15947
15947
  }>;
15948
15948
  }>>;
15949
+ terminalSession: import("@trpc/server").TRPCBuiltRouter<{
15950
+ ctx: TrpcContext;
15951
+ meta: object;
15952
+ errorShape: import("@camstack/types").AugmentedErrorShape;
15953
+ transformer: true;
15954
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
15955
+ listProfiles: import("@trpc/server").TRPCQueryProcedure<{
15956
+ input: {
15957
+ nodeId?: string | undefined;
15958
+ } | undefined;
15959
+ output: readonly {
15960
+ profileId: string;
15961
+ label: string;
15962
+ description?: string | undefined;
15963
+ }[];
15964
+ meta: object;
15965
+ }>;
15966
+ listSessions: import("@trpc/server").TRPCQueryProcedure<{
15967
+ input: {
15968
+ nodeId?: string | undefined;
15969
+ } | undefined;
15970
+ output: readonly {
15971
+ sessionId: string;
15972
+ profileId: string;
15973
+ label: string;
15974
+ cols: number;
15975
+ rows: number;
15976
+ startedAt: number;
15977
+ }[];
15978
+ meta: object;
15979
+ }>;
15980
+ openSession: import("@trpc/server").TRPCMutationProcedure<{
15981
+ input: {
15982
+ [x: string]: unknown;
15983
+ profileId: string;
15984
+ cols: number;
15985
+ rows: number;
15986
+ };
15987
+ output: {
15988
+ sessionId: string;
15989
+ profileId: string;
15990
+ label: string;
15991
+ cols: number;
15992
+ rows: number;
15993
+ startedAt: number;
15994
+ };
15995
+ meta: object;
15996
+ }>;
15997
+ resize: import("@trpc/server").TRPCMutationProcedure<{
15998
+ input: {
15999
+ [x: string]: unknown;
16000
+ sessionId: string;
16001
+ cols: number;
16002
+ rows: number;
16003
+ };
16004
+ output: void;
16005
+ meta: object;
16006
+ }>;
16007
+ close: import("@trpc/server").TRPCMutationProcedure<{
16008
+ input: {
16009
+ [x: string]: unknown;
16010
+ sessionId: string;
16011
+ };
16012
+ output: void;
16013
+ meta: object;
16014
+ }>;
16015
+ }>>;
15949
16016
  toast: import("@trpc/server").TRPCBuiltRouter<{
15950
16017
  ctx: TrpcContext;
15951
16018
  meta: object;
@@ -33304,6 +33371,73 @@ export type AppRouter = import("@trpc/server/unstable-core-do-not-import").Route
33304
33371
  meta: object;
33305
33372
  }>;
33306
33373
  }>>;
33374
+ terminalSession: import("@trpc/server").TRPCBuiltRouter<{
33375
+ ctx: TrpcContext;
33376
+ meta: object;
33377
+ errorShape: import("@camstack/types").AugmentedErrorShape;
33378
+ transformer: true;
33379
+ }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
33380
+ listProfiles: import("@trpc/server").TRPCQueryProcedure<{
33381
+ input: {
33382
+ nodeId?: string | undefined;
33383
+ } | undefined;
33384
+ output: readonly {
33385
+ profileId: string;
33386
+ label: string;
33387
+ description?: string | undefined;
33388
+ }[];
33389
+ meta: object;
33390
+ }>;
33391
+ listSessions: import("@trpc/server").TRPCQueryProcedure<{
33392
+ input: {
33393
+ nodeId?: string | undefined;
33394
+ } | undefined;
33395
+ output: readonly {
33396
+ sessionId: string;
33397
+ profileId: string;
33398
+ label: string;
33399
+ cols: number;
33400
+ rows: number;
33401
+ startedAt: number;
33402
+ }[];
33403
+ meta: object;
33404
+ }>;
33405
+ openSession: import("@trpc/server").TRPCMutationProcedure<{
33406
+ input: {
33407
+ [x: string]: unknown;
33408
+ profileId: string;
33409
+ cols: number;
33410
+ rows: number;
33411
+ };
33412
+ output: {
33413
+ sessionId: string;
33414
+ profileId: string;
33415
+ label: string;
33416
+ cols: number;
33417
+ rows: number;
33418
+ startedAt: number;
33419
+ };
33420
+ meta: object;
33421
+ }>;
33422
+ resize: import("@trpc/server").TRPCMutationProcedure<{
33423
+ input: {
33424
+ [x: string]: unknown;
33425
+ sessionId: string;
33426
+ cols: number;
33427
+ rows: number;
33428
+ };
33429
+ output: void;
33430
+ meta: object;
33431
+ }>;
33432
+ close: import("@trpc/server").TRPCMutationProcedure<{
33433
+ input: {
33434
+ [x: string]: unknown;
33435
+ sessionId: string;
33436
+ };
33437
+ output: void;
33438
+ meta: object;
33439
+ }>;
33440
+ }>>;
33307
33441
  toast: import("@trpc/server").TRPCBuiltRouter<{
33308
33442
  ctx: TrpcContext;
33309
33443
  meta: object;
@@ -124,6 +124,7 @@ export { switchCapability } from '../capabilities/switch.cap.js';
124
124
  export { systemCapability } from '../capabilities/system.cap.js';
125
125
  export { tamperCapability } from '../capabilities/tamper.cap.js';
126
126
  export { temperatureSensorCapability } from '../capabilities/temperature-sensor.cap.js';
127
+ export { terminalSessionCapability } from '../capabilities/terminal-session.cap.js';
127
128
  export { toastCapability } from '../capabilities/toast.cap.js';
128
129
  export { turnProviderCapability } from '../capabilities/turn-provider.cap.js';
129
130
  export { updateCapability } from '../capabilities/update.cap.js';
@@ -267,6 +268,7 @@ export declare const CAPABILITY_NAMES: {
267
268
  readonly system: "system";
268
269
  readonly tamper: "tamper";
269
270
  readonly temperatureSensor: "temperature-sensor";
271
+ readonly terminalSession: "terminal-session";
270
272
  readonly toast: "toast";
271
273
  readonly turnProvider: "turn-provider";
272
274
  readonly update: "update";
@@ -423,6 +425,7 @@ export interface CapabilityRouterMap<TRouter = unknown> {
423
425
  readonly system: TRouter;
424
426
  readonly tamper: TRouter;
425
427
  readonly temperatureSensor: TRouter;
428
+ readonly terminalSession: TRouter;
426
429
  readonly toast: TRouter;
427
430
  readonly turnProvider: TRouter;
428
431
  readonly update: TRouter;
@@ -440,8 +443,8 @@ export interface CapabilityRouterMap<TRouter = unknown> {
440
443
  readonly zoneRules: TRouter;
441
444
  readonly zones: TRouter;
442
445
  }
443
- /** Capability names whose mode is `singleton` (120 caps). */
444
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recordingExport", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "toast", "update", "user-management", "vacuum-control", "valve", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
446
+ /** Capability names whose mode is `singleton` (121 caps). */
447
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ["accessories", "addon-pages", "addon-settings", "addon-widgets", "addons", "admin-ui", "air-quality-sensor", "alarm-panel", "alerts", "ambient-light-sensor", "audio-analysis", "audio-analyzer", "audio-codec", "audio-metrics", "automation-control", "backup", "battery", "binary", "brightness", "button", "camera-credentials", "camera-pipeline-config", "camera-streams", "carbon-monoxide", "climate-control", "color", "connectivity", "consumables", "contact", "control", "cover", "day-night", "decoder", "detection-pipeline", "device-adoption", "device-discovery", "device-manager", "device-ops", "device-state", "device-status", "doorbell", "enum-sensor", "event-emitter", "events", "face-gallery", "fan-control", "feature-probe", "filesystem-browse", "flood", "gas", "humidifier", "humidity-sensor", "image", "image-settings", "integrations", "intercom", "lawn-mower-control", "llm-runtime", "local-network", "lock-control", "media-player", "metrics-provider", "model-convert", "model-distributor", "motion", "motion-detection", "motion-trigger", "motion-zones", "native-object-detection", "network-quality", "nodes", "notification-rules", "notifier", "numeric-sensor", "osd", "pet-feeder", "pipeline-analytics", "pipeline-executor", "pipeline-orchestrator", "pipeline-runner", "plate-gallery", "platform-probe", "power-meter", "presence", "pressure-sensor", "privacy-mask", "ptz", "ptz-autotrack", "reboot", "recording", "recordingExport", "scene-monitor", "script-runner", "server-management", "settings-store", "smoke", "snapshot", "sso-bridge", "storage", "stream-broker", "stream-catalog", "stream-params", "switch", "system", "tamper", "temperature-sensor", "terminal-session", "toast", "update", "user-management", "vacuum-control", "valve", "vibration", "videoclips", "viewer-ui", "water-heater", "weather", "webrtc-session", "zone-analytics", "zone-rules", "zones"];
445
448
  /** Union of singleton capability names (literal string union). */
446
449
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
447
450
  /** Capability names whose mode is `collection` (22 caps). */
@@ -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: 806 method paths across 116 capabilities.
9
+ * Coverage: 811 method paths across 117 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -38,6 +38,7 @@ import type { settingsStoreCapability } from '../capabilities/settings-store.cap
38
38
  import type { storageCapability } from '../capabilities/storage.cap.js';
39
39
  import type { streamBrokerCapability } from '../capabilities/stream-broker.cap.js';
40
40
  import type { systemCapability } from '../capabilities/system.cap.js';
41
+ import type { terminalSessionCapability } from '../capabilities/terminal-session.cap.js';
41
42
  import type { toastCapability } from '../capabilities/toast.cap.js';
42
43
  import type { turnProviderCapability } from '../capabilities/turn-provider.cap.js';
43
44
  import type { userManagementCapability } from '../capabilities/user-management.cap.js';
@@ -88,6 +89,7 @@ export interface SystemProxy {
88
89
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'getDefaultLocation' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'testLocation' | 'listProviders' | 'testConfig'>;
89
90
  readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'subscribeFrames' | 'pullFrameHandles' | 'unsubscribeFrames' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
90
91
  readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup'>;
92
+ readonly terminalSession: Pick<InferProvider<typeof terminalSessionCapability>, 'listProfiles' | 'listSessions' | 'openSession' | 'resize' | 'close'>;
91
93
  readonly toast: Pick<InferProvider<typeof toastCapability>, 'onToast'>;
92
94
  readonly turnProvider: Pick<InferProvider<typeof turnProviderCapability>, 'getTurnServers'>;
93
95
  readonly userManagement: Pick<InferProvider<typeof userManagementCapability>, 'listUsers' | 'createUser' | 'updateUser' | 'deleteUser' | 'resetPassword' | 'setUserScopes' | 'validateCredentials' | 'listApiKeys' | 'createApiKey' | 'revokeApiKey' | 'validateApiKey' | 'createScopedToken' | 'revokeScopedToken' | 'validateScopedToken' | 'listScopedTokens' | 'setupTotp' | 'confirmTotp' | 'disableTotp' | 'getTotpStatus' | 'verifyTotp' | 'oauthIssueCode' | 'oauthExchangeCode' | 'oauthRefresh' | 'oauthVerifyAccessToken' | 'listOauthSessions' | 'revokeOauthSession'>;
package/dist/index.d.ts CHANGED
@@ -140,6 +140,8 @@ export { startReachabilityPoll, REACHABILITY_POLL_INTERVAL_MS, REACHABILITY_FAIL
140
140
  export type { ReachabilityPollOptions, ReachabilityPollHandle, ReachabilityPollLogger, } from './device/reachability-poll.js';
141
141
  export { prepareNotification, type PreparedAction, type PreparedAttachment, type PreparedNotification, type ResolvedLevel, } from './notification/degrade-engine.js';
142
142
  export { htmlToText, markdownToHtmlLite, markdownToText, type NotificationFormat as NotificationBodyFormat, resolveFormat, textToHtml, transcodeBody, } from './notification/format-transcode.js';
143
+ export { TimelapseRuleInputSchema, TimelapseRulePatchSchema, TimelapseRuleSchema, TimelapseTemplateSchema, } from './notification/timelapse-rule.js';
144
+ export type { TimelapseRule, TimelapseRuleInput, TimelapseRulePatch, TimelapseTemplate, } from './notification/timelapse-rule.js';
143
145
  export { BaseDevice } from './device/base-device.js';
144
146
  export type { AccessoryChildSpec } from './device/base-device.js';
145
147
  export { SourceInfoSchema, synthesizeSourceInfo, mergeSourceInfo, normalizeUnit, extractSourceInfoFromMetadata, SOURCE_INFO_METADATA_KEY, } from './device/source-info.js';