@local-labs-jpollock/local-cli 0.0.1

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 (86) hide show
  1. package/addon-dist/bin/mcp-stdio.js +2808 -0
  2. package/addon-dist/lib/common/constants.d.ts +22 -0
  3. package/addon-dist/lib/common/constants.js +26 -0
  4. package/addon-dist/lib/common/theme.d.ts +68 -0
  5. package/addon-dist/lib/common/theme.js +126 -0
  6. package/addon-dist/lib/common/types.d.ts +298 -0
  7. package/addon-dist/lib/common/types.js +6 -0
  8. package/addon-dist/lib/main/config/ConnectionInfo.d.ts +25 -0
  9. package/addon-dist/lib/main/config/ConnectionInfo.js +82 -0
  10. package/addon-dist/lib/main/index.d.ts +12 -0
  11. package/addon-dist/lib/main/index.js +3322 -0
  12. package/addon-dist/lib/main/mcp/McpAuth.d.ts +37 -0
  13. package/addon-dist/lib/main/mcp/McpAuth.js +87 -0
  14. package/addon-dist/lib/main/mcp/McpServer.d.ts +67 -0
  15. package/addon-dist/lib/main/mcp/McpServer.js +343 -0
  16. package/addon-dist/lib/main/mcp/tools/changePhpVersion.d.ts +7 -0
  17. package/addon-dist/lib/main/mcp/tools/changePhpVersion.js +81 -0
  18. package/addon-dist/lib/main/mcp/tools/cloneSite.d.ts +7 -0
  19. package/addon-dist/lib/main/mcp/tools/cloneSite.js +66 -0
  20. package/addon-dist/lib/main/mcp/tools/createSite.d.ts +7 -0
  21. package/addon-dist/lib/main/mcp/tools/createSite.js +137 -0
  22. package/addon-dist/lib/main/mcp/tools/deleteSite.d.ts +7 -0
  23. package/addon-dist/lib/main/mcp/tools/deleteSite.js +72 -0
  24. package/addon-dist/lib/main/mcp/tools/exportDatabase.d.ts +7 -0
  25. package/addon-dist/lib/main/mcp/tools/exportDatabase.js +72 -0
  26. package/addon-dist/lib/main/mcp/tools/exportSite.d.ts +7 -0
  27. package/addon-dist/lib/main/mcp/tools/exportSite.js +103 -0
  28. package/addon-dist/lib/main/mcp/tools/getLocalInfo.d.ts +7 -0
  29. package/addon-dist/lib/main/mcp/tools/getLocalInfo.js +72 -0
  30. package/addon-dist/lib/main/mcp/tools/getSite.d.ts +7 -0
  31. package/addon-dist/lib/main/mcp/tools/getSite.js +68 -0
  32. package/addon-dist/lib/main/mcp/tools/getSiteLogs.d.ts +7 -0
  33. package/addon-dist/lib/main/mcp/tools/getSiteLogs.js +149 -0
  34. package/addon-dist/lib/main/mcp/tools/helpers.d.ts +59 -0
  35. package/addon-dist/lib/main/mcp/tools/helpers.js +179 -0
  36. package/addon-dist/lib/main/mcp/tools/importDatabase.d.ts +7 -0
  37. package/addon-dist/lib/main/mcp/tools/importDatabase.js +109 -0
  38. package/addon-dist/lib/main/mcp/tools/importSite.d.ts +7 -0
  39. package/addon-dist/lib/main/mcp/tools/importSite.js +149 -0
  40. package/addon-dist/lib/main/mcp/tools/index.d.ts +26 -0
  41. package/addon-dist/lib/main/mcp/tools/index.js +117 -0
  42. package/addon-dist/lib/main/mcp/tools/listBlueprints.d.ts +7 -0
  43. package/addon-dist/lib/main/mcp/tools/listBlueprints.js +54 -0
  44. package/addon-dist/lib/main/mcp/tools/listServices.d.ts +7 -0
  45. package/addon-dist/lib/main/mcp/tools/listServices.js +112 -0
  46. package/addon-dist/lib/main/mcp/tools/listSites.d.ts +7 -0
  47. package/addon-dist/lib/main/mcp/tools/listSites.js +62 -0
  48. package/addon-dist/lib/main/mcp/tools/openAdminer.d.ts +7 -0
  49. package/addon-dist/lib/main/mcp/tools/openAdminer.js +59 -0
  50. package/addon-dist/lib/main/mcp/tools/openSite.d.ts +7 -0
  51. package/addon-dist/lib/main/mcp/tools/openSite.js +62 -0
  52. package/addon-dist/lib/main/mcp/tools/renameSite.d.ts +7 -0
  53. package/addon-dist/lib/main/mcp/tools/renameSite.js +70 -0
  54. package/addon-dist/lib/main/mcp/tools/restartSite.d.ts +7 -0
  55. package/addon-dist/lib/main/mcp/tools/restartSite.js +56 -0
  56. package/addon-dist/lib/main/mcp/tools/saveBlueprint.d.ts +7 -0
  57. package/addon-dist/lib/main/mcp/tools/saveBlueprint.js +89 -0
  58. package/addon-dist/lib/main/mcp/tools/startSite.d.ts +7 -0
  59. package/addon-dist/lib/main/mcp/tools/startSite.js +54 -0
  60. package/addon-dist/lib/main/mcp/tools/stopSite.d.ts +7 -0
  61. package/addon-dist/lib/main/mcp/tools/stopSite.js +54 -0
  62. package/addon-dist/lib/main/mcp/tools/toggleXdebug.d.ts +7 -0
  63. package/addon-dist/lib/main/mcp/tools/toggleXdebug.js +69 -0
  64. package/addon-dist/lib/main/mcp/tools/trustSsl.d.ts +7 -0
  65. package/addon-dist/lib/main/mcp/tools/trustSsl.js +59 -0
  66. package/addon-dist/lib/main/mcp/tools/wpCli.d.ts +7 -0
  67. package/addon-dist/lib/main/mcp/tools/wpCli.js +110 -0
  68. package/addon-dist/lib/main.d.ts +1 -0
  69. package/addon-dist/lib/main.js +10 -0
  70. package/addon-dist/lib/renderer/index.d.ts +7 -0
  71. package/addon-dist/lib/renderer/index.js +479 -0
  72. package/addon-dist/package.json +73 -0
  73. package/bin/lwp.js +10 -0
  74. package/lib/bootstrap/index.d.ts +98 -0
  75. package/lib/bootstrap/index.js +493 -0
  76. package/lib/bootstrap/paths.d.ts +28 -0
  77. package/lib/bootstrap/paths.js +96 -0
  78. package/lib/client/GraphQLClient.d.ts +38 -0
  79. package/lib/client/GraphQLClient.js +71 -0
  80. package/lib/client/index.d.ts +4 -0
  81. package/lib/client/index.js +10 -0
  82. package/lib/formatters/index.d.ts +75 -0
  83. package/lib/formatters/index.js +139 -0
  84. package/lib/index.d.ts +8 -0
  85. package/lib/index.js +1173 -0
  86. package/package.json +72 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * MCP Server Constants
