@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/README.md +14 -0
- 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/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/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 +13 -3
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +326 -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 +743 -0
- package/dist/mint.js.map +1 -0
- package/dist/skill.js +1 -1
- package/package.json +1 -1
- package/rispecs/README.rise.md +5 -0
- package/rispecs/RISPEC.md +9 -0
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"}
|
package/dist/mcp-server.d.ts
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,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
|
*/
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG"}
|
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,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.
|
|
456
|
+
serverInfo: { name: "inquiry-weave-mcp", version: "0.9.0" },
|
|
135
457
|
});
|
|
136
458
|
break;
|
|
137
459
|
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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"}
|