@camstack/addon-post-analysis 1.2.630 → 1.2.632

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.
@@ -9412,7 +9412,7 @@ function errMsg(err) {
9412
9412
  return String(err);
9413
9413
  }
9414
9414
  //#endregion
9415
- //#region ../types/dist/composition-xz-ud5EQ.mjs
9415
+ //#region ../types/dist/composition-BJ8iAZb3.mjs
9416
9416
  /**
9417
9417
  * Deterministic SHA-256 hash of an arbitrary serialisable value. The
9418
9418
  * canonical form sorts object keys alphabetically at every depth so two
@@ -9503,7 +9503,7 @@ portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac
9503
9503
  * ONE table for everyone who asks "is this device HIGH?": the
9504
9504
  * recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
9505
9505
  * sensor markers, the orchestrator's camera-sensors bridge and
9506
- * the sources of a composite doorbell (`doorbellFeatureSources`, D671).
9506
+ * the sources of a pulse (`compilePulseOverride`, D936).
9507
9507
  * A second copy would diverge at the first cap added, and the symptom — "the
9508
9508
  * sensor rings the doorbell but does not record" — is exactly D62.
9509
9509
  *
@@ -17555,6 +17555,13 @@ var ComposerUnreadableBlockSchema = object({
17555
17555
  /** The parse error, in the operator's words. */
17556
17556
  error: string()
17557
17557
  });
