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-sdkNote: 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.92createStatelessArtifact
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 presentvalidateEDM
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
| Function | Description |
|---|---|
| extractFromContent | LLM-assisted extraction with auto provider selection |
| extractFromContentWithClient | Extraction with pre-configured LLM client |
| assembleArtifact | Assemble artifact from pre-extracted fields |
| createEmptyArtifact | Create artifact with default values |
| createStatelessArtifact | Strip identifying info for privacy mode |
| isStateless | Check if artifact is in stateless mode |
| validateStateless | Validate stateless artifact constraints |
| validateEDM | Basic schema validation |
| validateEDMStrict | Strict schema validation |
| validateDomain | Validate single domain |
| validateCompleteness | Check domain completeness |
| analyzeImage | Extract context from images |
| mergeImageContext | Merge 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);