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.
Files changed (75) hide show
  1. package/.env.example +29 -0
  2. package/README.md +480 -0
  3. package/dist/bash-tools.d.ts +56 -0
  4. package/dist/bash-tools.d.ts.map +1 -0
  5. package/dist/bash-tools.js +188 -0
  6. package/dist/bash-tools.js.map +1 -0
  7. package/dist/core-tools.d.ts +94 -0
  8. package/dist/core-tools.d.ts.map +1 -0
  9. package/dist/core-tools.js +694 -0
  10. package/dist/core-tools.js.map +1 -0
  11. package/dist/debug-utils.d.ts +22 -0
  12. package/dist/debug-utils.d.ts.map +1 -0
  13. package/dist/debug-utils.js +37 -0
  14. package/dist/debug-utils.js.map +1 -0
  15. package/dist/devops-tools.d.ts +147 -0
  16. package/dist/devops-tools.d.ts.map +1 -0
  17. package/dist/devops-tools.js +718 -0
  18. package/dist/devops-tools.js.map +1 -0
  19. package/dist/gateway-config.d.ts +56 -0
  20. package/dist/gateway-config.d.ts.map +1 -0
  21. package/dist/gateway-config.js +198 -0
  22. package/dist/gateway-config.js.map +1 -0
  23. package/dist/gateway-mode.d.ts +58 -0
  24. package/dist/gateway-mode.d.ts.map +1 -0
  25. package/dist/gateway-mode.js +240 -0
  26. package/dist/gateway-mode.js.map +1 -0
  27. package/dist/gateway-server.d.ts +208 -0
  28. package/dist/gateway-server.d.ts.map +1 -0
  29. package/dist/gateway-server.js +1811 -0
  30. package/dist/gateway-server.js.map +1 -0
  31. package/dist/headless-session.d.ts +192 -0
  32. package/dist/headless-session.d.ts.map +1 -0
  33. package/dist/headless-session.js +584 -0
  34. package/dist/headless-session.js.map +1 -0
  35. package/dist/index-server.d.ts +4 -0
  36. package/dist/index-server.d.ts.map +1 -0
  37. package/dist/index-server.js +129 -0
  38. package/dist/index-server.js.map +1 -0
  39. package/dist/index.d.ts +6 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +101 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/key-vault.d.ts +102 -0
  44. package/dist/key-vault.d.ts.map +1 -0
  45. package/dist/key-vault.js +365 -0
  46. package/dist/key-vault.js.map +1 -0
  47. package/dist/local-vault.d.ts +195 -0
  48. package/dist/local-vault.d.ts.map +1 -0
  49. package/dist/local-vault.js +571 -0
  50. package/dist/local-vault.js.map +1 -0
  51. package/dist/marketplace-tools.d.ts +104 -0
  52. package/dist/marketplace-tools.d.ts.map +1 -0
  53. package/dist/marketplace-tools.js +2846 -0
  54. package/dist/marketplace-tools.js.map +1 -0
  55. package/dist/mcp-manager.d.ts +114 -0
  56. package/dist/mcp-manager.d.ts.map +1 -0
  57. package/dist/mcp-manager.js +338 -0
  58. package/dist/mcp-manager.js.map +1 -0
  59. package/dist/web-tools.d.ts +86 -0
  60. package/dist/web-tools.d.ts.map +1 -0
  61. package/dist/web-tools.js +431 -0
  62. package/dist/web-tools.js.map +1 -0
  63. package/dist/websocket-handler.d.ts +131 -0
  64. package/dist/websocket-handler.d.ts.map +1 -0
  65. package/dist/websocket-handler.js +596 -0
  66. package/dist/websocket-handler.js.map +1 -0
  67. package/dist/welcome-pages.d.ts +6 -0
  68. package/dist/welcome-pages.d.ts.map +1 -0
  69. package/dist/welcome-pages.js +200 -0
  70. package/dist/welcome-pages.js.map +1 -0
  71. package/package.json +168 -0
  72. package/scripts/install-remote.sh +282 -0
  73. package/scripts/start.sh +85 -0
  74. package/scripts/status.sh +79 -0
  75. package/scripts/stop.sh +67 -0
