@miadi/inquiry-weave 0.16.5 → 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 (52) hide show
  1. package/README.md +19 -0
  2. package/dist/artefact-dsl.d.ts +58 -0
  3. package/dist/artefact-dsl.d.ts.map +1 -0
  4. package/dist/artefact-dsl.js +129 -0
  5. package/dist/artefact-dsl.js.map +1 -0
  6. package/dist/index.d.ts +6 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +6 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/lineage-view.d.ts +56 -0
  11. package/dist/lineage-view.d.ts.map +1 -0
  12. package/dist/lineage-view.js +141 -0
  13. package/dist/lineage-view.js.map +1 -0
  14. package/dist/mcp-server.js +162 -1
  15. package/dist/mcp-server.js.map +1 -1
  16. package/dist/mint.d.ts +199 -1
  17. package/dist/mint.d.ts.map +1 -1
  18. package/dist/mint.js +451 -0
  19. package/dist/mint.js.map +1 -1
  20. package/dist/notebook.d.ts +88 -0
  21. package/dist/notebook.d.ts.map +1 -0
  22. package/dist/notebook.js +258 -0
  23. package/dist/notebook.js.map +1 -0
  24. package/dist/prototype.d.ts +90 -0
  25. package/dist/prototype.d.ts.map +1 -0
  26. package/dist/prototype.js +286 -0
  27. package/dist/prototype.js.map +1 -0
  28. package/dist/references.d.ts +2 -0
  29. package/dist/references.d.ts.map +1 -1
  30. package/dist/references.js +2 -0
  31. package/dist/references.js.map +1 -1
  32. package/dist/rise-dsl.d.ts +44 -0
  33. package/dist/rise-dsl.d.ts.map +1 -0
  34. package/dist/rise-dsl.js +99 -0
  35. package/dist/rise-dsl.js.map +1 -0
  36. package/dist/rise-workspaces.d.ts +34 -0
  37. package/dist/rise-workspaces.d.ts.map +1 -0
  38. package/dist/rise-workspaces.js +73 -0
  39. package/dist/rise-workspaces.js.map +1 -0
  40. package/dist/rispec.d.ts +72 -0
  41. package/dist/rispec.d.ts.map +1 -0
  42. package/dist/rispec.js +227 -0
  43. package/dist/rispec.js.map +1 -0
  44. package/dist/text-references.d.ts +1 -1
  45. package/dist/text-references.d.ts.map +1 -1
  46. package/dist/text-references.js +18 -2
  47. package/dist/text-references.js.map +1 -1
  48. package/dist/tracing.d.ts +95 -0
  49. package/dist/tracing.d.ts.map +1 -0
  50. package/dist/tracing.js +302 -0
  51. package/dist/tracing.js.map +1 -0
  52. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notebook.js","sourceRoot":"","sources":["../src/notebook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * The prototype seam — a prototype entering an episode, in the shape the
