@miadi/inquiry-weave 0.16.6 → 0.17.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.
Files changed (47) hide show
  1. package/dist/artefact-dsl.d.ts +58 -0
  2. package/dist/artefact-dsl.d.ts.map +1 -0
  3. package/dist/artefact-dsl.js +129 -0
  4. package/dist/artefact-dsl.js.map +1 -0
  5. package/dist/index.d.ts +5 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp-server.js +162 -1
  10. package/dist/mcp-server.js.map +1 -1
  11. package/dist/mint.d.ts +199 -1
  12. package/dist/mint.d.ts.map +1 -1
  13. package/dist/mint.js +451 -0
  14. package/dist/mint.js.map +1 -1
  15. package/dist/notebook.d.ts +88 -0
  16. package/dist/notebook.d.ts.map +1 -0
  17. package/dist/notebook.js +258 -0
  18. package/dist/notebook.js.map +1 -0
  19. package/dist/prototype.d.ts +90 -0
  20. package/dist/prototype.d.ts.map +1 -0
  21. package/dist/prototype.js +286 -0
  22. package/dist/prototype.js.map +1 -0
  23. package/dist/references.d.ts +2 -0
  24. package/dist/references.d.ts.map +1 -1
  25. package/dist/references.js +2 -0
  26. package/dist/references.js.map +1 -1
  27. package/dist/rise-dsl.d.ts +44 -0
  28. package/dist/rise-dsl.d.ts.map +1 -0
  29. package/dist/rise-dsl.js +99 -0
  30. package/dist/rise-dsl.js.map +1 -0
  31. package/dist/rise-workspaces.d.ts +34 -0
  32. package/dist/rise-workspaces.d.ts.map +1 -0
  33. package/dist/rise-workspaces.js +73 -0
  34. package/dist/rise-workspaces.js.map +1 -0
  35. package/dist/rispec.d.ts +72 -0
  36. package/dist/rispec.d.ts.map +1 -0
  37. package/dist/rispec.js +227 -0
  38. package/dist/rispec.js.map +1 -0
  39. package/dist/text-references.d.ts +1 -1
  40. package/dist/text-references.d.ts.map +1 -1
  41. package/dist/text-references.js +18 -2
  42. package/dist/text-references.js.map +1 -1
  43. package/dist/tracing.d.ts +95 -0
  44. package/dist/tracing.d.ts.map +1 -0
  45. package/dist/tracing.js +302 -0
  46. package/dist/tracing.js.map +1 -0
  47. package/package.json +2 -2
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Where a `rise://` repository is checked out on this host — server-only
3
+ * (reads the filesystem), exported from the package root and never from
4
+ * `./references` (jgwill/Miadi#769, A4; review F1).
5
+ *
6
+ * Order: `MIADI_RISE_WORKSPACES` (JSON, `{ "owner/repo": "/path" }`), then
7
+ * `config/stc-workspaces.json` (its `workspaces[].repository` → `localPath`),
8
+ * then the `/workspace/repos/<owner>/<repo>` convention, then the checkouts
9
+ * this host is known to keep. `KNOWN_HOST_PATHS` is the reverse map, for
10
+ * manifests that cite a host path instead of an address.
11
+ */
12
+ import type { HostPathRepository } from "@miadi/episodic-memory-schema";
13
+ import type { ParsedRiseUri } from "./rise-dsl.js";
14
+ /** Host paths older manifests cite, read as the repository they are checkouts of (gaia's layout). */
15
+ export declare const KNOWN_HOST_PATHS: ReadonlyArray<HostPathRepository>;
16
+ /** The checkouts this host keeps for repositories the workspace map may not list. */
17
+ export declare const KNOWN_RISE_WORKSPACES: Record<string, string>;
18
+ export interface RiseWorkspaceOptions {
19
+ env?: NodeJS.ProcessEnv;
20
+ /** The `config/stc-workspaces.json` to read; default is the Miadi checkout's. */
21
+ workspacesFile?: string;
22
+ /** The folder the `/workspace/repos/<owner>/<repo>` convention lives under. */
23
+ reposRoot?: string;
24
+ known?: Record<string, string>;
25
+ }
26
+ /**
27
+ * Where `<owner>/<repo>` is checked out on this host, or null. Order:
28
+ * `MIADI_RISE_WORKSPACES`, the stc workspaces map, `/workspace/repos`, the
29
+ * known checkouts. A path is answered only when it exists.
30
+ */
31
+ export declare function riseWorkspacePath(owner: string, repo: string, options?: RiseWorkspaceOptions): string | null;
32
+ /** The file a spec address names on this host, or null when the repository is not checked out here. */
33
+ export declare function riseLocalPath(parsed: Pick<ParsedRiseUri, "owner" | "repo" | "path">, options?: RiseWorkspaceOptions): string | null;
34
+ //# sourceMappingURL=rise-workspaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rise-workspaces.d.ts","sourceRoot":"","sources":["../src/rise-workspaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,qGAAqG;AACrG,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,kBAAkB,CAM9D,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIxD,CAAA;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,GAAG,IAAI,CAwBhH;AAED,uGAAuG;AACvG,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,GAAG,IAAI,CAKvI"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Where a `rise://` repository is checked out on this host — server-only
3
+ * (reads the filesystem), exported from the package root and never from
4
+ * `./references` (jgwill/Miadi#769, A4; review F1).
5
+ *
6
+ * Order: `MIADI_RISE_WORKSPACES` (JSON, `{ "owner/repo": "/path" }`), then
7
+ * `config/stc-workspaces.json` (its `workspaces[].repository` → `localPath`),
8
+ * then the `/workspace/repos/<owner>/<repo>` convention, then the checkouts
9
+ * this host is known to keep. `KNOWN_HOST_PATHS` is the reverse map, for
10
+ * manifests that cite a host path instead of an address.
11
+ */
12
+ import { existsSync, readFileSync } from "node:fs";
13
+ import { join } from "node:path";
14
+ /** Host paths older manifests cite, read as the repository they are checkouts of (gaia's layout). */
15
+ export const KNOWN_HOST_PATHS = [
16
+ { prefix: "/src/Miadi/", owner: "jgwill", repo: "Miadi" },
17
+ { prefix: "/a/src/Miadi/", owner: "jgwill", repo: "Miadi" },
18
+ { prefix: "/a/src/Miadi-18/", owner: "jgwill", repo: "Miadi" },
19
+ { prefix: "/etc/claude-code/", owner: "jgwill", repo: "etc-claude-code" },
20
+ { prefix: "/srv/miadi/episodes/", owner: "jgwill", repo: "episodes" },
21
+ ];
22
+ /** The checkouts this host keeps for repositories the workspace map may not list. */
23
+ export const KNOWN_RISE_WORKSPACES = {
24
+ "jgwill/Miadi": "/a/src/Miadi",
25
+ "jgwill/etc-claude-code": "/etc/claude-code",
26
+ "jgwill/episodes": "/srv/miadi/episodes",
27
+ };
28
+ /**
29
+ * Where `<owner>/<repo>` is checked out on this host, or null. Order:
30
+ * `MIADI_RISE_WORKSPACES`, the stc workspaces map, `/workspace/repos`, the
31
+ * known checkouts. A path is answered only when it exists.
32
+ */
33
+ export function riseWorkspacePath(owner, repo, options = {}) {
34
+ const env = options.env ?? process.env;
35
+ const key = `${owner}/${repo}`;
36
+ const candidates = [];
37
+ try {
38
+ const fromEnv = env.MIADI_RISE_WORKSPACES ? JSON.parse(env.MIADI_RISE_WORKSPACES) : {};
39
+ if (typeof fromEnv[key] === "string")
40
+ candidates.push(fromEnv[key]);
41
+ }
42
+ catch {
43
+ // an unreadable env map is no map
44
+ }
45
+ const file = options.workspacesFile ?? join(env.MIADI_SRC ?? "/a/src/Miadi", "config", "stc-workspaces.json");
46
+ try {
47
+ const doc = JSON.parse(readFileSync(file, "utf8"));
48
+ for (const w of doc.workspaces ?? []) {
49
+ if (w.repository === key && typeof w.localPath === "string")
50
+ candidates.push(w.localPath);
51
+ }
52
+ }
53
+ catch {
54
+ // no map on this host
55
+ }
56
+ candidates.push(join(options.reposRoot ?? "/workspace/repos", owner, repo));
57
+ const known = options.known ?? KNOWN_RISE_WORKSPACES;
58
+ if (known[key])
59
+ candidates.push(known[key]);
60
+ for (const candidate of candidates)
61
+ if (existsSync(candidate))
62
+ return candidate;
63
+ return null;
64
+ }
65
+ /** The file a spec address names on this host, or null when the repository is not checked out here. */
66
+ export function riseLocalPath(parsed, options = {}) {
67
+ const root = riseWorkspacePath(parsed.owner, parsed.repo, options);
68
+ if (!root)
69
+ return null;
70
+ const file = join(root, ...parsed.path.split("/"));
71
+ return existsSync(file) ? file : null;
72
+ }
73
+ //# sourceMappingURL=rise-workspaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rise-workspaces.js","sourceRoot":"","sources":["../src/rise-workspaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * The rispec seam — a RISE specification entering an episode, in the shape
3
+ * the review (jgwill/Miadi#630) and foundation (#713) seams set: one reusable
4
+ * `rise:<owner>/<repo>/<path>` node on the wheel (kind `miadi_rispec`), one
5
+ * episode→spec edge whose relationship type names what the episode does with
6
+ * it (`is-specified-in` when nobody said, `revises` for an edit), and an entry
7
+ * in `episode.yaml`'s `rispecs:` list keeping the commit the episode stood on.
8
+ *
9
+ * The address is `rise://<owner>/<repo>/<path>[@<commit>]` (rise-dsl.ts); the
10
+ * node holds the GitHub page and, when this host has the checkout, the
11
+ * local path is answered by `riseLocalPath` (package root, server-only), never written anywhere.
12
+ * Ref: jgwill/Miadi#769 (A4).
13
+ */
14
+ import { DEFAULT_RISPEC_RELATION, type EpisodeRispecEntry, type RiseRef } from "@miadi/episodic-memory-schema";
15
+ export type RispecErrorCode = "invalid_rispec" | "rispec_manifest_conflict";
16
+ export declare class RispecError extends Error {
17
+ readonly code: RispecErrorCode;
18
+ constructor(code: RispecErrorCode, message: string);
19
+ }
20
+ /** The spec an input names: `rise://owner/repo/path[@commit]` or a known host path. */
21
+ export declare function requireRiseRef(raw: unknown): RiseRef;
22
+ export interface UpsertEpisodeRispecResult {
23
+ entry: EpisodeRispecEntry;
24
+ created: boolean;
25
+ filled: string[];
26
+ wrote: boolean;
27
+ dryRun: boolean;
28
+ }
29
+ /**
30
+ * Add a spec to `episode.yaml`'s `rispecs:` list, or fill the keys an existing
31
+ * entry lacks. Comments, key order and every other field survive. Refuses a
32
+ * `rispecs` key that is not a list.
33
+ */
34
+ export declare function upsertEpisodeRispec(input: {
35
+ episodeYamlPath: string;
36
+ entry: EpisodeRispecEntry;
37
+ dryRun?: boolean;
38
+ }): Promise<UpsertEpisodeRispecResult>;
39
+ export type RispecProjectionState = "created" | "refreshed" | "already-present" | "skipped" | "pending";
40
+ export interface RispecProjection {
41
+ node: {
42
+ id: string;
43
+ state: RispecProjectionState;
44
+ error?: string;
45
+ };
46
+ edge: {
47
+ id: string;
48
+ state: RispecProjectionState;
49
+ relationship_type: string;
50
+ error?: string;
51
+ };
52
+ }
53
+ export declare function existingRispecRelation(mwUrl: string, episodeNodeId: string, nodeId: string, options?: {
54
+ fetchImpl?: typeof fetch;
55
+ }): Promise<string | undefined>;
56
+ /**
57
+ * Put the spec node and the episode→spec edge on the wheel. A spec is a
58
+ * `knowledge` node. When the node exists it is left as it is; only a commit
59
+ * the node lacks is added.
60
+ */
61
+ export declare function projectEpisodeRispec(mwUrl: string, input: {
62
+ episodeNodeId: string;
63
+ episodeFolder: string;
64
+ ref: RiseRef;
65
+ entry: EpisodeRispecEntry;
66
+ relation: string;
67
+ }, options?: {
68
+ fetchImpl?: typeof fetch;
69
+ dryRun?: boolean;
70
+ }): Promise<RispecProjection>;
71
+ export { DEFAULT_RISPEC_RELATION };
72
+ //# sourceMappingURL=rispec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rispec.d.ts","sourceRoot":"","sources":["../src/rispec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EACL,uBAAuB,EAMvB,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACb,MAAM,+BAA+B,CAAA;AAMtC,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,0BAA0B,CAAA;AAE3E,qBAAa,WAAY,SAAQ,KAAK;aAElB,IAAI,EAAE,eAAe;gBAArB,IAAI,EAAE,eAAe,EACrC,OAAO,EAAE,MAAM;CAKlB;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIpD;AAID,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,kBAAkB,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;CAChB;AAoBD;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAmD7J;AAID,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,WAAW,GAAG,iBAAiB,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvG,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,qBAAqB,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,qBAAqB,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC9F;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAK1K;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAClH,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3D,OAAO,CAAC,gBAAgB,CAAC,CAsF3B;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
package/dist/rispec.js ADDED
@@ -0,0 +1,227 @@
1
+ /**
2
+ * The rispec seam — a RISE specification entering an episode, in the shape
3
+ * the review (jgwill/Miadi#630) and foundation (#713) seams set: one reusable
4
+ * `rise:<owner>/<repo>/<path>` node on the wheel (kind `miadi_rispec`), one
5
+ * episode→spec edge whose relationship type names what the episode does with
6
+ * it (`is-specified-in` when nobody said, `revises` for an edit), and an entry
7
+ * in `episode.yaml`'s `rispecs:` list keeping the commit the episode stood on.
8
+ *
9
+ * The address is `rise://<owner>/<repo>/<path>[@<commit>]` (rise-dsl.ts); the
10
+ * node holds the GitHub page and, when this host has the checkout, the
11
+ * local path is answered by `riseLocalPath` (package root, server-only), never written anywhere.
12
+ * Ref: jgwill/Miadi#769 (A4).
13
+ */
14
+ import { readFile, writeFile } from "node:fs/promises";
15
+ import { existsSync } from "node:fs";
16
+ import { dirname } from "node:path";
17
+ import { Scalar, isMap, isScalar, isSeq, parseDocument } from "yaml";
18
+ import { DEFAULT_RISPEC_RELATION, RISPEC_ENTRY_KEYS, RISPEC_NODE_KIND, parseRiseRef, riseNodeId, toEpisodeRispecEntry, } from "@miadi/episodic-memory-schema";
19
+ import { missingManifestRemedy } from "./episode.js";
20
+ import { edgesFrom, failure, wheelJson } from "./review.js";
21
+ import { riseGithubUrl } from "./rise-dsl.js";
22
+ import { KNOWN_HOST_PATHS } from "./rise-workspaces.js";
23
+ export class RispecError extends Error {
24
+ code;
25
+ constructor(code, message) {
26
+ super(message);
27
+ this.code = code;
28
+ this.name = "RispecError";
29
+ }
30
+ }
31
+ /** The spec an input names: `rise://owner/repo/path[@commit]` or a known host path. */
32
+ export function requireRiseRef(raw) {
33
+ const ref = parseRiseRef(raw, { hostPaths: KNOWN_HOST_PATHS });
34
+ if (ref)
35
+ return ref;
36
+ throw new RispecError("invalid_rispec", `spec '${String(raw)}' is not a rise://<owner>/<repo>/<path> address`);
37
+ }
38
+ function quoted(doc, value) {
39
+ const node = doc.createNode(value);
40
+ node.type = Scalar.QUOTE_SINGLE;
41
+ return node;
42
+ }
43
+ function entryNode(doc, entry) {
44
+ const map = doc.createNode({});
45
+ for (const key of RISPEC_ENTRY_KEYS) {
46
+ const value = entry[key];
47
+ if (value === undefined || value === "")
48
+ continue;
49
+ map.set(key, quoted(doc, value));
50
+ }
51
+ return map;
52
+ }
53
+ const sameEntry = (a, b) => a !== null && a.ref === b.ref;
54
+ /**
55
+ * Add a spec to `episode.yaml`'s `rispecs:` list, or fill the keys an existing
56
+ * entry lacks. Comments, key order and every other field survive. Refuses a
57
+ * `rispecs` key that is not a list.
58
+ */
59
+ export async function upsertEpisodeRispec(input) {
60
+ if (!existsSync(input.episodeYamlPath)) {
61
+ throw new RispecError("rispec_manifest_conflict", missingManifestRemedy(dirname(input.episodeYamlPath)));
62
+ }
63
+ const doc = parseDocument(await readFile(input.episodeYamlPath, "utf8"));
64
+ if (doc.errors.length > 0) {
65
+ throw new RispecError("rispec_manifest_conflict", `unreadable episode.yaml ${input.episodeYamlPath}: ${doc.errors[0].message}`);
66
+ }
67
+ if (!isMap(doc.contents)) {
68
+ throw new RispecError("rispec_manifest_conflict", `episode.yaml ${input.episodeYamlPath} is not a mapping`);
69
+ }
70
+ const list = doc.get("rispecs", true);
71
+ let created = false;
72
+ const filled = [];
73
+ let entry;
74
+ if (list === undefined || list === null || (isScalar(list) && (list.value === null || list.value === undefined))) {
75
+ created = true;
76
+ entry = input.entry;
77
+ const seq = doc.createNode([]);
78
+ seq.items.push(entryNode(doc, entry));
79
+ if (isScalar(list) && list.comment)
80
+ seq.comment = list.comment;
81
+ doc.set("rispecs", seq);
82
+ }
83
+ else if (!isSeq(list)) {
84
+ throw new RispecError("rispec_manifest_conflict", `rispecs in ${input.episodeYamlPath} is not a list — refusing to overwrite`);
85
+ }
86
+ else {
87
+ const index = list.items.findIndex((item) => sameEntry(toEpisodeRispecEntry(isMap(item) ? item.toJSON() : isScalar(item) ? item.value : item), input.entry));
88
+ if (index < 0) {
89
+ created = true;
90
+ entry = input.entry;
91
+ list.items.push(entryNode(doc, entry));
92
+ }
93
+ else {
94
+ const item = list.items[index];
95
+ if (!isMap(item)) {
96
+ entry = toEpisodeRispecEntry(isScalar(item) ? item.value : item) ?? input.entry;
97
+ }
98
+ else {
99
+ for (const key of RISPEC_ENTRY_KEYS) {
100
+ const value = input.entry[key];
101
+ if (value === undefined || value === "")
102
+ continue;
103
+ const present = item.get(key);
104
+ if (present === undefined || present === null || present === "") {
105
+ item.set(key, quoted(doc, value));
106
+ filled.push(key);
107
+ }
108
+ }
109
+ entry = toEpisodeRispecEntry(item.toJSON()) ?? input.entry;
110
+ }
111
+ }
112
+ }
113
+ const wrote = (created || filled.length > 0) && !input.dryRun;
114
+ if (wrote)
115
+ await writeFile(input.episodeYamlPath, doc.toString(), "utf8");
116
+ return { entry, created, filled, wrote, dryRun: input.dryRun === true };
117
+ }
118
+ export async function existingRispecRelation(mwUrl, episodeNodeId, nodeId, options = {}) {
119
+ const listing = await wheelJson(options.fetchImpl ?? fetch, `${mwUrl.replace(/\/+$/, "")}/api/edges?limit=all`);
120
+ if (!listing.ok)
121
+ return undefined;
122
+ const edge = edgesFrom(listing.body).find((e) => String(e.from_id) === episodeNodeId && String(e.to_id) === nodeId);
123
+ return typeof edge?.relationship_type === "string" && edge.relationship_type ? edge.relationship_type : undefined;
124
+ }
125
+ /**
126
+ * Put the spec node and the episode→spec edge on the wheel. A spec is a
127
+ * `knowledge` node. When the node exists it is left as it is; only a commit
128
+ * the node lacks is added.
129
+ */
130
+ export async function projectEpisodeRispec(mwUrl, input, options = {}) {
131
+ const fetchImpl = options.fetchImpl ?? fetch;
132
+ const base = mwUrl.replace(/\/+$/, "");
133
+ const nodeId = riseNodeId(input.ref);
134
+ const edgeId = `${input.episodeNodeId}:${nodeId}`;
135
+ const projection = {
136
+ node: { id: nodeId, state: "pending" },
137
+ edge: { id: edgeId, state: "pending", relationship_type: input.relation },
138
+ };
139
+ const nodeUrl = `${base}/api/nodes/${encodeURIComponent(nodeId)}`;
140
+ const read = await wheelJson(fetchImpl, nodeUrl);
141
+ if (read.ok) {
142
+ const node = read.body?.node;
143
+ if (!input.entry.commit || node?.metadata?.commit === input.entry.commit) {
144
+ projection.node.state = "already-present";
145
+ }
146
+ else if (options.dryRun) {
147
+ projection.node.state = "skipped";
148
+ }
149
+ else {
150
+ const githubUrl = riseGithubUrl({ ...input.ref, commit: input.entry.commit });
151
+ const patched = await wheelJson(fetchImpl, nodeUrl, { method: "PATCH", headers: { "content-type": "application/json" }, body: JSON.stringify({ metadata: { commit: input.entry.commit, ...(githubUrl ? { github_url: githubUrl } : {}) } }) });
152
+ projection.node = patched.ok ? { id: nodeId, state: "refreshed" } : { id: nodeId, state: "pending", error: failure("PATCH", nodeUrl, patched) };
153
+ }
154
+ }
155
+ else if (read.status === 404) {
156
+ if (options.dryRun) {
157
+ projection.node.state = "skipped";
158
+ }
159
+ else {
160
+ const title = input.entry.title ?? input.ref.path;
161
+ const created = await wheelJson(fetchImpl, `${base}/api/nodes`, {
162
+ method: "POST",
163
+ headers: { "content-type": "application/json" },
164
+ body: JSON.stringify({
165
+ id: nodeId,
166
+ type: "knowledge",
167
+ name: `Spec — ${title}`,
168
+ description: `A RISE specification held by episode ${input.episodeFolder}: ${input.ref.owner}/${input.ref.repo} ${input.ref.path}.`,
169
+ direction: "south",
170
+ metadata: {
171
+ kind: RISPEC_NODE_KIND,
172
+ address: input.entry.ref,
173
+ owner: input.ref.owner,
174
+ repo: input.ref.repo,
175
+ path: input.ref.path,
176
+ ...(riseGithubUrl({ ...input.ref, commit: input.entry.commit }) ? { github_url: riseGithubUrl({ ...input.ref, commit: input.entry.commit }) } : {}),
177
+ episode_path: input.episodeFolder,
178
+ ...(input.entry.title ? { title: input.entry.title } : {}),
179
+ ...(input.entry.commit ? { commit: input.entry.commit } : {}),
180
+ ...(input.entry.derived_from ? { derived_from: input.entry.derived_from } : {}),
181
+ ...(input.entry.system ? { system: input.entry.system } : {}),
182
+ },
183
+ }),
184
+ });
185
+ projection.node = created.ok ? { id: nodeId, state: "created" } : { id: nodeId, state: "pending", error: failure("POST", `${base}/api/nodes`, created) };
186
+ }
187
+ }
188
+ else {
189
+ projection.node = { id: nodeId, state: "pending", error: failure("GET", nodeUrl, read) };
190
+ }
191
+ if (projection.node.state === "pending") {
192
+ projection.edge.error = "the spec node is not on the wheel yet";
193
+ return projection;
194
+ }
195
+ const edgesUrl = `${base}/api/edges`;
196
+ const listing = await wheelJson(fetchImpl, `${edgesUrl}?limit=all`);
197
+ if (!listing.ok) {
198
+ projection.edge.error = failure("GET", edgesUrl, listing);
199
+ return projection;
200
+ }
201
+ const existing = edgesFrom(listing.body).find((edge) => String(edge.from_id) === input.episodeNodeId && String(edge.to_id) === nodeId);
202
+ if (existing) {
203
+ projection.edge = { id: edgeId, state: "already-present", relationship_type: String(existing.relationship_type ?? input.relation) };
204
+ return projection;
205
+ }
206
+ if (options.dryRun) {
207
+ projection.edge.state = "skipped";
208
+ return projection;
209
+ }
210
+ const posted = await wheelJson(fetchImpl, edgesUrl, {
211
+ method: "POST",
212
+ headers: { "content-type": "application/json" },
213
+ body: JSON.stringify({ from_id: input.episodeNodeId, to_id: nodeId, relationship_type: input.relation, strength: 1, obligations: [] }),
214
+ });
215
+ if (posted.ok && posted.body?.replaced === true) {
216
+ projection.edge = { id: edgeId, state: "pending", relationship_type: input.relation, error: "the wheel replaced an edge the listing did not show; check the edge by hand" };
217
+ }
218
+ else if (posted.ok)
219
+ projection.edge.state = "created";
220
+ else if (posted.status === 409)
221
+ projection.edge.state = "already-present";
222
+ else
223
+ projection.edge.error = failure("POST", edgesUrl, posted);
224
+ return projection;
225
+ }
226
+ export { DEFAULT_RISPEC_RELATION };
227
+ //# sourceMappingURL=rispec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rispec.js","sourceRoot":"","sources":["../src/rispec.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@
28
28
  * Pure, no I/O.
29
29
  */
30
30
  import { type WheelRefKind } from "./chronicle-dsl.js";
31
- export type TextReferenceKind = "chronicle" | WheelRefKind | "foundation";
31
+ export type TextReferenceKind = "chronicle" | WheelRefKind | "foundation" | "notebook" | "prototype" | "tracing" | "rise";
32
32
  export type TextReferenceForm = "directive" | "link" | "autolink" | "bare";
33
33
  export interface TextReference {
34
34
  /** Offset of the first character of `raw` in the text. */
@@ -1 +1 @@
1
- {"version":3,"file":"text-references.d.ts","sourceRoot":"","sources":["../src/text-references.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAA;AAG3B,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAA;AACzE,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;AAE1E,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,iBAAiB,CAAA;IACvB,IAAI,EAAE,iBAAiB,CAAA;IACvB,oJAAoJ;IACpJ,GAAG,EAAE,MAAM,CAAA;IACX,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAuCD,2GAA2G;AAC3G,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7E;AAgBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUvD;AAwBD,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAuD7B;;;;GAIG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,IAAI,CAAe;IAE3B,4DAA4D;IAC5D,OAAO,CAAC,UAAU;IAWlB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IA2BhC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;CAgBtC;AAcD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CA+EhE"}
1
+ {"version":3,"file":"text-references.d.ts","sourceRoot":"","sources":["../src/text-references.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAA;AAK3B,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,CAAA;AACzH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAA;AAE1E,MAAM,WAAW,aAAa;IAC5B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,iBAAiB,CAAA;IACvB,IAAI,EAAE,iBAAiB,CAAA;IACvB,oJAAoJ;IACpJ,GAAG,EAAE,MAAM,CAAA;IACX,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA2CD,2GAA2G;AAC3G,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7E;AAgBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUvD;AAkCD,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAuD7B;;;;GAIG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,IAAI,CAAe;IAE3B,4DAA4D;IAC5D,OAAO,CAAC,UAAU;IAWlB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAKzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IA2BhC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;CAgBtC;AAcD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE,CA+EhE"}
@@ -29,7 +29,9 @@
29
29
  */
30
30
  import { canonicalWheelRef, parseMiadiChronicleUri, parseWheelRefUri, } from "./chronicle-dsl.js";
31
31
  import { parseFoundationUri } from "./foundation-dsl.js";
32
- const SCHEMES = "miadi-(?:chronicle|ceremony|circle|foundation)";
32
+ import { parseArtefactUri } from "./artefact-dsl.js";
33
+ import { parseRiseUri } from "./rise-dsl.js";
34
+ const SCHEMES = "(?:miadi-(?:chronicle|ceremony|circle|foundation|notebook|prototype|tracing|trace|prompt)|rise)";
33
35
  /** A link label: escaped characters, plain characters, or one level of nested brackets. */
34
36
  const LABEL = "(?:\\\\.|[^\\[\\]\\\\\\n]|\\[[^\\[\\]\\n]{0,200}\\]){0,500}";
35
37
  // Directives are single-line, with bounded URI and option tail (the app's
@@ -50,6 +52,10 @@ const AUTOLINK_RE = new RegExp(`<(${SCHEMES}:[^>\\s]{1,512})>`, "gi");
50
52
  const BARE_CHRONICLE_RE = /(?<![\w/?=&%.~+:@#!-])miadi-chronicle:(?:\/\/)?[A-Za-z0-9._~:/?=&%#+-]{1,512}/gi;
51
53
  const BARE_WHEEL_RE = /(?<![\w/?=&%.~+:@#!-])miadi-(?:ceremony|circle):(?:\/\/)?[A-Za-z0-9._~:?=&%#+-]{1,512}/gi;
52
54
  const BARE_FOUNDATION_RE = /(?<![\w/?=&%.~+:@#!-])miadi-foundation:(?:\/\/)?[A-Za-z0-9._~/?=&%#+-]{1,512}/gi;
55
+ // An artefact address: a notebook, a prototype, a tracing resource (and the trace/prompt aliases).
56
+ const BARE_ARTEFACT_RE = /(?<![\w/?=&%.~+:@#!-])miadi-(?:notebook|prototype|tracing|trace|prompt):(?:\/\/)?[A-Za-z0-9._~:/?=&%#+@-]{1,512}/gi;
57
+ // A spec address: rise://<owner>/<repo>/<path>[@<commit>].
58
+ const BARE_RISE_RE = /(?<![\w/?=&%.~+:@#!-])rise:(?:\/\/)?[A-Za-z0-9._~:/?=&%#+@-]{1,600}/gi;
53
59
  const HEX_ID_RE = /^[0-9a-f][0-9a-f-]*$/i;
54
60
  const OPTION_RE = /([A-Za-z0-9._~-]{1,64})\s*=\s*(?:"([^"\n]{0,500})"|([A-Za-z0-9._~/-]{1,500}))/g;
55
61
  const TRAILING = new Set(".,;:!?)]'\"~_-");
@@ -106,6 +112,16 @@ function fromUri(uri, form, label) {
106
112
  const authored = label ?? wheel.options.label;
107
113
  return { kind: wheel.kind, form, uri: wheel.canonical, options: wheel.options, ...(authored ? { label: authored } : {}) };
108
114
  }
115
+ const rise = parseRiseUri(uri);
116
+ if (rise) {
117
+ const authored = label ?? rise.options.label;
118
+ return { kind: "rise", form, uri: rise.uri, options: rise.options, ...(authored ? { label: authored } : {}) };
119
+ }
120
+ const artefact = parseArtefactUri(uri);
121
+ if (artefact) {
122
+ const authored = label ?? artefact.options.label;
123
+ return { kind: artefact.kind, form, uri: artefact.uri, options: artefact.options, ...(authored ? { label: authored } : {}) };
124
+ }
109
125
  const foundation = parseFoundationUri(uri);
110
126
  if (foundation) {
111
127
  const authored = label ?? foundation.options.label;
@@ -335,7 +351,7 @@ export function findTextReferences(text) {
335
351
  for (const m of text.matchAll(AUTOLINK_RE))
336
352
  add(m.index, m[0], withHref(fromUri(m[1], "autolink"), m[1]));
337
353
  close();
338
- for (const pattern of [BARE_CHRONICLE_RE, BARE_WHEEL_RE, BARE_FOUNDATION_RE]) {
354
+ for (const pattern of [BARE_CHRONICLE_RE, BARE_WHEEL_RE, BARE_FOUNDATION_RE, BARE_ARTEFACT_RE, BARE_RISE_RE]) {
339
355
  for (const m of text.matchAll(pattern)) {
340
356
  const raw = trimTrailing(m[0]);
341
357
  add(m.index, raw, withHref(fromUri(raw, "bare"), raw));
@@ -1 +1 @@
1
- {"version":3,"file":"text-references.js","sourceRoot":"","sources":["../src/text-references.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-references.js","sourceRoot":"","sources":["../src/text-references.ts"],"names":[],"mappings":"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"}