@camstack/types 1.2.435 → 1.2.437

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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.2.437] - 2026-10-28
11
+
12
+ ### Changed
13
+
14
+ - The vendor sign-in proxy keeps the vendor's session cookie when the vendor also deletes a same-named cookie on another domain
15
+ - An AI profile can turn the model's thinking off or set its effort
16
+
17
+ ## [1.2.436] - 2026-10-28
18
+
19
+ ### Changed
20
+
21
+ - Addon manifest entries can declare which Integrations block they belong to (integrationSection)
22
+ - A notifier can declare extra delivery parameters (type, options, default) and a rule target can carry them to it.
23
+ - Vendor sign-in proxy: form fields carrying a proxied address are sent back to the vendor with the vendor's own address
24
+ - A temperature or humidity group can include thermostats and climate devices, read from their current temperature/humidity
25
+
10
26
  ## [1.2.435] - 2026-10-28
11
27
 
12
28
  ### Changed
@@ -51,6 +51,10 @@ declare const AddonListItemSchema: z.ZodObject<{
51
51
  }, z.core.$strip>>;
52
52
  protected: z.ZodOptional<z.ZodBoolean>;
53
53
  removable: z.ZodOptional<z.ZodBoolean>;
54
+ integrationSection: z.ZodOptional<z.ZodEnum<{
55
+ providers: "providers";
56
+ system: "system";
57
+ }>>;
54
58
  }, z.core.$strip>;
55
59
  declaration: z.ZodOptional<z.ZodUnknown>;
56
60
  source: z.ZodString;
@@ -400,6 +404,10 @@ export declare const addonsCapability: {
400
404
  }, z.core.$strip>>;
401
405
  protected: z.ZodOptional<z.ZodBoolean>;
402
406
  removable: z.ZodOptional<z.ZodBoolean>;
407
+ integrationSection: z.ZodOptional<z.ZodEnum<{
408
+ providers: "providers";
409
+ system: "system";
410
+ }>>;
403
411
  }, z.core.$strip>;
404
412
  declaration: z.ZodOptional<z.ZodUnknown>;
405
413
  source: z.ZodString;
@@ -100,7 +100,7 @@ export type { BrokerConnectionDetails, BrokerInfo as MqttBrokerInfo, BrokerStatu
100
100
  export { AddBrokerInputSchema, BrokerConnectionDetailsSchema, BrokerInfoSchema as MqttBrokerInfoSchema, MqttBrokerStatusSchema, mqttBrokerCapability, StartEmbeddedInputSchema, } from './mqtt-broker.cap.js';
101
101
  export type { NetworkAccessStatus, NetworkEndpoint, NetworkTunnelStartedData, } from './network-access.cap.js';
102
102
  export { NetworkAccessStatusSchema, NetworkEndpointSchema, NetworkTunnelStartedDataSchema, networkAccessCapability, } from './network-access.cap.js';
103
- export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, type NotificationActionIcon, NotificationActionIconSchema, NotificationActionSchema, type NotificationFormat, NotificationFormatSchema, NotificationSchema, notificationOutputCapability, type ProbeTargetConfigResult, ProbeTargetConfigResultSchema, type RenderedAs, RenderedAsSchema, type SendResult, SendResultSchema, type Target, type TargetKind, type TargetKindCaps, TargetKindCapsSchema, type TargetKindLevel, TargetKindLevelSchema, TargetKindSchema, TargetSchema, type TestResult, TestResultSchema, } from './notification-output.cap.js';
103
+ export { type Attachment, type AttachmentMediaType, AttachmentMediaTypeSchema, AttachmentSchema, type DeliveryParam, DeliveryParamSchema, type DeliveryParamValue, DeliveryParamValueSchema, type DiscoveredTarget, DiscoveredTargetSchema, type INotificationOutputProvider, type NotificationAction, type NotificationActionIcon, NotificationActionIconSchema, NotificationActionSchema, type NotificationFormat, NotificationFormatSchema, NotificationSchema, notificationOutputCapability, type ProbeTargetConfigResult, ProbeTargetConfigResultSchema, type RenderedAs, RenderedAsSchema, type SendResult, SendResultSchema, type Target, type TargetKind, type TargetKindCaps, TargetKindCapsSchema, type TargetKindLevel, TargetKindLevelSchema, TargetKindSchema, TargetSchema, type TestResult, TestResultSchema, } from './notification-output.cap.js';
104
104
  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_LEGACY_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, 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 NcMediaImage, NcMediaImageSchema, 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, NC_STATE_SUMMARY_SECTION_IDS, 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';
