@standardbeagle/mcp-tui 0.5.0 → 0.7.0
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/CHANGELOG.md +191 -0
- package/QUICK_START.md +425 -0
- package/README.md +61 -10
- package/bin/mcp-tui +0 -0
- package/bin/mcp-tui-local +0 -0
- package/examples/CONFIG_REFERENCE.md +363 -0
- package/examples/claude-desktop-config.json +66 -0
- package/examples/development-preset.json +50 -0
- package/examples/mcp-config.json +83 -0
- package/examples/mcp-config.yaml +78 -0
- package/examples/multi-server-config.json +106 -0
- package/examples/multi-transport-config.json +67 -0
- package/examples/production-setup.json +61 -0
- package/examples/single-server-config.json +16 -0
- package/examples/transport-examples.json +140 -0
- package/package.json +16 -5
- package/scripts/install.js +14 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
connection:
|
|
2
|
+
type: stdio
|
|
3
|
+
command: npx
|
|
4
|
+
args:
|
|
5
|
+
- "-y"
|
|
6
|
+
- "@modelcontextprotocol/server-everything"
|
|
7
|
+
- "stdio"
|
|
8
|
+
connection_timeout: 30s
|
|
9
|
+
request_timeout: 30s
|
|
10
|
+
health_check_timeout: 5s
|
|
11
|
+
deny_unsafe_commands: true
|
|
12
|
+
|
|
13
|
+
transport:
|
|
14
|
+
http:
|
|
15
|
+
timeout: 30s
|
|
16
|
+
max_idle_conns: 100
|
|
17
|
+
max_idle_conns_per_host: 10
|
|
18
|
+
idle_conn_timeout: 90s
|
|
19
|
+
tls_min_version: "1.2"
|
|
20
|
+
user_agent: "mcp-tui/0.1.0"
|
|
21
|
+
|
|
22
|
+
stdio:
|
|
23
|
+
command_validation: true
|
|
24
|
+
max_processes: 10
|
|
25
|
+
process_timeout: 300s
|
|
26
|
+
kill_timeout: 10s
|
|
27
|
+
|
|
28
|
+
sse:
|
|
29
|
+
reconnect_interval: 5s
|
|
30
|
+
max_reconnect_attempts: 5
|
|
31
|
+
buffer_size: 8192
|
|
32
|
+
read_timeout: 30s
|
|
33
|
+
write_timeout: 10s
|
|
34
|
+
|
|
35
|
+
session:
|
|
36
|
+
health_check_interval: 30s
|
|
37
|
+
health_check_timeout: 5s
|
|
38
|
+
max_reconnect_attempts: 3
|
|
39
|
+
reconnect_delay: 2s
|
|
40
|
+
reconnect_backoff: exponential
|
|
41
|
+
max_reconnect_delay: 60s
|
|
42
|
+
enable_persistence: false
|
|
43
|
+
persistence_interval: 60s
|
|
44
|
+
|
|
45
|
+
error_handling:
|
|
46
|
+
enable_classification: true
|
|
47
|
+
user_friendly_messages: true
|
|
48
|
+
max_error_history: 1000
|
|
49
|
+
error_reporting: false
|
|
50
|
+
enable_retry: true
|
|
51
|
+
max_retry_attempts: 3
|
|
52
|
+
retry_delay: 1s
|
|
53
|
+
retry_backoff: exponential
|
|
54
|
+
|
|
55
|
+
debug:
|
|
56
|
+
enabled: false
|
|
57
|
+
log_level: info
|
|
58
|
+
event_tracing: false
|
|
59
|
+
max_traced_events: 1000
|
|
60
|
+
http_debugging: false
|
|
61
|
+
http_trace_body: false
|
|
62
|
+
http_trace_headers: false
|
|
63
|
+
pretty_print: true
|
|
64
|
+
colored_output: true
|
|
65
|
+
timestamp_format: "2006-01-02T15:04:05Z07:00"
|
|
66
|
+
export_events: false
|
|
67
|
+
export_format: json
|
|
68
|
+
|
|
69
|
+
cli:
|
|
70
|
+
output_format: table
|
|
71
|
+
quiet_mode: false
|
|
72
|
+
verbose_mode: false
|
|
73
|
+
no_color: false
|
|
74
|
+
show_progress: true
|
|
75
|
+
progress_style: bar
|
|
76
|
+
enable_clipboard: true
|
|
77
|
+
enable_paging: true
|
|
78
|
+
page_size: 25
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"servers": [
|
|
3
|
+
{
|
|
4
|
+
"name": "filesystem",
|
|
5
|
+
"connection": {
|
|
6
|
+
"type": "stdio",
|
|
7
|
+
"command": "npx",
|
|
8
|
+
"args": [
|
|
9
|
+
"-y",
|
|
10
|
+
"@modelcontextprotocol/server-filesystem",
|
|
11
|
+
"/home/user/projects",
|
|
12
|
+
"/home/user/documents"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"description": "File system access server",
|
|
16
|
+
"enabled": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "weather-api",
|
|
20
|
+
"connection": {
|
|
21
|
+
"type": "http",
|
|
22
|
+
"url": "http://localhost:8000/mcp"
|
|
23
|
+
},
|
|
24
|
+
"description": "Weather data API server",
|
|
25
|
+
"enabled": true,
|
|
26
|
+
"transport": {
|
|
27
|
+
"http": {
|
|
28
|
+
"headers": {
|
|
29
|
+
"Authorization": "Bearer ${WEATHER_API_KEY}"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "database",
|
|
36
|
+
"connection": {
|
|
37
|
+
"type": "stdio",
|
|
38
|
+
"command": "python",
|
|
39
|
+
"args": [
|
|
40
|
+
"/opt/mcp-servers/database/server.py",
|
|
41
|
+
"--config",
|
|
42
|
+
"/etc/mcp/database.conf"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"description": "Database access server",
|
|
46
|
+
"enabled": true,
|
|
47
|
+
"session": {
|
|
48
|
+
"health_check_interval": "60s",
|
|
49
|
+
"max_reconnect_attempts": 5
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "realtime-data",
|
|
54
|
+
"connection": {
|
|
55
|
+
"type": "sse",
|
|
56
|
+
"url": "http://localhost:3000/sse",
|
|
57
|
+
"headers": {
|
|
58
|
+
"X-API-Key": "${REALTIME_API_KEY}"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"description": "Real-time data streaming server",
|
|
62
|
+
"enabled": true,
|
|
63
|
+
"transport": {
|
|
64
|
+
"sse": {
|
|
65
|
+
"reconnect_interval": "10s",
|
|
66
|
+
"max_reconnect_attempts": 10,
|
|
67
|
+
"buffer_size": 16384
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "development-server",
|
|
73
|
+
"connection": {
|
|
74
|
+
"type": "stdio",
|
|
75
|
+
"command": "./dev-server",
|
|
76
|
+
"args": ["--mcp", "--verbose"],
|
|
77
|
+
"working_directory": "/home/user/dev/my-mcp-server"
|
|
78
|
+
},
|
|
79
|
+
"description": "Local development MCP server",
|
|
80
|
+
"enabled": false,
|
|
81
|
+
"debug": {
|
|
82
|
+
"enabled": true,
|
|
83
|
+
"log_level": "debug"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"defaults": {
|
|
88
|
+
"connection": {
|
|
89
|
+
"connection_timeout": "30s",
|
|
90
|
+
"request_timeout": "30s",
|
|
91
|
+
"health_check_timeout": "5s"
|
|
92
|
+
},
|
|
93
|
+
"session": {
|
|
94
|
+
"health_check_interval": "30s",
|
|
95
|
+
"max_reconnect_attempts": 3,
|
|
96
|
+
"reconnect_delay": "2s",
|
|
97
|
+
"reconnect_backoff": "exponential"
|
|
98
|
+
},
|
|
99
|
+
"error_handling": {
|
|
100
|
+
"enable_classification": true,
|
|
101
|
+
"user_friendly_messages": true,
|
|
102
|
+
"enable_retry": true,
|
|
103
|
+
"max_retry_attempts": 3
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"defaultServer": "filesystem",
|
|
4
|
+
"servers": {
|
|
5
|
+
"filesystem": {
|
|
6
|
+
"id": "filesystem",
|
|
7
|
+
"name": "Local Filesystem",
|
|
8
|
+
"description": "Access local files and directories",
|
|
9
|
+
"icon": "📁",
|
|
10
|
+
"transport": "stdio",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/workspace"],
|
|
13
|
+
"success": false,
|
|
14
|
+
"tags": ["local", "files"]
|
|
15
|
+
},
|
|
16
|
+
"api-server": {
|
|
17
|
+
"id": "api-server",
|
|
18
|
+
"name": "API Gateway",
|
|
19
|
+
"description": "REST API integration server",
|
|
20
|
+
"icon": "🌐",
|
|
21
|
+
"transport": "http",
|
|
22
|
+
"url": "http://localhost:8080/mcp",
|
|
23
|
+
"headers": {
|
|
24
|
+
"X-API-Key": "${env:API_KEY}",
|
|
25
|
+
"Content-Type": "application/json"
|
|
26
|
+
},
|
|
27
|
+
"success": false,
|
|
28
|
+
"tags": ["api", "remote"]
|
|
29
|
+
},
|
|
30
|
+
"event-stream": {
|
|
31
|
+
"id": "event-stream",
|
|
32
|
+
"name": "Event Stream Server",
|
|
33
|
+
"description": "Real-time event streaming via SSE",
|
|
34
|
+
"icon": "⚡",
|
|
35
|
+
"transport": "sse",
|
|
36
|
+
"url": "http://localhost:3000/sse",
|
|
37
|
+
"headers": {
|
|
38
|
+
"Authorization": "Bearer ${env:EVENT_TOKEN}"
|
|
39
|
+
},
|
|
40
|
+
"success": false,
|
|
41
|
+
"tags": ["events", "realtime"]
|
|
42
|
+
},
|
|
43
|
+
"memory": {
|
|
44
|
+
"id": "memory",
|
|
45
|
+
"name": "Memory Server",
|
|
46
|
+
"description": "Persistent memory storage",
|
|
47
|
+
"icon": "🧠",
|
|
48
|
+
"transport": "stdio",
|
|
49
|
+
"command": "docker",
|
|
50
|
+
"args": ["run", "-i", "--rm", "-v", "mcp-memory:/data", "mcp/memory-server"],
|
|
51
|
+
"success": false,
|
|
52
|
+
"tags": ["memory", "docker"]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"recentConnections": [
|
|
56
|
+
{
|
|
57
|
+
"serverId": "filesystem",
|
|
58
|
+
"lastUsed": "2025-01-12T10:30:00Z",
|
|
59
|
+
"success": true
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"serverId": "api-server",
|
|
63
|
+
"lastUsed": "2025-01-12T09:15:00Z",
|
|
64
|
+
"success": true
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"servers": {
|
|
4
|
+
"auth-service": {
|
|
5
|
+
"id": "auth-service",
|
|
6
|
+
"name": "Authentication Service",
|
|
7
|
+
"description": "Production authentication API",
|
|
8
|
+
"icon": "🔐",
|
|
9
|
+
"transport": "http",
|
|
10
|
+
"url": "https://auth.company.com/mcp",
|
|
11
|
+
"headers": {
|
|
12
|
+
"X-Service-Key": "${env:AUTH_SERVICE_KEY}",
|
|
13
|
+
"X-Environment": "production"
|
|
14
|
+
},
|
|
15
|
+
"success": false,
|
|
16
|
+
"tags": ["auth", "production", "api"]
|
|
17
|
+
},
|
|
18
|
+
"user-data": {
|
|
19
|
+
"id": "user-data",
|
|
20
|
+
"name": "User Data Service",
|
|
21
|
+
"description": "Production user data API",
|
|
22
|
+
"icon": "👤",
|
|
23
|
+
"transport": "http",
|
|
24
|
+
"url": "https://users.company.com/mcp",
|
|
25
|
+
"headers": {
|
|
26
|
+
"Authorization": "Bearer ${env:USER_SERVICE_TOKEN}",
|
|
27
|
+
"X-Client-Version": "1.0.0"
|
|
28
|
+
},
|
|
29
|
+
"success": false,
|
|
30
|
+
"tags": ["users", "production", "api"]
|
|
31
|
+
},
|
|
32
|
+
"monitoring": {
|
|
33
|
+
"id": "monitoring",
|
|
34
|
+
"name": "Monitoring Events",
|
|
35
|
+
"description": "Real-time monitoring and alerts",
|
|
36
|
+
"icon": "📊",
|
|
37
|
+
"transport": "sse",
|
|
38
|
+
"url": "https://monitor.company.com/events",
|
|
39
|
+
"headers": {
|
|
40
|
+
"Authorization": "Bearer ${env:MONITOR_TOKEN}",
|
|
41
|
+
"X-Stream-Type": "alerts"
|
|
42
|
+
},
|
|
43
|
+
"success": false,
|
|
44
|
+
"tags": ["monitoring", "production", "events"]
|
|
45
|
+
},
|
|
46
|
+
"analytics": {
|
|
47
|
+
"id": "analytics",
|
|
48
|
+
"name": "Analytics Database",
|
|
49
|
+
"description": "Production analytics PostgreSQL",
|
|
50
|
+
"icon": "🐘",
|
|
51
|
+
"transport": "stdio",
|
|
52
|
+
"command": "npx",
|
|
53
|
+
"args": ["-y", "@modelcontextprotocol/server-postgres", "${env:ANALYTICS_DB_URL}"],
|
|
54
|
+
"environment": {
|
|
55
|
+
"PGPASSWORD": "${env:ANALYTICS_DB_PASSWORD}"
|
|
56
|
+
},
|
|
57
|
+
"success": false,
|
|
58
|
+
"tags": ["analytics", "production", "database"]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"defaultServer": "everything",
|
|
4
|
+
"servers": {
|
|
5
|
+
"everything": {
|
|
6
|
+
"id": "everything",
|
|
7
|
+
"name": "Everything Server",
|
|
8
|
+
"description": "Official MCP server with everything for testing",
|
|
9
|
+
"icon": "🌟",
|
|
10
|
+
"transport": "stdio",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": ["-y", "@modelcontextprotocol/server-everything", "stdio"],
|
|
13
|
+
"success": false
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
{
|
|
2
|
+
"stdio_examples": {
|
|
3
|
+
"npm_package": {
|
|
4
|
+
"connection": {
|
|
5
|
+
"type": "stdio",
|
|
6
|
+
"command": "npx",
|
|
7
|
+
"args": ["-y", "@modelcontextprotocol/server-everything", "stdio"]
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
"python_server": {
|
|
11
|
+
"connection": {
|
|
12
|
+
"type": "stdio",
|
|
13
|
+
"command": "python",
|
|
14
|
+
"args": ["server.py", "--mode", "mcp"]
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"node_server": {
|
|
18
|
+
"connection": {
|
|
19
|
+
"type": "stdio",
|
|
20
|
+
"command": "node",
|
|
21
|
+
"args": ["dist/index.js"]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"go_binary": {
|
|
25
|
+
"connection": {
|
|
26
|
+
"type": "stdio",
|
|
27
|
+
"command": "./mcp-server",
|
|
28
|
+
"args": ["--config", "server.conf"]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"docker_container": {
|
|
32
|
+
"connection": {
|
|
33
|
+
"type": "stdio",
|
|
34
|
+
"command": "docker",
|
|
35
|
+
"args": ["run", "-i", "my-mcp-server:latest"]
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
"http_examples": {
|
|
41
|
+
"basic_http": {
|
|
42
|
+
"connection": {
|
|
43
|
+
"type": "http",
|
|
44
|
+
"url": "http://localhost:8080/mcp"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"https_with_auth": {
|
|
48
|
+
"connection": {
|
|
49
|
+
"type": "http",
|
|
50
|
+
"url": "https://api.example.com/mcp",
|
|
51
|
+
"headers": {
|
|
52
|
+
"Authorization": "Bearer ${API_TOKEN}",
|
|
53
|
+
"X-API-Version": "2025-01-01"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"transport": {
|
|
57
|
+
"http": {
|
|
58
|
+
"tls_min_version": "1.3",
|
|
59
|
+
"timeout": "60s"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"http_with_proxy": {
|
|
64
|
+
"connection": {
|
|
65
|
+
"type": "http",
|
|
66
|
+
"url": "http://internal.corp.com/mcp"
|
|
67
|
+
},
|
|
68
|
+
"transport": {
|
|
69
|
+
"http": {
|
|
70
|
+
"proxy_url": "http://proxy.corp.com:8080",
|
|
71
|
+
"proxy_headers": {
|
|
72
|
+
"Proxy-Authorization": "Basic ${PROXY_AUTH}"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
"sse_examples": {
|
|
80
|
+
"basic_sse": {
|
|
81
|
+
"connection": {
|
|
82
|
+
"type": "sse",
|
|
83
|
+
"url": "http://localhost:3000/sse"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"sse_with_auth": {
|
|
87
|
+
"connection": {
|
|
88
|
+
"type": "sse",
|
|
89
|
+
"url": "https://stream.example.com/mcp/sse",
|
|
90
|
+
"headers": {
|
|
91
|
+
"Authorization": "Bearer ${STREAM_TOKEN}"
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
"transport": {
|
|
95
|
+
"sse": {
|
|
96
|
+
"reconnect_interval": "5s",
|
|
97
|
+
"max_reconnect_attempts": 10,
|
|
98
|
+
"buffer_size": 16384,
|
|
99
|
+
"read_timeout": "0s"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"sse_with_event_filtering": {
|
|
104
|
+
"connection": {
|
|
105
|
+
"type": "sse",
|
|
106
|
+
"url": "http://localhost:3000/events"
|
|
107
|
+
},
|
|
108
|
+
"transport": {
|
|
109
|
+
"sse": {
|
|
110
|
+
"event_types": ["tool", "resource", "log"],
|
|
111
|
+
"ignore_events": ["heartbeat", "ping"]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
"streamable_http_examples": {
|
|
118
|
+
"basic_streamable": {
|
|
119
|
+
"connection": {
|
|
120
|
+
"type": "streamable-http",
|
|
121
|
+
"url": "http://localhost:8080/mcp/stream"
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"streamable_with_chunking": {
|
|
125
|
+
"connection": {
|
|
126
|
+
"type": "streamable-http",
|
|
127
|
+
"url": "https://api.example.com/v2/mcp"
|
|
128
|
+
},
|
|
129
|
+
"transport": {
|
|
130
|
+
"http": {
|
|
131
|
+
"timeout": "0s",
|
|
132
|
+
"default_headers": {
|
|
133
|
+
"Accept": "application/x-ndjson",
|
|
134
|
+
"X-Stream-Mode": "chunked"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
package/package.json
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@standardbeagle/mcp-tui",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A Terminal User Interface (TUI) and CLI for Model Context Protocol (MCP) servers",
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "A comprehensive Terminal User Interface (TUI) and Command Line Interface (CLI) for Model Context Protocol (MCP) servers with full tool, prompt, and resource management",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"mcp-tui": "bin/mcp-tui.js"
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
10
|
"postinstall": "node scripts/install.js",
|
|
11
|
-
"test": "
|
|
11
|
+
"test": "go test ./...",
|
|
12
|
+
"build": "go build -o bin/mcp-tui .",
|
|
13
|
+
"prepare": "npm run build"
|
|
12
14
|
},
|
|
13
15
|
"repository": {
|
|
14
16
|
"type": "git",
|
|
@@ -21,7 +23,13 @@
|
|
|
21
23
|
"terminal",
|
|
22
24
|
"cli",
|
|
23
25
|
"ai",
|
|
24
|
-
"llm"
|
|
26
|
+
"llm",
|
|
27
|
+
"tools",
|
|
28
|
+
"prompts",
|
|
29
|
+
"resources",
|
|
30
|
+
"server-testing",
|
|
31
|
+
"debugging",
|
|
32
|
+
"development"
|
|
25
33
|
],
|
|
26
34
|
"author": "standardbeagle",
|
|
27
35
|
"license": "MIT",
|
|
@@ -36,8 +44,11 @@
|
|
|
36
44
|
"files": [
|
|
37
45
|
"bin/",
|
|
38
46
|
"scripts/",
|
|
47
|
+
"examples/",
|
|
39
48
|
"README.md",
|
|
40
|
-
"LICENSE"
|
|
49
|
+
"LICENSE",
|
|
50
|
+
"CHANGELOG.md",
|
|
51
|
+
"QUICK_START.md"
|
|
41
52
|
],
|
|
42
53
|
"engines": {
|
|
43
54
|
"node": ">=14.0.0"
|
package/scripts/install.js
CHANGED
|
@@ -61,6 +61,20 @@ async function downloadBinary() {
|
|
|
61
61
|
fs.mkdirSync(binariesDir, { recursive: true });
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
// Check if binary is already included in the npm package
|
|
65
|
+
const includedBinaryPath = path.join(__dirname, '..', 'bin', binaryName);
|
|
66
|
+
if (fs.existsSync(includedBinaryPath)) {
|
|
67
|
+
console.log('Using pre-built binary from package...');
|
|
68
|
+
// Copy the binary to the expected location
|
|
69
|
+
fs.copyFileSync(includedBinaryPath, binaryPath);
|
|
70
|
+
// Make binary executable
|
|
71
|
+
if (process.platform !== 'win32') {
|
|
72
|
+
fs.chmodSync(binaryPath, 0o755);
|
|
73
|
+
}
|
|
74
|
+
console.log('Binary installed successfully!');
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
64
78
|
// For development, try to build from source if available
|
|
65
79
|
if (fs.existsSync(path.join(__dirname, '..', '..', 'go.mod'))) {
|
|
66
80
|
console.log('Development mode: Building from source...');
|