@disclosureos/origins 2.0.0-beta.3 → 2.0.0-beta.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.0-beta.4
4
+
5
+ ### Minor Changes
6
+
7
+ - Revise the V2 observable definitions and support vocabulary directly, and add shared catalog, immutable revision and term references with supplied-byte validation. Keep the chosen term separate from the subject under review and its supporting sources. Export full observable and attributed OCS origin catalogs with retained methodological context. Update enriched-observation and scoring consumers to the revised definitions. This breaks earlier beta definition and support assumptions; it does not establish an anomalous origin or turn a reported characteristic into a confirmed assessment.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [0b00be3]
12
+ - Updated dependencies [9580e62]
13
+ - Updated dependencies [559eac9]
14
+ - Updated dependencies [5a686c1]
15
+ - Updated dependencies [813ee2c]
16
+ - Updated dependencies
17
+ - @disclosureos/records@2.0.0-beta.4
18
+
3
19
  ## 2.0.0-beta.3
4
20
 
5
21
  ### Patch Changes
package/README.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @disclosureos/origins
2
2
 
3
+ Describe origin hypotheses using the Origin Classification System, retaining definitions, hierarchy, qualifications and attribution. A listed hypothesis is not an established explanation.
4
+
5
+ This README describes the **2.0.0-beta.4** API. Use one exact package version
6
+ throughout an application. Check [availability](https://os.disclosure.org/v2/docs/installation)
7
+ before installing; a source branch or packed candidate is not proof of npm
8
+ publication. For a candidate that is not yet published, use the verified local
9
+ tarballs. See the [release notes](https://github.com/disclosurefoundation/disclosureos/blob/codex/beta4-release-closure/docs/releases/2.0.0-beta.4.md)
10
+ for scope and verification. Avoid unversioned installs, which can select a different
11
+ API generation through `latest`.
12
+
13
+ ## V2 entry point
14
+
15
+ Use the catalog exports from the package root with the shared vocabulary-reference contract in `@disclosureos/records/experimental/v2`. Evaluate the reference through `@disclosureos/schema/experimental/v2`. Scientific-testability labels describe the framework and are not a validation of a particular claim. Physical, psychosocial and metaphysical categories remain distinguishable.
16
+
17
+ [Implementation guide](https://os.disclosure.org/v2/docs/origins) · [Availability](https://os.disclosure.org/v2/docs/installation) · [Example viewer](https://os.disclosure.org/showcase)
18
+
19
+ ## Choose a package version
20
+
21
+ Once this version is available in the registry, install it explicitly:
22
+
23
+ ```sh
24
+ npm install --save-exact @disclosureos/origins@2.0.0-beta.4
25
+ ```
26
+
27
+ Use the same exact release for all DisclosureOS packages. Before publication,
28
+ review a verified source checkout or its locally packed artifacts. Packages are
29
+ ESM; Node.js 22 is the documented getting-started runtime.
30
+
31
+ ## Additional API reference
32
+
33
+ <details>
34
+ <summary>Earlier composition APIs and detailed source-workflow reference</summary>
35
+
36
+ The following reference retains earlier APIs and source checkpoints. It is not the
37
+ V2 first-record tutorial. Installation commands here describe the candidate API
38
+ set; use the availability guidance above until that version is published.
39
+
3
40
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
41
 
5
42
  Classification taxonomy for the [DisclosureOS](https://github.com/disclosurefoundation)
@@ -10,22 +47,6 @@ systems researchers already use (Hynek, Vallée, AARO, GEIPAN).
10
47
 
11
48
  ## The DisclosureOS model
12
49
 
13
- DisclosureOS is a **six-part standard**. Each part answers one question about an
14
- observation; `@disclosureos/schema` binds the package-owned pieces into one portable
15
- contract (a single TS type + JSON Schema + non-stripping parse).
16
-
17
- | Part | Package surface | Question it answers |
18
- |---|---|---|
19
- | **Records** | `@disclosureos/records` | *What was observed?* |
20
- | **Observables** | `@disclosureos/observables` | *What anomalous characteristics did it show?* |
21
- | **Origins** | `@disclosureos/origins` | *What might explain it?* |
22
- | **Claims** | `@disclosureos/records/shared` | *Who assessed it, why, and on what evidence?* |
23
- | **Scoring** | `@disclosureos/scoring` | *How complete / compelling is the case?* |
24
- | **Instruments** | `@disclosureos/instruments` | *What hardware produced the data?* |
25
-
26
- Supporting packages: **`@disclosureos/schema`** (the portable contract that composes the
27
- package-owned pieces), **`@disclosureos/cli`** (tooling), and **`@disclosureos/examples`**
28
- (the runnable golden path). *(You are here: **Origins**.)*
29
50
 
30
51
  ## Built on records
31
52
 
@@ -43,12 +64,12 @@ import '@disclosureos/origins'; // `observation.origin` is now typed
43
64
  > with `pnpm --filter @disclosureos/examples golden-path`.
44
65
  >
45
66
  > **Migrating an existing dataset?** See [`examples/migration-path.ts`](../../examples/migration-path.ts)
46
- > and the [onboarding workspace](https://os.disclosure.org/onboard).
67
+ > and the [onboarding workspace](https://os.disclosure.org/v2/inspect).
47
68
 
48
69
  ## Install
49
70
 
50
71
  ```bash
51
- pnpm add @disclosureos/origins @disclosureos/records zod
72
+ pnpm add @disclosureos/origins@2.0.0-beta.4 @disclosureos/records@2.0.0-beta.4 zod
52
73
  ```
53
74
 
54
75
  ## Quick start
@@ -94,3 +115,11 @@ validator or framework can consume them directly, with no DisclosureOS-specific
94
115
  ## License
95
116
 
96
117
  MIT © [Disclosure Foundation](https://disclosure.org)
118
+
119
+ ## Shared V2 vocabulary references
120
+
121
+ `createOriginCatalog({ id, revision, publishedBy, publishedAt })` exports the full OCS taxonomy in the records-owned `VocabularyCatalog` envelope. It retains node hierarchy, aliases and qualifications in `extensions["org.disclosureos.origins"]`, and records OCS attribution on the catalog. `readOriginTermDefinition(term)` validates and returns the complete node, or `undefined` for an unrelated or malformed term.
122
+
123
+ Retain and hash the serialized catalog before creating a reference. Catalog membership identifies a hypothesis; it does not select that hypothesis or establish an origin. The vocabulary reference remains separate from the reviewed subject and supporting sources. See [RFC 0007](../../docs/rfcs/0007-vocabulary-references.md) for the shared binding contract.
124
+
125
+ </details>
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { OriginClassificationSlot } from './constants/index.js';
2
2
  export { ALL_OCS_IDS, LEAF_IDS, METAPHYSICAL_IDS, OCS_PROVENANCE, ORIGIN_DOMAINS, PHYSICAL_IDS, PSYCHOSOCIAL_IDS, TESTABLE_IDS } from './constants/index.js';
3
- export { M as MetaphysicalSubdomain, b as MetaphysicalSubdomainSchema, a as OCSNode, c as OCSNodeSchema, O as OriginDomain, d as OriginDomainSchema, e as OriginSubdomain, f as OriginSubdomainSchema, P as PhysicalSubdomain, g as PhysicalSubdomainSchema, h as PsychosocialSubdomain, i as PsychosocialSubdomainSchema } from './types-DhroHNFf.js';
3
+ import { a as OCSNode } from './types-DhroHNFf.js';
4
+ export { M as MetaphysicalSubdomain, b as MetaphysicalSubdomainSchema, c as OCSNodeSchema, O as OriginDomain, d as OriginDomainSchema, e as OriginSubdomain, f as OriginSubdomainSchema, P as PhysicalSubdomain, g as PhysicalSubdomainSchema, h as PsychosocialSubdomain, i as PsychosocialSubdomainSchema } from './types-DhroHNFf.js';
4
5
  export { OCS_TAXONOMY, getAncestors, getChildren, getDomain, getLeafNodes, getNode, getPath, getSiblings, getTestableNodes, searchNodes } from './taxonomy/index.js';
5
6
  export { PHYSICAL_NODES } from './taxonomy/physical/index.js';
6
7
  export { PSYCHOSOCIAL_NODES } from './taxonomy/psychosocial/index.js';
@@ -12,6 +13,7 @@ import { ValidationIssue } from '@disclosureos/records/shared';
12
13
  export { isConfidence } from '@disclosureos/records/shared';
13
14
  export { ClassificationOptions, createConfidenceDistribution, createOriginClaim } from './factories/index.js';
14
15
  export { formatDomainLabel, formatNodeLabel, formatOCSCode, formatTestability } from './formatters/index.js';
16
+ import { VocabularyCatalog, VocabularyCatalogTerm } from '@disclosureos/records/experimental/v2';
15
17
  import 'zod';
16
18
 
17
19
  /**
@@ -50,4 +52,12 @@ declare function originsJsonSchema(): Record<string, unknown>;
50
52
  */
51
53
  declare function validateOriginClassification(value: unknown): ValidationIssue[];
52
54
 
53
- export { ORIGINS_SCHEMA_ID, ORIGINS_SCHEMA_VERSION, OriginClassificationSlot, originsJsonSchema, validateOriginClassification };
55
+ declare const ORIGIN_CATALOG_ID = "https://os.disclosure.org/vocabularies/origin-hypotheses";
56
+ declare const ORIGIN_TERM_EXTENSION = "org.disclosureos.origins";
57
+ type OriginCatalogOptions = Pick<VocabularyCatalog, 'id' | 'revision' | 'publishedBy' | 'publishedAt'>;
58
+ /** Exports the OCS taxonomy using the shared vocabulary envelope. Membership does not establish an origin. */
59
+ declare function createOriginCatalog(options: OriginCatalogOptions): VocabularyCatalog;
60
+ /** Reads package-owned OCS metadata; unknown or malformed metadata is not a typed OCS node. */
61
+ declare function readOriginTermDefinition(term: VocabularyCatalogTerm): OCSNode | undefined;
62
+
63
+ export { OCSNode, ORIGINS_SCHEMA_ID, ORIGINS_SCHEMA_VERSION, ORIGIN_CATALOG_ID, ORIGIN_TERM_EXTENSION, type OriginCatalogOptions, OriginClassificationSlot, createOriginCatalog, originsJsonSchema, readOriginTermDefinition, validateOriginClassification };
package/dist/index.js CHANGED
@@ -1226,6 +1226,48 @@ function validateOriginClassification(value) {
1226
1226
  return issues;
1227
1227
  }
1228
1228
 
1229
- export { ALL_OCS_IDS, CategoryConfidenceSchema, ConfidenceDistributionSchema, HypothesisWeightSchema, LEAF_IDS, METAPHYSICAL_IDS, METAPHYSICAL_NODES, MetaphysicalSubdomainSchema, OCSNodeSchema, OCS_LABELS, OCS_PROVENANCE, OCS_TAXONOMY, ORIGINS_SCHEMA_ID, ORIGINS_SCHEMA_VERSION, ORIGIN_DOMAINS, ORIGIN_DOMAIN_LABELS, OriginClaimSchema, OriginDomainSchema, OriginSubdomainSchema, PHYSICAL_IDS, PHYSICAL_NODES, PSYCHOSOCIAL_IDS, PSYCHOSOCIAL_NODES, PhysicalSubdomainSchema, PsychosocialSubdomainSchema, TESTABLE_IDS, asOCSNodeId, createConfidenceDistribution, createOriginClaim, formatDomainLabel, formatNodeLabel, formatOCSCode, formatTestability, getAncestors, getChildren, getDomain, getLeafNodes, getNode, getPath, getSiblings, getTestableNodes, isConfidenceDistribution, isOCSNodeId, isOriginClaim, isOriginDomain, originsJsonSchema, searchNodes, validateOriginClassification };
1229
+ // src/catalog/index.ts
1230
+ var ORIGIN_CATALOG_ID = "https://os.disclosure.org/vocabularies/origin-hypotheses";
1231
+ var ORIGIN_TERM_EXTENSION = "org.disclosureos.origins";
1232
+ function createOriginCatalog(options) {
1233
+ return {
1234
+ kind: "vocabulary_catalog",
1235
+ schemaVersion: "0.1.0",
1236
+ ...options,
1237
+ catalogId: ORIGIN_CATALOG_ID,
1238
+ extensions: { [ORIGIN_TERM_EXTENSION]: { provenance: { ...OCS_PROVENANCE } } },
1239
+ terms: OCS_TAXONOMY.map((node) => {
1240
+ const { id, label, description, domain } = node;
1241
+ const metadata = {
1242
+ depth: node.depth,
1243
+ parentId: node.parentId,
1244
+ children: [...node.children],
1245
+ scientificallyTestable: node.scientificallyTestable
1246
+ };
1247
+ if (node.aliases !== void 0) metadata.aliases = [...node.aliases];
1248
+ return {
1249
+ id,
1250
+ label,
1251
+ description,
1252
+ category: domain,
1253
+ extensions: { [ORIGIN_TERM_EXTENSION]: metadata }
1254
+ };
1255
+ })
1256
+ };
1257
+ }
1258
+ function readOriginTermDefinition(term) {
1259
+ const metadata = term.extensions?.[ORIGIN_TERM_EXTENSION];
1260
+ if (!metadata || typeof metadata !== "object" || Array.isArray(metadata)) return void 0;
1261
+ const parsed = OCSNodeSchema.safeParse({
1262
+ ...metadata,
1263
+ id: term.id,
1264
+ label: term.label,
1265
+ description: term.description,
1266
+ domain: term.category
1267
+ });
1268
+ return parsed.success ? parsed.data : void 0;
1269
+ }
1270
+
1271
+ export { ALL_OCS_IDS, CategoryConfidenceSchema, ConfidenceDistributionSchema, HypothesisWeightSchema, LEAF_IDS, METAPHYSICAL_IDS, METAPHYSICAL_NODES, MetaphysicalSubdomainSchema, OCSNodeSchema, OCS_LABELS, OCS_PROVENANCE, OCS_TAXONOMY, ORIGINS_SCHEMA_ID, ORIGINS_SCHEMA_VERSION, ORIGIN_CATALOG_ID, ORIGIN_DOMAINS, ORIGIN_DOMAIN_LABELS, ORIGIN_TERM_EXTENSION, OriginClaimSchema, OriginDomainSchema, OriginSubdomainSchema, PHYSICAL_IDS, PHYSICAL_NODES, PSYCHOSOCIAL_IDS, PSYCHOSOCIAL_NODES, PhysicalSubdomainSchema, PsychosocialSubdomainSchema, TESTABLE_IDS, asOCSNodeId, createConfidenceDistribution, createOriginCatalog, createOriginClaim, formatDomainLabel, formatNodeLabel, formatOCSCode, formatTestability, getAncestors, getChildren, getDomain, getLeafNodes, getNode, getPath, getSiblings, getTestableNodes, isConfidenceDistribution, isOCSNodeId, isOriginClaim, isOriginDomain, originsJsonSchema, readOriginTermDefinition, searchNodes, validateOriginClassification };
1230
1272
  //# sourceMappingURL=index.js.map
1231
1273
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/taxonomy/types.ts","../src/taxonomy/tree.ts","../src/taxonomy/traversal.ts","../src/taxonomy/physical/index.ts","../src/taxonomy/psychosocial/index.ts","../src/taxonomy/metaphysical/index.ts","../src/classification/types.ts","../src/labels/index.ts","../src/constants/index.ts","../src/brands.ts","../src/guards/index.ts","../src/factories/index.ts","../src/formatters/index.ts","../src/schema.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\n\nexport const OriginDomainSchema = z\n .enum(['physical', 'psychosocial', 'metaphysical'])\n .describe('Top-level OCS origin domain.');\n\nexport type OriginDomain = z.infer<typeof OriginDomainSchema>;\n\nexport const PhysicalSubdomainSchema = z\n .enum(['intradimensional', 'extradimensional', 'interdimensional'])\n .describe('Subdomain of the physical origin domain.');\n\nexport type PhysicalSubdomain = z.infer<typeof PhysicalSubdomainSchema>;\n\nexport const PsychosocialSubdomainSchema = z\n .enum(['sociological', 'psychological', 'neurological'])\n .describe('Subdomain of the psychosocial origin domain.');\n\nexport type PsychosocialSubdomain = z.infer<typeof PsychosocialSubdomainSchema>;\n\nexport const MetaphysicalSubdomainSchema = z\n .enum(['paranormal', 'occult', 'transcendental'])\n .describe('Subdomain of the metaphysical origin domain.');\n\nexport type MetaphysicalSubdomain = z.infer<typeof MetaphysicalSubdomainSchema>;\n\nexport const OriginSubdomainSchema = z\n .union([PhysicalSubdomainSchema, PsychosocialSubdomainSchema, MetaphysicalSubdomainSchema])\n .describe('Any OCS subdomain across the three origin domains.');\n\nexport type OriginSubdomain = z.infer<typeof OriginSubdomainSchema>;\n\n/**\n * A single node in the Origin Classification System (OCS) taxonomy. Nodes form a\n * tree via `id`/`parentId`/`children` (children referenced by id, not nested).\n */\nexport const OCSNodeSchema = z\n .object({\n id: z.string().min(1).describe('Numeric dot-path identifier (e.g., \"1.1.2.1\").'),\n label: z.string().min(1).describe('Human-readable name for this OCS hypothesis node.'),\n description: z.string().describe('Plain-language explanation of what this hypothesis node covers.'),\n domain: OriginDomainSchema.describe('Top-level domain this node belongs to.'),\n depth: z\n .number()\n .int()\n .min(0)\n .describe('Tree depth: 0=domain, 1=subdomain, 2=category, 3=subcategory, 4=leaf.'),\n parentId: z.string().nullable().describe('Parent node id, or null for a domain root.'),\n children: z.array(z.string()).describe('Child node ids, referenced by id rather than nested inline.'),\n scientificallyTestable: z\n .boolean()\n .describe('Whether this hypothesis can be empirically falsified.'),\n aliases: z.array(z.string()).optional().describe('Alternative names (e.g., \"ETH\", \"CTH\").'),\n })\n .meta({ id: 'OCSNode' })\n .describe('A node in the OCS origin-hypothesis taxonomy.');\n\nexport type OCSNode = z.infer<typeof OCSNodeSchema>;\n","import type { OCSNode } from './types';\n\nexport const OCS_TAXONOMY: readonly OCSNode[] = [\n // ============================================================\n // DOMAIN 1.0 — PHYSICAL\n // ============================================================\n {\n id: '1',\n label: 'Physical',\n description: 'Theories attributing UAP to tangible, material objects or phenomena.',\n domain: 'physical',\n depth: 0,\n parentId: null,\n children: ['1.1', '1.2', '1.3'],\n scientificallyTestable: true,\n },\n\n // --- 1.1 Intradimensional ---\n {\n id: '1.1',\n label: 'Intradimensional',\n description: 'Manifestations from dimensions/realms within our own physical reality.',\n domain: 'physical',\n depth: 1,\n parentId: '1',\n children: ['1.1.1', '1.1.2', '1.1.3'],\n scientificallyTestable: true,\n },\n\n // 1.1.1 Prosaic\n {\n id: '1.1.1',\n label: 'Prosaic',\n description: 'Ordinary or conventional explanations for observed phenomena.',\n domain: 'physical',\n depth: 2,\n parentId: '1.1',\n children: ['1.1.1.1', '1.1.1.2'],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1',\n label: 'Natural',\n description: 'Atmospheric, celestial, or geological phenomena misidentified as anomalous.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.1',\n children: ['1.1.1.1.1', '1.1.1.1.2', '1.1.1.1.3', '1.1.1.1.4'],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.1',\n label: 'Optical Artifact / Illusion',\n description: 'Lens flares, reflections, mirages, temperature inversions, or other optical effects.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.2',\n label: 'Celestial',\n description: 'Stars, planets, meteors, satellites, or space debris misidentified.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.3',\n label: 'Meteorological',\n description: 'Ball lightning, lenticular clouds, sprites, or other atmospheric phenomena.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.4',\n label: 'Geophysical',\n description: 'Earthquake lights, piezoelectric effects, or volcanic phenomena.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2',\n label: 'Human',\n description: 'Human activities or technologies misidentified as anomalous.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.1',\n children: ['1.1.1.2.1', '1.1.1.2.2', '1.1.1.2.3', '1.1.1.2.4'],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.1',\n label: 'Governmental',\n description: 'Military aircraft, drones, or test vehicles from known government programs.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.2',\n label: 'Extra-Governmental',\n description: 'Black budget programs, Special Access Programs (SAPs), or unacknowledged projects.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.3',\n label: 'Inter-governmental',\n description: 'Foreign adversary technology or multinational classified programs.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.4',\n label: 'Private / Commercial',\n description: 'Commercial drones, private aerospace ventures, or civilian technology.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // 1.1.2 Cryptoterrestrial\n {\n id: '1.1.2',\n label: 'Cryptoterrestrial',\n description: 'Hidden Earth-based civilizations or entities operating outside known history.',\n domain: 'physical',\n depth: 2,\n parentId: '1.1',\n children: ['1.1.2.1', '1.1.2.2', '1.1.2.3', '1.1.2.4'],\n scientificallyTestable: true,\n aliases: ['CTH'],\n },\n {\n id: '1.1.2.1',\n label: 'Ancient / Proto-Human Survival',\n description: 'Remnant populations of earlier hominid species or ancient civilizations that survived in isolation.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.2.2',\n label: 'Breakaway Civilization',\n description: 'Human splinter groups that developed advanced technology in secret.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.2.3',\n label: 'Cryptids / Humanoids',\n description: 'Non-human intelligent entities indigenous to Earth but outside the known tree of life.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.2.4',\n label: 'Stranded \"Gods\"',\n description: 'Entities from ancient mythological accounts interpreted as literal stranded visitors.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // 1.1.3 Extraterrestrial\n {\n id: '1.1.3',\n label: 'Extraterrestrial',\n description: 'Intelligence visiting from other locations in spacetime.',\n domain: 'physical',\n depth: 2,\n parentId: '1.1',\n children: ['1.1.3.1', '1.1.3.2', '1.1.3.3', '1.1.3.4'],\n scientificallyTestable: true,\n aliases: ['ETH'],\n },\n {\n id: '1.1.3.1',\n label: 'Solar System',\n description: 'Intelligence originating from elsewhere in our solar system.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.3.2',\n label: 'Interstellar',\n description: 'Intelligence from other star systems within our galaxy.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.3.3',\n label: 'Intergalactic',\n description: 'Intelligence from other galaxies.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.3.4',\n label: 'Unknown Region of Space-Time',\n description: 'Intelligence from an uncharacterized region of our physical universe.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 1.2 Extradimensional ---\n {\n id: '1.2',\n label: 'Extradimensional',\n description: 'UAPs from other dimensions, parallel universes, or realms beyond our physical reality.',\n domain: 'physical',\n depth: 1,\n parentId: '1',\n children: ['1.2.1', '1.2.2'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1',\n label: '3-D Entity From Hyperspace',\n description: 'Entities projecting into our 3+1 dimensional spacetime from higher dimensions.',\n domain: 'physical',\n depth: 2,\n parentId: '1.2',\n children: ['1.2.1.1', '1.2.1.2', '1.2.1.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1.1',\n label: 'Compactified Dimensions',\n description: 'Entities from string theory / Kaluza-Klein compactified extra dimensions.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1.2',\n label: 'Hyperspace \"Bulk\"',\n description: 'Entities from the bulk space of Randall-Sundrum brane models.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1.3',\n label: 'Disconnected Hyperspace',\n description: 'Entities from higher-dimensional spaces not connected to our brane.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2',\n label: 'Hyper-D \"Brane\"',\n description: 'Brane interactions from string/M-theory producing observable effects.',\n domain: 'physical',\n depth: 2,\n parentId: '1.2',\n children: ['1.2.2.1', '1.2.2.2'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1',\n label: 'Projection / \"Shadow\"',\n description: 'Lower-dimensional projections of higher-dimensional objects.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.2',\n children: ['1.2.2.1.1', '1.2.2.1.2', '1.2.2.1.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1.1',\n label: '0-to-2 Dimensional',\n description: 'Point or plane-like projections from higher dimensions.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1.2',\n label: '3-Dimensional',\n description: 'Full volumetric projections appearing as solid objects.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1.3',\n label: 'Fractal Dimensional',\n description: 'Non-integer dimensional projections with fractal geometry.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2',\n label: '≤ 3-D \"Avatar\"',\n description: 'Controlled projections or constructs operating as proxies.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.2',\n children: ['1.2.2.2.1', '1.2.2.2.2', '1.2.2.2.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2.1',\n label: 'Hologram / \"Telepresence\"',\n description: 'Remote presence via holographic or light-based projection.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2.2',\n label: 'Automaton',\n description: 'Self-operating mechanical or energetic construct.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2.3',\n label: 'Artificial Lifeform',\n description: 'Engineered biological or hybrid entity operating as a proxy.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 1.3 Interdimensional ---\n {\n id: '1.3',\n label: 'Interdimensional',\n description: 'UAPs traversing between different dimensions or realities.',\n domain: 'physical',\n depth: 1,\n parentId: '1',\n children: ['1.3.1', '1.3.2', '1.3.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1',\n label: 'Multiverse',\n description: 'Entities or phenomena crossing between parallel universes.',\n domain: 'physical',\n depth: 2,\n parentId: '1.3',\n children: ['1.3.1.1', '1.3.1.2', '1.3.1.3', '1.3.1.4'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.1',\n label: 'Portal / Wormhole',\n description: 'Traversal via Einstein-Rosen bridges or manufactured gateways.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.2',\n label: 'Colliding Universe(s)',\n description: 'Phenomena from brane collision events (ekpyrotic cosmology).',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.3',\n label: 'Parallel Universe(s)',\n description: 'Entities from parallel but non-interacting universe branches.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.4',\n label: 'QFT \"Many Worlds\"',\n description: 'Quantum-mechanical many-worlds interpretation producing observable crossover.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2',\n label: 'Time Travel',\n description: 'Entities or vehicles traversing temporal dimensions.',\n domain: 'physical',\n depth: 2,\n parentId: '1.3',\n children: ['1.3.2.1', '1.3.2.2', '1.3.2.3', '1.3.2.4', '1.3.2.5'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.1',\n label: 'Humans From Future',\n description: 'Time-traveling humans from our future timeline.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.2',\n label: 'Humans From Past',\n description: 'Time-traveling humans from our past (advanced pre-history).',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.3',\n label: 'Humans From Alternate Timeline',\n description: 'Humans from divergent timeline branches.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.4',\n label: 'Non-Human Entity',\n description: 'Non-human intelligence traversing time dimensions.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.5',\n label: 'Additional Time Dimension(s)',\n description: 'Traversal via hypothetical extra temporal dimensions beyond our single time axis.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3',\n label: 'Scale Invariance',\n description: 'Phenomena emerging from scale-dependent physics or quantum-cosmological effects.',\n domain: 'physical',\n depth: 2,\n parentId: '1.3',\n children: ['1.3.3.1', '1.3.3.2', '1.3.3.3', '1.3.3.4', '1.3.3.5'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.1',\n label: 'Macro Quantum Fluctuation',\n description: 'Macroscopic manifestation of quantum vacuum fluctuations.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.2',\n label: 'Distance Recursion',\n description: 'Self-similar structure at different scales producing observable anomalies.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.3',\n label: 'Pan-Galactic Entanglement',\n description: 'Non-local quantum entanglement effects at galactic scales.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.4',\n label: 'Unobserved \"Vibratory Modes\"',\n description: 'Hidden vibrational modes of spacetime not yet detected by instruments.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.5',\n label: 'Conformal Cyclic Cosmology',\n description: 'Signals or entities from previous cosmic aeons (Penrose CCC).',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n\n // ============================================================\n // DOMAIN 2.0 — PSYCHOSOCIAL\n // ============================================================\n {\n id: '2',\n label: 'Psychosocial',\n description: 'Theories attributing UAP to psychological, perceptual, and sociological factors.',\n domain: 'psychosocial',\n depth: 0,\n parentId: null,\n children: ['2.1', '2.2', '2.3'],\n scientificallyTestable: true,\n aliases: ['PSH'],\n },\n\n // --- 2.1 Sociological ---\n {\n id: '2.1',\n label: 'Sociological',\n description: 'Social dynamics, group phenomena, and cultural factors producing UAP reports.',\n domain: 'psychosocial',\n depth: 1,\n parentId: '2',\n children: ['2.1.1', '2.1.2', '2.1.3', '2.1.4', '2.1.5'],\n scientificallyTestable: true,\n },\n {\n id: '2.1.1',\n label: 'Hypnosis',\n description: 'Hypnotic suggestion producing false UAP memories or experiences.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.2',\n label: 'Mass Hysteria',\n description: 'Collective delusion or social contagion producing shared UAP reports.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.3',\n label: 'Memetic Virus',\n description: 'Self-propagating cultural narratives that generate UAP reports.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.4',\n label: 'Conditioning / Disinformation',\n description: 'Deliberate manipulation, propaganda, or psyops creating UAP narratives.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.5',\n label: 'Hoax',\n description: 'Deliberate fabrication for attention, profit, or amusement.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 2.2 Psychological ---\n {\n id: '2.2',\n label: 'Psychological',\n description: 'Individual psychological processes producing UAP perceptions.',\n domain: 'psychosocial',\n depth: 1,\n parentId: '2',\n children: ['2.2.1', '2.2.2', '2.2.3', '2.2.4', '2.2.5'],\n scientificallyTestable: true,\n },\n {\n id: '2.2.1',\n label: 'False Belief / Misinterpretation',\n description: 'Cognitive bias or perceptual error leading to misidentification.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.2',\n label: 'Fallible / Screen Memory',\n description: 'False or constructed memories obscuring actual events.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.3',\n label: 'Psychosomatic Disorder',\n description: 'Physical symptoms produced by psychological distress attributed to UAP.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.4',\n label: 'Psychosis / Hallucination',\n description: 'Clinical psychiatric conditions producing UAP perceptions.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.5',\n label: 'Collective Unconscious',\n description: 'Jungian archetypes manifesting as UAP experiences across cultures.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 2.3 Neurological ---\n {\n id: '2.3',\n label: 'Neurological',\n description: 'Neurobiological factors producing anomalous perceptions.',\n domain: 'psychosocial',\n depth: 1,\n parentId: '2',\n children: ['2.3.1', '2.3.2', '2.3.3', '2.3.4', '2.3.5'],\n scientificallyTestable: true,\n },\n {\n id: '2.3.1',\n label: 'Psychedelics / Pharmacology',\n description: 'Drug-induced altered states producing UAP-like perceptions.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.2',\n label: 'Pathology / Trauma',\n description: 'Brain injury, disease, or trauma producing anomalous perceptions.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.3',\n label: 'Neurodivergence',\n description: 'Atypical neural architecture producing enhanced or anomalous perception.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.4',\n label: 'High Intuition / Functioning',\n description: 'Heightened perceptual sensitivity or cognitive function.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.5',\n label: '\"Alien\" Implants',\n description: 'Neurological effects attributed to foreign objects or stimulation.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n\n // ============================================================\n // DOMAIN 3.0 — METAPHYSICAL\n // ============================================================\n {\n id: '3',\n label: 'Metaphysical',\n description: 'Theories with origins beyond conventional scientific understanding.',\n domain: 'metaphysical',\n depth: 0,\n parentId: null,\n children: ['3.1', '3.2', '3.3'],\n scientificallyTestable: false,\n aliases: ['MPH'],\n },\n\n // --- 3.1 Paranormal ---\n {\n id: '3.1',\n label: 'Paranormal',\n description: 'Phenomena involving extraordinary human potential or non-material entities.',\n domain: 'metaphysical',\n depth: 1,\n parentId: '3',\n children: ['3.1.1', '3.1.2', '3.1.3', '3.1.4', '3.1.5', '3.1.6'],\n scientificallyTestable: true,\n },\n {\n id: '3.1.1',\n label: 'Psychotronics / Extraordinary Potential',\n description: 'Latent human psychic abilities (telekinesis, remote viewing) producing observable effects.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.2',\n label: 'NDE / OBE',\n description: 'Near-death or out-of-body experiences suggesting non-physical consciousness.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.3',\n label: 'Disembodied Spirits / Consciousness',\n description: 'Non-physical conscious entities interacting with physical reality.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.4',\n label: 'Incorporeal / Bosonic Lifeforms',\n description: 'Entities composed of force-carrier particles or non-baryonic matter.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.5',\n label: 'Mediumship / Possession',\n description: 'External entities communicating through or controlling human hosts.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.6',\n label: 'New Physics',\n description: 'Undiscovered physical laws that explain anomalous phenomena.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 3.2 Occult ---\n {\n id: '3.2',\n label: 'Occult',\n description: 'Hidden knowledge traditions and reality models outside mainstream science.',\n domain: 'metaphysical',\n depth: 1,\n parentId: '3',\n children: ['3.2.1', '3.2.2', '3.2.3', '3.2.4', '3.2.5', '3.2.6'],\n scientificallyTestable: false,\n },\n {\n id: '3.2.1',\n label: 'Hidden Powers of Nature',\n description: 'Esoteric natural forces not yet recognized by science.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.2',\n label: 'Ascended \"Masters\"',\n description: 'Spiritually evolved beings guiding humanity from higher planes.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.3',\n label: '\"Maya\" / Sensory Delusion',\n description: 'Physical reality as fundamental illusion (Vedantic/Buddhist ontology).',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.4',\n label: 'Artificial Reality / Matrix Simulation',\n description: 'Reality as a computational simulation with UAP as glitches or features.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.2.5',\n label: 'Altered / Alternate Reality',\n description: 'Consensus reality as one of many equally valid experiential frames.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.6',\n label: 'Absolute World of Archetypes',\n description: 'Platonic realm of forms manifesting in physical experience.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n\n // --- 3.3 Transcendental ---\n {\n id: '3.3',\n label: 'Transcendental',\n description: 'Religious, spiritual, and theological explanations for UAP.',\n domain: 'metaphysical',\n depth: 1,\n parentId: '3',\n children: ['3.3.1', '3.3.2', '3.3.3', '3.3.4', '3.3.5', '3.3.6'],\n scientificallyTestable: false,\n },\n {\n id: '3.3.1',\n label: '\"Gaia\" / Nature Spirits',\n description: 'Animistic intelligence of the Earth or natural world.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.2',\n label: 'Angelic Beings',\n description: 'Benevolent spiritual entities from monotheistic traditions.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.3',\n label: '\"Djinn\" / Neutral Powers',\n description: 'Morally neutral spiritual entities (Islamic jinn, fae folk, trickster spirits).',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.4',\n label: 'Demonic Forces',\n description: 'Malevolent spiritual entities from various religious traditions.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.5',\n label: 'Hierarchy of Being',\n description: 'Neo-Platonic great chain of being with UAP as higher-order entities.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.6',\n label: 'Emanations of Godhead',\n description: 'Direct manifestations of divine creative force or cosmic consciousness.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n];\n","import type { OCSNode, OriginDomain } from './types';\nimport { OCS_TAXONOMY } from './tree';\n\nconst nodeMap = new Map<string, OCSNode>(OCS_TAXONOMY.map((n) => [n.id, n]));\n\nexport function getNode(id: string): OCSNode | undefined {\n return nodeMap.get(id);\n}\n\nexport function getChildren(id: string): OCSNode[] {\n const node = nodeMap.get(id);\n if (!node) return [];\n return node.children.map((cid) => nodeMap.get(cid)).filter((n): n is OCSNode => n !== undefined);\n}\n\nexport function getAncestors(id: string): OCSNode[] {\n const ancestors: OCSNode[] = [];\n let current = nodeMap.get(id);\n while (current?.parentId) {\n const parent = nodeMap.get(current.parentId);\n if (!parent) break;\n ancestors.unshift(parent);\n current = parent;\n }\n return ancestors;\n}\n\nexport function getSiblings(id: string): OCSNode[] {\n const node = nodeMap.get(id);\n if (!node?.parentId) return [];\n const parent = nodeMap.get(node.parentId);\n if (!parent) return [];\n return parent.children\n .filter((cid) => cid !== id)\n .map((cid) => nodeMap.get(cid))\n .filter((n): n is OCSNode => n !== undefined);\n}\n\nexport function getDomain(domain: OriginDomain): OCSNode[] {\n return OCS_TAXONOMY.filter((n) => n.domain === domain);\n}\n\nexport function getTestableNodes(): OCSNode[] {\n return OCS_TAXONOMY.filter((n) => n.scientificallyTestable);\n}\n\nexport function getLeafNodes(): OCSNode[] {\n return OCS_TAXONOMY.filter((n) => n.children.length === 0);\n}\n\nexport function searchNodes(query: string): OCSNode[] {\n const lower = query.toLowerCase();\n return OCS_TAXONOMY.filter(\n (n) =>\n n.label.toLowerCase().includes(lower) ||\n n.description.toLowerCase().includes(lower) ||\n n.aliases?.some((a) => a.toLowerCase().includes(lower)),\n );\n}\n\nexport function getPath(id: string): string {\n const ancestors = getAncestors(id);\n const node = nodeMap.get(id);\n if (!node) return '';\n return [...ancestors, node].map((n) => n.label).join(' > ');\n}\n","import { OCS_TAXONOMY } from '../tree';\nimport type { OCSNode } from '../types';\n\nexport const PHYSICAL_NODES: readonly OCSNode[] = OCS_TAXONOMY.filter((n) => n.domain === 'physical');\n","import { OCS_TAXONOMY } from '../tree';\nimport type { OCSNode } from '../types';\n\nexport const PSYCHOSOCIAL_NODES: readonly OCSNode[] = OCS_TAXONOMY.filter((n) => n.domain === 'psychosocial');\n","import { OCS_TAXONOMY } from '../tree';\nimport type { OCSNode } from '../types';\n\nexport const METAPHYSICAL_NODES: readonly OCSNode[] = OCS_TAXONOMY.filter((n) => n.domain === 'metaphysical');\n","import { z } from 'zod';\nimport { ClaimSchema, ConfidenceSchema } from '@disclosureos/records/shared';\n\n/**\n * A weighted origin hypothesis: an OCS node id plus the confidence assigned to it.\n */\nexport const HypothesisWeightSchema = z\n .object({\n nodeId: z.string().min(1).describe('OCS node id (e.g., \"1.1.3\").'),\n confidence: ConfidenceSchema,\n label: z.string().optional(),\n })\n .meta({ id: 'HypothesisWeight' })\n .describe('A weighted origin hypothesis (OCS node + confidence).');\n\nexport type HypothesisWeight = z.infer<typeof HypothesisWeightSchema>;\n\n/**\n * A single attributed origin claim — one evaluator's verdict on what an\n * observation is: a primary OCS hypothesis with its confidence, optional\n * `alternativeHypotheses` (the intra-claim axis), and the shared {@link ClaimSchema}\n * envelope (`evaluatedAt` / `evaluatedBy` / `rationale` + `evidenceRefs`).\n *\n * The `Observation.origin` slot is a *list* of these (the inter-claim axis), so\n * competing classifications from different evaluators coexist without one being\n * privileged — endorsement is a scoring concern, not a records one.\n */\nexport const OriginClaimSchema = ClaimSchema.extend({\n primaryHypothesis: z.string().min(1).describe('OCS node id of the primary hypothesis.'),\n confidence: ConfidenceSchema.describe('Confidence in the primary hypothesis, in [0,1].'),\n alternativeHypotheses: z\n .array(HypothesisWeightSchema)\n .optional()\n .describe(\n 'Other OCS hypotheses this same evaluator weighs as possible, each with its own confidence — the intra-claim uncertainty axis.',\n ),\n})\n .meta({ id: 'OriginClaim' })\n .describe('An attributed origin-hypothesis classification for an observation.');\n\nexport type OriginClaim = z.infer<typeof OriginClaimSchema>;\n\n/**\n * A full distribution of confidence across hypotheses, with `unresolved` holding\n * the remaining confidence not assigned to any hypothesis.\n */\nexport const ConfidenceDistributionSchema = z\n .object({\n hypotheses: z.array(HypothesisWeightSchema),\n unresolved: ConfidenceSchema.describe('Remaining confidence not assigned to any hypothesis.'),\n evaluatedAt: z.iso.datetime(),\n })\n .meta({ id: 'ConfidenceDistribution' })\n .describe('Confidence distribution across origin hypotheses.');\n\nexport type ConfidenceDistribution = z.infer<typeof ConfidenceDistributionSchema>;\n\n/**\n * Simplified category-level confidence distribution for quick classification.\n * Each key maps to a broad OCS category. Values are confidence levels (0-1) that should sum to ~1.0.\n *\n * - `conventional` → OCS 1.1.1 (Prosaic explanations)\n * - `cryptoterrestrial` → OCS 1.1.2 (Hidden Earth-based entities)\n * - `extraterrestrial` → OCS 1.1.3 (Off-world visitors)\n * - `extradimensional` → OCS 1.2 (Other dimensions)\n * - `interdimensional` → OCS 1.3 (Dimension-traversing)\n * - `psychosocial` → OCS 2.0 (Perceptual/social factors)\n * - `metaphysical` → OCS 3.0 (Beyond conventional science)\n * - `insufficientData` → Cannot classify due to lack of information\n */\nexport const CategoryConfidenceSchema = z\n .object({\n conventional: ConfidenceSchema,\n cryptoterrestrial: ConfidenceSchema,\n extraterrestrial: ConfidenceSchema,\n extradimensional: ConfidenceSchema,\n interdimensional: ConfidenceSchema,\n psychosocial: ConfidenceSchema,\n metaphysical: ConfidenceSchema,\n insufficientData: ConfidenceSchema,\n })\n .meta({ id: 'CategoryConfidence' })\n .describe('Quick category-level confidence distribution across broad OCS categories.');\n\nexport type CategoryConfidence = z.infer<typeof CategoryConfidenceSchema>;\n","import type { OriginDomain } from '../taxonomy/types';\nimport { OCS_TAXONOMY } from '../taxonomy/tree';\n\nexport const OCS_LABELS: Record<string, string> = Object.fromEntries(\n OCS_TAXONOMY.map((n) => [n.id, n.label]),\n);\n\nexport const ORIGIN_DOMAIN_LABELS: Record<OriginDomain, string> = {\n physical: 'Physical',\n psychosocial: 'Psychosocial',\n metaphysical: 'Metaphysical',\n};\n","import type { OriginClaim } from '../classification/types';\nimport { OriginDomainSchema } from '../taxonomy/types';\nimport { OCS_TAXONOMY } from '../taxonomy/tree';\n\nexport const ORIGIN_DOMAINS = OriginDomainSchema.options;\n\n/**\n * Provenance of the OCS taxonomy. The three-domain structure (Physical /\n * Psychosocial / Metaphysical) is adapted from Col. Karl Nell's \"Proposed\n * Taxonomy of UAP Origin Hypotheses,\" presented at the Sol Foundation\n * Symposium (Stanford University, November 2023). Surfaced as data so any\n * consumer renders the same credit.\n */\nexport const OCS_PROVENANCE = {\n author: 'Col. Karl Nell (U.S. Army, ret.)',\n work: 'Proposed Taxonomy of UAP Origin Hypotheses',\n venue: 'Sol Foundation Symposium, Stanford University',\n date: 'November 2023',\n} as const;\n\nexport const ALL_OCS_IDS: readonly string[] = OCS_TAXONOMY.map((n) => n.id);\n\nexport const TESTABLE_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.scientificallyTestable)\n .map((n) => n.id);\n\nexport const LEAF_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.children.length === 0)\n .map((n) => n.id);\n\nexport const PHYSICAL_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.domain === 'physical')\n .map((n) => n.id);\n\nexport const PSYCHOSOCIAL_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.domain === 'psychosocial')\n .map((n) => n.id);\n\nexport const METAPHYSICAL_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.domain === 'metaphysical')\n .map((n) => n.id);\n\n/**\n * Canonical shape for the `Observation.origin` slot, registered on `Observation`\n * via module augmentation when this package is imported.\n *\n * A *list* of {@link OriginClaim}s: competing classifications from different\n * evaluators coexist without one being privileged (the inter-claim axis).\n *\n * @example\n * ```typescript\n * import type { Observation } from '@disclosureos/records';\n * import '@disclosureos/origins'; // augments Observation with `origin`\n *\n * const obs: Observation = { ...base, origin: [claim] };\n * ```\n */\nexport type OriginClassificationSlot = OriginClaim[];\n","/**\n * Layer-3 nominal brand. `OCSNodeId` lives here (not in `records/shared`) because\n * the OCS taxonomy is an origins concern — the Layer-1 substrate stays agnostic\n * about classification. A branded value is a plain string at runtime; the brand\n * only constrains assignment at compile time and never touches emitted JSON Schema.\n */\n\ndeclare const __ocsBrand: unique symbol;\n\n/** Validated OCS taxonomy node id (e.g. `1.1.3`). */\nexport type OCSNodeId = string & { readonly [__ocsBrand]: 'OCSNodeId' };\n\nexport function asOCSNodeId(value: string): OCSNodeId {\n return value as OCSNodeId;\n}\n","import { createEnumGuard } from '@disclosureos/records/shared';\nimport type { OCSNodeId } from '../brands';\nimport { OriginDomainSchema } from '../taxonomy/types';\nimport {\n OriginClaimSchema,\n ConfidenceDistributionSchema,\n} from '../classification/types';\nimport type { OriginClaim, ConfidenceDistribution } from '../classification/types';\nimport { ALL_OCS_IDS } from '../constants';\n\n/** Re-exported from the origins brand module so `@disclosureos/origins` stays the home of OCS APIs. */\nexport type { OCSNodeId };\n\n// Enum guards are built from each schema's `.options` (a plain string tuple) so\n// they stay free of Zod's cross-package version brand. Object guards run the\n// schema's own `safeParse` (same package, same Zod instance).\nexport const isOriginDomain = createEnumGuard(OriginDomainSchema.options);\nexport const isOCSNodeId = createEnumGuard<OCSNodeId>(ALL_OCS_IDS as readonly OCSNodeId[]);\n\nexport function isOriginClaim(value: unknown): value is OriginClaim {\n return OriginClaimSchema.safeParse(value).success;\n}\n\nexport function isConfidenceDistribution(value: unknown): value is ConfidenceDistribution {\n return ConfidenceDistributionSchema.safeParse(value).success;\n}\n","import {\n OriginClaimSchema,\n ConfidenceDistributionSchema,\n} from '../classification/types';\nimport type {\n OriginClaim,\n ConfidenceDistribution,\n HypothesisWeight,\n} from '../classification/types';\nimport { getNode } from '../taxonomy/traversal';\n\nexport interface ClassificationOptions {\n alternativeHypotheses?: HypothesisWeight[];\n /** Why this classification was assigned (shared `Attribution`). */\n rationale?: string;\n /** Who assigned the classification (shared `Attribution`). */\n evaluatedBy?: string;\n /** Override the auto-generated timestamp (shared `Attribution`). */\n evaluatedAt?: string;\n /** Refs to in-record evidence justifying this claim, e.g. `\"sensor:<id>\"` (shared `Claim`). */\n evidenceRefs?: string[];\n}\n\nfunction assertKnownNode(nodeId: string, label: string): void {\n if (!getNode(nodeId)) {\n throw new Error(`Unknown OCS node ID in ${label}: \"${nodeId}\"`);\n }\n}\n\n/**\n * Build one {@link OriginClaim} (a single evaluator's verdict). The\n * `Observation.origin` slot holds an array of these — push the result into it,\n * or build several to represent competing classifications.\n */\nexport function createOriginClaim(\n primaryHypothesis: string,\n confidence: number,\n options?: ClassificationOptions,\n): OriginClaim {\n assertKnownNode(primaryHypothesis, 'primaryHypothesis');\n const { alternativeHypotheses, rationale, evaluatedBy, evaluatedAt, evidenceRefs } = options ?? {};\n for (const alt of alternativeHypotheses ?? []) {\n assertKnownNode(alt.nodeId, 'alternativeHypothesis');\n }\n // `.parse()` validates structure + confidence ranges (incl. alternatives).\n return OriginClaimSchema.parse({\n primaryHypothesis,\n confidence,\n evaluatedAt: evaluatedAt ?? new Date().toISOString(),\n ...(alternativeHypotheses !== undefined && { alternativeHypotheses }),\n ...(rationale !== undefined && { rationale }),\n ...(evaluatedBy !== undefined && { evaluatedBy }),\n ...(evidenceRefs !== undefined && { evidenceRefs }),\n });\n}\n\nexport function createConfidenceDistribution(\n hypotheses: HypothesisWeight[],\n options?: { evaluatedAt?: string },\n): ConfidenceDistribution {\n for (const h of hypotheses) {\n assertKnownNode(h.nodeId, 'hypothesis');\n }\n const total = hypotheses.reduce((sum, h) => sum + h.confidence, 0);\n if (total > 1 + 1e-9) {\n throw new RangeError(`hypothesis confidences sum to ${total}, exceeding 1.0`);\n }\n return ConfidenceDistributionSchema.parse({\n hypotheses,\n unresolved: Math.max(0, 1 - total),\n evaluatedAt: options?.evaluatedAt ?? new Date().toISOString(),\n });\n}\n","import type { OriginDomain, OCSNode } from '../taxonomy/types';\nimport { OCS_LABELS, ORIGIN_DOMAIN_LABELS } from '../labels';\nimport { getPath } from '../taxonomy/traversal';\n\nexport function formatOCSCode(id: string): string {\n return getPath(id) || id;\n}\n\nexport function formatDomainLabel(domain: OriginDomain): string {\n return ORIGIN_DOMAIN_LABELS[domain];\n}\n\nexport function formatNodeLabel(id: string): string {\n return OCS_LABELS[id] ?? id;\n}\n\nexport function formatTestability(node: OCSNode): string {\n return node.scientificallyTestable\n ? 'Scientifically testable'\n : 'Not empirically falsifiable';\n}\n","import { z } from 'zod';\nimport { jsonSchemaEnvelope, schemaId, validateWith } from '@disclosureos/records/shared';\nimport type { ValidationIssue } from '@disclosureos/records/shared';\nimport { OriginClaimSchema } from './classification/types';\nimport { getNode } from './taxonomy/traversal';\n\nexport const ORIGINS_SCHEMA_VERSION = '2.0.0';\n\nexport const ORIGINS_SCHEMA_ID = schemaId(\n 'origins',\n 'origin-classification',\n ORIGINS_SCHEMA_VERSION,\n);\n\n/** The `Observation.origin` slot: a list of competing {@link OriginClaimSchema}s. */\nconst OriginSlotSchema = z\n .array(OriginClaimSchema)\n .describe('Competing origin claims for an observation (one per evaluator/verdict).');\n\n/**\n * Emit the JSON Schema (draft 2020-12) for the `origin` slot payload — an array\n * of {@link OriginClaimSchema}.\n */\nexport function originsJsonSchema(): Record<string, unknown> {\n const schema = z.toJSONSchema(OriginSlotSchema, {\n target: 'draft-2020-12',\n }) as Record<string, unknown>;\n return jsonSchemaEnvelope(schema, { id: ORIGINS_SCHEMA_ID, version: ORIGINS_SCHEMA_VERSION });\n}\n\nfunction checkClaimNodes(claim: unknown, prefix: string, issues: ValidationIssue[]): void {\n const c = claim as { primaryHypothesis?: unknown; alternativeHypotheses?: unknown };\n if (typeof c.primaryHypothesis === 'string' && !getNode(c.primaryHypothesis)) {\n issues.push({\n path: `${prefix}primaryHypothesis`,\n message: `unknown OCS node id: ${c.primaryHypothesis}`,\n });\n }\n if (Array.isArray(c.alternativeHypotheses)) {\n c.alternativeHypotheses.forEach((alt, i) => {\n const nodeId = (alt as { nodeId?: unknown } | undefined)?.nodeId;\n if (typeof nodeId === 'string' && !getNode(nodeId)) {\n issues.push({\n path: `${prefix}alternativeHypotheses.${i}.nodeId`,\n message: `unknown OCS node id: ${nodeId}`,\n });\n }\n });\n }\n}\n\n/**\n * Validate an `origin` slot value (a list of {@link OriginClaimSchema}) against\n * the schema, then verify that every referenced OCS node actually exists in the\n * taxonomy.\n *\n * The node-existence check lives HERE (not as a schema `.refine`) so the emitted\n * JSON Schema stays clean/serializable, while the validator, the\n * `createOriginClaim` factory, and the CLI all enforce the same \"is this a real\n * OCS node?\" rule — one answer to \"is this origin valid?\".\n */\nexport function validateOriginClassification(value: unknown): ValidationIssue[] {\n const structural = validateWith(OriginSlotSchema, value);\n if (structural.length > 0) return structural;\n\n const issues: ValidationIssue[] = [];\n (value as unknown[]).forEach((claim, i) => {\n checkClaimNodes(claim, `${i}.`, issues);\n });\n return issues;\n}\n"]}
1
+ {"version":3,"sources":["../src/taxonomy/types.ts","../src/taxonomy/tree.ts","../src/taxonomy/traversal.ts","../src/taxonomy/physical/index.ts","../src/taxonomy/psychosocial/index.ts","../src/taxonomy/metaphysical/index.ts","../src/classification/types.ts","../src/labels/index.ts","../src/constants/index.ts","../src/brands.ts","../src/guards/index.ts","../src/factories/index.ts","../src/formatters/index.ts","../src/schema.ts","../src/catalog/index.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\n\nexport const OriginDomainSchema = z\n .enum(['physical', 'psychosocial', 'metaphysical'])\n .describe('Top-level OCS origin domain.');\n\nexport type OriginDomain = z.infer<typeof OriginDomainSchema>;\n\nexport const PhysicalSubdomainSchema = z\n .enum(['intradimensional', 'extradimensional', 'interdimensional'])\n .describe('Subdomain of the physical origin domain.');\n\nexport type PhysicalSubdomain = z.infer<typeof PhysicalSubdomainSchema>;\n\nexport const PsychosocialSubdomainSchema = z\n .enum(['sociological', 'psychological', 'neurological'])\n .describe('Subdomain of the psychosocial origin domain.');\n\nexport type PsychosocialSubdomain = z.infer<typeof PsychosocialSubdomainSchema>;\n\nexport const MetaphysicalSubdomainSchema = z\n .enum(['paranormal', 'occult', 'transcendental'])\n .describe('Subdomain of the metaphysical origin domain.');\n\nexport type MetaphysicalSubdomain = z.infer<typeof MetaphysicalSubdomainSchema>;\n\nexport const OriginSubdomainSchema = z\n .union([PhysicalSubdomainSchema, PsychosocialSubdomainSchema, MetaphysicalSubdomainSchema])\n .describe('Any OCS subdomain across the three origin domains.');\n\nexport type OriginSubdomain = z.infer<typeof OriginSubdomainSchema>;\n\n/**\n * A single node in the Origin Classification System (OCS) taxonomy. Nodes form a\n * tree via `id`/`parentId`/`children` (children referenced by id, not nested).\n */\nexport const OCSNodeSchema = z\n .object({\n id: z.string().min(1).describe('Numeric dot-path identifier (e.g., \"1.1.2.1\").'),\n label: z.string().min(1).describe('Human-readable name for this OCS hypothesis node.'),\n description: z.string().describe('Plain-language explanation of what this hypothesis node covers.'),\n domain: OriginDomainSchema.describe('Top-level domain this node belongs to.'),\n depth: z\n .number()\n .int()\n .min(0)\n .describe('Tree depth: 0=domain, 1=subdomain, 2=category, 3=subcategory, 4=leaf.'),\n parentId: z.string().nullable().describe('Parent node id, or null for a domain root.'),\n children: z.array(z.string()).describe('Child node ids, referenced by id rather than nested inline.'),\n scientificallyTestable: z\n .boolean()\n .describe('Whether this hypothesis can be empirically falsified.'),\n aliases: z.array(z.string()).optional().describe('Alternative names (e.g., \"ETH\", \"CTH\").'),\n })\n .meta({ id: 'OCSNode' })\n .describe('A node in the OCS origin-hypothesis taxonomy.');\n\nexport type OCSNode = z.infer<typeof OCSNodeSchema>;\n","import type { OCSNode } from './types';\n\nexport const OCS_TAXONOMY: readonly OCSNode[] = [\n // ============================================================\n // DOMAIN 1.0 — PHYSICAL\n // ============================================================\n {\n id: '1',\n label: 'Physical',\n description: 'Theories attributing UAP to tangible, material objects or phenomena.',\n domain: 'physical',\n depth: 0,\n parentId: null,\n children: ['1.1', '1.2', '1.3'],\n scientificallyTestable: true,\n },\n\n // --- 1.1 Intradimensional ---\n {\n id: '1.1',\n label: 'Intradimensional',\n description: 'Manifestations from dimensions/realms within our own physical reality.',\n domain: 'physical',\n depth: 1,\n parentId: '1',\n children: ['1.1.1', '1.1.2', '1.1.3'],\n scientificallyTestable: true,\n },\n\n // 1.1.1 Prosaic\n {\n id: '1.1.1',\n label: 'Prosaic',\n description: 'Ordinary or conventional explanations for observed phenomena.',\n domain: 'physical',\n depth: 2,\n parentId: '1.1',\n children: ['1.1.1.1', '1.1.1.2'],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1',\n label: 'Natural',\n description: 'Atmospheric, celestial, or geological phenomena misidentified as anomalous.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.1',\n children: ['1.1.1.1.1', '1.1.1.1.2', '1.1.1.1.3', '1.1.1.1.4'],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.1',\n label: 'Optical Artifact / Illusion',\n description: 'Lens flares, reflections, mirages, temperature inversions, or other optical effects.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.2',\n label: 'Celestial',\n description: 'Stars, planets, meteors, satellites, or space debris misidentified.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.3',\n label: 'Meteorological',\n description: 'Ball lightning, lenticular clouds, sprites, or other atmospheric phenomena.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.1.4',\n label: 'Geophysical',\n description: 'Earthquake lights, piezoelectric effects, or volcanic phenomena.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2',\n label: 'Human',\n description: 'Human activities or technologies misidentified as anomalous.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.1',\n children: ['1.1.1.2.1', '1.1.1.2.2', '1.1.1.2.3', '1.1.1.2.4'],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.1',\n label: 'Governmental',\n description: 'Military aircraft, drones, or test vehicles from known government programs.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.2',\n label: 'Extra-Governmental',\n description: 'Black budget programs, Special Access Programs (SAPs), or unacknowledged projects.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.3',\n label: 'Inter-governmental',\n description: 'Foreign adversary technology or multinational classified programs.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.1.2.4',\n label: 'Private / Commercial',\n description: 'Commercial drones, private aerospace ventures, or civilian technology.',\n domain: 'physical',\n depth: 4,\n parentId: '1.1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // 1.1.2 Cryptoterrestrial\n {\n id: '1.1.2',\n label: 'Cryptoterrestrial',\n description: 'Hidden Earth-based civilizations or entities operating outside known history.',\n domain: 'physical',\n depth: 2,\n parentId: '1.1',\n children: ['1.1.2.1', '1.1.2.2', '1.1.2.3', '1.1.2.4'],\n scientificallyTestable: true,\n aliases: ['CTH'],\n },\n {\n id: '1.1.2.1',\n label: 'Ancient / Proto-Human Survival',\n description: 'Remnant populations of earlier hominid species or ancient civilizations that survived in isolation.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.2.2',\n label: 'Breakaway Civilization',\n description: 'Human splinter groups that developed advanced technology in secret.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.2.3',\n label: 'Cryptids / Humanoids',\n description: 'Non-human intelligent entities indigenous to Earth but outside the known tree of life.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.2.4',\n label: 'Stranded \"Gods\"',\n description: 'Entities from ancient mythological accounts interpreted as literal stranded visitors.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // 1.1.3 Extraterrestrial\n {\n id: '1.1.3',\n label: 'Extraterrestrial',\n description: 'Intelligence visiting from other locations in spacetime.',\n domain: 'physical',\n depth: 2,\n parentId: '1.1',\n children: ['1.1.3.1', '1.1.3.2', '1.1.3.3', '1.1.3.4'],\n scientificallyTestable: true,\n aliases: ['ETH'],\n },\n {\n id: '1.1.3.1',\n label: 'Solar System',\n description: 'Intelligence originating from elsewhere in our solar system.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.3.2',\n label: 'Interstellar',\n description: 'Intelligence from other star systems within our galaxy.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.3.3',\n label: 'Intergalactic',\n description: 'Intelligence from other galaxies.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.1.3.4',\n label: 'Unknown Region of Space-Time',\n description: 'Intelligence from an uncharacterized region of our physical universe.',\n domain: 'physical',\n depth: 3,\n parentId: '1.1.3',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 1.2 Extradimensional ---\n {\n id: '1.2',\n label: 'Extradimensional',\n description: 'UAPs from other dimensions, parallel universes, or realms beyond our physical reality.',\n domain: 'physical',\n depth: 1,\n parentId: '1',\n children: ['1.2.1', '1.2.2'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1',\n label: '3-D Entity From Hyperspace',\n description: 'Entities projecting into our 3+1 dimensional spacetime from higher dimensions.',\n domain: 'physical',\n depth: 2,\n parentId: '1.2',\n children: ['1.2.1.1', '1.2.1.2', '1.2.1.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1.1',\n label: 'Compactified Dimensions',\n description: 'Entities from string theory / Kaluza-Klein compactified extra dimensions.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1.2',\n label: 'Hyperspace \"Bulk\"',\n description: 'Entities from the bulk space of Randall-Sundrum brane models.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.1.3',\n label: 'Disconnected Hyperspace',\n description: 'Entities from higher-dimensional spaces not connected to our brane.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2',\n label: 'Hyper-D \"Brane\"',\n description: 'Brane interactions from string/M-theory producing observable effects.',\n domain: 'physical',\n depth: 2,\n parentId: '1.2',\n children: ['1.2.2.1', '1.2.2.2'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1',\n label: 'Projection / \"Shadow\"',\n description: 'Lower-dimensional projections of higher-dimensional objects.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.2',\n children: ['1.2.2.1.1', '1.2.2.1.2', '1.2.2.1.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1.1',\n label: '0-to-2 Dimensional',\n description: 'Point or plane-like projections from higher dimensions.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1.2',\n label: '3-Dimensional',\n description: 'Full volumetric projections appearing as solid objects.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.1.3',\n label: 'Fractal Dimensional',\n description: 'Non-integer dimensional projections with fractal geometry.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2',\n label: '≤ 3-D \"Avatar\"',\n description: 'Controlled projections or constructs operating as proxies.',\n domain: 'physical',\n depth: 3,\n parentId: '1.2.2',\n children: ['1.2.2.2.1', '1.2.2.2.2', '1.2.2.2.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2.1',\n label: 'Hologram / \"Telepresence\"',\n description: 'Remote presence via holographic or light-based projection.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2.2',\n label: 'Automaton',\n description: 'Self-operating mechanical or energetic construct.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.2.2.2.3',\n label: 'Artificial Lifeform',\n description: 'Engineered biological or hybrid entity operating as a proxy.',\n domain: 'physical',\n depth: 4,\n parentId: '1.2.2.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 1.3 Interdimensional ---\n {\n id: '1.3',\n label: 'Interdimensional',\n description: 'UAPs traversing between different dimensions or realities.',\n domain: 'physical',\n depth: 1,\n parentId: '1',\n children: ['1.3.1', '1.3.2', '1.3.3'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1',\n label: 'Multiverse',\n description: 'Entities or phenomena crossing between parallel universes.',\n domain: 'physical',\n depth: 2,\n parentId: '1.3',\n children: ['1.3.1.1', '1.3.1.2', '1.3.1.3', '1.3.1.4'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.1',\n label: 'Portal / Wormhole',\n description: 'Traversal via Einstein-Rosen bridges or manufactured gateways.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.2',\n label: 'Colliding Universe(s)',\n description: 'Phenomena from brane collision events (ekpyrotic cosmology).',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.3',\n label: 'Parallel Universe(s)',\n description: 'Entities from parallel but non-interacting universe branches.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.1.4',\n label: 'QFT \"Many Worlds\"',\n description: 'Quantum-mechanical many-worlds interpretation producing observable crossover.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2',\n label: 'Time Travel',\n description: 'Entities or vehicles traversing temporal dimensions.',\n domain: 'physical',\n depth: 2,\n parentId: '1.3',\n children: ['1.3.2.1', '1.3.2.2', '1.3.2.3', '1.3.2.4', '1.3.2.5'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.1',\n label: 'Humans From Future',\n description: 'Time-traveling humans from our future timeline.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.2',\n label: 'Humans From Past',\n description: 'Time-traveling humans from our past (advanced pre-history).',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.3',\n label: 'Humans From Alternate Timeline',\n description: 'Humans from divergent timeline branches.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.4',\n label: 'Non-Human Entity',\n description: 'Non-human intelligence traversing time dimensions.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.2.5',\n label: 'Additional Time Dimension(s)',\n description: 'Traversal via hypothetical extra temporal dimensions beyond our single time axis.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3',\n label: 'Scale Invariance',\n description: 'Phenomena emerging from scale-dependent physics or quantum-cosmological effects.',\n domain: 'physical',\n depth: 2,\n parentId: '1.3',\n children: ['1.3.3.1', '1.3.3.2', '1.3.3.3', '1.3.3.4', '1.3.3.5'],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.1',\n label: 'Macro Quantum Fluctuation',\n description: 'Macroscopic manifestation of quantum vacuum fluctuations.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.2',\n label: 'Distance Recursion',\n description: 'Self-similar structure at different scales producing observable anomalies.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.3',\n label: 'Pan-Galactic Entanglement',\n description: 'Non-local quantum entanglement effects at galactic scales.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.4',\n label: 'Unobserved \"Vibratory Modes\"',\n description: 'Hidden vibrational modes of spacetime not yet detected by instruments.',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '1.3.3.5',\n label: 'Conformal Cyclic Cosmology',\n description: 'Signals or entities from previous cosmic aeons (Penrose CCC).',\n domain: 'physical',\n depth: 3,\n parentId: '1.3.3',\n children: [],\n scientificallyTestable: true,\n },\n\n // ============================================================\n // DOMAIN 2.0 — PSYCHOSOCIAL\n // ============================================================\n {\n id: '2',\n label: 'Psychosocial',\n description: 'Theories attributing UAP to psychological, perceptual, and sociological factors.',\n domain: 'psychosocial',\n depth: 0,\n parentId: null,\n children: ['2.1', '2.2', '2.3'],\n scientificallyTestable: true,\n aliases: ['PSH'],\n },\n\n // --- 2.1 Sociological ---\n {\n id: '2.1',\n label: 'Sociological',\n description: 'Social dynamics, group phenomena, and cultural factors producing UAP reports.',\n domain: 'psychosocial',\n depth: 1,\n parentId: '2',\n children: ['2.1.1', '2.1.2', '2.1.3', '2.1.4', '2.1.5'],\n scientificallyTestable: true,\n },\n {\n id: '2.1.1',\n label: 'Hypnosis',\n description: 'Hypnotic suggestion producing false UAP memories or experiences.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.2',\n label: 'Mass Hysteria',\n description: 'Collective delusion or social contagion producing shared UAP reports.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.3',\n label: 'Memetic Virus',\n description: 'Self-propagating cultural narratives that generate UAP reports.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.4',\n label: 'Conditioning / Disinformation',\n description: 'Deliberate manipulation, propaganda, or psyops creating UAP narratives.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.1.5',\n label: 'Hoax',\n description: 'Deliberate fabrication for attention, profit, or amusement.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.1',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 2.2 Psychological ---\n {\n id: '2.2',\n label: 'Psychological',\n description: 'Individual psychological processes producing UAP perceptions.',\n domain: 'psychosocial',\n depth: 1,\n parentId: '2',\n children: ['2.2.1', '2.2.2', '2.2.3', '2.2.4', '2.2.5'],\n scientificallyTestable: true,\n },\n {\n id: '2.2.1',\n label: 'False Belief / Misinterpretation',\n description: 'Cognitive bias or perceptual error leading to misidentification.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.2',\n label: 'Fallible / Screen Memory',\n description: 'False or constructed memories obscuring actual events.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.3',\n label: 'Psychosomatic Disorder',\n description: 'Physical symptoms produced by psychological distress attributed to UAP.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.4',\n label: 'Psychosis / Hallucination',\n description: 'Clinical psychiatric conditions producing UAP perceptions.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.2.5',\n label: 'Collective Unconscious',\n description: 'Jungian archetypes manifesting as UAP experiences across cultures.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.2',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 2.3 Neurological ---\n {\n id: '2.3',\n label: 'Neurological',\n description: 'Neurobiological factors producing anomalous perceptions.',\n domain: 'psychosocial',\n depth: 1,\n parentId: '2',\n children: ['2.3.1', '2.3.2', '2.3.3', '2.3.4', '2.3.5'],\n scientificallyTestable: true,\n },\n {\n id: '2.3.1',\n label: 'Psychedelics / Pharmacology',\n description: 'Drug-induced altered states producing UAP-like perceptions.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.2',\n label: 'Pathology / Trauma',\n description: 'Brain injury, disease, or trauma producing anomalous perceptions.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.3',\n label: 'Neurodivergence',\n description: 'Atypical neural architecture producing enhanced or anomalous perception.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.4',\n label: 'High Intuition / Functioning',\n description: 'Heightened perceptual sensitivity or cognitive function.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '2.3.5',\n label: '\"Alien\" Implants',\n description: 'Neurological effects attributed to foreign objects or stimulation.',\n domain: 'psychosocial',\n depth: 2,\n parentId: '2.3',\n children: [],\n scientificallyTestable: true,\n },\n\n // ============================================================\n // DOMAIN 3.0 — METAPHYSICAL\n // ============================================================\n {\n id: '3',\n label: 'Metaphysical',\n description: 'Theories with origins beyond conventional scientific understanding.',\n domain: 'metaphysical',\n depth: 0,\n parentId: null,\n children: ['3.1', '3.2', '3.3'],\n scientificallyTestable: false,\n aliases: ['MPH'],\n },\n\n // --- 3.1 Paranormal ---\n {\n id: '3.1',\n label: 'Paranormal',\n description: 'Phenomena involving extraordinary human potential or non-material entities.',\n domain: 'metaphysical',\n depth: 1,\n parentId: '3',\n children: ['3.1.1', '3.1.2', '3.1.3', '3.1.4', '3.1.5', '3.1.6'],\n scientificallyTestable: true,\n },\n {\n id: '3.1.1',\n label: 'Psychotronics / Extraordinary Potential',\n description: 'Latent human psychic abilities (telekinesis, remote viewing) producing observable effects.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.2',\n label: 'NDE / OBE',\n description: 'Near-death or out-of-body experiences suggesting non-physical consciousness.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.3',\n label: 'Disembodied Spirits / Consciousness',\n description: 'Non-physical conscious entities interacting with physical reality.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.4',\n label: 'Incorporeal / Bosonic Lifeforms',\n description: 'Entities composed of force-carrier particles or non-baryonic matter.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.5',\n label: 'Mediumship / Possession',\n description: 'External entities communicating through or controlling human hosts.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.1.6',\n label: 'New Physics',\n description: 'Undiscovered physical laws that explain anomalous phenomena.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.1',\n children: [],\n scientificallyTestable: true,\n },\n\n // --- 3.2 Occult ---\n {\n id: '3.2',\n label: 'Occult',\n description: 'Hidden knowledge traditions and reality models outside mainstream science.',\n domain: 'metaphysical',\n depth: 1,\n parentId: '3',\n children: ['3.2.1', '3.2.2', '3.2.3', '3.2.4', '3.2.5', '3.2.6'],\n scientificallyTestable: false,\n },\n {\n id: '3.2.1',\n label: 'Hidden Powers of Nature',\n description: 'Esoteric natural forces not yet recognized by science.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.2',\n label: 'Ascended \"Masters\"',\n description: 'Spiritually evolved beings guiding humanity from higher planes.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.3',\n label: '\"Maya\" / Sensory Delusion',\n description: 'Physical reality as fundamental illusion (Vedantic/Buddhist ontology).',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.4',\n label: 'Artificial Reality / Matrix Simulation',\n description: 'Reality as a computational simulation with UAP as glitches or features.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: true,\n },\n {\n id: '3.2.5',\n label: 'Altered / Alternate Reality',\n description: 'Consensus reality as one of many equally valid experiential frames.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.2.6',\n label: 'Absolute World of Archetypes',\n description: 'Platonic realm of forms manifesting in physical experience.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.2',\n children: [],\n scientificallyTestable: false,\n },\n\n // --- 3.3 Transcendental ---\n {\n id: '3.3',\n label: 'Transcendental',\n description: 'Religious, spiritual, and theological explanations for UAP.',\n domain: 'metaphysical',\n depth: 1,\n parentId: '3',\n children: ['3.3.1', '3.3.2', '3.3.3', '3.3.4', '3.3.5', '3.3.6'],\n scientificallyTestable: false,\n },\n {\n id: '3.3.1',\n label: '\"Gaia\" / Nature Spirits',\n description: 'Animistic intelligence of the Earth or natural world.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.2',\n label: 'Angelic Beings',\n description: 'Benevolent spiritual entities from monotheistic traditions.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.3',\n label: '\"Djinn\" / Neutral Powers',\n description: 'Morally neutral spiritual entities (Islamic jinn, fae folk, trickster spirits).',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.4',\n label: 'Demonic Forces',\n description: 'Malevolent spiritual entities from various religious traditions.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.5',\n label: 'Hierarchy of Being',\n description: 'Neo-Platonic great chain of being with UAP as higher-order entities.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n {\n id: '3.3.6',\n label: 'Emanations of Godhead',\n description: 'Direct manifestations of divine creative force or cosmic consciousness.',\n domain: 'metaphysical',\n depth: 2,\n parentId: '3.3',\n children: [],\n scientificallyTestable: false,\n },\n];\n","import type { OCSNode, OriginDomain } from './types';\nimport { OCS_TAXONOMY } from './tree';\n\nconst nodeMap = new Map<string, OCSNode>(OCS_TAXONOMY.map((n) => [n.id, n]));\n\nexport function getNode(id: string): OCSNode | undefined {\n return nodeMap.get(id);\n}\n\nexport function getChildren(id: string): OCSNode[] {\n const node = nodeMap.get(id);\n if (!node) return [];\n return node.children.map((cid) => nodeMap.get(cid)).filter((n): n is OCSNode => n !== undefined);\n}\n\nexport function getAncestors(id: string): OCSNode[] {\n const ancestors: OCSNode[] = [];\n let current = nodeMap.get(id);\n while (current?.parentId) {\n const parent = nodeMap.get(current.parentId);\n if (!parent) break;\n ancestors.unshift(parent);\n current = parent;\n }\n return ancestors;\n}\n\nexport function getSiblings(id: string): OCSNode[] {\n const node = nodeMap.get(id);\n if (!node?.parentId) return [];\n const parent = nodeMap.get(node.parentId);\n if (!parent) return [];\n return parent.children\n .filter((cid) => cid !== id)\n .map((cid) => nodeMap.get(cid))\n .filter((n): n is OCSNode => n !== undefined);\n}\n\nexport function getDomain(domain: OriginDomain): OCSNode[] {\n return OCS_TAXONOMY.filter((n) => n.domain === domain);\n}\n\nexport function getTestableNodes(): OCSNode[] {\n return OCS_TAXONOMY.filter((n) => n.scientificallyTestable);\n}\n\nexport function getLeafNodes(): OCSNode[] {\n return OCS_TAXONOMY.filter((n) => n.children.length === 0);\n}\n\nexport function searchNodes(query: string): OCSNode[] {\n const lower = query.toLowerCase();\n return OCS_TAXONOMY.filter(\n (n) =>\n n.label.toLowerCase().includes(lower) ||\n n.description.toLowerCase().includes(lower) ||\n n.aliases?.some((a) => a.toLowerCase().includes(lower)),\n );\n}\n\nexport function getPath(id: string): string {\n const ancestors = getAncestors(id);\n const node = nodeMap.get(id);\n if (!node) return '';\n return [...ancestors, node].map((n) => n.label).join(' > ');\n}\n","import { OCS_TAXONOMY } from '../tree';\nimport type { OCSNode } from '../types';\n\nexport const PHYSICAL_NODES: readonly OCSNode[] = OCS_TAXONOMY.filter((n) => n.domain === 'physical');\n","import { OCS_TAXONOMY } from '../tree';\nimport type { OCSNode } from '../types';\n\nexport const PSYCHOSOCIAL_NODES: readonly OCSNode[] = OCS_TAXONOMY.filter((n) => n.domain === 'psychosocial');\n","import { OCS_TAXONOMY } from '../tree';\nimport type { OCSNode } from '../types';\n\nexport const METAPHYSICAL_NODES: readonly OCSNode[] = OCS_TAXONOMY.filter((n) => n.domain === 'metaphysical');\n","import { z } from 'zod';\nimport { ClaimSchema, ConfidenceSchema } from '@disclosureos/records/shared';\n\n/**\n * A weighted origin hypothesis: an OCS node id plus the confidence assigned to it.\n */\nexport const HypothesisWeightSchema = z\n .object({\n nodeId: z.string().min(1).describe('OCS node id (e.g., \"1.1.3\").'),\n confidence: ConfidenceSchema,\n label: z.string().optional(),\n })\n .meta({ id: 'HypothesisWeight' })\n .describe('A weighted origin hypothesis (OCS node + confidence).');\n\nexport type HypothesisWeight = z.infer<typeof HypothesisWeightSchema>;\n\n/**\n * A single attributed origin claim — one evaluator's verdict on what an\n * observation is: a primary OCS hypothesis with its confidence, optional\n * `alternativeHypotheses` (the intra-claim axis), and the shared {@link ClaimSchema}\n * envelope (`evaluatedAt` / `evaluatedBy` / `rationale` + `evidenceRefs`).\n *\n * The `Observation.origin` slot is a *list* of these (the inter-claim axis), so\n * competing classifications from different evaluators coexist without one being\n * privileged — endorsement is a scoring concern, not a records one.\n */\nexport const OriginClaimSchema = ClaimSchema.extend({\n primaryHypothesis: z.string().min(1).describe('OCS node id of the primary hypothesis.'),\n confidence: ConfidenceSchema.describe('Confidence in the primary hypothesis, in [0,1].'),\n alternativeHypotheses: z\n .array(HypothesisWeightSchema)\n .optional()\n .describe(\n 'Other OCS hypotheses this same evaluator weighs as possible, each with its own confidence — the intra-claim uncertainty axis.',\n ),\n})\n .meta({ id: 'OriginClaim' })\n .describe('An attributed origin-hypothesis classification for an observation.');\n\nexport type OriginClaim = z.infer<typeof OriginClaimSchema>;\n\n/**\n * A full distribution of confidence across hypotheses, with `unresolved` holding\n * the remaining confidence not assigned to any hypothesis.\n */\nexport const ConfidenceDistributionSchema = z\n .object({\n hypotheses: z.array(HypothesisWeightSchema),\n unresolved: ConfidenceSchema.describe('Remaining confidence not assigned to any hypothesis.'),\n evaluatedAt: z.iso.datetime(),\n })\n .meta({ id: 'ConfidenceDistribution' })\n .describe('Confidence distribution across origin hypotheses.');\n\nexport type ConfidenceDistribution = z.infer<typeof ConfidenceDistributionSchema>;\n\n/**\n * Simplified category-level confidence distribution for quick classification.\n * Each key maps to a broad OCS category. Values are confidence levels (0-1) that should sum to ~1.0.\n *\n * - `conventional` → OCS 1.1.1 (Prosaic explanations)\n * - `cryptoterrestrial` → OCS 1.1.2 (Hidden Earth-based entities)\n * - `extraterrestrial` → OCS 1.1.3 (Off-world visitors)\n * - `extradimensional` → OCS 1.2 (Other dimensions)\n * - `interdimensional` → OCS 1.3 (Dimension-traversing)\n * - `psychosocial` → OCS 2.0 (Perceptual/social factors)\n * - `metaphysical` → OCS 3.0 (Beyond conventional science)\n * - `insufficientData` → Cannot classify due to lack of information\n */\nexport const CategoryConfidenceSchema = z\n .object({\n conventional: ConfidenceSchema,\n cryptoterrestrial: ConfidenceSchema,\n extraterrestrial: ConfidenceSchema,\n extradimensional: ConfidenceSchema,\n interdimensional: ConfidenceSchema,\n psychosocial: ConfidenceSchema,\n metaphysical: ConfidenceSchema,\n insufficientData: ConfidenceSchema,\n })\n .meta({ id: 'CategoryConfidence' })\n .describe('Quick category-level confidence distribution across broad OCS categories.');\n\nexport type CategoryConfidence = z.infer<typeof CategoryConfidenceSchema>;\n","import type { OriginDomain } from '../taxonomy/types';\nimport { OCS_TAXONOMY } from '../taxonomy/tree';\n\nexport const OCS_LABELS: Record<string, string> = Object.fromEntries(\n OCS_TAXONOMY.map((n) => [n.id, n.label]),\n);\n\nexport const ORIGIN_DOMAIN_LABELS: Record<OriginDomain, string> = {\n physical: 'Physical',\n psychosocial: 'Psychosocial',\n metaphysical: 'Metaphysical',\n};\n","import type { OriginClaim } from '../classification/types';\nimport { OriginDomainSchema } from '../taxonomy/types';\nimport { OCS_TAXONOMY } from '../taxonomy/tree';\n\nexport const ORIGIN_DOMAINS = OriginDomainSchema.options;\n\n/**\n * Provenance of the OCS taxonomy. The three-domain structure (Physical /\n * Psychosocial / Metaphysical) is adapted from Col. Karl Nell's \"Proposed\n * Taxonomy of UAP Origin Hypotheses,\" presented at the Sol Foundation\n * Symposium (Stanford University, November 2023). Surfaced as data so any\n * consumer renders the same credit.\n */\nexport const OCS_PROVENANCE = {\n author: 'Col. Karl Nell (U.S. Army, ret.)',\n work: 'Proposed Taxonomy of UAP Origin Hypotheses',\n venue: 'Sol Foundation Symposium, Stanford University',\n date: 'November 2023',\n} as const;\n\nexport const ALL_OCS_IDS: readonly string[] = OCS_TAXONOMY.map((n) => n.id);\n\nexport const TESTABLE_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.scientificallyTestable)\n .map((n) => n.id);\n\nexport const LEAF_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.children.length === 0)\n .map((n) => n.id);\n\nexport const PHYSICAL_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.domain === 'physical')\n .map((n) => n.id);\n\nexport const PSYCHOSOCIAL_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.domain === 'psychosocial')\n .map((n) => n.id);\n\nexport const METAPHYSICAL_IDS: readonly string[] = OCS_TAXONOMY\n .filter((n) => n.domain === 'metaphysical')\n .map((n) => n.id);\n\n/**\n * Canonical shape for the `Observation.origin` slot, registered on `Observation`\n * via module augmentation when this package is imported.\n *\n * A *list* of {@link OriginClaim}s: competing classifications from different\n * evaluators coexist without one being privileged (the inter-claim axis).\n *\n * @example\n * ```typescript\n * import type { Observation } from '@disclosureos/records';\n * import '@disclosureos/origins'; // augments Observation with `origin`\n *\n * const obs: Observation = { ...base, origin: [claim] };\n * ```\n */\nexport type OriginClassificationSlot = OriginClaim[];\n","/**\n * Layer-3 nominal brand. `OCSNodeId` lives here (not in `records/shared`) because\n * the OCS taxonomy is an origins concern — the Layer-1 substrate stays agnostic\n * about classification. A branded value is a plain string at runtime; the brand\n * only constrains assignment at compile time and never touches emitted JSON Schema.\n */\n\ndeclare const __ocsBrand: unique symbol;\n\n/** Validated OCS taxonomy node id (e.g. `1.1.3`). */\nexport type OCSNodeId = string & { readonly [__ocsBrand]: 'OCSNodeId' };\n\nexport function asOCSNodeId(value: string): OCSNodeId {\n return value as OCSNodeId;\n}\n","import { createEnumGuard } from '@disclosureos/records/shared';\nimport type { OCSNodeId } from '../brands';\nimport { OriginDomainSchema } from '../taxonomy/types';\nimport {\n OriginClaimSchema,\n ConfidenceDistributionSchema,\n} from '../classification/types';\nimport type { OriginClaim, ConfidenceDistribution } from '../classification/types';\nimport { ALL_OCS_IDS } from '../constants';\n\n/** Re-exported from the origins brand module so `@disclosureos/origins` stays the home of OCS APIs. */\nexport type { OCSNodeId };\n\n// Enum guards are built from each schema's `.options` (a plain string tuple) so\n// they stay free of Zod's cross-package version brand. Object guards run the\n// schema's own `safeParse` (same package, same Zod instance).\nexport const isOriginDomain = createEnumGuard(OriginDomainSchema.options);\nexport const isOCSNodeId = createEnumGuard<OCSNodeId>(ALL_OCS_IDS as readonly OCSNodeId[]);\n\nexport function isOriginClaim(value: unknown): value is OriginClaim {\n return OriginClaimSchema.safeParse(value).success;\n}\n\nexport function isConfidenceDistribution(value: unknown): value is ConfidenceDistribution {\n return ConfidenceDistributionSchema.safeParse(value).success;\n}\n","import {\n OriginClaimSchema,\n ConfidenceDistributionSchema,\n} from '../classification/types';\nimport type {\n OriginClaim,\n ConfidenceDistribution,\n HypothesisWeight,\n} from '../classification/types';\nimport { getNode } from '../taxonomy/traversal';\n\nexport interface ClassificationOptions {\n alternativeHypotheses?: HypothesisWeight[];\n /** Why this classification was assigned (shared `Attribution`). */\n rationale?: string;\n /** Who assigned the classification (shared `Attribution`). */\n evaluatedBy?: string;\n /** Override the auto-generated timestamp (shared `Attribution`). */\n evaluatedAt?: string;\n /** Refs to in-record evidence justifying this claim, e.g. `\"sensor:<id>\"` (shared `Claim`). */\n evidenceRefs?: string[];\n}\n\nfunction assertKnownNode(nodeId: string, label: string): void {\n if (!getNode(nodeId)) {\n throw new Error(`Unknown OCS node ID in ${label}: \"${nodeId}\"`);\n }\n}\n\n/**\n * Build one {@link OriginClaim} (a single evaluator's verdict). The\n * `Observation.origin` slot holds an array of these — push the result into it,\n * or build several to represent competing classifications.\n */\nexport function createOriginClaim(\n primaryHypothesis: string,\n confidence: number,\n options?: ClassificationOptions,\n): OriginClaim {\n assertKnownNode(primaryHypothesis, 'primaryHypothesis');\n const { alternativeHypotheses, rationale, evaluatedBy, evaluatedAt, evidenceRefs } = options ?? {};\n for (const alt of alternativeHypotheses ?? []) {\n assertKnownNode(alt.nodeId, 'alternativeHypothesis');\n }\n // `.parse()` validates structure + confidence ranges (incl. alternatives).\n return OriginClaimSchema.parse({\n primaryHypothesis,\n confidence,\n evaluatedAt: evaluatedAt ?? new Date().toISOString(),\n ...(alternativeHypotheses !== undefined && { alternativeHypotheses }),\n ...(rationale !== undefined && { rationale }),\n ...(evaluatedBy !== undefined && { evaluatedBy }),\n ...(evidenceRefs !== undefined && { evidenceRefs }),\n });\n}\n\nexport function createConfidenceDistribution(\n hypotheses: HypothesisWeight[],\n options?: { evaluatedAt?: string },\n): ConfidenceDistribution {\n for (const h of hypotheses) {\n assertKnownNode(h.nodeId, 'hypothesis');\n }\n const total = hypotheses.reduce((sum, h) => sum + h.confidence, 0);\n if (total > 1 + 1e-9) {\n throw new RangeError(`hypothesis confidences sum to ${total}, exceeding 1.0`);\n }\n return ConfidenceDistributionSchema.parse({\n hypotheses,\n unresolved: Math.max(0, 1 - total),\n evaluatedAt: options?.evaluatedAt ?? new Date().toISOString(),\n });\n}\n","import type { OriginDomain, OCSNode } from '../taxonomy/types';\nimport { OCS_LABELS, ORIGIN_DOMAIN_LABELS } from '../labels';\nimport { getPath } from '../taxonomy/traversal';\n\nexport function formatOCSCode(id: string): string {\n return getPath(id) || id;\n}\n\nexport function formatDomainLabel(domain: OriginDomain): string {\n return ORIGIN_DOMAIN_LABELS[domain];\n}\n\nexport function formatNodeLabel(id: string): string {\n return OCS_LABELS[id] ?? id;\n}\n\nexport function formatTestability(node: OCSNode): string {\n return node.scientificallyTestable\n ? 'Scientifically testable'\n : 'Not empirically falsifiable';\n}\n","import { z } from 'zod';\nimport { jsonSchemaEnvelope, schemaId, validateWith } from '@disclosureos/records/shared';\nimport type { ValidationIssue } from '@disclosureos/records/shared';\nimport { OriginClaimSchema } from './classification/types';\nimport { getNode } from './taxonomy/traversal';\n\nexport const ORIGINS_SCHEMA_VERSION = '2.0.0';\n\nexport const ORIGINS_SCHEMA_ID = schemaId(\n 'origins',\n 'origin-classification',\n ORIGINS_SCHEMA_VERSION,\n);\n\n/** The `Observation.origin` slot: a list of competing {@link OriginClaimSchema}s. */\nconst OriginSlotSchema = z\n .array(OriginClaimSchema)\n .describe('Competing origin claims for an observation (one per evaluator/verdict).');\n\n/**\n * Emit the JSON Schema (draft 2020-12) for the `origin` slot payload — an array\n * of {@link OriginClaimSchema}.\n */\nexport function originsJsonSchema(): Record<string, unknown> {\n const schema = z.toJSONSchema(OriginSlotSchema, {\n target: 'draft-2020-12',\n }) as Record<string, unknown>;\n return jsonSchemaEnvelope(schema, { id: ORIGINS_SCHEMA_ID, version: ORIGINS_SCHEMA_VERSION });\n}\n\nfunction checkClaimNodes(claim: unknown, prefix: string, issues: ValidationIssue[]): void {\n const c = claim as { primaryHypothesis?: unknown; alternativeHypotheses?: unknown };\n if (typeof c.primaryHypothesis === 'string' && !getNode(c.primaryHypothesis)) {\n issues.push({\n path: `${prefix}primaryHypothesis`,\n message: `unknown OCS node id: ${c.primaryHypothesis}`,\n });\n }\n if (Array.isArray(c.alternativeHypotheses)) {\n c.alternativeHypotheses.forEach((alt, i) => {\n const nodeId = (alt as { nodeId?: unknown } | undefined)?.nodeId;\n if (typeof nodeId === 'string' && !getNode(nodeId)) {\n issues.push({\n path: `${prefix}alternativeHypotheses.${i}.nodeId`,\n message: `unknown OCS node id: ${nodeId}`,\n });\n }\n });\n }\n}\n\n/**\n * Validate an `origin` slot value (a list of {@link OriginClaimSchema}) against\n * the schema, then verify that every referenced OCS node actually exists in the\n * taxonomy.\n *\n * The node-existence check lives HERE (not as a schema `.refine`) so the emitted\n * JSON Schema stays clean/serializable, while the validator, the\n * `createOriginClaim` factory, and the CLI all enforce the same \"is this a real\n * OCS node?\" rule — one answer to \"is this origin valid?\".\n */\nexport function validateOriginClassification(value: unknown): ValidationIssue[] {\n const structural = validateWith(OriginSlotSchema, value);\n if (structural.length > 0) return structural;\n\n const issues: ValidationIssue[] = [];\n (value as unknown[]).forEach((claim, i) => {\n checkClaimNodes(claim, `${i}.`, issues);\n });\n return issues;\n}\n","import type { VocabularyCatalog, VocabularyCatalogTerm } from '@disclosureos/records/experimental/v2';\nimport { OCS_TAXONOMY } from '../taxonomy/tree';\nimport { OCSNodeSchema } from '../taxonomy/types';\nimport type { OCSNode } from '../taxonomy/types';\nimport { OCS_PROVENANCE } from '../constants';\n\nexport const ORIGIN_CATALOG_ID = 'https://os.disclosure.org/vocabularies/origin-hypotheses';\nexport const ORIGIN_TERM_EXTENSION = 'org.disclosureos.origins';\n\nexport type OriginCatalogOptions = Pick<VocabularyCatalog, 'id' | 'revision' | 'publishedBy' | 'publishedAt'>;\n\n/** Exports the OCS taxonomy using the shared vocabulary envelope. Membership does not establish an origin. */\nexport function createOriginCatalog(options: OriginCatalogOptions): VocabularyCatalog {\n return {\n kind: 'vocabulary_catalog',\n schemaVersion: '0.1.0',\n ...options,\n catalogId: ORIGIN_CATALOG_ID,\n extensions: { [ORIGIN_TERM_EXTENSION]: { provenance: { ...OCS_PROVENANCE } } },\n terms: OCS_TAXONOMY.map((node) => {\n const { id, label, description, domain } = node;\n const metadata: Record<string, string | string[] | number | boolean | null> = {\n depth: node.depth,\n parentId: node.parentId,\n children: [...node.children],\n scientificallyTestable: node.scientificallyTestable,\n };\n if (node.aliases !== undefined) metadata.aliases = [...node.aliases];\n return {\n id, label, description, category: domain,\n extensions: { [ORIGIN_TERM_EXTENSION]: metadata },\n };\n }),\n };\n}\n\n/** Reads package-owned OCS metadata; unknown or malformed metadata is not a typed OCS node. */\nexport function readOriginTermDefinition(term: VocabularyCatalogTerm): OCSNode | undefined {\n const metadata = term.extensions?.[ORIGIN_TERM_EXTENSION];\n if (!metadata || typeof metadata !== 'object' || Array.isArray(metadata)) return undefined;\n const parsed = OCSNodeSchema.safeParse({\n ...metadata,\n id: term.id,\n label: term.label,\n description: term.description,\n domain: term.category,\n });\n return parsed.success ? parsed.data : undefined;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@disclosureos/origins",
3
- "version": "2.0.0-beta.3",
3
+ "version": "2.0.0-beta.4",
4
4
  "description": "Classification taxonomy for the DisclosureOS ecosystem — origin hypotheses, OCS taxonomy, and reference systems",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -108,7 +108,7 @@
108
108
  ],
109
109
  "dependencies": {
110
110
  "zod": "4.4.3",
111
- "@disclosureos/records": "2.0.0-beta.3"
111
+ "@disclosureos/records": "2.0.0-beta.4"
112
112
  },
113
113
  "devDependencies": {
114
114
  "@types/node": "^20",