@camstack/types 1.2.320 → 1.2.321
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.
|
@@ -80,7 +80,7 @@ export interface ConfigSection {
|
|
|
80
80
|
readonly immediate?: boolean;
|
|
81
81
|
readonly fields: readonly ConfigField[];
|
|
82
82
|
}
|
|
83
|
-
export type ConfigField = ConfigTextField | ConfigNumberField | ConfigBooleanField | ConfigSelectField | ConfigMultiSelectField | ConfigTimezoneField | ConfigDateTimeField | ConfigColorField | ConfigPasswordField | ConfigTextAreaField | ConfigSliderField | ConfigTagsField | ConfigScheduleField | ConfigGroupField | ConfigSubTabsField | ConfigSeparatorField | ConfigInfoField | ConfigQrCodeField | ConfigObjectArrayField | ConfigEditableArrayField | ConfigModelSelectorField | ConfigStorageLocationField | ConfigProbeField | ConfigButtonField |
|
|
83
|
+
export type ConfigField = ConfigTextField | ConfigNumberField | ConfigBooleanField | ConfigSelectField | ConfigMultiSelectField | ConfigTimezoneField | ConfigDateTimeField | ConfigColorField | ConfigPasswordField | ConfigTextAreaField | ConfigSliderField | ConfigTagsField | ConfigScheduleField | ConfigGroupField | ConfigSubTabsField | ConfigSeparatorField | ConfigInfoField | ConfigQrCodeField | ConfigObjectArrayField | ConfigEditableArrayField | ConfigModelSelectorField | ConfigStorageLocationField | ConfigProbeField | ConfigButtonField | ConfigNodeSelectField | ConfigNodeMultiSelectField | ConfigDeviceSelectField | ConfigDeviceMultiSelectField | ConfigNotificationTargetSelectField | ConfigNotificationTargetMultiSelectField | ConfigWidgetField | ConfigAddonActionSelectField | ConfigAddonActionButtonField | ConfigDeviceActionButtonField;
|
|
84
84
|
/**
|
|
85
85
|
* Per-MODEL applicability of a pipeline-step setting (D214).
|
|
86
86
|
*
|
|
@@ -900,61 +900,6 @@ export interface ConfigDeviceActionButtonField extends ConfigFieldBase {
|
|
|
900
900
|
successMessage?: string;
|
|
901
901
|
confirmMessage?: string;
|
|
902
902
|
}
|
|
903
|
-
/**
|
|
904
|
-
* Describes an async resolver that the form renderer should call to
|
|
905
|
-
* fetch deferred-load data a field depends on (e.g. the addon catalog
|
|
906
|
-
* for a pipeline-editor, a dynamic options list for a select, …).
|
|
907
|
-
*
|
|
908
|
-
* The renderer dispatches through `client.trpc[capName][methodName]
|
|
909
|
-
* .query(input)` — the field declares WHICH cap + method + input to
|
|
910
|
-
* call, and the renderer stays oblivious to the endpoint naming.
|
|
911
|
-
* Results are cached client-side keyed by `(capName, methodName,
|
|
912
|
-
* input)` so two fields pointing at the same resolver deduplicate
|
|
913
|
-
* automatically.
|
|
914
|
-
*
|
|
915
|
-
* Not an endpoint to arbitrary HTTP — the tRPC proxy gates it to the
|
|
916
|
-
* server's declared cap surface + each cap's auth rules, same as
|
|
917
|
-
* every other `.query()` call the UI makes.
|
|
918
|
-
*/
|
|
919
|
-
export interface AsyncResolverRef {
|
|
920
|
-
/** tRPC cap namespace (e.g. `pipelineExecutor`, `pipelineOrchestrator`). */
|
|
921
|
-
readonly capName: string;
|
|
922
|
-
/** Method on that cap — must be a `.query()` (no mutations via resolvers). */
|
|
923
|
-
readonly methodName: string;
|
|
924
|
-
/** Input payload passed verbatim; serialised into the React Query key. */
|
|
925
|
-
readonly input?: Readonly<Record<string, unknown>>;
|
|
926
|
-
}
|
|
927
|
-
/**
|
|
928
|
-
* Camera pipeline editor field (stateless-pipeline Phase 6, option B).
|
|
929
|
-
*
|
|
930
|
-
* The FormBuilder renders this as the rich `PipelineBuilder` composite
|
|
931
|
-
* (step tree + engine picker + template picker) instead of a flat
|
|
932
|
-
* input. `value` is always a fully-resolved `CameraPipelineConfig` —
|
|
933
|
-
* when the camera has no persisted pipeline, the contributor
|
|
934
|
-
* (orchestrator) fills it with the cluster default server-side so
|
|
935
|
-
* the renderer stays dumb about nullability.
|
|
936
|
-
*
|
|
937
|
-
* `nodeId` names the runner node whose addon catalog powers the
|
|
938
|
-
* editor. It's exposed explicitly (rather than buried inside the
|
|
939
|
-
* resolver) for diagnostics, UI labels, and cache keying. The
|
|
940
|
-
* catalog itself isn't embedded — `catalogResolver` tells the
|
|
941
|
-
* renderer how to lazy-load it via the shared resolver hook, which
|
|
942
|
-
* React Query caches once per `(capName, methodName, input)`. That
|
|
943
|
-
* way 50 cameras assigned to the same node don't each trigger 50
|
|
944
|
-
* catalog fetches.
|
|
945
|
-
*
|
|
946
|
-
* Templates are NOT described by a resolver — they're a hub-wide
|
|
947
|
-
* library fetched in one place by the editor directly.
|
|
948
|
-
*/
|
|
949
|
-
export interface ConfigPipelineEditorField extends ConfigFieldBase {
|
|
950
|
-
type: 'pipeline-editor';
|
|
951
|
-
/** Runner node whose catalog powers the editor. */
|
|
952
|
-
readonly nodeId: string;
|
|
953
|
-
/** The camera this field edits — used by the renderer to fetch per-camera settings. */
|
|
954
|
-
readonly deviceId: number;
|
|
955
|
-
/** How to fetch the addon catalog for this node. */
|
|
956
|
-
readonly catalogResolver: AsyncResolverRef;
|
|
957
|
-
}
|
|
958
903
|
/**
|
|
959
904
|
* Generic widget field — addon-contributed widget mounted by the
|
|
960
905
|
* shared `<WidgetSlot>` runtime via the `WidgetRegistry`.
|
|
@@ -1016,9 +961,7 @@ export type ConfigFieldWithValue = (ConfigTextField & {
|
|
|
1016
961
|
readonly value: unknown;
|
|
1017
962
|
}) | (ConfigProbeField & {
|
|
1018
963
|
readonly value: unknown;
|
|
1019
|
-
}) | ConfigButtonField | (
|
|
1020
|
-
readonly value: unknown;
|
|
1021
|
-
}) | (ConfigNodeSelectField & {
|
|
964
|
+
}) | ConfigButtonField | (ConfigNodeSelectField & {
|
|
1022
965
|
readonly value: unknown;
|
|
1023
966
|
}) | (ConfigNodeMultiSelectField & {
|
|
1024
967
|
readonly value: unknown;
|