@agentick/express 0.0.1 → 0.1.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentick/express",
3
- "version": "0.0.1",
3
+ "version": "0.1.9",
4
4
  "description": "Express middleware and router for Agentick applications",
5
5
  "files": [
6
6
  "dist",
@@ -16,7 +16,7 @@
16
16
  }
17
17
  },
18
18
  "dependencies": {
19
- "@agentick/gateway": "0.0.1"
19
+ "@agentick/gateway": "0.1.9"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/express": "^4.17.21",
@@ -30,6 +30,11 @@
30
30
  "peerDependencies": {
31
31
  "express": "^4.0.0 || ^5.0.0"
32
32
  },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/agenticklabs/agentick.git",
36
+ "directory": "packages/express"
37
+ },
33
38
  "scripts": {
34
39
  "build": "tsc -p tsconfig.build.json",
35
40
  "dev": "tsc --watch",
@@ -1,8 +0,0 @@
1
- /**
2
- * Express Handler Integration Tests
3
- *
4
- * These tests verify the handler creates sessions correctly
5
- * and routes requests to the appropriate endpoints.
6
- */
7
- export {};
8
- //# sourceMappingURL=message-flow.integration.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-flow.integration.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/message-flow.integration.spec.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -1,175 +0,0 @@
1
- /**
2
- * Express Handler Integration Tests
3
- *
4
- * These tests verify the handler creates sessions correctly
5
- * and routes requests to the appropriate endpoints.
6
- */
7
- import { describe, it, expect, vi, beforeEach } from "vitest";
8
- import express, {} from "express";
9
- import { createTentickleHandler } from "../router";
10
- import { createApp, Model, System, Timeline } from "@tentickle/core";
11
- // Helper to create a mock model
12
- function createMockModel() {
13
- return {
14
- metadata: {
15
- id: "test-model",
16
- provider: "test",
17
- model: "test",
18
- capabilities: ["streaming", "tools"],
19
- },
20
- generate: vi.fn().mockResolvedValue({
21
- message: { role: "assistant", content: [{ type: "text", text: "Test response" }] },
22
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
23
- stopReason: "stop",
24
- }),
25
- stream: vi.fn().mockImplementation(async function* () {
26
- yield { type: "content_delta", delta: "Test ", role: "assistant" };
27
- yield { type: "content_delta", delta: "response", role: "assistant" };
28
- yield {
29
- type: "result",
30
- message: { role: "assistant", content: [{ type: "text", text: "Test response" }] },
31
- usage: { inputTokens: 10, outputTokens: 5, totalTokens: 15 },
32
- stopReason: "stop",
33
- };
34
- }),
35
- fromEngineState: vi.fn().mockImplementation(async (input) => {
36
- return {
37
- messages: [
38
- ...(input.system || []).map((e) => e.message),
39
- ...input.timeline.filter((e) => e.kind === "message").map((e) => e.message),
40
- ],
41
- tools: input.tools || [],
42
- };
43
- }),
44
- toEngineState: vi.fn().mockImplementation(async (output) => ({
45
- message: output.message,
46
- toolCalls: [],
47
- stopReason: { reason: "stop", description: "Completed", recoverable: false },
48
- usage: output.usage,
49
- })),
50
- };
51
- }
52
- describe("Express Handler Setup", () => {
53
- let expressApp;
54
- let tentickleApp;
55
- let mockModel;
56
- beforeEach(() => {
57
- mockModel = createMockModel();
58
- const Agent = () => {
59
- return (<>
60
- <Model model={mockModel}/>
61
- <System>You are a test assistant</System>
62
- <Timeline />
63
- </>);
64
- };
65
- tentickleApp = createApp(Agent, { maxTicks: 1 });
66
- expressApp = express();
67
- expressApp.use(express.json());
68
- });
69
- describe("createTentickleHandler", () => {
70
- it("should create a valid express router", () => {
71
- const handler = createTentickleHandler(tentickleApp);
72
- expect(handler).toBeDefined();
73
- expect(typeof handler).toBe("function");
74
- });
75
- it("should accept custom options", () => {
76
- const handler = createTentickleHandler(tentickleApp, {
77
- authenticate: (req) => ({ userId: req.headers["x-user-id"] }),
78
- });
79
- expect(handler).toBeDefined();
80
- });
81
- });
82
- describe("Session management", () => {
83
- it("should create session on demand", () => {
84
- // App should be able to create sessions
85
- const session = tentickleApp.session("test-session");
86
- expect(session).toBeDefined();
87
- expect(session.id).toBe("test-session");
88
- });
89
- it("should reuse existing session with same ID", () => {
90
- const session1 = tentickleApp.session("reuse-session");
91
- const session2 = tentickleApp.session("reuse-session");
92
- // Should be the same session instance
93
- expect(session1).toBe(session2);
94
- });
95
- it("should create different sessions for different IDs", () => {
96
- const session1 = tentickleApp.session("session-a");
97
- const session2 = tentickleApp.session("session-b");
98
- expect(session1.id).not.toBe(session2.id);
99
- });
100
- });
101
- describe("Message handling via session", () => {
102
- it("should handle send with message", async () => {
103
- const session = tentickleApp.session("send-test");
104
- const handle = session.send({
105
- message: {
106
- role: "user",
107
- content: [{ type: "text", text: "Hello" }],
108
- },
109
- });
110
- // Collect events to verify execution happened
111
- const events = [];
112
- for await (const event of handle) {
113
- events.push(event);
114
- }
115
- // Should have received events
116
- expect(events.length).toBeGreaterThan(0);
117
- // Should have execution_start
118
- const hasExecutionStart = events.some((e) => e.type === "execution_start");
119
- expect(hasExecutionStart).toBe(true);
120
- });
121
- it("should pass user message to model", async () => {
122
- const session = tentickleApp.session("model-test");
123
- await session.send({
124
- message: {
125
- role: "user",
126
- content: [{ type: "text", text: "Test message" }],
127
- },
128
- }).result;
129
- // Model's fromEngineState should have been called
130
- expect(mockModel.fromEngineState).toHaveBeenCalled();
131
- // Check that user message was in the input
132
- const calls = mockModel.fromEngineState.mock.calls;
133
- const lastCall = calls[calls.length - 1];
134
- const input = lastCall[0];
135
- const userEntries = input.timeline.filter((e) => e.message?.role === "user");
136
- expect(userEntries.length).toBeGreaterThanOrEqual(1);
137
- });
138
- it("should stream events from execution", async () => {
139
- const session = tentickleApp.session("stream-test");
140
- const handle = session.send({
141
- message: {
142
- role: "user",
143
- content: [{ type: "text", text: "Stream test" }],
144
- },
145
- });
146
- const events = [];
147
- for await (const event of handle) {
148
- events.push(event);
149
- }
150
- // Should have received events
151
- expect(events.length).toBeGreaterThan(0);
152
- // Should have common event types
153
- const eventTypes = events.map((e) => e.type);
154
- expect(eventTypes).toContain("execution_start");
155
- });
156
- });
157
- });
158
- describe("Handler with Custom Options", () => {
159
- it("should accept authentication handler", async () => {
160
- const mockModel = createMockModel();
161
- const Agent = () => (<>
162
- <Model model={mockModel}/>
163
- <System>Test</System>
164
- <Timeline />
165
- </>);
166
- const app = createApp(Agent, { maxTicks: 1 });
167
- const authHandler = vi.fn().mockReturnValue({ userId: "user-123" });
168
- const handler = createTentickleHandler(app, {
169
- authenticate: authHandler,
170
- });
171
- // The handler should be created successfully
172
- expect(handler).toBeDefined();
173
- });
174
- });
175
- //# sourceMappingURL=message-flow.integration.spec.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-flow.integration.spec.jsx","sourceRoot":"","sources":["../../src/__tests__/message-flow.integration.spec.tsx"],"names":[],"mappings":"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"}
package/dist/router.d.ts DELETED
@@ -1,10 +0,0 @@
1
- /**
2
- * Express handler factory for Tentickle (multiplexed sessions).
3
- *
4
- * @module @tentickle/express/router
5
- */
6
- import { Router } from "express";
7
- import type { App } from "@tentickle/core/app";
8
- import type { TentickleHandlerOptions } from "./types";
9
- export declare function createTentickleHandler<User = unknown>(app: App, options?: TentickleHandlerOptions<User>): Router;
10
- //# sourceMappingURL=router.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAW/C,OAAO,KAAK,EAAE,uBAAuB,EAAoB,MAAM,SAAS,CAAC;AAiCzE,wBAAgB,sBAAsB,CAAC,IAAI,GAAG,OAAO,EACnD,GAAG,EAAE,GAAG,EACR,OAAO,GAAE,uBAAuB,CAAC,IAAI,CAAM,GAC1C,MAAM,CAiXR"}
package/dist/router.js DELETED
@@ -1,367 +0,0 @@
1
- /**
2
- * Express handler factory for Tentickle (multiplexed sessions).
3
- *
4
- * @module @tentickle/express/router
5
- */
6
- import { Router } from "express";
7
- import { createSSEWriter, setSSEHeaders } from "@tentickle/server";
8
- function parseSubscribeParam(value) {
9
- if (!value)
10
- return [];
11
- if (Array.isArray(value)) {
12
- return value
13
- .flatMap((entry) => String(entry).split(","))
14
- .map((id) => id.trim())
15
- .filter(Boolean);
16
- }
17
- return String(value)
18
- .split(",")
19
- .map((id) => id.trim())
20
- .filter(Boolean);
21
- }
22
- function isSendInput(value) {
23
- if (!value || typeof value !== "object")
24
- return false;
25
- const input = value;
26
- const hasMessage = !!input.message;
27
- const hasMessages = Array.isArray(input.messages);
28
- return (hasMessage && !hasMessages) || (!hasMessage && hasMessages);
29
- }
30
- export function createTentickleHandler(app, options = {}) {
31
- const router = Router();
32
- const paths = {
33
- events: options.paths?.events ?? "/events",
34
- send: options.paths?.send ?? "/send",
35
- subscribe: options.paths?.subscribe ?? "/subscribe",
36
- abort: options.paths?.abort ?? "/abort",
37
- close: options.paths?.close ?? "/close",
38
- toolResponse: options.paths?.toolResponse ?? "/tool-response",
39
- channel: options.paths?.channel ?? "/channel",
40
- };
41
- const sseKeepaliveInterval = options.sseKeepaliveInterval ?? 15000;
42
- const connections = new Map();
43
- const sessionSubscribers = new Map();
44
- const sessionListeners = new Map();
45
- // Track channel listeners per session: Map<sessionId, Map<channelName, unsubscribe>>
46
- const sessionChannelListeners = new Map();
47
- const getUserContext = async (req) => {
48
- const user = options.authenticate ? await options.authenticate(req) : undefined;
49
- const userId = options.getUserId ? await options.getUserId(req, user) : undefined;
50
- return { user, userId };
51
- };
52
- const authorize = async (req, user, sessionId) => {
53
- if (!options.authorize)
54
- return true;
55
- return await options.authorize(user, sessionId, req);
56
- };
57
- const ensureSessionListener = (sessionId) => {
58
- if (sessionListeners.has(sessionId))
59
- return;
60
- const session = app.session(sessionId);
61
- const listener = (event) => {
62
- const subscribers = sessionSubscribers.get(sessionId);
63
- if (!subscribers)
64
- return;
65
- for (const connectionId of subscribers) {
66
- const connection = connections.get(connectionId);
67
- if (!connection || connection.closed)
68
- continue;
69
- connection.writer.writeEvent({ ...event, sessionId });
70
- }
71
- };
72
- session.on("event", listener);
73
- session.once("close", () => {
74
- sessionListeners.delete(sessionId);
75
- sessionSubscribers.delete(sessionId);
76
- // Clean up channel listeners for this session
77
- const channelListeners = sessionChannelListeners.get(sessionId);
78
- if (channelListeners) {
79
- for (const unsubscribe of channelListeners.values()) {
80
- unsubscribe();
81
- }
82
- sessionChannelListeners.delete(sessionId);
83
- }
84
- });
85
- sessionListeners.set(sessionId, listener);
86
- };
87
- /**
88
- * Ensure we're subscribed to a specific channel on a session.
89
- * Channel events are forwarded to all connections subscribed to the session.
90
- */
91
- const ensureChannelListener = (sessionId, channelName) => {
92
- let channelListeners = sessionChannelListeners.get(sessionId);
93
- if (!channelListeners) {
94
- channelListeners = new Map();
95
- sessionChannelListeners.set(sessionId, channelListeners);
96
- }
97
- if (channelListeners.has(channelName))
98
- return;
99
- const session = app.session(sessionId);
100
- const channel = session.channel(channelName);
101
- const unsubscribe = channel.subscribe((event) => {
102
- const subscribers = sessionSubscribers.get(sessionId);
103
- if (!subscribers)
104
- return;
105
- const sseEvent = {
106
- type: "channel",
107
- sessionId,
108
- channel: channelName,
109
- event,
110
- };
111
- for (const connectionId of subscribers) {
112
- const connection = connections.get(connectionId);
113
- if (!connection || connection.closed)
114
- continue;
115
- connection.writer.writeEvent(sseEvent);
116
- }
117
- });
118
- channelListeners.set(channelName, unsubscribe);
119
- };
120
- const subscribeConnection = async (connectionId, sessionId, req, user) => {
121
- const connection = connections.get(connectionId);
122
- if (!connection || connection.closed)
123
- return;
124
- if (!(await authorize(req, user, sessionId))) {
125
- throw new Error("Unauthorized");
126
- }
127
- app.session(sessionId);
128
- ensureSessionListener(sessionId);
129
- connection.subscriptions.add(sessionId);
130
- const subscribers = sessionSubscribers.get(sessionId) ?? new Set();
131
- subscribers.add(connectionId);
132
- sessionSubscribers.set(sessionId, subscribers);
133
- };
134
- const unsubscribeConnection = (connectionId, sessionId) => {
135
- const connection = connections.get(connectionId);
136
- if (!connection)
137
- return;
138
- connection.subscriptions.delete(sessionId);
139
- const subscribers = sessionSubscribers.get(sessionId);
140
- if (!subscribers)
141
- return;
142
- subscribers.delete(connectionId);
143
- if (subscribers.size === 0) {
144
- sessionSubscribers.delete(sessionId);
145
- const listener = sessionListeners.get(sessionId);
146
- if (listener && app.has(sessionId)) {
147
- const session = app.session(sessionId);
148
- session.off("event", listener);
149
- }
150
- sessionListeners.delete(sessionId);
151
- }
152
- };
153
- router.get(paths.events, async (req, res, next) => {
154
- try {
155
- const { user, userId } = await getUserContext(req);
156
- req.tentickle = { user, userId };
157
- setSSEHeaders(res);
158
- const writer = createSSEWriter(res, { keepaliveInterval: sseKeepaliveInterval });
159
- const connectionId = `conn-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
160
- const connection = {
161
- id: connectionId,
162
- writer,
163
- subscriptions: new Set(),
164
- user,
165
- userId,
166
- closed: false,
167
- };
168
- connections.set(connectionId, connection);
169
- const initialSubscriptions = parseSubscribeParam(req.query.subscribe);
170
- for (const sessionId of initialSubscriptions) {
171
- await subscribeConnection(connectionId, sessionId, req, user);
172
- }
173
- writer.writeEvent({
174
- type: "connection",
175
- connectionId,
176
- subscriptions: Array.from(connection.subscriptions),
177
- });
178
- req.on("close", () => {
179
- connection.closed = true;
180
- for (const sessionId of connection.subscriptions) {
181
- unsubscribeConnection(connectionId, sessionId);
182
- }
183
- connections.delete(connectionId);
184
- writer.close();
185
- });
186
- }
187
- catch (err) {
188
- next(err);
189
- }
190
- });
191
- router.post(paths.subscribe, async (req, res, next) => {
192
- try {
193
- const { user } = await getUserContext(req);
194
- const { connectionId, add, remove } = req.body ?? {};
195
- if (!connectionId) {
196
- res.status(400).json({ error: "INVALID_REQUEST", message: "connectionId is required" });
197
- return;
198
- }
199
- for (const sessionId of add ?? []) {
200
- await subscribeConnection(connectionId, sessionId, req, user);
201
- }
202
- for (const sessionId of remove ?? []) {
203
- unsubscribeConnection(connectionId, sessionId);
204
- }
205
- res.json({ success: true });
206
- }
207
- catch (err) {
208
- if (err instanceof Error && err.message === "Unauthorized") {
209
- res.status(403).json({ error: "UNAUTHORIZED", message: "Unauthorized" });
210
- return;
211
- }
212
- next(err);
213
- }
214
- });
215
- router.post(paths.send, async (req, res, next) => {
216
- try {
217
- const { sessionId, ...rest } = req.body ?? {};
218
- if (!isSendInput(rest)) {
219
- res.status(400).json({
220
- error: "INVALID_REQUEST",
221
- message: "Provide either message or messages (but not both).",
222
- });
223
- return;
224
- }
225
- const handle = app.send(rest, { sessionId });
226
- setSSEHeaders(res);
227
- for await (const event of handle) {
228
- res.write(`data: ${JSON.stringify({ ...event, sessionId: handle.sessionId })}\n\n`);
229
- }
230
- res.end();
231
- }
232
- catch (err) {
233
- next(err);
234
- }
235
- });
236
- router.post(paths.abort, async (req, res, next) => {
237
- try {
238
- const { sessionId, reason } = req.body ?? {};
239
- if (!sessionId || !app.has(sessionId)) {
240
- res.status(404).json({ error: "SESSION_NOT_FOUND", message: "Session not found" });
241
- return;
242
- }
243
- const session = app.session(sessionId);
244
- session.interrupt(undefined, reason);
245
- res.json({ success: true });
246
- }
247
- catch (err) {
248
- next(err);
249
- }
250
- });
251
- router.post(paths.close, async (req, res, next) => {
252
- try {
253
- const { sessionId } = req.body ?? {};
254
- if (!sessionId) {
255
- res.status(400).json({ error: "INVALID_REQUEST", message: "sessionId is required" });
256
- return;
257
- }
258
- await app.close(sessionId);
259
- res.json({ success: true });
260
- }
261
- catch (err) {
262
- next(err);
263
- }
264
- });
265
- router.post(paths.toolResponse, async (req, res, next) => {
266
- try {
267
- const { sessionId, toolUseId, response } = req.body ?? {};
268
- if (!sessionId || !app.has(sessionId)) {
269
- res.status(404).json({ error: "SESSION_NOT_FOUND", message: "Session not found" });
270
- return;
271
- }
272
- if (!toolUseId || !response) {
273
- res
274
- .status(400)
275
- .json({ error: "INVALID_REQUEST", message: "toolUseId and response are required" });
276
- return;
277
- }
278
- const session = app.session(sessionId);
279
- await session.submitToolResult(toolUseId, response);
280
- res.json({ success: true });
281
- }
282
- catch (err) {
283
- next(err);
284
- }
285
- });
286
- /**
287
- * Publish to a session channel.
288
- * This allows client → server channel communication.
289
- */
290
- router.post(paths.channel, async (req, res, next) => {
291
- try {
292
- const { user } = await getUserContext(req);
293
- const body = req.body;
294
- if (!body?.sessionId) {
295
- res.status(400).json({ error: "INVALID_REQUEST", message: "sessionId is required" });
296
- return;
297
- }
298
- if (!body?.channel) {
299
- res.status(400).json({ error: "INVALID_REQUEST", message: "channel is required" });
300
- return;
301
- }
302
- if (!body?.type) {
303
- res.status(400).json({ error: "INVALID_REQUEST", message: "type is required" });
304
- return;
305
- }
306
- // Authorize access to session
307
- if (!(await authorize(req, user, body.sessionId))) {
308
- res.status(403).json({ error: "UNAUTHORIZED", message: "Unauthorized" });
309
- return;
310
- }
311
- if (!app.has(body.sessionId)) {
312
- res.status(404).json({ error: "SESSION_NOT_FOUND", message: "Session not found" });
313
- return;
314
- }
315
- const session = app.session(body.sessionId);
316
- // Publish to the channel
317
- const event = {
318
- type: body.type,
319
- channel: body.channel,
320
- payload: body.payload,
321
- id: body.id,
322
- metadata: {
323
- timestamp: Date.now(),
324
- ...body.metadata,
325
- },
326
- };
327
- session.channel(body.channel).publish(event);
328
- res.json({ success: true });
329
- }
330
- catch (err) {
331
- next(err);
332
- }
333
- });
334
- /**
335
- * Subscribe to a channel on a session.
336
- * This ensures server → client channel events are forwarded.
337
- */
338
- router.post(`${paths.channel}/subscribe`, async (req, res, next) => {
339
- try {
340
- const { user } = await getUserContext(req);
341
- const { sessionId, channel: channelName } = req.body ?? {};
342
- if (!sessionId) {
343
- res.status(400).json({ error: "INVALID_REQUEST", message: "sessionId is required" });
344
- return;
345
- }
346
- if (!channelName) {
347
- res.status(400).json({ error: "INVALID_REQUEST", message: "channel is required" });
348
- return;
349
- }
350
- // Authorize access to session
351
- if (!(await authorize(req, user, sessionId))) {
352
- res.status(403).json({ error: "UNAUTHORIZED", message: "Unauthorized" });
353
- return;
354
- }
355
- // Get or create session (creates if doesn't exist)
356
- app.session(sessionId);
357
- // Set up channel listener for this session (uses session internally)
358
- ensureChannelListener(sessionId, channelName);
359
- res.json({ success: true });
360
- }
361
- catch (err) {
362
- next(err);
363
- }
364
- });
365
- return router;
366
- }
367
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,75 +0,0 @@
1
- /**
2
- * Express integration types for Tentickle.
3
- *
4
- * @module @tentickle/express/types
5
- */
6
- import type { Request } from "express";
7
- /**
8
- * Configuration for the Tentickle Express router.
9
- */
10
- export interface TentickleHandlerOptions<User = unknown> {
11
- /**
12
- * Extract authentication token from request.
13
- * Called for each request to get user identity.
14
- *
15
- * @example
16
- * ```typescript
17
- * authenticate: (req) => req.headers.authorization?.replace('Bearer ', '')
18
- * ```
19
- */
20
- authenticate?: (req: Request) => User | undefined | Promise<User | undefined>;
21
- /**
22
- * Authorization hook for session access.
23
- * Return true to allow, false to deny.
24
- */
25
- authorize?: (user: User | undefined, sessionId: string, req: Request) => boolean | Promise<boolean>;
26
- /**
27
- * Extract user ID from request.
28
- * Called after authenticate, can use req.user if set by auth middleware.
29
- *
30
- * @example
31
- * ```typescript
32
- * getUserId: (req) => (req as any).user?.id
33
- * ```
34
- */
35
- getUserId?: (req: Request, user?: User) => string | undefined | Promise<string | undefined>;
36
- /**
37
- * Custom path prefix for routes.
38
- * @default ""
39
- */
40
- pathPrefix?: string;
41
- /**
42
- * Custom route paths.
43
- */
44
- paths?: {
45
- /** @default "/events" */
46
- events?: string;
47
- /** @default "/send" */
48
- send?: string;
49
- /** @default "/subscribe" */
50
- subscribe?: string;
51
- /** @default "/abort" */
52
- abort?: string;
53
- /** @default "/close" */
54
- close?: string;
55
- /** @default "/tool-response" */
56
- toolResponse?: string;
57
- /** @default "/channel" */
58
- channel?: string;
59
- };
60
- /**
61
- * SSE keepalive interval in milliseconds.
62
- * @default 15000
63
- */
64
- sseKeepaliveInterval?: number;
65
- }
66
- /**
67
- * Extended Express Request with Tentickle context.
68
- */
69
- export interface TentickleRequest<User = unknown> extends Request {
70
- tentickle?: {
71
- user?: User;
72
- userId?: string;
73
- };
74
- }
75
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,IAAI,GAAG,OAAO;IACrD;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;IAE9E;;;OAGG;IACH,SAAS,CAAC,EAAE,CACV,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,OAAO,KACT,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE5F;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,yBAAyB;QACzB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,uBAAuB;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,wBAAwB;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,wBAAwB;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,gCAAgC;QAChC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,0BAA0B;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,OAAO;IAC/D,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,IAAI,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH"}
package/dist/types.js DELETED
@@ -1,6 +0,0 @@
1
- /**
2
- * Express integration types for Tentickle.
3
- *
4
- * @module @tentickle/express/types
5
- */
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}