@mneme-ai/mcp 1.17.6 → 1.19.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 +64 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +135 -8
- package/dist/index.js.map +1 -1
- package/dist/mcp_primitives/completion.d.ts +19 -0
- package/dist/mcp_primitives/completion.d.ts.map +1 -0
- package/dist/mcp_primitives/completion.js +55 -0
- package/dist/mcp_primitives/completion.js.map +1 -0
- package/dist/mcp_primitives/prompts.d.ts +36 -0
- package/dist/mcp_primitives/prompts.d.ts.map +1 -0
- package/dist/mcp_primitives/prompts.js +140 -0
- package/dist/mcp_primitives/prompts.js.map +1 -0
- package/dist/mcp_primitives/resources.d.ts +30 -0
- package/dist/mcp_primitives/resources.d.ts.map +1 -0
- package/dist/mcp_primitives/resources.js +127 -0
- package/dist/mcp_primitives/resources.js.map +1 -0
- package/dist/tools/_aletheia.d.ts +82 -0
- package/dist/tools/_aletheia.d.ts.map +1 -0
- package/dist/tools/_aletheia.js +800 -0
- package/dist/tools/_aletheia.js.map +1 -0
- package/dist/tools/_confess.d.ts +67 -0
- package/dist/tools/_confess.d.ts.map +1 -0
- package/dist/tools/_confess.js +260 -0
- package/dist/tools/_confess.js.map +1 -0
- package/dist/tools/_confess.test.d.ts +6 -0
- package/dist/tools/_confess.test.d.ts.map +1 -0
- package/dist/tools/_confess.test.js +96 -0
- package/dist/tools/_confess.test.js.map +1 -0
- package/dist/tools/_contract.test.d.ts +19 -0
- package/dist/tools/_contract.test.d.ts.map +1 -0
- package/dist/tools/_contract.test.js +117 -0
- package/dist/tools/_contract.test.js.map +1 -0
- package/dist/tools/_court.d.ts +57 -0
- package/dist/tools/_court.d.ts.map +1 -0
- package/dist/tools/_court.js +261 -0
- package/dist/tools/_court.js.map +1 -0
- package/dist/tools/_court.test.d.ts +8 -0
- package/dist/tools/_court.test.d.ts.map +1 -0
- package/dist/tools/_court.test.js +111 -0
- package/dist/tools/_court.test.js.map +1 -0
- package/dist/tools/_genome_marketplace.d.ts +83 -0
- package/dist/tools/_genome_marketplace.d.ts.map +1 -0
- package/dist/tools/_genome_marketplace.js +410 -0
- package/dist/tools/_genome_marketplace.js.map +1 -0
- package/dist/tools/_genome_marketplace.test.d.ts +5 -0
- package/dist/tools/_genome_marketplace.test.d.ts.map +1 -0
- package/dist/tools/_genome_marketplace.test.js +157 -0
- package/dist/tools/_genome_marketplace.test.js.map +1 -0
- package/dist/tools/_lineage.d.ts +35 -0
- package/dist/tools/_lineage.d.ts.map +1 -0
- package/dist/tools/_lineage.js +782 -0
- package/dist/tools/_lineage.js.map +1 -0
- package/dist/tools/_mesh.d.ts +51 -0
- package/dist/tools/_mesh.d.ts.map +1 -0
- package/dist/tools/_mesh.js +182 -0
- package/dist/tools/_mesh.js.map +1 -0
- package/dist/tools/_registry.d.ts.map +1 -1
- package/dist/tools/_registry.js +19 -0
- package/dist/tools/_registry.js.map +1 -1
- package/dist/tools/_replay.d.ts +52 -0
- package/dist/tools/_replay.d.ts.map +1 -0
- package/dist/tools/_replay.js +253 -0
- package/dist/tools/_replay.js.map +1 -0
- package/dist/tools/_replay.test.d.ts +5 -0
- package/dist/tools/_replay.test.d.ts.map +1 -0
- package/dist/tools/_replay.test.js +90 -0
- package/dist/tools/_replay.test.js.map +1 -0
- package/dist/tools/_timetravel.d.ts +46 -0
- package/dist/tools/_timetravel.d.ts.map +1 -0
- package/dist/tools/_timetravel.js +243 -0
- package/dist/tools/_timetravel.js.map +1 -0
- package/dist/tools/_timetravel.test.d.ts +7 -0
- package/dist/tools/_timetravel.test.d.ts.map +1 -0
- package/dist/tools/_timetravel.test.js +31 -0
- package/dist/tools/_timetravel.test.js.map +1 -0
- package/dist/tools/_tool_meta.d.ts +30 -0
- package/dist/tools/_tool_meta.d.ts.map +1 -0
- package/dist/tools/_tool_meta.js +530 -0
- package/dist/tools/_tool_meta.js.map +1 -0
- package/dist/tools/_types.d.ts +46 -5
- package/dist/tools/_types.d.ts.map +1 -1
- package/dist/tools/_types.js.map +1 -1
- package/dist/tools/_verify_claims_tool.d.ts.map +1 -1
- package/dist/tools/_verify_claims_tool.js +23 -0
- package/dist/tools/_verify_claims_tool.js.map +1 -1
- package/dist/tools/audit.d.ts.map +1 -1
- package/dist/tools/audit.js +37 -0
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/memory.d.ts.map +1 -1
- package/dist/tools/memory.js +23 -0
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/quant.d.ts +10 -2
- package/dist/tools/quant.d.ts.map +1 -1
- package/dist/tools/quant.js +311 -18
- package/dist/tools/quant.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,21 +1,73 @@
|
|
|
1
1
|
# @mneme-ai/mcp
|
|
2
2
|
|
|
3
|
-
MCP server that exposes [Mneme](https://github.com/patsa2561-art/mneme-ai) to AI clients
|
|
3
|
+
MCP server that exposes [Mneme](https://github.com/patsa2561-art/mneme-ai) to AI clients
|
|
4
|
+
(Claude Code, Cursor, Continue, Codex CLI, Cline, Zed, Aider, or any MCP-aware client).
|
|
4
5
|
|
|
5
6
|
You normally don't import this directly — the `mneme-ai` CLI exposes it via:
|
|
6
7
|
|
|
7
8
|
```bash
|
|
8
|
-
mneme mcp
|
|
9
|
+
mneme mcp --install # auto-detects + wires up Claude Code / Cursor / Continue / etc.
|
|
10
|
+
mneme mcp # start server on stdio
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
##
|
|
13
|
+
## What's in this server (v1.18.0)
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
**131+ MCP tools across 9 categories**, plus full
|
|
16
|
+
[MCP-spec-2025-06-18](https://modelcontextprotocol.io) primitive support
|
|
17
|
+
(tools, resources, prompts, completion). The complete catalog is in
|
|
18
|
+
[`MCP_TOOLS.md`](https://github.com/patsa2561-art/mneme-ai/blob/main/MCP_TOOLS.md)
|
|
19
|
+
(auto-generated from the registry).
|
|
20
|
+
|
|
21
|
+
### Categories
|
|
22
|
+
|
|
23
|
+
- **memory** — Q&A, semantic search, citations grounded in commit history
|
|
24
|
+
- **people** — atrophy, telepathy, influence, lineage, passport
|
|
25
|
+
- **audit** — 5-axis trust certificate for AI commits + tamper-evident ledger
|
|
26
|
+
- **forensics** — vuln scan, anomaly, ENFSI authorship attribution
|
|
27
|
+
- **insights** — story, regret, premortem, oracle, time-machine, chronicle
|
|
28
|
+
- **quality** — repo MRI, cognitive twin, palimpsest, voice fingerprint
|
|
29
|
+
- **quant** — drawdown, alpha, Greeks, moneyball, black-swan _(every term has an inline jargon dictionary in v1.18)_
|
|
30
|
+
- **lab** — periodic table, library, compose, run, calibrate
|
|
31
|
+
- **meta** — discovery (capabilities / help / contract / lint / whats_new)
|
|
32
|
+
|
|
33
|
+
### v1.18.0 firsts (no other MCP server has these)
|
|
34
|
+
|
|
35
|
+
| Feature | Tool(s) | What it does |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| **Tool Contract Schema** | (every tool) | 6-field contract: WHEN, INPUT, OUTPUT, EXAMPLES, PITFALLS, COMPOSE_WITH, JARGON. |
|
|
38
|
+
| **Catalog drift detector** | `mneme.whats_new` | Pass your last-seen hash → get adds / removes / changes. |
|
|
39
|
+
| **Sub-50ms tool matcher** | `mneme.help` | Free-text → top-5 tools without LLM. |
|
|
40
|
+
| **Self-validating contracts** | `mneme.tool.lint` | Every tool scored 0-100 on contract quality. |
|
|
41
|
+
| **Mneme Court** | `mneme.adversary.cross_examine` | Red-team your own AI claims against repo history. |
|
|
42
|
+
| **Truth Confession** | `mneme.confess` | Per-AI-vendor lifetime trust scoreboard. |
|
|
43
|
+
| **HMAC replay log** | `mneme.replay.dump` / `.fingerprint` | SOC2-grade tamper-evident session trace. |
|
|
44
|
+
| **Time-travel MCP** | `mneme.timetravel.activate` | Freeze repo view at a past commit for hindsight analysis. |
|
|
45
|
+
| **Genome Marketplace** | `mneme.genome.publish` / `.install` | Pack & share team conventions across repos. |
|
|
46
|
+
| **MCP Mesh** | `mneme.mesh.peers` / `.federate` | Cross-repo federation (scaffolding in 1.18, transport in 1.19). |
|
|
47
|
+
| **ALETHEIA security** | `mneme.aletheia.*` | Open MCP security framework — see [ALETHEIA.md](https://github.com/patsa2561-art/mneme-ai/blob/main/ALETHEIA.md). |
|
|
48
|
+
|
|
49
|
+
### MCP primitives exposed
|
|
50
|
+
|
|
51
|
+
- **tools** ✓ — 115+
|
|
52
|
+
- **resources** ✓ — `mneme://catalog`, `mneme://catalog/{cat}`, `mneme://constitution`, `mneme://aletheia/karma`, `mneme://passport/{email}`
|
|
53
|
+
- **prompts** ✓ — `/refactor-safety`, `/incident-postmortem`, `/onboarding-pack`, `/code-review-with-history`
|
|
54
|
+
- **completion** ✓ — tab-complete tool names, categories, and arg enums
|
|
55
|
+
- **logging** ✓ — wired
|
|
56
|
+
- **sampling** — coming v1.19 (reverse-MCP for chronicle / story polish)
|
|
57
|
+
- **roots** — coming v1.19 (multi-repo workspaces)
|
|
58
|
+
- **elicitation** — coming v1.19 (disambiguation prompts)
|
|
59
|
+
|
|
60
|
+
## How to discover what's available (for AI agents)
|
|
61
|
+
|
|
62
|
+
When you connect to Mneme, call **in this order**:
|
|
63
|
+
|
|
64
|
+
1. `mneme.capabilities` — full syllabus + WHEN-to-use guidance per tool
|
|
65
|
+
2. `mneme.whats_new(lastSeenHash)` — diff vs your last session (or pass `unknown` on first connect)
|
|
66
|
+
3. `mneme.help(query)` — fast top-5 matcher when you're not sure which tool fits
|
|
67
|
+
4. `mneme.tool.contract(name)` — full 6-field contract for any specific tool
|
|
68
|
+
|
|
69
|
+
Every tool response carries a `secondBrain` field that suggests next-step
|
|
70
|
+
molecules — read it on every call to compose richer answers.
|
|
19
71
|
|
|
20
72
|
## Client config
|
|
21
73
|
|
|
@@ -31,6 +83,9 @@ mneme mcp # start server on stdio
|
|
|
31
83
|
}
|
|
32
84
|
```
|
|
33
85
|
|
|
86
|
+
Or run `mneme mcp --install` and Mneme writes the config for whichever
|
|
87
|
+
clients you have installed.
|
|
88
|
+
|
|
34
89
|
## License
|
|
35
90
|
|
|
36
91
|
MIT.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA+CA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAuLD,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA+JpE"}
|
package/dist/index.js
CHANGED
|
@@ -20,13 +20,19 @@ import { dirname, join } from "node:path";
|
|
|
20
20
|
import { fileURLToPath } from "node:url";
|
|
21
21
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
22
22
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
23
|
-
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
23
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, CompleteRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
24
24
|
import { buildRuntime } from "./tools/_runtime.js";
|
|
25
25
|
import { buildAllTools, buildToolMap } from "./tools/_registry.js";
|
|
26
26
|
import { toCallResult, toErrorResult } from "./tools/_types.js";
|
|
27
27
|
import { moleculesContaining } from "./tools/_molecules.js";
|
|
28
28
|
import { recordInvocation } from "./tools/_lifecycle.js";
|
|
29
29
|
import { homeworkForCategory } from "./tools/_homework.js";
|
|
30
|
+
import { recordReplay } from "./tools/_replay.js";
|
|
31
|
+
import { recordObservation, recordKarmaEvent } from "./tools/_aletheia.js";
|
|
32
|
+
import { listResources, readResource } from "./mcp_primitives/resources.js";
|
|
33
|
+
import { listPrompts, getPrompt } from "./mcp_primitives/prompts.js";
|
|
34
|
+
import { completeArgument } from "./mcp_primitives/completion.js";
|
|
35
|
+
import { lineage } from "@mneme-ai/core";
|
|
30
36
|
function resolveVersion() {
|
|
31
37
|
try {
|
|
32
38
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
@@ -38,13 +44,24 @@ function resolveVersion() {
|
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
46
|
/** Convert MnemeTool[] to MCP's Tool[] shape (drops handler + triggers, keeps the
|
|
41
|
-
* rich description so AI tool-selection has full WHEN-to-use guidance).
|
|
47
|
+
* rich description so AI tool-selection has full WHEN-to-use guidance).
|
|
48
|
+
*
|
|
49
|
+
* v1.18.0 — when a tool defines `outputSchema`, we pass it through to the
|
|
50
|
+
* MCP SDK so MCP-spec-2025-06-18-compliant clients can reason about response
|
|
51
|
+
* shape before they call. The SDK type accepts the field as `outputSchema`
|
|
52
|
+
* on the Tool spec; we cast to keep the SDK boundary loose. */
|
|
42
53
|
function toMcpTools(all) {
|
|
43
|
-
return all.map((t) =>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
return all.map((t) => {
|
|
55
|
+
const base = {
|
|
56
|
+
name: t.name,
|
|
57
|
+
description: t.description,
|
|
58
|
+
inputSchema: t.inputSchema,
|
|
59
|
+
};
|
|
60
|
+
if (t.outputSchema) {
|
|
61
|
+
base.outputSchema = t.outputSchema;
|
|
62
|
+
}
|
|
63
|
+
return base;
|
|
64
|
+
});
|
|
48
65
|
}
|
|
49
66
|
/** Auto-enrich a tool response with Second Brain layer:
|
|
50
67
|
* - compose: which molecules this atom participates in
|
|
@@ -178,7 +195,72 @@ export async function startMcpServer(opts) {
|
|
|
178
195
|
const allTools = buildAllTools();
|
|
179
196
|
const toolMap = buildToolMap();
|
|
180
197
|
const dynamic = loadDynamicState(runtime.meta.rootPath);
|
|
181
|
-
|
|
198
|
+
// ─── MneMeiosis (v1.19) — boot the working-memory session + fertilize ────
|
|
199
|
+
// Detect AI vendor from MCP client info if available (best-effort —
|
|
200
|
+
// falls back to "unknown-mcp-client" so chromosomes are still attributable).
|
|
201
|
+
const lineageSettings = lineage.readSettings(runtime.meta.rootPath);
|
|
202
|
+
const sessionVendor = process.env["MNEME_AI_VENDOR"] ?? "unknown-mcp-client";
|
|
203
|
+
const machineId = lineage.machineFingerprint(runtime.meta.rootPath);
|
|
204
|
+
const sessionId = `${new Date().toISOString().replace(/[:.]/g, "")}-${sessionVendor}-${machineId.slice(0, 6)}`;
|
|
205
|
+
if (!lineageSettings.optedOut) {
|
|
206
|
+
lineage.startSession({ sessionId, vendor: sessionVendor, machineId });
|
|
207
|
+
// Auto-fertilize at boot — agent gets the inheritance bundle via
|
|
208
|
+
// mneme://lineage/inheritance resource (best-effort; non-blocking).
|
|
209
|
+
try {
|
|
210
|
+
const bundle = lineage.fertilize(runtime.meta.rootPath, { topN: 3 });
|
|
211
|
+
if (bundle) {
|
|
212
|
+
// Stash the bundle in working memory so the resource handler
|
|
213
|
+
// surfaces it on first read (no need to recompute on every read).
|
|
214
|
+
// We rely on a process-global var — single MCP process per session.
|
|
215
|
+
globalThis.__mnemeInheritanceBundle = bundle;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch { /* best-effort */ }
|
|
219
|
+
// Auto-crystallize on process exit signals.
|
|
220
|
+
const onExit = (reason) => {
|
|
221
|
+
try {
|
|
222
|
+
const result = lineage.crystallize(runtime.meta.rootPath, { endReason: reason });
|
|
223
|
+
if (result)
|
|
224
|
+
lineage.addToTree(runtime.meta.rootPath, result.chromosome);
|
|
225
|
+
}
|
|
226
|
+
catch { /* best-effort */ }
|
|
227
|
+
};
|
|
228
|
+
process.on("SIGTERM", () => { onExit("exit-signal"); process.exit(0); });
|
|
229
|
+
process.on("SIGINT", () => { onExit("exit-signal"); process.exit(0); });
|
|
230
|
+
process.on("beforeExit", () => onExit("exit-signal"));
|
|
231
|
+
// Idle-timeout crystallize — every 45 min of no MCP calls.
|
|
232
|
+
const IDLE_MS = 45 * 60 * 1000;
|
|
233
|
+
let idleTimer = null;
|
|
234
|
+
const resetIdleTimer = () => {
|
|
235
|
+
if (idleTimer)
|
|
236
|
+
clearTimeout(idleTimer);
|
|
237
|
+
idleTimer = setTimeout(() => {
|
|
238
|
+
const result = lineage.crystallize(runtime.meta.rootPath, { endReason: "idle-timeout" });
|
|
239
|
+
if (result) {
|
|
240
|
+
lineage.addToTree(runtime.meta.rootPath, result.chromosome);
|
|
241
|
+
// Start a fresh session post-idle for the next round of work.
|
|
242
|
+
lineage.startSession({ sessionId: `${sessionId}-idle-${Date.now()}`, vendor: sessionVendor, machineId });
|
|
243
|
+
}
|
|
244
|
+
}, IDLE_MS);
|
|
245
|
+
};
|
|
246
|
+
// Stash so the dispatch path can call it.
|
|
247
|
+
globalThis.__mnemeResetIdleTimer = resetIdleTimer;
|
|
248
|
+
resetIdleTimer();
|
|
249
|
+
}
|
|
250
|
+
const server = new Server({ name: "mneme", version: resolveVersion() }, {
|
|
251
|
+
capabilities: {
|
|
252
|
+
tools: {},
|
|
253
|
+
// v1.18.0 — Mneme advertises 4 MCP primitives + tools (was: tools only).
|
|
254
|
+
// resources — read-only views of constitution / catalog / karma
|
|
255
|
+
// prompts — pre-baked workflow templates (slash commands)
|
|
256
|
+
// completions — tab-complete tool / category / arg values
|
|
257
|
+
// logging — sink for forensic + lifecycle events
|
|
258
|
+
resources: { subscribe: false, listChanged: true },
|
|
259
|
+
prompts: { listChanged: false },
|
|
260
|
+
completions: {},
|
|
261
|
+
logging: {},
|
|
262
|
+
},
|
|
263
|
+
});
|
|
182
264
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
183
265
|
tools: [
|
|
184
266
|
...toMcpTools(allTools),
|
|
@@ -189,13 +271,58 @@ export async function startMcpServer(opts) {
|
|
|
189
271
|
})),
|
|
190
272
|
],
|
|
191
273
|
}));
|
|
274
|
+
// ─── MCP primitives — resources / prompts / completion ──────────────
|
|
275
|
+
server.setRequestHandler(ListResourcesRequestSchema, async () => ({
|
|
276
|
+
resources: listResources(runtime),
|
|
277
|
+
}));
|
|
278
|
+
server.setRequestHandler(ReadResourceRequestSchema, async (req) => ({
|
|
279
|
+
contents: [readResource(runtime, req.params.uri)],
|
|
280
|
+
}));
|
|
281
|
+
server.setRequestHandler(ListPromptsRequestSchema, async () => ({
|
|
282
|
+
prompts: listPrompts(),
|
|
283
|
+
}));
|
|
284
|
+
server.setRequestHandler(GetPromptRequestSchema, async (req) => {
|
|
285
|
+
const args = {};
|
|
286
|
+
if (req.params.arguments) {
|
|
287
|
+
for (const [k, v] of Object.entries(req.params.arguments)) {
|
|
288
|
+
args[k] = String(v);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// SDK type unions GetPromptResult with a task-bearing variant; our
|
|
292
|
+
// shape matches GetPromptResult exactly. Cast to satisfy the union.
|
|
293
|
+
return getPrompt(req.params.name, args);
|
|
294
|
+
});
|
|
295
|
+
server.setRequestHandler(CompleteRequestSchema, async (req) => {
|
|
296
|
+
const ref = req.params.ref;
|
|
297
|
+
const argName = req.params.argument.name;
|
|
298
|
+
const partial = String(req.params.argument.value ?? "");
|
|
299
|
+
const toolName = ref.type === "ref/prompt" ? ref.name : "";
|
|
300
|
+
const values = completeArgument(toolName, argName, partial);
|
|
301
|
+
return {
|
|
302
|
+
completion: { values, total: values.length, hasMore: false },
|
|
303
|
+
};
|
|
304
|
+
});
|
|
192
305
|
server.setRequestHandler(CallToolRequestSchema, async (req) => {
|
|
193
306
|
const tool = toolMap.get(req.params.name);
|
|
194
307
|
if (tool) {
|
|
195
308
|
try {
|
|
196
309
|
const args = (req.params.arguments ?? {});
|
|
310
|
+
// v1.18.0 — record observation for ALETHEIA immune profile (best-effort).
|
|
311
|
+
recordObservation(runtime.meta.rootPath, tool.name, args);
|
|
312
|
+
// v1.19.0 — record atom in MneMeiosis working memory + reset idle timer.
|
|
313
|
+
try {
|
|
314
|
+
lineage.recordAtom(runtime.meta.rootPath, tool.name, args);
|
|
315
|
+
const resetIdle = globalThis.__mnemeResetIdleTimer;
|
|
316
|
+
if (resetIdle)
|
|
317
|
+
resetIdle();
|
|
318
|
+
}
|
|
319
|
+
catch { /* best-effort */ }
|
|
197
320
|
const response = await tool.handler(runtime, args);
|
|
198
321
|
const enriched = enrichWithSecondBrain(response, tool, runtime.meta.rootPath);
|
|
322
|
+
// v1.18.0 — record HMAC-chained replay entry for audit (best-effort).
|
|
323
|
+
recordReplay(runtime.meta.rootPath, tool.name, args, enriched);
|
|
324
|
+
// v1.18.0 — increment karma invocations.
|
|
325
|
+
recordKarmaEvent(runtime.meta.rootPath, tool.name, "invocation");
|
|
199
326
|
return toCallResult(enriched);
|
|
200
327
|
}
|
|
201
328
|
catch (err) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP `completion` primitive — tab-complete tool arguments.
|
|
3
|
+
*
|
|
4
|
+
* Currently we complete:
|
|
5
|
+
* • category arg of mneme.capabilities + mneme.tool.lint
|
|
6
|
+
* • name arg of mneme.tool.contract → suggests every registered tool
|
|
7
|
+
* • tool arg of mneme.help / mneme.aletheia.* → same
|
|
8
|
+
*
|
|
9
|
+
* Extensible: when a tool's inputSchema declares an enum, we
|
|
10
|
+
* suggest from the enum. Otherwise we fall back to the well-known
|
|
11
|
+
* arg-name → completion map below.
|
|
12
|
+
*/
|
|
13
|
+
/** Return up to N completion suggestions for `argName` of `toolName`. */
|
|
14
|
+
export declare function completeArgument(toolName: string, argName: string, partial: string): string[];
|
|
15
|
+
/** For tests + introspection — list every category we know about. */
|
|
16
|
+
export declare function knownCategories(): readonly string[];
|
|
17
|
+
/** For tests — count of completions available for a representative shape. */
|
|
18
|
+
export declare function _smokeCount(): number;
|
|
19
|
+
//# sourceMappingURL=completion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/mcp_primitives/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,yEAAyE;AACzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA+B7F;AAED,qEAAqE;AACrE,wBAAgB,eAAe,IAAI,SAAS,MAAM,EAAE,CAEnD;AAED,6EAA6E;AAC7E,wBAAgB,WAAW,IAAI,MAAM,CAGpC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP `completion` primitive — tab-complete tool arguments.
|
|
3
|
+
*
|
|
4
|
+
* Currently we complete:
|
|
5
|
+
* • category arg of mneme.capabilities + mneme.tool.lint
|
|
6
|
+
* • name arg of mneme.tool.contract → suggests every registered tool
|
|
7
|
+
* • tool arg of mneme.help / mneme.aletheia.* → same
|
|
8
|
+
*
|
|
9
|
+
* Extensible: when a tool's inputSchema declares an enum, we
|
|
10
|
+
* suggest from the enum. Otherwise we fall back to the well-known
|
|
11
|
+
* arg-name → completion map below.
|
|
12
|
+
*/
|
|
13
|
+
import { buildAllTools, groupByCategory } from "../tools/_registry.js";
|
|
14
|
+
const KNOWN_CATEGORIES = ["memory", "people", "audit", "forensics", "insights", "quality", "quant", "lab", "meta"];
|
|
15
|
+
/** Return up to N completion suggestions for `argName` of `toolName`. */
|
|
16
|
+
export function completeArgument(toolName, argName, partial) {
|
|
17
|
+
const lower = partial.toLowerCase();
|
|
18
|
+
// Tool-name args.
|
|
19
|
+
if (argName === "name" ||
|
|
20
|
+
argName === "tool" ||
|
|
21
|
+
argName === "target") {
|
|
22
|
+
return buildAllTools()
|
|
23
|
+
.map((t) => t.name)
|
|
24
|
+
.filter((n) => n.toLowerCase().startsWith(lower) || n.toLowerCase().includes(lower))
|
|
25
|
+
.slice(0, 25);
|
|
26
|
+
}
|
|
27
|
+
// Category args.
|
|
28
|
+
if (argName === "category") {
|
|
29
|
+
return KNOWN_CATEGORIES.filter((c) => c.startsWith(lower)).slice(0, 25);
|
|
30
|
+
}
|
|
31
|
+
// Tool-defined enum fallback.
|
|
32
|
+
const tool = buildAllTools().find((t) => t.name === toolName);
|
|
33
|
+
if (tool) {
|
|
34
|
+
const props = tool.inputSchema?.properties ?? {};
|
|
35
|
+
const argDef = props[argName];
|
|
36
|
+
if (argDef && Array.isArray(argDef.enum)) {
|
|
37
|
+
return argDef.enum
|
|
38
|
+
.filter((v) => typeof v === "string")
|
|
39
|
+
.filter((v) => v.toLowerCase().includes(lower))
|
|
40
|
+
.slice(0, 25);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Fallback: empty completion.
|
|
44
|
+
return [];
|
|
45
|
+
}
|
|
46
|
+
/** For tests + introspection — list every category we know about. */
|
|
47
|
+
export function knownCategories() {
|
|
48
|
+
return KNOWN_CATEGORIES;
|
|
49
|
+
}
|
|
50
|
+
/** For tests — count of completions available for a representative shape. */
|
|
51
|
+
export function _smokeCount() {
|
|
52
|
+
void groupByCategory;
|
|
53
|
+
return buildAllTools().length;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=completion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/mcp_primitives/completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEnH,yEAAyE;AACzE,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAe,EAAE,OAAe;IACjF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,kBAAkB;IAClB,IACE,OAAO,KAAK,MAAM;QAClB,OAAO,KAAK,MAAM;QAClB,OAAO,KAAK,QAAQ,EACpB,CAAC;QACD,OAAO,aAAa,EAAE;aACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnF,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,iBAAiB;IACjB,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,8BAA8B;IAC9B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAI,IAAI,CAAC,WAAqE,EAAE,UAAU,IAAI,EAAE,CAAC;QAC5G,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,MAAM,CAAC,IAAI;iBACf,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;iBACjD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC9C,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,8BAA8B;IAC9B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,eAAe;IAC7B,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,WAAW;IACzB,KAAK,eAAe,CAAC;IACrB,OAAO,aAAa,EAAE,CAAC,MAAM,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP `prompts` primitive — pre-baked workflow templates clients
|
|
3
|
+
* surface as slash-commands. Mneme ships 4:
|
|
4
|
+
*
|
|
5
|
+
* • /refactor-safety — ai_commit_check before merge
|
|
6
|
+
* • /incident-postmortem — premortem + drawdown + chronicle
|
|
7
|
+
* • /onboarding-pack — mirror + nervous-system for new hire
|
|
8
|
+
* • /code-review-with-history — memory.why + telepathy + premortem
|
|
9
|
+
*
|
|
10
|
+
* Each prompt resolves to a Mneme molecule (a named atom combination).
|
|
11
|
+
* Clients call `prompts/get` with arguments → we render a templated
|
|
12
|
+
* message that lists the molecule's atoms + how to compose them.
|
|
13
|
+
*/
|
|
14
|
+
export interface McpPromptListItem {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
arguments?: Array<{
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
required?: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
}
|
|
23
|
+
export interface McpPromptMessage {
|
|
24
|
+
role: "user" | "assistant";
|
|
25
|
+
content: {
|
|
26
|
+
type: "text";
|
|
27
|
+
text: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface McpPromptResult {
|
|
31
|
+
description: string;
|
|
32
|
+
messages: McpPromptMessage[];
|
|
33
|
+
}
|
|
34
|
+
export declare function listPrompts(): McpPromptListItem[];
|
|
35
|
+
export declare function getPrompt(name: string, args: Record<string, string>): McpPromptResult;
|
|
36
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp_primitives/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAyBD,wBAAgB,WAAW,IAAI,iBAAiB,EAAE,CAEjD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,eAAe,CAoGrF"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP `prompts` primitive — pre-baked workflow templates clients
|
|
3
|
+
* surface as slash-commands. Mneme ships 4:
|
|
4
|
+
*
|
|
5
|
+
* • /refactor-safety — ai_commit_check before merge
|
|
6
|
+
* • /incident-postmortem — premortem + drawdown + chronicle
|
|
7
|
+
* • /onboarding-pack — mirror + nervous-system for new hire
|
|
8
|
+
* • /code-review-with-history — memory.why + telepathy + premortem
|
|
9
|
+
*
|
|
10
|
+
* Each prompt resolves to a Mneme molecule (a named atom combination).
|
|
11
|
+
* Clients call `prompts/get` with arguments → we render a templated
|
|
12
|
+
* message that lists the molecule's atoms + how to compose them.
|
|
13
|
+
*/
|
|
14
|
+
const PROMPTS = [
|
|
15
|
+
{
|
|
16
|
+
name: "refactor-safety",
|
|
17
|
+
description: "Before merging an AI-written refactor, run a safety bundle: certify + verify + cross-examine.",
|
|
18
|
+
arguments: [{ name: "commit", description: "Commit hash to gate (defaults to HEAD).", required: false }],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "incident-postmortem",
|
|
22
|
+
description: "Reconstruct an incident: drawdown + premortem + chronicle + replay fingerprint.",
|
|
23
|
+
arguments: [{ name: "since", description: "Window start (ISO date).", required: false }],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "onboarding-pack",
|
|
27
|
+
description: "Generate an onboarding bundle: mirror + nervous-system + atrophy heatmap + voice fingerprints.",
|
|
28
|
+
arguments: [{ name: "topic", description: "Area to onboard into (e.g. 'auth', 'payments').", required: true }],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: "code-review-with-history",
|
|
32
|
+
description: "Review code with full historical context: memory.why for the file, telepathy for invisible owners, premortem for risk.",
|
|
33
|
+
arguments: [{ name: "file", description: "File path under review.", required: true }],
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
export function listPrompts() {
|
|
37
|
+
return PROMPTS;
|
|
38
|
+
}
|
|
39
|
+
export function getPrompt(name, args) {
|
|
40
|
+
switch (name) {
|
|
41
|
+
case "refactor-safety": {
|
|
42
|
+
const commit = args["commit"] ?? "HEAD";
|
|
43
|
+
return {
|
|
44
|
+
description: "Refactor-safety gate — bundle 3 Mneme calls before merging.",
|
|
45
|
+
messages: [
|
|
46
|
+
{
|
|
47
|
+
role: "user",
|
|
48
|
+
content: {
|
|
49
|
+
type: "text",
|
|
50
|
+
text: [
|
|
51
|
+
`I'm about to merge commit ${commit}. Run the refactor-safety bundle:`,
|
|
52
|
+
``,
|
|
53
|
+
`1. mneme.audit.certify({ explain: true }) → 5-axis trust verdict`,
|
|
54
|
+
`2. mneme.verify_claims({ draft: <my PR description> }) → catch hallucinated hashes`,
|
|
55
|
+
`3. mneme.adversary.cross_examine({ claim: "this refactor is safe to merge" }) → red-team`,
|
|
56
|
+
``,
|
|
57
|
+
`Then summarize: PASS / WARN / FAIL across all three. If any warn or fail, list the specific findings + recommended next step.`,
|
|
58
|
+
].join("\n"),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
case "incident-postmortem": {
|
|
65
|
+
const since = args["since"] ?? "(last 14 days)";
|
|
66
|
+
return {
|
|
67
|
+
description: "Incident postmortem — pull together drawdown + chronicle + replay evidence.",
|
|
68
|
+
messages: [
|
|
69
|
+
{
|
|
70
|
+
role: "user",
|
|
71
|
+
content: {
|
|
72
|
+
type: "text",
|
|
73
|
+
text: [
|
|
74
|
+
`Reconstruct the incident from ${since}. Compose:`,
|
|
75
|
+
``,
|
|
76
|
+
`1. mneme.quant.drawdown → the worst losing-streak in the window`,
|
|
77
|
+
`2. mneme.insights.story({ topic: "<incident topic>" }) → what happened, in narrative`,
|
|
78
|
+
`3. mneme.insights.regret({ windowDays: 14 }) → ship-then-fix patterns`,
|
|
79
|
+
`4. mneme.replay.fingerprint → tamper-evident root for the AI session`,
|
|
80
|
+
``,
|
|
81
|
+
`Output a postmortem doc with sections: timeline, root cause, what we knew, what we missed, action items.`,
|
|
82
|
+
].join("\n"),
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
case "onboarding-pack": {
|
|
89
|
+
const topic = args["topic"] ?? "<topic>";
|
|
90
|
+
return {
|
|
91
|
+
description: `Onboarding pack — produce a curated dossier for someone joining the ${topic} area.`,
|
|
92
|
+
messages: [
|
|
93
|
+
{
|
|
94
|
+
role: "user",
|
|
95
|
+
content: {
|
|
96
|
+
type: "text",
|
|
97
|
+
text: [
|
|
98
|
+
`Build an onboarding pack for the ${topic} area. Compose:`,
|
|
99
|
+
``,
|
|
100
|
+
`1. mneme.insights.mirror({ topic: "${topic}" }) → 5 PRs, 3 people, 2 incidents`,
|
|
101
|
+
`2. mneme.people.nervous_system → flagship report`,
|
|
102
|
+
`3. mneme.people.atrophy → who knows what (and is forgetting it)`,
|
|
103
|
+
`4. mneme.quality.cognitive_twin({ authorEmail: "<top owner>" }) → voice fingerprint`,
|
|
104
|
+
``,
|
|
105
|
+
`Output a Markdown dossier with sections: people to ask, key PRs, recent incidents, the codebase's voice.`,
|
|
106
|
+
].join("\n"),
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
case "code-review-with-history": {
|
|
113
|
+
const file = args["file"] ?? "<path>";
|
|
114
|
+
return {
|
|
115
|
+
description: "Code review with full historical context.",
|
|
116
|
+
messages: [
|
|
117
|
+
{
|
|
118
|
+
role: "user",
|
|
119
|
+
content: {
|
|
120
|
+
type: "text",
|
|
121
|
+
text: [
|
|
122
|
+
`Review ${file} with full historical context. Compose:`,
|
|
123
|
+
``,
|
|
124
|
+
`1. mneme.memory.why({ file: "${file}" }) → why does this file exist`,
|
|
125
|
+
`2. mneme.people.telepathy → who pairs invisibly on adjacent files`,
|
|
126
|
+
`3. mneme.insights.premortem({ intent: "modify ${file}" }) → regret risk`,
|
|
127
|
+
`4. mneme.aletheia.lint({ target: "<modification>" }) → security scan`,
|
|
128
|
+
``,
|
|
129
|
+
`Output: should we proceed? what should reviewers focus on?`,
|
|
130
|
+
].join("\n"),
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
default:
|
|
137
|
+
throw new Error(`unknown prompt: ${name}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp_primitives/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP `resources` primitive — Mneme exposes 5 read-only views agents can
|
|
3
|
+
* fetch (and, eventually, subscribe to for change notifications):
|
|
4
|
+
*
|
|
5
|
+
* • mneme://constitution — repo's auto-synthesized rules
|
|
6
|
+
* • mneme://catalog — full tool catalog (JSON)
|
|
7
|
+
* • mneme://catalog/{category} — one category of tools
|
|
8
|
+
* • mneme://atrophy/heatmap — current atrophy snapshot
|
|
9
|
+
* • mneme://passport/{email} — engineer dossier
|
|
10
|
+
* • mneme://chronicle/latest — latest chaptered narrative
|
|
11
|
+
* • mneme://aletheia/karma — public tool reputation ledger
|
|
12
|
+
*
|
|
13
|
+
* v1.18.0 ships static / on-demand resources. Subscriptions + push updates
|
|
14
|
+
* (Mneme Whisper) land in v1.19.
|
|
15
|
+
*/
|
|
16
|
+
import type { ToolRuntime } from "../tools/_types.js";
|
|
17
|
+
export interface McpResourceListItem {
|
|
18
|
+
uri: string;
|
|
19
|
+
name: string;
|
|
20
|
+
mimeType: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface McpResourceContent {
|
|
24
|
+
uri: string;
|
|
25
|
+
mimeType: string;
|
|
26
|
+
text: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function listResources(rt: ToolRuntime): McpResourceListItem[];
|
|
29
|
+
export declare function readResource(rt: ToolRuntime, uri: string): McpResourceContent;
|
|
30
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/mcp_primitives/resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AA6BD,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,mBAAmB,EAAE,CAqBpE;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAiE7E"}
|