@unified-product-graph/core 0.14.1 → 0.16.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.cjs +207 -52
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -79
- package/dist/index.d.ts +4 -79
- package/dist/index.js +207 -52
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -10001,15 +10001,12 @@ type MarketingPlatform = 'discord' | 'email' | 'google' | 'instagram' | 'linkedi
|
|
|
10001
10001
|
* @example
|
|
10002
10002
|
* const properties: OrganizationProperties = {
|
|
10003
10003
|
* logo_url: 'https://arkheiev.com/logo.svg',
|
|
10004
|
-
* billing_plan: 'business-annual',
|
|
10005
10004
|
* industry: 'Developer Tools',
|
|
10006
10005
|
* }
|
|
10007
10006
|
*/
|
|
10008
10007
|
interface OrganizationProperties {
|
|
10009
10008
|
/** URL of the organisation's logo */
|
|
10010
10009
|
logo_url?: string;
|
|
10011
|
-
/** Current billing / subscription plan */
|
|
10012
|
-
billing_plan?: string;
|
|
10013
10010
|
/** Industry vertical the organisation operates in */
|
|
10014
10011
|
industry?: string;
|
|
10015
10012
|
}
|
|
@@ -11838,15 +11835,12 @@ interface DesignConceptProperties {
|
|
|
11838
11835
|
* @example
|
|
11839
11836
|
* const properties: PrototypeProperties = {
|
|
11840
11837
|
* fidelity: 'low',
|
|
11841
|
-
* test_status: 'untested',
|
|
11842
11838
|
* tool: 'entopo',
|
|
11843
11839
|
* }
|
|
11844
11840
|
*/
|
|
11845
11841
|
interface PrototypeProperties {
|
|
11846
11842
|
/** Detail level */
|
|
11847
11843
|
fidelity?: 'low' | 'medium' | 'high';
|
|
11848
|
-
/** User-test status */
|
|
11849
|
-
test_status?: 'untested' | 'testing' | 'passed' | 'failed';
|
|
11850
11844
|
/** Authoring tool */
|
|
11851
11845
|
tool?: string;
|
|
11852
11846
|
}
|
|
@@ -12397,27 +12391,18 @@ interface OutcomeProperties {
|
|
|
12397
12391
|
evidence_summary?: string;
|
|
12398
12392
|
/** Confidence this is the right outcome to pursue */
|
|
12399
12393
|
confidence?: UPGAssessment;
|
|
12400
|
-
/**
|
|
12401
|
-
* Current lifecycle phase, mirroring the `outcome` lifecycle in
|
|
12402
|
-
* `grammar/lifecycles.ts` (UPG-579 Option B): `identified` -> `measuring` ->
|
|
12403
|
-
* `achieved` | `abandoned`.
|
|
12404
|
-
*/
|
|
12405
|
-
outcome_status?: 'identified' | 'measuring' | 'achieved' | 'abandoned';
|
|
12406
12394
|
}
|
|
12407
12395
|
/** A high-level strategic goal. The O in OKR.
|
|
12408
12396
|
*
|
|
12409
12397
|
* @example
|
|
12410
12398
|
* const properties: ObjectiveProperties = {
|
|
12411
12399
|
* timeframe: '12-18 months',
|
|
12412
|
-
* objective_status: 'active',
|
|
12413
12400
|
* progress: 42,
|
|
12414
12401
|
* }
|
|
12415
12402
|
*/
|
|
12416
12403
|
interface ObjectiveProperties {
|
|
12417
12404
|
/** Planning timeframe (e.g. "Q1 2026", "H1 2026") */
|
|
12418
12405
|
timeframe?: string;
|
|
12419
|
-
/** Current status */
|
|
12420
|
-
objective_status?: 'active' | 'achieved' | 'deferred';
|
|
12421
12406
|
/** Overall progress (0–100) */
|
|
12422
12407
|
progress?: number;
|
|
12423
12408
|
}
|
|
@@ -12443,7 +12428,8 @@ interface KeyResultProperties {
|
|
|
12443
12428
|
* A semantic container (e.g. "Canvas & Visualisation", "AI & Intelligence",
|
|
12444
12429
|
* "Onboarding") that gathers features under a shared product surface, owning
|
|
12445
12430
|
* team, or capability. Lifecycle (planned → active → deprecated) is governed
|
|
12446
|
-
* by `area_status
|
|
12431
|
+
* by the base-node `status` field (the former `area_status` property was
|
|
12432
|
+
* collapsed into it in 0.15.0, UPG-689 Pattern D).
|
|
12447
12433
|
*
|
|
12448
12434
|
* Per UPG principle P14, structural relationships are edges:
|
|
12449
12435
|
* parent product: `product_organised_by_feature_area`
|
|
@@ -12460,7 +12446,6 @@ interface KeyResultProperties {
|
|
|
12460
12446
|
* priority: 'high',
|
|
12461
12447
|
* maturity: 'mature',
|
|
12462
12448
|
* owner: 'sam.patel@arkheiev.com',
|
|
12463
|
-
* area_status: 'active',
|
|
12464
12449
|
* }
|
|
12465
12450
|
*/
|
|
12466
12451
|
interface FeatureAreaProperties {
|
|
@@ -12480,8 +12465,6 @@ interface FeatureAreaProperties {
|
|
|
12480
12465
|
* `legacy` = being phased out for a successor.
|
|
12481
12466
|
*/
|
|
12482
12467
|
maturity?: 'nascent' | 'growing' | 'mature' | 'legacy';
|
|
12483
|
-
/** Status in the product structure */
|
|
12484
|
-
area_status?: 'active' | 'planned' | 'deprecated';
|
|
12485
12468
|
}
|
|
12486
12469
|
/** A discrete, user-facing capability of the product.
|
|
12487
12470
|
*
|
|
@@ -12672,7 +12655,6 @@ interface RoadmapProperties {
|
|
|
12672
12655
|
* const properties: RoadmapItemProperties = {
|
|
12673
12656
|
* quarter: '2026-Q2',
|
|
12674
12657
|
* priority: 'high',
|
|
12675
|
-
* item_status: 'planned',
|
|
12676
12658
|
* }
|
|
12677
12659
|
*/
|
|
12678
12660
|
interface RoadmapItemProperties {
|
|
@@ -12680,8 +12662,6 @@ interface RoadmapItemProperties {
|
|
|
12680
12662
|
quarter?: string;
|
|
12681
12663
|
/** Importance against other items */
|
|
12682
12664
|
priority?: Priority;
|
|
12683
|
-
/** Status. `deferred` = explicitly pushed to a later period. */
|
|
12684
|
-
item_status?: 'planned' | 'in_progress' | 'shipped' | 'deferred';
|
|
12685
12665
|
/** Delivery confidence within the planned period (UPGAssessment on `confidence_5`). */
|
|
12686
12666
|
confidence?: UPGAssessment;
|
|
12687
12667
|
/** ISO date work begins. More precise than `quarter` for continuous planning. */
|
|
@@ -13024,20 +13004,13 @@ interface TechnicalDebtItemProperties {
|
|
|
13024
13004
|
* @example
|
|
13025
13005
|
* const properties: FeatureFlagProperties = {
|
|
13026
13006
|
* key: 'cta.primary.signup',
|
|
13027
|
-
* flag_status: 'on',
|
|
13028
13007
|
* rollout_pct: 42,
|
|
13029
13008
|
* }
|
|
13030
13009
|
*/
|
|
13031
13010
|
interface FeatureFlagProperties {
|
|
13032
13011
|
/** Required. Stable flag key used in code (e.g. "new-checkout-flow"). */
|
|
13033
13012
|
key: string;
|
|
13034
|
-
/**
|
|
13035
|
-
* Activation state.
|
|
13036
|
-
* `on` = enabled for all. `off` = disabled for all.
|
|
13037
|
-
* `rollout` = partial via targeting_rules.
|
|
13038
|
-
*/
|
|
13039
|
-
flag_status?: 'on' | 'off' | 'rollout';
|
|
13040
|
-
/** Percentage enabled (0–100). Meaningful when `flag_status === 'rollout'`. */
|
|
13013
|
+
/** Percentage enabled (0–100). Meaningful when the flag's `status === 'rollout'`. */
|
|
13041
13014
|
rollout_pct?: number;
|
|
13042
13015
|
/** Human-readable targeting rules. Full rule evaluation happens in the flag service. */
|
|
13043
13016
|
targeting_rules?: string;
|
|
@@ -13064,7 +13037,6 @@ interface FeatureFlagProperties {
|
|
|
13064
13037
|
* const properties: DeploymentProperties = {
|
|
13065
13038
|
* environment: 'prod',
|
|
13066
13039
|
* timestamp: '2026-04-17T09:00:00Z',
|
|
13067
|
-
* deploy_status: 'success',
|
|
13068
13040
|
* }
|
|
13069
13041
|
*/
|
|
13070
13042
|
interface DeploymentProperties {
|
|
@@ -13072,8 +13044,6 @@ interface DeploymentProperties {
|
|
|
13072
13044
|
environment?: 'dev' | 'staging' | 'prod';
|
|
13073
13045
|
/** ISO timestamp */
|
|
13074
13046
|
timestamp?: string;
|
|
13075
|
-
/** Current status */
|
|
13076
|
-
deploy_status?: 'success' | 'failure' | 'rolling';
|
|
13077
13047
|
/** Git SHA of the deployed commit */
|
|
13078
13048
|
sha?: string;
|
|
13079
13049
|
/** Wall-clock duration in seconds. Tracks deployment speed trends. */
|
|
@@ -13176,7 +13146,6 @@ interface ApiEndpointProperties {
|
|
|
13176
13146
|
* const properties: DatabaseSchemaProperties = {
|
|
13177
13147
|
* db_type: 'postgres',
|
|
13178
13148
|
* schema_version: '1.3.0',
|
|
13179
|
-
* migration_status: 'current',
|
|
13180
13149
|
* }
|
|
13181
13150
|
*/
|
|
13182
13151
|
interface DatabaseSchemaProperties {
|
|
@@ -13184,8 +13153,6 @@ interface DatabaseSchemaProperties {
|
|
|
13184
13153
|
db_type?: 'postgres' | 'mysql' | 'mongodb' | 'redis' | 'other';
|
|
13185
13154
|
/** Current schema version */
|
|
13186
13155
|
schema_version?: string;
|
|
13187
|
-
/** Pending-migration status */
|
|
13188
|
-
migration_status?: 'current' | 'pending' | 'failed';
|
|
13189
13156
|
/** Owning person or team responsible for design and migrations. Promote to a `node_owned_by_team` edge if ownership must be queryable. */
|
|
13190
13157
|
owner?: string;
|
|
13191
13158
|
/** Tables or collections in this schema. Useful for migration scope estimation. */
|
|
@@ -13311,8 +13278,6 @@ interface ExternalApiProperties {
|
|
|
13311
13278
|
auth_type?: 'api_key' | 'oauth2' | 'jwt' | 'basic' | 'none';
|
|
13312
13279
|
/** Rate limit description */
|
|
13313
13280
|
rate_limits?: string;
|
|
13314
|
-
/** Availability */
|
|
13315
|
-
api_status?: 'active' | 'deprecated' | 'beta' | 'unavailable';
|
|
13316
13281
|
}
|
|
13317
13282
|
/** Data flow between services.
|
|
13318
13283
|
*
|
|
@@ -13382,8 +13347,6 @@ interface InvestigationProperties {
|
|
|
13382
13347
|
resolved_at?: ISODateTime;
|
|
13383
13348
|
/** Lead investigator (email or handle). Distinct from the team owning the affected service. Promote to a `node_owned_by_person` edge if ownership must be queryable. */
|
|
13384
13349
|
lead_investigator?: string;
|
|
13385
|
-
/** Originating session */
|
|
13386
|
-
session_id?: string;
|
|
13387
13350
|
/**
|
|
13388
13351
|
* Kind of issue under investigation. Distinct from `RootCauseProperties.cause_category`,
|
|
13389
13352
|
* which captures *why something went wrong*.
|
|
@@ -14926,14 +14889,11 @@ interface DataProductProperties {
|
|
|
14926
14889
|
*
|
|
14927
14890
|
* @example
|
|
14928
14891
|
* const properties: DataPipelineProperties = {
|
|
14929
|
-
* pipeline_status: 'active',
|
|
14930
14892
|
* schedule: '0 2 * * *',
|
|
14931
14893
|
* avg_runtime: '3m 20s',
|
|
14932
14894
|
* }
|
|
14933
14895
|
*/
|
|
14934
14896
|
interface DataPipelineProperties {
|
|
14935
|
-
/** Operational status of the pipeline */
|
|
14936
|
-
pipeline_status?: 'active' | 'paused' | 'failed' | 'deprecated';
|
|
14937
14897
|
/** Cron or scheduling expression */
|
|
14938
14898
|
schedule?: string;
|
|
14939
14899
|
/** Average wall-clock runtime per execution */
|
|
@@ -15107,7 +15067,6 @@ interface InternalDocProperties {
|
|
|
15107
15067
|
* source_url: 'https://github.com/unified-product-graph/core/blob/main/spec/v0.2/upg-core.md',
|
|
15108
15068
|
* platform: 'markdown',
|
|
15109
15069
|
* document_type: 'spec',
|
|
15110
|
-
* author: 'fraan@theproductcreator.com',
|
|
15111
15070
|
* last_updated: '2026-04-28T13:27:08Z',
|
|
15112
15071
|
* word_count: 2480,
|
|
15113
15072
|
* content_summary: 'Defines the v0.2 entity catalogue, edge catalogue, and migration adapters.',
|
|
@@ -15122,8 +15081,6 @@ interface DocumentProperties {
|
|
|
15122
15081
|
platform?: 'markdown' | 'notion' | 'figma' | 'google_docs' | 'confluence' | 'github' | 'linear' | 'other';
|
|
15123
15082
|
/** Purpose classification */
|
|
15124
15083
|
document_type?: 'vision' | 'plan' | 'decision' | 'research' | 'spec' | 'audit' | 'session' | 'feedback' | 'case-study' | 'narrative' | 'bug-report' | 'archive-collection' | 'rfc' | 'runbook' | 'guide' | 'onboarding' | 'brief' | 'report' | 'reference';
|
|
15125
|
-
/** Author (free-form: name, email, or handle). Promote to a `node_owned_by_person` edge if ownership must be queryable. */
|
|
15126
|
-
author?: string;
|
|
15127
15084
|
/** ISO 8601 last-meaningful-update */
|
|
15128
15085
|
last_updated?: ISODateTime;
|
|
15129
15086
|
/** Approximate word count. Useful for planning, indexing, summarisation. */
|
|
@@ -15211,12 +15168,6 @@ interface LegalEntityProperties {
|
|
|
15211
15168
|
jurisdiction?: string;
|
|
15212
15169
|
/** Description of intellectual property ownership */
|
|
15213
15170
|
ip_ownership?: string;
|
|
15214
|
-
/** Principal business address */
|
|
15215
|
-
principal_address?: string;
|
|
15216
|
-
/** Tax identification number */
|
|
15217
|
-
tax_id?: string;
|
|
15218
|
-
/** Official registration or incorporation number */
|
|
15219
|
-
registration_number?: string;
|
|
15220
15171
|
/** Date the entity was incorporated (ISO format) */
|
|
15221
15172
|
date_incorporated?: string;
|
|
15222
15173
|
}
|
|
@@ -15411,15 +15362,12 @@ interface ComplianceFrameworkProperties {
|
|
|
15411
15362
|
* @example
|
|
15412
15363
|
* const properties: SecurityAuditProperties = {
|
|
15413
15364
|
* audit_scope: 'All customer-facing APIs and the billing service.',
|
|
15414
|
-
* audit_status: 'scheduled',
|
|
15415
15365
|
* findings_count: 42,
|
|
15416
15366
|
* }
|
|
15417
15367
|
*/
|
|
15418
15368
|
interface SecurityAuditProperties {
|
|
15419
15369
|
/** Systems or processes covered by the audit */
|
|
15420
15370
|
audit_scope?: string;
|
|
15421
|
-
/** Current progress of the audit */
|
|
15422
|
-
audit_status?: 'scheduled' | 'in_progress' | 'completed';
|
|
15423
15371
|
/** Total number of findings */
|
|
15424
15372
|
findings_count?: number;
|
|
15425
15373
|
/** Number of critical-severity findings */
|
|
@@ -15487,14 +15435,11 @@ interface RoleProperties {
|
|
|
15487
15435
|
*
|
|
15488
15436
|
* @example
|
|
15489
15437
|
* const properties: PersonProperties = {
|
|
15490
|
-
* email: 'ada@example.com',
|
|
15491
15438
|
* role_title: 'Product Engineer',
|
|
15492
15439
|
* time_zone: 'Europe/Berlin',
|
|
15493
15440
|
* }
|
|
15494
15441
|
*/
|
|
15495
15442
|
interface PersonProperties {
|
|
15496
|
-
/** Primary contact email. Stable identifier for de-duplication. */
|
|
15497
|
-
email?: string;
|
|
15498
15443
|
/** Free-text job title. Distinct from the structured `role` entity. */
|
|
15499
15444
|
role_title?: string;
|
|
15500
15445
|
/** IANA time zone (e.g. "Europe/Berlin"). Useful for capacity / on-call planning. */
|
|
@@ -15838,8 +15783,6 @@ interface AiModelProperties {
|
|
|
15838
15783
|
model_version?: string;
|
|
15839
15784
|
/** Intended use case */
|
|
15840
15785
|
model_purpose?: string;
|
|
15841
|
-
/** Cost per 1,000 tokens */
|
|
15842
|
-
cost_per_1k_tokens?: number;
|
|
15843
15786
|
/** Maximum context window (tokens) */
|
|
15844
15787
|
context_window?: number;
|
|
15845
15788
|
/** Median latency (p50, ms) */
|
|
@@ -16218,8 +16161,6 @@ interface AgentDefinitionProperties {
|
|
|
16218
16161
|
allow_code_execution?: boolean;
|
|
16219
16162
|
/** Whether the agent can process images and other media */
|
|
16220
16163
|
multimodal?: boolean;
|
|
16221
|
-
/** Operational status of this agent definition */
|
|
16222
|
-
agent_status?: 'active' | 'disabled' | 'testing';
|
|
16223
16164
|
/** Version label for this agent definition (e.g. "1.4.2") */
|
|
16224
16165
|
version?: string;
|
|
16225
16166
|
}
|
|
@@ -16279,7 +16220,6 @@ interface AgentTaskProperties {
|
|
|
16279
16220
|
* const properties: ReviewGateProperties = {
|
|
16280
16221
|
* gate_type: 'human_review',
|
|
16281
16222
|
* required_approvers: ['eng-lead', 'security-reviewer'],
|
|
16282
|
-
* gate_status: 'pending',
|
|
16283
16223
|
* }
|
|
16284
16224
|
*/
|
|
16285
16225
|
interface ReviewGateProperties {
|
|
@@ -16287,8 +16227,6 @@ interface ReviewGateProperties {
|
|
|
16287
16227
|
gate_type?: 'human_review' | 'automated_check' | 'approval';
|
|
16288
16228
|
/** People or roles that must approve. Promote to `node_owned_by_person` edges (one per name) if ownership must be queryable. */
|
|
16289
16229
|
required_approvers?: string[];
|
|
16290
|
-
/** Current approval status of the gate */
|
|
16291
|
-
gate_status?: 'pending' | 'approved' | 'rejected' | 'bypassed';
|
|
16292
16230
|
}
|
|
16293
16231
|
/** Approval record.
|
|
16294
16232
|
*
|
|
@@ -17229,25 +17167,17 @@ interface AccountProperties {
|
|
|
17229
17167
|
industry?: string;
|
|
17230
17168
|
/** Number of employees at the account */
|
|
17231
17169
|
employee_count?: number;
|
|
17232
|
-
/** Annual revenue of the account */
|
|
17233
|
-
annual_revenue?: number;
|
|
17234
17170
|
}
|
|
17235
17171
|
/** Contact.
|
|
17236
17172
|
*
|
|
17237
17173
|
* @example
|
|
17238
17174
|
* const properties: ContactProperties = {
|
|
17239
17175
|
* contact_role: 'champion',
|
|
17240
|
-
* email: 'sam.patel@arkheiev.com',
|
|
17241
|
-
* phone: '+49 30 123456',
|
|
17242
17176
|
* }
|
|
17243
17177
|
*/
|
|
17244
17178
|
interface ContactProperties {
|
|
17245
17179
|
/** Job title or role within the account */
|
|
17246
17180
|
contact_role?: string;
|
|
17247
|
-
/** Email address */
|
|
17248
|
-
email?: string;
|
|
17249
|
-
/** Phone number */
|
|
17250
|
-
phone?: string;
|
|
17251
17181
|
/** Whether this person has purchasing authority */
|
|
17252
17182
|
is_decision_maker?: boolean;
|
|
17253
17183
|
}
|
|
@@ -17433,8 +17363,6 @@ interface MarketingChannelProperties {
|
|
|
17433
17363
|
monthly_budget?: number;
|
|
17434
17364
|
/** Return on investment ratio */
|
|
17435
17365
|
roi?: number;
|
|
17436
|
-
/** Operational status of the channel */
|
|
17437
|
-
channel_status?: 'active' | 'paused' | 'deprecated';
|
|
17438
17366
|
}
|
|
17439
17367
|
/** Marketing campaign plan.
|
|
17440
17368
|
*
|
|
@@ -18235,7 +18163,6 @@ interface PartnerRevenueShareProperties {
|
|
|
18235
18163
|
*
|
|
18236
18164
|
* @example
|
|
18237
18165
|
* const properties: WorkspaceProperties = {
|
|
18238
|
-
* slug: 'q2-discovery',
|
|
18239
18166
|
* visibility: 'shared',
|
|
18240
18167
|
* purpose: 'Arrange personas, jobs, and opportunities for the Q2 discovery sprint.',
|
|
18241
18168
|
* workspace_purpose: 'discovery',
|
|
@@ -18247,8 +18174,6 @@ interface PartnerRevenueShareProperties {
|
|
|
18247
18174
|
* }
|
|
18248
18175
|
*/
|
|
18249
18176
|
interface WorkspaceProperties {
|
|
18250
|
-
/** URL-friendly identifier */
|
|
18251
|
-
slug?: string;
|
|
18252
18177
|
/** Who can see this workspace */
|
|
18253
18178
|
visibility?: 'private' | 'shared' | 'public';
|
|
18254
18179
|
/** Free-text description. Pairs with the closed-enum `workspace_purpose`. */
|
|
@@ -21884,7 +21809,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
21884
21809
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
21885
21810
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
21886
21811
|
*/
|
|
21887
|
-
declare const UPG_VERSION: "0.
|
|
21812
|
+
declare const UPG_VERSION: "0.16.0";
|
|
21888
21813
|
/**
|
|
21889
21814
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
21890
21815
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|
package/dist/index.d.ts
CHANGED
|
@@ -10001,15 +10001,12 @@ type MarketingPlatform = 'discord' | 'email' | 'google' | 'instagram' | 'linkedi
|
|
|
10001
10001
|
* @example
|
|
10002
10002
|
* const properties: OrganizationProperties = {
|
|
10003
10003
|
* logo_url: 'https://arkheiev.com/logo.svg',
|
|
10004
|
-
* billing_plan: 'business-annual',
|
|
10005
10004
|
* industry: 'Developer Tools',
|
|
10006
10005
|
* }
|
|
10007
10006
|
*/
|
|
10008
10007
|
interface OrganizationProperties {
|
|
10009
10008
|
/** URL of the organisation's logo */
|
|
10010
10009
|
logo_url?: string;
|
|
10011
|
-
/** Current billing / subscription plan */
|
|
10012
|
-
billing_plan?: string;
|
|
10013
10010
|
/** Industry vertical the organisation operates in */
|
|
10014
10011
|
industry?: string;
|
|
10015
10012
|
}
|
|
@@ -11838,15 +11835,12 @@ interface DesignConceptProperties {
|
|
|
11838
11835
|
* @example
|
|
11839
11836
|
* const properties: PrototypeProperties = {
|
|
11840
11837
|
* fidelity: 'low',
|
|
11841
|
-
* test_status: 'untested',
|
|
11842
11838
|
* tool: 'entopo',
|
|
11843
11839
|
* }
|
|
11844
11840
|
*/
|
|
11845
11841
|
interface PrototypeProperties {
|
|
11846
11842
|
/** Detail level */
|
|
11847
11843
|
fidelity?: 'low' | 'medium' | 'high';
|
|
11848
|
-
/** User-test status */
|
|
11849
|
-
test_status?: 'untested' | 'testing' | 'passed' | 'failed';
|
|
11850
11844
|
/** Authoring tool */
|
|
11851
11845
|
tool?: string;
|
|
11852
11846
|
}
|
|
@@ -12397,27 +12391,18 @@ interface OutcomeProperties {
|
|
|
12397
12391
|
evidence_summary?: string;
|
|
12398
12392
|
/** Confidence this is the right outcome to pursue */
|
|
12399
12393
|
confidence?: UPGAssessment;
|
|
12400
|
-
/**
|
|
12401
|
-
* Current lifecycle phase, mirroring the `outcome` lifecycle in
|
|
12402
|
-
* `grammar/lifecycles.ts` (UPG-579 Option B): `identified` -> `measuring` ->
|
|
12403
|
-
* `achieved` | `abandoned`.
|
|
12404
|
-
*/
|
|
12405
|
-
outcome_status?: 'identified' | 'measuring' | 'achieved' | 'abandoned';
|
|
12406
12394
|
}
|
|
12407
12395
|
/** A high-level strategic goal. The O in OKR.
|
|
12408
12396
|
*
|
|
12409
12397
|
* @example
|
|
12410
12398
|
* const properties: ObjectiveProperties = {
|
|
12411
12399
|
* timeframe: '12-18 months',
|
|
12412
|
-
* objective_status: 'active',
|
|
12413
12400
|
* progress: 42,
|
|
12414
12401
|
* }
|
|
12415
12402
|
*/
|
|
12416
12403
|
interface ObjectiveProperties {
|
|
12417
12404
|
/** Planning timeframe (e.g. "Q1 2026", "H1 2026") */
|
|
12418
12405
|
timeframe?: string;
|
|
12419
|
-
/** Current status */
|
|
12420
|
-
objective_status?: 'active' | 'achieved' | 'deferred';
|
|
12421
12406
|
/** Overall progress (0–100) */
|
|
12422
12407
|
progress?: number;
|
|
12423
12408
|
}
|
|
@@ -12443,7 +12428,8 @@ interface KeyResultProperties {
|
|
|
12443
12428
|
* A semantic container (e.g. "Canvas & Visualisation", "AI & Intelligence",
|
|
12444
12429
|
* "Onboarding") that gathers features under a shared product surface, owning
|
|
12445
12430
|
* team, or capability. Lifecycle (planned → active → deprecated) is governed
|
|
12446
|
-
* by `area_status
|
|
12431
|
+
* by the base-node `status` field (the former `area_status` property was
|
|
12432
|
+
* collapsed into it in 0.15.0, UPG-689 Pattern D).
|
|
12447
12433
|
*
|
|
12448
12434
|
* Per UPG principle P14, structural relationships are edges:
|
|
12449
12435
|
* parent product: `product_organised_by_feature_area`
|
|
@@ -12460,7 +12446,6 @@ interface KeyResultProperties {
|
|
|
12460
12446
|
* priority: 'high',
|
|
12461
12447
|
* maturity: 'mature',
|
|
12462
12448
|
* owner: 'sam.patel@arkheiev.com',
|
|
12463
|
-
* area_status: 'active',
|
|
12464
12449
|
* }
|
|
12465
12450
|
*/
|
|
12466
12451
|
interface FeatureAreaProperties {
|
|
@@ -12480,8 +12465,6 @@ interface FeatureAreaProperties {
|
|
|
12480
12465
|
* `legacy` = being phased out for a successor.
|
|
12481
12466
|
*/
|
|
12482
12467
|
maturity?: 'nascent' | 'growing' | 'mature' | 'legacy';
|
|
12483
|
-
/** Status in the product structure */
|
|
12484
|
-
area_status?: 'active' | 'planned' | 'deprecated';
|
|
12485
12468
|
}
|
|
12486
12469
|
/** A discrete, user-facing capability of the product.
|
|
12487
12470
|
*
|
|
@@ -12672,7 +12655,6 @@ interface RoadmapProperties {
|
|
|
12672
12655
|
* const properties: RoadmapItemProperties = {
|
|
12673
12656
|
* quarter: '2026-Q2',
|
|
12674
12657
|
* priority: 'high',
|
|
12675
|
-
* item_status: 'planned',
|
|
12676
12658
|
* }
|
|
12677
12659
|
*/
|
|
12678
12660
|
interface RoadmapItemProperties {
|
|
@@ -12680,8 +12662,6 @@ interface RoadmapItemProperties {
|
|
|
12680
12662
|
quarter?: string;
|
|
12681
12663
|
/** Importance against other items */
|
|
12682
12664
|
priority?: Priority;
|
|
12683
|
-
/** Status. `deferred` = explicitly pushed to a later period. */
|
|
12684
|
-
item_status?: 'planned' | 'in_progress' | 'shipped' | 'deferred';
|
|
12685
12665
|
/** Delivery confidence within the planned period (UPGAssessment on `confidence_5`). */
|
|
12686
12666
|
confidence?: UPGAssessment;
|
|
12687
12667
|
/** ISO date work begins. More precise than `quarter` for continuous planning. */
|
|
@@ -13024,20 +13004,13 @@ interface TechnicalDebtItemProperties {
|
|
|
13024
13004
|
* @example
|
|
13025
13005
|
* const properties: FeatureFlagProperties = {
|
|
13026
13006
|
* key: 'cta.primary.signup',
|
|
13027
|
-
* flag_status: 'on',
|
|
13028
13007
|
* rollout_pct: 42,
|
|
13029
13008
|
* }
|
|
13030
13009
|
*/
|
|
13031
13010
|
interface FeatureFlagProperties {
|
|
13032
13011
|
/** Required. Stable flag key used in code (e.g. "new-checkout-flow"). */
|
|
13033
13012
|
key: string;
|
|
13034
|
-
/**
|
|
13035
|
-
* Activation state.
|
|
13036
|
-
* `on` = enabled for all. `off` = disabled for all.
|
|
13037
|
-
* `rollout` = partial via targeting_rules.
|
|
13038
|
-
*/
|
|
13039
|
-
flag_status?: 'on' | 'off' | 'rollout';
|
|
13040
|
-
/** Percentage enabled (0–100). Meaningful when `flag_status === 'rollout'`. */
|
|
13013
|
+
/** Percentage enabled (0–100). Meaningful when the flag's `status === 'rollout'`. */
|
|
13041
13014
|
rollout_pct?: number;
|
|
13042
13015
|
/** Human-readable targeting rules. Full rule evaluation happens in the flag service. */
|
|
13043
13016
|
targeting_rules?: string;
|
|
@@ -13064,7 +13037,6 @@ interface FeatureFlagProperties {
|
|
|
13064
13037
|
* const properties: DeploymentProperties = {
|
|
13065
13038
|
* environment: 'prod',
|
|
13066
13039
|
* timestamp: '2026-04-17T09:00:00Z',
|
|
13067
|
-
* deploy_status: 'success',
|
|
13068
13040
|
* }
|
|
13069
13041
|
*/
|
|
13070
13042
|
interface DeploymentProperties {
|
|
@@ -13072,8 +13044,6 @@ interface DeploymentProperties {
|
|
|
13072
13044
|
environment?: 'dev' | 'staging' | 'prod';
|
|
13073
13045
|
/** ISO timestamp */
|
|
13074
13046
|
timestamp?: string;
|
|
13075
|
-
/** Current status */
|
|
13076
|
-
deploy_status?: 'success' | 'failure' | 'rolling';
|
|
13077
13047
|
/** Git SHA of the deployed commit */
|
|
13078
13048
|
sha?: string;
|
|
13079
13049
|
/** Wall-clock duration in seconds. Tracks deployment speed trends. */
|
|
@@ -13176,7 +13146,6 @@ interface ApiEndpointProperties {
|
|
|
13176
13146
|
* const properties: DatabaseSchemaProperties = {
|
|
13177
13147
|
* db_type: 'postgres',
|
|
13178
13148
|
* schema_version: '1.3.0',
|
|
13179
|
-
* migration_status: 'current',
|
|
13180
13149
|
* }
|
|
13181
13150
|
*/
|
|
13182
13151
|
interface DatabaseSchemaProperties {
|
|
@@ -13184,8 +13153,6 @@ interface DatabaseSchemaProperties {
|
|
|
13184
13153
|
db_type?: 'postgres' | 'mysql' | 'mongodb' | 'redis' | 'other';
|
|
13185
13154
|
/** Current schema version */
|
|
13186
13155
|
schema_version?: string;
|
|
13187
|
-
/** Pending-migration status */
|
|
13188
|
-
migration_status?: 'current' | 'pending' | 'failed';
|
|
13189
13156
|
/** Owning person or team responsible for design and migrations. Promote to a `node_owned_by_team` edge if ownership must be queryable. */
|
|
13190
13157
|
owner?: string;
|
|
13191
13158
|
/** Tables or collections in this schema. Useful for migration scope estimation. */
|
|
@@ -13311,8 +13278,6 @@ interface ExternalApiProperties {
|
|
|
13311
13278
|
auth_type?: 'api_key' | 'oauth2' | 'jwt' | 'basic' | 'none';
|
|
13312
13279
|
/** Rate limit description */
|
|
13313
13280
|
rate_limits?: string;
|
|
13314
|
-
/** Availability */
|
|
13315
|
-
api_status?: 'active' | 'deprecated' | 'beta' | 'unavailable';
|
|
13316
13281
|
}
|
|
13317
13282
|
/** Data flow between services.
|
|
13318
13283
|
*
|
|
@@ -13382,8 +13347,6 @@ interface InvestigationProperties {
|
|
|
13382
13347
|
resolved_at?: ISODateTime;
|
|
13383
13348
|
/** Lead investigator (email or handle). Distinct from the team owning the affected service. Promote to a `node_owned_by_person` edge if ownership must be queryable. */
|
|
13384
13349
|
lead_investigator?: string;
|
|
13385
|
-
/** Originating session */
|
|
13386
|
-
session_id?: string;
|
|
13387
13350
|
/**
|
|
13388
13351
|
* Kind of issue under investigation. Distinct from `RootCauseProperties.cause_category`,
|
|
13389
13352
|
* which captures *why something went wrong*.
|
|
@@ -14926,14 +14889,11 @@ interface DataProductProperties {
|
|
|
14926
14889
|
*
|
|
14927
14890
|
* @example
|
|
14928
14891
|
* const properties: DataPipelineProperties = {
|
|
14929
|
-
* pipeline_status: 'active',
|
|
14930
14892
|
* schedule: '0 2 * * *',
|
|
14931
14893
|
* avg_runtime: '3m 20s',
|
|
14932
14894
|
* }
|
|
14933
14895
|
*/
|
|
14934
14896
|
interface DataPipelineProperties {
|
|
14935
|
-
/** Operational status of the pipeline */
|
|
14936
|
-
pipeline_status?: 'active' | 'paused' | 'failed' | 'deprecated';
|
|
14937
14897
|
/** Cron or scheduling expression */
|
|
14938
14898
|
schedule?: string;
|
|
14939
14899
|
/** Average wall-clock runtime per execution */
|
|
@@ -15107,7 +15067,6 @@ interface InternalDocProperties {
|
|
|
15107
15067
|
* source_url: 'https://github.com/unified-product-graph/core/blob/main/spec/v0.2/upg-core.md',
|
|
15108
15068
|
* platform: 'markdown',
|
|
15109
15069
|
* document_type: 'spec',
|
|
15110
|
-
* author: 'fraan@theproductcreator.com',
|
|
15111
15070
|
* last_updated: '2026-04-28T13:27:08Z',
|
|
15112
15071
|
* word_count: 2480,
|
|
15113
15072
|
* content_summary: 'Defines the v0.2 entity catalogue, edge catalogue, and migration adapters.',
|
|
@@ -15122,8 +15081,6 @@ interface DocumentProperties {
|
|
|
15122
15081
|
platform?: 'markdown' | 'notion' | 'figma' | 'google_docs' | 'confluence' | 'github' | 'linear' | 'other';
|
|
15123
15082
|
/** Purpose classification */
|
|
15124
15083
|
document_type?: 'vision' | 'plan' | 'decision' | 'research' | 'spec' | 'audit' | 'session' | 'feedback' | 'case-study' | 'narrative' | 'bug-report' | 'archive-collection' | 'rfc' | 'runbook' | 'guide' | 'onboarding' | 'brief' | 'report' | 'reference';
|
|
15125
|
-
/** Author (free-form: name, email, or handle). Promote to a `node_owned_by_person` edge if ownership must be queryable. */
|
|
15126
|
-
author?: string;
|
|
15127
15084
|
/** ISO 8601 last-meaningful-update */
|
|
15128
15085
|
last_updated?: ISODateTime;
|
|
15129
15086
|
/** Approximate word count. Useful for planning, indexing, summarisation. */
|
|
@@ -15211,12 +15168,6 @@ interface LegalEntityProperties {
|
|
|
15211
15168
|
jurisdiction?: string;
|
|
15212
15169
|
/** Description of intellectual property ownership */
|
|
15213
15170
|
ip_ownership?: string;
|
|
15214
|
-
/** Principal business address */
|
|
15215
|
-
principal_address?: string;
|
|
15216
|
-
/** Tax identification number */
|
|
15217
|
-
tax_id?: string;
|
|
15218
|
-
/** Official registration or incorporation number */
|
|
15219
|
-
registration_number?: string;
|
|
15220
15171
|
/** Date the entity was incorporated (ISO format) */
|
|
15221
15172
|
date_incorporated?: string;
|
|
15222
15173
|
}
|
|
@@ -15411,15 +15362,12 @@ interface ComplianceFrameworkProperties {
|
|
|
15411
15362
|
* @example
|
|
15412
15363
|
* const properties: SecurityAuditProperties = {
|
|
15413
15364
|
* audit_scope: 'All customer-facing APIs and the billing service.',
|
|
15414
|
-
* audit_status: 'scheduled',
|
|
15415
15365
|
* findings_count: 42,
|
|
15416
15366
|
* }
|
|
15417
15367
|
*/
|
|
15418
15368
|
interface SecurityAuditProperties {
|
|
15419
15369
|
/** Systems or processes covered by the audit */
|
|
15420
15370
|
audit_scope?: string;
|
|
15421
|
-
/** Current progress of the audit */
|
|
15422
|
-
audit_status?: 'scheduled' | 'in_progress' | 'completed';
|
|
15423
15371
|
/** Total number of findings */
|
|
15424
15372
|
findings_count?: number;
|
|
15425
15373
|
/** Number of critical-severity findings */
|
|
@@ -15487,14 +15435,11 @@ interface RoleProperties {
|
|
|
15487
15435
|
*
|
|
15488
15436
|
* @example
|
|
15489
15437
|
* const properties: PersonProperties = {
|
|
15490
|
-
* email: 'ada@example.com',
|
|
15491
15438
|
* role_title: 'Product Engineer',
|
|
15492
15439
|
* time_zone: 'Europe/Berlin',
|
|
15493
15440
|
* }
|
|
15494
15441
|
*/
|
|
15495
15442
|
interface PersonProperties {
|
|
15496
|
-
/** Primary contact email. Stable identifier for de-duplication. */
|
|
15497
|
-
email?: string;
|
|
15498
15443
|
/** Free-text job title. Distinct from the structured `role` entity. */
|
|
15499
15444
|
role_title?: string;
|
|
15500
15445
|
/** IANA time zone (e.g. "Europe/Berlin"). Useful for capacity / on-call planning. */
|
|
@@ -15838,8 +15783,6 @@ interface AiModelProperties {
|
|
|
15838
15783
|
model_version?: string;
|
|
15839
15784
|
/** Intended use case */
|
|
15840
15785
|
model_purpose?: string;
|
|
15841
|
-
/** Cost per 1,000 tokens */
|
|
15842
|
-
cost_per_1k_tokens?: number;
|
|
15843
15786
|
/** Maximum context window (tokens) */
|
|
15844
15787
|
context_window?: number;
|
|
15845
15788
|
/** Median latency (p50, ms) */
|
|
@@ -16218,8 +16161,6 @@ interface AgentDefinitionProperties {
|
|
|
16218
16161
|
allow_code_execution?: boolean;
|
|
16219
16162
|
/** Whether the agent can process images and other media */
|
|
16220
16163
|
multimodal?: boolean;
|
|
16221
|
-
/** Operational status of this agent definition */
|
|
16222
|
-
agent_status?: 'active' | 'disabled' | 'testing';
|
|
16223
16164
|
/** Version label for this agent definition (e.g. "1.4.2") */
|
|
16224
16165
|
version?: string;
|
|
16225
16166
|
}
|
|
@@ -16279,7 +16220,6 @@ interface AgentTaskProperties {
|
|
|
16279
16220
|
* const properties: ReviewGateProperties = {
|
|
16280
16221
|
* gate_type: 'human_review',
|
|
16281
16222
|
* required_approvers: ['eng-lead', 'security-reviewer'],
|
|
16282
|
-
* gate_status: 'pending',
|
|
16283
16223
|
* }
|
|
16284
16224
|
*/
|
|
16285
16225
|
interface ReviewGateProperties {
|
|
@@ -16287,8 +16227,6 @@ interface ReviewGateProperties {
|
|
|
16287
16227
|
gate_type?: 'human_review' | 'automated_check' | 'approval';
|
|
16288
16228
|
/** People or roles that must approve. Promote to `node_owned_by_person` edges (one per name) if ownership must be queryable. */
|
|
16289
16229
|
required_approvers?: string[];
|
|
16290
|
-
/** Current approval status of the gate */
|
|
16291
|
-
gate_status?: 'pending' | 'approved' | 'rejected' | 'bypassed';
|
|
16292
16230
|
}
|
|
16293
16231
|
/** Approval record.
|
|
16294
16232
|
*
|
|
@@ -17229,25 +17167,17 @@ interface AccountProperties {
|
|
|
17229
17167
|
industry?: string;
|
|
17230
17168
|
/** Number of employees at the account */
|
|
17231
17169
|
employee_count?: number;
|
|
17232
|
-
/** Annual revenue of the account */
|
|
17233
|
-
annual_revenue?: number;
|
|
17234
17170
|
}
|
|
17235
17171
|
/** Contact.
|
|
17236
17172
|
*
|
|
17237
17173
|
* @example
|
|
17238
17174
|
* const properties: ContactProperties = {
|
|
17239
17175
|
* contact_role: 'champion',
|
|
17240
|
-
* email: 'sam.patel@arkheiev.com',
|
|
17241
|
-
* phone: '+49 30 123456',
|
|
17242
17176
|
* }
|
|
17243
17177
|
*/
|
|
17244
17178
|
interface ContactProperties {
|
|
17245
17179
|
/** Job title or role within the account */
|
|
17246
17180
|
contact_role?: string;
|
|
17247
|
-
/** Email address */
|
|
17248
|
-
email?: string;
|
|
17249
|
-
/** Phone number */
|
|
17250
|
-
phone?: string;
|
|
17251
17181
|
/** Whether this person has purchasing authority */
|
|
17252
17182
|
is_decision_maker?: boolean;
|
|
17253
17183
|
}
|
|
@@ -17433,8 +17363,6 @@ interface MarketingChannelProperties {
|
|
|
17433
17363
|
monthly_budget?: number;
|
|
17434
17364
|
/** Return on investment ratio */
|
|
17435
17365
|
roi?: number;
|
|
17436
|
-
/** Operational status of the channel */
|
|
17437
|
-
channel_status?: 'active' | 'paused' | 'deprecated';
|
|
17438
17366
|
}
|
|
17439
17367
|
/** Marketing campaign plan.
|
|
17440
17368
|
*
|
|
@@ -18235,7 +18163,6 @@ interface PartnerRevenueShareProperties {
|
|
|
18235
18163
|
*
|
|
18236
18164
|
* @example
|
|
18237
18165
|
* const properties: WorkspaceProperties = {
|
|
18238
|
-
* slug: 'q2-discovery',
|
|
18239
18166
|
* visibility: 'shared',
|
|
18240
18167
|
* purpose: 'Arrange personas, jobs, and opportunities for the Q2 discovery sprint.',
|
|
18241
18168
|
* workspace_purpose: 'discovery',
|
|
@@ -18247,8 +18174,6 @@ interface PartnerRevenueShareProperties {
|
|
|
18247
18174
|
* }
|
|
18248
18175
|
*/
|
|
18249
18176
|
interface WorkspaceProperties {
|
|
18250
|
-
/** URL-friendly identifier */
|
|
18251
|
-
slug?: string;
|
|
18252
18177
|
/** Who can see this workspace */
|
|
18253
18178
|
visibility?: 'private' | 'shared' | 'public';
|
|
18254
18179
|
/** Free-text description. Pairs with the closed-enum `workspace_purpose`. */
|
|
@@ -21884,7 +21809,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
21884
21809
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
21885
21810
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
21886
21811
|
*/
|
|
21887
|
-
declare const UPG_VERSION: "0.
|
|
21812
|
+
declare const UPG_VERSION: "0.16.0";
|
|
21888
21813
|
/**
|
|
21889
21814
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
21890
21815
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|