@shin1ohno/sage 0.8.4 → 0.8.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.
Files changed (110) hide show
  1. package/dist/cli/mcp-handler.d.ts.map +1 -1
  2. package/dist/cli/mcp-handler.js +141 -987
  3. package/dist/cli/mcp-handler.js.map +1 -1
  4. package/dist/config/update-validation.d.ts +52 -0
  5. package/dist/config/update-validation.d.ts.map +1 -0
  6. package/dist/config/update-validation.js +133 -0
  7. package/dist/config/update-validation.js.map +1 -0
  8. package/dist/index.js +163 -1815
  9. package/dist/index.js.map +1 -1
  10. package/dist/integrations/calendar-event-creator.d.ts +2 -3
  11. package/dist/integrations/calendar-event-creator.d.ts.map +1 -1
  12. package/dist/integrations/calendar-event-creator.js +3 -4
  13. package/dist/integrations/calendar-event-creator.js.map +1 -1
  14. package/dist/integrations/calendar-event-deleter.d.ts +2 -3
  15. package/dist/integrations/calendar-event-deleter.d.ts.map +1 -1
  16. package/dist/integrations/calendar-event-deleter.js +3 -4
  17. package/dist/integrations/calendar-event-deleter.js.map +1 -1
  18. package/dist/integrations/calendar-event-response.d.ts +4 -17
  19. package/dist/integrations/calendar-event-response.d.ts.map +1 -1
  20. package/dist/integrations/calendar-event-response.js +3 -4
  21. package/dist/integrations/calendar-event-response.js.map +1 -1
  22. package/dist/integrations/notion-mcp.d.ts +28 -3
  23. package/dist/integrations/notion-mcp.d.ts.map +1 -1
  24. package/dist/integrations/notion-mcp.js +21 -5
  25. package/dist/integrations/notion-mcp.js.map +1 -1
  26. package/dist/integrations/reminder-manager.d.ts.map +1 -1
  27. package/dist/integrations/reminder-manager.js +2 -0
  28. package/dist/integrations/reminder-manager.js.map +1 -1
  29. package/dist/services/container.d.ts +56 -0
  30. package/dist/services/container.d.ts.map +1 -0
  31. package/dist/services/container.js +76 -0
  32. package/dist/services/container.js.map +1 -0
  33. package/dist/tools/calendar/handlers.d.ts +186 -0
  34. package/dist/tools/calendar/handlers.d.ts.map +1 -0
  35. package/dist/tools/calendar/handlers.js +525 -0
  36. package/dist/tools/calendar/handlers.js.map +1 -0
  37. package/dist/tools/calendar/index.d.ts +11 -0
  38. package/dist/tools/calendar/index.d.ts.map +1 -0
  39. package/dist/tools/calendar/index.js +10 -0
  40. package/dist/tools/calendar/index.js.map +1 -0
  41. package/dist/tools/index.d.ts +23 -0
  42. package/dist/tools/index.d.ts.map +1 -0
  43. package/dist/tools/index.js +24 -0
  44. package/dist/tools/index.js.map +1 -0
  45. package/dist/tools/integrations/handlers.d.ts +57 -0
  46. package/dist/tools/integrations/handlers.d.ts.map +1 -0
  47. package/dist/tools/integrations/handlers.js +159 -0
  48. package/dist/tools/integrations/handlers.js.map +1 -0
  49. package/dist/tools/integrations/index.d.ts +11 -0
  50. package/dist/tools/integrations/index.d.ts.map +1 -0
  51. package/dist/tools/integrations/index.js +10 -0
  52. package/dist/tools/integrations/index.js.map +1 -0
  53. package/dist/tools/registry.d.ts +8 -0
  54. package/dist/tools/registry.d.ts.map +1 -0
  55. package/dist/tools/registry.js +10 -0
  56. package/dist/tools/registry.js.map +1 -0
  57. package/dist/tools/reminders/handlers.d.ts +61 -0
  58. package/dist/tools/reminders/handlers.d.ts.map +1 -0
  59. package/dist/tools/reminders/handlers.js +148 -0
  60. package/dist/tools/reminders/handlers.js.map +1 -0
  61. package/dist/tools/reminders/index.d.ts +11 -0
  62. package/dist/tools/reminders/index.d.ts.map +1 -0
  63. package/dist/tools/reminders/index.js +10 -0
  64. package/dist/tools/reminders/index.js.map +1 -0
  65. package/dist/tools/setup/handlers.d.ts +81 -0
  66. package/dist/tools/setup/handlers.d.ts.map +1 -0
  67. package/dist/tools/setup/handlers.js +172 -0
  68. package/dist/tools/setup/handlers.js.map +1 -0
  69. package/dist/tools/setup/index.d.ts +11 -0
  70. package/dist/tools/setup/index.d.ts.map +1 -0
  71. package/dist/tools/setup/index.js +10 -0
  72. package/dist/tools/setup/index.js.map +1 -0
  73. package/dist/tools/tasks/handlers.d.ts +95 -0
  74. package/dist/tools/tasks/handlers.d.ts.map +1 -0
  75. package/dist/tools/tasks/handlers.js +197 -0
  76. package/dist/tools/tasks/handlers.js.map +1 -0
  77. package/dist/tools/tasks/index.d.ts +11 -0
  78. package/dist/tools/tasks/index.d.ts.map +1 -0
  79. package/dist/tools/tasks/index.js +10 -0
  80. package/dist/tools/tasks/index.js.map +1 -0
  81. package/dist/tools/types.d.ts +54 -0
  82. package/dist/tools/types.d.ts.map +1 -0
  83. package/dist/tools/types.js +9 -0
  84. package/dist/tools/types.js.map +1 -0
  85. package/dist/types/calendar.d.ts +41 -0
  86. package/dist/types/calendar.d.ts.map +1 -0
  87. package/dist/types/calendar.js +18 -0
  88. package/dist/types/calendar.js.map +1 -0
  89. package/dist/utils/estimation.d.ts +34 -0
  90. package/dist/utils/estimation.d.ts.map +1 -1
  91. package/dist/utils/estimation.js +38 -1
  92. package/dist/utils/estimation.js.map +1 -1
  93. package/dist/utils/mcp-response.d.ts +89 -0
  94. package/dist/utils/mcp-response.d.ts.map +1 -0
  95. package/dist/utils/mcp-response.js +103 -0
  96. package/dist/utils/mcp-response.js.map +1 -0
  97. package/dist/utils/task-splitter.d.ts +65 -4
  98. package/dist/utils/task-splitter.d.ts.map +1 -1
  99. package/dist/utils/task-splitter.js +69 -5
  100. package/dist/utils/task-splitter.js.map +1 -1
  101. package/dist/version.js +1 -1
  102. package/package.json +1 -1
  103. package/dist/cli/http-server.d.ts +0 -74
  104. package/dist/cli/http-server.d.ts.map +0 -1
  105. package/dist/cli/http-server.js +0 -407
  106. package/dist/cli/http-server.js.map +0 -1
  107. package/dist/remote/remote-mcp-server.d.ts +0 -244
  108. package/dist/remote/remote-mcp-server.d.ts.map +0 -1
  109. package/dist/remote/remote-mcp-server.js +0 -507
  110. package/dist/remote/remote-mcp-server.js.map +0 -1
