@miadi/inquiry-weave 0.17.1 → 0.17.3
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/mint.d.ts +53 -3
- package/dist/mint.d.ts.map +1 -1
- package/dist/mint.js +80 -12
- package/dist/mint.js.map +1 -1
- package/dist/tracing.d.ts +7 -0
- package/dist/tracing.d.ts.map +1 -1
- package/dist/tracing.js +16 -2
- 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/mint.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ import { type IntegrationResult, type LandPathsResult } from "./git-landing.js";
|
|
|
24
24
|
import { type PublicReview, type ReviewProjection } from "./review.js";
|
|
25
25
|
import { type EpisodeReviewEntry } from "@miadi/episodic-memory-schema";
|
|
26
26
|
import { type EpisodeFoundationEntry, type FoundationSource, type ObservedEpisodeFoundation } from "@miadi/episodic-memory-schema";
|
|
27
|
-
import { type FoundationLookup, type FoundationPacket, type FoundationProjection } from "./foundation.js";
|
|
27
|
+
import { type FoundationEdgeRemoval, type FoundationLookup, type FoundationPacket, type FoundationProjection } from "./foundation.js";
|
|
28
28
|
import { type NotebookProjection } from "./notebook.js";
|
|
29
29
|
import { type PrototypeProjection } from "./prototype.js";
|
|
30
30
|
import { type TracingProjection } from "./tracing.js";
|
|
@@ -330,6 +330,11 @@ export interface AttachFoundationInput {
|
|
|
330
330
|
source?: FoundationSource;
|
|
331
331
|
/** Completes "Episode <relation> Foundation" (default: grounded-by). */
|
|
332
332
|
relation?: string;
|
|
333
|
+
/**
|
|
334
|
+
* A person is setting the relation: it replaces the one the manifest and
|
|
335
|
+
* the wheel edge hold, instead of yielding to them. Needs `relation`.
|
|
336
|
+
*/
|
|
337
|
+
replaceRelation?: boolean;
|
|
333
338
|
land?: boolean;
|
|
334
339
|
dryRun?: boolean;
|
|
335
340
|
}
|
|
@@ -339,9 +344,11 @@ export interface AttachFoundationResult {
|
|
|
339
344
|
identity: EpisodeIdentity;
|
|
340
345
|
packet: FoundationPacket;
|
|
341
346
|
entry: EpisodeFoundationEntry;
|
|
347
|
+
/** `replaced` names the keys a person's value replaced (`relation`). */
|
|
342
348
|
manifest: {
|
|
343
349
|
created: boolean;
|
|
344
350
|
filled: string[];
|
|
351
|
+
replaced: string[];
|
|
345
352
|
wrote: boolean;
|
|
346
353
|
};
|
|
347
354
|
wheel: FoundationProjection;
|
|
@@ -356,14 +363,53 @@ export interface AttachFoundationResult {
|
|
|
356
363
|
* Hold a foundation packet in an episode: record it under `foundations:` in
|
|
357
364
|
* `episode.yaml` with the version read, put the packet node and the
|
|
358
365
|
* episode→foundation edge on the wheel, then land. Repeating the call adds
|
|
359
|
-
* nothing. An episode's own packet must already sit under `foundations/<topic
|
|
366
|
+
* nothing. An episode's own packet must already sit under `foundations/<topic>/`;
|
|
367
|
+
* holding it takes it off `foundations_not_held:`. With `replaceRelation`,
|
|
368
|
+
* the call also changes the relation of a packet already held.
|
|
360
369
|
*/
|
|
361
370
|
export declare function attachEpisodeFoundation(context: EpisodeDoorContext, ref: string, input: AttachFoundationInput): Promise<AttachFoundationResult>;
|
|
362
|
-
/**
|
|
371
|
+
/**
|
|
372
|
+
* The foundations an episode holds: what its manifest records, then every
|
|
373
|
+
* packet it wrote under `foundations/<topic>/` that `foundations_not_held:`
|
|
374
|
+
* does not name. `topics` is every packet the episode wrote, held or not.
|
|
375
|
+
*/
|
|
363
376
|
export declare function listEpisodeFoundations(context: EpisodeDoorContext, ref: string): Promise<{
|
|
364
377
|
identity: EpisodeIdentity;
|
|
365
378
|
foundations: ObservedEpisodeFoundation[];
|
|
379
|
+
topics: FoundationPacket[];
|
|
366
380
|
}>;
|
|
381
|
+
export interface RemoveFoundationInput {
|
|
382
|
+
/** A packet slug or `miadi-foundation:<slug>`; for source `episode`, the topic under `foundations/`. */
|
|
383
|
+
foundation: string;
|
|
384
|
+
source?: FoundationSource;
|
|
385
|
+
land?: boolean;
|
|
386
|
+
dryRun?: boolean;
|
|
387
|
+
}
|
|
388
|
+
export interface RemoveFoundationResult {
|
|
389
|
+
ok: boolean;
|
|
390
|
+
dryRun: boolean;
|
|
391
|
+
identity: EpisodeIdentity;
|
|
392
|
+
slug: string;
|
|
393
|
+
source: FoundationSource;
|
|
394
|
+
manifest: {
|
|
395
|
+
removed: EpisodeFoundationEntry[];
|
|
396
|
+
notHeld: boolean;
|
|
397
|
+
wrote: boolean;
|
|
398
|
+
};
|
|
399
|
+
wheel: FoundationEdgeRemoval;
|
|
400
|
+
landing?: LandEpisodeResult;
|
|
401
|
+
closing: ClosingReport["closing"];
|
|
402
|
+
drift: string[];
|
|
403
|
+
owedActions: string[];
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Stop holding a foundation packet: take it out of `episode.yaml` and its
|
|
407
|
+
* episode→foundation edge off the wheel, then land. An episode's own folder
|
|
408
|
+
* and a `references:` citation stay; the packet goes on
|
|
409
|
+
* `foundations_not_held:`, and holding it again takes it off. Removing what
|
|
410
|
+
* the episode does not hold changes nothing.
|
|
411
|
+
*/
|
|
412
|
+
export declare function removeEpisodeFoundation(context: EpisodeDoorContext, ref: string, input: RemoveFoundationInput): Promise<RemoveFoundationResult>;
|
|
367
413
|
export interface AttachNotebookInput {
|
|
368
414
|
/** The Gemini Notebook URL, `miadi-notebook:<uuid>`, `notebook:<uuid>` or a bare uuid. */
|
|
369
415
|
notebook: string;
|
|
@@ -551,6 +597,10 @@ export interface AttachTracingResult {
|
|
|
551
597
|
manifest: {
|
|
552
598
|
created: boolean;
|
|
553
599
|
filled: string[];
|
|
600
|
+
advanced?: {
|
|
601
|
+
from: number;
|
|
602
|
+
to: number;
|
|
603
|
+
};
|
|
554
604
|
wrote: boolean;
|
|
555
605
|
};
|
|
556
606
|
wheel: TracingProjection;
|