@texturehq/edges 5.8.0 → 5.9.0

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.
@@ -2804,7 +2804,7 @@ type EntityCategory = "platform" | "grid" | "device";
2804
2804
  * - `grid-line` — lines & structures (overhead/underground spans, support structures).
2805
2805
  *
2806
2806
  * Matches the design's coverage matrix (DESIGN-REFERENCE.md §2). Every entry in
2807
- * `ENTITY_CONFIG` carries an archetype, even the 12 that have no detail page —
2807
+ * `ENTITY_CONFIG` carries an archetype, even the 13 that have no detail page —
2808
2808
  * the archetype is the composition it *would* use; `detailPage` gates whether a
2809
2809
  * page is actually reachable.
2810
2810
  */
@@ -2977,13 +2977,13 @@ interface EntityConfig {
2977
2977
  closed: EntityStateVariant;
2978
2978
  };
2979
2979
  /**
2980
- * The base page composition this entity renders with. Required on all 42
2980
+ * The base page composition this entity renders with. Required on all 43
2981
2981
  * entries — the archetype is the composition an entity *would* use even when
2982
2982
  * `detailPage` is false.
2983
2983
  */
2984
2984
  archetype: EntityArchetype;
2985
2985
  /**
2986
- * Whether this entity has a reachable detail page. 30 of 42 are `true`; the
2986
+ * Whether this entity has a reachable detail page. 30 of 43 are `true`; the
2987
2987
  * registry is the single answer to "does this entity have a page?".
2988
2988
  */
2989
2989
  detailPage: boolean;
