@camstack/ui-library 1.2.50 → 1.2.52

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.
@@ -1,2 +1,53 @@
1
- import { CapSettingsComponentProps } from './index';
2
- export declare function SceneMonitorEditor({ deviceId }: CapSettingsComponentProps): import("react").JSX.Element | null;
1
+ /**
2
+ * SceneMonitorEditor — the per-camera half of the Scenes surface.
3
+ *
4
+ * **Imported directly, not resolved as a widget.** It briefly lived behind the
5
+ * host widget `host/scene-monitor-editor`, mounted as a "Scenes" tab on one
6
+ * camera's detail page. That put a standing question about the property ("is
7
+ * the bin still out") one camera deep, where the operator's actual question —
8
+ * "which of my scenes have tripped" — could not be asked at all. The overview
9
+ * is now the top-level `/scenes` page; this component is what that page opens
10
+ * once a camera is chosen, in a dialog. The widget id and its `deviceConfig`
11
+ * declaration are both gone, in the same commit, because
12
+ * `scripts/check-host-widget-resolves.ts` checks both directions.
13
+ *
14
+ * It renders BARE — no `WidgetPanel` — because its only caller supplies a
15
+ * dialog header, and two stacked titles read as a layout bug.
16
+ *
17
+ * ## The flow, in the order the operator meets it
18
+ *
19
+ * 1. **Draw a region on the still frame.** A rect over a SNAPSHOT, not the live
20
+ * player: a scene is defined against a photograph, and drawing on a moving
21
+ * picture makes it impossible to see whether the box actually contains the
22
+ * bin. The editor starts in draw mode and warns above ~40 % of the frame,
23
+ * because a full-frame scene is dominated by weather, sky and parked cars —
24
+ * it will not work, and it will look broken rather than misconfigured.
25
+ * 2. **Capture the initial state, per lighting variant.** Two buttons, Daylight
26
+ * and Night (IR), each forcing a fresh snapshot. The variant is DETECTED
27
+ * from the frame and shown rather than asked; the buttons exist so the
28
+ * operator can say "capture this as the night reference" while standing
29
+ * outside at 22:00 — which is exactly why **Night (IR) is labelled
30
+ * optional**. Almost nobody does that, and a scene captured only in daylight
31
+ * is a configuration, not a defect: under the default
32
+ * `onUncoveredCondition: 'skip'` the infrared hours are simply sat out.
33
+ * 3. **Read the coverage line.** "Daylight ✓ · Night (IR) ✗ — optional; checks
34
+ * in night (ir) are skipped". This feature's failure mode is silence that
35
+ * reads as "nothing has happened", and that one line is the difference
36
+ * between a five-minute fix and a session of guessing — but it must say what
37
+ * HAPPENS, not complain. It used to end "reports 'can't tell'", which made a
38
+ * correctly configured scene look broken every night.
39
+ * 4. **Reset.** Clears the flag AND re-captures the baseline for the current
40
+ * light, because the bin never goes back in exactly the same spot.
41
+ * 5. **Settings.** Every knob the model has actually carried since the provider
42
+ * shipped — how often it looks, how closely it has to match, how many
43
+ * agreeing checks a change costs, what a missing light means, which boolean
44
+ * drives notifications, and whether a vision model adjudicates a flip. None
45
+ * of it was reachable before; see `SceneSettingsForm`.
46
+ *
47
+ * Live state arrives through the cap's `status.kind: 'push'` runtime slice, so
48
+ * the card updates itself without polling.
49
+ */
50
+ export interface SceneMonitorEditorProps {
51
+ readonly deviceId: number;
52
+ }
53
+ export declare function SceneMonitorEditor({ deviceId }: SceneMonitorEditorProps): import("react").JSX.Element | null;
@@ -0,0 +1,36 @@
1
+ import { SceneMonitor, SceneReference } from '@camstack/types';
2
+ /** The hub-proxied prefix for the pipeline-analytics event-media data plane. */
3
+ export declare const SCENE_MEDIA_BASE = "/addon/pipeline-analytics/event-media";
4
+ /** One reference, with the coordinates `deleteReference` addresses it by. */
5
+ export interface SceneReferenceTile {
6
+ readonly stateId: string;
7
+ /** Index into THAT state's `references` array — the cap's own addressing. */
8
+ readonly index: number;
9
+ readonly reference: SceneReference;
10
+ }
11
+ export interface SceneReferenceGroup {
12
+ readonly condition: string;
13
+ readonly tiles: readonly SceneReferenceTile[];
14
+ }
15
+ /**
16
+ * Flatten `states[].references[]` into per-condition groups while keeping each
17
+ * reference's `(stateId, index)` — the pair `deleteReference` takes.
18
+ *
19
+ * The index is deliberately the position in the state's OWN array rather than
20
+ * anything derived from the grouping: an index computed over the grouped view
21
+ * would address a different reference the moment a scene holds two conditions,
22
+ * and the operator would delete the wrong photograph with no way to tell.
23
+ */
24
+ export declare function groupReferences(monitor: SceneMonitor): readonly SceneReferenceGroup[];
25
+ /** Total references across every state — the count that decides whether a
26
+ * delete leaves the scene with no idea what "normal" looks like. */
27
+ export declare function totalReferences(monitor: SceneMonitor): number;
28
+ export interface SceneReferenceGalleryProps {
29
+ readonly monitor: SceneMonitor;
30
+ readonly disabled: boolean;
31
+ readonly onDelete: (input: {
32
+ stateId: string;
33
+ index: number;
34
+ }) => void;
35
+ }
36
+ export declare function SceneReferenceGallery({ monitor, disabled, onDelete }: SceneReferenceGalleryProps): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { SceneCheck, SceneMonitor, SceneUncoveredPolicy } from '@camstack/types';
2
+ /** The subset of `updateScene`'s patch this form can produce. */
3
+ export interface SceneSettingsPatch {
4
+ readonly label?: string;
5
+ readonly enabled?: boolean;
6
+ readonly triggerMode?: SceneMonitor['triggerMode'];
7
+ readonly checkIntervalSec?: number;
8
+ readonly check?: SceneCheck;
9
+ readonly quietSeconds?: number;
10
+ readonly minObservationSpacingSec?: number;
11
+ readonly emit?: SceneMonitor['emit'];
12
+ readonly autoRestore?: boolean;
13
+ readonly onUncoveredCondition?: SceneUncoveredPolicy;
14
+ readonly confirm?: SceneMonitor['confirm'] | null;
15
+ }
16
+ export interface SceneSettingsFormProps {
17
+ readonly monitor: SceneMonitor;
18
+ readonly disabled: boolean;
19
+ readonly onPatch: (patch: SceneSettingsPatch) => void;
20
+ }
21
+ export declare function SceneSettingsForm({ monitor, disabled, onPatch }: SceneSettingsFormProps): import("react").JSX.Element;
@@ -1,26 +1,58 @@
1
1
  import { SceneMonitor } from '@camstack/types';
