@agentick/gateway 0.0.1

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 (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +477 -0
  3. package/dist/agent-registry.d.ts +51 -0
  4. package/dist/agent-registry.d.ts.map +1 -0
  5. package/dist/agent-registry.js +78 -0
  6. package/dist/agent-registry.js.map +1 -0
  7. package/dist/app-registry.d.ts +51 -0
  8. package/dist/app-registry.d.ts.map +1 -0
  9. package/dist/app-registry.js +78 -0
  10. package/dist/app-registry.js.map +1 -0
  11. package/dist/bin.d.ts +8 -0
  12. package/dist/bin.d.ts.map +1 -0
  13. package/dist/bin.js +37 -0
  14. package/dist/bin.js.map +1 -0
  15. package/dist/gateway.d.ts +165 -0
  16. package/dist/gateway.d.ts.map +1 -0
  17. package/dist/gateway.js +1339 -0
  18. package/dist/gateway.js.map +1 -0
  19. package/dist/http-transport.d.ts +65 -0
  20. package/dist/http-transport.d.ts.map +1 -0
  21. package/dist/http-transport.js +517 -0
  22. package/dist/http-transport.js.map +1 -0
  23. package/dist/index.d.ts +16 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +23 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/protocol.d.ts +162 -0
  28. package/dist/protocol.d.ts.map +1 -0
  29. package/dist/protocol.js +16 -0
  30. package/dist/protocol.js.map +1 -0
  31. package/dist/session-manager.d.ts +101 -0
  32. package/dist/session-manager.d.ts.map +1 -0
  33. package/dist/session-manager.js +208 -0
  34. package/dist/session-manager.js.map +1 -0
  35. package/dist/testing.d.ts +92 -0
  36. package/dist/testing.d.ts.map +1 -0
  37. package/dist/testing.js +129 -0
  38. package/dist/testing.js.map +1 -0
  39. package/dist/transport-protocol.d.ts +162 -0
  40. package/dist/transport-protocol.d.ts.map +1 -0
  41. package/dist/transport-protocol.js +16 -0
  42. package/dist/transport-protocol.js.map +1 -0
  43. package/dist/transport.d.ts +115 -0
  44. package/dist/transport.d.ts.map +1 -0
  45. package/dist/transport.js +56 -0
  46. package/dist/transport.js.map +1 -0
  47. package/dist/types.d.ts +314 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +37 -0
  50. package/dist/types.js.map +1 -0
  51. package/dist/websocket-server.d.ts +87 -0
  52. package/dist/websocket-server.d.ts.map +1 -0
  53. package/dist/websocket-server.js +245 -0
  54. package/dist/websocket-server.js.map +1 -0
  55. package/dist/ws-transport.d.ts +17 -0
  56. package/dist/ws-transport.d.ts.map +1 -0
  57. package/dist/ws-transport.js +174 -0
  58. package/dist/ws-transport.js.map +1 -0
  59. package/package.json +51 -0
  60. package/src/__tests__/custom-methods.spec.ts +220 -0
  61. package/src/__tests__/gateway-methods.spec.ts +262 -0
  62. package/src/__tests__/gateway.spec.ts +404 -0
  63. package/src/__tests__/guards.spec.ts +235 -0
  64. package/src/__tests__/protocol.spec.ts +58 -0
  65. package/src/__tests__/session-manager.spec.ts +220 -0
  66. package/src/__tests__/ws-transport.spec.ts +246 -0
  67. package/src/app-registry.ts +103 -0
  68. package/src/bin.ts +38 -0
  69. package/src/gateway.ts +1712 -0
  70. package/src/http-transport.ts +623 -0
  71. package/src/index.ts +94 -0
  72. package/src/session-manager.ts +272 -0
  73. package/src/testing.ts +236 -0
  74. package/src/transport-protocol.ts +249 -0
  75. package/src/transport.ts +191 -0
  76. package/src/types.ts +392 -0
  77. package/src/websocket-server.ts +303 -0
  78. package/src/ws-transport.ts +205 -0
@@ -0,0 +1,517 @@
1
+ /**
2
+ * HTTP/SSE Transport
3
+ *
4
+ * Implements the Transport interface using HTTP requests and Server-Sent Events.
5
+ * This enables web browser clients to connect to the gateway without WebSocket support.
6
+ */
7
+ import { createServer } from "http";
8
+ import { extractToken, validateAuth, setSSEHeaders } from "@agentick/server";
9
+ import { isGuardError } from "@agentick/shared";
10
+ import { BaseTransport } from "./transport.js";
11
+ // ============================================================================
12
+ // HTTP Client (SSE connection)
13
+ // ============================================================================
14
+ class HTTPClientImpl {
15
+ id;
16
+ state;
17
+ response = null;
18
+ _isConnected = false;
19
+ constructor(id) {
20
+ this.id = id;
21
+ this.state = {
22
+ id,
23
+ connectedAt: new Date(),
24
+ authenticated: false,
25
+ subscriptions: new Set(),
26
+ };
27
+ }
28
+ /** Set the SSE response object */
29
+ setResponse(res) {
30
+ this.response = res;
31
+ this._isConnected = true;
32
+ res.on("close", () => {
33
+ this._isConnected = false;
34
+ this.response = null;
35
+ });
36
+ }
37
+ send(message) {
38
+ if (this.response && this._isConnected) {
39
+ const data = JSON.stringify(message);
40
+ this.response.write(`data: ${data}\n\n`);
41
+ }
42
+ }
43
+ close(_code, _reason) {
44
+ if (this.response) {
45
+ this.response.end();
46
+ this.response = null;
47
+ }
48
+ this._isConnected = false;
49
+ }
50
+ get isConnected() {
51
+ return this._isConnected;
52
+ }
53
+ }
54
+ export class HTTPTransport extends BaseTransport {
55
+ type = "http";
56
+ server = null;
57
+ httpConfig;
58
+ constructor(config) {
59
+ super(config);
60
+ this.httpConfig = config;
61
+ }
62
+ start() {
63
+ return new Promise((resolve, reject) => {
64
+ try {
65
+ this.server = createServer((req, res) => {
66
+ this.handleRequest(req, res).catch((error) => {
67
+ console.error("Request error:", error);
68
+ if (!res.headersSent) {
69
+ res.writeHead(500, { "Content-Type": "application/json" });
70
+ res.end(JSON.stringify({ error: "Internal server error" }));
71
+ }
72
+ });
73
+ });
74
+ this.server.on("error", (error) => {
75
+ this.handlers.error?.(error);
76
+ reject(error);
77
+ });
78
+ this.server.listen(this.config.port, this.config.host, () => {
79
+ resolve();
80
+ });
81
+ }
82
+ catch (error) {
83
+ reject(error);
84
+ }
85
+ });
86
+ }
87
+ stop() {
88
+ return new Promise((resolve) => {
89
+ if (!this.server) {
90
+ resolve();
91
+ return;
92
+ }
93
+ // Close all client connections
94
+ for (const client of this.clients.values()) {
95
+ client.close(1001, "Server shutting down");
96
+ }
97
+ this.clients.clear();
98
+ this.server.close(() => {
99
+ this.server = null;
100
+ resolve();
101
+ });
102
+ });
103
+ }
104
+ async handleRequest(req, res) {
105
+ // Set CORS headers
106
+ const origin = this.httpConfig.corsOrigin ?? "*";
107
+ res.setHeader("Access-Control-Allow-Origin", origin);
108
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, PATCH, DELETE, OPTIONS");
109
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
110
+ res.setHeader("Access-Control-Allow-Credentials", "true");
111
+ // Handle preflight
112
+ if (req.method === "OPTIONS") {
113
+ res.writeHead(204);
114
+ res.end();
115
+ return;
116
+ }
117
+ const prefix = this.httpConfig.pathPrefix ?? "";
118
+ const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
119
+ const path = url.pathname.replace(prefix, "");
120
+ // Route requests - exact matches first
121
+ switch (path) {
122
+ case "/events":
123
+ return this.handleSSE(req, res);
124
+ case "/send":
125
+ return this.handleSend(req, res);
126
+ case "/invoke":
127
+ return this.handleInvoke(req, res);
128
+ case "/subscribe":
129
+ return this.handleSubscribe(req, res);
130
+ case "/abort":
131
+ return this.handleAbort(req, res);
132
+ case "/close":
133
+ return this.handleClose(req, res);
134
+ case "/channel":
135
+ return this.handleChannel(req, res);
136
+ }
137
+ res.writeHead(404, { "Content-Type": "application/json" });
138
+ res.end(JSON.stringify({ error: "Not found" }));
139
+ }
140
+ /**
141
+ * SSE endpoint - establishes long-lived connection for events
142
+ */
143
+ async handleSSE(req, res) {
144
+ // Get auth token from header or query
145
+ const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
146
+ const token = extractToken(req) ?? url.searchParams.get("token") ?? undefined;
147
+ // Validate auth
148
+ const authResult = await validateAuth(token, this.config.auth);
149
+ if (!authResult.valid) {
150
+ res.writeHead(401, { "Content-Type": "application/json" });
151
+ res.end(JSON.stringify({ error: "Authentication failed" }));
152
+ return;
153
+ }
154
+ // Create client
155
+ const clientId = url.searchParams.get("clientId") ?? this.generateClientId();
156
+ let client = this.clients.get(clientId);
157
+ if (!client) {
158
+ client = new HTTPClientImpl(clientId);
159
+ client.state.authenticated = true;
160
+ client.state.user = authResult.user;
161
+ client.state.metadata = authResult.metadata;
162
+ this.clients.set(clientId, client);
163
+ // Notify connection handler
164
+ this.handlers.connection?.(client);
165
+ }
166
+ // Setup SSE response
167
+ setSSEHeaders(res);
168
+ client.setResponse(res);
169
+ // Send connection confirmation
170
+ // Client expects type: "connection" to resolve the connection promise
171
+ client.send({
172
+ type: "connection",
173
+ connectionId: clientId,
174
+ subscriptions: Array.from(client.state.subscriptions),
175
+ });
176
+ // Handle disconnect
177
+ res.on("close", () => {
178
+ this.clients.delete(clientId);
179
+ this.handlers.disconnect?.(clientId);
180
+ });
181
+ // Keep connection alive with periodic heartbeat
182
+ const heartbeat = setInterval(() => {
183
+ if (client?.isConnected) {
184
+ res.write(":heartbeat\n\n");
185
+ }
186
+ else {
187
+ clearInterval(heartbeat);
188
+ }
189
+ }, 30000);
190
+ res.on("close", () => clearInterval(heartbeat));
191
+ }
192
+ /**
193
+ * Send endpoint - receives messages and streams response
194
+ */
195
+ async handleSend(req, res) {
196
+ if (req.method !== "POST") {
197
+ res.writeHead(405, { "Content-Type": "application/json" });
198
+ res.end(JSON.stringify({ error: "Method not allowed" }));
199
+ return;
200
+ }
201
+ // Get auth token
202
+ const token = extractToken(req);
203
+ const authResult = await validateAuth(token, this.config.auth);
204
+ if (!authResult.valid) {
205
+ res.writeHead(401, { "Content-Type": "application/json" });
206
+ res.end(JSON.stringify({ error: "Authentication failed" }));
207
+ return;
208
+ }
209
+ // Parse body
210
+ const body = await this.parseBody(req);
211
+ if (!body) {
212
+ res.writeHead(400, { "Content-Type": "application/json" });
213
+ res.end(JSON.stringify({ error: "Invalid request body" }));
214
+ return;
215
+ }
216
+ const sessionId = body.sessionId ?? "main";
217
+ const rawMessage = body.message;
218
+ // Validate and sanitize the message to ensure it's a proper Message object
219
+ // This prevents any unexpected properties from being passed through
220
+ if (!rawMessage ||
221
+ typeof rawMessage !== "object" ||
222
+ !rawMessage.role ||
223
+ !Array.isArray(rawMessage.content)) {
224
+ res.writeHead(400, { "Content-Type": "application/json" });
225
+ res.end(JSON.stringify({
226
+ error: "Invalid message format. Expected { role, content: ContentBlock[] }",
227
+ }));
228
+ return;
229
+ }
230
+ // Create a clean Message object with only expected properties
231
+ const message = {
232
+ role: rawMessage.role,
233
+ content: rawMessage.content,
234
+ ...(rawMessage.id && { id: rawMessage.id }),
235
+ ...(rawMessage.metadata && { metadata: rawMessage.metadata }),
236
+ };
237
+ // Check if we have a direct send handler
238
+ if (!this.config.onDirectSend) {
239
+ res.writeHead(501, { "Content-Type": "application/json" });
240
+ res.end(JSON.stringify({ error: "Send not supported without onDirectSend handler" }));
241
+ return;
242
+ }
243
+ // Setup streaming response
244
+ setSSEHeaders(res);
245
+ try {
246
+ // Use the direct send handler to stream events
247
+ const events = this.config.onDirectSend(sessionId, message);
248
+ for await (const event of events) {
249
+ const sseData = {
250
+ type: event.type,
251
+ sessionId,
252
+ ...(event.data && typeof event.data === "object" ? event.data : {}),
253
+ };
254
+ res.write(`data: ${JSON.stringify(sseData)}\n\n`);
255
+ }
256
+ // Send execution_end
257
+ res.write(`data: ${JSON.stringify({ type: "execution_end", sessionId })}\n\n`);
258
+ }
259
+ catch (error) {
260
+ const errorMessage = error instanceof Error ? error.message : String(error);
261
+ res.write(`data: ${JSON.stringify({ type: "error", error: errorMessage, sessionId })}\n\n`);
262
+ }
263
+ finally {
264
+ res.end();
265
+ }
266
+ }
267
+ /**
268
+ * Invoke endpoint - execute custom gateway methods
269
+ * Returns JSON (not streaming) for simpler client handling
270
+ */
271
+ async handleInvoke(req, res) {
272
+ if (req.method !== "POST") {
273
+ res.writeHead(405, { "Content-Type": "application/json" });
274
+ res.end(JSON.stringify({ error: "Method not allowed" }));
275
+ return;
276
+ }
277
+ // Get auth token
278
+ const token = extractToken(req);
279
+ const authResult = await validateAuth(token, this.config.auth);
280
+ if (!authResult.valid) {
281
+ res.writeHead(401, { "Content-Type": "application/json" });
282
+ res.end(JSON.stringify({ error: "Authentication failed" }));
283
+ return;
284
+ }
285
+ // Parse body
286
+ const body = await this.parseBody(req);
287
+ if (!body) {
288
+ res.writeHead(400, { "Content-Type": "application/json" });
289
+ res.end(JSON.stringify({ error: "Invalid request body" }));
290
+ return;
291
+ }
292
+ const method = body.method;
293
+ const params = (body.params ?? {});
294
+ if (!method || typeof method !== "string") {
295
+ res.writeHead(400, { "Content-Type": "application/json" });
296
+ res.end(JSON.stringify({ error: "method is required" }));
297
+ return;
298
+ }
299
+ // Check if we have an invoke handler
300
+ if (!this.config.onInvoke) {
301
+ res.writeHead(501, { "Content-Type": "application/json" });
302
+ res.end(JSON.stringify({ error: "Method invocation not supported" }));
303
+ return;
304
+ }
305
+ try {
306
+ const result = await this.config.onInvoke(method, params, authResult.user);
307
+ res.writeHead(200, { "Content-Type": "application/json" });
308
+ res.end(JSON.stringify(result));
309
+ }
310
+ catch (error) {
311
+ const errorMessage = error instanceof Error ? error.message : String(error);
312
+ const statusCode = isGuardError(error) ? 403 : 400;
313
+ res.writeHead(statusCode, { "Content-Type": "application/json" });
314
+ res.end(JSON.stringify({ error: errorMessage }));
315
+ }
316
+ }
317
+ /**
318
+ * Subscribe endpoint - manage session subscriptions
319
+ */
320
+ async handleSubscribe(req, res) {
321
+ if (req.method !== "POST") {
322
+ res.writeHead(405, { "Content-Type": "application/json" });
323
+ res.end(JSON.stringify({ error: "Method not allowed" }));
324
+ return;
325
+ }
326
+ const token = extractToken(req);
327
+ const authResult = await validateAuth(token, this.config.auth);
328
+ if (!authResult.valid) {
329
+ res.writeHead(401, { "Content-Type": "application/json" });
330
+ res.end(JSON.stringify({ error: "Authentication failed" }));
331
+ return;
332
+ }
333
+ const body = await this.parseBody(req);
334
+ if (!body) {
335
+ res.writeHead(400, { "Content-Type": "application/json" });
336
+ res.end(JSON.stringify({ error: "Invalid request body" }));
337
+ return;
338
+ }
339
+ const { connectionId, add, remove } = body;
340
+ const client = this.clients.get(connectionId);
341
+ if (!client) {
342
+ res.writeHead(404, { "Content-Type": "application/json" });
343
+ res.end(JSON.stringify({ error: "Connection not found" }));
344
+ return;
345
+ }
346
+ // Update subscriptions
347
+ if (add) {
348
+ for (const sessionId of add) {
349
+ client.state.subscriptions.add(sessionId);
350
+ }
351
+ }
352
+ if (remove) {
353
+ for (const sessionId of remove) {
354
+ client.state.subscriptions.delete(sessionId);
355
+ }
356
+ }
357
+ res.writeHead(200, { "Content-Type": "application/json" });
358
+ res.end(JSON.stringify({
359
+ subscriptions: Array.from(client.state.subscriptions),
360
+ }));
361
+ }
362
+ /**
363
+ * Abort endpoint
364
+ */
365
+ async handleAbort(req, res) {
366
+ if (req.method !== "POST") {
367
+ res.writeHead(405, { "Content-Type": "application/json" });
368
+ res.end(JSON.stringify({ error: "Method not allowed" }));
369
+ return;
370
+ }
371
+ const token = extractToken(req);
372
+ const authResult = await validateAuth(token, this.config.auth);
373
+ if (!authResult.valid) {
374
+ res.writeHead(401, { "Content-Type": "application/json" });
375
+ res.end(JSON.stringify({ error: "Authentication failed" }));
376
+ return;
377
+ }
378
+ const body = await this.parseBody(req);
379
+ if (!body) {
380
+ res.writeHead(400, { "Content-Type": "application/json" });
381
+ res.end(JSON.stringify({ error: "Invalid request body" }));
382
+ return;
383
+ }
384
+ // Forward as request message
385
+ const requestId = `req-${Date.now().toString(36)}`;
386
+ const requestMessage = {
387
+ type: "req",
388
+ id: requestId,
389
+ method: "abort",
390
+ params: body,
391
+ };
392
+ // Find any authenticated client to use
393
+ const client = this.getAuthenticatedClients()[0];
394
+ if (client) {
395
+ this.handlers.message?.(client.id, requestMessage);
396
+ }
397
+ res.writeHead(200, { "Content-Type": "application/json" });
398
+ res.end(JSON.stringify({ ok: true }));
399
+ }
400
+ /**
401
+ * Close endpoint
402
+ */
403
+ async handleClose(req, res) {
404
+ if (req.method !== "POST") {
405
+ res.writeHead(405, { "Content-Type": "application/json" });
406
+ res.end(JSON.stringify({ error: "Method not allowed" }));
407
+ return;
408
+ }
409
+ const token = extractToken(req);
410
+ const authResult = await validateAuth(token, this.config.auth);
411
+ if (!authResult.valid) {
412
+ res.writeHead(401, { "Content-Type": "application/json" });
413
+ res.end(JSON.stringify({ error: "Authentication failed" }));
414
+ return;
415
+ }
416
+ const body = await this.parseBody(req);
417
+ if (!body) {
418
+ res.writeHead(400, { "Content-Type": "application/json" });
419
+ res.end(JSON.stringify({ error: "Invalid request body" }));
420
+ return;
421
+ }
422
+ // Forward as request message
423
+ const requestId = `req-${Date.now().toString(36)}`;
424
+ const requestMessage = {
425
+ type: "req",
426
+ id: requestId,
427
+ method: "close",
428
+ params: body,
429
+ };
430
+ const client = this.getAuthenticatedClients()[0];
431
+ if (client) {
432
+ this.handlers.message?.(client.id, requestMessage);
433
+ }
434
+ res.writeHead(200, { "Content-Type": "application/json" });
435
+ res.end(JSON.stringify({ ok: true }));
436
+ }
437
+ /**
438
+ * Channel endpoint
439
+ */
440
+ async handleChannel(req, res) {
441
+ if (req.method !== "POST") {
442
+ res.writeHead(405, { "Content-Type": "application/json" });
443
+ res.end(JSON.stringify({ error: "Method not allowed" }));
444
+ return;
445
+ }
446
+ const token = extractToken(req);
447
+ const authResult = await validateAuth(token, this.config.auth);
448
+ if (!authResult.valid) {
449
+ res.writeHead(401, { "Content-Type": "application/json" });
450
+ res.end(JSON.stringify({ error: "Authentication failed" }));
451
+ return;
452
+ }
453
+ const body = await this.parseBody(req);
454
+ if (!body) {
455
+ res.writeHead(400, { "Content-Type": "application/json" });
456
+ res.end(JSON.stringify({ error: "Invalid request body" }));
457
+ return;
458
+ }
459
+ res.writeHead(200, { "Content-Type": "application/json" });
460
+ res.end(JSON.stringify({ ok: true }));
461
+ }
462
+ // ══════════════════════════════════════════════════════════════════════════
463
+ // Express Integration
464
+ // ══════════════════════════════════════════════════════════════════════════
465
+ /**
466
+ * Handle a request from Express middleware.
467
+ * This allows the gateway to be mounted in an existing Express app.
468
+ */
469
+ handleExpressRequest(req, res, next) {
470
+ this.handleRequest(req, res).catch((error) => {
471
+ console.error("Request error:", error);
472
+ if (!res.headersSent) {
473
+ if (res.status && res.json) {
474
+ res.status(500).json({ error: "Internal server error" });
475
+ }
476
+ else {
477
+ res.writeHead(500, { "Content-Type": "application/json" });
478
+ res.end(JSON.stringify({ error: "Internal server error" }));
479
+ }
480
+ }
481
+ });
482
+ }
483
+ // ══════════════════════════════════════════════════════════════════════════
484
+ // Utilities
485
+ // ══════════════════════════════════════════════════════════════════════════
486
+ parseBody(req) {
487
+ // If body already parsed by Express middleware, use it
488
+ if (req.body && typeof req.body === "object") {
489
+ return Promise.resolve(req.body);
490
+ }
491
+ // Otherwise, read from stream
492
+ return new Promise((resolve) => {
493
+ let body = "";
494
+ req.on("data", (chunk) => {
495
+ body += chunk.toString();
496
+ });
497
+ req.on("end", () => {
498
+ try {
499
+ resolve(JSON.parse(body));
500
+ }
501
+ catch {
502
+ resolve(null);
503
+ }
504
+ });
505
+ req.on("error", () => {
506
+ resolve(null);
507
+ });
508
+ });
509
+ }
510
+ }
511
+ // ============================================================================
512
+ // Factory Function
513
+ // ============================================================================
514
+ export function createHTTPTransport(config) {
515
+ return new HTTPTransport(config);
516
+ }
517
+ //# sourceMappingURL=http-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../src/http-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @agentick/gateway
3
+ *
4
+ * Standalone daemon for multi-client, multi-agent access.
5
+ * Supports both WebSocket and HTTP/SSE transports.
6
+ */
7
+ export { Gateway, createGateway } from "./gateway.js";
8
+ export { AppRegistry } from "./app-registry.js";
9
+ export { SessionManager } from "./session-manager.js";
10
+ export { type Transport, type TransportClient, type TransportConfig, type TransportEvents, BaseTransport, } from "./transport.js";
11
+ export { WSTransport, createWSTransport } from "./ws-transport.js";
12
+ export { HTTPTransport, createHTTPTransport, type HTTPTransportConfig } from "./http-transport.js";
13
+ export { createTestGateway, createMockApp, createMockSession, createMockExecutionHandle, waitForGatewayEvent, type TestGatewayOptions, type TestGatewayClient, type TestGatewayResult, type MockAppOptions, type MockSessionOptions, type MockSession, type MockApp, type MockSessionExecutionHandle, type MockExecutionHandleOptions, } from "./testing.js";
14
+ export { parseSessionKey, formatSessionKey, type SessionKey, type ClientMessage, type GatewayMessage, type ConnectMessage, type RequestMessage, type ResponseMessage, type EventMessage, type GatewayMethod, type GatewayEventType, type SendParams, type StatusParams, type HistoryParams, type StatusPayload, type AppsPayload, type SessionsPayload, } from "./transport-protocol.js";
15
+ export { type GatewayConfig, type AuthConfig, type AuthResult, type StorageConfig, type ChannelAdapter, type GatewayContext, type SessionContext, type SessionEvent, type RoutingConfig, type IncomingMessage, type RoutingContext, type ClientState, type SessionState, type GatewayEvents, type UserContext, type MethodDefinition, type MethodDefinitionInput, type MethodNamespace, type MethodsConfig, type Method, type SimpleMethodHandler, type StreamingMethodHandler, method, isMethodDefinition, METHOD_DEFINITION, type ZodLikeSchema, } from "./types.js";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGnG,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,GAChC,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAE3B,MAAM,EACN,kBAAkB,EAClB,iBAAiB,EAEjB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @agentick/gateway
3
+ *
4
+ * Standalone daemon for multi-client, multi-agent access.
5
+ * Supports both WebSocket and HTTP/SSE transports.
6
+ */
7
+ // Main exports
8
+ export { Gateway, createGateway } from "./gateway.js";
9
+ export { AppRegistry } from "./app-registry.js";
10
+ export { SessionManager } from "./session-manager.js";
11
+ // Transport layer
12
+ export { BaseTransport, } from "./transport.js";
13
+ export { WSTransport, createWSTransport } from "./ws-transport.js";
14
+ export { HTTPTransport, createHTTPTransport } from "./http-transport.js";
15
+ // Testing utilities
16
+ export { createTestGateway, createMockApp, createMockSession, createMockExecutionHandle, waitForGatewayEvent, } from "./testing.js";
17
+ // Protocol types
18
+ export { parseSessionKey, formatSessionKey, } from "./transport-protocol.js";
19
+ // Configuration types
20
+ export {
21
+ // Method factory
22
+ method, isMethodDefinition, METHOD_DEFINITION, } from "./types.js";
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAe;AACf,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,kBAAkB;AAClB,OAAO,EAKL,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAA4B,MAAM,qBAAqB,CAAC;AAEnG,oBAAoB;AACpB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,GAUpB,MAAM,cAAc,CAAC;AAEtB,iBAAiB;AACjB,OAAO,EACL,eAAe,EACf,gBAAgB,GAgBjB,MAAM,yBAAyB,CAAC;AAEjC,sBAAsB;AACtB,OAAO;AAwBL,iBAAiB;AACjB,MAAM,EACN,kBAAkB,EAClB,iBAAiB,GAGlB,MAAM,YAAY,CAAC"}