@@ -1,74 +0,0 @@
1
- /**
2
- * HTTP Server Mode for sage
3
- * Requirements: 14.1, 14.9, 14.10, 13.1
4
- *
5
- * Provides HTTP server functionality for Remote MCP access.
6
- */
7
- /**
8
- * HTTP Server Configuration
9
- */
10
- export interface HTTPServerConfig {
11
- /** HTTP server port */
12
- port: number;
13
- /** HTTP server host address */
14
- host: string;
15
- /** Path to configuration file */
16
- configPath?: string;
17
- /** SSL configuration for HTTPS */
18
- ssl?: {
19
- cert: string;
20
- key: string;
21
- ca?: string;
22
- };
23
- /** Authentication configuration */
24
- auth?: {
25
- enabled: boolean;
26
- jwtSecret?: string;
27
- apiKeys?: string[];
28
- ipWhitelist?: string[];
29
- tokenExpiry?: number;
30
- };
31
- /** CORS configuration */
32
- cors?: {
33
- allowedOrigins?: string[];
34
- allowedMethods?: string[];
35
- allowedHeaders?: string[];
36
- };
37
- }
38
- /**
39
- * Server information
40
- */
41
- export interface ServerInfo {
42
- port: number;
43
- host: string;
44
- ssl: boolean;
45
- authEnabled: boolean;
46
- startTime?: Date;
47
- }
48
- /**
49
- * Health check response
50
- */
51
- export interface HealthCheckResponse {
52
- status: 'ok' | 'error';
53
- uptime: number;
54
- version: string;
55
- timestamp: string;
56
- }
57
- /**
58
- * HTTP Server Instance interface
59
- */
60
- export interface HTTPServerInstance {
61
- start(): Promise<void>;
62
- stop(): Promise<void>;
63
- isRunning(): boolean;
64
- getPort(): number;
65
- getHost(): string;
66
- getServerInfo(): ServerInfo;
67
- }
68
- /**
69
- * Create and start an HTTP server
70
- * @param config - Server configuration
71
- * @returns Running HTTP server instance
72
- */
73
- export declare function createHTTPServer(config: HTTPServerConfig): Promise<HTTPServerInstance>;
74
- //# sourceMappingURL=http-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../../src/cli/http-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,yBAAyB;IACzB,IAAI,CAAC,EAAE;QACL,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,SAAS,IAAI,OAAO,CAAC;IACrB,OAAO,IAAI,MAAM,CAAC;IAClB,OAAO,IAAI,MAAM,CAAC;IAClB,aAAa,IAAI,UAAU,CAAC;CAC7B;AAsdD;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAI5F"}
@@ -1,407 +0,0 @@
1
- /**
2
- * HTTP Server Mode for sage
3
- * Requirements: 14.1, 14.9, 14.10, 13.1
4
- *
5
- * Provides HTTP server functionality for Remote MCP access.
6
- */
7
- import { createServer } from 'http';
8
- import { VERSION } from '../version.js';
9
- import { createServer as createHttpsServer } from 'https';
10
- import { randomUUID } from 'crypto';
11
- /**
12
- * HTTP Server implementation
13
- */
14
- class HTTPServer {
15
- config;
16
- server = null;
17
- running = false;
18
- startTime = null;
19
- tokens = new Map();
20
- constructor(config) {
21
- this.config = config;
22
- }
23
- /**
24
- * Start the server
25
- */
26
- async start() {
27
- if (this.running) {
28
- return;
29
- }
30
- return new Promise((resolve, reject) => {
31
- try {
32
- const requestHandler = this.handleRequest.bind(this);
33
- if (this.config.ssl) {
34
- this.server = createHttpsServer({
35
- cert: this.config.ssl.cert,
36
- key: this.config.ssl.key,
37
- ca: this.config.ssl.ca,
38
- }, requestHandler);
39
- }
40
- else {
41
- this.server = createServer(requestHandler);
42
- }
43
- this.server.listen(this.config.port, this.config.host, () => {
44
- this.running = true;
45
- this.startTime = new Date();
46
- resolve();
47
- });
48
- this.server.on('error', (error) => {
49
- reject(error);
50
- });
51
- }
52
- catch (error) {
53
- reject(error);
54
- }
55
- });
56
- }
57
- /**
58
- * Stop the server
59
- */
60
- async stop() {
61
- if (!this.running || !this.server) {
62
- return;
63
- }
64
- return new Promise((resolve) => {
65
- this.server.close(() => {
66
- this.running = false;
67
- this.startTime = null;
68
- resolve();
69
- });
70
- });
71
- }
72
- /**
73
- * Check if server is running
74
- */
75
- isRunning() {
76
- return this.running;
77
- }
78
- /**
79
- * Get configured port
80
- */
81
- getPort() {
82
- return this.config.port;
83
- }
84
- /**
85
- * Get configured host
86
- */
87
- getHost() {
88
- return this.config.host;
89
- }
90
- /**
91
- * Get server info
92
- */
93
- getServerInfo() {
94
- return {
95
- port: this.config.port,
96
- host: this.config.host,
97
- ssl: !!this.config.ssl,
98
- authEnabled: this.config.auth?.enabled ?? false,
99
- startTime: this.startTime ?? undefined,
100
- };
101
- }
102
- /**
103
- * Handle incoming HTTP request
104
- */
105
- handleRequest(req, res) {
106
- const url = req.url || '/';
107
- const method = req.method || 'GET';
108
- const origin = req.headers.origin;
109
- // Add CORS headers
110
- const corsHeaders = this.getCORSHeaders(origin);
111
- for (const [key, value] of Object.entries(corsHeaders)) {
112
- res.setHeader(key, value);
113
- }
114
- // Handle preflight
115
- if (method === 'OPTIONS') {
116
- res.writeHead(204);
117
- res.end();
118
- return;
119
- }
120
- // Health check endpoint
121
- if (url === '/health' && method === 'GET') {
122
- this.handleHealthCheck(res);
123
- return;
124
- }
125
- // Auth token endpoint
126
- if (url === '/auth/token' && method === 'POST') {
127
- this.handleAuthToken(req, res);
128
- return;
129
- }
130
- // MCP endpoint
131
- if (url === '/mcp' && method === 'POST') {
132
- this.handleMCPRequest(req, res);
133
- return;
134
- }
135
- // 404 for unknown routes
136
- res.writeHead(404, { 'Content-Type': 'application/json' });
137
- res.end(JSON.stringify({ error: 'Not found' }));
138
- }
139
- /**
140
- * Get CORS headers
141
- */
142
- getCORSHeaders(origin) {
143
- const allowedOrigins = this.config.cors?.allowedOrigins || ['*'];
144
- let allowOrigin = '*';
145
- if (origin && allowedOrigins.includes(origin)) {
146
- allowOrigin = origin;
147
- }
148
- else if (allowedOrigins.length === 1 && allowedOrigins[0] !== '*') {
149
- allowOrigin = allowedOrigins[0];
150
- }
151
- return {
152
- 'Access-Control-Allow-Origin': allowOrigin,
153
- 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
154
- 'Access-Control-Allow-Headers': 'Content-Type, Authorization, X-API-Key',
155
- 'Access-Control-Max-Age': '86400',
156
- };
157
- }
158
- /**
159
- * Handle health check request
160
- */
161
- handleHealthCheck(res) {
162
- const uptime = this.startTime ? Date.now() - this.startTime.getTime() : 0;
163
- const health = {
164
- status: this.running ? 'ok' : 'error',
165
- uptime,
166
- version: VERSION,
167
- timestamp: new Date().toISOString(),
168
- };
169
- res.writeHead(200, { 'Content-Type': 'application/json' });
170
- res.end(JSON.stringify(health));
171
- }
172
- /**
173
- * Handle auth token request
174
- */
175
- handleAuthToken(req, res) {
176
- // Check if auth is enabled and API key is valid
177
- if (this.config.auth?.enabled) {
178
- const apiKey = req.headers['x-api-key'];
179
- if (!apiKey || !this.config.auth.apiKeys?.includes(apiKey)) {
180
- res.writeHead(401, { 'Content-Type': 'application/json' });
181
- res.end(JSON.stringify({ error: 'Invalid API key' }));
182
- return;
183
- }
184
- }
185
- // Read request body
186
- let body = '';
187
- req.on('data', (chunk) => {
188
- body += chunk.toString();
189
- });
190
- req.on('end', () => {
191
- try {
192
- const parsed = JSON.parse(body);
193
- const userId = parsed.userId || 'anonymous';
194
- // Generate token
195
- const token = randomUUID();
196
- const expiry = this.config.auth?.tokenExpiry || 3600000; // 1 hour default
197
- const expiresAt = Date.now() + expiry;
198
- this.tokens.set(token, { userId, expiresAt });
199
- res.writeHead(200, { 'Content-Type': 'application/json' });
200
- res.end(JSON.stringify({ token, expiresIn: expiry }));
201
- }
202
- catch {
203
- res.writeHead(400, { 'Content-Type': 'application/json' });
204
- res.end(JSON.stringify({ error: 'Invalid request body' }));
205
- }
206
- });
207
- }
208
- /**
209
- * Handle MCP request
210
- */
211
- handleMCPRequest(req, res) {
212
- // Check authentication if enabled
213
- if (this.config.auth?.enabled) {
214
- const authResult = this.checkAuth(req);
215
- if (!authResult.success) {
216
- res.writeHead(authResult.statusCode, { 'Content-Type': 'application/json' });
217
- res.end(JSON.stringify({
218
- jsonrpc: '2.0',
219
- id: null,
220
- error: {
221
- code: authResult.errorCode,
222
- message: authResult.errorMessage,
223
- },
224
- }));
225
- return;
226
- }
227
- }
228
- // Read request body
229
- let body = '';
230
- req.on('data', (chunk) => {
231
- body += chunk.toString();
232
- });
233
- req.on('end', () => {
234
- try {
235
- const request = this.parseJSONRPCRequest(body);
236
- // TODO: Route to appropriate MCP tool handler
237
- // For now, return a placeholder response
238
- const response = {
239
- jsonrpc: '2.0',
240
- id: request.id,
241
- result: {
242
- message: 'MCP request received',
243
- method: request.method,
244
- params: request.params,
245
- },
246
- };
247
- res.writeHead(200, { 'Content-Type': 'application/json' });
248
- res.end(JSON.stringify(response));
249
- }
250
- catch (error) {
251
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
252
- res.writeHead(400, { 'Content-Type': 'application/json' });
253
- res.end(JSON.stringify({
254
- jsonrpc: '2.0',
255
- id: null,
256
- error: {
257
- code: -32700,
258
- message: errorMessage,
259
- },
260
- }));
261
- }
262
- });
263
- req.on('error', (error) => {
264
- res.writeHead(500, { 'Content-Type': 'application/json' });
265
- res.end(JSON.stringify({
266
- jsonrpc: '2.0',
267
- id: null,
268
- error: {
269
- code: -32603,
270
- message: error.message,
271
- },
272
- }));
273
- });
274
- }
275
- /**
276
- * Check authentication
277
- */
278
- checkAuth(req) {
279
- const authHeader = req.headers.authorization;
280
- const apiKey = req.headers['x-api-key'];
281
- const clientIP = req.headers['x-forwarded-for']?.split(',')[0] ||
282
- req.socket.remoteAddress ||
283
- '';
284
- // Check IP whitelist
285
- if (this.config.auth?.ipWhitelist &&
286
- this.config.auth.ipWhitelist.length > 0 &&
287
- !this.isIPAllowed(clientIP)) {
288
- return {
289
- success: false,
290
- statusCode: 403,
291
- errorCode: -32001,
292
- errorMessage: 'IP not allowed',
293
- };
294
- }
295
- // Check API key or token
296
- const token = this.extractToken(authHeader);
297
- if (!token && !apiKey) {
298
- return {
299
- success: false,
300
- statusCode: 401,
301
- errorCode: -32002,
302
- errorMessage: 'Authentication required',
303
- };
304
- }
305
- // Validate token
306
- if (token) {
307
- const tokenData = this.tokens.get(token);
308
- if (tokenData && Date.now() <= tokenData.expiresAt) {
309
- return { success: true };
310
- }
311
- }
312
- // Validate API key
313
- if (apiKey && this.config.auth?.apiKeys?.includes(apiKey)) {
314
- return { success: true };
315
- }
316
- return {
317
- success: false,
318
- statusCode: 401,
319
- errorCode: -32003,
320
- errorMessage: 'Invalid credentials',
321
- };
322
- }
323
- /**
324
- * Check if IP is allowed
325
- */
326
- isIPAllowed(ip) {
327
- if (!this.config.auth?.ipWhitelist || this.config.auth.ipWhitelist.length === 0) {
328
- return true;
329
- }
330
- for (const allowed of this.config.auth.ipWhitelist) {
331
- if (ip === allowed) {
332
- return true;
333
- }
334
- // Simple CIDR matching
335
- if (allowed.includes('/')) {
336
- const [network, bits] = allowed.split('/');
337
- const mask = parseInt(bits, 10);
338
- if (this.matchCIDR(ip, network, mask)) {
339
- return true;
340
- }
341
- }
342
- }
343
- return false;
344
- }
345
- /**
346
- * Match IP against CIDR
347
- */
348
- matchCIDR(ip, network, mask) {
349
- const ipParts = ip.split('.').map(Number);
350
- const networkParts = network.split('.').map(Number);
351
- if (ipParts.length !== 4 || networkParts.length !== 4) {
352
- return false;
353
- }
354
- const ipNum = (ipParts[0] << 24) | (ipParts[1] << 16) | (ipParts[2] << 8) | ipParts[3];
355
- const networkNum = (networkParts[0] << 24) | (networkParts[1] << 16) | (networkParts[2] << 8) | networkParts[3];
356
- const maskNum = ~((1 << (32 - mask)) - 1);
357
- return (ipNum & maskNum) === (networkNum & maskNum);
358
- }
359
- /**
360
- * Extract token from Authorization header
361
- */
362
- extractToken(authHeader) {
363
- if (!authHeader) {
364
- return null;
365
- }
366
- if (authHeader.startsWith('Bearer ')) {
367
- return authHeader.slice(7);
368
- }
369
- return null;
370
- }
371
- /**
372
- * Parse JSON-RPC request
373
- */
374
- parseJSONRPCRequest(body) {
375
- let parsed;
376
- try {
377
- parsed = JSON.parse(body);
378
- }
379
- catch {
380
- throw new Error('Invalid JSON');
381
- }
382
- const request = parsed;
383
- if (!request.jsonrpc || request.jsonrpc !== '2.0') {
384
- throw new Error('Invalid JSON-RPC request');
385
- }
386
- if (request.method === undefined) {
387
- throw new Error('Invalid JSON-RPC request: missing method');
388
- }
389
- return {
390
- jsonrpc: '2.0',
391
- id: request.id ?? null,
392
- method: request.method,
393
- params: request.params,
394
- };
395
- }
396
- }
397
- /**
398
- * Create and start an HTTP server
399
- * @param config - Server configuration
400
- * @returns Running HTTP server instance
401
- */
402
- export async function createHTTPServer(config) {
403
- const server = new HTTPServer(config);
404
- await server.start();
405
- return server;
406
- }
407
- //# sourceMappingURL=http-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../../src/cli/http-server.ts"],"names":[],"mappings":"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"}