npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

edm-spec

v0.8.2

Published

Emotional Data Model (EDM) Specification — canonical JSON Schemas, example artifacts, and conformance test vectors.

Readme

Emotional Data Model (EDM) Specification

Current Version: v0.8.1 Released: June 2026 DOI: 10.5281/zenodo.20678017

📄 Official Whitepaper

The complete EDM v0.8.1 specification is published on Zenodo and archived in-repo under releases/:

  • Download: EDM Whitepaper (DOCX)
  • Cite as: Harvey, J. (2026). Emotional Data Model (EDM) v0.8.1. Zenodo. https://doi.org/10.5281/zenodo.20678017

🔧 Implementation

This repository contains:

  • Profile-based JSON Schemas (schema/edm.v0.8.{essential,extended,full}.schema.json)
  • Example artifacts (examples/)
  • Implementation documentation (docs/)
  • Release notes

Reference implementations:


Emotional Data Model — EDM (Specification)

DOI License Version Status

Status: Stable (v0.8.1) — Production ready


Why EDM Exists

Everyone is building memory for AI. No one is building identity governance for emotional data.

As AI agents gain persistent memory (Mem0, OpenAI Memory, etc.) and communicate via standardized protocols (MCP, A2A), a critical gap remains: there is no governance-first standard for emotional data.

EDM fills this gap by providing:

  • A portable schema for emotional context (not locked to any vendor)
  • Compliance by design (GDPR, HIPAA, EU AI Act ready)
  • Non-inferential representation (explicit data only, no psychological reconstruction)
  • The foundation for .ddna — a cryptographically-signed emotional identity artifact

Scope and Non-Goals

EDM is: A data format specification. It defines structure and semantics for emotional context that can be validated, exchanged, and governed.

EDM is not:

  • An identity provider (Auth0-class systems remain external)
  • A certificate authority or regulator
  • A memory store, agent runtime, or analytics system
  • An emotion recognizer or prediction system

Tooling is non-normative. Any tooling built around EDM (validators, SDKs, CLI tools) is reference implementation only. The canonical JSON Schema remains the sole source of truth.

See: Scope and Non-Goals | EDM and .ddna Boundary


Official Publication

The EDM whitepaper is published on Zenodo:

Citation:

Harvey, J. (2026). Emotional Data Model (EDM) v0.8.1. Zenodo. https://doi.org/10.5281/zenodo.20678017

Full Whitepaper: Download from Zenodo


Overview

The Emotional Data Model (EDM) v0.8.1 is a governance-first schema for representing emotional context in AI systems. It defines a domain-complete, schema-bound format that externalizes affective context as a deterministic, model-agnostic data object.

New in v0.8.x: Partner Profiles (§3.7.6), meta.profile two-tier model with partner: prefix, two new arc_type values, certification minimum bar. v0.8.1 is a references/errata patch — no schema change. See PROFILES.md, CONFORMANCE.md, and CHANGELOG.md.

Key principles:

  • Transient by default — EDM artifacts should not persist beyond session windows (24 hours max) unless explicitly sealed in a .ddna envelope
  • Non-inferential — No field may contain psychological inference or behavioral prediction
  • Portable — Works across any LLM provider, memory system, or agent framework
  • Compliant — Built for GDPR, CCPA, HIPAA, EU AI Act from day one

This repository contains:

  • Canonical JSON Schema for EDM v0.8
  • Domain Fragment Schemas (10 domains, 96 fields)
  • Implementation Profiles and Conformance documentation
  • Migration Crosswalks and Guides
  • Validation Tools & Examples

Quick Start

Installation

# Clone the repository
git clone https://github.com/emotional-data-model/edm-spec.git
cd edm-spec

# Validate an artifact (choose profile schema)
npm install -g ajv-cli
ajv validate -s schema/edm.v0.8.full.schema.json -d examples/example-full-profile.json
ajv validate -s schema/edm.v0.8.essential.schema.json -d examples/example-essential-profile.json

Canonical Schema URLs

Profile schemas are hosted at their canonical $id URLs:

https://deepadata.com/schemas/edm/v0.8.0/edm.essential.schema.json
https://deepadata.com/schemas/edm/v0.8.0/edm.extended.schema.json
https://deepadata.com/schemas/edm/v0.8.0/edm.full.schema.json

For always-latest versions, use /current/ (redirects to latest stable):

https://deepadata.com/schemas/edm/current/edm.essential.schema.json
https://deepadata.com/schemas/edm/current/edm.extended.schema.json
https://deepadata.com/schemas/edm/current/edm.full.schema.json

Using in Your Project

JavaScript/TypeScript:

