@unified-product-graph/cloud-server 0.9.18 → 0.9.20

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schema_version": "2",
3
3
  "package": "@unified-product-graph/cloud-server",
4
- "package_version": "0.9.18",
5
- "tool_count": 95,
4
+ "package_version": "0.9.20",
5
+ "tool_count": 97,
6
6
  "domains": [
7
7
  "products",
8
8
  "context",
@@ -244,7 +244,7 @@
244
244
  },
245
245
  {
246
246
  "name": "get_tree",
247
- "description": "Assemble a canonical tree pattern (ost, okr, user, product, validation, strategy, feature_areas) from the product graph. Walks the pattern's type-driven child map over the live graph (drift-proof, follows whatever edge wired each parent to a child of the expected type), roots at the pattern anchor with fallback, and reports structural gaps. Returns nested data, not rendered text.",
247
+ "description": "Assemble a canonical tree pattern (ost, okr, user, product, validation, strategy, feature_areas, delivery, architecture, journey, design_system) from the product graph. Walks the pattern's type-driven child map over the live graph (drift-proof, follows whatever edge wired each parent to a child of the expected type), roots at the pattern anchor with fallback, and reports structural gaps. Returns nested data, not rendered text.",
248
248
  "domain": "context",
249
249
  "inputSchema": {
250
250
  "type": "object",
@@ -255,7 +255,7 @@
255
255
  },
256
256
  "pattern": {
257
257
  "type": "string",
258
- "description": "Tree pattern id: ost, okr, user, product, validation, strategy, feature_areas"
258
+ "description": "Tree pattern id: ost, okr, user, product, validation, strategy, feature_areas, delivery, architecture, journey, design_system"
259
259
  },
260
260
  "from_id": {
261
261
  "type": "string",
@@ -291,7 +291,7 @@
291
291
  "query",
292
292
  "list_playbooks"
293
293
  ],
294
- "source": "src/tools/tree.ts:47",
294
+ "source": "src/tools/tree.ts:49",
295
295
  "symbol": "getTree",
296
296
  "returns": "JSON: `{ pattern, framework_id?, anchor_type, anchor_used,\nanchor_resolved_from?, roots: TreeNode[], stats: { nodes, levels, truncated },\ngaps: [{ node_id, type, title, missing }] }`. Structured data, never rendered text.",
297
297
  "return_shape": "{ pattern, framework_id?, anchor_type, anchor_used, anchor_resolved_from?, roots: TreeNode[], stats: { nodes, levels, truncated }, gaps: [{ node_id, type, title, missing }] }",
@@ -1673,7 +1673,7 @@
1673
1673
  "inspect",
1674
1674
  "validate_graph"
1675
1675
  ],
1676
- "source": "src/tools/spec.ts:1183",
1676
+ "source": "src/tools/spec.ts:1221",
1677
1677
  "symbol": "getAntiPattern",
1678
1678
  "returns": "JSON: `UPGCuratedAntiPattern`",
1679
1679
  "return_notes": [
@@ -1717,7 +1717,7 @@
1717
1717
  "trace",
1718
1718
  "reflect"
1719
1719
  ],
1720
- "source": "src/tools/spec.ts:237",
1720
+ "source": "src/tools/spec.ts:239",
1721
1721
  "symbol": "getApproach",
1722
1722
  "returns": "JSON: the full `UPGApproach` record.",
1723
1723
  "return_notes": [
@@ -1751,7 +1751,7 @@
1751
1751
  "list_anti_patterns",
1752
1752
  "get_playbook"
1753
1753
  ],
1754
- "source": "src/tools/spec.ts:528",
1754
+ "source": "src/tools/spec.ts:530",
1755
1755
  "symbol": "getDomainGuide",
1756
1756
  "returns": "JSON: the full `UPGDomainUsageGuide` record.",
1757
1757
  "return_notes": [
@@ -1785,7 +1785,7 @@
1785
1785
  "list_domains",
1786
1786
  "get_domain_guide"
1787
1787
  ],
1788
- "source": "src/tools/spec.ts:1682",
1788
+ "source": "src/tools/spec.ts:1720",
1789
1789
  "symbol": "getDomainRing",
