@miadi/episodic-memory-schema 0.11.0 → 0.12.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 +29 -12
- package/dist/episode-foundation.d.ts +85 -0
- package/dist/episode-foundation.d.ts.map +1 -0
- package/dist/episode-foundation.js +137 -0
- package/dist/episode-foundation.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Types + JSON Schema for **episodic memory** — the durable session-to-session memory layer in the Miadi orchestration kit.
|
|
4
4
|
|
|
5
|
+
In the Miadi stack, this is the shared record format. An episode is the unit everything is
|
|
6
|
+
filed under, and this package defines its shapes: the authored `EpisodicMemory` a session
|
|
7
|
+
leaves behind, and the read-only observations, manifests and catalogs other packages build
|
|
8
|
+
from existing episode folders. It has no dependencies and touches no filesystem: callers read
|
|
9
|
+
the files and hand it what they read.
|
|
10
|
+
|
|
11
|
+
Most of the stack depends on it: `@miadi/inquiry-weave`, `passages`, `@miadi/capture`,
|
|
12
|
+
`@miadi/episode-capture`, `@miadi/transcription`, `@miadi/plan-insight` and
|
|
13
|
+
`@miadi/musical-composition-to-episode`.
|
|
14
|
+
|
|
5
15
|
When a Storyweaver session closes, the Export Steward extracts an episodic-memory object and feeds it back to Miadi world memory. The next commission inherits what this one built.
|
|
6
16
|
|
|
7
17
|
---
|
|
@@ -35,7 +45,7 @@ EpisodicMemory
|
|
|
35
45
|
|
|
36
46
|
### Narrative layer is NCP-aligned
|
|
37
47
|
|
|
38
|
-
The `narrative` layer mirrors the
|
|
48
|
+
The `narrative` layer mirrors the Narrative Context Protocol (NCP) two-layer model:
|
|
39
49
|
|
|
40
50
|
- **Subtext** — authorial intent: perspectives, players, storypoints, storybeats, dynamics
|
|
41
51
|
- **Storytelling** — surface presentation: overviews, moments
|
|
@@ -52,7 +62,7 @@ An NCP-consuming agent can read the narrative layer directly. Episodic-memory ad
|
|
|
52
62
|
## Install
|
|
53
63
|
|
|
54
64
|
```bash
|
|
55
|
-
|
|
65
|
+
npm i @miadi/episodic-memory-schema
|
|
56
66
|
```
|
|
57
67
|
|
|
58
68
|
## Usage
|
|
@@ -158,18 +168,25 @@ modifies source material.
|
|
|
158
168
|
|
|
159
169
|
---
|
|
160
170
|
|
|
161
|
-
##
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
171
|
+
## Also in this package
|
|
172
|
+
|
|
173
|
+
- **Chronicle and story-library manifests.** `observeChronicleManifest`,
|
|
174
|
+
`EpisodeManifestEntry`, `chronicleEpisodeNodeId`, `linkEpisodeCaptures`;
|
|
175
|
+
`observeStoryLibrary`, `StoryManifestEntry`, `indexStoriesByEpisode`, `linkStoryForms`. They
|
|
176
|
+
shape a snapshot of the chronicle, or of a library of stories made from episodes, that the
|
|
177
|
+
caller hands in.
|
|
178
|
+
- **Episode captures.** `EpisodeCaptureRecord` and its parts: the descriptor of a recording
|
|
179
|
+
filed into an episode. `CaptureProvenance` is the provenance a capture carries.
|
|
180
|
+
- **Attention items.** The `attention.json` store an episode keeps for questions waiting on a
|
|
181
|
+
person (`ATTENTION_FILE`, schema `chronicle.attention.v1`).
|
|
182
|
+
- **Reviews held by an episode.** `parseReviewRef`, `readEpisodeReviews`, `reviewNodeId` and
|
|
183
|
+
`EpisodeReviewEntry` type a Miadi review inside `episode.yaml` (`reviews:`), with its
|
|
184
|
+
`review:<uuid>` node id. Pure: no fs, no fetch.
|
|
166
185
|
|
|
167
186
|
## Versioning
|
|
168
187
|
|
|
169
|
-
|
|
170
|
-
-
|
|
171
|
-
- The package release is `0.2.0`; the authored memory schema remains `episodic-memory.v1.0`
|
|
172
|
-
- Schema version is encoded in the `schemaVersion` field, independently of the package version
|
|
188
|
+
The package version and the authored memory schema version move independently. The schema is
|
|
189
|
+
`episodic-memory.v1.0`, carried in the `schemaVersion` field.
|
|
173
190
|
|
|
174
191
|
---
|
|
175
192
|
|
|
@@ -182,7 +199,7 @@ review inside `episode.yaml` (`reviews:`), in the shape Episode 345 set on the w
|
|
|
182
199
|
| W3C PROV-DM | Source / agent / activity attribution |
|
|
183
200
|
| OAIS reference model + FAIR (Wilkinson 2016) | Archival packaging frame |
|
|
184
201
|
| HAWK (Cheng et al. 2025, arXiv:2507.04067) | 10-predicate evaluation rubric; versioned chapter-state audit trail |
|
|
185
|
-
| Storyweaver foundations (
|
|
202
|
+
| Storyweaver foundations (narrative studies and digital storytelling) | Domain integration |
|
|
186
203
|
|
|
187
204
|
## License
|
|
188
205
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chronicle FOUNDATION contract — a foundation packet held by an episode.
|
|
3
|
+
*
|
|
4
|
+
* A foundation packet is academic grounding (`foundations/<slug>/` in a repo,
|
|
5
|
+
* distributed in `@miadi/foundations`). Its address is
|
|
6
|
+
* `miadi-foundation:<slug>`. An episode holds one the way it holds a review
|
|
7
|
+
* (jgwill/Miadi#630): the packet is one reusable node on the wheel
|
|
8
|
+
* (`foundation:<slug>`), the episode relates to it with an edge naming what it
|
|
9
|
+
* uses the packet for, and the episode keeps its own record of the version it
|
|
10
|
+
* read. Packets get corrected; the version is what the episode stood on.
|
|
11
|
+
*
|
|
12
|
+
* An episode can also hold a small foundation of its own, written inside the
|
|
13
|
+
* vessel under `foundations/<topic>/`. That packet belongs to the episode: its
|
|
14
|
+
* address is `miadi-chronicle:<episode>/foundations/<topic>`, and its wheel
|
|
15
|
+
* node is keyed by the episode folder so two episodes can each hold a topic of
|
|
16
|
+
* the same name.
|
|
17
|
+
*
|
|
18
|
+
* Manifest shape (`episode.yaml`):
|
|
19
|
+
*
|
|
20
|
+
* foundations:
|
|
21
|
+
* - slug: resource-addressing-and-terminal-hypermedia
|
|
22
|
+
* source: package
|
|
23
|
+
* version: 0.1.6
|
|
24
|
+
* title: Resource Addressing & Terminal Hypermedia
|
|
25
|
+
* relation: grounded-by
|
|
26
|
+
* added: '2026-10-02T10:30:00.000Z'
|
|
27
|
+
* - slug: screenwalk-media-type
|
|
28
|
+
* source: episode
|
|
29
|
+
* path: foundations/screenwalk-media-type
|
|
30
|
+
*
|
|
31
|
+
* A `miadi-foundation:<slug>` string in `references:` is read as a held
|
|
32
|
+
* packet too. Pure — no fs, no fetch. Ref: jgwill/Miadi#713, jgwill/Miadi#548.
|
|
33
|
+
*/
|
|
34
|
+
/** The address scheme of a distributed foundation packet. */
|
|
35
|
+
export declare const FOUNDATION_REFERENCE_PREFIX = "miadi-foundation:";
|
|
36
|
+
/** Wheel node ids for foundations: `foundation:<slug>`. */
|
|
37
|
+
export declare const FOUNDATION_NODE_PREFIX = "foundation:";
|
|
38
|
+
/** The wheel metadata kind a foundation node carries. */
|
|
39
|
+
export declare const FOUNDATION_NODE_KIND = "miadi_foundation";
|
|
40
|
+
/** Where an episode keeps the small foundations it authors itself. */
|
|
41
|
+
export declare const EPISODE_FOUNDATIONS_DIR = "foundations";
|
|
42
|
+
/** What an episode uses a packet for when nobody said: "Episode grounded-by Foundation". */
|
|
43
|
+
export declare const DEFAULT_FOUNDATION_RELATION = "grounded-by";
|
|
44
|
+
/** `package`: a packet from `@miadi/foundations`. `episode`: a packet inside this episode's vessel. */
|
|
45
|
+
export type FoundationSource = "package" | "episode";
|
|
46
|
+
export declare function isFoundationSlug(value: unknown): value is string;
|
|
47
|
+
/**
|
|
48
|
+
* The wheel node id of a held packet. A distributed packet is one node shared
|
|
49
|
+
* by every episode; an episode's own packet is keyed by the episode folder.
|
|
50
|
+
*/
|
|
51
|
+
export declare function foundationNodeId(slug: string, episodeFolder?: string): string;
|
|
52
|
+
/** The slug a `miadi-foundation:` reference names, or null. `//` is accepted on input. */
|
|
53
|
+
export declare function foundationSlugOf(reference: unknown): string | null;
|
|
54
|
+
/** One foundation as an episode records it. */
|
|
55
|
+
export interface EpisodeFoundationEntry {
|
|
56
|
+
/** The packet directory name. */
|
|
57
|
+
slug: string;
|
|
58
|
+
source: FoundationSource;
|
|
59
|
+
/** The `@miadi/foundations` version read (source `package`). */
|
|
60
|
+
version?: string;
|
|
61
|
+
title?: string;
|
|
62
|
+
/** Vessel-relative directory of an episode's own packet (source `episode`). */
|
|
63
|
+
path?: string;
|
|
64
|
+
/** What the episode uses the packet for: completes "Episode <relation> Foundation". */
|
|
65
|
+
relation?: string;
|
|
66
|
+
/** ISO timestamp the packet entered the episode. */
|
|
67
|
+
added?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface ObservedEpisodeFoundation extends EpisodeFoundationEntry {
|
|
70
|
+
/** `foundations` for a structured entry, `references` for a `miadi-foundation:` citation. */
|
|
71
|
+
declared: "foundations" | "references";
|
|
72
|
+
}
|
|
73
|
+
/** The entry's keys in the order the manifest writes them. */
|
|
74
|
+
export declare const FOUNDATION_ENTRY_KEYS: readonly ["slug", "source", "version", "title", "path", "relation", "added"];
|
|
75
|
+
/** An episode's own packet lives under `foundations/<slug>`, and nowhere else. */
|
|
76
|
+
export declare function episodeFoundationPath(slug: string): string;
|
|
77
|
+
/** Tolerant reader for one `foundations:` item. Null when it names no packet. */
|
|
78
|
+
export declare function toEpisodeFoundationEntry(raw: unknown): EpisodeFoundationEntry | null;
|
|
79
|
+
/**
|
|
80
|
+
* Every foundation a parsed `episode.yaml` holds: the structured
|
|
81
|
+
* `foundations:` list first, then `miadi-foundation:` citations in
|
|
82
|
+
* `references:` that the list does not already name. One entry per packet.
|
|
83
|
+
*/
|
|
84
|
+
export declare function readEpisodeFoundations(manifest: unknown): ObservedEpisodeFoundation[];
|
|
85
|
+
//# sourceMappingURL=episode-foundation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"episode-foundation.d.ts","sourceRoot":"","sources":["../src/episode-foundation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,2BAA2B,sBAAsB,CAAA;AAE9D,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,gBAAgB,CAAA;AAEnD,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,qBAAqB,CAAA;AAEtD,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,gBAAgB,CAAA;AAEpD,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,gBAAgB,CAAA;AAExD,uGAAuG;AACvG,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAA;AAKpD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,gBAAgB,CAAA;IACxB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,6FAA6F;IAC7F,QAAQ,EAAE,aAAa,GAAG,YAAY,CAAA;CACvC;AAED,8DAA8D;AAC9D,eAAO,MAAM,qBAAqB,8EAA+E,CAAA;AAOjH,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB,GAAG,IAAI,CAuBpF;AAID;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG,yBAAyB,EAAE,CAoBrF"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chronicle FOUNDATION contract — a foundation packet held by an episode.
|
|
3
|
+
*
|
|
4
|
+
* A foundation packet is academic grounding (`foundations/<slug>/` in a repo,
|
|
5
|
+
* distributed in `@miadi/foundations`). Its address is
|
|
6
|
+
* `miadi-foundation:<slug>`. An episode holds one the way it holds a review
|
|
7
|
+
* (jgwill/Miadi#630): the packet is one reusable node on the wheel
|
|
8
|
+
* (`foundation:<slug>`), the episode relates to it with an edge naming what it
|
|
9
|
+
* uses the packet for, and the episode keeps its own record of the version it
|
|
10
|
+
* read. Packets get corrected; the version is what the episode stood on.
|
|
11
|
+
*
|
|
12
|
+
* An episode can also hold a small foundation of its own, written inside the
|
|
13
|
+
* vessel under `foundations/<topic>/`. That packet belongs to the episode: its
|
|
14
|
+
* address is `miadi-chronicle:<episode>/foundations/<topic>`, and its wheel
|
|
15
|
+
* node is keyed by the episode folder so two episodes can each hold a topic of
|
|
16
|
+
* the same name.
|
|
17
|
+
*
|
|
18
|
+
* Manifest shape (`episode.yaml`):
|
|
19
|
+
*
|
|
20
|
+
* foundations:
|
|
21
|
+
* - slug: resource-addressing-and-terminal-hypermedia
|
|
22
|
+
* source: package
|
|
23
|
+
* version: 0.1.6
|
|
24
|
+
* title: Resource Addressing & Terminal Hypermedia
|
|
25
|
+
* relation: grounded-by
|
|
26
|
+
* added: '2026-10-02T10:30:00.000Z'
|
|
27
|
+
* - slug: screenwalk-media-type
|
|
28
|
+
* source: episode
|
|
29
|
+
* path: foundations/screenwalk-media-type
|
|
30
|
+
*
|
|
31
|
+
* A `miadi-foundation:<slug>` string in `references:` is read as a held
|
|
32
|
+
* packet too. Pure — no fs, no fetch. Ref: jgwill/Miadi#713, jgwill/Miadi#548.
|
|
33
|
+
*/
|
|
34
|
+
/** The address scheme of a distributed foundation packet. */
|
|
35
|
+
export const FOUNDATION_REFERENCE_PREFIX = "miadi-foundation:";
|
|
36
|
+
/** Wheel node ids for foundations: `foundation:<slug>`. */
|
|
37
|
+
export const FOUNDATION_NODE_PREFIX = "foundation:";
|
|
38
|
+
/** The wheel metadata kind a foundation node carries. */
|
|
39
|
+
export const FOUNDATION_NODE_KIND = "miadi_foundation";
|
|
40
|
+
/** Where an episode keeps the small foundations it authors itself. */
|
|
41
|
+
export const EPISODE_FOUNDATIONS_DIR = "foundations";
|
|
42
|
+
/** What an episode uses a packet for when nobody said: "Episode grounded-by Foundation". */
|
|
43
|
+
export const DEFAULT_FOUNDATION_RELATION = "grounded-by";
|
|
44
|
+
// A packet directory name: no separator, no leading dot, never `..`.
|
|
45
|
+
const SLUG = /^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/;
|
|
46
|
+
export function isFoundationSlug(value) {
|
|
47
|
+
return typeof value === "string" && SLUG.test(value) && !value.includes("..");
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The wheel node id of a held packet. A distributed packet is one node shared
|
|
51
|
+
* by every episode; an episode's own packet is keyed by the episode folder.
|
|
52
|
+
*/
|
|
53
|
+
export function foundationNodeId(slug, episodeFolder) {
|
|
54
|
+
return episodeFolder ? `${FOUNDATION_NODE_PREFIX}${episodeFolder}/${slug}` : `${FOUNDATION_NODE_PREFIX}${slug}`;
|
|
55
|
+
}
|
|
56
|
+
/** The slug a `miadi-foundation:` reference names, or null. `//` is accepted on input. */
|
|
57
|
+
export function foundationSlugOf(reference) {
|
|
58
|
+
if (typeof reference !== "string")
|
|
59
|
+
return null;
|
|
60
|
+
const m = /^miadi-foundation:(?:\/\/)?([^/?#\s]+)/i.exec(reference.trim());
|
|
61
|
+
return m && isFoundationSlug(m[1]) ? m[1] : null;
|
|
62
|
+
}
|
|
63
|
+
/** The entry's keys in the order the manifest writes them. */
|
|
64
|
+
export const FOUNDATION_ENTRY_KEYS = ["slug", "source", "version", "title", "path", "relation", "added"];
|
|
65
|
+
function text(value) {
|
|
66
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
67
|
+
return String(value);
|
|
68
|
+
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
69
|
+
}
|
|
70
|
+
/** An episode's own packet lives under `foundations/<slug>`, and nowhere else. */
|
|
71
|
+
export function episodeFoundationPath(slug) {
|
|
72
|
+
return `${EPISODE_FOUNDATIONS_DIR}/${slug}`;
|
|
73
|
+
}
|
|
74
|
+
/** Tolerant reader for one `foundations:` item. Null when it names no packet. */
|
|
75
|
+
export function toEpisodeFoundationEntry(raw) {
|
|
76
|
+
if (typeof raw === "string") {
|
|
77
|
+
const slug = foundationSlugOf(raw) ?? (isFoundationSlug(raw.trim()) ? raw.trim() : null);
|
|
78
|
+
return slug ? { slug, source: "package" } : null;
|
|
79
|
+
}
|
|
80
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw))
|
|
81
|
+
return null;
|
|
82
|
+
const r = raw;
|
|
83
|
+
const slug = text(r.slug);
|
|
84
|
+
if (!isFoundationSlug(slug))
|
|
85
|
+
return null;
|
|
86
|
+
const source = r.source === "episode" ? "episode" : "package";
|
|
87
|
+
const entry = { slug, source };
|
|
88
|
+
const version = text(r.version);
|
|
89
|
+
if (version && source === "package")
|
|
90
|
+
entry.version = version;
|
|
91
|
+
const title = text(r.title);
|
|
92
|
+
if (title)
|
|
93
|
+
entry.title = title;
|
|
94
|
+
// The path is declared by the source, never taken from the file: an
|
|
95
|
+
// episode's packet is `foundations/<slug>`, whatever a hand edit wrote.
|
|
96
|
+
if (source === "episode")
|
|
97
|
+
entry.path = episodeFoundationPath(slug);
|
|
98
|
+
const relation = text(r.relation);
|
|
99
|
+
if (relation)
|
|
100
|
+
entry.relation = relation;
|
|
101
|
+
const added = r.added instanceof Date ? r.added.toISOString() : text(r.added);
|
|
102
|
+
if (added)
|
|
103
|
+
entry.added = added;
|
|
104
|
+
return entry;
|
|
105
|
+
}
|
|
106
|
+
const keyOf = (entry) => `${entry.source}:${entry.slug}`;
|
|
107
|
+
/**
|
|
108
|
+
* Every foundation a parsed `episode.yaml` holds: the structured
|
|
109
|
+
* `foundations:` list first, then `miadi-foundation:` citations in
|
|
110
|
+
* `references:` that the list does not already name. One entry per packet.
|
|
111
|
+
*/
|
|
112
|
+
export function readEpisodeFoundations(manifest) {
|
|
113
|
+
if (typeof manifest !== "object" || manifest === null)
|
|
114
|
+
return [];
|
|
115
|
+
const m = manifest;
|
|
116
|
+
const out = [];
|
|
117
|
+
const seen = new Set();
|
|
118
|
+
for (const item of Array.isArray(m.foundations) ? m.foundations : []) {
|
|
119
|
+
const entry = toEpisodeFoundationEntry(item);
|
|
120
|
+
if (!entry || seen.has(keyOf(entry)))
|
|
121
|
+
continue;
|
|
122
|
+
seen.add(keyOf(entry));
|
|
123
|
+
out.push({ ...entry, declared: "foundations" });
|
|
124
|
+
}
|
|
125
|
+
for (const reference of Array.isArray(m.references) ? m.references : []) {
|
|
126
|
+
const slug = foundationSlugOf(reference);
|
|
127
|
+
if (!slug)
|
|
128
|
+
continue;
|
|
129
|
+
const entry = { slug, source: "package" };
|
|
130
|
+
if (seen.has(keyOf(entry)))
|
|
131
|
+
continue;
|
|
132
|
+
seen.add(keyOf(entry));
|
|
133
|
+
out.push({ ...entry, declared: "references" });
|
|
134
|
+
}
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=episode-foundation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"episode-foundation.js","sourceRoot":"","sources":["../src/episode-foundation.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,4 +32,10 @@ export type { AttentionItem, AttentionStore, ParsedAttentionStore, } from "./att
|
|
|
32
32
|
*/
|
|
33
33
|
export { REVIEW_SERVICE_BASE_URL, REVIEW_REFERENCE_PREFIX, REVIEW_NODE_PREFIX, REVIEW_NODE_KIND, REVIEW_ENTRY_KEYS, isReviewId, reviewNodeId, reviewReference, reviewPageUrl, reviewJsonUrl, parseReviewRef, toEpisodeReviewEntry, readEpisodeReviews, } from "./episode-review.js";
|
|
34
34
|
export type { ReviewRef, EpisodeReviewEntry, ObservedEpisodeReview } from "./episode-review.js";
|
|
35
|
+
/**
|
|
36
|
+
* A foundation packet held by an episode — the `foundations:` list in
|
|
37
|
+
* `episode.yaml`, and the wheel node kind it projects to (jgwill/Miadi#713).
|
|
38
|
+
*/
|
|
39
|
+
export { FOUNDATION_REFERENCE_PREFIX, FOUNDATION_NODE_PREFIX, FOUNDATION_NODE_KIND, FOUNDATION_ENTRY_KEYS, EPISODE_FOUNDATIONS_DIR, DEFAULT_FOUNDATION_RELATION, isFoundationSlug, foundationNodeId, foundationSlugOf, episodeFoundationPath, toEpisodeFoundationEntry, readEpisodeFoundations, } from "./episode-foundation.js";
|
|
40
|
+
export type { FoundationSource, EpisodeFoundationEntry, ObservedEpisodeFoundation } from "./episode-foundation.js";
|
|
35
41
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAE7C;;;;GAIG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,sBAAsB,CAAA;AAE7B;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEjE;;;GAGG;AACH,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAEvB;;;GAGG;AACH,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAE7C;;;;GAIG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,sBAAsB,CAAA;AAE7B;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAEjE;;;GAGG;AACH,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AAEvB;;;GAGG;AACH,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE/F;;;GAGG;AACH,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -29,4 +29,9 @@ export { ATTENTION_FILE, ATTENTION_SCHEMA_VERSION, toAttentionItem, parseAttenti
|
|
|
29
29
|
* shape Episode 345 set (jgwill/Miadi#630).
|
|
30
30
|
*/
|
|
31
31
|
export { REVIEW_SERVICE_BASE_URL, REVIEW_REFERENCE_PREFIX, REVIEW_NODE_PREFIX, REVIEW_NODE_KIND, REVIEW_ENTRY_KEYS, isReviewId, reviewNodeId, reviewReference, reviewPageUrl, reviewJsonUrl, parseReviewRef, toEpisodeReviewEntry, readEpisodeReviews, } from "./episode-review.js";
|
|
32
|
+
/**
|
|
33
|
+
* A foundation packet held by an episode — the `foundations:` list in
|
|
34
|
+
* `episode.yaml`, and the wheel node kind it projects to (jgwill/Miadi#713).
|
|
35
|
+
*/
|
|
36
|
+
export { FOUNDATION_REFERENCE_PREFIX, FOUNDATION_NODE_PREFIX, FOUNDATION_NODE_KIND, FOUNDATION_ENTRY_KEYS, EPISODE_FOUNDATIONS_DIR, DEFAULT_FOUNDATION_RELATION, isFoundationSlug, foundationNodeId, foundationSlugOf, episodeFoundationPath, toEpisodeFoundationEntry, readEpisodeFoundations, } from "./episode-foundation.js";
|
|
32
37
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAE7C;;;;GAIG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,sBAAsB,CAAA;AAE7B;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAG7B;;;GAGG;AACH,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AAOvB;;;GAGG;AACH,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,+BAA+B,CAAA;AAE7C;;;;GAIG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,sBAAsB,CAAA;AAE7B;;;GAGG;AACH,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,sBAAsB,CAAA;AAG7B;;;GAGG;AACH,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,gBAAgB,CAAA;AAOvB;;;GAGG;AACH,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAG5B;;;GAGG;AACH,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,yBAAyB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miadi/episodic-memory-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "TypeScript types and JSON Schema for episodic memory — the durable session-to-session memory layer in the Miadi orchestration kit. Narrative layer is NCP-aligned; provenance layer is W3C PROV-DM and OAIS-informed.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"miadi",
|