@@ -3014,8 +3014,13 @@ interface EntityConfig {
3014
3014
  fusedMetricId?: string;
3015
3015
  /**
3016
3016
  * State rules for `entity.now`'s status chips. `primaryState` drives the
3017
- * pulsing primary chip; `secondaryState` (battery/inverter: charge + grid)
3018
- * renders a second chip with no pulse.
3017
+ * pulsing primary chip; `secondaryState` renders a second chip with no pulse.
3018
+ *
3019
+ * Only `battery` declares a `secondaryState` today (charge + grid). This
3020
+ * docstring used to say "battery/inverter" — `inverter` has never had one, and
3021
+ * the fix is this comment, not the code: adding a `secondaryState` to inverter
3022
+ * would put a new chip on a live page, which is a product change wearing a
3023
+ * typo's clothes.
3019
3024
  */
3020
3025
  stateRules?: {
3021
3026
  primaryState: EntityStateRule;
@@ -3266,6 +3271,14 @@ declare const GRID_STAT_LIST: {
3266
3271
  readonly format: {
3267
3272
  readonly type: "text";
3268
3273
  };
3274
+ }, {
3275
+ readonly key: "max_continuous_current";
3276
+ readonly label: "Max Continuous Current";
3277
+ readonly format: {
3278
+ readonly type: "number";
3279
+ readonly unit: "A";
3280
+ readonly decimals: 0;
3281
+ };
3269
3282
  }, {
3270
3283
  readonly key: "switchIsOpen";
3271
3284
  readonly label: "Position";
@@ -3472,6 +3485,13 @@ declare const GRID_STAT_LIST: {
3472
3485
  readonly format: {
3473
3486
  readonly type: "text";
3474
3487
  };
3488
+ }, {
3489
+ readonly key: "generator_system_size";
3490
+ readonly label: "System Size";
3491
+ readonly format: {
3492
+ readonly type: "number";
3493
+ readonly decimals: 1;
3494
+ };
3475
3495
  }];
3476
3496
  readonly MOTOR: [{
3477
3497
  readonly key: "ratedPower";
@@ -3635,6 +3655,17 @@ declare const ENTITY_CONFIG: {
3635
3655
  };
3636
3656
  readonly description: "Rule that watches a metric against a threshold";
3637
3657
  };
3658
+ readonly insight: {
3659
+ readonly icon: "LightbulbFilament";
3660
+ readonly category: "platform";
3661
+ readonly archetype: "platform";
3662
+ readonly detailPage: false;
3663
+ readonly label: {
3664
+ readonly singular: "Insight";
3665
+ readonly plural: "Insights";
3666
+ };
3667
+ readonly description: "Derived finding surfaced from platform data";
3668
+ };
3638
3669
  readonly command: {
3639
3670
  readonly icon: "Play";
3640
3671
  readonly category: "platform";
@@ -3772,6 +3803,14 @@ declare const ENTITY_CONFIG: {
3772
3803
  readonly format: {
3773
3804
  readonly type: "text";
3774
3805
  };
3806
+ }, {
3807
+ readonly key: "max_continuous_current";
3808
+ readonly label: "Max Continuous Current";
3809
+ readonly format: {
3810
+ readonly type: "number";
3811
+ readonly unit: "A";
3812
+ readonly decimals: 0;
3813
+ };
3775
3814
  }, {
3776
3815
  readonly key: "switchIsOpen";
3777
3816
  readonly label: "Position";
@@ -3826,6 +3865,14 @@ declare const ENTITY_CONFIG: {
3826
3865
  readonly format: {
3827
3866
  readonly type: "text";
3828
3867
  };
3868
+ }, {
3869
+ readonly key: "max_continuous_current";
3870
+ readonly label: "Max Continuous Current";
3871
+ readonly format: {
3872
+ readonly type: "number";
3873
+ readonly unit: "A";
3874
+ readonly decimals: 0;
3875
+ };
3829
3876
  }, {
3830
3877
  readonly key: "switchIsOpen";
3831
3878
  readonly label: "Position";
@@ -4486,6 +4533,13 @@ declare const ENTITY_CONFIG: {
4486
4533
  readonly format: {
4487
4534
  readonly type: "text";
4488
4535
  };
4536
+ }, {
4537
+ readonly key: "generator_system_size";
4538
+ readonly label: "System Size";
4539
+ readonly format: {
4540
+ readonly type: "number";
4541
+ readonly decimals: 1;
4542
+ };
4489
4543
  }];
4490
4544
  };
4491
4545
  readonly label: {
@@ -5112,6 +5166,14 @@ declare function entityHasDetailPage(entityType: EntityType): boolean;
5112
5166
  * registry yet), Site, Customer and Water Heater return `false` — `entity.now`
5113
5167
  * declines to render its cells rather than crashing or rendering empty.
5114
5168
  *
5169
+ * Exported deliberately, with no host consumer yet (MR-P02-4). Inside this package
5170
+ * it backs the conformance assertions in `entities.test.ts`; outside it, the
5171
+ * intended consumer is P11's `visible-when` work, which needs "does this entity
5172
+ * have a Now at all?" to decide whether to place the block. Checked rather than
5173
+ * guessed: knip (`--workspace packages/edges --include exports`) does not flag it,
5174
+ * because `src/index.ts` and `src/server.ts` are configured entry points. If that
5175
+ * changes, drop the `export` — it is used internally either way.
5176
+ *
5115
5177
  * @param entityType - The entity type key
5116
5178
  */
5117
5179
  declare function entityShowsNow(entityType: EntityType): boolean;
@@ -2804,7 +2804,7 @@ type EntityCategory = "platform" | "grid" | "device";
2804
2804
  * - `grid-line` — lines & structures (overhead/underground spans, support structures).
2805
2805
  *
2806
2806
  * Matches the design's coverage matrix (DESIGN-REFERENCE.md §2). Every entry in
2807
- * `ENTITY_CONFIG` carries an archetype, even the 12 that have no detail page —
2807
+ * `ENTITY_CONFIG` carries an archetype, even the 13 that have no detail page —
2808
2808
  * the archetype is the composition it *would* use; `detailPage` gates whether a
2809
2809
  * page is actually reachable.
2810
2810
  */
@@ -2977,13 +2977,13 @@ interface EntityConfig {
2977
2977
  closed: EntityStateVariant;
2978
2978
  };
2979
2979
  /**
2980
- * The base page composition this entity renders with. Required on all 42
2980
+ * The base page composition this entity renders with. Required on all 43
2981
2981
  * entries — the archetype is the composition an entity *would* use even when
2982
2982
  * `detailPage` is false.
2983
2983
  */
2984
2984
  archetype: EntityArchetype;
2985
2985
  /**
2986
- * Whether this entity has a reachable detail page. 30 of 42 are `true`; the
2986
+ * Whether this entity has a reachable detail page. 30 of 43 are `true`; the
2987
2987
  * registry is the single answer to "does this entity have a page?".
2988
2988
  */
2989
2989
  detailPage: boolean;
@@ -3014,8 +3014,13 @@ interface EntityConfig {
3014
3014
  fusedMetricId?: string;
3015
3015
  /**
3016
3016
  * State rules for `entity.now`'s status chips. `primaryState` drives the
3017
- * pulsing primary chip; `secondaryState` (battery/inverter: charge + grid)
3018
- * renders a second chip with no pulse.
3017
+ * pulsing primary chip; `secondaryState` renders a second chip with no pulse.
3018
+ *
3019
+ * Only `battery` declares a `secondaryState` today (charge + grid). This
3020
+ * docstring used to say "battery/inverter" — `inverter` has never had one, and
3021
+ * the fix is this comment, not the code: adding a `secondaryState` to inverter
3022
+ * would put a new chip on a live page, which is a product change wearing a
3023
+ * typo's clothes.
3019
3024
  */
3020
3025
  stateRules?: {
3021
3026
  primaryState: EntityStateRule;
@@ -3266,6 +3271,14 @@ declare const GRID_STAT_LIST: {
3266
3271
  readonly format: {
3267
3272
  readonly type: "text";
3268
3273
  };
3274
+ }, {
3275
+ readonly key: "max_continuous_current";
3276
+ readonly label: "Max Continuous Current";
3277
+ readonly format: {
3278
+ readonly type: "number";
3279
+ readonly unit: "A";
3280
+ readonly decimals: 0;
3281
+ };
3269
3282
  }, {
3270
3283
  readonly key: "switchIsOpen";
3271
3284
  readonly label: "Position";
@@ -3472,6 +3485,13 @@ declare const GRID_STAT_LIST: {
3472
3485
  readonly format: {
3473
3486
  readonly type: "text";
3474
3487
  };
3488
+ }, {
3489
+ readonly key: "generator_system_size";
3490
+ readonly label: "System Size";
3491
+ readonly format: {
3492
+ readonly type: "number";
3493
+ readonly decimals: 1;
3494
+ };
3475
3495
  }];
3476
3496
  readonly MOTOR: [{
3477
3497
  readonly key: "ratedPower";
@@ -3635,6 +3655,17 @@ declare const ENTITY_CONFIG: {
3635
3655
  };
3636
3656
  readonly description: "Rule that watches a metric against a threshold";
3637
3657
  };
3658
+ readonly insight: {
3659
+ readonly icon: "LightbulbFilament";
3660
+ readonly category: "platform";
3661
+ readonly archetype: "platform";
3662
+ readonly detailPage: false;
3663
+ readonly label: {
3664
+ readonly singular: "Insight";
3665
+ readonly plural: "Insights";
3666
+ };
3667
+ readonly description: "Derived finding surfaced from platform data";
3668
+ };
3638
3669
  readonly command: {
3639
3670
  readonly icon: "Play";
3640
3671
  readonly category: "platform";
@@ -3772,6 +3803,14 @@ declare const ENTITY_CONFIG: {
3772
3803
  readonly format: {
3773
3804
  readonly type: "text";
3774
3805
  };
3806
+ }, {
3807
+ readonly key: "max_continuous_current";
3808
+ readonly label: "Max Continuous Current";
3809
+ readonly format: {
3810
+ readonly type: "number";
3811
+ readonly unit: "A";
3812
+ readonly decimals: 0;
3813
+ };
3775
3814
  }, {
3776
3815
  readonly key: "switchIsOpen";
3777
3816
  readonly label: "Position";
@@ -3826,6 +3865,14 @@ declare const ENTITY_CONFIG: {
3826
3865
  readonly format: {
3827
3866
  readonly type: "text";
3828
3867
  };
3868
+ }, {
3869
+ readonly key: "max_continuous_current";
3870
+ readonly label: "Max Continuous Current";
3871
+ readonly format: {
3872
+ readonly type: "number";
3873
+ readonly unit: "A";
3874
+ readonly decimals: 0;
3875
+ };
3829
3876
  }, {
3830
3877
  readonly key: "switchIsOpen";
3831
3878
  readonly label: "Position";
@@ -4486,6 +4533,13 @@ declare const ENTITY_CONFIG: {
4486
4533
  readonly format: {
4487
4534
  readonly type: "text";
4488
4535
  };
4536
+ }, {
4537
+ readonly key: "generator_system_size";
4538
+ readonly label: "System Size";
4539
+ readonly format: {
4540
+ readonly type: "number";
4541
+ readonly decimals: 1;
4542
+ };
4489
4543
  }];
4490
4544
  };
4491
4545
  readonly label: {
@@ -5112,6 +5166,14 @@ declare function entityHasDetailPage(entityType: EntityType): boolean;
5112
5166
  * registry yet), Site, Customer and Water Heater return `false` — `entity.now`
5113
5167
  * declines to render its cells rather than crashing or rendering empty.
5114
5168
  *
5169
+ * Exported deliberately, with no host consumer yet (MR-P02-4). Inside this package
5170
+ * it backs the conformance assertions in `entities.test.ts`; outside it, the
5171
+ * intended consumer is P11's `visible-when` work, which needs "does this entity
5172
+ * have a Now at all?" to decide whether to place the block. Checked rather than
5173
+ * guessed: knip (`--workspace packages/edges --include exports`) does not flag it,
5174
+ * because `src/index.ts` and `src/server.ts` are configured entry points. If that
5175
+ * changes, drop the `export` — it is used internally either way.
5176
+ *
5115
5177
  * @param entityType - The entity type key
5116
5178
  */
5117
5179
  declare function entityShowsNow(entityType: EntityType): boolean;