@miadi/episodic-memory-schema 0.2.0 → 0.4.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/dist/adapters/common.d.ts.map +1 -1
- package/dist/adapters/common.js +5 -1
- package/dist/adapters/common.js.map +1 -1
- package/dist/adapters/composition.d.ts.map +1 -1
- package/dist/adapters/composition.js +213 -1
- package/dist/adapters/composition.js.map +1 -1
- package/dist/chronicle-manifest.d.ts +77 -0
- package/dist/chronicle-manifest.d.ts.map +1 -0
- package/dist/chronicle-manifest.js +92 -0
- package/dist/chronicle-manifest.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/observation.d.ts +41 -1
- package/dist/observation.d.ts.map +1 -1
- package/package.json +7 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/adapters/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE1E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASlD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB1D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMzE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,YAAsB,GAClC,YAAY,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/adapters/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAE1E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAE5D;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASlD;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAqB1D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMzE;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,YAAY,EAAE,MAAM,GACnB,MAAM,CAER;AAED,wBAAgB,kBAAkB,CAChC,kBAAkB,EAAE,MAAM,EAC1B,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,YAAsB,GAClC,YAAY,CAUd;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGtE;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIzD"}
|
package/dist/adapters/common.js
CHANGED
|
@@ -71,7 +71,11 @@ export function resolveChildPath(directoryPath, childPath) {
|
|
|
71
71
|
}
|
|
72
72
|
export function inferArtifactKind(filename, defaultKind = "other") {
|
|
73
73
|
const lower = filename.toLowerCase();
|
|
74
|
-
if (/\.(?:
|
|
74
|
+
if (/\.(?:mid|midi)$/.test(lower))
|
|
75
|
+
return "midi";
|
|
76
|
+
if (/\.(?:mp4|mov|webm|mkv|avi)$/.test(lower))
|
|
77
|
+
return "video";
|
|
78
|
+
if (/\.(?:mp3|m4a|wav|ogg|flac|aac|opus|amr)$/.test(lower))
|
|
75
79
|
return "audio";
|
|
76
80
|
if (/\.(?:png|jpe?g|gif|webp|bmp|svg)$/.test(lower))
|
|
77
81
|
return "image";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/adapters/common.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/adapters/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../src/adapters/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../../src/adapters/composition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,kBAAkB,EAGlB,iCAAiC,EAClC,MAAM,mBAAmB,CAAA;AAiC1B;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,iCAAiC,GACzC,kBAAkB,CAyCpB"}
|
|
@@ -3,9 +3,18 @@ const STRUCTURALLY_PROJECTED_TOP_LEVEL_FIELDS = new Set([
|
|
|
3
3
|
"clips",
|
|
4
4
|
"texts",
|
|
5
5
|
"images",
|
|
6
|
+
"midi",
|
|
6
7
|
"relatedEpisodes",
|
|
7
8
|
"branchOf",
|
|
9
|
+
"chords",
|
|
10
|
+
"sections",
|
|
11
|
+
"rhythm",
|
|
12
|
+
"bpm",
|
|
13
|
+
"bpmDetected",
|
|
14
|
+
"key",
|
|
15
|
+
"capo",
|
|
8
16
|
]);
|
|
17
|
+
const SECTION_PROJECTED_FIELDS = ["name", "chords", "bpm", "lyrics", "strum", "midi"];
|
|
9
18
|
const STRING_METADATA_FIELDS = ["title", "slug", "created", "updated", "notes"];
|
|
10
19
|
/**
|
|
11
20
|
* Observe a composition manifest without rewriting it or forcing it into the
|
|
@@ -36,8 +45,11 @@ export function observeCompositionManifest(input, options) {
|
|
|
36
45
|
}
|
|
37
46
|
base.identityCandidates = observeIdentity(input, relativePath);
|
|
38
47
|
base.sourceMetadata = observeSourceMetadata(input, base.diagnostics);
|
|
39
|
-
base.artifacts.push(...observeArtifacts(input, "clips", "audio", relativePath, base.diagnostics), ...observeArtifacts(input, "texts", "transcript", relativePath, base.diagnostics), ...observeArtifacts(input, "images", "image", relativePath, base.diagnostics));
|
|
48
|
+
base.artifacts.push(...observeArtifacts(input, "clips", "audio", relativePath, base.diagnostics), ...observeArtifacts(input, "texts", "transcript", relativePath, base.diagnostics), ...observeArtifacts(input, "images", "image", relativePath, base.diagnostics), ...observeTopLevelMidi(input, relativePath, base.diagnostics));
|
|
40
49
|
base.relations.push(...observeRelations(input, base.diagnostics));
|
|
50
|
+
const musical = observeMusicalMetadata(input, base.diagnostics);
|
|
51
|
+
if (musical !== undefined)
|
|
52
|
+
base.musical = musical;
|
|
41
53
|
base.unmappedFields = preserveUnmappedFields(input, base.sourceMetadata);
|
|
42
54
|
return base;
|
|
43
55
|
}
|
|
@@ -205,6 +217,206 @@ function observeRelations(input, diagnostics) {
|
|
|
205
217
|
}
|
|
206
218
|
return relations;
|
|
207
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Top-level `midi[]` entries name their file with `source`, not `filename`, and
|
|
222
|
+
* carry a per-note array that would balloon an observation — so the notes are
|
|
223
|
+
* summarized and the raw array is left in the artifact's metadata.
|
|
224
|
+
*/
|
|
225
|
+
function observeTopLevelMidi(input, sourceDocumentPath, diagnostics) {
|
|
226
|
+
const value = input.midi;
|
|
227
|
+
if (value === undefined)
|
|
228
|
+
return [];
|
|
229
|
+
if (!Array.isArray(value)) {
|
|
230
|
+
diagnostics.push({
|
|
231
|
+
level: "warning",
|
|
232
|
+
code: "composition.invalid-artifact-list",
|
|
233
|
+
message: "Composition field 'midi' must be an array when present.",
|
|
234
|
+
path: "midi",
|
|
235
|
+
});
|
|
236
|
+
return [];
|
|
237
|
+
}
|
|
238
|
+
const artifacts = [];
|
|
239
|
+
value.forEach((entry, index) => {
|
|
240
|
+
const entryPath = `midi[${index}]`;
|
|
241
|
+
if (!isRecord(entry) || typeof entry.source !== "string" || entry.source.length === 0) {
|
|
242
|
+
diagnostics.push({
|
|
243
|
+
level: "warning",
|
|
244
|
+
code: "composition.invalid-artifact",
|
|
245
|
+
message: "MIDI entries require a non-empty source filename.",
|
|
246
|
+
path: entryPath,
|
|
247
|
+
});
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const relativePath = resolveSiblingPath(sourceDocumentPath, entry.source);
|
|
251
|
+
if (relativePath === undefined) {
|
|
252
|
+
diagnostics.push({
|
|
253
|
+
level: "warning",
|
|
254
|
+
code: "composition.unsafe-artifact-path",
|
|
255
|
+
message: "MIDI sources must be relative and must not contain traversal.",
|
|
256
|
+
path: `${entryPath}.source`,
|
|
257
|
+
});
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
artifacts.push({
|
|
261
|
+
id: `artifact:midi:${encodeURIComponent(relativePath)}:${index}`,
|
|
262
|
+
kind: "midi",
|
|
263
|
+
relativePath,
|
|
264
|
+
metadata: cloneRecordExcept(entry, ["source"]),
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
return artifacts;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Observe the songwriting layer.
|
|
271
|
+
*
|
|
272
|
+
* Returns undefined when the manifest carries no musical field at all — a
|
|
273
|
+
* hand-authored composition that never had a key is a different thing from one
|
|
274
|
+
* whose musician left the key empty, and that distinction is worth keeping.
|
|
275
|
+
*/
|
|
276
|
+
function observeMusicalMetadata(input, diagnostics) {
|
|
277
|
+
const present = ["chords", "sections", "rhythm", "bpm", "bpmDetected", "key", "capo"].some((field) => input[field] !== undefined);
|
|
278
|
+
if (!present)
|
|
279
|
+
return undefined;
|
|
280
|
+
const musical = {};
|
|
281
|
+
for (const field of ["rhythm", "key", "capo"]) {
|
|
282
|
+
const value = input[field];
|
|
283
|
+
if (value === undefined)
|
|
284
|
+
continue;
|
|
285
|
+
if (typeof value === "string") {
|
|
286
|
+
musical[field] = value;
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
diagnostics.push({
|
|
290
|
+
level: "warning",
|
|
291
|
+
code: "composition.invalid-musical-metadata",
|
|
292
|
+
message: `Composition field '${field}' must be a string when present.`,
|
|
293
|
+
path: field,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
if (input.bpm !== undefined) {
|
|
298
|
+
if (input.bpm === null || typeof input.bpm === "number") {
|
|
299
|
+
musical.bpm = input.bpm;
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
diagnostics.push({
|
|
303
|
+
level: "warning",
|
|
304
|
+
code: "composition.invalid-musical-metadata",
|
|
305
|
+
message: "Composition field 'bpm' must be a number or null when present.",
|
|
306
|
+
path: "bpm",
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
if (input.bpmDetected !== undefined) {
|
|
311
|
+
if (typeof input.bpmDetected === "boolean") {
|
|
312
|
+
musical.bpmDetected = input.bpmDetected;
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
diagnostics.push({
|
|
316
|
+
level: "warning",
|
|
317
|
+
code: "composition.invalid-musical-metadata",
|
|
318
|
+
message: "Composition field 'bpmDetected' must be a boolean when present.",
|
|
319
|
+
path: "bpmDetected",
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
if (input.chords !== undefined) {
|
|
324
|
+
if (Array.isArray(input.chords) &&
|
|
325
|
+
input.chords.every((value) => typeof value === "string")) {
|
|
326
|
+
musical.chords = [...input.chords];
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
diagnostics.push({
|
|
330
|
+
level: "warning",
|
|
331
|
+
code: "composition.invalid-musical-metadata",
|
|
332
|
+
message: "Composition field 'chords' must be an array of strings when present.",
|
|
333
|
+
path: "chords",
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
if (input.sections !== undefined) {
|
|
338
|
+
if (Array.isArray(input.sections)) {
|
|
339
|
+
musical.sections = observeSections(input.sections, diagnostics);
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
diagnostics.push({
|
|
343
|
+
level: "warning",
|
|
344
|
+
code: "composition.invalid-musical-metadata",
|
|
345
|
+
message: "Composition field 'sections' must be an array when present.",
|
|
346
|
+
path: "sections",
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return musical;
|
|
351
|
+
}
|
|
352
|
+
function observeSections(entries, diagnostics) {
|
|
353
|
+
const sections = [];
|
|
354
|
+
entries.forEach((entry, index) => {
|
|
355
|
+
const entryPath = `sections[${index}]`;
|
|
356
|
+
if (!isRecord(entry)) {
|
|
357
|
+
diagnostics.push({
|
|
358
|
+
level: "warning",
|
|
359
|
+
code: "composition.invalid-section",
|
|
360
|
+
message: "Section entries must be objects.",
|
|
361
|
+
path: entryPath,
|
|
362
|
+
});
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
const section = {
|
|
366
|
+
unmappedFields: cloneRecordExcept(entry, SECTION_PROJECTED_FIELDS),
|
|
367
|
+
};
|
|
368
|
+
if (typeof entry.name === "string")
|
|
369
|
+
section.name = entry.name;
|
|
370
|
+
if (typeof entry.bpm === "number")
|
|
371
|
+
section.bpm = entry.bpm;
|
|
372
|
+
if (typeof entry.lyrics === "string")
|
|
373
|
+
section.lyrics = entry.lyrics;
|
|
374
|
+
if (typeof entry.strum === "string")
|
|
375
|
+
section.strum = entry.strum;
|
|
376
|
+
// Both shapes are real: the editor writes string[], legacy writes "D, Am, G".
|
|
377
|
+
if (typeof entry.chords === "string") {
|
|
378
|
+
section.chords = entry.chords;
|
|
379
|
+
}
|
|
380
|
+
else if (Array.isArray(entry.chords) &&
|
|
381
|
+
entry.chords.every((value) => typeof value === "string")) {
|
|
382
|
+
section.chords = [...entry.chords];
|
|
383
|
+
}
|
|
384
|
+
else if (entry.chords !== undefined) {
|
|
385
|
+
diagnostics.push({
|
|
386
|
+
level: "warning",
|
|
387
|
+
code: "composition.invalid-section",
|
|
388
|
+
message: "Section 'chords' must be a string or an array of strings.",
|
|
389
|
+
path: `${entryPath}.chords`,
|
|
390
|
+
});
|
|
391
|
+
}
|
|
392
|
+
if (isRecord(entry.midi)) {
|
|
393
|
+
const midi = {};
|
|
394
|
+
if (typeof entry.midi.source === "string")
|
|
395
|
+
midi.source = entry.midi.source;
|
|
396
|
+
if (typeof entry.midi.duration === "number")
|
|
397
|
+
midi.duration = entry.midi.duration;
|
|
398
|
+
if (typeof entry.midi.noteCount === "number") {
|
|
399
|
+
midi.noteCount = entry.midi.noteCount;
|
|
400
|
+
}
|
|
401
|
+
else if (Array.isArray(entry.midi.notes)) {
|
|
402
|
+
midi.noteCount = entry.midi.notes.length;
|
|
403
|
+
}
|
|
404
|
+
section.midi = midi;
|
|
405
|
+
// The per-note array is preserved rather than inlined into the summary.
|
|
406
|
+
section.unmappedFields.midi = cloneValue(entry.midi);
|
|
407
|
+
}
|
|
408
|
+
else if (entry.midi !== undefined) {
|
|
409
|
+
diagnostics.push({
|
|
410
|
+
level: "warning",
|
|
411
|
+
code: "composition.invalid-section",
|
|
412
|
+
message: "Section 'midi' must be an object when present.",
|
|
413
|
+
path: `${entryPath}.midi`,
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
sections.push(section);
|
|
417
|
+
});
|
|
418
|
+
return sections;
|
|
419
|
+
}
|
|
208
420
|
function preserveUnmappedFields(input, metadata) {
|
|
209
421
|
const mappedMetadataFields = new Set(Object.keys(metadata));
|
|
210
422
|
const unmapped = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/adapters/composition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../../src/adapters/composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chronicle catalog — a list-of-episodes zone the app `/chronicle` surface
|
|
3
|
+
* and forgewright read identically (jgwill/Miadi#506, #507).
|
|
4
|
+
*
|
|
5
|
+
* Filesystem-free, like the rest of this package: it observes already-collected
|
|
6
|
+
* per-episode inputs (a folder name, and — when the episode is structured — its
|
|
7
|
+
* observed `episode.yaml`) and assembles the manifest. The enumerator that walks
|
|
8
|
+
* the chronicle root on disk and produces these inputs lives in
|
|
9
|
+
* `@miadi/inquiry-weave` (`catalog.ts`); this module only shapes and validates
|
|
10
|
+
* what it is handed, so the app and forgewright never fork the read-side.
|
|
11
|
+
*/
|
|
12
|
+
import type { CompatibilityDiagnostic, EpisodeObservation, EpisodeRelation } from "./observation.js";
|
|
13
|
+
/** The medicine-wheel parent every chronicle episode node hangs under. */
|
|
14
|
+
export declare const CHRONICLE_PARENT_NODE_ID = "chronicle:miadi-chronicle";
|
|
15
|
+
export declare const CHRONICLE_SERIES = "miadi-chronicle";
|
|
16
|
+
/**
|
|
17
|
+
* The medicine-wheel projection id for one episode.
|
|
18
|
+
* Mirrors `@miadi/inquiry-weave`'s `episodeNodeId` — the shared convention both
|
|
19
|
+
* the writer and the readers key on. Keyed on the folder name, never the number
|
|
20
|
+
* (numbers collide; folder names do not).
|
|
21
|
+
*/
|
|
22
|
+
export declare function chronicleEpisodeNodeId(name: string): string;
|
|
23
|
+
/** One row of the chronicle catalog, as both renderers consume it. */
|
|
24
|
+
export interface EpisodeManifestEntry {
|
|
25
|
+
/** Folder basename — the true key. */
|
|
26
|
+
name: string;
|
|
27
|
+
/** Medicine-wheel node id, `chronicle:<name>`. */
|
|
28
|
+
nodeId: string;
|
|
29
|
+
/** Path relative to the chronicle root, `<name>/episode.yaml`. */
|
|
30
|
+
relativePath: string;
|
|
31
|
+
/** Episode number when parseable from the folder name; may collide. */
|
|
32
|
+
number?: number;
|
|
33
|
+
slug?: string;
|
|
34
|
+
date?: string;
|
|
35
|
+
title?: string;
|
|
36
|
+
status?: string;
|
|
37
|
+
type?: string;
|
|
38
|
+
/** Lineage edges (`continues_from` / `relates_to` / `branch_of`) when structured. */
|
|
39
|
+
relations: EpisodeRelation[];
|
|
40
|
+
/** True when a structured `episode.yaml` was observed (vs. name-only). */
|
|
41
|
+
structured: boolean;
|
|
42
|
+
}
|
|
43
|
+
/** What the enumerator collects per folder before manifest assembly. */
|
|
44
|
+
export interface ChronicleManifestEntryInput {
|
|
45
|
+
name: string;
|
|
46
|
+
number?: number;
|
|
47
|
+
slug?: string;
|
|
48
|
+
date?: string;
|
|
49
|
+
/** Present when the episode carried a structured `episode.yaml`. */
|
|
50
|
+
observation?: EpisodeObservation;
|
|
51
|
+
}
|
|
52
|
+
export interface ChronicleManifest {
|
|
53
|
+
zone: "chronicle";
|
|
54
|
+
series: string;
|
|
55
|
+
/** Medicine-wheel parent node id all entries hang under. */
|
|
56
|
+
parentNodeId: string;
|
|
57
|
+
generatedAt?: string;
|
|
58
|
+
episodes: EpisodeManifestEntry[];
|
|
59
|
+
diagnostics: CompatibilityDiagnostic[];
|
|
60
|
+
}
|
|
61
|
+
export interface ObserveChronicleManifestOptions {
|
|
62
|
+
series?: string;
|
|
63
|
+
parentNodeId?: string;
|
|
64
|
+
/** When provided, stamps `generatedAt`; omit for a deterministic manifest. */
|
|
65
|
+
now?: () => Date;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Assemble a ChronicleManifest from per-episode inputs.
|
|
69
|
+
*
|
|
70
|
+
* Non-destructive and compatibility-first: name-only episodes (the older
|
|
71
|
+
* `script.md` era) are catalogued alongside structured ones; observation
|
|
72
|
+
* diagnostics are lifted and path-scoped; number collisions are reported as an
|
|
73
|
+
* `info` diagnostic, never dropped. Output is ordered by folder name so the
|
|
74
|
+
* manifest is stable across runs.
|
|
75
|
+
*/
|
|
76
|
+
export declare function observeChronicleManifest(inputs: readonly ChronicleManifestEntryInput[], options?: ObserveChronicleManifestOptions): ChronicleManifest;
|
|
77
|
+
//# sourceMappingURL=chronicle-manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chronicle-manifest.d.ts","sourceRoot":"","sources":["../src/chronicle-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,eAAe,EAChB,MAAM,kBAAkB,CAAA;AAEzB,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AACnE,eAAO,MAAM,gBAAgB,oBAAoB,CAAA;AAEjD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAA;IACd,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qFAAqF;IACrF,SAAS,EAAE,eAAe,EAAE,CAAA;IAC5B,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,wEAAwE;AACxE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,WAAW,CAAC,EAAE,kBAAkB,CAAA;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,oBAAoB,EAAE,CAAA;IAChC,WAAW,EAAE,uBAAuB,EAAE,CAAA;CACvC;AAED,MAAM,WAAW,+BAA+B;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,2BAA2B,EAAE,EAC9C,OAAO,GAAE,+BAAoC,GAC5C,iBAAiB,CAwDnB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The chronicle catalog — a list-of-episodes zone the app `/chronicle` surface
|
|
3
|
+
* and forgewright read identically (jgwill/Miadi#506, #507).
|
|
4
|
+
*
|
|
5
|
+
* Filesystem-free, like the rest of this package: it observes already-collected
|
|
6
|
+
* per-episode inputs (a folder name, and — when the episode is structured — its
|
|
7
|
+
* observed `episode.yaml`) and assembles the manifest. The enumerator that walks
|
|
8
|
+
* the chronicle root on disk and produces these inputs lives in
|
|
9
|
+
* `@miadi/inquiry-weave` (`catalog.ts`); this module only shapes and validates
|
|
10
|
+
* what it is handed, so the app and forgewright never fork the read-side.
|
|
11
|
+
*/
|
|
12
|
+
/** The medicine-wheel parent every chronicle episode node hangs under. */
|
|
13
|
+
export const CHRONICLE_PARENT_NODE_ID = "chronicle:miadi-chronicle";
|
|
14
|
+
export const CHRONICLE_SERIES = "miadi-chronicle";
|
|
15
|
+
/**
|
|
16
|
+
* The medicine-wheel projection id for one episode.
|
|
17
|
+
* Mirrors `@miadi/inquiry-weave`'s `episodeNodeId` — the shared convention both
|
|
18
|
+
* the writer and the readers key on. Keyed on the folder name, never the number
|
|
19
|
+
* (numbers collide; folder names do not).
|
|
20
|
+
*/
|
|
21
|
+
export function chronicleEpisodeNodeId(name) {
|
|
22
|
+
return `chronicle:${name}`;
|
|
23
|
+
}
|
|
24
|
+
function readStringField(fields, key) {
|
|
25
|
+
const value = fields[key];
|
|
26
|
+
return typeof value === "string" && value.trim() !== "" ? value : undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Assemble a ChronicleManifest from per-episode inputs.
|
|
30
|
+
*
|
|
31
|
+
* Non-destructive and compatibility-first: name-only episodes (the older
|
|
32
|
+
* `script.md` era) are catalogued alongside structured ones; observation
|
|
33
|
+
* diagnostics are lifted and path-scoped; number collisions are reported as an
|
|
34
|
+
* `info` diagnostic, never dropped. Output is ordered by folder name so the
|
|
35
|
+
* manifest is stable across runs.
|
|
36
|
+
*/
|
|
37
|
+
export function observeChronicleManifest(inputs, options = {}) {
|
|
38
|
+
const series = options.series ?? CHRONICLE_SERIES;
|
|
39
|
+
const parentNodeId = options.parentNodeId ?? CHRONICLE_PARENT_NODE_ID;
|
|
40
|
+
const diagnostics = [];
|
|
41
|
+
const episodes = inputs.map((input) => {
|
|
42
|
+
const obs = input.observation;
|
|
43
|
+
const entry = {
|
|
44
|
+
name: input.name,
|
|
45
|
+
nodeId: chronicleEpisodeNodeId(input.name),
|
|
46
|
+
relativePath: `${input.name}/episode.yaml`,
|
|
47
|
+
number: input.number,
|
|
48
|
+
slug: input.slug,
|
|
49
|
+
date: input.date ?? obs?.sourceMetadata.date,
|
|
50
|
+
title: obs?.sourceMetadata.title,
|
|
51
|
+
status: obs?.sourceMetadata.status,
|
|
52
|
+
type: obs ? readStringField(obs.unmappedFields, "type") : undefined,
|
|
53
|
+
relations: obs?.relations ?? [],
|
|
54
|
+
structured: obs !== undefined,
|
|
55
|
+
};
|
|
56
|
+
if (obs) {
|
|
57
|
+
for (const d of obs.diagnostics) {
|
|
58
|
+
diagnostics.push({ ...d, path: d.path ?? input.name });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return entry;
|
|
62
|
+
});
|
|
63
|
+
const byNumber = new Map();
|
|
64
|
+
for (const e of episodes) {
|
|
65
|
+
if (e.number === undefined)
|
|
66
|
+
continue;
|
|
67
|
+
const names = byNumber.get(e.number) ?? [];
|
|
68
|
+
names.push(e.name);
|
|
69
|
+
byNumber.set(e.number, names);
|
|
70
|
+
}
|
|
71
|
+
for (const [num, names] of byNumber) {
|
|
72
|
+
if (names.length > 1) {
|
|
73
|
+
diagnostics.push({
|
|
74
|
+
level: "info",
|
|
75
|
+
code: "chronicle.episode-number-collision",
|
|
76
|
+
message: `episode number ${num} is shared by ${names.length} folders; the folder name is the key (${names.join(", ")})`,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
episodes.sort((a, b) => (a.name < b.name ? -1 : a.name > b.name ? 1 : 0));
|
|
81
|
+
const manifest = {
|
|
82
|
+
zone: "chronicle",
|
|
83
|
+
series,
|
|
84
|
+
parentNodeId,
|
|
85
|
+
episodes,
|
|
86
|
+
diagnostics,
|
|
87
|
+
};
|
|
88
|
+
if (options.now)
|
|
89
|
+
manifest.generatedAt = options.now().toISOString();
|
|
90
|
+
return manifest;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=chronicle-manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chronicle-manifest.js","sourceRoot":"","sources":["../src/chronicle-manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
export * from "./types.js";
|
|
2
2
|
export * from "./narrative.js";
|
|
3
3
|
export * from "./observation.js";
|
|
4
|
+
export * from "./chronicle-manifest.js";
|
|
4
5
|
export * from "./adapters/composition.js";
|
|
5
6
|
export * from "./adapters/episode-yaml.js";
|
|
6
7
|
export * from "./adapters/directory.js";
|
|
8
|
+
/**
|
|
9
|
+
* Shared source-reading helpers, exported so downstream packages read paths and
|
|
10
|
+
* infer identity the same way this package does rather than forking a second,
|
|
11
|
+
* drifting copy of the traversal validator.
|
|
12
|
+
*/
|
|
13
|
+
export { inferArtifactKind, extractEpisodeNumber, validateRelativePath, tryValidateRelativePath, resolveSiblingPath, resolveChildPath, observationId, pathBasename, } from "./adapters/common.js";
|
|
7
14
|
//# 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,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,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,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AAEvC;;;;GAIG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,sBAAsB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
export * from "./types.js";
|
|
2
2
|
export * from "./narrative.js";
|
|
3
3
|
export * from "./observation.js";
|
|
4
|
+
export * from "./chronicle-manifest.js";
|
|
4
5
|
export * from "./adapters/composition.js";
|
|
5
6
|
export * from "./adapters/episode-yaml.js";
|
|
6
7
|
export * from "./adapters/directory.js";
|
|
8
|
+
/**
|
|
9
|
+
* Shared source-reading helpers, exported so downstream packages read paths and
|
|
10
|
+
* infer identity the same way this package does rather than forking a second,
|
|
11
|
+
* drifting copy of the traversal validator.
|
|
12
|
+
*/
|
|
13
|
+
export { inferArtifactKind, extractEpisodeNumber, validateRelativePath, tryValidateRelativePath, resolveSiblingPath, resolveChildPath, observationId, pathBasename, } from "./adapters/common.js";
|
|
7
14
|
//# 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,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,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,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AAEvC;;;;GAIG;AACH,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,sBAAsB,CAAA"}
|
package/dist/observation.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface EpisodeIdentityCandidate {
|
|
|
15
15
|
kind: "episode-number" | "slug" | "title" | "path";
|
|
16
16
|
value: string;
|
|
17
17
|
}
|
|
18
|
-
export type ArtifactKind = "audio" | "transcript" | "image" | "text" | "other";
|
|
18
|
+
export type ArtifactKind = "audio" | "transcript" | "image" | "text" | "midi" | "video" | "other";
|
|
19
19
|
export interface ArtifactReference {
|
|
20
20
|
id: string;
|
|
21
21
|
kind: ArtifactKind;
|
|
@@ -49,6 +49,44 @@ export interface EpisodeSourceMetadata {
|
|
|
49
49
|
sessionTitle?: string;
|
|
50
50
|
primaryIssue?: string;
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* One movement of a composition — the song-form unit a musician edits.
|
|
54
|
+
*
|
|
55
|
+
* `chords` is deliberately typed as a union: the current editor writes an
|
|
56
|
+
* array, older manifests and the documented schema write a delimited string.
|
|
57
|
+
* Both are real in the corpus, so neither is normalized away here.
|
|
58
|
+
*/
|
|
59
|
+
export interface CompositionSection {
|
|
60
|
+
name?: string;
|
|
61
|
+
chords?: string[] | string;
|
|
62
|
+
bpm?: number;
|
|
63
|
+
lyrics?: string;
|
|
64
|
+
strum?: string;
|
|
65
|
+
/** Per-note MIDI arrays are summarized; the raw array stays in unmappedFields. */
|
|
66
|
+
midi?: {
|
|
67
|
+
source?: string;
|
|
68
|
+
noteCount?: number;
|
|
69
|
+
duration?: number;
|
|
70
|
+
};
|
|
71
|
+
unmappedFields: Record<string, unknown>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The songwriting layer of a composition manifest.
|
|
75
|
+
*
|
|
76
|
+
* Present only when the source carried musical fields. Absent is meaningful —
|
|
77
|
+
* it distinguishes a hand-authored manifest that never had them from one whose
|
|
78
|
+
* musician left them at defaults.
|
|
79
|
+
*/
|
|
80
|
+
export interface CompositionMusicalMetadata {
|
|
81
|
+
/** Derived by the writer as the flat union of every section's chords. */
|
|
82
|
+
chords?: string[];
|
|
83
|
+
sections?: CompositionSection[];
|
|
84
|
+
rhythm?: string;
|
|
85
|
+
bpm?: number | null;
|
|
86
|
+
bpmDetected?: boolean;
|
|
87
|
+
key?: string;
|
|
88
|
+
capo?: string;
|
|
89
|
+
}
|
|
52
90
|
export interface EpisodeObservation {
|
|
53
91
|
id: string;
|
|
54
92
|
zone: EpisodeSourceZone;
|
|
@@ -58,6 +96,8 @@ export interface EpisodeObservation {
|
|
|
58
96
|
artifacts: ArtifactReference[];
|
|
59
97
|
relations: EpisodeRelation[];
|
|
60
98
|
diagnostics: CompatibilityDiagnostic[];
|
|
99
|
+
/** Present only for sources carrying musical metadata. */
|
|
100
|
+
musical?: CompositionMusicalMetadata;
|
|
61
101
|
/** Source fields that were preserved but not structurally projected. */
|
|
62
102
|
unmappedFields: Record<string, unknown>;
|
|
63
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,WAAW,GACX,oBAAoB,CAAA;AAExB,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,cAAc,GACd,oBAAoB,GACpB,iBAAiB,CAAA;AAErB,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,mBAAmB,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAClD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../src/observation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miadi/episodic-memory-schema",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.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",
|
|
@@ -39,16 +39,15 @@
|
|
|
39
39
|
"README.md",
|
|
40
40
|
"LICENSE"
|
|
41
41
|
],
|
|
42
|
-
"scripts": {
|
|
43
|
-
"build": "tsc",
|
|
44
|
-
"type-check": "tsc --noEmit",
|
|
45
|
-
"test": "npm run build && node --test test/*.test.mjs",
|
|
46
|
-
"prepublishOnly": "npm run build"
|
|
47
|
-
},
|
|
48
42
|
"devDependencies": {
|
|
49
43
|
"typescript": "^5.4.0"
|
|
50
44
|
},
|
|
51
45
|
"publishConfig": {
|
|
52
46
|
"access": "public"
|
|
47
|
+
},
|
|
48
|
+
"scripts": {
|
|
49
|
+
"build": "tsc",
|
|
50
|
+
"type-check": "tsc --noEmit",
|
|
51
|
+
"test": "npm run build && node --test test/*.test.mjs"
|
|
53
52
|
}
|
|
54
|
-
}
|
|
53
|
+
}
|