1790
1790
  "returns": "JSON: the full `UPGDomainRing` record.",
1791
1791
  "return_notes": [
@@ -1819,7 +1819,7 @@
1819
1819
  "resolve_edge_for_pair",
1820
1820
  "rename_edge_type"
1821
1821
  ],
1822
- "source": "src/tools/spec.ts:655",
1822
+ "source": "src/tools/spec.ts:657",
1823
1823
  "symbol": "getEdgeType",
1824
1824
  "returns": "JSON: `{ type, forward_verb, reverse_verb, classification, source_type, target_type }`",
1825
1825
  "return_shape": "{ type, forward_verb, reverse_verb, classification, source_type, target_type }",
@@ -1851,7 +1851,7 @@
1851
1851
  "get_type_label",
1852
1852
  "get_entity_schema"
1853
1853
  ],
1854
- "source": "src/tools/spec.ts:1102",
1854
+ "source": "src/tools/spec.ts:1140",
1855
1855
  "symbol": "getEntityMeta",
1856
1856
  "returns": "JSON: `EntityTypeMeta & { domain_id: string | null }`",
1857
1857
  "return_notes": [
@@ -1886,7 +1886,7 @@
1886
1886
  "get_playbook",
1887
1887
  "get_approach"
1888
1888
  ],
1889
- "source": "src/tools/spec.ts:594",
1889
+ "source": "src/tools/spec.ts:596",
1890
1890
  "symbol": "getFramework",
1891
1891
  "returns": "JSON: the full `UPGFramework` record.",
1892
1892
  "return_notes": [
@@ -1921,7 +1921,7 @@
1921
1921
  "get_framework",
1922
1922
  "list_entity_types"
1923
1923
  ],
1924
- "source": "src/tools/spec.ts:922",
1924
+ "source": "src/tools/spec.ts:960",
1925
1925
  "symbol": "getLensTool",
1926
1926
  "returns": "JSON: `{ ...UPGLens, visible_types: string[] }`",
1927
1927
  "return_shape": "{...UPGLens, visible_types: string[] }",
@@ -1953,7 +1953,7 @@
1953
1953
  "get_entity_meta",
1954
1954
  "get_entity_schema"
1955
1955
  ],
1956
- "source": "src/tools/spec.ts:1491",
1956
+ "source": "src/tools/spec.ts:1529",
1957
1957
  "symbol": "getLifecycle",
1958
1958
  "returns": "JSON: the full `UPGLifecycle` record, or a descriptive message.",
1959
1959
  "return_notes": [
@@ -1988,7 +1988,7 @@
1988
1988
  "get_framework",
1989
1989
  "get_region"
1990
1990
  ],
1991
- "source": "src/tools/spec.ts:173",
1991
+ "source": "src/tools/spec.ts:175",
1992
1992
  "symbol": "getPlaybook",
1993
1993
  "returns": "JSON: the full `UPGPlaybook` record.",
1994
1994
  "return_notes": [
@@ -2023,7 +2023,7 @@
2023
2023
  "get_playbook",
2024
2024
  "list_lenses"
2025
2025
  ],
2026
- "source": "src/tools/spec.ts:725",
2026
+ "source": "src/tools/spec.ts:727",
2027
2027
  "symbol": "getRegion",
2028
2028
  "returns": "JSON: the full `UPGRegion` record plus `coverage_keys` and `business_areas`.",
2029
2029
  "return_notes": [
@@ -2058,7 +2058,7 @@
2058
2058
  "get_entity_meta",
2059
2059
  "list_entity_types"
2060
2060
  ],
2061
- "source": "src/tools/spec.ts:751",
2061
+ "source": "src/tools/spec.ts:753",
2062
2062
  "symbol": "getRegionForEntity",
2063
2063
  "returns": "JSON: the full `UPGRegion` record.",
2064
2064
  "return_notes": [
@@ -2091,7 +2091,7 @@
2091
2091
  "list_scales",
2092
2092
  "get_entity_schema"
2093
2093
  ],
2094
- "source": "src/tools/spec.ts:1598",
2094
+ "source": "src/tools/spec.ts:1636",
2095
2095
  "symbol": "getScale",
2096
2096
  "returns": "JSON: the full `UPGScaleDefinition` record including all points.",
