@camstack/types 1.2.307 → 1.2.309

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 (34) hide show
  1. package/dist/capabilities/custom-model-registry.cap.d.ts +38 -4
  2. package/dist/capabilities/device-manager.cap.d.ts +8 -8
  3. package/dist/capabilities/hub-address.d.ts +76 -0
  4. package/dist/capabilities/index.d.ts +4 -3
  5. package/dist/capabilities/local-network.cap.d.ts +93 -0
  6. package/dist/capabilities/model-convert.cap.d.ts +19 -2
  7. package/dist/capabilities/model-distributor.cap.d.ts +38 -4
  8. package/dist/capabilities/pipeline-executor.cap.d.ts +124 -10
  9. package/dist/capabilities/pipeline-runner.cap.d.ts +13 -0
  10. package/dist/catalogs/frigate-plus-classmap.d.ts +10 -7
  11. package/dist/catalogs/index.d.ts +1 -1
  12. package/dist/catalogs/root-model-supply.d.ts +202 -0
  13. package/dist/client.js +51 -49
  14. package/dist/client.mjs +51 -49
  15. package/dist/device/location-icon.d.ts +4 -4
  16. package/dist/device/site-zone.d.ts +2 -2
  17. package/dist/ffmpeg/pinned-spawn.d.ts +1 -1
  18. package/dist/generated/addon-api.d.ts +14 -0
  19. package/dist/generated/method-access-map.d.ts +1 -1
  20. package/dist/generated/system-proxy.d.ts +1 -1
  21. package/dist/index.d.ts +3 -1
  22. package/dist/index.js +1002 -512
  23. package/dist/index.mjs +970 -500
  24. package/dist/interfaces/event-bus.d.ts +12 -6
  25. package/dist/interfaces/pipeline-executor-capability.d.ts +6 -1
  26. package/dist/node.js +1 -1
  27. package/dist/node.mjs +1 -1
  28. package/dist/pipeline/removed-model-ids.d.ts +20 -0
  29. package/dist/pipeline/root-face-crop.d.ts +31 -0
  30. package/dist/types/detection.d.ts +9 -0
  31. package/dist/types/models.d.ts +69 -8
  32. package/dist/types/pipeline-step.d.ts +6 -0
  33. package/package.json +1 -1
  34. package/dist/catalogs/classifier-fill.d.ts +0 -104
@@ -169,7 +169,8 @@ export declare const CustomModelDescriptorSchema: z.ZodObject<{
169
169
  }>>;
170
170
  preserveOriginal: z.ZodBoolean;
171
171
  }, z.core.$strip>>;
172
- fillsClassifierEffects: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
172
+ suppliesSteps: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
173
+ kind: z.ZodLiteral<"label">;
173
174
  stepId: z.ZodEnum<{
174
175
  "animal-classifier": "animal-classifier";
175
176
  "vehicle-classifier": "vehicle-classifier";
@@ -177,7 +178,23 @@ export declare const CustomModelDescriptorSchema: z.ZodObject<{
177
178
  }>;
178
179
  labelToEffect: z.ZodRecord<z.ZodString, z.ZodString>;
179
180
  uncovered: z.ZodReadonly<z.ZodArray<z.ZodString>>;
180
- }, z.core.$strip>>>>;
181
+ }, z.core.$strip>, z.ZodObject<{
182
+ kind: z.ZodLiteral<"crop">;
183
+ stepId: z.ZodEnum<{
184
+ "plate-detection": "plate-detection";
185
+ "face-detection": "face-detection";
186
+ }>;
187
+ rootLabels: z.ZodReadonly<z.ZodArray<z.ZodString>>;
188
+ parentMacro: z.ZodEnum<{
189
+ person: "person";
190
+ vehicle: "vehicle";
191
+ }>;
192
+ childClass: z.ZodEnum<{
193
+ face: "face";
194
+ plate: "plate";
195
+ }>;
196
+ rootInputPx: z.ZodOptional<z.ZodNumber>;
197
+ }, z.core.$strip>], "kind">>>>;
181
198
  clip: z.ZodOptional<z.ZodObject<{
182
199
  textModelId: z.ZodString;
183
200
  embeddingDim: z.ZodNumber;
@@ -357,7 +374,8 @@ export declare const customModelRegistryCapability: {
357
374
  }>>;
358
375
  preserveOriginal: z.ZodBoolean;
359
376
  }, z.core.$strip>>;
