wyrm-mcp 6.0.0 โ 6.0.2
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 +15 -2
- package/dist/agent-daemon.d.ts.map +1 -1
- package/dist/agent-daemon.js +17 -2
- package/dist/agent-daemon.js.map +1 -1
- package/dist/index.js +32 -17
- package/dist/index.js.map +1 -1
- package/dist/resilience.js +1 -1
- package/dist/resilience.js.map +1 -1
- package/dist/statusline.d.ts.map +1 -1
- package/dist/statusline.js +27 -7
- package/dist/statusline.js.map +1 -1
- package/dist/visibility.d.ts.map +1 -1
- package/dist/visibility.js +8 -2
- package/dist/visibility.js.map +1 -1
- package/dist/wyrm-cli.js +20 -10
- package/dist/wyrm-cli.js.map +1 -1
- package/dist/wyrm-loop.js +1 -1
- package/dist/wyrm-loop.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/wyrm-mcp)
|
|
6
6
|
[](LICENSE)
|
|
7
|
-
[](packages/mcp-server)
|
|
8
8
|
[](https://www.typescriptlang.org/)
|
|
9
9
|
[](https://modelcontextprotocol.io)
|
|
10
10
|
|
|
@@ -31,7 +31,20 @@ You don't ask for memory. The AI cites it on its own. Visibly, with sources.
|
|
|
31
31
|
|
|
32
32
|
---
|
|
33
33
|
|
|
34
|
-
##
|
|
34
|
+
## New in 6.0 โ "Present"
|
|
35
|
+
|
|
36
|
+
- **๐ Live statusline** โ `wyrm-statusline` binary renders Wyrm's live state into your Claude Code (or Cursor / Windsurf) statusline: `๐ Wyrm ยท ProjectName ยท 3 โถ ยท ~12k saved ยท โฌข 7`. Auto-spawned daemon, idle-times-out, privacy mode for screen-shares.
|
|
37
|
+
- **โง Cross-project memory** โ `wyrm_constellation` queries FTS5 across every registered Wyrm project at once. *"Have I solved this before in any project?"* Privacy-gated: per-row `cross_project_visibility` defaults to `'within'`.
|
|
38
|
+
- **โฐ Tool profiles** โ `essential` / `standard` / `full` profiles auto-detected per client. VS Code Copilot / Cursor / Antigravity see a curated 27-tool surface; Claude Code / Codex / unknown clients get all 126. No functionality removed.
|
|
39
|
+
- **โก Cache markers** โ `wyrm_context_build` segregates a stable preamble for Anthropic prompt-caching (10ร cost cut on cached portions).
|
|
40
|
+
- **โบ `wyrm_migrate_prompt`** โ rewrite Wyrm-managed blocks in `.cursor/rules`, `.github/copilot-instructions.md`, `CLAUDE.md` idempotently. Operator content outside the markers is preserved verbatim.
|
|
41
|
+
|
|
42
|
+
Enable the statusline in Claude Code:
|
|
43
|
+
```json
|
|
44
|
+
{ "statusLine": { "type": "command", "command": "wyrm-statusline", "padding": 0 } }
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## What's in the box (126 MCP tools)
|
|
35
48
|
|
|
36
49
|
- **โ Memory** โ projects, sessions, quests, ground truths, memory artifacts, hybrid FTS5 + vector search
|
|
37
50
|
- **โ Counter-pattern** โ failure check / record / resolve, blocks repeated mistakes at suggestion time
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-daemon.d.ts","sourceRoot":"","sources":["../src/agent-daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqED,qBAAa,WAAW;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,kDAAkD;IAClD,MAAM,IAAI,YAAY;IAuDtB,kDAAkD;IAClD,KAAK,CAAC,IAAI,GAAE,YAAiB,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"agent-daemon.d.ts","sourceRoot":"","sources":["../src/agent-daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqED,qBAAa,WAAW;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,kDAAkD;IAClD,MAAM,IAAI,YAAY;IAuDtB,kDAAkD;IAClD,KAAK,CAAC,IAAI,GAAE,YAAiB,GAAG,WAAW;IAqE3C,yEAAyE;IACnE,IAAI,CAAC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAgC1H,gCAAgC;IAC1B,OAAO,CAAC,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IAK5D,+CAA+C;IAC/C,SAAS,CAAC,KAAK,SAAK,GAAG,MAAM;CAU9B"}
|
package/dist/agent-daemon.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* @license Proprietary
|
|
20
20
|
*/
|
|
21
21
|
import { spawn } from 'child_process';
|
|
22
|
-
import { existsSync, readFileSync, writeFileSync, statSync, openSync, renameSync, unlinkSync, mkdirSync } from 'fs';
|
|
22
|
+
import { existsSync, readFileSync, writeFileSync, statSync, openSync, closeSync, renameSync, unlinkSync, mkdirSync } from 'fs';
|
|
23
23
|
import { homedir } from 'os';
|
|
24
24
|
import { join, dirname, resolve } from 'path';
|
|
25
25
|
import { fileURLToPath } from 'url';
|
|
@@ -189,6 +189,10 @@ export class AgentDaemon {
|
|
|
189
189
|
return { ok: false, error: `spawn failed: ${err.message}` };
|
|
190
190
|
}
|
|
191
191
|
if (!child.pid) {
|
|
192
|
+
try {
|
|
193
|
+
closeSync(logFd);
|
|
194
|
+
}
|
|
195
|
+
catch { /* ignore */ }
|
|
192
196
|
return { ok: false, error: 'spawn returned no PID' };
|
|
193
197
|
}
|
|
194
198
|
try {
|
|
@@ -200,8 +204,19 @@ export class AgentDaemon {
|
|
|
200
204
|
process.kill(child.pid, 'SIGTERM');
|
|
201
205
|
}
|
|
202
206
|
catch { /* ignore */ }
|
|
207
|
+
try {
|
|
208
|
+
closeSync(logFd);
|
|
209
|
+
}
|
|
210
|
+
catch { /* ignore */ }
|
|
203
211
|
return { ok: false, error: `Could not write PID file: ${err.message}` };
|
|
204
212
|
}
|
|
213
|
+
// Close the parent's copy of the log fd โ the child inherits its own
|
|
214
|
+
// dup via stdio. Without this, every successful spawn leaks one fd in
|
|
215
|
+
// the parent (the MCP server).
|
|
216
|
+
try {
|
|
217
|
+
closeSync(logFd);
|
|
218
|
+
}
|
|
219
|
+
catch { /* ignore */ }
|
|
205
220
|
// unref so this process doesn't wait on the child
|
|
206
221
|
child.unref();
|
|
207
222
|
// Brief settle delay so status() reflects the new state
|
|
@@ -232,7 +247,7 @@ export class AgentDaemon {
|
|
|
232
247
|
while (Date.now() - start < grace) {
|
|
233
248
|
if (!isProcessAlive(pid))
|
|
234
249
|
break;
|
|
235
|
-
await new Promise(r => setTimeout(r, 100));
|
|
250
|
+
await new Promise(r => { setTimeout(r, 100); });
|
|
236
251
|
}
|
|
237
252
|
if (isProcessAlive(pid)) {
|
|
238
253
|
try {
|
package/dist/agent-daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-daemon.js","sourceRoot":"","sources":["../src/agent-daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-daemon.js","sourceRoot":"","sources":["../src/agent-daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4120,7 +4120,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
4120
4120
|
case "restart": {
|
|
4121
4121
|
cloudSyncManager.stop();
|
|
4122
4122
|
// Brief grace period for the daemon's final tick before re-spawning
|
|
4123
|
-
await new Promise((res) => setTimeout(res, 500));
|
|
4123
|
+
await new Promise((res) => { setTimeout(res, 500); });
|
|
4124
4124
|
const r = cloudSyncManager.start({ interval_minutes, keep_count });
|
|
4125
4125
|
return {
|
|
4126
4126
|
content: [{ type: "text", text: r.ok
|
|
@@ -5565,22 +5565,22 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
5565
5565
|
return { content: [{ type: "text", text: `๐ ${a.server}.${a.tool} (${r.latency_ms}ms):\n${JSON.stringify(r.result, null, 2)}` }] };
|
|
5566
5566
|
}
|
|
5567
5567
|
// ==================== v3.9.0 โ TOOL ANALYTICS ====================
|
|
5568
|
-
case "wyrm_tool_analytics":
|
|
5569
|
-
{
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
if (
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
|
|
5568
|
+
case "wyrm_tool_analytics": {
|
|
5569
|
+
const { mode, days, tool_name, limit } = args;
|
|
5570
|
+
const m = mode ?? 'usage';
|
|
5571
|
+
if (m === 'overview') {
|
|
5572
|
+
return { content: [{ type: "text", text: JSON.stringify(toolAnalytics.overview({ days }), null, 2) }] };
|
|
5573
|
+
}
|
|
5574
|
+
if (m === 'errors') {
|
|
5575
|
+
if (!tool_name)
|
|
5576
|
+
return { content: [{ type: "text", text: "tool_name required for mode=errors" }], isError: true };
|
|
5577
|
+
const errs = toolAnalytics.recentErrors(tool_name, limit ?? 10);
|
|
5578
|
+
return { content: [{ type: "text", text: JSON.stringify(errs, null, 2) }] };
|
|
5579
|
+
}
|
|
5580
|
+
const stats = toolAnalytics.usageStats({ days, limit: limit ?? 100 });
|
|
5581
|
+
return { content: [{ type: "text", text: JSON.stringify(stats, null, 2) }] };
|
|
5582
|
+
}
|
|
5583
|
+
default:
|
|
5584
5584
|
return {
|
|
5585
5585
|
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
5586
5586
|
isError: true,
|
|
@@ -5616,6 +5616,21 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
5616
5616
|
};
|
|
5617
5617
|
}
|
|
5618
5618
|
});
|
|
5619
|
+
// Global error handlers โ without these, a single unhandled rejection from
|
|
5620
|
+
// any background async path kills the entire MCP server. We log to stderr
|
|
5621
|
+
// (never stdout, which is the MCP transport channel) and keep running.
|
|
5622
|
+
process.on('uncaughtException', (err) => {
|
|
5623
|
+
try {
|
|
5624
|
+
console.error('Wyrm[uncaughtException]:', err instanceof Error ? err.stack : err);
|
|
5625
|
+
}
|
|
5626
|
+
catch { /* logging itself failed; nothing more to do */ }
|
|
5627
|
+
});
|
|
5628
|
+
process.on('unhandledRejection', (reason) => {
|
|
5629
|
+
try {
|
|
5630
|
+
console.error('Wyrm[unhandledRejection]:', reason instanceof Error ? reason.stack : reason);
|
|
5631
|
+
}
|
|
5632
|
+
catch { /* same */ }
|
|
5633
|
+
});
|
|
5619
5634
|
// Start server
|
|
5620
5635
|
async function main() {
|
|
5621
5636
|
const transport = new StdioServerTransport();
|