2097
2097
  "return_notes": [
@@ -2115,12 +2115,45 @@
2115
2115
  "list_edge_types",
2116
2116
  "list_regions"
2117
2117
  ],
2118
- "source": "src/tools/spec.ts:778",
2118
+ "source": "src/tools/spec.ts:816",
2119
2119
  "symbol": "getSpecVersion",
2120
2120
  "returns": "JSON: `{ upg_version, markdown_format_version, entity_count, edge_count, domain_count, region_count }`",
2121
2121
  "return_shape": "{ upg_version, markdown_format_version, entity_count, edge_count, domain_count, region_count }",
2122
2122
  "atomicity": "atomic (read-only)"
2123
2123
  },
2124
+ {
2125
+ "name": "get_tree_pattern",
2126
+ "description": "Return the full declarative record for one get_tree pattern: its region, anchor_type, fallback_anchors, gap_policy, natural_depth, and its child map resolved to concrete edges. Each parent-to-child slot carries the canonical via edge and its kind, resolved live from the edge catalogue, so a client reads the real wiring and the pattern cannot cite an edge the grammar lacks.",
2127
+ "domain": "spec",
2128
+ "inputSchema": {
2129
+ "type": "object",
2130
+ "properties": {
2131
+ "id": {
2132
+ "type": "string",
2133
+ "description": "Tree pattern id: ost, okr, user, product, validation, strategy, feature_areas, delivery, architecture, journey, design_system."
2134
+ }
2135
+ },
2136
+ "required": [
2137
+ "id"
2138
+ ]
2139
+ },
2140
+ "throws": [
2141
+ "textError when `id` is missing or unknown."
2142
+ ],
2143
+ "examples": [],
2144
+ "warnings": [],
2145
+ "see": [
2146
+ "list_tree_patterns",
2147
+ "resolve_edge_for_pair"
2148
+ ],
2149
+ "source": "src/tools/spec.ts:789",
2150
+ "symbol": "getTreePattern",
2151
+ "returns": "JSON: the `UPGTreePatternDetail` record.",
2152
+ "return_notes": [
2153
+ "JSON: the `UPGTreePatternDetail` record."
2154
+ ],
2155
+ "atomicity": "atomic (read-only)"
2156
+ },
2124
2157
  {
2125
2158
  "name": "get_type_label",
2126
2159
  "description": "Return one canonical UPGTypeLabel by entity type, plus a resolved display label for an optional framework_id and/or designation (wraps resolveLabel). Lookup is exact-match against UPG_TYPE_LABELS_MAP.",
@@ -2155,7 +2188,7 @@
2155
2188
  "get_entity_meta",
2156
2189
  "list_frameworks"
2157
2190
  ],
2158
- "source": "src/tools/spec.ts:983",
2191
+ "source": "src/tools/spec.ts:1021",
2159
2192
  "symbol": "getTypeLabel",
2160
2193
  "returns": "JSON: `{ ...UPGTypeLabel, resolved_label: string }`",
2161
2194
  "return_shape": "{...UPGTypeLabel, resolved_label: string }",
@@ -2188,7 +2221,7 @@
2188
2221
  "get_entity_meta",
2189
2222
  "create_node"
2190
2223
  ],
2191
- "source": "src/tools/spec.ts:1009",
2224
+ "source": "src/tools/spec.ts:1047",
2192
2225
  "symbol": "getValidChildrenTool",
2193
2226
  "returns": "JSON: `{ parent_type, valid_children: string[] }`",
2194
2227
  "return_shape": "{ parent_type, valid_children: string[] }",
@@ -2227,7 +2260,7 @@
2227
2260
  "plan",
2228
2261
  "reflect"
2229
2262
  ],
2230
- "source": "src/tools/spec.ts:329",
2263
+ "source": "src/tools/spec.ts:331",
2231
2264
  "symbol": "inspect",
2232
2265
  "returns": "JSON envelope: `{ approach_id: 'inspect', scope, generated_at, approach, params }`",
2233
2266
  "return_notes": [
@@ -2285,7 +2318,7 @@
2285
2318
  "inspect",
2286
2319
  "get_domain_guide"
2287
2320
  ],
