SDKs

Node.js SDK

The deepadata-edm-sdk package provides type-safe extraction, validation, and stateless artifact creation for Node.js applications.

Installation

Install from GitHub:

npm install github:deepadata/deepadata-edm-sdk

Note: The SDK is currently distributed via GitHub. NPM package coming soon.

Initialization

The SDK requires LLM provider credentials for extraction. Set environment variables for your chosen provider:

# For Anthropic (Claude)
export ANTHROPIC_API_KEY=sk-ant-...

# For OpenAI
export OPENAI_API_KEY=sk-...

# For Kimi (Moonshot)
export KIMI_API_KEY=...

extractFromContent

Extract a complete EDM artifact from natural language content using LLM-assisted interpretation.

import { extractFromContent } from 'deepadata-edm-sdk';

const artifact = await extractFromContent({
  content: {
    text: "Client expressed relief after discussing coping strategies...",
    image: undefined,  // Optional base64-encoded image
  },
  metadata: {
    consentBasis: "consent",  // "consent" | "contract" | "legitimate_interest" | "none"
    jurisdiction: "HIPAA",    // Optional
    visibility: "private",    // Optional
    piiTier: "moderate",      // Optional
  },
  provider: "anthropic",      // "anthropic" | "openai" | "kimi"
  model: "claude-3-5-sonnet", // Optional: provider-specific model
  temperature: 0.3,           // Optional: LLM temperature (default 0.3)
});

// artifact contains all 10 EDM domains:
// meta, core, constellation, milky_way, gravity, impulse, governance, telemetry, system, crosswalks
console.log(artifact.constellation.emotion_primary);  // "relief"
console.log(artifact.telemetry.entry_confidence);     // 0.92

createStatelessArtifact

Convert an artifact to stateless mode by stripping identifying information from sensitive domains. Used for privacy-preserving session contexts.

import { extractFromContent, createStatelessArtifact } from 'deepadata-edm-sdk';

// Extract normally
const artifact = await extractFromContent({
  content: { text: "..." },
  metadata: { consentBasis: "consent" },
});

// Convert to stateless for session use
const stateless = createStatelessArtifact(artifact);

// Sensitive fields in milky_way and gravity are nulled
console.log(stateless.milky_way.location_context);    // null
console.log(stateless.milky_way.associated_people);   // []
console.log(stateless.gravity.recall_triggers);       // []

// Core emotional structure is preserved
console.log(stateless.constellation.emotion_primary); // still present

validateEDM

Validate an artifact against the EDM v0.5.0 schema. Returns validation result with detailed errors.

import { validateEDM, validateEDMStrict, validateDomain } from 'deepadata-edm-sdk';

// Basic validation (required fields only)
const result = validateEDM(artifact);
if (!result.valid) {
  console.log("Validation errors:", result.errors);
}

// Strict validation (all schema constraints)
const strictResult = validateEDMStrict(artifact);

// Validate a single domain
const coreResult = validateDomain(artifact.core, "core");

Type Definitions

The SDK exports TypeScript types for all EDM domains and operations:

import type {
  // Domain types
  EdmArtifact,
  Meta,
  Core,
  Constellation,
  MilkyWay,
  Gravity,
  Impulse,
  Governance,
  Telemetry,
  System,
  Crosswalks,

  // Operation types
  ExtractionInput,
  ExtractionMetadata,
  ValidationResult,
  ValidationError,
} from 'deepadata-edm-sdk';

// Enumeration constants
import {
  EMOTION_PRIMARY,
  NARRATIVE_ARC,
  RELATIONAL_DYNAMICS,
  TEMPORAL_CONTEXT,
  MEMORY_TYPE,
} from 'deepadata-edm-sdk';

All Exports

FunctionDescription
extractFromContentLLM-assisted extraction with auto provider selection
extractFromContentWithClientExtraction with pre-configured LLM client
assembleArtifactAssemble artifact from pre-extracted fields
createEmptyArtifactCreate artifact with default values
createStatelessArtifactStrip identifying info for privacy mode
isStatelessCheck if artifact is in stateless mode
validateStatelessValidate stateless artifact constraints
validateEDMBasic schema validation
validateEDMStrictStrict schema validation
validateDomainValidate single domain
validateCompletenessCheck domain completeness
analyzeImageExtract context from images
mergeImageContextMerge image analysis into artifact

Using with the HTTP API

The SDK handles local extraction. For sealing, verification, and certificates, use the HTTP API:

import { extractFromContent, validateEDM } from 'deepadata-edm-sdk';

// 1. Extract locally with SDK
const artifact = await extractFromContent({
  content: { text: "User content..." },
  metadata: { consentBasis: "consent" },
});

// 2. Validate locally
const validation = validateEDM(artifact);
if (!validation.valid) {
  throw new Error("Invalid artifact");
}

// 3. Seal via HTTP API
const sealResponse = await fetch("https://www.deepadata.com/api/v1/issue", {
  method: "POST",
  headers: {
    "Authorization": "Bearer dda_live_YOUR_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    artifact,
    pathway: "subject",
    authority: "user:12345",
  }),
});

const { data } = await sealResponse.json();
console.log("Sealed envelope:", data.envelope);
console.log("Certificate ID:", data.certificate_id);

Related