2
- /** The lighting variants an operator is asked to capture. The resolver can also
3
- * report `night`, `dawn` and `dusk`; those are shown when present but never
4
- * demanded, because most installs only ever see day and IR. */
2
+ /** The lighting variants an operator is OFFERED. The resolver can also report
3
+ * `night`, `dawn` and `dusk`; those are shown when present but never demanded,
4
+ * because most installs only ever see day and IR. */
5
5
  export declare const SCENE_CAPTURE_VARIANTS: readonly ["day", "ir"];
6
6
  export type SceneCaptureVariant = (typeof SCENE_CAPTURE_VARIANTS)[number];
7
+ /**
8
+ * The one variant that is genuinely optional.
9
+ *
10
+ * Nobody stands outside at 22:00 to photograph a wheelie bin in infrared, and
11
+ * plenty of scenes are daytime questions that never need a night reference at
12
+ * all. Every sentence about IR in this file is written from that premise: a
13
+ * missing night reference is a CHOICE the scene accommodates, never a fault it
14
+ * reports. The engine backs that up — under the default
15
+ * `onUncoveredCondition: 'skip'` the night checks are simply not made.
16
+ */
17
+ export declare const SCENE_OPTIONAL_VARIANT: SceneCaptureVariant;
7
18
  export declare const VARIANT_LABEL: Readonly<Record<string, string>>;
8
19
  export declare function variantLabel(condition: string): string;
