@unified-product-graph/core 0.11.4 → 0.11.5

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/dist/index.d.cts CHANGED
@@ -18972,7 +18972,9 @@ declare const ENTITY_EMOJI: Record<string, string>;
18972
18972
  /**
18973
18973
  * UPG canonical tree patterns: the named, server-owned shapes the `get_tree`
18974
18974
  * tool assembles (OST, OKR, user, product, validation, strategy, feature areas,
18975
- * delivery, architecture, journey, design system) — one per tree-shaped region.
18975
+ * delivery, architecture, journey, design system, commercial) — one per
18976
+ * tree-shaped region (or, for `architecture`/`commercial`, the tree-shaped
18977
+ * containment subset of a DAG/multi-hub region).
18976
18978
  *
18977
18979
  * A tree pattern is anchor + a TYPE-DRIVEN child map, NOT a list of edge names.
18978
18980
  * `get_tree` roots at `anchor_type` (falling back through `fallback_anchors` when
@@ -21583,7 +21585,7 @@ declare function isCanonical(text: string): boolean;
21583
21585
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
21584
21586
  * The `check:version-lockstep` gate enforces this at release time.
21585
21587
  */
21586
- declare const UPG_VERSION: "0.11.4";
21588
+ declare const UPG_VERSION: "0.11.5";
21587
21589
  /**
21588
21590
  * The `.upg` JSON document format version. Written to the `upg_version` field.
21589
21591
  * Evolves independently from `UPG_VERSION` (the catalogue version).
package/dist/index.d.ts CHANGED
@@ -18972,7 +18972,9 @@ declare const ENTITY_EMOJI: Record<string, string>;
18972
18972
  /**
18973
18973
  * UPG canonical tree patterns: the named, server-owned shapes the `get_tree`
18974
18974
  * tool assembles (OST, OKR, user, product, validation, strategy, feature areas,
18975
- * delivery, architecture, journey, design system) — one per tree-shaped region.
18975
+ * delivery, architecture, journey, design system, commercial) — one per
18976
+ * tree-shaped region (or, for `architecture`/`commercial`, the tree-shaped
18977
+ * containment subset of a DAG/multi-hub region).
18976
18978
  *
18977
18979
  * A tree pattern is anchor + a TYPE-DRIVEN child map, NOT a list of edge names.
18978
18980
  * `get_tree` roots at `anchor_type` (falling back through `fallback_anchors` when
@@ -21583,7 +21585,7 @@ declare function isCanonical(text: string): boolean;
21583
21585
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
21584
21586
  * The `check:version-lockstep` gate enforces this at release time.
21585
21587
  */
21586
- declare const UPG_VERSION: "0.11.4";
21588
+ declare const UPG_VERSION: "0.11.5";
21587
21589
  /**
21588
21590
  * The `.upg` JSON document format version. Written to the `upg_version` field.
21589
21591
  * Evolves independently from `UPG_VERSION` (the catalogue version).
package/dist/index.js CHANGED
@@ -20155,6 +20155,43 @@ var UPG_TREE_PATTERNS = [
20155
20155
  design_component: [opt("design_component"), opt("design_token")]
20156
20156
  },
20157
20157
  natural_depth: 3
20158
+ },
20159
+ {
20160
+ id: "commercial",
20161
+ label: "Commercial / money model",
20162
+ description: "The business-model spine: how the product captures value. The business model branches into its revenue streams, cost structure, and unit economics; a stream into its pricing tiers, the metrics that measure it, and the pricing strategy that prices it; and metrics decompose into their components (the MRR waterfall, NRR composition). A pricing tier reached from both its stream and its pricing strategy renders once, then as a shared reference.",
20163
+ // The sustaining money-model captures value as a containment hierarchy, so it
20164
+ // earns a tree even though business_gtm_growth is a multi-hub region: a pattern
20165
+ // is a curated spanning tree over a SUBSET of a region (cf. `architecture` over
20166
+ // the engineering_platform DAG). The GTM/value flow (positioning -> messaging
20167
+ // -> funnel) is deliberately NOT here — a tree would misrepresent it; it wants
20168
+ // sibling flow instruments. Company-grain financial metrics (CAC, LTV, runway)
20169
+ // hang off the product, not a single stream/cost, so they live in the okr/
20170
+ // strategy views, not this money-structure spine.
20171
+ region: "business_gtm_growth",
20172
+ gap_policy: "all-optional",
20173
+ anchor_type: "business_model",
20174
+ // Fallback is the product alone, and product is deliberately NOT a child_map
20175
+ // parent: were business_model listed under product, the product would be a
20176
+ // superset of the money spine and the most-nodes anchor rule would root there
20177
+ // (the same trap delivery hit with product -> roadmap). With product childless,
20178
+ // business_model always out-nodes it and wins; a graph with no business_model
20179
+ // falls back to a bare product root, reported anchor_resolved_from: business_model.
20180
+ fallback_anchors: ["product"],
20181
+ child_map: {
20182
+ business_model: [opt("revenue_stream"), opt("cost_structure"), opt("unit_economics")],
20183
+ revenue_stream: [opt("pricing_tier"), opt("metric"), opt("pricing_strategy")],
20184
+ cost_structure: [opt("metric")],
20185
+ pricing_strategy: [opt("pricing_tier")],
20186
+ // Self-nesting: a metric decomposes into its component metrics (Net New MRR ->
20187
+ // New/Expansion/Contraction/Churned). The assembler's `seen` set terminates
20188
+ // the recursion for free (a metric met again becomes a shared reference).
20189
+ metric: [opt("metric")]
20190
+ },
20191
+ // Default to 3 tiers (business_model -> stream/cost -> tier/metric) for a
20192
+ // readable money-model overview; `depth` extends into the metric -> metric
20193
+ // decomposition waterfall.
20194
+ natural_depth: 3
20158
20195
  }
20159
20196
  ];
20160
20197
  var UPG_TREE_PATTERNS_BY_ID = Object.fromEntries(
@@ -28566,7 +28603,7 @@ function isCanonical(text) {
28566
28603
  }
28567
28604
 
28568
28605
  // src/index.ts
28569
- var UPG_VERSION = "0.11.4";
28606
+ var UPG_VERSION = "0.11.5";
28570
28607
  var UPG_FORMAT_VERSION = "0.4.0";
28571
28608
  var MARKDOWN_FORMAT_VERSION = "0.1";
28572
28609
  var UPG_TYPES = getTypes();