@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/CHANGELOG.md +9 -0
- package/dist/index.cjs +38 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +38 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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();
|