@unified-product-graph/core 0.32.2 → 0.33.1

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.ts CHANGED
@@ -519,6 +519,23 @@ type MarketingPlatform = 'discord' | 'email' | 'google' | 'instagram' | 'linkedi
519
519
  * - `low`: speculative match, human review recommended
520
520
  * - `manual`: mapping was set explicitly by a human */
521
521
  type UPGMappingConfidence = 'high' | 'medium' | 'low' | 'manual';
522
+ /** One external link beyond the canonical artifact.
523
+ *
524
+ * Generalises the `ServiceProperties.links` shape, which was the only
525
+ * list-of-links declaration in the spec before 0.33.0, up to the base node so
526
+ * that any node can hold more than one outward pointer.
527
+ */
528
+ interface UPGExternalLink {
529
+ /** URI. Same posture as `UPGBaseNode.external_ref`: https:// for cloud tools,
530
+ * file:// or a relative path for local files. */
531
+ url: string;
532
+ /** Human label for the link. */
533
+ label?: string;
534
+ /** What kind of thing is on the other end, e.g. "pull_request", "design",
535
+ * "runbook". A free string with a documented convention rather than an enum:
536
+ * the set is open by nature and a closed one would be wrong within a release. */
537
+ kind?: string;
538
+ }
522
539
  /** The structural base shared by every node in a product graph.
523
540
  *
524
541
  * All entity types extend this interface, either directly (using `properties`
@@ -595,16 +612,53 @@ interface UPGBaseNode {
595
612
  * external tool to mint it. A graph that outlives its source tool needs a key
596
613
  * of its own.
597
614
  *
598
- * MINTING. The prefix is `product.key_prefix`; a product with no prefix mints
599
- * no keys. The next number is `max(existing) + 1`, derived from the graph — no
615
+ * MINTING. The next number is `max(existing) + 1`, derived from the graph. No
600
616
  * counter is serialised, because a counter is store state rather than a fact
601
617
  * about the thing (the same cut that keeps `composition.rev`, which is a fact,
602
618
  * and excludes a concurrency token, which is not).
603
619
  *
604
- * NOT ENFORCED IN 0.32.0. The uniqueness and immutability invariants are
605
- * stated here and no check fires on them. A duplicate-key detector needs a
606
- * labeled corpus including the near-miss — two products in one workspace
607
- * legitimately sharing a prefix — and that corpus does not exist yet.
620
+ * WHICH PREFIX (0.33.0 normative, ladder restated in 0.33.1). Four rungs, tried
621
+ * in order. (1) A create NAMES its prefix explicitly. (2) Otherwise the
622
+ * prefixes DECLARED by the product's teams (`team.key_prefix`) are the
623
+ * candidates; `product.key_prefix` applies only when no team declares one, and
624
+ * is `@deprecated` for that reason. (3) Otherwise the prefixes OBSERVED on the
625
+ * product's existing keys are the candidates. That rung is the quiet case a
626
+ * graph reaches when its keys were imported rather than declared, and it is a
627
+ * real mint path: the two paragraphs below both name an INFERRED prefix, and
628
+ * `team.key_prefix` rule 3 presupposes it. (4) A product with none of the three
629
+ * mints no keys. Key uniqueness is scoped to the product across entity types; a
630
+ * prefix names a team within that scope, not a separate number line.
631
+ *
632
+ * NOT ENFORCED. The uniqueness and immutability invariants are stated here and
633
+ * no check fires on them. A duplicate-key detector needs a labeled corpus
634
+ * including the near-miss, two products in one workspace legitimately sharing a
635
+ * prefix, and that corpus does not exist yet.
636
+ *
637
+ * PORTFOLIO-WIDE UNIQUENESS IS DEFINED AND UNENFORCED (0.33.0). Within a
638
+ * portfolio, one `(prefix, number)` pair should identify one node. Uniqueness
639
+ * is enforced per product (the store index is `(product_id, key)`), so two
640
+ * products minting under one prefix produce the same citation for two different
641
+ * things. This is measured rather than feared: a fixture reproduces the
642
+ * collision through the ordinary create path, including the quiet case where
643
+ * nobody declares a prefix and it is inferred from existing keys. No check
644
+ * enforces it, and no per-product check ever can, because each product reports
645
+ * its own key as valid.
646
+ *
647
+ * MINTING IS PRODUCT-SCOPED (normative, 0.33.0). The `(product_id, key)` index
648
+ * is the enforced invariant and the scope of a key sequence is the product.
649
+ * `team` is `portfolio_shared`, so one team can be referenced from two
650
+ * products; minting does not travel with it. A portfolio-shared team's prefix
651
+ * is NOT a minting candidate in a second product, refusal is NO-KEY and never
652
+ * an exception, and the rule applies on the MINT path including a prefix that
653
+ * was INFERRED from existing keys rather than requested by any caller.
654
+ * Portfolio-shared team minting is deferred until a supra-product uniqueness
655
+ * design exists. See `team.key_prefix` for the rule in full.
656
+ *
657
+ * WHERE THE BEHAVIOUR LIVES, because this is a contract and not an
658
+ * implementation. Nothing in this package mints a key. Deriving the next number
659
+ * requires reading every keyed node in the product, and that read must page
660
+ * explicitly, so the minter is the graph service and the agent surface accepts
661
+ * a caller-supplied key on create without ever deriving one.
608
662
  *
609
663
  * @example "LTN-311"
610
664
  */
@@ -656,7 +710,72 @@ interface UPGBaseNode {
656
710
  external_ref?: string;
657
711
  /** Identifier in the external tool's system (for sync / round-trip) */
658
712
  external_id?: string;
659
- /** Type-specific properties */
713
+ /**
714
+ * Additional external links. `external_ref` names THE canonical artifact and
715
+ * stays the single answer to "where does this live"; this list holds
716
+ * everything else that points outward. A node may carry this with no
717
+ * `external_ref` when no single link is canonical.
718
+ *
719
+ * @remarks
720
+ * WHY A LIST AND NOT AN ENTITY. A measured tracker import produced 703
721
+ * attachments across 1,032 issues: 524 fitted on `external_ref` and 162
722
+ * overflowed into a vendor-namespaced property bag key with nowhere declared to
723
+ * go. A link has no lifecycle, no owner, no description and no independent
724
+ * identity, so minting a `link` type for it would pay roughly fourteen
725
+ * registration points for a scalar fact about a node.
726
+ *
727
+ * WHY NOT `external_refs`. That name is one character from `external_ref` and
728
+ * means the opposite thing (all the others, versus the canonical one). Two
729
+ * fields whose names differ by a plural and whose semantics differ by
730
+ * canonicality is a misreading waiting to happen in every consumer.
731
+ *
732
+ * @example
733
+ * [{ url: 'https://github.com/acme/api/pull/812', label: 'PR 812', kind: 'pull_request' }]
734
+ */
735
+ external_links?: UPGExternalLink[];
736
+ /**
737
+ * When the node was created. Store metadata lifted into the spec at 0.33.0 so
738
+ * that a declared view query can express a window over it.
739
+ *
740
+ * @volatile
741
+ * @remarks
742
+ * TAGGED `@volatile` DELIBERATELY. These two timestamps are maintained by
743
+ * whatever store holds the graph rather than authored, so they are not design
744
+ * knowledge and a reader must not treat them as stable facts about the thing.
745
+ * They are declared anyway because `UPGViewClause` can open a `date` window and
746
+ * two of the six date dimensions a real board filters on are these; leaving them
747
+ * undeclared would ship a query language that cannot say what the surface most
748
+ * often says, which is the failure the clause list exists to fix.
749
+ */
750
+ created_at?: ISODateTime;
751
+ /**
752
+ * When the node was last modified. Store metadata, same posture as
753
+ * `created_at`.
754
+ *
755
+ * @volatile
756
+ */
757
+ updated_at?: ISODateTime;
758
+ /**
759
+ * Type-specific properties.
760
+ *
761
+ * @remarks
762
+ * NAMESPACED EXTENSION KEYS (the 0.31.0 rule, extended to this bag at 0.33.0).
763
+ * A key that a tool owns and the spec does not declare is written
764
+ * `<tool>:<key>`, with a colon. An underscore key such as
765
+ * `linear_state_history` is indistinguishable from a misspelled spec property:
766
+ * no migration can target it and no validator can tell it apart from a typo,
767
+ * and that undetectability is the whole reason the rule exists. The rule was
768
+ * written for `WorkspaceCanvas` and applies here for the same reason.
769
+ *
770
+ * ONE UNDECLARED EXTENSION IS KNOWN, MEASURED AND DELIBERATELY LEFT UNDECLARED.
771
+ * A tracker import carries raw ordered state-transition history for every issue
772
+ * (1,032 issues, 2,862 transitions in the measured corpus) under a namespaced
773
+ * key. It has no declared shape because nothing reads it: declaring a shape for
774
+ * records nobody queries is dead schema, and it would freeze one vendor's
775
+ * transition model into the format before a second source has been seen. The
776
+ * pull-forward condition is the first reader. Silence and a decision look
777
+ * identical six months later, so this is written down as a decision.
778
+ */
660
779
  properties?: Record<string, unknown>;
661
780
  }
662
781
  /**
@@ -5826,6 +5945,20 @@ declare const UPG_EDGE_CATALOG: {
5826
5945
  source_type: string;
5827
5946
  target_type: string;
5828
5947
  };
5948
+ person_member_of_team: {
5949
+ forward_verb: string;
5950
+ reverse_verb: string;
5951
+ classification: "semantic";
5952
+ source_type: string;
5953
+ target_type: string;
5954
+ };
5955
+ person_reports_to_person: {
5956
+ forward_verb: string;
5957
+ reverse_verb: string;
5958
+ classification: "semantic";
5959
+ source_type: string;
5960
+ target_type: string;
5961
+ };
5829
5962
  team_staffed_with_role: {
5830
5963
  forward_verb: string;
5831
5964
  reverse_verb: string;
@@ -6001,12 +6134,13 @@ declare const UPG_EDGE_CATALOG: {
6001
6134
  source_type: string;
6002
6135
  target_type: string;
6003
6136
  };
6004
- project_delivers_epic: {
6137
+ project_delivers_work_item: {
6005
6138
  forward_verb: string;
6006
6139
  reverse_verb: string;
6007
- classification: "cross-domain";
6140
+ classification: "semantic";
6008
6141
  source_type: string;
6009
6142
  target_type: string;
6143
+ deliberate_only: true;
6010
6144
  };
6011
6145
  milestone_gates_release: {
6012
6146
  forward_verb: string;
@@ -8648,7 +8782,7 @@ declare function isDeliberateOnlyEdge(type: string): boolean;
8648
8782
  /**
8649
8783
  * Canonical allow-list of edges that use the `'node'` wildcard endpoint.
8650
8784
  *
8651
- * Ten semantic families are sanctioned. The count and the partition are
8785
+ * Fourteen semantic families are sanctioned. The count and the partition are
8652
8786
  * asserted in `spec-integrity.test.ts`, so this list cannot silently fall out
8653
8787
  * of step with the array below the way it did between 0.28.0 and 0.31.0:
8654
8788
  *
@@ -8698,6 +8832,14 @@ declare function isDeliberateOnlyEdge(type: string): boolean;
8698
8832
  * and for the same reason. Widened from `planning_cycle_schedules_user_story`,
8699
8833
  * whose story-only endpoint could not hold the `task` a tracker import
8700
8834
  * actually produces; see `UPG_EDGE_MIGRATIONS` for the rename rule.
8835
+ * 14. **Project membership** (0.33.0): a project delivers work across the same
8836
+ * bounded {feature, epic, user_story, task, bug} family as families 7 and 13.
8837
+ * Widened from `project_delivers_epic`, whose epic-only endpoint left 651
8838
+ * measured project memberships stranded on a vendor property because the
8839
+ * type a tracker import actually produces is `task`. The verb stays
8840
+ * `delivers` and NOT `contains`, because a containment verb would oblige a
8841
+ * `UPG_VALID_CHILDREN` pair that a wildcard endpoint can never supply; the
8842
+ * parent axis is containment and the project axis is a reference.
8701
8843
  *
8702
8844
  * Adding a new polymorphic edge requires extending this array AND the
8703
8845
  * spec-integrity regression test, which forces a conscious decision and
@@ -11334,14 +11476,23 @@ interface ProductProperties {
11334
11476
  described_configuration?: string;
11335
11477
  /**
11336
11478
  * Prefix for keys minted onto this product's nodes (e.g. `"LTN"`, giving
11337
- * `LTN-1`, `LTN-2`, …). A product with no prefix mints no keys.
11479
+ * `LTN-1`, `LTN-2`, ...). Retained as the single-team unasked default.
11480
+ * @deprecated since 0.33.0, removeIn 1.0.0. Use `team.key_prefix`. This field's own summary called the prefix "the namespace a tracker calls a team", and a single string cannot express a product with two of them: a two-team product has never been expressible, which is a defect rather than an unused feature. Ignored whenever any team in the product declares a prefix. Deprecated rather than removed because removal would strand every graph that has a product prefix and no `team` nodes.
11338
11481
  *
11339
11482
  * @remarks
11340
- * Pairs with `UPGBaseNode.key`, which holds the minted value. The prefix sits
11341
- * on the product because the key's uniqueness scope is the product, across
11342
- * entity types; the namespace a tracker calls a "team". Only the prefix is
11343
- * serialised: the next number is `max(existing) + 1`, derived from the graph,
11344
- * because a counter is a fact about a store rather than about the product.
11483
+ * Pairs with `UPGBaseNode.key`, which holds the minted value and states the
11484
+ * resolution order normatively. Only the prefix is serialised: the next number
11485
+ * is `max(existing) + 1`, derived from the graph, because a counter is a fact
11486
+ * about a store rather than about the product.
11487
+ *
11488
+ * WHY THIS IS NOT A DEFAULT WITH `team.key_prefix` AS AN OVERRIDE. A default
11489
+ * and an override describe one fact at two scopes. These describe different
11490
+ * facts, and this one is correct only when the product has exactly one team,
11491
+ * which is an accident of arity rather than a scope. Keeping it live as a
11492
+ * fallback would also reintroduce the defect: a prefix that still resolves wins
11493
+ * on ladder order, so a legacy-prefixed product with two teams would offer no
11494
+ * choice at all and mint everything under the legacy prefix silently, with
11495
+ * migration order deciding the behaviour per graph.
11345
11496
  *
11346
11497
  * @example "LTN"
11347
11498
  */
