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,584 @@
1
+ "use strict";
2
+ /**
3
+ * Headless Session Manager for Gateway Type 3
4
+ * Manages multi-turn inference sessions without UI for remote DevOps automation
5
+ *
6
+ * Purpose:
7
+ * - Enable Type 1 web chat/API to remotely execute inference sessions on Type 3
8
+ * - Execute MCP tools (bash, file operations) for DevOps tasks
9
+ * - Support streaming responses back to Type 1
10
+ * - Manage session state and conversation history
11
+ */
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.HeadlessSessionManager = void 0;
17
+ const uuid_1 = require("uuid");
18
+ const axios_1 = __importDefault(require("axios"));
19
+ const events_1 = require("events");
20
+ const core_tools_1 = require("./core-tools");
21
+ const web_tools_1 = require("./web-tools");
22
+ const devops_tools_1 = require("./devops-tools");
23
+ const debug_utils_1 = require("./debug-utils");
24
+ // ============= HEADLESS SESSION MANAGER =============
25
+ class HeadlessSessionManager extends events_1.EventEmitter {
26
+ constructor(config) {
27
+ super();
28
+ this.sessions = new Map();
29
+ // Default configuration
30
+ this.DEFAULT_MAX_TURNS = 50;
31
+ this.DEFAULT_TIMEOUT = 30 * 60 * 1000; // 30 minutes
32
+ this.MAX_TOOL_OUTPUT_LENGTH = 10000;
33
+ this.gatewayId = config.gatewayId;
34
+ this.vault = config.vault;
35
+ this.marketplaceUrl = config.marketplaceUrl.replace('ws://', 'http://').replace('wss://', 'https://');
36
+ this.apiKey = config.apiKey;
37
+ // Initialize tool managers
38
+ this.coreTools = core_tools_1.CoreTools.getInstance();
39
+ this.webTools = web_tools_1.WebTools.getInstance();
40
+ this.devOpsTools = devops_tools_1.DevOpsTools.getInstance(this.marketplaceUrl, this.apiKey);
41
+ }
42
+ /**
43
+ * Get all available tools (for tool discovery)
44
+ */
45
+ getAvailableTools() {
46
+ const coreToolDefs = this.coreTools.getTools().map(tool => ({
47
+ type: 'function',
48
+ function: {
49
+ name: tool.name,
50
+ description: tool.description,
51
+ parameters: tool.inputSchema
52
+ }
53
+ }));
54
+ const webToolDefs = this.webTools.getTools().map(tool => ({
55
+ type: 'function',
56
+ function: {
57
+ name: tool.name,
58
+ description: tool.description,
59
+ parameters: tool.inputSchema
60
+ }
61
+ }));
62
+ // DevOps tools are already in the correct format from devops-tools.ts
63
+ const devOpsToolDefs = this.devOpsTools.getTools();
64
+ return [...coreToolDefs, ...webToolDefs, ...devOpsToolDefs];
65
+ }
66
+ /**
67
+ * Start a new headless session
68
+ */
69
+ async startSession(config) {
70
+ const sessionId = config.sessionId || (0, uuid_1.v4)();
71
+ console.log(`[HeadlessSession] Starting session ${sessionId} for user ${config.userId}`);
72
+ // Build system prompt
73
+ const systemPrompt = config.systemPrompt || this.buildDefaultSystemPrompt();
74
+ // Initialize session state
75
+ const session = {
76
+ sessionId,
77
+ gatewayId: this.gatewayId,
78
+ userId: config.userId,
79
+ organizationId: config.organizationId,
80
+ templateId: config.templateId,
81
+ status: 'active',
82
+ messages: [
83
+ {
84
+ role: 'system',
85
+ content: systemPrompt,
86
+ timestamp: new Date().toISOString()
87
+ }
88
+ ],
89
+ modelId: config.modelId || 'default',
90
+ connectionId: config.connectionId || '',
91
+ startedAt: new Date(),
92
+ lastActivityAt: new Date(),
93
+ totalTokens: 0,
94
+ toolCallsCount: 0,
95
+ disabledTools: new Set(config.disabledTools || []) // Set of disabled tools
96
+ };
97
+ console.log(`[HeadlessSession] Session created with disabledTools: [${Array.from(session.disabledTools).join(', ')}]`);
98
+ // Add initial message if provided
99
+ // NOTE: initialMessage is the assistant's greeting/prompt to the user,
100
+ // NOT a user message. It should be role: 'assistant'
101
+ if (config.initialMessage) {
102
+ session.messages.push({
103
+ role: 'assistant',
104
+ content: config.initialMessage,
105
+ timestamp: new Date().toISOString()
106
+ });
107
+ }
108
+ // Store session
109
+ this.sessions.set(sessionId, session);
110
+ // Set session timeout
111
+ const timeout = config.timeout || this.DEFAULT_TIMEOUT;
112
+ setTimeout(() => {
113
+ this.checkSessionTimeout(sessionId);
114
+ }, timeout);
115
+ // Emit session started event
116
+ this.emit('session_started', { sessionId, userId: config.userId });
117
+ // NOTE: initialMessage is already added to session.messages as an assistant greeting.
118
+ // The caller should NOT call processMessage for the initial message.
119
+ // The user's first actual message will trigger the LLM.
120
+ return session;
121
+ }
122
+ /**
123
+ * Process a message in an existing session
124
+ * Handles multi-turn tool calling loop
125
+ * @param modelId - Optional model ID to use for this specific message (overrides session default)
126
+ */
127
+ async processMessage(sessionId, message, onChunk, modelId) {
128
+ const session = this.sessions.get(sessionId);
129
+ if (!session) {
130
+ return {
131
+ sessionId,
132
+ status: 'failed',
133
+ isComplete: true,
134
+ error: 'Session not found'
135
+ };
136
+ }
137
+ if (session.status !== 'active') {
138
+ return {
139
+ sessionId,
140
+ status: session.status,
141
+ isComplete: true,
142
+ error: `Session is ${session.status}`
143
+ };
144
+ }
145
+ // If a per-message modelId is provided, temporarily override the session's modelId
146
+ const originalModelId = session.modelId;
147
+ if (modelId) {
148
+ session.modelId = modelId;
149
+ console.log(`[HeadlessSession] Using per-message model: ${modelId} (session default: ${originalModelId})`);
150
+ }
151
+ // Add user message
152
+ session.messages.push({
153
+ role: 'user',
154
+ content: message,
155
+ timestamp: new Date().toISOString()
156
+ });
157
+ session.lastActivityAt = new Date();
158
+ try {
159
+ // Multi-turn tool calling loop
160
+ const maxTurns = this.DEFAULT_MAX_TURNS;
161
+ let turnCount = 0;
162
+ let toolResults = [];
163
+ let toolCalls = []; // Collect tool calls for UI display
164
+ let requestIds = []; // Collect request IDs from LLM calls
165
+ // Track per-message usage (aggregated across all turns)
166
+ let messageUsage = {
167
+ promptTokens: 0,
168
+ completionTokens: 0,
169
+ totalTokens: 0
170
+ };
171
+ while (turnCount < maxTurns) {
172
+ turnCount++;
173
+ console.log(`[HeadlessSession] Turn ${turnCount} for session ${sessionId} with model ${session.modelId}`);
174
+ // Call LLM
175
+ const llmResponse = await this.callLLM(session, onChunk);
176
+ const response = llmResponse.data;
177
+ // Collect request ID if present
178
+ if (llmResponse.requestId) {
179
+ requestIds.push(llmResponse.requestId);
180
+ }
181
+ // Update token count
182
+ session.totalTokens += response.usage?.total_tokens || 0;
183
+ // Track per-message usage
184
+ if (response.usage) {
185
+ messageUsage.promptTokens += response.usage.prompt_tokens || 0;
186
+ messageUsage.completionTokens += response.usage.completion_tokens || 0;
187
+ messageUsage.totalTokens += response.usage.total_tokens || 0;
188
+ console.log(`[HeadlessSession] Token usage: prompt=${response.usage.prompt_tokens}, completion=${response.usage.completion_tokens}, total=${response.usage.total_tokens}`);
189
+ }
190
+ else {
191
+ console.log(`[HeadlessSession] No usage data in LLM response`);
192
+ }
193
+ const assistantMessage = response.choices?.[0]?.message;
194
+ if (!assistantMessage) {
195
+ throw new Error('No response from LLM');
196
+ }
197
+ // Add assistant message to history
198
+ session.messages.push({
199
+ role: 'assistant',
200
+ content: assistantMessage.content || '',
201
+ timestamp: new Date().toISOString(),
202
+ tool_calls: assistantMessage.tool_calls
203
+ });
204
+ // Check if there are tool calls
205
+ if (assistantMessage.tool_calls && assistantMessage.tool_calls.length > 0) {
206
+ // Collect tool calls for UI display
207
+ toolCalls.push(...assistantMessage.tool_calls);
208
+ // Execute tools
209
+ for (const toolCall of assistantMessage.tool_calls) {
210
+ const result = await this.executeTool(toolCall);
211
+ toolResults.push(result);
212
+ session.toolCallsCount++;
213
+ // Emit tool result
214
+ if (onChunk) {
215
+ onChunk({
216
+ type: 'tool_result',
217
+ toolResult: result,
218
+ sessionId,
219
+ timestamp: new Date().toISOString()
220
+ });
221
+ }
222
+ // Add tool result to messages
223
+ session.messages.push({
224
+ role: 'tool',
225
+ content: result.success ?
226
+ (result.output || 'Tool executed successfully') :
227
+ (result.error || 'Tool execution failed'),
228
+ timestamp: new Date().toISOString(),
229
+ tool_call_id: toolCall.id,
230
+ name: toolCall.function.name
231
+ });
232
+ }
233
+ // Continue loop to get next LLM response
234
+ continue;
235
+ }
236
+ // No tool calls - response is complete
237
+ if (onChunk) {
238
+ onChunk({
239
+ type: 'done',
240
+ sessionId,
241
+ timestamp: new Date().toISOString()
242
+ });
243
+ }
244
+ return {
245
+ sessionId,
246
+ status: 'active',
247
+ message: {
248
+ role: 'assistant',
249
+ content: assistantMessage.content || '',
250
+ timestamp: new Date().toISOString()
251
+ },
252
+ toolResults,
253
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
254
+ isComplete: true,
255
+ requestIds: requestIds.length > 0 ? requestIds : undefined,
256
+ usage: messageUsage.totalTokens > 0 ? messageUsage : undefined
257
+ };
258
+ }
259
+ // Max turns reached
260
+ console.warn(`[HeadlessSession] Max turns (${maxTurns}) reached for session ${sessionId}`);
261
+ return {
262
+ sessionId,
263
+ status: 'active',
264
+ toolResults,
265
+ toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
266
+ isComplete: true,
267
+ error: 'Maximum conversation turns reached',
268
+ usage: messageUsage.totalTokens > 0 ? messageUsage : undefined,
269
+ requestIds: requestIds.length > 0 ? requestIds : undefined
270
+ };
271
+ }
272
+ catch (error) {
273
+ console.error(`[HeadlessSession] Error processing message:`, error.message);
274
+ session.status = 'failed';
275
+ session.errorMessage = error.message;
276
+ return {
277
+ sessionId,
278
+ status: 'failed',
279
+ isComplete: true,
280
+ error: error.message
281
+ };
282
+ }
283
+ }
284
+ /**
285
+ * Cancel an active session
286
+ */
287
+ async cancelSession(sessionId) {
288
+ const session = this.sessions.get(sessionId);
289
+ if (!session) {
290
+ return false;
291
+ }
292
+ session.status = 'cancelled';
293
+ session.completedAt = new Date();
294
+ this.emit('session_cancelled', { sessionId });
295
+ console.log(`[HeadlessSession] Session ${sessionId} cancelled`);
296
+ return true;
297
+ }
298
+ /**
299
+ * Get session state
300
+ */
301
+ getSession(sessionId) {
302
+ return this.sessions.get(sessionId);
303
+ }
304
+ /**
305
+ * Get all active sessions
306
+ */
307
+ getActiveSessions() {
308
+ return Array.from(this.sessions.values())
309
+ .filter(s => s.status === 'active');
310
+ }
311
+ /**
312
+ * Complete a session
313
+ */
314
+ completeSession(sessionId) {
315
+ const session = this.sessions.get(sessionId);
316
+ if (!session || session.status !== 'active') {
317
+ return false;
318
+ }
319
+ session.status = 'completed';
320
+ session.completedAt = new Date();
321
+ this.emit('session_completed', { sessionId });
322
+ console.log(`[HeadlessSession] Session ${sessionId} completed`);
323
+ return true;
324
+ }
325
+ // ============= PRIVATE METHODS =============
326
+ /**
327
+ * Build default system prompt for DevOps automation
328
+ */
329
+ buildDefaultSystemPrompt() {
330
+ return `You are a DevOps automation assistant running on a Type 3 Gateway.
331
+
332
+ You have access to the following tools for system operations:
333
+
334
+ CORE TOOLS (File System):
335
+ - core.read: Read files from the filesystem
336
+ - core.write: Write new files or overwrite existing ones
337
+ - core.edit: Perform exact string replacements in files
338
+ - core.glob: Find files using glob patterns
339
+ - core.grep: Search file contents using regex patterns
340
+
341
+ EXECUTION TOOLS:
342
+ - exec.bash: Execute bash commands in a persistent shell
343
+ - exec.bash_output: Retrieve output from background processes
344
+ - exec.kill_shell: Terminate background processes
345
+
346
+ WEB TOOLS:
347
+ - web.search: Search the web for information
348
+ - web.fetch: Fetch and process web content
349
+
350
+ GUIDELINES:
351
+ 1. Always explain what you're about to do before executing commands
352
+ 2. For destructive operations (delete, overwrite), confirm first
353
+ 3. Report progress after each major step
354
+ 4. If errors occur, analyze them and suggest fixes
355
+ 5. Use appropriate error handling in scripts
356
+ 6. Create backups before modifying critical files
357
+
358
+ When executing tasks:
359
+ - Break down complex tasks into steps
360
+ - Verify prerequisites before proceeding
361
+ - Test changes before declaring success
362
+ - Provide clear status updates
363
+
364
+ You are operating in headless mode - all interactions are through this chat interface.`;
365
+ }
366
+ /**
367
+ * Call LLM via marketplace API
368
+ * Returns both the response data and the request ID for logging
369
+ */
370
+ async callLLM(session, onChunk) {
371
+ // Build messages for API call
372
+ const messages = session.messages.map(m => {
373
+ const msg = { role: m.role, content: m.content };
374
+ if (m.tool_calls)
375
+ msg.tool_calls = m.tool_calls;
376
+ if (m.tool_call_id)
377
+ msg.tool_call_id = m.tool_call_id;
378
+ if (m.name)
379
+ msg.name = m.name;
380
+ return msg;
381
+ });
382
+ // Get available tools, filtering out disabled ones
383
+ const allTools = this.getAvailableTools();
384
+ const tools = allTools.filter(t => !session.disabledTools.has(t.function.name));
385
+ console.log(`[HeadlessSession] LLM call - All tools: ${allTools.length}, Enabled: ${tools.length}, Disabled: [${Array.from(session.disabledTools).join(', ')}]`);
386
+ // Make API call to marketplace
387
+ const url = `${this.marketplaceUrl}/v1/chat/completions`;
388
+ (0, debug_utils_1.debugLog)(`[HeadlessSession] Calling LLM at ${url}`);
389
+ (0, debug_utils_1.debugLog)(`[HeadlessSession] Messages: ${messages.length}, Tools: ${tools.length}/${allTools.length} (disabled: ${session.disabledTools.size})`);
390
+ try {
391
+ // Build request body - only include tools if any are enabled
392
+ const requestBody = {
393
+ model: session.modelId,
394
+ messages,
395
+ stream: false // For simplicity, non-streaming in headless mode
396
+ };
397
+ // Only add tools to request if there are enabled tools
398
+ if (tools.length > 0) {
399
+ requestBody.tools = tools;
400
+ }
401
+ const response = await axios_1.default.post(url, requestBody, {
402
+ headers: {
403
+ 'Authorization': `Bearer ${this.apiKey}`,
404
+ 'Content-Type': 'application/json',
405
+ // Pass original user ID for request log attribution
406
+ // This allows Gateway Type 1 to log the request under the actual user
407
+ // who initiated the DevOps session, not the gateway's API key owner
408
+ 'X-On-Behalf-Of-User': session.userId,
409
+ // Pass session ID for request log linking
410
+ // This allows request_logs to be linked to inference_sessions for message counting
411
+ 'X-Session-Id': session.sessionId
412
+ },
413
+ timeout: 120000 // 2 minute timeout
414
+ });
415
+ // Extract request ID from response headers for request log linking
416
+ const requestId = response.headers['x-request-id'];
417
+ if (requestId) {
418
+ (0, debug_utils_1.debugLog)(`[HeadlessSession] Captured request ID: ${requestId}`);
419
+ }
420
+ return { data: response.data, requestId };
421
+ }
422
+ catch (error) {
423
+ console.error(`[HeadlessSession] LLM call failed:`, error.message);
424
+ if (error.response) {
425
+ console.error(`[HeadlessSession] Response:`, error.response.data);
426
+ }
427
+ throw error;
428
+ }
429
+ }
430
+ /**
431
+ * Execute a tool call
432
+ */
433
+ async executeTool(toolCall) {
434
+ const startTime = Date.now();
435
+ const toolName = toolCall.function.name;
436
+ console.log(`[HeadlessSession] Executing tool: ${toolName}`);
437
+ try {
438
+ // Parse arguments
439
+ let args;
440
+ try {
441
+ args = JSON.parse(toolCall.function.arguments);
442
+ }
443
+ catch {
444
+ args = {};
445
+ }
446
+ let result;
447
+ // Route to appropriate tool handler
448
+ if (toolName.startsWith('core.') || toolName.startsWith('exec.')) {
449
+ result = await this.coreTools.executeTool(toolName, args);
450
+ }
451
+ else if (toolName.startsWith('web.')) {
452
+ result = await this.webTools.executeTool(toolName, args);
453
+ }
454
+ else if (toolName.startsWith('devops.')) {
455
+ // DevOps tools return DevOpsToolResult which has same structure as ToolResult
456
+ const devOpsResult = await this.devOpsTools.executeTool(toolName, args);
457
+ result = {
458
+ success: devOpsResult.success,
459
+ output: devOpsResult.output,
460
+ error: devOpsResult.error
461
+ };
462
+ }
463
+ else {
464
+ return {
465
+ toolName,
466
+ success: false,
467
+ error: `Unknown tool: ${toolName}`,
468
+ duration: Date.now() - startTime
469
+ };
470
+ }
471
+ // Truncate output if too long
472
+ let output = result.output || '';
473
+ if (output.length > this.MAX_TOOL_OUTPUT_LENGTH) {
474
+ output = output.substring(0, this.MAX_TOOL_OUTPUT_LENGTH) +
475
+ `\n\n[Output truncated - ${output.length} characters total]`;
476
+ }
477
+ return {
478
+ toolName,
479
+ success: result.success,
480
+ output: result.success ? output : undefined,
481
+ error: result.error,
482
+ duration: Date.now() - startTime
483
+ };
484
+ }
485
+ catch (error) {
486
+ console.error(`[HeadlessSession] Tool execution error:`, error.message);
487
+ return {
488
+ toolName,
489
+ success: false,
490
+ error: error.message,
491
+ duration: Date.now() - startTime
492
+ };
493
+ }
494
+ }
495
+ /**
496
+ * Check and handle session timeout
497
+ */
498
+ checkSessionTimeout(sessionId) {
499
+ const session = this.sessions.get(sessionId);
500
+ if (!session || session.status !== 'active') {
501
+ return;
502
+ }
503
+ const now = new Date();
504
+ const lastActivity = session.lastActivityAt;
505
+ const inactiveMs = now.getTime() - lastActivity.getTime();
506
+ if (inactiveMs > this.DEFAULT_TIMEOUT) {
507
+ console.log(`[HeadlessSession] Session ${sessionId} timed out after ${Math.floor(inactiveMs / 1000)}s of inactivity`);
508
+ session.status = 'timeout';
509
+ session.completedAt = now;
510
+ this.emit('session_timeout', { sessionId });
511
+ }
512
+ }
513
+ /**
514
+ * Cleanup old sessions (called periodically)
515
+ */
516
+ cleanupOldSessions(maxAgeMs = 24 * 60 * 60 * 1000) {
517
+ const now = Date.now();
518
+ let cleaned = 0;
519
+ for (const [sessionId, session] of this.sessions.entries()) {
520
+ const age = now - session.startedAt.getTime();
521
+ if (age > maxAgeMs && session.status !== 'active') {
522
+ this.sessions.delete(sessionId);
523
+ cleaned++;
524
+ }
525
+ }
526
+ if (cleaned > 0) {
527
+ console.log(`[HeadlessSession] Cleaned up ${cleaned} old sessions`);
528
+ }
529
+ return cleaned;
530
+ }
531
+ /**
532
+ * Export session for persistence
533
+ */
534
+ exportSession(sessionId) {
535
+ const session = this.sessions.get(sessionId);
536
+ if (!session)
537
+ return null;
538
+ return {
539
+ id: session.sessionId,
540
+ gateway_id: session.gatewayId,
541
+ user_id: session.userId,
542
+ organization_id: session.organizationId,
543
+ template_id: session.templateId,
544
+ status: session.status,
545
+ messages: session.messages,
546
+ model_used: session.modelId,
547
+ total_tokens: session.totalTokens,
548
+ tool_calls_count: session.toolCallsCount,
549
+ error_message: session.errorMessage,
550
+ started_at: session.startedAt.toISOString(),
551
+ last_activity_at: session.lastActivityAt.toISOString(),
552
+ completed_at: session.completedAt?.toISOString()
553
+ };
554
+ }
555
+ }
556
+ exports.HeadlessSessionManager = HeadlessSessionManager;
557
+ /**
558
+ * Usage Example:
559
+ *
560
+ * const sessionManager = new HeadlessSessionManager({
561
+ * gatewayId: 'gw3-local-001',
562
+ * vault: localVault,
563
+ * marketplaceUrl: 'http://localhost:8081',
564
+ * apiKey: 'sk-test-inference-key'
565
+ * });
566
+ *
567
+ * // Start a session
568
+ * const session = await sessionManager.startSession({
569
+ * userId: 'user-123',
570
+ * systemPrompt: 'You are a DevOps assistant...',
571
+ * initialMessage: 'Install vLLM on this system'
572
+ * });
573
+ *
574
+ * // Process messages
575
+ * const response = await sessionManager.processMessage(
576
+ * session.sessionId,
577
+ * 'Check the GPU status first',
578
+ * (chunk) => console.log('Chunk:', chunk)
579
+ * );
580
+ *
581
+ * // Complete session
582
+ * sessionManager.completeSession(session.sessionId);
583
+ */
584
+ //# sourceMappingURL=headless-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-session.js","sourceRoot":"","sources":["../headless-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { Type3GatewayServer } from './gateway-server';
2
+ export { LocalVault } from './local-vault';
3
+ export { GatewayMode, GatewayModeConfig } from './gateway-mode';
4
+ //# sourceMappingURL=index-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-server.d.ts","sourceRoot":"","sources":["../index-server.ts"],"names":[],"mappings":"AAyIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}