360
- fillsClassifierEffects: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
377
+ suppliesSteps: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
378
+ kind: z.ZodLiteral<"label">;
361
379
  stepId: z.ZodEnum<{
362
380
  "animal-classifier": "animal-classifier";
363
381
  "vehicle-classifier": "vehicle-classifier";
@@ -365,7 +383,23 @@ export declare const customModelRegistryCapability: {
365
383
  }>;
366
384
  labelToEffect: z.ZodRecord<z.ZodString, z.ZodString>;
367
385
  uncovered: z.ZodReadonly<z.ZodArray<z.ZodString>>;
368
- }, z.core.$strip>>>>;
386
+ }, z.core.$strip>, z.ZodObject<{
387
+ kind: z.ZodLiteral<"crop">;
388
+ stepId: z.ZodEnum<{
389
+ "plate-detection": "plate-detection";
390
+ "face-detection": "face-detection";
391
+ }>;
392
+ rootLabels: z.ZodReadonly<z.ZodArray<z.ZodString>>;
393
+ parentMacro: z.ZodEnum<{
394
+ person: "person";
395
+ vehicle: "vehicle";
396
+ }>;
397
+ childClass: z.ZodEnum<{
398
+ face: "face";
399
+ plate: "plate";
400
+ }>;
401
+ rootInputPx: z.ZodOptional<z.ZodNumber>;
402
+ }, z.core.$strip>], "kind">>>>;
369
403
  clip: z.ZodOptional<z.ZodObject<{
370
404
  textModelId: z.ZodString;
371
405
  embeddingDim: z.ZodNumber;
@@ -781,8 +781,6 @@ export declare const deviceManagerCapability: {
781
781
  locationKey: z.ZodString;
782
782
  icon: z.ZodEnum<{
783
783
  package: "package";
784
- car: "car";
785
- umbrella: "umbrella";
786
784
  "map-pin": "map-pin";
787
785
  house: "house";
788
786
  "door-open": "door-open";
@@ -791,9 +789,11 @@ export declare const deviceManagerCapability: {
791
789
  "bed-double": "bed-double";
792
790
  bath: "bath";
793
791
  briefcase: "briefcase";
792
+ car: "car";
794
793
  "circle-parking": "circle-parking";
795
794
  route: "route";
796
795
  trees: "trees";
796
+ umbrella: "umbrella";
797
797
  "waves-ladder": "waves-ladder";
798
798
  fence: "fence";
799
799
  warehouse: "warehouse";
@@ -815,8 +815,6 @@ export declare const deviceManagerCapability: {
815
815
  location: z.ZodString;
816
816
  icon: z.ZodNullable<z.ZodEnum<{
817
817
  package: "package";
818
- car: "car";
819
- umbrella: "umbrella";
820
818
  "map-pin": "map-pin";
821
819
  house: "house";
822
820
  "door-open": "door-open";
@@ -825,9 +823,11 @@ export declare const deviceManagerCapability: {
825
823
  "bed-double": "bed-double";
826
824
  bath: "bath";
827
825
  briefcase: "briefcase";
826
+ car: "car";
828
827
  "circle-parking": "circle-parking";
829
828
  route: "route";
830
829
  trees: "trees";
830
+ umbrella: "umbrella";
831
831
  "waves-ladder": "waves-ladder";
832
832
  fence: "fence";
833
833
  warehouse: "warehouse";
@@ -882,8 +882,6 @@ export declare const deviceManagerCapability: {
882
882
  label: z.ZodString;
883
883
  icon: z.ZodNullable<z.ZodEnum<{
884
884
  package: "package";
885
- car: "car";
886
- umbrella: "umbrella";
887
885
  "map-pin": "map-pin";
888
886
  house: "house";
889
887
  "door-open": "door-open";
@@ -892,9 +890,11 @@ export declare const deviceManagerCapability: {
892
890
  "bed-double": "bed-double";
893
891
  bath: "bath";
894
892
  briefcase: "briefcase";
893
+ car: "car";
895
894
  "circle-parking": "circle-parking";
896
895
  route: "route";
897
896
  trees: "trees";
897
+ umbrella: "umbrella";
898
898
  "waves-ladder": "waves-ladder";
899
899
  fence: "fence";
900
900
  warehouse: "warehouse";
@@ -915,8 +915,6 @@ export declare const deviceManagerCapability: {
915
915
  name: z.ZodString;
916
916
  icon: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
917
917
  package: "package";
918
- car: "car";
919
- umbrella: "umbrella";
920
918
  "map-pin": "map-pin";
921
919
  house: "house";
922
920
  "door-open": "door-open";
@@ -925,9 +923,11 @@ export declare const deviceManagerCapability: {
925
923
  "bed-double": "bed-double";
926
924
  bath: "bath";
927
925
  briefcase: "briefcase";
926
+ car: "car";
928
927
  "circle-parking": "circle-parking";
929
928
  route: "route";
930
929
  trees: "trees";
930
+ umbrella: "umbrella";
931
931
  "waves-ladder": "waves-ladder";
932
932
  fence: "fence";
933
933
  warehouse: "warehouse";
@@ -0,0 +1,76 @@
1
+ /**
2
+ * hub-address — the ONE reading of "at which address is this hub reached?",
3
+ * taken from the hub's own `local-network` palette (`getConnectionEndpoints`).
4
+ *
5
+ * There is no environment variable for this answer. The hub enumerates its
6
+ * interfaces, knows its own listen port, honours the operator's allowlist and
7
+ * knows its tunnel and mesh names — every input the answer needs. A variable
8
+ * that restated it could only drift from it: a Mac hub (whose desktop app has
9
+ * no field for one) and any container started without it handed agents
10
+ * `https://127.0.0.1:4443`, an address that names the AGENT, so every addon and
11
+ * model pull failed with a connection refused that looked like a network fault.
12
+ *
13
+ * Two audiences, because they reach the hub from different places:
14
+ *
15
+ * - `cluster` — another node or a LAN device dialling the hub: an agent
16
+ * pulling a staged addon bundle or model, a camera relay told where the
17
+ * broker is. A LAN IPv4 literal first (a `.local` name or an operator
18
+ * hostname may not resolve inside an agent's container), then any other
19
+ * plausible LAN address, then the mesh. Never a public tunnel: it is a
20
+ * detour off the LAN for traffic that never left it, and tunnels cap bodies.
21
+ * - `browser` — a person's browser or a third party coming back to the hub: a
22
+ * magic-link e-mail, an OIDC callback, the WebAuthn relying party, an OAuth2
23
+ * `hubUrl` claim. The public tunnel, then the mesh, then the LAN.
24
+ *
25
+ * Both answers exclude loopback and the CamStack app link, always: loopback
26
+ * names whoever dials it, and the app link is not a hub address. `null` means
27
+ * the palette offered nothing usable — the caller must say so rather than
28
+ * substitute `127.0.0.1`.
29
+ *
30
+ * ## The operator override
31
+ *
32
+ * Auto-detection sees the hub's own interfaces, which is not always what the
33
+ * other side dials: a container on Docker BRIDGE networking sees only its
34
+ * 172.17.x, and a hub behind NAT or a VPN is reached at an address it never
35
+ * holds. For that, each audience has ONE stored override on the Network page
36
+ * (a `local-network` setting, never an environment variable). When set it wins
37
+ * outright; empty is automatic. It is validated on write by
38
+ * {@link validateHubAddressOverride} — http(s), no credentials, never loopback.
39
+ */
40
+ import type { ConnectionEndpoint } from './local-network.cap.js';
41
+ export type HubAddressAudience = 'cluster' | 'browser';
42
+ export type HubAddressOverrideCheck = {
43
+ readonly ok: true;
44
+ readonly baseUrl: string;
45
+ } | {
46
+ readonly ok: false;
47
+ readonly reason: string;
48
+ };
49
+ /**
50
+ * Validate an operator-typed override: an http(s) URL with a host, no
51
+ * credentials, no path, and never loopback (it would name whoever dials it).
52
+ * Answers the normalised origin (`scheme://host[:port]`).
53
+ */
54
+ export declare function validateHubAddressOverride(raw: string): HubAddressOverrideCheck;
55
+ /** Where a resolved hub address came from. */
56
+ export type HubAddressSource = 'override' | 'auto' | 'none';
57
+ export interface HubAddressResolution {
58
+ /** The operator's stored override, or `null` for automatic. */
59
+ readonly override: string | null;
60
+ /** The address in use, or `null` when nothing qualifies. */
61
+ readonly resolved: string | null;
62
+ readonly source: HubAddressSource;
63
+ }
64
+ /**
65
+ * The hub's base URL for `audience`, without a trailing slash, or `null` when
66
+ * the palette holds nothing that audience can reach. A valid operator
67
+ * `override` wins outright; an empty one means automatic. Ties inside a rank
68
+ * go to the palette's own `priority` (its preferred interface first).
69
+ */
70
+ export declare function pickHubBaseUrl(endpoints: readonly ConnectionEndpoint[], audience: HubAddressAudience, override?: string | null): string | null;
71
+ /** {@link pickHubBaseUrl}, saying where the answer came from. */
72
+ export declare function resolveHubAddress(endpoints: readonly ConnectionEndpoint[], audience: HubAddressAudience, override: string | null): HubAddressResolution;
73
+ /** The bare hostname of {@link pickHubBaseUrl}'s answer, or `null`. */
74
+ export declare function pickHubHostname(endpoints: readonly ConnectionEndpoint[], audience: HubAddressAudience, override?: string | null): string | null;
75
+ /** The bare hostname of a base URL, or `null` when it does not parse. */
76
+ export declare function hubAddressHostname(baseUrl: string | null): string | null;
@@ -64,6 +64,7 @@ export { EMBEDDING_MODEL_FAILED, EMBEDDING_REQUIREMENTS_FAILED, EMBEDDING_REQUIR
64
64
  export type { FailureContribution, IFailureContributionProvider, } from './failure-contribution.cap.js';
65
65
  export { FailureContributionSchema, FailureReasonCountSchema, failureContributionCapability, } from './failure-contribution.cap.js';
66
66
  export { filesystemBrowseCapability, type IFilesystemBrowseProvider, } from './filesystem-browse.cap.js';
67
+ export { type HubAddressAudience, type HubAddressOverrideCheck, type HubAddressResolution, type HubAddressSource, hubAddressHostname, pickHubBaseUrl, pickHubHostname, resolveHubAddress, validateHubAddressOverride, } from './hub-address.js';
67
68
  export { type HfModelResolution, HfModelResolutionSchema, type ILlmProvider, type LlmDefault, LlmDefaultSchema, type LlmDefaultSelector, LlmDefaultSelectorSchema, type LlmProfile, type LlmProfileKind, type LlmProfileKindDescriptor, LlmProfileKindDescriptorSchema, LlmProfileKindSchema, LlmProfileSchema, type LlmRuntimeNode, LlmRuntimeNodeSchema, type LlmUsageRollup, LlmUsageRollupSchema, llmCapability, type ManagedModelCatalogEntry, ManagedModelCatalogEntrySchema, } from './llm.cap.js';
68
69
  export { type AppleFmAvailability, AppleFmAvailabilitySchema, type AppleFmUnavailableReason, AppleFmUnavailableReasonSchema, type ILlmRuntimeProvider, type LlmDownloadProgress, LlmDownloadProgressSchema, type LlmNodeModel, LlmNodeModelSchema, type LlmRuntimeAppleCompleteInput, LlmRuntimeAppleCompleteInputSchema, type LlmRuntimeCancelInput, LlmRuntimeCancelInputSchema, type LlmRuntimeCompleteInput, LlmRuntimeCompleteInputSchema, type LlmRuntimeDiskUsage, LlmRuntimeDiskUsageSchema, type LlmRuntimeStatus, LlmRuntimeStatusSchema, llmRuntimeCapability, type ManagedModelExtraFile, ManagedModelExtraFileSchema, type ManagedModelRef, ManagedModelRefSchema, type ManagedRuntimeConfig, ManagedRuntimeConfigSchema, } from './llm-runtime.cap.js';
69
70
  export { type LlmErrorCode, LlmErrorCodeSchema, type LlmGenerateBaseInput, LlmGenerateBaseInputSchema, type LlmGenerateErr, LlmGenerateErrSchema, type LlmGenerateOk, LlmGenerateOkSchema, type LlmGenerateResult, LlmGenerateResultSchema, type LlmImage, LlmImageSchema, type LlmRefusalSource, LlmRefusalSourceSchema, type LlmRetryPolicy, LlmRetryPolicySchema, LlmTimeoutDefaults, type LlmUsage, LlmUsageSchema, } from './llm-shared.js';
@@ -89,8 +90,8 @@ export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, A
89
90
  export { consumableLowPercentOf, type INotificationRulesProvider, isRetiredClearKey, NC_ALARM_DELAY_MAX_SEC, NC_ALARM_NONBLOCKING_MAX, NC_ALARM_SENSORS_MAX, NC_ALARM_SYSTEM_EVENT_KINDS, NC_ALARM_TRIGGERED_MAX_SEC, NC_AUDIO_DBFS_FLOOR, NC_AUTHORABLE_SYSTEM_EVENT_KINDS, NC_BATTERY_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_CLIP_POST_ROLL_DEFAULT_SEC, NC_CLIP_PRE_ROLL_DEFAULT_SEC, NC_CLIP_RETENTION_MAX_SEC, NC_CONDITION_CATALOG, NC_CONFIRM_DEFAULT_MAX_IMAGE_PX, NC_CONFIRM_DEFAULT_TIMEOUT_MS, NC_CONFIRM_MAX_TIMEOUT_MS, NC_CONFIRM_MIN_TIMEOUT_MS, NC_CONSUMABLE_LOW_PERCENT_DEFAULT, NC_CONSUMABLE_LOW_PERCENT_MAX, NC_CONSUMABLE_SYSTEM_EVENT_KINDS, NC_DEFAULT_SNOOZE_MINUTES, NC_GROUPING_DEFAULT_SEC, NC_GROUPING_MAX_SEC, NC_GROUPING_MIN_SEC, NC_HISTORY_LIMIT_DEFAULT, NC_HISTORY_LIMIT_MAX, NC_MAX_PER_TRACK_IMMEDIATE, NC_RULE_CLEARABLE_KEYS, NC_RULE_RETIRED_CLEAR_KEYS, NC_SNOOZE_MAX_MINUTES, NC_TANK_SYSTEM_EVENT_KINDS, type NcActionBinding, NcActionBindingSchema, type NcAlarmBlocking, type NcAlarmBlockingEdit, NcAlarmBlockingEditSchema, NcAlarmBlockingSchema, type NcAlarmConfig, NcAlarmConfigSchema, type NcAlarmCreateProfileInput, NcAlarmCreateProfileInputSchema, type NcAlarmModeCoverage, NcAlarmModeCoverageSchema, type NcAlarmModeDelays, type NcAlarmModeDelaysEdit, NcAlarmModeDelaysEditSchema, NcAlarmModeDelaysSchema, type NcAlarmModeDeviceList, NcAlarmModeDeviceListSchema, type NcAlarmNonBlocking, type NcAlarmNonBlockingEdit, NcAlarmNonBlockingEditSchema, NcAlarmNonBlockingSchema, type NcAlarmPostTriggeredAction, NcAlarmPostTriggeredActionSchema, type NcAlarmProfileIdInput, NcAlarmProfileIdInputSchema, type NcAlarmProfileMeta, NcAlarmProfileMetaSchema, type NcAlarmProfilesView, NcAlarmProfilesViewSchema, type NcAlarmRenameProfileInput, NcAlarmRenameProfileInputSchema, type NcAlarmSecureOnArmEdit, NcAlarmSecureOnArmEditSchema, type NcAlarmSecureOnArmOff, NcAlarmSecureOnArmOffSchema, type NcAlarmSensorReading, NcAlarmSensorReadingSchema, type NcAlarmSensorState, NcAlarmSensorStateSchema, type NcAlarmSensors, type NcAlarmSensorsInput, NcAlarmSensorsInputSchema, NcAlarmSensorsSchema, type NcAlarmSettings, type NcAlarmSettingsPatch, NcAlarmSettingsPatchSchema, NcAlarmSettingsSchema, type NcAlarmSkippedDevice, NcAlarmSkippedDeviceSchema, type NcAlarmSkipReason, NcAlarmSkipReasonSchema, type NcAudioCondition, NcAudioConditionSchema, type NcClipRetentionAsk, NcClipRetentionAskSchema, type NcClipRetentionPlan, NcClipRetentionPlanSchema, type NcConditionDescriptor, NcConditionDescriptorSchema, type NcConditions, NcConditionsSchema, type NcConfirm, type NcConfirmExpect, NcConfirmExpectSchema, NcConfirmSchema, type NcCrossing, NcCrossingSchema, type NcDelivery, NcDeliverySchema, type NcDeviceStateCondition, NcDeviceStateConditionSchema, type NcHistoryEntry, NcHistoryEntrySchema, type NcHistoryFilter, NcHistoryFilterSchema, type NcHistoryRecordKind, NcHistoryRecordKindSchema, type NcHistoryStatus, NcHistoryStatusSchema, type NcHistorySubject, NcHistorySubjectSchema, type NcHookBindings, NcHookBindingsSchema, type NcLegacyRuleActionSequence, NcLegacyRuleActionSequenceSchema, type NcLinkedCameraMode, NcLinkedCameraModeSchema, type NcMediaFrame, NcMediaFrameSchema, type NcMediaPolicy, NcMediaPolicySchema, type NcOccupancyCondition, NcOccupancyConditionSchema, type NcPlateMatcher, NcPlateMatcherSchema, type NcRule, type NcRuleAction, NcRuleActionSchema, type NcRuleActionSequence, NcRuleActionSequenceSchema, type NcRuleActions, NcRuleActionsSchema, type NcRuleClearableKey, NcRuleClearableKeySchema, type NcRuleInput, NcRuleInputSchema, NcRuleKindSchema, type NcRuleLastRun, NcRuleLastRunSchema, type NcRuleLastRuns, NcRuleLastRunsSchema, type NcRuleNotificationButton, NcRuleNotificationButtonSchema, type NcRulePatch, NcRulePatchSchema, NcRuleSchema, type NcRuleTarget, NcRuleTargetSchema, type NcRuleUpdateInput, NcRuleUpdateInputSchema, type NcSceneCondition, NcSceneConditionSchema, type NcSchedule, NcScheduleSchema, type NcScheduleWindow, NcScheduleWindowSchema, type NcSensorTransition, NcSensorTransitionSchema, type NcSharedSequence, type NcSharedSequenceInput, NcSharedSequenceInputSchema, NcSharedSequenceSchema, type NcSnooze, type NcSnoozeInput, NcSnoozeInputSchema, NcSnoozeSchema, type NcSnoozeScope, NcSnoozeScopeSchema, type NcSnoozeSuppressed, NcSnoozeSuppressedSchema, type NcStateSummaryPreview, type NcStateSummaryPreviewRow, NcStateSummaryPreviewRowSchema, NcStateSummaryPreviewSchema, type NcStateSummaryPreviewSection, NcStateSummaryPreviewSectionSchema, type NcStateSummarySectionId, NcStateSummarySectionIdSchema, type NcStateSummarySplit, NcStateSummarySplitSchema, type NcSystemEventCondition, NcSystemEventConditionSchema, type NcSystemEventDelivery, type NcSystemEventDeliveryMode, NcSystemEventDeliveryModeSchema, NcSystemEventDeliverySchema, type NcSystemEventKind, NcSystemEventKindSchema, type NcTemplateFamily, NcTemplateFamilySchema, type NcTemplateField, NcTemplateFieldSchema, type NcTemplatePreview, type NcTemplatePreviewInput, NcTemplatePreviewInputSchema, NcTemplatePreviewSchema, type NcTemplateVarContext, NcTemplateVarContextSchema, type NcTemplateVarDescriptor, NcTemplateVarDescriptorSchema, type NcTemplateVarGroup, NcTemplateVarGroupSchema, type NcTemplateVarKind, NcTemplateVarKindSchema, type NcTestResult, NcTestResultSchema, type NcThrottle, type NcThrottleGranularity, NcThrottleGranularitySchema, NcThrottleSchema, type NcZoneCondition, NcZoneConditionSchema, notificationRulesCapability, } from './notification-rules.cap.js';
90
91
  export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
91
92
  export { AnalyticsLtsSeriesSchema, type AudioEvent, type AudioEventDraft, AudioEventSchema, type DetectionSource, DetectionSourceSchema, EVENT_DENSITY_BATCH_MAX, type EventDensityBucket, EventDensityBucketSchema, type EventDensityForDevice, EventDensityForDeviceSchema, type EventKind, type EventKindCategory, EventKindCategorySchema, type EventKindDescriptor, EventKindDescriptorSchema, type EventKindIcon, EventKindIconSchema, EventKindSchema, type EventKindsForDevice, EventKindsForDeviceSchema, type EventMediaKindBreakdown, type EventMediaKindFootprint, type EventPruneCounts, type EventStoreDeviceFootprint, type EventStoreFootprint, type IPipelineAnalyticsProvider, type KeyEvent, KeyEventSchema, type KeyEventsForDevice, type LabelAttribution, LabelAttributionSchema, type LabelTier, LabelTierSchema, LTS_SCOPE_CLASS_SEPARATOR, type LtsBucket, LtsBucketSchema, MAX_TRACK_DEBUG_NOTE_LEN, type MediaFile, type MediaFileBytes, type MediaFileInfo, MediaFileInfoSchema, type MediaFileKind, MediaFileKindEnum, type MediaFileRef, MediaFileRefSchema, MediaFileSchema, type MotionEvent, type MotionEventDraft, MotionEventSchema, type ObjectEvent, type ObjectEventDraft, ObjectEventSchema, occupancyScope, parseOccupancyScope, pipelineAnalyticsCapability, type RebuildObjectEmbeddingsRefusal, RebuildObjectEmbeddingsRefusalSchema, type RecentTracksPage, RecentTracksPageSchema, type RecentTracksQuery, RecentTracksQueryInput, type RetrainAnnotation, type RetrainAnnotationDraft, RetrainAnnotationDraftSchema, RetrainAnnotationKindSchema, RetrainAnnotationSchema, RetrainAnnotationSourceSchema, type RetrainAssistResult, RetrainAssistResultSchema, RetrainAssistSubjectSchema, RetrainCopyRefusalSchema, type RetrainFrame, type RetrainFrameCandidate, RetrainFrameCandidateSchema, type RetrainFrameList, RetrainFrameListSchema, RetrainFrameSchema, type RetrainFrameSelection, RetrainFrameSelectionSchema, type RetrainMacroClass, RetrainMacroClassSchema, type RetrainStatus, RetrainStatusSchema, type RetrainTrack, RetrainTrackSchema, type RetrainTransitionResult, RetrainTransitionResultSchema, type ScoredObjectEvent, ScoredObjectEventSchema, type SensorEvent, SensorEventSchema, type Track, type TrackCascadeCounts, TrackCascadeCountsSchema, type TrackEnvelope, TrackEnvelopeSchema, TrackedDetectionSchema, type TrackFlags, type TrackFlagsPatch, TrackFlagsPatchSchema, TrackFlagsSchema, type TrackProjection, TrackProjectionSchema, TrackSchema, type TrackSource, TrackSourceSchema, type TrackState, TrackStateSchema, type TrackZoneFilter, TrackZoneFilterSchema, type TrainingExportDeviceTotals, TrainingExportDeviceTotalsSchema, type TrainingExportSummary, TrainingExportSummarySchema, type ZoneCrossing, type ZoneCrossingDirection, ZoneCrossingDirectionSchema, ZoneCrossingSchema, } from './pipeline-analytics.cap.js';
92
- export type { EffectiveTuning, EffectiveTuningInput, NativeCropRef, PipelineStepInputOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
93
- export { EffectiveTuningSchema, ModelSubstitutionSchema, NativeCropRefSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
93
+ export type { EffectiveTuning, EffectiveTuningInput, NativeCropRef, PipelineStepInputOutput, SuppliedRootOutput, PipelineValidationIssue, PipelineValidationResult, } from './pipeline-executor.cap.js';
94
+ export { EffectiveTuningSchema, ModelSubstitutionSchema, NativeCropRefSchema, PipelineDefaultStepSchema, PipelineEngineChoiceSchema, PipelineRunResultBridge, PipelineStepInputSchema, PipelineValidationIssueSchema, PipelineValidationResultSchema, SuppliedRootOutputSchema, pipelineExecutorCapability, } from './pipeline-executor.cap.js';
94
95
  export type { CameraAssignmentStatus, CameraAudioStatus, CameraBrokerProfile, CameraBrokerStatus, CameraDecoderShm, CameraDecoderStatus, CameraDetectionPhase, CameraDetectionProvisioning, CameraDetectionProvisioningState, CameraDetectionStatus, CameraMotionStatus, CameraRecordingMode, CameraRecordingStatus, CameraSourceStatus, CameraSourceStream, CameraStatus, CameraStatusDegradation, CameraStatusDegradationReason, CameraStatusStage, ClusterModelChoice, ClusterModelChoiceUnreadableReason, DiskReconcileJob, InferenceDeviceExclusionReason, IngestOwner, NodeInferenceDevice, NodeInferenceDevices, OccupancyLookAnswer, OccupancyLookRefusal, OccupancyLookRequest, SetCameraSensorsInput, } from './pipeline-orchestrator.cap.js';
95
96
  export { AgentLoadSummarySchema, CameraAssignmentStatusSchema, CameraAudioStatusSchema, CameraBrokerProfileSchema, CameraBrokerStatusSchema, CameraDecoderShmSchema, CameraDecoderStatusSchema, CameraDetectionPhaseSchema, CameraDetectionProvisioningSchema, CameraDetectionProvisioningStateSchema, CameraDetectionStatusSchema, CameraMotionStatusSchema, CameraRecordingModeSchema, CameraRecordingStatusSchema, CameraSourceStatusSchema, CameraSourceStreamSchema, CameraStatusDegradationReasonSchema, CameraStatusDegradationSchema, CameraStatusSchema, CameraStatusStageSchema, CapabilityBindingsSchema, CLUSTER_MODEL_CHOICE_UNREADABLE_REASONS, ClusterModelChoiceSchema, DiskReconcileJobSchema, GlobalMetricsSchema, INFERENCE_DEVICE_EXCLUSION_REASONS, InferenceDeviceExclusionReasonSchema, IngestOwnerSchema, OccupancyLookAnswerSchema, OccupancyLookRefusalSchema, OccupancyLookRequestSchema, PipelineAssignmentSchema, pipelineOrchestratorCapability, SetCameraSensorsInputSchema, } from './pipeline-orchestrator.cap.js';
96
97
  export type { DetailParent, DetailResult, MotionSource, MotionSources, OccupancyBurstRefusal, ParkedFrameKind, ParkedTrackFrame, ParkRefusal, ParkTrackFrameResult, ReportMotionInput, RunDetailSubtreeInput, RunDetailSubtreeResult, RunnerFrameSource, RunnerInferenceDevice, RunnerJumpStepProvisioning, RunStatelessStepInput, RunStatelessStepResult, StatelessStepRefusal, } from './pipeline-runner.cap.js';
@@ -174,7 +175,7 @@ export { type BacklightMode, BacklightModeSchema, type ExposureMode, ExposureMod
174
175
  export { AvailableIntegrationTypeSchema, CreateIntegrationInputSchema, DeleteIntegrationResultSchema, type IIntegrationsProvider, IntegrationLiteSchema, type IntegrationTestConnectionResult, type IntegrationTestConnectionStatus, IntegrationWithStateSchema, integrationsCapability, TestConnectionResultSchema, TestConnectionStatusEnum, UpdateIntegrationInputSchema, } from './integrations.cap.js';
175
176
  export { type IIntercomProvider, type IntercomAbility, IntercomAbilitySchema, type IntercomStatus, IntercomStatusSchema, intercomCapability, } from './intercom.cap.js';
176
177
  export { type DeviceCodeSeverity, DeviceCodeSeveritySchema, type ILawnMowerControlProvider, type LawnMowerActivity, LawnMowerActivitySchema, type LawnMowerControlStatus, LawnMowerControlStatusSchema, lawnMowerControlCapability, } from './lawn-mower-control.cap.js';
177
- export { type AdvertisedLocalPort, type ConnectionEndpoint, type ILocalNetworkProvider, type LocalInterface, localNetworkCapability, type NotificationEndpoint, } from './local-network.cap.js';
178
+ export { type AdvertisedLocalPort, type ConnectionEndpoint, type HubAddresses, type HubAddressSnapshot, type ILocalNetworkProvider, type LocalInterface, localNetworkCapability, type NotificationEndpoint, } from './local-network.cap.js';
178
179
  export { type ILockControlProvider, type LockControlStatus, LockControlStatusSchema, type LockState, LockStateSchema, lockControlCapability, } from './lock-control.cap.js';
179
180
  export { type MaskGridDims, MaskGridDimsSchema, type MaskGridShape, MaskGridShapeSchema, type MaskLineShape, MaskLineShapeSchema, type MaskPoint, MaskPointSchema, type MaskPolygonShape, MaskPolygonShapeSchema, type MaskPolygonVertices, MaskPolygonVerticesSchema, type MaskRectShape, MaskRectShapeSchema, type MaskShape, type MaskShapeKind, MaskShapeKindSchema, MaskShapeSchema, } from './mask-shape.js';
180
181
  export { type IMediaPlayerProvider, type MediaInfo, type MediaPlayerRepeat, MediaPlayerRepeatSchema, type MediaPlayerState, MediaPlayerStateSchema, type MediaPlayerStatus, MediaPlayerStatusSchema, mediaPlayerCapability, } from './media-player.cap.js';
@@ -107,6 +107,41 @@ declare const ViewerEndpointsSchema: z.ZodObject<{
107
107
  resolved: z.ZodReadonly<z.ZodArray<z.ZodString>>;
108
108
  }, z.core.$strip>;
109
109
  export type ViewerEndpoints = z.infer<typeof ViewerEndpointsSchema>;
110
+ /**
111
+ * One audience's hub address (see `hub-address.ts`): the operator's stored
112
+ * override, the address in use, and where it came from.
113
+ */
114
+ declare const HubAddressSnapshotSchema: z.ZodObject<{
115
+ override: z.ZodNullable<z.ZodString>;
116
+ resolved: z.ZodNullable<z.ZodString>;
117
+ source: z.ZodEnum<{
118
+ none: "none";
119
+ override: "override";
120
+ auto: "auto";
121
+ }>;
122
+ }, z.core.$strip>;
123
+ declare const HubAddressesSchema: z.ZodObject<{
124
+ cluster: z.ZodObject<{
125
+ override: z.ZodNullable<z.ZodString>;
126
+ resolved: z.ZodNullable<z.ZodString>;
127
+ source: z.ZodEnum<{
128
+ none: "none";
129
+ override: "override";
130
+ auto: "auto";
131
+ }>;
132
+ }, z.core.$strip>;
133
+ browser: z.ZodObject<{
134
+ override: z.ZodNullable<z.ZodString>;
135
+ resolved: z.ZodNullable<z.ZodString>;
136
+ source: z.ZodEnum<{
137
+ none: "none";
138
+ override: "override";
139
+ auto: "auto";
140
+ }>;
141
+ }, z.core.$strip>;
142
+ }, z.core.$strip>;
143
+ export type HubAddresses = z.infer<typeof HubAddressesSchema>;
144
+ export type HubAddressSnapshot = z.infer<typeof HubAddressSnapshotSchema>;
110
145
  export declare const localNetworkCapability: {
111
146
  readonly name: "local-network";
112
147
  readonly scope: "system";
@@ -299,6 +334,64 @@ export declare const localNetworkCapability: {
299
334
  baseUrls: z.ZodReadonly<z.ZodArray<z.ZodString>>;
300
335
  resolved: z.ZodReadonly<z.ZodArray<z.ZodString>>;
301
336
  }, z.core.$strip>, "mutation">;
337
+ /**
338
+ * The hub's address for each audience — agents (`cluster`) and sign-in
339
+ * links (`browser`) — as every consumer must read it: the operator's
340
+ * override when set, else the automatic pick from this cap's palette,
341
+ * never loopback. The ONE answer to "at which address is this hub
342
+ * reached?"; there is no environment variable for it.
343
+ */
344
+ readonly getHubAddresses: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodObject<{
345
+ cluster: z.ZodObject<{
346
+ override: z.ZodNullable<z.ZodString>;
347
+ resolved: z.ZodNullable<z.ZodString>;
348
+ source: z.ZodEnum<{
349
+ none: "none";
350
+ override: "override";
351
+ auto: "auto";
352
+ }>;
353
+ }, z.core.$strip>;
354
+ browser: z.ZodObject<{
355
+ override: z.ZodNullable<z.ZodString>;
356
+ resolved: z.ZodNullable<z.ZodString>;
357
+ source: z.ZodEnum<{
358
+ none: "none";
359
+ override: "override";
360
+ auto: "auto";
361
+ }>;
362
+ }, z.core.$strip>;
363
+ }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
364
+ /**
365
+ * Set or clear (`baseUrl: null`) one audience's override. Validated: an
366
+ * http(s) origin with a host, no credentials, no path, never loopback —
367
+ * an invalid value is refused with the reason, nothing is stored.
368
+ */
369
+ readonly setHubAddress: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
370
+ audience: z.ZodEnum<{
371
+ cluster: "cluster";
372
+ browser: "browser";
373
+ }>;
374
+ baseUrl: z.ZodNullable<z.ZodString>;
375
+ }, z.core.$strip>, z.ZodObject<{
376
+ cluster: z.ZodObject<{
377
+ override: z.ZodNullable<z.ZodString>;
378
+ resolved: z.ZodNullable<z.ZodString>;
379
+ source: z.ZodEnum<{
380
+ none: "none";
381
+ override: "override";
382
+ auto: "auto";
383
+ }>;
384
+ }, z.core.$strip>;
385
+ browser: z.ZodObject<{
386
+ override: z.ZodNullable<z.ZodString>;
387
+ resolved: z.ZodNullable<z.ZodString>;
388
+ source: z.ZodEnum<{
389
+ none: "none";
390
+ override: "override";
391
+ auto: "auto";
392
+ }>;
393
+ }, z.core.$strip>;
394
+ }, z.core.$strip>, "mutation">;
302
395
  /**
303
396
  * Read the operator's allowlist. Empty = "auto" (no filter). Used
304
397
  * by the admin UI's address selector to seed its checkbox state.
@@ -279,7 +279,8 @@ export declare const modelConvertCapability: {
279
279
  }>>;
280
280
  preserveOriginal: z.ZodBoolean;
281
281
  }, z.core.$strip>>;
282
- fillsClassifierEffects: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
282
+ suppliesSteps: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
283
+ kind: z.ZodLiteral<"label">;
283
284
  stepId: z.ZodEnum<{
284
285
  "animal-classifier": "animal-classifier";
285
286
  "vehicle-classifier": "vehicle-classifier";
@@ -287,7 +288,23 @@ export declare const modelConvertCapability: {
287
288
  }>;
288
289
  labelToEffect: z.ZodRecord<z.ZodString, z.ZodString>;
289
290
  uncovered: z.ZodReadonly<z.ZodArray<z.ZodString>>;
290
- }, z.core.$strip>>>>;
291
+ }, z.core.$strip>, z.ZodObject<{
292
+ kind: z.ZodLiteral<"crop">;
293
+ stepId: z.ZodEnum<{
294
+ "plate-detection": "plate-detection";
295
+ "face-detection": "face-detection";
296
+ }>;
297
+ rootLabels: z.ZodReadonly<z.ZodArray<z.ZodString>>;
298
+ parentMacro: z.ZodEnum<{
299
+ person: "person";
300
+ vehicle: "vehicle";
301
+ }>;
302
+ childClass: z.ZodEnum<{
303
+ face: "face";
304
+ plate: "plate";
305
+ }>;
306
+ rootInputPx: z.ZodOptional<z.ZodNumber>;
307
+ }, z.core.$strip>], "kind">>>>;
291
308
  clip: z.ZodOptional<z.ZodObject<{
292
309
  textModelId: z.ZodString;
293
310
  embeddingDim: z.ZodNumber;
@@ -177,7 +177,8 @@ export declare const ModelDistributeInputSchema: z.ZodObject<{
177
177
  }>>;
178
178
  preserveOriginal: z.ZodBoolean;
179
179
  }, z.core.$strip>>;
180
- fillsClassifierEffects: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
180
+ suppliesSteps: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
181
+ kind: z.ZodLiteral<"label">;
181
182
  stepId: z.ZodEnum<{
182
183
  "animal-classifier": "animal-classifier";
183
184
  "vehicle-classifier": "vehicle-classifier";
@@ -185,7 +186,23 @@ export declare const ModelDistributeInputSchema: z.ZodObject<{
185
186
  }>;
186
187
  labelToEffect: z.ZodRecord<z.ZodString, z.ZodString>;
187
188
  uncovered: z.ZodReadonly<z.ZodArray<z.ZodString>>;
188
- }, z.core.$strip>>>>;
189
+ }, z.core.$strip>, z.ZodObject<{
190
+ kind: z.ZodLiteral<"crop">;
191
+ stepId: z.ZodEnum<{
192
+ "plate-detection": "plate-detection";
193
+ "face-detection": "face-detection";
194
+ }>;
195
+ rootLabels: z.ZodReadonly<z.ZodArray<z.ZodString>>;
196
+ parentMacro: z.ZodEnum<{
197
+ person: "person";
198
+ vehicle: "vehicle";
199
+ }>;
200
+ childClass: z.ZodEnum<{
201
+ face: "face";
202
+ plate: "plate";
203
+ }>;
204
+ rootInputPx: z.ZodOptional<z.ZodNumber>;
205
+ }, z.core.$strip>], "kind">>>>;
189
206
  clip: z.ZodOptional<z.ZodObject<{
190
207
  textModelId: z.ZodString;
191
208
  embeddingDim: z.ZodNumber;
@@ -370,7 +387,8 @@ export declare const modelDistributorCapability: {
370
387
  }>>;
371
388
  preserveOriginal: z.ZodBoolean;
372
389
  }, z.core.$strip>>;
373
- fillsClassifierEffects: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodObject<{
390
+ suppliesSteps: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
391
+ kind: z.ZodLiteral<"label">;
374
392
  stepId: z.ZodEnum<{
375
393
  "animal-classifier": "animal-classifier";
376
394
  "vehicle-classifier": "vehicle-classifier";
@@ -378,7 +396,23 @@ export declare const modelDistributorCapability: {
378
396
  }>;
379
397
  labelToEffect: z.ZodRecord<z.ZodString, z.ZodString>;
380
398
  uncovered: z.ZodReadonly<z.ZodArray<z.ZodString>>;
381
- }, z.core.$strip>>>>;
399
+ }, z.core.$strip>, z.ZodObject<{
400
+ kind: z.ZodLiteral<"crop">;
401
+ stepId: z.ZodEnum<{
402
+ "plate-detection": "plate-detection";
403
+ "face-detection": "face-detection";
404
+ }>;
405
+ rootLabels: z.ZodReadonly<z.ZodArray<z.ZodString>>;
406
+ parentMacro: z.ZodEnum<{
407
+ person: "person";
408
+ vehicle: "vehicle";
409
+ }>;
410
+ childClass: z.ZodEnum<{
411
+ face: "face";
412
+ plate: "plate";
413
+ }>;
414
+ rootInputPx: z.ZodOptional<z.ZodNumber>;
415
+ }, z.core.$strip>], "kind">>>>;
382
416
  clip: z.ZodOptional<z.ZodObject<{
383
417
  textModelId: z.ZodString;
384
418
  embeddingDim: z.ZodNumber;