// Import the profile schema matching your artifact's meta.profile
import essentialSchema from 'edm-spec/schema/edm.v0.8.essential.schema.json';
import extendedSchema from 'edm-spec/schema/edm.v0.8.extended.schema.json';
import fullSchema from 'edm-spec/schema/edm.v0.8.full.schema.json';
import Ajv from 'ajv';

const ajv = new Ajv();
const validate = ajv.compile(fullSchema); // or essentialSchema, extendedSchema

if (validate(artifact)) {
  console.log('Valid EDM v0.8 artifact');
} else {
  console.error('Validation failed:', validate.errors);
}

Python:

import json
import jsonschema

# Choose profile schema matching artifact's meta.profile
with open('schema/edm.v0.8.full.schema.json') as f:
    schema = json.load(f)

with open('artifact.json') as f:
    artifact = json.load(f)

jsonschema.validate(instance=artifact, schema=schema)
print("Valid EDM v0.8 artifact")

Schema Structure

EDM v0.8 defines 10 mandatory domains (96 fields total, Full profile) plus the optional extensions domain:

Representational Layer (57 fields)

  • CORE (7 fields) - Narrative anchors: anchor, spark, wound, fuel, bridge, echo, narrative
  • CONSTELLATION (18 fields) - Affective topology: emotions, narrative arcs, relational dynamics
  • MILKY_WAY (5 fields) - Contextual framing: event type, location, people, tone shifts
  • GRAVITY (15 fields) - Salience geometry: emotional weight, density, recall triggers
  • IMPULSE (12 fields) - Motivational state: energy, drive, orientation, regulation

Infrastructure Layer (39 fields)

  • META (15 fields) - Identity & provenance: id, version, timestamps, consent, visibility
  • GOVERNANCE (12 fields) - Rights & compliance: jurisdiction, retention, subject rights, k-anonymity
  • TELEMETRY (4 fields) - Extraction metadata: model, confidence, alignment delta
  • SYSTEM (3 fields) - Compute boundary: embeddings, indices, sector weights
  • CROSSWALKS (5 fields) - Interoperability: Plutchik, Geneva Emotion Wheel, DSM-5, ISO mappings

Complete Field Reference


Significance Wiki Format

EDM artifacts can be rendered as a navigable markdown wiki using the EDM Significance Wiki Format. The two-file pattern (wiki_article.md + significance_article.md) enables agents and individuals to build personal knowledge bases weighted by what mattered.

Reference implementation: deepadata-edm-mcp-server


Key Enum Values (v0.8)

Canonical values are preferred; free text is accepted where no canonical value accurately represents the extracted content (two-tier enum model, v0.7.0+).

emotion_primary

joy, sadness, fear, anger, wonder, peace, tenderness, reverence, pride, anxiety, gratitude, longing, hope, shame, disappointment, relief, frustration

arc_type

betrayal, liberation, grief, discovery, resistance, bond, moral_awakening, transformation, reconciliation, reckoning, threshold, exile, gratitude, authenticity

relational_dynamics

parent_child, grandparent_grandchild, romantic_partnership, couple, sibling_bond, family, friendship, friend, companionship, colleague, mentorship, reunion, community_ritual, grief, self_reflection, professional, therapeutic, service, adversarial

narrative_archetype

hero, caregiver, seeker, sage, lover, outlaw, innocent, orphan, magician, creator, everyman, jester, ruler, mentor

tether_type

person, symbol, event, place, ritual, object, tradition, identity, self

motivational_orientation

belonging, safety, mastery, meaning, autonomy, authenticity


Compliance & Governance

EDM is designed for regulated environments:

| Regulation | EDM Support | |------------|-------------| | EU AI Act | Non-inferential representation; no behavioral prediction | | GDPR | jurisdiction, consent_basis, subject_rights (portable, erasable, explainable) | | HIPAA | policy_labels (health, biometrics), masking_rules, k_anonymity | | CCPA | retention_policy, exportability controls |

The GOVERNANCE domain provides explicit fields for:

  • Jurisdiction declaration (GDPR, CCPA, HIPAA, PIPEDA, LGPD)
  • Retention policies (TTL, on_expiry actions)
  • Subject rights (portable, erasable, explainable booleans)
  • K-anonymity requirements
  • Policy labels and masking rules

See: EU AI Act Compliance Guide for detailed regulatory mapping.


Repository Structure

