@miadi/inquiry-weave 0.8.3 → 0.9.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/dist/index.js CHANGED
@@ -13,7 +13,11 @@ export * from "./status.js";
13
13
  export * from "./register.js";
14
14
  export * from "./episode-node.js";
15
15
  export * from "./attention-node.js";
16
+ export * from "./attention.js";
16
17
  export * from "./catalog.js";
17
18
  export * from "./story-library.js";
19
+ export * from "./git-landing.js";
20
+ export * from "./closing.js";
21
+ export * from "./mint.js";
18
22
  export { runCli } from "./cli.js";
19
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,OAAO,EAAE,MAAM,EAAuC,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,OAAO,EAAE,MAAM,EAAuC,MAAM,UAAU,CAAA"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * inquiry-weave-mcp — anonymous feeding on the inquiry threads, joined to
4
- * the weave.
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,7 +12,17 @@
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; without it
18
+ * an answer remains file-first and reports pending.
19
+ * MIADI_API_TOKEN_WRITER optional — presented to the app when the episode
20
+ * tools forward over HTTP (see below).
21
+ *
22
+ * The episode tools (chronicle_episode_*) speak to the library when
23
+ * MIADI_CHRONICLE_ROOT names a chronicle on this host, and otherwise forward to
24
+ * the app's /api/chronicle/episodes door at MIADI_INQUIRY_API_BASE — so an agent
25
+ * whose MCP host has no chronicle still has the verbs. Ref: jgwill/Miadi#621.
16
26
  *
17
27
  * Zero new dependencies: raw newline-delimited JSON-RPC over stdio.
18
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * inquiry-weave-mcp — anonymous feeding on the inquiry threads, joined to
4
- * the weave.
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,88 @@
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; without it
18
+ * an answer remains file-first and reports pending.
19
+ * MIADI_API_TOKEN_WRITER optional — presented to the app when the episode
20
+ * tools forward over HTTP (see below).
21
+ *
22
+ * The episode tools (chronicle_episode_*) speak to the library when
23
+ * MIADI_CHRONICLE_ROOT names a chronicle on this host, and otherwise forward to
24
+ * the app's /api/chronicle/episodes door at MIADI_INQUIRY_API_BASE — so an agent
25
+ * whose MCP host has no chronicle still has the verbs. Ref: jgwill/Miadi#621.
16
26
  *
17
27
  * Zero new dependencies: raw newline-delimited JSON-RPC over stdio.
18
28
  */
19
29
  import { readdirSync, readFileSync, existsSync } from "node:fs";
20
30
  import { join } from "node:path";
21
31
  import { createInterface } from "node:readline";
32
+ import { answerChronicleAttention, getChronicleAttention, listChronicleAttention, } from "./attention.js";
33
+ import { authorEpisodeLineage, checkEpisodeNumber, episodeDoorStatus, landEpisode, mintEpisode, previewAllocation, redeemEpisodeRegistration, resolveDoorContext, weaveEpisodeInquiry, } from "./mint.js";
22
34
  const API_BASE = (process.env.MIADI_INQUIRY_API_BASE || "").replace(/\/$/, "");
23
35
  const CHRONICLE_ROOT = process.env.MIADI_CHRONICLE_ROOT || "";
