@engramprotocol/mcp-server 0.10.1 → 0.10.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.
Files changed (93) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +120 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/http-client.d.ts +33 -0
  6. package/dist/http-client.d.ts.map +1 -0
  7. package/dist/http-client.js +106 -0
  8. package/dist/http-client.js.map +1 -0
  9. package/dist/server.d.ts +18 -0
  10. package/dist/server.d.ts.map +1 -0
  11. package/dist/server.js +18 -0
  12. package/dist/server.js.map +1 -0
  13. package/dist/setup/_helpers.d.ts +71 -0
  14. package/dist/setup/_helpers.d.ts.map +1 -0
  15. package/dist/setup/_helpers.js +275 -0
  16. package/dist/setup/_helpers.js.map +1 -0
  17. package/dist/setup/index.d.ts +2 -0
  18. package/dist/setup/index.d.ts.map +1 -0
  19. package/dist/setup/index.js +83 -0
  20. package/dist/setup/index.js.map +1 -0
  21. package/dist/setup/install.d.ts +2 -0
  22. package/dist/setup/install.d.ts.map +1 -0
  23. package/dist/setup/install.js +241 -0
  24. package/dist/setup/install.js.map +1 -0
  25. package/dist/setup/uninstall.d.ts +2 -0
  26. package/dist/setup/uninstall.d.ts.map +1 -0
  27. package/dist/setup/uninstall.js +120 -0
  28. package/dist/setup/uninstall.js.map +1 -0
  29. package/dist/setup/update.d.ts +2 -0
  30. package/dist/setup/update.d.ts.map +1 -0
  31. package/dist/setup/update.js +130 -0
  32. package/dist/setup/update.js.map +1 -0
  33. package/dist/tools/_helpers.d.ts +18 -0
  34. package/dist/tools/_helpers.d.ts.map +1 -0
  35. package/dist/tools/_helpers.js +37 -0
  36. package/dist/tools/_helpers.js.map +1 -0
  37. package/dist/tools/boot.d.ts +4 -0
  38. package/dist/tools/boot.d.ts.map +1 -0
  39. package/dist/tools/boot.js +16 -0
  40. package/dist/tools/boot.js.map +1 -0
  41. package/dist/tools/decide.d.ts +13 -0
  42. package/dist/tools/decide.d.ts.map +1 -0
  43. package/dist/tools/decide.js +59 -0
  44. package/dist/tools/decide.js.map +1 -0
  45. package/dist/tools/entity.d.ts +11 -0
  46. package/dist/tools/entity.d.ts.map +1 -0
  47. package/dist/tools/entity.js +55 -0
  48. package/dist/tools/entity.js.map +1 -0
  49. package/dist/tools/get.d.ts +4 -0
  50. package/dist/tools/get.d.ts.map +1 -0
  51. package/dist/tools/get.js +21 -0
  52. package/dist/tools/get.js.map +1 -0
  53. package/dist/tools/index.d.ts +26 -0
  54. package/dist/tools/index.d.ts.map +1 -0
  55. package/dist/tools/index.js +67 -0
  56. package/dist/tools/index.js.map +1 -0
  57. package/dist/tools/list.d.ts +4 -0
  58. package/dist/tools/list.d.ts.map +1 -0
  59. package/dist/tools/list.js +38 -0
  60. package/dist/tools/list.js.map +1 -0
  61. package/dist/tools/note.d.ts +15 -0
  62. package/dist/tools/note.d.ts.map +1 -0
  63. package/dist/tools/note.js +50 -0
  64. package/dist/tools/note.js.map +1 -0
  65. package/dist/tools/projects.d.ts +9 -0
  66. package/dist/tools/projects.d.ts.map +1 -0
  67. package/dist/tools/projects.js +65 -0
  68. package/dist/tools/projects.js.map +1 -0
  69. package/dist/tools/recall.d.ts +4 -0
  70. package/dist/tools/recall.d.ts.map +1 -0
  71. package/dist/tools/recall.js +18 -0
  72. package/dist/tools/recall.js.map +1 -0
  73. package/dist/tools/set-status.d.ts +13 -0
  74. package/dist/tools/set-status.d.ts.map +1 -0
  75. package/dist/tools/set-status.js +48 -0
  76. package/dist/tools/set-status.js.map +1 -0
  77. package/dist/tools/show.d.ts +11 -0
  78. package/dist/tools/show.d.ts.map +1 -0
  79. package/dist/tools/show.js +25 -0
  80. package/dist/tools/show.js.map +1 -0
  81. package/dist/tools/stats.d.ts +11 -0
  82. package/dist/tools/stats.d.ts.map +1 -0
  83. package/dist/tools/stats.js +21 -0
  84. package/dist/tools/stats.js.map +1 -0
  85. package/dist/tools/track-task.d.ts +10 -0
  86. package/dist/tools/track-task.d.ts.map +1 -0
  87. package/dist/tools/track-task.js +56 -0
  88. package/dist/tools/track-task.js.map +1 -0
  89. package/dist/tools/update.d.ts +4 -0
  90. package/dist/tools/update.d.ts.map +1 -0
  91. package/dist/tools/update.js +25 -0
  92. package/dist/tools/update.js.map +1 -0
  93. package/package.json +1 -1
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+ // Setup-mode helpers: TTY prompts, config IO, settings.json merging, claude CLI wrapper,
3
+ // template resolution. Used by install/update/uninstall flows.
4
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
5
+ if (k2 === undefined) k2 = k;
6
+ var desc = Object.getOwnPropertyDescriptor(m, k);
7
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
8
+ desc = { enumerable: true, get: function() { return m[k]; } };
9
+ }
10
+ Object.defineProperty(o, k2, desc);
11
+ }) : (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ o[k2] = m[k];
14
+ }));
15
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
17
+ }) : function(o, v) {
18
+ o["default"] = v;
19
+ });
20
+ var __importStar = (this && this.__importStar) || (function () {
21
+ var ownKeys = function(o) {
22
+ ownKeys = Object.getOwnPropertyNames || function (o) {
23
+ var ar = [];
24
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
25
+ return ar;
26
+ };
27
+ return ownKeys(o);
28
+ };
29
+ return function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ })();
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.HOOK_TEMPLATES = exports.MCP_SERVER_NAME = exports.MANAGED_BY_MARKER = exports.CLAUDE_SETTINGS = exports.CLAUDE_JSON = exports.CLAUDE_DIR = exports.EML_HOOKS_DIR = exports.EML_CONFIG = exports.EML_DIR = exports.HOME_DIR = void 0;
39
+ exports.pkgRoot = pkgRoot;
40
+ exports.pkgVersion = pkgVersion;
41
+ exports.templatesDir = templatesDir;
42
+ exports.promptText = promptText;
43
+ exports.promptConfirm = promptConfirm;
44
+ exports.readConfig = readConfig;
45
+ exports.writeConfig = writeConfig;
46
+ exports.readSettings = readSettings;
47
+ exports.backupSettings = backupSettings;
48
+ exports.writeSettings = writeSettings;
49
+ exports.mergePermission = mergePermission;
50
+ exports.removePermissions = removePermissions;
51
+ exports.mergeHookCommand = mergeHookCommand;
52
+ exports.removeHooksByCommandPrefix = removeHooksByCommandPrefix;
53
+ exports.claudeCli = claudeCli;
54
+ exports.claudeCliExists = claudeCliExists;
55
+ exports.verifyHealth = verifyHealth;
56
+ exports.verifyToken = verifyToken;
57
+ exports.readTemplate = readTemplate;
58
+ exports.hasMarker = hasMarker;
59
+ exports.installTemplate = installTemplate;
60
+ const fs = __importStar(require("fs"));
61
+ const path = __importStar(require("path"));
62
+ const readline = __importStar(require("readline"));
63
+ const child_process_1 = require("child_process");
64
+ // --- Paths ----------------------------------------------------------------
65
+ exports.HOME_DIR = process.env.HOME || process.env.USERPROFILE || '';
66
+ exports.EML_DIR = path.join(exports.HOME_DIR, '.eml');
67
+ exports.EML_CONFIG = path.join(exports.EML_DIR, 'config');
68
+ exports.EML_HOOKS_DIR = path.join(exports.EML_DIR, 'hooks');
69
+ exports.CLAUDE_DIR = path.join(exports.HOME_DIR, '.claude');
70
+ exports.CLAUDE_JSON = path.join(exports.HOME_DIR, '.claude.json');
71
+ exports.CLAUDE_SETTINGS = path.join(exports.CLAUDE_DIR, 'settings.json');
72
+ exports.MANAGED_BY_MARKER = 'engramprotocol-setup';
73
+ // MCP-server-name registered with Claude Code. Hardcoded per v0.10.0-PROPOSAL B.1.
74
+ exports.MCP_SERVER_NAME = 'engramprotocol';
75
+ // --- Package introspection ------------------------------------------------
76
+ /** Resolve the package's own root (where templates/ lives). Works from dist/. */
77
+ function pkgRoot() {
78
+ // CommonJS: __dirname → .../packages/mcp-server/dist/setup
79
+ // pkg root is two levels up
80
+ return path.resolve(__dirname, '..', '..');
81
+ }
82
+ function pkgVersion() {
83
+ const pkgPath = path.join(pkgRoot(), 'package.json');
84
+ const raw = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
85
+ return raw.version || '0.0.0';
86
+ }
87
+ function templatesDir() {
88
+ return path.join(pkgRoot(), 'templates');
89
+ }
90
+ // --- TTY prompts ----------------------------------------------------------
91
+ async function promptText(question) {
92
+ const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
93
+ return new Promise((resolve) => {
94
+ rl.question(question, (answer) => {
95
+ rl.close();
96
+ resolve(answer.trim());
97
+ });
98
+ });
99
+ }
100
+ async function promptConfirm(question, defaultYes = false) {
101
+ const suffix = defaultYes ? '[Y/n]' : '[y/N]';
102
+ const answer = await promptText(`${question} ${suffix} `);
103
+ if (!answer)
104
+ return defaultYes;
105
+ return /^y(es)?$/i.test(answer);
106
+ }
107
+ function readConfig() {
108
+ if (!fs.existsSync(exports.EML_CONFIG))
109
+ return null;
110
+ const raw = fs.readFileSync(exports.EML_CONFIG, 'utf-8');
111
+ const out = {};
112
+ for (const line of raw.split('\n')) {
113
+ const trimmed = line.trim();
114
+ if (!trimmed || trimmed.startsWith('#'))
115
+ continue;
116
+ const eq = trimmed.indexOf('=');
117
+ if (eq < 0)
118
+ continue;
119
+ const key = trimmed.slice(0, eq).trim();
120
+ const value = trimmed.slice(eq + 1).trim();
121
+ if (key === 'EML_URL' || key === 'EML_API_TOKEN' || key === 'EML_CLIENT_VERSION') {
122
+ out[key] = value;
123
+ }
124
+ }
125
+ return out;
126
+ }
127
+ function writeConfig(cfg) {
128
+ fs.mkdirSync(exports.EML_DIR, { recursive: true });
129
+ const lines = [
130
+ '# EML config — managed by engramprotocol-setup. Edit with care.',
131
+ `EML_URL=${cfg.EML_URL || ''}`,
132
+ `EML_API_TOKEN=${cfg.EML_API_TOKEN || ''}`,
133
+ `EML_CLIENT_VERSION=${cfg.EML_CLIENT_VERSION || ''}`,
134
+ '',
135
+ ];
136
+ fs.writeFileSync(exports.EML_CONFIG, lines.join('\n'), { mode: 0o600 });
137
+ }
138
+ function readSettings() {
139
+ if (!fs.existsSync(exports.CLAUDE_SETTINGS))
140
+ return {};
141
+ const raw = fs.readFileSync(exports.CLAUDE_SETTINGS, 'utf-8');
142
+ try {
143
+ return JSON.parse(raw);
144
+ }
145
+ catch (err) {
146
+ const e = err;
147
+ throw new Error(`Invalid JSON in ${exports.CLAUDE_SETTINGS}: ${e.message}`);
148
+ }
149
+ }
150
+ function backupSettings() {
151
+ if (!fs.existsSync(exports.CLAUDE_SETTINGS))
152
+ return '';
153
+ const ts = new Date().toISOString().replace(/[:.]/g, '-').replace('T', '-').slice(0, 19);
154
+ const backupPath = `${exports.CLAUDE_SETTINGS}.pre-eml-install-${ts}.bak`;
155
+ fs.copyFileSync(exports.CLAUDE_SETTINGS, backupPath);
156
+ return backupPath;
157
+ }
158
+ function writeSettings(settings) {
159
+ fs.mkdirSync(exports.CLAUDE_DIR, { recursive: true });
160
+ const tmp = `${exports.CLAUDE_SETTINGS}.tmp-${process.pid}`;
161
+ fs.writeFileSync(tmp, JSON.stringify(settings, null, 2) + '\n');
162
+ fs.renameSync(tmp, exports.CLAUDE_SETTINGS);
163
+ }
164
+ // --- Permissions merge ----------------------------------------------------
165
+ /** Add a permission entry to settings.permissions.allow if not already present. */
166
+ function mergePermission(settings, entry) {
167
+ if (!settings.permissions)
168
+ settings.permissions = {};
169
+ if (!Array.isArray(settings.permissions.allow))
170
+ settings.permissions.allow = [];
171
+ const allow = settings.permissions.allow;
172
+ if (allow.includes(entry))
173
+ return false;
174
+ allow.push(entry);
175
+ return true;
176
+ }
177
+ /** Remove permission entries matching the predicate. Returns count removed. */
178
+ function removePermissions(settings, predicate) {
179
+ if (!settings.permissions || !Array.isArray(settings.permissions.allow))
180
+ return 0;
181
+ const before = settings.permissions.allow.length;
182
+ settings.permissions.allow = settings.permissions.allow.filter((e) => !predicate(e));
183
+ return before - settings.permissions.allow.length;
184
+ }
185
+ /** Add a command-hook to settings.hooks.<event>[] if no existing entry references the same command. */
186
+ function mergeHookCommand(settings, event, command) {
187
+ if (!settings.hooks)
188
+ settings.hooks = {};
189
+ if (!Array.isArray(settings.hooks[event]))
190
+ settings.hooks[event] = [];
191
+ const events = settings.hooks[event];
192
+ const already = events.some((e) => Array.isArray(e.hooks) && e.hooks.some((h) => h.command === command));
193
+ if (already)
194
+ return false;
195
+ events.push({ hooks: [{ type: 'command', command }] });
196
+ return true;
197
+ }
198
+ /** Remove hook entries whose command starts with the given prefix (e.g. `$HOME/.eml/hooks/`). Returns count removed. */
199
+ function removeHooksByCommandPrefix(settings, prefix) {
200
+ if (!settings.hooks)
201
+ return 0;
202
+ let removed = 0;
203
+ for (const event of Object.keys(settings.hooks)) {
204
+ const entries = settings.hooks[event];
205
+ if (!Array.isArray(entries))
206
+ continue;
207
+ const kept = entries.filter((entry) => {
208
+ const matches = Array.isArray(entry.hooks) && entry.hooks.some((h) => h.command.includes(prefix));
209
+ if (matches)
210
+ removed += 1;
211
+ return !matches;
212
+ });
213
+ settings.hooks[event] = kept;
214
+ if (kept.length === 0)
215
+ delete settings.hooks[event];
216
+ }
217
+ return removed;
218
+ }
219
+ // --- claude CLI wrapper ---------------------------------------------------
220
+ function claudeCli(args) {
221
+ const result = (0, child_process_1.spawnSync)('claude', args, { encoding: 'utf-8' });
222
+ return {
223
+ stdout: result.stdout || '',
224
+ stderr: result.stderr || '',
225
+ status: typeof result.status === 'number' ? result.status : 1,
226
+ };
227
+ }
228
+ function claudeCliExists() {
229
+ const result = (0, child_process_1.spawnSync)('claude', ['--version'], { encoding: 'utf-8' });
230
+ return typeof result.status === 'number' && result.status === 0;
231
+ }
232
+ // --- HTTP checks ----------------------------------------------------------
233
+ /** Unauthenticated reachability check — "is the server alive?". */
234
+ async function verifyHealth(url) {
235
+ try {
236
+ const res = await fetch(`${url.replace(/\/$/, '')}/health`);
237
+ return { ok: res.ok, status: res.status };
238
+ }
239
+ catch (err) {
240
+ const e = err;
241
+ return { ok: false, error: e.message };
242
+ }
243
+ }
244
+ /** Authenticated round-trip — "does this token work?". Uses GET /stats (lightweight, auth-required). */
245
+ async function verifyToken(url, token) {
246
+ try {
247
+ const res = await fetch(`${url.replace(/\/$/, '')}/stats`, {
248
+ headers: { Authorization: `Bearer ${token}` },
249
+ });
250
+ return { ok: res.ok, status: res.status };
251
+ }
252
+ catch (err) {
253
+ const e = err;
254
+ return { ok: false, error: e.message };
255
+ }
256
+ }
257
+ exports.HOOK_TEMPLATES = [
258
+ { filename: 'session_start_boot.sh', event: 'SessionStart' },
259
+ { filename: 'user_prompt_submit_reminder.sh', event: 'UserPromptSubmit' },
260
+ ];
261
+ function readTemplate(filename) {
262
+ return fs.readFileSync(path.join(templatesDir(), 'hooks', filename), 'utf-8');
263
+ }
264
+ function hasMarker(content) {
265
+ return content.includes(exports.MANAGED_BY_MARKER);
266
+ }
267
+ function installTemplate(filename) {
268
+ fs.mkdirSync(exports.EML_HOOKS_DIR, { recursive: true });
269
+ const installedPath = path.join(exports.EML_HOOKS_DIR, filename);
270
+ const alreadyExisted = fs.existsSync(installedPath);
271
+ const content = readTemplate(filename);
272
+ fs.writeFileSync(installedPath, content, { mode: 0o755 });
273
+ return { installedPath, alreadyExisted };
274
+ }
275
+ //# sourceMappingURL=_helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_helpers.js","sourceRoot":"","sources":["../../src/setup/_helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runSetup(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":"AAqBA,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B5D"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ // Setup-mode router. Dispatched from cli.ts when first arg is `setup`.
3
+ //
4
+ // Sub-commands:
5
+ // setup → install (initial setup)
6
+ // setup install → same as `setup`
7
+ // setup update → refresh npm-package + hook-templates, retain config
8
+ // setup uninstall → reverse install via marker-tagged entries
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.runSetup = runSetup;
44
+ const HELP = `npx @engramprotocol/mcp-server setup [install|update|uninstall]
45
+
46
+ Sub-commands:
47
+ install Initial setup: token prompt, config write, MCP registration, permissions, hooks. (default)
48
+ update Refresh installed templates + EML_CLIENT_VERSION in config.
49
+ uninstall Reverse install. Removes EML-managed entries from Claude Code config.
50
+
51
+ Flags (any sub-command):
52
+ --help Show this help.
53
+
54
+ Documentation: https://engramprotocol.io/docs/setup
55
+ `;
56
+ async function runSetup(argv) {
57
+ if (argv.includes('--help') || argv.includes('-h')) {
58
+ process.stderr.write(HELP);
59
+ return;
60
+ }
61
+ const sub = argv[0] || 'install';
62
+ switch (sub) {
63
+ case 'install': {
64
+ const { runInstall } = await Promise.resolve().then(() => __importStar(require('./install.js')));
65
+ await runInstall(argv.slice(1));
66
+ return;
67
+ }
68
+ case 'update': {
69
+ const { runUpdate } = await Promise.resolve().then(() => __importStar(require('./update.js')));
70
+ await runUpdate(argv.slice(1));
71
+ return;
72
+ }
73
+ case 'uninstall': {
74
+ const { runUninstall } = await Promise.resolve().then(() => __importStar(require('./uninstall.js')));
75
+ await runUninstall(argv.slice(1));
76
+ return;
77
+ }
78
+ default:
79
+ process.stderr.write(`Unknown setup sub-command: ${sub}\n\n${HELP}`);
80
+ process.exit(1);
81
+ }
82
+ }
83
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/setup/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,EAAE;AACF,gBAAgB;AAChB,+CAA+C;AAC/C,uCAAuC;AACvC,2EAA2E;AAC3E,iEAAiE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAejE,4BA4BC;AAzCD,MAAM,IAAI,GAAG;;;;;;;;;;;CAWZ,CAAA;AAEM,KAAK,UAAU,QAAQ,CAAC,IAAc;IAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1B,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAA;IAEhC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAA;YACnD,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/B,OAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,EAAE,SAAS,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAA;YACjD,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9B,OAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,YAAY,EAAE,GAAG,wDAAa,gBAAgB,GAAC,CAAA;YACvD,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACjC,OAAM;QACR,CAAC;QACD;YACE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,OAAO,IAAI,EAAE,CAAC,CAAA;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function runInstall(_argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"AAyMA,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC/D"}
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ // Setup-mode install flow. Implements v0.10.0-PROPOSAL C.2 §setup.
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.runInstall = runInstall;
38
+ const fs = __importStar(require("fs"));
39
+ const _helpers_1 = require("./_helpers");
40
+ const API_URL = 'https://api.engramprotocol.io';
41
+ const BASH_PERMISSION = `Bash(npx @engramprotocol/${_helpers_1.MCP_SERVER_NAME === 'engramprotocol' ? 'mcp-server' : _helpers_1.MCP_SERVER_NAME} setup *)`;
42
+ const MCP_PERMISSION = `mcp__${_helpers_1.MCP_SERVER_NAME}__*`;
43
+ function log(msg) {
44
+ process.stderr.write(msg + '\n');
45
+ }
46
+ function fail(msg, code = 1) {
47
+ log(`\n❌ ${msg}`);
48
+ process.exit(code);
49
+ }
50
+ async function preflight() {
51
+ log('\nStep 1/8 — Pre-flight checks');
52
+ if (!(0, _helpers_1.claudeCliExists)()) {
53
+ fail('claude CLI not found in PATH. Install Claude Code first: https://claude.ai/code');
54
+ }
55
+ log(' ✓ claude CLI available');
56
+ for (const file of [_helpers_1.CLAUDE_JSON, _helpers_1.CLAUDE_SETTINGS]) {
57
+ if (!fs.existsSync(file)) {
58
+ log(` ✓ ${file} does not exist yet (will be created)`);
59
+ continue;
60
+ }
61
+ try {
62
+ JSON.parse(fs.readFileSync(file, 'utf-8'));
63
+ log(` ✓ ${file} is valid JSON`);
64
+ }
65
+ catch (err) {
66
+ const e = err;
67
+ fail(`${file} contains invalid JSON: ${e.message}\n Fix or remove the file before running setup.`);
68
+ }
69
+ }
70
+ }
71
+ async function tokenPrompt() {
72
+ log('\nStep 2/8 — Token');
73
+ log(` EML endpoint: ${API_URL}`);
74
+ // Accept EML_API_TOKEN from the environment — same convention as the
75
+ // `claude mcp add --env EML_API_TOKEN=...` pattern. Lets `setup install`
76
+ // run as a single self-contained command instead of an interactive prompt.
77
+ const envToken = process.env.EML_API_TOKEN;
78
+ if (envToken && envToken.startsWith('eml_')) {
79
+ log(' ℹ EML_API_TOKEN found in environment — verifying...');
80
+ const health = await (0, _helpers_1.verifyToken)(API_URL, envToken);
81
+ if (health.ok) {
82
+ log(' ✓ Token verified');
83
+ return envToken;
84
+ }
85
+ if (health.status === 401) {
86
+ log(' ❌ env-var token rejected (401). Falling back to interactive prompt.');
87
+ }
88
+ else {
89
+ log(` ❌ env-var token check failed (${health.error ?? `HTTP ${health.status ?? '?'}`}). Falling back to interactive prompt.`);
90
+ }
91
+ }
92
+ while (true) {
93
+ const token = await (0, _helpers_1.promptText)(' Paste your EML API token (eml_...): ');
94
+ if (!token) {
95
+ log(' Empty token, try again.');
96
+ continue;
97
+ }
98
+ if (!token.startsWith('eml_')) {
99
+ log(' Tokens should start with "eml_". Try again.');
100
+ continue;
101
+ }
102
+ log(' Verifying token against /stats (auth-required)...');
103
+ const health = await (0, _helpers_1.verifyToken)(API_URL, token);
104
+ if (health.ok) {
105
+ log(' ✓ Token verified');
106
+ return token;
107
+ }
108
+ if (health.status === 401) {
109
+ log(' ❌ Token rejected (401). Try a different token.');
110
+ continue;
111
+ }
112
+ log(` ❌ Health check failed: ${health.error ?? `HTTP ${health.status ?? '?'}`}. Try again or check connectivity.`);
113
+ }
114
+ }
115
+ function summarizePlan() {
116
+ log(`
117
+ EML Setup is about to make the following changes:
118
+
119
+ ${_helpers_1.EML_CONFIG}
120
+ Write token + URL + client-version (chmod 600).
121
+
122
+ Claude Code MCP config (~/.claude.json)
123
+ Register MCP server "${_helpers_1.MCP_SERVER_NAME}" via \`claude mcp add\`.
124
+
125
+ ~/.claude/settings.json (backup created first)
126
+ Add permission entries:
127
+ • ${MCP_PERMISSION}
128
+ (Claude calls EML MCP tools without per-call permission prompt)
129
+ • ${BASH_PERMISSION}
130
+ (Claude can run \`setup update\` etc. without per-call prompt)
131
+ Add hook entries:
132
+ • SessionStart → ~/.eml/hooks/session_start_boot.sh
133
+ • UserPromptSubmit → ~/.eml/hooks/user_prompt_submit_reminder.sh
134
+
135
+ ${_helpers_1.EML_HOOKS_DIR}
136
+ Copy 2 hook scripts from this npm-package's templates/.
137
+
138
+ The setup is idempotent. Re-running won't create duplicates. \`setup uninstall\` reverses everything.
139
+ `);
140
+ }
141
+ function writeConfigStep(token) {
142
+ log('\nStep 4/8 — Write ~/.eml/config (chmod 600)');
143
+ (0, _helpers_1.writeConfig)({
144
+ EML_URL: API_URL,
145
+ EML_API_TOKEN: token,
146
+ EML_CLIENT_VERSION: (0, _helpers_1.pkgVersion)(),
147
+ });
148
+ log(` ✓ Config written (EML_CLIENT_VERSION=${(0, _helpers_1.pkgVersion)()})`);
149
+ }
150
+ function registerMcpServer(token) {
151
+ log('\nStep 5/8 — Register MCP server with Claude Code');
152
+ // Best-effort remove any prior registration with the same name (idempotency).
153
+ const remove = (0, _helpers_1.claudeCli)(['mcp', 'remove', _helpers_1.MCP_SERVER_NAME]);
154
+ if (remove.status === 0) {
155
+ log(` ℹ Removed existing "${_helpers_1.MCP_SERVER_NAME}" registration (idempotent reinstall)`);
156
+ }
157
+ const args = [
158
+ 'mcp', 'add', _helpers_1.MCP_SERVER_NAME,
159
+ '--scope', 'user',
160
+ '--transport', 'stdio',
161
+ '--env', `EML_API_TOKEN=${token}`,
162
+ '--',
163
+ 'npx', '@engramprotocol/mcp-server@~0.10',
164
+ '--url', API_URL,
165
+ ];
166
+ const result = (0, _helpers_1.claudeCli)(args);
167
+ if (result.status !== 0) {
168
+ fail(`claude mcp add failed (exit ${result.status}):\n${result.stderr || result.stdout}`);
169
+ }
170
+ log(` ✓ MCP server "${_helpers_1.MCP_SERVER_NAME}" registered (scope=user, stdio)`);
171
+ }
172
+ function patchPermissions(settings) {
173
+ log('\nStep 6/8 — Permissions');
174
+ const a = (0, _helpers_1.mergePermission)(settings, MCP_PERMISSION);
175
+ const b = (0, _helpers_1.mergePermission)(settings, BASH_PERMISSION);
176
+ if (a)
177
+ log(` ✓ Added ${MCP_PERMISSION}`);
178
+ else
179
+ log(` ℹ ${MCP_PERMISSION} already present`);
180
+ if (b)
181
+ log(` ✓ Added ${BASH_PERMISSION}`);
182
+ else
183
+ log(` ℹ ${BASH_PERMISSION} already present`);
184
+ }
185
+ function patchHooks(settings) {
186
+ log('\nStep 7/8 — Hooks');
187
+ for (const tpl of _helpers_1.HOOK_TEMPLATES) {
188
+ const { installedPath, alreadyExisted } = (0, _helpers_1.installTemplate)(tpl.filename);
189
+ log(` ${alreadyExisted ? 'ℹ overwrote' : '✓ installed'} ${installedPath}`);
190
+ const command = `bash ${installedPath}`;
191
+ const added = (0, _helpers_1.mergeHookCommand)(settings, tpl.event, command);
192
+ if (added)
193
+ log(` ↳ hook entry added for ${tpl.event}`);
194
+ else
195
+ log(` ↳ hook entry for ${tpl.event} already present`);
196
+ }
197
+ }
198
+ async function smokeTest(token) {
199
+ log('\nStep 8/8 — Smoke test');
200
+ const result = await (0, _helpers_1.verifyToken)(API_URL, token);
201
+ if (!result.ok) {
202
+ fail(`/stats round-trip failed (${result.status ?? result.error}). Setup completed but server may be unreachable; check ~/.eml/config and try again.`);
203
+ }
204
+ log(' ✓ /stats round-trip OK');
205
+ }
206
+ async function runInstall(_argv) {
207
+ log('Engram Protocol — Setup (install)');
208
+ await preflight();
209
+ const token = await tokenPrompt();
210
+ log('\nStep 3/8 — Consent');
211
+ summarizePlan();
212
+ const ok = await (0, _helpers_1.promptConfirm)('Proceed?', false);
213
+ if (!ok) {
214
+ log('\nCancelled. No changes made.');
215
+ return;
216
+ }
217
+ // ---- Begin mutations ----
218
+ const backupPath = (0, _helpers_1.backupSettings)();
219
+ if (backupPath)
220
+ log(` ℹ Backup: ${backupPath}`);
221
+ writeConfigStep(token);
222
+ registerMcpServer(token);
223
+ // Single read-modify-write cycle for settings.json: permissions + hooks merged together.
224
+ const settings = (0, _helpers_1.readSettings)();
225
+ patchPermissions(settings);
226
+ patchHooks(settings);
227
+ (0, _helpers_1.writeSettings)(settings);
228
+ log(` ✓ ${_helpers_1.CLAUDE_SETTINGS} updated`);
229
+ await smokeTest(token);
230
+ log(`
231
+ ✅ Done.
232
+
233
+ Restart Claude Code for the changes to take effect.
234
+ Hooks installed in: ${_helpers_1.EML_HOOKS_DIR}
235
+ Config: ${_helpers_1.EML_CONFIG}
236
+ Marker: # ${_helpers_1.MANAGED_BY_MARKER} (line 2 of each hook script + on managed entries)
237
+
238
+ To reverse: \`npx @engramprotocol/mcp-server setup uninstall\`
239
+ `);
240
+ }
241
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/setup/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runUninstall(_argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=uninstall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../src/setup/uninstall.ts"],"names":[],"mappings":"AA6BA,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiFjE"}