9
20
  /**
10
- * "day ✓ · ir ✗ — this scene reports UNKNOWN at night."
21
+ * "Daylight ✓ · Night (IR) ✗ — optional; checks in night (ir) are skipped."
11
22
  *
12
23
  * Converts the silent cross-condition fallback this engine used to have into an
13
24
  * operator-visible fact. Without it, a scene with only a daylight reference
14
25
  * simply stops answering after sunset and nothing anywhere says why.
26
+ *
27
+ * It used to end *"reports 'can't tell' in night (ir)"*, which was accurate and
28
+ * read as a defect: the operator saw a ✗ and a complaint for a scene that was
29
+ * configured exactly as they meant it. The missing half is now named as what it
30
+ * is — the part you do not have to do — and the sentence says what actually
31
+ * happens instead, which differs by the scene's own policy.
15
32
  */
16
33
  export declare function coverageLine(monitor: SceneMonitor): string;
34
+ /**
35
+ * The calm sentence for a scene that is sitting the current light out — `null`
36
+ * whenever it is checking normally.
37
+ *
38
+ * Separate from {@link statusLine} because it is not a verdict and must not
39
+ * read like one. A paused scene has not failed, has not lost its flag, and
40
+ * needs nothing from the operator; the only thing worth saying is which light
41
+ * it is waiting out and that it will pick itself back up.
42
+ */
43
+ export declare function suspensionLine(monitor: SceneMonitor): string | null;
17
44
  /**
18
45
  * The one line under a scene's name. It answers, in order: can it judge, what
19
46
  * does it say, and how long has it said it.
20
47
  */
21
48
  export declare function statusLine(monitor: SceneMonitor, now: number): string;
