@disclosureos/origins 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +21 -0
  3. package/README.md +95 -0
  4. package/dist/classification/index.d.ts +75 -0
  5. package/dist/classification/index.js +35 -0
  6. package/dist/classification/index.js.map +1 -0
  7. package/dist/constants/index.d.ts +41 -0
  8. package/dist/constants/index.js +1027 -0
  9. package/dist/constants/index.js.map +1 -0
  10. package/dist/factories/index.d.ts +25 -0
  11. package/dist/factories/index.js +1067 -0
  12. package/dist/factories/index.js.map +1 -0
  13. package/dist/formatters/index.d.ts +9 -0
  14. package/dist/formatters/index.js +1036 -0
  15. package/dist/formatters/index.js.map +1 -0
  16. package/dist/guards/index.d.ts +3 -0
  17. package/dist/guards/index.js +1059 -0
  18. package/dist/guards/index.js.map +1 -0
  19. package/dist/index-BUFnYJ1s.d.ts +21 -0
  20. package/dist/index.d.ts +53 -0
  21. package/dist/index.js +1231 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/labels/index.d.ts +7 -0
  24. package/dist/labels/index.js +1002 -0
  25. package/dist/labels/index.js.map +1 -0
  26. package/dist/reference/aaro/index.d.ts +26 -0
  27. package/dist/reference/aaro/index.js +47 -0
  28. package/dist/reference/aaro/index.js.map +1 -0
  29. package/dist/reference/geipan/index.d.ts +34 -0
  30. package/dist/reference/geipan/index.js +53 -0
  31. package/dist/reference/geipan/index.js.map +1 -0
  32. package/dist/reference/hynek/index.d.ts +37 -0
  33. package/dist/reference/hynek/index.js +27 -0
  34. package/dist/reference/hynek/index.js.map +1 -0
  35. package/dist/reference/index.d.ts +5 -0
  36. package/dist/reference/index.js +143 -0
  37. package/dist/reference/index.js.map +1 -0
  38. package/dist/reference/vallee/index.d.ts +40 -0
  39. package/dist/reference/vallee/index.js +37 -0
  40. package/dist/reference/vallee/index.js.map +1 -0
  41. package/dist/taxonomy/index.d.ts +20 -0
  42. package/dist/taxonomy/index.js +1071 -0
  43. package/dist/taxonomy/index.js.map +1 -0
  44. package/dist/taxonomy/metaphysical/index.d.ts +6 -0
  45. package/dist/taxonomy/metaphysical/index.js +995 -0
  46. package/dist/taxonomy/metaphysical/index.js.map +1 -0
  47. package/dist/taxonomy/physical/index.d.ts +6 -0
  48. package/dist/taxonomy/physical/index.js +995 -0
  49. package/dist/taxonomy/physical/index.js.map +1 -0
  50. package/dist/taxonomy/psychosocial/index.d.ts +6 -0
  51. package/dist/taxonomy/psychosocial/index.js +995 -0
  52. package/dist/taxonomy/psychosocial/index.js.map +1 -0
  53. package/dist/types-DhroHNFf.d.ts +62 -0
  54. package/package.json +136 -0
  55. package/schema/origins.schema.json +88 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,19 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@disclosureos/origins` are documented here. The format is
4
+ based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project
5
+ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## 1.0.0
8
+
9
+ Initial public release — the Origins layer.
10
+
11
+ ### Added
12
+ - The Origin Classification System (OCS) taxonomy across the Physical, Psychosocial,
13
+ and Metaphysical domains, with traversal utilities (`getNode`, …).
14
+ - `OriginClaim` + `createOriginClaim`; the `origin` slot is an array of competing
15
+ claims, with every node id validated against the live taxonomy.
16
+ - Typed reference systems: Hynek, Vallée, AARO, GEIPAN.
17
+ - `validateOriginClassification` and the `origin` augmentation of `Observation`.
18
+ - The DX quintet; committed JSON Schema artifact (`schema/origins.schema.json`,
19
+ draft 2020-12).
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Disclosure Foundation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,95 @@
1
+ # @disclosureos/origins
2
+
3
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
4
+
5
+ Classification taxonomy for the [DisclosureOS](https://github.com/disclosurefoundation)
6
+ ecosystem — the **Origins** layer. It answers *"what might explain the observation?"*
7
+ via the **Origin Classification System (OCS)**: a tree of origin hypotheses across the
8
+ Physical, Psychosocial, and Metaphysical domains, plus typed mappings to the reference
9
+ systems researchers already use (Hynek, Vallée, AARO, GEIPAN).
10
+
11
+ ## The DisclosureOS model
12
+
13
+ DisclosureOS is a **five-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
+
25
+ Supporting packages: **`@disclosureos/schema`** (the portable contract that composes the
26
+ package-owned pieces), **`@disclosureos/cli`** (tooling), and **`@disclosureos/examples`**
27
+ (the runnable golden path). *(You are here: **Origins**.)*
28
+
29
+ ## Built on records
30
+
31
+ This package depends on [`@disclosureos/records`](../disclosureos-records), the shared
32
+ substrate — it reuses its confidence and claim primitives. Importing this package
33
+ **augments** the `Observation` type with the `origin` slot:
34
+
35
+ ```typescript
36
+ import '@disclosureos/origins'; // `observation.origin` is now typed
37
+ ```
38
+
39
+ > **See it end to end.** [`examples/golden-path.ts`](../../examples/golden-path.ts)
40
+ > takes one observation through every layer — records → observables → origins → scoring,
41
+ > validated as a whole by `@disclosureos/schema` — in a single type-checked file. Run it
42
+ > with `pnpm --filter @disclosureos/examples golden-path`.
43
+ >
44
+ > **Migrating an existing dataset?** See [`examples/migration-path.ts`](../../examples/migration-path.ts)
45
+ > and the [onboarding workspace](https://os.disclosure.org/onboard).
46
+
47
+ ## Install
48
+
49
+ ```bash
50
+ pnpm add @disclosureos/origins @disclosureos/records zod
51
+ ```
52
+
53
+ ## Quick start
54
+
55
+ ```typescript
56
+ import { createOriginClaim, getNode } from '@disclosureos/origins';
57
+ import type { Observation } from '@disclosureos/records';
58
+
59
+ const observation: Observation = {
60
+ // ...records core fields...
61
+ origin: [
62
+ { primaryHypothesis: '1.1.3', confidence: 0.9, evaluatedBy: 'analyst-a' },
63
+ ],
64
+ };
65
+
66
+ getNode('1.1.3'); // resolve an OCS node by id
67
+ ```
68
+
69
+ The `origin` slot is an **array of competing claims** (one per evaluator/verdict), so
70
+ contested classifications are represented directly. Every `primaryHypothesis` /
71
+ `alternativeHypotheses` node id is validated against the live taxonomy.
72
+
73
+ > ⚠️ A raw `ObservationSchema.parse()` strips this slot. Validate enriched records with
74
+ > `validateOriginClassification()` (this package) or `parseEnrichedObservation()` from
75
+ > [`@disclosureos/schema`](../disclosureos-schema).
76
+
77
+ ## Subpath exports
78
+
79
+ | Subpath | Contents |
80
+ |---|---|
81
+ | `@disclosureos/origins` | `OriginClaim`, `createOriginClaim`, `getNode`, `validateOriginClassification` |
82
+ | `@disclosureos/origins/taxonomy` (+ `/physical`, `/psychosocial`, `/metaphysical`) | The OCS tree + traversal |
83
+ | `@disclosureos/origins/reference/*` | Hynek · Vallée · AARO · GEIPAN reference systems |
84
+ | `@disclosureos/origins/{classification,labels,constants,guards,factories,formatters}` | Claims + the DX quintet |
85
+ | `@disclosureos/origins/schema` | The committed JSON Schema (`origins.schema.json`) |
86
+
87
+ ## Standard Schema
88
+
89
+ The Zod schemas here implement [Standard Schema v1](https://standardschema.dev) via
90
+ their `~standard` property — a guarantee of Zod 4. Any Standard-Schema-compatible
91
+ validator or framework can consume them directly, with no DisclosureOS-specific adapter.
92
+
93
+ ## License
94
+
95
+ MIT © [Disclosure Foundation](https://disclosure.org)
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * A weighted origin hypothesis: an OCS node id plus the confidence assigned to it.
5
+ */
6
+ declare const HypothesisWeightSchema: z.ZodObject<{
7
+ nodeId: z.ZodString;
8
+ confidence: z.ZodNumber;
9
+ label: z.ZodOptional<z.ZodString>;
10
+ }, z.core.$strip>;
11
+ type HypothesisWeight = z.infer<typeof HypothesisWeightSchema>;
12
+ /**
13
+ * A single attributed origin claim — one evaluator's verdict on what an
14
+ * observation is: a primary OCS hypothesis with its confidence, optional
15
+ * `alternativeHypotheses` (the intra-claim axis), and the shared {@link ClaimSchema}
16
+ * envelope (`evaluatedAt` / `evaluatedBy` / `rationale` + `evidenceRefs`).
17
+ *
18
+ * The `Observation.origin` slot is a *list* of these (the inter-claim axis), so
19
+ * competing classifications from different evaluators coexist without one being
20
+ * privileged — endorsement is a scoring concern, not a records one.
21
+ */
22
+ declare const OriginClaimSchema: z.ZodObject<{
23
+ evaluatedAt: z.ZodOptional<z.ZodISODateTime>;
24
+ evaluatedBy: z.ZodOptional<z.ZodString>;
25
+ rationale: z.ZodOptional<z.ZodString>;
26
+ evidenceRefs: z.ZodOptional<z.ZodArray<z.ZodString>>;
27
+ primaryHypothesis: z.ZodString;
28
+ confidence: z.ZodNumber;
29
+ alternativeHypotheses: z.ZodOptional<z.ZodArray<z.ZodObject<{
30
+ nodeId: z.ZodString;
31
+ confidence: z.ZodNumber;
32
+ label: z.ZodOptional<z.ZodString>;
33
+ }, z.core.$strip>>>;
34
+ }, z.core.$strip>;
35
+ type OriginClaim = z.infer<typeof OriginClaimSchema>;
36
+ /**
37
+ * A full distribution of confidence across hypotheses, with `unresolved` holding
38
+ * the remaining confidence not assigned to any hypothesis.
39
+ */
40
+ declare const ConfidenceDistributionSchema: z.ZodObject<{
41
+ hypotheses: z.ZodArray<z.ZodObject<{
42
+ nodeId: z.ZodString;
43
+ confidence: z.ZodNumber;
44
+ label: z.ZodOptional<z.ZodString>;
45
+ }, z.core.$strip>>;
46
+ unresolved: z.ZodNumber;
47
+ evaluatedAt: z.ZodISODateTime;
48
+ }, z.core.$strip>;
49
+ type ConfidenceDistribution = z.infer<typeof ConfidenceDistributionSchema>;
50
+ /**
51
+ * Simplified category-level confidence distribution for quick classification.
52
+ * Each key maps to a broad OCS category. Values are confidence levels (0-1) that should sum to ~1.0.
53
+ *
54
+ * - `conventional` → OCS 1.1.1 (Prosaic explanations)
55
+ * - `cryptoterrestrial` → OCS 1.1.2 (Hidden Earth-based entities)
56
+ * - `extraterrestrial` → OCS 1.1.3 (Off-world visitors)
57
+ * - `extradimensional` → OCS 1.2 (Other dimensions)
58
+ * - `interdimensional` → OCS 1.3 (Dimension-traversing)
59
+ * - `psychosocial` → OCS 2.0 (Perceptual/social factors)
60
+ * - `metaphysical` → OCS 3.0 (Beyond conventional science)
61
+ * - `insufficientData` → Cannot classify due to lack of information
62
+ */
63
+ declare const CategoryConfidenceSchema: z.ZodObject<{
64
+ conventional: z.ZodNumber;
65
+ cryptoterrestrial: z.ZodNumber;
66
+ extraterrestrial: z.ZodNumber;
67
+ extradimensional: z.ZodNumber;
68
+ interdimensional: z.ZodNumber;
69
+ psychosocial: z.ZodNumber;
70
+ metaphysical: z.ZodNumber;
71
+ insufficientData: z.ZodNumber;
72
+ }, z.core.$strip>;
73
+ type CategoryConfidence = z.infer<typeof CategoryConfidenceSchema>;
74
+
75
+ export { type CategoryConfidence, CategoryConfidenceSchema, type ConfidenceDistribution, ConfidenceDistributionSchema, type HypothesisWeight, HypothesisWeightSchema, type OriginClaim, OriginClaimSchema };
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ import { ConfidenceSchema, ClaimSchema } from '@disclosureos/records/shared';
3
+
4
+ // src/classification/types.ts
5
+ var HypothesisWeightSchema = z.object({
6
+ nodeId: z.string().min(1).describe('OCS node id (e.g., "1.1.3").'),
7
+ confidence: ConfidenceSchema,
8
+ label: z.string().optional()
9
+ }).meta({ id: "HypothesisWeight" }).describe("A weighted origin hypothesis (OCS node + confidence).");
10
+ var OriginClaimSchema = ClaimSchema.extend({
11
+ primaryHypothesis: z.string().min(1).describe("OCS node id of the primary hypothesis."),
12
+ confidence: ConfidenceSchema.describe("Confidence in the primary hypothesis, in [0,1]."),
13
+ alternativeHypotheses: z.array(HypothesisWeightSchema).optional().describe(
14
+ "Other OCS hypotheses this same evaluator weighs as possible, each with its own confidence \u2014 the intra-claim uncertainty axis."
15
+ )
16
+ }).meta({ id: "OriginClaim" }).describe("An attributed origin-hypothesis classification for an observation.");
17
+ var ConfidenceDistributionSchema = z.object({
18
+ hypotheses: z.array(HypothesisWeightSchema),
19
+ unresolved: ConfidenceSchema.describe("Remaining confidence not assigned to any hypothesis."),
20
+ evaluatedAt: z.iso.datetime()
21
+ }).meta({ id: "ConfidenceDistribution" }).describe("Confidence distribution across origin hypotheses.");
22
+ var CategoryConfidenceSchema = z.object({
23
+ conventional: ConfidenceSchema,
24
+ cryptoterrestrial: ConfidenceSchema,
25
+ extraterrestrial: ConfidenceSchema,
26
+ extradimensional: ConfidenceSchema,
27
+ interdimensional: ConfidenceSchema,
28
+ psychosocial: ConfidenceSchema,
29
+ metaphysical: ConfidenceSchema,
30
+ insufficientData: ConfidenceSchema
31
+ }).meta({ id: "CategoryConfidence" }).describe("Quick category-level confidence distribution across broad OCS categories.");
32
+
33
+ export { CategoryConfidenceSchema, ConfidenceDistributionSchema, HypothesisWeightSchema, OriginClaimSchema };
34
+ //# sourceMappingURL=index.js.map
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/classification/types.ts"],"names":[],"mappings":";;;;AAMO,IAAM,sBAAA,GAAyB,EACnC,MAAA,CAAO;AAAA,EACN,MAAA,EAAQ,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACjE,UAAA,EAAY,gBAAA;AAAA,EACZ,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC,CAAA,CACA,KAAK,EAAE,EAAA,EAAI,oBAAoB,CAAA,CAC/B,SAAS,uDAAuD;AAc5D,IAAM,iBAAA,GAAoB,YAAY,MAAA,CAAO;AAAA,EAClD,iBAAA,EAAmB,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,wCAAwC,CAAA;AAAA,EACtF,UAAA,EAAY,gBAAA,CAAiB,QAAA,CAAS,iDAAiD,CAAA;AAAA,EACvF,uBAAuB,CAAA,CACpB,KAAA,CAAM,sBAAsB,CAAA,CAC5B,UAAS,CACT,QAAA;AAAA,IACC;AAAA;AAEN,CAAC,CAAA,CACE,KAAK,EAAE,EAAA,EAAI,eAAe,CAAA,CAC1B,SAAS,oEAAoE;AAQzE,IAAM,4BAAA,GAA+B,EACzC,MAAA,CAAO;AAAA,EACN,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EAC1C,UAAA,EAAY,gBAAA,CAAiB,QAAA,CAAS,sDAAsD,CAAA;AAAA,EAC5F,WAAA,EAAa,CAAA,CAAE,GAAA,CAAI,QAAA;AACrB,CAAC,CAAA,CACA,KAAK,EAAE,EAAA,EAAI,0BAA0B,CAAA,CACrC,SAAS,mDAAmD;AAiBxD,IAAM,wBAAA,GAA2B,EACrC,MAAA,CAAO;AAAA,EACN,YAAA,EAAc,gBAAA;AAAA,EACd,iBAAA,EAAmB,gBAAA;AAAA,EACnB,gBAAA,EAAkB,gBAAA;AAAA,EAClB,gBAAA,EAAkB,gBAAA;AAAA,EAClB,gBAAA,EAAkB,gBAAA;AAAA,EAClB,YAAA,EAAc,gBAAA;AAAA,EACd,YAAA,EAAc,gBAAA;AAAA,EACd,gBAAA,EAAkB;AACpB,CAAC,CAAA,CACA,KAAK,EAAE,EAAA,EAAI,sBAAsB,CAAA,CACjC,SAAS,2EAA2E","file":"index.js","sourcesContent":["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"]}
@@ -0,0 +1,41 @@
1
+ import { OriginClaim } from '../classification/index.js';
2
+ import 'zod';
3
+
4
+ declare const ORIGIN_DOMAINS: ("psychosocial" | "metaphysical" | "physical")[];
5
+ /**
6
+ * Provenance of the OCS taxonomy. The three-domain structure (Physical /
7
+ * Psychosocial / Metaphysical) is adapted from Col. Karl Nell's "Proposed
8
+ * Taxonomy of UAP Origin Hypotheses," presented at the Sol Foundation
9
+ * Symposium (Stanford University, November 2023). Surfaced as data so any
10
+ * consumer renders the same credit.
11
+ */
12
+ declare const OCS_PROVENANCE: {
13
+ readonly author: "Col. Karl Nell (U.S. Army, ret.)";
14
+ readonly work: "Proposed Taxonomy of UAP Origin Hypotheses";
15
+ readonly venue: "Sol Foundation Symposium, Stanford University";
16
+ readonly date: "November 2023";
17
+ };
18
+ declare const ALL_OCS_IDS: readonly string[];
19
+ declare const TESTABLE_IDS: readonly string[];
20
+ declare const LEAF_IDS: readonly string[];
21
+ declare const PHYSICAL_IDS: readonly string[];
22
+ declare const PSYCHOSOCIAL_IDS: readonly string[];
23
+ declare const METAPHYSICAL_IDS: readonly string[];
24
+ /**
25
+ * Canonical shape for the `Observation.origin` slot, registered on `Observation`
26
+ * via module augmentation when this package is imported.
27
+ *
28
+ * A *list* of {@link OriginClaim}s: competing classifications from different
29
+ * evaluators coexist without one being privileged (the inter-claim axis).
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * import type { Observation } from '@disclosureos/records';
34
+ * import '@disclosureos/origins'; // augments Observation with `origin`
35
+ *
36
+ * const obs: Observation = { ...base, origin: [claim] };
37
+ * ```
38
+ */
39
+ type OriginClassificationSlot = OriginClaim[];
40
+
41
+ export { ALL_OCS_IDS, LEAF_IDS, METAPHYSICAL_IDS, OCS_PROVENANCE, ORIGIN_DOMAINS, type OriginClassificationSlot, PHYSICAL_IDS, PSYCHOSOCIAL_IDS, TESTABLE_IDS };