3
+ */
4
+ export declare const MCP_SERVER: {
5
+ readonly NAME: "Local MCP Server";
6
+ readonly VERSION: "1.0.0";
7
+ readonly DEFAULT_PORT: 10789;
8
+ readonly PORT_RANGE: {
9
+ readonly MIN: 10789;
10
+ readonly MAX: 10889;
11
+ };
12
+ };
13
+ export declare const MCP_ENDPOINTS: {
14
+ readonly SSE: "/mcp/sse";
15
+ readonly MESSAGES: "/mcp/messages";
16
+ readonly HEALTH: "/health";
17
+ readonly GRAPHQL: "/graphql";
18
+ };
19
+ export declare const CONNECTION_INFO_FILENAME = "mcp-connection-info.json";
20
+ export declare const TRUSTED_IPS: readonly ["127.0.0.1", "::1", "::ffff:127.0.0.1"];
21
+ export declare const AUTH_TOKEN_LENGTH = 128;
22
+ export declare const REQUEST_TIMEOUT_MS = 30000;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Server Constants
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.REQUEST_TIMEOUT_MS = exports.AUTH_TOKEN_LENGTH = exports.TRUSTED_IPS = exports.CONNECTION_INFO_FILENAME = exports.MCP_ENDPOINTS = exports.MCP_SERVER = void 0;
7
+ exports.MCP_SERVER = {
8
+ NAME: 'Local MCP Server',
9
+ VERSION: '1.0.0',
10
+ DEFAULT_PORT: 10789,
11
+ PORT_RANGE: {
12
+ MIN: 10789,
13
+ MAX: 10889,
14
+ },
15
+ };
16
+ exports.MCP_ENDPOINTS = {
17
+ SSE: '/mcp/sse',
18
+ MESSAGES: '/mcp/messages',
19
+ HEALTH: '/health',
20
+ GRAPHQL: '/graphql',
21
+ };
22
+ exports.CONNECTION_INFO_FILENAME = 'mcp-connection-info.json';
23
+ exports.TRUSTED_IPS = ['127.0.0.1', '::1', '::ffff:127.0.0.1'];
24
+ exports.AUTH_TOKEN_LENGTH = 128;
25
+ exports.REQUEST_TIMEOUT_MS = 30000;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFVSxRQUFBLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFlBQVksRUFBRSxLQUFLO0lBQ25CLFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7S0FDWDtDQUNPLENBQUM7QUFFRSxRQUFBLGFBQWEsR0FBRztJQUMzQixHQUFHLEVBQUUsVUFBVTtJQUNmLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE9BQU8sRUFBRSxVQUFVO0NBQ1gsQ0FBQztBQUVFLFFBQUEsd0JBQXdCLEdBQUcsMEJBQTBCLENBQUM7QUFFdEQsUUFBQSxXQUFXLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixDQUFVLENBQUM7QUFFaEUsUUFBQSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFFeEIsUUFBQSxrQkFBa0IsR0FBRyxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1DUCBTZXJ2ZXIgQ29uc3RhbnRzXG4gKi9cblxuZXhwb3J0IGNvbnN0IE1DUF9TRVJWRVIgPSB7XG4gIE5BTUU6ICdMb2NhbCBNQ1AgU2VydmVyJyxcbiAgVkVSU0lPTjogJzEuMC4wJyxcbiAgREVGQVVMVF9QT1JUOiAxMDc4OSxcbiAgUE9SVF9SQU5HRToge1xuICAgIE1JTjogMTA3ODksXG4gICAgTUFYOiAxMDg4OSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBNQ1BfRU5EUE9JTlRTID0ge1xuICBTU0U6ICcvbWNwL3NzZScsXG4gIE1FU1NBR0VTOiAnL21jcC9tZXNzYWdlcycsXG4gIEhFQUxUSDogJy9oZWFsdGgnLFxuICBHUkFQSFFMOiAnL2dyYXBocWwnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05fSU5GT19GSUxFTkFNRSA9ICdtY3AtY29ubmVjdGlvbi1pbmZvLmpzb24nO1xuXG5leHBvcnQgY29uc3QgVFJVU1RFRF9JUFMgPSBbJzEyNy4wLjAuMScsICc6OjEnLCAnOjpmZmZmOjEyNy4wLjAuMSddIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgQVVUSF9UT0tFTl9MRU5HVEggPSAxMjg7XG5cbmV4cG9ydCBjb25zdCBSRVFVRVNUX1RJTUVPVVRfTVMgPSAzMDAwMDtcbiJdfQ==
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Theme Utilities for MCP Server Addon
3
+ *
4
+ * Provides theme detection and color management to match Local's theme preference.
5
+ * Local uses CSS classes on document.documentElement: .Theme__Dark or .Theme__Light
6
+ */
7
+ /**
8
+ * Theme color palette for consistent styling across components.
9
+ */
10
+ export interface ThemeColors {
11
+ panelBg: string;
12
+ panelBgSecondary: string;
13
+ panelBgCode: string;
14
+ textPrimary: string;
15
+ textSecondary: string;
16
+ textMuted: string;
17
+ border: string;
18
+ borderLight: string;
19
+ successBg: string;
20
+ successText: string;
21
+ errorBg: string;
22
+ errorText: string;
23
+ infoBg: string;
24
+ infoBorder: string;
25
+ infoText: string;
26
+ inputBg: string;
27
+ inputBorder: string;
28
+ primary: string;
29
+ primaryHover: string;
30
+ }
31
+ /**
32
+ * Light theme color palette.
33
+ */
34
+ declare const LIGHT_COLORS: ThemeColors;
35
+ /**
36
+ * Dark theme color palette.
37
+ */
38
+ declare const DARK_COLORS: ThemeColors;
39
+ /**
40
+ * Check if Local is currently in dark mode.
41
+ *
42
+ * Local sets CSS classes on document.documentElement:
43
+ * - .Theme__Dark for dark mode
44
+ * - .Theme__Light for light mode
45
+ *
46
+ * @returns true if dark mode is active, false otherwise
47
+ */
48
+ export declare function isDarkMode(): boolean;
49
+ /**
50
+ * Get theme-appropriate colors based on current Local theme.
51
+ *
52
+ * @returns ThemeColors object with colors for the current theme
53
+ */
54
+ export declare function getThemeColors(): ThemeColors;
55
+ /**
56
+ * Subscribe to theme changes via MutationObserver.
57
+ *
58
+ * Local toggles CSS classes on document.documentElement when theme changes.
59
+ * This function watches for those changes and calls the callback.
60
+ *
61
+ * @param callback Function called when theme changes
62
+ * @returns Cleanup function to stop observing
63
+ */
64
+ export declare function onThemeChange(callback: () => void): () => void;
65
+ /**
66
+ * Export color constants for direct access if needed.
67
+ */
68
+ export { LIGHT_COLORS, DARK_COLORS };
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ /**
3
+ * Theme Utilities for MCP Server Addon
4
+ *
5
+ * Provides theme detection and color management to match Local's theme preference.
6
+ * Local uses CSS classes on document.documentElement: .Theme__Dark or .Theme__Light
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DARK_COLORS = exports.LIGHT_COLORS = void 0;
10
+ exports.isDarkMode = isDarkMode;
11
+ exports.getThemeColors = getThemeColors;
12
+ exports.onThemeChange = onThemeChange;
13
+ /**
14
+ * Light theme color palette.
15
+ */
16
+ const LIGHT_COLORS = {
17
+ // Backgrounds
18
+ panelBg: '#ffffff',
19
+ panelBgSecondary: '#f5f5f5',
20
+ panelBgCode: '#2d2d2d',
21
+ // Text
22
+ textPrimary: '#1a1a1a',
23
+ textSecondary: '#666666',
24
+ textMuted: '#999999',
25
+ // Borders
26
+ border: '#dddddd',
27
+ borderLight: '#eeeeee',
28
+ // Status colors
29
+ successBg: '#d4edda',
30
+ successText: '#28a745',
31
+ errorBg: '#f8d7da',
32
+ errorText: '#dc3545',
33
+ infoBg: '#e7f3ff',
34
+ infoBorder: '#b3d9ff',
35
+ infoText: '#333333',
36
+ // Interactive elements
37
+ inputBg: '#ffffff',
38
+ inputBorder: '#cccccc',
39
+ // Brand/accent colors
40
+ primary: '#007bff',
41
+ primaryHover: '#0056b3',
42
+ };
43
+ exports.LIGHT_COLORS = LIGHT_COLORS;
44
+ /**
45
+ * Dark theme color palette.
46
+ */
47
+ const DARK_COLORS = {
48
+ // Backgrounds
49
+ panelBg: '#2d2d2d',
50
+ panelBgSecondary: '#3d3d3d',
51
+ panelBgCode: '#1a1a1a',
52
+ // Text
53
+ textPrimary: '#e0e0e0',
54
+ textSecondary: '#a0a0a0',
55
+ textMuted: '#808080',
56
+ // Borders
57
+ border: '#4a4a4a',
58
+ borderLight: '#3d3d3d',
59
+ // Status colors
60
+ successBg: '#1a4d2e',
61
+ successText: '#68d391',
62
+ errorBg: '#4d1a1a',
63
+ errorText: '#fc8181',
64
+ infoBg: '#1a3a4d',
65
+ infoBorder: '#2d5a7b',
66
+ infoText: '#e0e0e0',
67
+ // Interactive elements
68
+ inputBg: '#3d3d3d',
69
+ inputBorder: '#5a5a5a',
70
+ // Brand/accent colors
71
+ primary: '#4da3ff',
72
+ primaryHover: '#2d8aff',
73
+ };
74
+ exports.DARK_COLORS = DARK_COLORS;
75
+ /**
76
+ * Check if Local is currently in dark mode.
77
+ *
78
+ * Local sets CSS classes on document.documentElement:
79
+ * - .Theme__Dark for dark mode
80
+ * - .Theme__Light for light mode
81
+ *
82
+ * @returns true if dark mode is active, false otherwise
83
+ */
84
+ function isDarkMode() {
85
+ // Guard for SSR/Node environment
86
+ if (typeof document === 'undefined') {
87
+ return false;
88
+ }
89
+ return document.documentElement.classList.contains('Theme__Dark');
90
+ }
91
+ /**
92
+ * Get theme-appropriate colors based on current Local theme.
93
+ *
94
+ * @returns ThemeColors object with colors for the current theme
95
+ */
96
+ function getThemeColors() {
97
+ return isDarkMode() ? DARK_COLORS : LIGHT_COLORS;
98
+ }
99
+ /**
100
+ * Subscribe to theme changes via MutationObserver.
101
+ *
102
+ * Local toggles CSS classes on document.documentElement when theme changes.
103
+ * This function watches for those changes and calls the callback.
104
+ *
105
+ * @param callback Function called when theme changes
106
+ * @returns Cleanup function to stop observing
107
+ */
108
+ function onThemeChange(callback) {
109
+ // Guard for SSR/Node environment
110
+ if (typeof document === 'undefined') {
111
+ return () => { };
112
+ }
113
+ const observer = new MutationObserver((mutations) => {
114
+ for (const mutation of mutations) {
115
+ if (mutation.attributeName === 'class') {
116
+ callback();
117
+ }
118
+ }
119
+ });
120
+ observer.observe(document.documentElement, {
121
+ attributes: true,
122
+ attributeFilter: ['class'],
123
+ });
124
+ return () => observer.disconnect();
125
+ }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL3RoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBdUhILGdDQU9DO0FBT0Qsd0NBRUM7QUFXRCxzQ0FvQkM7QUFoSUQ7O0dBRUc7QUFDSCxNQUFNLFlBQVksR0FBZ0I7SUFDaEMsY0FBYztJQUNkLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLGdCQUFnQixFQUFFLFNBQVM7SUFDM0IsV0FBVyxFQUFFLFNBQVM7SUFFdEIsT0FBTztJQUNQLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLGFBQWEsRUFBRSxTQUFTO0lBQ3hCLFNBQVMsRUFBRSxTQUFTO0lBRXBCLFVBQVU7SUFDVixNQUFNLEVBQUUsU0FBUztJQUNqQixXQUFXLEVBQUUsU0FBUztJQUV0QixnQkFBZ0I7SUFDaEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsVUFBVSxFQUFFLFNBQVM7SUFDckIsUUFBUSxFQUFFLFNBQVM7SUFFbkIsdUJBQXVCO0lBQ3ZCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFdBQVcsRUFBRSxTQUFTO0lBRXRCLHNCQUFzQjtJQUN0QixPQUFPLEVBQUUsU0FBUztJQUNsQixZQUFZLEVBQUUsU0FBUztDQUN4QixDQUFDO0FBbUdPLG9DQUFZO0FBakdyQjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFnQjtJQUMvQixjQUFjO0lBQ2QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsZ0JBQWdCLEVBQUUsU0FBUztJQUMzQixXQUFXLEVBQUUsU0FBUztJQUV0QixPQUFPO0lBQ1AsV0FBVyxFQUFFLFNBQVM7SUFDdEIsYUFBYSxFQUFFLFNBQVM7SUFDeEIsU0FBUyxFQUFFLFNBQVM7SUFFcEIsVUFBVTtJQUNWLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBRXRCLGdCQUFnQjtJQUNoQixTQUFTLEVBQUUsU0FBUztJQUNwQixXQUFXLEVBQUUsU0FBUztJQUN0QixPQUFPLEVBQUUsU0FBUztJQUNsQixTQUFTLEVBQUUsU0FBUztJQUNwQixNQUFNLEVBQUUsU0FBUztJQUNqQixVQUFVLEVBQUUsU0FBUztJQUNyQixRQUFRLEVBQUUsU0FBUztJQUVuQix1QkFBdUI7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLFNBQVM7SUFFdEIsc0JBQXNCO0lBQ3RCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFlBQVksRUFBRSxTQUFTO0NBQ3hCLENBQUM7QUErRHFCLGtDQUFXO0FBN0RsQzs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLFVBQVU7SUFDeEIsaUNBQWlDO0lBQ2pDLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjO0lBQzVCLE9BQU8sVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0FBQ25ELENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxRQUFvQjtJQUNoRCxpQ0FBaUM7SUFDakMsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxPQUFPLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1FBQ2xELEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBSSxRQUFRLENBQUMsYUFBYSxLQUFLLE9BQU8sRUFBRSxDQUFDO2dCQUN2QyxRQUFRLEVBQUUsQ0FBQztZQUNiLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUU7UUFDekMsVUFBVSxFQUFFLElBQUk7UUFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQzNCLENBQUMsQ0FBQztJQUVILE9BQU8sR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZW1lIFV0aWxpdGllcyBmb3IgTUNQIFNlcnZlciBBZGRvblxuICpcbiAqIFByb3ZpZGVzIHRoZW1lIGRldGVjdGlvbiBhbmQgY29sb3IgbWFuYWdlbWVudCB0byBtYXRjaCBMb2NhbCdzIHRoZW1lIHByZWZlcmVuY2UuXG4gKiBMb2NhbCB1c2VzIENTUyBjbGFzc2VzIG9uIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDogLlRoZW1lX19EYXJrIG9yIC5UaGVtZV9fTGlnaHRcbiAqL1xuXG4vKipcbiAqIFRoZW1lIGNvbG9yIHBhbGV0dGUgZm9yIGNvbnNpc3RlbnQgc3R5bGluZyBhY3Jvc3MgY29tcG9uZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaGVtZUNvbG9ycyB7XG4gIC8vIEJhY2tncm91bmRzXG4gIHBhbmVsQmc6IHN0cmluZztcbiAgcGFuZWxCZ1NlY29uZGFyeTogc3RyaW5nO1xuICBwYW5lbEJnQ29kZTogc3RyaW5nO1xuXG4gIC8vIFRleHRcbiAgdGV4dFByaW1hcnk6IHN0cmluZztcbiAgdGV4dFNlY29uZGFyeTogc3RyaW5nO1xuICB0ZXh0TXV0ZWQ6IHN0cmluZztcblxuICAvLyBCb3JkZXJzXG4gIGJvcmRlcjogc3RyaW5nO1xuICBib3JkZXJMaWdodDogc3RyaW5nO1xuXG4gIC8vIFN0YXR1cyBjb2xvcnNcbiAgc3VjY2Vzc0JnOiBzdHJpbmc7XG4gIHN1Y2Nlc3NUZXh0OiBzdHJpbmc7XG4gIGVycm9yQmc6IHN0cmluZztcbiAgZXJyb3JUZXh0OiBzdHJpbmc7XG4gIGluZm9CZzogc3RyaW5nO1xuICBpbmZvQm9yZGVyOiBzdHJpbmc7XG4gIGluZm9UZXh0OiBzdHJpbmc7XG5cbiAgLy8gSW50ZXJhY3RpdmUgZWxlbWVudHNcbiAgaW5wdXRCZzogc3RyaW5nO1xuICBpbnB1dEJvcmRlcjogc3RyaW5nO1xuXG4gIC8vIEJyYW5kL2FjY2VudCBjb2xvcnNcbiAgcHJpbWFyeTogc3RyaW5nO1xuICBwcmltYXJ5SG92ZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBMaWdodCB0aGVtZSBjb2xvciBwYWxldHRlLlxuICovXG5jb25zdCBMSUdIVF9DT0xPUlM6IFRoZW1lQ29sb3JzID0ge1xuICAvLyBCYWNrZ3JvdW5kc1xuICBwYW5lbEJnOiAnI2ZmZmZmZicsXG4gIHBhbmVsQmdTZWNvbmRhcnk6ICcjZjVmNWY1JyxcbiAgcGFuZWxCZ0NvZGU6ICcjMmQyZDJkJyxcblxuICAvLyBUZXh0XG4gIHRleHRQcmltYXJ5OiAnIzFhMWExYScsXG4gIHRleHRTZWNvbmRhcnk6ICcjNjY2NjY2JyxcbiAgdGV4dE11dGVkOiAnIzk5OTk5OScsXG5cbiAgLy8gQm9yZGVyc1xuICBib3JkZXI6ICcjZGRkZGRkJyxcbiAgYm9yZGVyTGlnaHQ6ICcjZWVlZWVlJyxcblxuICAvLyBTdGF0dXMgY29sb3JzXG4gIHN1Y2Nlc3NCZzogJyNkNGVkZGEnLFxuICBzdWNjZXNzVGV4dDogJyMyOGE3NDUnLFxuICBlcnJvckJnOiAnI2Y4ZDdkYScsXG4gIGVycm9yVGV4dDogJyNkYzM1NDUnLFxuICBpbmZvQmc6ICcjZTdmM2ZmJyxcbiAgaW5mb0JvcmRlcjogJyNiM2Q5ZmYnLFxuICBpbmZvVGV4dDogJyMzMzMzMzMnLFxuXG4gIC8vIEludGVyYWN0aXZlIGVsZW1lbnRzXG4gIGlucHV0Qmc6ICcjZmZmZmZmJyxcbiAgaW5wdXRCb3JkZXI6ICcjY2NjY2NjJyxcblxuICAvLyBCcmFuZC9hY2NlbnQgY29sb3JzXG4gIHByaW1hcnk6ICcjMDA3YmZmJyxcbiAgcHJpbWFyeUhvdmVyOiAnIzAwNTZiMycsXG59O1xuXG4vKipcbiAqIERhcmsgdGhlbWUgY29sb3IgcGFsZXR0ZS5cbiAqL1xuY29uc3QgREFSS19DT0xPUlM6IFRoZW1lQ29sb3JzID0ge1xuICAvLyBCYWNrZ3JvdW5kc1xuICBwYW5lbEJnOiAnIzJkMmQyZCcsXG4gIHBhbmVsQmdTZWNvbmRhcnk6ICcjM2QzZDNkJyxcbiAgcGFuZWxCZ0NvZGU6ICcjMWExYTFhJyxcblxuICAvLyBUZXh0XG4gIHRleHRQcmltYXJ5OiAnI2UwZTBlMCcsXG4gIHRleHRTZWNvbmRhcnk6ICcjYTBhMGEwJyxcbiAgdGV4dE11dGVkOiAnIzgwODA4MCcsXG5cbiAgLy8gQm9yZGVyc1xuICBib3JkZXI6ICcjNGE0YTRhJyxcbiAgYm9yZGVyTGlnaHQ6ICcjM2QzZDNkJyxcblxuICAvLyBTdGF0dXMgY29sb3JzXG4gIHN1Y2Nlc3NCZzogJyMxYTRkMmUnLFxuICBzdWNjZXNzVGV4dDogJyM2OGQzOTEnLFxuICBlcnJvckJnOiAnIzRkMWExYScsXG4gIGVycm9yVGV4dDogJyNmYzgxODEnLFxuICBpbmZvQmc6ICcjMWEzYTRkJyxcbiAgaW5mb0JvcmRlcjogJyMyZDVhN2InLFxuICBpbmZvVGV4dDogJyNlMGUwZTAnLFxuXG4gIC8vIEludGVyYWN0aXZlIGVsZW1lbnRzXG4gIGlucHV0Qmc6ICcjM2QzZDNkJyxcbiAgaW5wdXRCb3JkZXI6ICcjNWE1YTVhJyxcblxuICAvLyBCcmFuZC9hY2NlbnQgY29sb3JzXG4gIHByaW1hcnk6ICcjNGRhM2ZmJyxcbiAgcHJpbWFyeUhvdmVyOiAnIzJkOGFmZicsXG59O1xuXG4vKipcbiAqIENoZWNrIGlmIExvY2FsIGlzIGN1cnJlbnRseSBpbiBkYXJrIG1vZGUuXG4gKlxuICogTG9jYWwgc2V0cyBDU1MgY2xhc3NlcyBvbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ6XG4gKiAtIC5UaGVtZV9fRGFyayBmb3IgZGFyayBtb2RlXG4gKiAtIC5UaGVtZV9fTGlnaHQgZm9yIGxpZ2h0IG1vZGVcbiAqXG4gKiBAcmV0dXJucyB0cnVlIGlmIGRhcmsgbW9kZSBpcyBhY3RpdmUsIGZhbHNlIG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNEYXJrTW9kZSgpOiBib29sZWFuIHtcbiAgLy8gR3VhcmQgZm9yIFNTUi9Ob2RlIGVudmlyb25tZW50XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ1RoZW1lX19EYXJrJyk7XG59XG5cbi8qKlxuICogR2V0IHRoZW1lLWFwcHJvcHJpYXRlIGNvbG9ycyBiYXNlZCBvbiBjdXJyZW50IExvY2FsIHRoZW1lLlxuICpcbiAqIEByZXR1cm5zIFRoZW1lQ29sb3JzIG9iamVjdCB3aXRoIGNvbG9ycyBmb3IgdGhlIGN1cnJlbnQgdGhlbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRoZW1lQ29sb3JzKCk6IFRoZW1lQ29sb3JzIHtcbiAgcmV0dXJuIGlzRGFya01vZGUoKSA/IERBUktfQ09MT1JTIDogTElHSFRfQ09MT1JTO1xufVxuXG4vKipcbiAqIFN1YnNjcmliZSB0byB0aGVtZSBjaGFuZ2VzIHZpYSBNdXRhdGlvbk9ic2VydmVyLlxuICpcbiAqIExvY2FsIHRvZ2dsZXMgQ1NTIGNsYXNzZXMgb24gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHdoZW4gdGhlbWUgY2hhbmdlcy5cbiAqIFRoaXMgZnVuY3Rpb24gd2F0Y2hlcyBmb3IgdGhvc2UgY2hhbmdlcyBhbmQgY2FsbHMgdGhlIGNhbGxiYWNrLlxuICpcbiAqIEBwYXJhbSBjYWxsYmFjayBGdW5jdGlvbiBjYWxsZWQgd2hlbiB0aGVtZSBjaGFuZ2VzXG4gKiBAcmV0dXJucyBDbGVhbnVwIGZ1bmN0aW9uIHRvIHN0b3Agb2JzZXJ2aW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvblRoZW1lQ2hhbmdlKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogKCkgPT4gdm9pZCB7XG4gIC8vIEd1YXJkIGZvciBTU1IvTm9kZSBlbnZpcm9ubWVudFxuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiAoKSA9PiB7fTtcbiAgfVxuXG4gIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zKSB7XG4gICAgICBpZiAobXV0YXRpb24uYXR0cmlidXRlTmFtZSA9PT0gJ2NsYXNzJykge1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHtcbiAgICBhdHRyaWJ1dGVzOiB0cnVlLFxuICAgIGF0dHJpYnV0ZUZpbHRlcjogWydjbGFzcyddLFxuICB9KTtcblxuICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xufVxuXG4vKipcbiAqIEV4cG9ydCBjb2xvciBjb25zdGFudHMgZm9yIGRpcmVjdCBhY2Nlc3MgaWYgbmVlZGVkLlxuICovXG5leHBvcnQgeyBMSUdIVF9DT0xPUlMsIERBUktfQ09MT1JTIH07XG4iXX0=
@@ -0,0 +1,298 @@
1
+ /**
2
+ * MCP Server Types
3
+ */
4
+ export interface McpConnectionInfo {
5
+ url: string;
6
+ authToken: string;
7
+ port: number;
8
+ version: string;
9
+ tools: string[];
10
+ }
11
+ export interface McpServerConfig {
12
+ port: number;
13
+ authToken?: string;
14
+ }
15
+ export interface McpServerStatus {
16
+ running: boolean;
17
+ port: number;
18
+ uptime: number;
19
+ error?: string;
20
+ }
21
+ export interface McpToolDefinition {
22
+ name: string;
23
+ description: string;
24
+ inputSchema: {
25
+ type: 'object';
26
+ properties: Record<string, unknown>;
27
+ required?: string[];
28
+ };
29
+ }
30
+ export interface McpToolResult {
31
+ content: Array<{
32
+ type: 'text';
33
+ text: string;
34
+ }>;
35
+ isError?: boolean;
36
+ }
37
+ export interface McpRequest {
38
+ jsonrpc: '2.0';
39
+ id: number | string;
40
+ method: string;
41
+ params?: {
42
+ name?: string;
43
+ arguments?: Record<string, unknown>;
44
+ };
45
+ }
46
+ export interface McpResponse {
47
+ jsonrpc: '2.0';
48
+ id: number | string;
49
+ result?: unknown;
50
+ error?: {
51
+ code: number;
52
+ message: string;
53
+ data?: unknown;
54
+ };
55
+ }
56
+ export interface LocalServices {
57
+ siteData: {
58
+ getSites(): any[];
59
+ getSite(id: string): any | undefined;
60
+ updateSite?(siteID: string, site: Partial<{
61
+ name: string;
62
+ xdebugEnabled: boolean;
63
+ }>): void;
64
+ };
65
+ siteProcessManager: {
66
+ start(site: any): Promise<void>;
67
+ stop(site: any): Promise<void>;
68
+ restart(site: any): Promise<void>;
69
+ getSiteStatus(site: any): Promise<string>;
70
+ };
71
+ wpCli: {
72
+ run(site: any, args: string[], opts?: any): Promise<string | null>;
73
+ };
74
+ deleteSite: {
75
+ deleteSite(opts: {
76
+ site: any;
77
+ trashFiles: boolean;
78
+ updateHosts: boolean;
79
+ }): Promise<void>;
80
+ };
81
+ addSite: {
82
+ addSite(opts: {
83
+ newSiteInfo: {
84
+ siteName: string;
85
+ siteDomain: string;
86
+ sitePath?: string;
87
+ multiSite?: 'no' | 'ms-subdir' | 'ms-subdomain';
88
+ phpVersion?: string;
89
+ webServer?: 'nginx' | 'apache';
90
+ database?: 'mysql' | 'mariadb';
91
+ };
92
+ wpCredentials?: {
93
+ adminUsername?: string;
94
+ adminPassword?: string;
95
+ adminEmail?: string;
96
+ };
97
+ goToSite?: boolean;
98
+ }): Promise<any>;
99
+ };
100
+ localLogger: {
101
+ info(message: string, ...args: any[]): void;
102
+ warn(message: string, ...args: any[]): void;
103
+ error(message: string, ...args: any[]): void;
104
+ debug(message: string, ...args: any[]): void;
105
+ };
106
+ browserManager?: {
107
+ openURL(url: string): Promise<void>;
108
+ };
109
+ cloneSite?: (site: any, newName: string) => Promise<any>;
110
+ exportSite?: (site: any, outputPath: string) => Promise<void>;
111
+ blueprints?: {
112
+ getBlueprints(): Promise<any[]>;
113
+ saveBlueprint(site: any, options: {
114
+ name: string;
115
+ description?: string;
116
+ }): Promise<any>;
117
+ };
118
+ adminer?: {
119
+ open(site: any): Promise<void>;
120
+ };
121
+ x509Cert?: {
122
+ trustCert(site: any): Promise<void>;
123
+ };
124
+ siteProvisioner?: {
125
+ swapService(site: any, role: string, serviceName: string, serviceBinVersion: string, restartRouter?: boolean): Promise<void>;
126
+ };
127
+ importSite?: {
128
+ run(settings: {
129
+ importType?: string;
130
+ zipPath: string;
131
+ siteName: string;
132
+ }): Promise<any>;
133
+ };
134
+ lightningServices?: {
135
+ getRegisteredServices(role?: string): Record<string, Record<string, any>>;
136
+ getServices(role?: string): Promise<Record<string, Record<string, any>>>;
137
+ };
138
+ wpeOAuth?: {
139
+ getAccessToken(): Promise<string | undefined>;
140
+ authenticate(): Promise<{
141
+ accessToken: string;
142
+ refreshToken: string;
143
+ idToken: string;
144
+ }>;
145
+ clearTokens(): Promise<void>;
146
+ };
147
+ capi?: {
148
+ getInstallList(): Promise<any[] | undefined>;
149
+ getAccountList(): Promise<any[] | undefined>;
150
+ getCurrentUser(): Promise<{
151
+ id?: string;
152
+ email?: string;
153
+ } | undefined>;
154
+ getInstall(installId: string): Promise<{
155
+ id: string;
156
+ name: string;
157
+ environment?: string;
158
+ cname?: string;
159
+ } | undefined>;
160
+ };
161
+ wpePush?: {
162
+ push(args: {
163
+ includeSql?: boolean;
164
+ wpengineInstallName: string;
165
+ wpengineInstallId: string;
166
+ wpengineSiteId: string;
167
+ wpenginePrimaryDomain: string;
168
+ localSiteId: string;
169
+ environment?: string;
170
+ files?: string[];
171
+ isMagicSync?: boolean;
172
+ }): Promise<void>;
173
+ pushDatabase(args: {
174
+ wpengineInstallName: string;
175
+ localSiteId: string;
176
+ wpenginePrimaryDomain: string;
177
+ }): Promise<void>;
178
+ };
179
+ wpePull?: {
180
+ pull(args: {
181
+ includeSql?: boolean;
182
+ wpengineInstallName: string;
183
+ wpengineInstallId: string;
184
+ wpengineSiteId: string;
185
+ wpenginePrimaryDomain: string;
186
+ localSiteId: string;
187
+ environment?: string;
188
+ files?: string[];
189
+ isMagicSync?: boolean;
190
+ }): Promise<void>;
191
+ pullDatabase(args: {
192
+ wpengineInstallName: string;
193
+ localSiteId: string;
194
+ wpenginePrimaryDomain: string;
195
+ }): Promise<void>;
196
+ };
197
+ connectHistory?: {
198
+ getEvents(siteId: string): Array<{
199
+ remoteInstallName?: string;
200
+ timestamp: number;
201
+ environment: string;
202
+ direction: 'push' | 'pull';
203
+ status?: 'started' | 'failed' | 'completed';
204
+ }>;
205
+ };
206
+ wpeConnectBase?: {
207
+ listModifications(args: {
208
+ connectArgs: {
209
+ wpengineInstallName: string;
210
+ wpengineInstallId: string;
211
+ wpengineSiteId: string;
212
+ wpenginePrimaryDomain: string;
213
+ localSiteId: string;
214
+ };
215
+ direction: 'push' | 'pull';
216
+ includeIgnored?: boolean;
217
+ }): Promise<Array<{
218
+ path: string;
219
+ type: string;
220
+ size: number;
221
+ mtime: number;
222
+ instruction: string;
223
+ }>>;
224
+ };
225
+ backup?: {
226
+ createBackup(args: {
227
+ site: any;
228
+ provider: 'dropbox' | 'googleDrive';
229
+ accountId: string;
230
+ note?: string;
231
+ }): Promise<{
232
+ snapshotId: string;
233
+ timestamp: string;
234
+ }>;
235
+ listBackups(args: {
236
+ site: any;
237
+ provider: 'dropbox' | 'googleDrive';
238
+ accountId: string;
239
+ }): Promise<Array<{
240
+ snapshotId: string;
241
+ timestamp: string;
242
+ note?: string;
243
+ siteDomain: string;
244
+ services: Record<string, string>;
245
+ }>>;
246
+ restoreBackup(args: {
247
+ site: any;
248
+ provider: 'dropbox' | 'googleDrive';
249
+ accountId: string;
250
+ snapshotId: string;
251
+ }): Promise<void>;
252
+ deleteBackup(args: {
253
+ site: any;
254
+ provider: 'dropbox' | 'googleDrive';
255
+ accountId: string;
256
+ snapshotId: string;
257
+ }): Promise<void>;
258
+ downloadZip(args: {
259
+ site: any;
260
+ provider: 'dropbox' | 'googleDrive';
261
+ accountId: string;
262
+ snapshotId: string;
263
+ }): Promise<string>;
264
+ editBackupDescription(args: {
265
+ site: any;
266
+ provider: 'dropbox' | 'googleDrive';
267
+ accountId: string;
268
+ snapshotId: string;
269
+ newDescription: string;
270
+ }): Promise<void>;
271
+ };
272
+ dropbox?: {
273
+ isAuthenticated(accountId: string): Promise<boolean>;
274
+ getAccount(accountId: string): Promise<{
275
+ id: string;
276
+ email: string;
277
+ } | undefined>;
278
+ };
279
+ googleDrive?: {
280
+ isAuthenticated(accountId: string): Promise<boolean>;
281
+ getAccount(accountId: string): Promise<{
282
+ id: string;
283
+ email: string;
284
+ } | undefined>;
285
+ };
286
+ featureFlags?: {
287
+ isFeatureEnabled(flag: string): boolean;
288
+ };
289
+ userData?: {
290
+ get(opts: {
291
+ name: string;
292
+ defaults: any;
293
+ includeCreatedTime?: boolean;
294
+ persistDefaults?: boolean;
295
+ persistDefaultsEncrypted?: boolean;
296
+ }): any;
297
+ };
298
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * MCP Server Types
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTUNQIFNlcnZlciBUeXBlc1xuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTWNwQ29ubmVjdGlvbkluZm8ge1xuICB1cmw6IHN0cmluZztcbiAgYXV0aFRva2VuOiBzdHJpbmc7XG4gIHBvcnQ6IG51bWJlcjtcbiAgdmVyc2lvbjogc3RyaW5nO1xuICB0b29sczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWNwU2VydmVyQ29uZmlnIHtcbiAgcG9ydDogbnVtYmVyO1xuICBhdXRoVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWNwU2VydmVyU3RhdHVzIHtcbiAgcnVubmluZzogYm9vbGVhbjtcbiAgcG9ydDogbnVtYmVyO1xuICB1cHRpbWU6IG51bWJlcjtcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWNwVG9vbERlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGlucHV0U2NoZW1hOiB7XG4gICAgdHlwZTogJ29iamVjdCc7XG4gICAgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgcmVxdWlyZWQ/OiBzdHJpbmdbXTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNY3BUb29sUmVzdWx0IHtcbiAgY29udGVudDogQXJyYXk8e1xuICAgIHR5cGU6ICd0ZXh0JztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gIH0+O1xuICBpc0Vycm9yPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNY3BSZXF1ZXN0IHtcbiAganNvbnJwYzogJzIuMCc7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIG1ldGhvZDogc3RyaW5nO1xuICBwYXJhbXM/OiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBhcmd1bWVudHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNY3BSZXNwb25zZSB7XG4gIGpzb25ycGM6ICcyLjAnO1xuICBpZDogbnVtYmVyIHwgc3RyaW5nO1xuICByZXN1bHQ/OiB1bmtub3duO1xuICBlcnJvcj86IHtcbiAgICBjb2RlOiBudW1iZXI7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGRhdGE/OiB1bmtub3duO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsU2VydmljZXMge1xuICBzaXRlRGF0YToge1xuICAgIGdldFNpdGVzKCk6IGFueVtdO1xuICAgIGdldFNpdGUoaWQ6IHN0cmluZyk6IGFueSB8IHVuZGVmaW5lZDtcbiAgICB1cGRhdGVTaXRlPyhzaXRlSUQ6IHN0cmluZywgc2l0ZTogUGFydGlhbDx7IG5hbWU6IHN0cmluZzsgeGRlYnVnRW5hYmxlZDogYm9vbGVhbiB9Pik6IHZvaWQ7XG4gIH07XG4gIHNpdGVQcm9jZXNzTWFuYWdlcjoge1xuICAgIHN0YXJ0KHNpdGU6IGFueSk6IFByb21pc2U8dm9pZD47XG4gICAgc3RvcChzaXRlOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHJlc3RhcnQoc2l0ZTogYW55KTogUHJvbWlzZTx2b2lkPjtcbiAgICBnZXRTaXRlU3RhdHVzKHNpdGU6IGFueSk6IFByb21pc2U8c3RyaW5nPjtcbiAgfTtcbiAgd3BDbGk6IHtcbiAgICBydW4oc2l0ZTogYW55LCBhcmdzOiBzdHJpbmdbXSwgb3B0cz86IGFueSk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG4gIH07XG4gIGRlbGV0ZVNpdGU6IHtcbiAgICBkZWxldGVTaXRlKG9wdHM6IHsgc2l0ZTogYW55OyB0cmFzaEZpbGVzOiBib29sZWFuOyB1cGRhdGVIb3N0czogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPjtcbiAgfTtcbiAgYWRkU2l0ZToge1xuICAgIGFkZFNpdGUob3B0czoge1xuICAgICAgbmV3U2l0ZUluZm86IHtcbiAgICAgICAgc2l0ZU5hbWU6IHN0cmluZztcbiAgICAgICAgc2l0ZURvbWFpbjogc3RyaW5nO1xuICAgICAgICBzaXRlUGF0aD86IHN0cmluZztcbiAgICAgICAgbXVsdGlTaXRlPzogJ25vJyB8ICdtcy1zdWJkaXInIHwgJ21zLXN1YmRvbWFpbic7XG4gICAgICAgIHBocFZlcnNpb24/OiBzdHJpbmc7XG4gICAgICAgIHdlYlNlcnZlcj86ICduZ2lueCcgfCAnYXBhY2hlJztcbiAgICAgICAgZGF0YWJhc2U/OiAnbXlzcWwnIHwgJ21hcmlhZGInO1xuICAgICAgfTtcbiAgICAgIHdwQ3JlZGVudGlhbHM/OiB7XG4gICAgICAgIGFkbWluVXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgICAgIGFkbWluUGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgICAgIGFkbWluRW1haWw/OiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgZ29Ub1NpdGU/OiBib29sZWFuO1xuICAgIH0pOiBQcm9taXNlPGFueT47XG4gIH07XG4gIGxvY2FsTG9nZ2VyOiB7XG4gICAgaW5mbyhtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogdm9pZDtcbiAgICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuICAgIGRlYnVnKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuICB9O1xuICAvLyBPcHRpb25hbCBzZXJ2aWNlcyBmb3IgZXh0ZW5kZWQgZnVuY3Rpb25hbGl0eVxuICBicm93c2VyTWFuYWdlcj86IHtcbiAgICBvcGVuVVJMKHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbiAgfTtcbiAgY2xvbmVTaXRlPzogKHNpdGU6IGFueSwgbmV3TmFtZTogc3RyaW5nKSA9PiBQcm9taXNlPGFueT47XG4gIGV4cG9ydFNpdGU/OiAoc2l0ZTogYW55LCBvdXRwdXRQYXRoOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIGJsdWVwcmludHM/OiB7XG4gICAgZ2V0Qmx1ZXByaW50cygpOiBQcm9taXNlPGFueVtdPjtcbiAgICBzYXZlQmx1ZXByaW50KHNpdGU6IGFueSwgb3B0aW9uczogeyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0pOiBQcm9taXNlPGFueT47XG4gIH07XG4gIC8vIFBoYXNlIDggc2VydmljZXNcbiAgYWRtaW5lcj86IHtcbiAgICBvcGVuKHNpdGU6IGFueSk6IFByb21pc2U8dm9pZD47XG4gIH07XG4gIHg1MDlDZXJ0Pzoge1xuICAgIHRydXN0Q2VydChzaXRlOiBhbnkpOiBQcm9taXNlPHZvaWQ+O1xuICB9O1xuICBzaXRlUHJvdmlzaW9uZXI/OiB7XG4gICAgc3dhcFNlcnZpY2UoXG4gICAgICBzaXRlOiBhbnksXG4gICAgICByb2xlOiBzdHJpbmcsXG4gICAgICBzZXJ2aWNlTmFtZTogc3RyaW5nLFxuICAgICAgc2VydmljZUJpblZlcnNpb246IHN0cmluZyxcbiAgICAgIHJlc3RhcnRSb3V0ZXI/OiBib29sZWFuXG4gICAgKTogUHJvbWlzZTx2b2lkPjtcbiAgfTtcbiAgaW1wb3J0U2l0ZT86IHtcbiAgICBydW4oc2V0dGluZ3M6IHsgaW1wb3J0VHlwZT86IHN0cmluZzsgemlwUGF0aDogc3RyaW5nOyBzaXRlTmFtZTogc3RyaW5nIH0pOiBQcm9taXNlPGFueT47XG4gIH07XG4gIC8vIFBoYXNlIDkgc2VydmljZXNcbiAgbGlnaHRuaW5nU2VydmljZXM/OiB7XG4gICAgZ2V0UmVnaXN0ZXJlZFNlcnZpY2VzKHJvbGU/OiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcbiAgICBnZXRTZXJ2aWNlcyhyb2xlPzogc3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pj47XG4gIH07XG4gIC8vIFBoYXNlIDExOiBXUCBFbmdpbmUgQ29ubmVjdCBzZXJ2aWNlc1xuICB3cGVPQXV0aD86IHtcbiAgICBnZXRBY2Nlc3NUb2tlbigpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD47XG4gICAgYXV0aGVudGljYXRlKCk6IFByb21pc2U8eyBhY2Nlc3NUb2tlbjogc3RyaW5nOyByZWZyZXNoVG9rZW46IHN0cmluZzsgaWRUb2tlbjogc3RyaW5nIH0+O1xuICAgIGNsZWFyVG9rZW5zKCk6IFByb21pc2U8dm9pZD47XG4gIH07XG4gIGNhcGk/OiB7XG4gICAgZ2V0SW5zdGFsbExpc3QoKTogUHJvbWlzZTxhbnlbXSB8IHVuZGVmaW5lZD47XG4gICAgZ2V0QWNjb3VudExpc3QoKTogUHJvbWlzZTxhbnlbXSB8IHVuZGVmaW5lZD47XG4gICAgZ2V0Q3VycmVudFVzZXIoKTogUHJvbWlzZTx7IGlkPzogc3RyaW5nOyBlbWFpbD86IHN0cmluZyB9IHwgdW5kZWZpbmVkPjtcbiAgICBnZXRJbnN0YWxsKFxuICAgICAgaW5zdGFsbElkOiBzdHJpbmdcbiAgICApOiBQcm9taXNlPHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBlbnZpcm9ubWVudD86IHN0cmluZzsgY25hbWU/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZD47XG4gIH07XG4gIC8vIFBoYXNlIDExYzogU3luYyBzZXJ2aWNlc1xuICB3cGVQdXNoPzoge1xuICAgIHB1c2goYXJnczoge1xuICAgICAgaW5jbHVkZVNxbD86IGJvb2xlYW47XG4gICAgICB3cGVuZ2luZUluc3RhbGxOYW1lOiBzdHJpbmc7XG4gICAgICB3cGVuZ2luZUluc3RhbGxJZDogc3RyaW5nO1xuICAgICAgd3BlbmdpbmVTaXRlSWQ6IHN0cmluZztcbiAgICAgIHdwZW5naW5lUHJpbWFyeURvbWFpbjogc3RyaW5nO1xuICAgICAgbG9jYWxTaXRlSWQ6IHN0cmluZztcbiAgICAgIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAgICAgZmlsZXM/OiBzdHJpbmdbXTtcbiAgICAgIGlzTWFnaWNTeW5jPzogYm9vbGVhbjtcbiAgICB9KTogUHJvbWlzZTx2b2lkPjtcbiAgICBwdXNoRGF0YWJhc2UoYXJnczoge1xuICAgICAgd3BlbmdpbmVJbnN0YWxsTmFtZTogc3RyaW5nO1xuICAgICAgbG9jYWxTaXRlSWQ6IHN0cmluZztcbiAgICAgIHdwZW5naW5lUHJpbWFyeURvbWFpbjogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPHZvaWQ+O1xuICB9O1xuICB3cGVQdWxsPzoge1xuICAgIHB1bGwoYXJnczoge1xuICAgICAgaW5jbHVkZVNxbD86IGJvb2xlYW47XG4gICAgICB3cGVuZ2luZUluc3RhbGxOYW1lOiBzdHJpbmc7XG4gICAgICB3cGVuZ2luZUluc3RhbGxJZDogc3RyaW5nO1xuICAgICAgd3BlbmdpbmVTaXRlSWQ6IHN0cmluZztcbiAgICAgIHdwZW5naW5lUHJpbWFyeURvbWFpbjogc3RyaW5nO1xuICAgICAgbG9jYWxTaXRlSWQ6IHN0cmluZztcbiAgICAgIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAgICAgZmlsZXM/OiBzdHJpbmdbXTtcbiAgICAgIGlzTWFnaWNTeW5jPzogYm9vbGVhbjtcbiAgICB9KTogUHJvbWlzZTx2b2lkPjtcbiAgICBwdWxsRGF0YWJhc2UoYXJnczoge1xuICAgICAgd3BlbmdpbmVJbnN0YWxsTmFtZTogc3RyaW5nO1xuICAgICAgbG9jYWxTaXRlSWQ6IHN0cmluZztcbiAgICAgIHdwZW5naW5lUHJpbWFyeURvbWFpbjogc3RyaW5nO1xuICAgIH0pOiBQcm9taXNlPHZvaWQ+O1xuICB9O1xuICBjb25uZWN0SGlzdG9yeT86IHtcbiAgICBnZXRFdmVudHMoc2l0ZUlkOiBzdHJpbmcpOiBBcnJheTx7XG4gICAgICByZW1vdGVJbnN0YWxsTmFtZT86IHN0cmluZztcbiAgICAgIHRpbWVzdGFtcDogbnVtYmVyO1xuICAgICAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgICAgIGRpcmVjdGlvbjogJ3B1c2gnIHwgJ3B1bGwnO1xuICAgICAgc3RhdHVzPzogJ3N0YXJ0ZWQnIHwgJ2ZhaWxlZCcgfCAnY29tcGxldGVkJztcbiAgICB9PjtcbiAgfTtcbiAgLy8gTWFnaWMgU3luYyBjaGFuZ2UgZGV0ZWN0aW9uXG4gIHdwZUNvbm5lY3RCYXNlPzoge1xuICAgIGxpc3RNb2RpZmljYXRpb25zKGFyZ3M6IHtcbiAgICAgIGNvbm5lY3RBcmdzOiB7XG4gICAgICAgIHdwZW5naW5lSW5zdGFsbE5hbWU6IHN0cmluZztcbiAgICAgICAgd3BlbmdpbmVJbnN0YWxsSWQ6IHN0cmluZztcbiAgICAgICAgd3BlbmdpbmVTaXRlSWQ6IHN0cmluZztcbiAgICAgICAgd3BlbmdpbmVQcmltYXJ5RG9tYWluOiBzdHJpbmc7XG4gICAgICAgIGxvY2FsU2l0ZUlkOiBzdHJpbmc7XG4gICAgICB9O1xuICAgICAgZGlyZWN0aW9uOiAncHVzaCcgfCAncHVsbCc7XG4gICAgICBpbmNsdWRlSWdub3JlZD86IGJvb2xlYW47XG4gICAgfSk6IFByb21pc2U8XG4gICAgICBBcnJheTx7XG4gICAgICAgIHBhdGg6IHN0cmluZztcbiAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICBzaXplOiBudW1iZXI7XG4gICAgICAgIG10aW1lOiBudW1iZXI7XG4gICAgICAgIGluc3RydWN0aW9uOiBzdHJpbmc7XG4gICAgICB9PlxuICAgID47XG4gIH07XG4gIC8vIFBoYXNlIDEwOiBDbG91ZCBCYWNrdXAgc2VydmljZXNcbiAgYmFja3VwPzoge1xuICAgIGNyZWF0ZUJhY2t1cChhcmdzOiB7XG4gICAgICBzaXRlOiBhbnk7XG4gICAgICBwcm92aWRlcjogJ2Ryb3Bib3gnIHwgJ2dvb2dsZURyaXZlJztcbiAgICAgIGFjY291bnRJZDogc3RyaW5nO1xuICAgICAgbm90ZT86IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTx7IHNuYXBzaG90SWQ6IHN0cmluZzsgdGltZXN0YW1wOiBzdHJpbmcgfT47XG4gICAgbGlzdEJhY2t1cHMoYXJnczoge1xuICAgICAgc2l0ZTogYW55O1xuICAgICAgcHJvdmlkZXI6ICdkcm9wYm94JyB8ICdnb29nbGVEcml2ZSc7XG4gICAgICBhY2NvdW50SWQ6IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTxcbiAgICAgIEFycmF5PHtcbiAgICAgICAgc25hcHNob3RJZDogc3RyaW5nO1xuICAgICAgICB0aW1lc3RhbXA6IHN0cmluZztcbiAgICAgICAgbm90ZT86IHN0cmluZztcbiAgICAgICAgc2l0ZURvbWFpbjogc3RyaW5nO1xuICAgICAgICBzZXJ2aWNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICAgIH0+XG4gICAgPjtcbiAgICByZXN0b3JlQmFja3VwKGFyZ3M6IHtcbiAgICAgIHNpdGU6IGFueTtcbiAgICAgIHByb3ZpZGVyOiAnZHJvcGJveCcgfCAnZ29vZ2xlRHJpdmUnO1xuICAgICAgYWNjb3VudElkOiBzdHJpbmc7XG4gICAgICBzbmFwc2hvdElkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD47XG4gICAgZGVsZXRlQmFja3VwKGFyZ3M6IHtcbiAgICAgIHNpdGU6IGFueTtcbiAgICAgIHByb3ZpZGVyOiAnZHJvcGJveCcgfCAnZ29vZ2xlRHJpdmUnO1xuICAgICAgYWNjb3VudElkOiBzdHJpbmc7XG4gICAgICBzbmFwc2hvdElkOiBzdHJpbmc7XG4gICAgfSk6IFByb21pc2U8dm9pZD47XG4gICAgZG93bmxvYWRaaXAoYXJnczoge1xuICAgICAgc2l0ZTogYW55O1xuICAgICAgcHJvdmlkZXI6ICdkcm9wYm94JyB8ICdnb29nbGVEcml2ZSc7XG4gICAgICBhY2NvdW50SWQ6IHN0cmluZztcbiAgICAgIHNuYXBzaG90SWQ6IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTxzdHJpbmc+OyAvLyBSZXR1cm5zIGZpbGUgcGF0aFxuICAgIGVkaXRCYWNrdXBEZXNjcmlwdGlvbihhcmdzOiB7XG4gICAgICBzaXRlOiBhbnk7XG4gICAgICBwcm92aWRlcjogJ2Ryb3Bib3gnIHwgJ2dvb2dsZURyaXZlJztcbiAgICAgIGFjY291bnRJZDogc3RyaW5nO1xuICAgICAgc25hcHNob3RJZDogc3RyaW5nO1xuICAgICAgbmV3RGVzY3JpcHRpb246IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTx2b2lkPjtcbiAgfTtcbiAgZHJvcGJveD86IHtcbiAgICBpc0F1dGhlbnRpY2F0ZWQoYWNjb3VudElkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIGdldEFjY291bnQoYWNjb3VudElkOiBzdHJpbmcpOiBQcm9taXNlPHsgaWQ6IHN0cmluZzsgZW1haWw6IHN0cmluZyB9IHwgdW5kZWZpbmVkPjtcbiAgfTtcbiAgZ29vZ2xlRHJpdmU/OiB7XG4gICAgaXNBdXRoZW50aWNhdGVkKGFjY291bnRJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPjtcbiAgICBnZXRBY2NvdW50KGFjY291bnRJZDogc3RyaW5nKTogUHJvbWlzZTx7IGlkOiBzdHJpbmc7IGVtYWlsOiBzdHJpbmcgfSB8IHVuZGVmaW5lZD47XG4gIH07XG4gIGZlYXR1cmVGbGFncz86IHtcbiAgICBpc0ZlYXR1cmVFbmFibGVkKGZsYWc6IHN0cmluZyk6IGJvb2xlYW47XG4gIH07XG4gIC8vIFVzZXJEYXRhIGZvciByZWFkaW5nIGNsb3VkIHN0b3JhZ2UgYWNjb3VudHNcbiAgdXNlckRhdGE/OiB7XG4gICAgZ2V0KG9wdHM6IHtcbiAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgIGRlZmF1bHRzOiBhbnk7XG4gICAgICBpbmNsdWRlQ3JlYXRlZFRpbWU/OiBib29sZWFuO1xuICAgICAgcGVyc2lzdERlZmF1bHRzPzogYm9vbGVhbjtcbiAgICAgIHBlcnNpc3REZWZhdWx0c0VuY3J5cHRlZD86IGJvb2xlYW47XG4gICAgfSk6IGFueTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Connection Info Manager
3
+ * Handles saving/loading MCP connection info for external tools
4
+ */
5
+ import { McpConnectionInfo } from '../../common/types';
6
+ export declare class ConnectionInfoManager {
7
+ private logger;
8
+ constructor(logger: any);
9
+ /**
10
+ * Get platform-specific path for connection info file
11
+ */
12
+ getFilePath(): string;
13
+ /**
14
+ * Save connection info to file
15
+ */
16
+ save(info: McpConnectionInfo): Promise<void>;
17
+ /**
18
+ * Load connection info from file
19
+ */
20
+ load(): Promise<McpConnectionInfo | null>;
21
+ /**
22
+ * Delete connection info file
23
+ */
24
+ delete(): Promise<void>;
25
+ }