36
+ function chronicleRoot() {
37
+ if (!CHRONICLE_ROOT) {
38
+ throw new Error("MIADI_CHRONICLE_ROOT is not set — Chronicle attention identity cannot be resolved without its vessel root.");
39
+ }
40
+ return CHRONICLE_ROOT;
41
+ }
42
+ function chronicleWheelUrl() {
43
+ return (process.env.MW_API_URL_OVERRIDE ||
44
+ process.env.MW_API_URL ||
45
+ process.env.MIADI_CHRONICLE_MW_URL ||
46
+ "");
47
+ }
48
+ /** Library when the chronicle is on this host; the HTTP door otherwise. */
49
+ function episodeDoor() {
50
+ if (CHRONICLE_ROOT && existsSync(CHRONICLE_ROOT)) {
51
+ return { mode: "library", context: resolveDoorContext({ chronicleRoot: CHRONICLE_ROOT }) };
52
+ }
53
+ if (API_BASE)
54
+ return { mode: "http" };
55
+ 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.");
56
+ }
57
+ async function apiCall(method, path, body) {
58
+ const headers = { Accept: "application/json" };
59
+ const token = process.env.MIADI_API_TOKEN_WRITER?.trim();
60
+ if (token)
61
+ headers.Authorization = `Bearer ${token}`;
62
+ if (body !== undefined)
63
+ headers["content-type"] = "application/json";
64
+ const res = await fetch(`${API_BASE}${path}`, {
65
+ method,
66
+ headers,
67
+ body: body === undefined ? undefined : JSON.stringify(body),
68
+ });
69
+ const text = await res.text();
70
+ let parsed = text;
71
+ try {
72
+ parsed = JSON.parse(text);
73
+ }
74
+ catch {
75
+ /* a non-JSON body is still the answer */
76
+ }
77
+ if (!res.ok) {
78
+ const detail = typeof parsed === "object" && parsed ? JSON.stringify(parsed) : String(parsed);
79
+ throw new Error(`${method} ${path} answered ${res.status}: ${detail.slice(0, 600)}`);
80
+ }
81
+ return parsed;
82
+ }
83
+ function episodeRefArg(args) {
84
+ const ref = typeof args.episode === "string" ? args.episode.trim() : "";
85
+ if (!ref)
86
+ throw new Error("episode is required (a number, epNNN, or a directory name)");
87
+ return ref;
88
+ }
89
+ function lineageArgs(args) {
90
+ return {
91
+ field: args.field,
92
+ to: typeof args.to === "string" ? args.to : "",
93
+ relation: typeof args.relation === "string" ? args.relation : "",
94
+ reverse: typeof args.reverse === "string" ? args.reverse : undefined,
95
+ };
96
+ }
24
97
  async function apiGet(path) {
25
98
  if (!API_BASE) {
26
99
  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 +163,154 @@ const TOOLS = [
90
163
  required: ["issueId"],
91
164
  },
92
165
  },
166
+ {
167
+ name: "chronicle_attention_list",
168
+ description: "Pull what needs human attention from attention.json stores, newest first. Optionally scope to one episode or include answered history.",
169
+ inputSchema: {
170
+ type: "object",
171
+ properties: {
172
+ episode: { type: "string", description: "Episode number, epNNN, or folder name." },
173
+ state: { type: "string", enum: ["open", "answered", "all"], default: "open" },
174
+ },
175
+ },
176
+ },
177
+ {
178
+ name: "chronicle_attention_get",
179
+ description: "Pull one attention item with its question, unlock, state, and safe excerpts from its episode-local depth references.",
180
+ inputSchema: {
181
+ type: "object",
182
+ properties: {
183
+ episode: { type: "string", description: "Episode number, epNNN, or folder name." },
184
+ id: { type: "string", description: "Stable attention item id." },
185
+ },
186
+ required: ["episode", "id"],
187
+ },
188
+ },
189
+ {
190
+ name: "chronicle_attention_answer",
191
+ 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.",
192
+ inputSchema: {
193
+ type: "object",
194
+ properties: {
195
+ episode: { type: "string", description: "Episode number, epNNN, or folder name." },
196
+ id: { type: "string", description: "Stable attention item id." },
197
+ answer: { type: "string", minLength: 1, maxLength: 10000 },
198
+ },
199
+ required: ["episode", "id", "answer"],
200
+ },
201
+ },
202
+ {
203
+ name: "chronicle_episode_number",
204
+ 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.",
205
+ inputSchema: {
206
+ type: "object",
207
+ properties: { number: { type: "integer", minimum: 1 } },
208
+ },
209
+ },
210
+ {
211
+ name: "chronicle_episode_mint",
212
+ 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.",
213
+ inputSchema: {
214
+ type: "object",
215
+ properties: {
216
+ title: { type: "string", minLength: 1 },
217
+ goal: { type: "string", minLength: 1 },
218
+ references: { type: "array", items: { type: "string" }, minItems: 1, description: "Provenance; the first owner/repo#n becomes source_issue." },
219
+ number: { type: "integer", minimum: 1, description: "Explicit number; absent → allocated max+1 over disk ∪ origin ∪ wheel." },
220
+ date: { type: "string", description: "YYYY-MM-DD; default today (local)." },
221
+ status: { type: "string", default: "vessel" },
222
+ lineage: {
223
+ type: "array",
224
+ items: {
225
+ type: "object",
226
+ properties: {
227
+ field: { type: "string", enum: ["continues_from", "relates_to"] },
228
+ to: { type: "string" },
229
+ relation: { type: "string" },
230
+ reverse: { type: "string" },
231
+ },
232
+ required: ["field", "to", "relation"],
233
+ },
234
+ },
235
+ inquiry: {
236
+ type: "object",
237
+ properties: { artefact: { type: "string" }, issue: { type: "string" } },
238
+ required: ["artefact"],
239
+ },
240
+ register: { type: "boolean", default: true },
241
+ land: { type: "boolean", default: true },
242
+ dryRun: { type: "boolean", default: false },
243
+ },
244
+ required: ["title", "goal", "references"],
245
+ },
246
+ },
247
+ {
248
+ name: "chronicle_episode_status",
249
+ 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.",
250
+ inputSchema: {
251
+ type: "object",
252
+ properties: { episode: { type: "string", description: "Episode number, epNNN, or folder name." } },
253
+ required: ["episode"],
254
+ },
255
+ },
256
+ {
257
+ name: "chronicle_episode_land",
258
+ 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.",
259
+ inputSchema: {
260
+ type: "object",
261
+ properties: {
262
+ episode: { type: "string" },
263
+ subject: { type: "string" },
264
+ dryRun: { type: "boolean", default: false },
265
+ },
266
+ required: ["episode"],
267
+ },
268
+ },
269
+ {
270
+ name: "chronicle_episode_lineage",
271
+ description: "Author one episode→episode lineage edge (manifest + wheel edge) on an existing episode, then land it.",
272
+ inputSchema: {
273
+ type: "object",
274
+ properties: {
275
+ episode: { type: "string" },
276
+ field: { type: "string", enum: ["continues_from", "relates_to"] },
277
+ to: { type: "string" },
278
+ relation: { type: "string" },
279
+ reverse: { type: "string", description: "When given, also author the reverse relates_to edge with this prose." },
280
+ land: { type: "boolean", default: true },
281
+ dryRun: { type: "boolean", default: false },
282
+ },
283
+ required: ["episode", "field", "to", "relation"],
284
+ },
285
+ },
286
+ {
287
+ name: "chronicle_episode_inquiry",
288
+ 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.",
289
+ inputSchema: {
290
+ type: "object",
291
+ properties: {
292
+ episode: { type: "string" },
293
+ artefact: { type: "string", description: "Directory name under MIADI_INQUIRY_ROOT — never a path." },
294
+ issue: { type: "string", description: "owner/repo#n" },
295
+ land: { type: "boolean", default: true },
296
+ dryRun: { type: "boolean", default: false },
297
+ },
298
+ required: ["episode", "artefact"],
299
+ },
300
+ },
301
+ {
302
+ name: "chronicle_episode_register",
303
+ description: "Redeem a registration: register the episode card on the wheel (idempotent), rewrite the receipt truthfully, and land the receipt.",
304
+ inputSchema: {
305
+ type: "object",
306
+ properties: {
307
+ episode: { type: "string" },
308
+ land: { type: "boolean", default: true },
309
+ dryRun: { type: "boolean", default: false },
310
+ },
311
+ required: ["episode"],
312
+ },
313
+ },
93
314
  ];
