@unified-product-graph/cloud-server 0.9.9 → 0.9.11

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.js CHANGED
@@ -2387,7 +2387,20 @@ var getSpecVersion = () => {
2387
2387
  entity_count: UPG_ENTITY_COUNT,
2388
2388
  edge_count: UPG_EDGE_COUNT,
2389
2389
  domain_count: UPG_DOMAIN_COUNT,
2390
- region_count: UPG_REGION_COUNT
2390
+ region_count: UPG_REGION_COUNT,
2391
+ anti_patterns: {
2392
+ total: UPG_ANTI_PATTERNS.length,
2393
+ // Anti-patterns introduced in a tracked version (the `since` field
2394
+ // landed in 0.9.11). Lets a consumer see which validators are newer
2395
+ // than the version a graph was authored under, so a spec upgrade
2396
+ // doesn't silently flip a clean graph invalid with no heads-up
2397
+ // (batch-6 #36). Baseline patterns (no `since`) predate the tracking.
2398
+ versioned: UPG_ANTI_PATTERNS.filter((p) => p.since).map((p) => ({
2399
+ id: p.id,
2400
+ severity: p.severity,
2401
+ since: p.since
2402
+ }))
2403
+ }
2391
2404
  },
2392
2405
  null,
2393
2406
  2
@@ -2714,6 +2727,45 @@ var getLifecycle = (args) => {
2714
2727
  }
2715
2728
  return text(JSON.stringify(lifecycle, null, 2));
2716
2729
  };
2730
+ var listStatusValues = (args) => {
2731
+ const entityType = args.entity_type;
2732
+ if (!entityType) return textError("Missing required parameter: entity_type");
2733
+ const lifecycle = UPG_LIFECYCLES.find((l) => l.entity_type === entityType);
2734
+ if (!lifecycle) {
2735
+ const free = UPG_LIFECYCLE_FREE_TYPES.has(entityType);
2736
+ const planned = UPG_LIFECYCLE_PLANNED_TYPES.has(entityType);
2737
+ return text(
2738
+ JSON.stringify(
2739
+ {
2740
+ entity_type: entityType,
2741
+ lifecycle_free: free,
2742
+ values: [],
2743
+ note: free ? `${entityType} is lifecycle-free: status is not state-machine-validated (a static type with no phase progression).` : planned ? `${entityType} has a lifecycle planned but not yet authored in this spec version.` : `No lifecycle defined for entity type: ${entityType}.`
2744
+ },
2745
+ null,
2746
+ 2
2747
+ )
2748
+ );
2749
+ }
2750
+ const terminal = new Set(lifecycle.terminal_phases);
2751
+ return text(
2752
+ JSON.stringify(
2753
+ {
2754
+ entity_type: entityType,
2755
+ lifecycle_free: false,
2756
+ initial_status: lifecycle.initial_phase,
2757
+ terminal_statuses: lifecycle.terminal_phases,
2758
+ values: lifecycle.phases.map((p) => ({
2759
+ status: p.id,
2760
+ label: p.label,
2761
+ terminal: terminal.has(p.id)
2762
+ }))
2763
+ },
2764
+ null,
2765
+ 2
2766
+ )
2767
+ );
2768
+ };
2717
2769
  var listScales = () => {
2718
2770
  const scales = Object.values(UPG_SCALES);
2719
2771
  return text(JSON.stringify({ scales, total: scales.length }, null, 2));
@@ -4722,6 +4774,17 @@ var TOOL_DEFINITIONS = [
4722
4774
  required: ["entity_type"]
4723
4775
  }
4724
4776
  },
4777
+ {
4778
+ name: "list_status_values",
4779
+ description: "List the valid `status` values an entity type can hold: the pre-flight lookup so you no longer learn the set only from a rejected write. For a lifecycle type, returns each phase as `{ status, label, terminal }` plus `initial_status` and `terminal_statuses`; for a lifecycle-free type, returns `lifecycle_free: true` with empty `values`. The focused, low-token sibling of `get_lifecycle`.",
4780
+ inputSchema: {
4781
+ type: "object",
4782
+ properties: {
4783
+ entity_type: { type: "string", description: 'Canonical entity type name (e.g. "feature", "key_result", "need").' }
4784
+ },
4785
+ required: ["entity_type"]
4786
+ }
4787
+ },
4725
4788
  {
4726
4789
  name: "list_scales",
4727
4790
  description: "List every spec-defined assessment scale from UPG_SCALES: the canonical vocabulary for UPGAssessment values. Each scale carries id, label, description, min, max, steps, and per-point labels plus descriptions. Non-paginated. External scale_extensions are graph-instance\u2013scoped and stay out of this surface.",
@@ -5228,6 +5291,7 @@ var HANDLERS = {
5228
5291
  list_split_migrations: listSplitMigrations,
5229
5292
  list_lifecycles: listLifecycles,
5230
5293
  get_lifecycle: getLifecycle,
5294
+ list_status_values: listStatusValues,
5231
5295
  list_scales: listScales,
5232
5296
  get_scale: getScale,
5233
5297
  list_framework_categories: listFrameworkCategories,