3
+ * review (jgwill/Miadi#630) and foundation (#713) seams set: one reusable
4
+ * `prototype:<slug>` node on the wheel, one `chronicle:<episode>` →
5
+ * `prototype:<slug>` edge whose relationship type names what the episode does
6
+ * with it (`is-prototyped-in` when nobody said), and an entry in
7
+ * `episode.yaml`'s `prototypes:` list.
8
+ *
9
+ * Two addresses, two reaches. The published address goes in the manifest
10
+ * and on the node (`public_url`). The editing address (a v0 chat, say) goes
11
+ * in the node's metadata only (`editor_url`) and is handed out by the door to
12
+ * a viewer who may edit the episode; it is never written in `episode.yaml`,
13
+ * which is served to every reader of the episode. Rules kept from the other
14
+ * seams: the manifest entry is written once and never overwritten, one
15
+ * ordered node pair is one edge, and the wheel projection never throws.
16
+ * Ref: jgwill/Miadi#769 (A2), jgwill/miadi-orchestration-kit#80.
17
+ */
18
+ import { DEFAULT_PROTOTYPE_RELATION, type EpisodePrototypeEntry } from "@miadi/episodic-memory-schema";
19
+ export type PrototypeErrorCode = "invalid_prototype" | "prototype_manifest_conflict";
20
+ export declare class PrototypeError extends Error {
21
+ readonly code: PrototypeErrorCode;
22
+ constructor(code: PrototypeErrorCode, message: string);
23
+ }
24
+ /** The slug an input names: a slug or `miadi-prototype:<slug>`. */
25
+ export declare function requirePrototypeSlug(raw: unknown): string;
26
+ /** The published address an input names, or a refusal. */
27
+ export declare function requirePrototypeUrl(raw: unknown): string;
28
+ /** A v0 chat page is where a prototype is edited, never where it is published. */
29
+ export declare function looksLikeEditor(url: string): boolean;
30
+ /** The published and the editing address are two doors; one URL cannot be both. */
31
+ export declare function assertDistinctPrototypeAddresses(url: string, editor: string | undefined): void;
32
+ /** The editing address, when given: https, kept off the manifest. */
33
+ export declare function optionalEditorUrl(raw: unknown): string | undefined;
34
+ export interface UpsertEpisodePrototypeResult {
35
+ entry: EpisodePrototypeEntry;
36
+ created: boolean;
37
+ filled: string[];
38
+ wrote: boolean;
39
+ dryRun: boolean;
40
+ }
41
+ /**
42
+ * Add a prototype to `episode.yaml`'s `prototypes:` list, or fill the keys an
43
+ * existing entry lacks. Comments, key order and every other field survive.
44
+ * Refuses a `prototypes` key that is not a list. Never writes an editing address.
45
+ */
46
+ export declare function upsertEpisodePrototype(input: {
47
+ episodeYamlPath: string;
48
+ entry: EpisodePrototypeEntry;
49
+ dryRun?: boolean;
50
+ }): Promise<UpsertEpisodePrototypeResult>;
51
+ export type PrototypeProjectionState = "created" | "refreshed" | "already-present" | "skipped" | "pending";
52
+ export interface PrototypeProjection {
53
+ node: {
54
+ id: string;
55
+ state: PrototypeProjectionState;
56
+ error?: string;
57
+ };
58
+ edge: {
59
+ id: string;
60
+ state: PrototypeProjectionState;
61
+ relationship_type: string;
62
+ error?: string;
63
+ };
64
+ }
65
+ /** The relationship type of an episode→prototype edge already on the wheel. Never throws. */
66
+ export declare function existingPrototypeRelation(mwUrl: string, episodeNodeId: string, nodeId: string, options?: {
67
+ fetchImpl?: typeof fetch;
68
+ }): Promise<string | undefined>;
69
+ /** The editing address a prototype node holds, for a viewer the door has already checked. Never throws. */
70
+ export declare function prototypeEditorUrl(mwUrl: string, slug: string, options?: {
71
+ fetchImpl?: typeof fetch;
72
+ }): Promise<string | undefined>;
73
+ /**
74
+ * Put the prototype node and the episode→prototype edge on the wheel. A
75
+ * prototype is a `knowledge` node. When the node exists, only an editing
76
+ * address it lacks is added, so a hand-written name and description stay.
77
+ */
78
+ export declare function projectEpisodePrototype(mwUrl: string, input: {
79
+ episodeNodeId: string;
80
+ episodeFolder: string;
81
+ entry: EpisodePrototypeEntry;
82
+ /** Kept in the node's metadata only. */
83
+ editor?: string;
84
+ relation: string;
85
+ }, options?: {
86
+ fetchImpl?: typeof fetch;
87
+ dryRun?: boolean;
88
+ }): Promise<PrototypeProjection>;
89
+ export { DEFAULT_PROTOTYPE_RELATION };
90
+ //# sourceMappingURL=prototype.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prototype.d.ts","sourceRoot":"","sources":["../src/prototype.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,286 @@
1
+ /**
2
+ * The prototype seam — a prototype entering an episode, in the shape the
3
+ * review (jgwill/Miadi#630) and foundation (#713) seams set: one reusable
4
+ * `prototype:<slug>` node on the wheel, one `chronicle:<episode>` →
5
+ * `prototype:<slug>` edge whose relationship type names what the episode does
6
+ * with it (`is-prototyped-in` when nobody said), and an entry in
7
+ * `episode.yaml`'s `prototypes:` list.
8
+ *
9
+ * Two addresses, two reaches. The published address goes in the manifest
10
+ * and on the node (`public_url`). The editing address (a v0 chat, say) goes
11
+ * in the node's metadata only (`editor_url`) and is handed out by the door to
12
+ * a viewer who may edit the episode; it is never written in `episode.yaml`,
13
+ * which is served to every reader of the episode. Rules kept from the other
14
+ * seams: the manifest entry is written once and never overwritten, one
15
+ * ordered node pair is one edge, and the wheel projection never throws.
16
+ * Ref: jgwill/Miadi#769 (A2), jgwill/miadi-orchestration-kit#80.
17
+ */
18
+ import { readFile, writeFile } from "node:fs/promises";
19
+ import { existsSync } from "node:fs";
20
+ import { dirname } from "node:path";
21
+ import { Scalar, isMap, isScalar, isSeq, parseDocument } from "yaml";
22
+ import { DEFAULT_PROTOTYPE_RELATION, PROTOTYPE_ENTRY_KEYS, PROTOTYPE_NODE_KIND, isPrototypeSlug, prototypeNodeId, prototypeReference, prototypeSlugOf, prototypeUrlOf, toEpisodePrototypeEntry, } from "@miadi/episodic-memory-schema";
23
+ import { missingManifestRemedy } from "./episode.js";
24
+ import { edgesFrom, failure, wheelJson } from "./review.js";
25
+ export class PrototypeError extends Error {
26
+ code;
27
+ constructor(code, message) {
28
+ super(message);
29
+ this.code = code;
30
+ this.name = "PrototypeError";
31
+ }
32
+ }
33
+ /** The slug an input names: a slug or `miadi-prototype:<slug>`. */
34
+ export function requirePrototypeSlug(raw) {
35
+ const text = typeof raw === "string" ? raw.trim() : "";
36
+ if (isPrototypeSlug(text))
37
+ return text;
38
+ const slug = prototypeSlugOf(text);
39
+ if (slug)
40
+ return slug;
41
+ throw new PrototypeError("invalid_prototype", `prototype '${String(raw)}' is not a slug or a miadi-prototype: reference`);
42
+ }
43
+ /** The published address an input names, or a refusal. */
44
+ export function requirePrototypeUrl(raw) {
45
+ const url = prototypeUrlOf(raw);
46
+ if (!url)
47
+ throw new PrototypeError("invalid_prototype", `prototype address '${String(raw)}' must be an https URL`);
48
+ if (looksLikeEditor(url))
49
+ throw new PrototypeError("invalid_prototype", `'${url}' is an editing address; give the published address as url and this one as editor`);
50
+ return url;
51
+ }
52
+ /** A v0 chat page is where a prototype is edited, never where it is published. */
53
+ export function looksLikeEditor(url) {
54
+ try {
55
+ const u = new URL(url);
56
+ return /(^|\.)v0\.(app|dev)$/i.test(u.hostname) && /\/chat\//.test(u.pathname);
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ /** The published and the editing address are two doors; one URL cannot be both. */
63
+ export function assertDistinctPrototypeAddresses(url, editor) {
64
+ if (editor && editor === url)
65
+ throw new PrototypeError("invalid_prototype", "the editing address equals the published address; a reader would be handed the editor");
66
+ }
67
+ /** The editing address, when given: https, kept off the manifest. */
68
+ export function optionalEditorUrl(raw) {
69
+ if (raw === undefined || raw === null || raw === "")
70
+ return undefined;
71
+ const url = prototypeUrlOf(raw);
72
+ if (url)
73
+ return url;
74
+ throw new PrototypeError("invalid_prototype", `editing address '${String(raw)}' must be an https URL`);
75
+ }
76
+ function quoted(doc, value) {
77
+ const node = doc.createNode(value);
78
+ node.type = Scalar.QUOTE_SINGLE;
79
+ return node;
80
+ }
81
+ function valueNode(doc, value) {
82
+ if (Array.isArray(value)) {
83
+ const seq = doc.createNode([]);
84
+ for (const item of value)
85
+ seq.items.push(quoted(doc, item));
86
+ return seq;
87
+ }
88
+ return quoted(doc, value);
89
+ }
90
+ function entryNode(doc, entry) {
91
+ const map = doc.createNode({});
92
+ for (const key of PROTOTYPE_ENTRY_KEYS) {
93
+ const value = entry[key];
94
+ if (value === undefined || value === "" || (Array.isArray(value) && value.length === 0))
95
+ continue;
96
+ map.set(key, valueNode(doc, value));
97
+ }
98
+ return map;
99
+ }
100
+ const sameEntry = (a, b) => a !== null && a.id === b.id;
101
+ /**
102
+ * Add a prototype to `episode.yaml`'s `prototypes:` list, or fill the keys an
103
+ * existing entry lacks. Comments, key order and every other field survive.
104
+ * Refuses a `prototypes` key that is not a list. Never writes an editing address.
105
+ */
106
+ export async function upsertEpisodePrototype(input) {
107
+ if (!existsSync(input.episodeYamlPath)) {
108
+ throw new PrototypeError("prototype_manifest_conflict", missingManifestRemedy(dirname(input.episodeYamlPath)));
109
+ }
110
+ const doc = parseDocument(await readFile(input.episodeYamlPath, "utf8"));
111
+ if (doc.errors.length > 0) {
112
+ throw new PrototypeError("prototype_manifest_conflict", `unreadable episode.yaml ${input.episodeYamlPath}: ${doc.errors[0].message}`);
113
+ }
114
+ if (!isMap(doc.contents)) {
115
+ throw new PrototypeError("prototype_manifest_conflict", `episode.yaml ${input.episodeYamlPath} is not a mapping`);
116
+ }
117
+ const list = doc.get("prototypes", true);
118
+ let created = false;
119
+ const filled = [];
120
+ let entry;
121
+ if (list === undefined || list === null || (isScalar(list) && (list.value === null || list.value === undefined))) {
122
+ created = true;
123
+ entry = input.entry;
124
+ const seq = doc.createNode([]);
125
+ seq.items.push(entryNode(doc, entry));
126
+ if (isScalar(list) && list.comment)
127
+ seq.comment = list.comment;
128
+ doc.set("prototypes", seq);
129
+ }
130
+ else if (!isSeq(list)) {
131
+ throw new PrototypeError("prototype_manifest_conflict", `prototypes in ${input.episodeYamlPath} is not a list — refusing to overwrite`);
132
+ }
133
+ else {
134
+ const index = list.items.findIndex((item) => sameEntry(toEpisodePrototypeEntry(isMap(item) ? item.toJSON() : item), input.entry));
135
+ if (index < 0) {
136
+ created = true;
137
+ entry = input.entry;
138
+ list.items.push(entryNode(doc, entry));
139
+ }
140
+ else {
141
+ const item = list.items[index];
142
+ if (!isMap(item)) {
143
+ entry = input.entry;
144
+ }
145
+ else {
146
+ for (const key of PROTOTYPE_ENTRY_KEYS) {
147
+ const value = input.entry[key];
148
+ if (value === undefined || value === "" || (Array.isArray(value) && value.length === 0))
149
+ continue;
150
+ const present = item.get(key);
151
+ if (present === undefined || present === null || present === "") {
152
+ item.set(key, valueNode(doc, value));
153
+ filled.push(key);
154
+ }
155
+ }
156
+ entry = toEpisodePrototypeEntry(item.toJSON()) ?? input.entry;
157
+ }
158
+ }
159
+ }
160
+ const wrote = (created || filled.length > 0) && !input.dryRun;
161
+ if (wrote)
162
+ await writeFile(input.episodeYamlPath, doc.toString(), "utf8");
163
+ return { entry, created, filled, wrote, dryRun: input.dryRun === true };
164
+ }
165
+ /** The relationship type of an episode→prototype edge already on the wheel. Never throws. */
166
+ export async function existingPrototypeRelation(mwUrl, episodeNodeId, nodeId, options = {}) {
167
+ const listing = await wheelJson(options.fetchImpl ?? fetch, `${mwUrl.replace(/\/+$/, "")}/api/edges?limit=all`);
168
+ if (!listing.ok)
169
+ return undefined;
170
+ const edge = edgesFrom(listing.body).find((e) => String(e.from_id) === episodeNodeId && String(e.to_id) === nodeId);
171
+ return typeof edge?.relationship_type === "string" && edge.relationship_type ? edge.relationship_type : undefined;
172
+ }
173
+ /** The editing address a prototype node holds, for a viewer the door has already checked. Never throws. */
174
+ export async function prototypeEditorUrl(mwUrl, slug, options = {}) {
175
+ const read = await wheelJson(options.fetchImpl ?? fetch, `${mwUrl.replace(/\/+$/, "")}/api/nodes/${encodeURIComponent(prototypeNodeId(slug))}`);
176
+ if (!read.ok)
177
+ return undefined;
178
+ const editor = read.body?.node?.metadata?.editor_url;
179
+ return typeof editor === "string" && editor ? editor : undefined;
180
+ }
181
+ /**
182
+ * Put the prototype node and the episode→prototype edge on the wheel. A
183
+ * prototype is a `knowledge` node. When the node exists, only an editing
184
+ * address it lacks is added, so a hand-written name and description stay.
185
+ */
186
+ export async function projectEpisodePrototype(mwUrl, input, options = {}) {
187
+ const fetchImpl = options.fetchImpl ?? fetch;
188
+ const base = mwUrl.replace(/\/+$/, "");
189
+ const nodeId = prototypeNodeId(input.entry.id);
190
+ const edgeId = `${input.episodeNodeId}:${nodeId}`;
191
+ const projection = {
192
+ node: { id: nodeId, state: "pending" },
193
+ edge: { id: edgeId, state: "pending", relationship_type: input.relation },
194
+ };
195
+ const nodeUrl = `${base}/api/nodes/${encodeURIComponent(nodeId)}`;
196
+ const read = await wheelJson(fetchImpl, nodeUrl);
197
+ if (read.ok) {
198
+ const node = read.body?.node;
199
+ if (!input.editor || node?.metadata?.editor_url) {
200
+ projection.node.state = "already-present";
201
+ }
202
+ else if (options.dryRun) {
203
+ projection.node.state = "skipped";
204
+ }
205
+ else {
206
+ const patched = await wheelJson(fetchImpl, nodeUrl, {
207
+ method: "PATCH",
208
+ headers: { "content-type": "application/json" },
209
+ body: JSON.stringify({ metadata: { editor_url: input.editor } }),
210
+ });
211
+ projection.node = patched.ok ? { id: nodeId, state: "refreshed" } : { id: nodeId, state: "pending", error: failure("PATCH", nodeUrl, patched) };
212
+ }
213
+ }
214
+ else if (read.status === 404) {
215
+ if (options.dryRun) {
216
+ projection.node.state = "skipped";
217
+ }
218
+ else {
219
+ const title = input.entry.title ?? input.entry.id;
220
+ const created = await wheelJson(fetchImpl, `${base}/api/nodes`, {
221
+ method: "POST",
222
+ headers: { "content-type": "application/json" },
223
+ body: JSON.stringify({
224
+ id: nodeId,
225
+ type: "knowledge",
226
+ name: `Prototype — ${title}`,
227
+ description: `A prototype made from episode ${input.episodeFolder}: ${title}.`,
228
+ direction: "south",
229
+ metadata: {
230
+ kind: PROTOTYPE_NODE_KIND,
231
+ slug: input.entry.id,
232
+ public_url: input.entry.url,
233
+ address: prototypeReference(input.entry.id),
234
+ episode_path: input.episodeFolder,
235
+ ...(input.entry.made_with ? { made_with: input.entry.made_with } : {}),
236
+ ...(input.entry.source ? { source: input.entry.source } : {}),
237
+ ...(input.entry.commit ? { commit: input.entry.commit } : {}),
238
+ ...(input.entry.issue ? { issue: input.entry.issue } : {}),
239
+ ...(input.entry.reads?.length ? { reads: input.entry.reads } : {}),
240
+ ...(input.editor ? { editor_url: input.editor } : {}),
241
+ },
242
+ }),
243
+ });
244
+ projection.node = created.ok ? { id: nodeId, state: "created" } : { id: nodeId, state: "pending", error: failure("POST", `${base}/api/nodes`, created) };
245
+ }
246
+ }
247
+ else {
248
+ projection.node = { id: nodeId, state: "pending", error: failure("GET", nodeUrl, read) };
249
+ }
250
+ if (projection.node.state === "pending") {
251
+ projection.edge.error = "the prototype node is not on the wheel yet";
252
+ return projection;
253
+ }
254
+ const edgesUrl = `${base}/api/edges`;
255
+ const listing = await wheelJson(fetchImpl, `${edgesUrl}?limit=all`);
256
+ if (!listing.ok) {
257
+ projection.edge.error = failure("GET", edgesUrl, listing);
258
+ return projection;
259
+ }
260
+ const existing = edgesFrom(listing.body).find((edge) => String(edge.from_id) === input.episodeNodeId && String(edge.to_id) === nodeId);
261
+ if (existing) {
262
+ projection.edge = { id: edgeId, state: "already-present", relationship_type: String(existing.relationship_type ?? input.relation) };
263
+ return projection;
264
+ }
265
+ if (options.dryRun) {
266
+ projection.edge.state = "skipped";
267
+ return projection;
268
+ }
269
+ const posted = await wheelJson(fetchImpl, edgesUrl, {
270
+ method: "POST",
271
+ headers: { "content-type": "application/json" },
272
+ body: JSON.stringify({ from_id: input.episodeNodeId, to_id: nodeId, relationship_type: input.relation, strength: 1, obligations: [] }),
273
+ });
274
+ if (posted.ok && posted.body?.replaced === true) {
275
+ 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" };
276
+ }
277
+ else if (posted.ok)
278
+ projection.edge.state = "created";
279
+ else if (posted.status === 409)
280
+ projection.edge.state = "already-present";
281
+ else
282
+ projection.edge.error = failure("POST", edgesUrl, posted);
283
+ return projection;
284
+ }
285
+ export { DEFAULT_PROTOTYPE_RELATION };
286
+ //# sourceMappingURL=prototype.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prototype.js","sourceRoot":"","sources":["../src/prototype.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@
7
7
  */
8
8
  export * from "./chronicle-dsl.js";
9
9
  export * from "./foundation-dsl.js";
10
+ export * from "./artefact-dsl.js";
11
+ export * from "./rise-dsl.js";
10
12
  export * from "./text-references.js";
11
13
  export * from "./markdown-directives.js";
12
14
  //# sourceMappingURL=references.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA"}
@@ -7,6 +7,8 @@
7
7
  */
8
8
  export * from "./chronicle-dsl.js";
9
9
  export * from "./foundation-dsl.js";
10
+ export * from "./artefact-dsl.js";
11
+ export * from "./rise-dsl.js";
10
12
  export * from "./text-references.js";
11
13
  export * from "./markdown-directives.js";
12
14
  //# sourceMappingURL=references.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA"}
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The RISE address — a specification, wherever its repository is checked out
3
+ * (jgwill/Miadi#769, A4; Guillaume, 2026-10-10: "rise://<owner>/<repo>/<filepath>
4
+ * that way we just have to wire something locally of where the repo is").
5
+ *
6
+ * rise://<owner>/<repo>/<path>[@<commit>]
7
+ *
8
+ * rise://jgwill/Miadi/rispecs/AGENTS.md
9
+ * rise://jgwill/llms-txt/llms-rise-framework.txt@27cf18f
10
+ * rise://jgwill/episodes/miadi-chronicle/2026-10-10-episode-552-x/rispecs/what-an-episode-holds/SPEC.md
11
+ *
12
+ * The address names the repository and the file, never a host path. Where
13
+ * that repository is checked out on this host is a local map, read by the
14
+ * server-only `rise-workspaces.ts` (exported from the package root, never from
15
+ * `./references`, which stays free of Node so a browser can take it). A host
16
+ * with no checkout opens the file on GitHub.
17
+ * Grounding: foundations/resource-addressing-and-terminal-hypermedia/.
18
+ */
19
+ export declare const RISE_SCHEME = "rise:";
20
+ export interface ParsedRiseUri {
21
+ uri: string;
22
+ canonical: string;
23
+ owner: string;
24
+ repo: string;
25
+ /** Repository-relative path, forward slashes, no leading slash. */
26
+ path: string;
27
+ /** A commit, tag or branch the address pins. */
28
+ commit?: string;
29
+ query: Record<string, string>;
30
+ options: Record<string, string>;
31
+ fragment?: string;
32
+ }
33
+ export declare function isRiseUri(href: string | undefined): boolean;
34
+ export declare function canonicalRiseRef(owner: string, repo: string, path: string, commit?: string): string;
35
+ export declare function parseRiseUri(uri: string): ParsedRiseUri | null;
36
+ /** The wheel node id a spec address names: `rise:<owner>/<repo>/<path>` (no commit: one node per file). */
37
+ export declare function riseNodeId(parsed: Pick<ParsedRiseUri, "owner" | "repo" | "path">): string;
38
+ /** Repositories whose remote is not GitHub: `jgwill/episodes` lives on gaia (`/srv/git/jgwill/episodes.git`). */
39
+ export declare const RISE_REPOS_WITHOUT_GITHUB: ReadonlySet<string>;
40
+ /** The file on GitHub, at the pinned commit or at HEAD of the default branch; null when the repository has no GitHub page. */
41
+ export declare function riseGithubUrl(parsed: Pick<ParsedRiseUri, "owner" | "repo" | "path" | "commit" | "fragment">, defaultRef?: string): string | null;
42
+ /** Every `rise:` address in a text, as written, in order of first appearance; code is skipped. */
43
+ export declare function extractRiseUris(text: string): string[];
44
+ //# sourceMappingURL=rise-dsl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rise-dsl.d.ts","sourceRoot":"","sources":["../src/rise-dsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,eAAO,MAAM,WAAW,UAAU,CAAA;AAElC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AASD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3D;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAEnG;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAyB9D;AAED,2GAA2G;AAC3G,wBAAgB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAEzF;AAED,iHAAiH;AACjH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAgC,CAAA;AAE1F,8HAA8H;AAC9H,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC,EAAE,UAAU,SAAS,GAAG,MAAM,GAAG,IAAI,CAKhJ;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAatD"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * The RISE address — a specification, wherever its repository is checked out
3
+ * (jgwill/Miadi#769, A4; Guillaume, 2026-10-10: "rise://<owner>/<repo>/<filepath>
4
+ * that way we just have to wire something locally of where the repo is").
5
+ *
6
+ * rise://<owner>/<repo>/<path>[@<commit>]
7
+ *
8
+ * rise://jgwill/Miadi/rispecs/AGENTS.md
9
+ * rise://jgwill/llms-txt/llms-rise-framework.txt@27cf18f
10
+ * rise://jgwill/episodes/miadi-chronicle/2026-10-10-episode-552-x/rispecs/what-an-episode-holds/SPEC.md
11
+ *
12
+ * The address names the repository and the file, never a host path. Where
13
+ * that repository is checked out on this host is a local map, read by the
14
+ * server-only `rise-workspaces.ts` (exported from the package root, never from
15
+ * `./references`, which stays free of Node so a browser can take it). A host
16
+ * with no checkout opens the file on GitHub.
17
+ * Grounding: foundations/resource-addressing-and-terminal-hypermedia/.
18
+ */
19
+ import { OPTION_PREFIX } from "./chronicle-dsl.js";
20
+ export const RISE_SCHEME = "rise:";
21
+ const NAME = "[A-Za-z0-9][A-Za-z0-9._-]{0,99}";
22
+ // [1]=owner [2]=repo [3]=path [4]=commit [5]=query [6]=fragment
23
+ const RISE_URI_RE = new RegExp(`^rise:(?:\\/\\/)?(${NAME})\\/(${NAME})\\/((?:[A-Za-z0-9._~-]{1,128}\\/){0,16}[A-Za-z0-9._~-]{1,128})(?:@([A-Za-z0-9._\\/-]{1,80}))?(?:\\?([^#\\u0000-\\u001f\\u007f-\\u009f]*))?(?:#([^\\u0000-\\u001f\\u007f-\\u009f]*))?$`, "i");
24
+ export function isRiseUri(href) {
25
+ return typeof href === "string" && /^rise:/i.test(href.trim());
26
+ }
27
+ function safeDecode(s) {
28
+ try {
29
+ return decodeURIComponent(s);
30
+ }
31
+ catch {
32
+ return s;
33
+ }
34
+ }
35
+ export function canonicalRiseRef(owner, repo, path, commit) {
36
+ return `${RISE_SCHEME}//${owner}/${repo}/${path}${commit ? `@${commit}` : ""}`;
37
+ }
38
+ export function parseRiseUri(uri) {
39
+ const trimmed = uri.trim();
40
+ const m = RISE_URI_RE.exec(trimmed);
41
+ if (!m || !m[1] || !m[2] || !m[3])
42
+ return null;
43
+ const [, owner, repo, path, commit] = m;
44
+ const segments = path.split("/");
45
+ if (segments.some((s) => s === "." || s === ".." || s.startsWith(".")))
46
+ return null;
47
+ if (owner.includes("..") || repo.includes(".."))
48
+ return null;
49
+ const query = {};
50
+ const options = {};
51
+ for (const pair of (m[5] ?? "").split("&")) {
52
+ if (!pair)
53
+ continue;
54
+ const eq = pair.indexOf("=");
55
+ const key = safeDecode(eq === -1 ? pair : pair.slice(0, eq));
56
+ const value = eq === -1 ? "" : safeDecode(pair.slice(eq + 1));
57
+ if (key.startsWith(OPTION_PREFIX))
58
+ options[key.slice(OPTION_PREFIX.length)] = value;
59
+ else
60
+ query[key] = value;
61
+ }
62
+ const fragment = m[6] || undefined;
63
+ const params = [
64
+ ...Object.entries(query).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`),
65
+ ...Object.entries(options).map(([k, v]) => `${OPTION_PREFIX}${encodeURIComponent(k)}=${encodeURIComponent(v)}`),
66
+ ];
67
+ const canonical = canonicalRiseRef(owner, repo, path, commit) + (params.length > 0 ? `?${params.join("&")}` : "") + (fragment ? `#${fragment}` : "");
68
+ return { uri: trimmed, canonical, owner: owner, repo: repo, path: path, ...(commit ? { commit } : {}), query, options, ...(fragment ? { fragment } : {}) };
69
+ }
70
+ /** The wheel node id a spec address names: `rise:<owner>/<repo>/<path>` (no commit: one node per file). */
71
+ export function riseNodeId(parsed) {
72
+ return `rise:${parsed.owner}/${parsed.repo}/${parsed.path}`;
73
+ }
74
+ /** Repositories whose remote is not GitHub: `jgwill/episodes` lives on gaia (`/srv/git/jgwill/episodes.git`). */
75
+ export const RISE_REPOS_WITHOUT_GITHUB = new Set(["jgwill/episodes"]);
76
+ /** The file on GitHub, at the pinned commit or at HEAD of the default branch; null when the repository has no GitHub page. */
77
+ export function riseGithubUrl(parsed, defaultRef = "HEAD") {
78
+ if (RISE_REPOS_WITHOUT_GITHUB.has(`${parsed.owner}/${parsed.repo}`))
79
+ return null;
80
+ const ref = parsed.commit ?? defaultRef;
81
+ const path = parsed.path.split("/").map(encodeURIComponent).join("/");
82
+ return `https://github.com/${encodeURIComponent(parsed.owner)}/${encodeURIComponent(parsed.repo)}/blob/${encodeURIComponent(ref)}/${path}${parsed.fragment ? `#${encodeURI(parsed.fragment)}` : ""}`;
83
+ }
84
+ /** Every `rise:` address in a text, as written, in order of first appearance; code is skipped. */
85
+ export function extractRiseUris(text) {
86
+ const prose = text.replace(/```[\s\S]*?```/g, " ").replace(/`[^`\n]*`/g, " ");
87
+ const re = /(?<![\w/?=&%.~+:@#!-])rise:(?:\/\/)?[A-Za-z0-9._~:/?=&%#+@-]{1,600}/gi;
88
+ const seen = new Set();
89
+ const out = [];
90
+ for (const m of prose.matchAll(re)) {
91
+ const raw = m[0].replace(/[.,;:)\]]+$/, "");
92
+ if (!seen.has(raw) && parseRiseUri(raw)) {
93
+ seen.add(raw);
94
+ out.push(raw);
95
+ }
96
+ }
97
+ return out;
98
+ }
99
+ //# sourceMappingURL=rise-dsl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rise-dsl.js","sourceRoot":"","sources":["../src/rise-dsl.ts"],"names":[],"mappings":"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"}