@everstateai/mcp 1.3.2 → 1.3.3

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 (70) hide show
  1. package/dist/index.d.ts +5 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +32 -5
  4. package/dist/index.js.map +1 -1
  5. package/dist/setup/auto-update.d.ts +20 -0
  6. package/dist/setup/auto-update.d.ts.map +1 -0
  7. package/dist/setup/auto-update.js +295 -0
  8. package/dist/setup/auto-update.js.map +1 -0
  9. package/dist/setup/commands/doctor.d.ts +15 -0
  10. package/dist/setup/commands/doctor.d.ts.map +1 -0
  11. package/dist/setup/commands/doctor.js +264 -0
  12. package/dist/setup/commands/doctor.js.map +1 -0
  13. package/dist/setup/commands/repair.d.ts +14 -0
  14. package/dist/setup/commands/repair.d.ts.map +1 -0
  15. package/dist/setup/commands/repair.js +252 -0
  16. package/dist/setup/commands/repair.js.map +1 -0
  17. package/dist/setup/hooks/templates.d.ts +30 -0
  18. package/dist/setup/hooks/templates.d.ts.map +1 -0
  19. package/dist/setup/hooks/templates.js +237 -0
  20. package/dist/setup/hooks/templates.js.map +1 -0
  21. package/dist/setup/types.d.ts +120 -0
  22. package/dist/setup/types.d.ts.map +1 -0
  23. package/dist/setup/types.js +58 -0
  24. package/dist/setup/types.js.map +1 -0
  25. package/dist/setup/validators/api-key.d.ts +8 -0
  26. package/dist/setup/validators/api-key.d.ts.map +1 -0
  27. package/dist/setup/validators/api-key.js +233 -0
  28. package/dist/setup/validators/api-key.js.map +1 -0
  29. package/dist/setup/validators/connectivity.d.ts +8 -0
  30. package/dist/setup/validators/connectivity.d.ts.map +1 -0
  31. package/dist/setup/validators/connectivity.js +150 -0
  32. package/dist/setup/validators/connectivity.js.map +1 -0
  33. package/dist/setup/validators/hooks.d.ts +8 -0
  34. package/dist/setup/validators/hooks.d.ts.map +1 -0
  35. package/dist/setup/validators/hooks.js +431 -0
  36. package/dist/setup/validators/hooks.js.map +1 -0
  37. package/dist/setup/validators/index.d.ts +18 -0
  38. package/dist/setup/validators/index.d.ts.map +1 -0
  39. package/dist/setup/validators/index.js +123 -0
  40. package/dist/setup/validators/index.js.map +1 -0
  41. package/dist/setup/validators/mcp-config.d.ts +8 -0
  42. package/dist/setup/validators/mcp-config.d.ts.map +1 -0
  43. package/dist/setup/validators/mcp-config.js +333 -0
  44. package/dist/setup/validators/mcp-config.js.map +1 -0
  45. package/dist/setup/validators/project.d.ts +8 -0
  46. package/dist/setup/validators/project.d.ts.map +1 -0
  47. package/dist/setup/validators/project.js +202 -0
  48. package/dist/setup/validators/project.js.map +1 -0
  49. package/dist/setup/version.d.ts +58 -0
  50. package/dist/setup/version.d.ts.map +1 -0
  51. package/dist/setup/version.js +262 -0
  52. package/dist/setup/version.js.map +1 -0
  53. package/dist/setup.d.ts.map +1 -1
  54. package/dist/setup.js +207 -27
  55. package/dist/setup.js.map +1 -1
  56. package/package.json +1 -1
  57. package/src/index.ts +32 -5
  58. package/src/setup/auto-update.ts +328 -0
  59. package/src/setup/commands/doctor.ts +266 -0
  60. package/src/setup/commands/repair.ts +260 -0
  61. package/src/setup/hooks/templates.ts +239 -0
  62. package/src/setup/types.ts +199 -0
  63. package/src/setup/validators/api-key.ts +218 -0
  64. package/src/setup/validators/connectivity.ts +176 -0
  65. package/src/setup/validators/hooks.ts +447 -0
  66. package/src/setup/validators/index.ts +137 -0
  67. package/src/setup/validators/mcp-config.ts +329 -0
  68. package/src/setup/validators/project.ts +179 -0
  69. package/src/setup/version.ts +267 -0
  70. package/src/setup.ts +229 -27
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ /**
3
+ * Doctor Command
4
+ *
5
+ * Diagnoses Everstate installation issues.
6
+ *
7
+ * Usage:
8
+ * npx @everstateai/mcp doctor
9
+ * npx @everstateai/mcp doctor --json
10
+ * npx @everstateai/mcp doctor --verbose
11
+ * npx @everstateai/mcp doctor --component hooks
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.doctor = doctor;
48
+ exports.doctorCli = doctorCli;
49
+ const fs = __importStar(require("fs"));
50
+ const types_js_1 = require("../types.js");
51
+ const index_js_1 = require("../validators/index.js");
52
+ const version_js_1 = require("../version.js");
53
+ async function doctor(options = {}) {
54
+ const context = buildContext(options);
55
+ // Run validation
56
+ let summary;
57
+ if (options.component) {
58
+ summary = await (0, index_js_1.validateComponent)(options.component, context);
59
+ }
60
+ else {
61
+ summary = await (0, index_js_1.validateAll)(context);
62
+ }
63
+ // Check for server updates (same as dashboard UI)
64
+ let serverUpdates = [];
65
+ if (context.apiKey) {
66
+ serverUpdates = await (0, version_js_1.checkServerUpdates)(context.apiKey);
67
+ }
68
+ // Output results
69
+ if (options.json) {
70
+ outputJson(summary, serverUpdates);
71
+ }
72
+ else {
73
+ outputPretty(summary, options.verbose, serverUpdates);
74
+ }
75
+ // Exit code based on results
76
+ if (summary.failed > 0) {
77
+ process.exit(1);
78
+ }
79
+ }
80
+ function buildContext(options) {
81
+ const context = {
82
+ projectDir: options.projectDir || process.cwd(),
83
+ verbose: options.verbose,
84
+ };
85
+ // Try to load API key for authenticated checks
86
+ const apiKeyPath = `${(0, types_js_1.getEverstateDir)()}/api-key`;
87
+ if (fs.existsSync(apiKeyPath)) {
88
+ try {
89
+ context.apiKey = fs.readFileSync(apiKeyPath, 'utf8').trim();
90
+ }
91
+ catch {
92
+ // API key not readable - will be reported by validator
93
+ }
94
+ }
95
+ return context;
96
+ }
97
+ function outputJson(summary, serverUpdates) {
98
+ console.log(JSON.stringify({ ...summary, serverUpdates }, null, 2));
99
+ }
100
+ function outputPretty(summary, verbose, serverUpdates = []) {
101
+ // Header
102
+ console.log('');
103
+ console.log((0, types_js_1.c)('bold', '╔═══════════════════════════════════════════════════════════╗'));
104
+ console.log((0, types_js_1.c)('bold', '║ Everstate Health Check ║'));
105
+ console.log((0, types_js_1.c)('bold', '╚═══════════════════════════════════════════════════════════╝'));
106
+ console.log('');
107
+ // Group results by component
108
+ const grouped = new Map();
109
+ for (const result of summary.results) {
110
+ if (!grouped.has(result.component)) {
111
+ grouped.set(result.component, []);
112
+ }
113
+ grouped.get(result.component).push(result);
114
+ }
115
+ // Output each component
116
+ for (const [component, results] of grouped) {
117
+ console.log((0, types_js_1.c)('bold', component));
118
+ for (const result of results) {
119
+ const icon = getStatusIcon(result.status);
120
+ const color = getStatusColor(result.status);
121
+ const message = result.message;
122
+ console.log(` ${icon} ${(0, types_js_1.c)(color, result.check)}: ${message}`);
123
+ // Show details in verbose mode
124
+ if (verbose && result.details) {
125
+ for (const [key, value] of Object.entries(result.details)) {
126
+ console.log((0, types_js_1.c)('dim', ` ${key}: ${JSON.stringify(value)}`));
127
+ }
128
+ }
129
+ // Show repair action hint for failures
130
+ if (result.status === 'fail' && result.repairAction) {
131
+ console.log((0, types_js_1.c)('dim', ` → ${result.repairAction.description}`));
132
+ }
133
+ }
134
+ console.log('');
135
+ }
136
+ // Check for available updates (local version checks)
137
+ const localUpdates = (0, version_js_1.checkForUpdates)();
138
+ // Show both local and server updates
139
+ const hasLocalUpdates = localUpdates.needsUpdate;
140
+ const hasServerUpdates = serverUpdates.length > 0;
141
+ if (hasLocalUpdates || hasServerUpdates) {
142
+ console.log((0, types_js_1.c)('yellow', 'Available Updates:'));
143
+ // Local version file updates
144
+ if (hasLocalUpdates) {
145
+ for (const outdated of localUpdates.outdated) {
146
+ console.log((0, types_js_1.c)('yellow', ` ↑ ${outdated}`));
147
+ }
148
+ }
149
+ // Server-announced updates (same as dashboard UI)
150
+ if (hasServerUpdates) {
151
+ for (const update of serverUpdates) {
152
+ const breakingFlag = update.breaking ? (0, types_js_1.c)('red', ' [BREAKING]') : '';
153
+ console.log((0, types_js_1.c)('cyan', ` ★ ${update.title}`) + ` (${update.category} v${update.version})${breakingFlag}`);
154
+ if (verbose) {
155
+ console.log((0, types_js_1.c)('dim', ` ${update.description}`));
156
+ }
157
+ }
158
+ }
159
+ console.log('');
160
+ }
161
+ // Summary line
162
+ const parts = [];
163
+ if (summary.passed > 0) {
164
+ parts.push((0, types_js_1.c)('green', `${summary.passed} passed`));
165
+ }
166
+ if (summary.warnings > 0) {
167
+ parts.push((0, types_js_1.c)('yellow', `${summary.warnings} warnings`));
168
+ }
169
+ if (summary.failed > 0) {
170
+ parts.push((0, types_js_1.c)('red', `${summary.failed} failed`));
171
+ }
172
+ console.log(`Status: ${parts.join(', ')}`);
173
+ // Action hint
174
+ if (summary.failed > 0) {
175
+ console.log('');
176
+ console.log((0, types_js_1.c)('cyan', 'Run `npx @everstateai/mcp repair` to fix issues'));
177
+ }
178
+ else if (summary.warnings > 0) {
179
+ console.log('');
180
+ console.log((0, types_js_1.c)('dim', 'Run `npx @everstateai/mcp repair --include-warnings` to address warnings'));
181
+ }
182
+ console.log('');
183
+ }
184
+ function getStatusIcon(status) {
185
+ switch (status) {
186
+ case 'pass':
187
+ return (0, types_js_1.c)('green', '✓');
188
+ case 'warn':
189
+ return (0, types_js_1.c)('yellow', '⚠');
190
+ case 'fail':
191
+ return (0, types_js_1.c)('red', '✗');
192
+ default:
193
+ return '?';
194
+ }
195
+ }
196
+ function getStatusColor(status) {
197
+ switch (status) {
198
+ case 'pass':
199
+ return 'green';
200
+ case 'warn':
201
+ return 'yellow';
202
+ case 'fail':
203
+ return 'red';
204
+ default:
205
+ return 'reset';
206
+ }
207
+ }
208
+ // CLI entry point
209
+ async function doctorCli(args) {
210
+ const options = {};
211
+ for (let i = 0; i < args.length; i++) {
212
+ const arg = args[i];
213
+ switch (arg) {
214
+ case '--json':
215
+ options.json = true;
216
+ break;
217
+ case '--verbose':
218
+ case '-v':
219
+ options.verbose = true;
220
+ break;
221
+ case '--component':
222
+ case '-c':
223
+ options.component = args[++i];
224
+ break;
225
+ case '--project':
226
+ case '-p':
227
+ options.projectDir = args[++i];
228
+ break;
229
+ case '--help':
230
+ case '-h':
231
+ printHelp();
232
+ process.exit(0);
233
+ }
234
+ }
235
+ await doctor(options);
236
+ }
237
+ function printHelp() {
238
+ console.log(`
239
+ Everstate Doctor - Diagnose installation issues
240
+
241
+ Usage:
242
+ npx @everstateai/mcp doctor [options]
243
+
244
+ Options:
245
+ --json Output results as JSON
246
+ --verbose, -v Show additional details
247
+ --component, -c Check only a specific component
248
+ --project, -p Specify project directory
249
+ --help, -h Show this help
250
+
251
+ Components:
252
+ API Key API key file and format
253
+ MCP Configuration Claude Code and Desktop config
254
+ Hooks Hook files and registration
255
+ Project Project-level .everstate.json
256
+ Connectivity API server connectivity
257
+
258
+ Examples:
259
+ npx @everstateai/mcp doctor
260
+ npx @everstateai/mcp doctor --json
261
+ npx @everstateai/mcp doctor --component hooks --verbose
262
+ `);
263
+ }
264
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/setup/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Repair Command
3
+ *
4
+ * Automatically fixes detected Everstate issues.
5
+ *
6
+ * Usage:
7
+ * npx @everstateai/mcp repair
8
+ * npx @everstateai/mcp repair --include-warnings
9
+ * npx @everstateai/mcp repair --force
10
+ */
11
+ import { RepairOptions } from '../types.js';
12
+ export declare function repair(options?: RepairOptions): Promise<void>;
13
+ export declare function repairCli(args: string[]): Promise<void>;
14
+ //# sourceMappingURL=repair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../../src/setup/commands/repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAGL,aAAa,EAGd,MAAM,aAAa,CAAC;AAerB,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDvE;AA6GD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B7D"}
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ /**
3
+ * Repair Command
4
+ *
5
+ * Automatically fixes detected Everstate issues.
6
+ *
7
+ * Usage:
8
+ * npx @everstateai/mcp repair
9
+ * npx @everstateai/mcp repair --include-warnings
10
+ * npx @everstateai/mcp repair --force
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.repair = repair;
47
+ exports.repairCli = repairCli;
48
+ const fs = __importStar(require("fs"));
49
+ const types_js_1 = require("../types.js");
50
+ const index_js_1 = require("../validators/index.js");
51
+ const version_js_1 = require("../version.js");
52
+ async function repair(options = {}) {
53
+ const context = buildContext(options);
54
+ console.log('');
55
+ console.log((0, types_js_1.c)('bold', 'Everstate Repair'));
56
+ console.log((0, types_js_1.c)('dim', '─'.repeat(40)));
57
+ console.log('');
58
+ // Run validation first
59
+ console.log('Checking installation...');
60
+ const summary = await (0, index_js_1.validateAll)(context);
61
+ // Find issues to repair
62
+ const toRepair = summary.results.filter((r) => {
63
+ if (r.status === 'fail')
64
+ return true;
65
+ if (r.status === 'warn' && options.includeWarnings)
66
+ return true;
67
+ return false;
68
+ });
69
+ if (toRepair.length === 0) {
70
+ console.log('');
71
+ console.log((0, types_js_1.c)('green', '✓ No issues to repair'));
72
+ console.log('');
73
+ return;
74
+ }
75
+ console.log('');
76
+ console.log(`Found ${toRepair.length} issue(s) to repair:`);
77
+ for (const issue of toRepair) {
78
+ console.log(` ${(0, types_js_1.c)('yellow', '•')} ${issue.component}: ${issue.check}`);
79
+ }
80
+ console.log('');
81
+ // Perform repairs
82
+ const repairSummary = await performRepairs(toRepair, context, options);
83
+ // Update version file on success
84
+ if (repairSummary.succeeded > 0) {
85
+ (0, version_js_1.updateVersionFile)({
86
+ components: {
87
+ mcpProxy: (0, version_js_1.getMcpProxyVersion)(),
88
+ hooks: version_js_1.HOOK_VERSIONS,
89
+ },
90
+ });
91
+ }
92
+ // Output summary
93
+ outputRepairSummary(repairSummary);
94
+ // Exit code
95
+ if (repairSummary.failed > 0) {
96
+ process.exit(1);
97
+ }
98
+ }
99
+ function buildContext(options) {
100
+ const context = {
101
+ projectDir: options.projectDir || process.cwd(),
102
+ };
103
+ // Try to load API key
104
+ const apiKeyPath = `${(0, types_js_1.getEverstateDir)()}/api-key`;
105
+ if (fs.existsSync(apiKeyPath)) {
106
+ try {
107
+ context.apiKey = fs.readFileSync(apiKeyPath, 'utf8').trim();
108
+ }
109
+ catch {
110
+ // Will be handled during repair
111
+ }
112
+ }
113
+ return context;
114
+ }
115
+ async function performRepairs(issues, context, options) {
116
+ const summary = {
117
+ attempted: 0,
118
+ succeeded: 0,
119
+ failed: 0,
120
+ skipped: 0,
121
+ details: [],
122
+ };
123
+ for (const issue of issues) {
124
+ const checkName = `${issue.component}: ${issue.check}`;
125
+ // Check if repair is available
126
+ if (!issue.repairAction) {
127
+ console.log(` ${(0, types_js_1.c)('dim', '○')} ${checkName}: ${(0, types_js_1.c)('dim', 'No automatic repair available')}`);
128
+ summary.skipped++;
129
+ summary.details.push({ check: checkName, result: 'manual' });
130
+ continue;
131
+ }
132
+ // Check if repair requires confirmation
133
+ if (!issue.repairAction.automatic && !options.force) {
134
+ console.log(` ${(0, types_js_1.c)('yellow', '?')} ${checkName}: Requires --force or manual intervention`);
135
+ summary.skipped++;
136
+ summary.details.push({ check: checkName, result: 'skipped' });
137
+ continue;
138
+ }
139
+ // Attempt repair
140
+ summary.attempted++;
141
+ console.log(` ${(0, types_js_1.c)('cyan', '→')} Repairing: ${checkName}...`);
142
+ try {
143
+ const success = await (0, index_js_1.repairResult)(issue, context);
144
+ if (success) {
145
+ console.log(` ${(0, types_js_1.c)('green', '✓')} Fixed`);
146
+ summary.succeeded++;
147
+ summary.details.push({ check: checkName, result: 'fixed' });
148
+ }
149
+ else {
150
+ console.log(` ${(0, types_js_1.c)('red', '✗')} Failed`);
151
+ summary.failed++;
152
+ summary.details.push({ check: checkName, result: 'failed' });
153
+ }
154
+ }
155
+ catch (error) {
156
+ console.log(` ${(0, types_js_1.c)('red', '✗')} Error: ${String(error)}`);
157
+ summary.failed++;
158
+ summary.details.push({ check: checkName, result: 'failed' });
159
+ }
160
+ }
161
+ return summary;
162
+ }
163
+ function outputRepairSummary(summary) {
164
+ console.log('');
165
+ console.log((0, types_js_1.c)('bold', 'Repair Summary'));
166
+ console.log((0, types_js_1.c)('dim', '─'.repeat(40)));
167
+ if (summary.succeeded > 0) {
168
+ console.log(` ${(0, types_js_1.c)('green', '✓')} ${summary.succeeded} fixed`);
169
+ }
170
+ if (summary.failed > 0) {
171
+ console.log(` ${(0, types_js_1.c)('red', '✗')} ${summary.failed} failed`);
172
+ }
173
+ if (summary.skipped > 0) {
174
+ console.log(` ${(0, types_js_1.c)('yellow', '○')} ${summary.skipped} skipped`);
175
+ }
176
+ console.log('');
177
+ if (summary.failed > 0) {
178
+ console.log((0, types_js_1.c)('yellow', 'Some repairs failed. You may need to:'));
179
+ console.log((0, types_js_1.c)('dim', ' 1. Run with --force for non-automatic repairs'));
180
+ console.log((0, types_js_1.c)('dim', ' 2. Manually fix issues that cannot be auto-repaired'));
181
+ console.log((0, types_js_1.c)('dim', ' 3. Re-run setup: npx @everstateai/mcp setup <api-key>'));
182
+ console.log('');
183
+ }
184
+ else if (summary.succeeded > 0) {
185
+ console.log((0, types_js_1.c)('green', 'All repairs completed successfully!'));
186
+ console.log((0, types_js_1.c)('dim', 'Run `npx @everstateai/mcp doctor` to verify.'));
187
+ console.log('');
188
+ }
189
+ }
190
+ // CLI entry point
191
+ async function repairCli(args) {
192
+ const options = {};
193
+ for (let i = 0; i < args.length; i++) {
194
+ const arg = args[i];
195
+ switch (arg) {
196
+ case '--force':
197
+ case '-f':
198
+ options.force = true;
199
+ break;
200
+ case '--include-warnings':
201
+ case '-w':
202
+ options.includeWarnings = true;
203
+ break;
204
+ case '--component':
205
+ case '-c':
206
+ options.component = args[++i];
207
+ break;
208
+ case '--project':
209
+ case '-p':
210
+ options.projectDir = args[++i];
211
+ break;
212
+ case '--help':
213
+ case '-h':
214
+ printHelp();
215
+ process.exit(0);
216
+ }
217
+ }
218
+ await repair(options);
219
+ }
220
+ function printHelp() {
221
+ console.log(`
222
+ Everstate Repair - Fix installation issues
223
+
224
+ Usage:
225
+ npx @everstateai/mcp repair [options]
226
+
227
+ Options:
228
+ --force, -f Force non-automatic repairs
229
+ --include-warnings, -w Also repair warnings (not just failures)
230
+ --component, -c Repair only a specific component
231
+ --project, -p Specify project directory
232
+ --help, -h Show this help
233
+
234
+ What can be repaired:
235
+ • Missing API key file (if you provide it)
236
+ • Incorrect file permissions
237
+ • Missing or outdated hooks
238
+ • MCP configuration issues
239
+ • Hook registration in Claude config
240
+
241
+ What requires manual intervention:
242
+ • Invalid API key (get a new one from dashboard)
243
+ • Missing project configuration (run setup)
244
+ • Network connectivity issues
245
+
246
+ Examples:
247
+ npx @everstateai/mcp repair
248
+ npx @everstateai/mcp repair --force
249
+ npx @everstateai/mcp repair --include-warnings
250
+ `);
251
+ }
252
+ //# sourceMappingURL=repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repair.js","sourceRoot":"","sources":["../../../src/setup/commands/repair.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBH,wBAqDC;AA6GD,8BA+BC;AAvND,uCAAyB;AACzB,0CAMqB;AACrB,qDAAmE;AACnE,8CAAwG;AAajG,KAAK,UAAU,MAAM,CAAC,UAAyB,EAAE;IACtD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,uBAAuB;IACvB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAC;IAE3C,wBAAwB;IACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5C,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,SAAS,QAAQ,CAAC,MAAM,sBAAsB,CAAC,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,YAAC,EAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,kBAAkB;IAClB,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvE,iCAAiC;IACjC,IAAI,aAAa,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAChC,IAAA,8BAAiB,EAAC;YAChB,UAAU,EAAE;gBACV,QAAQ,EAAE,IAAA,+BAAkB,GAAE;gBAC9B,KAAK,EAAE,0BAAa;aACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAEnC,YAAY;IACZ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAsB;IAC1C,MAAM,OAAO,GAAsB;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE;KAChD,CAAC;IAEF,sBAAsB;IACtB,MAAM,UAAU,GAAG,GAAG,IAAA,0BAAe,GAAE,UAAU,CAAC;IAClD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,MAA0B,EAC1B,OAA0B,EAC1B,OAAsB;IAEtB,MAAM,OAAO,GAAkB;QAC7B,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;QAEvD,+BAA+B;QAC/B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,YAAC,EAAC,KAAK,EAAE,GAAG,CAAC,IAAI,SAAS,KAAK,IAAA,YAAC,EAAC,KAAK,EAAE,+BAA+B,CAAC,EAAE,CAAC,CAAC;YAC7F,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,YAAC,EAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,SAAS,2CAA2C,CAAC,CAAC;YAC3F,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,iBAAiB;QACjB,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,YAAC,EAAC,MAAM,EAAE,GAAG,CAAC,eAAe,SAAS,KAAK,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAA,uBAAY,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAEnD,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,YAAC,EAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5C,OAAO,CAAC,SAAS,EAAE,CAAC;gBACpB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,YAAC,EAAC,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3C,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,OAAO,IAAA,YAAC,EAAC,KAAK,EAAE,GAAG,CAAC,WAAW,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAsB;IACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEtC,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,YAAC,EAAC,OAAO,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,QAAQ,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,YAAC,EAAC,KAAK,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,YAAC,EAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,QAAQ,EAAE,uCAAuC,CAAC,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,KAAK,EAAE,iDAAiD,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,KAAK,EAAE,uDAAuD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,KAAK,EAAE,yDAAyD,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,OAAO,EAAE,qCAAqC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,IAAA,YAAC,EAAC,KAAK,EAAE,8CAA8C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,kBAAkB;AACX,KAAK,UAAU,SAAS,CAAC,IAAc;IAC5C,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,IAAI;gBACP,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;gBACrB,MAAM;YACR,KAAK,oBAAoB,CAAC;YAC1B,KAAK,IAAI;gBACP,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC/B,MAAM;YACR,KAAK,aAAa,CAAC;YACnB,KAAK,IAAI;gBACP,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,WAAW,CAAC;YACjB,KAAK,IAAI;gBACP,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bb,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Hook Templates
3
+ *
4
+ * Versioned hook templates for installation and updates.
5
+ * Each hook includes a VERSION header for validation.
6
+ */
7
+ import { HookConfig } from '../types.js';
8
+ /**
9
+ * Get the sync-todos.js hook content
10
+ */
11
+ export declare function getSyncTodosHook(config?: Partial<HookConfig>): string;
12
+ /**
13
+ * Get the session-start.sh hook content
14
+ */
15
+ export declare function getSessionStartHook(config?: Partial<HookConfig>): string;
16
+ /**
17
+ * Get the session-end.sh hook content
18
+ */
19
+ export declare function getSessionEndHook(config?: Partial<HookConfig>): string;
20
+ /**
21
+ * Get the pre-compact.sh hook content (for context compaction)
22
+ */
23
+ export declare function getPreCompactHook(config?: Partial<HookConfig>): string;
24
+ export declare const hookTemplates: {
25
+ syncTodos: typeof getSyncTodosHook;
26
+ sessionStart: typeof getSessionStartHook;
27
+ sessionEnd: typeof getSessionEndHook;
28
+ preCompact: typeof getPreCompactHook;
29
+ };
30
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/setup/hooks/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAqD,MAAM,aAAa,CAAC;AAE5F;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAuFrE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAoBxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CA+CtE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAkDtE;AAED,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC"}