axhub-mcp-bridge 1.0.30

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 (53) hide show
  1. package/dist/README.md +25 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.js +158 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/constant/index.d.ts +38 -0
  6. package/dist/constant/index.js +47 -0
  7. package/dist/constant/index.js.map +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.js +35 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/mcp/mcp-server-stdio.d.ts +50 -0
  12. package/dist/mcp/mcp-server-stdio.js +135 -0
  13. package/dist/mcp/mcp-server-stdio.js.map +1 -0
  14. package/dist/mcp/mcp-server.d.ts +25 -0
  15. package/dist/mcp/mcp-server.js +23 -0
  16. package/dist/mcp/mcp-server.js.map +1 -0
  17. package/dist/mcp/register-tools.d.ts +2 -0
  18. package/dist/mcp/register-tools.js +51 -0
  19. package/dist/mcp/register-tools.js.map +1 -0
  20. package/dist/mcp/stdio-config.json +3 -0
  21. package/dist/native-messaging-host.d.ts +38 -0
  22. package/dist/native-messaging-host.js +241 -0
  23. package/dist/native-messaging-host.js.map +1 -0
  24. package/dist/run_host.bat +95 -0
  25. package/dist/run_host.sh +141 -0
  26. package/dist/scripts/build.d.ts +1 -0
  27. package/dist/scripts/build.js +119 -0
  28. package/dist/scripts/build.js.map +1 -0
  29. package/dist/scripts/constant.d.ts +11 -0
  30. package/dist/scripts/constant.js +45 -0
  31. package/dist/scripts/constant.js.map +1 -0
  32. package/dist/scripts/postinstall.d.ts +2 -0
  33. package/dist/scripts/postinstall.js +231 -0
  34. package/dist/scripts/postinstall.js.map +1 -0
  35. package/dist/scripts/register-dev.d.ts +1 -0
  36. package/dist/scripts/register-dev.js +5 -0
  37. package/dist/scripts/register-dev.js.map +1 -0
  38. package/dist/scripts/register.d.ts +2 -0
  39. package/dist/scripts/register.js +22 -0
  40. package/dist/scripts/register.js.map +1 -0
  41. package/dist/scripts/utils.d.ts +36 -0
  42. package/dist/scripts/utils.js +353 -0
  43. package/dist/scripts/utils.js.map +1 -0
  44. package/dist/server/index.d.ts +24 -0
  45. package/dist/server/index.js +266 -0
  46. package/dist/server/index.js.map +1 -0
  47. package/dist/shared.d.ts +62 -0
  48. package/dist/shared.js +209 -0
  49. package/dist/shared.js.map +1 -0
  50. package/dist/util/logger.d.ts +1 -0
  51. package/dist/util/logger.js +43 -0
  52. package/dist/util/logger.js.map +1 -0
  53. package/package.json +70 -0
