@disclosureos/records 1.0.0 → 2.0.0-beta.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 (37) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +11 -1
  3. package/dist/constants/index.d.ts +2 -2
  4. package/dist/constants/index.js +28 -0
  5. package/dist/constants/index.js.map +1 -1
  6. package/dist/{enum-guard-DzPkp2oJ.d.ts → enum-guard-Myp2-SoT.d.ts} +23 -1
  7. package/dist/experimental/v2/index.d.ts +4419 -0
  8. package/dist/experimental/v2/index.js +645 -0
  9. package/dist/experimental/v2/index.js.map +1 -0
  10. package/dist/factories/index.d.ts +1 -1
  11. package/dist/factories/index.js +28 -0
  12. package/dist/factories/index.js.map +1 -1
  13. package/dist/guards/index.d.ts +2 -2
  14. package/dist/guards/index.js +28 -0
  15. package/dist/guards/index.js.map +1 -1
  16. package/dist/index.d.ts +3 -3
  17. package/dist/index.js +44 -2
  18. package/dist/index.js.map +1 -1
  19. package/dist/labels/index.d.ts +1 -1
  20. package/dist/observation/index.d.ts +1 -1
  21. package/dist/observation/index.js +28 -0
  22. package/dist/observation/index.js.map +1 -1
  23. package/dist/shared/index.d.ts +1 -1
  24. package/dist/shared/index.js +15 -1
  25. package/dist/shared/index.js.map +1 -1
  26. package/dist/source/sensor/index.d.ts +77 -0
  27. package/dist/source/sensor/index.js +28 -0
  28. package/dist/source/sensor/index.js.map +1 -1
  29. package/dist/{types-CzNfaip-.d.ts → types-Dp7GbYBS.d.ts} +26 -0
  30. package/dist/validators/index.js +28 -0
  31. package/dist/validators/index.js.map +1 -1
  32. package/package.json +16 -4
  33. package/schema/experimental/claim-history-0.1.0.schema.json +6545 -0
  34. package/schema/experimental/observation-0.1.0.schema.json +6040 -0
  35. package/schema/experimental/v2-primitives-0.2.0.schema.json +1761 -0
  36. package/schema/experimental/v2-primitives.schema.json +828 -0
  37. package/schema/records.schema.json +31 -2
package/CHANGELOG.md CHANGED
@@ -1,14 +1,50 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.0-beta.0
4
+
5
+ ### Major Changes
6
+
7
+ - Prepare the coordinated v2 beta package set. This prerelease packages the merged
8
+ experimental observation and claim contracts, acquisition and dataset exchange,
9
+ versioned evaluation, and bounded migration tooling for external consumer testing.
10
+ Existing root APIs and schema identities remain available; the new contracts keep
11
+ explicit `/experimental/v2` imports. Observables and origins retain their existing
12
+ catalogs within the pinned beta dependency graph. This is not a stable v2 release,
13
+ scientific certification, or publication of partner data. See
14
+ `docs/releases/2.0.0-beta.0.md` for package-specific scope and validation boundaries.
15
+
3
16
  All notable changes to `@disclosureos/records` are documented here. The format is
4
17
  based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project
5
18
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
19
 
20
+ ## 1.1.0
21
+
22
+ ### Minor Changes
23
+
24
+ - e6ff99c: Add the instruments layer: the UAP Sensor Manifest standard
25
+ (`@disclosureos/instruments@1.0.0`, first published alongside this release —
26
+ see its own changelog).
27
+
28
+ - **`@disclosureos/records`** — `SensorReading` gains optional `sensorRef`
29
+ (`"<org-slug>:<sensor-id>"`, with `sensorRef`/`isSensorRef`/`parseSensorRef`
30
+ helpers in `records/shared`); `SensorType` gains 18 instrument classes
31
+ (infrasonic/ultrasonic sensors, ADS-B receiver, RF spectrum analyzer, passive
32
+ radar, particle detector, atomic clock, GNSS receiver, fluxgate magnetometer,
33
+ air-quality sensor, barometer, lightning detector, IMU, EEG, GSR, pulse
34
+ oximeter, pupillometer, hardware RNG); `DetectionMethod` gains 7 methods
35
+ (particle, gnss, time_reference, chemical, inertial, physiological, pressure).
36
+ Records schema artifact bumped to `1.1.0`.
37
+ - **`@disclosureos/schema`** — composed enriched-observation artifact re-emitted
38
+ at `1.1.0` to carry the records changes.
39
+ - **`@disclosureos/cli`** — new `disclosureos manifest validate <path...>`
40
+ command (`--recursive`, `--json`) delegating to `validateSensorManifest`.
41
+
7
42
  ## 1.0.0