@@ -0,0 +1,208 @@
1
+ import { EventEmitter } from 'events';
2
+ import { GatewayMode } from './gateway-mode';
3
+ /**
4
+ * Type 3 Gateway Server
5
+ * Seller-managed gateway deployed on seller's infrastructure
6
+ *
7
+ * Key Differences from Type 2:
8
+ * - Uses local vault for provider credentials (NOT central database)
9
+ * - Seller manages their own API keys
10
+ * - More privacy and control for sellers
11
+ *
12
+ * Similarities to Type 2:
13
+ * - Same WebSocket communication protocol with Type 1
14
+ * - Same request/response format
15
+ * - Same registration and heartbeat mechanisms
16
+ */
17
+ export declare class Type3GatewayServer extends EventEmitter {
18
+ private wss;
19
+ private marketplaceWs;
20
+ private nodeId;
21
+ private instanceId;
22
+ private vault;
23
+ private activeRequests;
24
+ private healthCheckInterval;
25
+ private currentVersion;
26
+ private port;
27
+ private marketplaceUrl;
28
+ private marketplaceApiUrl;
29
+ private managementApp;
30
+ private managementServer;
31
+ private metrics;
32
+ private apiKey;
33
+ private isAuthenticated;
34
+ private currentUser;
35
+ private reconnectInterval;
36
+ private reconnectAttempts;
37
+ private maxReconnectAttempts;
38
+ private reconnectDelay;
39
+ private isShuttingDown;
40
+ private headlessSessionManager;
41
+ private readonly gatewayMode;
42
+ private readonly enableRemoteLLMSession;
43
+ private readonly enableLLMRouting;
44
+ constructor(config: {
45
+ port: number;
46
+ marketplaceUrl?: string;
47
+ instanceId?: string;
48
+ apiKey?: string;
49
+ vaultPath?: string;
50
+ vaultPassword?: string;
51
+ configPath?: string;
52
+ mode?: GatewayMode;
53
+ enableRemoteLLMSession?: boolean;
54
+ enableLLMRouting?: boolean;
55
+ });
56
+ /**
57
+ * Start the Type 3 gateway server
58
+ */
59
+ start(): Promise<void>;
60
+ /**
61
+ * Initialize the headless session manager for remote DevOps automation
62
+ */
63
+ private initializeHeadlessSessionManager;
64
+ /**
65
+ * Setup management REST API endpoints for CLI
66
+ */
67
+ private setupManagementEndpoints;
68
+ /**
69
+ * Start management REST API server
70
+ */
71
+ private startManagementServer;
72
+ /**
73
+ * Format uptime in human-readable format
74
+ */
75
+ private formatUptime;
76
+ /**
77
+ * Connect to marketplace control plane
78
+ */
79
+ private connectToMarketplace;
80
+ /**
81
+ * Load API credentials from local vault
82
+ * KEY DIFFERENCE from Type 2: Reads from local vault instead of receiving from Type 1
83
+ */
84
+ private loadCredentials;
85
+ /**
86
+ * Initialize vault from environment variables using connection_id from database
87
+ */
88
+ private initializeVaultFromEnvironment;
89
+ /**
90
+ * Register gateway with marketplace
91
+ * Includes tool discovery for remote DevOps sessions (if enabled)
92
+ */
93
+ private registerGateway;
94
+ /**
95
+ * Handle messages from marketplace control plane
96
+ */
97
+ private handleMarketplaceMessage;
98
+ /**
99
+ * Handle inference request forwarded from Gateway Type 1
100
+ */
101
+ private handleForwardedInferenceRequest;
102
+ /**
103
+ * Forward request to provider API (non-streaming)
104
+ */
105
+ private forwardToProvider;
106
+ /**
107
+ * Forward streaming request to provider
108
+ */
109
+ private forwardToProviderStreaming;
110
+ /**
111
+ * Get provider-specific headers
112
+ */
113
+ private getProviderHeaders;
114
+ /**
115
+ * Generic HTTP request forwarder
116
+ * Type 3 is ONLY a forwarder - it makes HTTP calls and returns RAW responses
117
+ * Type 1 does all business logic, translation, and storage
118
+ *
119
+ * Message format:
120
+ * {
121
+ * event: 'http_request',
122
+ * requestId: 'uuid',
123
+ * connection_id: 'uuid',
124
+ * method: 'GET' | 'POST' | etc,
125
+ * url: 'http://localhost:11434/api/tags',
126
+ * headers: { ... },
127
+ * body: { ... } (optional)
128
+ * }
129
+ */
130
+ private handleHttpRequest;
131
+ /**
132
+ * Send health status to marketplace
133
+ */
134
+ private sendHealthStatus;
135
+ /**
136
+ * Determine health status
137
+ */
138
+ private determineHealthStatus;
139
+ /**
140
+ * Report rate limits
141
+ */
142
+ private reportRateLimits;
143
+ /**
144
+ * Start health monitoring
145
+ */
146
+ private startHealthMonitoring;
147
+ /**
148
+ * Handle marketplace disconnection
149
+ */
150
+ private handleMarketplaceDisconnection;
151
+ /**
152
+ * Get CPU usage
153
+ */
154
+ private getCpuUsage;
155
+ /**
156
+ * Get test URL for provider
157
+ * Uses /v1/models endpoint for OpenAI-compatible providers
158
+ */
159
+ private getTestUrl;
160
+ /**
161
+ * Handle session start request from Type 1
162
+ */
163
+ private handleSessionStart;
164
+ /**
165
+ * Handle session message from Type 1
166
+ */
167
+ private handleSessionMessage;
168
+ /**
169
+ * Internal method to process session messages with streaming
170
+ * @param modelId - Optional model ID to use for this specific message (overrides session default)
171
+ */
172
+ private processSessionMessageInternal;
173
+ /**
174
+ * Handle session cancel request from Type 1
175
+ */
176
+ private handleSessionCancel;
177
+ /**
178
+ * Handle tool discovery request from Type 1
179
+ */
180
+ private handleGetTools;
181
+ /**
182
+ * Send session error to Type 1
183
+ */
184
+ private sendSessionError;
185
+ /**
186
+ * Send inference error response to Type 1
187
+ */
188
+ private sendErrorResponse;
189
+ /**
190
+ * Handle execute_script request from Type 1
191
+ * Executes a remote server script via SSH
192
+ *
193
+ * SECURITY: This handler includes fixes for:
194
+ * - #1: No hardcoded encryption key fallback
195
+ * - #2/#3: Parameter name/value validation and shell escaping
196
+ * - #4: Working directory path validation
197
+ */
198
+ private handleExecuteScript;
199
+ /**
200
+ * Send script execution error to Type 1
201
+ */
202
+ private sendScriptError;
203
+ /**
204
+ * Graceful shutdown
205
+ */
206
+ gracefulShutdown(): Promise<void>;
207
+ }
208
+ //# sourceMappingURL=gateway-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-server.d.ts","sourceRoot":"","sources":["../gateway-server.ts"],"names":[],"mappings":"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"}