@miadi/inquiry-weave 0.8.3 → 0.10.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.
- package/LICENSE +21 -0
- package/README.md +22 -3
- package/dist/attention.d.ts +75 -0
- package/dist/attention.d.ts.map +1 -0
- package/dist/attention.js +356 -0
- package/dist/attention.js.map +1 -0
- package/dist/bin.js +0 -0
- package/dist/chronicle-terminal.d.ts.map +1 -1
- package/dist/chronicle-terminal.js +2 -1
- package/dist/chronicle-terminal.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -3
- package/dist/cli.js.map +1 -1
- package/dist/closing.d.ts +60 -0
- package/dist/closing.d.ts.map +1 -0
- package/dist/closing.js +199 -0
- package/dist/closing.js.map +1 -0
- package/dist/env.d.ts +18 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +29 -1
- package/dist/env.js.map +1 -1
- package/dist/git-landing.d.ts +119 -0
- package/dist/git-landing.d.ts.map +1 -0
- package/dist/git-landing.js +280 -0
- package/dist/git-landing.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +15 -3
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +331 -4
- package/dist/mcp-server.js.map +1 -1
- package/dist/mint.d.ts +243 -0
- package/dist/mint.d.ts.map +1 -0
- package/dist/mint.js +742 -0
- package/dist/mint.js.map +1 -0
- package/dist/skill.d.ts.map +1 -1
- package/dist/skill.js +4 -3
- package/dist/skill.js.map +1 -1
- package/dist/terminal-install.d.ts.map +1 -1
- package/dist/terminal-install.js +6 -1
- package/dist/terminal-install.js.map +1 -1
- package/package.json +8 -9
- package/rispecs/README.rise.md +5 -0
- package/rispecs/RISPEC.md +9 -0
package/dist/mcp-server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
* inquiry-weave-mcp —
|
|
4
|
-
*
|
|
3
|
+
* inquiry-weave-mcp — inquiry threads and the Chronicle relations/actions
|
|
4
|
+
* around them.
|
|
5
5
|
*
|
|
6
6
|
* Feeds on the token-free HTTP surface (`/api/inquiry`, Etuaptmumk-RSM#259):
|
|
7
7
|
* no GitHub token exists in this process, by construction — the anonymity is
|
|
@@ -12,15 +12,93 @@
|
|
|
12
12
|
* Env:
|
|
13
13
|
* MIADI_INQUIRY_API_BASE required — e.g. http://localhost:3000 or the
|
|
14
14
|
* deployed app origin. No default is invented.
|
|
15
|
-
* MIADI_CHRONICLE_ROOT optional — enables inquiry_weave_kin
|
|
15
|
+
* MIADI_CHRONICLE_ROOT optional — enables inquiry_weave_kin and the
|
|
16
|
+
* Chronicle ATTENTION tools.
|
|
17
|
+
* MIADI_CHRONICLE_MW_URL optional — the one Chronicle wheel, read FIRST;
|
|
18
|
+
* MW_API_URL_OVERRIDE and MW_API_URL are legacy
|
|
19
|
+
* fallbacks. Without any of them an answer remains
|
|
20
|
+
* file-first and reports pending.
|
|
21
|
+
* MIADI_API_TOKEN_WRITER optional — presented to the app when the episode
|
|
22
|
+
* tools forward over HTTP (see below).
|
|
23
|
+
*
|
|
24
|
+
* The episode tools (chronicle_episode_*) speak to the library when
|
|
25
|
+
* MIADI_CHRONICLE_ROOT names a chronicle on this host, and otherwise forward to
|
|
26
|
+
* the app's /api/chronicle/episodes door at MIADI_INQUIRY_API_BASE — so an agent
|
|
27
|
+
* whose MCP host has no chronicle still has the verbs. Ref: jgwill/Miadi#621.
|
|
16
28
|
*
|
|
17
29
|
* Zero new dependencies: raw newline-delimited JSON-RPC over stdio.
|
|
18
30
|
*/
|
|
19
31
|
import { readdirSync, readFileSync, existsSync } from "node:fs";
|
|
20
32
|
import { join } from "node:path";
|
|
21
33
|
import { createInterface } from "node:readline";
|
|
34
|
+
import { mwUrlFromEnv } from "./env.js";
|
|
35
|
+
import { answerChronicleAttention, getChronicleAttention, listChronicleAttention, } from "./attention.js";
|
|
36
|
+
import { authorEpisodeLineage, checkEpisodeNumber, episodeDoorStatus, landEpisode, mintEpisode, previewAllocation, redeemEpisodeRegistration, resolveDoorContext, weaveEpisodeInquiry, } from "./mint.js";
|
|
22
37
|
const API_BASE = (process.env.MIADI_INQUIRY_API_BASE || "").replace(/\/$/, "");
|
|
23
38
|
const CHRONICLE_ROOT = process.env.MIADI_CHRONICLE_ROOT || "";
|
|
39
|
+
function chronicleRoot() {
|
|
40
|
+
if (!CHRONICLE_ROOT) {
|
|
41
|
+
throw new Error("MIADI_CHRONICLE_ROOT is not set — Chronicle attention identity cannot be resolved without its vessel root.");
|
|
42
|
+
}
|
|
43
|
+
return CHRONICLE_ROOT;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* `MIADI_CHRONICLE_MW_URL` is read first — it is the wheel variable of record.
|
|
47
|
+
* `MW_API_URL_OVERRIDE` and `MW_API_URL` are legacy fallbacks. No default url
|
|
48
|
+
* is invented: without one the answer stays file-first and reports pending.
|
|
49
|
+
*/
|
|
50
|
+
function chronicleWheelUrl() {
|
|
51
|
+
return mwUrlFromEnv(process.env) ?? "";
|
|
52
|
+
}
|
|
53
|
+
/** Library when the chronicle is on this host; the HTTP door otherwise. */
|
|
54
|
+
function episodeDoor() {
|
|
55
|
+
if (CHRONICLE_ROOT && existsSync(CHRONICLE_ROOT)) {
|
|
56
|
+
return { mode: "library", context: resolveDoorContext({ chronicleRoot: CHRONICLE_ROOT }) };
|
|
57
|
+
}
|
|
58
|
+
if (API_BASE)
|
|
59
|
+
return { mode: "http" };
|
|
60
|
+
throw new Error("neither MIADI_CHRONICLE_ROOT (a chronicle on this host) nor MIADI_INQUIRY_API_BASE (the app's /api/chronicle/episodes door) is set — the episode tools need one of them.");
|
|
61
|
+
}
|
|
62
|
+
async function apiCall(method, path, body) {
|
|
63
|
+
const headers = { Accept: "application/json" };
|
|
64
|
+
const token = process.env.MIADI_API_TOKEN_WRITER?.trim();
|
|
65
|
+
if (token)
|
|
66
|
+
headers.Authorization = `Bearer ${token}`;
|
|
67
|
+
if (body !== undefined)
|
|
68
|
+
headers["content-type"] = "application/json";
|
|
69
|
+
const res = await fetch(`${API_BASE}${path}`, {
|
|
70
|
+
method,
|
|
71
|
+
headers,
|
|
72
|
+
body: body === undefined ? undefined : JSON.stringify(body),
|
|
73
|
+
});
|
|
74
|
+
const text = await res.text();
|
|
75
|
+
let parsed = text;
|
|
76
|
+
try {
|
|
77
|
+
parsed = JSON.parse(text);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
/* a non-JSON body is still the answer */
|
|
81
|
+
}
|
|
82
|
+
if (!res.ok) {
|
|
83
|
+
const detail = typeof parsed === "object" && parsed ? JSON.stringify(parsed) : String(parsed);
|
|
84
|
+
throw new Error(`${method} ${path} answered ${res.status}: ${detail.slice(0, 600)}`);
|
|
85
|
+
}
|
|
86
|
+
return parsed;
|
|
87
|
+
}
|
|
88
|
+
function episodeRefArg(args) {
|
|
89
|
+
const ref = typeof args.episode === "string" ? args.episode.trim() : "";
|
|
90
|
+
if (!ref)
|
|
91
|
+
throw new Error("episode is required (a number, epNNN, or a directory name)");
|
|
92
|
+
return ref;
|
|
93
|
+
}
|
|
94
|
+
function lineageArgs(args) {
|
|
95
|
+
return {
|
|
96
|
+
field: args.field,
|
|
97
|
+
to: typeof args.to === "string" ? args.to : "",
|
|
98
|
+
relation: typeof args.relation === "string" ? args.relation : "",
|
|
99
|
+
reverse: typeof args.reverse === "string" ? args.reverse : undefined,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
24
102
|
async function apiGet(path) {
|
|
25
103
|
if (!API_BASE) {
|
|
26
104
|
throw new Error("MIADI_INQUIRY_API_BASE is not set — point it at the app that serves /api/inquiry (local or deployed). No default is invented.");
|
|
@@ -90,6 +168,154 @@ const TOOLS = [
|
|
|
90
168
|
required: ["issueId"],
|
|
91
169
|
},
|
|
92
170
|
},
|
|
171
|
+
{
|
|
172
|
+
name: "chronicle_attention_list",
|
|
173
|
+
description: "Pull what needs human attention from attention.json stores, newest first. Optionally scope to one episode or include answered history.",
|
|
174
|
+
inputSchema: {
|
|
175
|
+
type: "object",
|
|
176
|
+
properties: {
|
|
177
|
+
episode: { type: "string", description: "Episode number, epNNN, or folder name." },
|
|
178
|
+
state: { type: "string", enum: ["open", "answered", "all"], default: "open" },
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
name: "chronicle_attention_get",
|
|
184
|
+
description: "Pull one attention item with its question, unlock, state, and safe excerpts from its episode-local depth references.",
|
|
185
|
+
inputSchema: {
|
|
186
|
+
type: "object",
|
|
187
|
+
properties: {
|
|
188
|
+
episode: { type: "string", description: "Episode number, epNNN, or folder name." },
|
|
189
|
+
id: { type: "string", description: "Stable attention item id." },
|
|
190
|
+
},
|
|
191
|
+
required: ["episode", "id"],
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: "chronicle_attention_answer",
|
|
196
|
+
description: "Record the human's explicit answer to one open attention item. Atomically updates the episode, projects to the Chronicle wheel, and reports pending honestly.",
|
|
197
|
+
inputSchema: {
|
|
198
|
+
type: "object",
|
|
199
|
+
properties: {
|
|
200
|
+
episode: { type: "string", description: "Episode number, epNNN, or folder name." },
|
|
201
|
+
id: { type: "string", description: "Stable attention item id." },
|
|
202
|
+
answer: { type: "string", minLength: 1, maxLength: 10000 },
|
|
203
|
+
},
|
|
204
|
+
required: ["episode", "id", "answer"],
|
|
205
|
+
},
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: "chronicle_episode_number",
|
|
209
|
+
description: "Is an episode number free everywhere the chronicle is known (disk, origin/main, wheel)? Without a number: preview the allocation (max+1, never fills a hole). Read-only; fetches origin.",
|
|
210
|
+
inputSchema: {
|
|
211
|
+
type: "object",
|
|
212
|
+
properties: { number: { type: "integer", minimum: 1 } },
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: "chronicle_episode_mint",
|
|
217
|
+
description: "Mint a Chronicle episode vessel in mkepisode's shape (episode.yaml + .mw-registration.json), register its card, commit and push it path-limited, and report the five-stage closing proof. dryRun previews without writing.",
|
|
218
|
+
inputSchema: {
|
|
219
|
+
type: "object",
|
|
220
|
+
properties: {
|
|
221
|
+
title: { type: "string", minLength: 1 },
|
|
222
|
+
goal: { type: "string", minLength: 1 },
|
|
223
|
+
references: { type: "array", items: { type: "string" }, minItems: 1, description: "Provenance; the first owner/repo#n becomes source_issue." },
|
|
224
|
+
number: { type: "integer", minimum: 1, description: "Explicit number; absent → allocated max+1 over disk ∪ origin ∪ wheel." },
|
|
225
|
+
date: { type: "string", description: "YYYY-MM-DD; default today (local)." },
|
|
226
|
+
status: { type: "string", default: "vessel" },
|
|
227
|
+
lineage: {
|
|
228
|
+
type: "array",
|
|
229
|
+
items: {
|
|
230
|
+
type: "object",
|
|
231
|
+
properties: {
|
|
232
|
+
field: { type: "string", enum: ["continues_from", "relates_to"] },
|
|
233
|
+
to: { type: "string" },
|
|
234
|
+
relation: { type: "string" },
|
|
235
|
+
reverse: { type: "string" },
|
|
236
|
+
},
|
|
237
|
+
required: ["field", "to", "relation"],
|
|
238
|
+
},
|
|
239
|
+
},
|
|
240
|
+
inquiry: {
|
|
241
|
+
type: "object",
|
|
242
|
+
properties: { artefact: { type: "string" }, issue: { type: "string" } },
|
|
243
|
+
required: ["artefact"],
|
|
244
|
+
},
|
|
245
|
+
register: { type: "boolean", default: true },
|
|
246
|
+
land: { type: "boolean", default: true },
|
|
247
|
+
dryRun: { type: "boolean", default: false },
|
|
248
|
+
},
|
|
249
|
+
required: ["title", "goal", "references"],
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: "chronicle_episode_status",
|
|
254
|
+
description: "The five-stage closing proof for one episode — created, committed, pushed, registered, receipt-verified — each with its probe and what it said, plus drift shapes and owed actions.",
|
|
255
|
+
inputSchema: {
|
|
256
|
+
type: "object",
|
|
257
|
+
properties: { episode: { type: "string", description: "Episode number, epNNN, or folder name." } },
|
|
258
|
+
required: ["episode"],
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
name: "chronicle_episode_land",
|
|
263
|
+
description: "Commit (path-limited to the vessel files) and push an episode that exists on disk — the recovery verb for a vessel some tool left uncommitted or unpushed.",
|
|
264
|
+
inputSchema: {
|
|
265
|
+
type: "object",
|
|
266
|
+
properties: {
|
|
267
|
+
episode: { type: "string" },
|
|
268
|
+
subject: { type: "string" },
|
|
269
|
+
dryRun: { type: "boolean", default: false },
|
|
270
|
+
},
|
|
271
|
+
required: ["episode"],
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
name: "chronicle_episode_lineage",
|
|
276
|
+
description: "Author one episode→episode lineage edge (manifest + wheel edge) on an existing episode, then land it.",
|
|
277
|
+
inputSchema: {
|
|
278
|
+
type: "object",
|
|
279
|
+
properties: {
|
|
280
|
+
episode: { type: "string" },
|
|
281
|
+
field: { type: "string", enum: ["continues_from", "relates_to"] },
|
|
282
|
+
to: { type: "string" },
|
|
283
|
+
relation: { type: "string" },
|
|
284
|
+
reverse: { type: "string", description: "When given, also author the reverse relates_to edge with this prose." },
|
|
285
|
+
land: { type: "boolean", default: true },
|
|
286
|
+
dryRun: { type: "boolean", default: false },
|
|
287
|
+
},
|
|
288
|
+
required: ["episode", "field", "to", "relation"],
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
name: "chronicle_episode_inquiry",
|
|
293
|
+
description: "Relate and sync an inquiry artefact that already exists on the server's shelf (by bare directory name) into an episode, register the weave on the wheel, and land the copy.",
|
|
294
|
+
inputSchema: {
|
|
295
|
+
type: "object",
|
|
296
|
+
properties: {
|
|
297
|
+
episode: { type: "string" },
|
|
298
|
+
artefact: { type: "string", description: "Directory name under MIADI_INQUIRY_ROOT — never a path." },
|
|
299
|
+
issue: { type: "string", description: "owner/repo#n" },
|
|
300
|
+
land: { type: "boolean", default: true },
|
|
301
|
+
dryRun: { type: "boolean", default: false },
|
|
302
|
+
},
|
|
303
|
+
required: ["episode", "artefact"],
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
name: "chronicle_episode_register",
|
|
308
|
+
description: "Redeem a registration: register the episode card on the wheel (idempotent), rewrite the receipt truthfully, and land the receipt.",
|
|
309
|
+
inputSchema: {
|
|
310
|
+
type: "object",
|
|
311
|
+
properties: {
|
|
312
|
+
episode: { type: "string" },
|
|
313
|
+
land: { type: "boolean", default: true },
|
|
314
|
+
dryRun: { type: "boolean", default: false },
|
|
315
|
+
},
|
|
316
|
+
required: ["episode"],
|
|
317
|
+
},
|
|
318
|
+
},
|
|
93
319
|
];
|
|
94
320
|
async function callTool(name, args) {
|
|
95
321
|
switch (name) {
|
|
@@ -101,6 +327,107 @@ async function callTool(name, args) {
|
|
|
101
327
|
return apiGet(`/api/inquiry/${Number(args.issueId)}`);
|
|
102
328
|
case "inquiry_weave_kin":
|
|
103
329
|
return weaveKin(Number(args.issueId));
|
|
330
|
+
case "chronicle_attention_list": {
|
|
331
|
+
const state = args.state === "answered" || args.state === "all" ? args.state : "open";
|
|
332
|
+
const episode = typeof args.episode === "string" && args.episode.trim()
|
|
333
|
+
? args.episode.trim()
|
|
334
|
+
: undefined;
|
|
335
|
+
const items = await listChronicleAttention(chronicleRoot(), { episode, state });
|
|
336
|
+
return { count: items.length, items };
|
|
337
|
+
}
|
|
338
|
+
case "chronicle_attention_get": {
|
|
339
|
+
const episode = typeof args.episode === "string" ? args.episode.trim() : "";
|
|
340
|
+
const id = typeof args.id === "string" ? args.id.trim() : "";
|
|
341
|
+
if (!episode || !id)
|
|
342
|
+
throw new Error("episode and id are required");
|
|
343
|
+
return getChronicleAttention(chronicleRoot(), episode, id, { includeContext: true });
|
|
344
|
+
}
|
|
345
|
+
case "chronicle_attention_answer": {
|
|
346
|
+
const episode = typeof args.episode === "string" ? args.episode.trim() : "";
|
|
347
|
+
const id = typeof args.id === "string" ? args.id.trim() : "";
|
|
348
|
+
const answer = typeof args.answer === "string" ? args.answer : "";
|
|
349
|
+
if (!episode || !id || !answer.trim())
|
|
350
|
+
throw new Error("episode, id, and a non-empty answer are required");
|
|
351
|
+
return answerChronicleAttention(chronicleRoot(), episode, id, answer, {
|
|
352
|
+
expectedState: "open",
|
|
353
|
+
mwUrl: chronicleWheelUrl(),
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
case "chronicle_episode_number": {
|
|
357
|
+
const door = episodeDoor();
|
|
358
|
+
const number = typeof args.number === "number" ? args.number : undefined;
|
|
359
|
+
if (door.mode === "http") {
|
|
360
|
+
return apiCall("GET", number === undefined ? "/api/chronicle/episodes?allocate=1" : `/api/chronicle/episodes?number=${number}`);
|
|
361
|
+
}
|
|
362
|
+
return number === undefined
|
|
363
|
+
? previewAllocation(door.context)
|
|
364
|
+
: checkEpisodeNumber(door.context, number);
|
|
365
|
+
}
|
|
366
|
+
case "chronicle_episode_mint": {
|
|
367
|
+
const door = episodeDoor();
|
|
368
|
+
const input = {
|
|
369
|
+
title: String(args.title ?? ""),
|
|
370
|
+
goal: String(args.goal ?? ""),
|
|
371
|
+
references: Array.isArray(args.references) ? args.references.map(String) : [],
|
|
372
|
+
number: typeof args.number === "number" ? args.number : undefined,
|
|
373
|
+
date: typeof args.date === "string" ? args.date : undefined,
|
|
374
|
+
status: typeof args.status === "string" ? args.status : undefined,
|
|
375
|
+
lineage: Array.isArray(args.lineage) ? args.lineage.map(lineageArgs) : undefined,
|
|
376
|
+
inquiry: args.inquiry && typeof args.inquiry === "object"
|
|
377
|
+
? { artefact: String(args.inquiry.artefact ?? ""), issue: typeof args.inquiry.issue === "string" ? String(args.inquiry.issue) : undefined }
|
|
378
|
+
: undefined,
|
|
379
|
+
register: args.register !== false,
|
|
380
|
+
land: args.land !== false,
|
|
381
|
+
dryRun: args.dryRun === true,
|
|
382
|
+
};
|
|
383
|
+
if (door.mode === "http")
|
|
384
|
+
return apiCall("POST", "/api/chronicle/episodes", input);
|
|
385
|
+
return mintEpisode(door.context, input);
|
|
386
|
+
}
|
|
387
|
+
case "chronicle_episode_status": {
|
|
388
|
+
const door = episodeDoor();
|
|
389
|
+
const ref = episodeRefArg(args);
|
|
390
|
+
if (door.mode === "http")
|
|
391
|
+
return apiCall("GET", `/api/chronicle/episodes/${encodeURIComponent(ref)}`);
|
|
392
|
+
return episodeDoorStatus(door.context, ref);
|
|
393
|
+
}
|
|
394
|
+
case "chronicle_episode_land": {
|
|
395
|
+
const door = episodeDoor();
|
|
396
|
+
const ref = episodeRefArg(args);
|
|
397
|
+
const input = { subject: typeof args.subject === "string" ? args.subject : undefined, dryRun: args.dryRun === true };
|
|
398
|
+
if (door.mode === "http")
|
|
399
|
+
return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/land`, input);
|
|
400
|
+
return landEpisode(door.context, ref, input);
|
|
401
|
+
}
|
|
402
|
+
case "chronicle_episode_lineage": {
|
|
403
|
+
const door = episodeDoor();
|
|
404
|
+
const ref = episodeRefArg(args);
|
|
405
|
+
const input = { ...lineageArgs(args), land: args.land !== false, dryRun: args.dryRun === true };
|
|
406
|
+
if (door.mode === "http")
|
|
407
|
+
return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/lineage`, input);
|
|
408
|
+
return authorEpisodeLineage(door.context, ref, input);
|
|
409
|
+
}
|
|
410
|
+
case "chronicle_episode_inquiry": {
|
|
411
|
+
const door = episodeDoor();
|
|
412
|
+
const ref = episodeRefArg(args);
|
|
413
|
+
const input = {
|
|
414
|
+
artefact: typeof args.artefact === "string" ? args.artefact : "",
|
|
415
|
+
issue: typeof args.issue === "string" ? args.issue : undefined,
|
|
416
|
+
land: args.land !== false,
|
|
417
|
+
dryRun: args.dryRun === true,
|
|
418
|
+
};
|
|
419
|
+
if (door.mode === "http")
|
|
420
|
+
return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/inquiry`, input);
|
|
421
|
+
return weaveEpisodeInquiry(door.context, ref, input);
|
|
422
|
+
}
|
|
423
|
+
case "chronicle_episode_register": {
|
|
424
|
+
const door = episodeDoor();
|
|
425
|
+
const ref = episodeRefArg(args);
|
|
426
|
+
const input = { land: args.land !== false, dryRun: args.dryRun === true };
|
|
427
|
+
if (door.mode === "http")
|
|
428
|
+
return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/register`, input);
|
|
429
|
+
return redeemEpisodeRegistration(door.context, ref, input);
|
|
430
|
+
}
|
|
104
431
|
default:
|
|
105
432
|
throw new Error(`unknown tool "${name}"`);
|
|
106
433
|
}
|
|
@@ -131,7 +458,7 @@ rl.on("line", (line) => {
|
|
|
131
458
|
reply(id, {
|
|
132
459
|
protocolVersion: params?.protocolVersion || "2024-11-05",
|
|
133
460
|
capabilities: { tools: {} },
|
|
134
|
-
serverInfo: { name: "inquiry-weave-mcp", version: "0.
|
|
461
|
+
serverInfo: { name: "inquiry-weave-mcp", version: "0.9.0" },
|
|
135
462
|
});
|
|
136
463
|
break;
|
|
137
464
|
case "tools/list":
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/mint.d.ts
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The episode door — mint, land, relate, author lineage, redeem a receipt —
|
|
3
|
+
* for a caller that never touches the filesystem: the HTTP route and the MCP
|
|
4
|
+
* server both call these and nothing else.
|
|
5
|
+
*
|
|
6
|
+
* The vessel manifest written here is passages' mkepisode shape
|
|
7
|
+
* (packages/passages/js/lib/mkepisode.js buildManifestYaml), lifted into this
|
|
8
|
+
* package so the app, which already depends on @miadi/inquiry-weave, has a
|
|
9
|
+
* typed writer without a process boundary. Byte parity is tested against
|
|
10
|
+
* passages' own function. scaffoldEpisode() keeps writing its thinner
|
|
11
|
+
* `status: scaffold` record for the callers it already has.
|
|
12
|
+
*
|
|
13
|
+
* Ref: jgwill/Miadi#621, jgwill/Miadi#584, jgwill/Miadi#501.
|
|
14
|
+
*/
|
|
15
|
+
import { type RelateResult } from "./relate.js";
|
|
16
|
+
import { type SyncResult } from "./sync.js";
|
|
17
|
+
import { type RegisterResult } from "./register.js";
|
|
18
|
+
import { type AppendLineageEdgeResult, type LineageField } from "./lineage.js";
|
|
19
|
+
import { type LineageEdgeOutcome } from "./lineage-edge.js";
|
|
20
|
+
import { type EpisodeIdentity } from "./episode.js";
|
|
21
|
+
import { type EpisodeNodeOutcome } from "./episode-node.js";
|
|
22
|
+
import { type IntegrationResult, type LandPathsResult } from "./git-landing.js";
|
|
23
|
+
import { type ClosingReport } from "./closing.js";
|
|
24
|
+
export type EpisodeServiceErrorCode = "identity_required" | "invalid_number" | "invalid_date" | "invalid_field" | "invalid_ref" | "invalid_artefact" | "invalid_reference" | "number_taken" | "number_unverifiable" | "wheel_refused" | "chronicle_not_main" | "chronicle_busy" | "chronicle_integration_refused" | "manifest_missing" | "weave_error";
|
|
25
|
+
export declare class EpisodeServiceError extends Error {
|
|
26
|
+
readonly code: EpisodeServiceErrorCode;
|
|
27
|
+
readonly detail?: unknown | undefined;
|
|
28
|
+
constructor(code: EpisodeServiceErrorCode, message: string, detail?: unknown | undefined);
|
|
29
|
+
}
|
|
30
|
+
export declare function normalizeSlug(title: string): string;
|
|
31
|
+
export declare function yamlScalar(value: unknown): string;
|
|
32
|
+
export interface VesselManifestInput {
|
|
33
|
+
number: number;
|
|
34
|
+
title: string;
|
|
35
|
+
slug: string;
|
|
36
|
+
date: string;
|
|
37
|
+
goal: string;
|
|
38
|
+
references: string[];
|
|
39
|
+
status?: string;
|
|
40
|
+
}
|
|
41
|
+
/** Byte-identical to passages' mkepisode buildManifestYaml(). */
|
|
42
|
+
export declare function buildVesselManifestYaml(vessel: VesselManifestInput): string;
|
|
43
|
+
export declare function findSourceIssue(references: string[]): string | undefined;
|
|
44
|
+
/** `MIADI_CHRONICLE_MW_URL` is the wheel variable of record (chronicle commit 1900c1b, 2026-09-04). */
|
|
45
|
+
export declare function chronicleWheelUrl(env?: NodeJS.ProcessEnv): string;
|
|
46
|
+
export interface EpisodeDoorContext {
|
|
47
|
+
chronicleRoot: string;
|
|
48
|
+
inquiryRoot: string;
|
|
49
|
+
wheelUrl: string;
|
|
50
|
+
/** Measured lazily from chronicleRoot when absent. */
|
|
51
|
+
gitRoot?: string;
|
|
52
|
+
now?: () => Date;
|
|
53
|
+
fetchImpl?: typeof fetch;
|
|
54
|
+
}
|
|
55
|
+
export declare function resolveDoorContext(options?: Partial<EpisodeDoorContext>, env?: NodeJS.ProcessEnv): EpisodeDoorContext;
|
|
56
|
+
export interface NumberSighting {
|
|
57
|
+
name: string;
|
|
58
|
+
seen: "disk" | "origin" | "wheel";
|
|
59
|
+
}
|
|
60
|
+
export interface NumberCheck {
|
|
61
|
+
number: number;
|
|
62
|
+
taken: boolean;
|
|
63
|
+
existing: NumberSighting[];
|
|
64
|
+
observed: string;
|
|
65
|
+
originAnswered: boolean;
|
|
66
|
+
wheelAnswered: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Is `number` free everywhere the chronicle is known? Fetches origin first
|
|
70
|
+
* (jgwill/Miadi#501) and lists the wheel (jgwill/Miadi#584). Read-only.
|
|
71
|
+
*/
|
|
72
|
+
export declare function checkEpisodeNumber(context: EpisodeDoorContext, number: number, options?: {
|
|
73
|
+
skipFetch?: boolean;
|
|
74
|
+
}): Promise<NumberCheck>;
|
|
75
|
+
export interface AllocationPreview {
|
|
76
|
+
next: number;
|
|
77
|
+
max: number;
|
|
78
|
+
observed: string;
|
|
79
|
+
originAnswered: boolean;
|
|
80
|
+
wheelAnswered: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* max(disk ∪ origin/main ∪ wheel) + 1. Never fills a hole. Refuses when the
|
|
84
|
+
* wheel does not answer: an allocation blind to the wheel is the #584 defect.
|
|
85
|
+
*/
|
|
86
|
+
export declare function previewAllocation(context: EpisodeDoorContext, options?: {
|
|
87
|
+
skipFetch?: boolean;
|
|
88
|
+
}): Promise<AllocationPreview>;
|
|
89
|
+
export interface RegistrationOutcome {
|
|
90
|
+
state: EpisodeNodeOutcome["state"] | "skipped" | "would-register";
|
|
91
|
+
node_id: string;
|
|
92
|
+
url: string;
|
|
93
|
+
error?: string;
|
|
94
|
+
receiptWritten: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The files the door itself knows to be the vessel's, relative to the git root:
|
|
98
|
+
* manifest, receipt, the weave record, and each synced artefact copy. Never the
|
|
99
|
+
* whole directory — a chapter someone is drafting there is not the door's.
|
|
100
|
+
*/
|
|
101
|
+
export declare function vesselPaths(gitRoot: string, episode: EpisodeIdentity): Promise<string[]>;
|
|
102
|
+
declare function readManifestSummary(episode: EpisodeIdentity): Promise<{
|
|
103
|
+
present: boolean;
|
|
104
|
+
status?: string;
|
|
105
|
+
title?: string;
|
|
106
|
+
goal?: string;
|
|
107
|
+
references?: string[];
|
|
108
|
+
}>;
|
|
109
|
+
export declare function parseEpisodeRef(raw: unknown): string;
|
|
110
|
+
export declare function resolveDoorEpisode(context: EpisodeDoorContext, ref: string): Promise<EpisodeIdentity>;
|
|
111
|
+
export interface EpisodeStatus extends ClosingReport {
|
|
112
|
+
identity: EpisodeIdentity;
|
|
113
|
+
manifest: Awaited<ReturnType<typeof readManifestSummary>>;
|
|
114
|
+
ok: boolean;
|
|
115
|
+
}
|
|
116
|
+
export declare function episodeDoorStatus(context: EpisodeDoorContext, ref: string): Promise<EpisodeStatus>;
|
|
117
|
+
export interface LandEpisodeInput {
|
|
118
|
+
subject?: string;
|
|
119
|
+
body?: string;
|
|
120
|
+
dryRun?: boolean;
|
|
121
|
+
push?: boolean;
|
|
122
|
+
}
|
|
123
|
+
export interface LandEpisodeResult {
|
|
124
|
+
ok: boolean;
|
|
125
|
+
dryRun: boolean;
|
|
126
|
+
identity: EpisodeIdentity;
|
|
127
|
+
files: string[];
|
|
128
|
+
landing: LandPathsResult;
|
|
129
|
+
closing: ClosingReport["closing"];
|
|
130
|
+
drift: string[];
|
|
131
|
+
owedActions: string[];
|
|
132
|
+
}
|
|
133
|
+
export declare function landEpisode(context: EpisodeDoorContext, ref: string, input?: LandEpisodeInput): Promise<LandEpisodeResult>;
|
|
134
|
+
export interface LineageEdgeRequest {
|
|
135
|
+
field: LineageField;
|
|
136
|
+
to: string;
|
|
137
|
+
relation: string;
|
|
138
|
+
/** When present, also author the reverse relates_to edge on the target with this prose. */
|
|
139
|
+
reverse?: string;
|
|
140
|
+
}
|
|
141
|
+
export interface LineageEdgeReport {
|
|
142
|
+
field: LineageField;
|
|
143
|
+
from: string;
|
|
144
|
+
to: string;
|
|
145
|
+
manifest: Omit<AppendLineageEdgeResult, "before" | "after">;
|
|
146
|
+
wheel: LineageEdgeOutcome;
|
|
147
|
+
}
|
|
148
|
+
export declare function parseLineageField(raw: unknown): LineageField;
|
|
149
|
+
export interface AuthorLineageInput extends LineageEdgeRequest {
|
|
150
|
+
land?: boolean;
|
|
151
|
+
dryRun?: boolean;
|
|
152
|
+
}
|
|
153
|
+
export interface AuthorLineageResult {
|
|
154
|
+
ok: boolean;
|
|
155
|
+
dryRun: boolean;
|
|
156
|
+
identity: EpisodeIdentity;
|
|
157
|
+
edges: LineageEdgeReport[];
|
|
158
|
+
landing?: LandEpisodeResult;
|
|
159
|
+
closing: ClosingReport["closing"];
|
|
160
|
+
drift: string[];
|
|
161
|
+
owedActions: string[];
|
|
162
|
+
}
|
|
163
|
+
export declare function authorEpisodeLineage(context: EpisodeDoorContext, ref: string, input: AuthorLineageInput): Promise<AuthorLineageResult>;
|
|
164
|
+
export interface WeaveInquiryInput {
|
|
165
|
+
artefact: string;
|
|
166
|
+
issue?: string;
|
|
167
|
+
land?: boolean;
|
|
168
|
+
dryRun?: boolean;
|
|
169
|
+
}
|
|
170
|
+
export interface WeaveInquiryReport {
|
|
171
|
+
related: RelateResult;
|
|
172
|
+
synced: SyncResult;
|
|
173
|
+
registered?: RegisterResult;
|
|
174
|
+
registerError?: string;
|
|
175
|
+
artefactSide: string;
|
|
176
|
+
}
|
|
177
|
+
export interface WeaveInquiryResult {
|
|
178
|
+
ok: boolean;
|
|
179
|
+
dryRun: boolean;
|
|
180
|
+
identity: EpisodeIdentity;
|
|
181
|
+
inquiry: WeaveInquiryReport;
|
|
182
|
+
landing?: LandEpisodeResult;
|
|
183
|
+
closing: ClosingReport["closing"];
|
|
184
|
+
drift: string[];
|
|
185
|
+
owedActions: string[];
|
|
186
|
+
}
|
|
187
|
+
export declare function parseArtefactName(raw: unknown): string;
|
|
188
|
+
export declare function weaveEpisodeInquiry(context: EpisodeDoorContext, ref: string, input: WeaveInquiryInput): Promise<WeaveInquiryResult>;
|
|
189
|
+
export interface RedeemRegistrationInput {
|
|
190
|
+
land?: boolean;
|
|
191
|
+
dryRun?: boolean;
|
|
192
|
+
}
|
|
193
|
+
export interface RedeemRegistrationResult {
|
|
194
|
+
ok: boolean;
|
|
195
|
+
dryRun: boolean;
|
|
196
|
+
identity: EpisodeIdentity;
|
|
197
|
+
registration: RegistrationOutcome;
|
|
198
|
+
landing?: LandEpisodeResult;
|
|
199
|
+
closing: ClosingReport["closing"];
|
|
200
|
+
drift: string[];
|
|
201
|
+
owedActions: string[];
|
|
202
|
+
}
|
|
203
|
+
export declare function redeemEpisodeRegistration(context: EpisodeDoorContext, ref: string, input?: RedeemRegistrationInput): Promise<RedeemRegistrationResult>;
|
|
204
|
+
export interface MintEpisodeInput {
|
|
205
|
+
title: string;
|
|
206
|
+
goal: string;
|
|
207
|
+
references: string[];
|
|
208
|
+
number?: number;
|
|
209
|
+
date?: string;
|
|
210
|
+
status?: string;
|
|
211
|
+
lineage?: LineageEdgeRequest[];
|
|
212
|
+
inquiry?: {
|
|
213
|
+
artefact: string;
|
|
214
|
+
issue?: string;
|
|
215
|
+
};
|
|
216
|
+
register?: boolean;
|
|
217
|
+
land?: boolean;
|
|
218
|
+
dryRun?: boolean;
|
|
219
|
+
}
|
|
220
|
+
export interface MintEpisodeResult {
|
|
221
|
+
ok: boolean;
|
|
222
|
+
dryRun: boolean;
|
|
223
|
+
identity: EpisodeIdentity;
|
|
224
|
+
number: {
|
|
225
|
+
source: "explicit" | "allocated";
|
|
226
|
+
observed: string;
|
|
227
|
+
};
|
|
228
|
+
manifest: string;
|
|
229
|
+
files: string[];
|
|
230
|
+
lineage: LineageEdgeReport[];
|
|
231
|
+
inquiry: WeaveInquiryReport | null;
|
|
232
|
+
registration: RegistrationOutcome;
|
|
233
|
+
landing: LandPathsResult | null;
|
|
234
|
+
integration: IntegrationResult;
|
|
235
|
+
closing: ClosingReport["closing"];
|
|
236
|
+
drift: string[];
|
|
237
|
+
owedActions: string[];
|
|
238
|
+
}
|
|
239
|
+
export declare function mintEpisode(context: EpisodeDoorContext, input: MintEpisodeInput): Promise<MintEpisodeResult>;
|
|
240
|
+
/** Map library errors to the door's codes; anything unknown passes through. */
|
|
241
|
+
export declare function isDoorError(error: unknown): error is EpisodeServiceError;
|
|
242
|
+
export {};
|
|
243
|
+
//# sourceMappingURL=mint.d.ts.map
|