2288
- "source": "src/tools/spec.ts:1143",
2321
+ "source": "src/tools/spec.ts:1181",
2289
2322
  "symbol": "listAntiPatterns",
2290
2323
  "returns": "JSON: `{ total, count, next_cursor?, anti_patterns: UPGCuratedAntiPattern[] }`",
2291
2324
  "return_shape": "{ total, count, next_cursor?, anti_patterns: UPGCuratedAntiPattern[] }",
@@ -2316,7 +2349,7 @@
2316
2349
  "reflect",
2317
2350
  "list_playbooks"
2318
2351
  ],
2319
- "source": "src/tools/spec.ts:209",
2352
+ "source": "src/tools/spec.ts:211",
2320
2353
  "symbol": "listApproaches",
2321
2354
  "returns": "JSON: `{ count, approaches: UPGApproach[] }`",
2322
2355
  "return_shape": "{ count, approaches: UPGApproach[] }",
@@ -2374,7 +2407,7 @@
2374
2407
  "list_domains",
2375
2408
  "list_anti_patterns"
2376
2409
  ],
2377
- "source": "src/tools/spec.ts:1217",
2410
+ "source": "src/tools/spec.ts:1255",
2378
2411
  "symbol": "listBenchmarks",
2379
2412
  "returns": "JSON: `{ kind, total, count, benchmarks: ... }`",
2380
2413
  "return_shape": "{ kind, total, count, benchmarks:... }",
@@ -2396,7 +2429,7 @@
2396
2429
  "list_portfolio_cross_edges",
2397
2430
  "migrate_cross_edges"
2398
2431
  ],
2399
- "source": "src/tools/spec.ts:863",
2432
+ "source": "src/tools/spec.ts:901",
2400
2433
  "symbol": "listCrossEdgeTypes",
2401
2434
  "returns": "JSON: `{ count, types: readonly UPGCrossEdgeType[] }`",
2402
2435
  "return_shape": "{ count, types: readonly UPGCrossEdgeType[] }",
@@ -2418,7 +2451,7 @@
2418
2451
  "list_domains",
2419
2452
  "get_domain_guide"
2420
2453
  ],
2421
- "source": "src/tools/spec.ts:1661",
2454
+ "source": "src/tools/spec.ts:1699",
2422
2455
  "symbol": "listDomainRings",
2423
2456
  "returns": "JSON: `{ rings: UPGDomainRing[], total: number }`",
2424
2457
  "return_shape": "{ rings: UPGDomainRing[], total: number }",
@@ -2445,7 +2478,7 @@
2445
2478
  "list_regions",
2446
2479
  "list_entity_types"
2447
2480
  ],
2448
- "source": "src/tools/spec.ts:494",
2481
+ "source": "src/tools/spec.ts:496",
2449
2482
  "symbol": "listDomains",
2450
2483
  "returns": "JSON: `{ count, domains: Array<{ domain_id, anchor_entity, creation_sequence } | { domain_id, label, description, types, has_guide }> }`",
2451
2484
  "return_shape": "{ count, domains: Array<{ domain_id, anchor_entity, creation_sequence } | { domain_id, label, description, types, has_guide }> }",
@@ -2474,7 +2507,7 @@
2474
2507
  "list_edge_types",
2475
2508
  "validate_graph"
2476
2509
  ],
2477
- "source": "src/tools/spec.ts:1383",
2510
+ "source": "src/tools/spec.ts:1421",
2478
2511
  "symbol": "listEdgeMigrations",
2479
2512
  "returns": "JSON: `{ migrations: [{ kind, from, to?, since }], total: number }`",
2480
2513
  "return_shape": "{ migrations: [{ kind, from, to?, since }], total: number }",
@@ -2506,7 +2539,7 @@
2506
2539
  "list_cross_edge_types",
2507
2540
  "create_edge"
2508
2541
  ],
2509
- "source": "src/tools/spec.ts:637",
2542
+ "source": "src/tools/spec.ts:639",
2510
2543
  "symbol": "listEdgeTypes",
2511
2544
  "returns": "JSON: `{ count, edges: Array<{ type, forward_verb, reverse_verb, classification, source_type, target_type }> }`",