17558
+ /** A confirmed release the hub did not accept. `deviceId` is the claim's device. */
17559
+ var UnreleasedClaimSchema = object({
17560
+ deviceId: number().int(),
17561
+ capName: string(),
17562
+ owner: string(),
17563
+ error: string()
17564
+ });
17558
17565
  method(object({
17559
17566
  /** The shared Blocks integration; null until `core-blocks` has reconciled it. */
17560
17567
  integrationId: string().nullable(),
@@ -17564,7 +17571,13 @@ method(object({
17564
17571
  /** Operator restarts: rebuild these runtimes and re-resolve their sources. Stores nothing (D62). */
17565
17572
  restartBlockIds: array(string()),
17566
17573
  /** Composition rows that exist but do not parse: held, never withdrawn, reported failed. */
17567
- unreadableBlocks: array(ComposerUnreadableBlockSchema)
17574
+ unreadableBlocks: array(ComposerUnreadableBlockSchema),
17575
+ /**
17576
+ * Operator-confirmed deletions. Their claims are released on this apply,
17577
+ * before any replacement block claims. A block that merely vanished from the
17578
+ * snapshot is not listed here and still waits for two applies (D49).
17579
+ */
17580
+ retiredBlockIds: array(string()).optional()
17568
17581
  }), object({
17569
17582
  blocks: array(object({
17570
17583
  blockId: string(),
@@ -17576,7 +17589,13 @@ method(object({
17576
17589
  * integration unknown, its own rows unread or read empty once). An empty
17577
17590
  * apply the caller owes is paid off only by one the composer acted on (D49).
17578
17591
  */
17579
- acted: boolean()
17592
+ acted: boolean(),
17593
+ /**
17594
+ * Confirmed releases this apply tried and the hub did not accept. Empty when
17595
+ * every one landed (or there was nothing to hand back). Absent on a result
17596
+ * that never got that far.
17597
+ */
17598
+ unreleasedClaims: array(UnreleasedClaimSchema).optional()
17580
17599
  }), {
17581
17600
  kind: "mutation",
17582
17601
  auth: "admin"
@@ -57853,20 +57872,68 @@ var BatteryStatusSchema = object({
57853
57872
  */
57854
57873
  binary: boolean().optional()
57855
57874
  });
57875
+ var BATTERY_DEVICE_TYPES = [
57876
+ DeviceType.Camera,
57877
+ DeviceType.Sensor,
57878
+ DeviceType.Button,
57879
+ DeviceType.Switch,
57880
+ DeviceType.PetFeeder,
57881
+ DeviceType.Container,
57882
+ DeviceType.Thermostat
57883
+ ];
57884
+ /** Generic Customize target for the percentage reading (D936). */
57885
+ var batteryCustomize = {
57886
+ version: 1,
57887
+ targets: [{
57888
+ id: "percentage",
57889
+ cardinality: "scalar",
57890
+ vocabulary: {
57891
+ cap: "battery",
57892
+ stateField: "percentage"
57893
+ },
57894
+ deviceTypes: BATTERY_DEVICE_TYPES,
57895
+ apply: "add-or-replace",
57896
+ path: "percentage",
57897
+ sources: [{
57898
+ kind: "field",
57899
+ valueKinds: ["number", "string"],
57900
+ transforms: [{ kind: "identity" }, {
57901
+ kind: "linear",
57902
+ defaultScale: 1,
57903
+ defaultOffset: 0,
57904
+ clampMin: 0,
57905
+ clampMax: 100
57906
+ }]
57907
+ }],
57908
+ companions: [
57909
+ {
57910
+ kind: "constant",
57911
+ path: "charging",
57912
+ value: "unknown",
57913
+ when: "add"
57914
+ },
57915
+ {
57916
+ kind: "constant",
57917
+ path: "sleeping",
57918
+ value: false,
57919
+ when: "add"
57920
+ },
57921
+ {
57922
+ kind: "clock",
57923
+ path: "lastUpdated",
57924
+ when: "add"
57925
+ }
57926
+ ],
57927
+ sourceReport: { status: "assignment-status" },
57928
+ advancedExpression: true
57929
+ }]
57930
+ };
57856
57931
  var batteryCapability = {
57857
57932
  name: "battery",
57858
57933
  scope: "device",
57859
57934
  deviceNative: true,
57860
57935
  mode: "singleton",
57861
- deviceTypes: [
57862
- DeviceType.Camera,
57863
- DeviceType.Sensor,
57864
- DeviceType.Button,
57865
- DeviceType.Switch,
57866
- DeviceType.PetFeeder,
57867
- DeviceType.Container,
57868
- DeviceType.Thermostat
57869
- ],
57936
+ deviceTypes: BATTERY_DEVICE_TYPES,
57870
57937
  methods: {
57871
57938
  /**
57872
57939
  * Explicitly wake the camera from low-power sleep ahead of a
@@ -57950,6 +58017,7 @@ onStatusChanged: { data: object({
57950
58017
  kind: "gauge",
57951
58018
  unit: "%"
57952
58019
  } } },
58020
+ customize: batteryCustomize,
57953
58021
  /** Clock fields: written, but excluded from the compare that decides
57954
58022
  * whether persisting is worth a SQLite commit. */
57955
58023
  volatileStateFields: ["lastUpdated"]
@@ -58951,6 +59019,106 @@ var ConsumablesStatusSchema = object({
58951
59019
  items: array(ConsumableItemSchema),
58952
59020
  lastChangedAt: number()
58953
59021
  });
59022
+ /** Synthesize seed for a link-built status (no native provider).
59023
+ *
59024
+ * ⚠ NO LIVE CALLER since 2026-08-08 (device-links deleted; see
59025
+ * `CapabilityStatusSchema.empty`). The wiring guidance below was written for
59026
+ * exactly the case the operator is asking about again — a Dreame's HA
59027
+ * consumable-life sensors — so it is kept for that conversation, not because
59028
+ * anything reads it today. */
59029
+ var EMPTY_STATUS = {
59030
+ items: [],
59031
+ lastChangedAt: 0
59032
+ };
59033
+ /** Seed for a NEW link-built consumable item. `key`/`label` are overwritten
59034
+ * with the link's `itemKey` (see `status.itemArray`), so the placeholder
59035
+ * empty strings never survive into a validated item. Link-built items are
59036
+ * not resettable — there is no native provider to receive `reset()`.
59037
+ *
59038
+ * Wiring guidance (HA vacuum consumable-life sensors):
59039
+ * - a percent-remaining source (`numeric-sensor`, unit '%') → `level` via
59040
+ * `identity` (or `linear` scale 1 offset 0 clamp [0,100] to be safe);
59041
+ * - an hours-remaining source (e.g. Dreame 'Main Brush Time Left', unit 'h')
59042
+ * → `level` via `linear` with scale = 100 / max-hours for that item
59043
+ * (e.g. main brush 300 h → scale 0.3333) + clamp [0,100];
59044
+ * - a discrete source (`enum-sensor`, e.g. mop pad 'installed') → `status`
59045
+ * via `enum-map` (e.g. { installed: 'ok', missing: 'replace' }).
59046
+ * A numeric→'replace' THRESHOLD (level < 10 → 'replace') is NOT expressible
59047
+ * with the current transform kinds — leave `status` null (valid) until the
59048
+ * expression transform lands. */
59049
+ /** Generic Customize target for one consumable item (D936). Native rows stay read-only. */
59050
+ var consumablesCustomize = {
59051
+ version: 1,
59052
+ targets: [{
59053
+ id: "items",
59054
+ cardinality: "keyedArray",
59055
+ vocabulary: { cap: "consumables" },
59056
+ deviceTypes: Object.values(DeviceType),
59057
+ apply: "add",
59058
+ path: "items",
59059
+ keyField: "key",
59060
+ labelField: "label",
59061
+ itemSchema: ConsumableItemSchema,
59062
+ nativeItems: "read-only",
59063
+ sourceReport: { status: "assignment-status" },
59064
+ fields: [
59065
+ {
59066
+ path: "level",
59067
+ sources: [{
59068
+ kind: "numeric",
59069
+ transforms: [{ kind: "identity" }, {
59070
+ kind: "linear",
59071
+ defaultScale: 1,
59072
+ defaultOffset: 0,
59073
+ clampMin: 0,
59074
+ clampMax: 100
59075
+ }]
59076
+ }]
59077
+ },
59078
+ {
59079
+ path: "remaining.value",
59080
+ sources: [{
59081
+ kind: "numeric",
59082
+ transforms: [{ kind: "identity" }]
59083
+ }],
59084
+ literals: [{
59085
+ path: "remaining.unit",
59086
+ values: [...ConsumableRemainingUnitSchema.options]
59087
+ }]
59088
+ },
59089
+ {
59090
+ path: "status",
59091
+ sources: [{
59092
+ kind: "enum",
59093
+ transforms: [{
59094
+ kind: "enum-map",
59095
+ outputValues: [...ConsumableStatusSchema.options],
59096
+ unmapped: null
59097
+ }]
59098
+ }]
59099
+ }
59100
+ ],
59101
+ traits: [{
59102
+ path: "kind",
59103
+ values: [...ConsumableKindSchema.options],
59104
+ defaultValue: "wear"
59105
+ }, {
59106
+ path: "form",
59107
+ values: [...ConsumableFormSchema.options],
59108
+ defaultValue: "part"
59109
+ }],
59110
+ companions: [{
59111
+ kind: "clock",
59112
+ path: "lastChangedAt",
59113
+ when: "add"
59114
+ }, {
59115
+ kind: "clock",
59116
+ path: "lastFetchedAt",
59117
+ when: "add"
59118
+ }],
59119
+ advancedExpression: true
59120
+ }]
59121
+ };
58954
59122
  var consumablesCapability = {
58955
59123
  name: "consumables",
58956
59124
  scope: "device",
@@ -58988,10 +59156,7 @@ reset: method(object({
58988
59156
  status: {
58989
59157
  schema: ConsumablesStatusSchema,
58990
59158
  kind: "push",
58991
- empty: {
58992
- items: [],
58993
- lastChangedAt: 0
58994
- },
59159
+ empty: EMPTY_STATUS,
58995
59160
  itemArray: {
58996
59161
  path: "items",
58997
59162
  keyField: "key",
@@ -59027,6 +59192,7 @@ reset: method(object({
59027
59192
  * brush's remaining life and a dishwasher's salt are each recorded the moment
59028
59193
  * their provider reports them; an item that appears later gets its series.
59029
59194
  */
59195
+ customize: consumablesCustomize,
59030
59196
  history: {
59031
59197
  fields: {},
59032
59198
  items: {
@@ -59791,6 +59957,36 @@ var dishwasherCapability = {
59791
59957
  powerOn: { kind: "boolean" }
59792
59958
  } }
59793
59959
  };
59960
+ /** Pulse override: a rising edge advances `lastPressedAt` and the press count. */
59961
+ var doorbellCustomize = {
59962
+ version: 1,
59963
+ targets: [{
59964
+ id: "pressed",
59965
+ cardinality: "event",
59966
+ shape: "pulse",
59967
+ vocabulary: {
59968
+ cap: "doorbell",
59969
+ eventName: "onPressed"
59970
+ },
59971
+ deviceTypes: [DeviceType.Camera],
59972
+ apply: "add",
59973
+ applyAuthority: { kind: "composition-claim" },
59974
+ eventName: "onPressed",
59975
+ edges: ["rising"],
59976
+ timestampPath: "lastPressedAt",
59977
+ counterPath: "pressCountSinceStart",
59978
+ highWater: "composer-advance",
59979
+ combine: "any",
59980
+ debounce: {
59981
+ kind: "rising-edge",
59982
+ defaultDebounceMs: 2e3,
59983
+ changedAtRequired: true
59984
+ },
59985
+ sources: [{ kind: "binary" }, { kind: "switch" }],
59986
+ sourceReport: { status: "assignment-status" },
59987
+ advancedExpression: true
59988
+ }]
59989
+ };
59794
59990
  var DoorbellStatusSchema = object({
59795
59991
  /** Ms epoch of the last press. null = never observed since this provider started. */
59796
59992
  lastPressedAt: number().nullable(),
@@ -59857,7 +60053,8 @@ onPressed: {
59857
60053
  /**
59858
60054
  * History (D850): none — `pressCountSinceStart` resets with the addon, so it is not a monotonic meter; presses live in the events ledger.
59859
60055
  */
59860
- history: "none"
60056
+ history: "none",
60057
+ customize: doorbellCustomize
59861
60058
  };
59862
60059
  /**
59863
60060
  * Enum-state sensor — a string value picked from a finite option set.
@@ -62314,6 +62511,38 @@ authKey: string().optional() }), object({
62314
62511
  /** Human-readable error when `ok: false`. */
62315
62512
  error: string().optional()
62316
62513
  }), { kind: "mutation" });
62514
+ /** Span override: start on a rising edge, end on a fall or this timeout. */
62515
+ var motionCustomize = {
62516
+ version: 1,
62517
+ targets: [{
62518
+ id: "detected",
62519
+ cardinality: "event",
62520
+ shape: "span",
62521
+ vocabulary: {
62522
+ cap: "motion",
62523
+ eventName: "onMotionChanged"
62524
+ },
62525
+ deviceTypes: [DeviceType.Camera],
62526
+ apply: "replace",
62527
+ applyAuthority: {
62528
+ kind: "camera-sensors",
62529
+ timeoutField: "motionCooldownMs"
62530
+ },
62531
+ eventName: "onMotionChanged",
62532
+ start: "rising-edge",
62533
+ end: "falling-edge-or-timeout",
62534
+ timeoutMs: 3e4,
62535
+ combine: "any",
62536
+ sourceModes: [
62537
+ "in-addition",
62538
+ "confirm",
62539
+ "replace"
62540
+ ],
62541
+ sources: [{ kind: "binary" }, { kind: "switch" }],
62542
+ sourceReport: { status: "assignment-status" },
62543
+ advancedExpression: false
62544
+ }]
62545
+ };
62317
62546
  /**
62318
62547
  * Hardware / firmware motion sensor cap — binary detected state plus
62319
62548
  * a timestamp of the last observation. Distinct from
@@ -62478,7 +62707,8 @@ onMotionChanged: { data: MotionOnMotionChangedDataSchema } },
62478
62707
  history: { fields: { detected: {
62479
62708
  kind: "boolean",
62480
62709
  excludeDeviceTypes: [DeviceType.Camera]
62481
- } } }
62710
+ } } },
62711
+ customize: motionCustomize
62482
62712
  };
62483
62713
  /**
62484
62714
  * Motion-trigger toggle for accessory devices.
@@ -65239,6 +65469,8 @@ var ptzAutotrackCapability = {
65239
65469
  */
65240
65470
  history: "none"
65241
65471
  };
65472
+ var RUNNING_POWER_START_DELAY_MS = 3e4;
65473
+ var RUNNING_POWER_STOP_DELAY_MS = 18e4;
65242
65474
  var RunningStateSourceSchema = _enum(["native", "assigned"]);
65243
65475
  var RunningStateStatusSchema = object({
65244
65476
  /** null = unknown — never coerced to false (D393). */
@@ -65247,19 +65479,100 @@ var RunningStateStatusSchema = object({
65247
65479
  since: number().nullable(),
65248
65480
  source: RunningStateSourceSchema,
65249
65481
  phase: string().nullable(),
65250
- lastFetchedAt: number()
65482
+ /** null until a reading has been published (D393). */
65483
+ lastFetchedAt: number().nullable()
65251
65484
  });
65252
65485
  var RunningFlipEventDataSchema = object({
65253
65486
  deviceId: number(),
65254
65487
  since: number().nullable(),
65255
65488
  phase: string().nullable()
65256
65489
  });
65490
+ var RUNNING_DEVICE_TYPES = Object.values(DeviceType);
65491
+ /** Generic Customize target for the running boolean (D936). */
65492
+ var runningCustomize = {
65493
+ version: 1,
65494
+ targets: [{
65495
+ id: "running",
65496
+ cardinality: "scalar",
65497
+ vocabulary: {
65498
+ cap: "running-state",
65499
+ stateField: "running"
65500
+ },
65501
+ deviceTypes: [
65502
+ DeviceType.Dishwasher,
65503
+ DeviceType.Vacuum,
65504
+ DeviceType.LawnMower,
65505
+ DeviceType.MediaPlayer,
65506
+ DeviceType.WaterHeater,
65507
+ DeviceType.Humidifier,
65508
+ DeviceType.Fan,
65509
+ DeviceType.Climate,
65510
+ DeviceType.Thermostat,
65511
+ DeviceType.PetFeeder
65512
+ ],
65513
+ apply: "add-or-replace",
65514
+ path: "running",
65515
+ sources: [
65516
+ {
65517
+ kind: "switch",
65518
+ transforms: [{ kind: "identity" }]
65519
+ },
65520
+ {
65521
+ kind: "binary",
65522
+ transforms: [{ kind: "identity" }, { kind: "invert" }]
65523
+ },
65524
+ {
65525
+ kind: "numeric",
65526
+ requiredUnit: "W",
65527
+ transforms: [{
65528
+ kind: "threshold",
65529
+ comparison: "gte",
65530
+ defaultThreshold: 5,
65531
+ defaultStartDwellMs: RUNNING_POWER_START_DELAY_MS,
65532
+ defaultStopDwellMs: RUNNING_POWER_STOP_DELAY_MS,
65533
+ thresholdUnit: "W"
65534
+ }]
65535
+ }
65536
+ ],
65537
+ companions: [
65538
+ {
65539
+ kind: "constant",
65540
+ path: "source",
65541
+ value: "assigned",
65542
+ when: "always"
65543
+ },
65544
+ {
65545
+ kind: "constant",
65546
+ path: "phase",
65547
+ value: null,
65548
+ when: "always"
65549
+ },
65550
+ {
65551
+ kind: "clock",
65552
+ path: "lastFetchedAt",
65553
+ when: "always"
65554
+ },
65555
+ {
65556
+ kind: "transition-time",
65557
+ path: "since",
65558
+ sourceChangedAt: "prefer"
65559
+ }
65560
+ ],
65561
+ sourceReport: {
65562
+ status: "assignment-status",
65563
+ runtimeField: "source",
65564
+ nativeValue: "native",
65565
+ assignedValue: "assigned"
65566
+ },
65567
+ advancedExpression: true
65568
+ }]
65569
+ };
65257
65570
  var runningStateCapability = {
65258
65571
  name: "running-state",
65259
65572
  scope: "device",
65260
65573
  deviceNative: true,
65261
65574
  mode: "singleton",
65262
- deviceTypes: Object.values(DeviceType),
65575
+ deviceTypes: RUNNING_DEVICE_TYPES,
65263
65576
  methods: {},
65264
65577
  events: {
65265
65578
  onStarted: { data: RunningFlipEventDataSchema },
@@ -65272,7 +65585,8 @@ var runningStateCapability = {
65272
65585
  runtimeState: RunningStateStatusSchema,
65273
65586
  durability: "restored",
65274
65587
  history: { fields: { running: { kind: "boolean" } } },
65275
- volatileStateFields: ["lastFetchedAt"]
65588
+ volatileStateFields: ["lastFetchedAt"],
65589
+ customize: runningCustomize
65276
65590
  };
65277
65591
  DeviceType.Camera, DeviceType.Sensor, DeviceType.Switch, method(object({ deviceId: number().int().nonnegative() }), object({ success: literal(true) }), {
65278
65592
  kind: "mutation",
@@ -87505,6 +87819,96 @@ var BucketAccumulator = class {
87505
87819
  }
87506
87820
  };
87507
87821
  DeviceType.Camera;
87822
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Camera, DeviceType.Camera, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
87823
+ /**
87824
+ * A saved Customize assignment (D936). The schema is the type: callers use
87825
+ * `z.infer`, they do not restate the shape.
87826
+ */
87827
+ var OverrideSourceSchema = object({
87828
+ addonId: string().min(1),
87829
+ stableId: string().min(1),
87830
+ cap: string().min(1),
87831
+ fieldPath: string().min(1)
87832
+ });
87833
+ var CustomizeTransformDraftSchema = discriminatedUnion("kind", [
87834
+ object({ kind: literal("identity") }),
87835
+ object({ kind: literal("invert") }),
87836
+ object({
87837
+ kind: literal("threshold"),
87838
+ comparison: _enum(["gte", "lte"]),
87839
+ threshold: number(),
87840
+ startDwellMs: number().nonnegative(),
87841
+ stopDwellMs: number().nonnegative()
87842
+ }),
87843
+ object({
87844
+ kind: literal("linear"),
87845
+ scale: number(),
87846
+ offset: number(),
87847
+ clampMin: number().optional(),
87848
+ clampMax: number().optional()
87849
+ }),
87850
+ object({
87851
+ kind: literal("enum-map"),
87852
+ mapping: record(string(), string().nullable())
87853
+ }),
87854
+ object({ kind: literal("number") })
87855
+ ]);
87856
+ var ScalarOverrideDraftSchema = object({
87857
+ kind: literal("scalar"),
87858
+ cap: string().min(1),
87859
+ targetId: string().min(1),
87860
+ source: OverrideSourceSchema,
87861
+ transform: CustomizeTransformDraftSchema
87862
+ });
87863
+ var KeyedArrayOverrideDraftSchema = object({
87864
+ kind: literal("keyedArray"),
87865
+ cap: string().min(1),
87866
+ targetId: string().min(1),
87867
+ key: string().min(1),
87868
+ label: string().min(1),
87869
+ fieldPath: string().min(1),
87870
+ source: OverrideSourceSchema,
87871
+ transform: CustomizeTransformDraftSchema
87872
+ });
87873
+ var PulseOverrideDraftSchema = object({
87874
+ kind: literal("pulse"),
87875
+ cap: string().min(1),
87876
+ targetId: string().min(1),
87877
+ enabled: boolean(),
87878
+ debounceMs: number().nonnegative(),
87879
+ sources: array(OverrideSourceSchema).min(1)
87880
+ });
87881
+ var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
87882
+ "in-addition",
87883
+ "confirm",
87884
+ "replace"
87885
+ ]).optional() });
87886
+ discriminatedUnion("kind", [
87887
+ ScalarOverrideDraftSchema,
87888
+ KeyedArrayOverrideDraftSchema,
87889
+ PulseOverrideDraftSchema,
87890
+ object({
87891
+ kind: literal("span"),
87892
+ cap: string().min(1),
87893
+ targetId: string().min(1),
87894
+ timeoutMs: number().nonnegative(),
87895
+ cooldownMs: number().nonnegative().optional(),
87896
+ sources: array(SpanSourceDraftSchema)
87897
+ })
87898
+ ]);
87899
+ object({
87900
+ targetId: string().min(1),
87901
+ configured: boolean(),
87902
+ source: _enum(["native", "assigned"]),
87903
+ state: _enum([
87904
+ "active",
87905
+ "stale",
87906
+ "released",
87907
+ "unavailable"
87908
+ ]),
87909
+ reason: string().nullable()
87910
+ });
87911
+ String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
87508
87912
  var G711_SCALE_CORRECTION_DB = {
87509
87913
  PCMU: 20 * Math.log10(4),
87510
87914
  PCMA: 20 * Math.log10(8)
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
- const require_clip_model_registry = require("../clip-model-registry-DB0TSd14.js");
5
+ const require_clip_model_registry = require("../clip-model-registry-DYX14HE-.js");
6
6
  let node_fs = require("node:fs");
7
7
  node_fs = require_clip_model_registry.__toESM(node_fs);
8
8
  let node_path = require("node:path");
@@ -1,4 +1,4 @@
1
- import { $r as parseProcStatus, Yi as BaseAddon, a as CLIP_EMBEDDING_STEP_ID, fr as embeddingEncoderCapability, gr as embeddingRequirementsUnavailableError, hr as embeddingRequirementsFailedError, i as CLIP_TEXT_MODELS, l as resolveClusterModelPin, n as DEFAULT_CLIP_MODEL, pi as resolvePoolMemoryPolicy, pr as embeddingModelFailedError, r as CLIP_IMAGE_MODELS, sa as normalizeNodeId, t as BUILTIN_CLIP_MODELS, tn as PoolMemoryWatchdog } from "../clip-model-registry-wZ4Nt5jo.mjs";
1
+ import { $r as parseProcStatus, Yi as BaseAddon, a as CLIP_EMBEDDING_STEP_ID, fr as embeddingEncoderCapability, gr as embeddingRequirementsUnavailableError, hr as embeddingRequirementsFailedError, i as CLIP_TEXT_MODELS, l as resolveClusterModelPin, n as DEFAULT_CLIP_MODEL, pi as resolvePoolMemoryPolicy, pr as embeddingModelFailedError, r as CLIP_IMAGE_MODELS, sa as normalizeNodeId, t as BUILTIN_CLIP_MODELS, tn as PoolMemoryWatchdog } from "../clip-model-registry-0ayA23hb.mjs";
2
2
  import { createRequire } from "node:module";
3
3
  import * as fs from "node:fs";
4
4
  import * as path$1 from "node:path";
@@ -2,7 +2,7 @@ import { a as e, i as t, n, o as r, r as i, t as a } from "./_virtual_mf___mfe_i
2
2
  import { t as o } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B3Wx5J80.mjs";
3
3
  import { a as s, c, d as l, f as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DdbV-R1z.mjs";
4
4
  import { n as x, t as S } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-CkwmHEi0.mjs";
5
- import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BxPKSyZo.mjs";
5
+ import { t as C } from "./_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BFPYidGl.mjs";
6
6
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
7
7
  var w = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), E = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), D = (e) => {
8
8
  let t = E(e);
@@ -18,7 +18,7 @@ var e = {
18
18
  },
19
19
  "@camstack/types": {
20
20
  name: "@camstack/types",
21
- version: "1.2.406",
21
+ version: "1.2.409",
22
22
  scope: ["default"],
23
23
  loaded: !1,
24
24
  from: "addon_pipeline_analytics_widgets",
@@ -33,7 +33,7 @@ var e = {
33
33
  },
34
34
  "@camstack/ui-library": {
35
35
  name: "@camstack/ui-library",
36
- version: "1.2.321",
36
+ version: "1.2.322",
37
37
  scope: ["default"],
38
38
  loaded: !1,
39
39
  from: "addon_pipeline_analytics_widgets",