langmart-gateway-type3 3.0.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/.env.example +29 -0
- package/README.md +480 -0
- package/dist/bash-tools.d.ts +56 -0
- package/dist/bash-tools.d.ts.map +1 -0
- package/dist/bash-tools.js +188 -0
- package/dist/bash-tools.js.map +1 -0
- package/dist/core-tools.d.ts +94 -0
- package/dist/core-tools.d.ts.map +1 -0
- package/dist/core-tools.js +694 -0
- package/dist/core-tools.js.map +1 -0
- package/dist/debug-utils.d.ts +22 -0
- package/dist/debug-utils.d.ts.map +1 -0
- package/dist/debug-utils.js +37 -0
- package/dist/debug-utils.js.map +1 -0
- package/dist/devops-tools.d.ts +147 -0
- package/dist/devops-tools.d.ts.map +1 -0
- package/dist/devops-tools.js +718 -0
- package/dist/devops-tools.js.map +1 -0
- package/dist/gateway-config.d.ts +56 -0
- package/dist/gateway-config.d.ts.map +1 -0
- package/dist/gateway-config.js +198 -0
- package/dist/gateway-config.js.map +1 -0
- package/dist/gateway-mode.d.ts +58 -0
- package/dist/gateway-mode.d.ts.map +1 -0
- package/dist/gateway-mode.js +240 -0
- package/dist/gateway-mode.js.map +1 -0
- package/dist/gateway-server.d.ts +208 -0
- package/dist/gateway-server.d.ts.map +1 -0
- package/dist/gateway-server.js +1811 -0
- package/dist/gateway-server.js.map +1 -0
- package/dist/headless-session.d.ts +192 -0
- package/dist/headless-session.d.ts.map +1 -0
- package/dist/headless-session.js +584 -0
- package/dist/headless-session.js.map +1 -0
- package/dist/index-server.d.ts +4 -0
- package/dist/index-server.d.ts.map +1 -0
- package/dist/index-server.js +129 -0
- package/dist/index-server.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +101 -0
- package/dist/index.js.map +1 -0
- package/dist/key-vault.d.ts +102 -0
- package/dist/key-vault.d.ts.map +1 -0
- package/dist/key-vault.js +365 -0
- package/dist/key-vault.js.map +1 -0
- package/dist/local-vault.d.ts +195 -0
- package/dist/local-vault.d.ts.map +1 -0
- package/dist/local-vault.js +571 -0
- package/dist/local-vault.js.map +1 -0
- package/dist/marketplace-tools.d.ts +104 -0
- package/dist/marketplace-tools.d.ts.map +1 -0
- package/dist/marketplace-tools.js +2846 -0
- package/dist/marketplace-tools.js.map +1 -0
- package/dist/mcp-manager.d.ts +114 -0
- package/dist/mcp-manager.d.ts.map +1 -0
- package/dist/mcp-manager.js +338 -0
- package/dist/mcp-manager.js.map +1 -0
- package/dist/web-tools.d.ts +86 -0
- package/dist/web-tools.d.ts.map +1 -0
- package/dist/web-tools.js +431 -0
- package/dist/web-tools.js.map +1 -0
- package/dist/websocket-handler.d.ts +131 -0
- package/dist/websocket-handler.d.ts.map +1 -0
- package/dist/websocket-handler.js +596 -0
- package/dist/websocket-handler.js.map +1 -0
- package/dist/welcome-pages.d.ts +6 -0
- package/dist/welcome-pages.d.ts.map +1 -0
- package/dist/welcome-pages.js +200 -0
- package/dist/welcome-pages.js.map +1 -0
- package/package.json +168 -0
- package/scripts/install-remote.sh +282 -0
- package/scripts/start.sh +85 -0
- package/scripts/status.sh +79 -0
- package/scripts/stop.sh +67 -0
package/scripts/start.sh
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Start Gateway Type 3 in background with SSH disconnect protection
|
|
3
|
+
|
|
4
|
+
# Colors
|
|
5
|
+
GREEN='\033[0;32m'
|
|
6
|
+
YELLOW='\033[1;33m'
|
|
7
|
+
RED='\033[0;31m'
|
|
8
|
+
BLUE='\033[0;34m'
|
|
9
|
+
CYAN='\033[0;36m'
|
|
10
|
+
NC='\033[0m' # No Color
|
|
11
|
+
|
|
12
|
+
# Configuration
|
|
13
|
+
GATEWAY_PORT=8083
|
|
14
|
+
LOG_FILE="/tmp/gw3.log"
|
|
15
|
+
PID_FILE="/tmp/gw3.pid"
|
|
16
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
17
|
+
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
18
|
+
|
|
19
|
+
# Detect host IP
|
|
20
|
+
HOST_IP=$(hostname -I | awk '{print $1}')
|
|
21
|
+
if [ -z "$HOST_IP" ]; then
|
|
22
|
+
HOST_IP="localhost"
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
# Check if already running
|
|
26
|
+
if lsof -i :$GATEWAY_PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
27
|
+
echo -e "${YELLOW}Gateway Type 3 is already running on port $GATEWAY_PORT${NC}"
|
|
28
|
+
exit 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
# Check if dist folder exists
|
|
32
|
+
if [ ! -d "$PROJECT_DIR/dist" ]; then
|
|
33
|
+
echo -e "${YELLOW}Building TypeScript...${NC}"
|
|
34
|
+
cd "$PROJECT_DIR"
|
|
35
|
+
npm run build > /dev/null 2>&1 || echo -e "${RED}Build warnings (may be ignored)${NC}"
|
|
36
|
+
fi
|
|
37
|
+
|
|
38
|
+
# Change to project directory
|
|
39
|
+
cd "$PROJECT_DIR"
|
|
40
|
+
|
|
41
|
+
# Set environment variables (use existing or defaults)
|
|
42
|
+
export GATEWAY_API_KEY="${GATEWAY_API_KEY:-sk-test-inference-key}"
|
|
43
|
+
export MARKETPLACE_URL="${MARKETPLACE_URL:-ws://$HOST_IP:8081}"
|
|
44
|
+
export GATEWAY_PORT="${GATEWAY_PORT:-8083}"
|
|
45
|
+
|
|
46
|
+
echo -e "${BLUE}Starting Gateway Type 3...${NC}"
|
|
47
|
+
echo -e "${CYAN}Environment:${NC}"
|
|
48
|
+
echo -e " Port: $GATEWAY_PORT"
|
|
49
|
+
echo -e " Marketplace: $MARKETPLACE_URL"
|
|
50
|
+
echo -e " API Key: ${GATEWAY_API_KEY:0:10}..."
|
|
51
|
+
|
|
52
|
+
# Start gateway with nohup for SSH disconnect protection
|
|
53
|
+
nohup node dist/index-server.js > "$LOG_FILE" 2>&1 &
|
|
54
|
+
GATEWAY_PID=$!
|
|
55
|
+
|
|
56
|
+
# Save PID to file
|
|
57
|
+
echo $GATEWAY_PID > "$PID_FILE"
|
|
58
|
+
|
|
59
|
+
echo -e "${GREEN}✅ Gateway Type 3 started (PID: $GATEWAY_PID)${NC}"
|
|
60
|
+
echo -e "${GREEN}✅ Protected from SSH disconnection (nohup)${NC}"
|
|
61
|
+
echo -e "${CYAN}Logs: $LOG_FILE${NC}"
|
|
62
|
+
echo -e "${CYAN}PID File: $PID_FILE${NC}"
|
|
63
|
+
|
|
64
|
+
# Wait for gateway to start
|
|
65
|
+
echo -e "${YELLOW}Waiting for Gateway Type 3 to start...${NC}"
|
|
66
|
+
sleep 2
|
|
67
|
+
|
|
68
|
+
# Check health
|
|
69
|
+
RETRIES=0
|
|
70
|
+
MAX_RETRIES=10
|
|
71
|
+
while [ $RETRIES -lt $MAX_RETRIES ]; do
|
|
72
|
+
if curl -s "http://$HOST_IP:$GATEWAY_PORT/health" > /dev/null 2>&1; then
|
|
73
|
+
echo -e "${GREEN}✅ Gateway Type 3 is healthy${NC}"
|
|
74
|
+
echo -e "${CYAN}Management API: http://$HOST_IP:$GATEWAY_PORT${NC}"
|
|
75
|
+
exit 0
|
|
76
|
+
fi
|
|
77
|
+
sleep 1
|
|
78
|
+
RETRIES=$((RETRIES + 1))
|
|
79
|
+
echo -n "."
|
|
80
|
+
done
|
|
81
|
+
|
|
82
|
+
echo ""
|
|
83
|
+
echo -e "${RED}❌ Gateway failed to start within timeout${NC}"
|
|
84
|
+
echo -e "${CYAN}Check logs: tail -f $LOG_FILE${NC}"
|
|
85
|
+
exit 1
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Check Gateway Type 3 status
|
|
3
|
+
|
|
4
|
+
# Colors
|
|
5
|
+
GREEN='\033[0;32m'
|
|
6
|
+
YELLOW='\033[1;33m'
|
|
7
|
+
RED='\033[0;31m'
|
|
8
|
+
CYAN='\033[0;36m'
|
|
9
|
+
NC='\033[0m' # No Color
|
|
10
|
+
|
|
11
|
+
# Configuration
|
|
12
|
+
GATEWAY_PORT=8083
|
|
13
|
+
PID_FILE="/tmp/gw3.pid"
|
|
14
|
+
LOG_FILE="/tmp/gw3.log"
|
|
15
|
+
|
|
16
|
+
# Detect host IP
|
|
17
|
+
HOST_IP=$(hostname -I | awk '{print $1}')
|
|
18
|
+
if [ -z "$HOST_IP" ]; then
|
|
19
|
+
HOST_IP="localhost"
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
23
|
+
echo -e "${CYAN} Gateway Type 3 Status${NC}"
|
|
24
|
+
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
25
|
+
|
|
26
|
+
# Check if port is in use
|
|
27
|
+
if lsof -i :$GATEWAY_PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
28
|
+
PID=$(lsof -ti :$GATEWAY_PORT)
|
|
29
|
+
echo -e "Status: ${GREEN}● Running${NC}"
|
|
30
|
+
echo -e "PID: ${GREEN}$PID${NC}"
|
|
31
|
+
echo -e "Port: ${GREEN}$GATEWAY_PORT${NC}"
|
|
32
|
+
|
|
33
|
+
# Check health endpoint
|
|
34
|
+
if curl -s "http://$HOST_IP:$GATEWAY_PORT/health" > /dev/null 2>&1; then
|
|
35
|
+
echo -e "Health: ${GREEN}✓ Healthy${NC}"
|
|
36
|
+
echo -e "Management API: ${CYAN}http://$HOST_IP:$GATEWAY_PORT${NC}"
|
|
37
|
+
else
|
|
38
|
+
echo -e "Health: ${YELLOW}⚠ Port open but API not responding${NC}"
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
# Show PID file status
|
|
42
|
+
if [ -f "$PID_FILE" ]; then
|
|
43
|
+
SAVED_PID=$(cat "$PID_FILE")
|
|
44
|
+
if [ "$PID" = "$SAVED_PID" ]; then
|
|
45
|
+
echo -e "PID File: ${GREEN}✓ Match ($PID_FILE)${NC}"
|
|
46
|
+
else
|
|
47
|
+
echo -e "PID File: ${YELLOW}⚠ Mismatch (saved: $SAVED_PID, actual: $PID)${NC}"
|
|
48
|
+
fi
|
|
49
|
+
else
|
|
50
|
+
echo -e "PID File: ${YELLOW}⚠ Not found${NC}"
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
# Show log file
|
|
54
|
+
if [ -f "$LOG_FILE" ]; then
|
|
55
|
+
echo -e "Logs: ${CYAN}$LOG_FILE${NC}"
|
|
56
|
+
LOG_SIZE=$(du -h "$LOG_FILE" | cut -f1)
|
|
57
|
+
echo -e "Log Size: ${CYAN}$LOG_SIZE${NC}"
|
|
58
|
+
fi
|
|
59
|
+
else
|
|
60
|
+
echo -e "Status: ${RED}● Not Running${NC}"
|
|
61
|
+
echo -e "Port: ${RED}$GATEWAY_PORT (not in use)${NC}"
|
|
62
|
+
|
|
63
|
+
# Check PID file
|
|
64
|
+
if [ -f "$PID_FILE" ]; then
|
|
65
|
+
echo -e "PID File: ${YELLOW}⚠ Exists but process not running (stale)${NC}"
|
|
66
|
+
echo -e " ${CYAN}Run 'npm run stop' to clean up${NC}"
|
|
67
|
+
fi
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
|
|
71
|
+
echo -e ""
|
|
72
|
+
echo -e "${CYAN}Commands:${NC}"
|
|
73
|
+
echo -e " npm start - Start gateway in background"
|
|
74
|
+
echo -e " npm stop - Stop gateway gracefully"
|
|
75
|
+
echo -e " npm restart - Restart gateway"
|
|
76
|
+
echo -e " npm run status - Show this status"
|
|
77
|
+
echo -e " npm run ui - Start interactive UI"
|
|
78
|
+
echo -e " npm run self - Start interactive UI (short form)"
|
|
79
|
+
echo -e ""
|
package/scripts/stop.sh
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Stop Gateway Type 3 gracefully
|
|
3
|
+
|
|
4
|
+
# Colors
|
|
5
|
+
GREEN='\033[0;32m'
|
|
6
|
+
YELLOW='\033[1;33m'
|
|
7
|
+
RED='\033[0;31m'
|
|
8
|
+
BLUE='\033[0;34m'
|
|
9
|
+
NC='\033[0m' # No Color
|
|
10
|
+
|
|
11
|
+
# Configuration
|
|
12
|
+
GATEWAY_PORT=8083
|
|
13
|
+
PID_FILE="/tmp/gw3.pid"
|
|
14
|
+
|
|
15
|
+
# Detect host IP
|
|
16
|
+
HOST_IP=$(hostname -I | awk '{print $1}')
|
|
17
|
+
if [ -z "$HOST_IP" ]; then
|
|
18
|
+
HOST_IP="localhost"
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
echo -e "${BLUE}Stopping Gateway Type 3...${NC}"
|
|
22
|
+
|
|
23
|
+
# Check if running
|
|
24
|
+
if ! lsof -i :$GATEWAY_PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
25
|
+
echo -e "${YELLOW}Gateway Type 3 is not running${NC}"
|
|
26
|
+
# Clean up PID file if exists
|
|
27
|
+
[ -f "$PID_FILE" ] && rm -f "$PID_FILE"
|
|
28
|
+
exit 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
# Try graceful shutdown via management API
|
|
32
|
+
echo -e "${YELLOW}Attempting graceful shutdown via API...${NC}"
|
|
33
|
+
if curl -s -X POST "http://$HOST_IP:$GATEWAY_PORT/shutdown" > /dev/null 2>&1; then
|
|
34
|
+
echo -e "${GREEN}✅ Shutdown signal sent${NC}"
|
|
35
|
+
|
|
36
|
+
# Wait for graceful shutdown
|
|
37
|
+
sleep 2
|
|
38
|
+
|
|
39
|
+
# Check if it stopped
|
|
40
|
+
if ! lsof -i :$GATEWAY_PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
41
|
+
echo -e "${GREEN}✅ Gateway Type 3 stopped gracefully${NC}"
|
|
42
|
+
rm -f "$PID_FILE"
|
|
43
|
+
exit 0
|
|
44
|
+
fi
|
|
45
|
+
fi
|
|
46
|
+
|
|
47
|
+
# Fallback: Force kill using port
|
|
48
|
+
echo -e "${YELLOW}Graceful shutdown failed, forcing stop...${NC}"
|
|
49
|
+
PIDS=$(lsof -ti :$GATEWAY_PORT 2>/dev/null)
|
|
50
|
+
|
|
51
|
+
if [ -n "$PIDS" ]; then
|
|
52
|
+
kill -9 $PIDS 2>/dev/null
|
|
53
|
+
sleep 1
|
|
54
|
+
|
|
55
|
+
if ! lsof -i :$GATEWAY_PORT -sTCP:LISTEN -t >/dev/null 2>&1; then
|
|
56
|
+
echo -e "${GREEN}✅ Gateway Type 3 stopped${NC}"
|
|
57
|
+
rm -f "$PID_FILE"
|
|
58
|
+
exit 0
|
|
59
|
+
else
|
|
60
|
+
echo -e "${RED}❌ Failed to stop Gateway Type 3${NC}"
|
|
61
|
+
exit 1
|
|
62
|
+
fi
|
|
63
|
+
else
|
|
64
|
+
echo -e "${YELLOW}No process found on port $GATEWAY_PORT${NC}"
|
|
65
|
+
rm -f "$PID_FILE"
|
|
66
|
+
exit 0
|
|
67
|
+
fi
|