2512
2545
  "return_shape": "{ count, edges: Array<{ type, forward_verb, reverse_verb, classification, source_type, target_type }> }",
@@ -2557,7 +2590,7 @@
2557
2590
  "list_type_labels",
2558
2591
  "list_domains"
2559
2592
  ],
2560
- "source": "src/tools/spec.ts:1052",
2593
+ "source": "src/tools/spec.ts:1090",
2561
2594
  "symbol": "listEntityTypes",
2562
2595
  "returns": "JSON: `{ total, count, next_cursor?, types: Array<EntityTypeMeta & { domain_id: string | null }> }`",
2563
2596
  "return_shape": "{ total, count, next_cursor?, types: Array<EntityTypeMeta & { domain_id: string | null }> }",
@@ -2578,7 +2611,7 @@
2578
2611
  "list_frameworks",
2579
2612
  "list_framework_structure_patterns"
2580
2613
  ],
2581
- "source": "src/tools/spec.ts:1617",
2614
+ "source": "src/tools/spec.ts:1655",
2582
2615
  "symbol": "listFrameworkCategories",
2583
2616
  "returns": "JSON: `{ categories: string[], total: number }`",
2584
2617
  "return_shape": "{ categories: string[], total: number }",
@@ -2600,7 +2633,7 @@
2600
2633
  "list_framework_categories",
2601
2634
  "get_framework"
2602
2635
  ],
2603
- "source": "src/tools/spec.ts:1638",
2636
+ "source": "src/tools/spec.ts:1676",
2604
2637
  "symbol": "listFrameworkStructurePatterns",
2605
2638
  "returns": "JSON: `{ patterns: string[], total: number }`",
2606
2639
  "return_shape": "{ patterns: string[], total: number }",
@@ -2635,7 +2668,7 @@
2635
2668
  "prioritise",
2636
2669
  "list_approaches"
2637
2670
  ],
2638
- "source": "src/tools/spec.ts:558",
2671
+ "source": "src/tools/spec.ts:560",
2639
2672
  "symbol": "listFrameworks",
2640
2673
  "returns": "JSON: `{ total, count, next_cursor?, frameworks: UPGFramework[] }`",
2641
2674
  "return_shape": "{ total, count, next_cursor?, frameworks: UPGFramework[] }",
@@ -2658,7 +2691,7 @@
2658
2691
  "list_playbooks",
2659
2692
  "list_frameworks"
2660
2693
  ],
2661
- "source": "src/tools/spec.ts:889",
2694
+ "source": "src/tools/spec.ts:927",
2662
2695
  "symbol": "listLenses",
2663
2696
  "returns": "JSON: `{ count, lenses: Array<{ id, name, description, icon, audience, perspective, framework_id?, playbook_id?, visible_domain_count, intelligence_prompt_count }> }`",
2664
2697
  "return_shape": "{ count, lenses: Array<{ id, name, description, icon, audience, perspective, framework_id?, playbook_id?, visible_domain_count, intelligence_prompt_count }> }",
@@ -2689,7 +2722,7 @@
2689
2722
  "list_entity_types",
2690
2723
  "get_entity_meta"
2691
2724
  ],
2692
- "source": "src/tools/spec.ts:1448",
2725
+ "source": "src/tools/spec.ts:1486",
2693
2726
  "symbol": "listLifecycles",
2694
2727
  "returns": "JSON: `{ lifecycles, total, free_types: string[], planned_types: string[] }`",
2695
2728
  "return_shape": "{ lifecycles, total, free_types: string[], planned_types: string[] }",
@@ -2725,7 +2758,7 @@
2725
2758
  "list_approaches",
2726
2759
  "list_frameworks"
2727
2760
  ],
2728
- "source": "src/tools/spec.ts:143",
2761
+ "source": "src/tools/spec.ts:145",
2729
2762
  "symbol": "listPlaybooks",
2730
2763
  "returns": "JSON: `{ count, playbooks: UPGPlaybook[] }`",
2731
2764
  "return_shape": "{ count, playbooks: UPGPlaybook[] }",
@@ -2747,7 +2780,7 @@
2747
2780
  "list_anti_patterns",
2748
2781
  "create_product"
2749
2782
  ],
