mnueron 0.1.0 → 0.2.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 +10 -15
- package/dist/cli.js +130 -1
- package/dist/cli.js.map +1 -1
- package/dist/detectors/aider.js +59 -0
- package/dist/detectors/aider.js.map +1 -0
- package/dist/detectors/continue.js +31 -0
- package/dist/detectors/continue.js.map +1 -0
- package/dist/detectors/goose.js +48 -0
- package/dist/detectors/goose.js.map +1 -0
- package/dist/detectors/index.js +16 -0
- package/dist/detectors/index.js.map +1 -1
- package/dist/detectors/opencode.js +42 -0
- package/dist/detectors/opencode.js.map +1 -0
- package/dist/detectors/zed.js +138 -0
- package/dist/detectors/zed.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -92,32 +92,27 @@ On macOS you can also use `brew install node@20`; on Ubuntu/Debian `sudo apt ins
|
|
|
92
92
|
|
|
93
93
|
### Install mnueron
|
|
94
94
|
|
|
95
|
-
Two paths, pick whichever works for you:
|
|
96
|
-
|
|
97
|
-
#### A. From source (works today)
|
|
98
|
-
|
|
99
95
|
```bash
|
|
100
|
-
|
|
101
|
-
cd mnueron
|
|
102
|
-
npm install
|
|
103
|
-
npm run build
|
|
104
|
-
npm link # registers `mnueron` as a global command on your PATH
|
|
96
|
+
npm install -g mnueron
|
|
105
97
|
mnueron setup
|
|
106
98
|
```
|
|
107
99
|
|
|
108
|
-
|
|
109
|
-
uninstall later, run `npm unlink -g mnueron` from the same directory.
|
|
100
|
+
That's it. Published on npm: <https://www.npmjs.com/package/mnueron>.
|
|
110
101
|
|
|
111
|
-
####
|
|
102
|
+
#### From source (for contributors)
|
|
112
103
|
|
|
113
|
-
|
|
104
|
+
If you want to hack on mnueron itself, install from a local clone:
|
|
114
105
|
|
|
115
106
|
```bash
|
|
116
|
-
|
|
107
|
+
git clone https://github.com/randi2160/mnueron.git
|
|
108
|
+
cd mnueron
|
|
109
|
+
npm install
|
|
110
|
+
npm run build
|
|
111
|
+
npm link # makes your local build the global `mnueron` command
|
|
117
112
|
mnueron setup
|
|
118
113
|
```
|
|
119
114
|
|
|
120
|
-
|
|
115
|
+
To switch back to the published version: `npm unlink -g mnueron && npm install -g mnueron`.
|
|
121
116
|
|
|
122
117
|
### What `mnueron setup` does
|
|
123
118
|
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* mnueron search <query> — quick search from terminal
|
|
8
8
|
* mnueron namespaces — list namespaces
|
|
9
9
|
*/
|
|
10
|
-
import { readFile, stat } from 'node:fs/promises';
|
|
10
|
+
import { readFile, stat, writeFile } from 'node:fs/promises';
|
|
11
11
|
import { existsSync } from 'node:fs';
|
|
12
12
|
import { dirname } from 'node:path';
|
|
13
13
|
import { fileURLToPath } from 'node:url';
|
|
@@ -30,6 +30,7 @@ async function main() {
|
|
|
30
30
|
case 'rechunk': return cmdRechunk(rest);
|
|
31
31
|
case 'migrate-to-hosted': return cmdMigrateToHosted(rest);
|
|
32
32
|
case 'plugin': return cmdPlugin(rest);
|
|
33
|
+
case 'primer': return cmdPrimer(rest);
|
|
33
34
|
case 'help':
|
|
34
35
|
case '--help':
|
|
35
36
|
case '-h':
|
|
@@ -79,6 +80,11 @@ Commands:
|
|
|
79
80
|
disable <name> Remove from enabledPlugins list.
|
|
80
81
|
add <name> Alias for enable; also reminds about npm install.
|
|
81
82
|
remove <name> Alias for disable.
|
|
83
|
+
mnueron primer Output a markdown primer for CLAUDE.md / .cursorrules.
|
|
84
|
+
[--ns <name>] Only summarize one namespace (default: all).
|
|
85
|
+
[--recent <n>] Sample n most-recent memory titles (default: 12).
|
|
86
|
+
[--out <file>] Write to file instead of stdout.
|
|
87
|
+
Example: mnueron primer > CLAUDE.md
|
|
82
88
|
|
|
83
89
|
Environment:
|
|
84
90
|
MNUERON_DB_PATH Local SQLite location (default: ~/.mnueron/memories.db)
|
|
@@ -678,6 +684,129 @@ async function cmdRebuildEmbeddings(args) {
|
|
|
678
684
|
`${result.skipped} skipped, ${result.errors} errors.\n`);
|
|
679
685
|
await provider.close();
|
|
680
686
|
}
|
|
687
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
688
|
+
// `mnueron primer` — print a markdown context primer for CLAUDE.md /
|
|
689
|
+
// .cursorrules / .windsurfrules / etc.
|
|
690
|
+
//
|
|
691
|
+
// Usage:
|
|
692
|
+
// mnueron primer → write to stdout
|
|
693
|
+
// mnueron primer > CLAUDE.md → redirect to project root
|
|
694
|
+
// mnueron primer --out CLAUDE.md → same, no shell redirect
|
|
695
|
+
// mnueron primer --ns work --recent 20 → scope + sample size
|
|
696
|
+
//
|
|
697
|
+
// Why this exists:
|
|
698
|
+
// MCP-aware tools (Claude Desktop, Cursor, Claude Code, Windsurf, Cline)
|
|
699
|
+
// ALREADY see mnueron's tools because of `mnueron setup`. The problem is
|
|
700
|
+
// the AI doesn't always KNOW to call memory_recall. Dropping this primer
|
|
701
|
+
// in a project root gives the AI an explicit invite + a sketch of what's
|
|
702
|
+
// in your store, so it pulls context proactively.
|
|
703
|
+
// ─────────────────────────────────────────────────────────────────────────
|
|
704
|
+
async function cmdPrimer(args) {
|
|
705
|
+
let ns;
|
|
706
|
+
let recent = 12;
|
|
707
|
+
let outFile;
|
|
708
|
+
for (let i = 0; i < args.length; i++) {
|
|
709
|
+
if (args[i] === '--ns' && args[i + 1])
|
|
710
|
+
ns = args[++i];
|
|
711
|
+
else if (args[i] === '--recent' && args[i + 1]) {
|
|
712
|
+
const n = parseInt(args[++i], 10);
|
|
713
|
+
if (Number.isFinite(n) && n > 0)
|
|
714
|
+
recent = Math.min(n, 50);
|
|
715
|
+
}
|
|
716
|
+
else if (args[i] === '--out' && args[i + 1]) {
|
|
717
|
+
outFile = args[++i];
|
|
718
|
+
}
|
|
719
|
+
}
|
|
720
|
+
const provider = makeProvider(loadConfig());
|
|
721
|
+
try {
|
|
722
|
+
const allNs = await provider.namespaces();
|
|
723
|
+
const filteredNs = ns ? allNs.filter((n) => n.name === ns) : allNs;
|
|
724
|
+
const totalCount = filteredNs.reduce((s, n) => s + n.count, 0);
|
|
725
|
+
const recentList = await provider.list({ namespace: ns, limit: recent });
|
|
726
|
+
const primer = renderPrimer({
|
|
727
|
+
namespaces: filteredNs,
|
|
728
|
+
totalCount,
|
|
729
|
+
recent: recentList,
|
|
730
|
+
scope: ns,
|
|
731
|
+
});
|
|
732
|
+
if (outFile) {
|
|
733
|
+
await writeFile(outFile, primer, 'utf8');
|
|
734
|
+
// stderr so it doesn't pollute redirected output.
|
|
735
|
+
process.stderr.write(`Wrote primer to ${outFile}\n`);
|
|
736
|
+
}
|
|
737
|
+
else {
|
|
738
|
+
process.stdout.write(primer);
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
finally {
|
|
742
|
+
await provider.close();
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
function renderPrimer(input) {
|
|
746
|
+
const { namespaces, totalCount, recent, scope } = input;
|
|
747
|
+
const lines = [];
|
|
748
|
+
lines.push('# Project context — mnueron memory');
|
|
749
|
+
lines.push('');
|
|
750
|
+
lines.push('You have access to **mnueron** memory tools via the Model Context Protocol. ' +
|
|
751
|
+
'Use them PROACTIVELY — do not wait for the user to ask explicitly:');
|
|
752
|
+
lines.push('');
|
|
753
|
+
lines.push('- **`memory_recall`** — search the user’s memory store before answering any ' +
|
|
754
|
+
'question that references past context, prior decisions, project conventions, ' +
|
|
755
|
+
'or specific user preferences. Call it FIRST when the user uses vague references ' +
|
|
756
|
+
'("the auth approach", "that bug we hit", "what did we decide about X").');
|
|
757
|
+
lines.push('- **`memory_save`** — store anything worth remembering: decisions, preferences, ' +
|
|
758
|
+
'finicky API details, project conventions, user-specific facts. Don’t over-save ' +
|
|
759
|
+
'— prefer specific, durable facts over conversational chatter.');
|
|
760
|
+
lines.push('- **`memory_list`** — browse by namespace when the user asks ' +
|
|
761
|
+
'"what did we do last week?" or "summarize my recent context".');
|
|
762
|
+
lines.push('- **`memory_get_thread`** — pull all chunks of a multi-turn conversation by ' +
|
|
763
|
+
'its `parent_ref` when the user references one.');
|
|
764
|
+
lines.push('');
|
|
765
|
+
lines.push('**Heuristic:** if the user’s message would be easier to answer with prior ' +
|
|
766
|
+
'context AND you have access to a memory layer, call recall first. The latency ' +
|
|
767
|
+
'cost is small; the quality gain is large.');
|
|
768
|
+
lines.push('');
|
|
769
|
+
// ── Store overview ──
|
|
770
|
+
const scopeLabel = scope ? ` (scoped to \`${scope}\`)` : '';
|
|
771
|
+
lines.push(`## Memory store overview${scopeLabel}`);
|
|
772
|
+
lines.push('');
|
|
773
|
+
lines.push(`- **${totalCount}** memories across **${namespaces.length}** namespace${namespaces.length === 1 ? '' : 's'}.`);
|
|
774
|
+
lines.push('');
|
|
775
|
+
if (namespaces.length > 0) {
|
|
776
|
+
lines.push('| Namespace | Memories | Last updated |');
|
|
777
|
+
lines.push('| --- | ---: | --- |');
|
|
778
|
+
for (const n of namespaces.slice(0, 20)) {
|
|
779
|
+
const date = n.last_updated ? new Date(n.last_updated).toISOString().slice(0, 10) : '—';
|
|
780
|
+
lines.push(`| \`${n.name}\` | ${n.count} | ${date} |`);
|
|
781
|
+
}
|
|
782
|
+
if (namespaces.length > 20) {
|
|
783
|
+
lines.push(`| … and ${namespaces.length - 20} more | | |`);
|
|
784
|
+
}
|
|
785
|
+
lines.push('');
|
|
786
|
+
}
|
|
787
|
+
// ── Recent anchors ──
|
|
788
|
+
if (recent.length > 0) {
|
|
789
|
+
lines.push('## Recent memory anchors');
|
|
790
|
+
lines.push('');
|
|
791
|
+
lines.push('A small sample of what’s in the store — useful as a sanity check that ' +
|
|
792
|
+
'`memory_recall` is hitting the right slice when you call it.');
|
|
793
|
+
lines.push('');
|
|
794
|
+
for (const m of recent.slice(0, 15)) {
|
|
795
|
+
const title = (m.metadata && typeof m.metadata === 'object' && m.metadata.title) ||
|
|
796
|
+
m.content.replace(/\s+/g, ' ').slice(0, 90) ||
|
|
797
|
+
'(empty)';
|
|
798
|
+
const date = new Date(m.created_at).toISOString().slice(0, 10);
|
|
799
|
+
lines.push(`- ${date} · \`${m.namespace}\` · ${title}${title.length === 90 ? '…' : ''}`);
|
|
800
|
+
}
|
|
801
|
+
lines.push('');
|
|
802
|
+
}
|
|
803
|
+
lines.push('---');
|
|
804
|
+
lines.push('');
|
|
805
|
+
lines.push('_Generated by `mnueron primer`. Re-run when your memory store changes ' +
|
|
806
|
+
'substantially. Safe to check this file into git — it contains no secrets._');
|
|
807
|
+
lines.push('');
|
|
808
|
+
return lines.join('\n');
|
|
809
|
+
}
|
|
681
810
|
main().catch(e => {
|
|
682
811
|
console.error(e?.stack ?? e);
|
|
683
812
|
process.exit(1);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
/**
|
|
5
|
+
* Aider (aider.chat) — pair-programming AI in the terminal.
|
|
6
|
+
*
|
|
7
|
+
* As of late-2026 Aider doesn't natively speak MCP — it talks to LLM APIs
|
|
8
|
+
* directly via LiteLLM. So we DETECT Aider's presence (so `mnueron setup`
|
|
9
|
+
* can report it as "found, manual integration only") but we don't write
|
|
10
|
+
* a config that Aider wouldn't read.
|
|
11
|
+
*
|
|
12
|
+
* If/when Aider adds MCP server support upstream, we'll switch this to
|
|
13
|
+
* extend JsonMcpDetector and target the right config key.
|
|
14
|
+
*
|
|
15
|
+
* Detection signals (any one is enough):
|
|
16
|
+
* - ~/.aider.conf.yml exists (Aider's main config file)
|
|
17
|
+
* - ~/.aider.input.history exists (Aider's prompt-history cache)
|
|
18
|
+
* - .aider.* files in CWD (project-local Aider state)
|
|
19
|
+
*/
|
|
20
|
+
export class AiderDetector {
|
|
21
|
+
id = 'aider';
|
|
22
|
+
displayName = 'Aider';
|
|
23
|
+
isInstalled() {
|
|
24
|
+
const home = homedir();
|
|
25
|
+
if (existsSync(join(home, '.aider.conf.yml')))
|
|
26
|
+
return true;
|
|
27
|
+
if (existsSync(join(home, '.aider.input.history')))
|
|
28
|
+
return true;
|
|
29
|
+
if (existsSync(join(home, '.aider.chat.history.md')))
|
|
30
|
+
return true;
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
status() {
|
|
34
|
+
const installed = this.isInstalled();
|
|
35
|
+
return {
|
|
36
|
+
id: this.id,
|
|
37
|
+
displayName: this.displayName,
|
|
38
|
+
installed,
|
|
39
|
+
configPath: null,
|
|
40
|
+
configExists: false,
|
|
41
|
+
alreadyConfigured: false,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
install(_serverName, _entry) {
|
|
45
|
+
const installed = this.isInstalled();
|
|
46
|
+
if (!installed) {
|
|
47
|
+
return { ok: false, changed: false, message: `${this.displayName} not detected` };
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
ok: true, changed: false,
|
|
51
|
+
message: 'Aider does not yet speak MCP natively — install the mnueron Python SDK and call ' +
|
|
52
|
+
'mem.recall() inside an Aider /run hook, or wait for upstream MCP support.',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
uninstall(_serverName) {
|
|
56
|
+
return { ok: true, removed: false, message: 'no config to remove (Aider has no MCP support yet)' };
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=aider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aider.js","sourceRoot":"","sources":["../../src/detectors/aider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,aAAa;IACxB,EAAE,GAAG,OAAO,CAAC;IACb,WAAW,GAAG,OAAO,CAAC;IAEd,WAAW;QACjB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAChE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM;QACJ,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS;YACT,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,KAAK;YACnB,iBAAiB,EAAE,KAAK;SACzB,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,WAAmB,EAAE,MAAsB;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,WAAW,eAAe,EAAE,CAAC;QACpF,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK;YACxB,OAAO,EACL,kFAAkF;gBAClF,2EAA2E;SAC9E,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,WAAmB;QAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;IACrG,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { JsonMcpDetector } from './json_detector.js';
|
|
5
|
+
/**
|
|
6
|
+
* Continue (continue.dev) — open-source AI coding assistant for VS Code,
|
|
7
|
+
* JetBrains, and standalone. Stores its global config at:
|
|
8
|
+
*
|
|
9
|
+
* ~/.continue/config.json (legacy, still supported)
|
|
10
|
+
* ~/.continue/config.yaml (newer, default for fresh installs)
|
|
11
|
+
*
|
|
12
|
+
* MCP servers go under `experimental.modelContextProtocolServers` in JSON
|
|
13
|
+
* or `mcpServers` in YAML. We target the JSON config path because we ship
|
|
14
|
+
* JsonMcpDetector and most existing users still have the JSON variant. If
|
|
15
|
+
* a user only has the YAML config we surface that as "detected but not
|
|
16
|
+
* configured" so they know to wire it manually.
|
|
17
|
+
*/
|
|
18
|
+
export class ContinueDetector extends JsonMcpDetector {
|
|
19
|
+
id = 'continue';
|
|
20
|
+
displayName = 'Continue';
|
|
21
|
+
configPath() {
|
|
22
|
+
return join(homedir(), '.continue', 'config.json');
|
|
23
|
+
}
|
|
24
|
+
isInstalled() {
|
|
25
|
+
// The .continue/ directory exists if the user has installed any Continue
|
|
26
|
+
// edition (VS Code, JetBrains, CLI). Presence of EITHER config.json or
|
|
27
|
+
// config.yaml is the strongest signal.
|
|
28
|
+
return existsSync(join(homedir(), '.continue'));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=continue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"continue.js","sourceRoot":"","sources":["../../src/detectors/continue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACnD,EAAE,GAAG,UAAU,CAAC;IAChB,WAAW,GAAG,UAAU,CAAC;IAEf,UAAU;QAClB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACrD,CAAC;IAES,WAAW;QACnB,yEAAyE;QACzE,uEAAuE;QACvE,uCAAuC;QACvC,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { homedir, platform } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { JsonMcpDetector } from './json_detector.js';
|
|
5
|
+
/**
|
|
6
|
+
* Goose (block.xyz/goose) — an MCP-native open-source AI agent. Goose's
|
|
7
|
+
* config is YAML by default, but it ALSO honours a JSON config at the
|
|
8
|
+
* same path if you choose it explicitly. We write the JSON variant so we
|
|
9
|
+
* can lean on JsonMcpDetector — users with the YAML config will see
|
|
10
|
+
* "configPath exists but not yet wired" and can copy the JSON in.
|
|
11
|
+
*
|
|
12
|
+
* Config locations:
|
|
13
|
+
* macOS / Linux: ~/.config/goose/config.json (or config.yaml)
|
|
14
|
+
* Windows: %APPDATA%\Block\goose\config.json
|
|
15
|
+
*
|
|
16
|
+
* Goose stores MCP servers under the `extensions` key in YAML, or under
|
|
17
|
+
* `mcpServers` in JSON config (mirroring Cursor / Claude Desktop). Our
|
|
18
|
+
* JsonMcpDetector writes to mcpServers, which Goose accepts.
|
|
19
|
+
*/
|
|
20
|
+
export class GooseDetector extends JsonMcpDetector {
|
|
21
|
+
id = 'goose';
|
|
22
|
+
displayName = 'Goose';
|
|
23
|
+
configPath() {
|
|
24
|
+
const home = homedir();
|
|
25
|
+
switch (platform()) {
|
|
26
|
+
case 'win32': {
|
|
27
|
+
const appdata = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
|
|
28
|
+
return join(appdata, 'Block', 'goose', 'config.json');
|
|
29
|
+
}
|
|
30
|
+
default:
|
|
31
|
+
return join(home, '.config', 'goose', 'config.json');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
isInstalled() {
|
|
35
|
+
const home = homedir();
|
|
36
|
+
// Either the config dir exists or a Goose binary is on PATH (we don't
|
|
37
|
+
// try to resolve PATH to avoid spawning a child process at detect time).
|
|
38
|
+
switch (platform()) {
|
|
39
|
+
case 'win32': {
|
|
40
|
+
const appdata = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
|
|
41
|
+
return existsSync(join(appdata, 'Block', 'goose'));
|
|
42
|
+
}
|
|
43
|
+
default:
|
|
44
|
+
return existsSync(join(home, '.config', 'goose'));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=goose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goose.js","sourceRoot":"","sources":["../../src/detectors/goose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,aAAc,SAAQ,eAAe;IAChD,EAAE,GAAG,OAAO,CAAC;IACb,WAAW,GAAG,OAAO,CAAC;IAEZ,UAAU;QAClB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,QAAQ,QAAQ,EAAE,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBACxE,OAAO,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YACxD,CAAC;YACD;gBACE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAES,WAAW;QACnB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,sEAAsE;QACtE,yEAAyE;QACzE,QAAQ,QAAQ,EAAE,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBACxE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC;YACD;gBACE,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;CACF"}
|
package/dist/detectors/index.js
CHANGED
|
@@ -2,6 +2,17 @@ import { ClaudeDesktopDetector } from './claude_desktop.js';
|
|
|
2
2
|
import { ClaudeCodeDetector } from './claude_code.js';
|
|
3
3
|
import { CursorDetector } from './cursor.js';
|
|
4
4
|
import { WindsurfDetector, ClineDetector } from './extra.js';
|
|
5
|
+
// v0.2.7 — additional MCP-speaking editors and agents.
|
|
6
|
+
import { ContinueDetector } from './continue.js';
|
|
7
|
+
import { ZedDetector } from './zed.js';
|
|
8
|
+
import { AiderDetector } from './aider.js';
|
|
9
|
+
import { GooseDetector } from './goose.js';
|
|
10
|
+
import { OpenCodeDetector } from './opencode.js';
|
|
11
|
+
/**
|
|
12
|
+
* Order matters for the setup wizard output. The first five (Claude-family +
|
|
13
|
+
* Cursor + Windsurf + Cline) are the original tier-1 tools. The v0.2.7
|
|
14
|
+
* additions come after — they're real but lower-density in our user base.
|
|
15
|
+
*/
|
|
5
16
|
export function allDetectors() {
|
|
6
17
|
return [
|
|
7
18
|
new ClaudeDesktopDetector(),
|
|
@@ -9,6 +20,11 @@ export function allDetectors() {
|
|
|
9
20
|
new CursorDetector(),
|
|
10
21
|
new WindsurfDetector(),
|
|
11
22
|
new ClineDetector(),
|
|
23
|
+
new ContinueDetector(),
|
|
24
|
+
new ZedDetector(),
|
|
25
|
+
new GooseDetector(),
|
|
26
|
+
new OpenCodeDetector(),
|
|
27
|
+
new AiderDetector(),
|
|
12
28
|
];
|
|
13
29
|
}
|
|
14
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detectors/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/detectors/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,uDAAuD;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,IAAI,qBAAqB,EAAE;QAC3B,IAAI,kBAAkB,EAAE;QACxB,IAAI,cAAc,EAAE;QACpB,IAAI,gBAAgB,EAAE;QACtB,IAAI,aAAa,EAAE;QACnB,IAAI,gBAAgB,EAAE;QACtB,IAAI,WAAW,EAAE;QACjB,IAAI,aAAa,EAAE;QACnB,IAAI,gBAAgB,EAAE;QACtB,IAAI,aAAa,EAAE;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { homedir, platform } from 'node:os';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { JsonMcpDetector } from './json_detector.js';
|
|
5
|
+
/**
|
|
6
|
+
* OpenCode (sst.dev/opencode) — open-source terminal AI coding agent.
|
|
7
|
+
* Speaks MCP natively. Config lives at:
|
|
8
|
+
*
|
|
9
|
+
* macOS / Linux: ~/.config/opencode/config.json
|
|
10
|
+
* Windows: %APPDATA%\opencode\config.json
|
|
11
|
+
*
|
|
12
|
+
* Schema: standard `mcpServers` map — same shape as Cursor / Claude Desktop,
|
|
13
|
+
* so we inherit JsonMcpDetector directly. OpenCode auto-reloads MCP servers
|
|
14
|
+
* when the config changes; users don't have to restart.
|
|
15
|
+
*/
|
|
16
|
+
export class OpenCodeDetector extends JsonMcpDetector {
|
|
17
|
+
id = 'opencode';
|
|
18
|
+
displayName = 'OpenCode';
|
|
19
|
+
configPath() {
|
|
20
|
+
const home = homedir();
|
|
21
|
+
switch (platform()) {
|
|
22
|
+
case 'win32': {
|
|
23
|
+
const appdata = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
|
|
24
|
+
return join(appdata, 'opencode', 'config.json');
|
|
25
|
+
}
|
|
26
|
+
default:
|
|
27
|
+
return join(home, '.config', 'opencode', 'config.json');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
isInstalled() {
|
|
31
|
+
const home = homedir();
|
|
32
|
+
switch (platform()) {
|
|
33
|
+
case 'win32': {
|
|
34
|
+
const appdata = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
|
|
35
|
+
return existsSync(join(appdata, 'opencode'));
|
|
36
|
+
}
|
|
37
|
+
default:
|
|
38
|
+
return existsSync(join(home, '.config', 'opencode'));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=opencode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/detectors/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACnD,EAAE,GAAG,UAAU,CAAC;IAChB,WAAW,GAAG,UAAU,CAAC;IAEf,UAAU;QAClB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,QAAQ,QAAQ,EAAE,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBACxE,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;YAClD,CAAC;YACD;gBACE,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAES,WAAW;QACnB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,QAAQ,QAAQ,EAAE,EAAE,CAAC;YACnB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBACxE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD;gBACE,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, } from 'node:fs';
|
|
2
|
+
import { homedir, platform } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
/**
|
|
5
|
+
* Zed (zed.dev) — Rust-based collaborative editor. MCP servers are
|
|
6
|
+
* declared under the `context_servers` key in Zed's settings.json (NOT
|
|
7
|
+
* the standard `mcpServers` key our other detectors use), so we can't
|
|
8
|
+
* inherit JsonMcpDetector — we need a custom install/uninstall path.
|
|
9
|
+
*
|
|
10
|
+
* Locations:
|
|
11
|
+
* macOS: ~/.config/zed/settings.json (preferred) OR
|
|
12
|
+
* ~/Library/Application Support/Zed/settings.json
|
|
13
|
+
* Windows: %APPDATA%\Zed\settings.json
|
|
14
|
+
* Linux: ~/.config/zed/settings.json
|
|
15
|
+
*
|
|
16
|
+
* Zed reads settings.json with comments + trailing commas (JSONC). We
|
|
17
|
+
* use plain JSON.parse, which works for any human-edited file that
|
|
18
|
+
* doesn't actively have comments. If parsing fails we leave the file
|
|
19
|
+
* alone and surface a message — safer than corrupting a config.
|
|
20
|
+
*/
|
|
21
|
+
export class ZedDetector {
|
|
22
|
+
id = 'zed';
|
|
23
|
+
displayName = 'Zed';
|
|
24
|
+
lastServerName;
|
|
25
|
+
settingsPath() {
|
|
26
|
+
const home = homedir();
|
|
27
|
+
switch (platform()) {
|
|
28
|
+
case 'win32': {
|
|
29
|
+
const appdata = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
|
|
30
|
+
return join(appdata, 'Zed', 'settings.json');
|
|
31
|
+
}
|
|
32
|
+
default:
|
|
33
|
+
return join(home, '.config', 'zed', 'settings.json');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
isInstalled() {
|
|
37
|
+
const home = homedir();
|
|
38
|
+
if (existsSync(this.settingsPath()))
|
|
39
|
+
return true;
|
|
40
|
+
switch (platform()) {
|
|
41
|
+
case 'darwin':
|
|
42
|
+
return (existsSync(join(home, 'Library', 'Application Support', 'Zed')) ||
|
|
43
|
+
existsSync(join(home, '.config', 'zed')));
|
|
44
|
+
case 'win32': {
|
|
45
|
+
const appdata = process.env.APPDATA ?? join(home, 'AppData', 'Roaming');
|
|
46
|
+
return existsSync(join(appdata, 'Zed'));
|
|
47
|
+
}
|
|
48
|
+
case 'linux':
|
|
49
|
+
return existsSync(join(home, '.config', 'zed'));
|
|
50
|
+
default:
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
status() {
|
|
55
|
+
const path = this.settingsPath();
|
|
56
|
+
const installed = this.isInstalled();
|
|
57
|
+
if (!installed) {
|
|
58
|
+
return {
|
|
59
|
+
id: this.id, displayName: this.displayName,
|
|
60
|
+
installed: false, configPath: null,
|
|
61
|
+
configExists: false, alreadyConfigured: false,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const configExists = existsSync(path);
|
|
65
|
+
let alreadyConfigured = false;
|
|
66
|
+
if (configExists) {
|
|
67
|
+
try {
|
|
68
|
+
const cfg = JSON.parse(readFileSync(path, 'utf8'));
|
|
69
|
+
alreadyConfigured = !!cfg?.context_servers?.[this.lastServerName ?? 'mnueron'];
|
|
70
|
+
}
|
|
71
|
+
catch { /* malformed or JSONC — leave alone */ }
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
id: this.id, displayName: this.displayName,
|
|
75
|
+
installed: true, configPath: path,
|
|
76
|
+
configExists, alreadyConfigured,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
install(serverName, entry) {
|
|
80
|
+
const path = this.settingsPath();
|
|
81
|
+
if (!this.isInstalled()) {
|
|
82
|
+
return { ok: false, changed: false, message: `${this.displayName} not detected` };
|
|
83
|
+
}
|
|
84
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
85
|
+
let cfg = {};
|
|
86
|
+
if (existsSync(path)) {
|
|
87
|
+
try {
|
|
88
|
+
const raw = readFileSync(path, 'utf8');
|
|
89
|
+
cfg = raw.trim() ? JSON.parse(raw) : {};
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return {
|
|
93
|
+
ok: false, changed: false,
|
|
94
|
+
message: `${path} contains JSONC / comments / trailing commas — we can't parse it. ` +
|
|
95
|
+
`Add the following to context_servers manually: { ${serverName}: ${JSON.stringify(entry)} }`,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const cs = cfg.context_servers ?? {};
|
|
100
|
+
const before = JSON.stringify(cs[serverName] ?? null);
|
|
101
|
+
cs[serverName] = entry;
|
|
102
|
+
cfg.context_servers = cs;
|
|
103
|
+
const after = JSON.stringify(cs[serverName]);
|
|
104
|
+
const changed = before !== after;
|
|
105
|
+
writeFileSync(path, JSON.stringify(cfg, null, 2));
|
|
106
|
+
this.lastServerName = serverName;
|
|
107
|
+
return {
|
|
108
|
+
ok: true, changed, configPath: path,
|
|
109
|
+
message: changed
|
|
110
|
+
? (before === 'null' ? 'added' : 'updated existing entry')
|
|
111
|
+
: 'already up to date',
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
uninstall(serverName) {
|
|
115
|
+
const path = this.settingsPath();
|
|
116
|
+
if (!existsSync(path)) {
|
|
117
|
+
return { ok: true, removed: false, message: 'nothing to remove' };
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const cfg = JSON.parse(readFileSync(path, 'utf8'));
|
|
121
|
+
const cs = cfg.context_servers ?? {};
|
|
122
|
+
if (cs[serverName]) {
|
|
123
|
+
delete cs[serverName];
|
|
124
|
+
cfg.context_servers = cs;
|
|
125
|
+
writeFileSync(path, JSON.stringify(cfg, null, 2));
|
|
126
|
+
return { ok: true, removed: true, message: 'removed' };
|
|
127
|
+
}
|
|
128
|
+
return { ok: true, removed: false, message: 'not registered' };
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
return {
|
|
132
|
+
ok: false, removed: false,
|
|
133
|
+
message: `failed: ${e instanceof Error ? e.message : String(e)}`,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=zed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zed.js","sourceRoot":"","sources":["../../src/detectors/zed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mnueron",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "MNUERON — persistent memory for Claude Desktop, Claude Code, Cursor, and any AI dev tool or app. Local-first, free, with optional hosted multi-tenant backend.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|