94
315
  async function callTool(name, args) {
95
316
  switch (name) {
@@ -101,6 +322,107 @@ async function callTool(name, args) {
101
322
  return apiGet(`/api/inquiry/${Number(args.issueId)}`);
102
323
  case "inquiry_weave_kin":
103
324
  return weaveKin(Number(args.issueId));
325
+ case "chronicle_attention_list": {
326
+ const state = args.state === "answered" || args.state === "all" ? args.state : "open";
327
+ const episode = typeof args.episode === "string" && args.episode.trim()
328
+ ? args.episode.trim()
329
+ : undefined;
330
+ const items = await listChronicleAttention(chronicleRoot(), { episode, state });
331
+ return { count: items.length, items };
332
+ }
333
+ case "chronicle_attention_get": {
334
+ const episode = typeof args.episode === "string" ? args.episode.trim() : "";
335
+ const id = typeof args.id === "string" ? args.id.trim() : "";
336
+ if (!episode || !id)
337
+ throw new Error("episode and id are required");
338
+ return getChronicleAttention(chronicleRoot(), episode, id, { includeContext: true });
339
+ }
340
+ case "chronicle_attention_answer": {
341
+ const episode = typeof args.episode === "string" ? args.episode.trim() : "";
342
+ const id = typeof args.id === "string" ? args.id.trim() : "";
343
+ const answer = typeof args.answer === "string" ? args.answer : "";
344
+ if (!episode || !id || !answer.trim())
345
+ throw new Error("episode, id, and a non-empty answer are required");
346
+ return answerChronicleAttention(chronicleRoot(), episode, id, answer, {
347
+ expectedState: "open",
348
+ mwUrl: chronicleWheelUrl(),
349
+ });
350
+ }
351
+ case "chronicle_episode_number": {
352
+ const door = episodeDoor();
353
+ const number = typeof args.number === "number" ? args.number : undefined;
354
+ if (door.mode === "http") {
355
+ return apiCall("GET", number === undefined ? "/api/chronicle/episodes?allocate=1" : `/api/chronicle/episodes?number=${number}`);
356
+ }
357
+ return number === undefined
358
+ ? previewAllocation(door.context)
359
+ : checkEpisodeNumber(door.context, number);
360
+ }
361
+ case "chronicle_episode_mint": {
362
+ const door = episodeDoor();
363
+ const input = {
364
+ title: String(args.title ?? ""),
365
+ goal: String(args.goal ?? ""),
366
+ references: Array.isArray(args.references) ? args.references.map(String) : [],
367
+ number: typeof args.number === "number" ? args.number : undefined,
368
+ date: typeof args.date === "string" ? args.date : undefined,
369
+ status: typeof args.status === "string" ? args.status : undefined,
370
+ lineage: Array.isArray(args.lineage) ? args.lineage.map(lineageArgs) : undefined,
371
+ inquiry: args.inquiry && typeof args.inquiry === "object"
372
+ ? { artefact: String(args.inquiry.artefact ?? ""), issue: typeof args.inquiry.issue === "string" ? String(args.inquiry.issue) : undefined }
373
+ : undefined,
374
+ register: args.register !== false,
375
+ land: args.land !== false,
376
+ dryRun: args.dryRun === true,
377
+ };
378
+ if (door.mode === "http")
379
+ return apiCall("POST", "/api/chronicle/episodes", input);
380
+ return mintEpisode(door.context, input);
381
+ }
382
+ case "chronicle_episode_status": {
383
+ const door = episodeDoor();
384
+ const ref = episodeRefArg(args);
385
+ if (door.mode === "http")
386
+ return apiCall("GET", `/api/chronicle/episodes/${encodeURIComponent(ref)}`);
387
+ return episodeDoorStatus(door.context, ref);
388
+ }
389
+ case "chronicle_episode_land": {
390
+ const door = episodeDoor();
391
+ const ref = episodeRefArg(args);
392
+ const input = { subject: typeof args.subject === "string" ? args.subject : undefined, dryRun: args.dryRun === true };
393
+ if (door.mode === "http")
394
+ return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/land`, input);
395
+ return landEpisode(door.context, ref, input);
396
+ }
397
+ case "chronicle_episode_lineage": {
398
+ const door = episodeDoor();
399
+ const ref = episodeRefArg(args);
400
+ const input = { ...lineageArgs(args), land: args.land !== false, dryRun: args.dryRun === true };
401
+ if (door.mode === "http")
402
+ return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/lineage`, input);
403
+ return authorEpisodeLineage(door.context, ref, input);
404
+ }
405
+ case "chronicle_episode_inquiry": {
406
+ const door = episodeDoor();
407
+ const ref = episodeRefArg(args);
408
+ const input = {
409
+ artefact: typeof args.artefact === "string" ? args.artefact : "",
410
+ issue: typeof args.issue === "string" ? args.issue : undefined,
411
+ land: args.land !== false,
412
+ dryRun: args.dryRun === true,
413
+ };
414
+ if (door.mode === "http")
415
+ return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/inquiry`, input);
416
+ return weaveEpisodeInquiry(door.context, ref, input);
417
+ }
418
+ case "chronicle_episode_register": {
419
+ const door = episodeDoor();
420
+ const ref = episodeRefArg(args);
421
+ const input = { land: args.land !== false, dryRun: args.dryRun === true };
422
+ if (door.mode === "http")
423
+ return apiCall("POST", `/api/chronicle/episodes/${encodeURIComponent(ref)}/register`, input);
424
+ return redeemEpisodeRegistration(door.context, ref, input);
425
+ }
104
426
  default:
105
427
  throw new Error(`unknown tool "${name}"`);
106
428
  }
@@ -131,7 +453,7 @@ rl.on("line", (line) => {
131
453
  reply(id, {
132
454
  protocolVersion: params?.protocolVersion || "2024-11-05",
133
455
  capabilities: { tools: {} },
134
- serverInfo: { name: "inquiry-weave-mcp", version: "0.6.6" },
456
+ serverInfo: { name: "inquiry-weave-mcp", version: "0.9.0" },
135
457
  });
136
458
  break;
137
459
  case "tools/list":
@@ -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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"}