2750
- "source": "src/tools/spec.ts:1320",
2783
+ "source": "src/tools/spec.ts:1358",
2751
2784
  "symbol": "listProductStages",
2752
2785
  "returns": "JSON: `{ count, stages: readonly UPGProductStage[] }`",
2753
2786
  "return_shape": "{ count, stages: readonly UPGProductStage[] }",
@@ -2770,7 +2803,7 @@
2770
2803
  "list_domains",
2771
2804
  "list_playbooks"
2772
2805
  ],
2773
- "source": "src/tools/spec.ts:688",
2806
+ "source": "src/tools/spec.ts:690",
2774
2807
  "symbol": "listRegions",
2775
2808
  "returns": "JSON: `{ count, regions: Array<{ id, label, order, shape, mental_model, anchor_type, composes_atomic_domains, entity_count, intra_edge_count, boundary_edge_count, coverage_keys, business_areas }>, area_taxonomy }`",
2776
2809
  "return_shape": "{ count, regions: Array<{ id, label, order, shape, mental_model, anchor_type, composes_atomic_domains, entity_count, intra_edge_count, boundary_edge_count, coverage_keys, business_areas }>, area_taxonomy }",
@@ -2791,7 +2824,7 @@
2791
2824
  "get_scale",
2792
2825
  "get_entity_schema"
2793
2826
  ],
2794
- "source": "src/tools/spec.ts:1583",
2827
+ "source": "src/tools/spec.ts:1621",
2795
2828
  "symbol": "listScales",
2796
2829
  "returns": "JSON: `{ scales: UPGScaleDefinition[], total: number }`",
2797
2830
  "return_shape": "{ scales: UPGScaleDefinition[], total: number }",
@@ -2814,7 +2847,7 @@
2814
2847
  "migrate_type",
2815
2848
  "validate_graph"
2816
2849
  ],
2817
- "source": "src/tools/spec.ts:1420",
2850
+ "source": "src/tools/spec.ts:1458",
2818
2851
  "symbol": "listSplitMigrations",
2819
2852
  "returns": "JSON: `{ splits: [...], total: number }`",
2820
2853
  "return_shape": "{ splits: [...], total: number }",
@@ -2843,12 +2876,33 @@
2843
2876
  "get_lifecycle",
2844
2877
  "get_entity_schema"
2845
2878
  ],
2846
- "source": "src/tools/spec.ts:1523",
2879
+ "source": "src/tools/spec.ts:1561",
2847
2880
  "symbol": "listStatusValues",
2848
2881
  "returns": "JSON: `{ entity_type, lifecycle_free, initial_status?, terminal_statuses?, values: [{ status, label, terminal }], note? }`.",
2849
2882
  "return_shape": "{ entity_type, lifecycle_free, initial_status?, terminal_statuses?, values: [{ status, label, terminal }], note? }",
2850
2883
  "atomicity": "atomic (read-only)"
2851
2884
  },
2885
+ {
2886
+ "name": "list_tree_patterns",
2887
+ "description": "List the canonical get_tree patterns as summary rows: id, label, the region each is the tree view of, anchor_type, fallback_anchors, natural_depth, gap_policy, and slot_count. The introspectable index of what get_tree can assemble. Fixed list, non-paginated.",
2888
+ "domain": "spec",
2889
+ "inputSchema": {
2890
+ "type": "object",
2891
+ "properties": {}
2892
+ },
2893
+ "throws": [],
2894
+ "examples": [],
2895
+ "warnings": [],
2896
+ "see": [
2897
+ "get_tree_pattern",
2898
+ "get_tree"
2899
+ ],
2900
+ "source": "src/tools/spec.ts:773",
2901
+ "symbol": "listTreePatterns",
2902
+ "returns": "JSON: `{ count, patterns }`",
2903
+ "return_shape": "{ count, patterns }",
2904
+ "atomicity": "atomic (read-only)"
2905
+ },
2852
2906
  {
2853
2907
  "name": "list_type_labels",
2854
2908
  "description": "List canonical UPGTypeLabel entries: every entity type's display label, alt-labels (synonyms), per-framework labels, and (where applicable) designation labels. Paginated (default limit 100, max 500). Cursor is opaque base64 (offset:N) following the list_frameworks convention. External MCP apps need labels for rendering.",
@@ -2874,7 +2928,7 @@
2874
2928
  "list_entity_types",
2875
2929
  "get_entity_meta"
2876
2930
  ],