8
43
 
9
44
  Initial public release — the core of the DisclosureOS standard.
10
45
 
11
46
  ### Added
47
+
12
48
  - `Observation` — the primary record type — with `ObservationSchema` (Zod 4) and the
13
49
  non-stripping `validateObservation` validator.
14
50
  - `@disclosureos/records/shared`: the cross-package substrate (`Confidence`,
package/README.md CHANGED
@@ -6,7 +6,7 @@ Structured vocabulary for describing UAP observations — the **data dictionary*
6
6
  the [DisclosureOS](https://github.com/disclosurefoundation) ecosystem. Its primary
7
7
  type, `Observation`, is the core unit every other package builds on.
8
8
 
9
- DisclosureOS is a **five-part standard**. Each part answers one question about an
9
+ DisclosureOS is a **six-part standard**. Each part answers one question about an
10
10
  observation; `@disclosureos/schema` binds the package-owned pieces into one portable
11
11
  contract (a single TS type + JSON Schema + non-stripping parse).
12
12
 
@@ -17,6 +17,7 @@ contract (a single TS type + JSON Schema + non-stripping parse).
17
17
  | **Origins** | `@disclosureos/origins` | *What might explain it?* |
18
18
  | **Claims** | `@disclosureos/records/shared` | *Who assessed it, why, and on what evidence?* |
19
19
  | **Scoring** | `@disclosureos/scoring` | *How complete / compelling is the case?* |
20
+ | **Instruments** | `@disclosureos/instruments` | *What hardware produced the data?* |
20
21
 
21
22
  Supporting packages: **`@disclosureos/schema`** (the portable contract that composes the
22
23
  package-owned pieces), **`@disclosureos/cli`** (tooling), and
@@ -119,3 +120,12 @@ adapter.
119
120
  ## License
120
121
 
121
122
  MIT © [Disclosure Foundation](https://disclosure.org)
123
+
124
+ ## Experimental v2 value primitives
125
+
126
+ The source tree includes an isolated `@disclosureos/records/experimental/v2` entry point for explicit missingness, typed time/position values, and source-value provenance. It is under development for v2 and is not available in the published package yet. Existing v1 entry points and schemas remain unchanged. See the [scope, examples, and limitations](https://github.com/disclosurefoundation/disclosureos/blob/main/docs/experimental/records-v2-primitives.md).
127
+
128
+
129
+ The same experimental entry point now exposes `ExperimentalObservationSchema` and `parseExperimentalObservation` for the integrated factual record, including uncertainty, frames, source selections, and processing lineage. See the [Observation contract and synthetic example](https://github.com/disclosurefoundation/disclosureos/blob/main/docs/experimental/observation-contract.md). External verification and research profiles remain explicitly unchecked.
130
+
131
+ Experimental source statements, attributed assessments, and revision history are documented in [Claim history](../../docs/experimental/claim-history.md). This additive contract remains separate from v1 and does not certify scientific support.
@@ -15,8 +15,8 @@ declare const MANEUVER_TYPES: ("other" | "hover" | "instant_acceleration" | "ins
15
15
  declare const RELATION_KINDS: ("corroborates" | "contradicts" | "duplicate_of" | "same_object" | "supersedes" | "superseded_by" | "re_analysis_of" | "part_of")[];
16
16
  declare const CONFIDENCE_LEVELS: ("high" | "moderate" | "low" | "unassessed" | "very_high" | "very_low")[];
17
17
  declare const WITNESS_CATEGORIES: ("unknown" | "military_other" | "military_pilot" | "military_aircrew" | "military_ground" | "military_naval" | "military_radar_operator" | "commercial_pilot" | "commercial_aircrew" | "private_pilot" | "air_traffic_controller" | "aviation_other" | "government_official" | "elected_official" | "intelligence_officer" | "law_enforcement" | "scientist" | "astronomer" | "meteorologist" | "engineer" | "medical_professional" | "maritime" | "civilian" | "civilian_group" | "anonymous")[];
18
- declare const DETECTION_METHODS: ("unknown" | "other" | "radar_primary" | "radar_secondary" | "radar_doppler" | "radar_phased_array" | "infrared_flir" | "infrared_other" | "electro_optical" | "visual_camera" | "satellite_imagery" | "sonar_active" | "sonar_passive" | "electromagnetic" | "radiation_detector" | "magnetometer" | "gravimeter" | "acoustic" | "seismic" | "lidar" | "spectroscopic" | "radio_frequency" | "multiple")[];
19
- declare const SENSOR_TYPES: ("other" | "military_radar" | "civilian_radar" | "airborne_radar" | "shipborne_radar" | "ground_radar" | "flir" | "eo_sensor" | "satellite" | "sonar" | "electromagnetic_sensor" | "radiation_sensor" | "civilian_camera" | "security_camera" | "dashcam" | "phone_camera")[];
18
+ declare const DETECTION_METHODS: ("unknown" | "other" | "radar_primary" | "radar_secondary" | "radar_doppler" | "radar_phased_array" | "infrared_flir" | "infrared_other" | "electro_optical" | "visual_camera" | "satellite_imagery" | "sonar_active" | "sonar_passive" | "electromagnetic" | "radiation_detector" | "magnetometer" | "gravimeter" | "acoustic" | "seismic" | "lidar" | "spectroscopic" | "radio_frequency" | "particle" | "gnss" | "time_reference" | "chemical" | "inertial" | "physiological" | "pressure" | "multiple")[];
19
+ declare const SENSOR_TYPES: ("other" | "military_radar" | "civilian_radar" | "airborne_radar" | "shipborne_radar" | "ground_radar" | "flir" | "eo_sensor" | "satellite" | "sonar" | "electromagnetic_sensor" | "radiation_sensor" | "civilian_camera" | "security_camera" | "dashcam" | "phone_camera" | "infrasonic_sensor" | "ultrasonic_sensor" | "adsb_receiver" | "rf_spectrum_analyzer" | "passive_radar" | "particle_detector" | "atomic_clock" | "gnss_receiver" | "fluxgate_magnetometer" | "air_quality_sensor" | "barometer" | "lightning_detector" | "imu" | "eeg" | "gsr" | "pulse_oximeter" | "pupillometer" | "hardware_rng")[];
20
20
  declare const EVIDENCE_TYPES: ("other" | "video" | "material_sample" | "ground_trace" | "radiation_reading" | "electromagnetic_recording" | "photographic" | "audio_recording" | "biological_sample" | "implant" | "debris" | "soil_sample" | "water_sample" | "vegetation_sample" | "impression" | "burn_mark")[];
21
21
  declare const EVIDENCE_QUALITIES: ("unknown" | "laboratory_grade" | "field_collected" | "uncontrolled" | "degraded" | "contaminated")[];
22
22
  declare const CHAIN_OF_CUSTODY_STATUSES: ("unknown" | "destroyed" | "classified" | "verified" | "partial" | "unverified" | "government_held" | "private_held" | "lost")[];
@@ -430,6 +430,13 @@ var DetectionMethodSchema = z.enum([
430
430
  "lidar",
431
431
  "spectroscopic",
432
432
  "radio_frequency",
433
+ "particle",
434
+ "gnss",
435
+ "time_reference",
436
+ "chemical",
437
+ "inertial",
438
+ "physiological",
439
+ "pressure",
433
440
  "multiple",
434
441
  "other",
435
442
  "unknown"
@@ -450,12 +457,33 @@ var SensorTypeSchema = z.enum([
450
457
  "security_camera",
451
458
  "dashcam",
452
459
  "phone_camera",
460
+ "infrasonic_sensor",
461
+ "ultrasonic_sensor",
462
+ "adsb_receiver",
463
+ "rf_spectrum_analyzer",
464
+ "passive_radar",
465
+ "particle_detector",
466
+ "atomic_clock",
467
+ "gnss_receiver",
468
+ "fluxgate_magnetometer",
469
+ "air_quality_sensor",
470
+ "barometer",
471
+ "lightning_detector",
472
+ "imu",
473
+ "eeg",
474
+ "gsr",
475
+ "pulse_oximeter",
476
+ "pupillometer",
477
+ "hardware_rng",
453
478
  "other"
454
479
  ]).describe("Class of sensor that produced a reading.");
455
480
  var SensorReadingSchema = z.object({
456
481
  id: z.string().min(1).describe('Stable id, addressable by a claim `evidenceRef` ("sensor:<id>").'),
457
482
  sensorType: SensorTypeSchema,
458
483
  detectionMethod: DetectionMethodSchema,
484
+ sensorRef: z.string().optional().describe(
485
+ 'Reference to a published sensor-manifest entry ("<org-slug>:<sensor-id>", e.g. "eldaeon:dionysus-passive-radar") carrying the instrument\u2019s full spec, timing, and calibration provenance.'
486
+ ),
459
487
  platform: z.string().optional().describe('Platform carrying the sensor (e.g. "USS Princeton", "F/A-18F").'),
460
488
  operator: z.string().optional().describe("Person or unit operating the sensor."),
461
489
  timestamp: z.string().optional().describe("When the reading was recorded (ISO timestamp)."),