@@ -0,0 +1,38 @@
1
+ import { Server } from './server';
2
+ export declare class NativeMessagingHost {
3
+ private associatedServer;
4
+ private pendingRequests;
5
+ setServer(serverInstance: Server): void;
6
+ start(): void;
7
+ private setupMessageHandling;
8
+ private handleMessage;
9
+ /**
10
+ * Send request to Chrome and wait for response
11
+ * @param messagePayload Data to send to Chrome
12
+ * @param timeoutMs Timeout for waiting response (milliseconds)
13
+ * @returns Promise, resolves to Chrome's returned payload on success, rejects on failure
14
+ */
15
+ sendRequestToExtensionAndWait(messagePayload: any, messageType?: string, timeoutMs?: number): Promise<any>;
16
+ /**
17
+ * Start Fastify server (now accepts Server instance)
18
+ */
19
+ private startServer;
20
+ /**
21
+ * Stop Fastify server
22
+ */
23
+ private stopServer;
24
+ /**
25
+ * Send message to Chrome extension
26
+ */
27
+ sendMessage(message: any): void;
28
+ /**
29
+ * Send error message to Chrome extension (mainly for sending non-request-response type errors)
30
+ */
31
+ private sendError;
32
+ /**
33
+ * Clean up resources
34
+ */
35
+ private cleanup;
36
+ }
37
+ declare const nativeMessagingHostInstance: NativeMessagingHost;
38
+ export default nativeMessagingHostInstance;
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NativeMessagingHost = void 0;
4
+ const process_1 = require("process");
5
+ const uuid_1 = require("uuid");
6
+ const shared_1 = require("./shared");
7
+ const constant_1 = require("./constant");
8
+ class NativeMessagingHost {
9
+ constructor() {
10
+ this.associatedServer = null;
11
+ this.pendingRequests = new Map();
12
+ }
13
+ setServer(serverInstance) {
14
+ this.associatedServer = serverInstance;
15
+ }
16
+ // add message handler to wait for start server
17
+ start() {
18
+ try {
19
+ this.setupMessageHandling();
20
+ }
21
+ catch (error) {
22
+ process.exit(1);
23
+ }
24
+ }
25
+ setupMessageHandling() {
26
+ let buffer = Buffer.alloc(0);
27
+ let expectedLength = -1;
28
+ process_1.stdin.on('readable', () => {
29
+ let chunk;
30
+ while ((chunk = process_1.stdin.read()) !== null) {
31
+ buffer = Buffer.concat([buffer, chunk]);
32
+ if (expectedLength === -1 && buffer.length >= 4) {
33
+ expectedLength = buffer.readUInt32LE(0);
34
+ buffer = buffer.slice(4);
35
+ }
36
+ if (expectedLength !== -1 && buffer.length >= expectedLength) {
37
+ const messageBuffer = buffer.slice(0, expectedLength);
38
+ buffer = buffer.slice(expectedLength);
39
+ try {
40
+ const message = JSON.parse(messageBuffer.toString());
41
+ this.handleMessage(message);
42
+ }
43
+ catch (error) {
44
+ this.sendError(`Failed to parse message: ${error.message}`);
45
+ }
46
+ expectedLength = -1; // reset to get next data
47
+ }
48
+ }
49
+ });
50
+ process_1.stdin.on('end', () => {
51
+ this.cleanup();
52
+ });
53
+ process_1.stdin.on('error', () => {
54
+ this.cleanup();
55
+ });
56
+ }
57
+ async handleMessage(message) {
58
+ var _a;
59
+ if (!message || typeof message !== 'object') {
60
+ this.sendError('Invalid message format');
61
+ return;
62
+ }
63
+ if (message.responseToRequestId) {
64
+ const requestId = message.responseToRequestId;
65
+ const pending = this.pendingRequests.get(requestId);
66
+ if (pending) {
67
+ clearTimeout(pending.timeoutId);
68
+ if (message.error) {
69
+ pending.reject(new Error(message.error));
70
+ }
71
+ else {
72
+ pending.resolve(message.payload);
73
+ }
74
+ this.pendingRequests.delete(requestId);
75
+ }
76
+ else {
77
+ // just ignore
78
+ }
79
+ return;
80
+ }
81
+ // Handle directive messages from Chrome
82
+ try {
83
+ switch (message.type) {
84
+ case shared_1.NativeMessageType.START:
85
+ await this.startServer(((_a = message.payload) === null || _a === void 0 ? void 0 : _a.port) || 3000);
86
+ break;
87
+ case shared_1.NativeMessageType.STOP:
88
+ await this.stopServer();
89
+ break;
90
+ // Keep ping/pong for simple liveness detection, but this differs from request-response pattern
91
+ case 'ping_from_extension':
92
+ this.sendMessage({ type: 'pong_to_extension' });
93
+ break;
94
+ default:
95
+ // Double check when message type is not supported
96
+ if (!message.responseToRequestId) {
97
+ this.sendError(`Unknown message type or non-response message: ${message.type || 'no type'}`);
98
+ }
99
+ }
100
+ }
101
+ catch (error) {
102
+ this.sendError(`Failed to handle directive message: ${error.message}`);
103
+ }
104
+ }
105
+ /**
106
+ * Send request to Chrome and wait for response
107
+ * @param messagePayload Data to send to Chrome
108
+ * @param timeoutMs Timeout for waiting response (milliseconds)
109
+ * @returns Promise, resolves to Chrome's returned payload on success, rejects on failure
110
+ */
111
+ sendRequestToExtensionAndWait(messagePayload, messageType = 'request_data', timeoutMs = constant_1.TIMEOUTS.DEFAULT_REQUEST_TIMEOUT) {
112
+ return new Promise((resolve, reject) => {
113
+ const requestId = (0, uuid_1.v4)(); // Generate unique request ID
114
+ const timeoutId = setTimeout(() => {
115
+ this.pendingRequests.delete(requestId); // Remove from Map after timeout
116
+ reject(new Error(`Request timed out after ${timeoutMs}ms`));
117
+ }, timeoutMs);
118
+ // Store request's resolve/reject functions and timeout ID
119
+ this.pendingRequests.set(requestId, { resolve, reject, timeoutId });
120
+ // Send message with requestId to Chrome
121
+ this.sendMessage({
122
+ type: messageType, // Define a request type, e.g. 'request_data'
123
+ payload: messagePayload,
124
+ requestId: requestId, // <--- Key: include request ID
125
+ });
126
+ });
127
+ }
128
+ /**
129
+ * Start Fastify server (now accepts Server instance)
130
+ */
131
+ async startServer(port) {
132
+ if (!this.associatedServer) {
133
+ this.sendError('Internal error: server instance not set');
134
+ return;
135
+ }
136
+ try {
137
+ if (this.associatedServer.isRunning) {
138
+ this.sendMessage({
139
+ type: shared_1.NativeMessageType.ERROR,
140
+ payload: { message: 'Server is already running' },
141
+ });
142
+ return;
143
+ }
144
+ await this.associatedServer.start(port, this);
145
+ this.sendMessage({
146
+ type: shared_1.NativeMessageType.SERVER_STARTED,
147
+ payload: { port },
148
+ });
149
+ }
150
+ catch (error) {
151
+ this.sendError(`Failed to start server: ${error.message}`);
152
+ }
153
+ }
154
+ /**
155
+ * Stop Fastify server
156
+ */
157
+ async stopServer() {
158
+ if (!this.associatedServer) {
159
+ this.sendError('Internal error: server instance not set');
160
+ return;
161
+ }
162
+ try {
163
+ // Check status through associatedServer
164
+ if (!this.associatedServer.isRunning) {
165
+ this.sendMessage({
166
+ type: shared_1.NativeMessageType.ERROR,
167
+ payload: { message: 'Server is not running' },
168
+ });
169
+ return;
170
+ }
171
+ await this.associatedServer.stop();
172
+ // this.serverStarted = false; // Server should update its own status after successful stop
173
+ this.sendMessage({ type: shared_1.NativeMessageType.SERVER_STOPPED }); // Distinguish from previous 'stopped'
174
+ }
175
+ catch (error) {
176
+ this.sendError(`Failed to stop server: ${error.message}`);
177
+ }
178
+ }
179
+ /**
180
+ * Send message to Chrome extension
181
+ */
182
+ sendMessage(message) {
183
+ try {
184
+ const messageString = JSON.stringify(message);
185
+ const messageBuffer = Buffer.from(messageString);
186
+ const headerBuffer = Buffer.alloc(4);
187
+ headerBuffer.writeUInt32LE(messageBuffer.length, 0);
188
+ // Ensure atomic write
189
+ process_1.stdout.write(Buffer.concat([headerBuffer, messageBuffer]), (err) => {
190
+ if (err) {
191
+ // Consider how to handle write failure, may affect request completion
192
+ }
193
+ else {
194
+ // Message sent successfully, no action needed
195
+ }
196
+ });
197
+ }
198
+ catch (error) {
199
+ // Catch JSON.stringify or Buffer operation errors
200
+ // If preparation stage fails, associated request may never be sent
201
+ // Need to consider whether to reject corresponding Promise (if called within sendRequestToExtensionAndWait)
202
+ }
203
+ }
204
+ /**
205
+ * Send error message to Chrome extension (mainly for sending non-request-response type errors)
206
+ */
207
+ sendError(errorMessage) {
208
+ this.sendMessage({
209
+ type: shared_1.NativeMessageType.ERROR_FROM_NATIVE_HOST, // Use more explicit type
210
+ payload: { message: errorMessage },
211
+ });
212
+ }
213
+ /**
214
+ * Clean up resources
215
+ */
216
+ cleanup() {
217
+ // Reject all pending requests
218
+ this.pendingRequests.forEach((pending) => {
219
+ clearTimeout(pending.timeoutId);
220
+ pending.reject(new Error('Native host is shutting down or Chrome disconnected.'));
221
+ });
222
+ this.pendingRequests.clear();
223
+ if (this.associatedServer && this.associatedServer.isRunning) {
224
+ this.associatedServer
225
+ .stop()
226
+ .then(() => {
227
+ process.exit(0);
228
+ })
229
+ .catch(() => {
230
+ process.exit(1);
231
+ });
232
+ }
233
+ else {
234
+ process.exit(0);
235
+ }
236
+ }
237
+ }
238
+ exports.NativeMessagingHost = NativeMessagingHost;
239
+ const nativeMessagingHostInstance = new NativeMessagingHost();
240
+ exports.default = nativeMessagingHostInstance;
241
+ //# sourceMappingURL=native-messaging-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-messaging-host.js","sourceRoot":"","sources":["../src/native-messaging-host.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ @echo off
2
+ setlocal enabledelayedexpansion
3
+
4
+ REM Setup paths
5
+ set "SCRIPT_DIR=%~dp0"
6
+ if "%SCRIPT_DIR:~-1%"=="\" set "SCRIPT_DIR=%SCRIPT_DIR:~0,-1%"
7
+ set "LOG_DIR=%SCRIPT_DIR%\logs"
8
+ set "NODE_SCRIPT=%SCRIPT_DIR%\index.js"
9
+
10
+ if not exist "%LOG_DIR%" md "%LOG_DIR%"
11
+
12
+ REM Generate timestamp
13
+ for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format 'yyyyMMdd_HHmmss'"') do set "TIMESTAMP=%%i"
14
+ set "WRAPPER_LOG=%LOG_DIR%\native_host_wrapper_windows_%TIMESTAMP%.log"
15
+ set "STDERR_LOG=%LOG_DIR%\native_host_stderr_windows_%TIMESTAMP%.log"
16
+
17
+ REM Initial logging
18
+ echo Wrapper script called at %DATE% %TIME% > "%WRAPPER_LOG%"
19
+ echo SCRIPT_DIR: %SCRIPT_DIR% >> "%WRAPPER_LOG%"
20
+ echo LOG_DIR: %LOG_DIR% >> "%WRAPPER_LOG%"
21
+ echo NODE_SCRIPT: %NODE_SCRIPT% >> "%WRAPPER_LOG%"
22
+ echo Initial PATH: %PATH% >> "%WRAPPER_LOG%"
23
+ echo User: %USERNAME% >> "%WRAPPER_LOG%"
24
+ echo Current PWD: %CD% >> "%WRAPPER_LOG%"
25
+
26
+ REM Node.js discovery
27
+ set "NODE_EXEC="
28
+
29
+ REM Priority 1: Installation-time node path
30
+ set "NODE_PATH_FILE=%SCRIPT_DIR%\node_path.txt"
31
+ echo Checking installation-time node path >> "%WRAPPER_LOG%"
32
+ if exist "%NODE_PATH_FILE%" (
33
+ set /p EXPECTED_NODE=<"%NODE_PATH_FILE%"
34
+ if exist "!EXPECTED_NODE!" (
35
+ set "NODE_EXEC=!EXPECTED_NODE!"
36
+ echo Found installation-time node at !NODE_EXEC! >> "%WRAPPER_LOG%"
37
+ )
38
+ )
39
+
40
+ REM Priority 1.5: Fallback to relative path
41
+ if not defined NODE_EXEC (
42
+ set "EXPECTED_NODE=%SCRIPT_DIR%\..\..\..\node.exe"
43
+ echo Checking relative path >> "%WRAPPER_LOG%"
44
+ if exist "%EXPECTED_NODE%" (
45
+ set "NODE_EXEC=%EXPECTED_NODE%"
46
+ echo Found node at relative path: !NODE_EXEC! >> "%WRAPPER_LOG%"
47
+ )
48
+ )
49
+
50
+ REM Priority 2: where command
51
+ if not defined NODE_EXEC (
52
+ echo Trying 'where node.exe' >> "%WRAPPER_LOG%"
53
+ for /f "delims=" %%i in ('where node.exe 2^>nul') do (
54
+ if not defined NODE_EXEC (
55
+ set "NODE_EXEC=%%i"
56
+ echo Found node using 'where': !NODE_EXEC! >> "%WRAPPER_LOG%"
57
+ )
58
+ )
59
+ )
60
+
61
+ REM Priority 3: Common paths
62
+ if not defined NODE_EXEC (
63
+ if exist "%ProgramFiles%\nodejs\node.exe" (
64
+ set "NODE_EXEC=%ProgramFiles%\nodejs\node.exe"
65
+ echo Found node at !NODE_EXEC! >> "%WRAPPER_LOG%"
66
+ ) else if exist "%ProgramFiles(x86)%\nodejs\node.exe" (
67
+ set "NODE_EXEC=%ProgramFiles(x86)%\nodejs\node.exe"
68
+ echo Found node at !NODE_EXEC! >> "%WRAPPER_LOG%"
69
+ ) else if exist "%LOCALAPPDATA%\Programs\nodejs\node.exe" (
70
+ set "NODE_EXEC=%LOCALAPPDATA%\Programs\nodejs\node.exe"
71
+ echo Found node at !NODE_EXEC! >> "%WRAPPER_LOG%"
72
+ )
73
+ )
74
+
75
+ REM Validation
76
+ if not defined NODE_EXEC (
77
+ echo ERROR: Node.js executable not found! >> "%WRAPPER_LOG%"
78
+ exit /B 1
79
+ )
80
+
81
+ echo Using Node executable: %NODE_EXEC% >> "%WRAPPER_LOG%"
82
+ call "%NODE_EXEC%" -v >> "%WRAPPER_LOG%" 2>>&1
83
+
84
+ if not exist "%NODE_SCRIPT%" (
85
+ echo ERROR: Node.js script not found at %NODE_SCRIPT% >> "%WRAPPER_LOG%"
86
+ exit /B 1
87
+ )
88
+
89
+ echo Executing: "%NODE_EXEC%" "%NODE_SCRIPT%" >> "%WRAPPER_LOG%"
90
+ call "%NODE_EXEC%" "%NODE_SCRIPT%" 2>> "%STDERR_LOG%"
91
+ set "EXIT_CODE=%ERRORLEVEL%"
92
+
93
+ echo Exit code: %EXIT_CODE% >> "%WRAPPER_LOG%"
94
+ endlocal
95
+ exit /B %EXIT_CODE%
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Configuration
4
+ ENABLE_LOG_ROTATION="true"
5
+ LOG_RETENTION_COUNT=5
6
+
7
+ # Setup paths
8
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
9
+ LOG_DIR="${SCRIPT_DIR}/logs"
10
+ mkdir -p "${LOG_DIR}"
11
+
12
+ # Log rotation
13
+ if [ "${ENABLE_LOG_ROTATION}" = "true" ]; then
14
+ ls -tp "${LOG_DIR}/native_host_wrapper_macos_"* 2>/dev/null | tail -n +$((LOG_RETENTION_COUNT + 1)) | xargs -I {} rm -- {}
15
+ ls -tp "${LOG_DIR}/native_host_stderr_macos_"* 2>/dev/null | tail -n +$((LOG_RETENTION_COUNT + 1)) | xargs -I {} rm -- {}
16
+ fi
17
+
18
+ # Logging setup
19
+ TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
20
+ WRAPPER_LOG="${LOG_DIR}/native_host_wrapper_macos_${TIMESTAMP}.log"
21
+ STDERR_LOG="${LOG_DIR}/native_host_stderr_macos_${TIMESTAMP}.log"
22
+ NODE_SCRIPT="${SCRIPT_DIR}/index.js"
23
+
24
+ # Initial logging
25
+ {
26
+ echo "--- Wrapper script called at $(date) ---"
27
+ echo "SCRIPT_DIR: ${SCRIPT_DIR}"
28
+ echo "LOG_DIR: ${LOG_DIR}"
29
+ echo "NODE_SCRIPT: ${NODE_SCRIPT}"
30
+ echo "Initial PATH: ${PATH}"
31
+ echo "User: $(whoami)"
32
+ echo "Current PWD: $(pwd)"
33
+ } > "${WRAPPER_LOG}"
34
+
35
+ # Node.js discovery
36
+ NODE_EXEC=""
37
+
38
+ # Priority 1: Installation-time node path
39
+ NODE_PATH_FILE="${SCRIPT_DIR}/node_path.txt"
40
+ echo "Searching for Node.js..." >> "${WRAPPER_LOG}"
41
+ echo "[Priority 1] Checking installation-time node path" >> "${WRAPPER_LOG}"
42
+ if [ -f "${NODE_PATH_FILE}" ]; then
43
+ EXPECTED_NODE=$(cat "${NODE_PATH_FILE}" 2>/dev/null | tr -d '\n\r')
44
+ if [ -n "${EXPECTED_NODE}" ] && [ -x "${EXPECTED_NODE}" ]; then
45
+ NODE_EXEC="${EXPECTED_NODE}"
46
+ echo "Found installation-time node at ${NODE_EXEC}" >> "${WRAPPER_LOG}"
47
+ fi
48
+ fi
49
+
50
+ # Priority 1.5: Fallback to relative path
51
+ if [ -z "${NODE_EXEC}" ]; then
52
+ EXPECTED_NODE="${SCRIPT_DIR}/../../../bin/node"
53
+ echo "[Priority 1.5] Checking relative path" >> "${WRAPPER_LOG}"
54
+ if [ -x "${EXPECTED_NODE}" ]; then
55
+ NODE_EXEC="${EXPECTED_NODE}"
56
+ echo "Found node at relative path: ${NODE_EXEC}" >> "${WRAPPER_LOG}"
57
+ fi
58
+ fi
59
+
60
+ # Priority 2: NVM
61
+ if [ -z "${NODE_EXEC}" ]; then
62
+ echo "[Priority 2] Checking NVM" >> "${WRAPPER_LOG}"
63
+ NVM_DIR="$HOME/.nvm"
64
+ if [ -d "${NVM_DIR}" ]; then
65
+ # Try default version first
66
+ if [ -L "${NVM_DIR}/alias/default" ]; then
67
+ NVM_DEFAULT_VERSION=$(readlink "${NVM_DIR}/alias/default")
68
+ NVM_DEFAULT_NODE="${NVM_DIR}/versions/node/${NVM_DEFAULT_VERSION}/bin/node"
69
+ if [ -x "${NVM_DEFAULT_NODE}" ]; then
70
+ NODE_EXEC="${NVM_DEFAULT_NODE}"
71
+ echo "Found NVM default node: ${NODE_EXEC}" >> "${WRAPPER_LOG}"
72
+ fi
73
+ fi
74
+
75
+ # Fallback to latest version
76
+ if [ -z "${NODE_EXEC}" ]; then
77
+ LATEST_NVM_VERSION_PATH=$(ls -d ${NVM_DIR}/versions/node/v* 2>/dev/null | sort -V | tail -n 1)
78
+ if [ -n "${LATEST_NVM_VERSION_PATH}" ] && [ -x "${LATEST_NVM_VERSION_PATH}/bin/node" ]; then
79
+ NODE_EXEC="${LATEST_NVM_VERSION_PATH}/bin/node"
80
+ echo "Found NVM latest node: ${NODE_EXEC}" >> "${WRAPPER_LOG}"
81
+ fi
82
+ fi
83
+ fi
84
+ fi
85
+
86
+ # Priority 3: Common paths
87
+ if [ -z "${NODE_EXEC}" ]; then
88
+ echo "[Priority 3] Checking common paths" >> "${WRAPPER_LOG}"
89
+ COMMON_NODE_PATHS=(
90
+ "/opt/homebrew/bin/node"
91
+ "/usr/local/bin/node"
92
+ )
93
+ for path_to_node in "${COMMON_NODE_PATHS[@]}"; do
94
+ if [ -x "${path_to_node}" ]; then
95
+ NODE_EXEC="${path_to_node}"
96
+ echo "Found node at: ${NODE_EXEC}" >> "${WRAPPER_LOG}"
97
+ break
98
+ fi
99
+ done
100
+ fi
101
+
102
+ # Priority 4: command -v
103
+ if [ -z "${NODE_EXEC}" ]; then
104
+ echo "[Priority 4] Trying 'command -v node'" >> "${WRAPPER_LOG}"
105
+ if command -v node &>/dev/null; then
106
+ NODE_EXEC=$(command -v node)
107
+ echo "Found node using 'command -v': ${NODE_EXEC}" >> "${WRAPPER_LOG}"
108
+ fi
109
+ fi
110
+
111
+ # Priority 5: PATH search
112
+ if [ -z "${NODE_EXEC}" ]; then
113
+ echo "[Priority 5] Searching PATH" >> "${WRAPPER_LOG}"
114
+ OLD_IFS=$IFS
115
+ IFS=:
116
+ for path_in_env in $PATH; do
117
+ if [ -x "${path_in_env}/node" ]; then
118
+ NODE_EXEC="${path_in_env}/node"
119
+ echo "Found node in PATH: ${NODE_EXEC}" >> "${WRAPPER_LOG}"
120
+ break
121
+ fi
122
+ done
123
+ IFS=$OLD_IFS
124
+ fi
125
+
126
+ # Execution
127
+ if [ -z "${NODE_EXEC}" ]; then
128
+ {
129
+ echo "ERROR: Node.js executable not found!"
130
+ echo "Searched: installation path, relative path, NVM, common paths, command -v, PATH"
131
+ } >> "${WRAPPER_LOG}"
132
+ exit 1
133
+ fi
134
+
135
+ {
136
+ echo "Using Node executable: ${NODE_EXEC}"
137
+ echo "Node version: $(${NODE_EXEC} -v)"
138
+ echo "Executing: ${NODE_EXEC} ${NODE_SCRIPT}"
139
+ } >> "${WRAPPER_LOG}"
140
+
141
+ exec "${NODE_EXEC}" "${NODE_SCRIPT}" 2>> "${STDERR_LOG}"
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const child_process_1 = require("child_process");
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const distDir = path_1.default.join(__dirname, '..', '..', 'dist');
10
+ // 清理上次构建
11
+ console.log('清理上次构建...');
12
+ try {
13
+ fs_1.default.rmSync(distDir, { recursive: true, force: true });
14
+ }
15
+ catch (err) {
16
+ // 忽略目录不存在的错误
17
+ console.log(err);
18
+ }
19
+ // 创建dist目录
20
+ fs_1.default.mkdirSync(distDir, { recursive: true });
21
+ fs_1.default.mkdirSync(path_1.default.join(distDir, 'logs'), { recursive: true }); // 创建logs目录
22
+ console.log('dist 和 dist/logs 目录已创建/确认存在');
23
+ // 编译TypeScript
24
+ console.log('编译TypeScript...');
25
+ (0, child_process_1.execSync)('tsc', { stdio: 'inherit' });
26
+ // 复制配置文件
27
+ console.log('复制配置文件...');
28
+ const configSourcePath = path_1.default.join(__dirname, '..', 'mcp', 'stdio-config.json');
29
+ const configDestPath = path_1.default.join(distDir, 'mcp', 'stdio-config.json');
30
+ try {
31
+ // 确保目标目录存在
32
+ fs_1.default.mkdirSync(path_1.default.dirname(configDestPath), { recursive: true });
33
+ if (fs_1.default.existsSync(configSourcePath)) {
34
+ fs_1.default.copyFileSync(configSourcePath, configDestPath);
35
+ console.log(`已将 stdio-config.json 复制到 ${configDestPath}`);
36
+ }
37
+ else {
38
+ console.error(`错误: 配置文件未找到: ${configSourcePath}`);
39
+ }
40
+ }
41
+ catch (error) {
42
+ console.error('复制配置文件时出错:', error);
43
+ }
44
+ // 复制package.json并更新其内容
45
+ console.log('准备package.json...');
46
+ const packageJson = require('../../package.json');
47
+ // 创建安装说明
48
+ const readmeContent = `# ${packageJson.name}
49
+
50
+ 本程序为Chrome扩展的Native Messaging主机端。
51
+
52
+ ## 安装说明
53
+
54
+ 1. 确保已安装Node.js
55
+ 2. 全局安装本程序:
56
+ \`\`\`
57
+ npm install -g ${packageJson.name}
58
+ \`\`\`
59
+ 3. 注册Native Messaging主机:
60
+ \`\`\`
61
+ # 用户级别安装(推荐)
62
+ ${packageJson.name} register
63
+
64
+ # 如果用户级别安装失败,可以尝试系统级别安装
65
+ ${packageJson.name} register --system
66
+ # 或者使用管理员权限
67
+ sudo ${packageJson.name} register
68
+ \`\`\`
69
+
70
+ ## 使用方法
71
+
72
+ 此应用程序由Chrome扩展自动启动,无需手动运行。
73
+ `;
74
+ fs_1.default.writeFileSync(path_1.default.join(distDir, 'README.md'), readmeContent);
75
+ console.log('复制包装脚本...');
76
+ const scriptsSourceDir = path_1.default.join(__dirname, '.');
77
+ const macOsWrapperSourcePath = path_1.default.join(scriptsSourceDir, 'run_host.sh');
78
+ const windowsWrapperSourcePath = path_1.default.join(scriptsSourceDir, 'run_host.bat');
79
+ const macOsWrapperDestPath = path_1.default.join(distDir, 'run_host.sh');
80
+ const windowsWrapperDestPath = path_1.default.join(distDir, 'run_host.bat');
81
+ try {
82
+ if (fs_1.default.existsSync(macOsWrapperSourcePath)) {
83
+ fs_1.default.copyFileSync(macOsWrapperSourcePath, macOsWrapperDestPath);
84
+ console.log(`已将 ${macOsWrapperSourcePath} 复制到 ${macOsWrapperDestPath}`);
85
+ }
86
+ else {
87
+ console.error(`错误: macOS 包装脚本源文件未找到: ${macOsWrapperSourcePath}`);
88
+ }
89
+ if (fs_1.default.existsSync(windowsWrapperSourcePath)) {
90
+ fs_1.default.copyFileSync(windowsWrapperSourcePath, windowsWrapperDestPath);
91
+ console.log(`已将 ${windowsWrapperSourcePath} 复制到 ${windowsWrapperDestPath}`);
92
+ }
93
+ else {
94
+ console.error(`错误: Windows 包装脚本源文件未找到: ${windowsWrapperSourcePath}`);
95
+ }
96
+ }
97
+ catch (error) {
98
+ console.error('复制包装脚本时出错:', error);
99
+ }
100
+ // 为关键JavaScript文件和macOS包装脚本添加可执行权限
101
+ console.log('添加可执行权限...');
102
+ const filesToMakeExecutable = ['index.js', 'cli.js', 'run_host.sh']; // cli.js 假设在 dist 根目录
103
+ filesToMakeExecutable.forEach((file) => {
104
+ const filePath = path_1.default.join(distDir, file); // filePath 现在是目标路径
105
+ try {
106
+ if (fs_1.default.existsSync(filePath)) {
107
+ fs_1.default.chmodSync(filePath, '755');
108
+ console.log(`已为 ${file} 添加可执行权限 (755)`);
109
+ }
110
+ else {
111
+ console.warn(`警告: ${filePath} 不存在,无法添加可执行权限`);
112
+ }
113
+ }
114
+ catch (error) {
115
+ console.error(`为 ${file} 添加可执行权限时出错:`, error);
116
+ }
117
+ });
118
+ console.log('✅ 构建完成');
119
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/scripts/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface ExtensionConfig {
2
+ extensionId: string;
3
+ hostName: string;
4
+ description: string;
5
+ }
6
+ export declare function getExtensionConfig(): ExtensionConfig;
7
+ export declare const COMMAND_NAME = "axhub-mcp-bridge";
8
+ export declare const EXTENSION_ID: string;
9
+ export declare const HOST_NAME: string;
10
+ export declare const DESCRIPTION: string;
11
+ export declare const EXTENSION_CONFIG: ExtensionConfig;