deepadata-edm-sdk 0.6.0-alpha → 0.7.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.
- package/README.md +40 -10
- package/dist/assembler.d.ts +73 -4
- package/dist/assembler.d.ts.map +1 -1
- package/dist/assembler.js +216 -16
- package/dist/assembler.js.map +1 -1
- package/dist/extractors/domain-extractors.d.ts.map +1 -1
- package/dist/extractors/domain-extractors.js +1 -20
- package/dist/extractors/domain-extractors.js.map +1 -1
- package/dist/extractors/kimi-extractor.d.ts +1 -1
- package/dist/extractors/kimi-extractor.d.ts.map +1 -1
- package/dist/extractors/kimi-extractor.js +19 -4
- package/dist/extractors/kimi-extractor.js.map +1 -1
- package/dist/extractors/llm-extractor.d.ts +35 -12
- package/dist/extractors/llm-extractor.d.ts.map +1 -1
- package/dist/extractors/llm-extractor.js +182 -167
- package/dist/extractors/llm-extractor.js.map +1 -1
- package/dist/extractors/openai-extractor.d.ts +1 -1
- package/dist/extractors/openai-extractor.js +1 -1
- package/dist/extractors/profile-prompts.d.ts +10 -7
- package/dist/extractors/profile-prompts.d.ts.map +1 -1
- package/dist/extractors/profile-prompts.js +83 -118
- package/dist/extractors/profile-prompts.js.map +1 -1
- package/dist/index.d.ts +13 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -8
- package/dist/index.js.map +1 -1
- package/dist/schema/edm-schema.d.ts +486 -294
- package/dist/schema/edm-schema.d.ts.map +1 -1
- package/dist/schema/edm-schema.js +127 -42
- package/dist/schema/edm-schema.js.map +1 -1
- package/dist/schema/types.d.ts +6 -7
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js.map +1 -1
- package/dist/stateless.d.ts.map +1 -1
- package/dist/stateless.js +0 -2
- package/dist/stateless.js.map +1 -1
- package/dist/validator.d.ts +38 -3
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +277 -16
- package/dist/validator.js.map +1 -1
- package/package.json +59 -59
- package/LICENSE +0 -21
package/README.md
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
|
-
#
|
|
1
|
+
# DeepaData EDM SDK
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The significance layer for AI memory.
|
|
4
|
+
|
|
5
|
+
EDM artifacts encode what mattered at capture time — emotional weight, recall triggers, identity thread, arc type — so every memory architecture gets a richer signal to retrieve against.
|
|
6
|
+
|
|
7
|
+
## Why EDM
|
|
8
|
+
|
|
9
|
+
Most memory systems score relevance at retrieval time. EDM encodes significance at capture time.
|
|
10
|
+
|
|
11
|
+
The difference: a raw conversation chunk tells your retrieval system what was said. An EDM artifact tells it what mattered — and why it might matter again.
|
|
12
|
+
|
|
13
|
+
**What this enables:**
|
|
14
|
+
- Retrieve by emotional significance, not just semantic similarity
|
|
15
|
+
- Surface moments that keyword and vector search miss entirely
|
|
16
|
+
- Give memory platforms five retrieval axes instead of one
|
|
17
|
+
- Portable, governed artifacts that travel with the person across platforms
|
|
18
|
+
|
|
19
|
+
The spec is MIT licensed and published on Zenodo. The SDK is the extraction layer.
|
|
4
20
|
|
|
5
21
|
## Installation
|
|
6
22
|
|
|
@@ -45,7 +61,7 @@ console.log(JSON.stringify(artifact, null, 2));
|
|
|
45
61
|
|
|
46
62
|
- **LLM-Assisted Extraction**: Uses Claude, OpenAI, or Kimi to extract emotional data from text and images
|
|
47
63
|
- **EDM v0.6.0 Compliant**: Full support for all 10 EDM domains
|
|
48
|
-
- **Profile Support**:
|
|
64
|
+
- **Profile Support**: Essential (~20 fields), Extended (~45 fields), or Full (all fields)
|
|
49
65
|
- **Text + Image Fusion**: Combines text narrative with image context
|
|
50
66
|
- **Stateless Mode**: Privacy-preserving mode for session use
|
|
51
67
|
- **Schema Validation**: Comprehensive Zod-based validation
|
|
@@ -57,16 +73,16 @@ EDM v0.6.0 introduces profile-aware extraction. Choose the profile that matches
|
|
|
57
73
|
|
|
58
74
|
| Profile | Fields | Use Case |
|
|
59
75
|
|---------|--------|----------|
|
|
60
|
-
| **
|
|
76
|
+
| **essential** | ~20 | Memory platforms, agent frameworks, AI assistants |
|
|
61
77
|
| **extended** | ~45 | Journaling apps, companion AI, workplace wellness |
|
|
62
78
|
| **full** | 96 | Therapy tools, clinical applications, research |
|
|
63
79
|
|
|
64
80
|
```typescript
|
|
65
|
-
//
|
|
81
|
+
// Essential profile - minimal extraction
|
|
66
82
|
const artifact = await extractFromContent({
|
|
67
83
|
content: { text: "..." },
|
|
68
84
|
metadata: { consentBasis: "consent" },
|
|
69
|
-
profile: "
|
|
85
|
+
profile: "essential",
|
|
70
86
|
});
|
|
71
87
|
|
|
72
88
|
// Extended profile - balanced extraction
|
|
@@ -112,7 +128,7 @@ const artifact = await extractFromContent({
|
|
|
112
128
|
},
|
|
113
129
|
model: "claude-sonnet-4-20250514", // optional
|
|
114
130
|
provider: "anthropic", // optional: "anthropic" | "openai" | "kimi"
|
|
115
|
-
profile: "full", // optional: "
|
|
131
|
+
profile: "full", // optional: "essential" | "extended" | "full"
|
|
116
132
|
});
|
|
117
133
|
```
|
|
118
134
|
|
|
@@ -148,7 +164,7 @@ Validate stateless compliance with detailed violations.
|
|
|
148
164
|
|
|
149
165
|
#### `validateEDM(artifact)`
|
|
150
166
|
|
|
151
|
-
Validate against the complete EDM v0.
|
|
167
|
+
Validate against the complete EDM v0.6.0 schema.
|
|
152
168
|
|
|
153
169
|
```typescript
|
|
154
170
|
const result = validateEDM(artifact);
|
|
@@ -182,7 +198,7 @@ Create an empty artifact structure for manual population.
|
|
|
182
198
|
|
|
183
199
|
Create an Anthropic client (uses `ANTHROPIC_API_KEY` env var if not provided).
|
|
184
200
|
|
|
185
|
-
## EDM v0.
|
|
201
|
+
## EDM v0.6.0 Domains
|
|
186
202
|
|
|
187
203
|
The SDK supports all 10 EDM domains:
|
|
188
204
|
|
|
@@ -232,9 +248,23 @@ This SDK implements EDM v0.6.0. Key changes from v0.5:
|
|
|
232
248
|
- Added `meta.profile` field for conformance level declaration
|
|
233
249
|
- Profile-aware extraction with tailored system prompts
|
|
234
250
|
- Profile-aware confidence scoring
|
|
235
|
-
- Three conformance profiles:
|
|
251
|
+
- Three conformance profiles: essential (24 fields), extended (50 fields), full (96 fields)
|
|
236
252
|
- Added Kimi K2 extractor support via MoonshotAI API
|
|
237
253
|
|
|
254
|
+
## Works With Your Memory Stack
|
|
255
|
+
|
|
256
|
+
EDM artifacts are format-agnostic episodic memory records. The structured fields integrate naturally with the retrieval infrastructure you already use:
|
|
257
|
+
|
|
258
|
+
- **Embedding-based retrieval** — embed core.narrative for semantic similarity search against any vector store
|
|
259
|
+
- **Temporal knowledge graphs** — map associated_people and tether_type as graph nodes and edges; temporal_context and recurrence_pattern as edge properties
|
|
260
|
+
- **Lexical search (BM25)** — recall_triggers and retrieval_keys are designed for activation-path matching against conversation fragments
|
|
261
|
+
- **Hybrid retrieval** — combine any of the above; EDM fields give each axis a significance-weighted signal rather than raw text
|
|
262
|
+
- **Significance activation** — the DeepaData activation API returns ranked artifact IDs for the current conversation moment (deepadata.com/docs/activation)
|
|
263
|
+
|
|
264
|
+
EDM encodes the episodic layer. The retrieval architecture is yours.
|
|
265
|
+
|
|
266
|
+
See deepadata.com/docs for integration guides.
|
|
267
|
+
|
|
238
268
|
## License
|
|
239
269
|
|
|
240
270
|
MIT
|
package/dist/assembler.d.ts
CHANGED
|
@@ -1,21 +1,83 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* EDM Artifact Assembler v0.6.0
|
|
3
3
|
* Combines LLM-extracted fields with metadata to create complete artifacts
|
|
4
|
-
*
|
|
4
|
+
* Enforces exact field-level profile filtering per EDM v0.6.0 spec
|
|
5
5
|
*/
|
|
6
6
|
import Anthropic from "@anthropic-ai/sdk";
|
|
7
7
|
import type { EdmArtifact, ExtractionOptions, LlmExtractedFields, EdmProfile } from "./schema/types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Essential Profile: 5 domains, 24 fields
|
|
10
|
+
* Target: memory platforms, agent frameworks, AI assistants
|
|
11
|
+
*/
|
|
12
|
+
export declare const ESSENTIAL_PROFILE_FIELDS: {
|
|
13
|
+
readonly meta: readonly ["id", "version", "profile", "created_at", "owner_user_id", "consent_basis", "visibility", "pii_tier"];
|
|
14
|
+
readonly core: readonly ["anchor", "spark", "wound", "fuel", "bridge", "echo"];
|
|
15
|
+
readonly constellation: readonly ["emotion_primary", "emotion_subtone", "narrative_arc"];
|
|
16
|
+
readonly governance: readonly ["jurisdiction", "retention_policy", "subject_rights"];
|
|
17
|
+
readonly telemetry: readonly ["entry_confidence", "extraction_model"];
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Extended Profile: 8 domains, ~50 fields
|
|
21
|
+
* Target: journaling apps, companion AI, workplace wellness
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Extended Profile: 7 domains, 50 fields
|
|
25
|
+
* Target: journaling apps, companion AI, workplace wellness
|
|
26
|
+
* Impulse domain is NOT included in Extended profile
|
|
27
|
+
*/
|
|
28
|
+
export declare const EXTENDED_PROFILE_FIELDS: {
|
|
29
|
+
readonly meta: readonly ["id", "version", "profile", "created_at", "owner_user_id", "consent_basis", "visibility", "pii_tier"];
|
|
30
|
+
readonly core: readonly ["anchor", "spark", "wound", "fuel", "bridge", "echo", "narrative"];
|
|
31
|
+
readonly constellation: readonly ["emotion_primary", "emotion_subtone", "higher_order_emotion", "meta_emotional_state", "interpersonal_affect", "narrative_arc", "relational_dynamics", "temporal_context", "memory_type", "media_format", "narrative_archetype", "symbolic_anchor", "relational_perspective", "temporal_rhythm", "identity_thread", "expressed_insight", "transformational_pivot", "somatic_signature"];
|
|
32
|
+
readonly milky_way: readonly ["event_type", "location_context", "associated_people", "visibility_context", "tone_shift"];
|
|
33
|
+
readonly gravity: readonly ["emotional_weight", "valence", "tether_type", "recurrence_pattern", "strength_score"];
|
|
34
|
+
readonly governance: readonly ["jurisdiction", "retention_policy", "subject_rights"];
|
|
35
|
+
readonly telemetry: readonly ["entry_confidence", "extraction_model"];
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Full Profile: all 10 domains, all fields
|
|
39
|
+
* Target: therapy platforms, clinical tools, regulated systems
|
|
40
|
+
*/
|
|
41
|
+
export declare const FULL_PROFILE_FIELDS: {
|
|
42
|
+
readonly meta: readonly ["id", "version", "profile", "created_at", "updated_at", "locale", "owner_user_id", "parent_id", "visibility", "pii_tier", "source_type", "source_context", "consent_basis", "consent_scope", "consent_revoked_at", "tags"];
|
|
43
|
+
readonly core: readonly ["anchor", "spark", "wound", "fuel", "bridge", "echo", "narrative"];
|
|
44
|
+
readonly constellation: readonly ["emotion_primary", "emotion_subtone", "higher_order_emotion", "meta_emotional_state", "interpersonal_affect", "narrative_arc", "relational_dynamics", "temporal_context", "memory_type", "media_format", "narrative_archetype", "symbolic_anchor", "relational_perspective", "temporal_rhythm", "identity_thread", "expressed_insight", "transformational_pivot", "somatic_signature"];
|
|
45
|
+
readonly milky_way: readonly ["event_type", "location_context", "associated_people", "visibility_context", "tone_shift"];
|
|
46
|
+
readonly gravity: readonly ["emotional_weight", "emotional_density", "valence", "viscosity", "gravity_type", "tether_type", "recall_triggers", "retrieval_keys", "nearby_themes", "recurrence_pattern", "strength_score", "temporal_decay", "resilience_markers", "adaptation_trajectory"];
|
|
47
|
+
readonly impulse: readonly ["primary_energy", "drive_state", "motivational_orientation", "temporal_focus", "directionality", "social_visibility", "urgency", "risk_posture", "agency_level", "regulation_state", "attachment_style", "coping_style"];
|
|
48
|
+
readonly governance: readonly ["jurisdiction", "retention_policy", "subject_rights", "exportability", "k_anonymity", "policy_labels", "masking_rules"];
|
|
49
|
+
readonly telemetry: readonly ["entry_confidence", "extraction_model", "extraction_provider", "extraction_notes"];
|
|
50
|
+
readonly system: readonly ["embeddings", "indices"];
|
|
51
|
+
readonly crosswalks: readonly ["plutchik_primary", "geneva_emotion_wheel", "DSM5_specifiers", "ISO_27557_labels"];
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Get profile field definitions
|
|
55
|
+
*/
|
|
56
|
+
export declare function getProfileFields(profile: EdmProfile): Record<string, readonly string[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Get domains included in a profile
|
|
59
|
+
*/
|
|
60
|
+
export declare function getProfileDomains(profile: EdmProfile): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Filter artifact to include only fields defined for the declared profile
|
|
63
|
+
* Per EDM v0.6.0 Profile Invariants: out-of-profile fields MUST be omitted entirely
|
|
64
|
+
*/
|
|
65
|
+
export declare function filterByProfile(artifact: Record<string, unknown>, profile: EdmProfile): Record<string, unknown>;
|
|
66
|
+
/**
|
|
67
|
+
* Profile-specific extracted fields (union type)
|
|
68
|
+
*/
|
|
69
|
+
type ProfileExtractedFields = Record<string, unknown>;
|
|
8
70
|
/**
|
|
9
71
|
* Extract a complete EDM artifact from content
|
|
10
72
|
*
|
|
11
73
|
* @param options - Extraction options including profile
|
|
12
|
-
* @returns
|
|
74
|
+
* @returns Profile-conformant EDM artifact
|
|
13
75
|
*/
|
|
14
|
-
export declare function extractFromContent(options: ExtractionOptions): Promise<
|
|
76
|
+
export declare function extractFromContent(options: ExtractionOptions): Promise<Record<string, unknown>>;
|
|
15
77
|
/**
|
|
16
78
|
* Extract from content with a provided Anthropic client
|
|
17
79
|
*/
|
|
18
|
-
export declare function extractFromContentWithClient(client: Anthropic, options: ExtractionOptions): Promise<
|
|
80
|
+
export declare function extractFromContentWithClient(client: Anthropic, options: ExtractionOptions): Promise<Record<string, unknown>>;
|
|
19
81
|
interface AssemblyContext {
|
|
20
82
|
confidence: number;
|
|
21
83
|
model: string;
|
|
@@ -25,8 +87,15 @@ interface AssemblyContext {
|
|
|
25
87
|
hasText: boolean;
|
|
26
88
|
hasImage: boolean;
|
|
27
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Assemble a profile-specific EDM artifact from extracted fields and metadata
|
|
92
|
+
* Returns only the domains defined for the declared profile
|
|
93
|
+
*/
|
|
94
|
+
export declare function assembleProfileArtifact(extracted: ProfileExtractedFields, metadata: ExtractionOptions["metadata"], context: AssemblyContext): Record<string, unknown>;
|
|
28
95
|
/**
|
|
29
96
|
* Assemble a complete EDM artifact from extracted fields and metadata
|
|
97
|
+
* Note: Returns full artifact structure; use filterByProfile to strip out-of-profile fields
|
|
98
|
+
* @deprecated Use assembleProfileArtifact for profile-aware assembly
|
|
30
99
|
*/
|
|
31
100
|
export declare function assembleArtifact(extracted: LlmExtractedFields, metadata: ExtractionOptions["metadata"], context: AssemblyContext): EdmArtifact;
|
|
32
101
|
/**
|
package/dist/assembler.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiBxG;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;;;;;CAM3B,CAAC;AAEX;;;GAGG;AACH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;CAc1B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAsCtB,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CASvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,EAAE,CAE/D;AA8DD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,EAAE,UAAU,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBzB;AAMD;;GAEG;AACH,KAAK,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+BrG;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAsBlC;AAED,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,sBAAsB,EACjC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,OAAO,EAAE,eAAe,GACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqCzB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,OAAO,EAAE,eAAe,GACvB,WAAW,CAeb;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CAsHjD"}
|
package/dist/assembler.js
CHANGED
|
@@ -2,11 +2,179 @@ import { extractWithLlm, createAnthropicClient } from "./extractors/llm-extracto
|
|
|
2
2
|
import { extractWithOpenAI, createOpenAIClient } from "./extractors/openai-extractor.js";
|
|
3
3
|
import { extractWithKimi, createKimiClient, getKimiModelId } from "./extractors/kimi-extractor.js";
|
|
4
4
|
import { createMeta, createGovernance, createTelemetry, createSystem, createCrosswalks, detectSourceType, } from "./extractors/domain-extractors.js";
|
|
5
|
+
// =============================================================================
|
|
6
|
+
// Profile Field Definitions (EDM v0.6.0 Spec)
|
|
7
|
+
// =============================================================================
|
|
8
|
+
/**
|
|
9
|
+
* Essential Profile: 5 domains, 24 fields
|
|
10
|
+
* Target: memory platforms, agent frameworks, AI assistants
|
|
11
|
+
*/
|
|
12
|
+
export const ESSENTIAL_PROFILE_FIELDS = {
|
|
13
|
+
meta: ["id", "version", "profile", "created_at", "owner_user_id", "consent_basis", "visibility", "pii_tier"],
|
|
14
|
+
core: ["anchor", "spark", "wound", "fuel", "bridge", "echo"],
|
|
15
|
+
constellation: ["emotion_primary", "emotion_subtone", "narrative_arc"],
|
|
16
|
+
governance: ["jurisdiction", "retention_policy", "subject_rights"],
|
|
17
|
+
telemetry: ["entry_confidence", "extraction_model"],
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Extended Profile: 8 domains, ~50 fields
|
|
21
|
+
* Target: journaling apps, companion AI, workplace wellness
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Extended Profile: 7 domains, 50 fields
|
|
25
|
+
* Target: journaling apps, companion AI, workplace wellness
|
|
26
|
+
* Impulse domain is NOT included in Extended profile
|
|
27
|
+
*/
|
|
28
|
+
export const EXTENDED_PROFILE_FIELDS = {
|
|
29
|
+
meta: ["id", "version", "profile", "created_at", "owner_user_id", "consent_basis", "visibility", "pii_tier"],
|
|
30
|
+
core: ["anchor", "spark", "wound", "fuel", "bridge", "echo", "narrative"],
|
|
31
|
+
constellation: [
|
|
32
|
+
"emotion_primary", "emotion_subtone", "higher_order_emotion", "meta_emotional_state",
|
|
33
|
+
"interpersonal_affect", "narrative_arc", "relational_dynamics", "temporal_context",
|
|
34
|
+
"memory_type", "media_format", "narrative_archetype", "symbolic_anchor",
|
|
35
|
+
"relational_perspective", "temporal_rhythm", "identity_thread", "expressed_insight",
|
|
36
|
+
"transformational_pivot", "somatic_signature"
|
|
37
|
+
],
|
|
38
|
+
milky_way: ["event_type", "location_context", "associated_people", "visibility_context", "tone_shift"],
|
|
39
|
+
gravity: ["emotional_weight", "valence", "tether_type", "recurrence_pattern", "strength_score"],
|
|
40
|
+
governance: ["jurisdiction", "retention_policy", "subject_rights"],
|
|
41
|
+
telemetry: ["entry_confidence", "extraction_model"],
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Full Profile: all 10 domains, all fields
|
|
45
|
+
* Target: therapy platforms, clinical tools, regulated systems
|
|
46
|
+
*/
|
|
47
|
+
export const FULL_PROFILE_FIELDS = {
|
|
48
|
+
meta: [
|
|
49
|
+
"id", "version", "profile", "created_at", "updated_at", "locale",
|
|
50
|
+
"owner_user_id", "parent_id", "visibility", "pii_tier", "source_type",
|
|
51
|
+
"source_context", "consent_basis", "consent_scope", "consent_revoked_at", "tags"
|
|
52
|
+
],
|
|
53
|
+
core: ["anchor", "spark", "wound", "fuel", "bridge", "echo", "narrative"],
|
|
54
|
+
constellation: [
|
|
55
|
+
"emotion_primary", "emotion_subtone", "higher_order_emotion", "meta_emotional_state",
|
|
56
|
+
"interpersonal_affect", "narrative_arc", "relational_dynamics", "temporal_context",
|
|
57
|
+
"memory_type", "media_format", "narrative_archetype", "symbolic_anchor",
|
|
58
|
+
"relational_perspective", "temporal_rhythm", "identity_thread", "expressed_insight",
|
|
59
|
+
"transformational_pivot", "somatic_signature"
|
|
60
|
+
],
|
|
61
|
+
milky_way: ["event_type", "location_context", "associated_people", "visibility_context", "tone_shift"],
|
|
62
|
+
gravity: [
|
|
63
|
+
"emotional_weight", "emotional_density", "valence", "viscosity", "gravity_type",
|
|
64
|
+
"tether_type", "recall_triggers", "retrieval_keys", "nearby_themes",
|
|
65
|
+
"recurrence_pattern", "strength_score", "temporal_decay", "resilience_markers", "adaptation_trajectory"
|
|
66
|
+
],
|
|
67
|
+
impulse: [
|
|
68
|
+
"primary_energy", "drive_state", "motivational_orientation", "temporal_focus",
|
|
69
|
+
"directionality", "social_visibility", "urgency", "risk_posture",
|
|
70
|
+
"agency_level", "regulation_state", "attachment_style", "coping_style"
|
|
71
|
+
],
|
|
72
|
+
governance: [
|
|
73
|
+
"jurisdiction", "retention_policy", "subject_rights", "exportability",
|
|
74
|
+
"k_anonymity", "policy_labels", "masking_rules"
|
|
75
|
+
],
|
|
76
|
+
telemetry: [
|
|
77
|
+
"entry_confidence", "extraction_model", "extraction_provider",
|
|
78
|
+
"extraction_notes"
|
|
79
|
+
],
|
|
80
|
+
system: ["embeddings", "indices"],
|
|
81
|
+
crosswalks: [
|
|
82
|
+
"plutchik_primary", "geneva_emotion_wheel", "DSM5_specifiers",
|
|
83
|
+
"ISO_27557_labels"
|
|
84
|
+
],
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Get profile field definitions
|
|
88
|
+
*/
|
|
89
|
+
export function getProfileFields(profile) {
|
|
90
|
+
switch (profile) {
|
|
91
|
+
case "essential":
|
|
92
|
+
return ESSENTIAL_PROFILE_FIELDS;
|
|
93
|
+
case "extended":
|
|
94
|
+
return EXTENDED_PROFILE_FIELDS;
|
|
95
|
+
case "full":
|
|
96
|
+
return FULL_PROFILE_FIELDS;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get domains included in a profile
|
|
101
|
+
*/
|
|
102
|
+
export function getProfileDomains(profile) {
|
|
103
|
+
return Object.keys(getProfileFields(profile));
|
|
104
|
+
}
|
|
105
|
+
// =============================================================================
|
|
106
|
+
// Profile Filtering
|
|
107
|
+
// =============================================================================
|
|
108
|
+
/**
|
|
109
|
+
* Filter an object to include only specified fields
|
|
110
|
+
*/
|
|
111
|
+
function filterObjectFields(obj, allowedFields) {
|
|
112
|
+
const filtered = {};
|
|
113
|
+
for (const field of allowedFields) {
|
|
114
|
+
if (field in obj) {
|
|
115
|
+
filtered[field] = obj[field];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return filtered;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Filter nested governance fields for Essential/Extended profiles
|
|
122
|
+
*/
|
|
123
|
+
function filterGovernanceFields(governance, allowedFields) {
|
|
124
|
+
const filtered = {};
|
|
125
|
+
for (const field of allowedFields) {
|
|
126
|
+
if (field in governance) {
|
|
127
|
+
const value = governance[field];
|
|
128
|
+
// For retention_policy, filter to basis, ttl_days, on_expiry only
|
|
129
|
+
if (field === "retention_policy" && value && typeof value === "object") {
|
|
130
|
+
const rp = value;
|
|
131
|
+
filtered[field] = {
|
|
132
|
+
basis: rp.basis,
|
|
133
|
+
ttl_days: rp.ttl_days,
|
|
134
|
+
on_expiry: rp.on_expiry,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// For subject_rights, filter to portable, erasable, explainable only
|
|
138
|
+
else if (field === "subject_rights" && value && typeof value === "object") {
|
|
139
|
+
const sr = value;
|
|
140
|
+
filtered[field] = {
|
|
141
|
+
portable: sr.portable,
|
|
142
|
+
erasable: sr.erasable,
|
|
143
|
+
explainable: sr.explainable,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
filtered[field] = value;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return filtered;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Filter artifact to include only fields defined for the declared profile
|
|
155
|
+
* Per EDM v0.6.0 Profile Invariants: out-of-profile fields MUST be omitted entirely
|
|
156
|
+
*/
|
|
157
|
+
export function filterByProfile(artifact, profile) {
|
|
158
|
+
const profileFields = getProfileFields(profile);
|
|
159
|
+
const filtered = {};
|
|
160
|
+
for (const [domain, fields] of Object.entries(profileFields)) {
|
|
161
|
+
const domainData = artifact[domain];
|
|
162
|
+
if (domainData && typeof domainData === "object") {
|
|
163
|
+
if (domain === "governance") {
|
|
164
|
+
filtered[domain] = filterGovernanceFields(domainData, fields);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
filtered[domain] = filterObjectFields(domainData, fields);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return filtered;
|
|
172
|
+
}
|
|
5
173
|
/**
|
|
6
174
|
* Extract a complete EDM artifact from content
|
|
7
175
|
*
|
|
8
176
|
* @param options - Extraction options including profile
|
|
9
|
-
* @returns
|
|
177
|
+
* @returns Profile-conformant EDM artifact
|
|
10
178
|
*/
|
|
11
179
|
export async function extractFromContent(options) {
|
|
12
180
|
const { content, metadata, model, provider = "kimi", temperature, profile = "full" } = options;
|
|
@@ -23,8 +191,8 @@ export async function extractFromContent(options) {
|
|
|
23
191
|
const client = createAnthropicClient();
|
|
24
192
|
llmResult = await extractWithLlm(client, content, model, profile);
|
|
25
193
|
}
|
|
26
|
-
// Assemble
|
|
27
|
-
|
|
194
|
+
// Assemble profile-specific artifact
|
|
195
|
+
const artifact = assembleProfileArtifact(llmResult.extracted, metadata, {
|
|
28
196
|
confidence: llmResult.confidence,
|
|
29
197
|
model: llmResult.model,
|
|
30
198
|
profile: llmResult.profile,
|
|
@@ -33,6 +201,7 @@ export async function extractFromContent(options) {
|
|
|
33
201
|
hasText: !!content.text,
|
|
34
202
|
hasImage: !!content.image,
|
|
35
203
|
});
|
|
204
|
+
return artifact;
|
|
36
205
|
}
|
|
37
206
|
/**
|
|
38
207
|
* Extract from content with a provided Anthropic client
|
|
@@ -41,8 +210,8 @@ export async function extractFromContentWithClient(client, options) {
|
|
|
41
210
|
const { content, metadata, model, profile = "full" } = options;
|
|
42
211
|
// Extract with LLM
|
|
43
212
|
const llmResult = await extractWithLlm(client, content, model, profile);
|
|
44
|
-
// Assemble
|
|
45
|
-
|
|
213
|
+
// Assemble profile-specific artifact
|
|
214
|
+
const artifact = assembleProfileArtifact(llmResult.extracted, metadata, {
|
|
46
215
|
confidence: llmResult.confidence,
|
|
47
216
|
model: llmResult.model,
|
|
48
217
|
profile: llmResult.profile,
|
|
@@ -51,9 +220,49 @@ export async function extractFromContentWithClient(client, options) {
|
|
|
51
220
|
hasText: !!content.text,
|
|
52
221
|
hasImage: !!content.image,
|
|
53
222
|
});
|
|
223
|
+
return artifact;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Assemble a profile-specific EDM artifact from extracted fields and metadata
|
|
227
|
+
* Returns only the domains defined for the declared profile
|
|
228
|
+
*/
|
|
229
|
+
export function assembleProfileArtifact(extracted, metadata, context) {
|
|
230
|
+
const sourceType = detectSourceType(context.hasText, context.hasImage);
|
|
231
|
+
const profile = context.profile;
|
|
232
|
+
const profileFields = getProfileFields(profile);
|
|
233
|
+
// Create metadata domains
|
|
234
|
+
const meta = createMeta(metadata, sourceType, profile);
|
|
235
|
+
const governance = createGovernance(metadata);
|
|
236
|
+
const telemetry = createTelemetry(context.confidence, context.model, context.notes, context.provider);
|
|
237
|
+
// Build artifact with only profile-specific domains
|
|
238
|
+
const artifact = {
|
|
239
|
+
meta: filterObjectFields(meta, profileFields.meta ?? []),
|
|
240
|
+
core: extracted.core,
|
|
241
|
+
constellation: extracted.constellation,
|
|
242
|
+
governance: filterGovernanceFields(governance, profileFields.governance ?? []),
|
|
243
|
+
telemetry: filterObjectFields(telemetry, profileFields.telemetry ?? []),
|
|
244
|
+
};
|
|
245
|
+
// Add extended/full domains if present in extracted data
|
|
246
|
+
if (extracted.milky_way) {
|
|
247
|
+
artifact.milky_way = extracted.milky_way;
|
|
248
|
+
}
|
|
249
|
+
if (extracted.gravity) {
|
|
250
|
+
artifact.gravity = extracted.gravity;
|
|
251
|
+
}
|
|
252
|
+
if (extracted.impulse) {
|
|
253
|
+
artifact.impulse = extracted.impulse;
|
|
254
|
+
}
|
|
255
|
+
// Add full-only domains
|
|
256
|
+
if (profile === "full") {
|
|
257
|
+
artifact.system = createSystem();
|
|
258
|
+
artifact.crosswalks = createCrosswalks(extracted);
|
|
259
|
+
}
|
|
260
|
+
return artifact;
|
|
54
261
|
}
|
|
55
262
|
/**
|
|
56
263
|
* Assemble a complete EDM artifact from extracted fields and metadata
|
|
264
|
+
* Note: Returns full artifact structure; use filterByProfile to strip out-of-profile fields
|
|
265
|
+
* @deprecated Use assembleProfileArtifact for profile-aware assembly
|
|
57
266
|
*/
|
|
58
267
|
export function assembleArtifact(extracted, metadata, context) {
|
|
59
268
|
const sourceType = detectSourceType(context.hasText, context.hasImage);
|
|
@@ -77,7 +286,8 @@ export function createEmptyArtifact() {
|
|
|
77
286
|
return {
|
|
78
287
|
meta: {
|
|
79
288
|
id: null,
|
|
80
|
-
version: "0.
|
|
289
|
+
version: "0.7.0",
|
|
290
|
+
profile: "full",
|
|
81
291
|
created_at: new Date().toISOString(),
|
|
82
292
|
updated_at: null,
|
|
83
293
|
locale: null,
|
|
@@ -138,7 +348,6 @@ export function createEmptyArtifact() {
|
|
|
138
348
|
recall_triggers: [],
|
|
139
349
|
retrieval_keys: [],
|
|
140
350
|
nearby_themes: [],
|
|
141
|
-
legacy_embed: false,
|
|
142
351
|
recurrence_pattern: null,
|
|
143
352
|
strength_score: 0,
|
|
144
353
|
temporal_decay: null,
|
|
@@ -177,26 +386,17 @@ export function createEmptyArtifact() {
|
|
|
177
386
|
extraction_model: null,
|
|
178
387
|
extraction_provider: null,
|
|
179
388
|
extraction_notes: null,
|
|
180
|
-
alignment_delta: null,
|
|
181
389
|
},
|
|
182
390
|
system: {
|
|
183
391
|
embeddings: [],
|
|
184
392
|
indices: {
|
|
185
393
|
waypoint_ids: [],
|
|
186
|
-
sector_weights: {
|
|
187
|
-
episodic: 0,
|
|
188
|
-
semantic: 0,
|
|
189
|
-
procedural: 0,
|
|
190
|
-
emotional: 0,
|
|
191
|
-
reflective: 0,
|
|
192
|
-
},
|
|
193
394
|
},
|
|
194
395
|
},
|
|
195
396
|
crosswalks: {
|
|
196
397
|
plutchik_primary: null,
|
|
197
398
|
geneva_emotion_wheel: null,
|
|
198
399
|
DSM5_specifiers: null,
|
|
199
|
-
HMD_v2_memory_type: null,
|
|
200
400
|
ISO_27557_labels: null,
|
|
201
401
|
},
|
|
202
402
|
};
|
package/dist/assembler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembler.js","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"assembler.js","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-extractors.d.ts","sourceRoot":"","sources":["../../src/extractors/domain-extractors.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,SAAS,EACT,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAK5B,wBAAgB,UAAU,CACxB,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EAC/B,OAAO,GAAE,UAAmB,GAC3B,IAAI,CAmBN;AAKD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,UAAU,CAoBzE;AAuDD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,GAChD,SAAS,
|
|
1
|
+
{"version":3,"file":"domain-extractors.d.ts","sourceRoot":"","sources":["../../src/extractors/domain-extractors.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EACV,SAAS,EACT,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACX,MAAM,oBAAoB,CAAC;AAK5B,wBAAgB,UAAU,CACxB,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,EAC/B,OAAO,GAAE,UAAmB,GAC3B,IAAI,CAmBN;AAKD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,UAAU,CAoBzE;AAuDD,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,GAChD,SAAS,CAOX;AAKD,wBAAgB,YAAY,IAAI,MAAM,CASrC;AAKD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,GAAG,UAAU,CAsB1E;AAKD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAQzF"}
|
|
@@ -10,7 +10,7 @@ import { randomUUID } from "crypto";
|
|
|
10
10
|
export function createMeta(metadata, sourceType, profile = "full") {
|
|
11
11
|
return {
|
|
12
12
|
id: randomUUID(),
|
|
13
|
-
version: "0.
|
|
13
|
+
version: "0.7.0",
|
|
14
14
|
profile,
|
|
15
15
|
created_at: new Date().toISOString(),
|
|
16
16
|
updated_at: null,
|
|
@@ -100,7 +100,6 @@ export function createTelemetry(confidence, model, notes, provider) {
|
|
|
100
100
|
extraction_model: model,
|
|
101
101
|
extraction_provider: provider ?? null,
|
|
102
102
|
extraction_notes: notes,
|
|
103
|
-
alignment_delta: null, // Populated by downstream systems
|
|
104
103
|
};
|
|
105
104
|
}
|
|
106
105
|
// =============================================================================
|
|
@@ -113,13 +112,6 @@ export function createSystem() {
|
|
|
113
112
|
embeddings: [],
|
|
114
113
|
indices: {
|
|
115
114
|
waypoint_ids: [],
|
|
116
|
-
sector_weights: {
|
|
117
|
-
episodic: 0,
|
|
118
|
-
semantic: 0,
|
|
119
|
-
procedural: 0,
|
|
120
|
-
emotional: 0,
|
|
121
|
-
reflective: 0,
|
|
122
|
-
},
|
|
123
115
|
},
|
|
124
116
|
};
|
|
125
117
|
}
|
|
@@ -140,21 +132,10 @@ export function createCrosswalks(extracted) {
|
|
|
140
132
|
};
|
|
141
133
|
const emotionPrimary = extracted.constellation.emotion_primary;
|
|
142
134
|
const plutchikPrimary = emotionPrimary ? (plutchikMapping[emotionPrimary] ?? null) : null;
|
|
143
|
-
// Map memory_type to HMD_v2
|
|
144
|
-
const hmdMapping = {
|
|
145
|
-
legacy_artifact: "autobiographical",
|
|
146
|
-
fleeting_moment: "episodic",
|
|
147
|
-
milestone: "flashbulb",
|
|
148
|
-
reflection: "semantic",
|
|
149
|
-
formative_experience: "autobiographical",
|
|
150
|
-
};
|
|
151
|
-
const memoryType = extracted.constellation.memory_type;
|
|
152
|
-
const hmdType = memoryType ? (hmdMapping[memoryType] ?? null) : null;
|
|
153
135
|
return {
|
|
154
136
|
plutchik_primary: plutchikPrimary,
|
|
155
137
|
geneva_emotion_wheel: null, // Requires more complex mapping
|
|
156
138
|
DSM5_specifiers: null, // Should not be auto-populated
|
|
157
|
-
HMD_v2_memory_type: hmdType,
|
|
158
139
|
ISO_27557_labels: null, // Future standard
|
|
159
140
|
};
|
|
160
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-extractors.js","sourceRoot":"","sources":["../../src/extractors/domain-extractors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAYpC,gFAAgF;AAChF,cAAc;AACd,gFAAgF;AAChF,MAAM,UAAU,UAAU,CACxB,QAA4B,EAC5B,UAA+B,EAC/B,UAAsB,MAAM;IAE5B,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domain-extractors.js","sourceRoot":"","sources":["../../src/extractors/domain-extractors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Kimi K2 Extractor for EDM v0.6.0
|
|
3
3
|
* Uses MoonshotAI's Kimi K2 model via OpenAI-compatible API
|
|
4
|
-
* Supports profile-aware extraction (
|
|
4
|
+
* Supports profile-aware extraction (essential/extended/full)
|
|
5
5
|
*/
|
|
6
6
|
import OpenAI from "openai";
|
|
7
7
|
import type { ExtractionInput, EdmProfile } from "../schema/types.js";
|