edm-spec/
├── schema/
│   ├── edm.v0.8.essential.schema.json # Essential profile (5 domains, 24 fields)
│   ├── edm.v0.8.extended.schema.json  # Extended profile (8 domains, 50 fields)
│   ├── edm.v0.8.full.schema.json      # Full profile (10 domains, 96 fields)
│   ├── fragments/                     # Shared domain schemas
│   │   ├── core.json
│   │   ├── constellation.json
│   │   ├── governance.json           # Compliance & rights
│   │   └── ... (11 total)
│   └── crosswalks/                   # Migration mappings
│       ├── v0.2_to_v0.3.json … v0.7.0_to_v0.8.0.json
├── examples/
│   ├── example-{essential,extended,full}-profile.json
│   └── example-partner-{journaling,therapy,companion,wiki}.json
├── test-vectors/                     # Canonical .ddna verification vectors
├── releases/                         # Versioned whitepaper documents
│   ├── v0.8.0/
│   └── v0.8.1/
├── docs/
│   ├── OVERVIEW.md                   # Schema architecture
│   ├── PROFILES.md                   # Implementation & partner profiles
│   ├── CONFORMANCE.md                # Conformance levels
│   ├── SCOPE_AND_NONGOALS.md         # What EDM is and is not
│   ├── EDM_DDNA_BOUNDARY.md          # Transient vs persistent
│   ├── EU_AI_ACT_COMPLIANCE.md       # Regulatory compliance guide
│   ├── WIKI_FORMAT.md                # Significance Wiki two-file format
│   ├── VALIDATION.md                 # Validation guide
│   ├── RELEASE-NOTES.md
│   └── archive/                      # Historical migration guides
├── scripts/
│   └── validate-examples.mjs         # Validation utilities
├── CHANGELOG.md                      # Version history
├── CITATION.cff                      # Citation metadata
├── LICENSE                           # MIT License
├── SECURITY.md                       # Security policy
└── README.md

Migration Guide

v0.8.0 → v0.8.1 (June 2026)

References and errata only. No structural change; no migration required.

v0.7.0 → v0.8.0 (April 2026)

New features: Partner Profiles (§3.7.6), meta.profile two-tier model (partner: prefix), arc_type +2 values, certification minimum bar. See schema/crosswalks/v0.7.0_to_v0.8.0.json. No breaking changes.

v0.6.0 → v0.7.0 (March 2026)

New features: Extensions domain, arc_type field, expanded enums, field deprecations.

See RELEASE-NOTES.md for full details.

v0.5.1 → v0.6.0 (March 2026)

Breaking change: meta.profile is now required.

EDM v0.6.0 introduced Implementation Profiles. All artifacts must declare their profile:

  • "essential" — Minimal footprint (24 fields)
  • "extended" — Narrative depth (50 fields)
  • "full" — Complete manifold (96 fields)

v0.5.0 → v0.5.1 (March 2026)

Backwards-compatible enum additions. No breaking changes.

v0.4.x → v0.5.0 (February 2026)

See docs/archive/V05_MIGRATION_GUIDE.md for full details.

v0.3.x → v0.4.x

  1. Review changes: 6 fields removed, GOVERNANCE domain added
  2. Migration guide: docs/archive/V04_MIGRATION_GUIDE.md
  3. Use crosswalk: schema/crosswalks/v0.3_to_v0.4.json
  4. Test thoroughly: Validate migrated artifacts against v0.4 schema

Contributing

We welcome contributions!

Ways to contribute:

See CONTRIBUTING.md for guidelines.

Security issues: Please report vulnerabilities privately via SECURITY.md.


Citation

If you use EDM in your research, please cite:

@software{harvey2026edm,
  author = {Harvey, Jason},
  title = {Emotional Data Model (EDM) v0.8.1},
  year = {2026},
  publisher = {Zenodo},
  version = {v0.8.1},
  doi = {10.5281/zenodo.20678017},
  url = {https://github.com/emotional-data-model/edm-spec}
}

License

MIT License — See LICENSE file.

EDM is open source to enable proliferation and interoperability. The schema is free to use, modify, and distribute.


About

EDM is maintained by DeepaData and the emotionaldatamodel.org standards body.

  • EDM — Emotional Data Model (this specification)
  • .ddna — Portable, signed emotional identity artifact
  • ESAA — Emotional Safety Attestation Artifact

Mission: Make emotional AI safe, governed, and user-sovereign.

Website: emotionaldatamodel.org | deepadata.com GitHub: @emotional-data-model Contact: [email protected]


Links

  • Whitepaper: Zenodo Record
  • DOI: 10.5281/zenodo.20678017
  • Concept DOI (all versions): 10.5281/zenodo.17808652
  • Note: The v0.8.0 deposit (10.5281/zenodo.20678017) exists outside the main version chain, cross-linked via related identifiers. v0.8.1 reunifies the lineage under concept 17808652.
  • Repository: https://github.com/emotional-data-model/edm-spec
  • Issues: https://github.com/emotional-data-model/edm-spec/issues

Last Updated: June 2026 Version: 0.8.1 License: MIT