@miadi/inquiry-weave 0.17.2 → 0.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/foundation.d.ts +63 -2
- package/dist/foundation.d.ts.map +1 -1
- package/dist/foundation.js +186 -20
- package/dist/foundation.js.map +1 -1
- package/dist/mcp-server.js +3 -2
- package/dist/mcp-server.js.map +1 -1
- package/dist/mint.d.ts +49 -3
- package/dist/mint.d.ts.map +1 -1
- package/dist/mint.js +79 -11
- package/dist/mint.js.map +1 -1
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +2 -1
- package/dist/tracing.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -326,6 +326,14 @@ and lands. `source: "episode"` holds the episode's own packet, which must alread
|
|
|
326
326
|
packet lookup is the caller's (`foundationLookup` on the door context); without one the door reads
|
|
327
327
|
`MIADI_FOUNDATIONS_ROOT`, else `GET <MIADI_WEB_URL>/api/foundations/<slug>`.
|
|
328
328
|
|
|
329
|
+
`listEpisodeFoundations` also answers every packet the episode wrote under `foundations/<topic>/`
|
|
330
|
+
(a folder with a README.md) that its manifest does not record (`declared: "folder"`, relation
|
|
331
|
+
`grounded-by`): an episode holds its own packets without anyone holding them by hand.
|
|
332
|
+
`attachEpisodeFoundation` with `replaceRelation` (HTTP `PATCH`) sets what the episode uses a packet
|
|
333
|
+
for, in the manifest and on the edge. `removeEpisodeFoundation` (HTTP `DELETE`) takes the entry and
|
|
334
|
+
the edge away. The packet's folder and its `references:` citations stay; `foundations_not_held:`
|
|
335
|
+
names the packet (`<topic>` or `miadi-foundation:<slug>`) until it is held again.
|
|
336
|
+
|
|
329
337
|
## The address layer alone
|
|
330
338
|
|
|
331
339
|
`@miadi/inquiry-weave/references` exports the parsers, the text scanner and the markdown
|
package/dist/foundation.d.ts
CHANGED
|
@@ -15,7 +15,14 @@
|
|
|
15
15
|
* Rules kept from the review seam: the manifest entry is written once and
|
|
16
16
|
* never overwritten (a later call fills missing keys only), one ordered node
|
|
17
17
|
* pair is one edge so a hand-made edge keeps its relation, and the wheel
|
|
18
|
-
* projection never throws — a wheel that is down answers `pending`.
|
|
18
|
+
* projection never throws — a wheel that is down answers `pending`. A person
|
|
19
|
+
* changing the relation is the one exception to "never overwritten": the
|
|
20
|
+
* relation they set replaces the recorded one and the edge's.
|
|
21
|
+
*
|
|
22
|
+
* Removing a packet takes its entry out of the manifest and its edge off the
|
|
23
|
+
* wheel. What still points at it stays: an episode's own folder, a
|
|
24
|
+
* `miadi-foundation:` citation in `references:`. The packet is listed under
|
|
25
|
+
* `foundations_not_held:` so neither holds it again.
|
|
19
26
|
*/
|
|
20
27
|
import { DEFAULT_FOUNDATION_RELATION, type EpisodeFoundationEntry, type FoundationSource } from "@miadi/episodic-memory-schema";
|
|
21
28
|
export type FoundationErrorCode = "invalid_foundation" | "foundation_not_found" | "foundation_manifest_conflict";
|
|
@@ -75,10 +82,19 @@ export declare function foundationLookupFromFront(base: string, options?: {
|
|
|
75
82
|
export declare function requireFoundationSlug(raw: unknown): string;
|
|
76
83
|
/** An episode's own packet: `foundations/<topic>/` with a README, read for its title. */
|
|
77
84
|
export declare function readEpisodePacket(episodeDir: string, slug: string): Promise<FoundationPacket>;
|
|
85
|
+
/**
|
|
86
|
+
* Every packet the episode wrote: the directories under `foundations/` with a
|
|
87
|
+
* packet name and a README.md, titled by it, in name order. A folder without a
|
|
88
|
+
* README holds files, not a packet. Nothing behind a symlink is read: the
|
|
89
|
+
* listing is public and must not name what lies outside the vessel.
|
|
90
|
+
*/
|
|
91
|
+
export declare function listEpisodePacketTopics(episodeDir: string): Promise<FoundationPacket[]>;
|
|
78
92
|
export interface UpsertEpisodeFoundationResult {
|
|
79
93
|
entry: EpisodeFoundationEntry;
|
|
80
94
|
created: boolean;
|
|
81
95
|
filled: string[];
|
|
96
|
+
/** Keys a person's value replaced (`relation`). */
|
|
97
|
+
replaced: string[];
|
|
82
98
|
wrote: boolean;
|
|
83
99
|
dryRun: boolean;
|
|
84
100
|
}
|
|
@@ -90,8 +106,33 @@ export interface UpsertEpisodeFoundationResult {
|
|
|
90
106
|
export declare function upsertEpisodeFoundation(input: {
|
|
91
107
|
episodeYamlPath: string;
|
|
92
108
|
entry: EpisodeFoundationEntry;
|
|
109
|
+
/** A person set the relation: it replaces the recorded one. */
|
|
110
|
+
replaceRelation?: boolean;
|
|
93
111
|
dryRun?: boolean;
|
|
94
112
|
}): Promise<UpsertEpisodeFoundationResult>;
|
|
113
|
+
export interface RemoveEpisodeFoundationEntryResult {
|
|
114
|
+
/** The entries taken out of `foundations:`. */
|
|
115
|
+
removed: EpisodeFoundationEntry[];
|
|
116
|
+
/** True when the packet was put on `foundations_not_held:`. */
|
|
117
|
+
notHeld: boolean;
|
|
118
|
+
wrote: boolean;
|
|
119
|
+
dryRun: boolean;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Take a packet out of `episode.yaml`: its `foundations:` entry. When
|
|
123
|
+
* something else would still hold it (an episode's own folder,
|
|
124
|
+
* `keepFolderOut`; a `miadi-foundation:<slug>` citation in `references:`),
|
|
125
|
+
* the packet goes on `foundations_not_held:` and that pointer stays as
|
|
126
|
+
* written. An emptied `foundations:` key is dropped. Comments and every other
|
|
127
|
+
* field survive. Removing what is not held changes nothing.
|
|
128
|
+
*/
|
|
129
|
+
export declare function removeEpisodeFoundationEntry(input: {
|
|
130
|
+
episodeYamlPath: string;
|
|
131
|
+
slug: string;
|
|
132
|
+
source: FoundationSource;
|
|
133
|
+
keepFolderOut?: boolean;
|
|
134
|
+
dryRun?: boolean;
|
|
135
|
+
}): Promise<RemoveEpisodeFoundationEntryResult>;
|
|
95
136
|
export type FoundationProjectionState = "created" | "refreshed" | "already-present" | "skipped" | "pending";
|
|
96
137
|
export interface FoundationProjection {
|
|
97
138
|
node: {
|
|
@@ -126,9 +167,29 @@ export declare function projectEpisodeFoundation(mwUrl: string, input: {
|
|
|
126
167
|
packet: FoundationPacket;
|
|
127
168
|
source: FoundationSource;
|
|
128
169
|
relation: string;
|
|
129
|
-
},
|
|
170
|
+
},
|
|
171
|
+
/** `relationWins`: a person set the relation, so an edge holding another one is changed to it. */
|
|
172
|
+
options?: {
|
|
130
173
|
fetchImpl?: typeof fetch;
|
|
131
174
|
dryRun?: boolean;
|
|
175
|
+
relationWins?: boolean;
|
|
132
176
|
}): Promise<FoundationProjection>;
|
|
177
|
+
export interface FoundationEdgeRemoval {
|
|
178
|
+
id: string;
|
|
179
|
+
/** `deleted`; `absent` when the wheel held no such edge; `pending` when the wheel did not answer. */
|
|
180
|
+
state: "deleted" | "absent" | "skipped" | "pending";
|
|
181
|
+
error?: string;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Take the episode→foundation edge off the wheel. The packet node stays: it is
|
|
185
|
+
* the packet's record, and a distributed packet's node is shared. Never throws.
|
|
186
|
+
*/
|
|
187
|
+
export declare function removeEpisodeFoundationEdge(mwUrl: string, input: {
|
|
188
|
+
episodeNodeId: string;
|
|
189
|
+
nodeId: string;
|
|
190
|
+
}, options?: {
|
|
191
|
+
fetchImpl?: typeof fetch;
|
|
192
|
+
dryRun?: boolean;
|
|
193
|
+
}): Promise<FoundationEdgeRemoval>;
|
|
133
194
|
export { DEFAULT_FOUNDATION_RELATION };
|
|
134
195
|
//# sourceMappingURL=foundation.d.ts.map
|
package/dist/foundation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation.d.ts","sourceRoot":"","sources":["../src/foundation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"foundation.d.ts","sourceRoot":"","sources":["../src/foundation.ts"],"names":[],"mappings":"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"}
|
package/dist/foundation.js
CHANGED
|
@@ -15,13 +15,20 @@
|
|
|
15
15
|
* Rules kept from the review seam: the manifest entry is written once and
|
|
16
16
|
* never overwritten (a later call fills missing keys only), one ordered node
|
|
17
17
|
* pair is one edge so a hand-made edge keeps its relation, and the wheel
|
|
18
|
-
* projection never throws — a wheel that is down answers `pending`.
|
|
18
|
+
* projection never throws — a wheel that is down answers `pending`. A person
|
|
19
|
+
* changing the relation is the one exception to "never overwritten": the
|
|
20
|
+
* relation they set replaces the recorded one and the edge's.
|
|
21
|
+
*
|
|
22
|
+
* Removing a packet takes its entry out of the manifest and its edge off the
|
|
23
|
+
* wheel. What still points at it stays: an episode's own folder, a
|
|
24
|
+
* `miadi-foundation:` citation in `references:`. The packet is listed under
|
|
25
|
+
* `foundations_not_held:` so neither holds it again.
|
|
19
26
|
*/
|
|
20
|
-
import { readFile, writeFile, stat } from "node:fs/promises";
|
|
27
|
+
import { lstat, readFile, readdir, writeFile, stat } from "node:fs/promises";
|
|
21
28
|
import { existsSync } from "node:fs";
|
|
22
29
|
import { dirname, join } from "node:path";
|
|
23
30
|
import { Scalar, isMap, isScalar, isSeq, parseDocument } from "yaml";
|
|
24
|
-
import { DEFAULT_FOUNDATION_RELATION, FOUNDATION_ENTRY_KEYS, FOUNDATION_NODE_KIND, episodeFoundationPath, foundationNodeId, isFoundationSlug, toEpisodeFoundationEntry, } from "@miadi/episodic-memory-schema";
|
|
31
|
+
import { DEFAULT_FOUNDATION_RELATION, EPISODE_FOUNDATIONS_DIR, FOUNDATION_ENTRY_KEYS, FOUNDATION_NODE_KIND, FOUNDATIONS_NOT_HELD_KEY, episodeFoundationPath, foundationNodeId, foundationNotHeldMark, foundationSlugOf, isFoundationSlug, toEpisodeFoundationEntry, } from "@miadi/episodic-memory-schema";
|
|
25
32
|
import { missingManifestRemedy } from "./episode.js";
|
|
26
33
|
import { parseFoundationUri, foundationRoute } from "./foundation-dsl.js";
|
|
27
34
|
import { edgesFrom, failure, wheelJson } from "./review.js";
|
|
@@ -172,6 +179,38 @@ export async function readEpisodePacket(episodeDir, slug) {
|
|
|
172
179
|
}
|
|
173
180
|
return { slug, title: title ?? slug };
|
|
174
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Every packet the episode wrote: the directories under `foundations/` with a
|
|
184
|
+
* packet name and a README.md, titled by it, in name order. A folder without a
|
|
185
|
+
* README holds files, not a packet. Nothing behind a symlink is read: the
|
|
186
|
+
* listing is public and must not name what lies outside the vessel.
|
|
187
|
+
*/
|
|
188
|
+
export async function listEpisodePacketTopics(episodeDir) {
|
|
189
|
+
const root = join(episodeDir, EPISODE_FOUNDATIONS_DIR);
|
|
190
|
+
let entries;
|
|
191
|
+
try {
|
|
192
|
+
if (!(await lstat(root)).isDirectory())
|
|
193
|
+
return [];
|
|
194
|
+
entries = await readdir(root, { withFileTypes: true });
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
return [];
|
|
198
|
+
}
|
|
199
|
+
const slugs = entries.filter((entry) => entry.isDirectory() && isFoundationSlug(entry.name)).map((entry) => entry.name).sort();
|
|
200
|
+
const packets = await Promise.all(slugs.map(async (slug) => {
|
|
201
|
+
const readme = join(root, slug, "README.md");
|
|
202
|
+
try {
|
|
203
|
+
// A folder can go between the listing and the read; it is then not listed.
|
|
204
|
+
if (!(await lstat(readme)).isFile())
|
|
205
|
+
return null;
|
|
206
|
+
return { slug, title: readmeTitle(await readFile(readme, "utf8")) ?? slug };
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
}));
|
|
212
|
+
return packets.filter((packet) => packet !== null);
|
|
213
|
+
}
|
|
175
214
|
/**
|
|
176
215
|
* The entry as a YAML map. Every value is a quoted string: an ISO `added` or a
|
|
177
216
|
* version like `0.1` left plain is a timestamp or a number to a YAML 1.1
|
|
@@ -192,27 +231,62 @@ function quoted(doc, value) {
|
|
|
192
231
|
return node;
|
|
193
232
|
}
|
|
194
233
|
const sameEntry = (a, b) => a !== null && a.slug === b.slug && a.source === b.source;
|
|
234
|
+
const itemEntry = (item) => toEpisodeFoundationEntry(isMap(item) ? item.toJSON() : item?.value ?? item);
|
|
235
|
+
const emptyValue = (node) => node === undefined || node === null || (isScalar(node) && (node.value === null || node.value === undefined));
|
|
236
|
+
async function readManifestDocument(episodeYamlPath) {
|
|
237
|
+
if (!existsSync(episodeYamlPath)) {
|
|
238
|
+
throw new FoundationError("foundation_manifest_conflict", missingManifestRemedy(dirname(episodeYamlPath)));
|
|
239
|
+
}
|
|
240
|
+
const doc = parseDocument(await readFile(episodeYamlPath, "utf8"));
|
|
241
|
+
if (doc.errors.length > 0) {
|
|
242
|
+
throw new FoundationError("foundation_manifest_conflict", `unreadable episode.yaml ${episodeYamlPath}: ${doc.errors[0].message}`);
|
|
243
|
+
}
|
|
244
|
+
if (!isMap(doc.contents)) {
|
|
245
|
+
throw new FoundationError("foundation_manifest_conflict", `episode.yaml ${episodeYamlPath} is not a mapping`);
|
|
246
|
+
}
|
|
247
|
+
return doc;
|
|
248
|
+
}
|
|
249
|
+
const namesMark = (item, mark) => isScalar(item) && typeof item.value === "string" && item.value.trim() === mark;
|
|
250
|
+
/** Take a packet off `foundations_not_held:`. An emptied list is dropped. True when the list changed. */
|
|
251
|
+
function takeOffNotHeld(doc, mark) {
|
|
252
|
+
const list = doc.get(FOUNDATIONS_NOT_HELD_KEY, true);
|
|
253
|
+
if (!isSeq(list) || !list.items.some((item) => namesMark(item, mark)))
|
|
254
|
+
return false;
|
|
255
|
+
list.items = list.items.filter((item) => !namesMark(item, mark));
|
|
256
|
+
if (list.items.length === 0)
|
|
257
|
+
doc.delete(FOUNDATIONS_NOT_HELD_KEY);
|
|
258
|
+
return true;
|
|
259
|
+
}
|
|
260
|
+
/** Put a packet on `foundations_not_held:`. True when the list changed. */
|
|
261
|
+
function putOnNotHeld(doc, mark, episodeYamlPath) {
|
|
262
|
+
const list = doc.get(FOUNDATIONS_NOT_HELD_KEY, true);
|
|
263
|
+
if (isSeq(list)) {
|
|
264
|
+
if (list.items.some((item) => namesMark(item, mark)))
|
|
265
|
+
return false;
|
|
266
|
+
list.items.push(quoted(doc, mark));
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
if (!emptyValue(list)) {
|
|
270
|
+
throw new FoundationError("foundation_manifest_conflict", `${FOUNDATIONS_NOT_HELD_KEY} in ${episodeYamlPath} is not a list — refusing to overwrite`);
|
|
271
|
+
}
|
|
272
|
+
const seq = doc.createNode([]);
|
|
273
|
+
seq.items.push(quoted(doc, mark));
|
|
274
|
+
doc.set(FOUNDATIONS_NOT_HELD_KEY, seq);
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
195
277
|
/**
|
|
196
278
|
* Add a packet to `episode.yaml`'s `foundations:` list, or fill the keys an
|
|
197
279
|
* existing entry lacks. Comments, key order and every other field survive.
|
|
198
280
|
* Refuses a `foundations` key that is not a list.
|
|
199
281
|
*/
|
|
200
282
|
export async function upsertEpisodeFoundation(input) {
|
|
201
|
-
|
|
202
|
-
throw new FoundationError("foundation_manifest_conflict", missingManifestRemedy(dirname(input.episodeYamlPath)));
|
|
203
|
-
}
|
|
204
|
-
const doc = parseDocument(await readFile(input.episodeYamlPath, "utf8"));
|
|
205
|
-
if (doc.errors.length > 0) {
|
|
206
|
-
throw new FoundationError("foundation_manifest_conflict", `unreadable episode.yaml ${input.episodeYamlPath}: ${doc.errors[0].message}`);
|
|
207
|
-
}
|
|
208
|
-
if (!isMap(doc.contents)) {
|
|
209
|
-
throw new FoundationError("foundation_manifest_conflict", `episode.yaml ${input.episodeYamlPath} is not a mapping`);
|
|
210
|
-
}
|
|
283
|
+
const doc = await readManifestDocument(input.episodeYamlPath);
|
|
211
284
|
const list = doc.get("foundations", true);
|
|
212
285
|
let created = false;
|
|
213
286
|
const filled = [];
|
|
287
|
+
const replaced = [];
|
|
214
288
|
let entry;
|
|
215
|
-
if (
|
|
289
|
+
if (emptyValue(list)) {
|
|
216
290
|
created = true;
|
|
217
291
|
entry = input.entry;
|
|
218
292
|
const seq = doc.createNode([]);
|
|
@@ -226,7 +300,7 @@ export async function upsertEpisodeFoundation(input) {
|
|
|
226
300
|
throw new FoundationError("foundation_manifest_conflict", `foundations in ${input.episodeYamlPath} is not a list — refusing to overwrite`);
|
|
227
301
|
}
|
|
228
302
|
else {
|
|
229
|
-
const index = list.items.findIndex((item) => sameEntry(
|
|
303
|
+
const index = list.items.findIndex((item) => sameEntry(itemEntry(item), input.entry));
|
|
230
304
|
if (index < 0) {
|
|
231
305
|
created = true;
|
|
232
306
|
entry = input.entry;
|
|
@@ -234,7 +308,20 @@ export async function upsertEpisodeFoundation(input) {
|
|
|
234
308
|
}
|
|
235
309
|
else {
|
|
236
310
|
const item = list.items[index];
|
|
237
|
-
|
|
311
|
+
const relation = input.replaceRelation ? input.entry.relation : undefined;
|
|
312
|
+
if (!isMap(item) && relation) {
|
|
313
|
+
// A person's relation needs a map: `- lattice` becomes a full entry.
|
|
314
|
+
// Its `added` is unknown, so none is written.
|
|
315
|
+
const kept = itemEntry(item) ?? { slug: input.entry.slug, source: input.entry.source };
|
|
316
|
+
const { added: _added, ...read } = input.entry;
|
|
317
|
+
entry = { ...read, ...kept, relation };
|
|
318
|
+
for (const key of FOUNDATION_ENTRY_KEYS)
|
|
319
|
+
if (key !== "relation" && entry[key] !== undefined && kept[key] === undefined)
|
|
320
|
+
filled.push(key);
|
|
321
|
+
list.items[index] = entryNode(doc, entry);
|
|
322
|
+
replaced.push("relation");
|
|
323
|
+
}
|
|
324
|
+
else if (!isMap(item)) {
|
|
238
325
|
// `- lattice` written by hand already holds the packet. It is left
|
|
239
326
|
// as written: held, nothing to fill (#713 review, F7).
|
|
240
327
|
entry = toEpisodeFoundationEntry(isScalar(item) ? item.value : item) ?? input.entry;
|
|
@@ -249,15 +336,55 @@ export async function upsertEpisodeFoundation(input) {
|
|
|
249
336
|
item.set(key, quoted(doc, value));
|
|
250
337
|
filled.push(key);
|
|
251
338
|
}
|
|
339
|
+
else if (key === "relation" && relation && String(present) !== relation) {
|
|
340
|
+
item.set(key, quoted(doc, relation));
|
|
341
|
+
replaced.push(key);
|
|
342
|
+
}
|
|
252
343
|
}
|
|
253
344
|
entry = toEpisodeFoundationEntry(item.toJSON()) ?? input.entry;
|
|
254
345
|
}
|
|
255
346
|
}
|
|
256
347
|
}
|
|
257
|
-
|
|
348
|
+
// Holding a packet again takes it off foundations_not_held.
|
|
349
|
+
const unmarked = takeOffNotHeld(doc, foundationNotHeldMark(input.entry.slug, input.entry.source));
|
|
350
|
+
const wrote = (created || filled.length > 0 || replaced.length > 0 || unmarked) && !input.dryRun;
|
|
258
351
|
if (wrote)
|
|
259
352
|
await writeFile(input.episodeYamlPath, doc.toString(), "utf8");
|
|
260
|
-
return { entry, created, filled, wrote, dryRun: input.dryRun === true };
|
|
353
|
+
return { entry, created, filled, replaced, wrote, dryRun: input.dryRun === true };
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Take a packet out of `episode.yaml`: its `foundations:` entry. When
|
|
357
|
+
* something else would still hold it (an episode's own folder,
|
|
358
|
+
* `keepFolderOut`; a `miadi-foundation:<slug>` citation in `references:`),
|
|
359
|
+
* the packet goes on `foundations_not_held:` and that pointer stays as
|
|
360
|
+
* written. An emptied `foundations:` key is dropped. Comments and every other
|
|
361
|
+
* field survive. Removing what is not held changes nothing.
|
|
362
|
+
*/
|
|
363
|
+
export async function removeEpisodeFoundationEntry(input) {
|
|
364
|
+
const doc = await readManifestDocument(input.episodeYamlPath);
|
|
365
|
+
const target = { slug: input.slug, source: input.source };
|
|
366
|
+
const removed = [];
|
|
367
|
+
const list = doc.get("foundations", true);
|
|
368
|
+
if (isSeq(list)) {
|
|
369
|
+
list.items = list.items.filter((item) => {
|
|
370
|
+
const entry = itemEntry(item);
|
|
371
|
+
if (!sameEntry(entry, target))
|
|
372
|
+
return true;
|
|
373
|
+
removed.push(entry);
|
|
374
|
+
return false;
|
|
375
|
+
});
|
|
376
|
+
if (list.items.length === 0)
|
|
377
|
+
doc.delete("foundations");
|
|
378
|
+
}
|
|
379
|
+
const cited = doc.get("references", true);
|
|
380
|
+
const stillPointed = input.source === "episode"
|
|
381
|
+
? input.keepFolderOut === true
|
|
382
|
+
: isSeq(cited) && cited.items.some((item) => foundationSlugOf(isScalar(item) ? item.value : item) === input.slug);
|
|
383
|
+
const notHeld = stillPointed && putOnNotHeld(doc, foundationNotHeldMark(input.slug, input.source), input.episodeYamlPath);
|
|
384
|
+
const wrote = (removed.length > 0 || notHeld) && !input.dryRun;
|
|
385
|
+
if (wrote)
|
|
386
|
+
await writeFile(input.episodeYamlPath, doc.toString(), "utf8");
|
|
387
|
+
return { removed, notHeld, wrote, dryRun: input.dryRun === true };
|
|
261
388
|
}
|
|
262
389
|
/**
|
|
263
390
|
* The relationship type of an episode→foundation edge already on the wheel.
|
|
@@ -276,7 +403,9 @@ export async function existingFoundationRelation(mwUrl, episodeNodeId, nodeId, o
|
|
|
276
403
|
* When the node exists, only `metadata.version` is refreshed, so a
|
|
277
404
|
* hand-written name and description stay.
|
|
278
405
|
*/
|
|
279
|
-
export async function projectEpisodeFoundation(mwUrl, input,
|
|
406
|
+
export async function projectEpisodeFoundation(mwUrl, input,
|
|
407
|
+
/** `relationWins`: a person set the relation, so an edge holding another one is changed to it. */
|
|
408
|
+
options = {}) {
|
|
280
409
|
const fetchImpl = options.fetchImpl ?? fetch;
|
|
281
410
|
const base = mwUrl.replace(/\/+$/, "");
|
|
282
411
|
const nodeId = foundationNodeId(input.packet.slug, input.source === "episode" ? input.episodeFolder : undefined);
|
|
@@ -353,7 +482,24 @@ export async function projectEpisodeFoundation(mwUrl, input, options = {}) {
|
|
|
353
482
|
}
|
|
354
483
|
const existing = edgesFrom(listing.body).find((edge) => String(edge.from_id) === input.episodeNodeId && String(edge.to_id) === nodeId);
|
|
355
484
|
if (existing) {
|
|
356
|
-
|
|
485
|
+
const current = String(existing.relationship_type ?? input.relation);
|
|
486
|
+
if (!options.relationWins || current === input.relation) {
|
|
487
|
+
projection.edge = { id: edgeId, state: "already-present", relationship_type: current };
|
|
488
|
+
}
|
|
489
|
+
else if (options.dryRun) {
|
|
490
|
+
projection.edge.state = "skipped";
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
const patched = await wheelJson(fetchImpl, `${edgesUrl}?${pairQuery(input.episodeNodeId, nodeId)}`, {
|
|
494
|
+
method: "PATCH",
|
|
495
|
+
headers: { "content-type": "application/json" },
|
|
496
|
+
body: JSON.stringify({ relationship_type: input.relation }),
|
|
497
|
+
});
|
|
498
|
+
if (patched.ok)
|
|
499
|
+
projection.edge.state = "refreshed";
|
|
500
|
+
else
|
|
501
|
+
projection.edge = { id: edgeId, state: "pending", relationship_type: current, error: failure("PATCH", edgesUrl, patched) };
|
|
502
|
+
}
|
|
357
503
|
return projection;
|
|
358
504
|
}
|
|
359
505
|
if (options.dryRun) {
|
|
@@ -376,5 +522,25 @@ export async function projectEpisodeFoundation(mwUrl, input, options = {}) {
|
|
|
376
522
|
projection.edge.error = failure("POST", edgesUrl, posted);
|
|
377
523
|
return projection;
|
|
378
524
|
}
|
|
525
|
+
/** The wheel names one edge by its ordered pair. */
|
|
526
|
+
const pairQuery = (from, to) => new URLSearchParams({ from, to }).toString();
|
|
527
|
+
/**
|
|
528
|
+
* Take the episode→foundation edge off the wheel. The packet node stays: it is
|
|
529
|
+
* the packet's record, and a distributed packet's node is shared. Never throws.
|
|
530
|
+
*/
|
|
531
|
+
export async function removeEpisodeFoundationEdge(mwUrl, input, options = {}) {
|
|
532
|
+
const id = `${input.episodeNodeId}:${input.nodeId}`;
|
|
533
|
+
const edgesUrl = `${mwUrl.replace(/\/+$/, "")}/api/edges`;
|
|
534
|
+
if (options.dryRun)
|
|
535
|
+
return { id, state: "skipped" };
|
|
536
|
+
const deleted = await wheelJson(options.fetchImpl ?? fetch, `${edgesUrl}?${pairQuery(input.episodeNodeId, input.nodeId)}`, { method: "DELETE" });
|
|
537
|
+
if (deleted.ok)
|
|
538
|
+
return { id, state: "deleted" };
|
|
539
|
+
// The wheel answers a missing edge with a JSON error; any other 404 is a wheel without the door.
|
|
540
|
+
const said = deleted.body?.error;
|
|
541
|
+
if (deleted.status === 404 && typeof said === "string")
|
|
542
|
+
return { id, state: "absent" };
|
|
543
|
+
return { id, state: "pending", error: failure("DELETE", edgesUrl, deleted) };
|
|
544
|
+
}
|
|
379
545
|
export { DEFAULT_FOUNDATION_RELATION };
|
|
380
546
|
//# sourceMappingURL=foundation.js.map
|
package/dist/foundation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation.js","sourceRoot":"","sources":["../src/foundation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"foundation.js","sourceRoot":"","sources":["../src/foundation.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
* Zero new dependencies: raw newline-delimited JSON-RPC over stdio.
|
|
40
40
|
*/
|
|
41
41
|
import { readdirSync, readFileSync, existsSync } from "node:fs";
|
|
42
|
+
import { TRACING_DOMAINS } from "@miadi/episodic-memory-schema";
|
|
42
43
|
import { join } from "node:path";
|
|
43
44
|
import { createInterface } from "node:readline";
|
|
44
45
|
import { mwUrlFromEnv } from "./env.js";
|
|
@@ -396,13 +397,13 @@ const TOOLS = [
|
|
|
396
397
|
},
|
|
397
398
|
{
|
|
398
399
|
name: "chronicle_episode_tracing",
|
|
399
|
-
description: "Hold a tracing resource (trace, prompt, session, dataset, score-config) in an episode: record it under tracing: in episode.yaml by domain (ceremony,
|
|
400
|
+
description: "Hold a tracing resource (trace, prompt, session, dataset, score-config) in an episode: record it under tracing: in episode.yaml by domain (ceremony, creative, eng) and resource, never by provider; put the tracing node (knowledge, kind tracing_resource with the provider in its metadata) and the episode→resource edge on the wheel, with the provider's page in the node only (never in episode.yaml); and land. Give a miadi-tracing:<domain>/<resource>/<id>[@version] reference, or domain, resource and id. Repeating the call adds nothing.",
|
|
400
401
|
inputSchema: {
|
|
401
402
|
type: "object",
|
|
402
403
|
properties: {
|
|
403
404
|
episode: { type: "string", description: "Episode number, epNNN, or folder name." },
|
|
404
405
|
reference: { type: "string", description: "miadi-tracing:<domain>/<resource>/<id>[@<version>]" },
|
|
405
|
-
domain: { type: "string", enum: [
|
|
406
|
+
domain: { type: "string", enum: [...TRACING_DOMAINS] },
|
|
406
407
|
resource: { type: "string", enum: ["trace", "prompt", "session", "dataset", "score-config"] },
|
|
407
408
|
id: { type: "string", description: "The provider's id; a prompt's id is its name." },
|
|
408
409
|
name: { type: "string", description: "The resource's name at the provider, so the room can show it without a key." },
|