@disclosureos/observables 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.
@@ -0,0 +1,409 @@
1
+ import { z } from 'zod';
2
+ import { ClaimSchema, ConfidenceSchema } from '@disclosureos/records/shared';
3
+
4
+ // src/constants/index.ts
5
+ var AssessmentLevelSchema = z.enum(["not_indicated", "reported", "documented", "measured", "confirmed"]).describe("Evidentiary tier of an observable assessment \u2014 how strongly the signal is established.");
6
+ var ObservableCategorySchema = z.enum(["technology", "biologics"]).describe("Top-level observable domain.");
7
+ var ObservableBaseSchema = z.object({
8
+ id: z.string().describe('Stable observable identifier used in data (e.g., "instantaneous_acceleration").'),
9
+ code: z.string().describe('Short display code for the observable (e.g., "TO-2" or "BO-1").'),
10
+ label: z.string().describe("Human-readable observable name."),
11
+ description: z.string().describe("Plain-language description of what the observable captures."),
12
+ scientificBasis: z.string().describe("Why this observable may be scientifically meaningful, including the evidentiary basis and limitations."),
13
+ caveat: z.string().optional().describe(
14
+ "Qualifier shown when the basis rests on a contested framework or a weaker class of evidence (e.g. testimony rather than sensor data). Present only when the observable warrants extra caution."
15
+ ),
16
+ caveatLabel: z.string().optional().describe(
17
+ 'Short heading for the caveat banner. Defaults to "Contested basis" when omitted; set explicitly when the caution is about evidence type or interpretation rather than disputed science.'
18
+ ),
19
+ detectionSignals: z.array(z.string()).describe("Observable signs or measurements that would indicate this signal may be present."),
20
+ methods: z.array(z.string()).describe("Methods or instruments used to detect or evaluate the observable."),
21
+ references: z.array(z.string()).optional().describe("Published or public references supporting the definition.")
22
+ }).meta({ id: "ObservableBase" }).describe("Definition of a single observable: what it is, its scientific basis, and how to detect it.");
23
+ ObservableBaseSchema.extend({
24
+ category: ObservableCategorySchema
25
+ }).meta({ id: "ObservableDefinition" }).describe("Fully-resolved observable definition including its category.");
26
+ var ObservableAssessmentSchema = ClaimSchema.extend({
27
+ observableId: z.string(),
28
+ level: AssessmentLevelSchema,
29
+ confidence: ConfidenceSchema.optional().describe(
30
+ "Confidence in the assessment, in [0,1]. 0 = none, 1 = absolute."
31
+ )
32
+ }).meta({ id: "ObservableAssessment" }).describe("An assessment of one observable for an observation.");
33
+ var ObservableClaimSchema = ObservableAssessmentSchema.omit({
34
+ observableId: true
35
+ }).meta({ id: "ObservableClaim" }).describe("An attributed observable claim, keyed by its map position (no observableId).");
36
+ var TechnologyObservableIdSchema = z.enum([
37
+ "antigravity_lift",
38
+ "instantaneous_acceleration",
39
+ "hypersonic_no_signatures",
40
+ "low_observability",
41
+ "transmedium_travel",
42
+ "biological_effects"
43
+ ]).describe("Identifier of a Technology observable (the six AATIP-derived characteristics).");
44
+ ObservableBaseSchema.extend({
45
+ id: TechnologyObservableIdSchema,
46
+ references: z.array(z.string())
47
+ }).meta({ id: "TechnologyObservable" }).describe("Definition of a Technology observable.");
48
+ ObservableAssessmentSchema.extend({
49
+ observableId: TechnologyObservableIdSchema
50
+ }).meta({ id: "TechnologyAssessment" }).describe("An assessment of a Technology observable.");
51
+ var BiologicsObservableIdSchema = z.enum([
52
+ "molecular_complexity",
53
+ "isotopic_provenance",
54
+ "non_standard_biochemistry",
55
+ "non_phylogenetic_genetics",
56
+ "anomalous_morphology",
57
+ "anomalous_bio_interaction"
58
+ ]).describe("Identifier of a Biologics observable.");
59
+ ObservableBaseSchema.extend({
60
+ id: BiologicsObservableIdSchema,
61
+ references: z.array(z.string())
62
+ }).meta({ id: "BiologicsObservable" }).describe("Definition of a Biologics observable.");
63
+ ObservableAssessmentSchema.extend({
64
+ observableId: BiologicsObservableIdSchema
65
+ }).meta({ id: "BiologicsAssessment" }).describe("An assessment of a Biologics observable.");
66
+
67
+ // src/technology/constants.ts
68
+ var TECHNOLOGY_OBSERVABLES = {
69
+ antigravity_lift: {
70
+ id: "antigravity_lift",
71
+ code: "TO-1",
72
+ label: "Anti-Gravity Lift",
73
+ description: "Object appears to overcome gravitational force without conventional propulsion \u2014 no wings, rotors, exhaust, or visible means of lift.",
74
+ scientificBasis: "Violation of Newtonian mechanics and known aerodynamic principles. No known human technology achieves sustained hover without downwash, exhaust, or electromagnetic support at observed scales.",
75
+ detectionSignals: [
76
+ "Sustained hover with no visible propulsion",
77
+ "No downwash or ground effect disturbance",
78
+ "No exhaust or thermal signature from propulsion",
79
+ "Object mass inconsistent with buoyant lift",
80
+ "Silent operation during hover"
81
+ ],
82
+ methods: [
83
+ "FLIR/IR imaging for thermal signatures",
84
+ "Doppler radar for relative velocity confirmation",
85
+ "Ground-level pressure sensors for downwash detection",
86
+ "Acoustic monitoring for propulsion noise",
87
+ "Witness triangulation for altitude confirmation"
88
+ ],
89
+ references: [
90
+ 'Elizondo, "The Five Observables" framework, AATIP (anti-gravity lift)',
91
+ 'Knuth et al., "Estimating Flight Characteristics of Anomalous Unidentified Aerial Vehicles," Entropy, 2019'
92
+ ]
93
+ },
94
+ instantaneous_acceleration: {
95
+ id: "instantaneous_acceleration",
96
+ code: "TO-2",
97
+ label: "Instantaneous Acceleration",
98
+ description: "Object accelerates at rates far beyond known aerospace capabilities \u2014 estimated hundreds or thousands of g-forces with no apparent inertial effects.",
99
+ scientificBasis: "Exceeds structural limits of known materials and biological tolerance. F/A-18 max sustained: ~9g. In the 2004 Nimitz encounter, SCU forensic analysis estimated UAP accelerations from 40g to hundreds of g, with some maneuver estimates reaching thousands of g (Knuth et al., 2019).",
100
+ detectionSignals: [
101
+ "Radar track showing extreme velocity change over minimal time",
102
+ "Object transitions from hover to hypersonic in < 1 second",
103
+ "Right-angle or acute-angle turns at high speed",
104
+ "Immediate reversal of travel direction",
105
+ "No observed structural deformation during maneuver"
106
+ ],
107
+ methods: [
108
+ "Multi-radar track correlation for velocity profiles",
109
+ "Frame-by-frame video analysis for acceleration curves",
110
+ "Radar Doppler shift measurements",
111
+ "Satellite track data for independent velocity confirmation",
112
+ "Accelerometer data from nearby sensor platforms"
113
+ ],
114
+ references: [
115
+ `Powell et al., "A Forensic Analysis of Navy Carrier Strike Group Eleven's Encounter with an Anomalous Aerial Vehicle," SCU, 2019`,
116
+ 'Knuth et al., "Estimating Flight Characteristics of Anomalous Unidentified Aerial Vehicles," Entropy, 2019'
117
+ ]
118
+ },
119
+ hypersonic_no_signatures: {
120
+ id: "hypersonic_no_signatures",
121
+ code: "TO-3",
122
+ label: "Hypersonic Velocities Without Signatures",
123
+ description: "Object achieves hypersonic speeds (Mach 5+) without producing sonic boom, heat signature, or plasma sheath \u2014 violating known atmospheric physics.",
124
+ scientificBasis: "Objects exceeding Mach 1 in atmosphere must produce shock waves (sonic boom). Hypersonic flight generates extreme adiabatic heating and plasma formation. Absence of these signatures implies either non-atmospheric medium interaction or unknown physics.",
125
+ detectionSignals: [
126
+ "Radar-confirmed velocity exceeding Mach 5",
127
+ "No sonic boom detected at ground level",
128
+ "No IR bloom or thermal wake",
129
+ "No plasma sheath visible in optical/UV spectrum",
130
+ "No atmospheric disturbance trail"
131
+ ],
132
+ methods: [
133
+ "Phased-array radar for precise speed measurement",
134
+ "Infrasound sensors for sonic boom detection",
135
+ "Multi-spectral imaging for plasma detection",
136
+ "Seismographic stations for shock wave detection",
137
+ "FLIR for thermal signature analysis"
138
+ ],
139
+ references: [
140
+ 'Anderson, "Fundamentals of Aerodynamics," McGraw-Hill (hypersonic regime physics)',
141
+ 'Elizondo, "The Five Observables" framework, AATIP (hypersonic velocities without signatures)'
142
+ ]
143
+ },
144
+ low_observability: {
145
+ id: "low_observability",
146
+ code: "TO-4",
147
+ label: "Low Observability",
148
+ description: "Object evades or confounds multiple sensor modalities simultaneously \u2014 radar, infrared, visual, or electromagnetic detection systems fail to maintain consistent track.",
149
+ scientificBasis: "Known stealth technology reduces radar cross-section through geometry and materials but cannot simultaneously defeat all sensor modalities. UAP cases show simultaneous radar evasion, IR suppression, and visual cloaking beyond current technology.",
150
+ detectionSignals: [
151
+ "Intermittent radar returns despite visual confirmation",
152
+ "Radar track acquisition followed by unexplained loss",
153
+ "Sensor malfunction coinciding with proximity",
154
+ "Object visible to one modality but not others",
155
+ "Electronic warfare effects without identifiable source"
156
+ ],
157
+ methods: [
158
+ "Multi-sensor correlation (radar + IR + EO)",
159
+ "Radar cross-section estimation",
160
+ "EM spectrum analysis for jamming signatures",
161
+ "Sensor diagnostic logs for malfunction patterns",
162
+ "Signal-to-noise analysis across detection systems"
163
+ ],
164
+ references: [
165
+ "USS Princeton (AN/SPY-1 Aegis radar) operator testimony, 2004 Nimitz encounter",
166
+ 'Elizondo, "The Five Observables" framework, AATIP (low observability)'
167
+ ]
168
+ },
169
+ transmedium_travel: {
170
+ id: "transmedium_travel",
171
+ code: "TO-5",
172
+ label: "Transmedium Travel",
173
+ description: "Object transitions between air, water, and/or space without apparent structural reconfiguration, speed loss, or medium-transition effects.",
174
+ scientificBasis: "Air-to-water transition requires extreme structural adaptation (different pressure regimes, Reynolds numbers, propulsion requirements). No known vehicle operates effectively across multiple media without reconfiguration.",
175
+ detectionSignals: [
176
+ "Object observed entering water from air without splash proportional to size/speed",
177
+ "Object observed exiting water into air with continued controlled flight",
178
+ "Sonar track correlating with aerial radar track",
179
+ "No deceleration during medium transition",
180
+ "Consistent shape/size across media transitions"
181
+ ],
182
+ methods: [
183
+ "Coordinated air/maritime sensor monitoring",
184
+ "Sonar-to-radar track handoff correlation",
185
+ "High-speed camera for transition dynamics",
186
+ "Underwater hydrophone arrays",
187
+ "Satellite IR for ocean surface thermal anomalies"
188
+ ],
189
+ references: [
190
+ 'Scientific Coalition for UAP Studies, "2013 Aguadilla Puerto Rico: The Detailed Analysis of an Unidentified Anomalous Phenomenon Captured by the Department of Homeland Security," 2015',
191
+ 'Gallaudet, "Beneath the Surface," The Sol Foundation, 2023'
192
+ ]
193
+ },
194
+ biological_effects: {
195
+ id: "biological_effects",
196
+ code: "TO-6",
197
+ label: "Biological Effects",
198
+ description: "Proximity to the object causes measurable radiological, energetic, or physiological effects on biological organisms \u2014 burns, nausea, cellular damage, or other medical sequelae.",
199
+ scientificBasis: "Consistent with high-energy electromagnetic radiation exposure. AAWSAP/BAASS documented cases with radiation-like injuries. Colares, Brazil (1977) documented beam-related injuries on dozens of witnesses.",
200
+ detectionSignals: [
201
+ "Radiation-type burns without identifiable source",
202
+ "Nausea, headaches, or disorientation in proximity",
203
+ "Skin lesions or erythema post-encounter",
204
+ "Cellular or DNA damage documented in medical records",
205
+ "Multiple witnesses reporting similar physiological effects",
206
+ "Vegetation damage patterns around landing sites"
207
+ ],
208
+ methods: [
209
+ "Medical examination and documentation",
210
+ "Dosimetry and radiation survey at site",
211
+ "Blood panel and cellular analysis",
212
+ "Vegetation and soil sample analysis",
213
+ "Geiger counter readings at encounter locations",
214
+ "Long-term medical follow-up of exposed individuals"
215
+ ],
216
+ references: [
217
+ 'Lacatski, Kelleher & Knapp, "Skinwalkers at the Pentagon," 2021 (AAWSAP medical cases)',
218
+ "Opera\xE7\xE3o Prato (Operation Saucer) medical documentation, Brazilian Air Force, Colares, 1977"
219
+ ]
220
+ }
221
+ };
222
+
223
+ // src/biologics/constants.ts
224
+ var BIOLOGICS_OBSERVABLES = {
225
+ molecular_complexity: {
226
+ id: "molecular_complexity",
227
+ code: "BO-1",
228
+ label: "Molecular Complexity Anomaly",
229
+ description: "Material exhibits molecular assembly complexity requiring a guided process (life or technology) to produce \u2014 molecules with high assembly indices found in abundances impossible through abiotic chemistry.",
230
+ scientificBasis: "Assembly Theory (Cronin & Walker, Nature 2023). Molecules with molecular assembly index (MA) \u2265 15 in high copy number are statistically impossible without selection or engineering. Provides agnostic biosignature independent of terrestrial biochemistry assumptions.",
231
+ caveat: "Assembly Theory is an active area of research and remains contested. Critics argue that its assembly index overlaps with established complexity and information measures and that it has not been independently validated as a definitive biosignature. Treat a high assembly index as suggestive rather than conclusive.",
232
+ detectionSignals: [
233
+ "High molecular assembly index (MA \u2265 15) in abundant molecules",
234
+ "Complex molecular structures without known abiotic synthesis pathway",
235
+ "Ordered molecular arrangements exceeding thermodynamic equilibrium expectations",
236
+ "Functional molecular machines or self-assembling structures",
237
+ "Polymeric molecules with non-random sequence information"
238
+ ],
239
+ methods: [
240
+ "Tandem mass spectrometry (MS/MS) for assembly index measurement",
241
+ "Nuclear magnetic resonance (NMR) spectroscopy",
242
+ "Infrared (IR) spectroscopy for functional group identification",
243
+ "High-resolution mass spectrometry for molecular formula determination",
244
+ "Computational assembly pathway analysis"
245
+ ],
246
+ references: [
247
+ 'Marshall et al., "Identifying molecules as biosignatures with assembly theory and mass spectrometry," Nature Communications, 2021',
248
+ 'Sharma et al., "Assembly Theory Explains and Quantifies Selection and Evolution," Nature, 2023'
249
+ ]
250
+ },
251
+ isotopic_provenance: {
252
+ id: "isotopic_provenance",
253
+ code: "BO-2",
254
+ label: "Non-Terrestrial Isotopic Provenance",
255
+ description: "Material isotope ratios inconsistent with terrestrial, solar system, or known astrophysical formation processes \u2014 indicating extraterrestrial or exotic origin.",
256
+ scientificBasis: "Isotope ratios serve as fingerprints for nucleosynthetic origin. Terrestrial materials fall within well-characterized ranges. Deviations beyond measurement uncertainty indicate non-terrestrial formation (as demonstrated in meteorite classification).",
257
+ detectionSignals: [
258
+ "Isotope ratios outside terrestrial standard ranges (e.g., \u03B4\xB9\xB3C, \u2078\u2077Sr/\u2078\u2076Sr)",
259
+ "Non-mass-dependent fractionation patterns",
260
+ "Extinct radionuclide signatures (e.g., \xB2\u2076Al, \u2076\u2070Fe) inconsistent with solar system age",
261
+ "Noble gas isotope compositions outside solar wind or planetary ranges",
262
+ "Multi-element isotopic anomalies correlating across sample"
263
+ ],
264
+ methods: [
265
+ "Thermal ionization mass spectrometry (TIMS)",
266
+ "Secondary ion mass spectrometry (SIMS/NanoSIMS)",
267
+ "Multicollector inductively coupled plasma mass spectrometry (MC-ICP-MS)",
268
+ "Noble gas mass spectrometry",
269
+ "Accelerator mass spectrometry (AMS) for rare isotopes"
270
+ ],
271
+ references: [
272
+ 'Nittler, "Presolar stardust in meteorites: recent advances and scientific frontiers," Earth and Planetary Science Letters, 2003',
273
+ 'McSween & Huss, "Cosmochemistry," Cambridge University Press, 2010'
274
+ ]
275
+ },
276
+ non_standard_biochemistry: {
277
+ id: "non_standard_biochemistry",
278
+ code: "BO-3",
279
+ label: "Non-Standard Biochemistry",
280
+ description: "Biology uses fundamentally different building blocks than terrestrial life \u2014 alternative nucleic acids, non-standard amino acids as backbone, non-carbon scaffolding, or alternative solvent systems.",
281
+ scientificBasis: "All known terrestrial life shares LUCA biochemistry: DNA/RNA with 4 nucleobases, 20 canonical amino acids, phospholipid membranes, water solvent. Alternative biochemistries have been theorized (XNA, silicon-based, ammonia solvent) but never found naturally on Earth.",
282
+ detectionSignals: [
283
+ "Nucleic acid analogs with non-standard backbone (XNA, TNA, PNA)",
284
+ "Proteins built from non-canonical amino acid sets",
285
+ "Non-phospholipid membrane structures",
286
+ "Silicon-carbon hybrid molecular scaffolds",
287
+ "Metabolic products inconsistent with known biochemical pathways",
288
+ "Information-carrying polymers with non-ACGT/U encoding"
289
+ ],
290
+ methods: [
291
+ "Liquid chromatography-mass spectrometry (LC-MS) for molecular identification",
292
+ "X-ray crystallography for structural determination",
293
+ "Amino acid analysis (chiral and compositional)",
294
+ "Nucleotide sequencing attempts with universal and degenerate primers",
295
+ "Elemental analysis (CHNS/O) for bulk composition",
296
+ "Raman spectroscopy for molecular bond identification"
297
+ ],
298
+ references: [
299
+ 'Benner et al., "Alternative Watson-Crick Synthetic Genetic Systems," Cold Spring Harbor Perspectives in Biology, 2016',
300
+ 'National Academies, "The Limits of Organic Life in Planetary Systems," 2007'
301
+ ]
302
+ },
303
+ non_phylogenetic_genetics: {
304
+ id: "non_phylogenetic_genetics",
305
+ code: "BO-4",
306
+ label: "Non-Phylogenetic Genetic Signatures",
307
+ description: "Genetic material falls outside Earth's tree of life \u2014 sequences with no homology to any known organism, novel genetic codes, or information storage systems incompatible with LUCA-derived biology.",
308
+ scientificBasis: "All terrestrial organisms share a common ancestor (LUCA) and show phylogenetic relationships via conserved genes (16S/18S rRNA, cytochrome c, etc.). Genetic material that cannot be placed on any branch of the tree of life would indicate independent abiogenesis or non-terrestrial origin.",
309
+ detectionSignals: [
310
+ "DNA/RNA sequences with zero BLAST homology to any known organism",
311
+ "Novel codon usage tables inconsistent with all known genetic codes",
312
+ "Information-encoding molecules that are not DNA or RNA",
313
+ "Genetic regulatory systems without terrestrial analogs",
314
+ "Absence of conserved genes universal to all terrestrial life (e.g., ribosomal RNA)"
315
+ ],
316
+ methods: [
317
+ "Whole genome sequencing (shotgun metagenomics)",
318
+ "BLAST and phylogenetic analysis against NCBI/EBI databases",
319
+ "Codon usage analysis",
320
+ "Ribosomal RNA gene surveys (16S/18S/ITS)",
321
+ "Comparative genomics for conserved gene detection",
322
+ "De novo assembly and annotation"
323
+ ],
324
+ references: [
325
+ 'Woese, "The universal ancestor," PNAS, 1998',
326
+ 'Cleland & Copley, "The possibility of alternative microbial life on Earth," International Journal of Astrobiology, 2005'
327
+ ]
328
+ },
329
+ anomalous_morphology: {
330
+ id: "anomalous_morphology",
331
+ code: "BO-5",
332
+ label: "Anomalous Morphology",
333
+ description: "Biological structures exhibit body plans, organ systems, or cellular architectures outside all known phylogenetic trees \u2014 morphological features that cannot be derived from any known evolutionary lineage.",
334
+ scientificBasis: "Terrestrial biology produces morphological diversity within phylogenetic constraints (body plan conservation within phyla, developmental gene toolkit sharing). A biological entity with morphology outside all known phyla would indicate independent evolutionary origin.",
335
+ detectionSignals: [
336
+ "Body plan outside all 33 known animal phyla",
337
+ "Cellular architecture without homology to known cell types",
338
+ "Organ systems with no developmental analog in terrestrial biology",
339
+ "Symmetry patterns not observed in terrestrial organisms",
340
+ "Tissue organization incompatible with known developmental pathways",
341
+ "Biomechanical properties outside known biological material ranges"
342
+ ],
343
+ methods: [
344
+ "Comparative morphological analysis",
345
+ "Histological examination and electron microscopy (SEM/TEM)",
346
+ "Micro-CT scanning for internal structure",
347
+ "Developmental biology analysis (if living specimen)",
348
+ "Biomechanical testing of tissue properties",
349
+ "Phylogenetic morphological matrix analysis"
350
+ ],
351
+ references: [
352
+ 'Valentine, "On the Origin of Phyla," University of Chicago Press, 2004',
353
+ 'Carroll, "Evo-Devo and an Expanding Evolutionary Synthesis," Cell, 2008'
354
+ ]
355
+ },
356
+ anomalous_bio_interaction: {
357
+ id: "anomalous_bio_interaction",
358
+ code: "BO-6",
359
+ label: "Anomalous Biological Interaction",
360
+ description: "Agent-level biological interaction that goes beyond simple energetic exposure \u2014 demonstrating directed, purposeful, or communicative engagement with biological organisms that implies intelligence or agency.",
361
+ scientificBasis: 'Distinct from Technology Observable TO-6 (Biological Effects), which covers passive radiological/energetic injury from proximity. BO-6 addresses cases where interaction patterns suggest directed agency: selective targeting, behavioral manipulation, tissue sampling, or communication attempts that imply biological intelligence behind the interaction. This is the home for the abduction/experiencer phenomenon and precision animal-tissue removal ("cattle mutilation").',
362
+ caveat: "Unlike the sensor- and laboratory-grounded observables, this one rests largely on witness and experiencer testimony, and the inference of directed intelligence behind an interaction is not established. Investigations of related phenomena \u2014 including the federally funded 1980 Operation Animal Mutilation report \u2014 have attributed many cases to mundane causes such as predation. Treat a reported interaction as a prompt for physical corroboration, not as confirmation of agency.",
363
+ caveatLabel: "Testimony-based \u2014 agency not established",
364
+ detectionSignals: [
365
+ "Selective targeting of specific individuals or biological features",
366
+ "Evidence of tissue sampling or biological material collection",
367
+ "Behavioral effects suggesting directed influence (paralysis, compulsion)",
368
+ "Communication attempts through biological channels",
369
+ "Surgical-precision physical interactions with biological tissue",
370
+ "Interaction patterns demonstrating knowledge of target biology"
371
+ ],
372
+ methods: [
373
+ "Forensic medical examination for interaction evidence",
374
+ "Psychological evaluation for behavioral influence markers",
375
+ "Dermatological analysis for precision markings",
376
+ "Toxicological screening for unknown compounds",
377
+ "Neurological assessment for anomalous effects",
378
+ "Comparative analysis across multiple experiencer reports"
379
+ ],
380
+ references: [
381
+ 'Mack, "Abduction: Human Encounters with Aliens," Scribner, 1994',
382
+ 'Jacobs, "Secret Life: Firsthand Accounts of UFO Abductions," Simon & Schuster, 1992',
383
+ 'Rommel, "Operation Animal Mutilation," Report of the District Attorney, First Judicial District, State of New Mexico, 1980',
384
+ 'Kelleher & Knapp, "Hunt for the Skinwalker," Paraview Pocket Books, 2005'
385
+ ]
386
+ }
387
+ };
388
+
389
+ // src/constants/index.ts
390
+ var ASSESSMENT_LEVELS = AssessmentLevelSchema.options;
391
+ var OBSERVABLE_CATEGORIES = ObservableCategorySchema.options;
392
+ var TECHNOLOGY_OBSERVABLE_IDS = TechnologyObservableIdSchema.options;
393
+ var BIOLOGICS_OBSERVABLE_IDS = BiologicsObservableIdSchema.options;
394
+ var ALL_OBSERVABLE_IDS = [
395
+ ...TECHNOLOGY_OBSERVABLE_IDS,
396
+ ...BIOLOGICS_OBSERVABLE_IDS
397
+ ];
398
+ var ALL_OBSERVABLES = [
399
+ ...Object.values(TECHNOLOGY_OBSERVABLES).map((o) => ({ ...o, category: "technology" })),
400
+ ...Object.values(BIOLOGICS_OBSERVABLES).map((o) => ({ ...o, category: "biologics" }))
401
+ ];
402
+ var ObservableAssessmentMapSchema = z.object({
403
+ technology: z.partialRecord(TechnologyObservableIdSchema, z.array(ObservableClaimSchema)).optional(),
404
+ biologics: z.partialRecord(BiologicsObservableIdSchema, z.array(ObservableClaimSchema)).optional()
405
+ }).meta({ id: "ObservableAssessmentMap" }).describe("Per-observable claim lists (Technology + Biologics) for an observation.");
406
+
407
+ export { ALL_OBSERVABLES, ALL_OBSERVABLE_IDS, ASSESSMENT_LEVELS, BIOLOGICS_OBSERVABLE_IDS, OBSERVABLE_CATEGORIES, ObservableAssessmentMapSchema, TECHNOLOGY_OBSERVABLE_IDS };
408
+ //# sourceMappingURL=index.js.map
409
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/assessment/types.ts","../../src/technology/types.ts","../../src/biologics/types.ts","../../src/technology/constants.ts","../../src/biologics/constants.ts","../../src/constants/index.ts"],"names":["z"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\nimport { ClaimSchema, ConfidenceSchema } from '@disclosureos/records/shared';\n\nexport const AssessmentLevelSchema = z\n .enum(['not_indicated', 'reported', 'documented', 'measured', 'confirmed'])\n .describe('Evidentiary tier of an observable assessment — how strongly the signal is established.');\n\nexport type AssessmentLevel = z.infer<typeof AssessmentLevelSchema>;\n\nexport const ObservableCategorySchema = z\n .enum(['technology', 'biologics'])\n .describe('Top-level observable domain.');\n\nexport type ObservableCategory = z.infer<typeof ObservableCategorySchema>;\n\n/**\n * Shared structural base for all observable domain definitions. Domain schemas\n * (`TechnologyObservable`, `BiologicsObservable`) extend this.\n */\nexport const ObservableBaseSchema = z\n .object({\n id: z.string().describe('Stable observable identifier used in data (e.g., \"instantaneous_acceleration\").'),\n code: z.string().describe('Short display code for the observable (e.g., \"TO-2\" or \"BO-1\").'),\n label: z.string().describe('Human-readable observable name.'),\n description: z.string().describe('Plain-language description of what the observable captures.'),\n scientificBasis: z\n .string()\n .describe('Why this observable may be scientifically meaningful, including the evidentiary basis and limitations.'),\n caveat: z\n .string()\n .optional()\n .describe(\n 'Qualifier shown when the basis rests on a contested framework or a weaker class of evidence (e.g. testimony rather than sensor data). Present only when the observable warrants extra caution.',\n ),\n caveatLabel: z\n .string()\n .optional()\n .describe(\n 'Short heading for the caveat banner. Defaults to \"Contested basis\" when omitted; set explicitly when the caution is about evidence type or interpretation rather than disputed science.',\n ),\n detectionSignals: z\n .array(z.string())\n .describe('Observable signs or measurements that would indicate this signal may be present.'),\n methods: z.array(z.string()).describe('Methods or instruments used to detect or evaluate the observable.'),\n references: z.array(z.string()).optional().describe('Published or public references supporting the definition.'),\n })\n .meta({ id: 'ObservableBase' })\n .describe('Definition of a single observable: what it is, its scientific basis, and how to detect it.');\n\nexport type ObservableBase = z.infer<typeof ObservableBaseSchema>;\n\nexport const ObservableDefinitionSchema = ObservableBaseSchema.extend({\n category: ObservableCategorySchema,\n})\n .meta({ id: 'ObservableDefinition' })\n .describe('Fully-resolved observable definition including its category.');\n\nexport type ObservableDefinition = z.infer<typeof ObservableDefinitionSchema>;\n\n/**\n * An assessment of one observable for a given observation. Composes the shared\n * {@link ClaimSchema} envelope (`evaluatedAt`/`evaluatedBy`/`rationale` +\n * `evidenceRefs`) and the shared `Confidence` scale.\n */\nexport const ObservableAssessmentSchema = ClaimSchema.extend({\n observableId: z.string(),\n level: AssessmentLevelSchema,\n confidence: ConfidenceSchema.optional().describe(\n 'Confidence in the assessment, in [0,1]. 0 = none, 1 = absolute.',\n ),\n})\n .meta({ id: 'ObservableAssessment' })\n .describe('An assessment of one observable for an observation.');\n\nexport type ObservableAssessment = z.infer<typeof ObservableAssessmentSchema>;\n\n/**\n * A single attributed claim about one observable, with the redundant\n * `observableId` removed (the map key supplies it). The\n * `observableAssessments.{technology,biologics}[id]` slot holds an *array* of\n * these — competing verdicts from different evaluators coexist. Build with\n * `createObservableClaim` or write as a plain literal.\n */\nexport const ObservableClaimSchema = ObservableAssessmentSchema.omit({\n observableId: true,\n})\n .meta({ id: 'ObservableClaim' })\n .describe('An attributed observable claim, keyed by its map position (no observableId).');\n\nexport type ObservableClaim = z.infer<typeof ObservableClaimSchema>;\n","import { z } from 'zod';\nimport { ObservableBaseSchema, ObservableAssessmentSchema } from '../assessment/types';\n\nexport const TechnologyObservableIdSchema = z\n .enum([\n 'antigravity_lift',\n 'instantaneous_acceleration',\n 'hypersonic_no_signatures',\n 'low_observability',\n 'transmedium_travel',\n 'biological_effects',\n ])\n .describe('Identifier of a Technology observable (the six AATIP-derived characteristics).');\n\nexport type TechnologyObservableId = z.infer<typeof TechnologyObservableIdSchema>;\n\nexport const TechnologyObservableSchema = ObservableBaseSchema.extend({\n id: TechnologyObservableIdSchema,\n references: z.array(z.string()),\n})\n .meta({ id: 'TechnologyObservable' })\n .describe('Definition of a Technology observable.');\n\nexport type TechnologyObservable = z.infer<typeof TechnologyObservableSchema>;\n\nexport const TechnologyAssessmentSchema = ObservableAssessmentSchema.extend({\n observableId: TechnologyObservableIdSchema,\n})\n .meta({ id: 'TechnologyAssessment' })\n .describe('An assessment of a Technology observable.');\n\nexport type TechnologyAssessment = z.infer<typeof TechnologyAssessmentSchema>;\n","import { z } from 'zod';\nimport { ObservableBaseSchema, ObservableAssessmentSchema } from '../assessment/types';\n\nexport const BiologicsObservableIdSchema = z\n .enum([\n 'molecular_complexity',\n 'isotopic_provenance',\n 'non_standard_biochemistry',\n 'non_phylogenetic_genetics',\n 'anomalous_morphology',\n 'anomalous_bio_interaction',\n ])\n .describe('Identifier of a Biologics observable.');\n\nexport type BiologicsObservableId = z.infer<typeof BiologicsObservableIdSchema>;\n\nexport const BiologicsObservableSchema = ObservableBaseSchema.extend({\n id: BiologicsObservableIdSchema,\n references: z.array(z.string()),\n})\n .meta({ id: 'BiologicsObservable' })\n .describe('Definition of a Biologics observable.');\n\nexport type BiologicsObservable = z.infer<typeof BiologicsObservableSchema>;\n\nexport const BiologicsAssessmentSchema = ObservableAssessmentSchema.extend({\n observableId: BiologicsObservableIdSchema,\n})\n .meta({ id: 'BiologicsAssessment' })\n .describe('An assessment of a Biologics observable.');\n\nexport type BiologicsAssessment = z.infer<typeof BiologicsAssessmentSchema>;\n","import type { TechnologyObservable, TechnologyObservableId } from './types';\n\nexport const TECHNOLOGY_OBSERVABLES: Record<TechnologyObservableId, TechnologyObservable> = {\n antigravity_lift: {\n id: 'antigravity_lift',\n code: 'TO-1',\n label: 'Anti-Gravity Lift',\n description: 'Object appears to overcome gravitational force without conventional propulsion — no wings, rotors, exhaust, or visible means of lift.',\n scientificBasis: 'Violation of Newtonian mechanics and known aerodynamic principles. No known human technology achieves sustained hover without downwash, exhaust, or electromagnetic support at observed scales.',\n detectionSignals: [\n 'Sustained hover with no visible propulsion',\n 'No downwash or ground effect disturbance',\n 'No exhaust or thermal signature from propulsion',\n 'Object mass inconsistent with buoyant lift',\n 'Silent operation during hover',\n ],\n methods: [\n 'FLIR/IR imaging for thermal signatures',\n 'Doppler radar for relative velocity confirmation',\n 'Ground-level pressure sensors for downwash detection',\n 'Acoustic monitoring for propulsion noise',\n 'Witness triangulation for altitude confirmation',\n ],\n references: [\n 'Elizondo, \"The Five Observables\" framework, AATIP (anti-gravity lift)',\n 'Knuth et al., \"Estimating Flight Characteristics of Anomalous Unidentified Aerial Vehicles,\" Entropy, 2019',\n ],\n },\n instantaneous_acceleration: {\n id: 'instantaneous_acceleration',\n code: 'TO-2',\n label: 'Instantaneous Acceleration',\n description: 'Object accelerates at rates far beyond known aerospace capabilities — estimated hundreds or thousands of g-forces with no apparent inertial effects.',\n scientificBasis: 'Exceeds structural limits of known materials and biological tolerance. F/A-18 max sustained: ~9g. In the 2004 Nimitz encounter, SCU forensic analysis estimated UAP accelerations from 40g to hundreds of g, with some maneuver estimates reaching thousands of g (Knuth et al., 2019).',\n detectionSignals: [\n 'Radar track showing extreme velocity change over minimal time',\n 'Object transitions from hover to hypersonic in < 1 second',\n 'Right-angle or acute-angle turns at high speed',\n 'Immediate reversal of travel direction',\n 'No observed structural deformation during maneuver',\n ],\n methods: [\n 'Multi-radar track correlation for velocity profiles',\n 'Frame-by-frame video analysis for acceleration curves',\n 'Radar Doppler shift measurements',\n 'Satellite track data for independent velocity confirmation',\n 'Accelerometer data from nearby sensor platforms',\n ],\n references: [\n 'Powell et al., \"A Forensic Analysis of Navy Carrier Strike Group Eleven\\'s Encounter with an Anomalous Aerial Vehicle,\" SCU, 2019',\n 'Knuth et al., \"Estimating Flight Characteristics of Anomalous Unidentified Aerial Vehicles,\" Entropy, 2019',\n ],\n },\n hypersonic_no_signatures: {\n id: 'hypersonic_no_signatures',\n code: 'TO-3',\n label: 'Hypersonic Velocities Without Signatures',\n description: 'Object achieves hypersonic speeds (Mach 5+) without producing sonic boom, heat signature, or plasma sheath — violating known atmospheric physics.',\n scientificBasis: 'Objects exceeding Mach 1 in atmosphere must produce shock waves (sonic boom). Hypersonic flight generates extreme adiabatic heating and plasma formation. Absence of these signatures implies either non-atmospheric medium interaction or unknown physics.',\n detectionSignals: [\n 'Radar-confirmed velocity exceeding Mach 5',\n 'No sonic boom detected at ground level',\n 'No IR bloom or thermal wake',\n 'No plasma sheath visible in optical/UV spectrum',\n 'No atmospheric disturbance trail',\n ],\n methods: [\n 'Phased-array radar for precise speed measurement',\n 'Infrasound sensors for sonic boom detection',\n 'Multi-spectral imaging for plasma detection',\n 'Seismographic stations for shock wave detection',\n 'FLIR for thermal signature analysis',\n ],\n references: [\n 'Anderson, \"Fundamentals of Aerodynamics,\" McGraw-Hill (hypersonic regime physics)',\n 'Elizondo, \"The Five Observables\" framework, AATIP (hypersonic velocities without signatures)',\n ],\n },\n low_observability: {\n id: 'low_observability',\n code: 'TO-4',\n label: 'Low Observability',\n description: 'Object evades or confounds multiple sensor modalities simultaneously — radar, infrared, visual, or electromagnetic detection systems fail to maintain consistent track.',\n scientificBasis: 'Known stealth technology reduces radar cross-section through geometry and materials but cannot simultaneously defeat all sensor modalities. UAP cases show simultaneous radar evasion, IR suppression, and visual cloaking beyond current technology.',\n detectionSignals: [\n 'Intermittent radar returns despite visual confirmation',\n 'Radar track acquisition followed by unexplained loss',\n 'Sensor malfunction coinciding with proximity',\n 'Object visible to one modality but not others',\n 'Electronic warfare effects without identifiable source',\n ],\n methods: [\n 'Multi-sensor correlation (radar + IR + EO)',\n 'Radar cross-section estimation',\n 'EM spectrum analysis for jamming signatures',\n 'Sensor diagnostic logs for malfunction patterns',\n 'Signal-to-noise analysis across detection systems',\n ],\n references: [\n 'USS Princeton (AN/SPY-1 Aegis radar) operator testimony, 2004 Nimitz encounter',\n 'Elizondo, \"The Five Observables\" framework, AATIP (low observability)',\n ],\n },\n transmedium_travel: {\n id: 'transmedium_travel',\n code: 'TO-5',\n label: 'Transmedium Travel',\n description: 'Object transitions between air, water, and/or space without apparent structural reconfiguration, speed loss, or medium-transition effects.',\n scientificBasis: 'Air-to-water transition requires extreme structural adaptation (different pressure regimes, Reynolds numbers, propulsion requirements). No known vehicle operates effectively across multiple media without reconfiguration.',\n detectionSignals: [\n 'Object observed entering water from air without splash proportional to size/speed',\n 'Object observed exiting water into air with continued controlled flight',\n 'Sonar track correlating with aerial radar track',\n 'No deceleration during medium transition',\n 'Consistent shape/size across media transitions',\n ],\n methods: [\n 'Coordinated air/maritime sensor monitoring',\n 'Sonar-to-radar track handoff correlation',\n 'High-speed camera for transition dynamics',\n 'Underwater hydrophone arrays',\n 'Satellite IR for ocean surface thermal anomalies',\n ],\n references: [\n 'Scientific Coalition for UAP Studies, \"2013 Aguadilla Puerto Rico: The Detailed Analysis of an Unidentified Anomalous Phenomenon Captured by the Department of Homeland Security,\" 2015',\n 'Gallaudet, \"Beneath the Surface,\" The Sol Foundation, 2023',\n ],\n },\n biological_effects: {\n id: 'biological_effects',\n code: 'TO-6',\n label: 'Biological Effects',\n description: 'Proximity to the object causes measurable radiological, energetic, or physiological effects on biological organisms — burns, nausea, cellular damage, or other medical sequelae.',\n scientificBasis: 'Consistent with high-energy electromagnetic radiation exposure. AAWSAP/BAASS documented cases with radiation-like injuries. Colares, Brazil (1977) documented beam-related injuries on dozens of witnesses.',\n detectionSignals: [\n 'Radiation-type burns without identifiable source',\n 'Nausea, headaches, or disorientation in proximity',\n 'Skin lesions or erythema post-encounter',\n 'Cellular or DNA damage documented in medical records',\n 'Multiple witnesses reporting similar physiological effects',\n 'Vegetation damage patterns around landing sites',\n ],\n methods: [\n 'Medical examination and documentation',\n 'Dosimetry and radiation survey at site',\n 'Blood panel and cellular analysis',\n 'Vegetation and soil sample analysis',\n 'Geiger counter readings at encounter locations',\n 'Long-term medical follow-up of exposed individuals',\n ],\n references: [\n 'Lacatski, Kelleher & Knapp, \"Skinwalkers at the Pentagon,\" 2021 (AAWSAP medical cases)',\n 'Operação Prato (Operation Saucer) medical documentation, Brazilian Air Force, Colares, 1977',\n ],\n },\n};\n","import type { BiologicsObservable, BiologicsObservableId } from './types';\n\nexport const BIOLOGICS_OBSERVABLES: Record<BiologicsObservableId, BiologicsObservable> = {\n molecular_complexity: {\n id: 'molecular_complexity',\n code: 'BO-1',\n label: 'Molecular Complexity Anomaly',\n description: 'Material exhibits molecular assembly complexity requiring a guided process (life or technology) to produce — molecules with high assembly indices found in abundances impossible through abiotic chemistry.',\n scientificBasis: 'Assembly Theory (Cronin & Walker, Nature 2023). Molecules with molecular assembly index (MA) ≥ 15 in high copy number are statistically impossible without selection or engineering. Provides agnostic biosignature independent of terrestrial biochemistry assumptions.',\n caveat: 'Assembly Theory is an active area of research and remains contested. Critics argue that its assembly index overlaps with established complexity and information measures and that it has not been independently validated as a definitive biosignature. Treat a high assembly index as suggestive rather than conclusive.',\n detectionSignals: [\n 'High molecular assembly index (MA ≥ 15) in abundant molecules',\n 'Complex molecular structures without known abiotic synthesis pathway',\n 'Ordered molecular arrangements exceeding thermodynamic equilibrium expectations',\n 'Functional molecular machines or self-assembling structures',\n 'Polymeric molecules with non-random sequence information',\n ],\n methods: [\n 'Tandem mass spectrometry (MS/MS) for assembly index measurement',\n 'Nuclear magnetic resonance (NMR) spectroscopy',\n 'Infrared (IR) spectroscopy for functional group identification',\n 'High-resolution mass spectrometry for molecular formula determination',\n 'Computational assembly pathway analysis',\n ],\n references: [\n 'Marshall et al., \"Identifying molecules as biosignatures with assembly theory and mass spectrometry,\" Nature Communications, 2021',\n 'Sharma et al., \"Assembly Theory Explains and Quantifies Selection and Evolution,\" Nature, 2023',\n ],\n },\n isotopic_provenance: {\n id: 'isotopic_provenance',\n code: 'BO-2',\n label: 'Non-Terrestrial Isotopic Provenance',\n description: 'Material isotope ratios inconsistent with terrestrial, solar system, or known astrophysical formation processes — indicating extraterrestrial or exotic origin.',\n scientificBasis: 'Isotope ratios serve as fingerprints for nucleosynthetic origin. Terrestrial materials fall within well-characterized ranges. Deviations beyond measurement uncertainty indicate non-terrestrial formation (as demonstrated in meteorite classification).',\n detectionSignals: [\n 'Isotope ratios outside terrestrial standard ranges (e.g., δ¹³C, ⁸⁷Sr/⁸⁶Sr)',\n 'Non-mass-dependent fractionation patterns',\n 'Extinct radionuclide signatures (e.g., ²⁶Al, ⁶⁰Fe) inconsistent with solar system age',\n 'Noble gas isotope compositions outside solar wind or planetary ranges',\n 'Multi-element isotopic anomalies correlating across sample',\n ],\n methods: [\n 'Thermal ionization mass spectrometry (TIMS)',\n 'Secondary ion mass spectrometry (SIMS/NanoSIMS)',\n 'Multicollector inductively coupled plasma mass spectrometry (MC-ICP-MS)',\n 'Noble gas mass spectrometry',\n 'Accelerator mass spectrometry (AMS) for rare isotopes',\n ],\n references: [\n 'Nittler, \"Presolar stardust in meteorites: recent advances and scientific frontiers,\" Earth and Planetary Science Letters, 2003',\n 'McSween & Huss, \"Cosmochemistry,\" Cambridge University Press, 2010',\n ],\n },\n non_standard_biochemistry: {\n id: 'non_standard_biochemistry',\n code: 'BO-3',\n label: 'Non-Standard Biochemistry',\n description: 'Biology uses fundamentally different building blocks than terrestrial life — alternative nucleic acids, non-standard amino acids as backbone, non-carbon scaffolding, or alternative solvent systems.',\n scientificBasis: 'All known terrestrial life shares LUCA biochemistry: DNA/RNA with 4 nucleobases, 20 canonical amino acids, phospholipid membranes, water solvent. Alternative biochemistries have been theorized (XNA, silicon-based, ammonia solvent) but never found naturally on Earth.',\n detectionSignals: [\n 'Nucleic acid analogs with non-standard backbone (XNA, TNA, PNA)',\n 'Proteins built from non-canonical amino acid sets',\n 'Non-phospholipid membrane structures',\n 'Silicon-carbon hybrid molecular scaffolds',\n 'Metabolic products inconsistent with known biochemical pathways',\n 'Information-carrying polymers with non-ACGT/U encoding',\n ],\n methods: [\n 'Liquid chromatography-mass spectrometry (LC-MS) for molecular identification',\n 'X-ray crystallography for structural determination',\n 'Amino acid analysis (chiral and compositional)',\n 'Nucleotide sequencing attempts with universal and degenerate primers',\n 'Elemental analysis (CHNS/O) for bulk composition',\n 'Raman spectroscopy for molecular bond identification',\n ],\n references: [\n 'Benner et al., \"Alternative Watson-Crick Synthetic Genetic Systems,\" Cold Spring Harbor Perspectives in Biology, 2016',\n 'National Academies, \"The Limits of Organic Life in Planetary Systems,\" 2007',\n ],\n },\n non_phylogenetic_genetics: {\n id: 'non_phylogenetic_genetics',\n code: 'BO-4',\n label: 'Non-Phylogenetic Genetic Signatures',\n description: 'Genetic material falls outside Earth\\'s tree of life — sequences with no homology to any known organism, novel genetic codes, or information storage systems incompatible with LUCA-derived biology.',\n scientificBasis: 'All terrestrial organisms share a common ancestor (LUCA) and show phylogenetic relationships via conserved genes (16S/18S rRNA, cytochrome c, etc.). Genetic material that cannot be placed on any branch of the tree of life would indicate independent abiogenesis or non-terrestrial origin.',\n detectionSignals: [\n 'DNA/RNA sequences with zero BLAST homology to any known organism',\n 'Novel codon usage tables inconsistent with all known genetic codes',\n 'Information-encoding molecules that are not DNA or RNA',\n 'Genetic regulatory systems without terrestrial analogs',\n 'Absence of conserved genes universal to all terrestrial life (e.g., ribosomal RNA)',\n ],\n methods: [\n 'Whole genome sequencing (shotgun metagenomics)',\n 'BLAST and phylogenetic analysis against NCBI/EBI databases',\n 'Codon usage analysis',\n 'Ribosomal RNA gene surveys (16S/18S/ITS)',\n 'Comparative genomics for conserved gene detection',\n 'De novo assembly and annotation',\n ],\n references: [\n 'Woese, \"The universal ancestor,\" PNAS, 1998',\n 'Cleland & Copley, \"The possibility of alternative microbial life on Earth,\" International Journal of Astrobiology, 2005',\n ],\n },\n anomalous_morphology: {\n id: 'anomalous_morphology',\n code: 'BO-5',\n label: 'Anomalous Morphology',\n description: 'Biological structures exhibit body plans, organ systems, or cellular architectures outside all known phylogenetic trees — morphological features that cannot be derived from any known evolutionary lineage.',\n scientificBasis: 'Terrestrial biology produces morphological diversity within phylogenetic constraints (body plan conservation within phyla, developmental gene toolkit sharing). A biological entity with morphology outside all known phyla would indicate independent evolutionary origin.',\n detectionSignals: [\n 'Body plan outside all 33 known animal phyla',\n 'Cellular architecture without homology to known cell types',\n 'Organ systems with no developmental analog in terrestrial biology',\n 'Symmetry patterns not observed in terrestrial organisms',\n 'Tissue organization incompatible with known developmental pathways',\n 'Biomechanical properties outside known biological material ranges',\n ],\n methods: [\n 'Comparative morphological analysis',\n 'Histological examination and electron microscopy (SEM/TEM)',\n 'Micro-CT scanning for internal structure',\n 'Developmental biology analysis (if living specimen)',\n 'Biomechanical testing of tissue properties',\n 'Phylogenetic morphological matrix analysis',\n ],\n references: [\n 'Valentine, \"On the Origin of Phyla,\" University of Chicago Press, 2004',\n 'Carroll, \"Evo-Devo and an Expanding Evolutionary Synthesis,\" Cell, 2008',\n ],\n },\n anomalous_bio_interaction: {\n id: 'anomalous_bio_interaction',\n code: 'BO-6',\n label: 'Anomalous Biological Interaction',\n description: 'Agent-level biological interaction that goes beyond simple energetic exposure — demonstrating directed, purposeful, or communicative engagement with biological organisms that implies intelligence or agency.',\n scientificBasis: 'Distinct from Technology Observable TO-6 (Biological Effects), which covers passive radiological/energetic injury from proximity. BO-6 addresses cases where interaction patterns suggest directed agency: selective targeting, behavioral manipulation, tissue sampling, or communication attempts that imply biological intelligence behind the interaction. This is the home for the abduction/experiencer phenomenon and precision animal-tissue removal (\"cattle mutilation\").',\n caveat: 'Unlike the sensor- and laboratory-grounded observables, this one rests largely on witness and experiencer testimony, and the inference of directed intelligence behind an interaction is not established. Investigations of related phenomena — including the federally funded 1980 Operation Animal Mutilation report — have attributed many cases to mundane causes such as predation. Treat a reported interaction as a prompt for physical corroboration, not as confirmation of agency.',\n caveatLabel: 'Testimony-based — agency not established',\n detectionSignals: [\n 'Selective targeting of specific individuals or biological features',\n 'Evidence of tissue sampling or biological material collection',\n 'Behavioral effects suggesting directed influence (paralysis, compulsion)',\n 'Communication attempts through biological channels',\n 'Surgical-precision physical interactions with biological tissue',\n 'Interaction patterns demonstrating knowledge of target biology',\n ],\n methods: [\n 'Forensic medical examination for interaction evidence',\n 'Psychological evaluation for behavioral influence markers',\n 'Dermatological analysis for precision markings',\n 'Toxicological screening for unknown compounds',\n 'Neurological assessment for anomalous effects',\n 'Comparative analysis across multiple experiencer reports',\n ],\n references: [\n 'Mack, \"Abduction: Human Encounters with Aliens,\" Scribner, 1994',\n 'Jacobs, \"Secret Life: Firsthand Accounts of UFO Abductions,\" Simon & Schuster, 1992',\n 'Rommel, \"Operation Animal Mutilation,\" Report of the District Attorney, First Judicial District, State of New Mexico, 1980',\n 'Kelleher & Knapp, \"Hunt for the Skinwalker,\" Paraview Pocket Books, 2005',\n ],\n },\n};\n","import { z } from 'zod';\nimport { AssessmentLevelSchema, ObservableCategorySchema } from '../assessment/types';\nimport { ObservableClaimSchema } from '../assessment/types';\nimport type { ObservableDefinition } from '../assessment/types';\nimport { TechnologyObservableIdSchema } from '../technology/types';\nimport type { TechnologyObservableId } from '../technology/types';\nimport { BiologicsObservableIdSchema } from '../biologics/types';\nimport type { BiologicsObservableId } from '../biologics/types';\nimport { TECHNOLOGY_OBSERVABLES } from '../technology/constants';\nimport { BIOLOGICS_OBSERVABLES } from '../biologics/constants';\n\nexport const ASSESSMENT_LEVELS = AssessmentLevelSchema.options;\nexport const OBSERVABLE_CATEGORIES = ObservableCategorySchema.options;\nexport const TECHNOLOGY_OBSERVABLE_IDS = TechnologyObservableIdSchema.options;\nexport const BIOLOGICS_OBSERVABLE_IDS = BiologicsObservableIdSchema.options;\n\nexport const ALL_OBSERVABLE_IDS: readonly (TechnologyObservableId | BiologicsObservableId)[] = [\n ...TECHNOLOGY_OBSERVABLE_IDS,\n ...BIOLOGICS_OBSERVABLE_IDS,\n] as const;\n\nexport type ObservableId = TechnologyObservableId | BiologicsObservableId;\n\nexport const ALL_OBSERVABLES: ObservableDefinition[] = [\n ...Object.values(TECHNOLOGY_OBSERVABLES).map((o) => ({ ...o, category: 'technology' as const })),\n ...Object.values(BIOLOGICS_OBSERVABLES).map((o) => ({ ...o, category: 'biologics' as const })),\n];\n\n/**\n * Canonical shape for the `Observation.observableAssessments` slot, registered\n * on `Observation` via module augmentation when this package is imported.\n *\n * Each observable is identified by its map key, and maps to a *list* of\n * {@link ObservableClaimSchema}s — competing verdicts from different evaluators\n * coexist (the inter-claim axis). Endorsement is a scoring concern, not here.\n */\nexport const ObservableAssessmentMapSchema = z\n .object({\n technology: z\n .partialRecord(TechnologyObservableIdSchema, z.array(ObservableClaimSchema))\n .optional(),\n biologics: z\n .partialRecord(BiologicsObservableIdSchema, z.array(ObservableClaimSchema))\n .optional(),\n })\n .meta({ id: 'ObservableAssessmentMap' })\n .describe('Per-observable claim lists (Technology + Biologics) for an observation.');\n\nexport type ObservableAssessmentMap = z.infer<typeof ObservableAssessmentMapSchema>;\n"]}
@@ -0,0 +1,26 @@
1
+ import { A as AssessmentLevel, O as ObservableClaim } from '../types-gDm-dEvQ.js';
2
+ import 'zod';
3
+
4
+ interface AssessmentOptions {
5
+ /**
6
+ * Confidence in the assessment, between 0 and 1 inclusive.
7
+ * Values outside this range throw (validated by the schema).
8
+ */
9
+ confidence?: number;
10
+ /** Why this assessment was made (shared `Attribution`). */
11
+ rationale?: string;
12
+ /** Who made the assessment (shared `Attribution`). */
13
+ evaluatedBy?: string;
14
+ /** Override the auto-generated timestamp (useful for historical imports and testing). */
15
+ evaluatedAt?: string;
16
+ /** Refs to in-record evidence justifying this claim, e.g. `"media:<id>"` (shared `Claim`). */
17
+ evidenceRefs?: string[];
18
+ }
19
+ /**
20
+ * Build one map-ready observable claim (no `observableId` — the key supplies
21
+ * it). The slot value is an array of these; push the result into it. Parses
22
+ * against the schema, so an out-of-range confidence throws.
23
+ */
24
+ declare function createObservableClaim(level: AssessmentLevel, options?: AssessmentOptions): ObservableClaim;
25
+
26
+ export { type AssessmentOptions, createObservableClaim };
@@ -0,0 +1,55 @@
1
+ import { z } from 'zod';
2
+ import { ClaimSchema, ConfidenceSchema } from '@disclosureos/records/shared';
3
+
4
+ // src/assessment/types.ts
5
+ var AssessmentLevelSchema = z.enum(["not_indicated", "reported", "documented", "measured", "confirmed"]).describe("Evidentiary tier of an observable assessment \u2014 how strongly the signal is established.");
6
+ var ObservableCategorySchema = z.enum(["technology", "biologics"]).describe("Top-level observable domain.");
7
+ var ObservableBaseSchema = z.object({
8
+ id: z.string().describe('Stable observable identifier used in data (e.g., "instantaneous_acceleration").'),
9
+ code: z.string().describe('Short display code for the observable (e.g., "TO-2" or "BO-1").'),
10
+ label: z.string().describe("Human-readable observable name."),
11
+ description: z.string().describe("Plain-language description of what the observable captures."),
12
+ scientificBasis: z.string().describe("Why this observable may be scientifically meaningful, including the evidentiary basis and limitations."),
13
+ caveat: z.string().optional().describe(
14
+ "Qualifier shown when the basis rests on a contested framework or a weaker class of evidence (e.g. testimony rather than sensor data). Present only when the observable warrants extra caution."
15
+ ),
16
+ caveatLabel: z.string().optional().describe(
17
+ 'Short heading for the caveat banner. Defaults to "Contested basis" when omitted; set explicitly when the caution is about evidence type or interpretation rather than disputed science.'
18
+ ),
19
+ detectionSignals: z.array(z.string()).describe("Observable signs or measurements that would indicate this signal may be present."),
20
+ methods: z.array(z.string()).describe("Methods or instruments used to detect or evaluate the observable."),
21
+ references: z.array(z.string()).optional().describe("Published or public references supporting the definition.")
22
+ }).meta({ id: "ObservableBase" }).describe("Definition of a single observable: what it is, its scientific basis, and how to detect it.");
23
+ ObservableBaseSchema.extend({
24
+ category: ObservableCategorySchema
25
+ }).meta({ id: "ObservableDefinition" }).describe("Fully-resolved observable definition including its category.");
26
+ var ObservableAssessmentSchema = ClaimSchema.extend({
27
+ observableId: z.string(),
28
+ level: AssessmentLevelSchema,
29
+ confidence: ConfidenceSchema.optional().describe(
30
+ "Confidence in the assessment, in [0,1]. 0 = none, 1 = absolute."
31
+ )
32
+ }).meta({ id: "ObservableAssessment" }).describe("An assessment of one observable for an observation.");
33
+ var ObservableClaimSchema = ObservableAssessmentSchema.omit({
34
+ observableId: true
35
+ }).meta({ id: "ObservableClaim" }).describe("An attributed observable claim, keyed by its map position (no observableId).");
36
+
37
+ // src/factories/index.ts
38
+ function buildEntryInput(level, options) {
39
+ const { confidence, rationale, evaluatedBy, evaluatedAt, evidenceRefs } = options ?? {};
40
+ return {
41
+ level,
42
+ evaluatedAt: evaluatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
43
+ ...confidence !== void 0 && { confidence },
44
+ ...rationale !== void 0 && { rationale },
45
+ ...evaluatedBy !== void 0 && { evaluatedBy },
46
+ ...evidenceRefs !== void 0 && { evidenceRefs }
47
+ };
48
+ }
49
+ function createObservableClaim(level, options) {
50
+ return ObservableClaimSchema.parse(buildEntryInput(level, options));
51
+ }
52
+
53
+ export { createObservableClaim };
54
+ //# sourceMappingURL=index.js.map
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/assessment/types.ts","../../src/factories/index.ts"],"names":[],"mappings":";;;;AAGO,IAAM,qBAAA,GAAwB,CAAA,CAClC,IAAA,CAAK,CAAC,eAAA,EAAiB,UAAA,EAAY,YAAA,EAAc,UAAA,EAAY,WAAW,CAAC,CAAA,CACzE,QAAA,CAAS,6FAAwF,CAAA;AAI7F,IAAM,wBAAA,GAA2B,EACrC,IAAA,CAAK,CAAC,cAAc,WAAW,CAAC,CAAA,CAChC,QAAA,CAAS,8BAA8B,CAAA;AAQnC,IAAM,oBAAA,GAAuB,EACjC,MAAA,CAAO;AAAA,EACN,EAAA,EAAI,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iFAAiF,CAAA;AAAA,EACzG,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iEAAiE,CAAA;AAAA,EAC3F,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iCAAiC,CAAA;AAAA,EAC5D,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,6DAA6D,CAAA;AAAA,EAC9F,eAAA,EAAiB,CAAA,CACd,MAAA,EAAO,CACP,SAAS,wGAAwG,CAAA;AAAA,EACpH,MAAA,EAAQ,CAAA,CACL,MAAA,EAAO,CACP,UAAS,CACT,QAAA;AAAA,IACC;AAAA,GACF;AAAA,EACF,WAAA,EAAa,CAAA,CACV,MAAA,EAAO,CACP,UAAS,CACT,QAAA;AAAA,IACC;AAAA,GACF;AAAA,EACF,gBAAA,EAAkB,EACf,KAAA,CAAM,CAAA,CAAE,QAAQ,CAAA,CAChB,SAAS,kFAAkF,CAAA;AAAA,EAC9F,OAAA,EAAS,EAAE,KAAA,CAAM,CAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,mEAAmE,CAAA;AAAA,EACzG,UAAA,EAAY,CAAA,CAAE,KAAA,CAAM,CAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,2DAA2D;AACjH,CAAC,CAAA,CACA,KAAK,EAAE,EAAA,EAAI,kBAAkB,CAAA,CAC7B,SAAS,4FAA4F,CAAA;AAI9D,qBAAqB,MAAA,CAAO;AAAA,EACpE,QAAA,EAAU;AACZ,CAAC,CAAA,CACE,KAAK,EAAE,EAAA,EAAI,wBAAwB,CAAA,CACnC,SAAS,8DAA8D;AASnE,IAAM,0BAAA,GAA6B,YAAY,MAAA,CAAO;AAAA,EAC3D,YAAA,EAAc,EAAE,MAAA,EAAO;AAAA,EACvB,KAAA,EAAO,qBAAA;AAAA,EACP,UAAA,EAAY,gBAAA,CAAiB,QAAA,EAAS,CAAE,QAAA;AAAA,IACtC;AAAA;AAEJ,CAAC,CAAA,CACE,KAAK,EAAE,EAAA,EAAI,wBAAwB,CAAA,CACnC,SAAS,qDAAqD,CAAA;AAW1D,IAAM,qBAAA,GAAwB,2BAA2B,IAAA,CAAK;AAAA,EACnE,YAAA,EAAc;AAChB,CAAC,CAAA,CACE,KAAK,EAAE,EAAA,EAAI,mBAAmB,CAAA,CAC9B,SAAS,8EAA8E,CAAA;;;ACpE1F,SAAS,eAAA,CAAgB,OAAwB,OAAA,EAAwC;AACvF,EAAA,MAAM,EAAE,YAAY,SAAA,EAAW,WAAA,EAAa,aAAa,YAAA,EAAa,GAAI,WAAW,EAAC;AACtF,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,WAAA,EAAa,WAAA,IAAA,iBAAe,IAAI,IAAA,IAAO,WAAA,EAAY;AAAA,IACnD,GAAI,UAAA,KAAe,MAAA,IAAa,EAAE,UAAA,EAAW;AAAA,IAC7C,GAAI,SAAA,KAAc,MAAA,IAAa,EAAE,SAAA,EAAU;AAAA,IAC3C,GAAI,WAAA,KAAgB,MAAA,IAAa,EAAE,WAAA,EAAY;AAAA,IAC/C,GAAI,YAAA,KAAiB,MAAA,IAAa,EAAE,YAAA;AAAa,GACnD;AACF;AAOO,SAAS,qBAAA,CACd,OACA,OAAA,EACiB;AACjB,EAAA,OAAO,qBAAA,CAAsB,KAAA,CAAM,eAAA,CAAgB,KAAA,EAAO,OAAO,CAAC,CAAA;AACpE","file":"index.js","sourcesContent":["import { z } from 'zod';\nimport { ClaimSchema, ConfidenceSchema } from '@disclosureos/records/shared';\n\nexport const AssessmentLevelSchema = z\n .enum(['not_indicated', 'reported', 'documented', 'measured', 'confirmed'])\n .describe('Evidentiary tier of an observable assessment — how strongly the signal is established.');\n\nexport type AssessmentLevel = z.infer<typeof AssessmentLevelSchema>;\n\nexport const ObservableCategorySchema = z\n .enum(['technology', 'biologics'])\n .describe('Top-level observable domain.');\n\nexport type ObservableCategory = z.infer<typeof ObservableCategorySchema>;\n\n/**\n * Shared structural base for all observable domain definitions. Domain schemas\n * (`TechnologyObservable`, `BiologicsObservable`) extend this.\n */\nexport const ObservableBaseSchema = z\n .object({\n id: z.string().describe('Stable observable identifier used in data (e.g., \"instantaneous_acceleration\").'),\n code: z.string().describe('Short display code for the observable (e.g., \"TO-2\" or \"BO-1\").'),\n label: z.string().describe('Human-readable observable name.'),\n description: z.string().describe('Plain-language description of what the observable captures.'),\n scientificBasis: z\n .string()\n .describe('Why this observable may be scientifically meaningful, including the evidentiary basis and limitations.'),\n caveat: z\n .string()\n .optional()\n .describe(\n 'Qualifier shown when the basis rests on a contested framework or a weaker class of evidence (e.g. testimony rather than sensor data). Present only when the observable warrants extra caution.',\n ),\n caveatLabel: z\n .string()\n .optional()\n .describe(\n 'Short heading for the caveat banner. Defaults to \"Contested basis\" when omitted; set explicitly when the caution is about evidence type or interpretation rather than disputed science.',\n ),\n detectionSignals: z\n .array(z.string())\n .describe('Observable signs or measurements that would indicate this signal may be present.'),\n methods: z.array(z.string()).describe('Methods or instruments used to detect or evaluate the observable.'),\n references: z.array(z.string()).optional().describe('Published or public references supporting the definition.'),\n })\n .meta({ id: 'ObservableBase' })\n .describe('Definition of a single observable: what it is, its scientific basis, and how to detect it.');\n\nexport type ObservableBase = z.infer<typeof ObservableBaseSchema>;\n\nexport const ObservableDefinitionSchema = ObservableBaseSchema.extend({\n category: ObservableCategorySchema,\n})\n .meta({ id: 'ObservableDefinition' })\n .describe('Fully-resolved observable definition including its category.');\n\nexport type ObservableDefinition = z.infer<typeof ObservableDefinitionSchema>;\n\n/**\n * An assessment of one observable for a given observation. Composes the shared\n * {@link ClaimSchema} envelope (`evaluatedAt`/`evaluatedBy`/`rationale` +\n * `evidenceRefs`) and the shared `Confidence` scale.\n */\nexport const ObservableAssessmentSchema = ClaimSchema.extend({\n observableId: z.string(),\n level: AssessmentLevelSchema,\n confidence: ConfidenceSchema.optional().describe(\n 'Confidence in the assessment, in [0,1]. 0 = none, 1 = absolute.',\n ),\n})\n .meta({ id: 'ObservableAssessment' })\n .describe('An assessment of one observable for an observation.');\n\nexport type ObservableAssessment = z.infer<typeof ObservableAssessmentSchema>;\n\n/**\n * A single attributed claim about one observable, with the redundant\n * `observableId` removed (the map key supplies it). The\n * `observableAssessments.{technology,biologics}[id]` slot holds an *array* of\n * these — competing verdicts from different evaluators coexist. Build with\n * `createObservableClaim` or write as a plain literal.\n */\nexport const ObservableClaimSchema = ObservableAssessmentSchema.omit({\n observableId: true,\n})\n .meta({ id: 'ObservableClaim' })\n .describe('An attributed observable claim, keyed by its map position (no observableId).');\n\nexport type ObservableClaim = z.infer<typeof ObservableClaimSchema>;\n","import { ObservableClaimSchema } from '../assessment/types';\nimport type { AssessmentLevel, ObservableClaim } from '../assessment/types';\n\nexport interface AssessmentOptions {\n /**\n * Confidence in the assessment, between 0 and 1 inclusive.\n * Values outside this range throw (validated by the schema).\n */\n confidence?: number;\n /** Why this assessment was made (shared `Attribution`). */\n rationale?: string;\n /** Who made the assessment (shared `Attribution`). */\n evaluatedBy?: string;\n /** Override the auto-generated timestamp (useful for historical imports and testing). */\n evaluatedAt?: string;\n /** Refs to in-record evidence justifying this claim, e.g. `\"media:<id>\"` (shared `Claim`). */\n evidenceRefs?: string[];\n}\n\nfunction buildEntryInput(level: AssessmentLevel, options: AssessmentOptions | undefined) {\n const { confidence, rationale, evaluatedBy, evaluatedAt, evidenceRefs } = options ?? {};\n return {\n level,\n evaluatedAt: evaluatedAt ?? new Date().toISOString(),\n ...(confidence !== undefined && { confidence }),\n ...(rationale !== undefined && { rationale }),\n ...(evaluatedBy !== undefined && { evaluatedBy }),\n ...(evidenceRefs !== undefined && { evidenceRefs }),\n };\n}\n\n/**\n * Build one map-ready observable claim (no `observableId` — the key supplies\n * it). The slot value is an array of these; push the result into it. Parses\n * against the schema, so an out-of-range confidence throws.\n */\nexport function createObservableClaim(\n level: AssessmentLevel,\n options?: AssessmentOptions,\n): ObservableClaim {\n return ObservableClaimSchema.parse(buildEntryInput(level, options));\n}\n"]}
@@ -0,0 +1,12 @@
1
+ import { A as AssessmentLevel } from '../types-gDm-dEvQ.js';
2
+ import { T as TechnologyObservableId } from '../types-DsfVlej0.js';
3
+ import { B as BiologicsObservableId } from '../types-p_0pgxkz.js';
4
+ import 'zod';
5
+
6
+ declare function formatAssessmentLevel(level: AssessmentLevel): string;
7
+ declare function formatTechnologyObservable(id: TechnologyObservableId): string;
8
+ declare function formatBiologicsObservable(id: BiologicsObservableId): string;
9
+ declare function formatObservableCode(id: TechnologyObservableId | BiologicsObservableId): string;
10
+ declare function formatObservable(id: TechnologyObservableId | BiologicsObservableId): string;
11
+
12
+ export { formatAssessmentLevel, formatBiologicsObservable, formatObservable, formatObservableCode, formatTechnologyObservable };