105
105
  export { type IOauthIntegrationProvider, type OauthIntegrationDescriptor, OauthIntegrationDescriptorSchema, oauthIntegrationCapability, } from './oauth-integration.cap.js';
106
106
  export { type IOidcConnectionsProvider, type OidcConnection, OidcConnectionSchema, type OidcConnectionUpdateInput, OidcConnectionUpdateInputSchema, oidcConnectionsCapability, } from './oidc-connections.cap.js';
@@ -63,6 +63,12 @@ export declare const LlmProfileSchema: z.ZodObject<{
63
63
  topP: z.ZodOptional<z.ZodNumber>;
64
64
  topK: z.ZodOptional<z.ZodNumber>;
65
65
  maxTokens: z.ZodOptional<z.ZodNumber>;
66
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
67
+ high: "high";
68
+ low: "low";
69
+ medium: "medium";
70
+ off: "off";
71
+ }>>;
66
72
  contextLength: z.ZodOptional<z.ZodNumber>;
67
73
  systemPrompt: z.ZodOptional<z.ZodString>;
68
74
  timeoutMs: z.ZodDefault<z.ZodNumber>;
@@ -87,6 +93,7 @@ export declare const LlmProfileFieldSchema: z.ZodEnum<{
87
93
  firstTokenTimeoutMs: "firstTokenTimeoutMs";
88
94
  idleTimeoutMs: "idleTimeoutMs";
89
95
  maxTokens: "maxTokens";
96
+ reasoningEffort: "reasoningEffort";
90
97
  retry: "retry";
91
98
  systemPrompt: "systemPrompt";
92
99
  temperature: "temperature";
@@ -144,6 +151,7 @@ export declare const LlmProfileKindDescriptorSchema: z.ZodObject<{
144
151
  firstTokenTimeoutMs: "firstTokenTimeoutMs";
145
152
  idleTimeoutMs: "idleTimeoutMs";
146
153
  maxTokens: "maxTokens";
154
+ reasoningEffort: "reasoningEffort";
147
155
  retry: "retry";
148
156
  systemPrompt: "systemPrompt";
149
157
  temperature: "temperature";
@@ -527,6 +535,7 @@ export declare const llmCapability: {
527
535
  firstTokenTimeoutMs: "firstTokenTimeoutMs";
528
536
  idleTimeoutMs: "idleTimeoutMs";
529
537
  maxTokens: "maxTokens";
538
+ reasoningEffort: "reasoningEffort";
530
539
  retry: "retry";
531
540
  systemPrompt: "systemPrompt";
532
541
  temperature: "temperature";
@@ -556,6 +565,12 @@ export declare const llmCapability: {
556
565
  topP: z.ZodOptional<z.ZodNumber>;
557
566
  topK: z.ZodOptional<z.ZodNumber>;
558
567
  maxTokens: z.ZodOptional<z.ZodNumber>;
568
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
569
+ high: "high";
570
+ low: "low";
571
+ medium: "medium";
572
+ off: "off";
573
+ }>>;
559
574
  contextLength: z.ZodOptional<z.ZodNumber>;
560
575
  systemPrompt: z.ZodOptional<z.ZodString>;
561
576
  timeoutMs: z.ZodDefault<z.ZodNumber>;
@@ -582,6 +597,12 @@ export declare const llmCapability: {
582
597
  topP: z.ZodOptional<z.ZodNumber>;
583
598
  topK: z.ZodOptional<z.ZodNumber>;
584
599
  maxTokens: z.ZodOptional<z.ZodNumber>;
600
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
601
+ high: "high";
602
+ low: "low";
603
+ medium: "medium";
604
+ off: "off";
605
+ }>>;
585
606
  contextLength: z.ZodOptional<z.ZodNumber>;
586
607
  systemPrompt: z.ZodOptional<z.ZodString>;
587
608
  timeoutMs: z.ZodDefault<z.ZodNumber>;
@@ -607,6 +628,12 @@ export declare const llmCapability: {
607
628
  topP: z.ZodOptional<z.ZodNumber>;
608
629
  topK: z.ZodOptional<z.ZodNumber>;
609
630
  maxTokens: z.ZodOptional<z.ZodNumber>;
631
+ reasoningEffort: z.ZodOptional<z.ZodEnum<{
632
+ high: "high";
633
+ low: "low";
634
+ medium: "medium";
635
+ off: "off";
636
+ }>>;
610
637
  contextLength: z.ZodOptional<z.ZodNumber>;
611
638
  systemPrompt: z.ZodOptional<z.ZodString>;
612
639
  timeoutMs: z.ZodDefault<z.ZodNumber>;
@@ -157,6 +157,37 @@ export declare const NotificationActionSchema: z.ZodObject<{
157
157
  }>>;
158
158
  }, z.core.$strip>;
159
159
  export type NotificationAction = z.infer<typeof NotificationActionSchema>;
160
+ /** A delivery parameter value: what a notifier declared it takes. */
161
+ export declare const DeliveryParamValueSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
162
+ export type DeliveryParamValue = z.infer<typeof DeliveryParamValueSchema>;
163
+ /**
164
+ * One extra delivery parameter a notifier KIND declares (D938). A rule that
165
+ * addresses a target of that kind may set it; a kind that declares nothing is
166
+ * never handed one. The admin UI derives its control from this descriptor —
167
+ * no editor knows a service by name.
168
+ *
169
+ * Optional fields are `.optional()`, never `.default()` (a Zod default does not
170
+ * run on the addon cap path).
171
+ */
172
+ export declare const DeliveryParamSchema: z.ZodObject<{
173
+ key: z.ZodString;
174
+ label: z.ZodString;
175
+ labelKey: z.ZodOptional<z.ZodString>;
176
+ type: z.ZodEnum<{
177
+ boolean: "boolean";
178
+ enum: "enum";
179
+ number: "number";
180
+ string: "string";
181
+ }>;
182
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
183
+ value: z.ZodString;
184
+ label: z.ZodString;
185
+ }, z.core.$strip>>>;
186
+ min: z.ZodOptional<z.ZodNumber>;
187
+ max: z.ZodOptional<z.ZodNumber>;
188
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
189
+ }, z.core.$strip>;
190
+ export type DeliveryParam = z.infer<typeof DeliveryParamSchema>;
160
191
  /**
161
192
  * The canonical notification. `body` is the only hard field (Apprise model).
162
193
  * `priority` is a 5-level ORDINAL (1=lowest … 3=normal(default) … 5=urgent),
@@ -225,6 +256,7 @@ export declare const NotificationSchema: z.ZodObject<{
225
256
  deviceId: z.ZodOptional<z.ZodNumber>;
226
257
  eventId: z.ZodOptional<z.ZodString>;
227
258
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
259
+ delivery: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
228
260
  }, z.core.$strip>;
229
261
  /** One declared native severity/priority level for a kind. */
230
262
  export declare const TargetKindLevelSchema: z.ZodObject<{
@@ -310,6 +342,24 @@ export declare const TargetKindSchema: z.ZodObject<{
310
342
  configSchema: z.ZodUnknown;
311
343
  destinationKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
312
344
  supportsDiscovery: z.ZodBoolean;
345
+ deliveryParams: z.ZodOptional<z.ZodArray<z.ZodObject<{
346
+ key: z.ZodString;
347
+ label: z.ZodString;
348
+ labelKey: z.ZodOptional<z.ZodString>;
349
+ type: z.ZodEnum<{
350
+ boolean: "boolean";
351
+ enum: "enum";
352
+ number: "number";
353
+ string: "string";
354
+ }>;
355
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
356
+ value: z.ZodString;
357
+ label: z.ZodString;
358
+ }, z.core.$strip>>>;
359
+ min: z.ZodOptional<z.ZodNumber>;
360
+ max: z.ZodOptional<z.ZodNumber>;
361
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
362
+ }, z.core.$strip>>>;
313
363
  caps: z.ZodObject<{
314
364
  attachments: z.ZodObject<{
315
365
  mediaTypes: z.ZodArray<z.ZodEnum<{
@@ -453,6 +503,24 @@ export declare const notificationOutputCapability: {
453
503
  configSchema: z.ZodUnknown;
454
504
  destinationKeys: z.ZodOptional<z.ZodArray<z.ZodString>>;
455
505
  supportsDiscovery: z.ZodBoolean;
506
+ deliveryParams: z.ZodOptional<z.ZodArray<z.ZodObject<{
507
+ key: z.ZodString;
508
+ label: z.ZodString;
509
+ labelKey: z.ZodOptional<z.ZodString>;
510
+ type: z.ZodEnum<{
511
+ boolean: "boolean";
512
+ enum: "enum";
513
+ number: "number";
514
+ string: "string";
515
+ }>;
516
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
517
+ value: z.ZodString;
518
+ label: z.ZodString;
519
+ }, z.core.$strip>>>;
520
+ min: z.ZodOptional<z.ZodNumber>;
521
+ max: z.ZodOptional<z.ZodNumber>;
522
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
523
+ }, z.core.$strip>>>;
456
524
  caps: z.ZodObject<{
457
525
  attachments: z.ZodObject<{
458
526
  mediaTypes: z.ZodArray<z.ZodEnum<{
@@ -601,6 +669,7 @@ export declare const notificationOutputCapability: {
601
669
  deviceId: z.ZodOptional<z.ZodNumber>;
602
670
  eventId: z.ZodOptional<z.ZodString>;
603
671
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
672
+ delivery: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
604
673
  }, z.core.$strip>;
605
674
  }, z.core.$strip>, z.ZodObject<{
606
675
  success: z.ZodBoolean;
@@ -680,6 +749,7 @@ export declare const notificationOutputCapability: {
680
749
  deviceId: z.ZodOptional<z.ZodNumber>;
681
750
  eventId: z.ZodOptional<z.ZodString>;
682
751
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
752
+ delivery: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
683
753
  }, z.core.$strip>>;
684
754
  }, z.core.$strip>, z.ZodObject<{
685
755
  success: z.ZodBoolean;
package/dist/client.js CHANGED
@@ -21321,6 +21321,43 @@ var NotificationActionSchema = zod.z.object({
21321
21321
  */
21322
21322
  mode: zod.z.enum(["navigate", "background"]).optional()
21323
21323
  });
21324
+ /** A delivery parameter value: what a notifier declared it takes. */
21325
+ var DeliveryParamValueSchema = zod.z.union([
21326
+ zod.z.string(),
21327
+ zod.z.number(),
21328
+ zod.z.boolean()
21329
+ ]);
21330
+ /**
21331
+ * One extra delivery parameter a notifier KIND declares (D938). A rule that
21332
+ * addresses a target of that kind may set it; a kind that declares nothing is
21333
+ * never handed one. The admin UI derives its control from this descriptor —
21334
+ * no editor knows a service by name.
21335
+ *
21336
+ * Optional fields are `.optional()`, never `.default()` (a Zod default does not
21337
+ * run on the addon cap path).
21338
+ */
21339
+ var DeliveryParamSchema = zod.z.object({
21340
+ key: zod.z.string().min(1),
21341
+ label: zod.z.string(),
21342
+ /** i18n key of the label, resolved by the declaring addon's namespace. */
21343
+ labelKey: zod.z.string().optional(),
21344
+ type: zod.z.enum([
21345
+ "enum",
21346
+ "number",
21347
+ "boolean",
21348
+ "string"
21349
+ ]),
21350
+ /** `enum` only: the closed set of accepted values. */
21351
+ options: zod.z.array(zod.z.object({
21352
+ value: zod.z.string(),
21353
+ label: zod.z.string()
21354
+ })).optional(),
21355
+ /** `number` only. */
21356
+ min: zod.z.number().optional(),
21357
+ max: zod.z.number().optional(),
21358
+ /** What the notifier does when the rule sets nothing; shown as the placeholder. */
21359
+ default: DeliveryParamValueSchema.optional()
21360
+ });
21324
21361
  /**
21325
21362
  * The canonical notification. `body` is the only hard field (Apprise model).
21326
21363
  * `priority` is a 5-level ORDINAL (1=lowest … 3=normal(default) … 5=urgent),
@@ -21343,7 +21380,13 @@ var NotificationSchema = zod.z.object({
21343
21380
  tag: zod.z.string().optional(),
21344
21381
  deviceId: zod.z.number().optional(),
21345
21382
  eventId: zod.z.string().optional(),
21346
- metadata: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
21383
+ metadata: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
21384
+ /**
21385
+ * Values for the parameters the target's kind DECLARES in
21386
+ * {@link TargetKindSchema} `deliveryParams`. Already validated against the
21387
+ * declaration by the sender; a notifier reads only the keys it declared.
21388
+ */
21389
+ delivery: zod.z.record(zod.z.string(), DeliveryParamValueSchema).optional()
21347
21390
  });
21348
21391
  /** One declared native severity/priority level for a kind. */
21349
21392
  var TargetKindLevelSchema = zod.z.object({
@@ -21451,6 +21494,11 @@ var TargetKindSchema = zod.z.object({
21451
21494
  */
21452
21495
  destinationKeys: zod.z.array(zod.z.string()).optional(),
21453
21496
  supportsDiscovery: zod.z.boolean(),
21497
+ /**
21498
+ * Extra delivery parameters a rule may set for a target of this kind (D938).
21499
+ * Absent = none; the rule editor then offers nothing.
21500
+ */
21501
+ deliveryParams: zod.z.array(DeliveryParamSchema).optional(),
21454
21502
  caps: TargetKindCapsSchema
21455
21503
  });
21456
21504
  /**
package/dist/client.mjs CHANGED
@@ -21320,6 +21320,43 @@ var NotificationActionSchema = z.object({
21320
21320
  */
21321
21321
  mode: z.enum(["navigate", "background"]).optional()
21322
21322
  });
21323
+ /** A delivery parameter value: what a notifier declared it takes. */
21324
+ var DeliveryParamValueSchema = z.union([
21325
+ z.string(),
21326
+ z.number(),
21327
+ z.boolean()
21328
+ ]);
21329
+ /**
21330
+ * One extra delivery parameter a notifier KIND declares (D938). A rule that
21331
+ * addresses a target of that kind may set it; a kind that declares nothing is
21332
+ * never handed one. The admin UI derives its control from this descriptor —
21333
+ * no editor knows a service by name.
21334
+ *
21335
+ * Optional fields are `.optional()`, never `.default()` (a Zod default does not
21336
+ * run on the addon cap path).
21337
+ */
21338
+ var DeliveryParamSchema = z.object({
21339
+ key: z.string().min(1),
21340
+ label: z.string(),
21341
+ /** i18n key of the label, resolved by the declaring addon's namespace. */
21342
+ labelKey: z.string().optional(),
21343
+ type: z.enum([
21344
+ "enum",
21345
+ "number",
21346
+ "boolean",
21347
+ "string"
21348
+ ]),
21349
+ /** `enum` only: the closed set of accepted values. */
21350
+ options: z.array(z.object({
21351
+ value: z.string(),
21352
+ label: z.string()
21353
+ })).optional(),
21354
+ /** `number` only. */
21355
+ min: z.number().optional(),
21356
+ max: z.number().optional(),
21357
+ /** What the notifier does when the rule sets nothing; shown as the placeholder. */
21358
+ default: DeliveryParamValueSchema.optional()
21359
+ });
21323
21360
  /**
21324
21361
  * The canonical notification. `body` is the only hard field (Apprise model).
21325
21362
  * `priority` is a 5-level ORDINAL (1=lowest … 3=normal(default) … 5=urgent),
@@ -21342,7 +21379,13 @@ var NotificationSchema = z.object({
21342
21379
  tag: z.string().optional(),
21343
21380
  deviceId: z.number().optional(),
21344
21381
  eventId: z.string().optional(),
21345
- metadata: z.record(z.string(), z.unknown()).optional()
21382
+ metadata: z.record(z.string(), z.unknown()).optional(),
21383
+ /**
21384
+ * Values for the parameters the target's kind DECLARES in
21385
+ * {@link TargetKindSchema} `deliveryParams`. Already validated against the
21386
+ * declaration by the sender; a notifier reads only the keys it declared.
21387
+ */
21388
+ delivery: z.record(z.string(), DeliveryParamValueSchema).optional()
21346
21389
  });
21347
21390
  /** One declared native severity/priority level for a kind. */
21348
21391
  var TargetKindLevelSchema = z.object({
@@ -21450,6 +21493,11 @@ var TargetKindSchema = z.object({
21450
21493
  */
21451
21494
  destinationKeys: z.array(z.string()).optional(),
21452
21495
  supportsDiscovery: z.boolean(),
21496
+ /**
21497
+ * Extra delivery parameters a rule may set for a target of this kind (D938).
21498
+ * Absent = none; the rule editor then offers nothing.
21499
+ */
21500
+ deliveryParams: z.array(DeliveryParamSchema).optional(),
21453
21501
  caps: TargetKindCapsSchema
21454
21502
  });
21455
21503
  /**
@@ -10,5 +10,5 @@ export { KWH_PER_WATT_MS, wattMillisecondsToKwh } from './energy.js';
10
10
  export { type HistoryValue, type IntegralScale, type SeriesBefore, type SeriesKind, type SeriesPoint, type SeriesRead, STATISTIC_STATS, SERIES_KINDS, evaluateDerivative, evaluateStatistic, integrateReading, } from './history-math.js';
11
11
  export { type CalendarPeriod, type CalendarWindow, type HistoryRetention, type HistoryTier, type HistoryTierPlan, type OpenRange, type ResetPeriod, type RollingSpan, type RollingWindow, type StatisticWindow, CALENDAR_PERIODS, CalendarWindowSchema, DAY_MS, DEFAULT_HISTORY_RETENTION, HISTORY_FAST_MS, HISTORY_SLOW_MS, HISTORY_TIERS, HOUR_MS, MINUTE_MS, MIN_CUSTOM_MINUTES, RESET_PERIODS, ROLLING_SPANS, RollingWindowSchema, StatisticWindowSchema, integralCadenceMs, maxDurationMs, nextLocalMidnight, openReset, openStatistic, planResetTier, planStatisticTier, rollingDurationMs, statisticCadenceMs, } from './history-window.js';
12
12
  export { type HelperMemberFact, helperSaveProblems, } from './save.js';
13
- export { type SourcePick, type SourcePickAccept, type SourcePickHistory, type SourcePickRequest, type MathSourceKind, sourcePickForHistory, sourcePickForMath, sourcePickForTemplate, } from './source-pick.js';
13
+ export { type SourcePick, type SourcePickAccept, type SourcePickFieldChoice, type SourcePickHistory, type SourcePickRequest, type MathSourceKind, sourcePickForHistory, sourcePickForMath, sourcePickForTemplate, } from './source-pick.js';
14
14
  export { ACTIVE_CRITERIA, AGGREGATE_REDUCERS, ActiveCriterionSchema, AggregateReducerSchema, BINARY_AGGREGATES, GROUP_TEMPLATE_IDS, ApplianceHelperSpecSchema, ARITHMETIC_OPS, ArithmeticHelperSpecSchema, DERIVATIVE_UNITS, DerivativeHelperSpecSchema, EXPRESSION_OUTPUTS, ExpressionHelperSpecSchema, ThresholdHelperSpecSchema, GroupHelperSpecSchema, GroupTemplateIdSchema, HelperMemberSchema, HelperSpecSchema, INTEGRAL_OUTPUTS, IntegralHelperSpecSchema, MAX_HELPER_MEMBERS, helperMembers, isHistoryHelper, NUMERIC_AGGREGATES, StatisticHelperSpecSchema, type ActiveCriterion, type AggregateReducer, type BinaryAggregate, type ApplianceHelperSpec, type ArithmeticHelperSpec, type ArithmeticOp, type DerivativeHelperSpec, type DerivativeUnit, type ExpressionHelperSpec, type ExpressionInput, type ExpressionOutput, type ThresholdHelperSpec, type GroupHelperSpec, type GroupTemplateId, type HelperMember, type HelperSpec, type HistoryHelperSpec, type IntegralHelperSpec, type IntegralOutput, type NumericAggregate, type StatisticHelperSpec, type StatisticStat, } from './spec.js';
@@ -15,7 +15,14 @@ export interface SourcePickHistory {
15
15
  readonly required: boolean;
16
16
  readonly minRetentionMs: number | null;
17
17
  }
18
+ /**
19
+ * How a device that satisfies several accept entries gets its field. `first-match`
20
+ * takes the first listed entry the device has (the dedicated sensor before a
21
+ * climate reading); `operator` waits for the operator to pick (occupancy).
22
+ */
23
+ export type SourcePickFieldChoice = 'first-match' | 'operator';
18
24
  export interface SourcePickRequest {
25
+ readonly fieldChoice: SourcePickFieldChoice;
19
26
  readonly purpose: 'member' | 'reading' | 'historised';
20
27
  readonly multiple: boolean;
21
28
  readonly max: number;
@@ -2266,6 +2266,7 @@ function isApplianceKind(value) {
2266
2266
  /** The member step: one power reading, from a sensor or from the plug itself. */
2267
2267
  function sourcePickForAppliance() {
2268
2268
  return {
2269
+ fieldChoice: "operator",
2269
2270
  purpose: "reading",
2270
2271
  multiple: false,
2271
2272
  max: 1,
@@ -2266,6 +2266,7 @@ function isApplianceKind(value) {
2266
2266
  /** The member step: one power reading, from a sensor or from the plug itself. */
2267
2267
  function sourcePickForAppliance() {
2268
2268
  return {
2269
+ fieldChoice: "operator",
2269
2270
  purpose: "reading",
2270
2271
  multiple: false,
2271
2272
  max: 1,
package/dist/index.d.ts CHANGED
@@ -293,6 +293,7 @@ export { AUDIO_SCALE_EPOCH_ISO, AUDIO_SCALE_EPOCH_MS, type AudioScaleEra, audioS
293
293
  export { audioIsFailClosed, audioKindId, audioLabelChoices, audioModeOf, audioOrDefaults, isAudioLabelSelected, NC_AUDIO_CONFIRM_HITS_DEFAULT, NC_AUDIO_CONFIRM_HITS_MAX, NC_AUDIO_CONFIRM_HITS_MIN, NC_AUDIO_CONFIRM_WINDOW_MAX_SEC, NC_AUDIO_CONFIRM_WINDOW_MIN_SEC, NC_AUDIO_CONFIRM_WINDOW_SEC_DEFAULT, NC_AUDIO_DB_MAX, NC_AUDIO_DB_MIN, NC_AUDIO_DB_OFFERED, NC_AUDIO_DB_STEP, NC_AUDIO_DEFAULTS, NC_AUDIO_HIT_PERCENT_MAX, NC_AUDIO_HIT_PERCENT_MIN, NC_AUDIO_SAMPLING_MAX_SEC, NC_AUDIO_SAMPLING_MIN_SEC, type NcAudioLabelChoice, type NcAudioMode, type NcAudioPatch, normalizeAudioLabel, patchAudio, toggleAudioLabel, } from './notification/audio-condition.js';
294
294
  export { isAudioClassName, isBaseConditionKey, knownValues, NC_BASE_CONDITION_KEYS, type NcBaseConditionKey, pickerForCondition, pickerForRuleClasses, type TaxonomyGroup, type TaxonomyOption, type TaxonomyPicker, } from './notification/condition-taxonomy.js';
295
295
  export { type PreparedAction, type PreparedAttachment, type PreparedNotification, prepareNotification, type ResolvedLevel, } from './notification/degrade-engine.js';
296
+ export { deliveryParamsDeclaredBy, resolveDeliveryParams } from './notification/delivery-params.js';
296
297
  export { htmlToText, markdownToHtmlLite, markdownToText, type NotificationFormat as NotificationBodyFormat, resolveFormat, textToHtml, transcodeBody, } from './notification/format-transcode.js';
297
298
  export { conditionExclusionReason, conditionVisibleForKind, defaultDeliveryForSection, droppedConditionsForKind, isAudioRule, isOccupancyRule, isSystemDelivery, isSystemRuleKind, kindsForDiscriminator, NC_AUDIO_SEED, NC_CAMERA_SCOPE_CAP_NAME, NC_OCCUPANCY_DEFAULTS, NC_RULE_EDITOR_SECTION_ORDER, NC_RULE_KIND_SPECS, NC_RULE_SECTIONS, NC_SYSTEM_DELIVERY, NC_SYSTEM_RULE_KINDS, type NcDroppedCondition, type NcKindVisibilitySubject, type NcRuleEditorSection, type NcRuleEditorSectionKey, type NcRuleKind, type NcRuleKindSpec, type NcRuleOwningSectionKey, type NcRuleSection, type NcRuleSectionKey, type NcRuleConditionsSubject, type NcRuleSectionSubject, type NcRuleSeed, parseRuleSection, ruleDeviceCompatCapNames, ruleDeviceCompatCapQueries, ruleEditorSectionsForKind, ruleGroupingApplies, ruleKindOf, ruleKindSpec, ruleMatchesSection, ruleSection, ruleSectionOf, ruleSeedForSection, systemFamilyOfKind, systemRuleKindOf, } from './notification/rule-kinds.js';
298
299
  export { imageModesForKind, legacyImageMode, NC_MEDIA_IMAGE_MODES, type NcMediaRuleSubject, ncMediaPolicyError, normalizeNcMediaPolicy, resolveNcMediaImage, ruleTriggerZoneIds, subjectHasPath, } from './notification/media-image.js';