@mcpmesh/core 0.8.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.d.ts +302 -0
- package/index.js +591 -0
- package/mcp-mesh-core.darwin-arm64.node +0 -0
- package/mcp-mesh-core.darwin-x64.node +0 -0
- package/mcp-mesh-core.linux-arm64-gnu.node +0 -0
- package/mcp-mesh-core.linux-x64-gnu.node +0 -0
- package/package.json +45 -0
package/index.d.ts
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/* auto-generated by NAPI-RS */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/** Handle to a running agent runtime (TypeScript wrapper). */
|
|
4
|
+
export declare class JsAgentHandle {
|
|
5
|
+
/**
|
|
6
|
+
* Wait for and return the next mesh event.
|
|
7
|
+
*
|
|
8
|
+
* This is an async method that blocks until an event is available.
|
|
9
|
+
* Returns a JsMeshEvent with eventType "shutdown" when the runtime has shut down.
|
|
10
|
+
*/
|
|
11
|
+
nextEvent(): Promise<JsMeshEvent>
|
|
12
|
+
/**
|
|
13
|
+
* Get current dependency endpoints.
|
|
14
|
+
*
|
|
15
|
+
* Returns an object mapping capability names to endpoint URLs.
|
|
16
|
+
*/
|
|
17
|
+
getDependencies(): Promise<Record<string, string>>
|
|
18
|
+
/** Get current agent health status. */
|
|
19
|
+
getStatus(): Promise<string>
|
|
20
|
+
/** Get the agent ID assigned by the registry. */
|
|
21
|
+
getAgentId(): Promise<string | null>
|
|
22
|
+
/** Check if shutdown has been requested. */
|
|
23
|
+
isShutdownRequested(): Promise<boolean>
|
|
24
|
+
/** Request graceful shutdown of the agent runtime. */
|
|
25
|
+
shutdown(): Promise<void>
|
|
26
|
+
/**
|
|
27
|
+
* Update the tools/routes registered with the registry.
|
|
28
|
+
*
|
|
29
|
+
* Uses smart diffing - only triggers a heartbeat if tools have changed.
|
|
30
|
+
* Call this after Express route introspection to update route names
|
|
31
|
+
* from placeholders (e.g., "route_0_UNKNOWN:UNKNOWN") to proper names
|
|
32
|
+
* (e.g., "GET:/time").
|
|
33
|
+
*
|
|
34
|
+
* @param tools - Array of tool specifications with updated function names
|
|
35
|
+
* @returns true if the update was sent successfully
|
|
36
|
+
*/
|
|
37
|
+
updateTools(tools: Array<JsToolSpec>): Promise<boolean>
|
|
38
|
+
/**
|
|
39
|
+
* Update the HTTP port (e.g., after auto-detection from Express).
|
|
40
|
+
*
|
|
41
|
+
* @param port - The detected HTTP port
|
|
42
|
+
* @returns true if the update was sent successfully
|
|
43
|
+
*/
|
|
44
|
+
updatePort(port: number): Promise<boolean>
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Auto-detect external IP address.
|
|
49
|
+
*
|
|
50
|
+
* Uses UDP socket trick to find the IP that would route to external networks.
|
|
51
|
+
* Falls back to "localhost" if detection fails.
|
|
52
|
+
*/
|
|
53
|
+
export declare function autoDetectIp(): string
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Get the default value for a configuration key.
|
|
57
|
+
*
|
|
58
|
+
* This allows SDKs to retrieve default values without doing full resolution,
|
|
59
|
+
* useful for documentation, type hints, and avoiding duplicate default definitions.
|
|
60
|
+
*
|
|
61
|
+
* @param keyName - Config key (e.g., "registry_url", "namespace", "health_interval")
|
|
62
|
+
* @returns Default value if the key is known and has a default, null otherwise.
|
|
63
|
+
*/
|
|
64
|
+
export declare function getDefault(keyName: string): string | null
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Get the environment variable name for a configuration key.
|
|
68
|
+
*
|
|
69
|
+
* @param keyName - Config key (e.g., "registry_url", "namespace")
|
|
70
|
+
* @returns Environment variable name if the key is known, null otherwise.
|
|
71
|
+
*/
|
|
72
|
+
export declare function getEnvVar(keyName: string): string | null
|
|
73
|
+
|
|
74
|
+
/** Get Redis URL with fallback to default (redis://localhost:6379). */
|
|
75
|
+
export declare function getRedisUrl(): string
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Initialize the trace publisher.
|
|
79
|
+
*
|
|
80
|
+
* Must be called before publishing spans. Checks if tracing is enabled
|
|
81
|
+
* and initializes Redis connection.
|
|
82
|
+
*
|
|
83
|
+
* @returns true if tracing is enabled and Redis is available, false otherwise.
|
|
84
|
+
*/
|
|
85
|
+
export declare function initTracePublisher(): Promise<boolean>
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Check if trace publishing is available.
|
|
89
|
+
*
|
|
90
|
+
* @returns true if tracing is enabled and Redis is connected.
|
|
91
|
+
*/
|
|
92
|
+
export declare function isTracePublisherAvailable(): Promise<boolean>
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Check if distributed tracing is enabled.
|
|
96
|
+
*
|
|
97
|
+
* Checks MCP_MESH_DISTRIBUTED_TRACING_ENABLED environment variable.
|
|
98
|
+
*/
|
|
99
|
+
export declare function isTracingEnabled(): boolean
|
|
100
|
+
|
|
101
|
+
/** Agent specification for TypeScript. */
|
|
102
|
+
export interface JsAgentSpec {
|
|
103
|
+
/** Unique agent name/identifier */
|
|
104
|
+
name: string
|
|
105
|
+
/** Agent version (semver) */
|
|
106
|
+
version: string
|
|
107
|
+
/** Human-readable description */
|
|
108
|
+
description: string
|
|
109
|
+
/** Registry URL (e.g., "http://localhost:8100") */
|
|
110
|
+
registryUrl: string
|
|
111
|
+
/** HTTP port for this agent */
|
|
112
|
+
httpPort: number
|
|
113
|
+
/** HTTP host announced to registry */
|
|
114
|
+
httpHost: string
|
|
115
|
+
/** Namespace for isolation */
|
|
116
|
+
namespace: string
|
|
117
|
+
/**
|
|
118
|
+
* Agent type: "mcp_agent" (provides capabilities) or "api" (only consumes)
|
|
119
|
+
* Defaults to "mcp_agent" if not specified
|
|
120
|
+
*/
|
|
121
|
+
agentType?: string
|
|
122
|
+
/**
|
|
123
|
+
* SDK runtime type: "python" or "typescript"
|
|
124
|
+
* Defaults to "typescript" for TypeScript SDK
|
|
125
|
+
*/
|
|
126
|
+
runtime?: string
|
|
127
|
+
/** Tools/capabilities provided by this agent */
|
|
128
|
+
tools: Array<JsToolSpec>
|
|
129
|
+
/** LLM agent specifications for tools using mesh.llm() */
|
|
130
|
+
llmAgents?: Array<JsLlmAgentSpec>
|
|
131
|
+
/** Heartbeat interval in seconds */
|
|
132
|
+
heartbeatInterval: number
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/** Dependency specification for TypeScript. */
|
|
136
|
+
export interface JsDependencySpec {
|
|
137
|
+
/** Capability name to depend on */
|
|
138
|
+
capability: string
|
|
139
|
+
/** Tags for filtering (e.g., ["+fast", "-deprecated"]) */
|
|
140
|
+
tags: Array<string>
|
|
141
|
+
/** Version constraint (e.g., ">=2.0.0") */
|
|
142
|
+
version?: string
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* LLM agent specification for TypeScript.
|
|
147
|
+
* Used to register LLM-powered tools with the mesh.
|
|
148
|
+
*/
|
|
149
|
+
export interface JsLlmAgentSpec {
|
|
150
|
+
/** Unique identifier for this LLM function (matches the tool's function_name) */
|
|
151
|
+
functionId: string
|
|
152
|
+
/**
|
|
153
|
+
* Provider selector - serialized JSON string
|
|
154
|
+
* e.g., '{"capability": "llm", "tags": ["+claude"]}'
|
|
155
|
+
*/
|
|
156
|
+
provider: string
|
|
157
|
+
/**
|
|
158
|
+
* Tool filter specification - serialized JSON string
|
|
159
|
+
* e.g., '[{"capability": "calculator"}, {"tags": ["tools"]}]'
|
|
160
|
+
*/
|
|
161
|
+
filter?: string
|
|
162
|
+
/** Filter mode: "all", "best_match", or "*" */
|
|
163
|
+
filterMode: string
|
|
164
|
+
/** Maximum agentic loop iterations */
|
|
165
|
+
maxIterations: number
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/** LLM provider information returned in llm_provider_available events. */
|
|
169
|
+
export interface JsLlmProviderInfo {
|
|
170
|
+
/** Function ID of the LLM function that requested this provider */
|
|
171
|
+
functionId: string
|
|
172
|
+
/** Agent ID providing this capability */
|
|
173
|
+
agentId: string
|
|
174
|
+
/** Endpoint URL to call */
|
|
175
|
+
endpoint: string
|
|
176
|
+
/** Function name to call */
|
|
177
|
+
functionName: string
|
|
178
|
+
/** Model name (optional) */
|
|
179
|
+
model?: string
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* LLM tool information returned in llm_tools_updated events.
|
|
184
|
+
* Contains resolved tool metadata for LLM agents to use.
|
|
185
|
+
*/
|
|
186
|
+
export interface JsLlmToolInfo {
|
|
187
|
+
/** Function name of the tool */
|
|
188
|
+
functionName: string
|
|
189
|
+
/** Capability name */
|
|
190
|
+
capability: string
|
|
191
|
+
/** Endpoint URL to call */
|
|
192
|
+
endpoint: string
|
|
193
|
+
/** Agent ID providing this tool */
|
|
194
|
+
agentId: string
|
|
195
|
+
/** Input schema (serialized JSON string) */
|
|
196
|
+
inputSchema?: string
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/** Mesh event for TypeScript. */
|
|
200
|
+
export interface JsMeshEvent {
|
|
201
|
+
/** Event type (e.g., "dependency_available", "agent_registered", "llm_tools_updated") */
|
|
202
|
+
eventType: string
|
|
203
|
+
/** Capability name (for dependency events) */
|
|
204
|
+
capability?: string
|
|
205
|
+
/** Endpoint URL (for dependency_available) */
|
|
206
|
+
endpoint?: string
|
|
207
|
+
/** Function name to call (for dependency_available) */
|
|
208
|
+
functionName?: string
|
|
209
|
+
/** Agent ID (for dependency events) */
|
|
210
|
+
agentId?: string
|
|
211
|
+
/**
|
|
212
|
+
* Function that requested this dependency (for dependency events)
|
|
213
|
+
* This is the tool/function that declared the dependency.
|
|
214
|
+
*/
|
|
215
|
+
requestingFunction?: string
|
|
216
|
+
/**
|
|
217
|
+
* Dependency index within the requesting function (for dependency events)
|
|
218
|
+
* This allows SDKs to inject the resolved dependency at the correct position.
|
|
219
|
+
*/
|
|
220
|
+
depIndex?: number
|
|
221
|
+
/** Function ID of the LLM agent (for llm_tools_updated, llm_provider_available) */
|
|
222
|
+
functionId?: string
|
|
223
|
+
/** List of available tools (for llm_tools_updated event) */
|
|
224
|
+
tools?: Array<JsLlmToolInfo>
|
|
225
|
+
/** Provider info (for llm_provider_available event) */
|
|
226
|
+
providerInfo?: JsLlmProviderInfo
|
|
227
|
+
/** Error message (for error events) */
|
|
228
|
+
error?: string
|
|
229
|
+
/** Reason for event (for disconnect events) */
|
|
230
|
+
reason?: string
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/** Tool specification for TypeScript. */
|
|
234
|
+
export interface JsToolSpec {
|
|
235
|
+
/** Function name in the code */
|
|
236
|
+
functionName: string
|
|
237
|
+
/** Capability name for discovery */
|
|
238
|
+
capability: string
|
|
239
|
+
/** Version of this capability */
|
|
240
|
+
version: string
|
|
241
|
+
/** Tags for filtering */
|
|
242
|
+
tags: Array<string>
|
|
243
|
+
/** Human-readable description */
|
|
244
|
+
description: string
|
|
245
|
+
/** Dependencies required by this tool */
|
|
246
|
+
dependencies: Array<JsDependencySpec>
|
|
247
|
+
/** JSON Schema for input parameters (MCP format) - serialized JSON string */
|
|
248
|
+
inputSchema?: string
|
|
249
|
+
/** LLM filter specification (for @mesh.llm decorated functions) - serialized JSON string */
|
|
250
|
+
llmFilter?: string
|
|
251
|
+
/** LLM provider specification (for mesh delegation) - serialized JSON string */
|
|
252
|
+
llmProvider?: string
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Publish a trace span to Redis.
|
|
257
|
+
*
|
|
258
|
+
* Publishes span data to the `mesh:trace` Redis stream.
|
|
259
|
+
* Non-blocking - silently handles failures to never break agent operations.
|
|
260
|
+
*
|
|
261
|
+
* @param spanData - Map of span data (all values must be strings)
|
|
262
|
+
* @returns true if published successfully, false otherwise.
|
|
263
|
+
*/
|
|
264
|
+
export declare function publishSpan(spanData: Record<string, string>): Promise<boolean>
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Resolve configuration value with priority: ENV > param > default.
|
|
268
|
+
*
|
|
269
|
+
* @param keyName - Config key (e.g., "registry_url", "http_host", "namespace")
|
|
270
|
+
* @param paramValue - Optional value from code/config
|
|
271
|
+
* @returns Resolved value or empty string if unknown key
|
|
272
|
+
*/
|
|
273
|
+
export declare function resolveConfig(keyName: string, paramValue?: string | undefined | null): string
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Resolve boolean configuration value with priority: ENV > param > default.
|
|
277
|
+
*
|
|
278
|
+
* @param keyName - Config key (e.g., "distributed_tracing_enabled")
|
|
279
|
+
* @param paramValue - Optional value from code/config
|
|
280
|
+
* @returns Resolved boolean value
|
|
281
|
+
*/
|
|
282
|
+
export declare function resolveConfigBool(keyName: string, paramValue?: boolean | undefined | null): boolean
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Resolve integer configuration value with priority: ENV > param > default.
|
|
286
|
+
*
|
|
287
|
+
* @param keyName - Config key (e.g., "http_port", "health_interval")
|
|
288
|
+
* @param paramValue - Optional value from code/config
|
|
289
|
+
* @returns Resolved integer value or null if unknown key
|
|
290
|
+
*/
|
|
291
|
+
export declare function resolveConfigInt(keyName: string, paramValue?: number | undefined | null): number | null
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Start an agent runtime with the given specification.
|
|
295
|
+
*
|
|
296
|
+
* This spawns a background Tokio runtime that handles:
|
|
297
|
+
* - Registration with the mesh registry
|
|
298
|
+
* - Periodic heartbeats
|
|
299
|
+
* - Topology change detection
|
|
300
|
+
* - Event streaming
|
|
301
|
+
*/
|
|
302
|
+
export declare function startAgent(spec: JsAgentSpec): JsAgentHandle
|
package/index.js
ADDED
|
@@ -0,0 +1,591 @@
|
|
|
1
|
+
// prettier-ignore
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
/* auto-generated by NAPI-RS */
|
|
5
|
+
|
|
6
|
+
const { readFileSync } = require('node:fs')
|
|
7
|
+
let nativeBinding = null
|
|
8
|
+
const loadErrors = []
|
|
9
|
+
|
|
10
|
+
const isMusl = () => {
|
|
11
|
+
let musl = false
|
|
12
|
+
if (process.platform === 'linux') {
|
|
13
|
+
musl = isMuslFromFilesystem()
|
|
14
|
+
if (musl === null) {
|
|
15
|
+
musl = isMuslFromReport()
|
|
16
|
+
}
|
|
17
|
+
if (musl === null) {
|
|
18
|
+
musl = isMuslFromChildProcess()
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return musl
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-')
|
|
25
|
+
|
|
26
|
+
const isMuslFromFilesystem = () => {
|
|
27
|
+
try {
|
|
28
|
+
return readFileSync('/usr/bin/ldd', 'utf-8').includes('musl')
|
|
29
|
+
} catch {
|
|
30
|
+
return null
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const isMuslFromReport = () => {
|
|
35
|
+
let report = null
|
|
36
|
+
if (typeof process.report?.getReport === 'function') {
|
|
37
|
+
process.report.excludeNetwork = true
|
|
38
|
+
report = process.report.getReport()
|
|
39
|
+
}
|
|
40
|
+
if (!report) {
|
|
41
|
+
return null
|
|
42
|
+
}
|
|
43
|
+
if (report.header && report.header.glibcVersionRuntime) {
|
|
44
|
+
return false
|
|
45
|
+
}
|
|
46
|
+
if (Array.isArray(report.sharedObjects)) {
|
|
47
|
+
if (report.sharedObjects.some(isFileMusl)) {
|
|
48
|
+
return true
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return false
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const isMuslFromChildProcess = () => {
|
|
55
|
+
try {
|
|
56
|
+
return require('child_process').execSync('ldd --version', { encoding: 'utf8' }).includes('musl')
|
|
57
|
+
} catch (e) {
|
|
58
|
+
// If we reach this case, we don't know if the system is musl or not, so is better to just fallback to false
|
|
59
|
+
return false
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function requireNative() {
|
|
64
|
+
if (process.env.NAPI_RS_NATIVE_LIBRARY_PATH) {
|
|
65
|
+
try {
|
|
66
|
+
return require(process.env.NAPI_RS_NATIVE_LIBRARY_PATH);
|
|
67
|
+
} catch (err) {
|
|
68
|
+
loadErrors.push(err)
|
|
69
|
+
}
|
|
70
|
+
} else if (process.platform === 'android') {
|
|
71
|
+
if (process.arch === 'arm64') {
|
|
72
|
+
try {
|
|
73
|
+
return require('./mcp-mesh-core.android-arm64.node')
|
|
74
|
+
} catch (e) {
|
|
75
|
+
loadErrors.push(e)
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
const binding = require('@mcpmesh/core-android-arm64')
|
|
79
|
+
const bindingPackageVersion = require('@mcpmesh/core-android-arm64/package.json').version
|
|
80
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
81
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
82
|
+
}
|
|
83
|
+
return binding
|
|
84
|
+
} catch (e) {
|
|
85
|
+
loadErrors.push(e)
|
|
86
|
+
}
|
|
87
|
+
} else if (process.arch === 'arm') {
|
|
88
|
+
try {
|
|
89
|
+
return require('./mcp-mesh-core.android-arm-eabi.node')
|
|
90
|
+
} catch (e) {
|
|
91
|
+
loadErrors.push(e)
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
const binding = require('@mcpmesh/core-android-arm-eabi')
|
|
95
|
+
const bindingPackageVersion = require('@mcpmesh/core-android-arm-eabi/package.json').version
|
|
96
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
97
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
98
|
+
}
|
|
99
|
+
return binding
|
|
100
|
+
} catch (e) {
|
|
101
|
+
loadErrors.push(e)
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`))
|
|
105
|
+
}
|
|
106
|
+
} else if (process.platform === 'win32') {
|
|
107
|
+
if (process.arch === 'x64') {
|
|
108
|
+
if (process.config?.variables?.shlib_suffix === 'dll.a' || process.config?.variables?.node_target_type === 'shared_library') {
|
|
109
|
+
try {
|
|
110
|
+
return require('./mcp-mesh-core.win32-x64-gnu.node')
|
|
111
|
+
} catch (e) {
|
|
112
|
+
loadErrors.push(e)
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const binding = require('@mcpmesh/core-win32-x64-gnu')
|
|
116
|
+
const bindingPackageVersion = require('@mcpmesh/core-win32-x64-gnu/package.json').version
|
|
117
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
118
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
119
|
+
}
|
|
120
|
+
return binding
|
|
121
|
+
} catch (e) {
|
|
122
|
+
loadErrors.push(e)
|
|
123
|
+
}
|
|
124
|
+
} else {
|
|
125
|
+
try {
|
|
126
|
+
return require('./mcp-mesh-core.win32-x64-msvc.node')
|
|
127
|
+
} catch (e) {
|
|
128
|
+
loadErrors.push(e)
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
const binding = require('@mcpmesh/core-win32-x64-msvc')
|
|
132
|
+
const bindingPackageVersion = require('@mcpmesh/core-win32-x64-msvc/package.json').version
|
|
133
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
134
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
135
|
+
}
|
|
136
|
+
return binding
|
|
137
|
+
} catch (e) {
|
|
138
|
+
loadErrors.push(e)
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
} else if (process.arch === 'ia32') {
|
|
142
|
+
try {
|
|
143
|
+
return require('./mcp-mesh-core.win32-ia32-msvc.node')
|
|
144
|
+
} catch (e) {
|
|
145
|
+
loadErrors.push(e)
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
const binding = require('@mcpmesh/core-win32-ia32-msvc')
|
|
149
|
+
const bindingPackageVersion = require('@mcpmesh/core-win32-ia32-msvc/package.json').version
|
|
150
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
151
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
152
|
+
}
|
|
153
|
+
return binding
|
|
154
|
+
} catch (e) {
|
|
155
|
+
loadErrors.push(e)
|
|
156
|
+
}
|
|
157
|
+
} else if (process.arch === 'arm64') {
|
|
158
|
+
try {
|
|
159
|
+
return require('./mcp-mesh-core.win32-arm64-msvc.node')
|
|
160
|
+
} catch (e) {
|
|
161
|
+
loadErrors.push(e)
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
const binding = require('@mcpmesh/core-win32-arm64-msvc')
|
|
165
|
+
const bindingPackageVersion = require('@mcpmesh/core-win32-arm64-msvc/package.json').version
|
|
166
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
167
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
168
|
+
}
|
|
169
|
+
return binding
|
|
170
|
+
} catch (e) {
|
|
171
|
+
loadErrors.push(e)
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`))
|
|
175
|
+
}
|
|
176
|
+
} else if (process.platform === 'darwin') {
|
|
177
|
+
try {
|
|
178
|
+
return require('./mcp-mesh-core.darwin-universal.node')
|
|
179
|
+
} catch (e) {
|
|
180
|
+
loadErrors.push(e)
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
const binding = require('@mcpmesh/core-darwin-universal')
|
|
184
|
+
const bindingPackageVersion = require('@mcpmesh/core-darwin-universal/package.json').version
|
|
185
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
186
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
187
|
+
}
|
|
188
|
+
return binding
|
|
189
|
+
} catch (e) {
|
|
190
|
+
loadErrors.push(e)
|
|
191
|
+
}
|
|
192
|
+
if (process.arch === 'x64') {
|
|
193
|
+
try {
|
|
194
|
+
return require('./mcp-mesh-core.darwin-x64.node')
|
|
195
|
+
} catch (e) {
|
|
196
|
+
loadErrors.push(e)
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const binding = require('@mcpmesh/core-darwin-x64')
|
|
200
|
+
const bindingPackageVersion = require('@mcpmesh/core-darwin-x64/package.json').version
|
|
201
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
202
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
203
|
+
}
|
|
204
|
+
return binding
|
|
205
|
+
} catch (e) {
|
|
206
|
+
loadErrors.push(e)
|
|
207
|
+
}
|
|
208
|
+
} else if (process.arch === 'arm64') {
|
|
209
|
+
try {
|
|
210
|
+
return require('./mcp-mesh-core.darwin-arm64.node')
|
|
211
|
+
} catch (e) {
|
|
212
|
+
loadErrors.push(e)
|
|
213
|
+
}
|
|
214
|
+
try {
|
|
215
|
+
const binding = require('@mcpmesh/core-darwin-arm64')
|
|
216
|
+
const bindingPackageVersion = require('@mcpmesh/core-darwin-arm64/package.json').version
|
|
217
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
218
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
219
|
+
}
|
|
220
|
+
return binding
|
|
221
|
+
} catch (e) {
|
|
222
|
+
loadErrors.push(e)
|
|
223
|
+
}
|
|
224
|
+
} else {
|
|
225
|
+
loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`))
|
|
226
|
+
}
|
|
227
|
+
} else if (process.platform === 'freebsd') {
|
|
228
|
+
if (process.arch === 'x64') {
|
|
229
|
+
try {
|
|
230
|
+
return require('./mcp-mesh-core.freebsd-x64.node')
|
|
231
|
+
} catch (e) {
|
|
232
|
+
loadErrors.push(e)
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const binding = require('@mcpmesh/core-freebsd-x64')
|
|
236
|
+
const bindingPackageVersion = require('@mcpmesh/core-freebsd-x64/package.json').version
|
|
237
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
238
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
239
|
+
}
|
|
240
|
+
return binding
|
|
241
|
+
} catch (e) {
|
|
242
|
+
loadErrors.push(e)
|
|
243
|
+
}
|
|
244
|
+
} else if (process.arch === 'arm64') {
|
|
245
|
+
try {
|
|
246
|
+
return require('./mcp-mesh-core.freebsd-arm64.node')
|
|
247
|
+
} catch (e) {
|
|
248
|
+
loadErrors.push(e)
|
|
249
|
+
}
|
|
250
|
+
try {
|
|
251
|
+
const binding = require('@mcpmesh/core-freebsd-arm64')
|
|
252
|
+
const bindingPackageVersion = require('@mcpmesh/core-freebsd-arm64/package.json').version
|
|
253
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
254
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
255
|
+
}
|
|
256
|
+
return binding
|
|
257
|
+
} catch (e) {
|
|
258
|
+
loadErrors.push(e)
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`))
|
|
262
|
+
}
|
|
263
|
+
} else if (process.platform === 'linux') {
|
|
264
|
+
if (process.arch === 'x64') {
|
|
265
|
+
if (isMusl()) {
|
|
266
|
+
try {
|
|
267
|
+
return require('./mcp-mesh-core.linux-x64-musl.node')
|
|
268
|
+
} catch (e) {
|
|
269
|
+
loadErrors.push(e)
|
|
270
|
+
}
|
|
271
|
+
try {
|
|
272
|
+
const binding = require('@mcpmesh/core-linux-x64-musl')
|
|
273
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-x64-musl/package.json').version
|
|
274
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
275
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
276
|
+
}
|
|
277
|
+
return binding
|
|
278
|
+
} catch (e) {
|
|
279
|
+
loadErrors.push(e)
|
|
280
|
+
}
|
|
281
|
+
} else {
|
|
282
|
+
try {
|
|
283
|
+
return require('./mcp-mesh-core.linux-x64-gnu.node')
|
|
284
|
+
} catch (e) {
|
|
285
|
+
loadErrors.push(e)
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
const binding = require('@mcpmesh/core-linux-x64-gnu')
|
|
289
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-x64-gnu/package.json').version
|
|
290
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
291
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
292
|
+
}
|
|
293
|
+
return binding
|
|
294
|
+
} catch (e) {
|
|
295
|
+
loadErrors.push(e)
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
} else if (process.arch === 'arm64') {
|
|
299
|
+
if (isMusl()) {
|
|
300
|
+
try {
|
|
301
|
+
return require('./mcp-mesh-core.linux-arm64-musl.node')
|
|
302
|
+
} catch (e) {
|
|
303
|
+
loadErrors.push(e)
|
|
304
|
+
}
|
|
305
|
+
try {
|
|
306
|
+
const binding = require('@mcpmesh/core-linux-arm64-musl')
|
|
307
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-arm64-musl/package.json').version
|
|
308
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
309
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
310
|
+
}
|
|
311
|
+
return binding
|
|
312
|
+
} catch (e) {
|
|
313
|
+
loadErrors.push(e)
|
|
314
|
+
}
|
|
315
|
+
} else {
|
|
316
|
+
try {
|
|
317
|
+
return require('./mcp-mesh-core.linux-arm64-gnu.node')
|
|
318
|
+
} catch (e) {
|
|
319
|
+
loadErrors.push(e)
|
|
320
|
+
}
|
|
321
|
+
try {
|
|
322
|
+
const binding = require('@mcpmesh/core-linux-arm64-gnu')
|
|
323
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-arm64-gnu/package.json').version
|
|
324
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
325
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
326
|
+
}
|
|
327
|
+
return binding
|
|
328
|
+
} catch (e) {
|
|
329
|
+
loadErrors.push(e)
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
} else if (process.arch === 'arm') {
|
|
333
|
+
if (isMusl()) {
|
|
334
|
+
try {
|
|
335
|
+
return require('./mcp-mesh-core.linux-arm-musleabihf.node')
|
|
336
|
+
} catch (e) {
|
|
337
|
+
loadErrors.push(e)
|
|
338
|
+
}
|
|
339
|
+
try {
|
|
340
|
+
const binding = require('@mcpmesh/core-linux-arm-musleabihf')
|
|
341
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-arm-musleabihf/package.json').version
|
|
342
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
343
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
344
|
+
}
|
|
345
|
+
return binding
|
|
346
|
+
} catch (e) {
|
|
347
|
+
loadErrors.push(e)
|
|
348
|
+
}
|
|
349
|
+
} else {
|
|
350
|
+
try {
|
|
351
|
+
return require('./mcp-mesh-core.linux-arm-gnueabihf.node')
|
|
352
|
+
} catch (e) {
|
|
353
|
+
loadErrors.push(e)
|
|
354
|
+
}
|
|
355
|
+
try {
|
|
356
|
+
const binding = require('@mcpmesh/core-linux-arm-gnueabihf')
|
|
357
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-arm-gnueabihf/package.json').version
|
|
358
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
359
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
360
|
+
}
|
|
361
|
+
return binding
|
|
362
|
+
} catch (e) {
|
|
363
|
+
loadErrors.push(e)
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
} else if (process.arch === 'loong64') {
|
|
367
|
+
if (isMusl()) {
|
|
368
|
+
try {
|
|
369
|
+
return require('./mcp-mesh-core.linux-loong64-musl.node')
|
|
370
|
+
} catch (e) {
|
|
371
|
+
loadErrors.push(e)
|
|
372
|
+
}
|
|
373
|
+
try {
|
|
374
|
+
const binding = require('@mcpmesh/core-linux-loong64-musl')
|
|
375
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-loong64-musl/package.json').version
|
|
376
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
377
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
378
|
+
}
|
|
379
|
+
return binding
|
|
380
|
+
} catch (e) {
|
|
381
|
+
loadErrors.push(e)
|
|
382
|
+
}
|
|
383
|
+
} else {
|
|
384
|
+
try {
|
|
385
|
+
return require('./mcp-mesh-core.linux-loong64-gnu.node')
|
|
386
|
+
} catch (e) {
|
|
387
|
+
loadErrors.push(e)
|
|
388
|
+
}
|
|
389
|
+
try {
|
|
390
|
+
const binding = require('@mcpmesh/core-linux-loong64-gnu')
|
|
391
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-loong64-gnu/package.json').version
|
|
392
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
393
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
394
|
+
}
|
|
395
|
+
return binding
|
|
396
|
+
} catch (e) {
|
|
397
|
+
loadErrors.push(e)
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
} else if (process.arch === 'riscv64') {
|
|
401
|
+
if (isMusl()) {
|
|
402
|
+
try {
|
|
403
|
+
return require('./mcp-mesh-core.linux-riscv64-musl.node')
|
|
404
|
+
} catch (e) {
|
|
405
|
+
loadErrors.push(e)
|
|
406
|
+
}
|
|
407
|
+
try {
|
|
408
|
+
const binding = require('@mcpmesh/core-linux-riscv64-musl')
|
|
409
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-riscv64-musl/package.json').version
|
|
410
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
411
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
412
|
+
}
|
|
413
|
+
return binding
|
|
414
|
+
} catch (e) {
|
|
415
|
+
loadErrors.push(e)
|
|
416
|
+
}
|
|
417
|
+
} else {
|
|
418
|
+
try {
|
|
419
|
+
return require('./mcp-mesh-core.linux-riscv64-gnu.node')
|
|
420
|
+
} catch (e) {
|
|
421
|
+
loadErrors.push(e)
|
|
422
|
+
}
|
|
423
|
+
try {
|
|
424
|
+
const binding = require('@mcpmesh/core-linux-riscv64-gnu')
|
|
425
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-riscv64-gnu/package.json').version
|
|
426
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
427
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
428
|
+
}
|
|
429
|
+
return binding
|
|
430
|
+
} catch (e) {
|
|
431
|
+
loadErrors.push(e)
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
} else if (process.arch === 'ppc64') {
|
|
435
|
+
try {
|
|
436
|
+
return require('./mcp-mesh-core.linux-ppc64-gnu.node')
|
|
437
|
+
} catch (e) {
|
|
438
|
+
loadErrors.push(e)
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const binding = require('@mcpmesh/core-linux-ppc64-gnu')
|
|
442
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-ppc64-gnu/package.json').version
|
|
443
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
444
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
445
|
+
}
|
|
446
|
+
return binding
|
|
447
|
+
} catch (e) {
|
|
448
|
+
loadErrors.push(e)
|
|
449
|
+
}
|
|
450
|
+
} else if (process.arch === 's390x') {
|
|
451
|
+
try {
|
|
452
|
+
return require('./mcp-mesh-core.linux-s390x-gnu.node')
|
|
453
|
+
} catch (e) {
|
|
454
|
+
loadErrors.push(e)
|
|
455
|
+
}
|
|
456
|
+
try {
|
|
457
|
+
const binding = require('@mcpmesh/core-linux-s390x-gnu')
|
|
458
|
+
const bindingPackageVersion = require('@mcpmesh/core-linux-s390x-gnu/package.json').version
|
|
459
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
460
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
461
|
+
}
|
|
462
|
+
return binding
|
|
463
|
+
} catch (e) {
|
|
464
|
+
loadErrors.push(e)
|
|
465
|
+
}
|
|
466
|
+
} else {
|
|
467
|
+
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`))
|
|
468
|
+
}
|
|
469
|
+
} else if (process.platform === 'openharmony') {
|
|
470
|
+
if (process.arch === 'arm64') {
|
|
471
|
+
try {
|
|
472
|
+
return require('./mcp-mesh-core.openharmony-arm64.node')
|
|
473
|
+
} catch (e) {
|
|
474
|
+
loadErrors.push(e)
|
|
475
|
+
}
|
|
476
|
+
try {
|
|
477
|
+
const binding = require('@mcpmesh/core-openharmony-arm64')
|
|
478
|
+
const bindingPackageVersion = require('@mcpmesh/core-openharmony-arm64/package.json').version
|
|
479
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
480
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
481
|
+
}
|
|
482
|
+
return binding
|
|
483
|
+
} catch (e) {
|
|
484
|
+
loadErrors.push(e)
|
|
485
|
+
}
|
|
486
|
+
} else if (process.arch === 'x64') {
|
|
487
|
+
try {
|
|
488
|
+
return require('./mcp-mesh-core.openharmony-x64.node')
|
|
489
|
+
} catch (e) {
|
|
490
|
+
loadErrors.push(e)
|
|
491
|
+
}
|
|
492
|
+
try {
|
|
493
|
+
const binding = require('@mcpmesh/core-openharmony-x64')
|
|
494
|
+
const bindingPackageVersion = require('@mcpmesh/core-openharmony-x64/package.json').version
|
|
495
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
496
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
497
|
+
}
|
|
498
|
+
return binding
|
|
499
|
+
} catch (e) {
|
|
500
|
+
loadErrors.push(e)
|
|
501
|
+
}
|
|
502
|
+
} else if (process.arch === 'arm') {
|
|
503
|
+
try {
|
|
504
|
+
return require('./mcp-mesh-core.openharmony-arm.node')
|
|
505
|
+
} catch (e) {
|
|
506
|
+
loadErrors.push(e)
|
|
507
|
+
}
|
|
508
|
+
try {
|
|
509
|
+
const binding = require('@mcpmesh/core-openharmony-arm')
|
|
510
|
+
const bindingPackageVersion = require('@mcpmesh/core-openharmony-arm/package.json').version
|
|
511
|
+
if (bindingPackageVersion !== '0.8.0-beta.6' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
|
|
512
|
+
throw new Error(`Native binding package version mismatch, expected 0.8.0-beta.6 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
|
|
513
|
+
}
|
|
514
|
+
return binding
|
|
515
|
+
} catch (e) {
|
|
516
|
+
loadErrors.push(e)
|
|
517
|
+
}
|
|
518
|
+
} else {
|
|
519
|
+
loadErrors.push(new Error(`Unsupported architecture on OpenHarmony: ${process.arch}`))
|
|
520
|
+
}
|
|
521
|
+
} else {
|
|
522
|
+
loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`))
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
nativeBinding = requireNative()
|
|
527
|
+
|
|
528
|
+
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
529
|
+
let wasiBinding = null
|
|
530
|
+
let wasiBindingError = null
|
|
531
|
+
try {
|
|
532
|
+
wasiBinding = require('./mcp-mesh-core.wasi.cjs')
|
|
533
|
+
nativeBinding = wasiBinding
|
|
534
|
+
} catch (err) {
|
|
535
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
536
|
+
wasiBindingError = err
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
540
|
+
try {
|
|
541
|
+
wasiBinding = require('@mcpmesh/core-wasm32-wasi')
|
|
542
|
+
nativeBinding = wasiBinding
|
|
543
|
+
} catch (err) {
|
|
544
|
+
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
545
|
+
if (!wasiBindingError) {
|
|
546
|
+
wasiBindingError = err
|
|
547
|
+
} else {
|
|
548
|
+
wasiBindingError.cause = err
|
|
549
|
+
}
|
|
550
|
+
loadErrors.push(err)
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
if (process.env.NAPI_RS_FORCE_WASI === 'error' && !wasiBinding) {
|
|
555
|
+
const error = new Error('WASI binding not found and NAPI_RS_FORCE_WASI is set to error')
|
|
556
|
+
error.cause = wasiBindingError
|
|
557
|
+
throw error
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
if (!nativeBinding) {
|
|
562
|
+
if (loadErrors.length > 0) {
|
|
563
|
+
throw new Error(
|
|
564
|
+
`Cannot find native binding. ` +
|
|
565
|
+
`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +
|
|
566
|
+
'Please try `npm i` again after removing both package-lock.json and node_modules directory.',
|
|
567
|
+
{
|
|
568
|
+
cause: loadErrors.reduce((err, cur) => {
|
|
569
|
+
cur.cause = err
|
|
570
|
+
return cur
|
|
571
|
+
}),
|
|
572
|
+
},
|
|
573
|
+
)
|
|
574
|
+
}
|
|
575
|
+
throw new Error(`Failed to load native binding`)
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
module.exports = nativeBinding
|
|
579
|
+
module.exports.JsAgentHandle = nativeBinding.JsAgentHandle
|
|
580
|
+
module.exports.autoDetectIp = nativeBinding.autoDetectIp
|
|
581
|
+
module.exports.getDefault = nativeBinding.getDefault
|
|
582
|
+
module.exports.getEnvVar = nativeBinding.getEnvVar
|
|
583
|
+
module.exports.getRedisUrl = nativeBinding.getRedisUrl
|
|
584
|
+
module.exports.initTracePublisher = nativeBinding.initTracePublisher
|
|
585
|
+
module.exports.isTracePublisherAvailable = nativeBinding.isTracePublisherAvailable
|
|
586
|
+
module.exports.isTracingEnabled = nativeBinding.isTracingEnabled
|
|
587
|
+
module.exports.publishSpan = nativeBinding.publishSpan
|
|
588
|
+
module.exports.resolveConfig = nativeBinding.resolveConfig
|
|
589
|
+
module.exports.resolveConfigBool = nativeBinding.resolveConfigBool
|
|
590
|
+
module.exports.resolveConfigInt = nativeBinding.resolveConfigInt
|
|
591
|
+
module.exports.startAgent = nativeBinding.startAgent
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mcpmesh/core",
|
|
3
|
+
"version": "0.8.0-beta.6",
|
|
4
|
+
"description": "MCP Mesh Rust core bindings for Node.js",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"napi": {
|
|
8
|
+
"binaryName": "mcp-mesh-core",
|
|
9
|
+
"targets": [
|
|
10
|
+
"aarch64-apple-darwin",
|
|
11
|
+
"x86_64-apple-darwin",
|
|
12
|
+
"x86_64-unknown-linux-gnu",
|
|
13
|
+
"aarch64-unknown-linux-gnu",
|
|
14
|
+
"x86_64-pc-windows-msvc"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@napi-rs/cli": "^3.5.1"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"artifacts": "napi artifacts",
|
|
23
|
+
"build": "napi build --platform --release --manifest-path ../Cargo.toml --features typescript --no-default-features -o .",
|
|
24
|
+
"build:debug": "napi build --platform --manifest-path ../Cargo.toml --features typescript --no-default-features -o .",
|
|
25
|
+
"prepublishOnly": "napi prepublish -t npm",
|
|
26
|
+
"universal": "napi universal",
|
|
27
|
+
"version": "napi version"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"index.js",
|
|
31
|
+
"index.d.ts",
|
|
32
|
+
"*.node"
|
|
33
|
+
],
|
|
34
|
+
"repository": {
|
|
35
|
+
"type": "git",
|
|
36
|
+
"url": "https://github.com/mcp-mesh/mcp-mesh"
|
|
37
|
+
},
|
|
38
|
+
"keywords": [
|
|
39
|
+
"mcp",
|
|
40
|
+
"mesh",
|
|
41
|
+
"agent",
|
|
42
|
+
"napi",
|
|
43
|
+
"rust"
|
|
44
|
+
]
|
|
45
|
+
}
|