@unified-product-graph/core 0.14.1 → 0.15.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.
package/dist/index.js CHANGED
@@ -7381,6 +7381,118 @@ function getDeprecatedTypes() {
7381
7381
  return deprecated;
7382
7382
  }
7383
7383
  var UPG_PROPERTY_MIGRATIONS = {
7384
+ // ── v0.15.0: Pattern D — collapse *_status shadows into the lifecycle ─────────
7385
+ //
7386
+ // 14 `*_status` enum properties whose values ARE the entity's own lifecycle
7387
+ // phase set (UPG-689 Pattern D, the T1.1 guardrail set). They re-encoded the
7388
+ // lifecycle as a property, shadowing the base-node `status` field that the
7389
+ // lifecycle already drives. Each property is removed and any authored value
7390
+ // LIFTS to `UPGBaseNode.status` (same convention as 0.9.14 kr_status). Two
7391
+ // diverge in vocabulary from their own lifecycle and remap on lift:
7392
+ // - marketing_channel.channel_status: deprecated -> sunset
7393
+ // - security_audit.audit_status: scheduled -> planning, in_progress -> active
7394
+ "0.15.0": [
7395
+ {
7396
+ kind: "lift_property_to_top_level",
7397
+ type: "agent_definition",
7398
+ from_property: "agent_status",
7399
+ to: "status",
7400
+ reason: "UPG-689 Pattern D: agent_status duplicated the agent_definition lifecycle (testing/active/disabled). Removed in 0.15.0; the authored value lifts to UPGBaseNode.status."
7401
+ },
7402
+ {
7403
+ kind: "lift_property_to_top_level",
7404
+ type: "data_pipeline",
7405
+ from_property: "pipeline_status",
7406
+ to: "status",
7407
+ reason: "UPG-689 Pattern D: pipeline_status duplicated the data_pipeline lifecycle (active/paused/failed/deprecated). Removed in 0.15.0; lifts to status."
7408
+ },
7409
+ {
7410
+ kind: "lift_property_to_top_level",
7411
+ type: "database_schema",
7412
+ from_property: "migration_status",
7413
+ to: "status",
7414
+ reason: "UPG-689 Pattern D: migration_status duplicated the database_schema lifecycle (current/pending/failed). Removed in 0.15.0; lifts to status."
7415
+ },
7416
+ {
7417
+ kind: "lift_property_to_top_level",
7418
+ type: "deployment",
7419
+ from_property: "deploy_status",
7420
+ to: "status",
7421
+ reason: "UPG-689 Pattern D: deploy_status duplicated the deployment lifecycle (rolling/success/failure). Removed in 0.15.0; lifts to status."
7422
+ },
7423
+ {
7424
+ kind: "lift_property_to_top_level",
7425
+ type: "external_api",
7426
+ from_property: "api_status",
7427
+ to: "status",
7428
+ reason: "UPG-689 Pattern D: api_status duplicated the external_api lifecycle (beta/active/deprecated/unavailable). Removed in 0.15.0; lifts to status."
7429
+ },
7430
+ {
7431
+ kind: "lift_property_to_top_level",
7432
+ type: "feature_area",
7433
+ from_property: "area_status",
7434
+ to: "status",
7435
+ reason: "UPG-689 Pattern D: area_status duplicated the feature_area lifecycle (planned/active/deprecated). Removed in 0.15.0; lifts to status."
7436
+ },
7437
+ {
7438
+ kind: "lift_property_to_top_level",
7439
+ type: "feature_flag",
7440
+ from_property: "flag_status",
7441
+ to: "status",
7442
+ reason: "UPG-689 Pattern D: flag_status duplicated the feature_flag lifecycle (off/rollout/on). Removed in 0.15.0; lifts to status."
7443
+ },
7444
+ {
7445
+ kind: "lift_property_to_top_level",
7446
+ type: "objective",
7447
+ from_property: "objective_status",
7448
+ to: "status",
7449
+ reason: "UPG-689 Pattern D: objective_status duplicated the objective lifecycle (active/achieved/deferred). Removed in 0.15.0; lifts to status."
7450
+ },
7451
+ {
7452
+ kind: "lift_property_to_top_level",
7453
+ type: "outcome",
7454
+ from_property: "outcome_status",
7455
+ to: "status",
7456
+ reason: "UPG-689 Pattern D: outcome_status duplicated the outcome lifecycle (identified/measuring/achieved/abandoned). Removed in 0.15.0; lifts to status."
7457
+ },
7458
+ {
7459
+ kind: "lift_property_to_top_level",
7460
+ type: "prototype",
7461
+ from_property: "test_status",
7462
+ to: "status",
7463
+ reason: "UPG-689 Pattern D: test_status duplicated the prototype lifecycle (untested/testing/passed/failed). Removed in 0.15.0; lifts to status."
7464
+ },
7465
+ {
7466
+ kind: "lift_property_to_top_level",
7467
+ type: "review_gate",
7468
+ from_property: "gate_status",
7469
+ to: "status",
7470
+ reason: "UPG-689 Pattern D: gate_status duplicated the review_gate lifecycle (pending/approved/rejected/bypassed). Removed in 0.15.0; lifts to status."
7471
+ },
7472
+ {
7473
+ kind: "lift_property_to_top_level",
7474
+ type: "roadmap_item",
7475
+ from_property: "item_status",
7476
+ to: "status",
7477
+ reason: "UPG-689 Pattern D: item_status duplicated the roadmap_item lifecycle (planned/in_progress/shipped/deferred). Removed in 0.15.0; lifts to status."
7478
+ },
7479
+ {
7480
+ kind: "lift_property_to_top_level",
7481
+ type: "marketing_channel",
7482
+ from_property: "channel_status",
7483
+ to: "status",
7484
+ value_map: { deprecated: "sunset" },
7485
+ reason: "UPG-689 Pattern D: channel_status (active/paused/deprecated) re-encoded the marketing_channel lifecycle (planning/active/paused/completed/sunset). Removed in 0.15.0; lifts to status with deprecated -> sunset."
7486
+ },
7487
+ {
7488
+ kind: "lift_property_to_top_level",
7489
+ type: "security_audit",
7490
+ from_property: "audit_status",
7491
+ to: "status",
7492
+ value_map: { scheduled: "planning", in_progress: "active" },
7493
+ reason: "UPG-689 Pattern D: audit_status (scheduled/in_progress/completed) re-encoded the security_audit lifecycle (planning/active/paused/completed/sunset). Removed in 0.15.0; lifts to status with scheduled -> planning, in_progress -> active."
7494
+ }
7495
+ ],
7384
7496
  // ── v0.14.0: Pattern E — remove deprecated/ghost properties (UPG-574) ────────
7385
7497
  //
7386
7498
  // Properties marked deprecated (some "Removed in 0.9.1") that were never
@@ -9906,7 +10018,6 @@ var UPG_PROPERTY_SCHEMA = {
9906
10018
  max_execution_time_seconds: { type: "number", description: "Hard timeout for agent execution in seconds" },
9907
10019
  allow_code_execution: { type: "boolean", description: "Whether the agent can execute generated code" },
9908
10020
  multimodal: { type: "boolean", description: "Whether the agent can process images and other media" },
9909
- agent_status: { type: "string", enum: ["active", "disabled", "testing"], description: "Operational status of this agent definition" },
9910
10021
  version: { type: "string", description: 'Version label for this agent definition (e.g. "1.4.2")' }
9911
10022
  },
9912
10023
  // AgentHookProperties: Agent hook.
@@ -10607,7 +10718,6 @@ var UPG_PROPERTY_SCHEMA = {
10607
10718
  },
10608
10719
  // DataPipelineProperties: DataPipeline entity.
10609
10720
  data_pipeline: {
10610
- pipeline_status: { type: "string", enum: ["active", "paused", "failed", "deprecated"], description: "Operational status of the pipeline" },
10611
10721
  schedule: { type: "string", description: "Cron or scheduling expression" },
10612
10722
  avg_runtime: { type: "string", description: "Average wall-clock runtime per execution" },
10613
10723
  orchestrator: { type: "string", description: 'Orchestration tool (e.g. "Airflow", "Dagster", "dbt Cloud")' },
@@ -10642,7 +10752,6 @@ var UPG_PROPERTY_SCHEMA = {
10642
10752
  database_schema: {
10643
10753
  db_type: { type: "string", enum: ["postgres", "mysql", "mongodb", "redis", "other"], description: "Engine" },
10644
10754
  schema_version: { type: "string", description: "Current schema version" },
10645
- migration_status: { type: "string", enum: ["current", "pending", "failed"], description: "Pending-migration status" },
10646
10755
  owner: { type: "string", description: "Owning person or team responsible for design and migrations. Promote to a `node_owned_by_team` edge if ownership must be queryable." },
10647
10756
  table_count: { type: "number", description: "Tables or collections in this schema. Useful for migration scope estimation.", modifier: "derived" }
10648
10757
  },
@@ -10697,7 +10806,6 @@ var UPG_PROPERTY_SCHEMA = {
10697
10806
  deployment: {
10698
10807
  environment: { type: "string", enum: ["dev", "staging", "prod"], description: "Target environment" },
10699
10808
  timestamp: { type: "string", description: "ISO timestamp" },
10700
- deploy_status: { type: "string", enum: ["success", "failure", "rolling"], description: "Current status" },
10701
10809
  sha: { type: "string", description: "Git SHA of the deployed commit" },
10702
10810
  duration_seconds: { type: "number", description: "Wall-clock duration in seconds. Tracks deployment speed trends." },
10703
10811
  deployer: { type: "string", description: "Triggering person or system. Promote to a `node_owned_by_person` edge if ownership must be queryable." }
@@ -11025,8 +11133,7 @@ var UPG_PROPERTY_SCHEMA = {
11025
11133
  provider: { type: "string", description: "Provider" },
11026
11134
  base_url: { type: "string", description: "Base URL" },
11027
11135
  auth_type: { type: "string", enum: ["api_key", "oauth2", "jwt", "basic", "none"], description: "Authentication method" },
11028
- rate_limits: { type: "string", description: "Rate limit description" },
11029
- api_status: { type: "string", enum: ["active", "deprecated", "beta", "unavailable"], description: "Availability" }
11136
+ rate_limits: { type: "string", description: "Rate limit description" }
11030
11137
  },
11031
11138
  // FeasibilityStudyProperties: FeasibilityStudy entity.
11032
11139
  feasibility_study: {
@@ -11060,13 +11167,11 @@ var UPG_PROPERTY_SCHEMA = {
11060
11167
  feature_count: { type: "number", description: "Approximate feature count under this area. Snapshot; `feature_area_contains_feature` edges are the source of truth.", modifier: "derived" },
11061
11168
  owner: { type: "string", description: "Area owner (handle or email). Promote to a `node_owned_by_team` edge if ownership must be queryable." },
11062
11169
  priority: { type: "string", enum: ["urgent", "high", "medium", "low", "none"], description: "Importance to the product overall" },
11063
- maturity: { type: "string", enum: ["nascent", "growing", "mature", "legacy"], description: "Maturity. `nascent` = newly-formed grouping. `mature` = established surface. `legacy` = being phased out for a successor." },
11064
- area_status: { type: "string", enum: ["active", "planned", "deprecated"], description: "Status in the product structure" }
11170
+ maturity: { type: "string", enum: ["nascent", "growing", "mature", "legacy"], description: "Maturity. `nascent` = newly-formed grouping. `mature` = established surface. `legacy` = being phased out for a successor." }
11065
11171
  },
11066
11172
  // FeatureFlagProperties: Feature flag.
11067
11173
  feature_flag: {
11068
11174
  key: { type: "string", description: 'Required. Stable flag key used in code (e.g. "new-checkout-flow").' },
11069
- flag_status: { type: "string", enum: ["on", "off", "rollout"], description: "Activation state. `on` = enabled for all. `off` = disabled for all. `rollout` = partial via targeting_rules." },
11070
11175
  rollout_pct: { type: "number", description: "Percentage enabled (0\u2013100). Meaningful when `flag_status === 'rollout'`.", modifier: "snapshot" },
11071
11176
  targeting_rules: { type: "string", description: "Human-readable targeting rules. Full rule evaluation happens in the flag service." },
11072
11177
  owner: { type: "string", description: "Owning person or team responsible for the flag's lifecycle. Promote to a `node_owned_by_person` edge if ownership must be queryable." },
@@ -11673,8 +11778,7 @@ var UPG_PROPERTY_SCHEMA = {
11673
11778
  marketing_channel: {
11674
11779
  channel_type: { type: "string", enum: ["social", "email", "seo", "sem", "content", "events", "other"], description: "Category of marketing channel" },
11675
11780
  monthly_budget: { type: "number", description: "Monthly spend allocated to this channel", modifier: "snapshot" },
11676
- roi: { type: "number", description: "Return on investment ratio" },
11677
- channel_status: { type: "string", enum: ["active", "paused", "deprecated"], description: "Operational status of the channel" }
11781
+ roi: { type: "number", description: "Return on investment ratio" }
11678
11782
  },
11679
11783
  // MarketingStrategyProperties: Marketing strategy.
11680
11784
  marketing_strategy: {
@@ -11832,7 +11936,6 @@ var UPG_PROPERTY_SCHEMA = {
11832
11936
  // ObjectiveProperties: A high-level strategic goal. The O in OKR.
11833
11937
  objective: {
11834
11938
  timeframe: { type: "string", description: 'Planning timeframe (e.g. "Q1 2026", "H1 2026")' },
11835
- objective_status: { type: "string", enum: ["active", "achieved", "deferred"], description: "Current status" },
11836
11939
  progress: { type: "number", description: "Overall progress (0\u2013100)" }
11837
11940
  },
11838
11941
  // ObservationProperties: Discrete observation captured during research. Absorbed from the deprecated Highlight entity.
@@ -11881,8 +11984,7 @@ var UPG_PROPERTY_SCHEMA = {
11881
11984
  normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
11882
11985
  },
11883
11986
  required: ["value", "label"]
11884
- },
11885
- outcome_status: { type: "string", enum: ["identified", "measuring", "achieved", "abandoned"], description: "Current lifecycle phase, mirroring the `outcome` lifecycle in `grammar/lifecycles.ts` (UPG-579 Option B): `identified` -> `measuring` -> `achieved` | `abandoned`." }
11987
+ }
11886
11988
  },
11887
11989
  // ParticipantProperties: Research participant.
11888
11990
  participant: {
@@ -12094,7 +12196,6 @@ var UPG_PROPERTY_SCHEMA = {
12094
12196
  // PrototypeProperties: Prototype.
12095
12197
  prototype: {
12096
12198
  fidelity: { type: "string", enum: ["low", "medium", "high"], description: "Detail level" },
12097
- test_status: { type: "string", enum: ["untested", "testing", "passed", "failed"], description: "User-test status" },
12098
12199
  tool: { type: "string", description: "Authoring tool" }
12099
12200
  },
12100
12201
  // QaSessionProperties: QA session.
@@ -12224,8 +12325,7 @@ var UPG_PROPERTY_SCHEMA = {
12224
12325
  // ReviewGateProperties: Review gate.
12225
12326
  review_gate: {
12226
12327
  gate_type: { type: "string", enum: ["human_review", "automated_check", "approval"], description: "Kind of review required at this gate" },
12227
- required_approvers: { type: "string[]", description: "People or roles that must approve. Promote to `node_owned_by_person` edges (one per name) if ownership must be queryable." },
12228
- gate_status: { type: "string", enum: ["pending", "approved", "rejected", "bypassed"], description: "Current approval status of the gate" }
12328
+ required_approvers: { type: "string[]", description: "People or roles that must approve. Promote to `node_owned_by_person` edges (one per name) if ownership must be queryable." }
12229
12329
  },
12230
12330
  // RiskProperties: Risk.
12231
12331
  risk: {
@@ -12270,7 +12370,6 @@ var UPG_PROPERTY_SCHEMA = {
12270
12370
  roadmap_item: {
12271
12371
  quarter: { type: "string", description: 'Planning quarter (e.g. "Q2 2026"). Pair with `start_date`/`target_date` for precise scheduling.' },
12272
12372
  priority: { type: "string", enum: ["urgent", "high", "medium", "low", "none"], description: "Importance against other items" },
12273
- item_status: { type: "string", enum: ["planned", "in_progress", "shipped", "deferred"], description: "Status. `deferred` = explicitly pushed to a later period." },
12274
12373
  confidence: {
12275
12374
  type: "assessment",
12276
12375
  scale_id: "confidence_5",
@@ -12350,7 +12449,6 @@ var UPG_PROPERTY_SCHEMA = {
12350
12449
  // SecurityAuditProperties: Security audit.
12351
12450
  security_audit: {
12352
12451
  audit_scope: { type: "string", description: "Systems or processes covered by the audit" },
12353
- audit_status: { type: "string", enum: ["scheduled", "in_progress", "completed"], description: "Current progress of the audit" },
12354
12452
  findings_count: { type: "number", description: "Total number of findings", modifier: "derived" },
12355
12453
  critical_findings: { type: "number", description: "Number of critical-severity findings" }
12356
12454
  },
@@ -29283,7 +29381,7 @@ function isCanonical(text) {
29283
29381
  }
29284
29382
 
29285
29383
  // src/index.ts
29286
- var UPG_VERSION = "0.14.1";
29384
+ var UPG_VERSION = "0.15.0";
29287
29385
  var UPG_FORMAT_VERSION = "0.4.0";
29288
29386
  var MARKDOWN_FORMAT_VERSION = "0.1";
29289
29387
  var UPG_TYPES = getTypes();