@miadi/inquiry-weave 0.4.1 → 0.5.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/LICENSE +21 -0
- package/README.md +6 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +75 -2
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lineage.d.ts +67 -0
- package/dist/lineage.d.ts.map +1 -0
- package/dist/lineage.js +128 -0
- package/dist/lineage.js.map +1 -0
- package/dist/story-library.d.ts +34 -0
- package/dist/story-library.d.ts.map +1 -0
- package/dist/story-library.js +40 -0
- package/dist/story-library.js.map +1 -0
- package/dist/sync.d.ts +7 -0
- package/dist/sync.d.ts.map +1 -1
- package/dist/sync.js +5 -2
- package/dist/sync.js.map +1 -1
- package/package.json +9 -10
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Miadi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -52,10 +52,12 @@ numbers list their candidates — duplicates exist in the wild).
|
|
|
52
52
|
|
|
53
53
|
`--dry-run` is **global**: every mutating command (`relate`, `promote`, `inquire`, `sync`,
|
|
54
54
|
`register`) previews its plan and returns exit 0 without writing to the IAIP tree,
|
|
55
|
-
the chronicle, GitHub, or medicine-wheel. The projected plan
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
the chronicle, GitHub, or medicine-wheel. The projected plan matches the live output
|
|
56
|
+
apart from its prefix (`would <verb>:` on relation lines, `dry-run:` on sync lines), and
|
|
57
|
+
— like a live run — a standalone `sync` still refuses an artefact that is not related to
|
|
58
|
+
the episode. Fixed in v0.4.1 — prior to v0.4.1, `inquire`/`relate`/`promote` mutated real
|
|
59
|
+
state during a dry run. v0.4.2 restores the not-related guard on `sync --dry-run` (only
|
|
60
|
+
`promote` previews an as-yet-unpersisted relation).
|
|
59
61
|
|
|
60
62
|
## Environment
|
|
61
63
|
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAGL,gBAAgB,EAIjB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EAGL,gBAAgB,EAIjB,MAAM,cAAc,CAAA;AAcrB,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACzC,MAAM,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAC1C;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO,CAAC,UAAU,CAAC;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AAkcD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkDzF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -9,6 +9,7 @@ import { ArtefactResolutionError, buildArtefactName, resolveArtefact, scaffoldVe
|
|
|
9
9
|
import { AmbiguousEpisodeError, EpisodeResolutionError, parseEpisodeName, resolveEpisode, scaffoldEpisode, } from "./episode.js";
|
|
10
10
|
import { createIssue, IssueCreationError } from "./issue.js";
|
|
11
11
|
import { relate } from "./relate.js";
|
|
12
|
+
import { appendLineageEdge, LineageError, } from "./lineage.js";
|
|
12
13
|
import { syncArtefact } from "./sync.js";
|
|
13
14
|
import { artefactStatus, episodeStatus } from "./status.js";
|
|
14
15
|
import { registerArtefact, registerEpisode } from "./register.js";
|
|
@@ -24,6 +25,8 @@ Commands:
|
|
|
24
25
|
sync (--artefact <ref> [--episode <ref>] | --episode <ref> [--all])
|
|
25
26
|
status (--episode <ref> | --artefact <ref>) [--json]
|
|
26
27
|
register (--episode <ref> | --artefact <ref>) [--dry-run]
|
|
28
|
+
lineage --from <ref> --to <ref> --relation <text>
|
|
29
|
+
[--kind continues-from|relates-to] [--reverse [--reverse-relation <text>]]
|
|
27
30
|
|
|
28
31
|
Global flags:
|
|
29
32
|
--inquiry-root <dir> (default: $MIADI_INQUIRY_ROOT, $INQUIRY_ROOT)
|
|
@@ -45,8 +48,13 @@ const VALUE_FLAGS = new Set([
|
|
|
45
48
|
"inquiry-root",
|
|
46
49
|
"chronicle-root",
|
|
47
50
|
"mw-url",
|
|
51
|
+
"from",
|
|
52
|
+
"to",
|
|
53
|
+
"relation",
|
|
54
|
+
"kind",
|
|
55
|
+
"reverse-relation",
|
|
48
56
|
]);
|
|
49
|
-
const BOOLEAN_FLAGS = new Set(["no-issue", "all", "dry-run", "json", "help"]);
|
|
57
|
+
const BOOLEAN_FLAGS = new Set(["no-issue", "all", "dry-run", "json", "help", "reverse"]);
|
|
50
58
|
function parseArgs(argv) {
|
|
51
59
|
const flags = new Map();
|
|
52
60
|
let command;
|
|
@@ -159,6 +167,8 @@ async function commandPromote(context) {
|
|
|
159
167
|
const related = await doRelate(context, artefact, episode);
|
|
160
168
|
const synced = await syncArtefact(artefact.dir, episode.dir, {
|
|
161
169
|
dryRun,
|
|
170
|
+
// promote previews a relation doRelate has deliberately not persisted in dry-run.
|
|
171
|
+
allowUnrelated: true,
|
|
162
172
|
now: context.now,
|
|
163
173
|
});
|
|
164
174
|
emit(context, { related, synced }, [
|
|
@@ -328,6 +338,66 @@ async function commandRegister(context) {
|
|
|
328
338
|
emit(context, result, registerLines(result));
|
|
329
339
|
return 0;
|
|
330
340
|
}
|
|
341
|
+
function lineageFieldFromKind(kind) {
|
|
342
|
+
switch (kind) {
|
|
343
|
+
case "continues-from":
|
|
344
|
+
case "continues_from":
|
|
345
|
+
return "continues_from";
|
|
346
|
+
case "relates-to":
|
|
347
|
+
case "related-to":
|
|
348
|
+
case "relates_to":
|
|
349
|
+
return "relates_to";
|
|
350
|
+
default:
|
|
351
|
+
throw new UsageError(`--kind must be continues-from or relates-to (got '${kind}')`);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
function lineageLines(result) {
|
|
355
|
+
const verb = result.alreadyPresent
|
|
356
|
+
? "already present"
|
|
357
|
+
: result.dryRun
|
|
358
|
+
? "would author"
|
|
359
|
+
: "authored";
|
|
360
|
+
const target = result.entry.episode !== undefined ? `episode ${result.entry.episode}` : result.entry.path;
|
|
361
|
+
const lines = [
|
|
362
|
+
`${verb}: lineage.${result.field} -> ${target}`,
|
|
363
|
+
` in: ${result.episodeYamlPath}`,
|
|
364
|
+
];
|
|
365
|
+
if (result.alreadyPresent) {
|
|
366
|
+
lines.push(" note: an equal edge already existed — left unchanged");
|
|
367
|
+
}
|
|
368
|
+
else if (result.dryRun) {
|
|
369
|
+
lines.push(" note: dry-run — no file written");
|
|
370
|
+
}
|
|
371
|
+
return lines;
|
|
372
|
+
}
|
|
373
|
+
async function commandLineage(context) {
|
|
374
|
+
const relation = requireFlag(context.flags, "relation");
|
|
375
|
+
const from = await resolveEpisode(context.env.chronicleRoot, requireFlag(context.flags, "from"));
|
|
376
|
+
const to = await resolveEpisode(context.env.chronicleRoot, requireFlag(context.flags, "to"));
|
|
377
|
+
const field = lineageFieldFromKind(stringFlag(context.flags, "kind") ?? "relates-to");
|
|
378
|
+
const dryRun = context.flags.get("dry-run") === true;
|
|
379
|
+
const results = [];
|
|
380
|
+
results.push(await appendLineageEdge({
|
|
381
|
+
episodeYamlPath: join(from.dir, "episode.yaml"),
|
|
382
|
+
field,
|
|
383
|
+
target: { episode: to.number, path: to.path },
|
|
384
|
+
relation,
|
|
385
|
+
dryRun,
|
|
386
|
+
}));
|
|
387
|
+
const reverseRelation = stringFlag(context.flags, "reverse-relation");
|
|
388
|
+
const wantReverse = context.flags.get("reverse") === true || reverseRelation !== undefined;
|
|
389
|
+
if (wantReverse) {
|
|
390
|
+
results.push(await appendLineageEdge({
|
|
391
|
+
episodeYamlPath: join(to.dir, "episode.yaml"),
|
|
392
|
+
field: "relates_to",
|
|
393
|
+
target: { episode: from.number, path: from.path },
|
|
394
|
+
relation: reverseRelation ?? relation,
|
|
395
|
+
dryRun,
|
|
396
|
+
}));
|
|
397
|
+
}
|
|
398
|
+
emit(context, results, results.flatMap(lineageLines));
|
|
399
|
+
return 0;
|
|
400
|
+
}
|
|
331
401
|
const COMMANDS = {
|
|
332
402
|
relate: commandRelate,
|
|
333
403
|
promote: commandPromote,
|
|
@@ -335,6 +405,7 @@ const COMMANDS = {
|
|
|
335
405
|
sync: commandSync,
|
|
336
406
|
status: commandStatus,
|
|
337
407
|
register: commandRegister,
|
|
408
|
+
lineage: commandLineage,
|
|
338
409
|
};
|
|
339
410
|
export async function runCli(argv, options = {}) {
|
|
340
411
|
const stdout = options.stdout ?? process.stdout;
|
|
@@ -372,7 +443,9 @@ export async function runCli(argv, options = {}) {
|
|
|
372
443
|
stderr.write(`inquiry-weave: ${error.message}\n`);
|
|
373
444
|
return 2;
|
|
374
445
|
}
|
|
375
|
-
if (error instanceof WeaveError ||
|
|
446
|
+
if (error instanceof WeaveError ||
|
|
447
|
+
error instanceof IssueCreationError ||
|
|
448
|
+
error instanceof LineageError) {
|
|
376
449
|
stderr.write(`inquiry-weave: ${error.message}\n`);
|
|
377
450
|
return 1;
|
|
378
451
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,9 +7,11 @@ export * from "./tree.js";
|
|
|
7
7
|
export * from "./sync.js";
|
|
8
8
|
export * from "./issue.js";
|
|
9
9
|
export * from "./relate.js";
|
|
10
|
+
export * from "./lineage.js";
|
|
10
11
|
export * from "./status.js";
|
|
11
12
|
export * from "./register.js";
|
|
12
13
|
export * from "./episode-node.js";
|
|
13
14
|
export * from "./catalog.js";
|
|
15
|
+
export * from "./story-library.js";
|
|
14
16
|
export { runCli, type RunCliOptions, type CliStreams } from "./cli.js";
|
|
15
17
|
//# 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,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -7,9 +7,11 @@ export * from "./tree.js";
|
|
|
7
7
|
export * from "./sync.js";
|
|
8
8
|
export * from "./issue.js";
|
|
9
9
|
export * from "./relate.js";
|
|
10
|
+
export * from "./lineage.js";
|
|
10
11
|
export * from "./status.js";
|
|
11
12
|
export * from "./register.js";
|
|
12
13
|
export * from "./episode-node.js";
|
|
13
14
|
export * from "./catalog.js";
|
|
15
|
+
export * from "./story-library.js";
|
|
14
16
|
export { runCli } from "./cli.js";
|
|
15
17
|
//# 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,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAuC,MAAM,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,MAAM,EAAuC,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The lineage authoring seam — append a house-style episode↔episode edge to an
|
|
3
|
+
* episode.yaml without destroying anything else in the file.
|
|
4
|
+
*
|
|
5
|
+
* House style (see ep001 / ep044 / ep293):
|
|
6
|
+
*
|
|
7
|
+
* lineage:
|
|
8
|
+
* continues_from: # or relates_to
|
|
9
|
+
* - episode: 44
|
|
10
|
+
* path: 2026-06-10-episode-044-…
|
|
11
|
+
* relation: <prose>
|
|
12
|
+
*
|
|
13
|
+
* Round-trip safety: the file is parsed with `yaml`'s document model
|
|
14
|
+
* (`parseDocument`), which preserves comments, key order, and every field this
|
|
15
|
+
* function does not touch; only the one edge is added and the document is
|
|
16
|
+
* re-emitted. The function refuses (rather than overwrites) when `lineage` or the
|
|
17
|
+
* target field already exists in an incompatible shape, and it is idempotent —
|
|
18
|
+
* an edge whose target already appears is left untouched.
|
|
19
|
+
*
|
|
20
|
+
* This never *creates* an episode.yaml; authoring edges is only for an episode
|
|
21
|
+
* that already has a manifest (scaffolding new manifests stays `scaffoldEpisode`).
|
|
22
|
+
*/
|
|
23
|
+
export declare class LineageError extends Error {
|
|
24
|
+
}
|
|
25
|
+
/** The two house-style lineage fields, in their on-disk (underscore) spelling. */
|
|
26
|
+
export type LineageField = "continues_from" | "relates_to";
|
|
27
|
+
export interface LineageTarget {
|
|
28
|
+
/** Episode number of the other episode (house style writes this). */
|
|
29
|
+
episode?: number;
|
|
30
|
+
/** Folder path of the other episode, relative to the chronicle root. */
|
|
31
|
+
path?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface AppendLineageEdgeInput {
|
|
34
|
+
/** Absolute path to the episode.yaml that receives the edge. */
|
|
35
|
+
episodeYamlPath: string;
|
|
36
|
+
field: LineageField;
|
|
37
|
+
target: LineageTarget;
|
|
38
|
+
relation: string;
|
|
39
|
+
dryRun?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface LineageEdgeEntry {
|
|
42
|
+
episode?: number;
|
|
43
|
+
path?: string;
|
|
44
|
+
relation: string;
|
|
45
|
+
}
|
|
46
|
+
export interface AppendLineageEdgeResult {
|
|
47
|
+
episodeYamlPath: string;
|
|
48
|
+
field: LineageField;
|
|
49
|
+
entry: LineageEdgeEntry;
|
|
50
|
+
/** True when the `lineage:` block did not exist and was created. */
|
|
51
|
+
lineageCreated: boolean;
|
|
52
|
+
/** True when `lineage.<field>` did not exist and was created. */
|
|
53
|
+
fieldCreated: boolean;
|
|
54
|
+
/** True when an edge for the same target already existed — nothing changed. */
|
|
55
|
+
alreadyPresent: boolean;
|
|
56
|
+
/** True when the file was written (false for dry-run or already-present). */
|
|
57
|
+
wrote: boolean;
|
|
58
|
+
before: string;
|
|
59
|
+
after: string;
|
|
60
|
+
dryRun: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Append one lineage edge to an episode.yaml, preserving every other field and
|
|
64
|
+
* all comments. Idempotent and dry-run aware.
|
|
65
|
+
*/
|
|
66
|
+
export declare function appendLineageEdge(input: AppendLineageEdgeInput): Promise<AppendLineageEdgeResult>;
|
|
67
|
+
//# sourceMappingURL=lineage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../src/lineage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,kFAAkF;AAClF,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,YAAY,CAAA;AAE1D,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAA;IACvB,KAAK,EAAE,YAAY,CAAA;IACnB,KAAK,EAAE,gBAAgB,CAAA;IACvB,oEAAoE;IACpE,cAAc,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,YAAY,EAAE,OAAO,CAAA;IACrB,+EAA+E;IAC/E,cAAc,EAAE,OAAO,CAAA;IACvB,6EAA6E;IAC7E,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;CAChB;AA+BD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAwElC"}
|
package/dist/lineage.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The lineage authoring seam — append a house-style episode↔episode edge to an
|
|
3
|
+
* episode.yaml without destroying anything else in the file.
|
|
4
|
+
*
|
|
5
|
+
* House style (see ep001 / ep044 / ep293):
|
|
6
|
+
*
|
|
7
|
+
* lineage:
|
|
8
|
+
* continues_from: # or relates_to
|
|
9
|
+
* - episode: 44
|
|
10
|
+
* path: 2026-06-10-episode-044-…
|
|
11
|
+
* relation: <prose>
|
|
12
|
+
*
|
|
13
|
+
* Round-trip safety: the file is parsed with `yaml`'s document model
|
|
14
|
+
* (`parseDocument`), which preserves comments, key order, and every field this
|
|
15
|
+
* function does not touch; only the one edge is added and the document is
|
|
16
|
+
* re-emitted. The function refuses (rather than overwrites) when `lineage` or the
|
|
17
|
+
* target field already exists in an incompatible shape, and it is idempotent —
|
|
18
|
+
* an edge whose target already appears is left untouched.
|
|
19
|
+
*
|
|
20
|
+
* This never *creates* an episode.yaml; authoring edges is only for an episode
|
|
21
|
+
* that already has a manifest (scaffolding new manifests stays `scaffoldEpisode`).
|
|
22
|
+
*/
|
|
23
|
+
import { readFile, writeFile } from "node:fs/promises";
|
|
24
|
+
import { existsSync } from "node:fs";
|
|
25
|
+
import { isMap, isSeq, parseDocument } from "yaml";
|
|
26
|
+
export class LineageError extends Error {
|
|
27
|
+
}
|
|
28
|
+
/** The node source, key-ordered for house style: episode, path, then relation. */
|
|
29
|
+
function buildEntryNode(target, relation) {
|
|
30
|
+
const node = {};
|
|
31
|
+
if (target.episode !== undefined)
|
|
32
|
+
node.episode = target.episode;
|
|
33
|
+
if (target.path !== undefined)
|
|
34
|
+
node.path = target.path;
|
|
35
|
+
node.relation = relation;
|
|
36
|
+
return node;
|
|
37
|
+
}
|
|
38
|
+
function buildEntry(target, relation) {
|
|
39
|
+
const entry = { relation };
|
|
40
|
+
if (target.episode !== undefined)
|
|
41
|
+
entry.episode = target.episode;
|
|
42
|
+
if (target.path !== undefined)
|
|
43
|
+
entry.path = target.path;
|
|
44
|
+
return entry;
|
|
45
|
+
}
|
|
46
|
+
function targetMatchesItem(item, target) {
|
|
47
|
+
if (!isMap(item))
|
|
48
|
+
return false;
|
|
49
|
+
const itemEpisode = item.get("episode");
|
|
50
|
+
const itemPath = item.get("path");
|
|
51
|
+
if (target.episode !== undefined && itemEpisode !== undefined && Number(itemEpisode) === target.episode) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
if (target.path !== undefined && itemPath !== undefined && String(itemPath) === target.path) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Append one lineage edge to an episode.yaml, preserving every other field and
|
|
61
|
+
* all comments. Idempotent and dry-run aware.
|
|
62
|
+
*/
|
|
63
|
+
export async function appendLineageEdge(input) {
|
|
64
|
+
const relation = input.relation?.trim();
|
|
65
|
+
if (!relation) {
|
|
66
|
+
throw new LineageError("a lineage edge needs a non-empty --relation");
|
|
67
|
+
}
|
|
68
|
+
if (input.target.episode === undefined && input.target.path === undefined) {
|
|
69
|
+
throw new LineageError("a lineage edge needs a target episode number or path");
|
|
70
|
+
}
|
|
71
|
+
if (!existsSync(input.episodeYamlPath)) {
|
|
72
|
+
throw new LineageError(`episode.yaml not found: ${input.episodeYamlPath} — author edits an existing manifest only`);
|
|
73
|
+
}
|
|
74
|
+
const before = await readFile(input.episodeYamlPath, "utf8");
|
|
75
|
+
const doc = parseDocument(before);
|
|
76
|
+
if (doc.errors.length > 0) {
|
|
77
|
+
throw new LineageError(`unreadable episode.yaml ${input.episodeYamlPath}: ${doc.errors[0].message}`);
|
|
78
|
+
}
|
|
79
|
+
if (!isMap(doc.contents)) {
|
|
80
|
+
throw new LineageError(`episode.yaml ${input.episodeYamlPath} is not a mapping`);
|
|
81
|
+
}
|
|
82
|
+
const entry = buildEntry(input.target, relation);
|
|
83
|
+
const entryNode = buildEntryNode(input.target, relation);
|
|
84
|
+
let lineageCreated = false;
|
|
85
|
+
let fieldCreated = false;
|
|
86
|
+
let alreadyPresent = false;
|
|
87
|
+
const lineageNode = doc.get("lineage");
|
|
88
|
+
if (lineageNode === undefined || lineageNode === null) {
|
|
89
|
+
lineageCreated = true;
|
|
90
|
+
fieldCreated = true;
|
|
91
|
+
doc.set("lineage", { [input.field]: [entryNode] });
|
|
92
|
+
}
|
|
93
|
+
else if (!isMap(lineageNode)) {
|
|
94
|
+
throw new LineageError(`lineage in ${input.episodeYamlPath} is not a mapping — refusing to overwrite`);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const fieldNode = doc.getIn(["lineage", input.field]);
|
|
98
|
+
if (fieldNode === undefined || fieldNode === null) {
|
|
99
|
+
fieldCreated = true;
|
|
100
|
+
doc.setIn(["lineage", input.field], [entryNode]);
|
|
101
|
+
}
|
|
102
|
+
else if (!isSeq(fieldNode)) {
|
|
103
|
+
throw new LineageError(`lineage.${input.field} in ${input.episodeYamlPath} is not a list — refusing to overwrite`);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
alreadyPresent = fieldNode.items.some((item) => targetMatchesItem(item, input.target));
|
|
107
|
+
if (!alreadyPresent)
|
|
108
|
+
doc.addIn(["lineage", input.field], entryNode);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const after = alreadyPresent ? before : doc.toString();
|
|
112
|
+
const wrote = !input.dryRun && !alreadyPresent;
|
|
113
|
+
if (wrote)
|
|
114
|
+
await writeFile(input.episodeYamlPath, after, "utf8");
|
|
115
|
+
return {
|
|
116
|
+
episodeYamlPath: input.episodeYamlPath,
|
|
117
|
+
field: input.field,
|
|
118
|
+
entry,
|
|
119
|
+
lineageCreated,
|
|
120
|
+
fieldCreated,
|
|
121
|
+
alreadyPresent,
|
|
122
|
+
wrote,
|
|
123
|
+
before,
|
|
124
|
+
after,
|
|
125
|
+
dryRun: input.dryRun === true,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=lineage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineage.js","sourceRoot":"","sources":["../src/lineage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The story library enumerator — the disk side of the book-cycle catalog,
|
|
3
|
+
* mirroring `buildChronicleCatalog` (jgwill/Miadi#506).
|
|
4
|
+
*
|
|
5
|
+
* `buildStoryLibraryCatalog` walks the published Twine stories root on disk into
|
|
6
|
+
* a `StoryLibraryManifest` (the shared, filesystem-free read-model owned by
|
|
7
|
+
* `@miadi/episodic-memory-schema`). The default root is the author's Twine
|
|
8
|
+
* library; `MIADI_STORIES_ROOT` overrides it. Read-only and non-destructive.
|
|
9
|
+
*/
|
|
10
|
+
import { type StoryLibraryManifest } from "@miadi/episodic-memory-schema";
|
|
11
|
+
export declare const DEFAULT_STORIES_ROOT = "/home/mia/Documents/Twine/Stories";
|
|
12
|
+
/** Resolve the stories root: explicit flag, then `MIADI_STORIES_ROOT`, then default. */
|
|
13
|
+
export declare function resolveStoriesRoot(explicit: string | undefined, env?: NodeJS.ProcessEnv): string;
|
|
14
|
+
/** Minimal, injectable filesystem seam — mirrors catalog.ts's CatalogFs. */
|
|
15
|
+
export interface StoryLibraryFs {
|
|
16
|
+
readdir: (dir: string) => Promise<Array<{
|
|
17
|
+
name: string;
|
|
18
|
+
isDirectory: () => boolean;
|
|
19
|
+
}>>;
|
|
20
|
+
}
|
|
21
|
+
export interface BuildStoryLibraryOptions {
|
|
22
|
+
fs?: StoryLibraryFs;
|
|
23
|
+
/** A label for the root recorded in the manifest; defaults to the basename. */
|
|
24
|
+
rootLabel?: string;
|
|
25
|
+
/** When provided, stamps the manifest's `generatedAt`. */
|
|
26
|
+
now?: () => Date;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Walk the stories root into a StoryLibraryManifest. Every direct child (file or
|
|
30
|
+
* directory) becomes a story entry; episode identity is parsed from its name by
|
|
31
|
+
* the schema observer, and non-episode stories are tolerated.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildStoryLibraryCatalog(storiesRoot: string, options?: BuildStoryLibraryOptions): Promise<StoryLibraryManifest>;
|
|
34
|
+
//# sourceMappingURL=story-library.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story-library.d.ts","sourceRoot":"","sources":["../src/story-library.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,+BAA+B,CAAA;AAEtC,eAAO,MAAM,oBAAoB,sCAAsC,CAAA;AAEvE,wFAAwF;AACxF,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAER;AAED,4EAA4E;AAC5E,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,OAAO,CAAA;KAAE,CAAC,CAAC,CAAA;CACvF;AAMD,MAAM,WAAW,wBAAwB;IACvC,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,oBAAoB,CAAC,CAS/B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The story library enumerator — the disk side of the book-cycle catalog,
|
|
3
|
+
* mirroring `buildChronicleCatalog` (jgwill/Miadi#506).
|
|
4
|
+
*
|
|
5
|
+
* `buildStoryLibraryCatalog` walks the published Twine stories root on disk into
|
|
6
|
+
* a `StoryLibraryManifest` (the shared, filesystem-free read-model owned by
|
|
7
|
+
* `@miadi/episodic-memory-schema`). The default root is the author's Twine
|
|
8
|
+
* library; `MIADI_STORIES_ROOT` overrides it. Read-only and non-destructive.
|
|
9
|
+
*/
|
|
10
|
+
import { readdir } from "node:fs/promises";
|
|
11
|
+
import { observeStoryLibrary, } from "@miadi/episodic-memory-schema";
|
|
12
|
+
export const DEFAULT_STORIES_ROOT = "/home/mia/Documents/Twine/Stories";
|
|
13
|
+
/** Resolve the stories root: explicit flag, then `MIADI_STORIES_ROOT`, then default. */
|
|
14
|
+
export function resolveStoriesRoot(explicit, env = process.env) {
|
|
15
|
+
return explicit ?? env.MIADI_STORIES_ROOT ?? DEFAULT_STORIES_ROOT;
|
|
16
|
+
}
|
|
17
|
+
const nodeFs = {
|
|
18
|
+
readdir: (dir) => readdir(dir, { withFileTypes: true }),
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Walk the stories root into a StoryLibraryManifest. Every direct child (file or
|
|
22
|
+
* directory) becomes a story entry; episode identity is parsed from its name by
|
|
23
|
+
* the schema observer, and non-episode stories are tolerated.
|
|
24
|
+
*/
|
|
25
|
+
export async function buildStoryLibraryCatalog(storiesRoot, options = {}) {
|
|
26
|
+
const fs = options.fs ?? nodeFs;
|
|
27
|
+
const entries = await fs.readdir(storiesRoot);
|
|
28
|
+
const inputs = entries.map((entry) => ({
|
|
29
|
+
name: entry.name,
|
|
30
|
+
type: entry.isDirectory() ? "directory" : "file",
|
|
31
|
+
}));
|
|
32
|
+
const rootLabel = options.rootLabel ?? basename(storiesRoot);
|
|
33
|
+
return observeStoryLibrary(inputs, { root: rootLabel, now: options.now });
|
|
34
|
+
}
|
|
35
|
+
function basename(dir) {
|
|
36
|
+
const trimmed = dir.replace(/[/\\]+$/, "");
|
|
37
|
+
const slash = Math.max(trimmed.lastIndexOf("/"), trimmed.lastIndexOf("\\"));
|
|
38
|
+
return slash === -1 ? trimmed : trimmed.slice(slash + 1);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=story-library.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"story-library.js","sourceRoot":"","sources":["../src/story-library.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EACL,mBAAmB,GAGpB,MAAM,+BAA+B,CAAA;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,mCAAmC,CAAA;AAEvE,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAChC,QAA4B,EAC5B,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,QAAQ,IAAI,GAAG,CAAC,kBAAkB,IAAI,oBAAoB,CAAA;AACnE,CAAC;AAOD,MAAM,MAAM,GAAmB;IAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;CACxD,CAAA;AAUD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAmB,EACnB,UAAoC,EAAE;IAEtC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,MAAM,CAAA;IAC/B,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,MAAM,GAA6B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM;KACjD,CAAC,CAAC,CAAA;IACH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC5D,OAAO,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;AAC3E,CAAC;AAED,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3E,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AAC1D,CAAC"}
|
package/dist/sync.d.ts
CHANGED
|
@@ -21,6 +21,13 @@ export interface FreshnessReport {
|
|
|
21
21
|
}
|
|
22
22
|
export interface SyncOptions {
|
|
23
23
|
dryRun?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Allow a dry-run preview when the artefact is not yet related to the episode.
|
|
26
|
+
* Only `promote` sets this — it previews a relation it has deliberately not
|
|
27
|
+
* persisted. Standalone `sync` leaves it false so dry-run mirrors live: an
|
|
28
|
+
* unrelated pair is refused, not previewed.
|
|
29
|
+
*/
|
|
30
|
+
allowUnrelated?: boolean;
|
|
24
31
|
now?: () => Date;
|
|
25
32
|
}
|
|
26
33
|
export declare function syncArtefact(artefactDir: string, episodeDir: string, options?: SyncOptions): Promise<SyncResult>;
|
package/dist/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,uBAAuB,CAAA;AAEtF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,YAAY,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AAYD,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAIL,KAAK,YAAY,EAElB,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,cAAc,GAAG,uBAAuB,CAAA;AAEtF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,CAAA;IAC3C,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,YAAY,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AAYD,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAyCrB;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,eAAe,CAAC,CA6B1B"}
|
package/dist/sync.js
CHANGED
|
@@ -23,8 +23,11 @@ export async function syncArtefact(artefactDir, episodeDir, options = {}) {
|
|
|
23
23
|
const manifest = await hashTree(artefactDir);
|
|
24
24
|
const weave = await readEpisodeWeave(episodeDir);
|
|
25
25
|
if (options.dryRun) {
|
|
26
|
-
//
|
|
27
|
-
//
|
|
26
|
+
// Dry-run mirrors live behavior: the relation is required. `promote` is the
|
|
27
|
+
// sole exception (allowUnrelated) — it previews a relation it has not yet
|
|
28
|
+
// persisted, e.g. promote --new-episode --dry-run.
|
|
29
|
+
if (!options.allowUnrelated)
|
|
30
|
+
requireEntry(weave, artefactName);
|
|
28
31
|
const entry = weave?.inquiries.find((inquiry) => inquiry.artefact === artefactName);
|
|
29
32
|
if (entry?.last_sync?.tree_sha256 === manifest.tree_sha256 && existsSync(copyDir)) {
|
|
30
33
|
return { status: "up-to-date", artefact: artefactName, episodeDir, copyDir, manifest };
|
package/dist/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAqB,MAAM,WAAW,CAAA;AACvD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAGjB,UAAU,GACX,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAqB,MAAM,WAAW,CAAA;AACvD,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAGjB,UAAU,GACX,MAAM,YAAY,CAAA;AA6BnB,SAAS,YAAY,CAAC,KAA+B,EAAE,YAAoB;IACzE,MAAM,KAAK,GAAG,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAA;IACnF,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,UAAU,CAClB,YAAY,YAAY,uFAAuF,CAChH,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,WAAmB,EACnB,UAAkB,EAClB,UAAuB,EAAE;IAEzB,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAEhD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,4EAA4E;QAC5E,0EAA0E;QAC1E,mDAAmD;QACnD,IAAI,CAAC,OAAO,CAAC,cAAc;YAAE,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAA;QACnF,IAAI,KAAK,EAAE,SAAS,EAAE,WAAW,KAAK,QAAQ,CAAC,WAAW,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;QACxF,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;IACrF,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IAE/C,IAAI,KAAK,CAAC,SAAS,EAAE,WAAW,KAAK,QAAQ,CAAC,WAAW,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;IACxF,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,YAAY,QAAQ,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACjF,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAClD,IAAI,UAAU,CAAC,OAAO,CAAC;YAAE,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/D,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,CAAC;YAAS,CAAC;QACT,IAAI,UAAU,CAAC,MAAM,CAAC;YAAE,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,KAAK,CAAC,SAAS,GAAG;QAChB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;QACjD,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAA;IACD,MAAM,iBAAiB,CAAC,UAAU,EAAE,KAAM,CAAC,CAAA;IAC3C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,UAAkB,EAClB,KAAmB;IAEnB,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,CAAA;IAEnE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC3D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;QACnE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;IACxC,CAAC;IAED,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC;QACxC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW;QAC3C,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAA;IAEtD,IAAI,QAAQ,KAAK,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC7C,WAAW,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAA;QACvF,IAAI,UAAU,KAAK,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC/C,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,CAAA;QACxD,CAAC;IACH,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAA;QAC/E,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;IACxC,CAAC;IACD,IAAI,UAAU,KAAK,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;IACxC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAA;AAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miadi/inquiry-weave",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Relate and sync IAIP inquiry artefacts, their GitHub issues, and miadi-chronicle episodes. Creates vessels and relations only — never inquiry content.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -23,14 +23,9 @@
|
|
|
23
23
|
"README.md",
|
|
24
24
|
"rispecs"
|
|
25
25
|
],
|
|
26
|
-
"scripts": {
|
|
27
|
-
"build": "../../node_modules/.bin/tsc -p tsconfig.build.json",
|
|
28
|
-
"test": "npm run build && node --test test/*.test.mjs",
|
|
29
|
-
"prepublishOnly": "npm run build"
|
|
30
|
-
},
|
|
31
26
|
"dependencies": {
|
|
32
|
-
"
|
|
33
|
-
"
|
|
27
|
+
"yaml": "^2.5.0",
|
|
28
|
+
"@miadi/episodic-memory-schema": "0.5.0"
|
|
34
29
|
},
|
|
35
30
|
"devDependencies": {
|
|
36
31
|
"typescript": "^5.4.0"
|
|
@@ -48,5 +43,9 @@
|
|
|
48
43
|
"url": "git+https://github.com/jgwill/Miadi.git",
|
|
49
44
|
"directory": "packages/inquiry-weave"
|
|
50
45
|
},
|
|
51
|
-
"license": "MIT"
|
|
52
|
-
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"scripts": {
|
|
48
|
+
"build": "../../node_modules/.bin/tsc -p tsconfig.build.json",
|
|
49
|
+
"test": "npm run build && node --test test/*.test.mjs"
|
|
50
|
+
}
|
|
51
|
+
}
|