22
49
  /** The badge word. `latched` wins over `verdict`, because the latch is the
23
- * thing the operator asked to be told and it outlives the live state. */
50
+ * thing the operator asked to be told and it outlives the live state.
51
+ *
52
+ * A scene sitting out an uncovered light reads `Paused`, in the NEUTRAL tone —
53
+ * never `alarm`, and never the `danger` variant the page maps that to. A
54
+ * missing IR reference must not be able to paint a red badge on a scene that
55
+ * is doing exactly what it was configured to do. */
24
56
  export declare function badgeFor(monitor: SceneMonitor): {
25
57
  text: string;
26
58
  tone: 'alarm' | 'ok' | 'unknown';
@@ -1,150 +1,152 @@
1
- export * from './breadcrumb';
2
- export { DataTable } from './data-table';
3
- export type { DataTableProps, DataColumn } from './data-table';
4
- export { SlideOverPanel } from './slide-over-panel';
5
- export type { SlideOverPanelProps } from './slide-over-panel';
6
- export { StepTreeMaster, buildStepTreeFromSchema } from './step-tree-master';
7
- export type { StepTreeMasterProps, StepTreeNode, StepDotState } from './step-tree-master';
8
- export { AgentStepEditor } from './agent-step-editor';
1
+ export { AddonGlobalSettingsForm } from './addon-global-settings-form';
2
+ export type { AddonPageProps } from './addon-page-props';
9
3
  export type { AgentStepEditorProps, EditorMode } from './agent-step-editor';
10
- export { PipelineTreeMatrix } from './pipeline-tree-matrix';
11
- export type { PipelineTreeMatrixProps, AgentColumn, CellState } from './pipeline-tree-matrix';
12
- export { DeviceStepMatrix } from './device-step-matrix';
13
- export type { DeviceStepMatrixProps, StepGate } from './device-step-matrix';
14
- export { shouldUseSingleNode, agentColumnKey, groupAgentColumns } from './pipeline-matrix-shared';
15
- export type { AgentColumnGroup, AgentColumnIdentity, MatrixSelectedCell, } from './pipeline-matrix-shared';
16
- export { resolveStepDefaultModel, resolveEffectiveDefaultModel, resolveEffectiveStepModel, stepHasModelForFormat, stepModelOptions, } from './resolve-step-default-model';
17
- export type { EffectiveStepModelInput, StepModelCatalog, StepModelFormatBuilds, } from './resolve-step-default-model';
18
- export { NodePicker } from './node-picker';
19
- export type { NodePickerProps } from './node-picker';
20
- export * from './status-badge';
21
- export * from './provider-badge';
22
- export * from './version-badge';
23
- export * from './form-field';
24
- export * from './page-header';
25
- export * from './empty-state';
26
- export * from './error-box';
27
- export * from './confirm-dialog';
28
- export * from './stat-card';
29
- export * from './key-value-list';
30
- export { SettingRow } from './setting-row';
31
- export type { SettingRowElements, SettingRowProps } from './setting-row';
32
- export { CARD_MODE_MIN_COLUMNS, resolveTableLayout } from './data-table-layout';
33
- export type { TableLayoutKind, TableMobileMode } from './data-table-layout';
34
- export * from './code-block';
35
- export * from './filter-bar';
4
+ export { AgentStepEditor } from './agent-step-editor';
36
5
  export * from './app-shell';
6
+ export type { AudioClassification, AudioClassificationListProps } from './audio-classification-list';
7
+ export { AudioClassificationList } from './audio-classification-list';
8
+ export type { AudioLevelWaveformProps } from './audio-level-waveform';
9
+ export { AudioLevelWaveform } from './audio-level-waveform';
10
+ export type { AudioWaveformProps } from './audio-waveform';
11
+ export { AudioWaveform } from './audio-waveform';
12
+ export type { BatteryBadgeProps, BatteryStatusLike } from './battery-badge';
13
+ export { BatteryBadge } from './battery-badge';
14
+ export * from './breadcrumb';
15
+ export type { CameraStreamPlayerProps, ClientOfferResult, ClientStreamHints, PlayerConnectionState, PlayerWebrtcTarget, SessionSignalingState, SignalingResult, } from './camera-stream-player';
16
+ export { CameraStreamPlayer } from './camera-stream-player';
17
+ export { AutotrackSection } from './cap-settings/AutotrackSection';
18
+ export { ConsumablesPanel } from './cap-settings/ConsumablesPanel';
19
+ export type { CapSettingsComponentProps } from './cap-settings/index';
20
+ export type { MaskShapeCanvasProps, MaskShapeItem } from './cap-settings/MaskShapeCanvas';
21
+ export { PtzPanel } from './cap-settings/PtzPanel';
22
+ export { RecordingPanel } from './cap-settings/RecordingPanel';
23
+ export type { SceneCaptureVariant } from './cap-settings/scene-monitor-copy';
24
+ export { badgeFor, coverageLine, humanDuration, ROI_AREA_WARN_FRACTION, roiTooLarge, SCENE_CAPTURE_VARIANTS, statusLine, variantLabel, } from './cap-settings/scene-monitor-copy';
25
+ export * from './code-block';
26
+ export type { TranslationFn } from './config-form-builder';
27
+ export { ConfigFormBuilder } from './config-form-builder';
28
+ export type { ProbeState } from './config-form-field';
29
+ export { ConfigFormField, isFieldVisible, NodeMultiSelectField, NodeSelectField, } from './config-form-field';
30
+ export type { ConfirmActionButtonProps } from './confirm-action-button';
31
+ export { ConfirmActionButton } from './confirm-action-button';
32
+ export * from './confirm-dialog';
33
+ export { ConfirmDialogProvider, useConfirm } from './confirm-dialog';
34
+ export type { CopyButtonProps } from './copy-button';
35
+ export { CopyButton } from './copy-button';
36
+ export type { DataColumn, DataTableProps } from './data-table';
37
37
  export * from './data-table';
38
+ export { DataTable } from './data-table';
39
+ export type { TableLayoutKind, TableMobileMode } from './data-table-layout';
40
+ export { CARD_MODE_MIN_COLUMNS, resolveTableLayout } from './data-table-layout';
41
+ export type { Detection, DetectionCanvasProps } from './detection-canvas';
42
+ export { DetectionCanvas } from './detection-canvas';
43
+ export { CLASS_COLORS, DEFAULT_COLOR, getClassColor } from './detection-colors';
44
+ export type { DetectionOverlayProps } from './detection-overlay';
45
+ export { DetectionOverlay } from './detection-overlay';
46
+ export type { DetectionResultTreeProps } from './detection-result-tree';
47
+ export { DetectionResultTree } from './detection-result-tree';
48
+ export type { DevShellProps } from './dev-shell';
49
+ export { DevShell, useDevShell } from './dev-shell';
50
+ export type { ActivityTabId, DeviceActivityPanelProps } from './device-activity-panel';
51
+ export { DeviceActivityPanel } from './device-activity-panel';
38
52
  export * from './device-card';
53
+ export * from './device-controls';
54
+ export type { DeviceExportPanelProps } from './device-export-panel';
55
+ export { DeviceExportPanel } from './device-export-panel';
39
56
  export * from './device-grid';
40
57
  export * from './device-item';
41
58
  export * from './device-list';
42
- export { DeviceBatchToolbar } from './device-list/batch-toolbar';
43
59
  export type { DeviceBatchToolbarProps } from './device-list/batch-toolbar';
60
+ export { DeviceBatchToolbar } from './device-list/batch-toolbar';
44
61
  export * from './device-meta';
45
- export * from './device-controls';
46
- export { PipelineStep, ConfigSchemaField } from './pipeline-step';
47
- export type { PipelineStepDisplayConfig, PipelineStepProps } from './pipeline-step';
48
- export { PipelineRuntimeSelector } from './pipeline-runtime-selector';
49
- export type { PipelineRuntimeOption } from './pipeline-runtime-selector';
50
- export { PipelineBuilder } from './pipeline-builder';
51
- export type { PipelineBuilderProps } from './pipeline-builder';
52
- export { CLASS_COLORS, DEFAULT_COLOR, getClassColor } from './detection-colors';
53
- export { EVENT_KIND_ICONS, resolveEventKindIcon, eventKindLabel, EventKindGlyph, } from './event-kind-visuals';
62
+ export { DeviceMultiSelectField, DeviceSelectField } from './device-select-field';
63
+ export type { DeviceSelectCandidate } from './device-select-filter';
64
+ export { deviceMatchesFilter, deviceOptionLabel, devicesToOptions, filterDeviceOptions, selectedDeviceOptions, } from './device-select-filter';
65
+ export type { DeviceSelectorTab, SelectorDevice } from './device-selector-picker';
66
+ export { DeviceSelectorPicker, describeDeviceSelector, deviceTypeLabel, tabForSelector, } from './device-selector-picker';
67
+ export type { DeviceStepMatrixProps, StepGate } from './device-step-matrix';
68
+ export { DeviceStepMatrix } from './device-step-matrix';
69
+ export { DiscoveryPanel } from './discovery-panel';
70
+ export type { DoorbellRecentPanelProps } from './doorbell-recent-panel';
71
+ export { DoorbellRecentPanel } from './doorbell-recent-panel';
72
+ export * from './empty-state';
73
+ export * from './error-box';
54
74
  export type { EventKindGlyphProps } from './event-kind-visuals';
55
- export { DetectionCanvas } from './detection-canvas';
56
- export type { Detection, DetectionCanvasProps } from './detection-canvas';
57
- export { DetectionResultTree } from './detection-result-tree';
58
- export type { DetectionResultTreeProps } from './detection-result-tree';
59
- export { StepTimings } from './step-timings';
60
- export type { StepTimingsProps } from './step-timings';
61
- export { ImageSelector } from './image-selector';
75
+ export { EVENT_KIND_ICONS, EventKindGlyph, eventKindLabel, resolveEventKindIcon, } from './event-kind-visuals';
76
+ export type { EventStreamProps, FloatingEventStreamProps } from './event-stream';
77
+ export { EventStream, FloatingEventStream } from './event-stream';
78
+ export * from './filter-bar';
79
+ export * from './form-field';
80
+ export type { GroupedModelSelectorProps } from './grouped-model-selector';
81
+ export { GroupedModelSelector } from './grouped-model-selector';
82
+ export type { HlsVideoProps } from './hls-video';
83
+ export { HlsVideo } from './hls-video';
84
+ export type { HoverZoomImageProps } from './hover-zoom-image';
85
+ export { HoverZoomImage } from './hover-zoom-image';
62
86
  export type { ImageSelectorProps, ReferenceImage } from './image-selector';
87
+ export { ImageSelector } from './image-selector';
88
+ export type { InferenceAgentOption, InferenceBackendOption, InferenceConfigSelectorProps, InferenceModelOption, } from './inference-config-selector';
63
89
  export { InferenceConfigSelector } from './inference-config-selector';
64
- export type { InferenceConfigSelectorProps, InferenceBackendOption, InferenceModelOption, InferenceAgentOption, } from './inference-config-selector';
65
- export type { AddonPageProps } from './addon-page-props';
66
- export { mountAddonPage } from './mount-addon-page';
67
- export type { MountAddonPageOptions } from './mount-addon-page';
68
- export { ConfigFormBuilder } from './config-form-builder';
69
- export type { TranslationFn } from './config-form-builder';
70
- export { ConfigFormField, NodeSelectField, NodeMultiSelectField, isFieldVisible, } from './config-form-field';
71
- export { DeviceSelectField, DeviceMultiSelectField } from './device-select-field';
72
- export { deviceMatchesFilter, deviceOptionLabel, devicesToOptions, filterDeviceOptions, selectedDeviceOptions, } from './device-select-filter';
73
- export type { DeviceSelectCandidate } from './device-select-filter';
74
- export { TimezoneSelector, TIMEZONES, findTimezone } from './timezone-selector';
75
- export type { TimezoneSelectorProps, Timezone, TimezoneDstRule, Weekday } from './timezone-selector';
76
- export { AddonGlobalSettingsForm } from './addon-global-settings-form';
77
- export type { ProbeState } from './config-form-field';
78
- export { DetectionOverlay } from './detection-overlay';
79
- export type { DetectionOverlayProps } from './detection-overlay';
80
- export { CameraStreamPlayer } from './camera-stream-player';
81
- export { nextReconnectAction, RECONNECT_POLICY } from './reconnect-schedule';
82
- export type { ReconnectAction, ReconnectPolicy } from './reconnect-schedule';
83
- export type { CameraStreamPlayerProps, PlayerConnectionState, PlayerWebrtcTarget, SignalingResult, ClientOfferResult, ClientStreamHints, SessionSignalingState, } from './camera-stream-player';
84
- export { StreamPanel } from './stream-panel';
85
- export type { StreamPanelProps, StreamChoice, StreamStats } from './stream-panel';
86
- export { HlsVideo } from './hls-video';
87
- export type { HlsVideoProps } from './hls-video';
88
- export { StreamBrokerSelector } from './stream-broker-selector';
89
- export type { StreamBrokerSelectorProps } from './stream-broker-selector';
90
- export { DeviceExportPanel } from './device-export-panel';
91
- export type { DeviceExportPanelProps } from './device-export-panel';
92
- export { QrCode } from './qr-code';
93
- export type { QrCodeProps } from './qr-code';
94
- export { CopyButton } from './copy-button';
95
- export type { CopyButtonProps } from './copy-button';
96
- export { LoginForm } from './login-form';
90
+ export type { KebabMenuItem, KebabMenuProps } from './kebab-menu';
91
+ export { KebabMenu } from './kebab-menu';
92
+ export * from './key-value-list';
93
+ export type { FloatingLogStreamProps, LogStreamProps } from './log-stream';
94
+ export { FloatingLogStream, LogStream } from './log-stream';
97
95
  export type { LoginFormProps } from './login-form';
98
- export { DevShell, useDevShell } from './dev-shell';
99
- export type { DevShellProps } from './dev-shell';
100
- export { AudioWaveform } from './audio-waveform';
101
- export type { AudioWaveformProps } from './audio-waveform';
102
- export { AudioLevelWaveform } from './audio-level-waveform';
103
- export type { AudioLevelWaveformProps } from './audio-level-waveform';
104
- export { AudioClassificationList } from './audio-classification-list';
105
- export type { AudioClassificationListProps, AudioClassification } from './audio-classification-list';
106
- export { ResponseLog } from './response-log';
107
- export type { ResponseLogProps } from './response-log';
108
- export { PhaseIcon } from './phase-icon';
96
+ export { LoginForm } from './login-form';
97
+ export type { ModelOption } from './model-picker';
98
+ export { ModelPicker } from './model-picker';
99
+ export type { MountAddonPageOptions } from './mount-addon-page';
100
+ export { mountAddonPage } from './mount-addon-page';
101
+ export type { NodePickerProps } from './node-picker';
102
+ export { NodePicker } from './node-picker';
103
+ export * from './page-header';
109
104
  export type { PhaseIconProps } from './phase-icon';
110
- export { LogStream, FloatingLogStream } from './log-stream';
111
- export type { LogStreamProps, FloatingLogStreamProps } from './log-stream';
112
- export { EventStream, FloatingEventStream } from './event-stream';
113
- export type { EventStreamProps, FloatingEventStreamProps } from './event-stream';
114
- export { DiscoveryPanel } from './discovery-panel';
115
- export { StateValuesStream } from './state-values-stream';
116
- export type { StateValuesStreamProps } from './state-values-stream';
117
- export { DeviceActivityPanel } from './device-activity-panel';
118
- export type { DeviceActivityPanelProps, ActivityTabId } from './device-activity-panel';
119
- export { ConfirmActionButton } from './confirm-action-button';
120
- export type { ConfirmActionButtonProps } from './confirm-action-button';
121
- export { PTZOverlay } from './ptz-overlay';
105
+ export { PhaseIcon } from './phase-icon';
106
+ export type { PipelineBuilderProps } from './pipeline-builder';
107
+ export { PipelineBuilder } from './pipeline-builder';
108
+ export type { AgentColumnGroup, AgentColumnIdentity, MatrixSelectedCell, } from './pipeline-matrix-shared';
109
+ export { agentColumnKey, groupAgentColumns, shouldUseSingleNode } from './pipeline-matrix-shared';
110
+ export type { PipelineRuntimeOption } from './pipeline-runtime-selector';
111
+ export { PipelineRuntimeSelector } from './pipeline-runtime-selector';
112
+ export type { PipelineStepDisplayConfig, PipelineStepProps } from './pipeline-step';
113
+ export { ConfigSchemaField, PipelineStep } from './pipeline-step';
114
+ export type { AgentColumn, CellState, PipelineTreeMatrixProps } from './pipeline-tree-matrix';
115
+ export { PipelineTreeMatrix } from './pipeline-tree-matrix';
116
+ export * from './provider-badge';
122
117
  export type { PTZOverlayProps } from './ptz-overlay';
123
- export { BatteryBadge } from './battery-badge';
124
- export type { BatteryBadgeProps, BatteryStatusLike } from './battery-badge';
125
- export { HoverZoomImage } from './hover-zoom-image';
126
- export type { HoverZoomImageProps } from './hover-zoom-image';
127
- export { SnapshotButton } from './snapshot-button';
128
- export type { SnapshotButtonProps, SnapshotButtonTrpc } from './snapshot-button';
129
- export { DoorbellRecentPanel } from './doorbell-recent-panel';
130
- export type { DoorbellRecentPanelProps } from './doorbell-recent-panel';
131
- export { KebabMenu } from './kebab-menu';
132
- export type { KebabMenuProps, KebabMenuItem } from './kebab-menu';
133
- export { ConfirmDialogProvider, useConfirm } from './confirm-dialog';
134
- export { WidgetSlot } from './widget-slot';
135
- export type { WidgetSlotProps } from './widget-slot';
136
- export { ScopePicker, validateScopes } from './scope-picker';
118
+ export { PTZOverlay } from './ptz-overlay';
119
+ export type { QrCodeProps } from './qr-code';
120
+ export { QrCode } from './qr-code';
121
+ export type { ReconnectAction, ReconnectPolicy } from './reconnect-schedule';
122
+ export { nextReconnectAction, RECONNECT_POLICY } from './reconnect-schedule';
123
+ export type { EffectiveStepModelInput, StepModelCatalog, StepModelFormatBuilds, } from './resolve-step-default-model';
124
+ export { resolveEffectiveDefaultModel, resolveEffectiveStepModel, resolveStepDefaultModel, stepHasModelForFormat, stepModelOptions, } from './resolve-step-default-model';
125
+ export type { ResponseLogProps } from './response-log';
126
+ export { ResponseLog } from './response-log';
137
127
  export type { ScopeAccess } from './scope-picker';
138
- export { DeviceSelectorPicker, describeDeviceSelector, deviceTypeLabel, tabForSelector, } from './device-selector-picker';
139
- export type { DeviceSelectorTab, SelectorDevice } from './device-selector-picker';
140
- export { PtzPanel } from './cap-settings/PtzPanel';
141
- export { ConsumablesPanel } from './cap-settings/ConsumablesPanel';
142
- export { AutotrackSection } from './cap-settings/AutotrackSection';
143
- export { RecordingPanel } from './cap-settings/RecordingPanel';
144
- export type { CapSettingsComponentProps } from './cap-settings/index';
145
- export type { MaskShapeItem, MaskShapeCanvasProps } from './cap-settings/MaskShapeCanvas';
128
+ export { ScopePicker, validateScopes } from './scope-picker';
129
+ export type { SettingRowElements, SettingRowProps } from './setting-row';
130
+ export { SettingRow } from './setting-row';
131
+ export type { SlideOverPanelProps } from './slide-over-panel';
132
+ export { SlideOverPanel } from './slide-over-panel';
133
+ export type { SnapshotButtonProps, SnapshotButtonTrpc } from './snapshot-button';
134
+ export { SnapshotButton } from './snapshot-button';
135
+ export * from './stat-card';
136
+ export type { StateValuesStreamProps } from './state-values-stream';
137
+ export { StateValuesStream } from './state-values-stream';
138
+ export * from './status-badge';
139
+ export type { StepTimingsProps } from './step-timings';
140
+ export { StepTimings } from './step-timings';
141
+ export type { StepDotState, StepTreeMasterProps, StepTreeNode } from './step-tree-master';
142
+ export { buildStepTreeFromSchema, StepTreeMaster } from './step-tree-master';
143
+ export type { StreamBrokerSelectorProps } from './stream-broker-selector';
144
+ export { StreamBrokerSelector } from './stream-broker-selector';
145
+ export type { StreamChoice, StreamPanelProps, StreamStats } from './stream-panel';
146
+ export { StreamPanel } from './stream-panel';
147
+ export type { Timezone, TimezoneDstRule, TimezoneSelectorProps, Weekday } from './timezone-selector';
148
+ export { findTimezone, TIMEZONES, TimezoneSelector } from './timezone-selector';
149
+ export * from './version-badge';
146
150
  export * from './widget-panel.js';
147
- export { GroupedModelSelector } from './grouped-model-selector';
148
- export type { GroupedModelSelectorProps } from './grouped-model-selector';
149
- export { ModelPicker } from './model-picker';
150
- export type { ModelOption } from './model-picker';
151
+ export type { WidgetSlotProps } from './widget-slot';
152
+ export { WidgetSlot } from './widget-slot';
@@ -733,6 +733,8 @@ export declare const useLawnMowerControlGetStatus: typeof trpc.lawnMowerControl.
733
733
  export declare const useLlmGenerate: typeof trpc.llm.generate.useMutation;
734
734
  /** Generated alias around `trpc.llm.generateVision.useMutation`. */
735
735
  export declare const useLlmGenerateVision: typeof trpc.llm.generateVision.useMutation;
736
+ /** Generated alias around `trpc.llm.cancel.useMutation`. */
737
+ export declare const useLlmCancel: typeof trpc.llm.cancel.useMutation;
736
738
  /** Generated alias around `trpc.llm.listProfileKinds.useQuery`. */
737
739
  export declare const useLlmListProfileKinds: typeof trpc.llm.listProfileKinds.useQuery;
738
740
  /** Generated alias around `trpc.llm.listProfiles.useQuery`. */
@@ -1501,6 +1503,8 @@ export declare const useSceneMonitorCaptureReference: typeof trpc.sceneMonitor.c
1501
1503
  export declare const useSceneMonitorDeleteReference: typeof trpc.sceneMonitor.deleteReference.useMutation;
1502
1504
  /** Generated alias around `trpc.sceneMonitor.recheckNow.useMutation`. */
1503
1505
  export declare const useSceneMonitorRecheckNow: typeof trpc.sceneMonitor.recheckNow.useMutation;
1506
+ /** Generated alias around `trpc.sceneMonitor.resetScene.useMutation`. */
1507
+ export declare const useSceneMonitorResetScene: typeof trpc.sceneMonitor.resetScene.useMutation;
1504
1508
  /** Generated alias around `trpc.sceneMonitor.getStatus.useQuery`. */
1505
1509
  export declare const useSceneMonitorGetStatus: typeof trpc.sceneMonitor.getStatus.useQuery;
1506
1510
  /** Generated alias around `trpc.scriptRunner.run.useMutation`. */
@@ -1717,6 +1721,12 @@ export declare const useSystemGetRetentionConfig: typeof trpc.system.getRetentio
1717
1721
  export declare const useSystemSetRetentionConfig: typeof trpc.system.setRetentionConfig.useMutation;
1718
1722
  /** Generated alias around `trpc.system.forceRetentionCleanup.useMutation`. */
1719
1723
  export declare const useSystemForceRetentionCleanup: typeof trpc.system.forceRetentionCleanup.useMutation;
1724
+ /** Generated alias around `trpc.system.getSiteLocation.useQuery`. */
1725
+ export declare const useSystemGetSiteLocation: typeof trpc.system.getSiteLocation.useQuery;
1726
+ /** Generated alias around `trpc.system.setSiteLocation.useMutation`. */
1727
+ export declare const useSystemSetSiteLocation: typeof trpc.system.setSiteLocation.useMutation;
1728
+ /** Generated alias around `trpc.system.detectSiteLocation.useMutation`. */
1729
+ export declare const useSystemDetectSiteLocation: typeof trpc.system.detectSiteLocation.useMutation;
1720
1730
  /** Generated alias around `trpc.tamper.getStatus.useQuery`. */
1721
1731
  export declare const useTamperGetStatus: typeof trpc.tamper.getStatus.useQuery;
1722
1732
  /** Generated alias around `trpc.temperatureSensor.getStatus.useQuery`. */