@@ -11402,7 +11553,7 @@ interface StrategicThemeProperties {
11402
11553
  owner?: string;
11403
11554
  /**
11404
11555
  * Bounded period this theme is active (a theme is time-bound, within a pillar).
11405
- * @deprecated since 0.20.0. Promote the period to a `planning_cycle` node and link it with the `strategic_theme_scoped_to_planning_cycle` edge, which points at a shared, dated, nestable interval instead of a drifting per-theme string. Kept (not removed) for back-compat; removal is a later major. `strategic_pillar.time_horizon` stays as-is (a durable pillar horizon is genuinely open-ended, not a dated cycle).
11556
+ * @deprecated since 0.20.0, removeIn 1.0.0. Promote the period to a `planning_cycle` node and link it with the `strategic_theme_scoped_to_planning_cycle` edge, which points at a shared, dated, nestable interval instead of a drifting per-theme string. Kept (not removed) for back-compat. The removal version is stated at 0.33.0 because an undated deprecation is how this field survived twelve minors; the promotion is documented rather than automated and no `drop_props` migration ships. `strategic_pillar.time_horizon` stays as-is (a durable pillar horizon is genuinely open-ended, not a dated cycle).
11406
11557
  * @example "Q1 2026", "FY26"
11407
11558
  */
11408
11559
  time_horizon?: string;
@@ -14088,7 +14239,11 @@ interface OutcomeProperties {
14088
14239
  * }
14089
14240
  */
14090
14241
  interface ObjectiveProperties {
14091
- /** Planning timeframe (e.g. "Q1 2026", "H1 2026") */
14242
+ /**
14243
+ * Planning timeframe (e.g. "Q1 2026", "H1 2026").
14244
+ * @deprecated since 0.33.0, removeIn 1.0.0. Promote the period to a `planning_cycle` node and link it with the `objective_scoped_to_planning_cycle` edge, which has existed since 0.20.0 and points at a shared, dated, nestable interval instead of a drifting per-objective string. Until promoted, the value is a display label and nothing schedules on it. The promotion is documented rather than automated and no `drop_props` migration ships: which cycle a free-text string means, and whether one exists yet, is a judgement, and dropping the string before the cycle exists destroys the only record of the intent.
14245
+ * @example "Q1 2026", "H1 2026"
14246
+ */
14092
14247
  timeframe?: string;
14093
14248
  /** Overall progress (0–100) */
14094
14249
  progress?: number;
@@ -14583,6 +14738,30 @@ interface ChangelogProperties {
14583
14738
  * deferred alongside the same question for canvas keys rather than answered
14584
14739
  * twice in two places with two different answers.
14585
14740
  *
14741
+ * PLANNING ENTITIES RELATE TO TIME THROUGH AN EDGE, NOT A FREE-TEXT FIELD
14742
+ * (0.33.0, ruled). A free-text period on a planning entity is a display label
14743
+ * that nothing can schedule on, join across, or nest; the edge to a
14744
+ * `planning_cycle` is the queryable form and both edges the ruling needs already
14745
+ * exist (`objective_scoped_to_planning_cycle` and
14746
+ * `strategic_theme_scoped_to_planning_cycle`, both shipped 0.20.0). Accordingly
14747
+ * `objective.timeframe` and `strategic_theme.time_horizon` are `@deprecated` with
14748
+ * `removeIn` 1.0.0.
14749
+ *
14750
+ * THE CLASS HAS A BOUNDARY, AND IT IS A TEST RATHER THAN A SLOGAN. The class is
14751
+ * the entities that can be SCHEDULED IN a planning cycle: the ones that have, or
14752
+ * could have, a `*_scoped_to_planning_cycle` or `planning_cycle_schedules_*`
14753
+ * edge. That is `objective` and `strategic_theme`, and nothing else in the
14754
+ * census. NAMED EXEMPTIONS, because a broader reading would wrongly capture all
14755
+ * five: `strategic_pillar.time_horizon` (a durable pillar horizon is genuinely
14756
+ * open-ended, not a dated cycle, and its own JSDoc already says so),
14757
+ * `vision.timeframe` (a vision is not scheduled in a cycle),
14758
+ * `roadmap.timeframe` (a roadmap is a plan OF cycles, not a thing inside one),
14759
+ * `roadmap_item.quarter` (pairs with real `start_date` and `target_date`
14760
+ * ISODates), `journey_phase.timeframe` (not a planning entity at all), and
14761
+ * `market_trend.timeframe` (a forecast window for something the org does not
14762
+ * schedule, which is the clearest case of all: nothing can be scoped to a cycle
14763
+ * that the org does not control).
14764
+ *
14586
14765
  * @example
14587
14766
  * const properties: PlanningCycleProperties = {
14588
14767
  * cadence_kind: 'iteration',
@@ -17457,6 +17636,59 @@ interface TeamProperties {
17457
17636
  size?: number;
17458
17637
  /** Team's mission statement */
17459
17638
  mission?: string;
17639
+ /**
17640
+ * Prefix this team mints node keys with (e.g. `"ENTP"`, giving `ENTP-1`,
17641
+ * `ENTP-2`, ...).
17642
+ *
17643
+ * @remarks
17644
+ * SUPERSEDES `product.key_prefix` FOR THIS PRODUCT. The moment any team
17645
+ * declares a prefix, the product-level prefix stops being consulted and the
17646
+ * declared team prefixes become the candidate set a create surface offers. A
17647
+ * product-level prefix that still resolved would win on order alone, and a
17648
+ * multi-team product would then silently mint everything under it, which is the
17649
+ * defect this field exists to end.
17650
+ *
17651
+ * A DECLARED PREFIX IS A CANDIDATE BEFORE IT IS OBSERVED. Candidates derived
17652
+ * only from keys that already exist cannot see a team's first create, which is
17653
+ * the one that most needs asking about.
17654
+ *
17655
+ * UNIQUENESS IS PRODUCT-SCOPED, AND A TEAM PREFIX DOES NOT WIDEN IT. The key
17656
+ * sequence runs per product across entity types, so two teams in one product
17657
+ * share one number line and never collide with each other. A team prefix names
17658
+ * a team WITHIN that scope; it does not create a sequence that spans products.
17659
+ *
17660
+ * MINTING IS PRODUCT-SCOPED (normative, 0.33.0). `team` is `portfolio_shared`,
17661
+ * so one team node can be referenced from two products. Minting is not
17662
+ * portfolio-scoped with it. The rule, and it is a requirement rather than a
17663
+ * recommendation:
17664
+ *
17665
+ * 1. A portfolio-shared team's prefix is NOT a minting candidate in a second
17666
+ * product. The first product a team mints under is the only product that
17667
+ * prefix mints in.
17668
+ * 2. Refusal is NO-KEY. The node is created without a key. Refusal MUST NOT be
17669
+ * an exception: a keyless create is a legal outcome everywhere else in the
17670
+ * ladder, and throwing here would break creates that succeed today on every
17671
+ * surface. Throwing stays reserved for a broken invariant, not for policy.
17672
+ * 3. The rule applies on the MINT path, not the picker path, and it covers the
17673
+ * INFERRED case. A prefix that was never requested by anyone, and was
17674
+ * derived from keys that already exist in the second product, is refused on
17675
+ * the same terms as one a caller named. A guard that only inspects an
17676
+ * explicitly requested prefix misses the quiet path, and the quiet path is
17677
+ * the one a fixture reproduces.
17678
+ *
17679
+ * WHY THE SCOPE STOPS AT THE PRODUCT. Key uniqueness is enforced by a
17680
+ * `(product_id, key)` index, which permits the same key under two product ids
17681
+ * by construction. A prefix that minted in two products would therefore run two
17682
+ * independent sequences under one name and hand two different nodes the same
17683
+ * citation, with nothing objecting. Portfolio-shared team minting is DEFERRED
17684
+ * until a supra-product uniqueness design exists, rather than approximated.
17685
+ *
17686
+ * This rule states the CONTRACT. The behaviour belongs to whatever mints keys,
17687
+ * which is not this package: see `UPGBaseNode.key`.
17688
+ *
17689
+ * @example "ENTP"
17690
+ */
17691
+ key_prefix?: string;
17460
17692
  }
17461
17693
  /** Role entity.
17462
17694
  *
@@ -17582,7 +17814,38 @@ interface DependencyProperties {
17582
17814
  /** Whether a workaround exists if the dependency is not resolved in time */
17583
17815
  workaround_available?: boolean;
17584
17816
  }
17585
- /** Department entity.
17817
+ /** Department entity. A department is the single org tier above a team.
17818
+ * Division, org unit and business unit are alternative LABELS for this type, not
17819
+ * separate types.
17820
+ *
17821
+ * @remarks
17822
+ * THE LABEL RULING, STATED HERE BECAUSE ONE LINE IN A LABEL ARRAY WAS TOO QUIET.
17823
+ * `division`, `org unit` and `business unit` have been `alt_labels` on this type
17824
+ * since 0.1.0 and the ruling is right: a synonym is not a tier. It was also
17825
+ * findable only from the labels file, and a pre-scan for org modelling duly
17826
+ * reported `division` and `org_unit` as entity types. Two phantom types reached a
17827
+ * commissioning brief before a census caught them.
17828
+ *
17829
+ * THE BOUNDARY AGAINST `organization`, because one phrase reaching two types is
17830
+ * the confusion this ruling exists to end. "Business unit" names a structural
17831
+ * tier INSIDE a company and belongs here. Its alt_labels on `organization` are
17832
+ * org, company, enterprise and organisation, deliberately not this one.
17833
+ *
17834
+ * THE TEST IS INCORPORATION, AND THE NODE IS THE OPERATING COMPANY. A separately
17835
+ * incorporated operating company is an `organization`; a division inside one
17836
+ * company is a `department`. Do not read the incorporation test as "one node per
17837
+ * legal entity", which is a different and wrong rule: an `organization` is the
17838
+ * operating company as people experience it, and one organisation can span
17839
+ * several legal entities wherever structure follows tax or jurisdiction rather
17840
+ * than how the work is run. `legal_entity` is `organization`'s own declared
17841
+ * neighbour for exactly that reason. The test picks the boundary; it does not
17842
+ * pick the noun.
17843
+ *
17844
+ * DEPARTMENTS ARE FLAT, AND THAT IS THE CONSTRAINT THE RULING RAISES.
17845
+ * `team_contains_team` exists and `department_contains_department` does not, so a
17846
+ * three-level org chart is expressed as nested TEAMS under one department. That
17847
+ * is a deliberate constraint rather than a gap, and it is what makes a separate
17848
+ * division tier unnecessary rather than merely undesirable.
17586
17849
  *
17587
17850
  * @example
17588
17851
  * const properties: DepartmentProperties = {
@@ -18409,7 +18672,6 @@ interface ApprovalRecordProperties {
18409
18672
  * }
18410
18673
  */
18411
18674
  interface AgentSkillProperties {
18412
- /** Display name of the skill */
18413
18675
  /** Event or command that activates this skill */
18414
18676
  skill_trigger?: string;
18415
18677
  /** Human-readable description of what the skill does */
@@ -18431,7 +18693,10 @@ interface AgentHookProperties {
18431
18693
  hook_event?: string;
18432
18694
  /** Action performed when the hook fires */
18433
18695
  hook_action?: string;
18434
- /** Operational status of the hook */
18696
+ /**
18697
+ * Operational status of the hook.
18698
+ * @deprecated since 0.33.0, removeIn 1.0.0. Use the base `status` field. `agent_hook` moved from the WORK_ITEM lifecycle to OPERATIONAL at 0.33.0, whose phases carry this axis directly: `active` maps to `active` and `disabled` maps to `paused`. A `*_status` property beside the base `status` is the shadow that Pattern D collapsed fourteen times at 0.15.0, and a type that models its own status in a property is a type whose lifecycle did not fit. `error` maps to `paused`: OPERATIONAL has no failure phase, and runtime health is store or telemetry state rather than a fact about the thing, which is the same cut that keeps `composition.rev` and excludes a concurrency token. Put the failure detail in `description` or a diagnostic property.
18699
+ */
18435
18700
  hook_status?: 'active' | 'disabled' | 'error';
18436
18701
  /** Number of times this hook has fired */
18437
18702
  execution_count?: number;
@@ -20418,7 +20683,7 @@ interface PartnerRevenueShareProperties {
20418
20683
  * icon: 'compass',
20419
20684
  * }
20420
20685
  */
20421
- interface WorkspaceProperties {
20686
+ interface WorkspaceProperties extends UPGQueryDrivenLayer {
20422
20687
  /** Who can see this workspace */
20423
20688
  visibility?: 'private' | 'shared' | 'public';
20424
20689
  /** Free-text description. Pairs with the closed-enum `workspace_purpose`. */
@@ -20684,6 +20949,136 @@ interface UPGViewPredicate {
20684
20949
  * property at all; `false` admits those that do not. */
20685
20950
  present?: boolean;
20686
20951
  }
20952
+ /** The axis a clause selects on. */
20953
+ type UPGViewDimension = 'type' | 'status' | 'status_category' | 'tag' | 'classification' | 'property' | 'date' | 'edge';
20954
+ /** A relative or absolute time window, DECLARED rather than resolved.
20955
+ *
20956
+ * @remarks
20957
+ * A window is evaluated at READ time in the reader's session, never frozen at
20958
+ * save. A saved view that says "this quarter" must mean this quarter to whoever
20959
+ * opens it, which an absolute range captured at save cannot do.
20960
+ *
20961
+ * THE CALENDAR AND THE CADENCE ARE NAMED SEPARATELY AND DELIBERATELY. `calendar`
20962
+ * is the wall clock. A team's own cadence is NOT a window at all: it resolves
20963
+ * through the ACTIVE-CYCLE DESIGNATION, which is an edge clause with
20964
+ * `target_status: ['active']`, not a date bracket. Field data settles why: of 19
20965
+ * cycles in a real tracker every one is dateless and exactly one carries status
20966
+ * `active`, so a date-bracketed reading of "current cycle" resolves to nothing on
20967
+ * the only graph that has real cycle data. Conflating them makes the filter lie.
20968
+ *
20969
+ * @example
20970
+ * const w: UPGTimeWindow = { kind: 'calendar', anchor: 'current', unit: 'quarter' }
20971
+ */
20972
+ type UPGTimeWindow = {
20973
+ kind: 'calendar';
20974
+ anchor: 'current' | 'previous' | 'next';
20975
+ unit: 'week' | 'month' | 'quarter' | 'year';
20976
+ } | {
20977
+ kind: 'rolling';
20978
+ anchor: 'last_n' | 'next_n';
20979
+ unit: 'day' | 'week' | 'month' | 'quarter';
20980
+ count: number;
20981
+ } | {
20982
+ kind: 'absolute';
20983
+ from?: ISODate;
20984
+ to?: ISODate;
20985
+ };
20986
+ /** A condition on a node's edges: the gap 0.32.0 opened by shipping assignment
20987
+ * and cadence AS EDGES alongside a query that could not mention one.
20988
+ *
20989
+ * @remarks
20990
+ * `UPGViewQuery.from_focus` does not cover this. It walks from the composition's
20991
+ * focused set, so it can say "everything under this epic" and cannot say
20992
+ * "assigned to anyone" or "in the active cycle".
20993
+ *
20994
+ * TWO AXES NAME A MOVING TARGET WITHOUT HOLDING AN ID, and they are deliberately
20995
+ * parallel. On the CADENCE axis it is `target_status`: the active cycle is the
20996
+ * one whose status is `active` (the invariant stated on
20997
+ * `PlanningCycleProperties`), so an edge clause over
20998
+ * `planning_cycle_schedules_work_item` with `target_status: ['active']` selects
20999
+ * the current cycle portably. On the PERSON axis it is `target_designation`:
21000
+ * `'viewer'` selects whoever is reading, resolved in the reader's session.
21001
+ *
21002
+ * `target_ids` is the exception and is admitted knowingly, on the same terms as
21003
+ * `UPGViewQuery.classified_as`.
21004
+ *
21005
+ * @example
21006
+ * const cycle: UPGViewEdgeClause = {
21007
+ * edge_type: 'planning_cycle_schedules_work_item',
21008
+ * direction: 'in',
21009
+ * target_status: ['active'],
21010
+ * }
21011
+ *
21012
+ * @example
21013
+ * const mine: UPGViewEdgeClause = {
21014
+ * edge_type: 'node_assigned_to_person',
21015
+ * direction: 'out',
21016
+ * target_designation: 'viewer',
21017
+ * }
21018
+ */
21019
+ interface UPGViewEdgeClause {
21020
+ /** Canonical edge type. */
21021
+ edge_type: string;
21022
+ /** Which way to walk it from the candidate node. */
21023
+ direction: 'out' | 'in' | 'both';
21024
+ /** Admitted endpoint ids. Omitted means any edge of this type satisfies it. */
21025
+ target_ids?: string[];
21026
+ /** Admitted endpoint phase ids. The designation form on the cadence axis. */
21027
+ target_status?: string[];
21028
+ /**
21029
+ * Selects the endpoint by ROLE rather than by identity. `'viewer'` is whoever
21030
+ * is reading the view, resolved in the reader's session at READ time.
21031
+ *
21032
+ * @remarks
21033
+ * WHY THIS IS NOT AN ID, and it is the whole point of the field. A saved view
21034
+ * that means "assigned to me" cannot store an id, because the id it stores is
21035
+ * one particular person and the view is then permanently about a colleague. A
21036
+ * shipped surface reached for the sentinel `'@me'` inside `target_ids`, which
21037
+ * round-trips and whose MEANING does not travel: a consumer that has not
21038
+ * agreed to that sentinel reads it as a node id and resolves nothing. A
21039
+ * sentinel in an id field is a private protocol wearing a public shape.
21040
+ *
21041
+ * THE PARALLEL IS DELIBERATE. This is the person axis' answer to the same
21042
+ * question `target_status: ['active']` answers on the cadence axis: name the
21043
+ * moving target by what it IS to the reader, not by which row it happens to be
21044
+ * today. Both resolve at read time, both are portable, and neither holds a
21045
+ * foreign key in a scalar.
21046
+ *
21047
+ * DESIGNATION, NOT SERIALISATION. A tool may serialise this however it likes
21048
+ * at its own boundary, `'@me'` included; the spec stores the designation. A
21049
+ * closed union rather than a free string, because an open one is how the
21050
+ * sentinel arose in the first place.
21051
+ */
21052
+ target_designation?: 'viewer';
21053
+ }
21054
+ /** One clause of a selection: the faithful form.
21055
+ *
21056
+ * It can express negation, declared time windows and edge conditions, none of
21057
+ * which the named fields on {@link UPGViewQuery} can hold.
21058
+ *
21059
+ * @remarks
21060
+ * A named-field shape cannot carry per-clause negation without a `not_*` twin
21061
+ * for every field, which is combinatorial and grows with every dimension added,
21062
+ * and which still could not express "not (A and B)" as distinct from "(not A)
21063
+ * and (not B)". A uniform clause list carries it with one flag.
21064
+ *
21065
+ * @example
21066
+ * const c: UPGViewClause = { dimension: 'tag', values: ['spike'], negate: true }
21067
+ */
21068
+ interface UPGViewClause {
21069
+ /** The axis this clause selects on. */
21070
+ dimension: UPGViewDimension;
21071
+ /** Property name when `dimension` is `property`; the date field when `date`. */
21072
+ field?: string;
21073
+ /** Admitted values. */
21074
+ values?: string[];
21075
+ /** Present exactly when `dimension` is `date`. */
21076
+ window?: UPGTimeWindow;
21077
+ /** Present exactly when `dimension` is `edge`. */
21078
+ edge?: UPGViewEdgeClause;
21079
+ /** Negates this clause and only this clause. */
21080
+ negate?: boolean;
21081
+ }
20687
21082
  /** A declarative, portable selection over the graph.
20688
21083
  *
20689
21084
  * Selection ONLY. What a surface should look like once the nodes are chosen is
@@ -20744,9 +21139,54 @@ interface UPGViewQuery {
20744
21139
  edge_types: string[];
20745
21140
  /** Which way to walk them. */
20746
21141
  direction: 'out' | 'in' | 'both';
20747
- /** Hops. Absent means 1. */
20748
- depth?: number;
20749
- };
21142
+ /**
21143
+ * Hops. Absent means 1. `'unbounded'` walks the relation transitively until
21144
+ * it stops producing new nodes.
21145
+ *
21146
+ * @remarks
21147
+ * WHY A NAMED ARM RATHER THAN A LARGE NUMBER. A relative selection over a
21148
+ * tree ("everything under this epic") is transitive by nature and has no
21149
+ * correct finite depth: the right answer is a property of the data, not of
21150
+ * the query. A surface that wants transitivity and has only a number picks a
21151
+ * big one, and a shipped one picked 64. That is a sentinel, it is
21152
+ * indistinguishable from a caller who genuinely meant 64, and it silently
21153
+ * truncates the first graph deeper than the guess.
21154
+ *
21155
+ * A consumer that cannot walk transitively should refuse the clause rather
21156
+ * than substitute a depth of its own choosing, which would quietly return a
21157
+ * different answer to the question asked.
21158
+ */
21159
+ depth?: number | 'unbounded';
21160
+ };
21161
+ /**
21162
+ * The faithful representation of the selection: every clause, including the
21163
+ * negations, declared windows and edge conditions the named fields above
21164
+ * cannot hold.
21165
+ *
21166
+ * @remarks
21167
+ * PRECEDENCE. A reader that finds `clauses` uses it and IGNORES the named
21168
+ * fields. A reader that finds only named fields lifts them into clauses. A
21169
+ * writer emitting both keeps the named fields positive-only, because they have
21170
+ * nowhere to put a negation.
21171
+ *
21172
+ * THE NAMED FIELDS ARE NOT DEPRECATED. They are the readable form of the common
21173
+ * case and most selections never need a clause. This is one canonical form plus
21174
+ * a positive-only shorthand with a stated precedence rule, which is the shape a
21175
+ * field application arrived at independently for the same reason.
21176
+ *
21177
+ * A `date` clause over `created_at` or `updated_at` reads store metadata, which
21178
+ * is declared on `UPGBaseNode` and tagged `@volatile`. Such a window is
21179
+ * portable but the values it reads are maintained by the store rather than
21180
+ * authored.
21181
+ *
21182
+ * @example
21183
+ * [
21184
+ * { dimension: 'type', values: ['task', 'bug'] },
21185
+ * { dimension: 'tag', values: ['spike'], negate: true },
21186
+ * { dimension: 'edge', edge: { edge_type: 'node_assigned_to_person', direction: 'out' } },
21187
+ * ]
21188
+ */
21189
+ clauses?: UPGViewClause[];
20750
21190
  }
20751
21191
  /** Advisory rendering intent. A consumer MAY ignore every field here.
20752
21192
  *
@@ -20769,7 +21209,65 @@ interface UPGViewPresentation {
20769
21209
  direction: 'asc' | 'desc';
20770
21210
  }>;
20771
21211
  /** Requested layout family. Advisory. */
20772
- layout?: 'board' | 'table' | 'list' | 'cards' | 'timeline' | 'gallery';
21212
+ layout?: 'board' | 'table' | 'list' | 'cards' | 'timeline' | 'gallery' | 'tree';
21213
+ /**
21214
+ * Edge types to nest by, outermost first, when `layout` is `'tree'`. Advisory,
21215
+ * like everything else here.
21216
+ *
21217
+ * @remarks
21218
+ * `group_by` partitions a flat set on a value and cannot express nesting,
21219
+ * because a tree's levels are EDGES rather than property values. Naming the
21220
+ * edge types keeps the nesting portable: a consumer that does not know a
21221
+ * layout family can still read which relation the author meant to nest on.
21222
+ *
21223
+ * A consumer may ignore this entirely, render flat, and remain conformant.
21224
+ */
21225
+ nest_by?: string[];
21226
+ }
21227
+ /** A layer whose membership is produced by a query rather than by placement.
21228
+ *
21229
+ * Extended by both `CompositionProperties` and `WorkspaceProperties` (0.33.0).
21230
+ *
21231
+ * @remarks
21232
+ * WHY BOTH HALVES CARRY IT. `composition` is the durable published print and
21233
+ * `workspace` is the transient canvas it is published from. A layer is
21234
+ * query-driven while it is being worked on, not only after it is published, so
21235
+ * declaring the query only on the published half makes the fact something
21236
+ * invented at publish time rather than something recorded.
21237
+ *
21238
+ * WHY ONE INTERFACE RATHER THAN TWO DECLARATIONS. The alternative is two copies
21239
+ * of the same JSDoc that must stay identical, which is how a shipped type summary
21240
+ * came to cite an edge that does not exist. Note that the lift is not free at the
21241
+ * runtime layer: `UPG_PROPERTY_SCHEMA` is a flat per-type map, so `workspace`
21242
+ * gets its own entries there regardless. What is shared is the definition.
21243
+ */
21244
+ interface UPGQueryDrivenLayer {
21245
+ /**
21246
+ * When present, membership is DERIVED: members are produced by running this
21247
+ * query rather than authored by placement.
21248
+ *
21249
+ * @remarks
21250
+ * This is the portable statement of what the layer shows. On a composition,
21251
+ * `CompositionMember.href` remains the publishing tool's own resolved route
21252
+ * and stays opaque to everyone else; a member may carry both, and then the
21253
+ * href is a fast path while the query is the meaning. A consumer that cannot
21254
+ * parse the href can still render the layer, which is the whole reason the
21255
+ * declaration is here rather than in a tool-namespaced bag key.
21256
+ *
21257
+ * A layer with no `member_query` is authored, which is what every composition
21258
+ * written before 0.32.0 is.
21259
+ *
21260
+ * DECLARED ON BOTH HALVES OF THE PAIR since 0.33.0. A layer is query-driven
21261
+ * while it is being worked on, not only once it is published, so declaring the
21262
+ * query only on the durable composition would make it a fact invented at
21263
+ * publish time rather than one recorded.
21264
+ */
21265
+ member_query?: UPGViewQuery;
21266
+ /**
21267
+ * Advisory rendering intent for the layer as a whole. A consumer may ignore it
21268
+ * entirely and still be conformant.
21269
+ */
21270
+ presentation?: UPGViewPresentation;
20773
21271
  }
20774
21272
  interface CompositionMember {
20775
21273
  /** Stable id of the block within this composition. */
@@ -20805,7 +21303,7 @@ interface CompositionMember {
20805
21303
  */
20806
21304
  derived?: boolean;
20807
21305
  }
20808
- interface CompositionProperties {
21306
+ interface CompositionProperties extends UPGQueryDrivenLayer {
20809
21307
  /**
20810
21308
  * The frozen member arrangement, captured at publish. Layout and pointers
20811
21309
  * only, never resolved content.
@@ -20825,27 +21323,6 @@ interface CompositionProperties {
20825
21323
  published_at: ISODateTime;
20826
21324
  /** Publisher handle or email. Display scalar, same posture as `WorkspaceProperties.owner`. */
20827
21325
  published_by?: string;
20828
- /**
20829
- * When present, membership is DERIVED: members are produced by running this
20830
- * query rather than authored by placement.
20831
- *
20832
- * @remarks
20833
- * This is the portable statement of what the composition shows.
20834
- * `CompositionMember.href` remains the publishing tool's own resolved route
20835
- * and stays opaque to everyone else; a member may carry both, and then the
20836
- * href is a fast path while the query is the meaning. A consumer that cannot
20837
- * parse the href can still render the layer, which is the whole reason the
20838
- * declaration is here rather than in a tool-namespaced bag key.
20839
- *
20840
- * A composition with no `member_query` is authored, which is what every
20841
- * composition written before 0.32.0 is.
20842
- */
20843
- member_query?: UPGViewQuery;
20844
- /**
20845
- * Advisory rendering intent for the composition as a whole. A consumer may
20846
- * ignore it entirely and still be conformant.
20847
- */
20848
- presentation?: UPGViewPresentation;
20849
21326
  }
20850
21327
  /** Capture: a dated, hashed rendition of something already in the graph.
20851
21328
  *
@@ -20988,27 +21465,29 @@ interface FrameworkExerciseProperties {
20988
21465
  * `governance`, not the type.
20989
21466
  *
20990
21467
  * @remarks
20991
- * CONFORMANCE HAS NO TYPED EDGE TODAY, and this paragraph exists because the
20992
- * sentence above reads as though it does. "Products implement, expose, or
20993
- * conform to" names three relationships, and the catalog carries none of them:
20994
- * everything pointing at `specification` comes from `primitive`,
20995
- * `operating_lifecycle`, another `specification`, or `organization`. Nothing
20996
- * comes from `product` or `feature`.
20997
- *
20998
- * The cost was measured rather than predicted. A published entity doc, written
20999
- * by someone reading this very summary, cited
21000
- * `product_implements_specification`, `product_exposes_specification` and
21001
- * `feature_conforms_to_specification`. All three are plausible, all three follow
21002
- * this sentence's own verbs, and none of them has ever existed. The reader did
21003
- * nothing wrong; the type promised a relationship and the catalog did not
21004
- * deliver one.
21005
- *
21006
- * So, stated plainly until the gap is closed: the central question this type
21007
- * invites, WHICH PRODUCTS CONFORM TO THIS SPECIFICATION, is not expressible in
21008
- * typed form. A claim can ride the universal `node_constrains_node`, which is
21009
- * honest but unqueryable as conformance. Minting a real edge is a MINOR, filed
21010
- * for 0.33.0 rather than smuggled into a patch, and when it lands this remark
21011
- * comes out.
21468
+ * THE THREE RELATIONSHIPS ARE REAL, AND THEY ARE PORTFOLIO CROSS-EDGES RATHER
21469
+ * THAN CATALOG EDGES. This paragraph replaces one that said the opposite. The
21470
+ * verbs in the summary above resolve to `product_implements_specification`,
21471
+ * `product_exposes_specification` and `feature_conforms_to_specification`, all
21472
+ * three of which have existed since 0.9.12 in `UPG_CROSS_ONLY_EDGE_TYPES`. They
21473
+ * are portfolio-native by design: a governed specification is a registry
21474
+ * canonical, so a product links to it at `registry/{node_id}`, the same shape as
21475
+ * `instance_of`. Nothing in the within-graph edge catalog points from `product`
21476
+ * or `feature` at `specification`, and that is deliberate rather than missing.
21477
+ *
21478
+ * WHY THIS CORRECTION MATTERS TO ANYONE READING A DOC THAT CITES THEM. An
21479
+ * editorial sweep flagged those three names in a published entity doc as
21480
+ * fabricated, on the strength of a catalog-only search. They are not fabricated.
21481
+ * A citation check that reads only the edge catalog will report every legitimate
21482
+ * cross-only edge as a phantom, which is a false positive with the same shape as
21483
+ * a real one. Check both registries before calling a name invented.
21484
+ *
21485
+ * THE GAP THAT DOES REMAIN, stated rather than closed. A `specification` node
21486
+ * held inside a SINGLE product graph, with no portfolio around it, has no
21487
+ * conformance edge available, because the cross-only tier needs a registry
21488
+ * target. A claim can ride the universal `node_constrains_node`, which is honest
21489
+ * and unqueryable as conformance. Closing that case is banked, with its condition
21490
+ * the first single-product graph that models a specification it conforms to.
21012
21491
  *
21013
21492
  * @example
21014
21493
  * const properties: SpecificationProperties = {
@@ -25429,6 +25908,21 @@ interface UPGHeader {
25429
25908
  /** Tamper-evidence over the canonical body */
25430
25909
  integrity: UPGHeaderIntegrity;
25431
25910
  }
25911
+ /**
25912
+ * Canonical serialisation order for a node's top-level keys.
25913
+ *
25914
+ * Deliberately a SUPERSET of `UPG_BASE_NODE_FIELDS`: it also orders tolerated
25915
+ * non-base keys (`lifecycle_status`, `sort_order`) so that a graph carrying one
25916
+ * still serialises deterministically. `base-node-fields.test.ts` asserts the
25917
+ * subset relation in the other direction, which is the one that can regress: a
25918
+ * base field declared and never added here would silently drop out of canonical
25919
+ * ordering. Never assert equality, which would fail on the two tolerated keys
25920
+ * and push the next author to delete them.
25921
+ *
25922
+ * Exported at 0.33.0 so that assertion can be written; consumers that need to
25923
+ * classify base fields use `UPG_BASE_NODE_FIELDS`, not this.
25924
+ */
25925
+ declare const NODE_KEY_ORDER: string[];
25432
25926
  /** Element counts for a single-product document, as stamped into `$upg.counts`. */
25433
25927
  declare function deriveSingleCounts(doc: UPGDocument): Record<string, number>;
25434
25928
  /**
@@ -25569,7 +26063,7 @@ declare function checkHeaderSealText(text: string): UPGHeaderSealReport;
25569
26063
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
25570
26064
  * The `check:version-lockstep` gate enforces this at release time.
25571
26065
  */
25572
- declare const UPG_VERSION: "0.32.2";
26066
+ declare const UPG_VERSION: "0.33.1";
25573
26067
  /**
25574
26068
  * The `.upg` JSON document format version. Written to the `upg_version` field.
25575
26069
  * Evolves independently from `UPG_VERSION` (the catalogue version).
@@ -25694,4 +26188,4 @@ declare const UPG_EDGE_COUNT: number;
25694
26188
  */
25695
26189
  declare const UPG_META_COUNT: number;
25696
26190
 
25697
- export { type A11yAnnotationProperties, type A11yAuditProperties, type A11yGuidelineProperties, type A11yIssueProperties, type A11yStandardProperties, ACTIVE_WHEN_PROPERTY, ANALYTICS_DATA_PLAYBOOK, type AcceptanceCriterionProperties, type AccessPolicyProperties, type AccountProperties, type AcquisitionChannelProperties, type AdCreativeProperties, type AffinityClusterProperties, type AgentDefinitionProperties, type AgentHookProperties, type AgentSessionProperties, type AgentSkillProperties, type AgentTaskProperties, type AggregateProperties, type AiCostTrackerProperties, type AiDatasetProperties, type AiExperimentProperties, type AiGuardrailProperties, type AiModelProperties, type AiTraceProperties, type AlertRuleProperties, type AnnotationProperties, type AntiPatternInputs, type AntiPatternViolation, type AnyUPGEntityType, type ApiContractProperties, type ApiEcosystemProperties, type ApiEndpointProperties, type ApproachBinding, type ApproachFilter, type ApproachRun, type ApproachRuntime, type ApprovalRecordProperties, type AssumptionProperties, type AttributionModelProperties, type AuditLogPolicyProperties, BUSINESS_GROWTH_METRIC_DRIVEN_PLAYBOOK, BUSINESS_GTM_GROWTH_PLAYBOOK, BUSINESS_MARKETING_AUDIENCE_FIRST_PLAYBOOK, type BehavioralSegmentProperties, type BenchmarkCheck, type BetaProgramProperties, type BoundedContextProperties, type BrandAssetProperties, type BrandColourProperties, type BrandIdentityProperties, type BrandImageryProperties, type BrandLogoProperties, type BrandTypographyProperties, type BrandVoiceProperties, type BugProperties, type BuildArtifactProperties, type BusinessModelProperties, CLASSIFICATION_EDGE_PROPERTY_SCHEMA, CONFIGURATION_QUALIFIER_EDGE_PROPERTY_SCHEMA, CONFIGURATION_VARIANCE_EDGE_PROPERTY_SCHEMA, CONTENT_DEPTH_WARNING_RULES, COVERAGE_ANTI_PATTERNS, type Cadence, type CapabilityProperties, type CapacityPlanProperties, type CaptureProperties, type CauseConfidence, type CeremonyProperties, type CertificationProperties, type ChangeRequestProperties, type ChangelogProperties, type ChurnReasonProperties, type CiPipelineProperties, type ClassificationAxisProperties, type ClassificationCapability, type ClassificationCapabilitySurface, type ClassificationCommitment, type ClassificationValueProperties, type CodeRepositoryProperties, type CohortProperties, type ComfortLevel, type CommandProperties, type CommunityInitiativeProperties, type CompetitiveAnalysisProperties, type CompetitiveBattleCardProperties, type CompetitorFeatureProperties, type CompetitorProperties, type CompetitorSignalProperties, type ComplianceFrameworkProperties, type ComplianceRequirementProperties, type CompositionMember, type CompositionProperties, type Confidence, type Configuration, type ConfigurationAxisKind, type ConfigurationAxisProperties, type ConfigurationDriftFinding, type ConfigurationDriftKind, type ConformanceLevel, type ConstraintKind, type ConstraintOrigin, type ConstraintProperties, type ConstraintStatus, type ContactProperties, type ContentCalendarProperties, type ContentPieceProperties, type ContentStrategyProperties, type ContentThemeProperties, type ContractClauseProperties, type ContractProperties, type CostStructureProperties, type CountBenchmark, type Cron, type CrossProductEligibleEdgeType, type CrossProductScope, type CulturalAdaptationProperties, type CustomerFeedbackProperties, type CustomerHealthScoreProperties, type CustomerJourneyStageProperties, type CustomerRelationshipProperties, DEFAULT_ENTITY_EMOJI, DEFERRED_PROPOSED_BY_CONTRACT, DEFER_EDGE_PROPERTY_SCHEMA, DISCOVERY_RESEARCH_VALIDATION_PLAYBOOK, type DashboardProperties, type DataClassificationProperties, type DataContractProperties, type DataDomainProperties, type DataFlowProperties, type DataLineageProperties, type DataModelProperties, type DataPipelineProperties, type DataProductProperties, type DataQualityRuleProperties, type DataSensitivity, type DataSourceProperties, type DatabaseSchemaProperties, type DealProperties, type DecisionProperties, type DeliberateOnlyEdgeType, type DeliverableProperties, type DemandGenProgramProperties, type DepartmentProperties, type DependencyProperties, type DeploymentProperties, type DeprecatedUPGEntityType, type DesignComponentProperties, type DesignConceptProperties, type DesignGuidelineProperties, type DesignPatternProperties, type DesignQuestionProperties, type DesignSprintProperties, type DesignSystemProperties, type DesignTokenProperties, type DesiredOutcomeProperties, type DeveloperPortalProperties, type DifficultyLevel, type DiscountStrategyProperties, type DistributionChannelProperties, type DocumentProperties, type DocumentationTemplateProperties, type DomainActivation, type DomainCountCheck, type DomainEntityProperties, type DomainEventProperties, type DomainGuideStep, type DomainPopulationCheck, type Duration, ENGINEERING_PLATFORM_PLAYBOOK, ENTITY_EMOJI, EXPERIENCE_DESIGN_BRAND_PLAYBOOK, type EdgeCountVsPropertyCheck, type EducationProgramProperties, type EmailSequenceProperties, type EmptyCell, type EmptyCellRationaleKind, type EntityCheck, type EntitySequenceStep, type EntityTypeMeta, type EntityTypeResolution, type EntryMode, type EpicProperties, type ErrorBudgetProperties, type EvalBenchmarkProperties, type EvalRunProperties, type EvaluateAntiPatternsOptions, type EventProperties, type EventSchemaProperties, type EvidenceDirection, type EvidenceProperties, type ExperimentPlanProperties, type ExperimentProperties, type ExperimentRunProperties, type ExternalApiProperties, FOUNDATIONS_PLAYBOOK, type FeasibilityStudyProperties, type FeatureAreaProperties, type FeatureFlagProperties, type FeatureProperties, type FeatureRequestProperties, type FeedbackProgramProperties, type FeedbackThemeProperties, type FeedbackVoteProperties, type FixProperties, type ForecastProperties, type FrameworkCategory, type FrameworkComputedProperty, type FrameworkConstant, type FrameworkDataSpec, type FrameworkEducation, type FrameworkEntityTypeSpec, type FrameworkExerciseProperties, type FrameworkInvocationStep, type FrameworkLayout, type FrameworkLevel, type FrameworkOrigin, type FrameworkPresentationSpec, type FrameworkPropertyRequirement, type FrameworkScoringMethod, type FrameworkSlot, type FrameworkSlotPredicate, type FrameworkSlotPredicateAtom, type FrameworkStep, type FrameworkStructureSpec, type FrameworkValidationResult, type FrequencyRating, type FunnelProperties, type FunnelStage, type FunnelStepProperties, type GlossaryTermProperties, type GrowthCampaignProperties, type GrowthLoopProperties, type GtmStrategyProperties, type GuardrailStatus, type HallucinationReportProperties, type HealthStatus, type HelpVideoProperties, type HypothesisEvidenceProperties, type HypothesisProperties, type ISO4217, type ISODate, type ISODateTime, type IdealCustomerProfileProperties, type IncidentProperties, type IncidentSeverity, type InfrastructureComponentProperties, type InitiativeProperties, type InsightProperties, type IntegrationPartnerProperties, type IntegrationPatternProperties, type IntelligenceCondition, type InteractionSpecProperties, type InternalDocProperties, type InterviewGuideProperties, type InvestigationProperties, type InvoiceProperties, type IpAssetProperties, type JobProperties, type JobStepProperties, type JourneyActionProperties, type JourneyPhaseProperties, type JourneyStepProperties, type JourneyType, type KeyActivityProperties, type KeyResourceProperties, type KeyResultProperties, type KnowledgeBaseArticleProperties, LEGACY_PRODUCT_STAGES, type LaunchProperties, type LeadProperties, type LearningPathProperties, type LearningProperties, type LegalEntityProperties, type LibraryDependencyProperties, type LifecyclePhase, type LifecycleRenderShape, type LifecycleRenderState, type LifecycleRenderTransition, type LifecycleState, type LocaleConfigProperties, type LocaleProperties, type LogLevel, type LowMedHigh, MARKDOWN_FORMAT_VERSION, MARKET_COMPETITIVE_PLAYBOOK, type MarketSegmentProperties, type MarketTrendProperties, type MarketingCampaignPlanProperties, type MarketingChannelProperties, type MarketingPlatform, type MarketingStrategyProperties, type MarketplaceListingProperties, type MatrixSlot, type MaturityLevel, type MessagingProperties, type MetricCategory, type MetricDataPoint, type MetricDesignation, type MetricHealth, type MetricImpactLevel, type MetricIndicatorDirection, type MetricProperties, type MetricQualityAssessmentProperties, type MetricScore, type MetricSegmentType, type MetricStatisticalFunction, type MilestoneProperties, type MissionProperties, type ModelComparisonProperties, type ModifiedProperty, type MonitorProperties, type NamedGroup, type NeedMaturity, type NeedProperties, type NeedValence, type NpsCampaignProperties, OPERATIONS_QUALITY_PLAYBOOK, type ObjectionProperties, type ObjectiveProperties, type ObservationProperties, type OnCallRotationProperties, type OperatingLifecycleProperties, type OperatingStageProperties, type OpportunityProperties, type OrganizationProperties, type OrphanCheck, type OutcomeProperties, PRESENT_UNDER_PROPERTY, PRODUCT_DELIVERY_PLAYBOOK, PROPERTY_MODIFIERS, PROPERTY_MODIFIER_SEMANTICS, PROPERTY_SCALE_MAP, type ParticipantProperties, type PartnerProgramProperties, type PartnerRevenueShareProperties, type PartnerTierProperties, type PartnershipProperties, type PathResolution, type PaywallProperties, type PenetrationTestProperties, type PersonProperties, type PersonaProperties, type PipelineSalesProperties, type PipelineStageProperties, type PlanningCycleProperties, type PlaybookBinding, type PlaybookFilter, type PlaybookProperties, type PlaybookRun, type PlaybookRuntime, type PortfolioProperties, type PositioningProperties, type PostmortemProperties, type PressReleaseProperties, type PricingStrategyProperties, type PricingTierProperties, type PrimitiveProperties, type Priority, type PrivacyPolicyProperties, type ProductAreaProperties, type ProductProperties, type ProductStageCoercion, type ProgramProperties, type ProjectProperties, type ProjectableEdge, type ProjectableNode, type ProjectionResult, type PromptTemplateProperties, type PromptVersionProperties, type ProofPointProperties, type PropertyDefinition, type PropertyModifier, type PropertySchema, type Protocol, type PrototypeProperties, type ProxyConfidence, type ProxyReason, QUALIFIABLE_EDGE_TYPES, type QaSessionProperties, type QueueTopicProperties, type QuoteDocumentProperties, type QuoteProperties, RECORD_ENTITY_TYPES, REFLECT_MODES, REGISTRY_PRODUCT_ID, type RatioBenchmark, type ReadModelProperties, type RebuttalProperties, type ReflectMode, type RegionalPricingProperties, type RegressionTestProperties, type RelationalColumn, type RelationalComputedColumn, type RelationalEdgeStep, type RelationalFieldColumn, type RelationalProjectionColumn, type RelationalSurfaceSpec, type RelationshipBenchmark, type RelationshipCheck, type ReleaseProperties, type ReleaseStrategyProperties, type ReportProperties, type ResearchPlanProperties, type ResearchQuestionProperties, type ResearchStudyProperties, type ResolvedStep, type ResourceAllocationProperties, type RetrospectiveProperties, type RevenueStreamProperties, type ReviewGateProperties, type RiskProperties, type RiskRegisterProperties, type RoadmapItemProperties, type RoadmapProperties, type RoadmapThemeProperties, type RoleProperties, type RootCauseProperties, type RuleStrength, type RunContext, type RunbookProperties, STRATEGY_OUTCOMES_PLAYBOOK, type SalesMotionProperties, type ScreenProperties, type ScreenStateProperties, type SecurityAuditProperties, type SecurityControlProperties, type SecurityPolicyProperties, type SecurityReviewProperties, type Semver, type SeoKeywordProperties, type SerializeOptions, type ServiceBlueprintProperties, type ServiceLevelAgreementProperties, type ServiceLevelIndicatorProperties, type ServiceLevelObjectiveProperties, type ServiceProperties, type SignalChannel, type SignalSentiment, type SignalUrgency, type SkillProperties, type SocialPostProperties, type SolutionProperties, type SpecificationProperties, type StageRange, type StakeholderProperties, type StatusCategory, type StatusReportProperties, type Step, type StepKind, type StepOutput, type StepOutputKind, type StoryTaskProperties, type StrategicPillarProperties, type StrategicQuestionProperties, type StrategicThemeProperties, type StructurePattern, type SubSequenceStep, type SubscriptionProperties, type SuccessMilestoneProperties, type SupportTicketProperties, type SurfaceArbitrationState, type SurfaceCardinality, type SurfaceCompositionMode, type SurfaceExtensibility, type SurfaceId, type SurfaceInstanceScope, type SurfaceKind, type SurfacePersistence, type SurfaceProperties, type SurveyResponseProperties, type SwitchingCostProperties, type SymptomProperties, THIN_GRAPH_THRESHOLD, type TableColumn, type TargetCustomerSegmentProperties, type TaskProperties, type TeamOkrProperties, type TeamProperties, type TechnicalDebtItemProperties, type TerritoryProperties, type TestCaseProperties, type TestCoverageReportProperties, type TestEnvironmentProperties, type TestPlanProperties, type TestResultProperties, type TestSuiteProperties, type ThreatModelProperties, type ThreatProperties, type Timeframe, type TotalEntityCountCheck, type TouchpointProperties, type TranslationBundleProperties, type TranslationKeyProperties, type TrialConfigProperties, type TutorialProperties, type UPGAnchorEntity, type UPGAntiPattern, type UPGAntiPatternConcern, type UPGAntiPatternSeverity, type UPGApproach, type UPGApproachEnvelope, type UPGApproachId, type UPGAreaTaxonomyEntry, type UPGAssessment, type UPGBaseNode, type UPGBenchmarkSource, type UPGBoundaryDirection, type UPGBoundaryEdge, type UPGCrossEdge, type UPGCrossEdgeType, type UPGCrossOnlyEdgeType, type UPGCuratedAntiPattern, type UPGDocument, type UPGDomain, type UPGDomainBridge, type UPGDomainId, type UPGDomainPattern, type UPGDomainRing, type UPGDomainUsageGuide, type UPGEdge, type UPGEdgeCountSpec, type UPGEdgeDefinition, type UPGEdgeMigration, type UPGEdgeMigrationEndpoints, type UPGEdgePickHint, type UPGEdgeType, type UPGEntityFilterSpec, type UPGEntityType, type UPGEntityTypeMaturity, type UPGEnumScaleDefinition, type UPGEnumScaleValue, type UPGFramework, type UPGFrameworkMeta, type UPGHeader, type UPGHeaderCountsMismatch, type UPGHeaderIntegrity, type UPGHeaderIntegrityMismatch, type UPGHeaderProvenance, type UPGHeaderSealReport, type UPGIntegrity, type UPGLens, type UPGLensIntelligencePrompt, type UPGLifecycle, type UPGMappingConfidence, type UPGMemberKindKey, type UPGNode, type UPGOrganization, type UPGPlaybook, type UPGPortfolio, type UPGPortfolioDocument, type UPGPortfolioKind, type UPGPresenceExceptSpec, type UPGProduct, type UPGProductArea, type UPGProductStage, type UPGPropertyMap, type UPGPropertyMigration, type UPGPropertyMigrationChange, type UPGRegion, type UPGRegionEntityMembership, type UPGRegionEntityRole, type UPGRegionId, type UPGRegionShape, type UPGRegistry, type UPGScalarToEdgeMigration, type UPGScaleDefinition, type UPGScalePoint, type UPGSource, type UPGSplitEdge, type UPGSplitMigration, type UPGSplitRoute, type UPGSplitRouteTarget, type UPGSplitTarget, type UPGTreeChild, type UPGTreeGapPolicy, type UPGTreePattern, type UPGTreePatternDetail, type UPGTreePatternEdge, type UPGTreePatternSummary, type UPGTypeLabel, type UPGTypeMigration, type UPGValidationError, type UPGValidationProfile, type UPGValidationResult, type UPGValidationWarning, type UPGViewPredicate, type UPGViewPresentation, type UPGViewQuery, type UPGWildcardEndpoint, UPG_ACTIVE_TYPES, UPG_ANTI_PATTERNS, UPG_ANTI_PATTERN_CONCERNS, UPG_APPROACHES, UPG_APPROACHES_BY_ID, UPG_AREA_TAXONOMY, UPG_AREA_TAXONOMY_BY_COVERAGE_KEY, UPG_BASE_NODE_FIELDS, UPG_BASE_NODE_FIELD_SET, UPG_BASE_NODE_SPECIAL_MERGE_FIELDS, UPG_CANONICAL_FORMAT_VERSION, UPG_CONTAINMENT_FREE_TYPES, UPG_COUNT_BENCHMARKS, UPG_CROSS_EDGE_TYPES, UPG_CROSS_ELIGIBLE_CATALOG_EDGE_TYPES, UPG_CROSS_ONLY_EDGE_TYPES, UPG_DELIBERATE_ONLY_EDGE_TYPES, UPG_DEPRECATED_TYPES, UPG_DOMAINS, UPG_DOMAIN_ACTIVATION, UPG_DOMAIN_COUNT, UPG_DOMAIN_GUIDES, UPG_DOMAIN_RINGS, UPG_EDGE_CATALOG, UPG_EDGE_COUNT, UPG_EDGE_COUNT_SPECS, UPG_EDGE_MIGRATIONS, UPG_EDGE_PAIR_MAP, UPG_EDGE_TYPES, UPG_ENTITY_COUNT, UPG_ENTITY_FILTER_SPECS, UPG_ENTITY_META, UPG_ENTITY_META_BY_ID, UPG_ENTITY_META_BY_NAME, UPG_ENTITY_TO_DOMAIN, UPG_ENUM_SCALES, UPG_FORMAT_VERSION, UPG_FRAMEWORKS, UPG_FRAMEWORKS_BY_CATEGORY, UPG_FRAMEWORKS_BY_ID, UPG_FRAMEWORK_CATEGORIES, UPG_LENSES, UPG_LIFECYCLES, UPG_LIFECYCLE_FREE_TYPES, UPG_LIFECYCLE_PLANNED_TYPES, UPG_META_COUNT, UPG_MIGRATIONS, UPG_PLAYBOOKS, UPG_POLYMORPHIC_EDGE_KEYS, UPG_PORTFOLIO_KINDS, UPG_PORTFOLIO_SHARED_TYPES, UPG_PRESENCE_EXCEPT_SPECS, UPG_PRODUCT_STAGES, UPG_PRODUCT_STAGE_COERCION_MAP, UPG_PROPERTY_MIGRATIONS, UPG_PROPERTY_SCHEMA, UPG_RATIO_BENCHMARKS, UPG_REGIONS, UPG_REGION_COUNT, UPG_REGION_MAP, UPG_RELATIONSHIP_BENCHMARKS, UPG_SCALAR_TO_EDGE_MIGRATIONS, UPG_SCALES, UPG_SPLIT_MIGRATIONS, UPG_STATUS_MIGRATIONS, UPG_STRUCTURE_PATTERNS, UPG_TREE_PATTERNS, UPG_TREE_PATTERNS_BY_ID, UPG_TYPES, UPG_TYPES_SET, UPG_TYPE_ALIASES, UPG_TYPE_LABELS, UPG_TYPE_LABELS_MAP, UPG_TYPE_NAMES, UPG_VALIDATION_PROFILES, UPG_VALID_CHILDREN, UPG_VERSION, UPG_WILDCARD_ENDPOINT, USERS_NEEDS_PLAYBOOK, type UnitEconomicsProperties, UnknownEntityTypeError, type UserAdvisoryBoardProperties, type UserFlowProperties, type UserJourneyProperties, type UserStoryProperties, VARIES_BY_EDGE, type ValueObjectProperties, type ValuePropositionProperties, type ValueStreamProperties, type VariantProperties, type VisionProperties, type VulnerabilityProperties, WORKSPACE_ARRANGEMENT_EDGE_PROPERTY_SCHEMA, type WalkMigrationChainResult, type WalkthroughProperties, type WebinarProperties, type WireframeProperties, type WorkflowArtifactProperties, type WorkflowRunProperties, type WorkflowTemplateProperties, type WorkspaceCanvas, type WorkspaceProperties, backfillSlug, buildTypeAliases, canBeChildOf, checkConfigurationDrift, checkHeaderSeal, checkHeaderSealText, checkToEdgeCountSpec, classifyEntityFilter, coerceProductStage, collectSlugsForType, collectTargetEntities, compareVersions, computeBodyChecksum, concernEvaluatedFor, concernFor, concernGatesFor, crossProductScope, deriveCounts, derivePortfolioCounts, deriveSingleCounts, describeTreePattern, edgeCarriesProperties, edgeCountSpecKey, entityFilterKey, enumerateProjections, evaluateAntiPatterns, findInvalidStatusMigrationTargets, formatUpgText, friendlyToAssessment, generateSlug, getAnchorEntity, getAntiPatternById, getAntiPatterns, getAntiPatternsBySeverity, getAntiPatternsForStage, getAreaTaxonomyEntry, getBenchmark, getBenchmarksByDomain, getBusinessAreasForRegion, getCanonicalPlaybookForRegion, getCoverageKeysForRegion, getDefaultLens, getDeprecatedTypes, getDomainForType, getDomainIdForType, getDomainsInRing, getEdgePropertySchema, getEntityModifierSummary, getEnumScale, getEnumValueMeta, getGuideForDomain, getLens, getLensIds, getLensPlaybook, getLensesForDomain, getLifecycleForType, getLifecycleRenderShape, getMigrationMap, getPlaybookById, getPlaybooksForRegion, getPropertiesForScale, getPropertyDefaultScale, getPropertyMigrations, getPropertyModifier, getPropertySchema, getRegion, getRegionForEntityType, getReplacementType, getRingForDomain, getScalarToEdgeMigrations, getScale, getSplitMigrations, getTreePattern, getTypeId, getTypeName, getTypes, getUPGEdgeMigrations, getValidChildren, getVisibleTypes, hasStatusMigration, isAggregateShapedProperty, isCanonical, isCanonicalProductStage, isContainmentFreeType, isCrossCapable, isCrossProductEligible, isCuratedCrossEligible, isDeliberateOnlyEdge, isDeprecatedType, isDomainGuideStep, isEntitySequenceStep, isFrameworkInvocationStep, isLegacyProductStage, isLifecycleFreeType, isLifecyclePlannedType, isPolymorphicEdge, isPortfolio, isPortfolioSharedType, isRecordEntity, isRegisteredPolymorphicEdge, isRuntimeStateShapedProperty, isSubSequenceStep, isThinCoverageAdvisory, isUPGDocument, listPropertiesByModifier, listStatusMigrations, listTreePatternSummaries, migrateEdge, migrateNode, migrateNodeProperties, migrateProductStage, migrateStatusValue, normalizeDocument, parseUpg, pickCanonicalEdge, predicatesProvablyDisjoint, presenceExceptKey, projectGraph, readActiveWhen, readStringArray, relationalCoveredEntityTypes, resolveAllEdges, resolveContainmentEdge, resolveEntityType, resolveLabel, resolveRelationalPath, resolveSlugCollision, resolveTreePatternEdges, ringOrderedDomainIds, rotateSlug, serializeCanonical, validateEdgeProperties, validateProductStageStrict, validateUPGDocument, validateUPGFramework, validationProfileFor, walkMigrationChainToCanonical };
26191
+ export { type A11yAnnotationProperties, type A11yAuditProperties, type A11yGuidelineProperties, type A11yIssueProperties, type A11yStandardProperties, ACTIVE_WHEN_PROPERTY, ANALYTICS_DATA_PLAYBOOK, type AcceptanceCriterionProperties, type AccessPolicyProperties, type AccountProperties, type AcquisitionChannelProperties, type AdCreativeProperties, type AffinityClusterProperties, type AgentDefinitionProperties, type AgentHookProperties, type AgentSessionProperties, type AgentSkillProperties, type AgentTaskProperties, type AggregateProperties, type AiCostTrackerProperties, type AiDatasetProperties, type AiExperimentProperties, type AiGuardrailProperties, type AiModelProperties, type AiTraceProperties, type AlertRuleProperties, type AnnotationProperties, type AntiPatternInputs, type AntiPatternViolation, type AnyUPGEntityType, type ApiContractProperties, type ApiEcosystemProperties, type ApiEndpointProperties, type ApproachBinding, type ApproachFilter, type ApproachRun, type ApproachRuntime, type ApprovalRecordProperties, type AssumptionProperties, type AttributionModelProperties, type AuditLogPolicyProperties, BUSINESS_GROWTH_METRIC_DRIVEN_PLAYBOOK, BUSINESS_GTM_GROWTH_PLAYBOOK, BUSINESS_MARKETING_AUDIENCE_FIRST_PLAYBOOK, type BehavioralSegmentProperties, type BenchmarkCheck, type BetaProgramProperties, type BoundedContextProperties, type BrandAssetProperties, type BrandColourProperties, type BrandIdentityProperties, type BrandImageryProperties, type BrandLogoProperties, type BrandTypographyProperties, type BrandVoiceProperties, type BugProperties, type BuildArtifactProperties, type BusinessModelProperties, CLASSIFICATION_EDGE_PROPERTY_SCHEMA, CONFIGURATION_QUALIFIER_EDGE_PROPERTY_SCHEMA, CONFIGURATION_VARIANCE_EDGE_PROPERTY_SCHEMA, CONTENT_DEPTH_WARNING_RULES, COVERAGE_ANTI_PATTERNS, type Cadence, type CapabilityProperties, type CapacityPlanProperties, type CaptureProperties, type CauseConfidence, type CeremonyProperties, type CertificationProperties, type ChangeRequestProperties, type ChangelogProperties, type ChurnReasonProperties, type CiPipelineProperties, type ClassificationAxisProperties, type ClassificationCapability, type ClassificationCapabilitySurface, type ClassificationCommitment, type ClassificationValueProperties, type CodeRepositoryProperties, type CohortProperties, type ComfortLevel, type CommandProperties, type CommunityInitiativeProperties, type CompetitiveAnalysisProperties, type CompetitiveBattleCardProperties, type CompetitorFeatureProperties, type CompetitorProperties, type CompetitorSignalProperties, type ComplianceFrameworkProperties, type ComplianceRequirementProperties, type CompositionMember, type CompositionProperties, type Confidence, type Configuration, type ConfigurationAxisKind, type ConfigurationAxisProperties, type ConfigurationDriftFinding, type ConfigurationDriftKind, type ConformanceLevel, type ConstraintKind, type ConstraintOrigin, type ConstraintProperties, type ConstraintStatus, type ContactProperties, type ContentCalendarProperties, type ContentPieceProperties, type ContentStrategyProperties, type ContentThemeProperties, type ContractClauseProperties, type ContractProperties, type CostStructureProperties, type CountBenchmark, type Cron, type CrossProductEligibleEdgeType, type CrossProductScope, type CulturalAdaptationProperties, type CustomerFeedbackProperties, type CustomerHealthScoreProperties, type CustomerJourneyStageProperties, type CustomerRelationshipProperties, DEFAULT_ENTITY_EMOJI, DEFERRED_PROPOSED_BY_CONTRACT, DEFER_EDGE_PROPERTY_SCHEMA, DISCOVERY_RESEARCH_VALIDATION_PLAYBOOK, type DashboardProperties, type DataClassificationProperties, type DataContractProperties, type DataDomainProperties, type DataFlowProperties, type DataLineageProperties, type DataModelProperties, type DataPipelineProperties, type DataProductProperties, type DataQualityRuleProperties, type DataSensitivity, type DataSourceProperties, type DatabaseSchemaProperties, type DealProperties, type DecisionProperties, type DeliberateOnlyEdgeType, type DeliverableProperties, type DemandGenProgramProperties, type DepartmentProperties, type DependencyProperties, type DeploymentProperties, type DeprecatedUPGEntityType, type DesignComponentProperties, type DesignConceptProperties, type DesignGuidelineProperties, type DesignPatternProperties, type DesignQuestionProperties, type DesignSprintProperties, type DesignSystemProperties, type DesignTokenProperties, type DesiredOutcomeProperties, type DeveloperPortalProperties, type DifficultyLevel, type DiscountStrategyProperties, type DistributionChannelProperties, type DocumentProperties, type DocumentationTemplateProperties, type DomainActivation, type DomainCountCheck, type DomainEntityProperties, type DomainEventProperties, type DomainGuideStep, type DomainPopulationCheck, type Duration, ENGINEERING_PLATFORM_PLAYBOOK, ENTITY_EMOJI, EXPERIENCE_DESIGN_BRAND_PLAYBOOK, type EdgeCountVsPropertyCheck, type EducationProgramProperties, type EmailSequenceProperties, type EmptyCell, type EmptyCellRationaleKind, type EntityCheck, type EntitySequenceStep, type EntityTypeMeta, type EntityTypeResolution, type EntryMode, type EpicProperties, type ErrorBudgetProperties, type EvalBenchmarkProperties, type EvalRunProperties, type EvaluateAntiPatternsOptions, type EventProperties, type EventSchemaProperties, type EvidenceDirection, type EvidenceProperties, type ExperimentPlanProperties, type ExperimentProperties, type ExperimentRunProperties, type ExternalApiProperties, FOUNDATIONS_PLAYBOOK, type FeasibilityStudyProperties, type FeatureAreaProperties, type FeatureFlagProperties, type FeatureProperties, type FeatureRequestProperties, type FeedbackProgramProperties, type FeedbackThemeProperties, type FeedbackVoteProperties, type FixProperties, type ForecastProperties, type FrameworkCategory, type FrameworkComputedProperty, type FrameworkConstant, type FrameworkDataSpec, type FrameworkEducation, type FrameworkEntityTypeSpec, type FrameworkExerciseProperties, type FrameworkInvocationStep, type FrameworkLayout, type FrameworkLevel, type FrameworkOrigin, type FrameworkPresentationSpec, type FrameworkPropertyRequirement, type FrameworkScoringMethod, type FrameworkSlot, type FrameworkSlotPredicate, type FrameworkSlotPredicateAtom, type FrameworkStep, type FrameworkStructureSpec, type FrameworkValidationResult, type FrequencyRating, type FunnelProperties, type FunnelStage, type FunnelStepProperties, type GlossaryTermProperties, type GrowthCampaignProperties, type GrowthLoopProperties, type GtmStrategyProperties, type GuardrailStatus, type HallucinationReportProperties, type HealthStatus, type HelpVideoProperties, type HypothesisEvidenceProperties, type HypothesisProperties, type ISO4217, type ISODate, type ISODateTime, type IdealCustomerProfileProperties, type IncidentProperties, type IncidentSeverity, type InfrastructureComponentProperties, type InitiativeProperties, type InsightProperties, type IntegrationPartnerProperties, type IntegrationPatternProperties, type IntelligenceCondition, type InteractionSpecProperties, type InternalDocProperties, type InterviewGuideProperties, type InvestigationProperties, type InvoiceProperties, type IpAssetProperties, type JobProperties, type JobStepProperties, type JourneyActionProperties, type JourneyPhaseProperties, type JourneyStepProperties, type JourneyType, type KeyActivityProperties, type KeyResourceProperties, type KeyResultProperties, type KnowledgeBaseArticleProperties, LEGACY_PRODUCT_STAGES, type LaunchProperties, type LeadProperties, type LearningPathProperties, type LearningProperties, type LegalEntityProperties, type LibraryDependencyProperties, type LifecyclePhase, type LifecycleRenderShape, type LifecycleRenderState, type LifecycleRenderTransition, type LifecycleState, type LocaleConfigProperties, type LocaleProperties, type LogLevel, type LowMedHigh, MARKDOWN_FORMAT_VERSION, MARKET_COMPETITIVE_PLAYBOOK, type MarketSegmentProperties, type MarketTrendProperties, type MarketingCampaignPlanProperties, type MarketingChannelProperties, type MarketingPlatform, type MarketingStrategyProperties, type MarketplaceListingProperties, type MatrixSlot, type MaturityLevel, type MessagingProperties, type MetricCategory, type MetricDataPoint, type MetricDesignation, type MetricHealth, type MetricImpactLevel, type MetricIndicatorDirection, type MetricProperties, type MetricQualityAssessmentProperties, type MetricScore, type MetricSegmentType, type MetricStatisticalFunction, type MilestoneProperties, type MissionProperties, type ModelComparisonProperties, type ModifiedProperty, type MonitorProperties, NODE_KEY_ORDER, type NamedGroup, type NeedMaturity, type NeedProperties, type NeedValence, type NpsCampaignProperties, OPERATIONS_QUALITY_PLAYBOOK, type ObjectionProperties, type ObjectiveProperties, type ObservationProperties, type OnCallRotationProperties, type OperatingLifecycleProperties, type OperatingStageProperties, type OpportunityProperties, type OrganizationProperties, type OrphanCheck, type OutcomeProperties, PRESENT_UNDER_PROPERTY, PRODUCT_DELIVERY_PLAYBOOK, PROPERTY_MODIFIERS, PROPERTY_MODIFIER_SEMANTICS, PROPERTY_SCALE_MAP, type ParticipantProperties, type PartnerProgramProperties, type PartnerRevenueShareProperties, type PartnerTierProperties, type PartnershipProperties, type PathResolution, type PaywallProperties, type PenetrationTestProperties, type PersonProperties, type PersonaProperties, type PipelineSalesProperties, type PipelineStageProperties, type PlanningCycleProperties, type PlaybookBinding, type PlaybookFilter, type PlaybookProperties, type PlaybookRun, type PlaybookRuntime, type PortfolioProperties, type PositioningProperties, type PostmortemProperties, type PressReleaseProperties, type PricingStrategyProperties, type PricingTierProperties, type PrimitiveProperties, type Priority, type PrivacyPolicyProperties, type ProductAreaProperties, type ProductProperties, type ProductStageCoercion, type ProgramProperties, type ProjectProperties, type ProjectableEdge, type ProjectableNode, type ProjectionResult, type PromptTemplateProperties, type PromptVersionProperties, type ProofPointProperties, type PropertyDefinition, type PropertyModifier, type PropertySchema, type Protocol, type PrototypeProperties, type ProxyConfidence, type ProxyReason, QUALIFIABLE_EDGE_TYPES, type QaSessionProperties, type QueueTopicProperties, type QuoteDocumentProperties, type QuoteProperties, RECORD_ENTITY_TYPES, REFLECT_MODES, REGISTRY_PRODUCT_ID, type RatioBenchmark, type ReadModelProperties, type RebuttalProperties, type ReflectMode, type RegionalPricingProperties, type RegressionTestProperties, type RelationalColumn, type RelationalComputedColumn, type RelationalEdgeStep, type RelationalFieldColumn, type RelationalProjectionColumn, type RelationalSurfaceSpec, type RelationshipBenchmark, type RelationshipCheck, type ReleaseProperties, type ReleaseStrategyProperties, type ReportProperties, type ResearchPlanProperties, type ResearchQuestionProperties, type ResearchStudyProperties, type ResolvedStep, type ResourceAllocationProperties, type RetrospectiveProperties, type RevenueStreamProperties, type ReviewGateProperties, type RiskProperties, type RiskRegisterProperties, type RoadmapItemProperties, type RoadmapProperties, type RoadmapThemeProperties, type RoleProperties, type RootCauseProperties, type RuleStrength, type RunContext, type RunbookProperties, STRATEGY_OUTCOMES_PLAYBOOK, type SalesMotionProperties, type ScreenProperties, type ScreenStateProperties, type SecurityAuditProperties, type SecurityControlProperties, type SecurityPolicyProperties, type SecurityReviewProperties, type Semver, type SeoKeywordProperties, type SerializeOptions, type ServiceBlueprintProperties, type ServiceLevelAgreementProperties, type ServiceLevelIndicatorProperties, type ServiceLevelObjectiveProperties, type ServiceProperties, type SignalChannel, type SignalSentiment, type SignalUrgency, type SkillProperties, type SocialPostProperties, type SolutionProperties, type SpecificationProperties, type StageRange, type StakeholderProperties, type StatusCategory, type StatusReportProperties, type Step, type StepKind, type StepOutput, type StepOutputKind, type StoryTaskProperties, type StrategicPillarProperties, type StrategicQuestionProperties, type StrategicThemeProperties, type StructurePattern, type SubSequenceStep, type SubscriptionProperties, type SuccessMilestoneProperties, type SupportTicketProperties, type SurfaceArbitrationState, type SurfaceCardinality, type SurfaceCompositionMode, type SurfaceExtensibility, type SurfaceId, type SurfaceInstanceScope, type SurfaceKind, type SurfacePersistence, type SurfaceProperties, type SurveyResponseProperties, type SwitchingCostProperties, type SymptomProperties, THIN_GRAPH_THRESHOLD, type TableColumn, type TargetCustomerSegmentProperties, type TaskProperties, type TeamOkrProperties, type TeamProperties, type TechnicalDebtItemProperties, type TerritoryProperties, type TestCaseProperties, type TestCoverageReportProperties, type TestEnvironmentProperties, type TestPlanProperties, type TestResultProperties, type TestSuiteProperties, type ThreatModelProperties, type ThreatProperties, type Timeframe, type TotalEntityCountCheck, type TouchpointProperties, type TranslationBundleProperties, type TranslationKeyProperties, type TrialConfigProperties, type TutorialProperties, type UPGAnchorEntity, type UPGAntiPattern, type UPGAntiPatternConcern, type UPGAntiPatternSeverity, type UPGApproach, type UPGApproachEnvelope, type UPGApproachId, type UPGAreaTaxonomyEntry, type UPGAssessment, type UPGBaseNode, type UPGBenchmarkSource, type UPGBoundaryDirection, type UPGBoundaryEdge, type UPGCrossEdge, type UPGCrossEdgeType, type UPGCrossOnlyEdgeType, type UPGCuratedAntiPattern, type UPGDocument, type UPGDomain, type UPGDomainBridge, type UPGDomainId, type UPGDomainPattern, type UPGDomainRing, type UPGDomainUsageGuide, type UPGEdge, type UPGEdgeCountSpec, type UPGEdgeDefinition, type UPGEdgeMigration, type UPGEdgeMigrationEndpoints, type UPGEdgePickHint, type UPGEdgeType, type UPGEntityFilterSpec, type UPGEntityType, type UPGEntityTypeMaturity, type UPGEnumScaleDefinition, type UPGEnumScaleValue, type UPGExternalLink, type UPGFramework, type UPGFrameworkMeta, type UPGHeader, type UPGHeaderCountsMismatch, type UPGHeaderIntegrity, type UPGHeaderIntegrityMismatch, type UPGHeaderProvenance, type UPGHeaderSealReport, type UPGIntegrity, type UPGLens, type UPGLensIntelligencePrompt, type UPGLifecycle, type UPGMappingConfidence, type UPGMemberKindKey, type UPGNode, type UPGOrganization, type UPGPlaybook, type UPGPortfolio, type UPGPortfolioDocument, type UPGPortfolioKind, type UPGPresenceExceptSpec, type UPGProduct, type UPGProductArea, type UPGProductStage, type UPGPropertyMap, type UPGPropertyMigration, type UPGPropertyMigrationChange, type UPGQueryDrivenLayer, type UPGRegion, type UPGRegionEntityMembership, type UPGRegionEntityRole, type UPGRegionId, type UPGRegionShape, type UPGRegistry, type UPGScalarToEdgeMigration, type UPGScaleDefinition, type UPGScalePoint, type UPGSource, type UPGSplitEdge, type UPGSplitMigration, type UPGSplitRoute, type UPGSplitRouteTarget, type UPGSplitTarget, type UPGTimeWindow, type UPGTreeChild, type UPGTreeGapPolicy, type UPGTreePattern, type UPGTreePatternDetail, type UPGTreePatternEdge, type UPGTreePatternSummary, type UPGTypeLabel, type UPGTypeMigration, type UPGValidationError, type UPGValidationProfile, type UPGValidationResult, type UPGValidationWarning, type UPGViewClause, type UPGViewDimension, type UPGViewEdgeClause, type UPGViewPredicate, type UPGViewPresentation, type UPGViewQuery, type UPGWildcardEndpoint, UPG_ACTIVE_TYPES, UPG_ANTI_PATTERNS, UPG_ANTI_PATTERN_CONCERNS, UPG_APPROACHES, UPG_APPROACHES_BY_ID, UPG_AREA_TAXONOMY, UPG_AREA_TAXONOMY_BY_COVERAGE_KEY, UPG_BASE_NODE_FIELDS, UPG_BASE_NODE_FIELD_SET, UPG_BASE_NODE_SPECIAL_MERGE_FIELDS, UPG_CANONICAL_FORMAT_VERSION, UPG_CONTAINMENT_FREE_TYPES, UPG_COUNT_BENCHMARKS, UPG_CROSS_EDGE_TYPES, UPG_CROSS_ELIGIBLE_CATALOG_EDGE_TYPES, UPG_CROSS_ONLY_EDGE_TYPES, UPG_DELIBERATE_ONLY_EDGE_TYPES, UPG_DEPRECATED_TYPES, UPG_DOMAINS, UPG_DOMAIN_ACTIVATION, UPG_DOMAIN_COUNT, UPG_DOMAIN_GUIDES, UPG_DOMAIN_RINGS, UPG_EDGE_CATALOG, UPG_EDGE_COUNT, UPG_EDGE_COUNT_SPECS, UPG_EDGE_MIGRATIONS, UPG_EDGE_PAIR_MAP, UPG_EDGE_TYPES, UPG_ENTITY_COUNT, UPG_ENTITY_FILTER_SPECS, UPG_ENTITY_META, UPG_ENTITY_META_BY_ID, UPG_ENTITY_META_BY_NAME, UPG_ENTITY_TO_DOMAIN, UPG_ENUM_SCALES, UPG_FORMAT_VERSION, UPG_FRAMEWORKS, UPG_FRAMEWORKS_BY_CATEGORY, UPG_FRAMEWORKS_BY_ID, UPG_FRAMEWORK_CATEGORIES, UPG_LENSES, UPG_LIFECYCLES, UPG_LIFECYCLE_FREE_TYPES, UPG_LIFECYCLE_PLANNED_TYPES, UPG_META_COUNT, UPG_MIGRATIONS, UPG_PLAYBOOKS, UPG_POLYMORPHIC_EDGE_KEYS, UPG_PORTFOLIO_KINDS, UPG_PORTFOLIO_SHARED_TYPES, UPG_PRESENCE_EXCEPT_SPECS, UPG_PRODUCT_STAGES, UPG_PRODUCT_STAGE_COERCION_MAP, UPG_PROPERTY_MIGRATIONS, UPG_PROPERTY_SCHEMA, UPG_RATIO_BENCHMARKS, UPG_REGIONS, UPG_REGION_COUNT, UPG_REGION_MAP, UPG_RELATIONSHIP_BENCHMARKS, UPG_SCALAR_TO_EDGE_MIGRATIONS, UPG_SCALES, UPG_SPLIT_MIGRATIONS, UPG_STATUS_MIGRATIONS, UPG_STRUCTURE_PATTERNS, UPG_TREE_PATTERNS, UPG_TREE_PATTERNS_BY_ID, UPG_TYPES, UPG_TYPES_SET, UPG_TYPE_ALIASES, UPG_TYPE_LABELS, UPG_TYPE_LABELS_MAP, UPG_TYPE_NAMES, UPG_VALIDATION_PROFILES, UPG_VALID_CHILDREN, UPG_VERSION, UPG_WILDCARD_ENDPOINT, USERS_NEEDS_PLAYBOOK, type UnitEconomicsProperties, UnknownEntityTypeError, type UserAdvisoryBoardProperties, type UserFlowProperties, type UserJourneyProperties, type UserStoryProperties, VARIES_BY_EDGE, type ValueObjectProperties, type ValuePropositionProperties, type ValueStreamProperties, type VariantProperties, type VisionProperties, type VulnerabilityProperties, WORKSPACE_ARRANGEMENT_EDGE_PROPERTY_SCHEMA, type WalkMigrationChainResult, type WalkthroughProperties, type WebinarProperties, type WireframeProperties, type WorkflowArtifactProperties, type WorkflowRunProperties, type WorkflowTemplateProperties, type WorkspaceCanvas, type WorkspaceProperties, backfillSlug, buildTypeAliases, canBeChildOf, checkConfigurationDrift, checkHeaderSeal, checkHeaderSealText, checkToEdgeCountSpec, classifyEntityFilter, coerceProductStage, collectSlugsForType, collectTargetEntities, compareVersions, computeBodyChecksum, concernEvaluatedFor, concernFor, concernGatesFor, crossProductScope, deriveCounts, derivePortfolioCounts, deriveSingleCounts, describeTreePattern, edgeCarriesProperties, edgeCountSpecKey, entityFilterKey, enumerateProjections, evaluateAntiPatterns, findInvalidStatusMigrationTargets, formatUpgText, friendlyToAssessment, generateSlug, getAnchorEntity, getAntiPatternById, getAntiPatterns, getAntiPatternsBySeverity, getAntiPatternsForStage, getAreaTaxonomyEntry, getBenchmark, getBenchmarksByDomain, getBusinessAreasForRegion, getCanonicalPlaybookForRegion, getCoverageKeysForRegion, getDefaultLens, getDeprecatedTypes, getDomainForType, getDomainIdForType, getDomainsInRing, getEdgePropertySchema, getEntityModifierSummary, getEnumScale, getEnumValueMeta, getGuideForDomain, getLens, getLensIds, getLensPlaybook, getLensesForDomain, getLifecycleForType, getLifecycleRenderShape, getMigrationMap, getPlaybookById, getPlaybooksForRegion, getPropertiesForScale, getPropertyDefaultScale, getPropertyMigrations, getPropertyModifier, getPropertySchema, getRegion, getRegionForEntityType, getReplacementType, getRingForDomain, getScalarToEdgeMigrations, getScale, getSplitMigrations, getTreePattern, getTypeId, getTypeName, getTypes, getUPGEdgeMigrations, getValidChildren, getVisibleTypes, hasStatusMigration, isAggregateShapedProperty, isCanonical, isCanonicalProductStage, isContainmentFreeType, isCrossCapable, isCrossProductEligible, isCuratedCrossEligible, isDeliberateOnlyEdge, isDeprecatedType, isDomainGuideStep, isEntitySequenceStep, isFrameworkInvocationStep, isLegacyProductStage, isLifecycleFreeType, isLifecyclePlannedType, isPolymorphicEdge, isPortfolio, isPortfolioSharedType, isRecordEntity, isRegisteredPolymorphicEdge, isRuntimeStateShapedProperty, isSubSequenceStep, isThinCoverageAdvisory, isUPGDocument, listPropertiesByModifier, listStatusMigrations, listTreePatternSummaries, migrateEdge, migrateNode, migrateNodeProperties, migrateProductStage, migrateStatusValue, normalizeDocument, parseUpg, pickCanonicalEdge, predicatesProvablyDisjoint, presenceExceptKey, projectGraph, readActiveWhen, readStringArray, relationalCoveredEntityTypes, resolveAllEdges, resolveContainmentEdge, resolveEntityType, resolveLabel, resolveRelationalPath, resolveSlugCollision, resolveTreePatternEdges, ringOrderedDomainIds, rotateSlug, serializeCanonical, validateEdgeProperties, validateProductStageStrict, validateUPGDocument, validateUPGFramework, validationProfileFor, walkMigrationChainToCanonical };