@miadi/inquiry-weave 0.3.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.
@@ -0,0 +1,60 @@
1
+ /**
2
+ * The Chronicle catalog — the root enumerator (jgwill/Miadi#506, #507).
3
+ *
4
+ * `buildChronicleCatalog` walks the chronicle root on disk into a
5
+ * `ChronicleManifest` (the shared, filesystem-free read-model owned by
6
+ * `@miadi/episodic-memory-schema`). `registerChronicleManifest` projects that
7
+ * manifest into medicine-wheel as the `chronicle_root` parent plus one
8
+ * `chronicle_episode` node per episode — the exact nodes the app `/chronicle`
9
+ * surface and forgewright read.
10
+ *
11
+ * This module owns the *catalog of episodes*. It never imports `@miadi/composition`
12
+ * (a single composition is a single episode's concern); the dependency edge stays
13
+ * `schema ← inquiry-weave ← composition`.
14
+ */
15
+ import { type ChronicleManifest } from "@miadi/episodic-memory-schema";
16
+ import { type EpisodeNodeOutcome } from "./episode-node.js";
17
+ /** Minimal, injectable filesystem seam — mirrors the transport seams elsewhere. */
18
+ export interface CatalogFs {
19
+ readdir: (dir: string) => Promise<Array<{
20
+ name: string;
21
+ isDirectory: () => boolean;
22
+ }>>;
23
+ readFile: (path: string) => Promise<string>;
24
+ }
25
+ export interface BuildCatalogOptions {
26
+ series?: string;
27
+ fs?: CatalogFs;
28
+ /** When provided, stamps the manifest's `generatedAt`. */
29
+ now?: () => Date;
30
+ }
31
+ /**
32
+ * Walk the chronicle root into a ChronicleManifest. Read-only, non-destructive.
33
+ *
34
+ * A directory is an episode when its name yields an episode number
35
+ * (`YYYY-MM-DD-episode-NNN-slug` or any `episode-NNN`). Episodes without a
36
+ * structured `episode.yaml` (the older `script.md` era) are still catalogued,
37
+ * as name-only entries — the manifest tolerates both metadata eras.
38
+ */
39
+ export declare function buildChronicleCatalog(chronicleRoot: string, options?: BuildCatalogOptions): Promise<ChronicleManifest>;
40
+ export interface RegisterChronicleManifestOptions {
41
+ fetchImpl?: typeof fetch;
42
+ /** Register only these folder names (else every episode in the manifest). */
43
+ only?: readonly string[];
44
+ }
45
+ export interface RegisterChronicleManifestResult {
46
+ mwUrl: string;
47
+ root: EpisodeNodeOutcome;
48
+ episodes: EpisodeNodeOutcome[];
49
+ registered: number;
50
+ alreadyRegistered: number;
51
+ pending: number;
52
+ }
53
+ /**
54
+ * Project a manifest into medicine-wheel: the `chronicle_root` parent, then one
55
+ * `chronicle_episode` node per episode. Each registration preflights and never
56
+ * overwrites, so re-running is safe. Fail-open — a node that cannot reach the
57
+ * wheel is reported `pending`, never thrown.
58
+ */
59
+ export declare function registerChronicleManifest(mwUrl: string, manifest: ChronicleManifest, options?: RegisterChronicleManifestOptions): Promise<RegisterChronicleManifestResult>;
60
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAA;AAI1B,mFAAmF;AACnF,MAAM,WAAW,SAAS;IACxB,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;IACtF,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CAC5C;AAOD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,SAAS,CAAA;IACd,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CA8B5B;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;IACxB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,kBAAkB,CAAA;IACxB,QAAQ,EAAE,kBAAkB,EAAE,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;CAChB;AAOD;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,+BAA+B,CAAC,CAiC1C"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * The Chronicle catalog — the root enumerator (jgwill/Miadi#506, #507).
3
+ *
4
+ * `buildChronicleCatalog` walks the chronicle root on disk into a
5
+ * `ChronicleManifest` (the shared, filesystem-free read-model owned by
6
+ * `@miadi/episodic-memory-schema`). `registerChronicleManifest` projects that
7
+ * manifest into medicine-wheel as the `chronicle_root` parent plus one
8
+ * `chronicle_episode` node per episode — the exact nodes the app `/chronicle`
9
+ * surface and forgewright read.
10
+ *
11
+ * This module owns the *catalog of episodes*. It never imports `@miadi/composition`
12
+ * (a single composition is a single episode's concern); the dependency edge stays
13
+ * `schema ← inquiry-weave ← composition`.
14
+ */
15
+ import { readdir, readFile } from "node:fs/promises";
16
+ import { join } from "node:path";
17
+ import { parse } from "yaml";
18
+ import { observeChronicleManifest, observeEpisodeYamlManifest, } from "@miadi/episodic-memory-schema";
19
+ import { parseEpisodeName } from "./episode.js";
20
+ import { registerChronicleRootNode, registerEpisodeNode, } from "./episode-node.js";
21
+ const EPISODE_YAML = "episode.yaml";
22
+ const nodeFs = {
23
+ readdir: (dir) => readdir(dir, { withFileTypes: true }),
24
+ readFile: (path) => readFile(path, "utf8"),
25
+ };
26
+ /**
27
+ * Walk the chronicle root into a ChronicleManifest. Read-only, non-destructive.
28
+ *
29
+ * A directory is an episode when its name yields an episode number
30
+ * (`YYYY-MM-DD-episode-NNN-slug` or any `episode-NNN`). Episodes without a
31
+ * structured `episode.yaml` (the older `script.md` era) are still catalogued,
32
+ * as name-only entries — the manifest tolerates both metadata eras.
33
+ */
34
+ export async function buildChronicleCatalog(chronicleRoot, options = {}) {
35
+ const fs = options.fs ?? nodeFs;
36
+ const entries = await fs.readdir(chronicleRoot);
37
+ const inputs = [];
38
+ for (const entry of entries) {
39
+ if (!entry.isDirectory())
40
+ continue;
41
+ const parsed = parseEpisodeName(entry.name);
42
+ if (parsed.number === undefined)
43
+ continue;
44
+ let observation;
45
+ try {
46
+ const raw = await fs.readFile(join(chronicleRoot, entry.name, EPISODE_YAML));
47
+ observation = observeEpisodeYamlManifest(parse(raw), {
48
+ relativePath: `${entry.name}/${EPISODE_YAML}`,
49
+ });
50
+ }
51
+ catch {
52
+ observation = undefined;
53
+ }
54
+ inputs.push({
55
+ name: entry.name,
56
+ number: parsed.number,
57
+ slug: parsed.slug,
58
+ date: parsed.date,
59
+ observation,
60
+ });
61
+ }
62
+ return observeChronicleManifest(inputs, { series: options.series, now: options.now });
63
+ }
64
+ function episodeCardName(episode) {
65
+ const label = episode.number !== undefined ? `Episode ${episode.number}` : episode.name;
66
+ return episode.title ? `${label} — ${episode.title}` : label;
67
+ }
68
+ /**
69
+ * Project a manifest into medicine-wheel: the `chronicle_root` parent, then one
70
+ * `chronicle_episode` node per episode. Each registration preflights and never
71
+ * overwrites, so re-running is safe. Fail-open — a node that cannot reach the
72
+ * wheel is reported `pending`, never thrown.
73
+ */
74
+ export async function registerChronicleManifest(mwUrl, manifest, options = {}) {
75
+ const only = options.only ? new Set(options.only) : undefined;
76
+ const root = await registerChronicleRootNode(mwUrl, { episodeCount: manifest.episodes.length }, { fetchImpl: options.fetchImpl });
77
+ const episodes = [];
78
+ for (const episode of manifest.episodes) {
79
+ if (only && !only.has(episode.name))
80
+ continue;
81
+ const description = [episode.date, episode.status].filter(Boolean).join(" · ");
82
+ episodes.push(await registerEpisodeNode(mwUrl, { episodeName: episode.name, name: episodeCardName(episode), description }, { fetchImpl: options.fetchImpl }));
83
+ }
84
+ const count = (state) => episodes.filter((e) => e.state === state).length;
85
+ return {
86
+ mwUrl,
87
+ root,
88
+ episodes,
89
+ registered: count("registered"),
90
+ alreadyRegistered: count("already-registered"),
91
+ pending: count("pending"),
92
+ };
93
+ }
94
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
@@ -60,4 +60,37 @@ export interface RegisterEpisodeNodeOptions {
60
60
  export declare function episodeNodeId(episodeName: string): string;
61
61
  export declare function projectEpisodeNode(input: EpisodeNodeInput): EpisodeNodeRecord;
62
62
  export declare function registerEpisodeNode(mwUrl: string, input: EpisodeNodeInput, options?: RegisterEpisodeNodeOptions): Promise<EpisodeNodeOutcome>;
63
+ /**
64
+ * The Chronicle root node — the parent every episode card hangs under.
65
+ *
66
+ * forgewright reserves a `root: ChronicleArtifactReference | null` slot for the
67
+ * `chronicle_root` kind and leaves it null until something emits this node
68
+ * (jgwill/Miadi#507). `relative_path` is "." to match the canonical root already
69
+ * in the wheel; forgewright's `isSafeRelativePath` accepts it.
70
+ */
71
+ export interface ChronicleRootNodeRecord {
72
+ id: typeof CHRONICLE_PARENT_NODE_ID;
73
+ type: "knowledge";
74
+ name: string;
75
+ description: string;
76
+ direction: "north";
77
+ metadata: {
78
+ contract: "miadi.artifact-ref.v1";
79
+ kind: "chronicle_root";
80
+ root: "MIADI_CHRONICLE_ROOT";
81
+ relative_path: ".";
82
+ episode_count?: number;
83
+ };
84
+ }
85
+ export interface ChronicleRootNodeInput {
86
+ name?: string;
87
+ description?: string;
88
+ episodeCount?: number;
89
+ }
90
+ export declare function projectChronicleRootNode(input?: ChronicleRootNodeInput): ChronicleRootNodeRecord;
91
+ /**
92
+ * Register the Chronicle root node. Preflights and never overwrites an existing
93
+ * root, so the canonical node in the wheel is safe. Fail-open at its boundary.
94
+ */
95
+ export declare function registerChronicleRootNode(mwUrl: string, input?: ChronicleRootNodeInput, options?: RegisterEpisodeNodeOptions): Promise<EpisodeNodeOutcome>;
63
96
  //# sourceMappingURL=episode-node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"episode-node.d.ts","sourceRoot":"","sources":["../src/episode-node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE,uBAAuB,CAAA;QACjC,IAAI,EAAE,mBAAmB,CAAA;QACzB,cAAc,EAAE,2BAA2B,CAAA;QAC3C,IAAI,EAAE,sBAAsB,CAAA;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,OAAO,wBAAwB,CAAA;QAC1C,MAAM,EAAE,QAAQ,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,oBAAoB,GAAG,SAAS,CAAA;AAE9E,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,gBAAgB,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAmB7E;AAgBD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,kBAAkB,CAAC,CAkD7B"}
1
+ {"version":3,"file":"episode-node.d.ts","sourceRoot":"","sources":["../src/episode-node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE,uBAAuB,CAAA;QACjC,IAAI,EAAE,mBAAmB,CAAA;QACzB,cAAc,EAAE,2BAA2B,CAAA;QAC3C,IAAI,EAAE,sBAAsB,CAAA;QAC5B,aAAa,EAAE,MAAM,CAAA;QACrB,SAAS,EAAE,OAAO,wBAAwB,CAAA;QAC1C,MAAM,EAAE,QAAQ,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,oBAAoB,GAAG,SAAS,CAAA;AAE9E,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,gBAAgB,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,uEAAuE;IACvE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAmB7E;AAgBD,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,kBAAkB,CAAC,CAkD7B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,wBAAwB,CAAA;IACnC,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE,uBAAuB,CAAA;QACjC,IAAI,EAAE,gBAAgB,CAAA;QACtB,IAAI,EAAE,sBAAsB,CAAA;QAC5B,aAAa,EAAE,GAAG,CAAA;QAClB,aAAa,CAAC,EAAE,MAAM,CAAA;KACvB,CAAA;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,GAAE,sBAA2B,GAAG,uBAAuB,CAgBpG;AA+CD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,sBAA2B,EAClC,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,kBAAkB,CAAC,CAG7B"}
@@ -109,4 +109,73 @@ export async function registerEpisodeNode(mwUrl, input, options = {}) {
109
109
  error: `POST ${base}/api/nodes: HTTP ${response.status}${detail ? ` — ${detail}` : ""}`,
110
110
  };
111
111
  }
112
+ export function projectChronicleRootNode(input = {}) {
113
+ const record = {
114
+ id: CHRONICLE_PARENT_NODE_ID,
115
+ type: "knowledge",
116
+ name: input.name ?? "Miadi Chronicle",
117
+ description: input.description ?? "Canonical Miadi Chronicle root — the living lineage of episodes.",
118
+ direction: "north",
119
+ metadata: {
120
+ contract: "miadi.artifact-ref.v1",
121
+ kind: "chronicle_root",
122
+ root: "MIADI_CHRONICLE_ROOT",
123
+ relative_path: ".",
124
+ },
125
+ };
126
+ if (input.episodeCount !== undefined)
127
+ record.metadata.episode_count = input.episodeCount;
128
+ return record;
129
+ }
130
+ /** Shared preflight-then-POST used by root registration; fail-open like episodes. */
131
+ async function registerArtifactRefNode(mwUrl, node_id, record, fetchImpl) {
132
+ const base = mwUrl.replace(/\/+$/, "");
133
+ let existing;
134
+ try {
135
+ existing = await fetchImpl(`${base}/api/nodes/${encodeURIComponent(node_id)}`);
136
+ }
137
+ catch (error) {
138
+ return { state: "pending", node_id, error: `medicine-wheel unreachable at ${base}: ${describeFailure(error)}` };
139
+ }
140
+ if (existing.ok)
141
+ return { state: "already-registered", node_id };
142
+ if (existing.status !== 404) {
143
+ const detail = await readErrorBody(existing);
144
+ return {
145
+ state: "pending",
146
+ node_id,
147
+ error: `GET ${base}/api/nodes/${node_id}: HTTP ${existing.status}${detail ? ` — ${detail}` : ""}`,
148
+ };
149
+ }
150
+ let response;
151
+ try {
152
+ response = await fetchImpl(`${base}/api/nodes`, {
153
+ method: "POST",
154
+ headers: { "content-type": "application/json" },
155
+ body: JSON.stringify(record),
156
+ });
157
+ }
158
+ catch (error) {
159
+ return { state: "pending", node_id, error: `medicine-wheel unreachable at ${base}: ${describeFailure(error)}` };
160
+ }
161
+ if (response.ok)
162
+ return { state: "registered", node_id };
163
+ const detail = await readErrorBody(response);
164
+ if (response.status === 409 || /already exists/i.test(detail)) {
165
+ return { state: "already-registered", node_id };
166
+ }
167
+ return {
168
+ state: "pending",
169
+ node_id,
170
+ error: `POST ${base}/api/nodes: HTTP ${response.status}${detail ? ` — ${detail}` : ""}`,
171
+ };
172
+ }
173
+ /**
174
+ * Register the Chronicle root node. Preflights and never overwrites an existing
175
+ * root, so the canonical node in the wheel is safe. Fail-open at its boundary.
176
+ */
177
+ export async function registerChronicleRootNode(mwUrl, input = {}, options = {}) {
178
+ const record = projectChronicleRootNode(input);
179
+ return registerArtifactRefNode(mwUrl, record.id, record, options.fetchImpl ?? fetch);
180
+ }
112
181
  //# sourceMappingURL=episode-node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"episode-node.js","sourceRoot":"","sources":["../src/episode-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"episode-node.js","sourceRoot":"","sources":["../src/episode-node.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,5 +10,6 @@ export * from "./relate.js";
10
10
  export * from "./status.js";
11
11
  export * from "./register.js";
12
12
  export * from "./episode-node.js";
13
+ export * from "./catalog.js";
13
14
  export { runCli, type RunCliOptions, type CliStreams } from "./cli.js";
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -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,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,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"}
package/dist/index.js CHANGED
@@ -10,5 +10,6 @@ export * from "./relate.js";
10
10
  export * from "./status.js";
11
11
  export * from "./register.js";
12
12
  export * from "./episode-node.js";
13
+ export * from "./catalog.js";
13
14
  export { runCli } from "./cli.js";
14
15
  //# 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,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,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,cAAc,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAuC,MAAM,UAAU,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miadi/inquiry-weave",
3
- "version": "0.3.0",
3
+ "version": "0.4.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"
@@ -25,7 +25,7 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "yaml": "^2.5.0",
28
- "@miadi/episodic-memory-schema": "0.2.0"
28
+ "@miadi/episodic-memory-schema": "0.4.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "^5.4.0"