2877
- "source": "src/tools/spec.ts:952",
2931
+ "source": "src/tools/spec.ts:990",
2878
2932
  "symbol": "listTypeLabels",
2879
2933
  "returns": "JSON: `{ total, count, next_cursor?, labels: UPGTypeLabel[] }`",
2880
2934
  "return_shape": "{ total, count, next_cursor?, labels: UPGTypeLabel[] }",
@@ -2903,7 +2957,7 @@
2903
2957
  "validate_graph",
2904
2958
  "list_entity_types"
2905
2959
  ],
2906
- "source": "src/tools/spec.ts:1352",
2960
+ "source": "src/tools/spec.ts:1390",
2907
2961
  "symbol": "listTypeMigrations",
2908
2962
  "returns": "JSON: `{ migrations: [{ from, to, since }], total: number }`",
2909
2963
  "return_shape": "{ migrations: [{ from, to, since }], total: number }",
@@ -2934,7 +2988,7 @@
2934
2988
  "inspect",
2935
2989
  "prioritise"
2936
2990
  ],
2937
- "source": "src/tools/spec.ts:301",
2991
+ "source": "src/tools/spec.ts:303",
2938
2992
  "symbol": "plan",
2939
2993
  "returns": "JSON envelope: `{ approach_id: 'plan', scope, generated_at, approach, params }`",
2940
2994
  "return_notes": [
@@ -2980,7 +3034,7 @@
2980
3034
  "plan",
2981
3035
  "trace"
2982
3036
  ],
2983
- "source": "src/tools/spec.ts:362",
3037
+ "source": "src/tools/spec.ts:364",
2984
3038
  "symbol": "prioritise",
2985
3039
  "returns": "JSON envelope: `{ approach_id: 'prioritise', scope, generated_at, approach, params }`",
2986
3040
  "return_notes": [
@@ -3027,7 +3081,7 @@
3027
3081
  "plan",
3028
3082
  "get_anti_pattern"
3029
3083
  ],
3030
- "source": "src/tools/spec.ts:453",
3084
+ "source": "src/tools/spec.ts:455",
3031
3085
  "symbol": "reflect",
3032
3086
  "returns": "JSON envelope: `{ approach_id: 'reflect', scope, generated_at, approach, params }`",
3033
3087
  "return_notes": [
@@ -3069,7 +3123,7 @@
3069
3123
  "create_edge",
3070
3124
  "trace"
3071
3125
  ],
3072
- "source": "src/tools/spec.ts:832",
3126
+ "source": "src/tools/spec.ts:870",
3073
3127
  "symbol": "resolveEdgeForPair",
3074
3128
  "returns": "JSON: `{ source_type, target_type, edge_type: string | null }`",
3075
3129
  "return_shape": "{ source_type, target_type, edge_type: string | null }",
@@ -3124,7 +3178,7 @@
3124
3178
  "plan",
3125
3179
  "prioritise"
3126
3180
  ],
3127
- "source": "src/tools/spec.ts:406",
3181
+ "source": "src/tools/spec.ts:408",
3128
3182
  "symbol": "trace",
3129
3183
  "returns": "JSON envelope: `{ approach_id: 'trace', scope, generated_at, approach, params }`",
3130
3184
  "return_notes": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unified-product-graph/cloud-server",
3
- "version": "0.9.18",
3
+ "version": "0.9.20",
4
4
  "description": "Postgres-backed MCP server for the Unified Product Graph, self-hostable, open source",
5
5
  "license": "MIT",
6
6
  "author": "The Product Creator <hello@theproductcreator.com>",
@@ -40,8 +40,8 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "@modelcontextprotocol/sdk": "^1.27.0",
43
- "@unified-product-graph/core": "0.9.18",
44
- "@unified-product-graph/sdk": "0.9.18",
43
+ "@unified-product-graph/core": "0.9.20",
44
+ "@unified-product-graph/sdk": "0.9.20",
45
45
  "nanoid": "^5.1.0",
46
46
  "pg": "^8.13.0"
47
47
  },